Sun Java Enterprise System 2005Q4 技術摘要

Java Enterprise System 結構架構

Java ES 元件支援分散式企業強度軟體解決方案的部署。

在由業務需求所要求的效能、可用性、安全性、延展性及服務性層級,若要達成需要的功能,這些軟體解決方案必須經過適當的設計。

設計分散式企業層軟體解決方案時要涉及一些架構要素。這些要素代表不同的視角,可從其中檢視用於建構此類系統的許多軟體元件之間的互動。特別是,分散式系統的設計與下列三個架構要素有關:

下圖會顯示解決方案架構的這三個要素。

圖 2–1 Java ES 解決方案架構的三要素

顯示包含邏輯層、基礎架構服務層級及服務品質的三要素架構的示意圖。

這三要素共同組合成一個單一架構,其中包含軟體元件 (應用程式元件與基礎架構元件兩者) 間的關係,需要使用這些元件來達成軟體解決方案需具備的服務功能與服務品質。

以下小節會個別描述三個要素,然後是有關將三個要素合成為統一架構的內容。

第 1 要素:基礎架構服務相依性

分散式企業應用程式的互動軟體元件需要一套基本的基礎架構服務,讓分散式元件可以執行相互通訊、協調作業、實作安全存取等動作。本節說明若干 Java ES 元件在提供這些基礎架構服務時發揮的關鍵作用。

基礎架構服務層級

設計分散式軟體系統時,不論它主要由自訂開發元件還是即開即用 Java ES 元件組成,都需要包含若干基礎架構服務。這些服務可在許多層級中作業。

圖 2–2 說明解決方案架構的基礎架構服務相依性這一要素。此圖中顯示的層級是圖 1–1 中基礎架構服務層的展開檢視。

圖 2–2 中的服務階層及它們之間的相依性構成了解決方案邏輯架構的重要一要素。這些基礎架構服務提供了瞭解 Java ES 系統服務元件 (請參閱系統服務元件) 作用的概念基礎。

圖 2–2 中顯示的服務大體分成三大群組:低階平台服務、高階應用程式服務與一組中介軟體服務,各群組的命名依據是某個群組在其他兩個群組間的位置。

圖 2–2 第 1 要素:基礎架構服務層級

顯示各分散式服務基礎架構層級的圖形,按從最低層級的作業系統平台服務至最高層級的整合服務這一順序顯示。

下列段落描述了不同的基礎架構服務層級,並參照與 Java 程式設計語言輔件相關的各種服務。依從最低至最高的順序 (如圖 2–2 中所示) 描述這些服務層級:

圖 2–2 中顯示的服務層級反映各種基礎架構服務 (從最低層級的作業系統服務到最高層級的應用程式與整合服務) 彼此間的普遍相依關係。一般來說,每項服務都依賴於其下方的服務,而為其上方的服務提供支援。

不過,圖 2–2 沒有表示各基礎架構服務的嚴格分層。較高層級的服務可直接與較低層級的服務進行互動,而不需要仰賴中間層級。例如,某些執行階段服務可直接仰賴平台服務,而不需要其間有任何服務層級。此外,也可將其他服務層級如監視或管理服務納入到此概念性圖示中。

Java Enterprise System 基礎架構服務元件

Java ES 元件實作 圖 2–2 中顯示的分散式基礎架構服務層級。不同層級內 Java ES 系統服務元件的定位顯示在圖 2–3 中。

圖 2–3 Java ES 系統服務元件

顯示 Java ES 系統服務元件相對於分散式基礎架構服務各層級定位的示意圖。


備註 –

圖 2–3 中顯示的作業系統平台不是 Java Enterprise System 的正式部分,不過,包含它們的目的是顯示支援 Java ES 元件的作業系統平台。


Java Enterprise System 基礎架構服務相依性

一般而言,圖 2–3 中顯示的每個 Java ES 系統服務元件都依賴基礎架構中其下的元件,並支援其上的元件。在設計邏輯架構時,這些相依性及支援關係是重要因素。

表 2–1 顯示 Java ES 系統服務元件間的特定關係 (依從上至下順序列示),如圖 2–3 所示。

表 2–1 Java ES 系統服務元件間的關係

元件 

依賴 

支援 

Portal Server 

Application Server 或 Web Server 

Access Manager 

Directory Server 

如果配置為使用對應的通道:Calendar Server Messaging Server Instant Messaging 

 

Messaging Server 

Directory Server 

Access Manager (用於單次登入) 

Calendar Server (用於電子郵件通知) 

Portal Server (用於訊息傳送通道) 

Instant Messaging 

Directory Server 

Access Manager (用於單次登入) 

Portal Server (用於即時訊息傳送通道) 

Calendar Server 

Directory Server 

Messaging Server (用於電子郵件通知服務) 

Access Manager (用於單次登入) 

Portal Server (用於行事曆通道) 

Access Manager 

Application Server 或 Web Server 

