DotNET企業架構應用實踐-企業管理軟件架構(計算)的歷史與發展(上)

         企業管理軟件是計算機軟件應用的一個重要領域,在今天計算機軟件除面向科學計算之外應用最廣闊的也是企業管理應用,可以說計算機技術的發展推動着企業應用發展,企業管理需要也一方面影響着計算機技術的發展,今天,在我們的週末,企業管理應用軟件開發人員佔了總開發人員中的極大的比例。
         今天我們就來通過回顧計算技術在企業應用中的發展歷程來看看軟件架構的發展。

主機-字符終端

         在PC機沒現世之前,極小數的企業使用大型業務處理主機處理企業計算機任務,在那個時候,計算機計算機價格非常昂貴,體積龐大,都是採用多個終端機連接上服務器的形式進行軟件操作。
p_w_picpath
         上圖即所謂的主機--->終端結構,而一個終端,其實僅僅只是一臺顯示器和鍵盤而已,沒有CPU和內存,只能接受操作輸入和輸出結果,沒有任務的處理能力,我們可以理解終端爲主機的延伸,那麼他的邏輯結構呢,就是一個多用戶多任務的處理程序。

客戶機-服務器結構

         PC機的問世,加速了企業應用軟件的發展,一方面個人PC機的成本較低,功能也比較強大,企業有能力爲員工配備更多的計算機提高工作效率。同時由於企業應用軟件的功能逐漸豐富,應用範圍越來越寬廣和深入,所以對計算機性能的要求也越來越高。在高速的發展的企業應用需求下,傳統的大型機的性能已經顯現其不足,而與此同時,企業內部卻有着大量空閒計算能力的PC電腦。因此,在經濟利益的驅動下,企業應用軟件開始向分佈式的結構發展,將一部分的計算任務放到客戶端PC來執行,而服務器僅僅只用來運行一些數據庫軟件,最大的程度的利用到所有計算機的計算能力,以提高性價比。這種企業軟件的應用架構模式被稱之爲客戶端(Client)/服務器(Server)模式,也就是通常所說的C/S模式。
         隨便PC機性能的飛速發展,大量的服務器採用PC技術生產,即大家常見的PC服務器【(X86-X64)服務器】,其價格相對大型主機、小型機非常的低廉,而其計算機能力也越來越接近小型機。
p_w_picpath
        在這種分佈式結構之中,可以充分利用兩端硬件環境的優勢,將任務合理分配到 Client端和Server端來實現,降低了系統的通訊開銷,服務器存儲業務數據並勢力有限的業務計算機,PC客戶處理人機交互及絕大部分業務計算職能。目前大多數應用系統都是Client/Server形式的兩層結構, 由於現在的軟件應用系統正在向分佈式的Web應用發展,Web和Client/Server 應用都可以進行同樣的業務處理,應用不同的模塊共享邏輯組件;因此,內部的和外部的用戶都可以訪問新的和現有的應用系統,通過現有應用系統中的邏輯可以擴展出新的應用系統。這也就是目前應用系統的發展方向。
        嚴格的來說,客戶機-服務器結構(C/S)是分佈式的一種經典結構,也是所有分佈式結構衍生體系的基礎,如果沒有CS結構,就不可能存在BS結構、CAS結構、以及SAAS、雲結構等。

瀏覽器-服務器結構

         因爲C/S模式所帶來的一些固有的缺陷,比如直接連接數據庫服務器引發潛在的安全性問題以及客戶端程序的大規模部署和更新比較麻煩,C/S應用程序比較複雜等等問題都導致了C/S模式的企業應用軟件開發和維護成本一直居高不下。
         基於以上C/S結構的這些問題,出現了一種新的結構,即將企業應用的絕大總分業務計算機能力都放到服務器之上,客戶端PC僅僅只運行一個WEB瀏覽器用於接受用戶的輸入和呈現。降低了軟件的維護成本。這就是瀏覽器(Browser)/服務器(Server)架構模式,也就是我們很熟悉的B/S模式。
p_w_picpath
         在這種結構之中,數據庫服務器同C/S結構之中的服務器職能一樣,存儲數據並處理一部分業務,同C/S不同的是,承載絕大數據業務處理能力由PC客戶端轉移到Web服務器,而PC客戶端弱化到類似於一個終端,只是這個終端不是字符終端,而是一個圖像終端。
         如果去追究這處結構的本質,我們可以理解爲B/S結構爲以C/S結構爲基礎的新型網絡終端結構,即如下解釋:
         1.數據庫服務和Web服務器組成了一個簡單的C/S結構。
         2.Pc機上的瀏覽器即一個圖形終端,相對於服務端(Web服務器及其外端數據庫)來說,其幾乎沒有任務的計算能力,僅爲一個輸入和輸出設備。
         B/S結構最大的好處是使用方便和部署簡單,使用者可以在裝有瀏覽器並能能聯網手PC機上訪問應用程序,而不需要同C/S程序一樣運行前必須安裝與配置,這極大的方便了使用者,也極大的降低了應用的部署和維護成本,但其缺點也是顯著的,用戶感覺不好。

