毕业设计 基于JBPM工作流引擎的OA系统设计与实现_第1页
毕业设计 基于JBPM工作流引擎的OA系统设计与实现_第2页
毕业设计 基于JBPM工作流引擎的OA系统设计与实现_第3页
毕业设计 基于JBPM工作流引擎的OA系统设计与实现_第4页
毕业设计 基于JBPM工作流引擎的OA系统设计与实现_第5页
已阅读5页,还剩56页未读 继续免费阅读

下载本文档

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

文档简介

1、本本 科科 生生 毕毕 业业 论论 文文 题 目:基于基于 jbpm 的的 oa 系统设计与实现系统设计与实现 摘要摘要 本文课题来源于公司的 oa(office automation,办公自动化)项目,该项目采 用 j2ee(java 2 enterpise edition,java 平台企业版)技术和工作流技术进行开发。 本文首先介绍了 oa 系统的整体需求说明,列出了各部分功能模块。其中包括: 个人办公、模板管理、车辆管理、信息中心、资料管理。随后本文提出了系统分层 开发的整体架构,包括:数据持久化层、业务逻辑层、web 应用层。其中,逻辑应 用层部署在应用服务器端,web 应用层部署在

2、 web 服务器端,之间通过 java rmi(java remote method invocation,java 远程方法调用)进行通信。通过对系统 整体需求的分析,本文分析归纳出了对工作流模块的具体功能要求,并列举出了工 作流模块的主要应用场景,包括:发文流程、出车流程、资料借阅流程。 作者在论文中深入研究了 jbpm(java business process management,java 工 作流管理系统)工作流引擎技术的基础上,剖析了 jbpm 引擎的架构,并提出了把 jbpm 引入当前系统的解决方案。同时本文也指出了引入 jbpm 的优势以及将面临的 问题,并给出了问题的解决方

3、案,主要包括业务、流程数据的存储方式选择以及系 统工作流模块开发方式的选择。 作者按照软件工程中的开发模式,从模块设计到模块实现,把 jbpm 的 api(application programming interface,应用程序编程接口)封装成为系统的工 作流模块,并给出了模块的测试和运行效果。同时本文也给出了 oa 系统其他模块的 设计、实现、测试及运行。在工作流模块中,本文给出了流程实例的动态执行流程 图显示算法,包括应用服务器端生成流程图的结构信息和动态执行信息以及 web 层 的逻辑控制和页面显示。在测试过程中,本文实现了方便用于单元测试的工具类, 用于提供一个没有干扰项数据的测试

4、环境,降低测试中的复杂性。作者在本系统开 发中使用了大量的开源工具,并在附录中给出了各种工具基于的开源许可协议。 关键词:关键词:oaoa;工作流引擎;工作流引擎;jbpmjbpm;j2ee;开源;开源;rmi abstractabstract topic in this paper comes from the companys oa project based on j2ee technology and workflow technology. this paper first introduces the overall demand for oa system that lists

5、the various parts of functional modules including personal office,template management,car management,information centre,document management.this paper also presents the subsequent development of the overall system layered structure, including: persistence layer,business logic layer,web application l

6、ayer.the bussiness logic layer and web application layer are deployed differently on bussiness application server and web application server.they communicate with each other by means of java rmi.by studying the overall demand of the system, the paper figures out the specific workflow module function

7、al requirements and lists the main scenes for the work flow modules. the workflow definitions includes: posting doucment flow, sending car flow, borrowing document flow. with in-depth study of jbmp workflow engine technologies, this paper introduces jbmp into the oa system. meanwhile,this paper poin

8、ts out the advantages of jbpm as well as the problems it brings in, including the means of data persistence and means of ways of workflow module development. and this paper also gives out solutions to solve these problems. according to engineering development model,this paper packages the jbpm api i

9、nto workflow module for the oa system and gives out the design and implementation. at the same time, this paper gives out the design and implementation for the rest modules of the oa system. besides, author of this paper gives out the algorithm for the workflow graph presentation, including generati

10、ng the structure of the worflow graph and presenting the graph on web side pages. author of this paper uses lots of open- source tools to develop the entire oa system. the appendix shows the licenses under which the open-source tools are used. keywords:keywords: oa;oa; workflowworkflow engine;engine

11、; jbpm;jbpm; j2eej2ee ; ; openopen sourcesource; ; rmirmi 目目 录录 摘要摘要.ii abstractabstract .iii 第一章第一章前言前言.1 1.1oa 概述.1 1.1.1oa 概念.1 1.1.2oa 的发展历程.1 1.1.3国内外对 oa 的研究状况.2 1.2工作流技术概论.3 1.2.1工作流问题的起源.3 1.2.2工作流的相关定义.4 1.2.3工作流管理系统.6 1.2.4工作流技术存在的问题和发展趋势.9 1.3工作流产品调查.10 1.4j2ee 简介.13 1.5java分布式对象技术简介.15 1

