一种将EJB接入企业服务总线的方法_第1页
一种将EJB接入企业服务总线的方法_第2页
一种将EJB接入企业服务总线的方法_第3页
一种将EJB接入企业服务总线的方法_第4页
一种将EJB接入企业服务总线的方法_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、一种将EJB接入企业服务总线的方法摘要本发明提供了一种jbi组件在ESB和EJB+Web Service的整合过程中绕开 http协议高效地访问发布成Web Service的EJB的方法。对于EJB,传统无状 态会话Bean的调用方式有如下三种不同的客户端:本地接口的客户端、远程接 口客户端和Web Service客户端。在如上的整合过程中,因为企业服务总线ESB (Enterprise Service Bus)是企业面向服务架构(SOA )的基础实现,访问ESB 通过web服务的方式来访问,因此jbi组件只能以最后一种方式调用EJBO在将 EJB接入企业服务总线的过程中若应用服务器是通过AX

2、IS将EJB发布成Web Service,通常的访问EJB的方式是AXIS的客户端构造SOAP消息,通过HTTP 协议传输此消息到指定的端口间接调用EJB。本方法提供的引拿,使应用服务器 上的EJB自动接入到企业服务总线jbi内部组件成功地调用部署成Web service 的EJB ,绕开了 http层,比传统的Web服务客户端的访问性能提高了三倍。此 外,引拿对于消费者组件是透明的,并提供安全,事务的支持1技术领域本发明涉及一种将EJB接入企业服务总线的方法,使jbi内部组件简单高效 地调用部署成Web service的EJB。2背景技术企业服务总线作为应用系统的连接中枢,是构筑SOA(Se

3、rvice Oriented Architecture,面向服务架构)为基础的企业信息系统的必要元素。企业服务总线 的定义可以简单的理解为:由中间件技术实现并支持SOA的一组基础架构,支 持异构环境中的服务、消息以及基于事件的交互,并且具有适当的服务级别和可 管理性。通过企业服务总线实现应用系统的快速接入,并通过更高级的事件、流 程处理能力,能够很好的将企业信息系统与实际业务协调起来,在保证原有投资 的条件下,实现更加灵活和敏捷的企业信息系统改造。JBI是针对ESB的一种规范及API,提供了规范化消息服务、组件框架和管理 模型,用以部署路由引筆、规则引拿、以及信息转换等集成服务也就是说JBI是

4、 关于ESB的一种具体描述,同时JBI也是一种基于SOA的EAI,它是一种面向服务 的用来解决企业应用集成的方案它的主要目的是为了不同异构的系统能够通过 统一的消息规范和统一的消息总线来相互通讯它之所以采用面向服务的体系结 构,是因为这样可以降低异构系统的耦合度。其中规范化消息服务中的一些概念 在下文提到,包括服务消费者和提供商,规范化消息。在下文中,调用EJB的 组件作为服务消费者,而引拿则充当了服务提供者。终点(Endpoint)表示一种特 殊的地址,能够通过某种特殊的协议访问,代表服务的地址。服务的提供者和消 费者组件他们之间的交互是通过消息路由(NMR ),提供商通过endpoint将

5、服 务激活,并提供有关服务定义的原数据。当出现服务请求时,NMR根据消费者 所需服务的地址信息选择一种方式来确定一个服务提供商,并将消息转发给最终 确定的对象。在服务调用完成后,NMR再将相应的消息返回给消费者。下面消 费者组件调用EJB的Soap消息就是放到标准消息(NM )的内容中的。另一方面,J2EE是第一个为业界所广为接受的完整的企业应用框架,而EJB 在其中扮演重要角色,广泛的得到了业界的支持,已经成为的标准技术.从企业 应用多层结构的角度,EJB是商业逻辑层的构件技术,于JAVA BEANS不同,他 提供了事务处理的能力,自从三层结构提出,中间层,也就是商业逻辑层,是处 理事务的核

6、心,由于从数据存储层分离,他就取代了存储进程的大部分地位。从 分布式计算的角度,EJB像CORBA样,提供了分布式技术的基础.提供了对象 之间的通讯手段。在J2EE框架的支持下,运行在EJB容器中的EJB ,完全符合 企业应用关于分布、移植、安全和交易的要求。通过企业服务总线实现应用系统的快速接入,使EJB接入企业服务总线变 得迫切,而今的EJB的接入企业服务总线的方法一般是通过服务端将EJB部署 为Web Service的相应客户端调用,例如应用服务器上是通过AXIS将EJB发 布成Web Service的。Axis提供了对Web Service的基本支持,主要包括对 SOAP的支持,WSD

7、L的解析,WSDL文件到java类的映射,SOAP信息到java 方法的转换和映射,Web Service的部署和发布,用户自定义类的序列化和反 序列化等等,这些对实现EJB Web Service提供了底层支持。Axis具有高度的 可配置性和可扩展性,有利于应用服务器对它的集成。所有的Web Service都 是使用同一个servlet接收信息。这个servlet根据URL中的参数确定调用的是 明0个Web Service ,然后对调用做必要的检查和处理后交给Axis处理,再将 由Axis包装好的返回消息发送给客户端。通常的访问EJB Web Service的方法 是利用AXIS的客户端接口

