欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    基于的流程引擎原型的设计与实现Word文档格式.docx

    • 资源ID:7798564       资源大小:88.49KB        全文页数:40页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于的流程引擎原型的设计与实现Word文档格式.docx

    1、 (2)James Gosling, Bill Joy, Guy Steele and Gilad Bracha, The Java language specification third editionM. Addison-Wesley, 2005. (3)Stanley B. Lippman, Jose Lajoie, C+ Primer, 清华大学出版社2003. (4)杨洪波. BPEL4People思想解读J. 软件世界. 2008(11). (5)万露. 基于SOA和BPEL的业务流程管理研究与应用J. 计算机与现代化. 2009(8). (6) (7) (8) 4.本毕业设计(

    2、论文)任务书于 年 月 日发出,应于 年 月 日前完成,然后提交毕业考试委员会进行答辩。 专业教研组(系)、研究所负责人 审核 年 月 日 指导教师 签发 年 月 日毕业设计(论文)评语:毕业设计(论文)总评成绩: 毕业设计(论文)答辩负责人签字: 年 月 日摘 要本文详细介绍了BPEL流程引擎以及流程管理系统的理论知识与应用。由于目前几乎所有BPEL流程引擎核心都是基于JAVA语言编写的,与操作系统底层交互程度较低,运行效率相对地下,在大规模应用上存在一定的不足。而C+语言的主要特质之一就是高效,与操作系统底层交互良好。针对C+语言各自的特点,和目前计算机软件界使用C+开发的流程引擎的空白,

    3、进一步提升流程引擎效率,本文提出了基于C+语言的BPEL流程引擎原型设计方案,并对其进行了实现。流程引擎是运行经过编译的可执行的业务流程语言(通常是BPEL)定义文件的核心部分,其主要三大功能分别是解析业务流程语言定义的活动并运行、支持结构性活动、可以持久化地运行。而其中如何控制处理并发活动、如何持久化运行是流程引擎的设计难点。只有解决了上述两个问题,流程引擎才能真正意义上具备实用价值。本文先对APACHE ODE流程引擎核心(即JACOB)作了深入详尽的研究分析,对其处理并发活动所采用的通信渠道机制和如何处理调度控制的问题进行了详细说明;然后给出了JAVA语言与C+语言的异同,在此基础上指出

    4、使用C+语言开发流程引擎时需要注意的重点,并据此提出了基于C+的使用调用堆栈和BOOST序列化库来实现虚拟处理单元以及整个流程引擎的设计方案和实现。成品测试表明,使用C+开发BPEL流程引擎是完全可行的,整合了其余组件后能够实现完整的流程管理系统,其实际运行情况令人满意。C+在Web时代依然有着很强的生命力,使用C+开发的流程引擎应当有广阔的发展前景。关键词:业务流程执行语言,业务流程引擎,虚拟处理单元AbstractThis paper briefly introduce the theories and applications about BPEL process engine and

    5、Business Process Management Systems. Since almost all BPEL engine is based on JAVA language, which do not have good performance with the underlying operating system and low efficiency. And they may cost a certain problem while running large-scale applications as a result. As long as we know, C + + i

    6、s a language with the main characteristics of high efficiency, and it make good interaction with the underlying operating system. To further improve the efficiency of process engine using the characteristics of C+ language, we put forward a project of BPEL process engine using C+ language.Process en

    7、gine is the core component that can execute compiled runnable BPEL files. Its three main functions are execute activities defined by BPEL, Persistence of execution state and Concurrency. There into, how to implement to persistence of execution state and how to control concurrency are two big problem

    8、s while designing process engine. Only solve these two problems, can our engine be worthiness.This article first analyzes APACHE ODE engine core (that is, JACOB) in detail, interpret the channel communication mechanisms of JACOB which is using to solve concurrency problem. And then, shows the import

    9、ant points of designing C+ process engine and our solutions which use stack and Boost serialization to design VPU, by giving the similarities and difference between JAVA and C+ + language. Final test showed that the BPEL process engine developed by C+ is entirely feasible and can easily completely a

    10、rchive a management system after integrated the remaining components, which is satisfied. As far as we can concern, C+ still has a strong vitality in the Web area, and the process engine basis on it should have broad prospects in commerce. Keyword: BPEL, Process engine, VPU绪论研究背景和意义什么是业务流程业务流程可以被定义为

    11、一个由各种不同功能的活动相连的一组有相互关系的任务,它们依照一定的业务逻辑和顺序依次执行。业务流程有起点和终点,而且它们都是可重复的。业务流程是企业实现商务目标的方法。对于企业而言,业务流程是企业重要的知识资产,是企业的核心竞争力的体现,一个精心设计和执行的业务流程能够为企业创造价值并节约成本。在着名作家佛里德曼对经济全球化有着精彩的论述,它描绘了一个由互联网、通信基础设施和新型软件搭建的全球舞台;在这个舞台上,人们能够以多种方式分享知识、劳动、娱乐和发现,并且创造新的商业机会。“如今沃尔马是美国最大的公司,然而它什么也不生产,只是建立了这个非凡的供应环节,从世界各地进口非常便宜的商品并把世界

    12、各地的产品送到消费者手里。它是一个全球组装线。”世界是平的:21世纪简史1。在经济全球化的过程中,企业的边界变得模糊,企业会将任务分解为一系列的子任务,企业只关注于自己的核心竞争力所在,并将其他工作分包给最合适的人来完成。企业需要通过业务流程将这些片断有机地组织在一起。在这里我们可以深刻地认识到业务流程对企业的重要性2。信息化产业中由此诞生了业务流程管理系统,其核心部分就是流程引擎。定义业务流程并对其做出文档所花费的时间和努力是完全值得的。在一个反映中国传统医学的电视剧中,当配置药剂的时候,掌柜把自己反锁在药房里,只有他会根据“秘方”将不同的药材调配成救死扶伤的灵药。然而只有他一人掌握这个过程

    13、是非常危险的。对于现代企业来说这更是不可能的,我们不可能只让配件制造主任了解企业的配件制造知识,然后让他每晚独自装配所有的零件。只要定义了配件制造业务流程,配件制造工人可以随时来去,而且任何配件制造工人都可以随时取代另一个人的工作,这是因为工厂里的所有配件制造工人都理解并遵循业务流程。我们可以学习、改变、评估,然后再次改变配件制造业务流程,因为该流程对于每个人都是可见的,而非局限于配件制造主任。现代业务流程管理系统的历史可以追溯到工作流系统2。业务流程管理系统是自本世纪初以来企业信息技术应用(信息化)背景上最重要和活跃的概念之一。它有两方面的基本含义或理解背景。一方面是企业管理,一方面是企业应

    14、用(软件、系统)。综合而言,它是典型的,在企业应用强力推动下产生的跨管理与信息技术领域的流行概念之一。从管理的角度,它可以看作是业务流程再造(BPR)所带来的以业务流程为中心的管理思想的延续与发展;从企业应用角度,它是在工作流(Workflow)等技术基础上发展起来的,基于业务流程建模,支持业务流程的分析、建模、模拟、优化、协同与监控等功能的新一代企业应用系统核心。简单地来讲,工作流定义了业务流程中的参与者(Who)、所执行的工作(What)及何时执行(When)。在企业IT环境中,工作流软件通常与企业应用集成(Enterprise Application Integration, EAI)系

    15、统结合在一起,成为企业应用的“黏合剂”,实现业务流程的自动化和流水线化2。传统工作流系统的最大缺陷就是:它们大多采用了专有技术。这使得业务流程与企业应用的结合变得非常复杂,通常需要很长时间进行部署和实施,而与企业外部系统进行集成则更加困难,无法适应全球化浪潮和互联网时代对企业灵活、无缝集成的需求。人们开始考虑利用Web服务的开放性和标准化,来解决业务流程与企业应用之间的互操作性问题。2002年7月,IBM、微软、BEA提交了Business Process Execution Language for Web Services(BPEL4WS)的规范。业务流程执行语言基于XML和Web服务技术

    16、,它融合了早期的IBM的Web Services Flow Language(WSFL)及微软的XLANG规范的很多特点。随后许多主要供货商如SAP和Siebel(已被Oracle并购)等公司陆续加入规范的制定,并催生了多项修改和改进,并于2003年3月发布了版。2003年4月,BPEL被提交结构化信息标准促进组织(OASIS)以实现标准化,并组建了Web服务业务流程执行语言技术委员会(WSBPEL TC),该努力使BPEL在业界获得更为广泛的认可。目前该技术委员会正在致力于下一代规范的制定工作,并将该规范重命名为WS-BPEL 。虽然除BPEL之外还有一些业务流程规范,但是到目前为止,BPE

    17、L是最为成熟和被广泛支持的技术6,13,14。“万维网其共通之标准让网络的应用软件沟通无碍1”随着全球经济一体化,社会分工更加的细致,业务流程管理系统的应用广度与深度将越来越大。通过研究、探索其核心部分,有助于提高笔者对新世纪计算机软件技术发展和现代企业软件的认识。国内外研究现状目前国外流行的流程引擎主要有以下几种15:OSWworkFlow:是完全用java语言编写的开放源代码的工作流引擎,具有显着的灵活性及完全面向有技术背景的用户的特点。用户可以根据自身的需求利用这款开源软件设计简单或是复杂的工作流。JBPM:全称是Java Business Process Management(业务流程

    18、管理),它是覆盖了业务流程管理、工作流、服务协作等领域的一个开源的、灵活的、易扩展的可执行流程语言框架。JBPM是公开源代码项目,它使用要遵循 Apache License,其最大的特色就是它的商务逻辑定义没有采用目前的一些规范,如WMC、XPDL、BPML、ebXML、BPEL4WS等,而是采用了它自己定义的JBoss jBPM Process definition language (jPdl)。jPdl认为一个商务流程可以被看作是一个UML状态图。jPdl就是详细定义了这个状态图的每个部分,如起始、结束状态,状态之间的转换,过图型化的流程定义,直观地描述业务流程。APACHE ODE (

    19、Orchestration Director Engine):是基于Java 的开源WS-BPEL(简称BPEL) 引擎, 它于2007 年7 月18 日从Apache 的孵化器中诞生成为一个顶级项目。它的主要功能就是执行使用BPEL 描述的业务流程,实现业务流程自动化,它支持长期运行和短期运行的过程。WebSphere Process Server 基于 WebSphere Application Server 和 WebSphere Enterprise Service Bus,它为面向服务的体系结构 (SOA) 的模块化应用程序提供了基础,并支持应用业务规则,以驱动支持业务流程的应用程序

    20、。除此之外还有BEA AquaLogic、Oracle BPEL Process Manager、IONA Artix Orchestration、ActiveBPEL、Intalio BPMS、Microsoft BizTalk Server等等。在国内,主要是使用上述几个引擎做扩展、应用,研究流程引擎核心的团体、组织、个人非常少。同时,目前所有的商业流程引擎或开源流程引擎均使用Java或C#实现。之所以没有使用C+实现的BPEL引擎,主要有三个原因:第一,一般的电子商务应用,主要是在较底层的ESB上提高性能,而不是处于上层的BPM;第二,各大厂商为了使他们生产的产品系列配套,根据其原有产品

    21、基础来设计实现BPEL引擎;第三,开源项目实际上也是各大厂商主导推动,为其产品的改进提供活跃技术支持的,因此采用与其产品相关的结构。而C+语言相对其他语言具有性能上的优势,因此本设计将采用C+语言来实现BPEL引擎,进一步提高BPEL引擎的性能。应解决的主要问题及应达到的技术要求BPEL引擎主要功能是执行业务流程,是BPM架构的核心,其设计好坏、效率高低直接影响到整个BPM的性能高低。2,16BPEL引擎的主要功能是提供BPEL流程的部署和运行环境。对于部署在BPEL引擎上的业务流程,首先解析流程文件生成数据对象结构,然后将数据对象结构序列化并保存。执行流程的时候,将已保存的数据对象结构反序列

    22、化,并根据流程中的结构和活动执行相应的操作,必要时将变量和流程执行状态持久化。执行流程时,BPEL引擎在与服务的交互过程中扮演了两种角色:服务消费者和服务提供者,区别在于BPEL引擎是作为交互消息的发起者或被发起者。交互的消息类型有In-Only和In-Out两种,区别在于是否需要返回结果。实现BPEL引擎时应该注意这些区别。BPEL引擎的核心BPEL运行时,在执行流程中需要解决两个主要的问题:第一,如何表达流程执行状态,方便需要的时候挂起当前状态,等待重新启动。特别是对于需要长期运行的流程,如果能够随时将流程当前执行状态通过数据持久化机制挂起保存,则可以避免进入长等待时由于出现系统故障而丢失

    23、流程执行状态,无法恢复。第二,如何解决流程执行并发性管理问题。一般来说,创建一个流程实例都应该新建一个线程来执行。流程本身也支持并发操作flow,常规做法是为流程内的并发操作新建线程执行。由于流程内并发操作数量不可知,有可能出现线程泛滥甚至系统崩溃12。好的做法应该是将并发性管理建立在每个流程实例占用单个线程的基础之上,避免创建过多的线程而带来的线程调度对系统性能的影响。本文组织结构本文第一章介绍了选题的背景和意义。第二章将阐述与本课题相关的计算机软件知识,提出本课题需要解决的关键问题。第三章与第四章将说明设计原理并进行方案选择。其中第三章将详细分析讲解Apache ODE流程引擎的核心部分,

    24、第四章将通过对JAVA语言和C+语言的对比说明设计原理并提出方案,阐明选择这个设计方案的理由以及所采用方案的特点。第五章与第六章将分点详细论述设计,并进行结果分析。其中第五章将致力于解决如何表达流程执行状态的问题;第六章将结合第四章详细阐述基于C+的BPEL引擎的设计与实现,致力于解决如何流程执行并发性管理问题。第七章将对整个研究工作进行归纳和综合,阐述本课题研究中尚存在的问题及进一步开展研究的见解和建议。第二章 BPEL理论概述 BPEL语言理论知识BPEL全称是业务流程可执行语言,用于描述业务流程。流程由一系列活动组成;通过作用域定义变量、合作伙伴链接、相关集和事件响应处理逻辑等;通过合作

    25、伙伴链接定义与流程交互的其他服务;流程可以是有状态的长时间运行过程,并且一个流程可以同时存在多个实例,流程引擎通过相关集将一条消息关联到特定的流程实例。以上是BPEL描述业务流程的基本情况,下面详细介绍OASIS制定的标准中定义的各个元素,以便加深大家对BPEL的理解。6,14 BPEL语言的作用域作用域Scope提供影响其内部活动执行结果的上下文环境,包括变量Variable,合作伙伴链接PartnerLink,消息交互MessageExchange,相关集CorrelationSet,事件处理EventHandler,异常处理FaultHandler,补偿处理CompensationHan

    26、dler和终止处理TerminationHandler。作用域上下文环境可以多层次嵌套,父作用域中定义的环境在子作用域中可见。每个流程的根节点Process实际上就是一个顶层作用域。Process和Scope语法上是一致的,但是他们有以下三点区别:Scope是一个活动而Process不是,活动的标准属性和成员在Process中不适用;Scope中包含补偿处理和终止处理而Process中不允许包含;Scope中特有的isolated隔离属性在Process中不适用。尽管Process和Scope有所区别,但BPEL引擎中对他们的处理基本上是一致的,可以认为Process是一个特殊的Scope。每

    27、个Scope都包含一个主活动,定义该作用域的业务逻辑,这个活动可以是一个复杂的拥有任意层次嵌套的结构化活动。其他上下文环境相关成员是可选的。BPEL对Scope的处理效率由主活动的处理效率决定。 BPEL活动的标准属性和成员在BPEL标准定义的各种元素中,BPEL活动用于表示流程的业务逻辑,可分为基础活动和结构化活动两种类型。基础活动描述流程业务的单个步骤实现,结构化活动则编码控制流逻辑,能递归的包含其他基础活动或者结构化活动。业务流程的执行实际上是BPEL活动的执行,其他元素只是提供辅助BPEL活动实际执行过程中所需的资源。根据BPEL标准提供的各种基础活动和结构化活动的多层次嵌套,可以定义

    28、任意复杂的业务逻辑,从而实现所需的业务功能。BPEL引擎对活动的解析和执行效率决定了BPEL引擎的效率。每个活动都包含两个标准的可选属性,name和suppressJoinFailure。name属性指定流程中各个活动的机器可读的命名,用于区分不同的活动。suppressJoinFailure是在并发处理的Flow活动执行中定义是否屏蔽接合活动异常,具体详见Flow活动。每个活动都包含两个可选容器,sources和targets,分别存储标准成员source和target。source和target用于通过Flow活动中的Link元素确定并发处理的活动的同步关系,每个Link对应一个sourc

    29、e活动和一个target活动,规定了在source活动执行结束之后,才允许target活动开始执行,保证了并发执行的活动中部分活动的同步关系。具体详见Flow活动中的Link元素。2.1.3 BPEL基础活动(1) Invoke调用Web服务操作Invoke活动用于调用服务提供者提供的Web服务,典型的应用是调用Web服务上的一个操作。Invoke可以在其补偿处理和异常处理中内联其他的活动。根据WSDL文件的定义,操作可以是请求响应或者单向调用。BPEL标准对两种方式的调用使用相同的语法,单向调用方式只需提供输入变量或者输入输出变量都不提供,而请求响应方式需要同时提供输入变量和输出变量。(2)

    30、 Receive和Reply提供Web服务操作Receive和Reply活动用于业务流程为其合作伙伴提供服务。Receive等待合作伙伴发送请求消息,并根据createInstance属性决定是否创建流程实例。流程启动活动包括Receive和Pick两种,流程必须以启动活动开始,其他活动控制依赖于启动活动,否则流程将无法执行。Receive是一个阻塞活动,只有流程实例接收到一个匹配的消息该活动才会结束。Reply用于发送响应消息给之前通过Receive活动等接收的请求。这种响应只对请求响应交互方式有意义。(3) Assign更新变量和合作伙伴链接Assign活动用于从一个变量到另一个变量复制数

    31、据,或者使用表达式操作变量、属性和常量来构造和插入新的数据,或者在合作伙伴链接之间复制端点引用。(4) Throw抛出内部异常Throw活动用于显式抛出内部异常。Throw必须提供异常的名称,可选的提供更多异常相关信息,对应的异常处理可以利用这些信息处理异常,并发布异常消息到需要的其他服务。(5) Wait延迟执行Wait活动用于指定一段特定时间的延迟或者直到某个期限到来,当指定时间已过或者某个期限到来时,Wait活动马上结束。(6) Empty什么事都不做Empty活动并不做任何事,但有些场合往往需要这样一个活动,比如一个异常需要被捕获或者禁止。Empty活动的另一个用途是在并发的Flow活动中提供一个同步点。(7) ExtensionActivity增加活动类型E


    注意事项

    本文(基于的流程引擎原型的设计与实现Word文档格式.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开