模式簡介,主要功能,發展經歷,優缺點,優點,缺點,C/S和B/S,硬體環境的比較,系統維護 、 升級的比較,系統安全的比較,用戶接口的比較,處理上的比較,軟體重用的比較,系統速度的比較,互動性與信息流的比較,
模式簡介
隨著
計算機網路技術的成熟和套用普及,特別是區域網路的發展、PC機的出現,越來越多的用戶和企業開始使用計算機管理一些事務。PC機的資源沒有大型、中型甚至小型主機豐富,但將多台PC機聯成網,必然會增加資源含量,各個用戶都在網路上來共享所有資源。根據客戶/伺服器(Client/Server簡記為C/S)體系結構的概念,至少用兩台計算機來分別充當客戶機和伺服器角色。客戶端可以是X86體系的風機或RISC體系的工作站等,而伺服器端硬體一般比較高檔,比如:高檔PC伺服器或SUN專用伺服器;作業系統也比較高檔,比如: Windows NT和 Unix。
伺服器-客戶機,即Client-Server(
C/S)結構。C/S結構通常採取兩層結構。伺服器負責數據的管理,客戶機負責完成與用戶的互動任務。
客戶機通過區域網路與伺服器相連,接受用戶的請求,並通過網路向伺服器提出請求,對資料庫進行操作。伺服器接受客戶機的請求,將數據提交給客戶機,客戶機將數據進行計算並將結果呈現給用戶。伺服器還要提供完善安全保護及對數據完整性的處理等操作,並允許多個客戶機同時訪問伺服器,這就對伺服器的硬體處理數據能力提出了很高的要求。
在C/S結構中,應用程式分為兩部分:伺服器部分和客戶機部分。伺服器部分是多個用戶共享的信息與功能,執行後台服務,如控制共享資料庫的操作等;客戶機部分為用戶所專有,負責執行前台功能,在出錯提示、線上幫助等方面都有強大的功能,並且可以在子程式間自由切換。
C/S結構在技術上已經很成熟,它的主要特點是互動性強、具有安全的存取模式、回響速度快、利於處理大量數據。但是C/S結構缺少通用性,系統維護、升級需要重新設計和開發,增加了維護和管理的難度,進一步的數據拓展困難較多,所以C/S結構只限於小型的區域網路。
主要功能
伺服器提供的服務可以包括:檔案服務、列印服務、Web服務、資料庫服務、套用服務和代理服務等。通常客戶端運行應用程式,伺服器端運行服務程式,應用程式向服務程式提出申請,服務程式分析該申請是否合理,來決定返回數據信息還是禁止申請信息。從資料庫的角度來講,對一個套用,全局公共數據保存在伺服器,各個客戶端保存各自的私有數據,用戶可以查詢自己的數據,也可以遠端查詢全局數據。這就是C/S分散式模式。
由於客戶端實現與伺服器的直接相連,沒有中間環節,因此回響速度快。客戶操作界面設計個性化,具有直觀、簡單、方便的特點,可以滿足客戶個性化的操作要求。同時由於開發是針對性的,因此,操作界面漂亮、形式多樣,可以充分滿足客戶自身的個性化要求。由於是針對性開發,因此缺少通用性的特點,業務變更或改變不夠靈活,需要重新設計和開發,增加了維護和管理的難度,進一步的業務拓展困難較多。需要專門的客戶端安裝程式,分布功能弱,不能夠實現快速部署安裝和配置。兼容性差,對於不同的開發工具,相互之間很難兼容,具有較大的局限性。若採用不同工具,需要重新改寫程式。 開發成本較高,需要具有一定專業水準的技術員才能完成。
發展經歷
C/S模式的發展經歷了從兩層結構到三層結構。
兩層結構由兩部分構成:前端是
客戶機,主要完成
用戶界面顯示,接受數據輸入,校驗數據有效性,向後台資料庫發請求,接受返回結果,處理
套用邏輯;後端是伺服器,運行DBMS,提供
資料庫的查詢和管理。
兩層結構存在一些不足,主要表現在:系統的可伸縮性差;難以和其它系統進行互操作;難以支持多個異構資料庫;
客戶端程式和
伺服器端DBMS互動頻繁,網路通訊量大;所有客戶機都需要安裝、配置
資料庫客戶端軟體,是一件十分龐雜的工作,等。
基於二層結構的以上不足,三層結構伴隨著中間件技術的成熟而興起。其核心概念是利用中間件將套用分為表示層、
業務邏輯層和數據存儲層三個不同的處理層次。
三層結構較二層結構具有一定的優越性:具有良好的開放性;減少整個系統的成本,維護升級十分方便;系統的可擴充性良好;系統管理簡單,可支持異種資料庫,有很高的可用性;可以進行嚴密的安全管理。
優缺點
優點
C/S結構的優點是能充分發揮客戶端PC的處理能力,很多工作可以在客戶端處理後再提交給伺服器。對應的優點就是客戶端回響速度快。具體表現在以下兩點:
(1)套用
伺服器運行數據負荷較輕。最簡單的C/S體系結構的資料庫套用由兩部分組成,即客戶應用程式和
資料庫伺服器程式。二者可分別稱為前台程式與後台程式。運行資料庫
伺服器程式的機器,也稱為套用伺服器。一旦伺服器程式被啟動,就隨時等待回響客戶程式發來的請求;客戶應用程式運行在用戶自己的電腦上,對應於資料庫伺服器,可稱為客戶電腦,當需要對
資料庫中的數據進行任何操作時,客戶程式就自動地尋找伺服器程式,並向其發出請求,伺服器程式根據預定的規則作出應答,送回結果,套用伺服器運行數據負荷較輕。
(2)數據的儲存管理功能較為透明。在資料庫套用中,數據的儲存管理功能,是由伺服器程式和客戶應用程式分別獨立進行的,並且通常把那些不同的(不管是已知還是未知的)前台套用所不能違反的規則,在伺服器程式中集中實現,例如訪問者的許可權,編號可以重複、必須有客戶才能建立訂單這樣的規則。所有這些,對於工作在前台程式上的最終用戶,是“透明”的,他們無須過問(通常也無法干涉)背後的過程,就可以完成自己的一切工作。在客戶
伺服器架構的套用中,前台程式不是非常“瘦小”,麻煩的事情都交給了伺服器和網路。在C/S體系下,資料庫不能真正成為公共、專業化的倉庫,它受到獨立的專門管理。
缺點
隨著網際網路的飛速發展,
移動辦公和分散式辦公越來越普及,這需要我們的系統具有擴展性。這種方式
遠程訪問需要專門的技術,同時要對系統進行專門的設計來處理分散式的數據。
客戶端需要安裝專用的客戶端軟體。首先涉及到安裝的工作量,其次任何一台電腦出問題,如病毒、硬體損壞,都需要進行安裝或維護。特別是有很多分部或專賣店的情況,不是工作量的問題,而是路程的問題。還有,
系統軟體升級時,每一台客戶機需要重新安裝,其維護和升級成本非常高。
對客戶端的作業系統一般也會有限制。可能適應於Win98, 但不能用於Windows2000或Windows XP。或者不適用於微軟新的作業系統等等,更不用說Linux、Unix等。(目前,大多數客戶端都適應win XP系統,但對微軟新的作業系統或其他開發系統就兼用不了。)
傳統的
C/S體系結構雖然採用的是開放模式,但這只是系統開發一級的開放性,在特定的套用中無論是Client端還是Server端都還需要特定的軟體支持。由於沒能提供用戶真正期望的開放環境,C/S結構的軟體需要針對不同的作業系統開發不同版本的軟體, 加之產品的更新換代十分快,已經很難適應百台電腦以上
區域網路用戶同時使用。而且代價高, 效率低。
C/S架構的劣勢還有高昂的維護成本且投資大。首先,採用C/S架構,要選擇適當的資料庫平台來實現資料庫數據的真正“統一”,使分布於兩地的
數據同步完全交由
資料庫系統去管理,但邏輯上兩地的操作者要直接訪問同一個資料庫才能有效實現,有這樣一些問題,如果需要建立“實時”的數據同步,就必須在兩地間建立實時的通訊連線,保持兩地的
資料庫伺服器線上運行,網路管理工作人員既要對伺服器維護管理,又要對客戶端維護和管理,這需要高昂的投資和複雜的技術支持,維護成本很高,維護任務量大。
其次,傳統的C/S結構的軟體需要針對不同的作業系統系統開發不同版本的軟體,由於產品的更新換代十分快,代價高和低效率已經不適應工作需要。在JAVA這樣的跨平台語言出現之後,
B/S架構更是猛烈衝擊C/S,並對其形成威脅和挑戰。
服務端的特徵:
被動的角色(從)。
等待來自用戶端的要求。
處理要求並傳回結果。
用戶端的特徵:
C/S和B/S
硬體環境的比較
C/S建立在區域網路的基礎上,區域網路之間再通過專門伺服器提供連線和數據交換服務。在C/S結構中,客戶機和伺服器都需要處理數據任務,這就對客戶機的硬體提出了較高的要求。B/S結構建立在廣域網之上,不必配備專門的網路硬體環境。雖然對客戶端的硬體要求不是很高,只需要運行作業系統和瀏覽器,但伺服器端需要處理大量實時的數據,這就對伺服器端的硬體提出了較高的要求。總體來講,B/S結構相對C/S結構能夠大大降低成本。
系統維護 、 升級的比較
C/S結構中的每一個客戶機都必須安裝和配置相關軟體,如作業系統、客戶端軟體等。當客戶端軟體需要維護、升級,即使只是增加或刪除某一功能,也需要逐一將C/S結構中所有的客戶端軟體卸載並重新安裝。如果不進行升級,可能會碰到客戶端軟體版本不一致而無法工作的情況。B/S結構中每一個客戶端只需通過瀏覽器便可進行各種信息的處理,而不需要安裝客戶端軟體,維護、升級等幾乎所有的工作都在伺服器端進行,如果系統需要升級,只需要將升級程式安裝在伺服器端即可。
系統安全的比較
C/S結構採取點對點的結構模式,數據的處理是基於安全性較高的網路協定之上。另外, C/S一般面向相對固定的用戶群,它可以對許可權進行多層次的校驗,對信息安全的控制能力很強,安全性可以得到很好的保障。B/S結構採取一點對多點、多點對多點的開放式結構模式,其安全性只能靠數據伺服器上的管理密碼的資料庫來保證,況且網路安全技術尚未成熟,需不斷發現、修補各種安全漏洞。
用戶接口的比較
C/S結構多是建立在Windows平台上,表現方法有限, 對程式設計師普遍要求較高。B/S結構是建立在瀏覽器上,有更加豐富和生動的表現方式與用戶交流。
處理上的比較
C/S結構建立在區域網路上, 處理面向在相同區域的比較固定的用戶群, 滿足對安全要求高的需求, 與作業系統相關。B/S結構建立在廣域網上, 處理面向分散的地域的不同的用戶群, 與作業系統關係較少。另外, B/S的處理模式與CS處理模式相比,簡化了客戶端,只需要安裝作業系統、瀏覽器即可。
軟體重用的比較
C/S結構軟體可從不可避免的整體性考慮,構件的重用性不如在B/S要求下構建的重用性好。B/S對應的是多重結構,要求構建相對獨立的功能,能夠相對較好的重用。
系統速度的比較
C/S結構在邏輯結構上比B/S結構少一層,對於相同的任務,C/S結構完成的速度總比B/S結構快,使得C/S更利於處理大量數據。另外,由於客戶端實現與伺服器的直接相連,沒有中間環節,因此回響速度快。
互動性與信息流的比較
C/S結構的互動性很強, 在C/S結構中,客戶機有完整的客戶端軟體, 能處理大量的、實時的數據流,回響速度快。B/S結構雖然可以提供一定的互動能力,但互動能力很有限。C/S的信息流單一, 而B/S結構可處理如B-B、B-C、B-G等信息並具有流向的變化。