Posted on 2007-02-28 16:46
lendo 阅读(118)
评论(0) 编辑 收藏
-
MOM(Message Oriented MiddleWare):消息中间件
-
JMS是一系列接口和关联语法的集合,这些接口可以让JMS客户端访问消息中间件服务器,例如Websphere,Weblogic,JBoss都提供对JMS的支持,实际上它们就是消息中间件服务器,这些服务器都实现了Sun的关于JMS的规范,我们需要做的就是通过J2EE提供的JMS API来访问这些服务器。
-
消息系统是对等的设备(P2P),所以每个客户端都能够接受来自另一个客户端的消息,也可以向另一个客户端发送消息,每个客户端都会连接到一个消息代理服务(agent),这个服务就能够提供创建,接收和发送消息的功能。每个消息系统都提供寻址消息的方法,同时提供创建消息和用数据填充这个消息的方法。
-
一些系统提供把一个消息发送到多个目的地的功能,而另外一些消息系统只提供把一个消息发到一个目的地的功能。有些提供同步(synchronous)的的消息,而有些提供异步(asynchronous)的消息。
-
JMS Provider:对于一个消息中间件实现JMS功能的实体。它是用纯粹的Java代码编写的。JMS的目标是:让客户端程序员实现Provider的时候的代码量最少。
-
JMS Messages:消息接口,客户端需要使用这些由JMS Provider实现的消息接口。JMS的目标是:客户端有一致和固定的接口用来创建消息,客户端不需要依赖JMS Provider。
-
JMS Domains:消息系统可以大概分为:P2P模式和发布者-订阅者(publish-subscribe)模式,P2P模式是基于消息队列(Queue)的概念,每个消息被放进一个特殊的队列,然后客户端从这个队列里面来提取这个消息(队列里面的消息一经提取就自动消失了,还是仍然存在?我能不能取队列里面的任意一条消息,还是必须按顺序依次提取?)。发布者-订阅者模式是基于消息主题(Topic)的概念,每个消息被放置在象一颗树一样的结构的某个节点上,系统负责把消息发送到多个订阅者。
-
JMS不包含:负载均衡,出错提示,消息系统管理,安全认证,传输协议,消息类型库。
-
尽管JMS有两种域模式,但是JMS一般建议使用普通的消息接口来开发客户端,这样可以在两种模式之间互相调用。
-
ConnectionFactory - 客户端用来创建连接的对象,Connection - JMS provider使用的一个活动连接,Destination -消息目的地,Session - 一个单线程的用来发送和接收消息的Context,MessageProducer -由Session创建的用来发送消息的对象,MessageConsumer - 由Session创建的用来接收消息的对象。
-
JMS把消息当作一个轻量的实体,这个实体由Header和Body组成,Header包含了message的路由,唯一标识等信息,Body里面就包含了具体所发送的数据。