1. 程式人生 > >MVC與B/S,C/S結構,三層架構/兩層架構 的關係

MVC與B/S,C/S結構,三層架構/兩層架構 的關係

MVC是指Model模型,View檢視和Control控制器,也就是業務邏輯,介面和使用者輸入,這樣劃分系統比較清晰,這是設計人員要考慮的事。
什麼是C/S結構。C/S (Client/Server)結構,即大家熟知的客戶機和伺服器結構。它是軟體系統體系結構,通過它可以充分利用兩端硬體環境的優勢,將任務合理分配到 Client端和Server端來實現,降低了系統的通訊開銷。目前大多數應用軟體系統都是Client/Server形式的兩層結構,由於現在的軟體應用系統正在向分散式的Web應用發展,Web和Client/Server 應用都可以進行同樣的業務處理,應用不同的模組共享邏輯元件;因此,內部的和外部的使用者都可以訪問新的和現有的應用系統,通過現有應用系統中的邏輯可以擴展出新的應用系統。這也就是目前應用系統的發展方向。

傳統的C/S體系結構雖然採用的是開放模式,但這只是系統開發一級的開放性,在特定的應用中無論是Client端還是Server端都還需要特定的軟體支援。由於沒能提供使用者真正期望的開放環境,C/S結構的軟體需要針對不同的作業系統系統開發不同版本的軟體,加之產品的更新換代十分快,已經很難適應百臺電腦以上區域網使用者同時使用。而且代價高,效率低。如我院使用的上海超蘭公司“案件統計”管理軟體就是典型的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等)訪問和操作共同的資料庫;它能有效地保護資料平臺和管理訪問許可權,伺服器資料庫也很安全。目前我院內網(Intranet)、外網(Internet)和北京東方清大公司“案件、辦公管理軟體”就是B/S 結構管理軟體,幹警在區域網各工作站通過WWW瀏覽器就能實現工作業務。特別是在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)實現,所有的客戶端只有瀏覽器,網路管理人員只需要做硬體維護。但是,應用伺服器執行資料負荷較重,一旦發生伺服器“崩潰”等問題,後果不堪設想。因此,許多單位都備有資料庫儲存伺服器,以防萬一。

  為了區別於傳統的C/S模式,才特意將其稱為B/S模式。認識到這些結構的特徵,對於系統的選型而言是很關鍵的。

  1、系統的效能
  在系統的效能方面,B/S佔有優勢的是其異地瀏覽和資訊採集的靈活性。任何時間、任何地點、任何系統,只要可以使用瀏覽器上網,就可以使用B/S系統的終端。

  不過,採用B/S結構,客戶端只能完成瀏覽、查詢、資料輸入等簡單功能,絕大部分工作由伺服器承擔,這使得伺服器的負擔很重。採用C/S結構時,客戶端和伺服器端都能夠處理任務,這雖然對客戶機的要求較高,但因此可以減輕伺服器的壓力。而且,由於客戶端使用瀏覽器,使得網上釋出的資訊必須是以HTML格式為主,其它格式檔案多半是以附件的形式存放。而HTML格式檔案(也就是Web頁面)不便於編輯修改,給檔案管理帶來了許多不便。

  2、系統的開發
  C/S結構是建立在中介軟體產品基礎之上的,要求應用開發者自己去處理事務管理、訊息佇列、資料的複製和同步、通訊安全等系統級的問題。這對應用開發者提出了較高的要求,而且迫使應用開發者投入很多精力來解決應用程式以外的問題。這使得應用程式的維護、移植和互操作變得複雜。如果客戶端是在不同的作業系統上,C/S結構的軟體需要開發不同版本的客戶端軟體。但是,與B/S結構相比,C/S技術發展歷史更為“悠久”。從技術成熟度及軟體設計、開發人員的掌握水平來看,C/S技術應是更成熟、更可靠的。

  3、系統的升級維護
  C/S系統的各部分模組中有一部分改變,就要關聯到其它模組的變動,使系統升級成本比較大。B/S與C/S處理模式相比,則大大簡化了客戶端,只要客戶端機器能上網就可以。對於B/S而言,開發、維護等幾乎所有工作也都集中在伺服器端,當企業對網路應用進行升級時,只需更新伺服器端的軟體就可以,這減輕了異地使用者系統維護與升級的成本。如果客戶端的軟體系統升級比較頻繁,那麼B/S架構的產品優勢明顯——所有的升級操作只需要針對伺服器進行,這對那些點多面廣的應用是很有價值的,例如一些招聘網站就需要採用B/S模式,客戶端分散,且應用簡單,只需要進行簡單的瀏覽和少量資訊的錄入。

  4、C/S 模式的優點和缺點
  ★ C/S 模式的優點
  ● 由於客戶端實現與伺服器的直接相連,沒有中間環節,因此響應速度快。
  ● 操作介面漂亮、形式多樣,可以充分滿足客戶自身的個性化要求。
  ● C/S結構的管理資訊系統具有較強的事務處理能力,能實現複雜的業務流程。

  ★ C/S 模式的缺點
  ● 需要專門的客戶端安裝程式,分佈功能弱,針對點多面廣且不具備網路條件的使用者群體,不能夠實現快速部署安裝和配置。
  ● 相容性差,對於不同的開發工具,具有較大的侷限性。若採用不同工具,需要重新改寫程式。
  ● 開發成本較高,需要具有一定專業水準的技術人員才能完成。

  5、B/S模式的優點和缺點
  ★ B/S 模式的優點
  ● 具有分佈性特點,可以隨時隨地進行查詢、瀏覽等業務處理。
  ● 業務擴充套件簡單方便,通過增加網頁即可增加伺服器功能。
  ● 維護簡單方便,只需要改變網頁,即可實現所有使用者的同步更新。
  ● 開發簡單,共享性強。

  ★ B/S 模式的缺點
  ● 個性化特點明顯降低,無法實現具有個性化的功能要求。
  ● 操作是以滑鼠為最基本的操作方式,無法滿足快速操作的要求。
  ● 頁面動態重新整理,響應速度明顯降低。
  ● 無法實現分頁顯示,給資料庫訪問造成較大的壓力。
  ● 功能弱化,難以實現傳統模式下的特殊功能要求。
  近年來,隨著軟硬體技術發展和人們意識的提高,Web應用得到廣泛的普及,一方面在網際網路浪潮的推動下,基於網際網路的資訊共享和電子商務不斷髮展,像新浪、搜狐、8848等大型網站不斷湧現出來,另一方面隨著Java、CGI等網路技術的成熟,基於B/S結構的大型軟體逐漸顯示出巨大的優勢。同時,也就產生了一個焦點問題,什麼樣的伺服器能夠滿足不同使用者的需求,怎麼能夠保證Web伺服器能夠長期穩定地執行,為了滿足這樣的需求Web測試也就同樣變得十分重要。

  當前Web測試主要通過Web測試工具加上良好的測試案例完成的,我們認為主要有以下兩種測試型別:基準測試、非基準測試。

  基準測試:主要指測試工具已經提供了標準的測試案例庫,包括靜態測試案例(HTM、JPG)、動態測試案例(CGI)和SSL測試案例等。這類測試工具分為測試案例庫、控制檯程式、客戶端程式三個部分。它的原理是,Web伺服器開啟特定的Web服務程式,並且執行上述測試案例,由控制檯程式控制各個客戶端按照一定的指令碼訪問順序遍歷Web伺服器的各個測試案例,每個請求完成後,各個客戶端向控制檯報告訪問的結構,當一個測試集完成後由控制檯將所有的資訊綜合統計,測試過程中控制檯還需要採用SNMP協議對伺服器進行實時監控,綜合兩個方面的因素可以反映出Web伺服器在不同壓力情況下的綜合性能。

  在測試過程中,主要影響測試結果的因素有網路環境、客戶端效能。目前無論IA架構伺服器還是SUN、HP、IBM的UNIX伺服器效能都越來越優越,有可能出現在100MB網路下不能夠提供足夠的網路壓力,有可能網路首先出現瓶頸,這樣就需要擴充套件到1000MB網路環境或使用多個網段對伺服器提供足夠的壓力,而穩定的客戶端對於測試來說也是十分重要的,因為客戶端如果出現效能下降,就會造成系統崩潰或者不能提供穩定的測試壓力從而導致測試結果出現偏差;一臺客戶端到底能夠穩定執行多少數量的連線是根據不同的硬體配置和作業系統決定的,因此對客戶端的硬體資源進行監控是保證客戶端可以穩定執行的必要手段。

  由於這類測試工具使用的是工具開發商提供的測試案例集,雖然也具有一定的權威性,但是目前再完美的測試案例集也不能涵蓋所有的Web應用情況,所以也不能夠完全體現出Web伺服器完整的效能,因此該類測試工具更加適合IT媒體對Web類伺服器軟硬體的橫向對比測試,在測試物件和環境大體統一的情況下,可以比較出各個測試物件的效能差異。而對於有實際應用背景的Web伺服器進行測試,使用這樣的測試工具就不適合了,我們在以後的測試漫談中會繼續介紹。

