深入探讨EJB中新的消息驱动组件(4) 一个B2B的例子 一个典型的B2B情景就像一个“中枢-轮辐”形,多个宽松连接的商家(即“轮幅”)与一个大型企业(即“中枢”)交互连接,在某种情况之下,当执行交互操作(像发送大的订单这样的事件)可以经由JMS应用程序在大企业与商家之间正常相互作用。对于一些小型商家来说,采用纯JMS可能在成本上太高而负担不起,它可能会采用通过Web浏览器中的HTTP或发送电子邮件的形式向大企业发送订单。为了向客户开放B2B系统,大型企业级服务器就必须能够处理这一系列不同的协议。
 而且,作为中枢的大型企业级服务器虽然接受来自email或来自JMS等不同类型格式的订单,但是只有必要为每一种方式分别编写处理程序。使用MessageDrivenBean组件,任何协议都可以发送以XML格式描述的订单,如下面的例子。MessageDrivenBean组件只需要把注意力集中在处理来自应用程序服务器发送的JMS TextMessage中的XML就可以了,而不要去关心到底所处理的消息时直接来自JMS服务器还是作为一条来自邮件服务器的SMTP消息。
代码段六:
<purchase_order> <client_number>101</client_number> <date>August 8, 2001</date> <billing_address> <name>Wayne Zheng</name> <address>xyz street</address> <city>Hefei</city> <province>Anhui</province> <zip>230027</zip> </billing_address> <shipping_address> <name>Zhang Tao</name> <address>Huangshan Road</address> <city>Hefei</city> <state>Anhui</state> <zip>230026</zip> </shipping_address> <items> <item> <quantity>1</quantity> <product_number>324</product_number> <description>Java Book</description> <unitcost>19</unitcost> </item> <item> <quantity>1</quantity> <product_number>532</product_number> <description>Java VM</description> <unitcost>56</unitcost> </item> </items> </purchase_order> | 小结
EJB2.0提供了一种新的组件模型-MessageDrivenBean组件-用来处理异步消息,MessageDrivenBean组件可以简单的开发和利用与其他EJB组件模型相同的容器服务,这种新的组件模型允许整合面向对象的中间件(MOM)的、优秀的以及新一代纯Java的JMS。并且,MessageDrivenBean组件还有可能成为处理任何异步消息,特别是基于XML消息的工业标准。因此,MessageDrivenBean组件是EJB2.0中的非常重要的一员,本文只是初探其面目,以后我还会更加深入的探讨其的功用。
(全文完)
|