12、.5.1java rmi(rmi/jrmp).15 1.5.2rmi-iiop.16 1.5.3java-idl.16 1.6框架技术介绍.16 1.6.1ioc 框架.17 1.6.2aop 框架.17 1.6.3mvc 框架.17 1.6.4orm 框架.18 第二章第二章基于工作流的基于工作流的 oaoa 系统系统.19 2.1oa 的整体需求.19 2.1.1个人办公.19 2.1.2模板管理.20 2.1.3车辆管理.20 2.1.4信息中心.20 2.1.5资料管理.21 2.2系统的整体架构.21 2.2.1数据持久化层.22 2.2.2业务逻辑层.22 2.2.3web 应用层

13、.22 2.2.4系统开发平台.23 2.3工作流模块的应用场景.23 第三章第三章引入引入 jbpmjbpm.25 3.1jbpm 介绍 .25 3.2jbpm 核心剖析 .25 3.2.1jbpm 的插件模式架构.25 3.2.2jbpm 流程引擎核心技术.26 3.2.3jbpm 持久化技术.29 3.3jbpm 提供的辅助工具.30 3.3.1流程设计工具.30 3.3.2流程管理监控工具.30 3.3.3权限模型.31 3.3.4其他实用工具类.31 3.4引入jbpm 的优势.31 3.4.1可扩展性高.31 3.4.2数据层支持.32 3.4.3开发文档和技术支持.32 3.5引

14、入jbpm 面临的问题及解决方案.32 3.5.1流程与业务数据存储方式选择.32 3.5.2jbpm 的开发模式选择.33 第四章第四章oaoa 的工作流模块的工作流模块.33 4.1需求.34 4.1.1流程部署.34 4.1.2流程监控.34 4.1.3公文流转分析.34 4.2设计和实现.35 4.2.1工作流模块设计.35 4.2.2流程事务处理.36 4.2.3流程图显示算法.37 4.2.4安全访问控制.39 4.3单元测试.40 4.3.1单元测试及其意义.40 4.3.2测试框架搭建.40 4.3.3部分测试效果图.40 4.4运行效果.42 4.4.1流程定义的多版本管理.

15、42 4.4.2流程的生命周期管理.43 4.4.3图形化监控流程.43 第五章第五章oaoa 系统其他模块的设计实现系统其他模块的设计实现.44 5.1模块设计.44 5.2模块实现.46 5.3模块测试.47 5.4运行效果.49 第六章第六章结论结论.51 6.1论文总结.51 6.2不足之处及未来的改进.51 致谢致谢.52 参考文献参考文献 .i 附录附录.ii 附录 1:jbpm 数据库关系图.ii 附录 2:公文流程定义文件.ii 附录 3:相关开源协议 .v 第一章第一章前言前言 随着信息科学技术的发展,企业之间的竞争越来越激烈,谁能更快的响应业务 流程的变化,谁就能在商场上占

16、有更有利的位置。传统的办公自动化系统由于没有 将流程逻辑与业务逻辑相分离,使得对于每次流程的微调都必须修改整个程序才能 满足实际需求,致使软件缺乏必要的灵活性、复用性来支持企业的快速决策。工作 流技术的诞生改变了这一切,它为我们开发具有灵活性的系统提供了强有力的技术 支持,将工作流技术与办公自动化系统结合可以很好地克服传统办公自动化系统的 缺点。 本章分别介绍了 oa 系统、工作流技术、现有的工作流产品、j2ee 技术、java 分布式对象技术、开发框架技术的内容,使读者对相关的概念有一个比较全面的了 解。 1.1oaoa 概述概述 1.1.1 oaoa 概念概念 办公自动化(office a

17、utomation,简称 oa)于 20 世纪 50 年代提出,在 80 年代至 90 年代得到了飞速的发展。办公自动化作为一门学科已越来越受到人们的重视,其 内涵和外延在不断地扩大,但目前尚未形成一个严格、统一的定义。较为普遍的观 点认为:办公自动化是以先进的信息技术、系统科学、行为科学为支柱的一门综合 性技术。它以系统科学为理论基础,行为科学为主导,综合运用信息技术(包括微电 子技术、计算机技术和通信技术等)完成各种办公业务,充分有效地利用信息资源, 以提高生产效率、工作效率和工作质量,辅助决策,促进办公活动规范化和制度化, 以达到既定的目标,获取更好的效果。1 办公自动化系统(oas)是

18、实现办公自动化的人机系统,指的是在办公事务中引进 现代化管理方法、科技手段和各种辅助工具,并实现办公自动化(或半自动化)后, 人(办公人员和管理人员)和计算机(含各种办公设备)所组成的办公信息系统。2 办公自动化系统可分为三个层次:日常事务、控制管理、智能决策。 日常事务层是基础层,包括公文处理、日程安排、邮件系统、人事管理、工资 管理、资源管理,以及其他有关机关行政事务处理等基础设施。 控制管理层建立在日常事务层之上,它是支持各种办公事务处理活动的办公系 统与支持管理控制活动的管理信息系统相结合的办公系统。 智能决策层是最高层,它借助数据挖掘等新兴技术,以日常事务层和控制管理 层办公系统的大

