基于SOA的业务流程集成框架

时间:2022-08-23 05:27:13

基于SOA的业务流程集成框架

摘要:企业的发展对应用系统的互操作性和可重用性提出了越来越高的要求。针对企业应用集成面临的问题,提出了基于SOA的业务流程集成框架,并分析了基于该框架实现应用系统的关键技术。

关键词:面向服务的体系架构;业务流程;集成框架

中图分类号:TP301文献标识码:A文章编号:16727800(2012)009002703

0引言

随着企业规模的不断扩大,应用系统不断增加,企业对信息共享、系统互操作性和软件重用方面的要求越来越高。相对独立、标准各异的“烟囱”式系统已经不能满足业务的需要,特别是在业务流程发生变化时,系统的维护和改造需要付出很高的代价。

面向服务的体系架构(ServiceOriented Architecture,SOA)为解决业务流程管理和集成问题提供了新的方法。SOA将各种资源以服务的形式进行封装和接入,以透明的方式进行资源的优化选取,帮助用户快速响应复杂多变的业务需求。本文首先对面向服务的体系架构进行简要介绍,然后提出一个基于SOA的业务流程集成框架,最后对基于该框架实现应用系统的关键技术进行探讨。

1面向服务的体系架构

面向服务的体系架构是指一个组件模型,它将基本功能单元——服务通过定义良好的接口和契约联系起来。这个定义包含如下两层含义:①SOA 是一种软件系统架构。它尝试给出在特定环境下推荐采用的一种架构,是人们面向应用服务的解决方案框架;②服务是SOA实现的核心。SOA的基本元素是服务,其指定一组实体(服务提供者、服务消费者、服务和服务契约等)来详细说明如何提供和消费服务。

SOA系统具有以下特点:跨平台——各种技术及平台下开发出来的组件能被其它技术及平台识别和理解;松耦合——各个组件间不存在相互依赖关系,彼此独立、共存;模块化——能够在原有系统的基础上按需添加或删除组件,构建新的系统;以业务流程为核心——围绕用户的业务流程构建应用系统,以便更灵活、更快地响应不断改变的企业业务需求。

2基于SOA的业务流程集成

2.1业务流程集成框架

基于SOA 实施业务流程集成需要将不同的服务通过定义良好的接口和契约联系起来。构建在各种系统中的服务通过统一且通用的方式进行交互,保证业务流程的良好集成。参考各大厂商及组织定义的SOA参考架构,考虑业务流程集成的需求,可构建基于SOA的业务流程集成框架。该框架主要包括资源层、支撑层和应用层等3个层次的设施,其结构如图1所示。

2.1.1资源层

资源层包括数据资源和应用资源。应用资源特指已有的应用系统,是能够完成特定业务处理的现有系统的总称。应用资源与其它服务一样,既可以为其它服务提供服务,也可以消费其它服务。应用资源通过开放接口,以适配器为桥梁接入SOA中。数据资源主要为系统中各种服务提供数据,包括格式化数据和非格式化数据,例如数据库和各种文件就是典型的数据资源。

2.1.2支撑层

支撑层构建在资源层之上,是整个集成框架的核心。支撑层提供了大量公共服务和基于业务构件的服务以及服务的运行、管理环境,具体由以下8个部分组成。

(1)企业服务总线。企业服务总线(Enterprise Service Bus,ESB)是基于SOA思想的企业应用集成的基础软件架构。IDC将ESB定义为:基于开放的标准消息总线,通过标准的适配器和接口提供各程序和组件之间的互操作功能。它支持相互独立的异构环境中的服务、消息及基于事件的交互,并且具有适当的服务级别和可管理性。

ESB作为SOA架构的信息传输总线,为SOA提供了一种连通性的基础架构,用以连接SOA中的服务。第三方的程序组件能够以标准的方式“插入”到该平台上运行,组件之间能够以标准的消息通信方式进行交互。

(2)适配器。适配器解决已有资源面向SOA的服务封装,实现已有资源的可重用性。通过适配器,已有资源仅需要与ESB相连接,不需要与每个服务直接相连,就可以实现服务之间的互操作。

(3)协作服务。协作服务是ESB的重要补充,主要通过WebService方式实现服务之间以更松散耦合方式进行通信和交互,可以简单认为它是整个服务通信和交互环节中的WebService网关。协作服务既可以解决组织之间(合作伙伴之间)的交互通信,也可以解决组织内部(如不同地域的分支机构之间,并有防火墙进行保护的情况)必须使用WebService方式进行的交互通信。

协作服务由通信和WebService组成。通信与ESB中的通信实现内部有效的数据通信。WebService与外部的公共注册中心交互,注册本平台对外开放的Web 服务以及查找所需要访问的外部Web 服务;与公共的事务协调器交互,共同保证平台间服务交互操作的事务完整性,通过SOAP协议与其它平台实现消息通信,以此进行平台间的服务通信和交互。

