随着移动通信业务的发展,增值业务市场也呈快速发展的趋势,增值市场规模逐年增长。用户对业务的需求也呈现出多样化的趋势,移动通信运营商在激烈的市场竞争中,利用现有的业务平台及资源,灵活组合,适时推出用户所需的各种新业务,将会极大地增加运营商的市场竞争能力。然而传统的服务实现使用不同的语言和技术,并且运行于不同平台和操作系统之上。因此,各个系统相互孤立,难以进行通信,并且其内部信息处理手段的差异较大,数据存在不一致性,彼此之间难以进行信息、数据的交换和共享。现在,随着SOA(service-oriented architecture,面向服务的架构)技术的出现和快速发展,可以很好地解决该问题。SOA架构以服务为基本单元,通过把不同应用封装成统一的Web服务来屏蔽系统间的差异性;以服务作为构建时的基础组件,通过服务组合技术对散列的组件进行组合,从而解决服务间数据的交互和共享,以松耦合的方式实现跨机构的协作业务流程;通过服务组合技术对业务流程的全过程进行监管,实现流程的简化和优化。
1.面向服务的体系架构SOA
SOA 是以服务为基础的组件模型。服务作为封装特定功能的实体,以业务为其核心理念,通过定义良好的接口的契约彼此间进行联系。同时,服务是中立的,可以独立于特定的技术和平台。服务具有可重用性,一个定义良好的服务可以在多个业务流程的组装中使用。也正是因为SOA 中所有应用都是服务,基于SOA 的系统平台可以采用服务组合技术将单独的、中立的、封装完善的服务组合成新的、复杂的服务,从而实现数据共享。又因为服务之间的交互是通过标准定义的接口进行的,基于SOA 的系统平台可以屏蔽由于平台、操作系统以及实现语言不同而造成的差异。
基于SOA 的IT 架构以一系列执行业务功能的服务为基础,通过服务的形式重用企业现有资产。同时,通过服务的不同组合不仅实现异构环境中的消息、数据的交互和共享,还可以使业务流程变得更加灵活,从而迅捷有效地满足现实生活中快速变化的业务需求。可见,要使搭建的架构灵活多变,就要考虑服务构建、数据模型和服务编排这三方面采用何种技术来实现。如图1 所示为SOA关键技术及其关系。
本文重点研究服务组合技术。SOA架构中的服务组合编排模型不仅要满足异构、松耦合的要求,还要是敏捷的,因此与Web 服务关联的服务组合技术BPEL (Business Process Execution Lan原guage)以其基于服务、松耦合、高度敏捷等特点成为构建SOA 架构的首选服务编排模型。BPEL 的描述文件是WSDL,不仅支持Web 服务,也可以更好地支持SCA定义的服务。同时,BPEL 规范可以把其定义的流程本身暴露为Web 服务对外提供服务。同时由XML Schema 定义的BPEL 规范可以直接把SDO 定义引入到自己的变量到中,作为其变量进行操作。总之,BPEL 是SOA 服务编排的核心技术,同时也是具体业务流程的体现。
图1 SOA关键技术及其关系
2.基于BPEL 的服务组合技术
BPEL 技术规范即业务流程执行语言规范,是以Web服务、XML 为基础的诸多规范上提出的一种新型的业务流程的定义语言规范。它的灵感来源于IBM 的WSFL 以及微软的XLANG。其中,WSFL是一种以图为基础的流程模型,其特点是灵活、直观;XLANG 即工作流程描述语言,它以过程代数为基础,具有结构化构造的优势。BPEL 作为两者结合的产物,以用Web 服务接口标准描述的伙伴和业务流程的交互为基础,定义了描述业务流程的语法规范,主要用于业务流程建模。作为一个Web 服务组合标准,BPEL可以直接描述一组Web 服务的操作顺序,以及服务间交互时共享的数据,还可以处理Web 服务使用过程中发生的异常;作为执行流程的建模语言,BPEL 可以组合现有的服务,从而生成一个新的更为复杂的Web服务。
BPEL是一个基于开放标准的技术规范,这些技术规范为BPEL 流程的执行提供环境。图2展示了BPEL 规范与其相关技术标准的关系。
图2 BPEL规范与相关技术标准的关系示意图
BPEL规范描述的是各成员服务何时、为何、以何种顺序被调用,还为服务提供错误处理和补偿机制。因此,基于BPEL 规范的流程定义总体可分为三个部分,这三部分之间的关系如图3所示。
图3 BPEL流程规范分类示意图
3.基于BPEL 的服务组合实现方法
基于BPEL 的服务组合方法可归纳为两个部分,一是为业务流程中涉及的每个活动设定一个抽象服务,形成抽象服务流程定义;二是执行前通过中间环节进行服务匹配和绑定,将每个抽象服务替换成一个实体服务,将抽象服务转换成实际的符合BPEL 规范的业务流程文档,此部分是整个方法实现的核心。
3.1 抽象服务流程定义
由于BPEL 业务流程通过WSDL 技术规范对其与成员服务之间交互的接口进行描述,相关活动的实现要发布成WSDL 文件描述的服务。这些生成的WSDL 文件即为抽象服务流程定义。在本文中Web 服务是基于Axis2 框架搭载Tomcat 服务器发布实现的,把Axis2 与平台开发环境进行整合,整合后开发好的类直接在Tomcat 服务器上发布即可通过在浏览器中键入网址获得相应的WSDL描述。
3.2 服务接口的调用
在BPEL 流程中,流程与成员服务之间的交互是通过伙伴链接调用WSDL 描述的服务接口实现的,因此,服务接口的调用是对伙伴链接的定义。在实际执行过程中,难免会发生错误或者异常,需要对其进行处理以及进行一些必要的补偿操作。使用流程处理器可以提高服务质量,增强BPEL 流程的健壮性。在业务流程中,可能发生人工审批和业务取消同时操作并生效的错误,此时需要添加错误处理器捕获错误和补偿处理器添加补偿措施。
核心关注:拓步ERP系统平台是覆盖了众多的业务领域、行业应用,蕴涵了丰富的ERP管理思想,集成了ERP软件业务管理理念,功能涉及供应链、成本、制造、CRM、HR等众多业务领域的管理,全面涵盖了企业关注ERP管理系统的核心领域,是众多中小企业信息化建设首选的ERP管理软件信赖品牌。
转载请注明出处:拓步ERP资讯网http://www.toberp.com/
本文标题:基于SOA的服务组合技术研究