一种企业服务总线与外部Web服务的交互方法

文档序号:7703390阅读:383来源:国知局
专利名称:一种企业服务总线与外部Web服务的交互方法
技术领域
本发明涉及一种企业服务总线与外部Web服务的交互方法,使企业服务总 线内部组件可以简单高效地调用外部Web服务。
背景技术
企业服务总线作为应用系统的连接中枢,是构筑SOA(Service Oriented Architecture,面向服务架构)为基础的企业信息系统的必要元素。企业服务总线 的定义可以简单的理解为由中间件技术实现并支持SOA的一组基础架构,支 持异构环境中的服务、消息以及基于事件的交互,并且具有适当的服务级别和 可管理性。通过企业服务总线实现应用系统的快速接入,并通过更高级的事件、 流程处理能力,能够很好的将企业信息系统与实际业务协调起来,在保证原有 投资的条件下,实现更加灵活和敏捷的企业信息系统改造。
在网络飞速发展的今天,每个组织都面临着同样一个挑战在平衡核心能力 和已有应用程序时创建同构的环境。IT需要一个简单的,与平台无关的应用程 序间通信方式。在这种需求下产生了 Web服务,它是一类可以从Internet上获 取的服务的总称,它使用标准的XML消息接发系统,并且不受任何操作系统 和编程语言的约束。在过去的几年中,出现了三种作为全球标准的主要技术 SOAP, WSDL和UDDI,它们构成了 Web服务技术的核心。Web服务具有提 高业务适应性、降低IT成本和提高商业智能的优点。
由于各个公司对业务性能,逐渐从简单的监控转到事前管理,他们需要看 到有关市场、客户和竞争对手的实时的信息,这就使得企业服务总线内部资源 与外部Web服务的交互变得极为重要。一般情况下,总线内部组件是通过HTTP层访问外部Web服务的,调用效率低。

发明内容
为了解决上述问题,本发明提供了一种简单高效的企业服务总线与外部 Web服务的交互方法。
一种企业服务总线与外部Web服务的交互方法,该方法通过代理组件对企 业服务总线内部通信的消息格式和调用Web服务的消息格式进行相互转换。
进一步的,所述方法为总线内部消费者先把消息发送至代理组件,再由代 理组件把消息交换转换成SOAP消息后发送至外部Web服务提供者。
当企业服务总线容器和外部Web服务处于同一虚拟机中时,SOAP消息经由 一个叫J2EE引擎的代理组件直接调用Web服务。
当企业服务总线容器和外部Web服务处于不同虚拟机中时,内部组件先把 请求消息发送至一个叫HTTP的代理组件,再由该组件构造SOAP消息,并经HTTP 层传送到处于不同虚拟机中的Web服务。
更进一步的,所述代理组件是企业服务总线内部组件的一种,部署在企业服 务总线容器里,具有端点同步映射机制和消息转换机制。 下面对本发明做进一步描述
为了解决企业服务总线内部通信的消息格式和调用Web服务的消息格式不 一致的问题,本发明设计了一种代理组件,它的主要功能是对上述两种消息格 式进行相互转换。有了代理组件之后,总线内部消费者并不直接调用外部Web 服务,而是先把消息发送至代理组件,再由代理组件把消息交换转换成SOAP 消息后发送至外部Web服务提供者。
企业服务总线内部组件调用外部Web服务可分为以下两种情况■当企业服务总线容器和外部Web服务处于同一虚拟机中时,SOAP 消息的传递不需要通过HTTP层,而是经由一个叫J2EE引擎的代理 组件直接调用Web服务。通过这种优化策略,可以显著提高调用外 部Web服务的效率。 ■当企业服务总线容器和外部Web服务处于不同虚拟机中时,内部组 件先把请求消息发送至一个叫HTTP的代理组件,再由该组件构造 SOAP消息,并经HTTP层传送到处于不同虚拟机中的Web服务。 代理组件是企业服务总线内部组件的一种,部署在企业服务总线容器里, 它主要是作为外部Web服务的内部代理,使得内部组件调用外部Web服务如 同调用内部服务一样简便。 代理组件的功能可描述为-
■端点同步映射机制,启动同步轮询线程监视外部Web服务状况,创 建端点映射表,使得外部Web服务在企业服务总线内部容器有相应 的内部端点代理。
■消息转换机制,企业服务总线内部通信使用的是标准的消息交换,而 调用Web服务必须发送SOAP消息,因此,代理组件必须能够支持 两种消息格式的互相转换。 本发明的优点在于
1、 当企业服务总线容器和外部Web服务处于同一虚拟机中时,提供一 种绕过HTTP层简单高效地调用Web服务的方法,根据测试,该方法比 传统方法性能提高三倍多;
2、 外部Web服务对于内部调用者来说是完全透明的,内部调用者调用外部Web服务如同调用内部服务一样,这完全符合企业服务总线对于透 明性的要求;
3、提供安全、事务支持。


