Java消息服务
Java消息服務(Java Message Service,JMS)應用程序接口是一個Java平臺中關于面向消息中間件(MOM)的API,用于在兩個應用程序之間,或分布式系統中發送消息,進行異步通信。
Java消息服務是一個與具體平臺無關的API,絕大多數MOM提供商都對JMS提供支持。
?
消息中間件的傳遞模式
?????????????????? 消息中間件一般有兩種傳遞模型:點對點模型(PTP)和發布-訂閱模型(Pub/Sub)[2]。
??????????? 點對點模型(PTP)
點對點模型用于消息生產者和消息消費者之間點到點的通信。消息生產者將消息發動到由某個名字標識 的特定消費者。
??????? 這個名字實際上對應于消息服務中的一個隊列(Queue),在消息傳動給消費者之前它被存儲在這個隊列中。
??????? 隊列可以是持久的,以保證在消息 服務出現故障時仍然能夠傳遞消息。
?????? 發布-訂閱模型(Pub/Sub)
發布-訂閱模型用稱為主題(topic)的內容分層結構代替了PTP模型中的惟一目的地,發送應 用程序發布自己的消息,指出消息描述的是有關分層結構中的一個主題的信息。希望接收這些消息的應用程序訂閱了這個主題。訂閱包含子主題的分層結構中的主題 的訂閱者可以接收該主題和其子主題發表的所有消息。
下圖展示了發布和訂閱模型:
?? 多個應用程序可以就一個主題發布和訂閱消息,而應用程序對其他人仍然是匿名的。MOM 起著代理(broker)的作用,將一個主題已發表的消息路由給該主題的所有訂閱者。
消息中間件產品與JMS
由于沒有統一的規范和標準,基于消息中間件的應用不可移植,不同的消息中間件也不能互操作,這大大阻礙了消息中間件的發展。 Java Message Service(JMS, Java消息服務)是SUN及其伙伴公司提出的旨在統一各種消息中間件系統接口的規范。它定義了一套通用的接口和相關語義,提供了諸如持久、驗證和事務的消息服務,它最主要的目的是允許Java應用程序訪問現有的消息中間件。JMS規范沒有指定在消息節點間所使用的通訊底層協議,來保證應用開發人員不用與其細節打交道,一個特定的JMS實現可能提供基于TCP/IP、HTTP、UDP或者其它的協議。
目前許多廠商采用并實現了JMS API,現在,JMS產品能夠為企業提供一套完整的消息傳遞功能,下面是一些比較流行的JMS商業軟件和開源產品。
1.IBM MQSeries
IBM MQ系列產品提供的服務使得應用程序可以使用消息隊列進行相互交流,通過一系列基于Java的API,提供了MQSeries在Java中應用開發的方法。它支持點到點和發布/訂閱兩種消息模式,在基本消息服務的基礎上增加了結構化消息類,通過工作單元提供數據整合等內容。
2.WebLogic
WebLogic是BEA公司實現的基于工業標準的J2EE應用服務器,支持大多數企業級JavaAPI,它完全兼容JMS規范,支持點到點和發布/訂閱消息模式,它具有以下一些特點:
1) 通過使用管理控制臺設置JMS配置信息;
2) 支持消息的多點廣播;
3) 支持持久消息存儲的文件和數據庫;
4) 支持XML消息,動態創建持久隊列和主題。
3.SonicMQ
SonicMQ是Progress公司實現的JMS產品。除了提供基本的消息驅動服務之外,SonicMQ也提供了很多額外的企業級應用開發工具包,它具有以下一些基本特征:
1) 提供JMS規范的完全實現,支持點到點消息模式和發布/訂閱消息模式;
2) 支持層次安全管理;
3) 確保消息在Internet上的持久發送;
4) 動態路由構架(DRA)使企業能夠通過單個消息服務器動態的交換消息;
5) 支持消息服務器的集群。
4.Active MQ
Active MQ是一個基于Apcache 2.0 licenced發布,開放源碼的JMS產品。其特點為:
1) 提供點到點消息模式和發布/訂閱消息模式;
2) 支持JBoss、Geronimo等開源應用服務器,支持Spring框架的消息驅動;
3) 新增了一個P2P傳輸層,可以用于創建可靠的P2P JMS網絡連接;
4) 擁有消息持久化、事務、集群支持等JMS基礎設施服務。
5.OpenJMS
OpenJMS是一個開源的JMS規范的實現,它包含以下幾個特征:
1) 它支持點到點模型和發布/訂閱模型;
2) 支持同步與異步消息發送;
3) 可視化管理界面,支持Applet;
4) 能夠與Jakarta Tomcat這樣的Servlet容器結合;
5) 支持RMI、TCP、HTTP與SSL協議。
轉載于:https://www.cnblogs.com/pan2011/p/3724451.html
總結
- 上一篇: CentOs6.5下安装vim7.4
- 下一篇: asp.net url重写相关技术问题整