Sun GlassFish Message Queue 4.4 版本說明

通用訊息服務 (UMS)

Message Queue 4.3 採用新的通用訊息服務 (UMS),以及可從任何啟用 http 的裝置存取 Message Queue 的訊息傳送 API。因而幾乎所有應用程式皆可與其他應用程式通訊,並獲得 JMS 傳送穩定性提高及保證送達等優點。此外,UMS 也讓 JMS 訊息傳送功能的延展性更佳,讓訊息傳送用戶端的數量達到網際網路規模。

架構

下圖顯示基本的 UMS 架構:

圖 1–1 UMS 架構

本圖說明 UMS 是非 JMS 用戶端與 JMS 提供者之間的閘道。

在 Web 伺服器中執行的 UMS 不受程式語言和平台限制。UMS 是所有非 JMS 用戶端應用程式及 JMS 提供者之間的閘道。UMS 會接收使用 UMS API 傳送的訊息、將其轉換成 JMS 訊息,再使用 JMS 提供者的原生協定,將訊息傳送至提供者的目標。同樣地,UMS 會從 JMS 提供者的目標中擷取訊息、將其轉換成文字或 SOAP 訊息,再根據用戶端請求,透過 UMS API 將訊息傳送至非 JMS 用戶端。

協定型的 UMS API 簡單且不受程式語言限制,支援 Web 及非 Web 應用程式,且可與程序檔及程式語言一起使用。此 API 有兩種型式:使用表象化狀態傳輸 (Representational State Transfer, REST) 樣式協定的簡單訊息傳送 API,以及將協定嵌入 SOAP 訊息標頭的 XML 訊息傳送 API。但在這兩種狀況下,API 傳送或接收訊息,都僅需要單一的 http 請求。

由於 UMS API 簡單又具彈性,因此 AJAX、.NET、Python、C、Java 及許多其他應用程式,都可將文字訊息及 (或) SOAP (具附件) 訊息傳送至 JMS 目標,或接收來自 JMS 目標的訊息。例如,Python 應用程式可與 .NET 應用程式通訊,iPhone 可與 Java 應用程式通訊等。

在 Message Queue 4.3 中,UMS 僅支援以 Message Queue 當作 JMS 提供者。

其他功能

UMS 的功用不僅止於上述的簡單閘道,還支援有狀態及無狀態的用戶端階段作業。用戶端若提出請求,UMS 會在多項服務請求之間都維持用戶端應用程式的階段作業狀態。UMS 可使用以容器管理的認證,或配置成以 Message Queue 代理程式認證用戶端,或兩者都用。UMS 也支援作業事件,讓用戶端應用程式得以確定多項服務請求,或將其回復為單一不可分割的單元。

因為 UMS 支援大量用戶端以單一連線連接到 Message Queue 代理程式,所以可緩和代理程式連線服務的負載,以達到最佳的延展性。此外,您可水平擴充 UMS 的處理能力,允許網際網路規模的訊息傳送負載。

在用戶端部分,因為協定型 UMS API 非常簡單,因而不需要用戶端程式庫。所以,API 未來可擴充 API 以實作其他 JMS 功能,而不必升級用戶端應用程式。

使用 UMS

若要使用 UMS,請將 UMS 部署至支援 Servlet 2.4 或更高規格的 Web 容器中,然後啟動 Message Queue 代理程式,再建立適當的目標,最後撰寫使用 UMS API 傳送或接收訊息的訊息傳送應用程式。

包含在 Message Queue 4.3 發行軟體中的 UMS imqums.war 檔案,安裝在下列因平台而異的位置中:

您可將 .war 檔案重新命名為適當的名稱。

表 1–5 imqums.war 檔案的位置

平台 

imqums.war 的位置

Solaris 

/usr/share/lib/imq

Linux 

/opt/sun/mq/share/lib

AIX 

IMQ_HOME/lib

Windows 

IMQ_HOME\lib

imqums.war 部署至位於 localhost:port 的 Web 容器之後,即可在下列位置找到 UMS 文件:

http://localhost:port/imqums

否則可找到 UMS 文件,如下所示:

支援的 Web 容器

下列 Web 容器目前都支援 UMS: