Liberty 內嵌 JMS 傳訊提供者
Liberty 傳訊是 Liberty 中的一項內嵌傳訊特性。它是一個在 Liberty 內執行的可組合、具彈性的動態 JMS 傳訊引擎。Liberty 傳訊同時符合 JMS 1.1 和 JMS 2.0 規格,並同時支援點對點和發佈/訂閱傳訊模型。
Liberty 傳訊只在 Liberty 執行時期中執行,您可以依照需要,利用 Liberty 特性管理程式來啟用或停用傳訊特性。 由於傳訊執行時期高度可組合,您可以在執行時期啟用基本傳訊特性,然後根據需求來動態啟用其他傳訊特性,例如安全、交易,以及遠端通訊。
Liberty 傳訊可以分類成兩個部分:
- 「JMS 伺服器」執行時期:提供連線、交易、持續性、安全等等的所有執行時期功能。
- 「JMS 用戶端」連線功能:提供資源配接器支援,以容許 JMS 用戶端執行同步及非同步的傳訊活動。
傳訊引擎是以 Liberty 中單態實例的方式來執行,這表示在任何特定時間,Liberty 核心都只能執行一個傳訊引擎。
Liberty 傳訊架構
Liberty 傳訊本質上就是高度可組合且具有動態性質。Liberty 傳訊由若干其他實作為 OSGi 軟體組的內部傳訊子元件組成,這些子元件可以根據使用者的需求來啟用或停用。
OSGi 服務用來管理元件生命週期,以及相依關係和配置的注入。
圖 1. Liberty 傳訊架構

傳訊執行時期和其他傳訊子元件都是以 OSGi 軟體組的方式,在 OSGi 架構中執行。 如此 Liberty 核心就可以根據使用情形來載入或卸載傳訊軟體組。 比方說,如果使用者不使用傳訊安全,就不會起始設定與傳訊安全相關的軟體組。
應用程式部署
Liberty 傳訊支援三個類型的 JMS 應用程式連線功能。
應用程式可依照任何下列方式來執行:
- 在代管傳訊引擎的 Liberty 中。
- 在未代管任何傳訊引擎的不同 Liberty 中。
- 在 WebSphere® Application Server 傳統版中。
圖 2. 應用程式部署模型

Liberty 傳訊支援應用程式的程序內和網路 TCP/IP 連線功能。 當 JMS 應用程式部署在執行傳訊引擎的相同 JVM 中,應用程式無需透過 TCP/IP 層即可與程序內傳訊引擎通訊。 在應用程式傳送和接收訊息的效能上,這帶來非常大的好處。
如果 JMS 應用程式是在未代管傳訊引擎的 Liberty 中執行,則必須透過 TCP/IP 來連接,才能與傳訊引擎通訊。
訊息處理
目的地(佇列或主題)一律會本地化至定義目的地的傳訊引擎。
如果應用程式需要從目的地傳送或接收訊息,它一律必須連接到將目的地本地化的傳訊引擎。
圖 3. Liberty 傳訊中的訊息處理
