ejb 2.0消息驱动beans开发消息驱动beans和jms
这次我们要讨论的话题是ejb2.0消息驱动beans。 我将结合jms的知识来演示一个具体的实例。文章所有的代码都可以在支持消息beans的ejb服务上运行(ejb2.0容器);另外你还需要一个支持jms的消息服务器来控制消息队列。本文假设你了解企业级javabeans的知识。在这篇文章中我们将创建一个邮件消息队列系统。这个系统包括以下几个部分:
jms servser:一个jms服务器,它将保存我们的邮件系统的消息队列。
jms queue: jms队列,它将保存来自客户端的jms消息。在我们的例子中,这个消息是一个映射消息(mapmessage),他允许我们存储有关被发出的邮件的"键/值"对信息。
email message client:一个email消息客户端,它将创建一个jms消息然后把消息发送到jms队列中。这个消息中包含了将要发送的邮件信息。
email message drive bean:一个email消息驱动bean负责接收jms映射消息并把它发送出去。
<img>http://www.matrix.org.cn/upload/article/a200311495538.gif</img>
jms 的结构在我们讲述消息驱动beans之前,让我们先来谈谈jms(java消息服务)。我们知道现在有很多消息系统,每一个都有他们自己的api,这些消息系统提供了事件交换和数据异步的服务。作为一个程序员,我可以给消息服务器发送一些信息然后继续工作,而不必等待来自系统的响应。jms api描述了一个标准的方法来访问几乎所有的消息系统,就像jdbc允许我们使用相同的api访问oralce,sybase和sql server 一样。 如同可以调用异步服务那样,我们从中获得额外的好处是程序之间有一个宽松的耦合,发送请求的代码和响应请求的代码是分离的。不同的客户端把消息发送到同一个指定的目的地;然后,接收者(receiver)从目的地分离出消息并显示出来。下面让我们快速的了解一些jms api的基本概念:消息映射域
jms消息消息映射域
消息系统有几种运行模式。jms api 提供了不同的域,他对应不同的模式。一个jms提供者(provider)一个或多个域。两个、多个公共域是点对点和发布/订约。这两个域有下面的概念:destination:对象客户端指定消息发送和接受的目的地producer:一个客户端发送一个消息到一个目的地consumer:一个客户端从目的地接受消息点对点(ptp)一个点对点应用有下面几个特征:
一个ptp提供者是一个发送者一个ptp消费者是一个接收者一个ptp目标是一个队列一个消息只能被一个接收者消费
发布/订阅(pub/sub)一个pub/sub应用有以下特征:a pub/sub producer is publishera pub/sub consumer is a subscriber
a pub/sub destination is a topic
a message may have multiple subscribers
一个pub/sub提供者是一个发布者一个pub/sub消费者是一个订阅者一个pub/sub目标是一个主题一个消息可以有多个订阅者。
比如,一个邮件通信系统可以使用发布/订阅模式。每一个对邮件通信感兴趣的人都可以成为一个订阅者,当一个新的消息被发布后,这个消息会发送给每一个订阅者。
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器