在資訊產業高速發展的今天,企業間的競爭將更加激烈。隨著規模的不斷擴大和業務的不斷更新,企業迫切需求完整的分散式解決方案,用於管理複雜的異質環境,實現不同硬體設備、軟體系統、網路環境及資料庫系統之間的完整整合。
縱觀人類電腦的發展歷史,每隔十年至十五年,資訊產業就會發生週期性的變革, 1950 年至1970 年期間,企業主要採用大型主機-終端的體系結構,企業應用系統則採用單一、集中的方式為使用者提供資源共享服務。 80 年代初期,開放系統與關聯式資料庫管理系統被企業大量採用,有別於集中式系統,應用程式邏輯分散在主從兩端。隨著Windows 的普及, 90 年代則是圖形化的應用時代, Client/Server 體系結構也被廣泛採用。 90 年代後期,資訊產業出現了分散式物件技術,應用程式可以分佈在不同的系統平台上,透過分散式技術實現異質平台間物件的相互通訊。將企業已有系統整合於分散式系統,可大幅提升企業應用系統的擴展性。 90 年代末期出現的多層分散式應用為企業進一步簡化應用系統的發展指明了方向。
在傳統的Client/Server 結構中,應用程式邏輯通常分佈在客戶端和伺服器兩端,客戶端發出資料資源存取請求,伺服器端將結果傳回客戶端。 Client/Server 結構的缺陷是,當客戶端數目激增時,伺服器的效能將會因為無法進行負載平衡而大大下降。 而一旦應用程式的需求發生變化,客戶端和伺服器端的應用程式則都需要修改,這給應用程式的維護和升級帶來了極大的不便,而且大量資料的傳輸也增加了網路的負載。為了解決Client/Server 存在的問題,企業只有轉向多層分散式應用。
在多層分散式應用中,用戶端和伺服器之間可以加入一層或多層應用服務程序,這種程式稱為「應用程式伺服器」 (Application Server) 。開發人員可以將企業應用的商業邏輯放在中間層伺服器上,而不是客戶端,從而將應用的業務邏輯與用戶界面隔離開,在保證客戶端功能的前提下,為用戶提供一個瘦的(thin ) 介面.這意味著如果需要修改應用程式程式碼,則可以只在一處( 中間層伺服器上) 修改,而不用修改成千上萬的客戶端應用程式。 從而使開發人員可以專注於應用系統核心業務邏輯的分析、設計和開發,簡化了企業系統的開發、更新和升級工作,大大增強了企業應用的伸縮性和靈活性。
當企業需要建立基於Web 的商業應用系統時,多層分散式體系結構同樣提供了強大優勢,為基於Web 的商業應用提供了「瘦客戶」的體系結構,使基於瀏覽器的客戶可以與Intranet 資源進行有效交互,並且不需要在客戶端進行複雜的應用程式設定工作。多層分散式解決方案在異質平台間架起了橋樑,可以使基於Web 的商業應用與企業已有系統整合在一起。
目前,在我國的企業中,大量採用的還是Client/Server 體系結構,而在西方已開發國家,企業由傳統的應用系統轉變為多層分散式應用系統的轉變已成為業界主流。相信在我國,多層分散式系統將得到更廣泛的應用。
多層分散式應用帶來的挑戰
儘管多層分散式體系結構為企業提供了極大優勢,但比起傳統的Client/Server 方式,開發多層分散式應用具有更大的難度,為開發人員帶來了新的技術挑戰。主要包括了以下三個面向:
1. 分散式物件標準的多樣化
企業要建構多層分散式系統,必須遵循分散式的工業標準,基於什麼樣的標準直接影響企業應用系統的開放性和可擴展性。目前分散式物件的標準主要有三種: Microsoft 的DCOM 、 Sun Microsystems 的Enterprise JavaBeans/RMI 以及OMG(Object Management Group) 組織的CORBA(Common Object Request Broker Architecture) 。 DCOM 是基於Windows 環境的分散式物件標準,因此支援的平台種類有限。 RMI 與Enterprise JavaBean 是以Java 語言為主體的分散式物件架構,適合大型企業的跨平台需求,但現實的應用系統環境一般是由多種不同的程式語言建立起來的,只依賴一種程式語言構建的企業應用是很少見的。 CORBA 是由800 多個大型軟、硬體公司參與的OMG 組織所製定的分散式物件標準,獲得IBM 、 Sun Microsystems 、 Oracle 、 Sybase 、 Novell 、 Netscape 等大型公司的支持, CORBA 標準實現了不同平台之間物件的通訊及互通,軟體供應商只要遵循應用物件與ORB 間通訊的IDL(Interface Definition Language) ,便能夠以物件的形式提供服務或取得服務, ORB 使開發人員完全不需要考慮異質平台、不同的通訊協定或不同程式語言造成的差異,而專注於應用邏輯的開發。可見, CORBA 提供了開放、靈活的分散式標準,適合企業建構多層分散式應用系統。
2. 多層分散式應用的發展是很複雜的
如果以傳統方式開發多層分散式應用,則需要開發人員具備較深的電腦系統級知識,需要掌握諸如並發性、安全性、可擴展性及事務處理等各個方面的知識。而且需要實現對系統資源存取的有效管理,如對執行緒、記憶體、資料庫連線、網路連線的管理。而這些複雜工作大大耗費了開發人員的精力,限制了開發工作的進展。而企業應用系統的開發則更要求開發人員專注於商業邏輯方面的開發,而不是在系統級開發上浪費更多時間。
3. 分散式應用的分發、管理也是一個挑戰
大多數的分散式應用是由成百上千的元件組成的,而在分發時,每一個元件都有屬性需要進行配置。通常,對元件屬性的配置方式會依賴元件所在的平台。 因此,應用程式被分發後,如何管理分散的元件將是一個挑戰。管理者需要確保應用的元件能夠正確運作、可以位於企業網內的任何機器上,並能及時發現處理錯誤( 包括系統錯誤、網路中斷、應用錯誤等情況) 。
傳統意義上的網路系統管理( 例如: SNMP) 只能透過分析主機的狀態,獲得應用程式運作的情況,但對於分散式應用系統來說,一個應用程式並非運行於某一主機,因此,管理者需要管理整個網路的狀態,這就需要有適當工具的支援。
多層分散式應用的需求
開發企業多層分散式應用,通常有以下的需求:
易於開發
雖然多層分散式體系結構要求有較深的電腦系統層級知識作為基礎( 例如:資料庫、事務處理、網路安全、 CORBA 技術等) ,但對於IT 開發人員來說,要求在不用深入了解系統底層複雜在技術的情況下,能夠在一個友善的視覺化整合開發環境(IDE) 中,快速、輕鬆地開發出功能強大的多層分散式應用系統。
簡化分發、管理工作
開發人員要求能夠在一個整合開發環境中測試、修改分散式應用程序,以提高應用的效能,並可以實現在同一環境中對應用程式的分發、管理。由於許多應用包含了成千上萬分佈於企業各處的元件,因此,需要一個集中化的管理工具,用於管理、控制分散式應用,並實現錯誤檢測、更正的功能。
企業應用的穩健性要求
一個完善的企業分散式多層應用,應該滿足事務處理、安全管理、容錯、負載平衡、可擴展性、高效能方面的要求。
具有開放的、基於工業標準的體系結構
企業需要的是開放的、基於工業標準的解決方案,可以實現與其他符合標準的系統互動。
可實現與各種資料庫及已有系統的集成
企業分散式應用必須能夠存取企業的資料資源,而企業資料通常儲存在目前流行的大型資料庫上( 如: Oracle 、 Sybase 等) ,或透過TP Monitor( 如: IBM CICS 、 BEA Tuxedo) 訪問,因此要求企業分散式系統能夠與資料庫及已有系統整合在一起。
支援不同平台環境
企業多層分散式應用程式需要支援不同的平台環境,伺服器一端應該支援Windows NT 或UNIX 平台,而不同平台的客戶都可以存取伺服器上的應用,包括: HTML 、 Java applets 、 Java 應用、 Dynamic HTML 、 C++應用等。
企業應用程式伺服器
基於上述原因,當企業轉向多層分散式應用程式時,需要應用程式伺服器(Application Server) 的支持,從而可以將不同的應用技術整合在一起,使多層分散式應用程式的開發、分發、管理變得更加容易。現在已經有許多企業使用了應用程式伺服器技術,也大大增強了企業應用的效能。但在我國處於應用程式中的應用程式伺服器技術,還不能完全滿足企業建立多層分散式應用程式的需求,這些應用程式伺服器主要分為以下兩類:
基於Web 的應用伺服器
基於Web 的應用伺服器一般提供了基於Web 的Interner 應用的開發環境,適合建立基於Web 的Client/Server 應用系統。在這種體系下, Web 應用伺服器通常運行在Web Server 上,用來處理客戶要求。通常用ODBC 和JDBC 連接資料庫。這種類型的應用伺服器一般易於使用,並且支援基於EJB(Enterprise JavaBeans) 的伺服器應用程式開發。但這種應用伺服器存在的缺陷有:不支援事務處理、安全性差、對已有交易系統支援有限、效能較低。
基於中間件的應用伺服器
基於中間件的應用伺服器透過與已有系統( 如: TP Monitors) 進行集成,可以為企業提供更強大的功能,包括:事務處理、安全管理、容錯、負載平衡等,但多數解決方案都是基於Client/Server 體系結構的,或僅限於三層體系結構,不適於建立分散式的Web 應用,而且沒有一個有效的開發管理環境。
註: 負載平衡是由多台伺服器以對稱的方式組成一個伺服器集合,每台伺服器都具有等價的地位,都可以單獨對外提供服務而無須其他伺服器的輔助。透過某種負載分擔技術,將外部發送來的請求均勻分配到對稱結構中的某一台伺服器上,而接收到請求的伺服器則獨立回應客戶的請求。平衡負載能夠平均分配客戶請求到伺服器列陣,籍此提供快速取得重要數據,解決大量並發存取服務問題。這種群集技術可以用最少的投資來獲得接近大型主機的效能。網路負載平衡的優點:第一、網路負載平衡技術保證即使在負載很重的情況下,伺服器也能做出快速回應;第二、網路負載平衡對外只需提供一個IP 位址( 或網域) ;第三、當網路負載平衡中的一台或幾台伺服器不可用時,服務不會中斷。網路負載平衡自動偵測到伺服器無法使用時,能夠迅速在剩餘的伺服器中重新指派客戶機通訊。這項保護措施能夠幫助你為關鍵的業務程序提供不中斷的服務,並可以根據網絡訪問量的增加來相應地增加網絡負載平衡伺服器的數量;第四、網絡負載平衡可在普通的計算機上實現。
本文來自CSDN博客,轉載請標示:http: //blog.csdn.net/deantry119/archive/2009/12/28/5089598.aspx