C/S與B/S區別

1.什麼是C/S結構
C/S (Client/Server)結構,即客戶機和服務器結構。它是軟件系統體系結構,經過它能夠充分利用兩端硬件環境的優點,將任務合理分配到Client端和Server端來實現,下降了系統的通信開銷。
C/S結構能夠看作是胖客戶端架構。客戶端實現絕大多數的業務邏輯處理和界面展現,做爲客戶端的部分須要承受很大的壓力,從分利用客戶端的資源,對客戶機的要求較高。
其實現能夠是客戶端包含一個或多個在用戶的電腦上運行的程序,而服務器端有兩種,一種是數據庫服務器端,客戶端經過數據庫鏈接訪問服務器端的數據;另外一種是Socket服務器端,服務器端的程序經過Socket與客戶端的程序通訊。
目前大多數應用軟件系統都是Client/Server形式的兩層結構,因爲如今的軟件應用系統正在向分佈式的Web應用發展,Web和Client/Server 應用均可以進行一樣的業務處理,應用不一樣的模塊共享邏輯組件;所以,內部的和外部的用戶均可以訪問新的和現有的應用系統,經過現有應用系統中的邏輯能夠擴展出新的應用系統。這也就是目前應用系統的發展方向。
傳統的C/S體系結構雖然採用的是開放模式,但這只是系統開發一級的開放性,在特定的應用中不管是Client端仍是Server端都還須要特定的軟件支持。因爲沒能提供用戶真正指望的開放環境,C/S結構的軟件須要針對不一樣的操做系統系統開發不一樣版本的軟件,加之產品的更新換代十分快,已經很難適應百臺電腦以上局域網用戶同時使用。並且代價高, 效率低。前端

2.什麼是B/S結構
B/S(Browser/Server)結構即瀏覽器和服務器結構。它是隨着Internet技術的興起,對C/S結構的一種變化或者改進的結構。在這種結構下,用戶工做界面是經過WWW瀏覽器來實現,極少部分事務邏輯在前端(Browser)實現,可是主要事務邏輯在服務器端(Server)實現,造成所謂三層3-tier結構。這樣就大大簡化了客戶端電腦載荷,減輕了系統維護與升級的成本和工做量,下降了用戶的整體成本(TCO)。
B/S結構能夠看做是瘦客戶端,只是把顯示的較少的邏輯交給了Web瀏覽器,事務邏輯數據處理在放在了Server端,這樣就避免了龐大的胖客戶端,減小了客戶端的壓力。B/S結構的系統無須特別安裝,只有Web瀏覽器便可。固然AJAX\Flex等等的廣泛使用也有富客戶端的發展方向。
以目前的技術看,局域網創建B/S結構的網絡應用,並經過Internet/Intranet模式下數據庫應用,相對易於把握、成本也是較低的。它是一次性到位的開發,能實現不一樣的人員,從不一樣的地點,以不一樣的接入方式(好比LAN, WAN, Internet/Intranet等)訪問和操做共同的數據庫;它能有效地保護數據平臺和管理訪問權限,服務器數據庫也很安全 。特別是在JAVA這樣的跨平臺語言出現以後,B/S架構管理軟件更是方便、快捷、高效。程序員

3.管理軟件主流技術。
管理軟件技術的主流技術與管理思想同樣,也經歷了三個發展時期。首先,界面技術從上世紀DOS字符界面到Windows圖形界面(或圖形用戶界面GUI),直至Browser瀏覽器界面三個不一樣的發展時期。其次,今天全部電腦的瀏覽器界面,不只直觀和易於使用,更主要的是基於瀏覽器平臺的任何應用軟件其風格都是同樣的,使用人對操做培訓的要求不高,並且軟件可操做性強,易於識別;再者,平臺體系結構也從過去單用戶發展到今天的文件/服務器(F/S)體系、客戶機/服務器(C/S)體系和瀏覽器/服務器(B/S)體系。數據庫

C/S和B/S結構區別