(4)管理服务。管理服务能够收集系统运行信息,管理各种资源和服务对象,对外提供服务接口。管理信息由各服务主动提供或者管理服务主动向各服务索取。

(5)辅助工具。辅助工具主要包括运行管理工具、应用管理工具、建模工具、集成开发工具。运行管理工具和应用管理工具通过管理服务实现系统运行、资源管理等功能。建模工具主要用于帮助用户进行业务分析和建模。集成开发工具主要提供系统建模、调试运行、系统部署等功能。

(6)流程服务。流程服务是为业务流程的运行提供的一组标准服务。业务流程是服务的集合,其本身可视为服务。流程服务是业务流程的运行环境,提供流程驱动、服务调用、事务管理等功能。当执行某一任务需要调用特定服务时,流程服务向ESB发送请求,由ESB查找服务并将服务请求消息传递给服务提供者。流程服务中的流程信息和运行信息由管理服务保存,在运行时可通过管理服务获取。流程服务也接受并执行管理服务的管理和控制命令。

(7)信息服务。信息服务为上层应用系统和其它服务提供数据访问及资源访问服务。其目标是使应用系统能够统一、透明、高效地访问各种分布、异构的数据资源,为实现全局数据访问、加快应用开发、增强网络应用和方便系统管理提供支持。

(8)业务服务。业务服务在此处指为业务流程集成新建的服务提供的运行支持环境。新建服务包括单个服务以及合成服务。合成服务一般由应用编码实现,它可以调用其它的服务。业务服务与ESB相联接,其中的新建服务与其它服务的通信和交互通过ESB来实现。业务服务的运行信息由管理服务保存,业务服务也接受并执行运行管理服务的管理和控制命令。

2.1.3应用层

应用层提供所有的信息应用,是业务流程集成的对外展现。应用层分解业务请求,通过支撑层提供的服务和资源层进行业务处理,并将返回信息组织成所需的格式提供给用户。与传统体系架构下的应用不同,SOA架构的应用层基于服务构建,从而可以使业务能够更快地组装。

2.2关键技术

在基于SOA架构进行业务流程集成时,采用自底向上的服务化建设模式。首先通过对业务流程和资源进行梳理、封装和改造,将各业务逻辑封装成服务进行管理,并注册至管理服务中。而集成的业务系统运行时,系统检索服务目录,定位所需的服务,通过业务服务等支撑层服务,调用相应的服务,从而进行业务流转以及数据交换。下面就基于SOA的业务流程集成框架所需的关键技术进行分析。

2.2.1业务建模

要有效地实施企业业务集成,必须充分认识和理解企业业务,建立高效可行的业务模型。而进行业务梳理、按照业务分类表,进行业务域和业务线的划分,是建立业务模型的第一步。然后需要使用建模工具对业务流程进行分析、编排形成最终的业务模型。

2.2.2服务开发

服务的开发根据良好定义的服务接口来进行,通过集成开发工具可以根据服务契约生成服务与服务框架代码。服务契约一般采用WSDL 来进行描述,服务代码需要包含服务请求者,服务框架为实现新服务提供框架。通过服务接口,服务可以与ESB连接,使得不同的服务可以相互交换数据,参与业务流程,通过灵活的互相协作方式来完成具体的业务操作。为了实现遗留系统重用,可通过适配器对遗留系统进行封装,提供良好定义的服务接口,以适应新的SOA应用模式。

2.2.3服务发现

基于SOA实现的系统包含了众多的服务。为了能够让服务的消费者找到服务,必须提供服务的注册和查找功能。一般服务的注册和查找由服务注册中心提供。服务注册中心可采用UDDI实现,对服务及其接口描述信息进行分类管理,为用户提供服务注册和查找手段。

2.2.4服务管理

服务的管理对于SOA应用系统非常重要。服务管理为用户提供了解服务部署、运行情况的手段,包括服务管理、监控、检查、分析等。通过服务管理,能够灵活地加入运行时控制,如SOAP消息处理、生命周期管理、访问控制等。管理服务具体实现对SOA应用系统的各种资源和服务的管理,为管理工具提供统一的服务接口。

3结语

本文基于SOA的参考架构提出了一个业务流程集成框架,并对该框架所需的关键技术进行了分析。该框架为各企业内部流程的整合和不同企业之间的业务互联互通和信息共享提供了基础,能够提高企业的敏捷性。

参考文献:

[1]王洪伟,刘勰,丁佼佼,等.基于SOA的面向业务敏捷性流程集成模型[J].计算机工程,2010(20).

[2]李立博.面向服务的多源异构数据整合平台的设计[J].计算机工程与设计,2011(1).

[3]刘壮业,姚郑.面向服务架构若干关键问题研究[J].计算机工程与设计,2009(3).

[4]谢刚,张为群.C/S遗留系统到系统移植框架研究[J].计算机科学,2007(11).

[5]Oracle,SOA reference architecture[EB/OL].http:///technology/tech/soa,2008.

上一篇:电力自动化通信网络探析 下一篇:云计算:基于Xen平台下OCFS2的性能研究