基于bpel引擎组合企业服务总线内部服务的方法

文档序号:7703389阅读:378来源:国知局
专利名称:基于bpel引擎组合企业服务总线内部服务的方法
技术领域
本发明涉及一种基于BPEL引擎组合企业服务总线内部服务的方法。
背景技术
"企业服务总线"作为应用系统的连接中枢,是构筑S0A(Service Oriented Architecture,面向服务架构)为基础的企业信息系统的必要元素。企业服务总 线的定义可以简单的理解为由中间件技术实现并支持SOA的一组基础架构, 支持异构环境中的服务、消息以及基于事件的交互,并且具有适当的服务级别 和可管理性。通过企业服务总线实现应用系统的快速接入,并通过更高级的事 件、流程处理能力,能够很好的将企业信息系统与实际业务协调起来,在保证 原有投资的条件下,实现更加灵活和敏捷的企业信息系统改造。
BPEL4WS (Business Process Execution Language for Web Service, Web 服务的业务流程执行语言,也称为BPEL)结合了基于图形的流程语言和块结构 的流程语言的优点,提供了描述业务流程的定义语言,描述了时间、顺序、地 点等相关内容。BPEL4WS主要基于WSDL 1.1、 XML Schema l.O和XPath 1. 0规 范,其中,WSDL消息和XML Schema类型定义提供了 BPEL4WS流程所需的所有 数据模型,而所有需要的外部资源和伙伴都被描述为WSDL服务。在WSDL中, portType使用抽象消息来定义抽象功能,服务的用户必须静态地依赖于这种抽 象接口。这样,在基于BPEL4WS的业务流程中,外部的Web服务可像黑盒一样 来为流程提供所需的服务,而不需要考虑开发的平台、异构系统等问题。
一般情况下,企业服务总线内部组件提供的服务都是相互独立的,这只能适 应于小规模的企业应用。为了能够适应大规模的企业应用,有必要将企业服务总线原有的多个服务组合成一个规模较大的服务。在以往的实践中,为了将企 业服务总线提供的服务组合到一起,往往是服务消费者根据需求场景,依次调 用服务仓库中的已有服务。这种硬编码的方式将业务逻辑写死,导致系统弹性 差,可复用性不强。
在S0A的架构中,为了把功能逻辑和业务逻辑分离,使系统具有最大程度的可 扩展性,应该把工作流引擎(如BPEL)接入企业服务总线,而不是硬编码的方 式,把原有的相对小的服务组合成新的服务以适用于更大规模的服务。把BPEL 引擎接入到企业服务总线来组合总线内部服务,并把组合后的服务暴露成Web 服务,使之可以接收SOAP消息,以便外部调用者调用,这正是本发明所要解决 的问题。

发明内容
为了解决上述问题,本发明提供了一种系统弹性好,可复用性强的将企业 服务总线内部服务进行组合的方法。
一种基于BPEL引擎组合企业服务总线内部服务的方法,具体包括如下步 骤1)把内部服务暴露成Web服务为每一个内部服务定义抽象WSDL,并使 得WSDL端点与内部端点一一对应;2)部署流程服务用BPEL语言编写流程文 件,然后创建一个包含该文件的部署包部署到总线中,总线便激活一个Web服 务来代表该流程服务;3)调用流程服务外部消费者获取流程服务的WSDL, 发送SOAP消息至BPEL引擎,执行流程服务。
进一步的,所述部署包包括部署包描述文件、BPEL流程定义文件、抽象 WSDL文件、具体WSDL文件、端点映射文件和数据结构定义文件。
进一步的,所述步骤3)调用流程服务过程中企业服务总线与BPEL引擎间 的消息交换方式包括当流程执行时需要调用总线内部服务时,BPEL引擎把SOAP消息转 换为规范化消息,发送至规范化消息路由器,再由路由器把该消息转发 给相应的内部组件;
当内部组件需要回复消息给流程时,该回复消息先发送至规范化消 息路由器,再由路由器转发至BPEL引擎,最后引擎把规范化消息转换为 SOAP消息供流程使用。 下面对本发明做进一步描述
本技术把BPEL引擎接入到企业服务总线,使之成为总线的一个标准内部组 件,并利用BPEL引擎对总线内部服务进行组合,最后再把总的流程服务暴露成 标准Web服务,大致步骤可简单描述为
1) 把内部服务暴露成Web服务BPEL引擎是对Web服务的组合,但企业服务 总线内部服务并不是暴露成标准的Web服务,因此,为了利用BPEL引擎进 行服务组合,必须先把内部服务暴露成Web服务。
2) 部署流程服务用BPEL语言编写流程文件,然后创建一个包含该文件的部 署单元(SU)或部署集合(SA)部署到总线中,总线便激活一个Web服务来 代表该流程服务。
3) 调用流程服务外部消费者获取流程服务的WSDL,发送SOAP消息至BPEL 引擎,执行流程服务。在执行流程过程中若需要调用总线内部服务时,BPEL 引擎提供消息转换功能使SOAP消息和规范化消息进行相互转换。
企业服务总线与BPEL引擎间的消息交换方式可简单描述为-当流程执行时需要调用总线内部服务时,BPEL引擎会把SOAP消息转换为
规范化消息,发送至规范化消息路由器,随后,由路由器把该消息转发给相应
的内部组件;当内部组件需要回复消息给流程时,该回复消息先发送至规范化消息路由
器,再由路由器转发至BPEL引擎,最后,引擎把规范化消息转换为SOAP消息 供流程使用。
本发明的优点在于
1. 提供一种简单方便的方式对企业服务总线内部服务进行组合,系统弹 性好,可复用性强;
2. 提供一种把企业服务总线内部服务暴露成标准Web服务的方法;
3. 支持流程执行过程中的信息持久化及监视功能