1.C/S和B/S結構優缺點
(1).B/S結構優缺點:
  B/S結構的優勢:
  <1>.無需安裝,客戶端不須要安裝有瀏覽器便可。
  <2>.分佈性特色,能夠隨時隨地進行查詢、瀏覽等業務處理。 
  <3>.業務擴展便捷,經過增長頁面便可增長服務器功能。 
  <4>.升級維護便捷,無需升級多個客戶端,升級服務器便可,就能夠實現全部用戶的同步更新。 
  <5>.共享性強特色,能夠直接放在廣域網上,經過必定的權限控制實現多客戶訪問的目的,交互性較強。
  B/S結構的缺點:
  <1>.在跨瀏覽器上,BS結構不盡如人意。
  <2>.在速度和安全性上須要花費不少設計成本,響應速度不及C/S,隨着AJAX技術的發展,相比傳統B/S結構軟件速度有很大提高。 
  <3>.用戶體驗不是很理想,B/S須要單獨界面設計,各個瀏覽器廠商的對瀏覽器的解析的標準不一樣。
      客戶端服務器端的交互是請求-響應模式,一般須要刷新頁面,這並非客戶樂意看到的。(在Ajax風行後此問題獲得了必定程度的緩解)windows

(2).C/S結構優缺點:
  C/S結構的優勢:
  <1>.C/S結構的界面和操做簡單豐富。
  <2>.C/S結構的管理信息系統具備較強的事務處理能力。
  <3>.C/S結構的安全性能能夠很容易保證,實現多層認證也不難。
  <4>.C/S結構的響應速度快。因爲客戶端實現與服務器的直接相連,沒有中間環節,只有一層交互,所以響應速度較快。
  C/S結構的缺點: 
  <1>.適用面窄,一般用於局域網中。
     隨着互聯網的飛速發展,移動辦公和分佈式辦公愈來愈普及,這須要咱們的系統具備擴展性。這種方式遠程訪問須要專門的技術,同時要對系統進行專門的設計來處理分佈式的數據。
  <2>.客戶端須要安裝專用的客戶端軟件。
     因爲程序須要安裝纔可以使用,所以不適合面向一些不可知的用戶。涉及到安裝的工做量,其次任何一臺電腦出問題,如病毒、硬件損壞,都須要進行安裝或維護。特別是有不少分部或專賣店的狀況,不是工做量的問題,而是路程的問題。
  <3>.維護升級成本高,進行一次維護升級,須要全部客戶端的程序進行從新安裝。
  <4>.對客戶端的操做系統通常也會有限制。
     可能適應於WinXP, 但不能用於WinVista或Win7。或者不適用於微軟新的操做系統等等,還有Linux、Unix等等操做系統。設計模式