相關推薦

MVCB/S,C/S結構架構/架構關係

MVC是指Model模型,View檢視和Control控制器,也就是業務邏輯,介面和使用者輸入,這樣劃分系統比較清晰,這是設計人員要考慮的事。 什麼是C/S結構。C/S (Client/Server)結構,即大家熟知的客戶機和伺服器結構。它是軟體系統體系結構,通過它可以充分利

JavaWeb——B/S,C/S結構HTTP協議

B/S: 開發基於B/S結構專案:目前主要採用三種伺服器端語言:JSP,PHP,ASP.NET。 這三種語言構成三種常用應用開發組合:JSP+Oracle組合、PHP+MySQL體系、以及ASP.NET+SQL Server體系。 B/S 結構語言

B/S,C/S簡單介紹

exc ron 生存 餐桌 訪問速度 整體 連接 tro 建立 B/S,C/S 架構 硬件環境不同:C/S 一般建立在專用的網絡上, 小範圍裏的網絡環境, 局域網之間再通過專門服務器提供連接和數據交換服務. B/S 建立在廣域網之上的, 不必是專門的網絡硬件環境,例與電話

B/S C/S 的區別

C/S又稱Client/Server或客戶/伺服器模式。伺服器通常採用高效能的PC、工作站或小型機,並採用大型資料庫系統,如Oracle、Sybase、Informix或 SQL Server。客戶端需要安裝專用的客戶端軟體。 B/S是Brower/Server的縮寫,客戶機上只要安裝一個瀏覽

