




已阅读5页,还剩48页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
通用的轻量级工作流系统项目设计方案1.1研究目的和意义工作流(Workflow)是一类能够完全或者部分自动执行的经营流程(BusinessProcess),根据一系列流程规则,文档、信息或任务能够在不同的执行者之间传递、执行。工作流管理系统是定义、执行并监控工作流的软件管理系统。工作流管理系统使商业流程以合理有效的方式实施,保证正确的信息在正确的时间到达正确的信息处理者,它更加有效的融入商业流程管理,将人们从繁杂的工作中解脱出来,提高商业流程管理的正确性、高效性和工厂、企业的生产效率。近年来,越来越多的研究机构和企业致力于工作流管理系统的研究。从现有的工作流产品来看,许多工作流产品都在不同程度上提供了对外部工具的集成功能,部分产品还提供了基于表单的应用逻辑的定制和开发环境。但是,外部工具的多样性和复杂性决定了对外部工具的集成难以做到无缝;而工作流产品内建的开发工具除了与流行的开发工具不兼容外,其开发功能往往都比较简单。因此,对于简单的应用(例如公文流转、订单的审批等),这些产品是合适的。但是,如果是开发关键业务的应用系统(特别是行业应用系统),现有工作流产品所能提供的开发功能是远远不够的。本文在对工作流技术进行深入的分析和研究的基础上,设计了轻量级工作流管理系统作为解决方案,它有别于传统的工作流管理系统,在设计上从够用、灵活和低成本的原则出发,不追求工作流管理系统功能的完备和复杂,只是实现其中必不可少的功能和特征;在使用上更加简单。由于这些特点,它将为使基于工作流技术的应用开发更加易于开发人员接受,提高了开发效率和可维护性,开发成本得到了降低。1.2课题研究现状目前,在全球范围内,对工作流技术的研究以及相关产品的开发进入了一个繁荣阶段,更多更新的技术被集成进来,Internet服务、数据库、电子邮件、移动式计算、文件管理等都已被容纳到工作流管理系统之中。随着工作流这一集成框架下所容纳技术的不断拓展与成熟,工作流管理系统将成为企业信息环境中不可缺少的软件平台,并将最终成为覆盖于各类台式机与网络操作系统之上的业务操作系统BOS(Business Operating System),带来业务操作系统的一次革命。经历了二三十年的发展,工作流产品基本上确定了它在计算机应用软件市场上的独立位置,在工作流这一框架下,比较基本的、主要的研究内容包括以下几个方面:(1)工作流管理系统体系结构的研究;(2)工作流模型与工作流定义语言;(3)工作流的事务特性:研究目的在于将高级事务处理技术与工作流管理技术相结合,用良好定义的模型语义与恢复机制来更好地支持企业的经营过程,提高工作流系统的可靠性与实用性;(4)工作流的实现技术:包括面向对象技术、异构分布式计算、图形用户界面、消息通信、数据库、WWW等在内的与工作流管理系统的设计实现有关的各项技术、方法;(5)工作流的仿真与分析方法;(6)工作流的集成与互操作技术:研究异构应用系统的集成以及不同工作流管理系统之间的互操作问题;(7)工作流与经营过程重组:研究如何通过工作流管理系统的实施来有效地实现企业的经营过程重组。尽管经过工作流产品供应商与工作流技术研究人员多年的不懈努力,使得工作流技术由最初的萌芽逐步发展起来,并取得了相当的成果,但是从工作流管理系统的实际应用状况来看,还远未达到人们所期待的普及状态。在经营过程中采用工作流管理系统的企业仍只是一少部分,而且这些系统的应用范围也很有限,并不能全方位地支持企业的关键业务流程。从企业用户应用的角度来分析,工作流产品亟需解决以下5个方面:(1)工作流的运行必须要有底层的通信基础结构的支持,但是就目前能够实现分布计算环境的产品来看,它们在实际应用中仍然显得不够成熟,在安全性、容错性、可靠性等方面均不能满足企业的需求,而且在价格上也给企业造成一定的负担。(2)统一的标准。不同的厂商所提供的工作流产品可能具有自己独立的一套工作流模型、工作流定义语言以及API函数。在这种缺乏标准的状况下,用户一旦选定一种产品之后,就很难再过渡到其他同类产品之上了。而且不同的系统之间缺乏互操作的接口。尽管工作流管理联盟的成立有助于改善这种情况。但若想实现类似于关系型数据库这样的统一标准(比如关系数据模型、SQL语言等),仍有很长的路要走。(3)提高系统开发的效率。工作流应用的开发不仅仅是过程的定义,还需要完成其他许多任务。比如,对外部的应用系统进行封装、建立工作流运行所必须的分布计算环境、设计开发相应的用户界面等等。目前的工作流产品,几乎不能为这些任务提供什么有力的帮助,所有的工作流应用都需要工作流产品供应商与应用开发人员进行很长时间的合作才能最终完成。另外,工作流管理系统的实施给企业带来的不仅仅是技术上的变化,同时也会对企业原有的管理制度造成一定的影响,这也是对企业的一种冲击。(4)工作流技术本身有待成熟。目前尚没有一种工作流产品或原型系统能够在过程执行的可靠性与一致性方面达到与关系型数据库管理系统同水平的功能。尽管在实际应用时对工作流管理系统并没有那样高的性能要求,但具备这样的能力对于一个工作流管理系统而言是很重要的,只有这样,才能使企业有信心采用工作流技术来对那些应用其他技术(如数据库)实现的关键任务应用进行重组。(5)工作流仿真评价方面的研究还处于萌芽阶段。应该说,在缺乏仿真方法与仿真工具支持的情况下,整个工作流管理系统是不完善的。因为人们难以预料所部署的工作流过程将有可能出现怎样的结果,它有哪些不合理的地方,其性能指标如何,这一切都必须等到实际运行以后才能由工作流管理系统所记录的数据中获得,显然,这并非是一种合理的方式。针对工作流进行仿真的难点主要在于:仿真的性能指标不好确定;仿真的内容较为复杂等。本课题的研究正是针对(2)(3)两个亟需解决的方面而提出的,专注于构建轻量级工作流管理系统,而面向对象技术及设计模式的发展为本课题的研究提供了必要条件。1.3主要研究工作为了实现轻量级工作流管理系统,本课题围绕以下几项主要工作展开研究:(1)工作流技术的基本概念的研究。具体的研究内容包括:WfMC的工作流标准,工作流参考模型,阅读并分析了大量有关工作流技术的资料及学术论文,对工作流技术的概念、特点进行详细的讨论和分析。(2)轻量级工作流系统的设计和实现。 1.4本文的组织安排本文共分四部分,具体的内容组织如下:第一部分:绪论。给出课题的研究研究目的和意义,提出论文的目标与主要内容。第二部分:工作流技术概述。介绍工作流起源发展和相关概念,并介绍工作流管理系统的体系机构、参考模型、工作流引擎、过程定义工具等。第三部分:轻量级工作流管理系统的研究与实现。分析了轻量级工作流管理系统的总结构。第四部分:论文总结。总结了本文工作所取得的成果,并对下一步工作提出了、展望。最后是参考文献和致谢。2、工作流技术概述工作流技术通过信息技术的支持为企业的经营过程提供了一个从模型分析、建立、管理、仿真到运行的完整框架,是实现业务过程管理与控制的一项关键性技术。工作流技术的出现和迅速发展为企业战略的实施提供了重要的技术支持。2.1工作流的相关概念业务流程(Business Process):一组用来实现一个商业或策略目标联的过程或行为,通常处于一个定义功能角色和关系的组织结构中。在某企业或机构中,它能够实现业务目标和策略的相互连和活动集,如公文处理流程、投保过程、银行客户的取款过程等工作流(Workflow):工作流是面向特定应用的业务流程的抽象务流程的整体地或部分地自动化处理,文档、信息或任务按照一动从一个参与者传递给另一个参与者处理。工作流引擎(Workflow Engine):工作流引擎为一个工作流实例环境。它提供的服务包括:过程模型的解释、过程实例的控制(活、暂停、终止等)、在过程各活动之间的游历(控制条件的计的传递等)、参与者的加入与退出、生成工作项通知用户进行处流控制数据和工作流相关数据的维护、调用外部应用和访问工作据等。工作流管理系统(Workflow Management System):运行在一个或流引擎上,使用软件来定义、创建和管理工作流执行过程的系统过程的定义,能与工作流参与者互动,并且能在需要时调用IT用软件。过程定义(Process Definition也称过程建模):计算机所能识别的的形式化描述,用来支持运行过程的自动化。流程一般被分解成程和活动以及它们之间的关系,其定义主要包括运行过程中所涉种数据和参数,如过程的开始和终止条件、各个工作环节(活动之间的控制流和数据流关系以及一些关于个体行为的信息,如组6与IT相关的应用和数据等。工作流模型(Workflow Model):工作流模型是对工作流的抽象表是对经营过程的抽象表示。工作流模型是使用工作流定义语言用域的业务过程形式化描述所得到的结果,它包含工作流执行所息。活动(Activity):活动是工作流中一些逻辑步骤或环节的工作任分为手工操作和自动处理两类。活动是流程执行中的最小工作单有人员的参与或由计算机自动完成。流程实例(Process Instances):流程实例是实际运行中的一个业每个实例代表一个能独立控制执行、具有内部状态的线程。在流行的业务流程中,WFMS将解释相应的过程定义,生产相关的活根据定义中的控制规则协调这些活动之间的顺序关系,同时根据关系的定义完成活动之间的数据传送。从参与者的角度来说,实实际上是由参与者处理他所涉及的那些环节的数据,完成该环节之后由WFMS根据相应结果激活后续环节,同时通知后续参与行处理,由此依次反复直至整个流程完成。活动实例(Activity Instances):活动实例是过程实例中的一个逻环节。工作项(Workitem):可被工作流参与者执行的活动实例的表示动实例通常产生一个或几个工作项,工作项通过赋予相关参与者表而被参与者所感知。任务(Task):活动和工作项的统一表示,在工作流定义的上下文动,在工作流实例的上下文中表示工作项。路由(Routing):工作流实例中任务间的关系,基本的路由关系(Sequence)、选择(Choice)、派生(Fork)、合并(Merg(Synchronization)等。组织(Organization):任务执行所需要的,一般指参与者,可以也可以是人。2.2工作流技术的发展与产品工作流技术的起源可以追溯到上个世纪80年代初期,一些公司、企业建立了自己专用的或者可商品化的表单传递应用系统(Forms routing applications),通常运行在大型机或小型机上,用于实现日常表单处理的电子化与自动化。这种表单传递应用系统解决了纸张在信息的处理、组织、存储以及查询检索方面都是低效的。这种系统可以看成是现代工作流管理系统的一个雏型。80年代中期,FileNet和View Star等公司率先把图像扫描、复合文档、结构化路由(Structured Routing)、实例跟踪、关键字索引以及光盘存储等功能结合在一起,形成了一种全过程支持某些业务流程的集成化的软件(包),这便是早期的工作流管理系统。这些公司就是开拓工作流产品市场的先驱者。这个时期比较典型的工作流产品有FileNet于1984年推出的WorkFlo Business System,View Star于1988年推出的View Star。这种集成化软件系统为企业简化与重组自己的关键业务流程提供了一种非常合适的方案,但是限于当时的计算机发展水平,它所集成的功能较为简单而已。90年代,工作流技术的标准化组织工作流管理联盟(Workflow ManagementCoalition)于1993年成立。它的成立标志着工作流技术在计算机应用研究领域之中被明确地划分出了自己的一席之地,相应的概念与术语也有了标准。在全球范围内,对工作流的技术研究以及相关的产品开发进入了更为繁荣的阶段,更多、更新的技术被集成进来,文件管理系统、数据库、电子邮件、移动式计算、Internet服务等都已被容纳到工作流管理系统之中。同时,随着计算机的普及、网络的延伸,现代企业的信息资源越来越表现出一种异构、分布、松散耦合的特点,企业的分散性、决策制定的分散性、对日常业务活动详尽信息的需求以及Client Server体系结构、分布式处理技术(CORBA,WWW,OLE,JAVA)的日益成熟,都说明了这样一个事实:集中式信息处理的时代已经过去,实现大规模的异构分布式执行环境,使得相互关联的任务能够高效运转并接受密切监控已成为一种趋势。在这种不可抗拒的技术背景下,工作流管理系统也由最初的创建无纸办公环境转而成为同化企业复杂信息环境、实现业务流程自动执行的必要工具。这样的一个转变,把工作流技术带入了一个崭新的发展阶段,使得人们从更深的层次、更广的领域上对工作流展开了研究。进入21世纪的今天,工作流技术的应用已经普及,工作流技术的研究主要分为两方面内容:一是为工作流技术的发展解决理论上存在的问题,探讨工作流模型和语义的形式化表示方法等;二是从工作流实现技术的角度探讨利用先进的技术提高工作流管理系统的性能和可靠性。工作流技术的研究方向主要集中在以下几个方面:(1)分布式系统;(2)构件化设计,主要为了增强系统的扩展性;(3)基于事件的工作流管理系统;(4)基于Web的工作流系统,这种B/S结构系统逐渐成为当前的主流;(5)支持动态建模的工作流系统;(6)异常的处理和错误恢复问题;(7)融入事务管理概念;(8)支持各种平台,如移动嵌入式系统平台;(9)支持离线操作;(10)支持定制界面。近年来,工作流产品的市场逐年增长,市场上已经有许多商家的各种工作流产品,根据不同工作流系统所采用的任务项传递机制的不同可以把当前的工作流产品分为以下四类:(1)基于文件的工作流系统以共享文件的方式来完成任务。这种类型的产品是产生最早、发展最成熟、最具多样性的,通常包含有Client Server模式的图像、文档与数据库管理系统.代表产品有FileNet的Visual WorkFlo,IBM的FlowMark,InConcert的InConcert。(2)基于消息的工作流系统通过用户的电子邮件系统来传递文档信息。这种类型的产品都已实现了与一种或多种电子邮件系统的集成。代表产品有Novell与FileNet合作开发的Ensemble、JetForm的InTempo,Keyfile的Keyflow。(3)基于Web的工作流系统通过WWW来实现任务的协作。这一类产品起步较晚(在1995年以后),但是发展迅速,已成为一种最新的市场流行趋势。许多供应商纷纷开发新产品或者在原有产品的基础上增加对Web的支持。代表产品有Action Technologies的Action Works Metro,Ultimus的Ultimus。(4)群件与套件系统依据划分标准,这一类产品与前面3种有很大程度的重叠,但是在这里却有必要把它们单独划分成一类,因为这类产品都需要依赖自己系统的应用基础结构,包括消息传递、目录服务、安全管理、数据库与文档管理服务等,它们本身就构成了一个完整的应用开发环境。代表产品有IBM Lotus的Lotus Notes,Microsoft的Office与Exchange,Novell的GroupWise。2.3工作流管理系统工作流管理系统(WfMS,Workflow Management System)是指运行在一个或多个工作流引擎的软件上用于定义、实现和管理工作流运行的一套软件系统,人机交互,推进工作流实例的执行,并监控其工作状态。工作流管理系统可称为企业的业务操作系统。2.3.1工作流管理系统的功能每个业务过程都有一个生命周期,从几分钟到几天(甚至数月),由过程的复杂性与组成活动的持续时间来决定。有多种方法实现工作流管理系统,使用多种IT和通讯组件,运行环境可以从一个小的本地工作组到企业间。因此,WfMC参考模型从各种角度考虑工作流管理系统,希望提供各种不同的实现技术、运行环境。虽然不同的工作流管理系统具有不同的应用范围和不同的实施方式,在过程建模和工作流引擎的设计和实现方式上不同,但所有的WfMS表现出某种共同的特性,这为不同产品间的集成、协同工作提供了基础。所有的工作流管理系统都相同的特性,即为下边的三个功能提供支持:(1)建立时期(Build-time)功能,定义、模拟工作流过程,及其组成活动。建立时期的功能负责产生业务过程的计算机化定义。在这个阶段,通过使用一个或多个分析、建模和系统定义工具,把实际中的业务过程转变成形式的、计算机可以处理的定义。通常把定义的结果称为过程模型、过程模板、过程元数据、或者过程定义。在本文中,称为“过程定义(process definition)”。过程定义由一些列的分散的活动、相关的计算机、人员操作、活动间控制过程进程的规则构成。可以用文本、图形或者语言符号来表示过程定义;(2)运行时期(Run-time)控制功能,在运行环境中管理工作流过程,管理不同活动执行顺序。在运行时期,过程定义由负责创建、控制过程实例的软件所解释,这个软件还要负责安排过程中各个活动的执行时间,调用适当的人员、IT应用程序资源等。这些运行时期的过程控制功能就象过程定义中描述的过程与现实所见到的实际过程间的链接,反映在运行时期的与用户和IT应用程序间的交互。核心组件是基本的工作流管理控制软件(引擎,engine),负责过程的创建和删除,控制运行过程中活动的执行时间安排,以及与人或应用工具资源进行交互。引擎经常是分布在多个计算机平台上的,用来处理地理上分布的操作过程;(3)运行时期与用户、IT应用程序(工具)的交互。在活动间转移控制、确定过程的运行状态、调用应用工具、传递适当的数据等,都必须与过程控制软件进行交互。制定标准的框架来支持这种交互,可以在多工作流系统中使用一致的接口,可以开发工作于不同工作流产品中的通用应用工具。具体见图2-2。图2-2工作流管理系统特性图2.3.2工作流管理系统的体系结构尽管市场上的工作流产品是各种各样的,但是已证明可以构建一个通用的工作流系统实现模型,这个模型可以适用于市场上的大多数产品,因此为开发协同工作的工作流系统奠定了基础。通用工作流管理系统的体系结构如图2-3所示:图2-3工作流管理系统的体系结构图(1)过程定义过程定义是用来创建一个计算机可以处理的形式的过程描述。可能要以形式过程定义语言、对象关系模型、简单的系统、脚本、或者在参与者间进行信息传递的路径集为基础。过程定义包含工作流执行软件运行过程所需的过程所有详细信息。包括过程的开始和结束条件、组成活动、在活动间进行导航的规则、需执行的用户任务、可能会被调用的应用程序、所有工作流相关数据的定义等。过程定义可能会涉及到一个组织/角色模型,模型包含组织结构和组织中的角色等信息。从而使过程定义,在与具体活动或信息对象相关的组织实体和角色功能方面十分详细。工作流执行服务器负责把工作流运行环境中的参与者与相应的组织实体或角色联系起来。过程定义与(运行时期)工作流相关数据协作,一同用来控制过程中活动的、提供活动的进入与退出条件、不同活动的并行执行、顺序执行选项、用户任务、与每个活动相关的IT应用程序等。如果过程定义包括组织模型/角色实体类型,那么完成以上任务,需要访问组织/角色模型数据。(2)过程定义工具过程定义工具是以计算机能够处理的形式进行过程的描述。它可以基于形式化的过程定义语言,也可以是对象关系模型。对于最简单的系统,也可以采用脚本或一组路径选择命令的方式来描述信息在不同的参与者之间的传递。过程定义工具可以是工作流管理系统的一部分,也可能作为业务过程分析产品的一部分来提供给用户。如果是后者,则该工具必须能够提供和理解工作流管理系统所使用的特定格式的过程定义,即不同的过程定义工具可以输人输出相同格式的过程定义信息,同一工作流产品可以运行不同过程定义工具产生的过程定义信息。为了实现不同工作流产品之间的互操作,必须要有兼容的转换格式,与运行时期的工作流软件进行过程定义的相互转换。因此,工作流接口的标准化和规范化非常必要。(3)工作流执行服务和工作流引擎工作流执行服务负责解释过程定义、控制过程实例、安排活动的执行顺序、向用户工作表中添加工作项目、调用应用工具。工作流执行服务通过一个或多个工作流引擎为过程实例和活动的执行提供运行环境,主要完成以下功能:1)过程定义的实例化:解释已由过程定义工具产生的需要执行的过程定义,根据过程定义和过程执行所需要的初始条件和执行参数,初始化过程执行环境;2)控制过程实例和活动实例的状态转换;3)为过程执行导航:依据过程定义和工作流相关数据来导航过程实例,如根据过程定义中的起始和结束条件启动和结束过程实例;根据活动间的关联和转移条件决定需要开始执行的下一个或多个活动等等;4)与外部资源的交互:工作流执行服务与外部资源的交互方式主要有两种,即活动参与者应用接口和应用程序调用接口。对于活动参与者应用接口,工作流引擎通过图2-3中所示的任务表管理器,基于工作列表和活动参与者进行数据交换。而对于需要调用相应应用程序、组件或Web services来自动化完成的情况,应该采用标准化的接口或中间件性质的代理方式,其中代理方式更为灵活,不同的应用只需进行相应的二次开发即可实现自动调用;)维护工作流控制数据和工作流相关数据:过程实例在执行的过程中需要维护不同过程和活动实例的内部状态信息,以及工作流引擎用于协调和恢复的各种检查数据和恢复/重启信息等,还包括需要向用户传递和用户输入的相关数据。工作流引擎负责执行服务器中的部分(或者全部)运行控制环境。WfMC对工作流引擎的定义是:为工作流实例提供运行时期的执行环境的软件服务器或引擎。工作流引擎是工作流管理系统的心脏,是业务处理过程的任务调度器,在某种程度上还是资源的分配器。在采用工作流管理系统支持经营过程中,工作流引擎可以看成是一个业务操作系统BOS(Business Operating System)。业务过程在它的管理、监控之下运行,因此工作流引擎的性能和可靠性就直接决定了业务过程的运行效率和安全性。工作流引擎主要完成以下功能:1)实例化及执行工作流流程模型:解释工作流流程模型定义,根据流程执行需要的初始条件和执行参数生产工作流实例,运行流程实例并管理其运行过程。这里需要指出的是,一个流程模型实际是业务过程的一个模板,它可以被执行多次,也可以有多个有关这个流程模型的实例在同时运行。如文档处理流程,每当来了一个新的文档时,它都启动一个新的工作流程,只不过每个流程处理的文档不同而已。因此,运行多个文档处理流程的模型的实例意味着有多个文档在被处理。2)为流程和活动的执行进行导航:根据流程定义和工作流相关数据,为流程实例的运行进行导航,如根据流程的进入和退出的条件启动和终止一个流程实例;根据活动之间得关联和活动得执行条件,决定并行或串行执行后继活动;给用户提供需要操作的工作流工作项信息,或者根据所需激活的应用程序信息启动相应的应用程序等。3)与外部资源交互完成各项活动:工作流执行服务通过两种途径完成与外部资源和用户的交互:客户应用接口和直接调用应用接口方式。对于客户应用方式,工作流引擎通过任务项列表供用户进行选择,并记录监督工作项的完成情况,由用户完成从流程管理提供的任务列表中选择相应的任务项并在需要的时候调用应用工具完成相应任务的执行。在任务完成后,用户需要修改相关任务的状态,如置完成标致,供流程管理器使用。对于直接由工作流引擎启动的活动,由工作流引擎直接调用相应的应用来完成,这些自动执行的应用同样需要讲合适的预先定义好的应用执行完成情况反馈给工作流引擎。工作流引擎自动调用的应用主要是针对基于服务的无需用户参与的应用,即自动化活动。如在某个设计图纸完成电子会签后,自动进行版本发布并将图纸归档。)维护工作流控制数据和工作流相关数据:工作流在执行过程中要维护不同过程和活动实例的内部状态信息,以及用于协调和恢复的各种检查数据和恢复/重启信息,还包括用户传送的必要的相关数据,主要是流程历史信息。(4)工作流各种相关数据1)工作流控制数据(Workflow Control Data)是由工作流引擎所管理的系统数据。工作流运行服务利用这些控制数据来识别每个过程以及活动实例的状态。用户、应用程或其它的工作流执行服务,工作流引擎不能对其进行直接读写操作,它们可以通过向工作流引擎发送消息来获得工作流控制数据;2)工作流相关数据(Workflow Relevant Data)是工作流管理系统用来确定过程实例状态转换的数据。工作流数据可以被应用程序使用,也可由工作流执行系统在活动间传递;3)工作流应用数据(Workflow Application Data)是因应用软件而异,且工作流管理系统无法访问的数据。工作流运行服务不能访问和产生工作流应用数据,该数据仅与应用程序或活动任务有关。(5)任务表管理器和用户界面任务表管理器是工作流管理系统用来管理活动参与者与工作流执行服务之间交互的一个组件,它最基本的功能就是负责向用户列出需要其参与的活动和用户关心的进展中的过程实例,并负责通过工作列表与工作流执行服务进行交互。在一些更高级的系统中,任务表的处理可能更智能化,任务表管理器可以控制任务在具有相同角色的用户间基于负载平衡、个人能力、人员在位情况等进行分配或重分配。在工作流参考模型中,更广泛地使用“客户端应用程序”这个词,而不是“任务表管理器”,从而反映其潜在的广大使用范围,其包含任务表处理功能的同时也包含过程控制功能。在图2-3中,用户界面是一个单独的软件组件,负责提示和处理用户对话框,并控制用户的本地接口。在某些系统中,用户界面可能会与工作列表管理器组合到一起,构成一个简单的功能实体客户端应用程序。可能希望一些客户端应用程序能够和几个不同的工作流服务器进行交互,从而把服务器中的任务以统一的格式通过公共用户接口提供给用户。可能会需要调用本地应用程序来辅助用户完成特殊的任务,这由工作列表管理器来负责。在工作列表管理器/用户界面中调用应用程序与工作流执行软件直接调用应用程序,有明显的不同。(6)管理操作工作流管理系统中有许多以工作站点或者用户的管理权限为基础的管理功能。这些管理功能使得管理者,可以执行或者修改任务分配规则,确定过程中组织角色的参与者,跟踪遗漏的最终期限报警或根据某些事件跟踪某一过程实例的运历史,查询任务吞吐量或其它统计信息等操作。使用分布式工作流的地方,可能需要特殊的命令来在不同的工作流之间传递控制操作或者局部响应,从而提供一个单一的管理接口。上述的体系结构适用于大多数工作流产品,但并不是所有的产品在每个不同的系统功能组件间,都提供外部接口。一些产品把几个功能组件作为一个逻辑实体来实现,并把接口包含在软件组件的内部,导致无法被第三方产品使用。WfMC规范定义了每个接口在实现多工作流系统协同工作中的作用,因此,可以鉴别单独的产品是否符合协同工作标准。2.4工作流参考模型为了实现不同工作流产品间的协同工作,WfMC于1994年11月29日发布了如图2-4所示的工作流参考模型(Workflow Reference Model)。工作流参考模型来源于对普通工作流程序结构的分析,确定结构中的接口,这些接口可以使不同产品在不同的结构层次上协同工作。所有工作流系统都包含一系列的公共组件,组件间采用一套被定义好的方法进行协作;不同的产品在这些公共的组件中,会表现出不同的处理能力。为了实现不同工作流产品间的协同工作,需要在这些组件间制定一套标准的接口和数据交换格式。通过实现这些标准接口,可以达到产品间的协同工作。图2-4工作流参考模型图工作流执行服务(Workflow Enactment Service):由一个或多个同构或异构的工作流引擎组成,用于创建、管理和执行流程实例的软件服务。应用系统可以通过工作流应用编程接口WAPI(Workflow API)来访问该服务。执行时接口4负责传递异种工作流执行服务间的活动或者子流程。流程定义工具(Process Definition Tools):提供工作流定义服务,包括各种分析、描述和保存商业流程的各种应用工具,它输出可被工作流执行服务所识别的流程定义。过程定义与工作流引擎通过接口1交互,接口1实现不同工作流定义工具与不同工作流执行服务间的互操作性。工作流客户端应用(Workflow Client Applications):是工作流的实现组件,通过它用户可以激活与各种流程活动相关的客户端应用系统,实现与工作流执行服务的交互。工作流客户端应用是通过接口2与工作流引擎和任务列表的访问。被调用的应用(Invoked Application):被工作流执行服务调用的用于实现工作流活动内容的应用系统。接口3提供了一系列的APIs供工作流执行服务和应用程序使用,它可以调用必要的应用程序来执行活动。管理和监控工具(Administration&Monitoring Tools):提供工作流管理系统管理和监控的工具,包括用户管理、角色管理、审计管理、资源管理、流程监控管理等。接口负责操纵管理和监控功能,包括用户管理、角色管理、审计管理、资源控制过程管理和过程状态等。2.5小结本部分首先阐述了工作流技术的概况,介绍了工作流技术的发展历史与市场上的工作流产品,介绍了工作流技术的一系列基本概念、工作流管理系统,WfMC提出的工作流参考模型的相关理论。本章的内容将为轻量级工作流引擎的设计与实现提供理论基础。3轻量级工作流管理系统的设计与实现3.1轻量级工作流管理系统概念3.1.1传统工作流管理系统从现有的工作流产品来看,许多工作流产品都在不同程度上提供了对外部工具的集成功能,部分产品还提供了基于表单的应用逻辑的定制和开发环境。但是,外部工具的多样性和复杂性决定了对外部工具的集成难以做到无缝;而工作流产品内建的开发工具除了与流行的开发工具不兼容外,其开发功能往往都比较简单。因此,对于简单的应用(例如公文流转、订单的审批等),这些产品是合适的。但是,如果是开发关键业务的应系统(特别是行业应用系统),现有工作流产品所能提供的开发功能是远远不够的。其次,许多针对数据库管理系统DBMS的开发工具提供了极强的应用开发手段,但是这些开发工具往往不具备对工作流机制的支持,而现有的工作流产品出于其出发点不同,很难与其它开发环境有机地融合在一起。因此开发人员往往苦于找不到一套合适的工作流支撑系统来开发具有工作流特征的应用。还有,具有工作流特征的应用的形态千变万化,要想在工作流系统中对不同的应用(括应用数据)进行统一的表示往往不遂人意.利用这种所谓灵活的工作流系统开发出来的应用在实际运作过程中反而表现不灵活。因此,另外一种相反趋势是,应用的逻辑仍旧采用应用开发工具去完成,工作流引擎只管理相关的控制数据,对应用数据只提供必要的关联手段将其与控制数据链接在一起。综上所述,传统工作流管理系统的设计从提供功能齐全的工作流服务角度出发,不可避免地导致了系统架构极为庞大,系统的复杂性也随着增大。同时传统的工作流管理系统提供的功能是以集成的方式实现,从数据存储到运行环境往往都有自己的一整套独特的体系结构,因而想从中分离出某个功能,将会是一件非常困难的事情。由于这些问题的存在,使得传统的工作流管理系统不能快速地根据具体的应用需求定制,灵活地集成到应用系统。3.1.2轻量级工作流管理系统轻量级工作流管理系统是相对传统的工作流管理系统而提出的,与传统的工作流管理系统相比,在设计上从够用、灵活和低成本的原则出发,不追求工作流管理系统功能的完备和复杂,只是实现其中必不可少的功能和特征;在使用上更加简单。3.2系统概述本系统从功能上来说,并不算很完备,但是拥有了办公自动化系统的最核心部分工作流系统。本系统在保证安全性方面,使用了角色的概念,其中角色包括:匿名用户角色、职员角色和超级管理员角色,主要完成以下功能:3.2.1 匿名用户角色个人资料管理,包括查看和修改个人资料及密码。3.2.2职员角色部分日程安排,包括创建、修改和删除日程安排。公文传阅,包括新建、修改和审批公文。公文模板,包括新建、修改和显示公文模板。公文流转,包括新建、修改和显示工作流个人资料,包括查看和修改个人资料3.2.3管理员角色功能部分添加用户查看用户信息修改用户权限修改用户密码删除用户3.3系统预览图3-1是匿名用户登陆后的首页,该用户只有更改和查看个人资料权限图3-1匿名用户角色登陆后的权限图3-2为职员用户登陆后的界面。这是一个备忘提醒页面,就像Outlook一样,会提醒可登陆用户今天该完成的日志安排和未处理的公文。图3-2职员用户登陆后的界面图3-3是为管理员用户登陆后的界面,拥有管理员角色的用户可以对用户的权限进行管理图3-3管理员角色登陆后的界面3.4系统特点本系统具有以下特点。使用用户控件将页面模块化,将页面分解为几个模块,例如页面的头尾和导航树等。每个模块都以用户控件构成,再配合MasterPage,大大提高了开发效率。本系统采用目前比较流行的B/S模式下MVC三层架构设计,即程序逻辑结构分为用户界面层、业务逻辑层和模型层。三层在实际的物理结构上也是独立的,业务逻辑层采用cs类来实现,用户界面和业务逻辑分离,系统的安全性、可维护性、重用性和可扩展性都都大大提高。人性化设计,本系统导航的一个亮点就是导航明晰。使用Theme与Skin技术,使用ASP.NET2.0的Theme与Skin技术后,不必精心设计每个页面,而只需要设计一次Theme,便可应用与整个网站,而且为将来更换网站风格带来极大的便利。3.5系统需求分析本系统在保证安全性方面使用了角色的概念,其中角色包括:匿名用户角色、职员角色和管理员角色,每个角色能完成的功能如下。3.5.1可登陆用户的基本功能(1)登陆。(2)个人资料。查看自己的个人资料(且只能查看自己),包括用户名(唯一且只读)、姓名、性别、年龄、电话、手机、E-Mail和住址。修改自己的个人资料,包括密码、姓名、年龄、电话、手机、E-Mail和住址。3.5.2公司职员具有的功能(1)个人日程安排添加个人日程安排,输入包括事件的开始事件、事件的结束事件和事件的内容。按事件的开始时间顺序列出个人未超期的日程安排详细信心。根据事件的ID来修改个人的某项日程安排,可修改的项包括事件的开始事件、和事件的结束事件和事件的内容。删除个人的日程安排。(2)工作流创建新的工作流,每个用户创建的工作流的名字都不能相同,也不能为空,输入字段包括工作流名称、工作流描述、工作流流转过程。删除没有被使用的工作流,如果工作流当前没有使用,则可以将它删除。查看工作流,包括查看工作流列表和查看工作流详细信息。(3)公文流转新建一个公文,输入公文字段包括公文描述、文档和选定的工作流。处理公文,可进行的操作根据选定的工作流来定,可能包括查看、签字、回退、修改和完成。当用户选择“查看“或者”签字“后,该公文将自动传给下一个用户;当用户选择”回退“的时候,该公文自动转给前一个用户;当用户选择”修改“的时候,用户将进入修改公文的界面以对公文进行修改;当用户选择”完成“的时候,该公文被标志为完成。查看未处理的公文列表,显示的内容包括公文描述。3.5.3系统管理员具有的功能管理用户。添加用户,包括用户名(唯一且只读)、姓名、性别、年龄、电话、手机、E-Mail和住址和权限。删除用户。修改用户权限。修改其他用户的用户密码。3.6系统基本框架3.6.1功能上划分从功能上来看,主要有以下一些功能:日程安排管理、公文管理、公文模板、工作流和用户管理。1)个人工作安排管理查看个人日程安排添加个人日程安排修改个人日程安排删除个人日程安排2)公文流转添加新公文查看未批公文处理公文3)用户管理验证用户名和密码修改用户个人资料删除用户4)工作流管理添加工作流删除工作流查看工作流3.6.2角色上划分本系统有三个角色,不同的角色有不同的权限匿名用户角色(LoginRole)职员角色(ClerkRole)系统管理员角色(SysAdminRole)根据上面的功能分析,画出各个角色的功能模块图如下图所示:匿名用户角色的功能模块如图3-4所示匿名用户角色模块登陆个人资料管理查看我的个人信息更新我的个人信息修改密码图3-4匿名用户角色的功能模块图职员角色的功能模块如图3-5所示职员角色功能登陆日程安排公文模板公文传阅工作流添加日程安排修改日程安排删除日程安排查看日程安排列表添加公文模板修改公文模板删除公文模板显示公文模列表板更新公文发布新公文查看公文列表处理公文更新公文新建工作流修改工作流删除工作流显示工作流列表图3-5职员角色的功能模块图管理员角色的功能模块如图3-6所示职员角色功能登陆用户管理添加用户删除用户查看用户权限修改用户权限查看用户列表修改用户密码图3-6管理员角色的功能模块图3.6数据库的设计3.6.1数据库需求分析通过以上功能分析,得出一下需求信息。用户有权限管理,每个用户有一定的角色,角色分为3类:匿名用户角色、可登陆用户角色和超级管理员用户角色。用户表中必须包含权限这一属性。匿名用户登陆后可维护自己的个人信息,包括查看修改自己的信心和修改自己的密码。用户表必须记录用户的各种信息,包含:用户名、用户密码、电子邮件、电话、移动电话、地址和权限。拥有职员角色的用户可以进行办公操作,包括创建、修改和删除日程安排,新建修改和审批公文,新建、修改和显示公文模板,新建、修改和显示工作流。日程安排表至少能够记录所属用户、开始时间和内容等信息。审批公文表中应该至少能够记录主题,使用的工作流、当前处于的状态、内容等信息。公文模板中应该至少能够记录所属用户、主题、工作流程中的每个流转和描述等信息。流转表中应该至少能够记录所属的工作流、该动作的处理者、该动作要进行的操作等信息。拥有管理员角色的用户可以进行一些用户类的操作,包括:添加用户、查看用户信息、修改用户权、修改用户密码和删除用户。3.6.2数据库概念结构设计由上面的分析,可以设计出满足需求的各种实体。用户与日程安排之间的日程安排如图6-1所示图6-1用户和日程安排之间的E-R图用户与工作流及工作流转换之间的E-R图如图6-2所示图6-2用户与工作流及工作流转换之间的E-R图用户与公文模板之间E-R图如图6-3所示图6-3用户与公文模板之间的E-R图用户与公文之间E-R图如图6-4所示图6-4用户与公文之间的E-R图用户与已处理公文模板之间的E-R图如图6-5所示图6-5用户与已处理公文之间的E-R图用户实体E-R图如图所示用户用户ID用户名密码电子邮件电话地址角色ID图6-6用户信息实体E-R图日程安排实体如图6-7所示日程安排所属用户开始事件内容图6-7日程安排信息实体如图3-13所示公文模板信息实体E-R如图6-8所示公文模板所属用户主题内容图6-8公文模板信息实体E-R图工作流实体E-R图如图6-9所示工作流所属用户主题描述图6-9工作流实体E-R图工作流转换实体E-R图如图6-10所示转换所属用户开始事件内容图6-10工作流中的转换实体E-R图公文实体E-R图如图6-11所示公文主题内容是否为草稿当前等待的转换所属工作流是否可签字是否可查看是否可修改是否可回退图6-11公文实体E-R图已处理公文实体E-R如图6-12所示已处理公文公文ID所属用户图6-12 已处理公文实体E-R图3.6.3数据库逻辑结构设计下面每个表中在数据库中显示为一张表,总共有用户表、日程安排表,公文模板表、工作流表、公文表、已处理公文表和角色表。表6-13为用户表,记录用户的信息表6-13用户表(T
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年挖掘机保险合同范本
- 四年级英语核心短语汇编及练习
- 2025合同样本:餐厅经营承包合同范本
- 教育培训机构人事管理工作总结模板
- 2025年乡镇企业租赁合同
- 第四课 情绪万花筒教学设计-2025-2026学年初中心理健康七年级鄂科版
- 2025年版个人抵押借款合同范本
- 智能家居系统设计与用户方案
- 3.4.1光合作用(第1课时科学家光合作用的探索历程)教学设计-北师大版生物七年级上册
- 医院感染防控管理流程与指引
- 压力容器使用单位安全员题库
- 2025届高考英语大作文读后续写写作思路与技巧课件
- 翻译在文化遗产保护中的作用
- 大数据产业大数据应用技术创新与实践计划
- 高一英语新教材全四册单词表汉译英默写(2019新人教版)
- 宜家家居案例分析
- 不锈钢安装协议书范本(二篇)
- LS-T 8014-2023 高标准粮仓建设标准
- 课件0-6岁儿童健康管理
- 屋顶分布式光伏发电施工组织设计
- 《会计基础工作规范》课件
评论
0/150
提交评论