中国科学技术大学工程硕士研究生学位论文开题报告论文题目:基于BPEL的工作流引擎设计与实现学生姓名:学校导师:张曙企业导师:董向智工程领域:软件工程领域代码:430113研究方向:软件系统设计所在单位:软件学院中国科学技术大学研究生院填表日期:2014年11月4日2说明1.工程硕士学位论文的开题报告是保证论文质量的一个重要环节,为了加强对工程硕士研究生培养的过程管理,规范其学位论文的开题报告,特制此表。2.工程硕士学位论文开题报告,应该在工程硕士学位授予点或培养单位组织的学术报告会上报告,听取意见,论证后再填写此表。3.此表一式两份经导师和培养单位负责人签字后,交培养单位研究生教学管理办公室存档。4.工程硕士研究生在申请学位论文答辩时,必须提交该学位论文开题报告。3一、简况研究生简况学号姓名姓名拼音性别男身份证号出生年月工程领域软件工程研究方向软件系统设计入学时间2012.9录取方式自主招生培养方式在职本科毕业时间2005.7本科毕业学校哈尔滨工业大学论文类型与性质名称中文基于BPEL的工作流引擎设计与实现英文TheDesignandImplementofaWorkflowEngineBasedonBPEL类别1.技术攻关研究2.工程项目策划√3.工程设计或技术改造4.新工艺、新材料、新设备、新产品的研制与开发形式√1.工程设计2.研究论文性质1.应用技术研究√2.技术开发论文内容和意义摘要在高度自动化的生产线控制系统中,有着非常复杂的控制流程,而采用传统方式设计的系统中,这些控制流程和业务逻辑是混合在一起的,系统灵活性差,变更控制流程时往往需要进行软件更新,为系统的运营维护和扩展带来极大的困难。工作流技术作为一种实现流程自动化的技术在企业办公自动化、系统集成、应用软件内部流程驱动等方面都有着广泛的应用,它有效的实现了控制流程和业务逻辑的分离,可以很好的应对流程的变化。工作流技术从产生至今,出现了很多的规范和标准,但是主要应用于业务流程的定义和表现,近年来随着SOA技术的发展而出现的BPEL工作流定义规范因其良好的可执行性使得工作流自动化变得更加容易。本文旨在利用工作流技术,基于BPEL流程定义语言设计和实现一个轻量级的工作流引擎,以期其作为自动化生产线控制系统的驱动内核,通过对系统结构的重构实现控制流程和业务逻辑的分离。论文的研究成果为生产线自动化系统的结构改善提供了具有针对性的解决方案,同时也为其他系统的结构设计提供了参考性建议。主题词主题词数量不多于三个,主题词之间空一格(英文用“/”分隔)中文自动化工作流引擎BPEL英文Automation/WorkflowEngine/BPEL4二、选题依据1.阐述该选题的研究意义,或工程设计的价值和意义,国内外概况和发展趋势,选题的先进性和实用性,技术难度及工作量。1.1选题的研究意义在全自动化的生产线控制系统中,有着非常复杂的控制流程,而在传统的系统设计中,这些控制流程和业务逻辑是混合在一起的,即使采用了组件式的设计,仍然需要“胶水”代码[1]将业务逻辑结合到一起运行。这样的方式使得系统的控制流程分散在系统的各个部分,为系统的后续维护和扩展带来了很大的困难。而企业为了应对不断变化的市场环境,经常需要对控制流程做出调整,对系统的灵活性有着很高的要求,因此如何有效的分离系统的控制流程和业务逻辑,实现流程的可视化和标准化管理,增强系统的灵活性和可维护性,是迫切需要解决的问题。工作流技术作为一种实现流程自动化的技术在企业办公自动化,系统集成以及应用内部流程驱动方面都有着广泛的应用[2]。它有效的实现了控制流程和业务逻辑的分离,可以很好的应对流程的变化。在应用系统的设计中,引入工作流引擎作为系统的驱动核心,按照定义的流程文件,对业务逻辑组件进行编排执行,从而实现控制流程,可以大大简化系统结构,同时实现了流程的灵活管理,增强了系统的可扩展性和可维护性。工作流技术从产生至今,出现了很多的规范和产品,但是主要集中在企业办公自动化领域,作为应用系统驱动内核的工作流引擎产品很少,而且一般都是嵌入在别的应用系统中的,通用性较差。近年来随着SOA(ServiceOrientedArchitecture)技术[3]的发展,基于BPEL(BusinessProcessExecutionLanguage)[4,5]的工作流技术和产品因其良好的可执行性逐渐成为了主流。但是其主要的目的是为了系统间集成,所以引入了WebService技术[3],几乎所有的BPEL工作流引擎产品为了与标准兼容,都实现了WebService。WebService技术对于系统间的服务调用是合适的,但对于应用内部的业务逻辑组件的调用,则显得多余,而且WebService的开销大,对于生产线控制这样对实时性要求很高的系统是不合适的。所以直接利用现有的产品比较困难,而利用BPEL规范定义良好的体系结构,在考虑具体应用环境的基础上进行适当剪裁,设计一个轻量级的工作流引擎,作为自动化生产线控制系统的驱动核心,对系统结构进行改造,从而实现控制流程和业务逻辑的分离,提高系统的可维护性和可扩展性是一个值得研究的课题。1.2国内外概况和发展趋势1.2.1工作流的定义5工作流技术经过了几十年的发展,但是到目前为止还缺乏一个统一的定义,不同的研究者和工作流产品供应商从不同的角度给出了工作流的定义。工作流技术的标准化组织工作流管理联盟(WfMC)给出的工作流的定义[6]为:工作流就是一类能够完全或者部分自动执行的经营过程,它根据一系列过程规则,文档、信息或人物能够在不同的执行者之间进行传递与执行。1.2.2工作流技术的起源和发展历史工作流技术发端于1970年代中期办公自动化领域的研究工作。1970年代ZISMAN在他的原型系统SCOOP中描述了使用信息系统来支持组织流程的思想,该系统采用Petri-nets来表达流程。1975~1985间对于办公自动化的研究成爆发型的增长,奠定了工作流技术在管理流程领域工业化应用的基础。1980年代末兴起了对群件技术和工作流技术的研究,1990年代伴随着全面质量管理,流程改进,业务流程革新,业务流程重组等基于流程的最佳实践的推广和实施,工作流技术的发展也迎来了繁荣发展的时期[2,7]。1993年8月,工作流技术标准化的工业组织-工作流管理联盟(WfMC)成立。1994年,工作流管理联盟发布了用于工作流管理系统之间互操作的工作流参考模型,并相继制定了一系列工业标准。关于工作流技术的学术研究也十分活跃,许多原型系统在实验室里开发出来,人们从工作流模型、体系结构、事务、适应性、异常、安全、语言、形式化、正确性验证、资源管理、开发过程等各方面对工作流技术进行探讨。进入2000年以后,随着Web服务技术的兴起,多个标准化组织制定了各自和工作流技术相关的Web服务标准,如XLANG,WSFL等。2002年8月,IBM,Microsoft为等企业联合提交并发布了BPEL4WS规范,2007年4月11日,OASIS发布了WS-BPEL2.0标准。各类支持BPEL的产品也如雨后春笋般出现,对于工作流技术的研究和应用进入了一个新的热潮时期。尽管工作流技术的研究和应用取得了进步,但理论基础的研究还很不够。现有的工作流管理系统从功能、可靠性、健壮性上与数据库管理系统仍无法相提并论[7]。1.2.3工作流技术的应用目前的工作流技术主要应用于三个领域:办公自动化,系统集成,工作流驱动的应用软件[2]。办公自动化领域是工作流技术的发源地,应用非常广泛,目前几乎所有的办公自动化产品都支持工作流,其他的业务系统如ERP等大多也包含工作流管理的功能。其应用的目的主要是为了实现业务流程的自动化,例如企业的订货处理,财务审批,政府的行政审批,公文流转等。流程的自动化大大提高了业务处理的效率,降低了业务成本和风险,为应用领域带来了巨大的收益。该领域的产品往往都是基于特定的应用需求进行定制开发的,因而是和业务系统紧密结合在一起的,缺乏通用性。6工作流技术应用于系统集成领域是随着信息技术的快速发展和应用而兴起的。传统的企业组织架构都是基于职能部门的,随着信息技术在企业的广泛应用,各个职能部门往往都使用一些信息系统用于业务的处理,这样在企业中往往同时存在很多为各种目的而使用的系统,各系统由于投入使用的时间不同,厂商不同,技术平台不同等各种障碍难以进行集成。然而进入新世纪以来,随着市场竞争的加剧,企业为了提高竞争力需要不断的优化自身的业务流程,进行业务流程重组。新的业务流程需要打通部门间甚至关联业务伙伴企业之间的沟通的壁垒,同时也需要各部门,各业务伙伴企业的系统间能够协同工作。这种系统间集成的需求推动了系统集成技术的发展,WEB服务技术的出现为跨系统,跨平台的系统集成提供了一种很好的解决方案,也催生了基于WEB服务的工作流技术,基于BPEL工作流定义语言的工作流技术得到了各大主流厂商的支持,大部分的产品都宣称兼容BPEL标准。工作流技术用于驱动软件流程并没有引起足够的关注,因为工作流技术从产生到现在,主要服务于业务流程处理,针对开发人员的工作流技术应用并不多见[1,8]。目前工作流驱动的应用软件主要存在于自动化程度较高的应用领域,如自动化生产流水线控制,自动任务处理等领域。其应用领域具有一些特殊性,即应用软件的运行根据事先定义好的策略进行自动运行,具有自适应性,运行的过程中往往不需要人的干预,只有在发生异常情况时才需要人为的处理。这类产品往往与特定的领域相关联,通用性不强,也往往被作为自动控制软件而不划入工作流技术产品的范畴。还有一些业务规则引擎其实也包含工作流的功能,例如ILOGJRules中就有Flow控制的功能。目前这一领域的研究和应用还不成熟,缺乏领域独立的产品,但是随着工作流技术的发展,特别是可执行的工作流技术的发展,将工作流技术引入应用软件的结构设计中,进而简化应用系统设计,提供系统的可理解性,灵活性和可维护性,具有良好的应用前景,本课题正是在该领域中的一个研究尝试。1.2.4流程定义语言规范工作流技术相关的标准中,最重要的就是流程定义语言规范,因为工作流是基于流程定义语言定义的规则进行运行的。目前的流程定义语言规范很多,但总体上可以分类两类:基于标准XML文档的规范和基于WEB服务的技术规范[9]。基于标准XML文档的规范,包括:1)XPDL[10](XmlProcessDefinitionLanguage)1994年11月,WfMC发布了工作流管理系统的参考模型。参考模型提出了五类接口,有关过程模型的定义则构成了接口一的核心内容。接口一早期的标准为WPDL(WorkflowProcessDefinitionLanguage),后来这一接口的规范变更为XPDL。XPDL是至今工作流领域最为重要的一7个标准,目前最新版本为2.2。大多数工作流引擎是依据该标准设计开发的。2)BPML[11](BusinessProcessModelingLanguage)BPML是BPMI(BusinessProcessManagementInitiative)组织发布的规范。WfMC和BPMI在2002年6月26日宣布将合作制定业务流程和工作流标准,即采用BPML来描述工作流过程,同时采用XPDL所定义的工作流模型。BPML规范为表达业务流程和支持实体提供一个抽象模型。BPML为表达抽象和执行流程定义了一种正式模型,该模型代表了企业业务流程的面貌,包含了不断变化的复杂行为,事务和数据管理,合作,异常捕获,操作语义。BPML为了能够持久化和通过异种系统进行定义交换以及使用建模工具,提供了XMLSchema形式的语法。现在,曾提出BPML语言的BPMI已经放弃对其的支持,转而推广BPEL。3)WfMF[12](WorkflowManagementFacility)在WfMC所定义的一系列规范基础上,OMG(ObjectManagementGroup)联合这些规范发布了WorkflowManagementFacility规范,该规范定义了如何将工作流向CORBA转换。