已開發了基于組件的應用程序,該應用程序在邏輯上構造為多層結構,如 Three-Layered Services application. 中所述。您希望將它分布到一組在物理上為多級結構的服務器上,如 Tiered Distribution 中所述。
圖 1: 三層服務應用程序
確定將組件部署到哪一級時,必須在實際環境的上下文中考慮下列影響因素:
應用程序體系結構設計者必須與系統體系結構設計者共同創建部署規劃,以說明每個應用程序組件將部署到哪一級。溝通成功的關鍵是雙方都從明確指定的一組高質量 要求開始,并向下細化到可測試級別。例如,"應用程序必須可伸縮"要求對于可測試性而言還不夠具體。更具可測試性的要求可能為:"應用程序在啟動時必須支 持 50 個響應時間為兩秒的并發用戶,并且必須可擴展為支持 500 個響應時間為三秒的并發用戶。"這一要求還應以系統和應用程序體系結構設計者都能理解的方式簡練表述出來。除了從特定的要求開始外,雙方還必須透徹了解將 對解決方案施加的技術、法律和業務約束。
基于這些要求和約束,應用程序設計者定義一組組件(在 Three-Layered Services Application 中指定),而系統設計者定義一組級(在"分級分布"中指定)。執行此映射的過程時,在雙方之間的討論中,由于每一方都知曉了另一方的觀點而時常導致組件和級發生重大更改。
要展開此項溝通活動,應將前述影響因素作為指南,將 Three-Layered Services Application 中指定的組件角色映射為級。例如,用戶界面組件可以映射為 Web 級,而業務組件幾乎總是映射為應用程序級。
下 一步是考慮應用程序中的每個組件,并將它分配到某一級。在大多數情況下,通過確定組件在應用程序中所扮演的角色,然后將它分配給在上一步中為該角色確定的 相應級來將該組件分配給某一級。但是,有些組件不可避免地具有獨特的運行或資源要求,從而導致其映射到交替的多級。雖然這些特殊情況是預料中的,但是如果 數量過多,您可能需要修改角色與級之間的初始映射關系。
將組件分配到級時,可能找不到與某個組件較好匹配的級。如果發生這種情況,那么兩個團隊必須協同工作,從修改組件以便更好地適合基礎結構或修改基礎結構以便更好地適合組件中進行選擇,以確定其成本和優點。
基于 Three-Layered Services Application,目前已確定了幾種常見的企業應用程序部署規劃模型:簡單 Web 應用程序、復雜 Web 應用程序、擴展企業應用程序以及智能客戶端應用程序。
簡單 Web 應用程序配置將所有組件部署到一個通用級。此配置(如圖 2 所示)從理解上是復雜程度最低且最簡單的配置。
圖 2: 簡單 Web 應用程序部署
復雜 Web 應用程序配置(如圖 3 所示)將表示組件和域組件進行分離,并將其部署到不同級(已專業化以處理其獨特要求)。
圖 3: 復雜 Web 應用程序部署
用 戶界面組件 (UIC) 和用戶界面進程組件 (Uip) 是對 Internet 公開的,并且可能潛在地與許多客戶端交互。由于這些表示層組件通常公開于公司防火墻外部,因此其安全要求通常比未公開的組件具有多得多的限制。此外,許多 組織要求公開于 Internet 中的服務器不能包含任何敏感數據。因此,通過將表示層組件單獨放入一級并配置該級使其具有最高安全性,可顯著提高解決方案的總體安全性,同時可盡量降低對 安全性要求相對較低的組件的影響。
由于表示層組件公開于 Internet 中,因此其性能和可伸縮性要求通常不同于域和數據訪問層組件的性能和可伸縮性要求。表示層組件通常為處理以突發方式與組件交互的許多并發用戶而進行優化。 域和數據訪問層組件通常為處理來自相對較少的源所發出的穩定請求流而進行優化。配置一個可充分支持這兩組優化的級可能是非常困難的。因此,解決方案是使用 兩級,并使每一層針對所駐留的組件類型進行優化。
擴展的企業應用程序使用其他應用程序所提供的服務,并且還可能將功能作為服務公開,以供其他應用程序使用。圖 4 顯示此部署配置。
圖 4: 擴展的企業應用程序部署
將服務網關 (SG) 和服務接口 (SI) 放入 Web 級的原因與將表示組件放入 Web 級的原因相同,后者已在本模式中的前面部分討論。
智能客戶端配置將用戶界面組件部署到客戶端級而不是 Web 級。之所以將表示組件移動到客戶端級,主要動機是豐富的用戶界面需要具有與用戶進行高度交互的能力。主流 Web 技術不支持這些豐富的用戶界面需求。圖 5 顯示具有其他級的智能客戶端配置。
圖 5: 智能客戶端應用程序部署
注意 : 大型企業應用程序通常看起來好像由本模式中討論的一個或多個模型組 成。例如,雖然擴展企業應用程序中的大多數業務組件都運行在應用程序服務器中,但是由于性能原因,可能有幾個組件運行在 Web 場中,并且可能有一個或兩個運行在瀏覽器中。
應用程序開發和系統基礎結構團隊之間的溝通,對于應用程序的成功部署至關重要。最終的部署規劃具有下列優點:
注意 : 除非公司文化認為應用程序和系統基礎結構觀點同等重要,否則應用 程序開發團隊和系統基礎結構團隊之間的溝通將不會產生最優的部署規劃。兩個團隊必須很靈活,并愿意達成妥協以使雙方都能實現其要求。
新聞熱點
疑難解答