b/s,c/s架構請求模式

請求要素:請求方式:post,get,put,delete等;請求地址:url(域名 + 定義),請求頭header(包含cookie,請求內容格式的資訊),簡稱3要素。 步驟一:後臺程式設計,釋出介面,提供url 步驟二:前端使用url,請求方式,header請求伺服器

C++成員函數指針錯誤用法警示(成員函數指針高性能的C++委托篇)附好多評論

其中 崩潰 odin 包含 版本 msvc 測試平臺 可見 是你 今天做一個成績管理系統的並發引擎,用Qt做的,仿照QtConcurrent搞了個模板基類。這裏為了隱藏細節,隔離變化,把並發的東西全部包含在模板基類中。子類只需註冊需要並發執行的入口函數即可在單獨

TSQL:A表字段B表中的關聯關聯條件中一列是隨機關聯的實現方式

sql values order srp and eat 2.6 pre art A表字段與B表中的關聯,關聯條件中一列是隨機關聯的實現方式 1 create table test( 2 rsrp string, 3 rsrq string, 4 tke

【FZU - 1759】Super A^B mod C (數論快速冪快速乘尤拉降冪指數迴圈節模板)

題幹: Given A,B,C, You should quickly calculate the result of A^B mod C. (1<=A,C<=1000000000,1<=B<=10^1000000). Input There are mult

演算法題:AB玩遊戲若干輪獲勝方獲得該輪分數已知結束後AB得分求A最少獲勝次數

描述 A與B玩遊戲若干輪,獲勝方獲得該輪分數,已知結束後A,B得分,求A最少獲勝次數。 例如:A第1輪獲勝則A加1分,B不得分,A第2輪獲勝則A加2分,B不得分,以此類推。遊戲結束A共x分,B共y分,求A在所有輪次比賽中獲勝最少次數。 輸入:A,B遊戲結束

oc和swift實現演算法:一個人a年bc日出生abc數的乘積為428575這個人是什麼時候出生的?

題目: 一個人a年b月c日出生,a,b,c三數的乘積為428575,這個人是什麼時候出生的? 用Object-C實現: //一個人a年b月c日出生,a,b,c三數的乘積為428575,這個人是什麼時

描述J2EE框架的多結構並簡要說明各的作用。

異常 pre 接口 enc j2ee框架 業務邏輯 nta api res 描述J2EE框架的多層結構,並簡要說明各層的作用。 解答: 1) Presentation layer(表示層) a. 表示邏輯(生成界面代碼) b. 接收請求 c. 處理業務層

