(Client/Server或客戶/伺服器模式):Client和Server常常分別處在相距很遠的兩台計算機上,Client程式的任務是將用戶的要求提交給Server程式,再將Server程式返回的結果以特定的形式顯示給用戶;Server程式的任務是接收客戶程式提出的服務請求,進行相應的處理,再將結果返回給客戶程式。
C/S(Client/Server)結構,即大家熟知的客戶機和伺服器結構。它是軟體系統體系結構,通過它可以充分利用兩端硬體環境的優勢,將任務合理分配到Client端和Server端來實現,降低了系統的通訊開銷。目前大多數套用軟體系統都是Client/Server形式的兩層結構,由於現在的軟體套用系統正在向分散式的Web套用發展,Web和Client/Server套用都可以進行同樣的業務處理,套用不同的模組共享邏輯組件;因此,內部的和外部的用戶都可以訪問新的和現有的套用系統,通過現有套用系統中的邏輯可以擴展出新的套用系統。這也就是目前套用系統的發展方向。
傳統的C/S體系結構雖然採用的是開放模式,但這只是系統開發一級的開放性,在特定的套用中無論是Client端還是Server端都還需要特定的軟體支持。由於沒能提供用戶真正期望的開放環境,C/S結構的軟體需要針對不同的作業系統系統開發不同版本的軟體,加之產品的更新換代十分快,已經很難適應百台電腦以上區域網路用戶同時使用。而且代價高,效率低。
一、C/S結構的優點
C/S結構的優點是能充分發揮客戶端PC的處理能力,很多工作可以在客戶端處理後再提交給伺服器。對應的優點就是客戶端回響速度快。缺點主要有以下幾個:
只適用於區域網路。而隨著網際網路的飛速發展,移動辦公和分散式辦公越來越普及,這需要我們的系統具有擴展性。這種方式遠程訪問需要專門的技術,同時要對系統進行專門的設計來處理分散式的數據。
客戶端需要安裝專用的客戶端軟體。首先涉及到安裝的工作量,其次任何一台電腦出問題,如病毒、硬體損壞,都需要進行安裝或維護。特別是有很多分部或專賣店的情況,不是工作量的問題,而是路程的問題。還有,系統軟體升級時,每一台客戶機需要重新安裝,其維護和升級成本非常高。
對客戶端的作業系統一般也會有限制。可能適應於Win98,但不能用於win2000或WindowsXP。或者不適用於微軟新的作業系統等等,更不用說Linux、Unix等。
二、C/S架構軟體的優勢與劣勢
(1)套用伺服器運行數據負荷較輕。最簡單的C/S體系結構的資料庫套用由兩部分組成,即客戶應用程式和資料庫伺服器程式。二者可分別稱為前台程式與後台程式。運行資料庫伺服器程式的機器,也稱為套用伺服器。一旦伺服器程式被啟動,就隨時等待回響客戶程式發來的請求;客戶應用程式運行在用戶自己的電腦上,對應於資料庫伺服器,可稱為客戶電腦,當需要對資料庫中的數據進行任何操作時,客戶程式就自動地尋找伺服器程式,並向其發出請求,伺服器程式根據預定的規則作出應答,送回結果,套用伺服器運行數據負荷較輕。
(2)數據的儲存管理功能較為透明。在資料庫套用中,數據的儲存管理功能,是由伺服器程式和客戶應用程式分別獨立進行的,前台套用可以違反的規則,並且通常把那些不同的(不管是已知還是未知的)運行數據,在伺服器程式中不集中實現,例如訪問者的許可權,編號可以重複、必須有客戶才能建立定單這樣的規則。所有這些,對於工作在前台程式上的最終用戶,是“透明”的,他們無須過問(通常也無法干涉)背後的過程,就可以完成自己的一切工作。在客戶伺服器架構的套用中,前台程式不是非常“瘦小”,麻煩的事情都交給了伺服器和網路。在C/S體系的下,資料庫不能真正成為公共、專業化的倉庫,它受到獨立的專門管理。
(3)C/S架構的劣勢是高昂的維護成本且投資大。首先,採用C/S架構,要選擇適當的資料庫平台來實現資料庫數據的真正“統一”,使分布於兩地的數據同步完全交由資料庫系統去管理,但邏輯上兩地的操作者要直接訪問同一個資料庫才能有效實現,有這樣一些問題,如果需要建立“實時”的數據同步,就必須在兩地間建立實時的通訊連線,保持兩地的資料庫伺服器線上運行,網路管理工作人員既要對伺服器維護管理,又要對客戶端維護和管理,這需要高昂的投資和複雜的技術支持,維護成本很高,維護任務量大。
其次,傳統的C/S結構的軟體需要針對不同的作業系統系統開發不同版本的軟體,由於產品的更新換代十分快,代價高和低效率已經不適應工作需要。在JAVA這樣的跨平台語言出現之後,B/S架構更是猛烈衝擊C/S,並對其形成威脅和挑戰。