前兩個架構要素基礎架構服務相依性和邏輯層主要定義架構的邏輯層面,即需要哪些元件以何種方式進行互動,才能給一般使用者提供服務。不過,對任何已部署解決方案而言,是否具備滿足服務品質需求的能力也是一個同等重要的要素。
解決方案架構的服務品質這一要素強調 Java ES 服務品質元件所發揮的作用。
隨著網際網路和電子商務服務對業務營運的重要性日益增加,這些服務的效能、可用性、安全性、延展性與服務性已成為大規模、高效能部署架構在服務品質上的關鍵性需求。
若要設計出成功的軟體解決方案,您必須建立相關的服務品質需求,並且設計出能滿足這些需求的架構。可使用一些重要的服務品質來指定服務品質需求。下表概述了這些服務品質。
表 2–2 影響解決方案架構的服務品質
系統服務品質 |
說明 |
---|---|
衡量相對於使用者負載條件的回應時間和延時。 |
|
一種衡量一般使用者可存取系統資源與服務頻率的指標 (系統的正常執行時間)。 |
|
描述系統及其使用者的完整性之複雜因子組合。安全性包含系統的實體安全性、網路安全性、應用程式及資料安全性 (使用者的認證與授權) 以及資訊的安全傳輸。 |
|
隨時間推移在已部署系統中新增容量的能力。延展性通常牽涉在系統中新增資源,但不應要求對部署架構做出變更。 |
|
系統在不新增資源的情況下處理少見的尖峰負載用量的能力。 |
|
對已部署系統進行維護的易行度,維護包括系統監視、修復發生的問題及升級硬體與軟體元件等作業。 |
服務品質這一要素對解決方案的部署架構有極大影響:如何在實體環境中部署應用程式元件及基礎架構元件。
各服務品質會影響部署架構且彼此關係密切:對某個系統品質的需求可能會影響對其他系統品質的設計。例如,較高層級的安全性可能會影響效能,而效能又會影響可用性。新增額外電腦透過備援解決所造成的可用性問題,可能會影響到維護成本 (服務性)。
瞭解各服務品質間的關聯方式及需要做何取捨,是能否設計出可同時滿足業務需求和業務限制之部署架構的關鍵所在。
數個 Java ES 元件的主要用途是增強系統服務元件或分散式應用程式元件提供的服務品質。這些軟體元件通常會與硬體元件 (如負載平衡器與防火牆) 搭配使用。
服務品質元件中介紹的 Java ES 服務品質元件歸納如下:
可用性元件。這些元件為部署的解決方案提供了近乎不間斷的正常執行時間。
存取元件。這些元件提供對系統服務的安全網際網路存取,通常也提供路由功能。
管理元件。這些元件為系統元件提供了增強的服務性。
下表顯示從架構觀點來看最重要的 Java ES 服務品質元件及受它們影響最大的系統品質。
表 2–3 服務品質元件及所影響的系統品質
元件 |
影響的系統品質 |
---|---|
延展性 |
|
High Availability Session Store | |
Sun Cluster | |
Web Proxy Server |
安全性 效能 |
Sun Cluster 軟體為 Java ES 元件與延展性 Java ES 基礎架構支援的應用程式提供高可用性服務。
叢集是一組鬆耦合的電腦 (叢集節點),它們的共同作用讓使用者可透過單一用戶端檢視服務、系統資源及資料。叢集在內部使用備援電腦、互連、資料儲存區與網路介面,為以叢集為基礎的服務與資料提供高可用性。
Sun Cluster 軟體持續地監視成員節點及其他叢集資源的運作狀態。Sun Cluster 軟體會在發生故障時介入,為所監視的資源啟動容錯移轉,使用內部備援提供對這些資源的近乎不間斷的存取。
下圖顯示的是支援 Messaging Server 與 Calendar Server 的資料儲存區服務的雙節點叢集。
Sun Cluster 資料服務套裝軟體 (有時稱為 Sun Cluster 代理程式) 可供所有 Java ES 系統服務元件使用。您也可以為自訂開發應用程式元件撰寫代理程式。
由於 Sun Cluster 軟體能夠提供一定程度的控制能力,因此還可以供給可延伸服務。藉由運用叢集的全域檔案系統及在叢集中的多個節點執行基礎架構或應用程式服務的能力,可以在多個同步運作的服務實例間平衡分佈對這些服務的增加需求。因此,經正確配置後,Sun Cluster 軟體便可在分散式企業應用程式中既供給高可用性又供給延展性。
由於支援 Sun Cluster 環境對備援的需要,在解決方案中包括 Sun Cluster 會大大增加實體環境中所需的電腦及網路連結數目。
與其他 Java ES 元件提供的服務不同的是,Sun Cluster 可用性服務是分散的對等式服務。因此,必須在叢集中的每部電腦上安裝 Sun Cluster 軟體。