三層C/S結構及其應用開發

一、三層C/S的基本硬件結構

  傳統的二層C/S結構存在以下幾個侷限:1它是單一服務器且以局域網爲中心的,所以難以擴展至大型企業廣域網或Internet;2受限於供應商;3軟、硬件的組合及集成能力有限;4難以管理大量的客戶機。因此,三層C/S結構應運而生。

  三層C/S結構是將應用功能分成表示層、功能層和數據層三部分。其解決方案是:對這三層進行明確分割,並在邏輯上使其獨立。原來的數據層作爲DBMS已經獨立出來,所以關鍵是要將表示層和功能層分離成各自獨立的程序,並且還要使這兩層間的接口簡潔明瞭。

  將上述三層功能裝載到硬件的方法基本上有三種(如圖1所示)。其中表示層配置在客戶機中,而數據層配置在服務器中。

  

  一般情況是隻將表示層配置在客戶機中,如圖1(1)或圖1(2)所示。如果像圖1(3)所示的那樣連功能層也放在客戶機中,與二層C/S結構相比,其程序的可維護性要好得多,但是
其他問題並未得到解決。客戶機的負荷太重,其業務處理所需的數據要從服務器傳給客戶機,所以系統的性能容易變壞。
  如果將功能層和數據層分別放在不同的服務器中(如圖1(2)所示),則服務器和服務器之間也要進行數據傳送。但是,由於在這種形態中三層是分別放在各自不同的硬件系統上
的,所以靈活性很高,能夠適應客戶機數目的增加和處理負荷的變動。例如,在追加新業務處理時,可以相應增加裝載功能層的服務器。因此,系統規模越大這種形態的優點就越顯著。
值得注意的是:三層C/S結構各層間的通信效率若不高,即使分配給各層的硬件能力很強,其作爲整體來說也達不到所要求的性能。此外,
設計時必須慎重考慮三層間的通信方法、通信頻度及數據量。這和提高各層的獨立性一樣是三層C/S結構的關鍵問題。

二、三層C/S的功能

1. 表示層
  表示層是應用的用戶接口部分,它擔負着用戶與應用間的對話功能。它用於檢查用戶從鍵盤等輸入的數據,顯示應用輸出的數據。爲使用戶能直觀地進行操作,一般要使用圖形用戶接口(GUI),操作簡單、易學易用。在變更用戶接口時,只需改寫顯示控制和數據檢查程序,而不影響其他兩層。檢查的內容也只限於數據的形式和值的範圍,不包括有關業務本身的處理邏輯。
圖形界面的結構是不固定的,這便於以後能靈活地進行變更。例如,在一個窗口中不是放入幾個功能,而是按功能分割窗口,以便使每個窗口的功能簡潔單純。在這層的程序開發中主要是使用可視化
編程工具。

2. 功能層
  功能層相當於應用的本體,它是將具體的業務處理邏輯地編入程序中。例如,在製作訂購合同的時要計算合同金額,按照定好的格式配置數據、打印訂購合同,而處理所需的數據則要從表示層或數據層取得。表示層和功能層之間的數據交往要儘可能簡潔。例如,用戶檢索數據時,要設法將有關檢索要求的信息一次傳送給功能層(參見圖2),而由功能層處理過的檢索結果數據也一次傳送給表示層。在應用設計中,一定要避免"進行一次業務處理,在表示層和功能層間進行多幾次數據交換"的笨拙設計。
通常,在功能層中包含有:確認用戶對應用和
數據庫存取權限的功能以及記錄系統處理日誌的功能。這層的程序多半是用可視化編程工具開發的,也有使用COBOL和C語言的。

3. 數據層
  數據層就是DBMS,負責管理對數據庫數據的讀寫。DBMS必須能迅速執行大量數據的更新和檢索。現在的主流是關係數據庫管理系統(RDBMS)。因此,一般從功能層傳送到數據層的要求大都使用SQL語言。

三、三層C/S結構的優點

