1. 程式人生 > >B/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結構的軟體需要針對不同的作業系統系統開發不同版本的軟體, 加之產品的更新換代十分快,已經很難適應百臺電腦以上區域網使用者同時使用。而且代價高, 效率低。如我院使用的上海超蘭公司“案件統計”管理軟體就是典型的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等)訪問和操作共同的資料庫;它能有效地保護資料平臺和管理訪問許可權,伺服器資料庫也很安全 。

  第三、管理軟體主流技術。管理軟體技術的主流技術與管理思想一樣,也經歷了三個發展時期。首先,介面技術從上世紀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,軟體開發模式的變遷

  上個世紀後期,C/S結構是最為流行的軟體系統體系結構。但是,自從Internet誕生之後,更多的軟體應用系統體系結構開始向B/S結構轉變。

  在C/S結構下,大多數的企業管理軟體,採用的均是傳統開發工具Visual Basic(VB)和Delphi程式碼,或者是Power Builder(PB)程式碼,即第四代語言程式碼。

  隨著Internet時代的到來,大多數的管理軟體開始轉向B/S結構。如何從C/S平穩過渡到B/S,之前並沒有更好的解決方案,大多數的企業開始徹底放棄VB、PB開發的程式碼,轉而採用C/S結構下的Java語言重新來寫。雖然不會出現問題,但是需要重新投入資本、人力,甚至需要增加更多的培訓機會。

  程式碼移植的演變

  在20世紀70和80年代,程式碼移植最主要的目的是將程式移植到不同的系統環境下執行—主要是處理器和作業系統。由於市場上的硬體和作業系統呈現多樣化和均衡化的狀態,因此,一個重要的程式往往需要考慮兩個甚至更多的系統環境。

  1990年,Windows 3.0釋出。基於視窗、按鈕、圖示和滑鼠的圖形介面(GUI),迅速征服了全世界個人計算機使用者。將原有DOS字元模式下的應用程式移植到GUI環境,成為眾多使用者和軟體開發商的迫切需求。視覺化程式設計逐漸成為GUI下,軟體開發的主流。

  在4GL(第四代語言)開始大行其道之後,新一輪程式碼移植的潮流再度興起。此時的重點是將結構化邏輯在GUI下實現,把過去結構化程式碼中的製作介面部分剝離,並把邏輯部分附著在各個物件事件之中,通過操縱物件行為,完成整個應用的程式碼移植。

  視覺化程式設計在Web時代的瓶頸

  但是,Internet的飛速發展給4GL編寫的GUI程式提出了新的挑戰。這些程式大都基於C/S結構下,這種模式在局域網裡將應用一分為二,伺服器負責資料管理,客戶機完成與使用者的互動任務。C/S結構下軟體具有強壯的資料操縱和事務處理能力,以及資料的安全性和完整性約束。但隨著企業規模的日益擴大,應用程式的複雜程度不斷提高,C/S結構逐漸暴露出了缺點。比如開發成本較高,使用者介面風格不一、使用繁雜、不利於推廣使用,維護複雜、升級麻煩等。

  為了解決C/S結構的不足,基於Internet的B/S技術應運而生,它是有計算技術以來最穩定的技術平臺。本質上B/S也是一種客戶機技術,使用者只需通過瀏覽器這個統一介面,就可享受到無限豐富的、永遠在不斷變化和發展著的資訊服務。而通過這種結構,原則上取消了管理員所有在客戶機端的維護工作。

  在C/S向B/S轉移的過程中,開發者遇到了極大的困難。因為程式碼的移植已經不再是過去的簡單語法轉換,而牽涉到各種物件的對映。

  在結構化編碼時代裡,無論是對一種語言不同方言之間的移植,如從Turbo C到GNU C,還是對不同的高階語言之間的移植,如Turbo Pascal到Turbo C,源語言和目標語言均遵循著相同的結構。原始碼的轉換,更多的是基於一個識別符號對照表來完成。

  使用4GL開發的C/S程式是物件的集合,程式碼從屬於物件。在相同或者類似的介面下,不同開發工具使用的物件,提供給開發者的介面可能完全不同。如果使用Java或者.NET重寫原有C/S程式,意味著開發者必須將介面上所有元素逐個將其屬性、引數表、事件用新的開發工具重新編寫。

  難越的自動化遷移之路

  不管網路泡沫如何演變,Internet始終是難掩的潮流。在國外軟體市場,大多數大型企業管理軟體已經是B/S結構,或者正處於C/S結構向B/S結構的過渡時期。國內的大多數軟體企業也已經開始向B/S結構轉變。B/S結構下的大型管理軟體,勢必是未來幾年內,管理軟體市場的主流軟體。

  要解決現有C/S應用低成本、快速移植到B/S結構下的應用的困境,則必須要解決自動且精確的GUI移植、自動的語法邏輯移植、方便的伺服器端除錯和釋出。

  從應用角度來看,B/S結構下軟體相比C/S結構下軟體,有著獨特的優勢。

  節約投資。B/S結構下軟體一般只有初期一次性投入成本;而C/S結構下軟體則隨著應用範圍的擴大,要求不斷進行資本的投入。比如需要購買更為高階的伺服器或者增加相應的管理人員等。

  簡化工作。B/S結構下軟體安裝在伺服器端即可解決問題,在做更改時,只需調整伺服器端即可。C/S結構下軟體則需要安裝在客戶機端,調整的時候需要涉及到區域網內的每一臺機器。對於區域級伺服器來講,C/S結構的軟體更新則更加複雜。

  更好地保障資料安全。在C/S結構軟體的解決方案裡,對於異地經營的大型集團企業,需要在各地分別安裝區域級伺服器。一旦某一個區域級伺服器出現問題,對資料的安全會造成一定影響,而且總部也不會得到準確的最終資料。對B/S結構下軟體來講,其資料集中存在於企業的中央資料庫,可有效地保護資料的安全,而且企業可隨時隨地掌握自己的經營狀況、市場動態,以做出最快決策。

  不受網路的限制。C/S結構軟體僅適用於區域網內部使用者或寬頻使用者(1兆以上);而B/S結構軟體則適合於任何網路結構(包括28.8K撥號入網方式),尤其適合於寬頻不能達到的地方。