本科毕业设计(论文)说明书基于C++的BPEL流程引擎原型的设计与实现学院软件学院专业软件工程学生姓名指导教师提交日期2009年6月3日华南理工大学毕业设计(论文)任务书兹发给班学生毕业设计(论文)任务书,内容如下:1.毕业设计(论文)题目:基于C++的BPEL流程引擎原型的设计与实现2.应完成的项目:(1)2009年4月10日前拟定提纲并提交开题报告(2)2009年5月25日前完成论文初稿(3)进行基于C++的BPEL引擎原型的设计与开发(4)参考外文文献资料并提交外文翻译译文3.参考资料以及说明:(1)杨开诚.数据结构[M].电子工业出版社.2008(9).(2)JamesGosling,BillJoy,GuySteeleandGiladBracha,TheJavalanguagespecificationthirdedition[M].Addison-Wesley,2005.(3)StanleyB.Lippman,JoséeLajoie,C++Primer,清华大学出版社2003.(4)杨洪波.BPEL4People思想解读[J].软件世界.2008(11).(5)万露.基于SOA和BPEL的业务流程管理研究与应用[J].计算机与现代化.2009(8).(6)APACHEODE.(7)Jacob.(8)BoostSerialize.本毕业设计(论文)任务书于年月日发出,应于年月日前完成,然后提交毕业考试委员会进行答辩。专业教研组(系)、研究所负责人审核年月日指导教师签发年月日毕业设计(论文)评语:毕业设计(论文)总评成绩:毕业设计(论文)答辩负责人签字:年月日I摘要本文详细介绍了BPEL流程引擎以及流程管理系统的理论知识与应用。由于目前几乎所有BPEL流程引擎核心都是基于JAVA语言编写的,与操作系统底层交互程度较低,运行效率相对地下,在大规模应用上存在一定的不足。而C++语言的主要特质之一就是高效,与操作系统底层交互良好。针对C++语言各自的特点,和目前计算机软件界使用C++开发的流程引擎的空白,进一步提升流程引擎效率,本文提出了基于C++语言的BPEL流程引擎原型设计方案,并对其进行了实现。流程引擎是运行经过编译的可执行的业务流程语言(通常是BPEL)定义文件的核心部分,其主要三大功能分别是解析业务流程语言定义的活动并运行、支持结构性活动、可以持久化地运行。而其中如何控制处理并发活动、如何持久化运行是流程引擎的设计难点。只有解决了上述两个问题,流程引擎才能真正意义上具备实用价值。本文先对APACHEODE流程引擎核心(即JACOB)作了深入详尽的研究分析,对其处理并发活动所采用的通信渠道机制和如何处理调度控制的问题进行了详细说明;然后给出了JAVA语言与C++语言的异同,在此基础上指出使用C++语言开发流程引擎时需要注意的重点,并据此提出了基于C++的使用调用堆栈和BOOST序列化库来实现虚拟处理单元以及整个流程引擎的设计方案和实现。成品测试表明,使用C++开发BPEL流程引擎是完全可行的,整合了其余组件后能够实现完整的流程管理系统,其实际运行情况令人满意。C++在Web时代依然有着很强的生命力,使用C++开发的流程引擎应当有广阔的发展前景。关键词:业务流程执行语言,业务流程引擎,虚拟处理单元IIAbstractThispaperbrieflyintroducethetheoriesandapplicationsaboutBPELprocessengineandBusinessProcessManagementSystems.SincealmostallBPELengineisbasedonJAVAlanguage,whichdonothavegoodperformancewiththeunderlyingoperatingsystemandlowefficiency.Andtheymaycostacertainproblemwhilerunninglarge-scaleapplicationsasaresult.Aslongasweknow,C++isalanguagewiththemaincharacteristicsofhighefficiency,anditmakegoodinteractionwiththeunderlyingoperatingsystem.TofurtherimprovetheefficiencyofprocessengineusingthecharacteristicsofC++language,weputforwardaprojectofBPELprocessengineusingC++language.ProcessengineisthecorecomponentthatcanexecutecompiledrunnableBPELfiles.ItsthreemainfunctionsareexecuteactivitiesdefinedbyBPEL,PersistenceofexecutionstateandConcurrency.Thereinto,howtoimplementtopersistenceofexecutionstateandhowtocontrolconcurrencyaretwobigproblemswhiledesigningprocessengine.Onlysolvethesetwoproblems,canourenginebeworthiness.ThisarticlefirstanalyzesAPACHEODEenginecore(thatis,JACOB)indetail,interpretthechannelcommunicationmechanismsofJACOBwhichisusingtosolveconcurrencyproblem.Andthen,showstheimportantpointsofdesigningC++processengineandoursolutionswhichusestackandBoostserializationtodesignVPU,bygivingthesimilaritiesanddifferencebetweenJAVAandC++language.FinaltestshowedthattheBPELprocessenginedevelopedbyC++isentirelyfeasibleandcaneasilycompletelyarchiveamanagementsystemafterintegratedtheremainingcomponents,whichissatisfied.Asfaraswecanconcern,C++stillhasastrongvitalityintheWebarea,andtheprocessenginebasisonitshouldhavebroadprospectsincommerce.Keyword:BPEL,Processengine,VPUi目录摘要..............................................................................................................................................IAbstract..........................................................................................................................................II第一章绪论.................................................................................................错误!未定义书签。1.1研究背景和意义.......................................................11.2国内外研究现状.......................................................21.3应解决的主要问题及应达到的技术要求...................................31.4本文组织结构.........................................................4第二章BPEL理论概述..............................................................................................................52.1BPEL语言理论知识....................................................52.1.1BPEL语言的作用域................................................................................................52.1.2BPEL活动的标准属性和成员................................................................................52.1.3BPEL基础活动........................................................................................................62.1.4BPEL结构化活动....................................................................................................72.1.5其他结构化活动.......................................................................................................72.2本章小结.............................................................8第三章关于ApacheODE流程引擎的研究.............................................................................93.1ApacheODE结构总览..................................................93.1.1为什么选择参考ApacheODE流程引擎..............................................................93.1.2ODEBPEL编译器.................................................................................................103.1.3ODEBPEL引擎运行时.........................................................................................103.1.4OD