1. 具有靈活的硬件系統構成
  對於各個層可以選擇與其處理負荷和處理特性相適應的硬件。這是一個與系統可縮放性直接相關的問題。例如,最初用一臺Unix工作站作爲服務器,將數據層和功能層都配置在這臺服務器上。隨着業務的發展,用戶數和數據量逐漸增加,這時就可以將Unix工作站作爲功能層的專用服務器,另外追加一臺專用於數據層的服務器。若業務進一步擴大,用戶數進一步增加,則可以繼續增加功能層的服務器數目,用以分割數據庫。清晰、合理地分割三層結構並使其獨立,可以使系統構成的變更非常簡單。因此,被分成三層的應用基本上不需要修正。 

2. 提高程序的可維護性
  三層C/S結構中,應用的各層可以並行開發,各層也可以選擇各自最適合的開發語言。

3. 利於變更和維護應用技術規範
  因爲是按層分割功能,所以各個程序的處理邏輯變得十分簡單。

4. 進行嚴密的安全管理
  越關鍵的應用,用戶的識別和存取權限設定愈重要。在三層C/S結構中,識別用戶的機構是按層來構築的,對應用和數據的存取權限也可以按層進行設定。例如,即使外部的入侵者突破了表示層的安全防線,若在功能層中備有另外的安全機構,系統也可以阻止入侵者進入其他部分。
  

  此外,系統管理簡單,可支持異種數據庫,有很高的可用性。

四、三層C/S應用的開發

  三層C/S應用的開發必須遵從以下原則:保護已有投資;降低應用系統的風險; 滿足當前的迫切需要;考慮未來的發展規劃。
  開發出的三層C/S應用系統必須是:功能豐富且具有高可用性;功能要能跨應用系統;系統要能跨平臺運行。
  美國BEA系統有限公司產品計劃和戰略副總裁Jeri Edwards女士,按下述三種三層C/S應用系統的典型開發類型,分別舉例介紹了他們的開發目標、開發過程、開發成果及經驗體會。新建應用系統類型(Greenfield),如英國勞工局的勞動力市場系統;提升已有系統性能類型(Turbocharger),如Apple公司的AppleOrder Global系統;綜合集成已有系統類型(Integrator),如AT&T的Zenith應用系統。Jeri Edwards女士根據三層C/S應用系統的開發經驗和教訓,總結出了實現C/S應用系統的"黃金10原則" :
  (1) 儘量簡化項目,使項目易於管理。應儘快建起一個初始系統,並儘早投入運行。當項目規模較大時,可以將其分割成由更小開發組擔負的子項目。
  (2) 要把精力花在
設計上。首先要徹底弄清"需求" ,然後建立一個原型,以便測試設計中的"薄弱"環節。後來增加的特性或部件要保證與系統結構兼容。
  (3) 要奉行"拿來主義"。近來,可供選購的市售C/S產品很多,要堅持"能買就買,爲我所用"的原則。必要時,買來後可對系統加以修改,其中既包括基礎部件也包括應用。
  (4) 嚴格遵守業界標準。
  (5) 採用TP監控器或對象事務處理管理器 (Object Transaction Manager ,OTM)。
  (6) 要循序漸進。及時得到用戶的反饋;保證項目各部分的良好銜接;及早解決接口問題,以保證項目進展協調;堅持"邊分析,邊設計;邊編碼,邊測試"的原則。
  (7) 在應用開發過程中,不可忽視系統管理。
  (8) 反覆測試,包括用戶信任測試、基準測試、系統測試、性能測試、系統集成測試、堅固性測試、服務交付測試等。
  (9) 制定合理的工程進度。
  (10) 制定完善的系統拓展計劃,包括用戶的培訓和技術支持、高效的硬
軟件裝載、已有數據和系統的平滑遷移。