Directory Server 

Portal Server 

如果配置為單次登入:Calendar Server Messaging Server Instant Messaging 

Application Server 

Message Queue 

Directory Server (用於管理式物件) 

Portal Server 

Access Manager 

Message Queue 

Directory Server (用於管理式物件) 

Application Server 

Web Server 

Access Manager (用於存取控制) 

Portal Server 

Access Manager 

Directory Server 

無 

Portal Server 

Calendar Server 

Messaging Server 

Instant Messaging 

Access Manager 

Service Registry 

無 

Applcation Server 式元件 

第 2 要素:邏輯層

您可以這樣設想,分散式企業應用程式的互動軟體元件位於多個邏輯層中。這些層表示軟體元件的邏輯與實體獨立性 (以它們提供的服務的特性為依據)。

下圖說明解決方案架構的邏輯層這一要素。

圖 2–4 第 2 要素:分散式企業應用程式的邏輯層

圖形由左至右顯示四個邏輯層:用戶端層, 表示層, 業務服務層及資料層。

邏輯層架構基本上代表了圖 1–1 中分散式企業應用程式層。基礎架構服務層級中討論的 Java ES 系統服務元件提供對圖 2–4 中顯示的所有邏輯層內應用程式元件的支援。不過,邏輯層概念也適用於提供應用程式層級服務的系統服務元件,像是 Messaging Server 與 Calendar Server。

邏輯層說明

本節提供對圖 2–4 中顯示的四個邏輯層的簡短說明。這些說明所涉及的是使用 Java 2 Platform Enterprise Edition (J2EETM 平台) 元件模型實作的應用程式元件。但事實上,其他分散式元件模型 (如 CORBA) 同樣支援此架構。

邏輯與實體獨立性

圖 2–4 中說明的架構要素強調元件的邏輯與實體獨立性,以四個獨立的層來表示。這些層表示在網路環境的不同電腦中如何分割應用程式邏輯:

適用於系統元件的分層架構

圖 2–3 所示,Java ES 基礎架構服務元件為分散式軟體解決方案提供基礎的基礎架構支援。不過,這些解決方案中的一部分包括由 Java ES 元件直接提供的應用程式層級服務。這些解決方案使用邏輯層設計方法。

例如,Messaging Server 提供的電子郵件通訊服務是使用若干個邏輯上獨立的 Messaging Server 配置實作的。這些獨立配置中的每一個均提供一組不同的服務。設計訊息傳送解決方案時,這些獨立配置代表位於不同邏輯層的個別元件,如下圖所示。

圖 2–5 Messaging Server:分層架構範例

圖形顯示分散在四個邏輯層中的元件。


備註 –

圖 2–5 並非顯示完整的邏輯架構,其為簡化圖例,其中省略了若干 Java ES 元件。連接各元件的線代表彼此的互動。


將 Messaging Server 功能按邏輯分割為不同的層後,就可以在同一實體環境中的不同電腦上部署邏輯上獨立的 Messaging Server 配置。實體分割在滿足服務品質需求方面提供了彈性 (請參閱第 3 要素:服務品質)。例如,它為不同實例供給不同的可用性解決方案,為不同的 Messaging Server 功能供給不同的安全性實作。

第 3 要素:服務品質

前兩個架構要素基礎架構服務相依性和邏輯層主要定義架構的邏輯層面,即需要哪些元件以何種方式進行互動,才能給一般使用者提供服務。不過,對任何已部署解決方案而言,是否具備滿足服務品質需求的能力也是一個同等重要的要素。

解決方案架構的服務品質這一要素強調 Java ES 服務品質元件所發揮的作用。

服務品質

隨著網際網路和電子商務服務對業務營運的重要性日益增加,這些服務的效能、可用性、安全性、延展性與服務性已成為大規模、高效能部署架構在服務品質上的關鍵性需求。

若要設計出成功的軟體解決方案,您必須建立相關的服務品質需求,並且設計出能滿足這些需求的架構。可使用一些重要的服務品質來指定服務品質需求。下表概述了這些服務品質。

表 2–2 影響解決方案架構的服務品質

系統服務品質 

說明 

效能

衡量相對於使用者負載條件的回應時間和延時。 

可用性

一種衡量一般使用者可存取系統資源與服務頻率的指標 (系統的正常執行時間)。

安全性

描述系統及其使用者的完整性之複雜因子組合。安全性包含系統的實體安全性、網路安全性、應用程式及資料安全性 (使用者的認證與授權) 以及資訊的安全傳輸。 

延展性

隨時間推移在已部署系統中新增容量的能力。延展性通常牽涉在系統中新增資源,但不應要求對部署架構做出變更。 

潛在容量

系統在不新增資源的情況下處理少見的尖峰負載用量的能力。 

服務性

對已部署系統進行維護的易行度,維護包括系統監視、修復發生的問題及升級硬體與軟體元件等作業。 

