本章討論與 Java ES 解決方案生命週期的每個階段相關的概念與術語。本章的重點在於部署作業,特別是部署設計及部署實作作業。
本章是按下列三種生命週期階段群組進行編排:
第 1 章, Java Enterprise System 簡介 中介紹解決方案生命週期時將做為實作使用 Java ES 軟體的業務解決方案的標準方法。本章描述生命週期各階段包含的作業。圖 4–1 中再次提供了生命週期圖,以便參照。
在生命週期的部署前階段,將業務需求分析轉化為部署方案。部署方案是部署設計的規格說明書。
部署前作業可區分成三個階段,如圖 4–1 所示:
業務分析。在此階段,定義提議部署作業的業務目標,並陳述達成該目標所必須滿足的業務需求與限制。
技術需求。在此階段,使用業務分析結果建立使用案例,這些使用案例模擬使用者與預期軟體系統的互動。還將決定這些使用案例預期的使用模式。同時使用業務分析與使用分析,用公式表示提議的部署必須滿足的服務品質需求 (請參閱表 2–2)。
邏輯設計。在此階段,分析在技術需求階段制定的使用案例,以判定提供一般使用者服務需要哪些 Java ES 基礎架構元件和自訂開發的應用程式元件。使用第 2 章, Java Enterprise System 解決方案架構中討論的概念來設計邏輯架構。邏輯架構顯示所有的元件和元件之間所有的互動,需要這些項目才能讓特定軟體解決方案的使用案例生效。
邏輯架構合併了效能、可用性、安全性及其他服務品質需求,封裝在部署方案中,如下圖所示。如需關於生命週期部署前階段的更多資訊,請參閱「Sun Java Enterprise System 2005Q4 部署規劃指南」。
在生命週期的部署階段,將部署方案轉化為部署設計,然後在生產環境中實作、測試及建置該設計。
部署程序一般包含支援軟體解決方案所需的所有層級與所有基礎架構服務層中的軟體元件。通常支援解決方案所需的自訂開發應用程式元件 (J2EE 元件、Web 服務或其他伺服器) 及 Java ES 兩者都須部署。
部署作業可區分成兩個階段,如圖 4–1 所示:
部署設計。部署設計會視解決方案的邏輯架構與效能、可用性、安全性、延展性、服務性及其他解決方案必須滿足的服務品質需求這兩方面而有所不同。部署架構的服務品質要素在部署設計階段扮演非常重要的角色。
部署實作。部署設計的實作通常是一個反覆性的過程,其中包含硬體設定、軟體安裝及配置、開發及整合、測試以及產品建置的其他層面。
下列章節會更詳盡地探討這兩個部署程序的階段。
建立部署架構的方法如下:在符合部署方案中所指定的服務品質需求的前提下,將應用程式 (邏輯架構) 的邏輯建構區塊對應至實體運算環境。
將部署方案轉化為部署架構,如下圖所示。
此架構設計的一個面向是確定實體環境的大小 (決定電腦數目、預估處理器的能力和 RAM 需求),以符合效能、可用性、安全性以及其他服務品質的需求。確定大小後,將 Java ES 元件和應用程式元件與實體環境中的各部電腦加以對映。產生的部署架構必須將不同電腦的能力、系統基礎架構服務的特性以及總擁有成本或總可用成本的限制等等因素考慮在內。
部署方案中 Java ES 元件的數目愈大,服務品質需求愈高,也就愈加要求設計要建立在高能力電腦與高網路頻寬之上。如果硬體受到限制或者過分昂貴,您可能必須在固定成本 (硬體) 與變動成本 (人力資源需求) 之間,或是不同的服務品質需求之間有所取捨,或者您也可能必須增加設計的複雜程度。
架構設計經常以反覆的方式進行。不過,Java Enterprise System 正在開發一個參照部署架構集,將其做為部署設計的起點。
參照架構以特定的部署方案為基礎:具有特定服務品質需求的邏輯架構。在參照架構中,軟體解決方案在符合指定的服務品質需求的前提下,跨特定的實體環境來部署。在指定負載下的效能測試與部署方案開發基於相同的一組使用案例。Java ES 客戶可以使用參照架構文件,但須簽署保密切結書。
根據參照部署架構或參照架構的組合,您可以設計出第一個近似符合您的部署方案需求的部署架構。您可以調整參照架構或使用參照架構作為參照點,將您自己的部署方案與參照架構的基礎部署方案之間的差異因素考慮在內。透過這種方式,您可以評估大小設定、效能、安全性、可用性、容量與服務性需求所帶來的影響。
實作規格提供實作部署架構所需的詳細資訊。一般而言,規格會包含下列資訊:
實作規劃描述您在部署實作階段中,計劃執行各種作業的方式。這些規劃涵蓋下列作業:
硬體設定
軟體安裝、升級及遷移
系統配置及自訂
開發及整合
測試
生產建置
部署設計實作由前一節中列出並顯示於圖 4–1 中的作業組成。因為部署過程在本質上是具反覆性的,所以沒有強制規定這些作業的順序。下列各節將按通常的部署執行順序討論每個主要的部署作業。如需這些作業的詳細文件資訊,請參閱「Sun Java Enterprise System 2005Q4 文件資訊指南」以瞭解詳細資訊。
實作規格包含實體環境中的所有詳細資訊:電腦、網路設計、網路硬體包括纜線、交換器、路由器和負載平衡器、儲存裝置等等。需要將所有這些硬體設置為支援 Java ES 解決方案的平台。
部署架構與實作規格中提供的其他詳細資訊讓您瞭解哪些應用程式元件及哪些 Java ES 元件會常駐在實體環境中的每部電腦上。使用 Java ES 整合安裝程式在部署架構中的每部電腦上安裝適當的 Java ES 元件 (請參閱Java Enterprise System 整合安裝程式)。
您的安裝規劃描述安裝程式階段作業的順序和規模。不過,執行安裝時所使用的方法可能取決於下列因素:執行的是否為 Java Enterprise System 全新安裝、是否是升級先前安裝的 Java ES 元件或是否是以 Java Enterprise System 替代協力廠商元件。這些 Java ES 採用方案中的最後兩種往往需要遷移資料或應用程式程式碼來實現相容性。
您必須完成某些系統配置作業,才能讓不同的系統元件在一起運作,成為整合的系統。首先,這些作業有部份是啟動個別系統元件所需的初始配置。其次,必須將每個 Java ES 元件配置為可與做為其互動式操作基礎的那些元件通訊。
必須視每個元件的可用性解決方案,配置高可用性。需要佈建使用者,以便他們能存取各種服務;還需要設置認證與授權策略及控制 (請參閱整合式身份識別與安全性服務)。
在大部分情況下,配置作業須包含一定程度的 Java ES 元件自訂作業,才能形成完全合乎需求的功能集。例如,通常自訂 Portal Server 以提供入口網站通道、自訂 Access Manager 以執行授權作業及自訂 Messaging Server 以使用病毒檢查與反垃圾郵件篩選。
部署方案中指定的邏輯架構通常判定實作解決方案所需的自訂開發工作的範圍。
某些部署的開發規模可能相當大,需要使用在 Application Server 或 Web Server 環境中執行的 J2EE 元件從頭開發新的業務與表示服務。如果是這種情況,請建立解決方案的原型並執行概念認證測試,然後再著手進行完整的開發。
至於需要大量開發作業的解決方案,Sun Java Studio 提供用於設計分散式元件或業務服務的工具。Sun Java Studio 簡化了對 Java ES 基礎架構支援的應用程式的程式設計與測試過程。
在某些情況下,Java ES 元件可能會與舊有應用程式或協力廠商服務整合。整合可能包含資料層中的現有目錄或資料服務,或是業務服務層中的現有元件。可能需要遷移資料或應用程式程式碼,才能將 Java ES 元件與這些系統整合。
J2EE 平台提供連接器架構,該架構讓您可透過開發 J2EE 資源配接卡將現有應用程式外掛在 Application Server 環境中;Message Queue 則提供牢固的非同步訊息傳送功能來整合各種應用程式。
有時,視所需的自訂或開發作業數目的不同,您需要檢查部署架構,使用案例測試解決方案,來檢查您是否能滿足服務品質需求。
如果擁有相對少的自訂開發服務 (主要是即開即用的部署),則解決方案只需要自訂 Java ES 元件及進行系統先導測試。
但是,如果您開發了基本全新的應用程式邏輯並建立了自訂服務,測試作業可能更繁重,包含原型測試、整合測試等等。
如果在測試中暴露出部署架構存在不足,請修改架構並重新測試。透過這一反覆性的過程,最終會獲得可隨時部署到生產環境中的部署架構與實作。
生產建置涉及在生產環境中增建部署實作。此階段包括生產環境中安裝、配置與啟動分散式應用程式與基礎架構服務,佈建生產系統一般使用者,設定單次登入、存取策略以及類似物件。通常以有限的部署開始,逐漸發展至整個組織的實作。在此過程中,將進行試驗執行,在試驗中逐步加大負載,以確認系統符合服務品質需求。
在生命週期的部署後階段,於生產環境中執行已部署解決方案。下列作業與生命週期的階段作業有關。
監視。這些作業包含對系統效能及系統功能的定期監視。
維護。這些作業包含最常用的管理功能,例如將新的一般使用者增加到系統中、變更密碼、增加新的管理使用者、變更存取權限、執行定期備份等等。
效能調校。這些作業包括使用定期監視資訊來發現系統作業的瓶頸、透過變更配置內容來消除瓶頸、新增功能等作業。
系統增強及升級。這些作業包括為系統增加新的 Java ES 元件以增加新功能或替代非 Java ES 元件。在任何一種情況中,進行這些變更都必須重新設計系統,要從解決方案生命週期的初始階段開始進行。升級作業的限制更多,實際上通常是 Java ES 元件的升級。
每個 Java ES 元件都有其自身用於配置、調校或管理其作業的管理工具。主要目的是提供共用的監視與管理基礎架構及管理工具,來進行整體的系統管理。
本節說明本章使用的重要技術術語,重點是強調釐清這些術語之間的關係,以及它們如何在 Java Enterprise System 環境中使用。
Java Enterprise System 解決方案生命週期程序的一個階段,在這一階段,部署方案轉化為部署設計,然後在生產環境中實作、建立原型並建置部署設計。此程序的終端產品也稱為部署 (或部署的解決方案)。
Java Enterprise System 解決方案的邏輯架構及為符合業務需求解決方案所必須滿足的服務品質需求。服務品質需求涉及下列項目:效能、可用性、安全性、服務性、延展性潛能。部署方案是部署設計的起點。
Java Enterprise System 解決方案部署程序中的一項作業,藉由該作業對部署架構的自訂元件進行程式設計與測試。
Java Enterprise System 解決方案生命週期程序的一個階段,在這一階段,業務需求轉化為部署方案:一個邏輯架構及解決方案必須滿足的一組服務品質需求。
Java Enterprise System 解決方案生命週期程序的一個階段,在這一階段,啟動、監視分散式應用程式,調校它們以使其效能最佳化及對它們進行動態升級以包含新功能。
一種針對效能進行設計、實作及測試的部署架構。參照部署架構是設計自訂解決方案部署架構的起點。
由分散式企業應用程式執行的一個特定的一般使用者作業或一組作業,用作設計、測試及計量應用程式效能的基礎。