C/S與B/S結構有對比

         B/S結構同C/S結構一樣,也是一種非常經典的分佈式計算結構,在目前企業應用結構之中,都採用這種結構或者這兩種結構的衍生結構,這兩種結構各有優缺點,CS結構優點是客戶操作體驗好,而B/S結構部署和維護成本更低。
B/S結構的優點
(1)、具有分佈性特點,可以隨時隨地進行查詢、瀏覽等業務處理。
(2)、業務擴展簡單方便,通過增加網頁即可增加服務器功能。
(3)、維護簡單方便,只需要改變網頁,即可實現所有用戶的同步更新。
(4)、開發簡單,共享性強
B/S 模式的缺點
(1)、個性化特點明顯降低,無法實現具有個性化的功能要求。
(2)、操作是以鼠標爲最基本的操作方式,無法滿足快速操作的要求。
(3)、頁面動態刷新,響應速度明顯降低。
(4)、功能弱化,難以實現傳統模式下的特殊功能要求。
C/S 模式的優點
1.由於客戶端實現與服務器的直接相連,沒有中間環節,因此響應速度快。
2.操作界面漂亮、形式多樣,可以充分滿足客戶自身的個性化要求。
3.C/S結構的系統具有較強的事務處理能力,能實現複雜的業務流程。
C/S 模式的缺點
1.需要專門的客戶端安裝程序,分佈功能弱,針對點多面廣且不具備網絡條件的用戶羣體,不能夠實現快速部署安裝和配置。
2.兼容性差,對於不同的開發工具,具有較大的侷限性。若採用不同工具,需要重新改寫程序。

胖客戶端與瘦客戶端

         不管是C/S還是B/S,其都需要客戶端技術,對於C/S模式和B/S模式這兩種結構,也有兩種不同的客戶端技術對應,瘦客戶端(B/S模式)技術和胖客戶端(C/S模式)技術。
         對於瘦客戶端技術,典型的應用就是使用瀏覽器,通過輸入URL遠程訪問服務端,並向服務端發送命令,獲取服務端的資源,然後在客戶端的瀏覽器上顯示出來。由於這種技術數據庫存放在服務端,客戶端應用界面的也是由服務端的文件生成,因此在客戶端上佔用資源少,對客戶端的設備要求不高,只需一個瀏覽器軟件和可用的網絡便能開始工作,另外,如果系統需要升級修改,只需要在服務端更新文件,當客戶再次訪問時,就可以使用新的應用系統了,因而部署和升級重點都放在了服務端,實現起來比較簡單。但是,這種B/S模式依賴網絡,當網絡不可用時或出現性能不穩定的情況時就會導致客戶端變成“死界面”——既不能將數據發送回服務端進行保存,又不能從服務端獲取數據拿到客戶端操作,一切的工作將要在網絡恢復後才能得以繼續。
         對於胖客戶端技術,用戶在使用這種軟件時獲得的最大的感官體驗就是——它首先有自己獨特的應用程序界面,而非通過瀏覽器,用戶甚至還可以根據自己的喜好調整軟件的佈局,進行豐富的界面元素的設置,這些都是B/S模式的瘦客戶端技術所不能媲美的。另外,用戶還能獲得較快的反應速度,程序可以充分利用本地機器的資源,在不使用網絡訪問遠程資源時,本地資源的訪問在正常情況下都能得到很快的處理。同樣的,胖客戶端技術也有着不盡人意的地方——在客戶端進行部署時,由於客戶端可能出現各種各樣的情況,所以需要進行必要的設置,部署起來比較困難,如果對軟件的版本進行升級,使用傳統的DLL技術的那將更是一個大的挑戰,因爲在.NET之前,標準Windows DLL或COM組件可能出現“DLL Hell”——註冊和更新軟件中的DLL時,發現共享的DLL被最新版本改寫了,並使該機器上的其他軟件也因此不能運行。胖客戶端有可能需要在客戶端實現數據庫支持,數據庫放在本地有可能導致一些安全問題,因爲相對於更重視安全的服務端,客戶端相對而言還是比較脆弱的。

C/A/S結構

         C/S結構及B/S結構都有其優秀的一面,但也有其不足的一方,那有沒有辦法吸引這兩者的優點呢,比如我們即需要C/S程序優秀用戶體驗但降低維護和部署成本呢,那麼就出現了C/S結構的一種衍生結構,客戶端/應用服務器/數據庫服務器結構。
p_w_picpath
         在C/A/S結構之中,數據庫服務器同C/S結構之中的服務器職能一樣,存儲數據並處理一部分業務,應用服務器承載絕大多數業務處理,PC客戶端需要安裝應用程序客戶端,但其只處理用戶UI及UI邏輯,同簡單的C/S結構相比,因爲其業務運行於應用服務器之上,那麼業務運行相對於來說比較集成,針對業務的運維成本就會降低,C/A/S結構通常結合客戶端自動升級技術,也大大的減少了部署和維護成本,相對於單純的B/S結構相比,因爲有獨立客戶端的存在,帶給用戶更好的用戶體驗。
        通常在這種C/A/S的分佈式計算結構之中,在PC客戶端和應用服務器之間,大量採用WebService、Remoting、Corba、DCOM、WCF等分佈式通信技術或者融合SOA架構。

