硕士论文-工作流技术.doc_第1页
硕士论文-工作流技术.doc_第2页
硕士论文-工作流技术.doc_第3页
硕士论文-工作流技术.doc_第4页
硕士论文-工作流技术.doc_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

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

文档简介

摘要论文题目:基于XML的轻量级工作流管理系统学科专业:计算机软件与理论研究生: 王涛 签名: 指导教师:隋连升 副教授 签名: 摘要在现代企业的日常工作中,越来越多的工作需要多个员工的共同参与和协作。一项复杂的工作往往在不同的阶段需要不同的参与者来完成相应的工作,然而现有的一些管理信息系统在协调多个参与者的活动以完成某个共同的任务方面,又有着严重的不足。工作流管理系统通过采用工作流技术,有效的解决了这方面的问题。目前工作流技术己经被广泛应用于办公自动化、电子政务等领域,是实现企业业务过程建模、过程管理与集成,最终实现业务过程的自动化的核心技术。工作流技术的实施己经成为企业完善经营过程、提高自身竞争力的一种重要手段。本论文对工作流技术和工作流管理系统进行了分析,并以WFMC(Workflow Management Coalition,工作流管理联盟)的工作流参考模型为依据,设计了一个基于XML的轻量级工作流管理系统。在此基础上采用.NET、XML、B/S等先进技术,实现了该工作流系统。在工作流引擎设计中,提出了从工作流模型中提取出工作流元数据模型;采用基于XML的过程定义语言XPDL来描述工作流模型,能有效地定义业务过程中的活动、规则以及参与者之间的关系;采用基于角色的访问控制(RBAC)方式,满足了企业组织机构交叉复杂的需求;设计并实现了工作流引擎的关键模块;使用关系数据库存储工作流模型和工作流的相关数据;最后,将工作流技术应用在公文流转系统中。关键词:工作流;工作流管理系统;工作流引擎;XML;.NET;公文流转系统55Title: LIGHTWEIGHT WORKFLOW MANAGEMENT SYSTEM BASED XMLMajor: Computers Software & TheoryName: Wang Tao Signature: Supervisor: Associate prof. Liansheng Sui Signature: AbstractNowadays, more and more routines of modern enterprises need joining and collaboration among employees. They often involve in different parts and deal with different parts of a complicated task. But most of the existing management information systems fall short of harmonization for multi-colleagues involved in the joint task. WFMS (Workflow Management System) can efficiently solve this problem by using the workflow technology. Nowadays, Workflow technology has being widely applied in the fields of office automation and electronic government, etc. It is the core technology to realize modeling, managing and integrating of enterprises business process and also the automation of business process. The implement of workflow technology has become an important method to improve the business process and the competitiveness of enterprises.Firstly, the paper analyzes workflow technology and workflow management system. According to the model and structure made by Workflow Management Coalition(WFMC),the paper designs the lightweight WFMS based XML and some advanced technologies such as .NET, XML, B/S is used. Secondly, During the implement of workflow engine, workflow meta-model is introduced and extracted from workflow model. Process definition language based on XML can be used to define workflow. In this way, the activities, rules and participators relations of enterprises business process are defined more efficiently. Thirdly, Role-Based Access Control is applied in organization models design to meet the requirements of complex organization in enterprise. Workflow engine is designed and realized. Database technology is used to store the workflow model and the workflow relative data. Finally, the Workflow technology is applied in the document running system.Key words: Workflow;workflow Management System;Workflow Engine;XML;.NET;Document Running System目录目 录1 前言11.1 课题背景11.1.1 课题的引出11.1.2 工作流管理技术的优点11.2 国内外工作流技术的研究现状及预测21.2.1 工作流技术的研究现状21.2.2 工作流管理技术的研究课题31.3 本课题完成的工作31.4 论文章节安排42 工作流技术基础52.1 工作流的定义52.2 工作流管理系统52.2.1 过程建模62.2.2 工作流运行控制72.2.3 工作流管理中的人机交互72.3 工作流管理系统分类82.4 工作流参考模型92.5 工作流管理系统的实施103 工作流管理系统相关技术123.1 B/S结构123.2 .NET框架和ASP.NET133.3 三层架构163.3.1 为什么需要“三层架构”163.3.2 什么是三层架构及优点163.4 为什么要基于XML173.5 为什么要采用轻量级174 基于XML的工作流引擎的分析与设计184.1 工作流模型分析与设计184.1.1 过程模型184.1.2 组织模型204.1.3 工作流相关数据214.2 基于XML的流程定义的实现214.2.1 XPDL的应用214.2.2 基于XML的流程定义214.2.3 XML解析模块的分析与设计234.3 工作流引擎的分析与设计254.3.1 工作流引擎的整体结构254.3.2 客户端访问接口的设计255 基于XML的工作流管理系统的实现265.1 工作流元数据模型的设计265.2 XML解析模块的实现275.3 工作流引擎的具体实现295.3.1 控制中心295.3.2 执行模块295.3.3 数据处理模块315.4 工作流引擎的数据库实现316 工作流技术在公文流转系统中的应用336.1需求分析336.2公文流转系统的开发模式336.3 系统总体结构346.4 系统的功能模块设计356.4.1 系统总体活动图356.4.2 功能模块细化366.5 工作流技术的应用386.5.1公文流转系统的工作流分析386.5.2 工作流的定义406.5.3 工作流的执行406.6 系统数据库的设计与实现416.6.1 数据库的需求分析416.6.2 数据库的逻辑设计426.6.3 数据库存储过程的设计446.7 用户界面的设计456.8 系统中的技术难点467 总结与展望47致谢48参考文献49在校学习期间所发表的论文511 前言1 前言1.1 课题背景1.1.1 课题的引出现代企业的日常工作中,大多数工作都是由多个员工协同完成。一项复杂的工作,往往在不同的阶段需要不同的参与者来完成相应的工作,直到工作完成。这种经过一个步骤处理后再转往下一站的连续步骤,称之为“业务流”。而工作流就是企业业务流的计算机化或自动化。在一个工作流中,相关的规则、文档、信息等根据工作流的定义,在各个活动的参与者之间传递。工作流技术可以将企业业务流程自动化,并对其进行有效地管理,以提高企业运作效率,降低成本,这正是工作流管理系统需要解决的问题。1.1.2 工作流管理技术的优点企业实施工作流管理所带来的好处是非常明显的,这包括提高企业运营效率、改善企业资源利用、提高企业运作的灵活性和适应性、提高工作效率、集中精力处理核心业务、跟踪业务处理过程、量化考核业务处理的效率、减少浪费、增加利润、充分发挥现有计算机网络资源的作用。实施工作流将达到缩短企业运营周期、改善企业内(外)部流程、优化并合理利用资源、减少人为误差和延误,提高劳动生产率等目的。具体表现为:(1) 将最适当的事务在适当的时候传递给适当的人。(2) 员工可将精力集中到自己的关键业务上。(3) 管理层可随时掌握业务和工作流程处理效率。(4) 减少纸张浪费,降低成本。(5) 无需进行流程的培训,平滑实现流程变更。(6) 随时得到历史数据和报表。(7) 后台数据库应用,提供表单管理功能,支持企业决策。(8) 轻松实现远程和移动办公,实现事务处理“0响应”。(9) 发现并重视企业核心业务流程,提升核心竞争力。(10) 真正实现向“知识管理型企业”过渡。工作流管理的最大优点是将应用逻辑与过程逻辑分离,在不修改具体功能的情况下,通过修改过程模型改变系统功能,完成对生产经营部分过程或全过程的集成管理,可有效地把人、信息和应用工具合理地组织在一起,发挥系统的最大效能。工作流技术可使企业实现对经营管理和生产组织的过程控制以及决策支持,实现现代企业对“在适当的时间把适当的信息传给适当的人”的要求1。1.2 国内外工作流技术的研究现状及预测1.2.1 工作流技术的研究现状工作流管理技术,在其发展的初期主要是由工作流产品开发公司推动着发展,随着它在实际应用中取得的良好效果而得到了充分的重视,并且得到了迅速的发展。相对于工作流产品市场的繁荣,工作流的相关理论研究则显得有些滞后。在过去很长一段时间里,有关工作流的研究主要是由商品化的工作流管理系统的开发商所领导。本着将工作流产品推向市场的目的,这些开发商大多把研究的注意力放在了工作流管理系统的开发实施方面。目前,在工作流设计方法学、工作流的概念模型等方面还没有形成一套比较成熟的理论和方法。在工作流的理论与实施技术方面,研究的主要内容包括:(1) 工作流管理系统体系结构。(2) 工作流模型与工作流定义语言。(3) 工作流的事务特性。(4) 工作流的实现技术。(5) 工作流的仿真与分析方法。(6) 基于工作流的应用集成与互操作技术。(7) 工作流与经营过程重组(BPR) 。(8) 工作流技术的其他应用。 上述主要研究问题可以分为三个方面:第一个方面是工作流的理论基础,包括工作流管理系统体系、模型与定义语言(工作流的建模方法、工作流模型的形式化表示、工作流定义语言)等的研究。这一部分工作目前相对来说比较薄弱,还有许多问题需要进一步研究。第二方面是工作流的实现技术,包括工作流的事务特性、各种先进软件技术的应用、工作流仿真。第三方面是工作流技术的应用,包括工作流的实施技术在不同应用领域的应用(如在企业经营过程重组、并行工程、敏捷制造)方法、应用软件集成等。这方面研究的目标是发挥工作流管理系统的优势,为解决具体应用领域内的问题提供有效实现手段。目前工作流技术的研究正在日益受到人们的重视,许多大学和研究机构都开展了许多研究项目,取得了众多的研究成果,它们对工作流技术的发展做出了贡献。这些研究成果涉及工作流管理的各个方面。在国外所取得的研究成果中比较著名的有IBM公司Almaden研究中心的基于持久消息队列的分布式工作流管理系统Exotica/FMQM;佐治亚大学计算机系的Meteor;Action公司的Metro;FileNet公司的Visual WorkFlo;JetForm公司的InTempo以及Panone公司的Espresso等1。 相对而言,国内对工作流的研究起步较晚。目前还没有统一的组织负责工作流的规范制定和研究的组织结构,但浙江大学、清华大学、国防科技大学、上海交通大学等高校做了一定的研究工作:清华大学的吴澄院士、范玉顺教授以及史美林教授首先展开了对工作流技术的研究。吴澄院士和范玉顺教授以CIMS的研究为契机,就工作流技术的理论基础、工作流建模与仿真、工作流引擎的执行与效率分析、工作流管理系统的实现等,展开了工作流技术在CIMS应用上的研究,并实现了基于Web和CORBA的工作流管理系统;西安协同数码股份有限公司与西北大学合作开发出了SynchroFLOW协同工作流管理系统;重庆长松网络信息有限公司开发出了CSnet eBPA 3.0长松通用工作流支撑平台,以及基于该平台的业务流程自动化管理系统;上海维泰软件公司开发的工作流程管理软件WiseFlowo;清华大学计算机系在国家高技术研究发展计划(863计划)资助下开发的一个基于WWW的工作流管理系统Wowww! 2。1.2.2 工作流管理技术的研究课题在工作流技术应用日益得到重视的今天,对工作流技术的研究也正在向更深层次进行,工作流技术研究的主要方向有两个:一是为工作流技术的发展解决理论上存在的问题,探讨工作流模型和语义的形式化表示方法等;二是从工作流技术实现的角度探讨利用先进的技术提高工作流管理系统的性能和可靠性。工作流技术研究的一些理论课题为:(1) 过程建模理论与建模方法。(2) 模型验证和模型仿真方法。(3) 分布式环境下的资源协调和任务优化调度策略。(4) 过程模型与其他模型的集成方法。在工作流管理系统的实施上也存在非常多的问题需要研究,这些问题的解决对于提高工作流管理系统的性能具有重要的意义3。这些问题包括:(1) 分布式工作流机的实施问题。(2) 异常处理和错误恢复问题。(3) 融入事务管理概念。(4) 应用集成问题。1.3 本课题完成的工作我们根据当前工作流产品市场的需求以及办公自动化系统的需要,设计与开发了一个基于XML的轻量级工作流管理系统,课题把重点放在工作流引擎的设计与实现上。最后将工作流技术应用到公文流转系统中。其主要工作集中在以下几个方面:(1) 基于XML的工作流流程定义。(2) 工作流引擎的实现。(3) 公文流转系统的设计与实现。1.4 论文章节安排论文各个章节主要内容安排如下:第1章 介绍了国内外工作流技术的研究现状和工作流技术的研究课题。第2章 分析介绍了工作流和工作流管理系统。第3章 介绍了本系统所用到的相关技术。第4章 详细分析、设计了基于XML的工作流引擎。第5章 详细介绍了基于XML的工作流管理系统的实现。第6章 介绍了工作流技术在公文流转系统中的应用。第7章 结论与展望。22 工作流技术基础2.1 工作流的定义工作流是从英文单词Workflow翻译而来的。工作流是为提高工作效率而产生的,目前尚无统一、明确地定义。下面列出几个有代表性的定义,它们分别从不同的角度对工作流的概念进行了描述,可以对工作流的一些基本特征有一定的理解。工作流管理联盟(WFMC)给出的工作流定义:工作流是一类能够完全或者部分自动执行的经营过程,它根据一系列过程规则,文档、信息或任务能够在不同的执行者之间进行传递与执行。Georgakopoulos给出的工作流定义是:工作流是将一组任务(Task)组织起来完成某个经营过程。在工作流中定义了任务的触发顺序和触发条件。每个任务可以由一个或多个软件系统完成,也可以由一个或一组人完成,还可以是由一个或多个人与软件系统协作完成。任务的触发顺序和触发条件用来定义并实现任务的触发、任务的同步和信息流(数据流)的传递。PeopleSoft公司给出的定义是:工作流是一个用来实现经营过程实践的机制。清华大学自动化系教授范玉顺给出的定义是:工作流是一种反映业务流程的计算机化的模型,它是为了在先进计算机环境支持下实现经营过程集成与经营过程自动化而建立的可由工作流管理系统执行的业务模型1。2.2 工作流管理系统WFMC给出的关于工作流管理系统的定义是:工作流管理系统是一个软件系统,它完成工作流的定义和管理,并按照在计算机中预先定义好的工作流逻辑推进工作流实例的执行。通常工作流管理系统是指运行在一个或多个称为工作流机的软件上,是一套能定义、创建和管理工作流执行的软件系统。它和工作流执行者(人、应用)交互,根据工作流逻辑,推进工作流实例的执行,并监控工作流的运行状态。使用它可以充分利用企业资源,有效地跟踪工作过程,提高工作过程定制的速度与质量。工作流管理系统可以用以定义与执行不同覆盖范围、不同时间跨度的经营过程。根据经营活动复杂程度的不同,工作流管理系统可以采取不同的实施方式。这完全取决于实际应用背景的需求。按照经营过程以及组成活动的复杂程度的不同,工作流管理系统可以采取许多种实施方式,在不同的实施方式中,所应用的信息技术、通讯技术和支撑系统结构也会有很大的差别。尽管不同的工作流管理系统具有很多不同之处,但是它们还是具有许多共同的特性,从比较高的层次上来抽象地考察工作流管理系统,可以发现所有的工作流管理系统都提供了如下3种功能:(1) 建立阶段功能:对工作流过程以及组成它的活动进行定义和建模。(2) 运行阶段的控制功能:在一定的运行环境下,执行工作流过程,对工作流的运行进行管理,并完成每个过程中活动的排序和调度功能。(3) 运行阶段的人机交互功能:实现各种活动执行过程中用户与IT应用工具间的交互。工作流管理系统的主要特性如图2-1所示。下面将分别介绍这三种功能所涉及的研究工作和实施技术1。图2-1 工作流管理系统的特性1 Figure2-1 The Character of WFMS12.2.1 过程建模工作流管理系统建立阶段的主要功能是完成经营过程的计算机化定义。利用建模工具,完成实际的经营过程转化为计算机可处理的形式化定义,所得到的定义通常称为过程模型(或过程模板、过程元数据、过程定义等)。在WFMC给出的工作流管理系统的定义中,将过程建模得到的结果统称为过程定义。因此,在工作流管理系统建立阶段主要完成过程建模工作。过程建模是经营过程分析与经营过程重组的重要基础。过程建模主要解决如何根据过程目标和系统约束条件,将系统内的活动组织为适当的经营过程的问题。 有很多方法可以用来进行工作流(过程)模型的定义与描述。对流程的描述需要提供逻辑顺序结构,如顺序、分支、汇合、条件、循环、并行的描述。使用者可以通过一套语言来对企业的经营过程进行形式化描述。目前较为广泛接受的建模语言有CIM0SA的经营过程描述语言、工作流管理联盟WFMC定义的工作流过程定义语言(WPDL)、Keller等人提出的EPCN模型等。这些工作流描述语言的描述形式与程序设计语言中语义结构的定义方式类似。其他一些方法是采用传统项目管理中使用的概念和模型来表述经营过程,例如PERT图或其他各种形式的网络图等,易于在己有的项目管理软件工具的基础上扩展得到,所以在实用系统中采用的也比较普遍。2.2.2 工作流运行控制在完成了过程模型的定义后,所生成的工作流模型将由工作流执行服务软件进行实例创建并控制其执行过程。工作流执行服务对使用工作流模型描述的过程进行初始化、调度和监控过程中每个活动的执行,在需要人工介入的场合完成计算机应用软件与操作人员的交互。这样,工作流执行服务实现了在模型中定义的经营过程与现实世界中实际过程之间的连接。这个连接通过工作流执行服务与应用软件、操作人员的交互来完成。实现这个连接的核心功能是工作流管理软件,工作流管理软件又称为工作流机或工作流引擎。工作流机除了完成过程的创建、删除、活动的执行与控制外,它的另外一个重要的功能是完成与应用软件及操作人员的交互。这是因为在实际企业应用中,应用软件和操作人员是完成经营业务工作流的主体,而工作流机通过过程定义和活动之间顺序控制实现这些独立的功能实体间的集成,从而使整个企业的经营活动成为一个协调运行的整体。企业经营过程的执行通常需要若干个应用软件和若干人员的参与才能够完成,但是任何一个企业的实际应用,都是在具有分布性和异构性的计算机网络环境中运行。分布性是指应用软件运行在不同地点的不同计算机系统上,异构性是指应用软件运行在不同的计算机硬件环境、操作系统、数据库管理系统上。对工作流机的分布性要求客观上是由企业的实际运行环境决定的,工作流管理系统可以采用不同的方法来满足企业应用对分布性的要求。按照工作流管理系统设计开发的难易程度,工作流管理系统的分布性可以分为:分布式的工作流用户与应用接口、分布式的工作流机和分布式的工作流模型三种主要的分布方式。分布式工作流的用户与应用接口通常是工作流管理系统必须提供的分布处理功能,因为企业的应用软件和用户本身分布在不同的计算机环境和不同的工作地点。2.2.3 工作流管理中的人机交互在工作流管理系统的运作过程中,人和应用是完成整个业务过程的主体。工作流定义工具、工作流执行服务和任务表管理器都是为完成业务过程和支持人员工作提供的运行环境和工具。具体说来,在整个工作流执行中,不同的操作人员需要完成的工作大约可分为以下几种:(1) 模型定义:创建、修改和发布企业的业务过程建模,一般是企业的任务管理部门的人员按照企业业务流程完成。(2) 人机交互:按照工作流任务管理器提供的任务项,完成具体的业务处理工作(如:填写表格、启动一个应用来计算生产计划、查询库存情况等),这个工作由企业的各个业务部门的人员完成。(3) 系统运行状态监控:检查、监控系统的执行情况,对系统中出现的意外情况进行紧急处理,如终止、恢复某个过程实例的执行,改变某个活动的状态,以便整个系统能够继续执行等,这个工作由具有较高职务的系统管理人员来执行。2.3 工作流管理系统分类 目前,工作流技术引起众多企业的兴趣,工作流产品市场每年以两位数字的速度迅猛增长。而且,随着信息技术和计算机技术的发展,工作流产品的供应商又及时将新的技术融入到工作流技术中,从而提高了产品性能,使得工作流技术不断完善。工作流管理系统是大型信息系统中驱动业务流程的必备基础软件。当前市场上存在很多产品声称是工作流系统,或者带有工作流特性。最终用户和开发商在接触各种产品时,往往会产生很多困惑。从技术角度来看,可分为四类:(1) 基于Domino的工作流管理系统由于Domino在群件市场上的普及率,加上Lotus公司对工作流的概念的大力宣传,人们很容易误认为Domino是一个工作流系统。实际上这种观点是完全错误的。Domino充其量是一个可以编写带有流程的应用的编程和运行环境,其本身并不具备一个工作流管理系统的特征,如图形化的工作流定义、独立的工作流引擎、清晰的工作流访问接口等。应用程序所需要的每一个工作流特性,都需要自己手工编写。为了弥补Domino的不足,国内一些OA厂商在Domino上添加了用其他语言编写的图形化工作流定义组件,但这仍然不能叫做一个工作流管理系统。基于Domino的工作流管理系统的典型例子实际上还是Lotus公司推出的Domino Workflow。它运行在Domino平台上,为开发工作流应用提供了很大的便利。当然,人们只能在Domino平台上使用它。在为其他平台开发应用时,人们必须求助于其它工作流管理系统。(2) 基于消息中间件的工作流管理系统这方面的典型代表是IBM公司的MQSeriesWorkflow。它通过MQSeries将不同的应用集成在一起,并形成业务流程。它没有一个集中的工作流引擎。当进行分布式的应用系统的集成时,它是一个不错的选择。但当你需要为运行在单一服务器上的应用提供工作流功能,而且不想因此而购买一大套消息中间件的时候,你必须考虑别的选择。(3) 基于微软平台的工作流管理系统这方面的典型代表是Ultimus和微软公司在BizTalk中提供的工作流组件,它们为基于微软平台的工作流应用提供支撑。(4) 基于.NET的工作流管理系统随着.NET技术的日趋成熟和应用面的扩大,绝大多数企业级的应用系统开始基于.NET技术来设计,对在.NET平台上的工作流系统的需求也越来越大。这种工作流系统应用能够充分发挥.NET技术的优势,提供高度的可靠性、可扩展性和安全性。从产品化程度和存在形态来说,可分为两类:(1) 嵌入在已有产品中的工作流组件国内从事OA产品研发的公司都能生成有工作流功能的产品。但大多数OA产品中只是包含了一个图形化的流程定义工具,并不是一个真正的工作流系统,不具备完整的工作流引擎、工作流管理功能,也没有清晰定义的接口。其提供的功能有限,与系统的其他部分紧密耦合,不可能作为统一的工作流平台来建立各种应用系统,如行政审批系统,也无法提供给其他开发商使用。又如内容管理系统,也往往含有自己的工作流管理功能,其情形也差不多。(2) 产品化的工作流管理系统这种系统从一开始就作为单独的工作流管理系统来设计,考虑到了符合相关的国际标准,由专业厂商以产品的形式推出,并提供给其他厂商在各个行业的应用系统中使用,或由用户在进行系统整体设计的时候统一采购。E-wayworkflow是产品化的工作流产品。从工作流产品和宿主系统之间的关系来说,可分为两类:(3) 封闭的开发环境这种产品强调在一个平台中提供完整的工作流引擎、表单工具和组织结构及权限管理工具,Ultimus和FormFlow就是典型的例子,这对于快速创建简单的基于流程的应用确实有帮助,但它们的问题在于,其系统结构一般是封闭的。应用系统的开发者要么完全接受它所强制提供的结构,要么完全不采用它。在开放性越来越成为趋势的情况下,这种产品难以适用于构建大型的复杂的系统。(4) 开放的可嵌入的工作流产品这类产品的设计思路与上面的一类不同,它们特别强调开放性和嵌入到宿主系统中的能力,采用组件化设计,并遵守业界的标准提供访问接口和扩展机制。这类系统的典型代表是E-wayworkflow。它能够迅速地嵌入到宿主系统中,并引用宿主系统的组织结构模型,而不会对宿主系统的结构产生负面的影响4。2.4 工作流参考模型1994年11月,工作流管理联盟(WFMC)发布了工作流参考模型(图2-2)确定了工作流管理系统的基本架构。该模型定义了一个基本的工作流管理系统所需要的六个基本模块,并制定了各模块之间的接口标准。当然,一个工作流管理系统也可以不遵循这个模型标准,或只实现这个模型的一部分,但事实证明,这个模型结构是目前最为合理的。 模型的核心部分是工作流引擎,它是驱动流程运转的主要部件,它借助于一个或多个工作流机(工作流引擎),激活并解释过程定义的全部或部分,并同外部的应用程序进行交互,完成工作流过程实例的创建、执行与管理,为工作流的运行提供一个运行时环境。一个工作流管理系统可以包含一个或多个工作流引擎,并通过API向外部提供五个方面的功能服务,这些功能分别为5: 接口1(工作流定义交换)用于在建模和定义工具与执行服务之间交换工作流定义。主要是数据交换格式和API。 数据交换通过XPDL,API通过WAPI(工作流API)。接口2(工作流客户端应用接口)用于工作流客户端应用访问工作流引擎工作列表,通过WAPI(工作流API)完成。接口3(被调用的应用接口)用于调用不同的应用系统。接口4 (工作流系统互操作接口)用于不同的工作流系统之间的互操作。接口5(系统管理和监控)用于系统管理应用访问工作流执行服务。图2-2 工作流参考模型1 Figure2-2 The Reference Model of Workflow1工作流参考模型各个部件如下: (1) 管理监控工具主要指组织机构、角色数据的维护管理和流程执行情况的监控。(2) 工作流引擎是为流程实例提供运行环境并解释执行流程实例的软件部件。 (3) 流程定义工具是管理流程定义的工具,它可能通过图形方式把复杂的流程定义显示出来并加以操作。 (4) 客户端应用是通过请求的方式同工作流执行服务交互的应用,也就是说是客户端应用调用工作流执行服务;客户端应用同工作流执行服务交互。调用应用是被工作流执行服务调用的应用;调用应用同工作流执行服务交互为了协作完成一个流程实例的执行。 (5) 工作流执行服务是工作流管理系统的核心部件,它的功能包括创建、管理流程定义,创建、管理和执行流程实例;在执行上述功能的同时,应用程序可能通过编程接口同工作流执行服务交互,一个工作流执行服务可能包含有多个分布式工作的工作流引擎。2.5 工作流管理系统的实施工作流管理系统在实施过程中一般分为3个阶段,即模型建立阶段、模型实例化阶段和模型执行阶段(图2-3)。模型建立阶段利用工作流建摸工具完成企业经营过程模型的建立,将企业的实际经营过程转化为计算机可处理的工作流模型。模型的实例化阶段为每个过程设定运行所需的参数,并分配每个活动执行所需要的资源(包括设备、人员、应用)。模型执行阶段完成经营过程的执行,在这个过程中重要的任务是完成人机交互和应用的执行,并对过程与活动的执行情况进行监控与跟踪。图2-3 工作流管理系统实施的三个阶段1 Figure2-3 Three stages of Implementation of WFMS1整个系统得工作流程如下:工作流建模工具建立模型-流程定义工具对已建立的模型进行定义-把已建立的模型自动存入数据库或自动生成XPDL文件-工作流引擎从数据库或者XPDL文件调用工作流定义-执行工作流程-返回执行后的相关数据6。3 工作流管理系统相关技术3 工作流管理系统相关技术3.1 B/S结构目前市场上的企业办公自动化系统,其开发模式上的差别主要体现在系统结构和开发的技术手段,系统结构主要指终端操作人员与应用服务系统的相对关系,开发的技术手段指系统的平台及其主要开发技术。按照系统终端情况的不同,可将工作流管理系统的开发结构分为客户机/服务器模式(Client/Server,简称C/S)和WEB浏览器/服务器模式(Browser/ Server,简称B/S)两种模式。在过去应用系统开发过程中,C/S体系结构得到了广泛的应用。其特点是,以服务器作为数据处理和存储平台,在终端设计有专门的应用程序进行数据的采集和初次处理,再将数据传递到服务器端,用户必须使用客户端应用程序才能对数据进行操作。C/S模式是早期电子政务开发中主要应用的模式,同时一些专业的MIS软件也经常使用这种模式。C/S模式系统几乎可以适应任何的操作平台,开发技术也多种多样,大部分计算机语言都能开发出C/S模式的应用系统。但C/S结构存在着很多体系结构上的问题,比如:当客户端数目激增时,服务器端的性能会因为负载过重而大大衰减:一旦应用的需求发生变化,客户端和服务器端的应用程序都需要进行修改,给应用维护和升级带来了极大的不便:大量的数据传输增加了网络的负载等等。而B/S模式首先它简化了客户端。以服务器为核心,程序处理和数据存储基本上都在服务器端完成,它无需像C/S模式那样安装专门的客户端软件,而只要通过网络中的计算机连接服务器,使用浏览器就可以进行事务处理。这样不但可以节省客户机的硬盘空间与内存,而且使安装过程更加简便、网络结构更加灵活。假设一个用户要查看某个公文,只需从联网的计算机上直接通过浏览器查询浏览就可以了。其次,它简化了系统的开发和维护。系统的开发者无须再为不同级别的用户设计开发不同的客户应用程序了,只需把所有的功能都实现在WEB服务器上,并就不同的功能为各个组别的用户设置权限就可以了。各个用户通过HTTP请求在权限范围内调用WEB服务器上不同处理程序,从而完成对数据的查询或修改。相对于C/S模式,B/S模式的维护具有更大的灵活性。当程序功能发生变化时,无须再为每个现有的客户应用程序升级,而只需对WEB服务器上的服务处理程序进行修改。这样不但可以提高运作效率,还省去了维护时协调工作的不少麻烦。再次,它使用户的操作变得更简单。对于C/S模式,客户应用程序有自己特定的规格,使用者需要接受专门培训。而采用B/S模式时,客户端只是一个简单易用的浏览器软件。无论是决策层还是操作层的人员都无需培训,就可以直接使用。最后,B/S模式特别适用于网上信息发布,使得传统的MIS的功能有所扩展。这是C/S模式所无法实现的。而这种新增的网上信息发布功能恰是现代企业所需的。这使得大部分书面文件可以被电子文件取代,从而提高了工作效率,使行政手续简化,节省人力物力。总的说,B/S模式的信息服务系统是建立在Intranet和Internet上的,以WEB服务器为核心,集成文件服务器、数据库服务器、Mail服务器的系统网络,用户可以通过浏览器访问系统资源或进行工作的信息服务系统。3.2 .NET框架和ASP.NET自比尔盖茨宣布微软公司将成为一家以.NET平台为重点发展的公司后,微软己经将.NET发展成了新一代的平台标准。当前.NET平台己经成为业界公认的开发平台。.NET是为简化在第三代因特网的分布式环境下的应用程序开发,基于开放互联网标准和协议之上,实现异质语言和平台高度交互性而构建的新一代计算和通信平台。也是微软以服务的方式递交软件的一种策略。.NET开发平台的主要组成部分:首先是整个.NET开发框架,即CLR以及它所提供的一组基础类库;在开发技术方面,.NET提供了全新的数据库访问技术ADO.NET,以及网络应用开发技术ASP.NET和Windows编程技术WinForms;在开发语言方面,.NET提供了VB、VC+、C#和Javascript等多种语言支持,此外还具有如下新特性7:a. 通用语言运行时和基础类库通用语言运行时即Common Language Runtime,处于这个框架的最低层,是这个框架的基础。开发人员对于所谓的C运行时、VB运行时、Java虚拟机这些概念已经非常熟悉了,而通用语言运行时则为多种语言提供了一种统一的运行环境。另外它还提供了更多的功能和特性,比如统一和简化的编程模型,用户不必迷惑于Win32 API和COM;避免了DLL的版本和更新问题(常称为DLL地狱),从而大大简化了应用程序的发布和升级;多种语言之间的交互,例如我们甚至可以在VB中使用C+编写的类;自动的内存和资源管理等等。.NET正是基于通用语言运行时,实现了这些开发人员梦寐以求的功能。基于通用语言运行时开发的代码称为受控代码,它的运行步骤大体如下:首先使用一种通用语言运行时支持的编程语言编写源代码,然后使用针对通用语言运行时的编译器生成独立于机器的微软中间语言(Microsoft Intermediate Language),同时产生运行所需的元数据,在代码运行时再使用即时编译器(Just In Time Compiler)生成相应的机器代码来执行。当然对于开发者而言,他们除了关心通用语言运行时提供那么多新特性外,它究竟给开发者提供了什么样的编程接口,这就是基础类库(Base Class Library)。基础类库包括了从输入、输出到数据访问等各方面,提供了一个统一的面向对象的、层次化的、可扩展的编程接口。它使用一种点号分隔的方法,使得查找和使用类库非常容易。例如基础类库中的根,它的命名空间是System,提供数据访问的类库的命名空间是System.Data。在使用时,开发者只需在自己的应用中添加所需的基础类库的引用,然后就可以使用这个类库中的所有方法、属性等等。跟传统的Windows编程相比,使用和扩展基础类库都非常容易,这使得开发者能够高效、快速的构建基于下一代互联网的网络应用。b. ADO.NET-新一代的数据存取访问机制几乎所有的应用程序都需要访问从简单的文本文件到大型的关系型数据库等各种不同类型的数据。在.NET中访问数据库的技术是ADO.NET。ADO.NET提供了一组用来连接到数据库,运行命令,返回记录集的类库,与从前的ADO(ActiveX Data Object)相比,Connection和Command对象很类似,而ADO.NET的革新主要体现在如下几个方面:首先,ADO.NET提供了对XML的强大支持,这也是ADO.NET的一个主要设计目标。在ADO.NET中通过XMLReader,XMLWriter,XMLNavigator,XMLDocument等可以方便的创建和使用XML数据,并且支持W3C 的 XSLT、DTD、XDR等标准。ADO.NET对XML的支持也为XML成为.NET中数据交换的统一格式提供了基础。其次,ADO.NET引入了DataSet的概念,这是一个驻于内存的数据缓冲区,它提供了数据的关系型视图。不管数据来源于一个关系型的数据库,还是来源于一个XML文档,我们都可以用一个统一的编程模型来创建和使用它。它替代了原有的Recordset的对象,提高了程序的交互性和可扩展性,尤其适合于分布式的应用场合。另外,ADO.NET中还引入了一些新的对象,例如DataReader可以用来高效率的读取数据,产生一个只读的记录集等等。简而言之,ADO.NET通过一系列新的对象和编程模型,并与XML紧密结合,使得在.NET中的数据操作十分方便和高效。c. ASP.NET和WinFormsASP.NET是.NET中的网络编程结构,它使得建造、运行和发布网络应用非常方便和高效。我们可以从以下几个方面来了解ASP.NET:(1) ASP.NET网络表单ASP .NET网络表单的设计目的就是使得开发者能够非常容易的创建网络表单,它把VB中的快速开发模型引入到网络开发中来,从而大大简化了网络应用的开发。具体的说,在ASP.NET中可以支持多种语言,不仅仅支持脚本语言,通用语言运行时支持的所有语言在ASP.NET中都可以使用;代码和内容分开,在现在的ASP(Active Server Pages)开发中,内容和脚本交错,维护和升级很困难,将他们分开可以使得开发人员和设计人员能够更好的分工合作,提高开发效率;另外在ASP.NET中通过引入服务器端控件,将类似VB的快速开发应用到了网络开发中来,这样大大提高了构建网络表单效率,并且服务器端控件是可扩展的,开发者可以建造自己需要的服务器端控件。(2) ASP.NET网络服务网络服务(Web Service)是下一代可编程网络的核心,它实际上就是一个可命名的网络资源,可用来在Internet范围内方便的表现和使用对象,就像使用今天的COM对象一样,不同的是使用和表现网络服务是通过SOAP(简单对象访问协议)甚至HTTP来实现的。在ASP.NET中,建造和使用网络服务都非常方便。在ASP.NET中建造网络服务就是编写一个后缀为.ASMX的文件,在这个文件中加入想要表现出来的方法就可以了,网络服务的建造者不需要了解SOAP、XML的细节,只需要把精力集中在自己的服务本身,这也为独立软件服务开发商提供了很好的机会;使用网络服务最简单的方式就是使用HTTP协议(GET或POST),用户只需要直接访问网络服务(.ASMX文件)的URL即可;当然用户还可以通过SOAP在自己的应用中更灵活的使用网络服务。(3) ASP.NET应用框架ASP.NET应用不再是解释脚本,而是编译运行,再加上灵活的缓冲技术,从根本上提高了性能;由于ASP.NET的应用框架基于通用语言运行时,发布一个网络应用,仅仅是一个拷贝文件的过程,即使是组件的发布也是如此,更新和删除网络应用,可以直接替换/删除文件;开发者可以将应用的配置信息存放XML格式的文件中,管理员和开发者对应用程序的管理可以分开进行;提供了更多样的认证和安全管理方式;在可靠性等多方面都有很大提高。传统的基于Windows的应用(WinForms),它仍然是.NET战略中不可或缺的一部分。在.NET中开发传统的基于Windows的应用程序时,除了可以利用现有的技术例如ActiveX控件以及丰富的Windows接口外,还可以基于通用语言运行时开发,可以使用ADO.NET、网络服务等,这样也可以实现诸如避免DLL地狱、多语言支持等.NET的新特性。ASP.NET是.NET中的网络编程结构,它使得建造、运行和发布网络应用非常方便和高效。它提供了一个Web应用程序模型,该模型由一组控件和一个基本结构组成。有了它,Web应用程序的构建变得非常容易。开发人员可以直接使用ASP.NET控件集,该控件集封装了公共的、用于超文本标识语言(HTML)用户界面的各种小组件(诸如文本框、下拉选单等等)。实际上,这些控件运行在Web服务器上,它们将用户界面转换成HTML格式后再发送给浏览器。在服务器上,控件负责将面向对象的编程模型呈现给Web开发人员,这种编程模型能提供面向对象的编程技术拥有的丰富功能。ASP.NET还提供一些基本结构服务(诸如会话状态管理和进程循环),这些服务进一步减少了开发人员要编写的代码量,并使应用程序的可靠性得到了大幅度提高。ASP.NET还允许开发人员将软件作为一项服务进行传送。通过使用ASP.NET WEB服务功能,ASP.NET开发人员只需进行简单的业务逻辑编程,而由ASP.NET基本结构负责通过SOAP传送服务8。.NET开发框架如下图(图3-1)所示,.NET框架的类库创建于CLR的上层,其范围覆盖了大量不同应用程序和组件开发方案。通过提供共同的基础和可以让所有组件及应用程序共享的API (Application Programming Interface,应用编程接口),类库真正实现了基于组件的编程。基础类库(BaseClassLibrary,BLC)包括许多常用的命名空间,如System, System.Collections等。ADO.NET为数据访问功能层,作为System.Data命名空间和其子命名空间的一部分嵌入到.NET框架中。ADO.NET提供了对断开或离线缓冲的关系数据进行操作的能力。特别是提供了对SQL Server的高性能连接。在ADO.NET之上为应用开发技术,.NET框架支持图形化的Win32客户端和服务器端的应用程序开发,还支持System.Web命名空间和其子命名空间中实现的ASP.NET和Web Forms的开发。图3-1 .NET开发框架图7 Figure3-1 The Frame of Dot Net Platform73.3 三层架构3.3.1 为什么需要“三层架构”在一个软

温馨提示

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

评论

0/150

提交评论