Message Queue 訊息傳送可在 HTTP/HTTPS 連線的上層執行。由於防火牆通常會允許 HTTP/HTTPS 連線通過防火牆,因此允許存在用戶端應用程式與代理程式被防火牆分隔的狀況。
圖 C–1 顯示提供 HTTP/HTTPS 支援所需的主要元件。
在用戶端,HTTP 或 HTTPS 傳輸驅動程式會將 Message Queue 訊息封裝在 HTTP 請求中,並確保這些請求會以正確的順序傳送至 Web 伺服器/應用程式伺服器。
如有必要,用戶端可使用 HTTP 代理伺服器與代理程式進行通訊。代理伺服器的位址在啟動用戶端時使用指令行選項指定。如需更多資訊,請參閱使用 HTTP 代理伺服器。
HTTP 或 HTTPS 通道 Servlet (均隨附於 Message Queue) 會載入至 Web 伺服器/應用程式伺服器中,用來將有效負載訊息從用戶端 HTTP 請求中取出,然後將它們轉寄至代理程式。HTTP/HTTPS 通道 Servlet 也會將代理程式訊息傳送回用戶端,以回應用戶端發出的 HTTP 請求。 單一 HTTP/HTTPS 通道 Servlet 可用於存取多個代理程式。
在代理程式端,httpjms 或 httpsjms 連線服務會展開從相應通道 Servlet 傳送的內送訊息,並對這些訊息進行多工解碼處理。
如果 Web 伺服器/應用程式伺服器發生故障並重新啟動,則所有連線均會復原且不會影響用戶端。如果代理程式發生故障並重新啟動,則系統會丟出異常,且用戶端必須重新建立其連線。如果 Web 伺服器/應用程式伺服器與代理程式均發生故障 (這種情況不太可能發生),且未重新啟動代理程式,則 Web 伺服器/應用程式伺服器會復原用戶端連線,並繼續等待代理程式連線,而不會通知用戶端。若要避免這種情況,請務必重新啟動代理程式。
如圖 C–1 中所示,HTTP 和 HTTPS 支援的架構非常相似。主要區別在於,對於 HTTPS (httpsjms 連線服務),通道 Servlet 與用戶端應用程式以及與代理程式兩者之間,都具有安全的連線。
與代理程式的安全連線是透過已啟用 SSL 的通道 Servlet (Message Queue 的 HTTPS 通道 Servlet) 所提供。此通道 Servlet 會將自我簽署的憑證傳送至請求連線的任何代理程式。代理程式使用此憑證來建立與 HTTPS 通道 Servlet 的加密連線。一旦建立此連線,用戶端應用程式和 Web 伺服器/應用程式伺服器即透過用戶端應用程式與通道 Servlet 之間的安全連線進行通訊。