图1企业服务总线内部组件与外部Web服务的交换图(处于同一虚拟机
中)
图2企业服务总线内部组件与外部Web服务的交换图(处于不同虚拟机
中)
图3企业服务总线内部端点与Web服务端点的同步映射图 图4消息交换与SOAP消息的转换图
具体实施例方式
下面结合附图和实例对本发明作详细介绍
图1描述了企业服务总线内部消费者组件调用处于同一虚拟机的外部Web
服务的过程,步骤如下
1) 当消费者组件要调用处于同一虚拟机的外部Web服务时,构造消息交 换,在消息中设定内部端点,并发送该消息至J2EE引擎。
2) J2EE引擎接收到消息交换之后,在端点映射列表中査找与接收到的内部 端点相对应的Web服务端点,然后根据该Web服务端点和消息交换中 的规范化消息分别构造SOAP消息头和消息体,并将该SOAP消息直接 发送至处于同一虚拟机的Web服务提供者。
3) Web服务提供者解析接收到的SOAP消息,执行相应的服务,如果有消 息返回或出现Web服务调用异常,回复消息会沿着发送路径逐层返回至调用者。
图2描述了企业服务总线内部消费者组件调用处于不同虚拟机的外部Web 服务的过程,步骤如下
1) 当消费者组件要调用处于不同虚拟机的外部Web服务时,消费者组件构 造规范化消息,设定内部端点,并将消息发送至HTTP组件。
2) HTTP组件接收到消息交换之后,在端点映射列表中查找与接收到的内 部端点相对应的Web服务端点,然后根据该Web服务端点和消息交换 中的规范化消息分别构造SOAP消息头和消息体,并将该消息发送至 Internet 。
3) Internet将SOAP消息转发至处于不同虚拟机的Web服务提供者,执行 相应的服务,如果有消息返回或出现Web服务调用异常,回复消息会沿 着发送路径经HTTP层返回至调用者。
图3描述了企业服务总线内部端点与Web服务端点的同步映射过程,步骤 如下-
1) 当代理组件启动时,同时启动同步轮询线程,扫描Web服务容器上Web 服务列表,注册与Web服务端点一一对应的总线内部服务。
2) 代理组件启动后,会开线程监听Web服务容器上的服务,当有新的Web 服务部署后,注册相应的总线内部服务端点;同样地,当原有的Web服 务被钝化后,注销与该Web服务对应的内部服务端点,保持端点映射表 中的一致性。
3) 当代理组件停止后,总线容器注销所有的与外部Web服务相关的内部端 点,使端点映射表为空。图4描述了消息交换和SOAP消息相互转换关系
1) 消息交换中的服务端点、提供者ID、消费者ID与SOAP消息头相对应。 ■服务提供者端点结构为命名空间+服务提供者名称+服务提供者端点
则相应的SOAP消息头为
<Header>
<To mustUnderstand=,,true,,>
"命名空间\服务提供者名称\服务提供者端点" </To〉 </Header>
■服务消费者端点结构为命名空间+服务消费者名称+服务消费者端点
则相应的SOAP消息头为-
<From mustUnderstand="true">
"命名空间\服务消费者名称\服务消费者端点" </From> </Header>
2) 消息交换中的规范化消息与SOAP消息体相对应。 SOAP消息体结构为<Body>
〈Element 1 >元素1内容〈/Element 1 >
<Element N >元素N内容〈/Element N > </ Body 〉
权利要求
1.一种企业服务总线与外部Web服务的交互方法,其特征在于该方法通过代理组件对企业服务总线内部通信的消息格式和调用Web服务的消息格式进行相互转换。
2. 根据权利要求l所述的一种企业服务总线与外部Web服务的交互方法,其特 征在于所述方法为总线内部消费者先把消息发送至代理组件,再由代理组件 把消息交换转换成SOAP消息后发送至外部Web服务提供者。
3. 根据权利要求1或2所述的一种企业服务总线与外部Web服务的交互方法, 其特征在于当企业服务总线容器和外部Web服务处于同一虚拟机中时,SOAP 消息经由一个叫J2EE引擎的代理组件直接调用Web服务。
4. 根据权利要求1或2所述的一种企业服务总线与外部Web服务的交互方法, 其特征在于当企业服务总线容器和外部Web服务处于不同虚拟机中时,内部 组件先把请求消息发送至一个叫HTTP的代理组件,再由该组件构造SOAP消息, 并经HTTP层传送到处于不同虚拟机中的Web服务。
5. 根据权利要求1或2所述的一种企业服务总线与外部Web服务的交互方法, 其特征在于所述代理组件是企业服务总线内部组件的一种,部署在企业服务 总线容器里,具有端点同步映射机制和消息转换机制。
全文摘要
本发明涉及一种企业服务总线与外部Web服务的交互方法,使企业服务总线内部组件可以简单高效地调用外部Web服务。一种企业服务总线与外部Web服务的交互方法,该方法通过代理组件对企业服务总线内部通信的消息格式和调用Web服务的消息格式进行相互转换。本发明的优点在于当企业服务总线容器和外部Web服务处于同一虚拟机中时,提供一种绕过HTTP层简单高效地调用Web服务的方法,根据测试,该方法比传统方法性能提高三倍多;外部Web服务对于内部调用者来说是完全透明的,内部调用者调用外部Web服务如同调用内部服务一样,这完全符合企业服务总线对于透明性的要求;提供安全、事务支持。
文档编号H04L29/06GK101621516SQ200910100968
公开日2010年1月6日 申请日期2009年8月10日 优先权日2009年8月10日
发明者健 吴, 吴朝晖, 尹建伟, 朱显杰, 莹 李, 邓水光, 陈韩伟 申请人:浙江大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1