搜索文章:

首页  |  Java技术  |  Asp.net  |  Asp编程  |  VC/C++  |  Delphi  |  VB编程

MessageBroker构成企业信息…

概述
BEA WebLogic Platform是一种革命性的软件平台,它第一次将开发部署和集成两个原来不同的软件领域第一次无缝地集成在一起。
在WebLogic Platform诞生之前,开发部署应用和集成是两个截然不同的领域,分别需要不同的开发工具和技能。现在,WebLogic Platform同时提供这两方面的功能,而且通过统一的开发工具Workshop IDE把它们集成在一起。
在最新发布的WebLogic Platoform 8.1当中,WebLogic Integration增加了很多新的特性。其中,在WebLogic Integration当中实现了一种叫做Message Broker的消息分发机制。利用该机制,不同的商业流程之间可以实现基于频道(Channel)的消息订阅和分发的通讯方式。这种机制的好处在于:不同的商业流程仅仅通过按名访问,就可以通过异步的松偶合方式进行彼此的消息传递。它极大地增强了企业信息系统之间的消息互通,方便了企业商业流程之间的互连。

例如:某一个专门负责购买订单的商业流程可以在一个叫做NewOrderEntered的频道中订阅消息。一旦某个订单进入到该频道,那么,这个负责订购订单的商业流程就可以自动被触发,去处理新来的订单。通过频道,消息的发布者不需要关心谁会接受它发布的消息,它仅仅把需要发布的消息通过频道发布出去,绑定在该频道上的不同的订阅者会自动收到该消息包。这些订阅者既可以是WebLogic Integration当中定义的商业流程,也可以是后台的系统,如电信的基于Tuxedo的BOSS系统。从上面的论述中,我们可以看出,Message Broker实际上是一种通讯主干道。它将所有的系统连接成一个松偶合的消息通讯网,构成了企业?quot;端到端"的信息集成框架。

 

  • Message Broker的技术特点
    · 为商业流程之间提供了基于频道(Channel)的发布-订阅的通讯机制。被发布到频道上的消息被Message Broker自动路由到订阅该频道的商业流程中。
    · 频道实际上是一种离散的商业事件。被发布到频道上的消息包代表了一个特定商业事件的发生。
    · 频道之间可以形成树形结构,每个频道可以利用名字来访问。
    · 频道可以指定类型,从而只接受符合该类型的消息包。消息格式可以用XSD/MFL来定义。
    · 频道支持加密功能,保证消息的安全。
  • Message Broker支持的事件源。
    允许发送到Message Broker的事件源包括应用集成的适配器、JMS、文件、Email、Web Services等类型。通过WLI的管理console,这些事件源可以动态地在运行时刻绑定到频道之上。如下图所示:


  • 商业流程和Message Broker的连接
    商业流程通过Control将消息发布到频道上,或者从频道上订阅消息。发布Control和订阅Control是两种不同的control。商业流程可以静态或者动态地绑定到频道上。通过订阅频道,一旦收到消息包后,可以启动一个新的商业流程处理该消息包,或者将消息包导入到正在等待该消息包的一个正在运行的商业流程。商业流程也可以使用Xquery语言形成的过滤器可以过滤订阅的消息的内容。
  • 频道文件
    频道文件实际上是一个XML文件。在一个频道文件里面,可以定义多个频道。这些频道可以组成树形结构。例如,下面的一个频道文件OrderProcess.channel:
<?xml version="1.0"?>
<channels xmlns="http://www.bea.com/wli/broker/channelfile">
<channel name ="newOrder">
<channel name ="received"/>
<channel name ="processed"/>
</channel>
</channels>
该频道文件定义了三个频道:newOrder, received和processed。这三个频道的关系是:
  • Message Broker中的事务处理
    一旦事件源发布消息包到Message Broker,Message Broker将根据订阅的情况将该消息包发送到相应的商业流程的消息队列里面。Message Broker传递消息到商业流程的消息队列里面是在一个事务里面完成的。也就是说,要么把消息可靠地放到该商业流程的队列中,要么没有放。当商业流程检测到它的队列里面存在消息包的时候,会启动独立的事务对该消息包进行处理,以确保不同商业流程之间处理的独立性。

    当Message Broker收到一个消息包,没有发现有任何订阅者的时候,Message Broker会自动把该消息包打入到一个死信队列。该队列是预先定义好的。当Message Broker把消息包传递给订阅者的过程中出现错误,则Message Broker的传递事务会自动回滚,相应的商业流程的例外处理也会被执行。
  • Message Broker的开发和管理
    开发者主要使用Workshop IDE的集成开发环境使用Message Broker。Workshop IDE的功能非常强大。在Workshop IDE当中,开发者可以定义频道,包括频道之间的关系,也可以随时将商业流程绑定在频道上,进行测试。 对于Message Broker的管理主要是通过WLI的基于JSP的管理面板来进行的。在管理面板里面,管理者既可以部署或者撤销商业流程,也可以配置事件源。通过管理面板,管理者也可以方便地查看频道的属性,已经处理的消息包的个数,以及订阅和发布的规则等详细的配置信息。
  • 总结
    Message Broker实际上是一种灵活的消息发布和订阅机制,很类似Tuxedo当中的Broker,Message Broker在EAI层面上实现了这种通讯机制。利用Message Broker,从事EAI的技术人员可以根据企业信息系统的现状,灵活地定制商业流程,并且把这些商业流程灵活地连接起来,形成一种松偶合机制的互连,具有很大的适应性,保证企业将来信息系统的互通。
    关于Message Broker的详细技术信息,可以参考WebLogic Platform 8.1的联机文档(http://edocs.bea.com)。

相关文章:
© 2006   www.java-asp.net