19、量数据为基础,同时又以其自有的决策模型为支持,形成具有决策 或辅助决策功能的最高级系统。 1.1.2 oaoa 的发展历程的发展历程 办公自动化系统的发展经历了三代34: 第一代办公自动化是以数据为处理中心的管理信息系统。它最大的特点是应用 基于文件系统或关系型数据库系统,以结构化数据为存储和处理对象,强调对数据 的计算和统计能力。 第二代办公自动化系统是以工作流为中心的系统。它具有三个特点:以网络为 基础、以工作流技术作为主要的技术手段、缺少对知识管理的能力。 第三代办公自动化系统以知识管理为核心的系统。它是建立在企业 intranet 平台 之上,旨在帮助企业实现动态的内容和知识管理,使企

20、业每一位员工能够在协作中 不断获得进步和学习的机会。 纵观办公自动化系统的发展历程,可以看到,工作流技术己经发展成为办公自 动化系统的核心组成部分。同时,实践经验表明,应用工作流技术可以为办公自动 化管理提供以下支持: 1.提供灵活的流程定义、流程监控、流程管理工具; 2.通过流程的执行分析,及时发现业务瓶颈; 3.将流程事务从业务中分离出来,让业务人员更专注于核心业务; 4.避免了传统业务处理方式中随意性造成的业务流程混乱; 5.减少或避免了人为因素造成的原则性错误及由此带来的损失; 6.增强了业务各环节的协作能力,使业务运作更加顺畅; 7.办公人员可以迅速适应本职工作; 8.为业务流程重组

21、提供了有效的分析手段和技术支持。 1.1.3 国内外对国内外对 oaoa 的研究状况的研究状况 美国的 oas 在公司和企业中发展得比政府部门要早,并且水平也较高。各公司、 企业不仅把办公自动化视为提高效率、节约成本的手段,更是利用它来加强经营管 理,作为提高企业素质和企业竞争力的重要条件。4 20 世纪 90 年代以后,国外的办公自动化的发展趋势为如下四个方向: 1.oa 硬件设备公自动化设备向着高性能、多功能、复合化和系统化发展; 2.oas 向着数字化、智能化、无纸化和综合化发展; 3.oas 从单纯的文字处理,转向声音、图形等更多格式多媒体方向发展; 4.充分利用现代通信技术,建立全球

22、的网络体系。 我国的办公自动化系统经过十几年的发展,已经取得了十分明显的进步,产品 种类日趋丰富,技术日益成熟。 从系统产品来看,目前国内的 oas 有些建立在 lotus domino/notes 平台上,有 些直接使用 microsoft 产品如 sharepoint,也有部分软件公司开发了具有自主知识产 权的 oas。 从应用范围来看,办公自动化系统主要应用在政府机构和企事业单位中。政府 机构用户需求最为强烈,普及率也最高,几乎所有的省、市级政府都已经配备了办 公自动化系统。政府机构往往对公文的流转处理比较重视,其公文的传送要涉及到 很多相关部门,流程相当复杂。企事业单位同政府机构相比,

23、公文量较少,而以事 务处理为主的工作流应用比较多。 从处理范围来看,oas 主要是解决如何提高日常办公效率的问题。因此我们日 常工作的大部分内容都可以归入办公自动化处理的范畴,如文字处理、文件撰写、 传真、申请审批、办公用品、公文管理、会议管理、资料管理、档案管理、客户管 理、订货销售、库存管理、生产计划、器材需求、技术管理、质量管理、成本计算、 财务计算、劳资、人事管理等等,其中核心是公文管理。 目前,我国的办公自动化系统正朝着集成化、网络化、多媒体和智能化的国际 水平发展。各国的经验表明:国家经济现代化必须依赖各级管理水平的提高和办公 自动化。因此,oa 必将对我国整个社会生活的各个方面产

24、生深刻的影响。 1.2工作流技术概论工作流技术概论 1.2.1 工作流问题的起源工作流问题的起源 工作流是从英文单词 workflow 翻译得来的,用活动及活动之间变化的过程表示 的业务流程就是工作流。工作流的概念起源于生产组织和办公自动化领域。它是针 对日常工作中具有固定程序的活动而提出的一个概念。目的是通过将工作分解成定 义良好的任务、角色,按照一定的规则和过程来执行这些任务并对它们进行监控, 从而提高办事效率、降低生产成本、提高企业生产经营管理水平和企业竞争力5 。 80 年代初期,在计算机软件没有成为主要的业务支持工具前,实现信息传递的 最好方式是通过纸张作为载体,利用“通知” 、 “

