基于SOA的工作流管理系统的关键技术研究
2017-06-21王畅
王 畅
(江苏教育学院 运河分院,江苏 邳州 221300)
基于SOA的工作流管理系统的关键技术研究
王 畅
(江苏教育学院 运河分院,江苏 邳州 221300)
针对传统的工作流技术无法满足在信息技术与互联网技术飞速发展的背景下对跨企业、跨地域合作的需求这一缺点,提出了一种基于SOA的体系结构.SOA具备柔性好、互操作性强、松散耦合、可重用性高、支持异构环境等优势,基于这些优势,研究了Web Service、XML、SOAP、WSDL和BPEL的改进版本WS-BPEL五种关键技术,为基于SOA架构下的WfMS的设计与实现提供了理论支撑和技术支持.
工作流;SOA;管理系统
工作流技术的提出和引入源于办公自动化(OA)领域,其核心理念是将企业中一些固有的或固定的活动按照约定的规则或顺序来执行、管理和监控,实现业务活动自动化或半自动化运行.有了工作流技术的加入,企业大大地提高了办公效率、缩减了生产与管理的成本、增强了自身的业务能力水平、提高了企业的竞争力.
从20世纪80年代以来,一部分工作流产品供应商为了开拓市场,相继推出了自己的工作流产品,例如ViewStar等.这些工作流产品对某些业务流程的简化和重组提供了一定程度的支持,但是受限于当时的计算机发展水平,它也只能够实现简单的业务流程执行或部分集成.
进入20世纪90年代,为了实现系统必要的交互和协作,一门新兴的技术工作流管理系统(workflow management system,WfMS)受到了多方的关注.为了保证用户和开发者都能够拥有一个共同的标准,工作流管理联盟(workflow management coalition,WfMC)给出了WfMS参考模型,在一定程度上增强了系统的可用性,提高了系统的灵活性,但其在很多技术细节上仍然无法满足系统的可重用性、互操作性等.随着计算机技术和互联网技术的普及和发展,现代企业内部甚至是企业间的组织结构和业务流程已经日趋复杂,企业的管理和联系呈现出一种分布、异构的特点,这就要求各自的工作流管理系统能够支持在分布异构的环境下实现业务流程的协作[1].此外,一个完整的业务流程很有可能会涉及到跨多个地域、多个企业,并且基于不同的软件系统和编程语言等因素,所以要想实现分布异构环境下的大规模的业务流程协作,必须要有一种基于Internet管理、能够对分布异构的环境提供支持的工作流管理系统,而传统的工作流技术在互操作的支持上欠佳,并不能解决诸如企业间电子商务动态连接、跨平台跨地域合作等迫在眉睫的问题.
于是,在这样的背景下提出了一种面向服务的架构[2](service oriented architecture,SOA),能够有效地解决此类问题.
1 SOA的概念和体系结构
1.1 SOA基本概念
SOA[3],面向服务的体系架构,是一类组件模型,所有的功能通过服务实现,服务与服务之间的联系和调用,均通过良好的接口和契约来完成,且这种联系和调用无需考虑服务自身的软硬件环境,具备跨平台实现的特性.
不少研究机构和专家对SOA都有各自的见解,其中比较权威的是Gartner对SOA下的定义:面向服务的架构是一种C/S软件设计方法,由软件服务和软件服务请求者组成.SOA与大部分C/S模型的不同之处在于,它更强调的是软件之间的松散耦合和使用独立的标准接口.
总之,SOA可以支持不断动态变化的信息或环境,例如业务范围的更改、角色权限的变化、业务伙伴的增减等.在分布、异构环境已经成为企业间建立联系所不可避免的前提下,SOA能够有效地支持企业与企业之间点到点的业务集成,在异构的环境中实现业务协作.
1.2 SOA特点
由于传统的工作流技术无法满足在信息技术与互联网技术飞速发展的背景下对跨企业、跨地域合作的需求,而SOA的技术基础是Web Service,通过Web Service技术打破由于体系结构不同、语言不同和平台不同而导致的异构环境下无法集成和连接的局面.在工作流技术中引入Web Service,将各种应用程序封装成Web Service,借助SOA的思想,对外公布和提供其标准的接口,支持和实现企业间跨平台地工作流连接和互访.因此,将SOA与工作流相结合是完全可行的,其优越性主要表现在以下几个方面:
1)柔性好.因为在SOA架构下,被调用的应用程序被封装为独立的服务,从服务能力的角度来看,当流程定义、系统权限、资源信息等发生变化的时候,业务流程可以根据系统内外部环境的变化作出快速地反应并按照新的业务顺序和规则加以重组,避免系统内部牵一发而动全身的状况发生.从可扩展性的角度来看,能够依据企业增加的需求调用相应的服务而动态实现功能的扩展,而不必考虑重新建模等问题,大大地削减了维护成本.
2)软件组件松散耦合(Loosely Coupled)[4].松散耦合是指组件对为其提供服务的另一个组件的依赖性不强,它具备语言独立性和平台独立性.当某一个Web服务进行变更的时候,对于调用者来讲,是不会发现其内部变更的,换句话说,Web服务的任何变更对调用者来讲都是透明的.对于松散耦合来说,采用XML/SOAP这样的适合互联网环境的消息交换协议,能够很好地实现Web服务的发布和调用.
3)更高的可重用性.正是由于SOA的架构具备松散耦合的特性,服务请求者无需知道服务提供者的任何实现细节,是一种面向对象的实现机制,这就使服务提供者可以灵活、自由地在分布异构的环境中部署,大大地提高了系统的可重用性.
4)增强了互操作性.当一个大型的工作流需要由多个工作流管理系统协作互连,进行传递工作项、执行控制等操作时,传统的工作流管理系统由于在这方面功能的欠缺,很难胜任.而SOA的架构将负责对过程定义进行解释并控制实例执行的工作流引擎封装为Web Service,将这些功能的具体实现方法隐藏起来,对外提供诸如工作列表、管理监控工具、应用程序或服务调用等统一标准的接口,实现了异质工作流引擎的协作,加强了工作流管理系统之间的交互,从而推动了大型工作流的顺利运行.
图1 SOA体系结构Fig.1 The SOA architecture
5)对分布异构环境提供了支持.企业间跨地域、跨平台的业务合作关系已经成为了当前和未来的发展趋势,而这种趋势必然要求工作流管理系统可以在分布异构的环境中实现分工、协作和业务集成.将业务活动封装为Web,可以不受系统实现的软硬件环境的限制、跨出局域网的地域范围,实现了工作流在分布异构的环境下可以正常运转,从而保证了企业间更为复杂的业务关系的往来.
1.3 SOA体系结构
SOA的体系结构如图1所示.结合图1可以发现,SOA的体系结构由以下4个参与者[5]组成,它们分别是:
1)服务提供者.服务提供者一方面可以直接响应来自服务请求者的服务请求[6],另一方面可以将符合标准的服务在注册中心发布、注册,以便服务消费者向注册中心查找和请求服务.
2)服务消费者.服务消费者也被称作服务请求者,它主要是指需要请求、调用相关服务的应用程序或服务.服务消费者可以在注册中心查找、发现所需服务,并调用,也可以通过SOAP绑定并执行服务.
3)服务契约.服务契约在此主要是指服务消费者与服务提供者之间发生交互所必须要共同遵循的统一标准或格式规范,只有在统一的服务契约下这样才能有效保证交互的畅通.
4)注册中心.注册中心可以被看做是一个服务库,这种服务库为服务消费者和服务提供者保存所有符合标准的服务信息,满足服务提供者的发布需求、服务消费者的查找发现需求.当然,注册中心还存储服务契约,使服务提供者和服务消费者在统一标准的环境下,实现跨平台地服务调用.
2 关键技术研究
2.1 Web Service技术
Web Service工作流技术是SOA架构下的一种分布式技术[7],在Web Service技术下,需要建立通信的软件必须都要包含标准的Web服务接口[8],具备与编程语言无关、与实现平台无关的特性,在互联网的环境下实现不同的应用程序的相互调用.
Web Service体现了一种新型的面向服务的理念[9],由于Web Service保留了面向对象系统中的封装、继承、多态和绑定等特征,因此可以将Web Service看作是面向对象设计的一种演进与发展,它依赖用户普遍使用的传输技术和底层标准,并且在此基础之上保证任何计算机程序都可以访问发布在互联网中的其他应用程序,而不必考虑这些应用程序到底是如何编写、如何运行的.当然,Web服务可以是相互独立的,也可以是相互连接的,这样可以向外界输送更多、更强、更为复杂的服务功能.
例如某系统中的信息处理程序对外提供一个个的Web服务,其他的应用程序如果需要访问其中的一个或多个Web服务,则只需要通过标准的Web服务接口进行访问并建立彼此之间的通信.如图2所示,将信息处理程序分为数据处理服务、会员信息处理服务、交易处理服务、格式报表处理服务等四个可用的服务,方便了系统内外的业务修改,保证了信息的兼容性和正确率.
图3描述了Web Service协议栈[10],与网络七层结构类似,它也呈现出一种层次结构,并且每一层都有所用的标准和协议规范.
Web Service协议栈可以分为如下四层:
1)网络传输层.网络传输层位于Web Service的底层,是基础层,它所支持的协议规范为HTTP,SMTP,FTP等,实现消息传输的功能.
2)XML消息层.在XML消息层指出了所有应用程序之间的通信是采用基于XML编码的SOAP协议规范,易扩展,保证了跨平台的数据交换.
3)WSDL服务消息层.在WSDL服务消息层以XML的格式对Web服务进行描述.WSDL用type、message、binding等元素将Web服务定义为网络节点的集合.
4)UDDI服务发布与服务发现层.UDDI服务发布与服务发现层是一套遵循Web的、具备分布式特点的标准规范,其实现功能是Web服务发布与发现.
2.2 XML技术
XML(Extensible Markup Language),意为可扩展标记语言,它是基于文本的、与运行平台无关的标记语言.正是由于XML具备这些特性,所以可以借助手动编码编写和生成XML文档,借助XML文档实现不同的应用程序在不同的平台之间互访数据,保证了本地计算机程序与其他计算机程序之间良好的通信.早在1998年就由W3C发布了利于简化Internet文档信息传送的XML1.0规范,近20年来,XML技术得到了迅速发展和应用,为结构化文档信息[11]的处理提供了强有力的支持.
XML具有如下特点:
1)简单易用.XML是基于文本的,并且以Unicode编码为基础,支持绝大多数的语言,易于读写和调试,正是由于这种简单易用的特性,所以几乎任何应用程序都支持XML,这将促使XML成为数据交换的公共语言,更加容易地实现数据或程序在不同的操作系统平台下的信息集成.
2)可扩展性.作为可扩展标记语言,XML可以用来描述、接收或处理来自不同程序的数据.此外,XML可以加入DTD(Document Type Definition,文档类型定义)来保证XML文档的格式正确,促使XML文档成为一种数据之间交换的标准,并对XML模式加以验证,以确保网络中数据的共享和交互,而且在模式验证、建立标准或附加标准的基础之上,扩展了XML的功能模块集.
3)自描述性.XML文档具有自描述性,因为XML文档中通常会包括对文档类型的声明,不管是人还是计算机都能够读懂XML文档,使XML文档实现了数据独立于操作系统,借助DTD对另一个XML文档中的数据进行解析.
4)互操作性、灵活性.由于可以借助多种工具对XML加以解释,并且由于XML文档采用结构化的数据表示,所以这种解释所耗费的代价非常低,更为重要的是易于实现在不同的平台间读写数据,使用户前台与结构化数据相互分离.此外,将样式表加入XML文档也是可行的,如果需要建立超链接,也可以得到MLink的支持,这些因素都保证了XML具有较好的互操作性和灵活性.
下面结合一个借助AJAX(Asynchronous Javascript And XML,异步JavaScript和XML)技术与XML技术相结合实现客户端与服务器通信的实例简单了解XML的工作原理.下面的几段XML代码可以理解为通过一个用户注册程序完成新用户的注册:
用户注册程序可以读取以上XML代码,并对其进行解析,然后作出判断这是一段
在以上新用户注册服务中,使用XML将客户端对服务器的请求包装起来,将客户端新用户注册所需要填写的基本信息通过XML代码传递给目标服务器处理,降低了客户端与服务器之间的耦合性.
2.3 SOAP技术
图4 基于任何传输协议的SOAPFig.4 SOAP based on any transport protocol
SOAP(Simple Object Access Protocol,简单对象访问协议)是一种基于XML的简单、灵活的协议.正是由于SOAP基于XML,所以SOAP继承和保留了XML的可扩展性、灵活性和互操作性等特点.此外,SOAP还可以与HTTP、FTP、POP3、SMTP等协议相捆绑,从而保证了SOAP可以穿过防火墙和代理实现互联网中任意应用程序之间的通信,满足不同系统、不同程序间的最大兼容.SOAP已经成为Web服务之间进行交互的标准规范,如图4所示.
2.3.1 SOAP规范的主要构成要素
1)SOAP信封.它描述了SOAP消息框架,与传统信封要写明收件人与寄件人的相关信息类似,SOAP信封表明了消息的发送方、接收方以及发送消息的内容.
2)SOAP编码规则.用它来声明和交换在应用程序交互过程中所要用到的数据类型以及衍生出来的数据类型的实例.
3)SOAP RPC.它表示一个用于远程调用的合约.
2.3.2 SOAP消息的主要构成要素
1)信封.它是SOAP必不可少的组成部分,它的存在标志着这是一条SOAP消息.
2)头部.它是SOAP的可选组成部分,记录着SOAP的一些附加内容,一般来说,头部可以省略.
3)主体.它也是SOAP必不可少的组成部分,记录着消息正文、响应信息和服务调用.
4)错误元素.它是SOAP的可选组成部分,记录着SOAP消息在传送的过程中有可能会发生的各种错误,并以错误报告的形式告知发送人.
2.4 WSDL
WSDL(Web Service Description Language,Web服务描述语言)是一种基于XML,用于描述Web服务[12]的语言.它能够确定服务所在的位置、服务所提供的方法,并将服务抽象地描述为可以处理文档或信息的端点.下面展示一段WSDL文档结构的代码:
definitions of types……
definitions of a message……
definitions of a port……
definitions of a binding……
从这段代码可以发现,WSDL由以下几个主要元素组成:
1)WSDL Type.类型的定义,在
2)WSDL 消息.消息的定义,
3)WSDL Binding.绑定的定义,对由服务抽象而成的端口进行格式、细节的定义,并定义了操作是采取何种方式进行交互的.
4)WSDL PortType.端口的定义,它定义了此Web服务具备何种功能,并且定义了当端口成功连接以后Web服务的使用方法.
图5 WSDL的工作过程Fig.5 The work process of WSDL
图5描述了WSDL的工作过程.下面结合图5对WSDL的工作过程作简要说明.
1)程序一向服务代理发出服务请求,服务代理接到请求以后,会向UDDI服务注册中心查找指定的服务.
2)服务代理查找服务成功,则继续查明此服务是由程序二提供的,便通知程序一与程序二建立连接.
3)程序一查看程序二采用WSDL编写的Web服务描述,当发现此描述正是自己所需的服务之后,程序一通过SOAP开始向程序二发送调用请求.
4)程序二接收到程序一的请求以后,也同样通过SOAP对程序一的请求作出回应.
5)程序一和程序二之间的交互由于出自相同的命名空间,因此可以顺利地保持通信,直至通信完成.
2.5 WS-BPEL
BPEL最初在2002年被提出,当时名字为BPEL4WS(Business Process Execution Language For Web Services,商业流程执行语言),它是微软公司和IBM公司共同努力的产物,分别吸取了二者在图形化流程和结构化构造方面的优势,现已成为OASIS(Organization for the Advancement of Structured Information Standards,结构化信息标准促进组织)标准[13].
图6 BPEL流程服务调用Fig.6 The BFEL process service calls
BPEL作为一种工作流语言,也是基于XML规范的,它的主要功能是对现有的服务重新整合,从而形成新的Web服务,而实现整合服务的接口则被描述为WSDL 端口定义的集合.图6[14]说明了BPEL流程服务的调用和执行.
从图6中可以发现,BPEL的活动不仅可以借助伙伴链接调用外部服务,也可以借助伙伴链接对外提供服务.此外,BPEL可以引用来自同一命名空间的变量和关联集合作为IO参数,实现消息、实例的关联.
由于BPEL的持续发展,且为了符合Web Service的命名习惯,将BPEL做了改进,并生成了BPEL的改进版本WS-BPEL(Web Service Business Process Execution Language).WS-BPEL是基于Web Service的业务流程编制语言,能够支持同构或者异构系统间[15]在遵循Web Service标准的条件下以工作流的形式完成业务合作,这一切都为实现企业内部或者企业与企业之间业务流程的重组、扩展提供了便利.
3 结论
Web Service技术的发展和SOA架构的提出将SOA与工作流相结合,有效地解决了传统工作流所呈现的诸多问题,扩展了传统工作流的功能,使工作流技术在互联网的环境下发挥更大的作用,促进了企业内部和企业间的信息集成.本文所研究的基于SOA的工作流管理系统的五种关键技术为基于SOA架构下的WfMS的设计与实现提供了理论支撑和技术支持,可以有效地提高系统的灵活性和可重用性.
[1] 贾峰,文志诚,薛晓燕.基于J2EE工作流的办公系统的设计与实现[J].计算机工程与设计,2010,31(12):2792-2795.
[2] FOSTER I,KESSELMAN C.The grid: blueprint for a new computing infrastructure[M].2nded.Beijing:China Machine Press,2005.
[3] IBM.What is Service-Oriented Architecture(SOA)[EB/OL].(2004-05-03)[2017-02-13].http://www-128.ibm.com/developerwoks/webservice/newto/#1.
[4] 刘博,范玉顺.面向服务的工作流性能评价及指标相关度分析[J].计算机集成制造系统,2008,14(1):160-166.
[5] JAMJOOM M M, ALGHAMDI A S, AHMAD I.Service oriented architecture support in various architecture frameworks:a brief review,Hong Kong,China,2012[C].International Association of Engineers,2012.
[6] 王晓艳.基于SOA工作流引擎的研究与实现[D].北京:北京工业大学,2009.
[7] 李敏.基于SOA的工作流技术的研究[D].曲阜:曲阜师范大学,2009.
[8] HURWITZ J, BLOOR R, KAUFMAN M,et al.Service Oriented Architecture for Dummies[M],Indianapolis:Wiley Publishing,2009.
[9] 吴丹.基于SOA的工作流管理系统研究与应用[D].广州:广东工业大学,2008.
[10] 段会宁.基于SOA的工作流管理系统的研究与设计[D].哈尔滨:哈尔滨理工大学,2009.
[11] UCHEOGBUJII.XML标准概览[EB/OL].(2004-10-24)[2017-02-13].http://www.ibm.com/developerworks/cn/xml/x-st- and1/,2004.
[12] BANATI H,BEDI P,MARWAHA P.WSDL-TC:Collaborative Custo-mization of web service,Kochi,India,2012[C]∥IEEE Computer Society,2012.
[13] 黄振.面向服务架构工作流系统的研究与设计[D].上海:复旦大学,2008.
[14] 王紫瑶.SOA核心技术及应用[M].北京:电子工业出版社,2008:126-128.
[15] SALATINO M. JBPM Developer Guide[M].Birmingham, UK: Packt Publishing, 2009:68-70.
责任编辑:高 山
Study on the Key Technologies of Workflow Management System Based on SOA
WANG Chang
(Yunhe Branch,Jiangsu Institute of Education,Pizhou 221300,China)
In the context of the rapid development of Information Technology and Internet Technology,the traditional workflow technology cannot meet the needs of cross-enterprise and cross-regional cooperation.In response to this,an SOA-based architecture is proposed.SOA has the advantages of flexibility,interoperability,loose coupling,high reusability and support of heterogeneous environment.In this paper,based on these advantages,the author studies the key technologies of SOA,that is,Web Service,XML,SOAP,WSDL and WS-BPEL,the improved version of BPEL,which provide strong theoretical and technical support for the design and implementation of WfMS based on SOA.
workflow;SOA;management system
2017-02-13.
江苏省教学研究室立项课题(2013JK10-L044).
王畅(1984-),男,硕士,讲师,主要从事工作流技术的研究.
1008-8423(2017)02-0203-06
10.13501/j.cnki.42-1569/n.2017.06.021
TP315
A