由於最近研發項目進展緩慢,故在有限的時間裏學習一下JMS,在此做筆記爲證。
一、JMS的基本概念
源引,在developerworks看到的一篇文章,來爲JMS下個定義:
JMS 是什麼?
Java MessageService 規範 1.1 聲稱:
JMS 是一組接口和相關語義,它定義了 JMS 客戶如何訪問企業消息產品的功能。
在 JMS 之前,每一家 MOM 廠商都用專有 API 爲應用程序提供對其產品的訪問,通常可用於許多種語言,其中包括 Java 語言。JMS 通過 MOM 產品爲 Java 程序提供了一個發送和接收消息的標準的、便利的方法。用 JMS 編寫的程序可以在任何實現 JMS 標準的 MOM 上運行。
JMS 可移植性的關鍵在於:JMSAPI 是由 Sun 作爲一組接口而提供的。提供了 JMS 功能的產品是通過提供一個實現這些接口的提供者來做到這一點的。
開發人員可以通過定義一組消息和一組交換這些消息的客戶機應用程序建立 JMS 應用程序。
二、JMS的目標
更好地理解 JMS 有助於瞭解 JMS 規範的制定者設置的目標。
現在,市場上有許多企業消息產品,生產這些產品的幾家公司也參與了 JMS 的開發。
現有的這些系統的能力和功能各不相同。這些制定者知道如果 JMS 結合所有現有系統的所有功能,那麼它會變得過於複雜。同樣,他們相信,他們也不能讓 JMS 只侷限於所有系統共有的那些特性。
制定者相信,讓 JMS 包括實現“高級的企業應用程序”所需要的所有功能是很重要的。
JMS 規範中聲明, JMS 的目標是:
- 定義一組消息公用概念和實用工具。
- 最少化程序員使用消息時必須學習的概念。
- 最大化消息應用程序的可移植性。
- 最小化實現一個提供者所需的工作量。
- 爲點對點和 pub/sub 域 提供客戶機接口。“域”是用於在前面討論的消息模型的 JMS 術語。(注意:提供者不需要實現兩個域。)
三、JMS 1.1規範
在 JMS 1.1 以前的版本中,每一個域都有自己的特定於該域的一組客戶機接口。JMS 版本 1.1 提供了單一的一組接口,它允許客戶機可以在兩個域中發送和接收消息。這些“域無關的接口”保留了每一個域的語義和行爲,是實現 JMS 客戶機的最好選擇。支持特定於域的接口是爲了向後兼容性,新的開發不該使用它。
統一域的好處是:
- 它展示了用於客戶機編程的更簡單的編程模型。
- 隊列和主題的操作可以是同一事務的一部分。
- 它爲 JMS 提供者提供了優化其實現的機會。
源文檔 <http://www.ibm.com/developerworks/cn/education/java/j-jms/section2.html> ,如果有版權涉及,請通知,我會及早進行刪除
在這一節裏,我對於JMS的基本概念,做了一下解釋。方便以後,自己進行理解。