.NET智能客戶端

        .Net智能客戶端是微軟提出來的C/A/S結構的一種技術,其結合了瘦客戶端(B/S模式)和胖客戶端(C/S模式)的長處,能夠充分的利用胖客戶端模型帶來的好處,提供給用戶出色的操作體驗,同時,也能夠讓我們享受集中部署和更新帶來的好處。簡而言之,這種新一代的客戶端應用程序,就是被稱之爲“智能”客戶端,它能很好的提供原本兩種客戶端的特性,並且增加了數據和連接的管理,產生了一種更好的用戶體驗。
smart01
        有關於.NET知道客戶端更多的介紹請參考:http://www.microsoft.com/china/MSDN/library/architecture/Smart.mspx?mfr=true
        不管是普通的C/A/S結構的應用還是.NET知道客戶端的應用,其道理都是一樣的,即採用C/S結構爲其基礎結構融合B/S結構中的某些優秀的特性,在目前,應用這種技術的商業應用很廣。

富互聯網應用

       在基於C/S爲基礎架構的商業應該之中,採用了C/A/S、智能客戶端技術來彌補簡單的C/S應用的某些不足,在流行的B/S開發領域,也出現了一種以B/S技術爲承載的改善客戶使用體驗的技術,即 富互聯網應用技術。
       富互聯網應用(Rich Internet Applications),即RIA,具有高度互動性、豐富用戶體驗以及功能強大的互聯網客戶端應用程序,傳統網絡程序的開發是基於頁面的、服務器端數據傳遞的模式,把網絡程序的表示層建立於HTML頁面之上,而HTML是適合於文本的,傳統的基於頁面的系統已經漸漸不能滿足網絡瀏覽者的更高的、全方位的體驗要求了,這就是被Macromedia公司稱之爲的“體驗問題”("Experience Matters"),而富因特網應用程序(Rich Internet Applications,縮寫爲RIA)的出現也就是爲了解決這個問題。
       RIA技術的好處是很顯而易見的,其秉承了B/S的的優秀基因,所以其部署和維護相比C/A/S和智能客戶端結構更加的方面,只是在應用主中需要優秀的客戶體驗的使用RIA技術開發,其和傳統的B/S應用能很好的融合在一起。
       下面簡單介紹幾種RIA應用技術:
Adobe Flash/Flex
Flash 從6.0開始Flash就逐步具備建立窗體風格的應用程序的功能。據Adobe稱已經有98%以上的桌面系統的瀏覽器都安裝了 Adobe Flash Player。這使得以Adobe Flash Player爲客戶端的RIA可以支持種類廣泛的平臺和設備。
Flex是爲滿足希望開發 RIA的企業級程序員的需求而推出的表示服務器和應用程序框架,它可以運行於J2EE和.NET平臺。Flex表示服務器提供基於標準的、聲明性的編程方法和流程,並提供運行時服務,用於開發和部署豐富客戶端應用程序的表示層。Flex開發者使用直觀的基於XML的MXML來定義豐富的用戶界面。該語言由 Flex服務器翻譯成SWF格式的客戶端應用程序,在Flash Player中運行。
SilverLight
微軟在Mix07上發佈一些重大通告,其中最值得關注的就是SilverLight的發佈,SilverLight的前身就是WPF/E技術。
這是一種新的Web 呈現技術的名稱,創建該技術的目的是使其能夠在各種平臺上運行。該技術支持創建豐富的、具有絢麗視覺效果的交互式體驗,並且可以隨處實現:無論是在瀏覽器內、在多個設備上還是在桌面操作系統(如 Apple Macintosh)中。
Java SWT
Java 已經出現幾年了,並且完全支持創建基於窗體的用戶界面。除了Java基礎類(JFC/Swing)中的用戶界面組件之外,開發人員還可以使用來自於 Eclipse Project的SWT工具箱和許多第三方工具箱進行開發。對於圖形來說,可以採用Java 2D API:一個非常完整且非常複雜的圖形API。你可以通過一個Web瀏覽器使用Java插件軟件,或使用Java運行時環境中較新的Java Web Start技術來部署應用程序。使用Java建立Rich Client的主要缺陷是它的複雜性(即使對簡單的窗體和圖形也要求編寫非常煩瑣的代碼)和Java瀏覽器插件的低市場佔有率。
      作爲微軟技術的鐵桿粉絲,我在這裏當然是力挺SilverLight,其直接可以使用C#、VB等開發語言,也和WPF共用其界面呈現技術,學習和開發成本較低,也更快構建RIA應用。
      本文就到此爲止,接下來將和大家共同學習SAAS、SOA、網絡計算、雲計算相關。
 

相關鏈接

QQ羣:125643764,120661978
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章