複製鏈接
請複製以下鏈接發送給好友

服務器-客户機

鎖定
服務器-客户機,即Client-Server(C/S)結構。C/S結構通常採取兩層結構。服務器負責數據的管理,客户機負責完成與用户的交互任務
中文名稱
服務器-客户機
英文名稱
server/client
定  義
客户機是因特網上訪問別人信息的機器,服務器則是提供信息供人訪問的計算機。
應用學科
通信科技(一級學科),服務與應用(二級學科)
中文名
服務器/客户機
外文名
Server-Client

服務器-客户機結構簡介

客户機通過局域網與服務器相連,接受用户的請求,並通過網絡向服務器提出請求,對數據庫進行操作。服務器接受客户機的請求,將數據提交給客户機,客户機將數據進行計算並將結果呈現給用户。服務器還要提供完善安全保護及對數據完整性的處理等操作,並允許多個客户機同時訪問服務器,這就對服務器的硬件處理數據能力提出了很高的要求。
在C/S結構中,應用程序分為兩部分:服務器部分和客户機部分。服務器部分是多個用户共享的信息與功能,執行後台服務,如控制共享數據庫的操作等;客户機部分為用户所專有,負責執行前台功能,在出錯提示、在線幫助等方面都有強大的功能,並且可以在子程序間自由切換。
C/S模型的關鍵要素為:由客户而不是服務提供者發起動作;服務器被動的等待來自客户機的請求;客户機和服務器通過一條通信信道連接起來。兩個進程間的通信鏈路稱為連接。連接在內部表現為一些緩衝區和一組協議機制,在外部表現出比無連接高的可靠性。一個完整的網間進程通信需要由兩個進程組成,並且只能使用同一種高層協議。因此,一個完整的網間通信需要協議,本機地址、本地端口號、遠程端口號、遠程地址這五個元素標識。 [5] 
C/S結構在技術上已經很成熟,它的主要特點是交互性強、具有安全的存取模式、響應速度快、利於處理大量數據。但是C/S結構缺少通用性,系統維護、升級需要重新設計和開發,增加了維護和管理的難度,進一步的數據拓展困難較多,所以C/S結構只限於小型的局域網 [1] 

服務器-客户機發展經歷

C/S模式的發展經歷了從兩層結構到三層結構
兩層結構由兩部分構成:前端是客户機,主要完成用户界面顯示,接受數據輸入,校驗數據有效性,向後台數據庫發請求,接受返回結果,處理應用邏輯;後端是服務器,運行DBMS,提供數據庫的查詢和管理。
兩層結構存在一些不足:主要表現在:系統的可伸縮性差;難以和其它系統進行互操作;難以支持多個異構數據庫;客户端程序和服務器端DBMS交互頻繁,網絡通訊量大;所有客户機都需要安裝、配置數據庫客户端軟件,這是一件十分龐雜的工作。
基於二層結構的以上不足,三層結構伴隨着中間件技術的成熟而興起。其核心概念是利用中間件將應用分為表示層業務邏輯層數據存儲層三個不同的處理層次。
三層結構較二層結構具有一定的優越性:具有良好的開放性;減少整個系統的成本,維護升級十分方便;系統的可擴充性良好;系統管理簡單,可支持異種數據庫,有很高的可用性;可以進行嚴密的安全管理 [2] 

服務器-客户機優缺點

服務器-客户機優點

C/S結構的優點是能充分發揮客户端PC的處理能力,很多工作可以在客户端處理後再提交給服務器。對應的優點就是客户端響應速度快。具體表現在以下兩點:
(1)應用服務器運行數據負荷較輕。最簡單的C/S體系結構的數據庫應用由兩部分組成,即客户應用程序數據庫服務器程序。二者可分別稱為前台程序與後台程序。運行數據庫服務器程序的機器,也稱為應用服務器。一旦服務器程序被啓動,就隨時等待響應客户程序發來的請求;客户應用程序運行在用户自己的電腦上,對應於數據庫服務器,可稱為客户電腦,當需要對數據庫中的數據進行任何操作時,客户程序就自動地尋找服務器程序,並向其發出請求,服務器程序根據預定的規則作出應答,送回結果,應用服務器運行數據負荷較輕。
(2)數據的儲存管理功能較為透明。在數據庫應用中,數據的儲存管理功能,是由服務器程序和客户應用程序分別獨立進行的,並且通常把那些不同的(不管是已知還是未知的)前台應用所不能違反的規則,在服務器程序中集中實現,例如訪問者的權限,編號可以重複、必須有客户才能建立訂單這樣的規則。所有這些,對於工作在前台程序上的最終用户,是“透明”的,他們無須過問(通常也無法干涉)背後的過程,就可以完成自己的一切工作。在客户服務器架構的應用中,前台程序不是非常“瘦小”,麻煩的事情都交給了服務器和網絡。在C/S體系下,數據庫不能真正成為公共、專業化的倉庫,它受到獨立的專門管理 [3] 

服務器-客户機缺點

