分散式企業應用程式的互動軟體元件需要基本的基礎架構服務,讓分散式元件可以執行相互通訊、協調作業、實作安全存取等動作。本節說明這些 Java ES 元件在提供基礎架構服務時所扮演的關鍵角色。
設計分散式軟體系統時,不論它主要由自訂開發元件還是即開即用 Java ES 元件組成,都需要包含若干基礎架構服務。這些服務可在許多層級中作業。
圖 2–2 說明解決方案架構的基礎架構服務相依性。此圖顯示的層級是圖 1–1 中已展開的基礎架構服務層檢視。圖 2–2 中的服務階層及它們之間的相依性構成了解決方案邏輯架構的一重要要素。這些基礎架構服務提供 Java ES 系統服務元件的主要原理 (請參閱系統服務元件)。
一般而言,下圖中所顯示的服務分為以下三大群組:低階平台服務、高階應用程式服務與一組中介軟體服務 ,各群組的命名依據是其在其他兩個群組間的位置。
以下內容描述了不同的基礎架構服務層級,並參照與 Java 程式設計語言工件相關的各種服務,然後按照由低到高的順序列出,如圖 2–2 所示:
作業系統平台。為任何在電腦上執行的程序提供基本支援。作業系統管理實體裝置及記憶體、執行緒和其他支援 Java 虛擬機器 (JVMTM 機器) 所需的資源。
網路傳輸。為在不同電腦上執行的分散式應用程式元件間的通訊提供基本網路支援。這些服務包括對 TCP 和 HTTP 等協定的支援。其他較高層級的通訊協定 (請參閱訊息傳送層) 則要視這些基礎傳輸服務而定。
訊息傳送。 提供對應用程式元件間的同步與非同步通訊的支援。同步訊息傳送指訊息的即時傳送與接收,且包括 J2EE 元件間的遠端方法呼叫 (RMI) 及與 Web 服務的 SOAP 互動。而在非同步訊息傳送通訊中,訊息發送並不需要依賴客戶是否已準備好立即接收訊息才能進行。非同步訊息傳送規格 (如 Java Message Service (JMS) 和 ebXML) 支援擔保穩定性及其他訊息傳送語義。
執行階段。提供任何分散式元件模型 (如 J2EE 或 CORBA 模型) 所需要的支援。除緊耦合分散式元件所需的遠端方法呼叫外,執行階段服務還包括元件狀態 (生命週期) 管理、執行緒池管理、同步化 (互斥鎖定)、持續性服務、分散式作業事件監視及分散式例外處理。在 J2EE 環境中,這些執行階段服務由應用程式伺服器或 Web 伺服器中的 EJB、Web 及訊息驅動 Bean 容器提供。
安全性與策略。提供對安全存取應用程式資源的支援。這些服務包括對一些策略的支援,這些策略管控以群組或角色為基礎的對分散式資源的存取,還包括單次登入功能。單次登入讓使用者能夠在通過分散式系統中一項服務的認證時便自動通過系統中其他服務 (J2EE 元件、業務服務和 Web 服務) 的認證。
使用者協作。所提供的服務在支援使用者間的直接通訊及企業與網際網路環境使用者間的協作方面扮演關鍵的角色。這些服務是應用程式層級的業務服務,一般由獨立伺服器 (如電子郵件伺服器或 Calendar Server) 提供。
整合。提供集合現有業務服務的服務。提供用來存取服務的共用介面 (如入口網站所採用的),或是透過將這些服務在生產作業流程中予以協調的程序引擎將它們加以整合。整合也可以不同企業間的企業對企業互動方式來進行。
圖 2–2 中的服務層級反映了基礎架構服務彼此間的相依性,按從最低層級作業系統服務至最高層級的應用程式與整合服務這一順序顯示。一般來說,每項服務都依賴於其下方的服務,而為其上方的服務提供支援。但是,圖 2–2 並不代表基礎架構服務的嚴格分層限制。較高層級的服務可直接與較低層級的服務進行互動,而不需要仰賴中間層級。例如,某些執行階段服務可直接仰賴平台服務,而不需要其間有任何服務層級。此外,也可將其他服務層級如監視或管理服務納入到此概念性圖示中。
Java ES 元件實作 圖 2–2 中顯示的分散式基礎架構服務層級。下圖顯示了系統服務元件在不同層級內的位置。
圖中的較暗方塊指示未包含在 Java ES 中的元件。使用者協作元件並不包含於 Java ES 中,但常隨 Java ES 元件一起部署,並在 Java ES 架構內使用。這些元件為 Sun Java Communications Suite 的組成部份,在此文件中只做為說明參照之用。此外,顯示的作業系統平台並不是 Java ES 正式的組成部份,但包含在圖中以便顯示會支援 Java ES 元件的作業系統平台。
一般而言,在圖 2–3 中顯示的每個 Java ES 系統服務元件在基礎架構中,都依賴於其下方的元件,而為其上方的元件提供支援。在設計邏輯架構時,這些相依性及支援關係是重要因素。
下表顯示 Java ES 系統服務元件間的特定關係 (依從上至下順序列示),如圖 2–3 所示。
表 2–1 Java ES 系統服務元件間的關係