




已阅读5页,还剩61页未读, 继续免费阅读
(计算机软件与理论专业论文)基于j2ee的动态工作流管理系统的研究与应用.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
沈阳理工大学硕士学位论文 摘 要 我国政府部门内部及其各部门之间的纸质公文流转是各级政府部门日常工作的一个重要组成部分,通过采用先进计算机软件技术结合工作流管理系统的研究,从而提高政府部门的公文流转的速度及可监控性,是我国现阶段电子政务系统应用的一个重要方向。 传统工作流管理系统在为公文流转系统的开发提供支持时,常因为其缺乏动 态性,很难满足业务流程需要而倍受指责,因此迫切需要提高工作流管理系统的 动态性。动态工作流管理系统是一种既能够有效控制和协调复杂而多变的业务流程的执行,又能够实现人与应用软件之间交互的信息技术手段。它保留了传统工作流管理系统包括的主要功能,同时又提供了对正在执行的过程进行动态变更的支持。 本文对工作流管理系统进行了介绍,针对其缺乏动态性的不足重点研究了如何在运行期对流程进行动态变更的方法。一种是采用版本管理,通过版本替换算法对过程定义进行更改。一种是通过分析公文业务的实际情况,提出了人机交互的动态更改方法,这种方法是在运行期修改过程实例的属性,使工作流引擎活动调度策略发生改变 ,由原先的解析流程定义文件选择后继活动执行改为由流程的当前活动参与者指定后继活动名称反馈给引擎,再由引擎根据用户选择创建后继活动执行。本文所研究的动态工作流管理系统包括两个部分,一个是b/s结构的可视化流程定制工具,一个是提供动态性支持的工作流引擎。本文提出了基于过程模型、组织模型、资源模型的工作流模型并详细阐述了流程定制工具,流程定义文件,流程解析器,活动调度器等模块的设计和系统数据库的设计。最后基于本系统开发了一个应用于检察院的公文流转系统,本系统在进行公文处理时体现了很好的灵活性。 关键词:工作流模型;动态工作流管理系统;动态调度;公文流转 沈阳理工大学硕士学位论文 abstract the document transmission by paper within our government departments and among other departments is the main part of the daily work of all levels of the government department. to improve the speed and supervision of the document transmission of government departments through the research of combination of the advanced software computer technology and workflow management system is an important direction of the e-government system at the present stage. when the traditional workflow management system provides the support to the document transmission system, it is always criticized because it is hard to satisfy the demands. so it is urgent to improve the dynamics of workflow management. dynamic workflow management system is an information technology tool that can effectively control and coordinate the operation of complex and changeable business processes and also achieve the interaction between people and application software. it has retained all the major functions of traditional workflow management system and at the same time it can provide dynamic change support to the ongoing process. this paper firstly introduces the workflow management system and, in addition, it mainly studies how to change the ongoing process dynamically. one way of change makes use of version management and algorithm of version replacement. the other way of change develops a strategy of human-computer interaction from analysis of the actual situation of the document transmission. this method changes strategy of active schedule of workflow engine through the modification of the property of process instance in operation period. the strategy of making the former parsing process definition file choose successor activity execution is changed to making the present participant of process assign the name of successor activity and give it back to the engine and then engine build successor activity execution according to the choice of users. the dynamic workflow management system studied by the paper includes two parts, one is visualized process customizing implement of b/s structure, the other one is workflow engine 沈阳理工大学硕士学位论文 which provides dynamic support. the paper puts forward to workflow model based on process module, organization module and resource module and detailedly explains the design of process customizing implement, process definition file, process parser, activity scheduler and so on and system database. finally, the document transmission system used by procuratorate based on this system is developed. the document transmission system currently performs good flexibility when it deals with documents. key words: workflow model; dynamic workflow management system; dynamic scheduling; document transmission 沈阳理工大学 硕士学位论文原创性声明 本人郑重声明:本论文的所有工作,是在导师的指导下,由作者本人独立完成的。有关观点、方法、数据和文献的引用已在文中指出,并与参考文献相对应。除文中已注明引用的内容外,本论文不包含任何其他个人或集体已经公开发表的作品成果。对本文的研究做出重要贡献的个人和集体,均己在文中以明确方式标明。本人完全意识到本声明的法律结果由本人承担。 作者(签字) : 日 期 : 年 月 日 学位论文版权使用授权书 本学位论文作者完全了解沈阳理工大学有关保留、使用学位论文的规定,即:沈阳理工大学有权保留并向国家有关部门或机构送交学位论文的复印件和磁盘,允许论文被查阅和借阅。本人授权沈阳理工大学可以将学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或其它复制手段保存、汇编学位论文。 (保密的学位论文在解密后适用本授权书) 学位论文作者签名: 指导教师签名: 日 期: 日 期: 第 1 章 绪论 -1- 第 1 章 绪论 1.1 课题来源和背景 电子政务是信息领域和技术领域的一个重要方面,电子政务的不断发展,将给政府管理方式带来深刻变革,同时带动和促进中国信息技术及相关产业的繁荣。中国提出以信息化带动工业化,并以电子政务带动信息化。电子政务的实施推广,将使政府成为推进社会信息化的主导性力量,也必将加速中国社会信息化进程,最终实现信息化带动工业化的目标。 作为我国政务系统的一个重要组成部分,公文处理使人们耗费了大量的时间和精力去手工处理那些繁杂、重复的工作,而手工处理的延时和差错,正是现代化管理中应该去除的弊端。用先进的、现代化的工具代替手工作业,无疑是生产力发展的方向。基于传统工作流管理系统的公文流转系统的出现在一定程度上满足了人们的需求,提高了公文处理的效率,降低了公文审批的差错率。但由于传统工作流管理系统在动态性上还存在不足,很难满足公文流程灵活多变的特性。一些公文处理流程虽预先确定,但由于外部及内部的各种原因,需要对正在运行的公文流程进行修改,这是传统工作流管理系统不允许的。因此需要一种允许流程在运行期动态改变来适应业务流程变化的工作流管理系统,这样的工作流管理系统称其为动态工作流管理系统。目前已提出了一些改善工作流动态性的方法,但是仍存在着不足,所以工作流动态性的研究成为一个热点问题1,2。 本文参照工作流管理联盟规范,提出了一种面向电子政务的公文处理应用的动态工作流管理系统。本系统基于关系数据库,采用流行的 j2ee 技术,提供了一系列比较完备的 api,可以方便的与公文处理系统进行集成,应用开发者可以将这些 api 嵌入到自己的应用系统中从而快速实现具有工作流性质的公文处理系统,可以显著地缩短关键业务的开发周期。 沈阳理工大学硕士学位论文 -2- 1.2 研究现状 1.2.1 工作流管理系统研究现状 工作流是从英文单词workflow翻译得来的,用活动及活动之间变化的过程表示的业务流程就是工作流。工作流技术起源20世纪70年代的办公自动化3,它是针对日常工作中具有固定程序的活动而提出的一个概念,目的是通过将工作分解成定义良好的任务、角色,按照一定的规则和过程来执行这些任务并对它们进行监控来提高办事效率、降低生产成本、提高企业生产经营管理水平和企业竞争力4。 实际上,自从进入工业化时代以来,有关过程的组织管理与流程的优化工作就一直在进行,这是企业管理的主要研究内容之一。只不过在没有引入计算机信息系统的支持以前,这些工作是由人工来完成的。在计算机网络技术和分布式数据库技术迅速发展、多机协同工作技术日臻成熟的基础上,于 20 世纪 80 年代中期发展起来的工作流技术为企业更好地实现这些经营目标提供了先进的手段。工作流技术一出现马上就得到广泛的重视和研究。随着计算机与网络技术的迅速发展,现代企业信息系统的分布性、异构性和自治性的特征越来越显著,集中式信息处理的时代即将成为过去,取而代之的将是大规模的异构分布式信息处理与应用执行环境5,6。在这种大规模的分布式环境下高速运转相互关联的任务,并且对执行的任务进行密切监控已成为一种发展趋势。在这种技术背景下,工作流管理系统也由最初的创建无纸办公环境,转而成为同化企业复杂信息环境,实现业务流程自动执行的必要工具。这样的一个转变,把工作流技术带入了一个崭新的发展阶段7,8,使得人们从更深的层次、更广的领域对工作流展开了研究。 目前工作流领域存在如下几种不同方向的工作流管理系统9,11: 基于成熟产品的工作流管理系统 以 microsoft exchange 和 ibm dominonotes 为典型的成熟群件平台。 在其上面作二次开发,较容易实现工作流基本功能,并且具有开发周期短、稳定性高等优点。但毕竟是二次开发,不能完全拥有自主版权,更为重要的是,这些成熟群件平台无法适应一些用户的多样性需求,适应性较差。 智能工作流管理系统(intelligent wfms) 这一研究领域致力于运用人工智能的技术提高工作流管理系统的智能性,第 1 章 绪论 -3- l.myers 和 m.berry 在文献中详细讨论了人工智能技术对 wfms 的影响, 他们认为人工智能的过程控制致力于实物(如机器、设备)的过程控制,而工作流则侧重于商业和制造业企业流程的控制;人工智能的技术对工作流管理有许多借鉴意义:反应控制(reactive control)理论,对于流程的监控、自适应和错误处理具有重要意义;反应调度(reactive scheduling)和资源分配算法,则对于动态、复杂、实时性要求较高的流程调度引擎的设计具有现实的指导意义;规划(planning)算法,可以帮助工作流管理系统从大量的工作流定义案例中归结出新的流程定义及使流程定义具有自学习的功能,有助于目标拉动型 wfms 的研究与发展。 面向对象的 wfms(object-oriented wfms) 随着面向对象技术的成熟与应用,许多学者开始研究如何利用面向对象的技术来推动工作流技术的发展。主要包括两个领域:第一,如何利用 00 技术如名字服务、安全控制技术来简化 wfms 的实现,提高 wfms 的性能和适应 had 环境的能力;第二,如何利用面向对象的分析方法来构建面向对象的流程定义,以提高流程定义的可重用性。 分布式 wfms(distributed wfms) 为了提高系统的鲁棒性,许多学者研究如何实现 wfms 的分布处理,一个流程可以使用多个分布的工作流引擎,每个工作流引擎可以调度不同流程实例或流程实例的不同任务,一个调度引擎发生故障时,不会影响其它引擎的工作。分布式系统会带来一系列的问题,如数据一致性、并发性、备份和恢复问题,这些是当前研究的热点。 基于 web 构架的 wfms 基于 web 构架的应用系统,由于零安装、移动性好、易操作等优点得到了巨大的发展,许多应用系统转移到基于 web 构架上来,wfms 也不例外。现有的许多 wfms 也增加了对 web 的支持,但多局限于用 web 来实现任务项的处理。而在 server 端通过 cgi 与工作流引擎通信这种体系结构,cgi 程序的瓶颈、html不能表示结构化数据都使现有的 web 使能的系统效率不高。 如何利用 xml 和 java等技术来实现 web 构架的 wfms,是一个急切需研究的课题。 基于 eca 规则的适应性工作流 在实际中往往需要根据具体情况动态地确定执行路由,这就需要工作流模型沈阳理工大学硕士学位论文 -4- 能表达出不同情况下的不同处理方法。近年来,数据库的非传统应用促进了对主动数据库的研究和应用,并且引起了对软件主动性的研究。它采用事件触发机制来组织应用系统,或者为应用系统增加主动功能。当一个事件发生后,事件监视器捕获该事件,然后依据事件条件动作(eca)规则进行条件判断,选择合适的执行动作。在企业业务执行过程中,各个活动的进行总是伴随着事件的发生。特定的事件触发特定的活动,而活动的结束又引发新的事件,因而用事件可以描述业务过程的动态特性。 1.2.2 工作流管理系统不足 目前工作流管理系统存在着以下方面的问题12,15: 缺乏互操作性:在工作流管理系统开发的早期,由于缺少统一的标准,大多数工作流产品之间互不兼容。虽然后来工作流管理联盟提出了一套工作流管理系统的标准,但是要实现工作流之间无缝的互操作还有相当的工作需要开展。 当并发访问和出现错误时缺乏正确和可靠的支持:工作流实例在运行过程中,可能出现多个活动同时访问共享资源的情况,各个活动在数据操作上会相互重叠。为了保证系统正常运行,必须进行并发控制,防止出现“脏数据”等现象。另外,当工作流非正常中断时,如何恢复数据的一致性也是需要解决的问题。 性能问题:目前大多数工作流产品无法满足企业对每天处理上万个、甚至每小时处理几千个业务的需求。 缺乏对工作流进行分析、仿真和纠错的工具。 缺乏足够的对动态性要求的支持。 1.3 主要研究内容和论文结构 1.3.1 主要研究内容 本文主要研究内容包括: 第一,工作流模型的分析和设计。 第二,可视化流程定制工具。 第三,动态工作流管理系统的功能结构的划分,动态流程的实现方法,驱动工作流流转的算法,解析流程文件的算法,数据库的设计。 第四,系统接口设计。 第 1 章 绪论 -5- 第五,基于本系统并结合 j2ee 技术设计和实现公文流转系统。 1.3.2 论文结构 全文共分为五章: 第一章为绪论。概述了本文的研究背景、课题的来源、目的和意义,对工作流管理系统的研究现状和不足进行了分析。 第二章为相关理论基础及开发技术。 本章对工作流、 工作流管理系统和struts、spring、hibernate框架技术进行了详细介绍,给出了一个基于struts、spring、hibernate构建的系统架构。 第三章为动态变更策略的研究。本章首先分析了工作流管理系统的不足,然后对如何在运行期对流程进行动态变更的方法进行了研究。 第四章为动态工作流管理系统的设计和实现。本章首先对工作流模型进行了分析,然后对流程定制工具和工作流引擎进行了详细分析和设计,最后概要介绍了系统的实现方法。 第五章为动态工作流管理系统在公文流转系统中的应用。首先介绍了公文流转系统的需求,然后给出了系统功能结构,并对接口和功能进行了介绍。 最后为本论文工作成果及下一步工作展望。 沈阳理工大学硕士学位论文 -6- 第 2 章 相关理论基础及开发技术 2.1 工作流定义 不同的研究者和工作流产品供应商从不同的角度对工作流进行了不同的定义。 工作流管理联盟对工作流的定义是16,19:“工作流是指全部或者部分,由计算机支持或自动处理的业务过程,它根据一系列过程规则,文档信息或任务能够在不同的执行者之间传递与执行”。 georgakopoulas 给出的工作流的定义是16,19: “工作流将一组任务组织起来以完成某个经营过程。在工作流中定义了任务的触发顺序和触发条件。每个任务可以由一个或一组人完成,也可以由多个人与软件系统协作完成。任务的触发顺序和触发条件用来定义和实现任务的触发,任务的同步和信息流(数据流)的传递”。 ibm almaden 研究中心给出的定义是16,19:工作流是经营过程的计算机化的表示模型,定义了完成整个过程所需要的各种参数。这些参数包括对过程中的每一个步骤的定义、步骤间的执行顺序、条件以及数据流的建立、每一步骤由谁负责以及每个活动所需要的应用程序。 2.2 工作流管理系统 2.2.1 工作流管理系统介绍 工作流管理系统是定义、创建、执行工作流的系统。开发这类软件系统就是要协调分布式、协同处理的各个节点上的活动,按照预定义的控制流程进行执行,以达到对它们的自动执行和有效的管理。开发这类软件有很大的重复性,工作流管理系统就是将这类软件的公共的流程控制部分(工作流运行服务、引擎)、管理部分和其他公共部分抽象出来,形成一种软件开发平台,用户只需要将它们的控制流程描述出来,该平台软件就可对它们的控制流程进行自动执行和有效地管理,而不需要对每次不同的应用重复地开发。 不同工作流管理系统可以有不同的实现方法,不同的底层通讯机制,应用的第 2 章 相关理论基础及开发技术 -7- 范围也可能有很大的差距,但所有的工作流管理系统从用户的应用层上来看,通用工作流管理系统应该能够提供以下三个方面的功能支持20,22: 建立阶段功能:对工作流过程以及组成它的活动进行定义和建模。 运行阶段的控制功能:在一定的运行环境下,执行工作流过程,对工作流的运行进行管理,并完成每个过程中活动的排序和调度功能。 运行阶段的人机交互功能:实现各种活动执行过程中用户与 it 应用工具间的交互。 由于信息技术的发展和日趋激烈的商业竞争,人们不再满足于独立、零散的办公自动化和计算机应用,而是需要综合的、集成化的解决方案。作为一种对常规性事务进行管理、集成的技术,工作流管理系统的出现是必然的。它可以改进和优化业务流程,提高业务工作效率;实现更好的业务过程控制,提高顾客服务质量等。 2.2.2 工作流管理系统组成 工作流管理系统的基本模型结构图23如图 2.1 所示,它主要包括如下七个部分的组件和数据。 软件构件外部产品软件构件外部产品/数据系统控制数数据系统控制数建模工具建模工具用户界面用户界面任务表管理器任务表管理器模型定义模型定义工作流控制数据工作流控制数据任务表任务表工作流相关数据工作流相关数据组织组织/角色模型数角色模型数被解释被解释应用应用应用应用工作流应用数据工作流应用数据维护维护使用交互调用更新操纵工作流执行任务使用交互调用更新操纵工作流执行任务监控管理系统管理员引用引用监控管理系统管理员引用引用工作流引擎工作流引擎 图 2.1 工作流管理系统的基本模型结构图23 过程定义工具 过程定义工具24(建模工具)被用来创建计算机可处理的业务过程描述。它可沈阳理工大学硕士学位论文 -8- 以是形式化的过程定义语言或对象关系模型,也可以是简单地规定用户间信息传输的一组路由命令。 模型定义 模型定义(过程定义)包含了所有使业务过程能被工作流执行子系统执行的必要信息。这些信息包括起始和终止条件、各个组成活动、活动调度规则、各业务的参与者需要做的工作、相关应用程序和数据的调用信息等。 工作流执行子系统和工作流引擎 工作流执行子系统也称为(业务)过程执行环境,包括一个或多个工作流引擎25。工作流引擎是 wfms 的核心软件组件。它的功能包括:解释过程定义,创建过程实例并控制其执行,调度各项活动,为用户任务表添加任务项,通过应用程序接口(api,application program interface)调用应用程序,提供监督和管理功能等。工作流执行子系统可以包括多个工作流引擎,不同工作流引擎通过协作共同执行工作流。 工作流控制数据 指被工作流执行子系统和工作流引擎管理的系统数据26, 例如工作流实例的状态信息、每一活动的状态信息等。 工作流相关数据 指与业务过程相关的数据。工作流管理系统使用这些数据确定工作流实例的状态转移,例如过程调度决策数据、活动间的传输数据等。工作流相关数据既可以被工作流引擎使用,也可以被应用程序调用27。 任务表和任务表管理器 任务表列出了与业务过程的参与者相关的一系列任务项,任务表管理器则对用户和任务表之间的交互进行管理。任务表管理器完成的功能有:支持用户在任务表中选取一个任务项,重新分配任务项,通报任务项的完成,在任务项被处理的过程中调用相应的应用程序等。 应用程序和应用数据 应用程序可以直接被 wfms 调用或通过应用程序代理被间接调用。通过应用程序调用,wfms 部分或完全自动地完成一个活动,或者对业务参与者的任务提供支持。与工作流控制数据和相关数据不同,应用数据对应用程序来讲是局部数第 2 章 相关理论基础及开发技术 -9- 据,对 wfms 的其他部件来说是不可见的。 2.2.3 工作流管理系统功能 一个完整的通用工作流管理系统应当包括七个部件,但工作流管理系统的核心部分是工作流执行子系统和工作流引擎,因此本节只对这两部分进行分析。 工作流管理系统的核心组成部分称为工作流执行子系统,它为创建、初始化和执行过程实例提供了一个运行环境。 在一个工作流执行子系统中可以包括一个或多个工作流引擎,前者是一种集中式的实现方式,而后者是一种分布式的实现方式。分布式的实现方式又可以分为同构和异构两种不同的情况。所谓同构是指在一个运行服务系统中包含了多个兼容的工作流引擎;所谓异构是指在工作流管理系统中包含了两个以上异构的工作流执行子系统。 工作流引擎是工作流管理系统的核心软件部件。它的主要功能有:解释过程定义,控制过程实例(创建、激活、挂起、终止等),按照过程定义已确定的业务逻辑调用各项活动,为用户任务表添加任务项,维护工作流控制数据和工作流相关数据,调用应用程序,提供监督,管理和审计功能28。 工作流执行子系统涉及四种数据:工作流控制数据、工作流相关数据、组织/角色模型数据和任务表。 第一种,工作流控制数据。指只由工作流执行子系统维护的内部控制数据,主要用于表示过程实例与活动实例的状态信息。 第二种,工作流相关数据。指与业务过程相关的数据,他们由应用程序或由用户通过任务项处理来产生和更新,工作流引擎根据相关数据来确定过程实例的状态转移,例如过程调度决策数据、活动间的传输数据等。 第三种,组织/角色模型数据。是描述组织结构的数据,主要用于确定任务项的执行者。 第四种,任务表。列出了与工作流参与者相关的一系列任务项。 2.2.4 工作流管理系统接口 工作流参考模型29如图 2.2 所示,其规定了五个接口,用于定义图中五个组件间的互操作规范。接口 1 是工作流服务和工作流建模工具间的接口,包括工作流沈阳理工大学硕士学位论文 -10- 模型的解释和读写操作。该接口为在不同物理或电子介质之间传递过程定义的信息提供了交互的形式和 api 调用函数。接口 2 是工作流服务和客户应用之间的接口,这是最主要的接口规范,它约定所有客户方应用与工作流服务之间的功能操作方式。接口 3 是工作流引擎直接调用的应用程序之间的直接接口。接口 4 是工作流管理系统之间的互操作接口。接口 5 是工作流服务和工作流管理工具之间的接口。 工作流执行服务工作流api与交互形式工作流机工作流机工作流客户端应用工作流机直接调用的应用其他工作流执行服务接口1接口4接口5接口2接口3工作流机工作流机 图 2.2 工作流参考模型29 2.3 采用的技术 2.3.1 struts 框架 基于 mvc 模式创建 struts 开放源代码框架的目的是便于开发人员基于 java servlet 和 jsp 技术构建 web 应用程序。struts 框架向开发人员提供了统一的体系结构,以此为基础,可以构建 internet 应用程序。并且 struts 框架的应用,使开发人员可以集中精力关注构建业务应用程序的工作,而不必顾虑体系结构的问题。struts 框架由 craigr.mcclanahan 于 2000 年创建,并捐赠给了 apache software foundation (asf)。 struts 框架是一种众所周知的并极为成功的 apache jakarta 工程。第 2 章 相关理论基础及开发技术 -11- jakarta 工程共同的目的任务是以开放和协作的方式,在 java 平台的基础上开发符合商用标准的服务器解决方案。 mvc 模式英文全称是 model-view-controller,即把一个应用的输入、处理、输出流程按照 view、model、controller 的方式进行彻底的分离,这样一个应用被分成三个层视图层、模型层、控制层。 视图层(view):代表用户交互界面。对老式的 web 应用程序来说,视图就是由 html 元素组成的界面,在新式的 web 应用程序中,html 依旧在视图中扮演着重要的角色,但一些新的技术己层出不穷,例如 xhtml,xml/xsl,wml等标识语言。随着应用的复杂性和规模性不断增加,界面的处理也变得具有挑战性。一个应用可能有很多不同的视图,mvc 模式对于视图的处理仅限于视图上数据的采集和处理,以及用户的请求,而不包括在视图上的业务流程的处理。业务流程的处理交给模型处理。比如一个退休职工的基本信息的视图只接受来自模型的数据并显示给用户,以及将用户界面的输入数据和请求传递给控制器和模型。 模型层(model):是业务流程和状态的处理以及业务规则的制定。业务流程的处理过程对其它层来说是黑箱操作,模型接受视图请求的数据,并返回最终的处理结果。业务模型的设计可以说是 mvc 最主要的核心。目前流行的 ejb 模型就是一个典型的应用例子,它从应用技术实现的角度对模型做了进一步的划分,以便充分利用现有的组件,但它不能作为应用设计模型的框架。它仅仅告诉你按这种模型设计就可以利用某些技术组件,从而减少了技术上的困难。mvc 设计模式是把应用的模型按一定的规则抽取出来,抽取的层次很重要,这也是判断开发人员是否优秀的设计依据。抽象与具体不能隔得太远,也不能太近。mvc 没有提供模型的设计方法,而只告诉你应该组织管理这些模型,以便于模型的重构和提高重用性。 控制层(controller):是从用户接收请求,将模型层与视图层匹配在一起,共同完成用户的请求。划分控制层的作用也很明显,它就是一个分发器,选择什么样的模型,选择什么样的视图,可以完成什么样的用户请求。控制层并不做任何的数据处理。例如,用户点击一个连接,控制层接受请求后,并不处理业务信息,它只把用户的信息传递给模型,告诉模型做什么,选择符合要求的视图返回给用户。因此,一个模型可能对应多个视图,一个视图可能对应多个模型30。 沈阳理工大学硕士学位论文 -12- 2.3.2 spring框架 spring 是一个开源框架,它由 rod johnson 创建。它是为了解决企业应用开发的复杂性而创建的。spring 使用基本的 javabean 来完成以前只可能由 ejb 完成的事情。然而,spring 的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何 java 应用都可以从 spring 中受益。简单来说,spring 是一个轻量级的控制反转和面向切面的容器框架31。 轻量:从大小与开销两方面而言 spring 都是轻量的。完整的 spring 框架可以在一个大小只有 1mb 多的 jar 文件里发布。并且 spring 所需的处理开销也是微不足道的。此外,spring 是非侵入式的,spring 应用中的对象不依赖于 spring 的特定类。 控制反转: spring 通过一种称作控制反转的技术促进了松耦合。 当应用控制反转时,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。 你可以认为控制反转与 jndi 相反不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。 面向切面: spring 提供了面向切面编程的丰富支持, 允许通过分离应用的业务逻辑与审计和事务管理等系统级服务进行内聚性的开发。应用对象只完成业务逻辑,仅此而已。它们并不负责甚至是意识到其它的系统级关注点,例如日志或事务支持。 容器: spring 包含并管理应用对象的配置和生命周期, 在这个意义上它是一种容器,你可以配置你的每个 bean 如何被创建基于一个可配置原型,你的 bean 可以创建一个单独的实例或者每次需要时都生成一个新的实例以及它们是如何相互关联的。然而,spring 不应该被混同于传统的重量级的 ejb 容器,它们经常是庞大与笨重的,难以使用。 框架:spring 可以将简单的组件配置、组合成为复杂的应用。在 spring 中,应用对象被声明式地组合, 典型地是在一个 xml 文件里。 spring 还提供了事务管理、持久化框架集成等基础功能,将应用逻辑的开发留给了开发人员。 所有 spring 的这些特征使你能够编写更干净、更可管理、并且更易于测试的代码。它们也为 spring 中的各种模块提供了基础支持。 第 2 章 相关理论基础及开发技术 -13- 2.3.3 hibernate 框架 hibernate 是一个基于 java 的开放源代码的持久化中间件,它对 jdbc 做了轻量级的封装,不仅提供 orm(object/relation mapping)映射服务,还提供数据查询和数据缓存功能,java 开发人员可以方便地通过 hibernate api 来操纵数据库。 orm 技术作为数据持久层的解决方案已经受到越来越多人的关注和重视。它的作用是在关系型数据库和对象之间做个映射。把对象模型表示的对象映射到基于 sql 的关系模型结构中去,这样,在具体的数据操作的时候,就不需要在和复杂的 sql 语句打交道,只要像平时操作对象一样操作它就可以。 hibernate 框架在应用程序中是位于数据持久层32,如图 2.3 所示,下面对图中的对象进行说明和介绍。 sessionfactory:对属于单一数据库的编译过的映射文件的一个线性安全的、不可变得缓存快照。它是 session 的工厂,是 connectionprovider 的客户。可能持有一个可选的数据缓存,可以在进程级别或集群级别保存事务中重用的数据。可能持有事务之间重用的数据的缓存。 会话 session:一个单线程的短期存活的对象,代表了在应用程序和持久化层之间的一次对话。封装了一个 jdbc 连接。也是 transaction 的工厂。保存必需的持久化对象的缓存,用于遍历对象图或者通过标识符查找对象。 持久化对象(persistent objects):生命期短期的单线程的对象,包含可持久化状态和商业功能。它们可能是普通的 javabeans/pojos,唯一特别的是他们现在从属于且仅从属于一个 session。一旦 session 被关闭,他们都将从 session 中取消联系,可以在任何程序层自由使用,例如直接作为传送到表现层的 dto、数据传输对象。 临时对象(transient objects): 目前没有从属于一个 session 的持久化类的实例。他们可能是刚刚被程序实例化,还没有来得及被持久化,或者是被一个已经关闭的 session 所实例化的。 事务(transaction): 在应用程序中使用的短期的单线程对象, 用于保证事务的原子性。抽象的应用程序可能是基于 jdbc、jta 或者 corba 事务的。一个session 可能是跨多个 transaction。 connectionprovider:一个可选的 jdbc 和 jdbc 连接池的工厂。抽象的应沈阳理工大学硕士学位论文 -14- 用程序是基于 datasource 或者 drivermanager。 transactionfactory:事务实例的工厂。对应用程序不可见,但可以被开发者扩展和实现。 使用 hibernate 框架的优点: hibernate是jdbc的轻量级的对象封装, 它是一个独立的对象持久层框架,和 app server、 ejb 没有什么必然的联系。 hibernate 可以用在任何 jdbc 可以使用的场合,例如 java 应用程序的数据库访问代码,dao 接口的实现类,甚至可以是bmp 里面的访问数据库的代码。从这个意义上来说,hibernate 和 ejb 不是一个范畴的东西,也不存在非此即彼的关系。 hibernate 是一个和 jdbc 密切关联的框架, 所以 hibernate 的兼容性、 jdbc驱动和数据库都有一定的关系,但是和使用它的 java 程序、app server 没有任何关系,也不存在兼容性问题。 hibernate 不能用来直接和 entity bean 作对比,只有放在整个 j2ee 项目的框架中才能比较。 并且即使是放在软件整体框架中来看, hibernate 也是作为 jdbc的替代者出现的,而不是 entity bean 的替代者出现的。 由于是对 jdbc 的封装,内存消耗少,最快的运行效率。 开发效率高,eclipse、jbuilder 等主流 java 集成开发环境对 hibernate 有很好的支持,在大的项目,特别是持久层关系映射很复杂的情况下,hibernate 效率高的惊人。 applicationtransient objectsdatabasehibernatesessionfactorytransactionfactorysessionfactorysessiontransactionpersistentobjectsjndijtajdbc 图 2.3 hibernate 在应用程序中所处的位置32 第 2 章 相关理论基础及开发技术 -15- 2.4 ssh 框架构造的系统架构 图 2.4 展示了利用 hibernate、struts 和 spring 构建的 j2ee 架构,本文所设计的动态工作流管理系统和公文流转系统都是基于这个架构实现的。 图 2.4 j2ee 架构图 控制层(struts 的 action) 服务层(spring 的事务属性,业务服务,实体对象) 持久层(hibernate 的 ormaping 和 jdbc) 数据库 视图层(struts 标签,自定义标签,html,jsp) 沈阳理工大学硕士学位论文 -16- 第 3 章 动态变更策略的研究 目前大部分工作流管理系统缺乏对动态性要求的支持。这些系统只允许在定义时对过程定义进行编辑和修改,一旦过程运行之后就不允许对其进行修改。这种限制使得它们仅适用于那些结构合理、运行时现实的业务过程与定义时计算机表示的过程完全吻合以及不需要动态扩展的业务过程。但是实际过程中有一些不是静态的,难以预测的意外事件或者异常的发生往往会导致实际过程与预定义的工作流过程存在偏差,这种情况的经常发生极大的限制了工作流管理系统的应用范围。本文所研究的动态工作流管理系统就是为了解决目前这些工作流管理系统缺乏动态性的问题。 本文所研究的动态工作流管理系统是对目前工作流管理系统的继承和发展。继承的是本系统保留了工作流管理系统包括的主要功能。发展的是本系统允许对正在执行的过程进行动态变更。 如何实现动态变更是本文研究的重点和难点。动态变更包括临时变化和演进变化两种。临时变化是指该变化只影响一个流程实例或一类流程实例,并不影响流程。导致特别变化的原因是:错误、稀少事件的发生、用户的某个特别指令等。异常通常会带来这种变化。一个比较典型的例子就是,当情况比较紧急时,需要跳过某个或某些任务执行以减少整个实例的执行时间。演进变化是指该变化对应流程的结构问题,即工作流过程逻辑发生了变化。在某一个时刻,系统中的某个流程发生变化,则正在运行的该工作流的实例都要受到影响。导致演进变化的主要原因是:业务策略发生变化,业务过程重组的结果,外部条件的永久性修改等。 本文对演进变化的支持是通过过程定义的动态变更来实现的。临时变化的支持是通过过程实例的动态变更来实现的。这两种动态变更策略都是通过工作流引擎来实现的。 3.1 过程定义的动态变更 过程定义的动态变更,最直接的方法是终止当前正在执行的过程实例,对过第 3 章 动态变更策略的研究 -17- 程定义进行修改,然后按照新的定义重新执行。这种方法的好处在于实现简单但较难让用户接受,因为以前完成的工作都必须按照新过程定义重新处理。因此,最好的方法是能够保证旧的过程定义能够平稳的迁移到新的过程定义。文献33 提出了工作流区域的概念,通过执行识别算法可将工作流模型由里向外逐级化简,同时可将当前运行区域和动态变更区域放在同一层次上进行排序。这种方法实现了旧过程定义向新过程定义的迁移,但这种方法过于复杂,且动态变更前后新旧工作流模型的复合问题尚需完善。本文的实现策略是对过程定义采用版本管理,通过版本替换算法动态地修改过程定义。 3.1.1 过程定义的版本管理 业务流程运行过程中,可能出现需要修改目前的过程定义形成新的过程定义,但还要保留原有过程定义的情况。这时系统就会出现多个版本的问题。因此需要协调多个版本的运行,控制不同版本的有效性。可以将版本的有效性分为两种:存在有效性和当前有效性。存在有效性是指如果按照过程定义的某一版本创建的过程实例仍然在执行中,那么称该版本具有存在有效性。当前有效性是指如果在创建过程实例时是依照过程定义的某一版本来创建的,那么就称该版本具有当前有效性。某过程定义的版本只能有一个当前有效性,可以有多个存在有效性。一个版本只有在具有当前有效性之后才可能具有存在有效性。在具体实现时,版本的存在有效性可以通过数据库中表的某条记录来体现。版本的当前有效性可以通过数据库表中记录的“有效性标志”来体现,可以用“有效性标志”为真来标识版本的当前有效性。版本的有效性判断的算法如图3.1所示 3.1.2 版本替换算法 过程定义变更时,根据企业的具体情况,可以采用以下策略: 新旧版本并行运行策略:原来的过程实例继续运行,新的过程实例按照过程定义的新版本运行。 重起策略:原来的过程实例全部强制终止,重新按照过程定义的新版本创建实例。 转移策略:原来的过程实例经过处理按照过程定义的新版本继续运行。 在过程定义变更的情况下,正在运行中的某工作流过程实例需要根据实际情 沈阳理工大学硕士学位论文 -18- 况进行判断:如果允许该实例按照过程定义的旧版本继续运行,那么只需要保证该实例对应的过程定义版本的存在有效性。如果要使该实例按照新的版本继续运行,可以采用版本替换进行处理,具体的处理方法包括:重启法和转移法。版本替换以后按照上面执行过程定义多版本的有效性控制,就可以确保新过程实例的正确创建和已存在过程实例的正确执行。 开始得到过程定义版本该版本在数据库中有记录数据库对应记录有效性标志位为真该版本具有当前有效性该版本被删除该版本具有存在有效性是否是否结束 图3.1 版本的有效性判断的算法 重启法 重启法是指将该实例强制终止,并按照过程定义的新版本重新创建实例。重启法的算法如图3.2所示。 转移法 转移法是指该实例不需终止,从过程定义的旧版本平稳迁移到新版本。这种方法一般用于过程实例不可随意取消且过程定义的新旧版本差别不大的情况下。这种版本替换方法可分为二个阶段: 第一阶段由管理员通过流程定制工具对过程定义进行修改,保证旧关键活动到新关键活动的平稳迁移。旧关键活动是指过程定义的新版本保留的旧版本的最后一个活动。新关键活动是指旧关键活动在新版本中的后继活动。平稳迁移是指旧关键活动的输出数据是新关键活动的输入数据。 第二阶段由管理员分析过程实例,由当前活跃的活动实例所在位置决定如何第 3 章 动态变更策略的研究 -19- 处理: 如果当前活跃的活动实例在旧关键活动位置以前,则不需要任何处理。 如果当前活跃的活动实例是由旧关键活动创建,则需要删除这个活跃的活动实例,然后重
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 缩鼻翼手术术后护理指南
- 物流质量工作总结
- 公司燃气安全培训内容记录课件
- 公司消防安全培训致辞课件
- 护理学核心认知体系
- 污染溯源课程标准解读
- 郎酒厂工作汇报
- 公司汽车处理流程课件
- 2025雇佣家庭保姆照顾小孩合同
- 运维专员转正工作总结
- 护患冲突与沟通管理要点
- 2025年公文写作试题及答案解析
- 2025广东云浮市检察机关招聘劳动合同制司法辅助人员17人考试参考题库及答案解析
- 2025江西南昌市西湖城市建设投资发展集团有限公司及下属子公司招聘40人备考考试题库附答案解析
- 2025年工程物探试卷及答案
- 2025年军休服务管理机构招聘面试中常见陷阱问题解析与应对方法
- 《丹青意蕴》第三课《国色新尚》课件 2025-2026学年+人教版(2024)初中美术八年级上册
- 2025年烟草专卖局公开遴选面试高分策略及模拟题答案
- 乳制品行业智能化奶源管理与追溯方案
- 医务人员职业道德准则(2025年版)全文培训课件
- 恒瑞医药2023ESG社会责任报告:关注员工成长共建美好家园
评论
0/150
提交评论