CS與BS模型的優(yōu)缺點(diǎn)分析 2320110002_第1頁(yè)
CS與BS模型的優(yōu)缺點(diǎn)分析 2320110002_第2頁(yè)
CS與BS模型的優(yōu)缺點(diǎn)分析 2320110002_第3頁(yè)
CS與BS模型的優(yōu)缺點(diǎn)分析 2320110002_第4頁(yè)
CS與BS模型的優(yōu)缺點(diǎn)分析 2320110002_第5頁(yè)
已閱讀5頁(yè),還剩5頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

B/S模型與C/S模型的優(yōu)缺點(diǎn)分析當(dāng)今世界科學(xué)技術(shù)飛速發(fā)展,尤其以通信、計(jì)算機(jī)、網(wǎng)絡(luò)為代表的互聯(lián)網(wǎng)技術(shù)更是日新月異,令人眼花燎亂,目不暇接。由于計(jì)算機(jī)互聯(lián)網(wǎng)在政治、經(jīng)濟(jì)、生活等各個(gè)領(lǐng)域的發(fā)展、運(yùn)用以及網(wǎng)絡(luò)的迅速普及和全社會(huì)對(duì)網(wǎng)絡(luò)的依賴(lài)程度,計(jì)算機(jī)網(wǎng)絡(luò)已經(jīng)成為國(guó)家的經(jīng)濟(jì)基礎(chǔ)和命脈,成為社會(huì)和經(jīng)濟(jì)發(fā)展強(qiáng)大動(dòng)力,其地位越來(lái)越重要。但是,由于主流技術(shù)研發(fā)企業(yè)和用戶對(duì)“B/S”和“C/S”技術(shù)誰(shuí)優(yōu)誰(shuí)劣、誰(shuí)代表技術(shù)潮流發(fā)展等等問(wèn)題的爭(zhēng)論不休,已經(jīng)給檢察機(jī)關(guān)使用“OA(辦公)”和“案件管理”軟件工作開(kāi)展帶來(lái)困惑.在討論B/S模型與C/S模型的優(yōu)缺點(diǎn)之前,先簡(jiǎn)單的了解一下C/S結(jié)構(gòu)以及B/S結(jié)構(gòu)。C/S結(jié)構(gòu),即Client/Server(M戶機(jī)/服務(wù)器)結(jié)構(gòu),是一種常見(jiàn)的軟件系統(tǒng)體系結(jié)構(gòu),它是軟件系統(tǒng)體系結(jié)構(gòu),通過(guò)它可以充分利用兩端硬件環(huán)境的優(yōu)勢(shì),將任務(wù)合理分配到Client端和Server端來(lái)實(shí)現(xiàn),降低了系統(tǒng)的通訊開(kāi)銷(xiāo)。目前大多數(shù)應(yīng)用軟件系統(tǒng)都是Client/Server形式的兩層結(jié)構(gòu),由于現(xiàn)在的軟件應(yīng)用系統(tǒng)正在向分布式的 Web應(yīng)用發(fā)展,Web和Client/Server應(yīng)用都可以進(jìn)行同樣的業(yè)務(wù)處理,應(yīng)用不同的模塊共享邏輯組件;因此,內(nèi)部的和外部的用戶都可以訪問(wèn)新的和現(xiàn)有的應(yīng)用系統(tǒng),通過(guò)現(xiàn)有應(yīng)用系統(tǒng)中的邏輯可以擴(kuò)展出新的應(yīng)用系統(tǒng)。這也就是目前應(yīng)用系統(tǒng)的發(fā)展方向。B/S(Browser/Server)結(jié)構(gòu)即瀏覽器和服務(wù)器結(jié)構(gòu)。它是隨著Internet技術(shù)的興起,對(duì)C/S結(jié)構(gòu)的一種變化或者改進(jìn)的結(jié)構(gòu)。在這種結(jié)構(gòu)下,用戶工作界面是通過(guò)WWW瀏覽器來(lái)實(shí)現(xiàn),極少部分事務(wù)邏輯在前端(Browser)實(shí)現(xiàn),但是主要事務(wù)邏輯在服務(wù)器端(Server)實(shí)現(xiàn),形成所謂三層3-tier結(jié)構(gòu)。這樣就大大簡(jiǎn)化了客戶端電腦載荷,減輕了系統(tǒng)維護(hù)與升級(jí)的成本和工作量,降低了用戶的總體成本(TCO)。以目前的技術(shù)看,局域網(wǎng)建立B/S結(jié)構(gòu)的網(wǎng)絡(luò)應(yīng)用,并通過(guò)Internet/Intranet模式下數(shù)據(jù)庫(kù)應(yīng)用,相對(duì)易于把握、成本也是較低的。它是一次性到位的開(kāi)發(fā),能實(shí)現(xiàn)不同的人員,從不同的地點(diǎn),以不同的接入方式(比如LAN,WAN,Internet/Intranet等)訪問(wèn)和操作共同的數(shù)據(jù)庫(kù);它能有效地保護(hù)數(shù)據(jù)平臺(tái)和管理訪問(wèn)權(quán)限,服務(wù)器數(shù)據(jù)庫(kù)也很安全。目前我院內(nèi)網(wǎng)(Intranet)、外網(wǎng)(Internet)和北京東方清大公司“案件、辦公管理軟件”就是B/S結(jié)構(gòu)管理軟件,干警在局域網(wǎng)各工作站通過(guò)WWW瀏覽器就能實(shí)現(xiàn)工作業(yè)務(wù)。特別是在JAVA這樣的跨平臺(tái)語(yǔ)言出現(xiàn)之后,B/S架構(gòu)管理軟件更是方便、快捷、高效。管理軟件技術(shù)的主流技術(shù)與管理思想一樣,也經(jīng)歷了三個(gè)發(fā)展時(shí)期。首先,界面技術(shù)從上世紀(jì)DOS字符界面到Windows圖形界面(或圖形用戶界面GUI),直至Browser瀏覽器界面三個(gè)不同的發(fā)展時(shí)期。其次,今天所有電腦的瀏覽器界面,不僅直觀和易于使用,更主要的是基于瀏覽器平臺(tái)的任何應(yīng)用軟件其風(fēng)格都是一樣的,使用人對(duì)操作培訓(xùn)的要求不高,而且軟件可操作性強(qiáng),易于識(shí)別;再者,平臺(tái)體系結(jié)構(gòu)也從過(guò)去單用戶發(fā)展到今天的文件/服務(wù)器(F/S)體系、客戶機(jī)/服務(wù)器(C/S)體系和瀏覽器/服務(wù)器(B/S)體系。傳統(tǒng)的C/S體系結(jié)構(gòu)雖然采用的是開(kāi)放模式,但這只是系統(tǒng)開(kāi)發(fā)一級(jí)的開(kāi)放性,在特定的應(yīng)用中無(wú)論是Client端還是Server端都還需要特定的軟件支持。由于沒(méi)能提供用戶真正期望的開(kāi)放環(huán)境,C/S結(jié)構(gòu)的軟件需要針對(duì)不同的操作系統(tǒng)系統(tǒng)開(kāi)發(fā)不同版本的軟件,加之產(chǎn)品的更新?lián)Q代十分快,已經(jīng)很難適應(yīng)百臺(tái)電腦以上局域網(wǎng)用戶同時(shí)使用。而且代價(jià)高,效率低。如我院使用的上海超蘭公司“案件統(tǒng)計(jì)”管理軟件就是典型的C/S體系結(jié)構(gòu)管理軟件。B/S難于提供好的用戶交互體驗(yàn)。這里頭的最大問(wèn)題有幾個(gè):(1)無(wú)狀態(tài)的HTTP協(xié)議Windows窗體間可以通過(guò)內(nèi)存直接交換信息,但作為B/S架構(gòu)通訊基礎(chǔ)協(xié)議的HTTP是無(wú)狀態(tài)的。如果將瀏覽器看成是客人,WebServer看成是旅館,在HTTP協(xié)議的管理之下,會(huì)出現(xiàn)這種情況:不管某客人來(lái)訪多少次,WebServer都將其視為第一次的訪客。這樣一來(lái),客人每次都得帶齊身份證件供旅館工作人員“驗(yàn)明正身”°HTTP協(xié)議的無(wú)狀態(tài),導(dǎo)致WebServer的“六親不認(rèn)”,這固然能增加WebServer的吞吐量,卻給應(yīng)用系統(tǒng)的開(kāi)發(fā)帶來(lái)了麻煩。因?yàn)閼?yīng)用系統(tǒng)中往往有許多業(yè)務(wù)處理流程,天生就是信息流轉(zhuǎn)的,即原始數(shù)據(jù)從一端進(jìn)去,從另一端出來(lái)時(shí)應(yīng)該已經(jīng)過(guò)某些處理,怎可想象整個(gè)業(yè)務(wù)流程中的信息會(huì)流失?于是,在HTTP各請(qǐng)求間共享信息就成了件麻煩事,這就是HTTP請(qǐng)求的“狀態(tài)保持”問(wèn)題。每個(gè)B/S系統(tǒng)都必須解決這個(gè)問(wèn)題。微軟想了一些“歪招”,比如充分利用HTML網(wǎng)頁(yè)的中隱藏域,再在WebServer上做些手腳,于是ASP.NET擁有了一套在各個(gè)HTTP請(qǐng)求之間維持狀態(tài)的技術(shù):Session,Cookie,ViewState,Profile,Application。然而問(wèn)題并沒(méi)有完全解決。比如,C/S系統(tǒng)中常見(jiàn)的收集用戶輸入信息的對(duì)話框,主窗體與對(duì)話框之間有著信息的交換(又分為兩種:模式的和非模式的,前者對(duì)話框不關(guān)掉,主窗體不能被激活),在B/S架構(gòu)之下,由于瀏覽器的每個(gè)請(qǐng)求是獨(dú)立的,要在兩個(gè)獨(dú)立的瀏覽器窗口間實(shí)現(xiàn)類(lèi)似于模式對(duì)話框這種直接的信息交換,我還真不知道該怎樣干。AJAX使用以下這種的方法來(lái)“摸擬”出模式窗體:將主窗體與對(duì)話框“合二為一”,對(duì)話框在HTML中就是一個(gè)div元素,平時(shí)是隱藏的,需要時(shí)再顯示它。微軟的AJAXControlToolkit中甚至為這一功能設(shè)計(jì)了一個(gè)控件。諸如此類(lèi)的小伎倆,在B/S開(kāi)發(fā)中不勝枚舉??梢钥吹?,許多在C/S輕而易舉就可實(shí)現(xiàn)的功能,在B/S中要實(shí)現(xiàn)則大費(fèi)周章。(2)特殊的運(yùn)行環(huán)境一一瀏覽器B/S系統(tǒng)的前端運(yùn)行環(huán)境是瀏覽器,這就帶來(lái)了諸多的限制,不能干許多事,比如直接訪問(wèn)硬件(例如打印機(jī)),也無(wú)法充分利用硬件的資源。例如,現(xiàn)在的新電腦都是雙核的,你能直接用JavaScript加HTML寫(xiě)出一個(gè)多線程程序以充分利用這兩顆“奔騰的芯”?而C/S系統(tǒng)則直接運(yùn)行在OS(操作系統(tǒng))之上,可以調(diào)用OS提供的所有功能,這種限制就不存在了。(3)尷尬的Web客戶端編程語(yǔ)言一JavaScript傳統(tǒng)的C/S程序,可以使用為數(shù)眾多的各種開(kāi)發(fā)語(yǔ)言,尤其是象C++,Java,C#之類(lèi)主流面向?qū)ο笳Z(yǔ)言,功能強(qiáng)大,使用方便,各種開(kāi)發(fā)工具齊備,已非常成熟。與此相反,B/S前端所使用最多的編程語(yǔ)言JavaScript,不僅不讓人喜歡,甚至讓許多程序員“恨之入骨”,將“用JavaScript編程”看成是件苦差事。讓我們來(lái)看看JavaScript的兩大硬傷。首先,缺乏清晰而統(tǒng)一的編程模型。JavaScript雖然名字中有一個(gè)Java,并采用了類(lèi)似的語(yǔ)法,但與真正的Java并無(wú)關(guān)系。唉,她本身是一只丑小鴨,總想著攀上天鵝這門(mén)親,卻沒(méi)想到別人并不買(mǎi)賬。JavaScript用到了許多對(duì)象,但說(shuō)它是面向?qū)ο蟮陌?,又?shí)在難以令人信服(面向?qū)ο缶幊痰幕締卧穷?lèi)),比如它沒(méi)有類(lèi)似于C#等主流面向?qū)ο笳Z(yǔ)言的關(guān)鍵字class,到處是一個(gè)個(gè)的函數(shù),這就使所有的代碼難于以類(lèi)的方式清晰界定同時(shí),它又不是結(jié)構(gòu)化的(結(jié)構(gòu)化編程的基本單元是函數(shù)),因?yàn)闉g覽器在解析HTML文檔時(shí),是采用流式解讀方式,從而導(dǎo)致一些JavaScript代碼被放在函數(shù)之外,在解析HTML文檔時(shí)直接執(zhí)行,而另一部分放到函數(shù)中的代碼,則多采用事件驅(qū)動(dòng)的方式運(yùn)行,這就帶來(lái)了復(fù)雜的程序執(zhí)行流程,遠(yuǎn)不如純結(jié)構(gòu)化編程中統(tǒng)一采用函數(shù)調(diào)用的編程方式簡(jiǎn)潔。這樣看來(lái),JavaScript兼具面向?qū)ο?,結(jié)構(gòu)化,非結(jié)構(gòu)化三種編程方式的特點(diǎn),但卻弄得不倫不類(lèi),沒(méi)有一個(gè)清晰而統(tǒng)一的編程模型,難于寫(xiě)出結(jié)構(gòu)清晰易于維護(hù)的代碼,反而帶來(lái)了許多混亂。其次,JavaScript的另一硬傷是它的瀏覽器運(yùn)行環(huán)境。由于歷史的原因,不同的瀏覽器,甚至同一瀏覽器的不同版本,其編程模型都有或多或少的差別,因而不得不寫(xiě)代碼檢測(cè)瀏覽器類(lèi)型,比如需要為IE寫(xiě)一套代碼,又為FireFox寫(xiě)另一套。這實(shí)在是一件麻煩事。上述這些問(wèn)題,幾乎是B/S架構(gòu)系統(tǒng)“與生俱來(lái)”的“缺陷”。先天不足后天補(bǔ),人們想出了許多招數(shù)來(lái)解決這些問(wèn)題。AJAX是眾人看好的希望之星。這些年來(lái),人們系統(tǒng)地了解了一下微軟的AJAX框架。發(fā)現(xiàn)這一框架的復(fù)雜遠(yuǎn)遠(yuǎn)超過(guò)大家原先的估計(jì),微軟設(shè)計(jì)AJAX框架的工程師們,將各項(xiàng)Web開(kāi)發(fā)技術(shù)的潛力發(fā)掘得很深,在很大程度上彌補(bǔ)了前面提出的問(wèn)題。(1)對(duì)JavaScript語(yǔ)言的擴(kuò)充:微軟通過(guò)提供封裝好的AJAXLibrary,增強(qiáng)了JavaScript的面向?qū)ο筇匦裕梢苑奖銓?shí)現(xiàn)繼承,定義接口,序列化對(duì)象,引發(fā)事件,反射類(lèi)型等功能,雖然比真正的面向?qū)ο笳Z(yǔ)言(比如Java/C#)還有差距,但能將“丑陋”的JavaScript打扮得可以見(jiàn)人,也算是功力不凡。(2)大幅度提升瀏覽器端代碼的功能在AJAXLibrary支持之下,配合增強(qiáng)功能的JavaScript,在瀏覽器本身的支持之下,可以在瀏覽器中寫(xiě)JavaScript腳本,方便地向服務(wù)器發(fā)出異步請(qǐng)求,實(shí)現(xiàn)頁(yè)面局部刷新,并可以直接調(diào)用WebService。(3)引入基于組件的開(kāi)發(fā)(CBD)方式基于組件的開(kāi)發(fā)(CBD)早已是面向?qū)ο笙到y(tǒng)的主流開(kāi)發(fā)方式,雖然現(xiàn)在SOA(基于服務(wù)的架構(gòu))炒作得熱鬧非凡,但要達(dá)到CBD那樣的成熟程度,還需要時(shí)間。對(duì)于JavaScript而言,別說(shuō)SOA,能實(shí)現(xiàn)CBD都很困難。為了實(shí)現(xiàn)CBD,微軟給JavaScript“大補(bǔ)特補(bǔ)”,增強(qiáng)了許多特性,基于MicrosoftAJAXLibrary,程序員可以開(kāi)發(fā)三種類(lèi)型的可復(fù)用組件:None_VisualComponent(不可視的組件,相當(dāng)于面向?qū)ο笙到y(tǒng)中的一些提供公用功能的類(lèi))、Behavior(行為,擴(kuò)充現(xiàn)有Web控件的功能)、Control(擁有可視化界面元素的Web控件)。尤其是AJAXControlToolKit中提供的幾十個(gè)控件,基本上實(shí)現(xiàn)了B/S對(duì)C/S用戶界面大部分特性的摸擬,是這一新編程模型應(yīng)用的典范。微軟對(duì)JavaScript編程模型的增強(qiáng),使軟件工程師終于可以用CBD的開(kāi)發(fā)方式開(kāi)發(fā)Web客戶端代碼。我認(rèn)為,這是一個(gè)進(jìn)步。(4)增強(qiáng)的服務(wù)器端能力為了增強(qiáng)瀏覽器端代碼的能力,必須通過(guò)服務(wù)器端予以配合。AJAX本身就基于Browser與WebServer相互支持的編程模型(WebServer提供數(shù)據(jù)服務(wù),Browser提供XMLHttpRequest對(duì)象可向WebServer發(fā)出異步請(qǐng)求,當(dāng)數(shù)據(jù)回來(lái)時(shí),程序員可以用JavaScript編寫(xiě)代碼實(shí)現(xiàn)對(duì)網(wǎng)頁(yè)的動(dòng)態(tài)局部更新)。通過(guò)AJAXExtension,微軟增強(qiáng)了服務(wù)器端ASP.NET框架的功能。并將常用的功能外化為簡(jiǎn)單的Web控件,比如AJAX的核心控件ScriptManager,用于定義頁(yè)面可更新區(qū)域的UpdatePanel,還有用于增強(qiáng)現(xiàn)有ASP.NET控件的位于AJAXControlToolkit中的幾十個(gè)Extender控件(即附加到現(xiàn)有控件上的控件,其目的是給現(xiàn)有控件擴(kuò)充新的功能》。擁有了這些控件,開(kāi)發(fā)Web前端程序就類(lèi)似于在VB中設(shè)計(jì)窗體了。現(xiàn)在不僅僅是可以繪出類(lèi)似于Windows窗體的界面,而且通過(guò)利用AJAX的異步請(qǐng)求與頁(yè)面的局部刷新技術(shù),在Web服務(wù)器的配合之下,可以在用戶體驗(yàn)上逼進(jìn)Windows窗體。不管多少人如何看不起VB,但VB所帶來(lái)的可視化編程普及浪潮,的確影響深遠(yuǎn),微軟推動(dòng)JavaScript編程走向這一步,也是大勢(shì)所趨。為了提高Web開(kāi)發(fā)的效率,必須走這一步。然而,需要指出的是,不管后天如何“進(jìn)補(bǔ)”,畢竟“先天不足”B/S架構(gòu)要在用戶體驗(yàn)這點(diǎn)上超過(guò)C/S,還是非常困難。由于管理與部署的簡(jiǎn)便性,B/S架構(gòu)成為當(dāng)今許多信息系統(tǒng)的首選,然而,用戶是追求好的使用體驗(yàn)的,大體總結(jié)起來(lái),有以下要求:(1)漂亮的界面。這點(diǎn)B/S有優(yōu)勢(shì)。(2)方便的輸入。比如許多用戶都希望能不用鼠標(biāo)就可以錄入數(shù)據(jù),或者是通過(guò)簡(jiǎn)單的點(diǎn)擊實(shí)現(xiàn)數(shù)據(jù)的自動(dòng)填充,在B/S架構(gòu)下實(shí)現(xiàn)起來(lái)比較麻煩,AJAX可以在一定程度上解決這個(gè)問(wèn)題。(3)閃電般的速度。對(duì)于C/S而言,要實(shí)現(xiàn)響應(yīng)速度快,有許多的法子可想,可B/S就不容易了。由于受到瀏覽器的限制,客戶端強(qiáng)大的硬件資源幾乎是被閑置的。另外,網(wǎng)絡(luò)速度是B/S架構(gòu)的瓶頸,除非帶寬能有快速的增長(zhǎng),否則,WWW就是WorldWideWaitC/S雖然擁有好的用戶體驗(yàn),但它的問(wèn)題在于開(kāi)發(fā)跨越整個(gè)互聯(lián)網(wǎng)的分布式系統(tǒng)困難,而且由于需要安裝客戶端,系統(tǒng)更新與組件版本管理就成了一個(gè)大問(wèn)題,此外,不象B/S架構(gòu)中只需考慮服務(wù)器端的問(wèn)題,在C/S架構(gòu)由于多用戶同時(shí)訪問(wèn)服務(wù)器,各組件間的調(diào)用和依賴(lài)關(guān)系復(fù)雜,在處理多線程訪問(wèn)共享資源,事務(wù)處理等方面必須同時(shí)考慮客戶端與服務(wù)器端,吞吐量受到大的限制。因此,C/S多建構(gòu)于局域網(wǎng)內(nèi),供企業(yè)內(nèi)部使用。目前基本上是B/S與C/S共存,隨著諸如AJAX之類(lèi)B/S技術(shù)的廣泛應(yīng)用,B/S不斷攻城掠地,占有上風(fēng),但不可能將C/S徹底地“打垮”。比較有意思的是:象微軟這樣的大公司,是如何看待B/S與C/S發(fā)展前途的?我等普通開(kāi)發(fā)者,沒(méi)有機(jī)會(huì)直接與微軟高層對(duì)話,但可以從其公司的產(chǎn)品發(fā)展路線看出一些端倪:微軟似乎并未認(rèn)為B/S代表著未來(lái)的技術(shù)發(fā)展方向,相反,它的許多行動(dòng),都向著拋棄瀏覽器的方向在走。首先,微軟簡(jiǎn)化了C/S的開(kāi)發(fā)與部署問(wèn)題,推出了SmartClient技術(shù),讓C/S客戶端程序的更新可以無(wú)需人工干預(yù),自動(dòng)進(jìn)行。其次,微軟努力彌補(bǔ)B/S與C/S兩者間的鴻溝,在設(shè)計(jì)ASP.NET時(shí),毅然拋棄已取得不錯(cuò)業(yè)績(jī)的ASP,直接采用類(lèi)似于VB的“可視化控件+事件驅(qū)動(dòng)”編程方式,甚至將Web頁(yè)面也稱(chēng)為“Form”——WebForm。第三,微軟可能認(rèn)為AJAX是一種過(guò)渡性質(zhì)的技術(shù)。微軟在AJAX上遲遲不見(jiàn)動(dòng)作,直到看到由于Google等公司成功應(yīng)用AJAX技術(shù)提升Web用戶體驗(yàn)而導(dǎo)致AJAX的迅速竄紅時(shí),才行動(dòng)起來(lái),給ASP,NET加上AJAX擴(kuò)展,整個(gè)過(guò)程中顯然行動(dòng)并不積極,投入的資源也并不多,這與當(dāng)年微軟與網(wǎng)景公司展開(kāi)瀏覽器大戰(zhàn)時(shí)完全不一樣。但從其在VS2008中將AJAXExtension內(nèi)置為標(biāo)準(zhǔn)配置,并直接集成JavaScript的調(diào)試功能到IDE中,說(shuō)明微軟還是面對(duì)現(xiàn)實(shí)的,它承認(rèn)AJAX擁有重要的地位與較大的發(fā)展?jié)摿?。其?shí),我分析微軟的野心是“一統(tǒng)天下”,拋棄瀏覽器,徹底統(tǒng)一B/S與C/S。這點(diǎn)在.NET3.0/3.5中看得很清楚。首先,微軟用WCF統(tǒng)一了DCOM,.NETRemoting等主要用于C/S的技術(shù),集成了原先位于COM+中的許多企業(yè)化開(kāi)發(fā)特性,連同主要用于B/S架構(gòu)的WebService技術(shù),統(tǒng)一地抽象并封裝為可復(fù)用的WCFService。很明顯,微軟要將信息系統(tǒng)開(kāi)發(fā)模式由CBD轉(zhuǎn)為SOA(即未來(lái)的系統(tǒng)是組裝Service,而非組裝Component)。其次,微軟拋棄了非常成熟的Window桌面程序編程模型(Win32API+消息/事件驅(qū)動(dòng))引入了一個(gè)全新的WPF編程框架,其中的一個(gè)重大的革新是符合XML規(guī)范的XAML(應(yīng)用程序標(biāo)記語(yǔ)言)的出現(xiàn)。XAML用XML格式純文本文件來(lái)描述應(yīng)用程序界面。我們可以很容易地將XAML與XHTML進(jìn)行類(lèi)比。瀏覽器解析XHTML代碼,生成可視化的網(wǎng)頁(yè)界面,而XAML則由.NETFramework虛擬機(jī)負(fù)責(zé)解析,在Vista中,由于Vista直接集成.NETFramework3.0,就可以將Vista看成是一個(gè)超級(jí)瀏覽器,由它負(fù)責(zé)讀入XAML生成用戶界面,并實(shí)現(xiàn)其所有應(yīng)用程序功能。這樣一來(lái),一種新的編程模型浮出水面,不管刷/S還是C/S的系統(tǒng),其方式都是統(tǒng)一的:讀入XAML代碼3解析3呈現(xiàn)3接收用戶輸入3處理數(shù)據(jù)3顯示結(jié)果。在這個(gè)編程模型中,瀏覽器成了一個(gè)旁觀者,不再是客戶端應(yīng)用的核心。新編程模型的運(yùn)行平臺(tái)是全功能的OS,而非功能受限的瀏覽器。這個(gè)區(qū)別是巨大的,一個(gè)運(yùn)行于OS之上的瀏覽器,其功能怎能和OS自身相比!現(xiàn)在可以通過(guò)按面向?qū)ο蠓绞浇M織起來(lái)的操作系統(tǒng)API(應(yīng)用程序編程接口)方便地調(diào)用操作系統(tǒng)的各種功能,充分利用客戶端的硬件資源 (比如可以很容易地在.NETFramework之上開(kāi)發(fā)多線程程序,“壓榨”雙核CPU的工作能力)。用戶界面都用XAML來(lái)描述,這就統(tǒng)一了B/S與C/S的界面層技術(shù)。WPF最適合的運(yùn)行環(huán)境是Vista操作系統(tǒng),它的一個(gè)功能子集,現(xiàn)在稱(chēng)為Silverlight,被實(shí)現(xiàn)為一個(gè)瀏覽器插件,從而讓W(xué)PF程序也能跑在傳統(tǒng)的瀏覽器中。由于Silverlight和Vista本身都可以解析XAML,所以,現(xiàn)在可以用XAML只寫(xiě)一套界面代碼,就同時(shí)適用于B/S與C/S,并獲得相同的用戶體驗(yàn)。由于B/S和AJAX存在著一些先天不足,如果將經(jīng)過(guò)AJAX增強(qiáng)功能的B/S系統(tǒng)比喻為一個(gè)舞者,那么,這其實(shí)是一位帶著鐐銬跳舞的舞者,而微軟公司的想法是,與其不斷想法減輕這一鐐銬的重量,為何不干脆直接拋棄這一鐐銬呢?微軟推出WPF與WCF,就是這樣的一個(gè)嘗試。應(yīng)該來(lái)說(shuō),微軟公司的這套發(fā)展戰(zhàn)略是建立在對(duì)現(xiàn)有B/S與C/S各自的優(yōu)缺點(diǎn)分析的基礎(chǔ)之上而制訂的,有它的科學(xué)性,也考慮到了自身的商業(yè)利益。但這一戰(zhàn)略最終實(shí)現(xiàn)還有許多困難,因?yàn)榧词箯?qiáng)大如微軟,也無(wú)法一統(tǒng)江湖。微軟的對(duì)手與微軟一樣聰明,技術(shù)進(jìn)步同樣迅速。可以斷言,由于信息系統(tǒng)應(yīng)用的延續(xù)性,在相當(dāng)長(zhǎng)的一段時(shí)間內(nèi)(也許有三五年,也可能有五到十年),B/S與C/S將同時(shí)并存,由于B/S許多突出的優(yōu)良特性,在與C/S的競(jìng)爭(zhēng)中將占上風(fēng),這個(gè)局面不會(huì)有大的改變。對(duì)于AJAX,作為B/S系統(tǒng)的一個(gè)重量級(jí)武器,雖然很有效,但存在不少缺陷,我對(duì)于它的未來(lái)發(fā)展,抱有謹(jǐn)慎的樂(lè)觀態(tài)度,不過(guò),作為一名Web開(kāi)發(fā)者,應(yīng)該去了解并應(yīng)用這一技術(shù)。綜上所述,B/S模型與C/S模型的具體優(yōu)缺點(diǎn)及其對(duì)比大致可歸納如下:一、B/S模式的優(yōu)點(diǎn)和缺點(diǎn):1、B/S結(jié)構(gòu)的優(yōu)點(diǎn)(1) 、具有分布性特點(diǎn),可以隨時(shí)隨地進(jìn)行查詢、瀏覽等業(yè)務(wù)處理。(2) 、業(yè)務(wù)擴(kuò)展簡(jiǎn)單方便,通過(guò)增加網(wǎng)頁(yè)即可增加服務(wù)器功能。(3) 、維護(hù)簡(jiǎn)單方便,只需要改變網(wǎng)頁(yè),即可實(shí)現(xiàn)所有用戶的同步更新。(4)、開(kāi)發(fā)簡(jiǎn)單,共享性強(qiáng)2、B/S模式的缺點(diǎn)(1) 、個(gè)性化特點(diǎn)明顯降低,無(wú)法實(shí)現(xiàn)具有個(gè)性化的功能要求。(2) 、操作是以鼠標(biāo)為最基本的操作方式,無(wú)法滿足快速操作的要求。(3) 、頁(yè)面動(dòng)態(tài)刷新,響應(yīng)速度明顯降低。(4) 、無(wú)法實(shí)現(xiàn)分頁(yè)顯示,給數(shù)據(jù)庫(kù)訪問(wèn)造成較大的壓力。(5) 、功能弱化,難以實(shí)現(xiàn)傳統(tǒng)模式下的特殊功能要求。二、 C/S模式的優(yōu)點(diǎn)和缺點(diǎn)1、 C/S模式的優(yōu)點(diǎn)(1) 由于客戶端實(shí)現(xiàn)與服務(wù)器的直接相連,沒(méi)有中間環(huán)節(jié),因此響應(yīng)速度快。(2) 操作界面漂亮、形式多樣,可以充分滿足客戶自身的個(gè)性化要求。(3) C/S結(jié)構(gòu)的管理信息系統(tǒng)具有較強(qiáng)的事務(wù)處理能力,能實(shí)現(xiàn)復(fù)雜的業(yè)務(wù)流程。2、 C/S模式的缺點(diǎn)(1) 需要專(zhuān)門(mén)的客戶端安裝程序,分布功能弱,針對(duì)點(diǎn)多面廣且不具備網(wǎng)絡(luò)條件的用戶群體,不能夠?qū)崿F(xiàn)快速部署安裝和配置。(2) 兼容性差,對(duì)于不同的開(kāi)發(fā)工具,具有較大的局限性。若采用不同工具,需要重新改寫(xiě)程序。(3) 開(kāi)發(fā)成本較高,需要具有一定專(zhuān)業(yè)水準(zhǔn)的技術(shù)人員才能完成。三、 B/S架構(gòu)軟件的優(yōu)勢(shì)與劣勢(shì)1、 維護(hù)和升級(jí)方式簡(jiǎn)單。目前,軟件系統(tǒng)的改進(jìn)和升級(jí)越來(lái)越頻繁,C/S系統(tǒng)的各部分模塊中有一部分改變,就要關(guān)聯(lián)到其它模塊的變動(dòng),使系統(tǒng)升級(jí)成本比較大°B/S與C/S處理模式相比,則大大簡(jiǎn)化了客戶端,只要客戶端機(jī)器能上網(wǎng)就可以。對(duì)于B/S而言,開(kāi)發(fā)、維護(hù)等幾乎所有工作也都集中在服務(wù)器端,當(dāng)企業(yè)對(duì)網(wǎng)絡(luò)應(yīng)用進(jìn)行升級(jí)時(shí),只需更新服務(wù)器端的軟件就可以,這減輕了異地用戶系統(tǒng)維護(hù)與升級(jí)的成本。如果客戶端的軟件系統(tǒng)升級(jí)比較頻繁,那么B/S架構(gòu)的產(chǎn)品優(yōu)勢(shì)明顯一一所有的升級(jí)操作只需要針對(duì)服務(wù)器進(jìn)行,這對(duì)那些點(diǎn)多面廣的應(yīng)用是很有價(jià)值的,例如一些招聘網(wǎng)站就需要采用B/S模式,客戶端分散,且應(yīng)用簡(jiǎn)單,只需要進(jìn)行簡(jiǎn)單的瀏覽和少量信息的錄入。2、 系統(tǒng)的性能:在系統(tǒng)的性能方面,B/S占有優(yōu)勢(shì)的是其異地瀏覽和信息采集的靈活性。任何時(shí)間、任何地點(diǎn)、任何系統(tǒng),只要可以使用瀏覽器上網(wǎng),就可以使用B/S系統(tǒng)的終端。不過(guò),采用B/S結(jié)構(gòu),客戶端只能完成瀏覽、查詢、數(shù)據(jù)輸入等簡(jiǎn)單功能,絕大部分工作由服務(wù)器承擔(dān),這使得服務(wù)器的負(fù)擔(dān)很重。采用C/S結(jié)構(gòu)時(shí),客戶端和服務(wù)器端都能夠處理任務(wù),這雖然對(duì)客戶機(jī)的要求較高,但因此可以減輕服務(wù)器的壓力。而且,由于客戶端使用瀏覽器,使得網(wǎng)上發(fā)布的信息必須是以HTML格式為主,其它格式文件多半是以附件的形式存放。而HTML格式文件(也就是Web頁(yè)面)不便于編輯修改,給文件管理帶來(lái)了許多不便。比如說(shuō)很多人每天上“新浪”網(wǎng),只要安裝了瀏覽器就可以了,并不需要了解“新浪”的服務(wù)器用的是什么操作系統(tǒng),而事實(shí)上大部分網(wǎng)站確實(shí)沒(méi)有使用windows操作系統(tǒng),但用戶的電腦本身安裝的大部分是windows操作系統(tǒng)。3、系統(tǒng)的開(kāi)發(fā):C/S結(jié)構(gòu)是建立在中間件產(chǎn)品基礎(chǔ)之上的,要求應(yīng)用開(kāi)發(fā)者自己去處理事務(wù)管理、消息隊(duì)列、數(shù)據(jù)的復(fù)制和同步、通信安全等系統(tǒng)級(jí)的問(wèn)題。這對(duì)應(yīng)用開(kāi)發(fā)者提出了較高的要求,而且迫使應(yīng)用開(kāi)發(fā)者投入很多精力來(lái)解決應(yīng)用程序以外的問(wèn)題。這使得應(yīng)用程序的維護(hù)、移植和互操作變得復(fù)雜。如果客戶端是在不同的操作系統(tǒng)上,C/S結(jié)構(gòu)的軟件需要開(kāi)發(fā)不同版本的客戶端軟件。但是,與B/S結(jié)構(gòu)相比,C/S技術(shù)發(fā)展歷史更為“悠久”。從技術(shù)成熟度及軟件設(shè)計(jì)、開(kāi)發(fā)人員的掌握水平來(lái)看,C/S技術(shù)應(yīng)是更成熟、更可靠的。四、B/S、C/S結(jié)構(gòu)軟件技術(shù)上的比較。無(wú)論是B/S還是C/S,都不新鮮。C/S(Clientrver,客戶端/服務(wù)器)技術(shù)從上世紀(jì)90年代初出現(xiàn)至今已經(jīng)相當(dāng)成熟,并得到了非常廣泛的應(yīng)用,其結(jié)構(gòu)經(jīng)歷了二層C/S、三層C/S的更迭。B/S(Browserrver,瀏覽器/服務(wù)器)技術(shù)則是伴隨著Internet的普及而來(lái)的。有必要說(shuō)明的是,B/S最早并不叫“B/S”,此類(lèi)應(yīng)用國(guó)外通常叫Web應(yīng)用,是國(guó)內(nèi)一些公司“創(chuàng)造”了“B/S”這個(gè)詞。應(yīng)該說(shuō),B/S和C/S各有千秋,他們都是當(dāng)前非常重要的計(jì)算架構(gòu)。在適用Internet、維護(hù)工作量等方面,B/S比C/S要強(qiáng)得多;但在運(yùn)行速度、數(shù)據(jù)安全、人機(jī)交互等方面,B/S遠(yuǎn)不如C/S。綜合起來(lái)可以發(fā)現(xiàn),凡是C/S的強(qiáng)項(xiàng),便是B/S的弱項(xiàng),反之亦然。因此,問(wèn)題也就因此而產(chǎn)生了,我們的ERP產(chǎn)品到底該用B/S還是C/S架構(gòu)。從上面的分析可以看出,B/S與C/S具有不同的優(yōu)勢(shì)與特點(diǎn),他們無(wú)法相互取代。例如,對(duì)于以瀏覽為主、錄入簡(jiǎn)單的應(yīng)用程序,B/S技術(shù)有很大的優(yōu)勢(shì),現(xiàn)在全球鋪天蓋地的Web網(wǎng)站就是明證;而對(duì)于交互復(fù)雜的ERP等企業(yè)級(jí)應(yīng)用,B/S則很難勝任,從全球范圍看,成熟的ERP產(chǎn)品大多采用二層或三層C/S架構(gòu),B/S的ERP產(chǎn)品并不多見(jiàn)。在這幾年的發(fā)展中將B/S與C/S的優(yōu)勢(shì)完美地結(jié)合起來(lái),就是說(shuō)該平臺(tái)的應(yīng)用系統(tǒng)能以B/S的方式發(fā)布運(yùn)行,同時(shí)又具有C/S方式的極強(qiáng)的可操作性。這點(diǎn)從該平臺(tái)生成的商品化的網(wǎng)絡(luò)協(xié)同商務(wù)管理軟件上得到充分的體現(xiàn)!五、B/S、C/S結(jié)構(gòu)軟件商業(yè)運(yùn)用上的比較:管理軟件是為企業(yè)服務(wù)的,企業(yè)選用管理軟件不僅要從技術(shù)上考慮,還要從商業(yè)運(yùn)用方面來(lái)考慮,下文將從商業(yè)運(yùn)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論