隨着互聯網的飛速發展,移動辦公和分佈式辦公越來越普及,這需要我們的系統具有擴展性。這種方式遠程訪問需要專門的技術,同時要對系統進行專門的設計來處理分佈式的數據。
客户端需要安裝專用的客户端軟件。首先涉及到安裝的工作量,其次任何一台電腦出問題,如病毒、硬件損壞,都需要進行安裝或維護。特別是有很多分部或專賣店的情況,不是工作量的問題,而是路程的問題。還有,系統軟件升級時,每一台客户機需要重新安裝,其維護和升級成本非常高。
對客户端的操作系統一般也會有限制。可能適應於Win98, 但不能用於Windows2000或Windows XP。或者不適用於微軟新的操作系統等等,更不用説Linux、Unix等。(目前,大多數客户端都適應win XP系統,但對微軟新的操作系統或其他開發系統就兼用不了。)
傳統的C/S體系結構雖然採用的是開放模式,但這只是系統開發一級的開放性,在特定的應用中無論是Client端還是Server端都還需要特定的軟件支持。由於沒能提供用户真正期望的開放環境,C/S結構的軟件需要針對不同的操作系統開發不同版本的軟件, 加之產品的更新換代十分快,已經很難適應百台電腦以上局域網用户同時使用。而且代價高, 效率低 [4] 
C/S架構的劣勢還有高昂的維護成本且投資大。首先,採用C/S架構,要選擇適當的數據庫平台來實現數據庫數據的真正“統一”,使分佈於兩地的數據同步完全交由數據庫系統去管理,但邏輯上兩地的操作者要直接訪問同一個數據庫才能有效實現,有這樣一些問題,如果需要建立“實時”的數據同步,就必須在兩地間建立實時的通訊連接,保持兩地的數據庫服務器在線運行,網絡管理工作人員既要對服務器維護管理,又要對客户端維護和管理,這需要高昂的投資和複雜的技術支持,維護成本很高,維護任務量大。
其次,傳統的C/S結構的軟件需要針對不同的操作系統系統開發不同版本的軟件,由於產品的更新換代十分快,代價高和低效率已經不適應工作需要。在JAVA這樣的跨平台語言出現之後,B/S架構更是猛烈衝擊C/S,並對其形成威脅和挑戰。
服務端的特徵 [3] 
1.被動的角色(從)。
2.等待來自用户端的要求。
3.處理要求並傳回結果。
用户端的特徵:
1.主動的角色(主)。
2.發送要求。
3.等待直到收到迴應。

服務器-客户機C/S和B/S

硬件環境的比較
CS建立在局域網的基礎上,局域網之間再通過專門服務器提供連接和數據交換服務。在CS結構中,客户機和服務器都需要處理數據任務,這就對客户機的硬件提出了較高的要求。BS結構建立在廣域網之上,不必配備專門的網絡硬件環境。雖然對客户端的硬件要求不是很高,只需要運行操作系統和瀏覽器,但服務器端需要處理大量實時的數據,這就對服務器端的硬件提出了較高的要求。總體來講,BS結構相對CS結構能夠大大降低成本 [1] 
系統維護 、 升級的比較
CS結構中的每一個客户機都必須安裝和配置相關軟件,如操作系統、客户端軟件等。當客户端軟件需要維護、升級,即使只是增加或刪除某一功能,也需要逐一將CS結構中所有的客户端軟件卸載並重新安裝。如果不進行升級,可能會碰到客户端軟件版本不一致而無法工作的情況。BS結構中每一個客户端只需通過瀏覽器便可進行各種信息的處理,而不需要安裝客户端軟件,維護、升級等幾乎所有的工作都在服務器端進行,如果系統需要升級,只需要將升級程序安裝在服務器端即可。
系統安全的比較
CS結構採取點對點結構模式,數據的處理是基於安全性較高的網絡協議之上。另外,CS一般面向相對固定的用户羣,它可以對權限進行多層次的校驗,對信息安全的控制能力很強,安全性可以得到很好的保障。BS結構採取一點對多點、多點對多點的開放式結構模式,其安全性只能靠數據服務器上的管理密碼的數據庫來保證,況且網絡安全技術尚未成熟,需不斷髮現、修補各種安全漏洞
用户接口的比較
CS結構多是建立在Windows平台上,表現方法有限,對程序員普遍要求較高。BS結構是建立在瀏覽器上,有更加豐富和生動的表現方式與用户交流。
處理上的比較
CS結構建立在局域網上,處理面向在相同區域的比較固定的用户羣,滿足對安全要求高的需求,與操作系統相關。BS結構建立在廣域網上,處理面向分散的地域的不同的用户羣,與操作系統關係較少。另外,BS的處理模式與CS處理模式相比,簡化了客户端,只需要安裝操作系統、瀏覽器即可。
軟件重用的比較
CS結構軟件可從不可避免的整體性考慮,構件的重用性不如在BS要求下構建的重用性好。BS對應的是多重結構,要求構建相對獨立的功能,能夠相對較好的重用。
系統速度的比較
CS結構在邏輯結構上比BS結構少一層,對於相同的任務,CS結構完成的速度總比BS結構快,使得CS更利於處理大量數據。另外,由於客户端實現與服務器的直接相連,沒有中間環節,因此響應速度快。
交互性信息流的比較
CS結構的交互性很強,在CS結構中,客户機有完整的客户端軟件,能處理大量的、實時的數據流,響應速度快。BS結構雖然可以提供一定的交互能力,但交互能力很有限。CS的信息流單一,而BS結構可處理如B-B、B-C、B-G等信息並具有流向的變化。
參考資料