2.C/S和B/S結構設計區別
Client/Server是創建在局域網的基礎上的,Browser/Server是創建在廣域網的基礎上的。
(1).硬件環境不一樣
C/S通常創建在專用的網絡上,小範圍裏的網絡環境,局域網之間再經過專門服務器提供鏈接和數據交換服務。
B/S創建在廣域網之上的,沒必要是專門的網絡硬件環境,例如電話上網,租用設備,信息本身管理,有比C/S更強的適應範圍,通常只要有操做系統和瀏覽器就行。
(2)對安全要求不一樣
C/S 通常面向相對固定的用戶羣, 對信息安全的控制能力很強。通常高度機密的信息系統採用C/S 結構適宜,能夠經過B/S發佈部分可公開信息。
B/S 創建在廣域網之上, 對安全的控制能力相對弱, 面向是不可知的用戶羣。
(3).對程序架構不一樣
C/S 程序能夠更加註重流程,能夠對權限多層次校驗,對系統運行速度能夠較少考慮。
B/S 對安全以及訪問速度的多重的考慮, 創建在須要更加優化的基礎之上。比C/S有更高的要求,B/S結構的程序架構是發展的趨勢,從MS的.Net系列的BizTalk 2000 Exchange 2000等,全面支持網絡的構件搭建的系統。SUN和IBM推的JavaBean構件技術等,使B/S更加成熟。
(4).軟件重用不一樣
C/S 程序能夠不可避免的總體性考慮, 構件的重用性不如在B/S要求下的構件的重用性好。
B/S 對的多重結構,要求構件相對獨立的功能。 可以相對較好的重用。就如買來的餐桌能夠再利用,而不是作在牆上的石頭桌子。
(5).系統維護不一樣
系統維護是軟件生存週期中,開銷大,至關重要。
C/S 程序因爲總體性,必須總體考察,處理出現的問題以及系統升級難,多是再作一個全新的系統。
B/S 構件組成方面構件個別的更換,實現系統的無縫升級。 系統維護開銷減到最小,用戶從網上本身下載安裝就能夠實現升級。
(6).處理問題不一樣
C/S 程序能夠處理用戶面固定,而且在相同區域, 安全要求高的需求,與操做系統相關,應該都是相同的系統。
B/S 創建在廣域網上, 面向不一樣的用戶羣,分散地域, 這是C/S沒法做到的,與操做系統平臺關係最小。
(7).用戶接口不一樣
C/S 可能是創建在Window平臺上,表現方法有限,對程序員廣泛要求較高。
B/S 創建在瀏覽器上, 有更加豐富和生動的表現方式與用戶交流,而且大部分難度減低,下降開發成本。
(8).信息流不一樣
C/S 程序通常是典型的中央集權的機械式處理,交互性相對低。
B/S 信息流向可變化, B-B、 B-C、 B-G等信息流向的變化,更象交易中心。瀏覽器

3.C/S和B/S結構優點與劣勢

(1).C/S架構軟件的優點與劣勢
<1>.應用服務器運行數據負荷較輕。
最簡單的C/S體系結構的數據庫應用由兩部分組成,即客戶應用程序和數據庫服務器程序。兩者可分別稱爲前臺程序與後臺程序。運行數據庫服務器程序的機器,也稱爲應用服務器。一旦服務器程序被啓動,就隨時等待響應客戶程序發來的請求;客戶應用程序運行在用戶本身的電腦上,對應於數據庫服務器,可稱爲客戶電腦,當須要對數據庫中的數據進行任何操做時,客戶程序就自動地尋找服務器程序,並向其發出請求,服務器程序根據預約的規則做出應答,送回結果,應用服務器運行數據負荷較輕。
<2>.數據的儲存管理功能較爲透明。
在數據庫應用中,數據的儲存管理功能,是由服務器程序和客戶應用程序分別獨立進行的,前臺應用能夠違反的規則,而且一般把那些不一樣的(無論是已知仍是未知的)運行數據,在服務器程序中不集中實現,例如訪問者的權限,編號能夠重複、必須有客戶才能創建定單這樣的規則。全部這些,對於工做在前臺程序上的最終用戶,是「透明」的,他們無須過問(一般也沒法干涉)背後的過程,就能夠完成本身的一切工做。在客戶服務器架構的應用中,前臺程序不是很是「瘦小」,麻煩的事情都交給了服務器和網絡。在C/S體系的下,數據庫不能真正成爲公共、專業化的倉庫,它受到獨立的專門管理。
<3>.C/S架構的劣勢是高昂的維護成本且投資大。
首先,採用C/S架構,要選擇適當的數據庫平臺來實現數據庫數據的真正「統一」,使分佈於兩地的數據同步徹底交由數據庫系統去管理,但邏輯上兩地的操做者要直接訪問同一個數據庫纔能有效實現,有這樣一些問題,若是須要創建「實時」的數據同步,就必須在兩地間創建實時的通信鏈接,保持兩地的數據庫服務器在線運行,網絡管理工做人員既要對服務器維護管理,又要對客戶端維護和管理,這須要高昂的投資和複雜的技術支持,維護成本很高,維護任務量大。
其次,傳統的C/S結構的軟件須要針對不一樣的操做系統系統開發不一樣版本的軟件,因爲產品的更新換代十分快,代價高和低效率已經不適應工做須要。在JAVA這樣的跨平臺語言出現以後,B/S架構更是猛烈衝擊C/S,並對其造成威脅和挑戰。安全

