面向消息的中间件(MOM)的代表JMS
生活随笔
收集整理的這篇文章主要介紹了
面向消息的中间件(MOM)的代表JMS
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
http://blog.csai.cn/user1/25929/archives/2008/32570.html
當前,CORBA、DCOM、RMI等RPC中間件技術已廣泛應用于各個領域。但是面對規模和復雜度都越來越高的分布式系統,這些技術也顯示出其局限性:(1)同步通信:客戶發出調用后,必須等待服務對象完成處理并返回結果后才能繼續執行;(2)客戶和服務對象的生命周期緊密耦合:客戶進程和服務對象進程都必須正常運行;如果由于服務對象崩潰或者網絡故障導致客戶的請求不可達,客戶會接收到異常;(3)點對點通信:客戶的一次調用只發送給某個單獨的目標對象。
面向消息的中間件(Message Oriented Middleware,MOM)較好的解決了以上問題。發送者將消息發送給消息服務器,消息服務器將消息存放在若干隊列中,在合適的時候再將消息轉發給接收者。這種模式下,發送和接收是異步的,發送者無需等待;二者的生命周期未必相同:發送消息的時候接收者不一定運行,接收消息的時候發送者也不一定運行;一對多通信:對于一個消息可以有多個接收者。
已有的MOM系統包括IBM的MQSeries、Microsoft的MSMQ和BEA的MessageQ等。由于沒有一個通用的標準,這些系統很難實現互操作和無縫連接。Java Message Service(JMS)是SUN提出的旨在統一各種MOM系統接口的規范,它包含點對點(Point to Point,PTP)和發布/訂閱(Publish/Subscribe,pub/sub)兩種消息模型,提供可靠消息傳輸、事務和消息過濾等機制。
?????? 1.JMS
JAVA 消息服務(JMS)定義了Java 中訪問消息中間件的接口。JMS 只是接口,并沒有給予實現,實現JMS 接口的消息中間件稱為JMS Provider,iLink實現了JMS接口,用戶可以通過使用JMS接口,在iLink中進行JMS編程。 iLink支持JMS1.0.2版本。
?????? 2.JMS接口描述
JMS 支持兩種消息類型PTP 和Pub/Sub,分別稱作:PTP Domain 和Pub/Sub Domain,這兩種接口都繼承統一的JMS父接口。
?????? 3.JMS消息模型
JMS 消息由以下幾部分組成:消息頭,屬性,消息體。
消息頭中定義好的標準屬性外,JMS 提供一種機制增加新屬性到消息頭中,這種新屬性包含以下幾種:
1. 應用需要用到的屬性;
2. 消息頭中原有的一些可選屬性;
3. JMS Provider 需要用到的屬性。
?????? 4. 消息的同步異步接收消息的同步接收是指客戶端主動去接收消息,JMS 客戶端可以采用MessageConsumer 的receive方法去接收下一個消息。消息的異步接收是指當消息到達時,主動通知客戶端。JMS 客戶端可以通過注冊一個實現MessageListener 接口的對象到MessageConsumer,這樣,每當消息到達時,JMS Provider 會調用MessageListener中的onMessage 方法。
?????? 5. PTP模型
PTP(Point-to-Point)模型是基于隊列的,發送方發消息到隊列,接收方從隊列接收消息,隊列的存在使得消息的異步傳輸成為可能。和郵件系統中的郵箱一樣,隊列可以包含各種消息,JMS Provider 提供工具管理隊列的創建、刪除。JMS PTP 模型定義了客戶端如何向隊列發送消息,從隊列接收消息,瀏覽隊列中的消息。發布和訂閱消息,這些節點被稱作主題(topic)。主題可以被認為是消息的傳輸中介,發布者(publisher)發布消息到主題,訂閱者(subscribe) 從主題訂閱消息。主題使得消息訂閱者和消息發布者保持互相獨立,不需要接觸即可保證消息的傳送。
?
總結
以上是生活随笔為你收集整理的面向消息的中间件(MOM)的代表JMS的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: It is indirectly ref
- 下一篇: SCA (Service Compone