Java 消息服务,即java message service
MOM:message-orienter Middleware,消息中间件。
JMS provider:消息传送系统,即消息服务器,如AcriveMQ
消息生产者,message producer
消息消费指:message consumer
通过使用消息中间件,消息通过网络从一个应用程序发送到另一个应用程序之中,即从一个进程发送到另一个进程之中。MOM能确保消息在应用程序中间正确分发,并提供容错机制和负载均衡、可伸缩性和事务支持。
消息传送机制能解决异构集成
使用消息传送机制来抽象和去耦
IBM WebSphere MQ、SonicMQ、MSMQ、ActiveMQ、JBossMQ是常见的MOM
消息是自描述的(Self-describing),它包含所有必要的上下文(context)
消息客户端Client:消息的生产者和消费指都是消息的client,消息服务器如ActiveMQ负责存储转发消息,消息服务器实现了两个消息client之间的解耦,client只会看到message server,而不会看到其它client
JMS支持两类消息传送模型:
点对点模型(p2p):one to one
发布/订阅模型(pub/sub):one to many
消息:由消息头、消息属性和消息数据三部分组成
消息头:与消息有关的元数据,描述了消息由谁创建、何时创建以及数据的有效长度,还包含消息的目的地和路由信息,消息如何被确认等。
消息属性:由jms client定义和设置的属性,jms消费者可以使用的一种消息选择器的特殊过滤机制,基于特定的消息头和属性值来选择接受消息
点对点消息传送模型
点对点消息模型以向一个指定的目的地发送一条消息的概念为基础,该目的地的真实网络位置对发送者来说是透明的,因为他们都连接queue。
发布/订阅模型向多个制定目标发送消息,目标系统的位置也是透明的,应为只需向发布/订阅的队列发送消息即可。
在SOA技术架构中,JMS占据相当重要的地位,他比web服务更具可靠性,和更松散的耦合性。通常用来在各服务之间传送消息。在SCA架构中,也用来做为各组件连接的通道,在BPEL中,可连接流程与 服务。