面向集团企业的服务工作流系统架构研究*
2012-02-28陈智敏李海波
陈智敏,李海波
(华侨大学 计算机科学与技术学院,福建 厦门 361021)
现代企业从单个企业为主体的企业竞争,发展到今天的多企业间的业务协同。集团企业在跨地域经营和动态联盟的情况下,业务活动需要经过企业各部门、供销商以及客户之间的协作,同时需要考虑设计需求和制造约束,与制造伙伴共同协调。要求企业必须柔性地适应动态的业务组织方式,以快速响应瞬息万变的市场需求。从生产型制造向服务型制造转型升级是全球制造业发展的重要趋势,也是我国制造业尤其是集团企业转型升级、增加产品附加值、走向价值链高端的重要手段[1]。新环境下的集团企业面临着企业资源分散、物流网络复杂、协调成本高、产品多样化和需求个性化等问题,急需构建一个以服务为核心,能够按需整合优势资源,动态编排业务流程的企业系统体系结构。
本文基于服务工作流构建服务工作流引擎执行框架,并针对服务动态发现与建模不足,为工作流中的服务进行语义信息扩展,以此建立动态的服务调度机制。最后,提出一种适用于集团企业应用的服务工作流系统体系架构,为企业动态编排和执行业务流程提供有效方案,实现集团企业在新环境下的资源优化配置,以及与伙伴企业之间的业务协同。最后通过一个设计与制造业务的协同过程实例,详细说明该架构的实施方法。
1 相关工作
面向服务的体系结构SOA (ServiceOriented Architecture)作为一种架构模型,它可以根据需求通过网络对松散耦合的粗粒度应用组件进行分布式部署、组合和使用。SOA将企业应用看作由一些不同粒度、能跨越企业边界以及能实现特殊功能的服务集合所构成,并通过定义良好的、独立于平台的接口进行联系,使此类系统可通过一种通用的方式进行交互。因此,采用SOA实现企业应用系统架构能在更大范围内达到信息共享,实现高度的互操作性和可扩充性,最终起到优化配置资源的作用。
在SOA体系结构下,服务与流程有着紧密的联系,将面向服务的结构与工作流技术相结合,已经成为一种发展趋势[2]。引入Web服务的工作流系统扩大了工作流的范围,能够解决复杂应用集成和跨组织的业务协同问题。目前,已有不少研究结合工作流技术对Web服务进行组合。其中,Cross-Flow[3]和 Sword[4]等研究项目通过WSFL、LANG、BPEL4WS等技术为服务组合提供统一的建模和定义工具,以此构建一个动态的服务查找、发现与执行平台。SciDAC-SDM项目[5]将抽象工作流与底层由服务组成的执行工作流严格区分,借用类似数据库协调技术的方法将抽象工作流转换成执行工作流。参考文献 [6]利用事务的概念扩展DAML-S本体中的过程模型,并提出了一个事务工作流本体概念的服务组织模型。参考文献[7]提出了一种基于业务生成图的工作流构造模型,并通过基于混合粒子群的QoS调度算法找出满足应用需求的工作流执行路径。
2 服务工作流及执行引擎
服务工作流是将Web服务作为工作流中的各项活动,以动态工作流方式组合起来,并根据工作流过程模型中所定义的各项活动之间的业务逻辑与规则,通过服务的动态查找和组合,实现工作流活动的动态部署及绑定,并由工作流引擎对各项活动的执行与交互进行控制。服务工作流是一种流程服务,但它还需要考虑工作流的相关数据交互问题和引擎问题。
2.1 工作流引擎
服务工作流的运行机制与传统的工作流大不相同,工作流在执行过程中需要动态选择、组合和调用服务。工作流引擎的执行框架如图1所示。
图1 服务工作流执行框架
用户通过流程设计器进行抽象业务流程设计,并借助业务规则编辑器定义规则,由此构成服务工作流的过程描述文档。文档描述了服务的输入和输出参数、前置和后置条件,而业务规则明确定义了业务流程执行中的约束条件。工作流模型转换器将抽象流程和业务逻辑进行组合,形成引擎支持的可执行工作流模型。
工作流引擎负责对服务工作流模型进行解析和实例构建,维持流程实例的执行状态,并依据静态的抽象过程描述和业务过程中的约束条件在运行时计算后续过程,动态调用服务。一个服务工作流的执行便是一个业务过程实例,是为实现特定的业务目标,由不同角色执行的一组具有偏序关系的、逻辑上相互关联的、作用于一组相关业务对象上的Web服务。
流程监控器的功能包括流程与任务的监控、调度监视、消息监控以及日志查看。工作流API为任务处理器和业务应用提供接口,主要包括流程定义接口、查询接口和监控接口等。
2.2 服务动态执行环境
服务调度器是工作流服务中的重要组件,负责根据模型定义的功能和非功能需求从ESB服务中心匹配和选择服务,供引擎执行时调用。
目前,BPEL4WS、BPML以及Web服务编排描述语言等流程定义语言的模型缺乏对流程服务的语义描述,无法依据流程动态业务需求匹配服务,因而在服务的动态发现与建模方面存在不足。OWL-S是一种基于Web本体描述语言的Web服务本体,用于描述服务的属性和功能,便于发现和集成不同种类的Web服务。本文结合OWL-S实现对服务的语义描述信息扩展,增强对服务能力的描述。建立基于语义的服务动态发现与调度机制,更好地实现动态选取和组合服务工作流。Web服务的执行环境,如图2所示。
图2 Web服务的执行环境
Web服务由发布在ESB服务中心上的 WSDL、OWL描述文件和部署在Web服务器上的服务实体组成。其中,WSDL提供服务的访问地址、方法列表和输入参数类型等技术信息;而OWL提供给服务的语义信息,如服务名称、服务类型、输入输出规范和前置条件、后置条件等。服务工作流在部署时动态地发现和选择服务,并在执行时动态绑定和调用服务。
3 体系架构
在新的环境下,集团企业服务协同工作流系统开发和实施是一项复杂而系统的工程。其系统体系架构如图3所示。
图3 基于服务工作流的企业应用体系架构
(1)表示层:主要为用户提供流程建模的设计工具。当企业的业务逻辑发生变化时,只需通过设计器调整流程模型的活动顺序,修改业务规则和数据并重新部署。表示层还需为用户提供统一的门户服务,包括单点登录、权限控制和个性化服务等。
(2)业务层:实现过程定义服务的接口,并为工作流的运行实例提供任务表处理器,实现下层工作流引擎与上层应用的交互。过程定义服务将上层建立的抽象过程模型和业务规则组合为工作流引擎可识别的服务工作流模型。业务层还提供流程的分析和优化工具,更好地实现对流程实例的管理。
(3)服务层:其核心是工作流引擎,它负责对服务工作流模型进行解释,控制过程实例的创建、激活、挂起和终止。引擎通过服务调度器对工作流模型中不确定的服务链接进行匹配、加载和实例化,并在执行过程中完成流程实例的状态转换和活动转换。
(4)支撑层:完成架构中相关数据的映射和持久化,包括服务工作流的定义模型、运行实例、历史实例和业务数据。支撑层还为系统提供各种基础设施,包括DBMS、日志管理和系统监控等,以保证服务工作流在建模、服务选择和组合以及执行等各个阶段的数据安全和可靠性。
(5)ESB服务中心:由ESB组件、管理组件和服务管理组件三部分构成。ESB组件实现消息传递、服务路由、格式转换、数据解析和处理、安全传输等功能。服务管理组件为ESB提供服务管理容器,针对集团企业的行业需求进行分析和梳理,建立领域内的服务目录和服务库,并对这些服务和元数据进行定义及存储,以便进行服务的查找、发布、注册和管理。ESB监控和管理组件能够辅助故障诊断,并提供完整的服务质量评估报告,以衡量现有的应用系统效率,并为优化、升级提供指导。ESB是应用集成的枢纽,各个应用之间的信息和服务共享都将通过ESB来进行。
4 应用
服装集团企业由于物流、商流、资金流和信息流分离的运营模式和产品特点,导致市场需求变化频繁,要求企业必须动态调配资源,协调企业内部与伙伴企业间的业务合作。本文以一个服装集团企业的服装设计及制造的协作过程作为服务工作流系统原型的设计与实现示例,其业务过程如图4所示。
图4 服装制造业务的协作过程
(1)需求分析阶段
根据业务目标分析业务执行过程、活动内容和活动要处理的数据。明确活动执行人,并分析业务对象与工作流对象之间的关系以及影响业务过程的业务数据。
在实例中,集团总公司提出服装设计需求,包括服装类型、款式、板型、图案等服装关键属性;还可设置扩展属性,如面料、涂层染整工艺等。这些属性均采用OWL定义,并按照输出规范传送给下一节点。
(2)流程建模阶段
在建模阶段创建流程和定义活动,并分配业务单元、操作和执行人,定义相关数据。该实例协作过程可分为多个子流程,每个子流程都有具体的工作内容。例如我们将服装设计、生产和库存物流环节设计为子流程,每个子流程又是一个单独的服务工作流模型。业务协作过程中各个活动之间存在相互依赖关系,例如,在用料采购活动和板房领料时,需用料出入库;在生产过程中,也涉及库存和物流活动。设计子公司根据需求进行设计,根据设计纸样和工艺程序进行单件样衣的原料用量计算和采购。在技术部板房领料完成样衣制作之后,进行样衣件实际原料用量核算,生成成衣物料清单数据。
(3)服务工作流部署阶段
建模阶段定义任务接口和业务规则(如材料、工序、期限和证书等约束),而服务的语义模型定义服务的功能和非功能信息,可用来查找和评估服务。工作流在部署时动态指定该任务的服务实体。伙伴公司能满足该服装制造需求,给出了该服务的实体注册和信息,引擎通过匹配服务组合出可执行服务工作流,并将其部署到工作流引擎上。
(4)服务工作流执行阶段
完成流程模型构建和工作流部署后,即可创建服务工作流实例。相关业务人员输入设计需求,引擎自动启动流程,实现业务流程的自动运转和协作过程。服务工作流在整个系统开发、部署和执行的状态如图5所示。
图5 服装制造服务工作流的全生命周期
本文构建基于Web服务的工作流系统,其架构具有松散耦合性、动态变化性、访问透明性、粗粒度等特征,使服务工作流在执行上能够动态完成任务,同时提高了工作流的灵活性,扩大了工作流的范围。对服务进行语义描述信息的扩展,提高了服务发现和选择的质量。工作流引擎根据业务需求和约束动态地进行服务组合,从而适应业务变化,提高服务重用性。通过实施此系统可以使跨组织间的业务流程与软件系统相对独立,可提高企业应用系统的柔性,以支持企业不断进行管理创新和业务流程重组,实现集团企业的资源共享与整合。
[1]战德臣,赵曦滨,王顺强,等.面向制造及管理的集团企业云制造服务平台[J].计算机集成制造系统,2011(03).
[2]刘博,范玉顺.面向服务的工作流性能评价及指标相关度分析[J].计算机集成制造系统,2008(1).
[3]GRAFEN P, ABERER K, HOFFNER Y, et al.Crossflow:cross-organizational workflow management in dynamic virtualenterprises[J].InternationalJournalofComputer Systems Science and Engineering, 2000, 15(5):277-290.
[4]PONNEKANTI S R,SWORD A F.A developer toolkit for building composite Web services[EB/OL].Stanford:Stanford University,2002.
[5]ALTINTAS I, MEMON A, LUDAACHER B.Design and execution of scientific workflows using Web services[C].In:Proceeding of the Presentation,San Diego Supercomputer Center and San Diego Software Industry Council to Host Web Services Conference 2004.
[6]KORHONEN J, PAJUNEN L, PUUSTJRVI J.Automatic composition of Web service workflows using a semantic Agent.In: Proceeding of the IEEE/WIC International Conference[C].on Web Intelligence (WI2003),2003:566-572.
[7]胡春华,吴敏,刘国平,等.一种基于业务生成图的 Web服务工作流构造方法[J].软件学报,2007,18(8):1870-1882.