Sun Java System Message Queue 3.7 UR1 技術摘要

Message Queue:元素和功能

到目前為止,我們已說明訊息導向中介軟體的元素,以及使用 JMS 增加 MOM 應用程式的可移植性。接下來要說明 Message Queue 如何實作 JMS 規格,並介紹其用於提供可靠、安全和可延展訊息傳送服務的功能與工具。

首先,和許多 JMS 提供者一樣,Message Queue 可以作為獨立產品,也可以用作內嵌在 J2EE 應用程式伺服器的啟用技術,以提供非同步的訊息傳送。第 5 章, Message Queue 和 J2EE對 Message Queue 在 J2EE 中所扮演的角色會有更詳盡的說明。與其他 JMS 提供者不同的是,Message Queue 已指定為 JMS 參照實作。此指定證明了 Message Queue 是正確完整的 JMS 實作。亦保證未來的 JMS 修訂和延伸可以繼續使用 Message Queue 產品。

Message Queue 服務

作為 JMS 提供者,Message Queue 提供訊息傳送服務,該服務實作 JMS 介面並提供管理服務與控制。到目前為止,在對 JMS 提供者的說明中,我們一直著重於代理程式在轉送訊息時所扮演的角色。但事實上,JMS 提供者必須包括除代理程式以外的許多元素,以提供可靠、安全、可延展的訊息傳送。圖 1–6 顯示組成 Message Queue 訊息服務的元素。這些元素包含多種連線服務 (支援不同的協定)、管理工具和資料存放區,以傳送訊息、監視和處理使用者資訊。Message Queue 服務本身包含圖中以灰色標記的所有元素。

圖 1–6 Message Queue 服務

圖中顯示訊息佇列服務的元件。圖以文字介紹。

如您所見,功能完整的 JMS 提供者的複雜程度超出基本 JMS 模型甚多。下列各節將說明上述的 Message Queue 服務元素。這些元素可分為三類:代理程式、用戶端執行階段支援和管理。

連線至代理程式

圖 1–6 所示,應用程式用戶端和管理用戶端均可連線到代理程式。JMS 規格並未規定提供者必須實作任何特定的線路協定。應用程式用戶端和管理用戶端用於連線到代理程式的 Message Queue 服務,目前位於 TCP、TLS、HTTP 或 HTTPS 協定的最上層。(位於 HTTP 最上層的服務可讓訊息通過防火牆。)

依預設,啟動代理程式時,jmsadmin 服務會啟動並執行。此外,您可以將代理程式配置為執行這些連接服務的任何一種或全部。每個服務支援特定的認證與授權 (存取控制) 功能,且每個服務為多重執行緒作業,支援多重連線。

如果連線失敗,Message Queue 服務會自動重新嘗試將用戶端連線至同一個代理程式,或連線至其他代理程式 (如果已啟用此功能)。如需更多資訊,請參閱附錄 BMessage Queue 功能 中關於自動重新連線功能的描述。

用戶端可以在建立連線工廠以取得連線時,配置連線執行階段支援。選項可讓您指定代理程式連線的目標、如何處理重新連線、訊息流量控制等。如需有關連線配置方式的其他資訊,請參閱連線工廠與連線

代理程式

代理程式是訊息服務的核心,可以可靠地路由和傳送訊息、認證使用者,並收集用於監視效能的資料。

Message Queue 服務提供多種管理工具,管理員可用於配置代理程式支援。如需更多資訊,請參閱管理

用戶端執行階段支援

建立 Message Queue 用戶端時,所連結的程式庫便會提供用戶端執行階段支援。您可以將用戶端執行階段想像為 Message Queue 服務變成為用戶端一部分的一個階段。例如,當用戶端程式碼呼叫 API 傳送訊息時,會呼叫這些程式庫中的程式碼,以便用適當方式為協定封裝訊息位元,而此協定將用於將訊息轉送至代理程式上的實體目標。

Java 和 C 用戶端支援

只有支援 Java 用戶端時才需要 JMS 提供者;但是,如圖 1–6 所示,Message Queue 用戶端可以使用 Java 或提供者專用的 C API,傳送或接收訊息。這些介面是在 Java 或 C 執行階段程式庫中實作,會執行建立代理程式連線與依據連線服務請求封裝位元的實際工作。

Message Queue 服務提供 C API,使舊版 C 和 C++ 應用程式能參與 JMS 型訊息傳送。這兩種 API 所提供的功能中有許多不同之處,會在Java 用戶端與 C 用戶端中進行說明。

請謹記, JMS 規格是僅限於 Java 用戶端使用的標準。C 支援是 Message Queue 提供者專用的支援,不能用於計劃移植到其他提供者的用戶端應用程式。

Java 用戶端的 SOAP 支援

Message Queue Java 用戶端也可以傳送和接收包裝成 JMS 訊息的 SOAP 訊息。SOAP (簡易物件存取協定) 允許在分散式環境中的兩個對等端之間交換結構化資料。交換的資料由 XML 機制指定。

Sun SOAP 處理目前限制為使用點對點模型,且不保證可靠性。您可以將 SOAP 訊息包裝在 JMS 訊息中,並使用代理程式路由該訊息,這樣就可利用完整功能的 Message Queue 訊息傳送以保證可靠的傳送,並能使用主題及點對點網域。Message Queue 提供公用程式常式,讓訊息產生器將 SOAP 訊息包裝到 JMS 訊息中,也可以讓訊息用戶從 JMS 訊息擷取 SOAP 訊息。

使用 SOAP 訊息為您提供有關 SOAP 訊息處理更加詳細的說明。

管理

Message Queue 服務提供指令行工具,可用於執行下列作業:

您也可以使用 GUI 型管理主控台,以執行下列指令行功能:

延展 Message Queue 服務

隨著用戶端數目或連線數量的增加,您可能需要延展訊息服務,以突破瓶頸或改善效能。Message Queue 訊息服務會依照您的需求提供多種延展選項。為方便起見,這些選項可分為下列種類: