随着世界经济全球化的发展,现代企业需要不断更新管理模式和采用新技术来增强自身竞争力。工作流是针对企业日常工作中固定的程序活动而提出,目的是为了提高办公效率、降低生产成本、提高企业整体的生产管理水平和竞争力。企业通过工作流相关过程建模体系的建立,可以与其它系统进行有效的结合,使企业的业务流程更好的实现。由于经济的全球性发展,产品的研制开发已不仅局限于某一单一企业,而是众多企业的协同运作,这就促使企业的管理将建立在分布异构的环境下。
随着计算机与网络技术的发展,现代企业已呈现出一种分布、异构和松散耦合的特点,工作流管理系统必须能够支持异构环境下的互操作性,对异构环境下的软件系统提供支持。传统的工作流技术由于缺乏互操作性而无法满足现代企业的需求,主要包括:可重用性不高,柔性差,分布环境支持性差等。Web 服务技术的发展以及SOA 面向架构服务技术可以对这些问题提供有效地解决方法。
2 传统工作流管理系统的局限性
传统的工作流技术起源于生产组织和办公自动化领域。它是针对企业日常工作中具有固定的程序活动而提出。通过将工作分解成定义良好的任务、角色,按照一定的规则和过程来执行这些任务并对其进行监控,达到提高效率,降低生产成本 ,提高企业竞争力。传统的工作流技术的确可以促进企业各部门间的信息集成,但面向当今跨区域、跨企业间的运作形式,传统的工作流技术无法满足企业的需求,存在着一定的局限性:
1)分布异构环境的支持性差
传统工作流管理系统主要面向局域网进行操作,随着信息技术和网络的发展,现在的企业运作范围是面向互联网的,原来的工作流软件只能支持单平台操作,而每个企业都有自己的工作流管理系统,各企业系统间的传输协议和数据结构都存在差异,各企业无法在业务流程上进行合作。
2)无法进行动态建模
工作流的过程建模技术让过程定义和过程执行的分离得到了实现。可以在过程定义时静态指定过程信息,对过程进行实例化后按照定义依次执行。但在流程的执行过程中经常会发现业务流程发生了变化,这就需要工作流管理能够对这些变化做出响应,动态选择对应用程序的调用。
3)互操作性差
工作流管理联盟定义的工作流间的互操作模型无法支持异构企业间工作流引擎的复杂操作。
3 SOA 技术概述及SOA与工作流系统结合的可行性
3 .1 SOA相关技术
SOA(Service - Oriented Architecture)即面向服务体系结构,它是一种组件模型。SOA利用企业现有的各种软件体系,重新整合并构建起一套新的软件架构。这套架构可以随着业务的变化,随时灵活地结合现有服务而组成新的软件,共同为整个企业的业务流程而服务。
SOA 要求软件开发者在设计应用软件时要充分考虑到服务集成以及服务的重用性,SOA是面向服务模型的传统紧耦合的替代者,同传统的软件架构相比较,SOA 具有更多的优点:基于标准、松散耦合、共享服务等。SOA 使用独立的接口,并以软件组件的松散耦合性为设计的重点。
3 .2 SOA技术与工作流系统结合的可行性
SOA中的所有的功能都可以定义为独立的服务,独立的服务之间又可以重新组合为新的业务流程,因此,SOA面向服务架构和工作流的结合是可行的,可以改善传统工作流中存在的系统局限性,具体的优势表示为以下几点:
1)支持异构环境业务流程,将工作流程封装为Web服务或者利用Web服务来实现业务流程中的服务,满足了跨地域的各大型企业之间的业务需求,加强了各企业业务流程之间的合作。
2)方便工作流程重组。SOA架构可以随着业务的变化,随时灵活地结合现有服务而组成新的业务,共同为整个企业的业务流程而服务,可以使工作流系统适应业务需求的变化。
3)可以加强各企业间的互操作性。工作流引擎封闭成Web服务可以使不同企业之间的不同流程通过请求而进行远程协作流程。
4)可以提高软件的可重用性。在SOA中,所有服务的封装和设计是基于面向对象的,而基于面向对象的优势在于对象的可重用性,因此面向服务的架构可以提高软件可重用性。
4 基于SOA 的工作流管理系统模型及整体架构
4 .1 SOA架构的工作流管理系统模型
针对于在工作流管理系统中引入SOA架构的优势以及对传统工作流管理系统的改进,我们提出了基于SOA 架构的工作流管理系统的模型,见图1所示:
与传统的工作流管理系统相比,基于SOA架构的工作流管理系统主要增加了面向服务特征,在企业的工作流程中,可将企业流程封装成Web服务,并通过调用Web 服务的形式来执行工作流。
在工作流执行的过程中通过提供过程定义接口,以此来获取过程的定义,同时工作流的执行服务由多个工作流引擎组成,通过Web服务接口的调用来执行相关的应用程序。为适应分布异构环境下的业务进程,作为一种语言规范的提出,BPEL(Business process execution language)即业务流程执行语言,为SOA 的工作流管理系统的建模提供了很好的工具,利用业务流程执行语言(BPEL) ,可以完成操纵数据、调用Web 服务等并可创建更为复杂的业务流程。
4 .2 基于SOA的工作流系统整体架构。系统采用MVC 架构的体系结构,由四个层次来实现,基于SOA的工作流系统整体架构如图2所示:
数据层:主要用来对操作数据库或者数据源,实现异构构数据库的操作与配置。
业务层:主要用于访问数据层,从数据层取数据、修改数据以及删除数据,并将结果返回给表现层。
服务层:主要用于实现服务编排和软件服务建模,将外部的功能进行封装成为粒度不等的服务。
表现层:主要用于用户接口的展示,以及用业务层的类和对象来驱动这些接口,调用功能服务层提供的服务。
5 基于SOA的业务流程集成
5 .1 面向服务的封装机制
基于SOA架构的工作流管理系统具有的服务封装机制包括:
1)服务:该服务封装机制主要用于封装相互之间有联系的操作的集合,即操作的逻辑分组。当某些业务流程发生变化时,不需要重新开发业务流程,而是针对某些业务直接进行重组。
2)流程:该封装机制主要将工作流程以web服务的形式来发布,可以更好的保证企业之间的业务流程集成。
3)操作:该封装机制用于实现系统中的一些简单组件和应用程序。
5 .2 服务的调用机制
对于服务的调用方面可以分为同步调用和异步调用两种,其分类方法是根据工作流程的复杂和紧急程度来划分的。
服务调用主要采取HTTP 请求——响应的模式。分为同步和异步两种方式进行,同步调用下,服务请求者首先向服务的提供者发送请求消息,在请求消息未处理完之前,服务请求者会一直保持等待响应的状态。与同步调用方式不同,异步调用时,服务的请求者发送请求后无需等待响应,服务提供者可利用较长时间来处理相关的请求,处理结束后再将响应的信息返回。
Web服务的发布分为两种:UDDI注册中心与静态发布。UDDI 注册中心获取到服务描述后,服务的请求者可以通过获取到的服务信息来对Web服务接口进行访问并通过服务描述生成简单对象访问协议SOAP(Simple Object Access Protocol) ,服务请求者可以通过Web 接口直接调用所需服务。另一种获取Web 服务的途径是通过本地的服务描述语言WSDL 即(Web Service DescriptionLanguage)来获得相关Web 服务。
6 结束语
面向服务架构(SOA)是近几年被广泛接受的软件体系架构,利用SOA 框架将工作流技术与Web 服务技术相结合,用Web 服务来实现企业中的业务流程,使大型企业中业务流程的复杂性和地域分布性状况得到了很好的适应。本文设计的基于SOA 架构的工作流管理系统的模型已在实际的项目中得到了应用并取得了较好的评价,本系统采取Web Services 技术,屏蔽了软件平台之间的差异,使系统具备异构系统之间的集成并适应用于企业分布式的异构环境。
CIO之家 www.ciozj.com 公众号:imciow