25、文件” 、 “信函” 、 “传真” 、 “报告” 等形式在不同的业务部门、业务人员之间进行传递。这种传统的纸张为载体的信息 传递与处理方式的效率很低,中间过程的可监控性以及可追溯性都有很大的局限。 在计算机广泛普及和企业的计算机应用水平日益提高的情况下,企业业务人员希望 能够以一种无纸化的、计算机使能的工作环境来开展其日常的业务工作。一些公司 和企业因此建立了自己专用的或者可商品化的表单传递应用系统(forms-routing applications)用来实现日常表单处理的电子化与自动化。这种系统可以看成是现代工 作流管理系统的一个雏形。 80 年代中期,filenet 和 viewstar

26、 等公司率先开拓了工作流产品市场,成为最早 的一批工作流产品供应商。他们把图像扫描、复合文档、结构化路由、实例跟踪、 关键字索引以及光盘存储等功能结合在一起,形成了一种全面支持某些业务流程的 集成化的软件(包),这便是早期的工作流管理系统。比较典型的有 filenet 于 1984 推出的 workflo 商用系统,viewstar 于 1988 年推出的 viewstar,ibm 于 1988 年推 出的 imageplus。 进入 20 世纪 90 年代,随着计算机与网络技术的迅速发展,现代企业的信息系 统的分布性、异构性和自治性的特征越来越显著,对日常业务活动详尽信息的需求 日益提高,c

27、lient/server 体系结构和分布式处理技术 (corba,www,ole,java)的广泛应用,都说明了这样一个事实:集中式信息 处理的时代即将成为去,取而代之的将是大规模的异构分布式信息处理与应用执行 环境。在这种背景下,工作流管理系统也由最初的创建无纸办公环境转而成为同化 企业复杂环境,实现业务流程自动执行的必要工具。 1993 年工作流管理联盟(workflow management coalition, wfmc)的成立标着工 作流技术开始进入了相对成熟的阶段。文件管理系统、数据库、电子邮件、移动式 计算、intemet 服务等都已被容纳到工作流管理系统之中5 。 1.2.2

28、工作流的相关定义工作流的相关定义 在工作流技术发展的过程中,不同的研究者和工作流产品供应商从不同的角度 给出了工作流的定义,以下给出几个具有代表性的定义: 工作流管理联盟(wfmc)给出的工作流定义是:工作流是一类能够完全或者部分 自动执行的经营过程,它根据一系列过程规则、文档、信息或任务能够在不同的执 行者之间进行传递与执行。 georgakopoulos 给出的工作流定义是:工作流是将一组任务组织起来完成某个 经营过程。在工作流中定义了任务的触发顺序和触发条件。每个任务可以由一个或 多个软件系统完成,也可以由一个或一组人完成,还可以由一个或多个人与软件系 统协作完成。任务的触发顺序和触发条

29、件用来定义并实现任务的触发、任务的同步 和信息流(数据流)的传递。 ibm almaden 研究中心给出的定义:工作流是经营过程的一种计算机化的表示 模型,定义了完成整个过程所需用的各种参数。这些参数包括对过程中每一个步骤 的定义、步骤间的执行顺序、条件以及数据流的建立、每一步骤由谁负责以及每个 活动所需要的应用程序。 以上的这些工作流的定义,都是用非形式化语言对工作流所进行的描述,虽然 表述方式略有不同,但是基本上都说明这样一个问题:即工作流是经营过程的一个 计算机实现,而工作流管理系统则是一个实现的软件环境。 使用工作流作为经营过程的实现技术首先要求工作流系统能够反映经营过程的 如下几个方

30、面的问题:即业务过程是什么(由哪些活动、任务组成,也就是结构上的 定义)、怎么做(活动间的执行条件、规则以及所交互的信息,也就是控制流与信息 流的定义)、由谁来做(人或者计算机应用程序,也就是组织角色的定义)、做得怎样 (通过工作流管理系统对执行过程进行监控)。5 图 1-1 工作流基本概念之间的关系6 图 1-1 说明了与工作流有关的一些术语及其之间的相互关系。6 业务过程(businessprocess):是指为了实现某个目标,在部分或者全部组织机构 和人员的参与下,在参与者和组织机构之间进行文档、信息、任务的传递或处理而 进行的一系列相互关联的活动。 过程定义(processdefini

31、tion):过程定义即过程建模。业务过程的计算机形式表示, 它定义的是过程运行中涉及到的各种参数:如业务过程的开始和终止条件、各个工 作环节及相互之间的控制流动与数据流动关系等。由过程定义得到的不同的过程模 型各有其不同的特点,一个好的模型应该有比较强的描述能力、易于使用、易于修 改以便能够适应不断变化的工作环境的要求。 工作流管理系统(wfms):一种能定义、创建和管理工作流执行的系统。就是将 现实世界中的业务过程转化为某种计算机所能识别的形式表示(工作流逻辑),并在 此形式表示的驱动下完成工作流的执行和管理。使用它可以充分利用企业资源,有 效地跟踪工作过程,提高工作过程定制的速度与质量。

