B/S和C/S架構的比較
C/S又稱Client/Server或客戶/伺服器模式。伺服器通常採用高效能的PC、工作站或小型機,並採用大型資料庫系統,如Oracle、Sybase、Informix或 SQL Server。客戶端需要安裝專用的客戶端軟體。
B/S是Brower/Server的縮寫,客戶機上只要安裝一個瀏覽器(Browser),如Netscape Navigator或Internet Explorer,伺服器安裝Oracle、Sybase、Informix或 SQL Server等資料庫。瀏覽器透過Web Server 同資料庫進行資料互動。
C/S的優點是能充分發揮客戶端PC的處理能力,很多工作可以在客戶端處理後再提交給伺服器。對應的優點就是客戶端響應速度快。缺點主要有以下幾個:
只適用於區域網。而隨著網際網路的飛速發展,移動辦公和分散式辦公越來越普及,這需要我們的系統具有擴充套件性。這種方式遠端訪問需要專門的技術,同時要對系統進行專門的設計來處理分散式的資料。
客戶端需要安裝專用的客戶端軟體。首先涉及到安裝的工作量,其次任何一臺電腦出問題,如病毒、硬體損壞,都需要進行安裝或維護。特別是有很多分部或專賣店的情況,不是工作量的問題,而是路程的問題。還有,系統軟體升級時,每一臺客戶機需要重新安裝,其維護和升級成本非常高。
對客戶端的作業系統一般也會有限制。可能適應於Win98, 但不能用於win2000或Windows XP。或者不適用於微軟新的作業系統等等,更不用說Linux、Unix等。
B/S最大的優點就是可以在任何地方進行操作而不用安裝任何專門的軟體。只要有一臺能上網的電腦就能使用,客戶端零維護。系統的擴充套件非常容易,只要能上網,再由系統管理員分配一個使用者名稱和密碼,就可以使用了。甚至可以線上申請,透過公司內部的安全認證(如CA證照)後,不需要人的參與,系統可以自動分配給使用者一個賬號進入系統。
C/S (Client/Server)結構,即大家熟知的客戶機和伺服器結構。它是軟體系統體系結構,透過它可以充分利用兩端硬體環境的優勢,將任務合理分配到Client端和Server端來實現,降低了系統的通訊開銷。目前大多數應用軟體系統都是Client/Server形式的兩層結構,由於現在的軟體應用系統正在向分散式的Web應用發展,Web和Client/Server 應用都可以進行同樣的業務處理,應用不同的模組共享邏輯元件;因此,內部的和外部的使用者都可以訪問新的和現有的應用系統,透過現有應用系統中的邏輯可以擴充套件出新的應用系統。這也就是目前應用系統的發展方向。
傳統的C/S體系結構雖然採用的是開放模式,但這只是系統開發一級的開放性,在特定的應用中無論是Client端還是Server端都還需要特定的軟體支援。由於沒能提供使用者真正期望的開放環境,C/S結構的軟體需要針對不同的作業系統系統開發不同版本的軟體, 加之產品的更新換代十分快,已經很難適應百臺電腦以上區域網使用者同時使用。而且代價高, 效率低。如我院使用的上海超蘭公司“案件統計”管理軟體就是典型的C/S體系結構管理軟體。
關於B/S和C/S架構的探析
當今世界科學技術飛速發展,尤其以通訊、計算機、網路為代表的網際網路技術更是日新月異,令人眼花燎亂,目不睱接。由於計算機網際網路在政治、經濟、生活等各個領域的發展、運用以及網路的迅速普及和全社會對網路的依賴程度,計算機網路已經成為國家的經濟基礎和命脈,成為社會和經濟發展強大動力,其地位越來越重要。但是,由於主流技術研發企業和使用者對“B/S”和“C/S”技術誰優誰劣、誰代表技術潮流發展等等問題的爭論不休,已經給檢察機關使用“OA(辦公)”和“案件管理”軟體工作開展帶來困惑,本文就此兩項技術發展變化和應用前景做些探討,供同行參考。
一、什麼是C/S和B/S
要想對“C/S”和“B/S”技術發展變化有所瞭解,首先必須搞清楚三個問題。
第一、什麼是C/S結構。
C/S(Client/Server)結構,即大家熟知的客戶機和伺服器結構。它是軟體系統體系結構,透過它可以充分利用兩端硬體環境的優勢,將任務合理分配到Client端和Server端來實現,降低了系統的通訊開銷。目前大多數應用軟體系統都是Client/Server形式的兩層結構,由於現在的軟體應用系統正在向分散式的Web應用發展,Web和Client/Server應用都可以進行同樣的業務處理,應用不同的模組共享邏輯元件;因此,內部的和外部的使用者都可以訪問新的和現有的應用系統,透過現有應用系統中的邏輯可以擴充套件出新的應用系統。這也就是目前應用系統的發展方向。
傳統的C/S體系結構雖然採用的是開放模式,但這只是系統開發一級的開放性,在特定的應用中無論是Client端還是Server端都還需要特定的軟體支援。由於沒能提供使用者真正期望的開放環境,C/S結構的軟體需要針對不同的作業系統系統開發不同版本的軟體,加之產品的更新換代十分快,已經很難適應百臺電腦以上區域網使用者同時使用。而且代價高,效率低。
第二、什麼是B/S結構。
B/S(Browser/Server)結構即瀏覽器和伺服器結構。它是隨著Internet技術的興起,對C/S結構的一種變化或者改進的結構。在這種結構下,使用者工作介面是透過WWW瀏覽器來實現,極少部分事務邏輯在前端(Browser)實現,但是主要事務邏輯在伺服器端(Server)實現,形成所謂三層3-tier結構。這樣就大大簡化了客戶端電腦載荷,減輕了系統維護與升級的成本和工作量,降低了使用者的總體成本(TCO)。
以目前的技術看,區域網建立B/S結構的網路應用,並透過Internet/Intranet模式下資料庫應用,相對易於把握、成本也是較低的。它是一次性到位的開發,能實現不同的人員,從不同的地點,以不同的接入方式(比如LAN,WAN,Internet/Intranet等)訪問和操作共同的資料庫;它能有效地保護資料平臺和管理訪問許可權,伺服器資料庫也很安全。特別是在JAVA這樣的跨平臺語言出現之後,B/S架構管理軟體更是方便、快捷、高效。
第三、管理軟體主流技術。
管理軟體技術的主流技術與管理思想一樣,也經歷了三個發展時期。首先,介面技術從上世紀DOS字元介面到Windows圖形介面(或圖形使用者介面GUI),直至Browser瀏覽器介面三個不同的發展時期。其次,今天所有電腦的瀏覽器介面,不僅直觀和易於使用,更主要的是基於瀏覽器平臺的任何應用軟體其風格都是一樣的,使用人對操作培訓的要求不高,而且軟體可操作性強,易於識別;再者,平臺體系結構也從過去單使用者發展到今天的檔案/伺服器(F/S)體系、客戶機/伺服器(C/S)體系和瀏覽器/伺服器(B/S)體系。
二、C/S和B/S之比較
C/S和B/S是當今世界開發模式技術架構的兩大主流技術。C/S是美國Borland公司最早研發,B/S是美國微軟公司研發。目前,這兩項技術以被世界各國所掌握,國內公司以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)實現,所有的客戶端只有瀏覽器,網路管理人員只需要做硬體維護。但是,應用伺服器執行資料負荷較重,一旦發生伺服器“崩潰”等問題,後果不堪設想。因此,許多單位都備有資料庫儲存伺服器,以防萬一。
3,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系列的BizTalk2000Exchange2000等,全面支援網路的構件搭建的系統。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等資訊流向的變化,更象交易中心。[@more@]
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/92289/viewspace-1044987/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- b/s架構和c/s架構(重點)架構
- C/S和B/S
- 『與善仁』Appium基礎 — 9、補充:C/S架構和B/S架構說明APP架構
- 系統開發中的B/S架構架構
- C/S,B/S的應用的區別
- Transformer和MoE架構比較ORM架構
- B/S與C/S的聯絡與區別
- 2018-09-12_B/S架構請求資料流程架構
- 2.k8s的架構K8S架構
- C/S系統快速開發架構框架(C#+Winform+SQL)架構框架C#ORMSQL
- K8s准入控制與RBAC比較K8S
- SAP ECC 和 S4HANA Material 物料庫存管理的模型比較模型
- K8S資料保護工具比較K8S
- Go 與 C++ 的對比和比較GoC++
- [C#] string 和 StringBuilder 的比較C#UI
- 醫院資訊系統原始碼(HIS)java語言B/S架構原始碼Java架構
- k8s高可用架構K8S架構
- 基於C#開發 B/S架構的實驗室管理系統 雲LIS系統(MVC + SQLserver + Redis)C#架構MVCSQLServerRedis
- String s="a"+"b"+"c",到底建立了幾個物件?物件
- c s s 選擇器
- 驗證Kubernetes YAML的六個工具比較 - learn8sYAML
- Hybris service layer和SAP CRM WebClient UI架構的橫向比較WebclientUI架構
- C++宏和函式的比較C++函式
- OData服務在SAP CRM,Cloud for Customer和S/4HANA上的實現比較Cloud
- k8s架構與元件詳解K8S架構元件
- [C++] 自定義C++比較器比較大小C++
- C與C++在函式和資料的比較C++函式
- Web3架構與傳統Web的比較 - thenewstackWeb架構
- SAP Spartacus B2B OrgUnit 和 OrgUser 的路由對映差異比較路由
- S2B2C商城系統解決方案分享
- c++ map和unordered_map比較C++
- 大前端技術選型總結和一些架構比較前端架構
- 測試速度比較:Selenium vs Playwright vs Cypress vs Puppeteer vs TestCafe
- 榮耀暢玩7C和聯想S5區別對比 聯想S5和榮耀暢玩7C哪個好?
- js 深比較和淺比較JS
- 數商雲S2B2C積分商城系統
- 食品行業S2B2C電商交易系統行業
- 生鮮行業S2B2C電商平臺行業
- 從架構到部署,全面瞭解K3s架構