WEB开发网
开发学院WEB开发Jsp J2EE探索者:用JMS进行企业消息传递[Z] 阅读

J2EE探索者:用JMS进行企业消息传递[Z]

 2008-01-05 18:36:16 来源:WEB开发网   
核心提示: 在本期的J2EE探索者( J2EE pathfinder)中,java 开发者和咨询顾问Kyle Gabhart 解释了为什么消息服务对于企业的体系结构来说是至关重要的,J2EE探索者:用JMS进行企业消息传递[Z],您的解决方案必须克服什么类型的障碍,以及 除了Java消息服务(Java Message Servi

  在本期的J2EE探索者( J2EE pathfinder)中,java 开发者和咨询顾问Kyle Gabhart 解释了为什么消息服务对于企业的体系结构来说是至关重要的,您的解决方案必须克服什么类型的障碍,以及 除了Java消息服务(Java Message Service ,JMS)之外,还有哪些替代的解决方案。在本文的结尾,他分析了三种可用的解决方案(简单JMS客户机(Simple JMS Client)、结合JMS使用的会话bean, 以及消息驱动bean),并且提供了一些特定的指导方针来衡量这些选项。

说到对消息传递解决方案的选择,您可以像配手套那样找到适合于企业的解决方案。您的消息传递框架必须能够在一组应用和企业资源之间进行通信。而且,该消息传递框架必须快速、可靠地完成这一任务。此外,面对日复一日的骚扰和紧急情况,它必须表现得天衣无缝。

为了根据您的需求选择适当的消息传递解决方案,首先应该对您企业当前的组成结构以及将来的发展趋势有一个清醒的熟悉。此外,假如能够透彻地理解消息传递框架在完成目标的过程中必须克服的障碍,那么对于解决方案的选择将会很有帮助。最后,您要知道 可选择的范围:有哪些可用的技术,以及各种技术对于不同的环境和需求的适用情况如何。

在本期的J2EE 探索者中,我们将一一阐述以上要点。首先是对企业消息传递的概述,在此我们将着眼于消息传递在您企业中所扮演的角色,并在建立可靠的通信方面给出了一些挑战。接着,我们将从体系结构的角度来快速 了解一下,在一个典型的企业网络环境中,J2EE 消息传递技术如何与面向消息的中间件协同工作。然后,我们将针对Java消息服务(Java Message Service ,JMS)和J2EE的消息传递包展开更具体的讨论。我们将分别论述三种类型的J2EE消息传递客户机的基本目标和功能,而且您也可以了解到每种类型的 J2EE消息传递客户机各自的优势和劣势所在。最后,我们将分析一些常见的消息传递场景和解决方案,这将有助于您为您的企业选择最好的J2EE消息传递解决方案。

企业消息传递101

企业消息传递框架被设计用于使得一个或多个应用能够克服各种障碍进行通信。常见的屏障包括:两个系统同时运行(同步通信)的需求,多个应用获取同一条消息(多重传输)的需求,大多数系统都彼此异构,以及网络故障等。

M许多企业的体系结构依靠于面向消息的中间件系统(MOM)来为不同类型的系统提供消息通道。MOM为应用提供了一种公共的、可靠的方式,使这些应用能够轻松地创建、交换和处理消息,而无需考虑消息传递客户机的实现细节。消息被发送到服务器目的地和域 (domain),而不是发送到物理地址。消息传递客户机只需简单地声明对某个特定的域和目的地感爱好,提供适当的安全性令牌(security token)以获得访问该域的权限,然后通过那个目的地与消息传递服务器进行交互。

从概念上来讲,这与现实生活中真实邮件的传递方式没什么不同。消息的发送方只负责使用正确的包装,提供正确的地址,并附上适当的邮资。 邮局(这里是一个MOM系统)处理 与消息的安全可靠的传递相关的所有问题,而不 管出现在他们面前的任何障碍(机器故障,天气恶劣,等等)。

在一个MOM系统中,客户机之间的耦合性比较弱,这答应它们不必真正地全天“在线”便能维持服务的最佳质量。假如能够去掉应用一直处于可用状态这一需求,那么维护和伸缩性将变得更加易于治理。可以在一天中的任何时候将应用离线,更新应用,或者作为例行的维护工作刷新应用,而不必担心会影响服务的质量。

Java 消息服务

MOM 服务器答应不同类型的系统交换消息,但是每个MOM供给商都有其特有的处理消息的API。这种标准化的缺乏对于Java技术开发范例来说是不可接受的。为了充分利用已有的MOM基础设施,同时又不失标准化,J2EE平台提供了JMS。

Java 标准化
为了提供平台无关的和供给商无关的解决方案,所有Java技术都可以分成两个部分:

  1. 一份(或一套)定义该项技术的 规范说明书,指出了开发者和实现该技术的工具供给商的目标和责任。
  2. 一套中立接口,作为应用开发者与工具供给商之间的契约。

不管您使用的是何种Java技术,您首先要编写使用了技术规范中提供的接口的应用组件,然后在运行时提供某一特定供给商对这些接口的实现。在J2EE中,企业消息传递的规范和API是JMS。

JMS 定义了在Java企业系统中传递消息的规则,并且声明了一些方便应用组件和消息传递系统(通常是MOM)之间的消息交换的接口。JMS客户机向MOM服务器上的目的地开放连接,然后在那个目的地上发送和接收消息。JMS卸下了 保证传送(guaranteed delivery)、消息通知(message notification)、消息耐久性(message durability)以及消息传递系统中所有底层网络和路由问题的负担。JMS和MOM能够很好地协同工作,因为它们都划清了消息传递客户机和服务器之间的责任界限。

消息传递的类型

JMS 支持两种基本的消息传递机制。第一种机制是点到点的消息传递(point-to-point messaging),在这种机制下,消息由一个发布者(发送方)发送,由订阅者(接收方)接收。另一种机制是发布-订阅式的消息传递(publish- subscribe messaging),在这种机制下,消息由一个或多个发布者发送,由一个或多个订阅者接收。尽管这两种机制是JMS的实际基础,很多人还是按照三种消息传递模型来看待这项技术:

  • 一对一的消息传递(One-to-one messaging )是一种点到点的模型。消息由一个JMS客户机(发布者)发送到服务器上的一个目的地,即一个队列(queue)。而另一个JMS客户机(订阅者)则可以访问这个队列,并从该服务器获取这条消息。在队列中可以存放多条消息,但每次只能获取一条消息。

Tags:JEE 探索者 JMS

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接