描述 J2EE 框架的多結構並簡要說明各的作用。

答: Presentation layer(表示層) a. 表示邏輯(生成介面程式碼) b. 接收請求 c. 處理業務層丟擲的異常 d. 負責規則驗證(資料格式,資料非空等) e. 流程控制 Service layer(服務層/業務層) a.封裝業務邏輯處理,並且對外暴露介

C語言中標頭檔案和原始檔的關係(轉)

//a.h void foo(); //a.c #include "a.h"   //我的問題出來了:這句話是要,還是不要? void foo() {      return; } //main.c #include "a.h" int main(int argc

個磁碟檔案A和B,各存放一行字母要求把這個檔案中的資訊合併(按字母順序排列)

#include "stdio.h" main() { FILE *fp; int i,j,n,ni; char c[160],t,ch; if((fp=fopen("A","r"))==NULL) {printf("file A cannot be open

c語言下關閉socket的種方式

c語言關閉socket的兩種方式 一、shutdown() #include<sys/socket.h> int shutdown(int sockfd,int how); how的方式有

普通程序員年成為年薪70w架構只因做到了這些

根據 相關 工程 stat 教學 研究 環境 不可 時代 每個程序員、或者說每個工作者都應該有自己的職業規劃,如果你不是富二代,不是官二代,也沒有職業規劃,希望你可以思考一下自己的將來。今天給大家分享的是一篇來自阿裏Java架構師對普通程序員的職業建議,希望對你有啟發。

HTML5簡介C/SB/S架構

html5簡介 c/s與b/s架構 HTML5簡介:HTML5是萬維網的核心語言、標準通用標記語言下的一個應用超文本標記語言的第五個版本,所以才稱為HTML5。在HTML4之前都不會帶上版本的都統一稱為HTML,但是因為在HTML的第五個版本改動比較大,與HTML4和之前的版有較大的區別,在這一版本中

B/S結構服務器端的結構分析部分實現

生成 因此 puts kit 服務器 請求 cati 集成 servers 1.1 簡述 瀏覽器在訪問一個IP地址的時候,一般會自動在地址前方加上HTTP:// 表示其基於http協議訪問。 一般而言,http跟tcp在本質上沒有區別。 tcp連接的過程,在JAVA語言中

B/SC/S結構的異同

B/S B/S結構即瀏覽器和伺服器結構,B/S結構是WEB興起後的一種網路結構模式,WEB瀏覽器是客戶端最主要的應用軟體。這種模式統一了客戶端,將系統功能實現的核心部分集中到伺服器上,簡化了系統的開發、維護和使用。客戶機上只要安裝一個瀏覽器(Browser),

B/S系統MVC結構詳解

我們平時總是將三層架構與MVC混為一談,殊不知它倆並不是一個概念。 下面我來為大家揭曉我所知道的一些真相。 首先,它倆根本不是一個概念。 三層架構是一個分層式的軟體體系架構設計,它可適用於任何一個專案。 MVC是一個設計模式,它是根據專案的具體需求來決定是否適