32、活动(activity):是组成过程的一个逻辑步骤,也称为工作流的一个环节。根据 是否需要人工提供数据或完成某些任务,活动可以分为人工活动和自动活动两类。 活动是过程执行中可被工作流引擎调度的最小工作单元,要求有人或机器的参与。 人工活动(manual activity):在业务过程的执行过程中无需借助计算机就能实现 的活动。 自动活动(automated activity):在业务过程的执行过程中必须借助计算机才能实 现的活动。 过程实例/活动实例(process instances/activity instances):实际运行中的一个过程/ 活动。每个实例代表一个能独立控制执行,具有内

33、部状态的线程,可被外界通过标 识进行存取访问。 工作项(work item):在过程实例中等待参与者处理的活动实例。 调用的应用(invoked application):活动实例执行过程中被调用的计算机工具或 应用。6 1.2.3 工作流管理系统工作流管理系统 wfmc 给出的工作流管理系统的定义是:工作流管理系统是一个软件系统,它 完成工作流的定义和管理,并按照在计算机中预定义好的工作流逻辑推进工作流实 例的执行。7 为了能够更好地支持企业经营过程建模、分析和实施,适应世界市场的多元化 趋势,需要建立工作流管理系统的相关标准,从系统结构、术语使用、接口实施方 面提供标准化的定义、并以此为基

34、础实现不同工作流产品之间的互操作,便于与其 他应用系统的集成。wfmc 提出了有关工作流管理系统的一些规范。 图 1-2 工作流管理系统的体系结构图7 图 1-2 所示的是工作流管理系统的体系结构图,从中可以看出工作流管理系统 主要由三类构件组成,分别是: 1.软件构件:完成工作流管理系统不同组成部分功能的实现; 2.系统控制数据:工作流管理系统中的一个或多个软件构件使用的数据; 3.应用与应用数据:对于工作流管理系统来说,它们不是工作流管理系统的组 成部分,而是属于外部系统和数据,它们被工作流系统调用来完成整个和部 分工作流管理的功能。 图 1-3 工作流参考模型7 由于工作流系统的多样性,

35、为实现彼此的互连和互操作,有必要为不同工作流 系统提供一个共同的设计框架,对工作流系统的结构加以标准化。1994 年 11 月, wfmc 提出了工作流管理系统的参考模型,如图 1-3。在这个参考模型中,对工作 流系统的相关概念给出了详细的描述,同时描述了组成工作流系统的各个功能模块 的功能,以及各个功能模块之间的接口功能定义。工作流系统参考模型已经成为设 计工作流系统结构时应该遵循的设计标准。 参考模型中各接口的功能描述如下: 1.接口 1(工作流过程定义输入/输出接口):用于实现过程定义工具同工作流执 行服务之间的交互,为工作流过程定义信息的交换提供标准的互换格式和 api 接口。 2.接

36、口 2(客户函数接口):用于实现用户同工作流执行服务的交互操作,这是 最主要的接口规范。工作项的处理、对过程实例的控制、各种信息的显示等 均通过此接口进行传递。 3.接口 3(激活应用程序接口):用于实现外部应用同执行服务的交互。 4.接口 4(工作流执行服务之间互操作接口):为不同的工作流系统之间的互连 提供相应的标准。 5.接口 5(系统管理及监控接口):用于实现过程管理监控工具同执行服务之间 的交互。7 图 1-4 过程定义元模型7 如图 1-4 是 wfmc 定义的过程元模型。模型包含了以下几个基本实体: 1.工作流定义(过程模型):它一般包含诸如工作流模型名称、版本号、过程启 动和终

37、止的条件、系统安全、监控和控制信息等一系列基本属性。过程模型 反映了企业中一个经营过程的目的,即这个过程要实现的目的和最终要达到 的目标。 2.活动:主要属性有活动名称、活动类型(原子级活动、子流程等)、活动的前 后条件、调度约束参数(如最长处理时间、排队等待时间等)等。当工作流运 行在分布的环境下时,在活动的属性中还应该包括执行该活动的工作流机的 位置。活动相应于企业经营过程中的任务,主要反映完成企业经营过程中需 要执行哪些功能操作。 3.转换条件:主要负责为过程实例的推进提供导航依据,主要参数包流过程条 件(flow condition,过程实例向前推进的条件,也称前后条件)、执行条件 (

38、execution condition,执行某个活动的条件)和通知条件(notification condition,通知不同用户的条件)。如在定单处理完成后,执行生产计划制 定。 4.工作流相关数据:工作流相关数据的属性包括数据名称、数据类型值等。 5.角色:角色属性主要包括角色的名称、组织实体(organizational entity)、角色 能力等。角色或组织实体决定了参与某个活动的人员或组织单元,它主要描 述企业经营过程中参与操作的人员和组织单位。 6.需要激活的应用程序:主要属性包括应用程序的类型、名称、路径参数等。 应用主要描述用于完成企业经营过程所采用的工具或手段,如采用软件或