图1 BPEL引擎服务部署包结构图 图2 BPEL引擎与企业服务总线容器的消息交换示意图 图3内部端点与Web服务端点的映射示意图 图4规范化消息与SOAP消息的相互转换示意图
具体实施例方式
下面结合附图和实例对本发明作进一步介绍-图1描述了 BPEL引擎部署包的结构。
1) 部署包描述文件该文件描述了流程服务的相关属性,部署时,总线容 器会解析该文件;
2) BPEL流程定义文件该文件是用标准的BPEL语言编写而成,是总线内
部服务组合的逻辑实现部分;
3) 抽象WSDL文件这些文件的作用是把总线内部服务暴露成Web服务,这 些WSDL文件只要提供抽象的Web服务接口定义即可;
4) 具体WSDL文件该文件描述了流程本身所暴露的Web服务,需提供具体的Web服务操作等;
5) 端点映射文件该文件描述了内部服务端点和Web服务端点之间是如何 映射的。
6) 其它包括BPEL及WSDL文件中所需的数据结构定义(XML schema)等。 图2描述了 BPEL引擎是如何同总线其它内部组件进行交互的。
1) 当把部署包(包含BPEL流程文件、WSDL文件和Schema文件等)部署到 容器时,BPEL引擎将编译流程文件,并根据WSDL文件把相关的内部服 务暴露成Web服务,最后创建端点映射表,该表将内部服务端点和Web 服务端点进行一一映射。
2) 当流程要调用服务提供者的服务时,BPEL运行时构造SOAP消息并将其 发送至消息格式转换工具,该工具根据SOAP消息中指定的Web服务端点 在端点映射表中查找相关的内部端点,查找到后,根据SOAP消息的其它 内容和查找到的内部端点构造规范化消息,并将其发送至规范化消息路 由器。路由器根据消息中包含的内部端点信息将消息转发至相应的服务 提供者,若服务调用失败,将错误信息照原路径返回给流程。
3) 当服务消费者要发送消息至流程请求服务时,消费者构造规范化消息并 将其发送至规范化消息路由器,路由器根据消息中的内部服务端点把消 息转发至BPEL引擎;引擎中的消息格式转换工具在端点映射表中查找相 应的Web服务端点,再构造SOAP消息,并将其发送至BPEL运行时,若 服务调用失败,将错误信息照原路径返回给服务消费者。
图3描述了 BPEL引擎如何把总线内部端点与Web服务端点进行一一映射。 1) BPEL引擎端点映射文件(d印loy.xml)包含两中元素provide和invoke。 这两个元素分别描述了总线服务提供者和消费者端点是如何和Web服务端点进行一一映射的; 2) provide禾口 invoke元素都有partnerLink禾口 service两个子元素,每个 partnerLink对应抽象WSDL中定义的partnerLinkType的一个实例,而 每个service则对应总线的一个内部服务,service元素还有name和 port这两个子元素,分别对应总线内部服务的服务名称和服务端点。 图4描述了规范化消息与SOAP消息是如何进行相互转换的。 1)规范化消息中的服务端点、提供者ID、消费者ID与SOAP消息头相对应。 规范化消息中的消息内容与SOAP消息体相对应。
权利要求
1.一种基于BPEL引擎组合企业服务总线内部服务的方法,其特征在于具体包括如下步骤1)把内部服务暴露成Web服务为每一个内部服务定义抽象WSDL,并使得WSDL端点与内部端点一一对应;2)部署流程服务用BPEL语言编写流程文件,然后创建一个包含该文件的部署包部署到总线中,总线便激活一个Web服务来代表该流程服务;3)调用流程服务外部消费者获取流程服务的WSDL,发送SOAP消息至BPEL引擎,执行流程服务。
2. 根据权利要求1所述的基于BPEL引擎组合企业服务总线内部服务的方法, 其特征在于所述部署包包括部署包描述文件、BPEL流程定义文件、抽象WSDL 文件、具体WSDL文件、端点映射文件和数据结构定义文件。
3. 根据权利要求1所述的基于BPEL引擎组合企业服务总线内部服务的方法, 其特征在于所述步骤3)调用流程服务过程中企业服务总线与BPEL引擎间的 消息交换方式包括当流程执行时需要调用总线内部服务时,BPEL引擎把SOAP消息转换为规范 化消息,发送至规范化消息路由器,再由路由器把该消息转发给相应的内部组 件;当内部组件需要回复消息给流程时,该回复消息先发送至规范化消息路由 器,再由路由器转发至BPEL引擎,最后引擎把规范化消息转换为SOAP消息供 流程使用。
全文摘要
本发明涉及一种基于BPEL引擎组合企业服务总线内部服务的方法。一种基于BPEL引擎组合企业服务总线内部服务的方法,具体包括如下步骤1)把内部服务暴露成Web服务为每一个内部服务定义抽象WSDL,并使得WSDL端点与内部端点一一对应;2)部署流程服务用BPEL语言编写流程文件,然后创建一个包含该文件的部署包部署到总线中,总线便激活一个Web服务来代表该流程服务;3)调用流程服务外部消费者获取流程服务的WSDL,发送SOAP消息至BPEL引擎,执行流程服务。本发明提供一种简单方便的方式对企业服务总线内部服务进行组合,系统弹性好,可复用性强;支持流程执行过程中的信息持久化及监视功能。
文档编号H04L29/08GK101621540SQ20091010096
公开日2010年1月6日 申请日期2009年8月10日 优先权日2009年8月10日
发明者健 吴, 吴朝晖, 尹建伟, 朱显杰, 莹 李, 邓水光, 陈韩伟 申请人:浙江大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1