五、三層C/S應用中的核心

  每個C/S環境,從最小的LAN環境到超級網絡環境,都使用某種形式的中間件。實際上,無論客戶機何時給服務器發送請求,也無論它何時應用存取數據庫文件,都有某種形式的中間件傳遞C/S鏈路,用以消除通信協議、數據庫查詢語言、應用邏輯與操作系統之間潛在的不兼容問題。中間件是C/S環境中最重要的部件。所謂中間件是一個用API定義的軟件層,是具有強大通信能力和良好可擴展性的分佈式軟件管理框架。它的功能是在客戶機和服務器或者服務器和服務器之間傳送高級通信,將客戶機羣和服務器羣有機地"粘合"起來。其工作流程是:在客戶機裏的應用程序需要駐留網絡上某個服務器的數據或服務時,搜索此數據的C/S應用程序需訪問中間件系統,該系統將查找數據源或服務,並在發送應用程序請求後重新打包響應,將其傳送回應用程序。
  TP監控器在中間件技術中扮演着越來越重要的角色,特別是在三層C/S系統中。據Standish Group的調查,TP監控器是近兩年信息業界最熱門的技術之一。1996年有57%的關鍵應用是構築在TP監控器上的。TP監控器擅長提供事務性語義,允許就環境速度和可靠性進行
編程。作爲一種中間件,TP監控器提供一種用於編寫分佈式應用程序的API,它通常包含一組強大的管理工具。TP監控器是一個高性能、高並行性、多用戶的快速響應軟件運行環境,它能有效地管理大量的併發任務,進而提高系統資源的利用率。如果採用TP監控器,系統總投資可節約30%以上,開發週期可縮短40%~50%。大多數投入應用的三層應用系統都配備有一套事務處理監控系統,BEA TUXEDO是目前應用最廣泛的事務處理監控系統。

BEA TUXEDO是用於分佈計算的中間件基礎結構,它使開放式應用系統具有高可縮放性、高靈活性和高可維護性。它不僅具有分佈式交易處理和應用間報文通信的功能,而且具有一系列極其完善的服務,可幫助企業建立和運行應用系統,使開發人員能夠建立跨越多個平臺、數據庫操作系統的應用程序。這樣,可以靈活選配操作平臺以充分適應應用環境。它具有以下特點:

  1、支持多種軟硬件平臺。完全符合Open Group的X/Open標準,支持TCP/IP協議,支持包括Unix、Windows NT、AS/400和大型機專用系統在內的70多個硬件平臺和操作系統。
  2、結構開放、靈活。模塊結構以高級程序接口ATMI(Application-to-Transaction Manager Interface)爲中心,有豐富的ATMI函數可供調用。
  3、開放的聯機事務處理。可提供諸如事務性語義、透明的二段式提交、事務記錄及分佈事務處理管理結構等功能。
  4、與DCE的結合。通過一套工具和程序庫,實現了與Open Group組織的分佈計算環境DCE的有機結合。
  5、功能豐富,包括:應用管理;事件代理;通過鑑別服務、授權服務和數據加密服務,爲客戶提供
安全保證;對COBOL語言的支持;應用動態調節、負載平衡等保證高可靠性的功能等。

六、三層C/S結構的應用現狀

  目前,用三層C/S結構開發的應用還不太多,但其數量的確在逐日增加。圖3顯示了北美運行的應用開發形態。三層C/S型應用的比例1995年佔5%,1997年增加到7.8%,預計到1999年將佔22.9%。二層C/S型應用和在原有系統上附加GUI型的應用,是被定位爲向三層C/S型轉化的過
度形態。就當前來說,這種形態的比例要比三層C/S高,且要持續一段時間。那麼,什麼情況下應採用三層C/S呢?據Gartner Group的調查表明,具有下述特點的應
用應考慮採用三層C/S。

  1、應用的服務或種類超過50個;
  2、應用是用不同語言編寫的;
  3、兩個以上的異構數據源,如2個不同的DBMS或1個DBMS和1個文件系統;
  4、應用的生命週期超過3年;
  5、高工作負荷,例如每天超過5萬個事務處理或在同一系統訪問同一數據庫的併發用戶數超過300個;
  6、有至關重要的應用內部通信,包括像電子數據交換(EDI)這類企業的內部通信。
  從傳統的主機/終端型應用到三層C/S化,要考慮時間和費用問題,有的場合還不適合,需要循序漸進。

發佈了16 篇原創文章 · 獲贊 0 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章