39、决 策支持软件完成某个具体的企业业务功能。7 1.2.4 工作流技术存在的问题和发展趋势工作流技术存在的问题和发展趋势 工作流技术经过二十多年的发展己经在理论研究与实际应用方面获得了长足发 展,取得了重要成果。但是在以下几个方面工作流技术还存在着一些不足之处,需 要进行更多的工作。8 1.缺乏互操作性。在工作流管理系统开发的早期,由于缺少统一的标准,大多 数工作流产品之间互不兼容。后来工作流管理联盟虽然提出了一套工作流管 理系统的标准,但要实现工作流之间无缝的互操作,还需要开展相当多的工 作。 2.并发访问和出现错误时缺乏正确和可靠的支持。工作流实例在运行过程中, 可能出现多个活动同时访问共享

40、资源的情况,各个活动在数据操作上会相互 重叠。为了保证系统正常运行,必须进行并发控制,防止出现“脏数据”等 现象。另外,当工作流非正常中断时,如何恢复数据的一致性也是需要解决 的问题。 3.性能问题。大多数工作流产品无法满足企业每天处理上万个、甚至每小时处 理几千个业务的需求。 4.辅助工具缺乏。缺乏对工作流进行分析、仿真和纠错的工具。 在工作流技术应用日益得到重视的今天,对工作流技术的研究也正在向更深层 次进行。工作流技术研究主要分为两方面内容:一是为工作流技术的发展解决理论 上存在的问题,探讨工作流模型和语义的形式化表示方法等;二是从工作流实现技 术的角度探讨利用先进的技术提高工作流管理系

41、统的性能和可靠性。以下主要讨论 工作流实现技术的发展趋势。8 1.基于 web 的工作流:随着 wvw 的迅猛发展和普及,许多 wfms 产品支持 各种各样基于 web 的应用,支持 web 的优势不仅在于不需要安装特定的客 户端软件,而且便于系统资源的统一管理。目前的产品还仅限于允许在浏览 器中初始化和控制工作流。 2.工作流中的移动计算:目前 wfms 体系结构大都集中于 client/server 模式, 客户与服务器间的实时连接、频繁交互势必造成网络拥塞和资源瓶颈,支持 移动计算的分布式环境就是在这种背景下提出:移动客户只需周期性地与工 作流服务器建立连接,接受工作任务或提交工作结果,

42、从而减轻系统和网络 的负荷,极大地提高远程办公的效率。多 agent、移动 agent 技术为工作流 管理的移动计算提供了强有力的支持。 3.分布式工作流:工作流管理系统从支持单个工作组环境开始,现在逐步提高 到企业级的功能需求,这样单个工作流程就要允许跨越广域网上的多个服务 器和客户端,通过并行计算、资源共享、分布操作使其可扩展性、客观理性 得以充分体现,然而,随之而来的是需考虑分布式系统的安全性和客户操作 性。 4.工作流互操作:互操作的研究主要包括两方面:工作流模型的互操作和工作 流系统的互操作。微观层的模型互操作包括研究单个模型内或多个模型间的 活动客户操作性,以及如何检测、分析产生的

43、冲突,并提供可行的解决方案; 宏观层的系统互操作则包括系统内部协议定义、程序接口、数据共享的互操 作,以及工作流系统如何嵌入到其它业务系统中或如何实现与其他异构系统 的连接,工作流互操作是工作流管理技术目前研究中的一大难点。 5.工作流事务管理:目前大部分工作流产品不支持事务的概念,甚至不能保证 活动的执行是一个 acid (atomicity、consistency、isolation、durability)的 事务。这意味着系统不能保证工作流实例的正常运行,也无法保证系统能够 正常运转。当工作流非正常中断时,工作流产品也无法保证能够正确地恢复 数据。有些供应商已经考虑到这个问题,并做了一些

44、努力,但工作流产品在 这方面的性能还有待改进。 6.工作流模型的分析和仿真工具:目前,越来越多的用户要求能够对模型进行 评估和性能测试,仿真和性能监控工具的引入,将不可避免地成为新一代工 作流产品的发展趋势。 1.3工作流产品调查工作流产品调查 表 1-1 国内外典型工作流产品 工作流产品工作流产品公司公司产品架构产品架构 sunflow杭州信雅 达 synchroflow西安协同 dlflo上海东兰 websphere mq workflow、websph ere process server ibm oracle workflow、bpel process manager oracle w