(2).B/S架構軟件的優點與劣勢
<1>.維護和升級方式簡單。
目前,軟件系統的改進和升級愈來愈頻繁,B/S架構的產品明顯體現着更爲方便的特性。對一個稍微大一點單位來講,系統管理人員若是須要在幾百甚至上千部電腦之間來回奔跑,效率和工做量是可想而知的,但B/S架構的軟件只須要管理服務器就好了,全部的客戶端只是瀏覽器,根本不須要作任何的維護。不管用戶的規模有多大,有多少分支機構都不會增長任何維護升級的工做量,全部的操做只須要針對服務器進行;若是是異地,只須要把服務器鏈接專網便可,實現遠程維護、升級和共享。因此客戶機愈來愈「瘦」,而服務器愈來愈「胖」是未來信息化發展的主流方向。從此,軟件升級和維護會愈來愈容易,而使用起來會愈來愈簡單,這對用戶人力、物力、時間、費用的節省是顯而易見的,驚人的。所以,維護和升級革命的方式是「瘦」客戶機,「胖」服務器。
<2>.成本下降,選擇更多。
你們都知道windows在桌面電腦上幾乎一統天下,瀏覽器成爲了標準配置,但在服務器操做系統上windows並非處於絕對的統治地位。如今的趨勢是凡使用B/S架構的應用管理軟件,只需安裝在Linux服務器上便可,並且安全性高。因此服務器操做系統的選擇是不少的,無論選用那種操做系統均可以讓大部分人使用windows做爲桌面操做系統電腦不受影響,這就使的最流行免費的Linux操做系統快速發展起來,Linux除了操做系統是免費的之外,連數據庫也是免費的,這種選擇很是盛行。
好比說不少人天天上「網易」(原文爲新浪)網,只要安裝了瀏覽器就能夠了,並不須要瞭解「網易」的服務器用的是什麼操做系統,而事實上大部分網站確實沒有使用windows操做系統,但用戶的電腦自己安裝的大部分是windows操做系統。
<3>.應用服務器運行數據負荷較重。
因爲B/S架構管理軟件只安裝在服務器端(Server)上,網絡管理人員只須要管理服務器就好了,用戶界面主要事務邏輯在服務器(Server)端徹底經過WWW瀏覽器實現,極少部分事務邏輯在前端(Browser)實現,全部的客戶端只有瀏覽器,網絡管理人員只須要作硬件維護。可是,應用服務器運行數據負荷較重,一旦發生服務器「崩潰」等問題,後果不堪設想。所以,許多單位都備有數據庫存儲服務器,以防萬一。服務器

4.C/S和B/S結構結合
本身接觸到的C/S與B/S結合框架是SCSF框架,集合C/S和B/S設計上的優勢應用。分享一下你接觸的C/S與B/S結合架構吧。
Smart Client Software Factory 概述
(1).SCSF概念
SCSF是一個應用了多種設計模式、適用於大型軟件開發的框架,其特色是結合B/S與C/S架構的優勢,開發人員能夠按業務功能分模塊並行開發,各模塊之間耦合度很小,當業務需求變化時,應用SCSF架構的軟件能夠最大限度地減少代碼修改量。
Smart Client相比傳統B/S架構的優點:FatClient設計,用戶體驗豐富,客戶端能夠在不在線的狀態下運行——而傳統B/S架構是把一切負擔交給服務器,當網絡不可用時B/S系統徹底癱瘓。
Smart Client相比傳統C/S架構的優點:方便部署和維護——利用ClickOnce客戶端會在須要更新時自動提示或更新。網絡

(2).SCSF中的設計模式及架構思想:
控制反轉(IoC),依賴注入,MVC及MVP;
策略模式(Strategy),觀察者模式(Observer)。
理解了這些模式,才能較容易地理解SCSF的架構思想。架構

相關文章
相關標籤/搜索