论文部分内容阅读
随着Internet和电子商务的发展,现代企业业务越来越复杂,业务重组及跨平台等问题给工作流管理系统的发展带来更大的机遇和挑战。目前工作流管理系统大都基于静态过程定义,而现实世界复杂多变,有些业务过程无法事先给出它的完整定义,只能在过程实例的运行中根据运行时的相关数据逐步完善。由于业务变更或重组,在流程实例运行时也可能需要动态地修改流程。如何使工作流管理系统能够适应动态变化的需要,具有良好的柔性,互操作性与可扩展性,成为工作流技术研究的一个热点。2004年3月BEA和IBM的联合白皮书提出了将BPEL与Java结合的技术路线,并命名为BPELJ(Business Process Execution Language for Java),此项技术允许同时使用这两种编程语言来构建业务流程应用。既集成了BPEL很好的Web Services交互能力,又用Java语言填补了BPEL的弱点。通过在流程中嵌入java语言使业务流程能够方便的和非Web Services资源的交互,同时能够方便的操纵数据,实现细粒度的业务逻辑。可以对Web Service和面向服务架构(SOA)提供很好支持。对现有工作流技术进行了深入研究和学习,针对目前工作流产品存在的不足,提出了一个基于BPELJ的动态工作流管理系统。本文主要工作如下:1.针对目前工作流管理系统的动态性问题,分析了工作流系统中可能存在的各种变化,提出了支持动态变化的工作流模型,将事先不能确定或执行过程中可能变更的过程定义推迟到运行时完成。2.系统引进Agent技术和Web服务技术,对传统工作流体系结构进行了扩展,设计了过程扩展代理和web服务代理。在工作流执行过程中,过程扩展代理负责对活动进行扩展和实现动态路由。Web服务代理负责查找和调用封装成WEB服务的业务流程以支持分布的和跨组织的工作流程。过程扩展代理和Web服务代理分担工作流引擎的部分功能,使系统具有良好的动态性和适应性,并对分布式系统提供良好的支持。3.在流程定义和系统执行两个阶段,提出分层的方法,以提高系统对复杂业务的描述和处理能力。4.为了避免过程的重复定义,数据层中增加了公用过程库。公用过程库用于存放有共性的业务过程,从而提高过程的重用性,简化复杂业务过程的定义。5.设计了一个基于BPELJ的动态工作流管理系统。详细讨论了系统的体系结构和工作原理,给出了系统的设计和实现。通过一个实际应用项目:加油站发票管理与统计系统,说明了该系统具有良好的性能。