45、eblogic integration、aqualo gic bpm suite bea sharepoint、biztalk 、windows workflow foundation microsoft 表 6-1 列出了国内外主要的工作流产品。这些产品都是成熟的商业产品,需要购 买其许可证进行使用,而且使用比较复杂,需要一定的培训时间。最重要的一点是 这些系统的所有权是其开发公司所有,如果企业需要拥有对信息产品的版权,那么 购买上述产品的使用权已经不能满足企业的需求。 图 1-5 开源工作流管理组件调查报告14 如图 1-5 是选自 optaros 公司(美国的开源软件研究及解决方案咨询公

46、司)2006 年 底发布的调查报告“realize the benefits of open source” 。使用开源项目可以使企业 在开发自己的信息系统时节约开发成本,但同时又不失去对系统的所有权。 根据这份报告,可以看出在众多的开源工作流系统中,jbpm 项目在各项评比中 都占据优势。首先,其许可证为 lgpl,可以在合法的范围内被作为商业应用;其 次, 它不仅有着开源社区的支持,同时作为 redhat/jboss 的子项目,使其具有一 定的商业支持。当然,我们也可以看到,enhydra shark 由于其严格遵循 wfmc 规范 的流程定义体系,也使得它在报告中获得较高的评价。 图 6

47、-1 runa wfe 的运行时效果图 runa wfe 是一个俄国开发的基于 jboss-jbpm 工作流引擎的开源工作流开发 平台,可以直接部署流程,且自身提供了很多显示层标签支持。然而它最大的缺点 就是在对 jbpm 进行封装之后,产生了自己的 ide 插件、流程定义语言,比较封闭, 不适合与现有项目的集成。再者,runa wfe 的文档都是基于俄文的,对于不熟悉 俄文的用户使用会有障碍。runa wfe 的运行时效果如图 1-6。 1.4j2eej2ee 简介简介 j2ee(java 2 platform,enterprise edition)是由 sun 与 ibm 等厂商协同业 界

48、共同拟定而成的技术规范,以企业与企业之间的运算为导向的 java 开发环境。 j2ee 提供了一系列的组件、架构以及相关技术,来为企业提供一个高度可重用的开 发环境。 图 1-7 企业级系统应用模型 图 1-7 所示的是 j2ee 系统的分层模型,主要分为四个层次:客户端表现层、服 务器端表现层、服务器端业务逻辑层、企业信息系统层。23 客户端表现层是用来把客户请求的信息展现到客户面前,主要有如下几种技术: 纯 html 技术、java applet、一般的 java 程序、其他的 j2ee 客户端如移动设备。 客户端表现层把显示功能从业务逻辑中分离了出来。 服务器端表现层指的是将业务逻辑返回

49、的数据通过某种格式传递给客户端表现 层。主要的技术有:java servlet、jsp、xml、webservice。其中 servlet 是一种实 现了多线程请求响应模型的技术,克服了传统 cgi(common gateway interface)程序 效率低的问题;jsp 是基于 servlet 的便于编写网页的显示层技术,它会被 jsp 容器 编译为 servlet 的 class 文件,servlet 和 jsp 都需要有 web 容器支持。服务器端表现 层主要用于表现层逻辑的控制,以及生成用于客户端表现层显示的数据,如 html 文本。服务器端表现层将服务器端的业务处理和结果数据返回

50、分离开来,降低了系 统业务和表现之间的耦合性,提高了系统的可重用性及可维护性。 服务器端业务逻辑层主要负责业务的处理,主要技术有:ejb(enterpise javabeans)、webservice。ejb 技术是服务器端的组件,主要用于处理分布式应用程 序。ejb 主要分为会话 bean(session bean)、实体 bean(entity bean)和消息驱动 bean(message-driven bean),会话 bean 用于实现业务逻辑,分为有状态和无状态两 种形式,当用户请求到来时,由 ejb 容器选择创建 ejb 对象;实体 bean 用于实现 对象关系映射,每个实体 b

51、ean 对应一条数据库记录,可以让开发人员使用面向对象 的方法管理关系型数据库;消息驱动 bean 基于 jms(java messaging service),用于 实现会话 bean 异步接受 jms 消息。服务器端业务逻辑层是整个系统的功能逻辑核 心,专注于企业的业务处理。 企业信息系统层是企业数据中心,存储了所有企业系统的数据资料,是整个企 业应用系统最根本的价值所在。一般包括了企业基础建设系统如企业资源计划(erp)、 大型机事务处理、数据库系统以其他遗留信息系统。在业务层和数据层之间,j2ee 提供了 jdbc(java database connectivity)接口来简化数据库

