Sun Java logo     上一頁      目錄      索引      下一頁     

Sun logo
Sun Java System Message Queue 3 2005Q1 技術概述 

第6章
Message Queue 和 J2EE

Java 2 Platform Enterprise Edition (J2EE 平台) 是標準伺服器平台裝載多層式和精簡型用戶端企業應用程式的規格。J2EE 平台的其中一個要求是分散式元件能透過可靠的、非同步的訊息交換而彼此互動。這樣的互動能透過 JMS 提供者而達成。事實上,Message Queue 即是 J2EE 平台的參照 JMS 實作。

本章說明在 J2EE 平台環境中實作 JMS 支援的結果情形。本章包含下列主題:

因為本章同時包含程式設計和部署 J2EE 元件,所以同時適合應用程式開發者和管理員閱讀。


JMS/J2EE 程式設計:訊息驅動 Bean

JMS 程式設計模型中介紹的一般 JMS 用戶端程式設計模型之外,還有專用於 J2EE 平台應用程式環境的 JMS。此專用的 JMS 用戶端稱為訊息驅動 Bean,是 EJB 2.0 規格 (http://java.sun.com/products/ejb/docs.html) 中描述的 Enterprise JavaBean (EJB) 元件系列之一。

因為其他 EJB 元件 (階段作業 Bean 和實體 Bean) 僅可被同步呼叫,所以就產生了對訊息驅動 Bean 的需求。這些 EJB 元件只能透過標準 EJB 介面來存取,因此它們沒有非同步接收訊息的機制。

但是,非同步訊息傳送是許多企業應用程式中必不可少的要求。這些應用程式大都需要伺服器端元件在不佔用伺服器資源的情況下,能夠互相通訊和回應。因此,就出現了對 EJB 元件的需求,該元件不需要緊密耦合到訊息產生者即可接收和使用訊息。對於伺服器端元件必須回應應用程式事件的任何應用程式,均必須具備此功能。在企業應用程式中,此功能還必須能夠依據不斷增加的負載來進行延伸。

訊息驅動 Bean (MDB) 是由專用 EJB 容器 (為所支援的元件提供分散式服務的軟體環境) 支援的專用 EJB 元件。

訊息驅動 Bean     MDB 是實作 JMS MessageListener 介面的 JMS 訊息用戶。在 MDB 容器接收訊息時,會呼叫 onMessage 方法 (由 MDB 開發者編寫)。onMessage() 方法使用該訊息的方式與標準 MessageListener 物件的 onMessage() 方法使用訊息的方式一樣。您不能以呼叫其他 EJB 元件的方法來遠端呼叫 MDB:因此不存在與其關聯的本機介面或遠端介面。MDB 可以使用來自單一目標的訊息。獨立式 JMS 應用程式、JMS 元件、EJB 元件或 Web 元件均可以生產訊息,如圖 6-1 中所示。

圖 6-1 與 MDB 進行訊息傳送

圖表顯示 JMS 訊息產生者向 J2EE 環境中的 MDB 使用實例傳送訊息。

MDB 容器     MDB 由專用 EJB 容器支援,負責建立和設定 MDB 實例,以用於非同步訊息使用。這包括設定與訊息服務 (包括認證) 的連線,建立與給定目標關聯的階段作業儲存區,以及管理在階段作業儲存區和關聯的 MDB 實例之間分散收到的訊息。由於容器控制 MDB 實例的生命週期,因此它透過管理 MDB 實例儲存區來容納進來的訊息負載。

與 MDB 關聯的是一個部署描述元,此描述元為設定訊息使用時所用的受管理物件指定了 JNDI 查找名稱:連線工廠和目標。部署描述元可能還包括用於配置容器的部署工具所需的其他資訊。每個容器僅支援單一 MDB 的實例。


J2EE 應用程式伺服器支援

在 J2EE 架構中 (請參閱 http://java.sun.com/j2ee/download.html#platformspec 上的 J2EE 平台規格),EJB 容器由 J2EE 應用程式伺服器託管。應用程式伺服器提供各種容器所需的資源:作業事件管理程式、永久性管理程式、名稱服務以及 JMS 提供者 (用於訊息傳送和 MDB)。

在 Sun Java System Application Server 中,JMS 訊息傳送資源由 Sun Java System Message Queue 提供:

JMS 資源介面

資源介面是一個能將附加功能外掛到符合 J2EE 1.4 規格的應用程式伺服器中的標準方式。(該標準是由 J2EE Connector Architecture (J2EECA) 1.5 規格所定義。)此架構允許任何符合 J2EE 1.4 規格的應用程式伺服器,以標準方法與外部系統進行互動。外部系統可包括各種企業資訊系統 (EIS),以及各種訊息傳送系統:例如,JMS 提供者。Message Queue 包括一個 JMS 資源介面能讓應用程式伺服器將 Message Queue 當作 JMS 提供者使用。

J2EECA 1.5 促成的標準互動包括連線集區、執行緒集區、作業事件、安全環境傳遞,以及各式訊息驅動 Bean 的支援。此規格亦包括建立連線工廠與其他受管理物件的標準方法。

插入 JMS 資源介面至應用程式伺服器,能讓在應用程式伺服器中已部署及執行的 J2EE 元件交換 JMS 訊息。使用 J2EE 應用程式伺服器管理工具,可以建立並配置這些元件所需的 JMS 連線工廠與目標受管理物件。

但是,像是管理訊息伺服器與實體目標的其他管理作業不包括在 J2EECA 規格中且這些作業只能使用提供者的特定工具來執行。

Message Queue 資源介面整合在 Sun J2EE 1.4 應用程式伺服器中。但是,還沒有任何其他 J2EE 1.4 應用程式伺服器認證過資源介面。

Message Queue 資源介面為單一檔案 (imqjmsra.rar) 位於作業系統的某個目錄中,目錄位置因作業系統而異 (請參閱「Message Queue 管理指南」)。imqjmsra.rar 檔案包含資源介面部署描述元 (ra.xml) 以及為讓應用程式伺服器使用該介面所需的 JAR 檔案。

遵循應用程式伺服器隨附的資源介面部署與配置說明,您即可使用任何 J2EE-1.4 相容應用程式伺服器中的 Message Queue 資源介面。當您可取得商業用 J2EE 1.4 應用程式伺服器,且 Message Queue 資源介面已經應用程式伺服器認證,Message Queue 文件將提供相關部署與配置程序的特定資訊。



上一頁      目錄      索引      下一頁     


文件號碼 819-2224。   Copyright 2005 Sun Microsystems, Inc. 版權所有。