服務品質這一要素對解決方案的部署架構有極大影響:如何在實體環境中部署應用程式元件及基礎架構元件。

各服務品質會影響部署架構且彼此關係密切:對某個系統品質的需求可能會影響對其他系統品質的設計。例如,較高層級的安全性可能會影響效能,而效能又會影響可用性。新增額外電腦透過備援解決所造成的可用性問題,可能會影響到維護成本 (服務性)。

瞭解各服務品質間的關聯方式及需要做何取捨,是能否設計出可同時滿足業務需求和業務限制之部署架構的關鍵所在。

Java Enterprise System 服務品質元件

數個 Java ES 元件的主要用途是增強系統服務元件或分散式應用程式元件提供的服務品質。這些軟體元件通常會與硬體元件 (如負載平衡器與防火牆) 搭配使用。

服務品質元件中介紹的 Java ES 服務品質元件歸納如下:

下表顯示從架構觀點來看最重要的 Java ES 服務品質元件及受它們影響最大的系統品質。

表 2–3 服務品質元件及所影響的系統品質

元件 

影響的系統品質 

Communications Express

安全性

延展性 

Directory Proxy Server

安全性

延展性

High Availability Session Store 

可用性

Portal Server Secure Remote Access

安全性

延展性

Sun Cluster 

可用性

延展性

Web Proxy Server 

安全性 

效能 

服務性

Sun Cluster 軟體

Sun Cluster 軟體為 Java ES 元件與延展性 Java ES 基礎架構支援的應用程式提供高可用性服務。

叢集是一組鬆耦合的電腦 (叢集節點),它們的共同作用讓使用者可透過單一用戶端檢視服務、系統資源及資料。叢集在內部使用備援電腦、互連、資料儲存區與網路介面,為以叢集為基礎的服務與資料提供高可用性。

Sun Cluster 軟體持續地監視成員節點及其他叢集資源的運作狀態。Sun Cluster 軟體會在發生故障時介入,為所監視的資源啟動容錯移轉,使用內部備援提供對這些資源的近乎不間斷的存取。

下圖顯示的是支援 Messaging Server 與 Calendar Server 的資料儲存區服務的雙節點叢集。

圖 2–6 使用 Sun Cluster 節點的可用性設計

本圖形顯示 Sun Cluster 可用性設計的備援電腦、資料儲存區及互連。

Sun Cluster 資料服務套裝軟體 (有時稱為 Sun Cluster 代理程式) 可供所有 Java ES 系統服務元件使用。您也可以為自訂開發應用程式元件撰寫代理程式。

由於 Sun Cluster 軟體能夠提供一定程度的控制能力,因此還可以供給可延伸服務。藉由運用叢集的全域檔案系統及在叢集中的多個節點執行基礎架構或應用程式服務的能力,可以在多個同步運作的服務實例間平衡分佈對這些服務的增加需求。因此,經正確配置後,Sun Cluster 軟體便可在分散式企業應用程式中既供給高可用性又供給延展性。

由於支援 Sun Cluster 環境對備援的需要,在解決方案中包括 Sun Cluster 會大大增加實體環境中所需的電腦及網路連結數目。

與其他 Java ES 元件提供的服務不同的是,Sun Cluster 可用性服務是分散的對等式服務。因此,必須在叢集中的每部電腦上安裝 Sun Cluster 軟體。

三個架構要素之組合

如果將圖 2–1 所示及以上各節中討論的架構三要素做為一個整體加以檢視,它們提供了用於設計分散式軟體解決方案的架構。這三要素 (基礎架構服務相依性、邏輯層及服務品質) 強調 Java ES 元件在解決方案架構中發揮的作用。

每個要素均代表獨立的架構觀點。任何解決方案架構均需要將這些要素列為考量因素。例如,解決方案架構的每個邏輯層中的分散式元件 (第二個要素) 都需要獲得適當基礎架構元件 (第一個要素) 與適當服務品質元件 (第三個要素) 的支援。

同樣地,解決方案架構的任一元件在不同的架構要素中,也都扮演著不同的角色。例如,Directory Server 可以既做為資料層 (第 2 要素) 中的後端元件,又做為持續性服務 (第 1 要素) 的提供者。

因為 Directory Server 以這二要素為中心,所以對此 Java ES 元件而言服務品質問題 (第 3 要素) 最重要。Directory Server 故障會對業務系統造成極大影響,因此此元件的高可用性設計非常重要;而且由於 Directory Server 的用途是儲存敏感的使用者或配置資訊,因此此元件的安全性設計也十分重要。

與 Java ES 元件相關的三要素相互作用會影響解決方案邏輯架構及解決方案部署架構的設計。

根據Java Enterprise System 結構架構所表示的結構架構概述詳細的設計方法超出了本書的範圍。不過,三要素結構架構強調了在部署基於 Java Enterprise System 的軟體解決方案時需要瞭解的重要設計層面。