JMS資料(譯文)
作者:HaoGe 發表時間:2001-7-30
第一章
概述
這是關于Java消息服務應用程序編程接口的概述,它包括以下主題:
什么是消息? 什么是JMS API? 怎么使用JMS API? JMS API是怎樣在在Java2企業平臺下運作的
1.1 什么是消息? 消息系統是一種在軟件組件或者應用程序之間通信的一種方法。一個消息 系統是一種點對點的程序,一個消息系統客戶端能發送消息給其他一些客 戶端或者從其它一些客戶端接受消息。每一個連到消息代理的客戶連接提 供產生,發送接受消息的通道。
消息機制使分散連接的分布式通信成為可能,一個成員發出消息給目的 地,接受者在目的地接收消息,然而發送者和接收者不需要同時有效,實 際上,發送者不需要知道任何關于接收者的信息,接收者也不需要了解任 何關于發送者的信息,他們只需要知道消息的格式和哪個目的地。
從這方面考慮,消息系統不同于緊連接技術如RMI,RMI需要一個應用程序知 道遠端程序的方法。
消息系統也不同與email,email是人們通信的一種方式或者人和計算機軟件 應用程序通信的方式,消息系統則是用于軟件應用程序或者軟件組件之間 的通信。
1.2什么是 JMS API?
Java消息服務是一種Java API它允許應用程序去建立,發送接受和讀取消 息。 由Sun公司和一些合作伙伴定義設計,JMS API定義了一個公共接口和 關聯語意集合,它可以讓有Java語言編寫的程序和其他的消息系統進行通 信。
JMS API最小化了一個程序員編寫使用消息的產品需要了解的概念集。但是 提供了足夠的功能去支持復雜的消息應用。
It also strives to maximize the portability of JMS applications across JMS providers in the same messaging domain.
JMS API使得通信不僅僅只是可以在松耦合的情況下。而且還具有:
異步性: 一個JMS提供者可以在客戶端抵達的時候傳遞消息給它們;一個 客戶端不必為了接收消息去請求消息。
可靠性:JMS API可以保證一個消息只被傳遞一次,對可靠性要求比較低的 系統可以承受丟失消息或接受到重復的消息的后果。
JMS規范在1998年的八月首次發布,最新版本是1。0。2,在1999年的11月 發布
1.3怎樣使用JMS API?
一個企業應用的提供者在消息系統和緊耦合系統(如 RPC)中更樂意選擇 前者,當:
提供者希望組件不要依賴別的組件的接口的信息,以便組件可以很方便的 替代。
提供者希望應用程序在組件沒有全部執行或沒有同時執行的時候運行.
應用程序商業模型允許一個組件向另一個組件發送信息并且能夠在沒有得 到實時響應的情況下繼續運行。
例如,一個汽車制造業的企業應用程序組件能夠在如下的情況下使用JMS API:
庫存組件可以在某個產品的庫存水平小于某個水平的時候向工廠組件發送 消息,工廠就開始制造更多的汽車。
工廠組件可以發送一個消息給部件組件,以便工廠可以用它需要的部件組 裝汽車。
部件組件發送消息給它們自己的庫存和訂購組件以更新他們的庫存和向供 應商訂購新的部件
工廠和不見組件都可以向財會組件發送消息去更新它們的預算。
企業發布更新了的產品目錄給他們的市場部門和網站。
使用消息服務可以使不同的組件有效地進行交互而不需要嘗試網絡或其它 資源, 制造業只是企業怎樣使用JMS API的一個例子,其它象零售業,金融業,健 康服務應用都可以很好的利用消息系統。
1.4 JMS API是如何和J2EE平臺一起工作的? JMS API 最早出現在1998年,使用它的主要目的是允許JAVA 應用程序可以 和現存的面向消息的中間件系統(如IBM的MQ Series 和TIBCO的 TIB/Rendezvous 進行交互.
從那時起,許多提供商采用和實現了JMS API以便JMS產品可以提供企業級 的消息服務的能力
在J2EE的1.2 release版本中,一個基于J2EE技術的服務提供者提供了JMS API的接口,但是沒有要求全部實現它們。現在,在J2EE的1.3的release 中,JMS API是J2EE平臺的一個完整的部分。應用程序開發者可以使用 J2EE APIs利用組件使用消息服務。
在J2EE 1.3平臺中JMS API有以下功能:
任何J2EE組件(ejb 或wen組件)能夠發送及同時接收一個JMS消息
一種新的EJB,消息驅動的Bean,使得異步的消息通信成為可能。 另外JMS提 供者可以實現消息驅動的BEANS去并發地處理消息
消息發送和接收可以參與Java Transaction API事務
JMS API增強了J2EE平臺,使地企業應用的開發大大的簡化了,允許松耦 合,可靠,可以和 J2EE組件與老系統進行異步交互。開發者可以很方便的 給基于J2EE技術的商業應用添加新的操作,只需要添加一個新的消息驅動 的針對特定商業事件的Bean就可以了。 另外一個J2EE 1。3平臺的新技術: J2EEconnectoe體系,使J2EE 應用 和現寸的企業信息系統的可以緊密集成。 JMS API則允許在J2EE應用和現 有的EIS 系統間進行非常松散連接的交互
|