8、来构造SOAP消息,然后通过HTTP协议传输此消息 到指定的端口。在AXIS服务端,有监听程序监听此端口 ,然后接收到SOAP请 求,对此SOAP消息做相应处理生成消息内容,最后激活AXIS的处理框架z AXIS处理框架的任务是按照部署配置的Handler依次对消息内容进行处理,并 最终调用到指定的EJB。因为ESB容器和应用服务器是在同一JVM下的,对于 这种通过HTTP协议传输消息然后访问Web服务的方式效率并不高。因此,需要寻求一种快速,简便的方式,而这正是本发明所要解决的问题。3发明内容以JTang应用服务器为例,EJB Web Servcie模块通过集成Axis实现EJB 对 Web

9、 Service 的支持,使用 Stateless Session Bean 作为 Web Service 的 端点,而在ESB内部环境中Jbi endpoint是作为一个组件也就是服务的地址, 通过消息路由到指定jbi端点就能访问相应的组件。那么如果在引拿内部建立jbi 端点和EJB部署成Web Service的端点的一对一的联系,访问jbi端点的信息 就可以映射到具体的部署的EJB Web Service 了。同时,在引拿内部保持jbi 端点信息和EJB Web Service的端点的同步,当有新的EJB Web Service部署 成功后,则在ESB环境中为引茎激活相应的jbi端点,代表

10、了这种服务的存在。 当EJB Web Service被反部署后,则在ESB环境中为引拿反激活相应的jbi端 点,代表注销了这种服务,从而保持了同步。jbi环境内部通信的消息内容是Source形式 何以是xml格式的soap消息 内容。消费者组件调用Web Service ,以标准消息的形式(内容为soap消息), 通过指定所要调用的Web Service端点路由到j2ee引拿,因为引筆已做了隐式 的对应。j2ee引拿把根据访问消息直接构造axis的处理引拿ServerEngine能够处理 的消息内容交由axis的处理引筆来处理 此处理弓摩根据要调用的Web Service 初始化相应的hand

11、ler进行相应的EJB调用,并将调用结果以soap消息封装在 消息内容的回复消息里,然后j2ee引拿把调用的结果返回给jbi消费者组件。 至此为止Jbi内部组件成功地调用部署成Web Service的EJB ,在应用服务器 端成功地避开了 Svelte接收,从而绕开了 http。本发明的优点是:1. jbi组件能够通过本引拿方便快速地调用部署在应用服务器上并发布成Web Service 的 EJBO2. 成功地绕开http协议,比传统的Web服务客户端的访问性能提高了三倍。3. 弓摩能够进行服务的隐式的对应,并能够对服务进行方便高效的管理。4.附图说明图1为总的流程图图2为保持应用服务器上的E

12、JB Web Service和J2EE引拿上的服务的同步图3为消费者组件调用EJB指定EJB Web Service的地址,路由soap消息 到引琴图4为引拿构造axis引筆能处理的消息,调用后并将消息返回5具体实施方式以下是具体的实施方式:子流程1 :保持应用服务器上的EJB Web Service和J2EE引擎上的服务的同 步如图2所示,当j2EE引拿启动的时候,如果已有EJB发布成Web Service , 那么在Axis Service( AXIS的服务引拿)中保存看一张EJB Web Service列表, 包含一个键值对,包含服务ID和EJB Web Service地址。在J2EE引

13、挛启动初 始化的过程中建立和JTang应用服务器的连接,启动同步的轮询线程,保持应 用服务器上的EJB Web Service列表和J2EE弓摩上的服务列表的同步,线程扫 描一遍J2EE引拿上的服务列表,如果发现当前引茎的服务列表中的服务ID和 EJB Web Service列表中的ID有不同,则进行相应的增减。即当有新的EJB部 署并被AXIS发布成Web Service ,则相应在引拿激活一个jbi端点(代表服务 的地址),端点由两部分组成:引拿的QName和EJB Web Service的地址。同 样,当EJB被反部署后,则在引筆上将相应的jbi端点钝化,以此达到同步。在 这同步的过程中

14、,建立引彗服务和EJB的隐式对应。子流程2 :消费者组件指定要调用EJB Web Service的地址,soap消息将被 路由到引擎如图3所示,当一个jbi消费者组件调用EJB ,可以根据弓摩的QName和 EJB Web Service的地址从jbi环境中得到jbi端点(已被引筆激活),构造标 准jbi消息(消息内容是soap消息),指定jbi端点路由消息。ESB提供的消息 路由机制能够使消息路由到消息指定的jbi端点所对应的那个组件,在这里也就 是J2EE引孰 当引峯接收到标准jbi消息后,获取soap消息,然后根据消息交 换中的jbi端点获取EJB Web Service的地址,得到引拿

15、处理器对象后构造M essageContext (消息内容),该消息内容为Axis引蒙处理器能够处理的对象。 MessageContext是一个包含三个重要部分的结构:请求消息、响应消息和一 系列的属性。调用Axis的途径有两种:A、 作为服务器端,TransportListener 创建 MessageContext 并调用 Axi s Processing Framework0B、作为客户端,应用程序代码(通常是通过客户端Axis模块半自动地)创 建 MessageContext 并调用 Axis Processing Framework0 无论是哪一种方式,Axis Processing Framework的工作都是简单地通过一系 列预先配置的 Handlers 来传递结果 MessageContext, MessageContext 包 含所有相关的请求和响应信息。在这里我们选择的是B的方式。子流程3 :引拿接到jbi消息后构造axis引筆能够处理的消息内容,调用axis 引拿提供的接口进行处理如图4所示:J2E

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论