52、的开发。 1.5javajava 分布式对象技术分布式对象技术简介简介 分布式对象技术是分布式计算技术和面向对象思想相结合的一种技术,系统中 的对象以分布式的方式相互作用,构成一个完整的面向对象的分布式系统。目前主 要有三种体系规范:corba、com+、ejb。9 corba 全称 common object request broker architecture,公共对象请求代理体 系结构,是由 omg(object management group,对象管理组织)组织制订的一种标准 的面向对象应用程序体系规范。corba 的组件之间基于 iiop(internet inter-orb p

53、rotocol)进行通信。 com 全称 component object model,组件对象模型。com+是微软公司推出的 基于 com 组件模型的分布式组件对象模型,是微软.net 框架的一个组成部分,组 件间通过.net remoting 框架技术进行交互,采用 soap(simple object access protocol,简单对象访问协议)等通信方式。 ejb 全称 enterpise javabean,企业 java 组件,是 j2ee 的组件模型。ejb 使用 java rmi 和 java idl 技术作为其分布式对象模型。java rmi(java remote me

54、thod invocation,java 远程方法调用)是 java 平台的分布式对象通信模型。 java 的分布式对象技术,包括 javarmi、rmiiiop 和 javaidl。rmi 支持两种 引用层消息协议jrmp 和 iiop。开发者可以选择完全工作在 java 环境下,使用 jrmp 作为传输协议;也可以选择使用 iiop 协议,与其它的 corba 兼容的语言一 起工作。sun 的 j2se 平台还包含 orb 软件和 java idl api,它本质上是 corba 的 java 语言映射的实现。通过使用 java idl,可以用 java 语言开发 corba 应用。 1.

55、5.1 javajava rmi(rmi/jrmp)rmi(rmi/jrmp) 使用 jrmp 的 rmi 一般称为 rmi/jrmp,或简称 java rmi。 jrmp 是 java 标准的远程调用的传输协议,在 tcp/ip 之上操作,在 rmi v1.1 中,jrmp 是 rmi 专用的,但是在 rmi vl.2 中已经可以使用 jrmp 和 iiop 了。使 用 rmi/jrmp 可以通过 http 服务器信通,这需要在发送消息时加上一个 httpostheader 标识符,在接收消息时加上一个 httpresponseheader 标识符。 使用 java rmi 编译器(rmic

56、)编译用 java 语言来编写服务器实现类,可以生成 jrmp 存根和框架,corba 客户机利用 idl 文件访问 rmi 服务器。jrmp 使用的 存根(stub)用 jrmp 协议与服务器框架通信。rmi/jrmp 的服务器实现要继承 java.rmi.server.unicastremoteobject 类。 建立服务器对象之后,就可以分布这个对象,即让分布式客户机能够访问 rmi 服务器。rmi/jrmp 使用 rmi 注册表(rmi registry)的命名服务定位远程对象,通过 rmiregistry 工具提供。rmi 框架提供了访问 rmi 注册表的简单方法:jrmp 服务器

57、应用程序可以使用 java.rmi.naming.rebind()方法注册远程服务对象到 rmi 注册表: jrmp 客户机可以使用 java.rmi.naming.lookup()方法查找服务器对象,得到所需服务 接口。但是,rmiregistry 不支持持久命名服务。 rmi/jrmp 还支持分布式垃圾收集(distributed garbage collection,dgc)特性。 rmi/jrmp 适合于全部使用 java 语言编写的应用程序,以实现不同虚拟机和不 同物理机器上的 java 对象间的通信,在可移植性、安全性以及分布式垃圾回收等方 面具有优势。9 1.5.2 rmi-ii

58、oprmi-iiop 使用 iiop 协议的 rmi 一般称为 rmiiiop(java rmi over iiop)。rmi-iiop 由 sun 公司和 ibm 公司联合开发,是 j2ee 和 j2se 平台的一部分。和 corba 一样, rmi-iiop 基于由 omg 中许许多多厂商和用户参与制定的开放标准。rmi-iiop 合 并了 java rmi 和 corba 的最佳特性。 使用 rmi-iiop,可以不用学习 corba idl,就能够编写 java 平台下的 corba 应用程序。rmi-iiop 允许开发者在纯 java 编程环境中开发,使用 java 语 言编写远程接

59、口,然后使用 java 和 java rmi 的相对简单的 api 实现它。 rmi-iiop 还支持在应用程序组件只见的按引用(by reference)或按值(by value)方 式传递任何类型的 java 对象,这为分布式应用程序的开发带来了极大的方便性。 rmi-iiop 使用 corba 命名(cosnaming)服务定位远程对象,包括两种命名服务, 一种是临时命名服务(通过 tnameservv 工具提供),另一种是持久命名服务(通过 orbd 工具提供)。使用 cosnaming 命名服务需要访问 java 的 orb,所以注册和查找服务 器对象时,rmi-iiop 要比 rm

60、i/jrmp 复杂一些。 rmi-iiop 适合那些使用 java 语言并想通过编写 rmi 接口而使用 iiop 作为基础 传输协议的开发者。rmi-iiop 提供和其它用各种语言实现的 corba 对象之间的互 操作性,这通常要求所有的远程接口最初都是以 java rmi 接口的形式定义的(或者 在一些很小的编程限制下直接编写 idl 接口文件)。rmi-iiop 对于 ejb 编程人员也 有特别的吸引力,因为 ejb 组件的远程对象模型就是基于 java rmi api 的。9 1.5.3 java-idljava-idl java idl 是 j2se 平台的一部分。java idl

温馨提示

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

评论

0/150

提交评论