基于SOA开发框架的异构工作流集成方案.doc_第1页
基于SOA开发框架的异构工作流集成方案.doc_第2页
基于SOA开发框架的异构工作流集成方案.doc_第3页
基于SOA开发框架的异构工作流集成方案.doc_第4页
基于SOA开发框架的异构工作流集成方案.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于SOA开发框架的异构工作流集成方案潘杰 周咨聪 陈德焜(上海大学,上海市延长路149号,CIMS及机器人中心,200072)摘要:本文论述了基于SOA的企业业务流程集成开发框架,并在此基础上提出了一个用于集成异地异构工作流系统的应用解决方案,该方案在微软.NET开发平台上采用微软.NET3.0开发技术,以低成本、高安全性、高柔性满足异地异构工作流系统之间的业务集成需求。关键字: SOA; 集成框架; web服务; 工作流集成中图分类号:TP315 文献标示码:ASOA-Based Solution to Heterogeneous Workflow System IntegrationPan Iie Zhou Zi Cong Chen De Kun(CIMS & Robot Center, Shanghai University, Shanghai 200072, China)Abstract: A develop framework for business process integration for enterprises is discussed. And in this basis, a solution for integrate distributed and heterogeneous workflow system is put forward. The solution introduce the MS .NET 3.0 technologies in MS develop flat to meet the need of process integration with low cost, high security and high flexible. Key words: SOA; integration framework; Web Service; workflow integration0. 引言在现代企业应用环境中,合作的企业常常分别处于异地,而实际业务流程却要跨越这些分布在异地的企业以保持逻辑上更紧密的业务信息与过程的连接。另一方面,苛刻的交货期和高品质要求迫使供需链上的企业采用信息技术提高过程的效率和准确性。然而,企业内外存在多个异构、自治、分布的管理系统,而传统的集成方法采用的专用互连方法集成各异构接口引擎,会导致集成成本高、更改难度大,不能满足企业动态易变的集成需要,更不能满足行业化软件易于实施的要求。1. SOA简介SOA是一种软件模型,它可以根据需求,通过网络对松散耦合的粗粒度应用组件进行分布式部署、组合和使用。SOA的关键是“服务”的概念,W3C将服务定义为:服务提供者完成一组工作,为服务使用者交付所需的最终结果。最终结果通常会使使用者的状态发生变化,但也可能使提供者的状态改变,或者双方都产生变化。一个应用程序的业务逻辑或某些单独的功能被模块化并作为服务呈现给消费者或客户端。这些服务的关键是他们的松耦合特性。在SOA架构下,以服务或组件形式出现的业务逻辑可以被共享、重用和配置,各个系统通过标准化的服务接口连接起来。例如,服务的接口和实现相独立。应用开发人员或者系统集成者可以通过组合一个或多个服务来构建应用,而无须理解服务的底层实现。SOA凭借其松耦合的特性,使得企业可以按照模块化的方式来添加新服务或更新现有服务,以解决新的业务需要,提供选择从而可以通过不同的渠道提供服务,并可以把企业现有的或已有的应用作为服务,从而保护了现有的基础建设投资。2. 基于SOA的集成开发框架不同种类的操作系统,应用软件,系统软件和应用基础结构相互交织,这便是IT企业的现状。一些现存的应用程序被用来处理当前的业务流程,因此从头建立一个新的基础环境是不可能的。企业应该能对业务的变化做出快速的反应,利用对现有的应用程序和应用基础结构的投资来解决新的业务需求,为客户,商业伙伴以及供应商提供新的互动渠道。本文基于SOA的基本概念,提出的集成开发框架(图1),用来解决某个应用程序的业务逻辑或某些单独的功能被模块化并作为服务呈现给消费者或客户端。这些服务的关键是他们的松耦合特性。服务的接口和实现相独立。应用开发人员或者系统集成者可以通过组合一个或多个服务来构建应用,而无须理解服务的底层实现。图1 集成开发框架如上图所示,集成框架共分为五个层次,从下往上每层的作用和含义如下:(1)应用层:各种异地异构应用系统。从地域上来说可能是企业内部的系统与一些遗留系统,或是企业与其他企业的一些同类系统。从结构上来说,这些系统彼此间没有接口可供互相调用。(2)构件层:OMG对构件的定义是一个物理的、可替换的系统组成部分,它包装了实现体且提供了对一组接口的实现方法。构件表示了系统实现体的一个物理片段,包括软件代码,例如脚本或命令文件。构件自身必须相容于接口且实现接口,接口表示了驻留在构件内的成分所实现的服务。图中的web服务封装器就是构件,它具有独立发布的功能,能快速且平滑地集成到各种同构或异构的系统,并将应用层系统的部分功能或组件封装成服务向外部提供,也可以通过它的接口访问它的服务。运行时构件是一个可动态绑定的、含一个或多个程序的软件包,它作为一个独立单位,通过运行时可辨别的文档化接口加以管理和存取。(3)服务层:服务层的注册中心将构件层提供的服务注册起来,以便使服务能够被发布、查找和绑定。另外,还可将服务间的组合或互操作的过程写入注册中心。(4)集成层:查找服务层的服务,并根据所需的业务流程,将这些服务重新组合,以实现新业务流程的组装、整合。 (5)表示层:可以将全局流程集成效果在某客户端完全显示出来,供异地企业实时查询。3. 应用解决方案根据上述的业务流程集成的开发框架,设计了一个具体的应用解决方案,通过工作流集成平台集成异构异地的工作流(图2),应用到跨地域、跨组织的异构工作流系统的集成,以满足企业内或企业间无需重构原有业务流程就可以实现工作流集成的需求。该方案基于微软.NET开发平台,采用微软.NET3.0开发技术(WWF),Window2003内置的UDDI和CA实现Web服务注册和PKI,MSMQ及相关程序的开发实现消息队列功能,以及用MapForce映射开发工具协助XML映射程序的开发。3.1. 工作流集成平台设计此方案通过工作流集成平台集成若干个异地异构的工作流(如SAP workflow、 Exchange 2003、Microsoft BIZTALK等)。每个异构工作流都有自己的web服务封装器,负责封装、发送和接收web服务。工作流集成平台有自己的工作流引擎和工作流建模工具(.NET 3.0 WWF:是微软产品及相关应用程序提供的通用工作流设计和开发工具),工作流引擎作为全局引擎,建模工具可以迅速方便地建立全局工作流程。方案采用Window2003内置的UDDI和CA认证中心实现Web服务注册和PKI(公钥基础设施),保证服务异地调用的安全性。图2 工作流集成平台集成异构工作流全局工作流发出的消息由消息队列通过web服务接口依次转发给异构工作流的web服务封装器,操纵异地工作流执行。这样,这些异地异构工作流系统无需做任何改动,就可以通过工作流集成平台和标准构件web服务封装器实现异地的透明互操作。工作流机互操作消息采用Wf-XML标准,消息由封装器进行语义映射和加密后,作为SOAP载荷在互联网上传递。方案采用了开放的分布式应用集成标准和工作流业务标准,屏蔽了异构系统之间的差异 。映射注册中心负责登记互操作接口、接口Wf-XML消息格式、以及消息格式之间的映射关系。映射注册处通过WebService提供查询服务。在设计阶段,流程开发人员注册互操作接口和接口Wf-XML的XSD文件;映射开发人员建立源XSD到目标XSD的映射关系并注册。在运行阶段,消息发送者查询映射注册处,下载所需的映射程序。发送者的本地映射引擎执行映射程序,将源Wf-XML转换为目标Wf-XML,完成消息映射。流程集成平台的开发环境基于微软.NET 3.0 开发平台及WSE3.0。Web Services Enhancements3 for Microsoft .NET (WSE3.0)是对.NET Framework的扩展,它用于创建和使用高级Web服务。WSE支持WS-Security、WS-SecurityPolicy、WS-Trust、WS-Referral、WS-Addressing、WS-Policy等Web服务扩展规范。工作流互操作消息中常常包含重要的业务数据,如采购订单、审批决定等。这些数据失密或被伪造可能带来重大损失,此外互操作消息作为重要的业务凭据也要求保留在日志中。所以,要实现消息安全可靠传递的Web服务封装,对消息进行加密和签名,满足机密性、完整性和抗否认性要求。还要靠可靠的消息传递机制确保分布系统之间的可信赖通讯,并提供日志记录功能,给系统调试和责任追查提供依据。WS-Security规范提供对XML元素加密的能力,满足了消息级安全功能。另外再采用基于X.509证书的PKI和WS-Security规范,以X.509证书对SOAP消息进行加密/解密和签名/认证,可实现安全的SOAP消息调用。WS-ReliableMessaging规范提供了可信赖的消息传递机制。该规范如与本地消息队列相结合还可实现异步、唯一、依序的消息传递,同时还能满足消息日志的要求。另外MSMQ消息队列和WSE3.0过滤器可实现消息处理流水线,微软的WSE3.0为.NET框架提供了对WS-Security和WS-ReliableMessaging等规范的支持,可实现安全可靠的消息传递和消息日志功能。3.2. 构件设计本文设计的Web服务封装器作为标准的构件用来实现工作流机的Web服务封装,通过遵循Wf-XML标准和Web服务协议,并采用消息映射和消息安全技术,屏蔽了工作流机之间的平台异构、互操作API异构、通讯协议异构和数据格式异构,实现了安全透明的互操作。封装器结构见Error! Reference source not found.3。图3 Web服务封装器 Web服务封装器分为通用和专用两部分。结构图中灰色的模块为专用部分,需要根据不同工作流系统的API和消息格式进行定制开发。通用模块与具体工作流系统无关,可以统一开发,在安装时配置参数。封装器各模块介绍如下: (1) Wf-XML适配器通过专用的API接口和通讯协议与工作流机进行交互,并实现Wf-XML所规定互操作逻辑。 (2) XML映射器。虽然Wf-XML的互操作语法和语义是同构的,但通过Wf-XML消息传递的流程业务数据存在着语法和语义异构。XML映射器通过调用映射程序,将互操作消息中的业务数据转化为对方系统能理解的格式,实现异构数据的透明访问。消息映射机制将在后续章节详细说明。 (3) 消息安全模块遵循WS-Security规范,采用X.509证书为安全令牌,对收发的消息进行加密签名解密校验操作。加密解密操作前后的消息都保存到消息日志中,以便于需要时查验。 (4) Web服务接口用来实现基于SOAP的Web服务、Web服务客户端代理和UDDI查询等功能。(5) 封装管理器是一个Web应用,管理人员通过浏览器访问站点,对封装器进行参数设置、监控和管理,如封装器Web服务端口设置、UDDI服务器设置、消息日志查询、证书设置等。封装器原型的核心类类图如4所示。WfListner对象负责接收工作流机的API调用,并进行Wf-XML转换。收到工作流机发出的消息后,该对象建立一个发送流水线,并将消息关联到该流水线,依次完成消息发送操作。WSService对象创建一个Web服务,监听外部系统发送的加密SOAP消息。收到消息后,WSService对象建立一个接收流水线,依次执行SOAP消息到工作流机的消息处理。图4 Web服务封装器核心类类图PipeLine对象用来定义一系列有序的标准操作,同时将被处理的消息Message对象关联到这些标准操作上。原型系统包括4种标准处理器。WfConnEngine的功能是将Wf-XML消息转换为私有API格式,并发送到工作流机;MappingEngine的功能是下载映射程序,执行XML消息映射;SecureEngine的功能是获取安全上下文,进行消息安全预处理、抗重放和权限验证;SecureWSProxy负责对消息进行加密签名并调用其它系统的Web服务。3.3. 映射注册中心设计映射注册处用来集中管理映射关系和映射程序。映射注册处采用ASP.Net开发,利用MSDE或MS SQL2000存储注册信息。注册处提供映射查询和映射程序Web服务,各应用系统封装器中的映射引擎调用Web服务获得所需的映射程序。此外,注册处的Web网站提供了映射注册功能,映射开发人员通过浏览器注册接口格式描述、接口之间的映射关系以及映射程序。映射注册处的结构如图5所示:图 5 映射注册处结构消息映射关系则被用于构件层的服务封装器开发。由于消息映射关系众多,因此将映射程序分散地固化在服务封装器 中既不便于接口的开发,也难以适应流程变化和业务扩展。本方案将映射程序与映射引擎分离,通过映射注册中心对映射程序集中管理,以柔性的体系支持多变的业务环境。注册信息主要分为三部分,注册信息结构见图6:图6 映射注册信息结构(1) 应用系统接口信息。描述参与集成的企业、工作流机、工作流模版和输入/输出接口,及其相互之间的关系。系统以这些信息唯一标示一个接口消息。 (2) 接口消息格式。接口Wf-Xml消息格式以XML Schema标准描述,对一个接口收/发的消息格式进行建模和定义。消息格式由工作流设计人员定义,并保存为XSD文件;映射开发人员基于源格式和目标格式的XML Schema建立映射关系,开发映射程序。 (3) 映射关系。描述一个输出消息格式与一个输入消息格式的映射对应关系,以及实现映射的程序文件名。测试合格的DLL和XSLT通过Web页面上传到映射注册处,映射程序保存在文件系统中,文件名由系统统一编号,以保证映射程序的唯一性。4. 实例验证以某企业的设计更改审批工作流为例,全局工作流运行于其他协作企业的异构工作流系统之上,根据具体的业务流程的定义逐次触发各个协作企业异地工作流系统中的审批流程,流程定义界面见Error! Reference source not found.7。本实例中,全局工作流采用微软的WorkFlow Foundition(WWF)开发,可以迅速方便地建立全局工作流程 ,并可根据流程变化快速修改成新的工作流程。图7 全局工作流定义需要协作企业更改设计时,全局流程向协作企业异构工作流系统发出触发事件的消息,请求启动协作企业的设计更改审批流程,审批任务的相关数据通过Web服务接口发送至异地异构工作流系统的Web封装器, 触发异地异构工作流执行(图8)。图8 异地工作流运行MapForce是Altova公司的企业级数据映射开发工具,该软件简便易用,提供了一个图形化的编辑界面,只需通过拖放操作而无须编程就可建立XML映射映射关系。应用MapForce根据业务要求建立消息映射关系,输出XSLT或C#代码,C#代码被编译为DLL类库。映射程序在XML映射引擎中执行,XSLT程序利用.NET框架的XslTransform类对XML消息执行映射,大大提高了XSLT开发效率。DLL类库用Assembly类动态加载后执行映射MapForce的输出可以是

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论