面向SaaS的工作流管理系统设计与实现.pdf

上传人:g****s 文档编号:86093969 上传时间:2023-04-13 格式:PDF 页数:39 大小:4.51MB
返回 下载 相关 举报
面向SaaS的工作流管理系统设计与实现.pdf_第1页
第1页 / 共39页
面向SaaS的工作流管理系统设计与实现.pdf_第2页
第2页 / 共39页
点击查看更多>>
资源描述

《面向SaaS的工作流管理系统设计与实现.pdf》由会员分享,可在线阅读,更多相关《面向SaaS的工作流管理系统设计与实现.pdf(39页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、面向 SaaS 的工作流管理系统设计与实现 第1章 绪论 1.1背景介绍 随着计算机科学技术和互联网技术的发展,工业界提出了企业信息化的概念。企业信息化以业务流程的数字化重组为基础,借助计算机技术、网络技术和数据库技 术,控制和集成企业生产经营活动中的所有信息,增强企业对信息的分析和利用,优化企业经营活动中的各个流程,以提高企业的市场竞争能力,帮助企业获取更高 的经济效益。由此可以看出,企业信息化通过对信息技术的应用,开发和使用企业的信息资源,达到了提高企业管理水平、开发能力、经营水平的目的。企业信息化根据发展程度的不同,分为三个发展水平不同的阶段。第一是利用计算机实现对产品生产制造过程的自动

2、控制。第二是利用计算机系统实现企业内部管 理的系统化;第三是利用互联网开展的电子商务。企业信息化发展的第一个阶段,主要是利用计算机对生产设备和产品线进行控制,来实现对产品生产制造过程的自 动控制,以此来节约劳动力。在该阶段信息化的主要作用体现在对生产过程的优化,并没有真正的实现对企业业务流程的自动控制。企业信息化的第二个阶段,借助 网络技术和数据库技术,实现了对企业业务流程和相关的经营活动信息化的过程。在该阶段主要代表性的技术有 ERP 和 MIS 等。随着互联网的发展,企业信息化 发展到了第三个阶段,该阶段的主要特点是利用互联网开展电子商务,也就是企业间的经营活动也实现了信息化。企业经营活动

3、中的业务流程是企业信息化的重点,对此,业界提出了工作流管理系统来管理业务流程。工作流管理系统的主要功能是对业务流程进行建模、执行和监控。下面介绍工作流管理系统。1.2工作流管理系统 工作流是针对企业业务处理流程提出的计算模型。通过这一计算模型,可以将业务流程中活动的组织逻辑和前后依赖关系进行数字化表达,并通过计算机系统来进 行调度执行。因此,工作流首先要解决的问题是描述并执行一个业务流程。业务流程是具有一定业务目标,需要多个参与者协同完成,按照编排的逻辑组织的一系列 活动。由于工作流在企业信息系统中的重要性和应用日益广泛,工作流管理联盟于1995年提出了工作流参考模型,来规范化工作流管理系统的

4、体系结构模型。下面详细分析工作流参考模型。1.2.1工作流参考模型 工作流参考描述并规范化了工作流管理系统中的各个基本构成部分以及这些构成部分之间相互通信的接口。如图1.1所示,工作流管理系统由工作流执行服务、流程定义工具、客户端应用、调用应用和监控管理这几部分组成。工作流执行服务是工作流管理系统的核心部分,工作流管理系统的其他部分都要与该部分进行交互来完成相应的功能。工作流执行服务负责创建流程实例,管理流程实例的生命周期,同时根据流程定义来进行流程路由控制和任务的分配调度。工作流定义工具提供流程建模功能。系统开发人员使用这一工具完成流程建模,将实际的业务流程转化为格式化的流程定义语言。执行服

5、务能够读取并解析流程定义语言来进行流程执行调度:客户端应用是通过请求的方式同工作流执行服务交互的应用。客户应用通过请求执行服务获取流程数据和执行状态信息,根据流程数据和执行状态信息进行逻辑计算或者向用户提供交互操作,最后以请求的方式提交流程数据和改变流程状态。调用应用是被执行服务调用的应用。在定义工作流程的过程中,某些任务需要自动执行特定的应用来完成,当执行服务调度的流程需要执行某种自动任务时,执行 服务就调用预先定义的应用来完成自动任务。监控管理定义了查看流程执行情况,修改流程执行状态和流程数据等管理控制功能。通过监控管理,可以对流程的执行 情况进行查看,同时可以对出错的流程进行处理。除了定

6、义工作流管理系统中的构成部分外,参考模型还定义了各部件间交互的接口。接口一 用于流程定义工具和执行引擎间交互定义规范的流程模型。接口一一般以 XML格式的文件给出流程模型的规范化定义。工作流管理联盟提供了 XPDL(Xml Process Define Language)描述流程定义。除此之外,还有其他一些 XML 格式的流程定义规范,其中具有代表性的是 BPEL(Business Process Execution Language)。接口二描述了客户端应用用于访问流程状态、查询流程数据和任务列表的接口。参考模型中以 WAPI 的方式给出。接口三描述了执行服务调用应用时需要的接口。接口四定义

7、了执行服务进行互操作时的接口。接口五提供了监控流程实例所需要的操作,这些操作包括:查看流程、任务状态,查看流程数据,查看流程错误信息,修改流程、任务状态,修改流程数据盘占寸。工作流参考模型虽然对构成工作流管理系统的各个部分进行了规范化,但是也存在着缺陷和不足。比如,工作流参考模型对于业务流程中参与者的定义比较简单,很难满足实际业务系统中的人员系统的复杂需求。因此在实际实现工作流管理系统的过程中,除了遵循工作流参考模型外,会进行相应的扩展来满足不同行业的业务 需求。1.2.2工作流管理系统 工作流管理系统是工作流参考模型在现实世界 的软件实现,是利用数据库技术、计算机网络技术等相关技术实现的流程

8、建模管理系统。工作流管理系统为企业业务管理系统提供了非常重要的软件支撑环境。随着 企业信息化的深入和发展,企业业务管理系统的应用不断普及,因此工作流管理系统的应用领域也越来越广泛。根据工作流参考模型,工作流管理系统主要包括流程定义工具、工作流执行引擎和工作流监控平台。工作流定义工具,也称为工作流设计工具。根据参考模型,工作流定义工具由流程设计人员使用对实际业务流程进行建模,同时将模型按照相关的标准(接口一对 应的协议)传递给引擎。由此可见,工作流定义工具是流程设计人员和引擎交互的接口,为流程设计人员提供了流程建模操作界面,并把流程设计人员描述的流程模 型转化为系统能够识别的数据模型。工作流定义

9、工具具有用户界面友好,利于流程设计人员开发等特点。当前的工作流定义工具都基于图形编辑器或者 Web 页面,提供了所见即所得的建模能力。目前的工作流定义工具主要存在的问题是普遍缺乏流程合理性检查的能力,不能及时发现流程中存在的死锁等问题,导致基于工作流 管理系统开发的企业业务管理系统运行时存在稳定性方面的缺陷。工作流执行引擎是工作流管理管理系统的核心,业务流程的执行调度由执行 引擎完成。工作流执行引擎通过接口一解析定义工具定义的业务流程模型,根据模型的定义及相关应用的执行结果、同时结合流程数据的值来对流程进行调度,包 括:根据流程参与人员请求更改任务或者流程实例状态,根据路由条件和流程变量进行路

10、由调度等。随着企业业务系统的规模不断增加,以及对于系统的稳定性需求 不断提升,因此对于工作流引擎的性能和稳定性等要求不断提升。工作流监控平台为企业管理员提供查看和控制流程执行情况的软件系统。监控平台提供流程定义管理、流程实例监控管理等流程相关的功能。传统的流程监控平台提供了表单形式的监控界面,当前一些系统提供了基于图形的监控界面,更加直观、利于管理员进行分析管理使用。目前随着技术的发展,企业应用开发不断有新需求出现,传统的工作流管理系统存在的问题逐渐暴露。特别是随着 SaaS 应用模式的提出,工作流系统的重复部署以及很高的部署维护代价等问题目益突出。1.3 SaaS SaaS(Software

11、 as a service)是随着互联网技术和应用软件技术的发展,提出的一种全新的软件应用模式。这种软件应用模式本质上是一种软件租赁使用的方式。具体表现为软 件应用提供商将软件系统统一部署到自己的服务器上,维护软硬件系统,保证系统能够正常运行,同时通过互联网向用户提供软件服务。用户通过互联网向软件应用 提供商订购需要的软件服务。SaaS 作为一种全新的软件应用模式,无论在技术上还是在商业模式上都存在着巨大的优势:首先,SaaS 降低了软件部署和维护的成本。在传统的软件应用模式中,软件的部署和维护占用了软件生命周期的大部分时间,花费了其中大部分的人力和物 力。对于软件应用提供商而言,每次向用户提

12、供服务,都要进行软件的部署。在部署过程中由于软硬件环境的不同,导致部署的花费不断提高。对于用户而言,由于 软件系统部署在自己的机器上,因此需要自己培训维护人员或者付费购买软件应用提供商的维护服务。而在全新的 SaaS 应用模式中,软件应用提供商只需要在自 己的软硬件环境中进行一次部署,用户也可以从繁重的维护中解脱出来,可以说 SaaS 模式对于软件应用提供商和用户都降低了成本。其次,SaaS提供了全新 的软件计费方式,为用户节约了成本。在传统的软件使用模式中,用户只能够选择全部购买软件或者拒绝使用软件。在 SaaS 的应用模式中,用户可以通过按照用 量付费或者按照时间段付费等灵活的计费方式来使

13、用软件。可见,SaaS 降低了用户使用软件系统的成本,同时为软件应用提供商增加了用户数目。最后,SaaS 将数据平台整合到软件服务中,提供了完整、高效的数据管理功能。用户在使用 SaaS 应用的过程中,无需考虑数据平台中数据库的性能、容量、管理、许可等问题,进一步节约了开支。当然,SaaS 在应用的过程中也存在一些缺陷和不足,其中最具有挑战性的问题是数据的安全性问题。在 SaaS 中,用户将自身的数据保存在软件服务商提供 的数据平台中。因为用户的数据涉及到用户的核心利益,因此数据的安全性是用户在决定是否通过 SaaS 模式使用软件的重要参考。同时由于 SaaS 应用模式下 将数据保存在互联网中

14、,不能采取传统的硬隔离方式来保护数据,因此对于软件应用提供商而言,如何保证数据的安全性具有更高的技术难度。同时 SaaS 软件应 用提供商还要采用相关技术来保证数据的完整性。同时,由于所有的用户数据共存于统一的数据平台中,对用户数据进行隔离,也是基于SaaS 的软件系统需要重点解决的问题。最后由于在 SaaS 模式中,软件系统的用户数目远远多于传统软件应用模式中的用户数量,因此对于软件系统的性能提出了更高的要求。因此,数据安全和性能问题是基于 SaaS 的软件系统需要解决的核心问题。1.4本文工作和组织结构 1.4.1研究内容 在传统工作流技术的基础上,结合 SaaS 的特点以及 SaaS 成

15、熟度模型,学术界提出了面向 SaaS 的工作流参考模型。在本论文中作者首先研究了面向 SaaS 的工作流参考模型,对于参考模型及其应用场景进行了详细的分析。在此基础上,作者设计实现了面向 SaaS 的工作流管理系统一一 JTangFlow.SaaS。该系统在满足传统工作流系统功能需求的基础上,根据面向 SaaS 的工作流参考模型进行设计实现。该系统根据 SaaS 应用模式下用户数目大、数据规模大、数据增长速度快等特点,着重解决系统的性能问题、数据存储 问题和可伸缩性问题。本文介绍了 JTangFlow-SaaS 系统的架构和功能模块,重点介绍了该系统中工作流引擎的设计,详细介绍了为了应对 Sa

16、aS 应用的需求针对性能和大规模数据等问题使用的策略和解决方案。在系统的开发设计中,使用了负载均衡策略来提高系统的伸缩性,解决随着用户数量增长带来的数据量增长速度快的问题。使用基于异步事件的引擎接口机制来提 高系统的响应速度。同时提供了完善的缓存系统来提升系统的性能。系统提供了大规模数据的分布式存储策略和数据隔离策略来保证大规模数据的存储和安全性。针 对分布式存储策略,提出了基于 MapReduce 的数据查询机制来加速数据的查询操作。1.4.2组织结构 本文主要分为六个章节。每章内容如下:第一章介绍了课题的背景。主要包括工作流和 SaaS 的介绍和分析。然后介绍了该论文的结构和主要工作。第二

17、章介绍了面向 SaaS 的工作流参考模型。结合 SaaS 成熟度模型,分析介绍了对应的面向 SaaS 的工作流参考模型。最后介绍面向 SaaS 的工作流参考模型的一种简单实现,并指出了这种简单实现存在的缺陷。第三章介绍了面向 SaaS 的工作流系统 JTangFlow-SaaS 的整体架构。详细介绍了JTangFlow.SaaS 各个模块。第四章详细介绍了面向 SaaS 的工作流引擎的设计与实现。详细介绍了在引擎的设计与实现过程中针对 SaaS 应用所关心的性能和数据安全性问题而采取的关键设计和算法。第五章对 JTangFlow-SaaS 系统的实验进行了介绍和结果分析,并结合数据分析了JTa

18、ngFlow-SaaS 系统能够适应 SaaS 应用模式需求的原因。第六章总结了全文,同时提出了存在的问题和今后的研究方向。1.5本章小结 本章介绍了本文的背景知识。对于传统的工作流管理系统进行了简要的介绍,然后介绍了 SaaS 的概念,详细分析了其存在的优缺点。最后介绍了本文相关的工作和文章的结构。第2章 面向 SaaS 的工作流参考模型 2.1 SaaS 成熟度模型 在 SaaS 架构中,可伸缩性、多租户(multi tenant)和通过配置进行定制是对软件系统的基本要求。根据这三个要求的支持程度不同,提出了 SaaS 应用的四级成熟度模型。下面分别介绍这四级成熟度模型:第1级(定制):如

19、图2.1所示,在第1级成熟度模型中,每个租户(使用 SaaS 模式软件系统的组织)都有其特定版本的软件应用系统,这些软件应用系统 的实例分别运行在软件应用提供商提供的运行平台上。此时,所有租户只是共享了软件系统的运行平台,仍然分别使用独立的软件应用系统。传统的客户端.服务端 架构、Web 应用等都可以直接归类到 SaaS 应用的第一级成熟度模型。因此,传统的工作流管理系统也满足第一级成熟度模型的要求。第2级(可配置):如图2.2所示,在第2级成熟度模型中,每个租户都有特定的软件应用系统的实例分别运行在软件应用提供商提供的运行平台上。但是所有 租户使用相同的软件系统,也就是说所有租户使用相同的程

20、序代码,根据租户需求不同进行单独配置即可。应用系统要满足第2级成熟度模型,需要对架构设计进行 一定的重新设计,使之能够共享程序代码。第3级(可配置、多租户)如图2.3所示,在第3级成熟度模型中,软件应用提供商提供的运行平台上只运行软件应用系统的一份实例即可满足所有租户的需 求。在这种情况下,租户共享了软件系统、运行实例和软件运行平台。降低了运行实例花费的开销,增加了软件运行平台的利用率,也节约了用户使用软件的成本。第3级成熟度模型对软件系统架构提出了更高的要求软件系统要具备支持多租户的能力。第4级(可伸缩、可配置、多租户):如图2.4所示,在第4级成熟度模型中,软件应用提供商在第3级成熟度模型

21、支持多租户的基础上,引入了负载均衡策 略。租户的请求可以动态的派发到不同的软件应用实例来完成。通过这一策略,不需要对于软件系统本身进行修改,就可以动态的通过增加或者减少软件应用实例的 数量来应对用户数目的变化。满足第4级成熟度模型的软件系统,在设计架构时需要考虑到可伸缩性的问题,重点引入负载均衡控制模块,使得能够动态选择执行的 软件应用实例,来提升系统对于大规模用户数量的支持。通过分析 SaaS 的成熟度模型可知,传统的工作流参考模型,只能满足 SaaS 的第一级成熟度模型,很难满足 SaaS 应用模式的进一步要求。为此,在 SaaS 成熟度模型和工作流参考模型的基础上,学术界提出了面向 Sa

22、aS 的工作流参考模型。2.2面向 SaaS 的工作流参考模型 2.2.1面向 SaaS 第1级成熟度的工作流参考模型 根据 SaaS 成熟度模型第1级的描述,软件应用提供商直接为每个租户在不同的服务器上部署不同的工作流管理系统,就完成了面向 SaaS 的工作流管理系统的部署。如图2.5所示。在这种使用场景中,租户可以是任何需要使用工作流管理系统来开发、运行企业业务流程的企业或者组织。图2.5描述了两个租户使用工作流管理系统的情况,这两个租户企业通过网络分别在其独立的工作流管理系统中部署了流程,同时与运行中的流程进行任务提交等交互操作。在每个作为工作流管理系统租户的企业中,有两类参与到工作流管

23、理系统使用的角色,分别是管理员和最终用户。管理员负责对运行中的工作流进行管理。最终用户直接与运行中的流程实例派生出的工作流任 务进行交互。软件服务商针对每个租户企业分别开发部署符合其需求的工作流管理系统,并将这些系统分别部署到不同的服务器上,供租户企业使用。如图2.5所示。针对上述应用场景,经过分析可以抽象出面向 SaaS 第1级成熟度模型的工作流参考模型。如图2.6,参考模型包括四个逻辑层次和六个主要的逻辑模块:应用服务层:该层提供了底层计算环境,主要包括数据服务和应用服务等组成部分。数据服务提供了大规模数据的存储能力,应用服务提供了通过互联网访问工作流管理系统的能力。应用服务层是构成整个面

24、向 SaaS 的工作流管理系统的基础。控制层:该层负责执行和监控企业业务流程。工作流在执行过程中被称作流程实例,由相互依赖的任务组成。最终用户可以通过相关的操作来触发任务状态的更 改。控制层可以处理任务终止后的路由调度请求,采用相关的策略来进行流程实例的调度执行。通过划分控制层和任务管理层,分离了工作流路由调度和任务处理的 逻辑。任务管理层:任务是流程的组成部分,直接委派给最终用户进行处理。当任务的前趋任务完成时,会生成新的任务同时将新任务分发给 相应的最终用户。最终用户开始处理任务时,与任务相关联的流程数据由系统传递给最终用户。最终用户结束任务时,需要提交的数据由用户传递给系统,同时任务 进

25、入终止状态,同时请求控制层进行路由调度。表现层:该层联系流程管理系统和用户,为用户提供操作界面。通过分离出表现层,系统可以分离流程调度逻辑和界面,提高了系统的灵活性。表现层主要包括监控界面,任务管理器界面。参考模型列出了每个层次中重要的子模块及其功能,用户可以在此基础上引入其他的功能模块来完善用户系统的功能。图形化用户界面子系统包含了所有用于最终 用户和工作流管理系统交互的界面,该模块是最终用户与工作流管理系统交互的唯一方式。任务处理模块完成用户关于任务的请求,通过该模块用户可以完成任务的 领取、处理和提交等操作。该模块功能的完成需要底层模块的配合。用户管理模块完成企业中用户的管理,包括用户权

26、限划分和访问控制等。工作流数据管理模块提 供了流程数据的管理功能,包括流程数据的创建、读、写以及流程数据与应用数据的映射等功能。调度引擎模块是整个系统的中心,该模块完成工作流程的路由判断 和任务分发等工作流管理系统的核心功能。流程监控模块提供了对于运行流程的查看、修改等权限。供管理员查看流程执行和处理异常流程使用。2.2.2面向 SaaS 第2级成熟度的工作流参考模型 根据 SaaS 成熟度模型第2级的描述,尽管软件应用提供商仍然将不同实例部署到不同的服务器上来为不同的租户提供服务,但是由于具有可配置的特点,因此 在工作流管理系统的应用场景也发生了一些变化。如图2.7,在这种应用场景下,当有新

27、的租户需要使用新的工作流服务时,软件应用提供商只需要根据租户需求 对公有的代码进行配置,然后部署到新的服务器上即可。为了满足可配置的需求,需要引入流程配置工具,通过该工具将差别各异的业务流程在工作流管理系统中部 署、运行。通过分析使用场景,引入面向 SaaS 第2级成熟度的工作流参考模型,如图2.8所示。相比2.2.1节提到的参考模型,在应用服务层之上为其他三层提供了配置工具。配置工具主要用于配置工作流逻辑,由流程定义工具和任务表现工具两个子模块组成。流程定义工具支持为不同结构的工作流程进行建模。流程定义工具可以基于 独立软件或者基于 Web 的形式实现,能够支持图形和脚本的流程建模方式。任务

28、表现层提供了最终用户与工作流管理系统交互的统一界面。用户可以使用这一通用 界面进行任务的领取、提交,流程相关数据的查看和修改等操作。2.2.3面向 SaaS 第3级成熟度的工作流参考模型 根据 SaaS 成熟度模型第3级的要求,工作流管理系统的使用场景如图2.9所示。在这种场景下,租户企业使用工作流系统时,企业内部增加了一种新的用户角色开发者。开发者根据企业自身对于业务流程的需求,使用流程定义工具建立模型,并发布到公用的工作流管理系统中。对于软件应用提供商,只需要部署和维护一个公用的工作流管理系统,同时无需完成前两个场景中关于流程的建模和发布工作。但是由于用户具有修改和发布流程的权限,所以在这

29、种场景下,要求工作流管理系统能够隔离不同用户的数据,保护用户数据的完整性和安全性。根据 SaaS 成熟度模型第3级下工作流管理系统的使用场景,面向 SaaS 第3级成熟度的工作流参考模型具有更高的复杂性。如图2.10所示,参考模型包括5个层次和更多的子模块。面向 SaaS 第3级成熟度的工作流参考模型中引入了一个新的数据控制层,主要用于控制不同租户之间数据的隔离和共享。一方面,数据控制层将所有租户的数 据统一保存来减少保存数据使用的空间。因此,数据控制层的数据共享模块实现了通用的数据保存格式和存取策略。另一方面,数据控制层需要保证不同租户的数据 不被其他租户修改或者破坏。因此,数据控制层的数据

30、隔离模块实现了数据隔离策略。服务层将任务列表模块分离为任务管理模块和任务表现 两个模块。任务管理模块来为上层和外部应用提供任务管理相关的功能和接口,任务表现模块用于展示任务列表等功能。.流程定义模块供流程定义工具等应用,完 成开发者的流程建模功能。流程部署模块实现将流程定义引入工作流管理系统的方式。流程监控模块实现了用户监控流程实例的功能。控制层引入了服务引擎模块,用以完成流程执行过程中对于第三方应用的执行调用以及数据交互功能。2.2.4面向 SaaS 第4级成熟度的工作流参考模型 在 SaaS 成熟度模型的第4级,软件应用提供商部署了多个相互独立的工作流管理系统,并通过负载均衡来控制工作流管

31、理系统的使用,如图2 11所示。在这种情况下,所有用户的请求,都首先经过负载均衡控制模块柬处理,然后根据负载均衡算法来决定使用哪个工作流管理系统响应用户请求的操作。如图2.12,面向 SaaS 第4级成熟度的工作流参考模型与面向 SaaS 第3级成熟度的工作流参考模型相比,只是在应用服务层引入了负载均衡子模块。该模块采用了负载均衡算法来平衡对于数据服务和应用服务资源的使用,提高这两种资源的利用率。2.3面向 SaaS 的工作流参考模型分析 传统的工作流管理系统经过多年发展已经能够满足企业对于业务流程信息化的各种需求。但是传统的工作流管理系统需要多次部署,分别维护,而且部署和维护的 成本较高,使

32、得企业应用的门槛较高。为了降级传统工作流系统在部署和维护方面的开销,可以使用SaaS 模式来使用工作流管理系统。通过这种方式可以为软件 应用提供商增加用户、节约开发成本,同时为租户降低软件使用费用,降低了工作流管理系统的使用门槛。为此,提出了面向 SaaS 的工作流参考模型。结合 SaaS 四级成熟度模型分别分析了工作流管理系统在不同的 SaaS 成熟度模型下的应用场景,根据应用场景分别提出了面向不同级别 SaaS 成熟度的工作流参 考模型。其中在 SaaS 第1级和第2级成熟度模型下使用工作流管理系统,与传统的工作流管理系统类似,两者的区别只是在于系统部署在租户自身的服务器上还 是部署在系统

33、服务商的服务器上。因此.在 SaaS 第1级和第2级成熟度模型下使用工作流管理系统意义并不大。在 SaaS 第3级成熟度 模型下使用工作流管理系统,满足了减少重复部署次数、节约软硬件等资源的目的。通过这种方式使用工作流管理系统,真正可以为工作流系统提供者和应用者都降 低成本,实现双方商业利益的升值。但是这种方式的缺陷在于,受限于硬件资源,工作流管理系统能够满足的用户数目有限,很难满足大规模用户的使用。这就导致 系统提供者很难利用长尾效应来获取更大的经济利益。因此,在 SaaS 第4级成熟度模型下使用工作流管理系统显然更加具有实际意义。在 这种工作流管理系统的应用场景下,系统提供者可以真正的以较

34、低成本的满足租户对于企业业务流程的需求,实现自身经济利益的最大化。因此,面向 SaaS 第4 级成熟度的工作流参考模型最具有指导意义。面向 SaaS 第4级成熟度的工作流参考模型在一个较高的层次上给出了真正完全适合 SaaS 应用模式的工作流管理 系统需要具备的特点和层次结构。对于软件应用提供商开发以 SaaS 模式应用为目的的工作流管理系统具有非常重要的参考作用。2.4本章小结 本章首先分析了 SaaS 四级成熟度模型,介绍了不同的 SaaS 成熟度下应用系统需要满足的要求。然后结合工作流管理系统,提出了面向 SaaS 四级成熟度 模型的工作流参考模型。指出了适应不同的 SaaS 成熟度的工

35、作流管理系统需要符合的架构。最后,对这四种工作流参考模型进行了分析。第3章 JTangFlow-SaaS 工作流管理系统体系结构 3.1系统整体架构 JTangFlow-SaaS 平台是为提供满足 SaaS 应用模式下工作流应用需求而开发的工作流管理系统。JTangFlow-SaaS 在设计过程中参 考了面向 SaaS 第4级成熟度的工作流参考模型,在满足传统工作流管理系统对于业务流程建模、发布和调度等功能的基础上,增加了数据隔离和负载均衡等参考 模型指出的面向 SaaS 的工作流管理系统需要具备的模块。同时,结合SaaS 模式下工作流管理系统的使用场景,使用了分布式缓存、分布式数据存储、异步

36、接 口调用等方式来提高系统的性能和可伸缩性。JTangFlow-SaaS 的整体架构如图3.1所示,整个架构大致可分成外围模块、核心引擎和数据存储三部分。工作流管理系统的用户直接和外围模块交互,通过外围模块完成与工作流系统的交互,配合工作流管理系统完成整个业务流程的执行。外围模块在接收到用户的请 求后,进行相关的逻辑处理,最后请求核心引擎进行相关的流程调度操作完成整个用户的请求。外围模块根据完成的功能不同可以分为:机构管理、流程定制、流程 监控和任务管理。下面分别简要介绍各个外围模块的功能:机构管理管理参与到工作流管理系统中的人员、组织,该模块可以进行组织结构模型建立,人员权限分配 等功能。机

37、构管理可以分为组织结构建模和组织机构模型查询两种功能。组织机构建模用于管理员创建整个租户企业的组织结构,划分人员与组织的从属关系,为人 员分配操作权限等。通过组织机构建模,管理员完成了向工作流管理系统描述企业的人员组织需求的过程,工作流管理系统可以通过建立的组织机构模型完成业务 流程中的任务分配等功能。组织机构模型查询主要功能是根据组织机构模型查找人员从属的组织,判定人员具备的权限,也就是完成对于登录到工作流管理系统中的 人员进行身份认证,鉴定人员可以完成的操作。同时工作流管理系统中的任务分配功能也会用到组织机构模型查询提供的功能。流程定制模块 供租户企业的流程开发人员完成企业业务流程的建模功

38、能使用,同时该模块把流程开发人员建立的业务流程模型提交给执行引擎,由执行引擎把模型数据持久化到数 据存储层。流程定制可以分为两部分流程定义和流程发布。流程定义指开发人员使用图形化定义工具完成流程中任务的前后依赖关系定义,并引用开发者所在组织模 型中的人员权限信息完成对于业务流程中任务执行者的定义。完成流程定义后。需要进行流程发布过程,将已经建立的模型发布给核心引擎,由核心引擎完成模型的 持久化,以便核心引擎能够使用流程模型信息完成流程的调度功能。流程定制阶段由开发者完成了向工作流管理系统描述企业业务流程需求的任务。流程监控操作只有具有管理员权限的用户才能够进行。流程监控包括两部分内容:一是对于

39、流程行为进行监控和管理,二是平台管理员对于整个平台的运行情况进 行分析和评估。流程行为管理由租户企业的管理员完成,主要包括对于已发布流程的状态管理、运行流程的执行状态管理分析、出错流程的管理等与业务流程自身相 关的管理功能。平台运行预测分析由平台管理员完成,平台管理员需要对于运行中的整个软硬件系统进行分析管理,来保证整个平台的运行情况处于稳定状态,防止 系统崩溃等情况发生。任务管理是实现参与到企业业务流程中的最终用户查看、领取和完成任务功能的模块。工作流管理系统在执行业务流程 的过程中生成大量的任务,然后根据组织模型和流程定义把任务分发给不同的最终用户。最终用户通过查看任务列表来找出需要自己完

40、成的任务,然后通过领取任务 来进入任务的办理过程,最后提交相关的流程数据完成任务的办理过程。通过任务管理过程,最终用户配合工作流管理系统完成了流程执行过程中的人工处理过程。外围模块的操作最终都要提交给核心引擎来完成处理。核心引擎完成工作流管理系统的主要功能,包括流程调度逻辑、任务分配逻辑、数据隔离/共享逻辑等。除 此之外核心引擎还包括数据持久化策略、缓存策略等模块,用以保证系统的运行性能和稳定性。关于核心引擎的主要算法和策略将在第四章详细描述。数据存储完成对于数据的物理存储和逻辑分割。在数据存储部分,所有租户企业的数据统一保存,但是对于属于不同租户企业的数据在进行逻辑处理时需要进行隔 离。对于

41、工作流管理系统,需要存储的数据包括:组织机构数据、流程定义数据、流程相关数据、流程运行数据和历史数据。关于数据隔离策略在第四章详细描述。3.2流程定制 租户企业要使用工作流管理系统,需要将自身的业务逻辑进行抽象,建立模型,将模型提交给工作流管理系统,由工作流管理系统进行后续处理。工作流管理系统提供流程定制工具来完成这一过程。JTangFlow-SaaS 使用基于 Eclipse 插件开发的独立软件作为流程定义工具。使用独立软件作为流程定义工具采用了 C-S 架构,由于独立软 件在图形界面方面很成熟,非常利于开发出可用性强、功能强大的图形化流程编辑器。JTangFlow-SaaS 的流程定制工具

42、包括两部分流程设计和流程发 布。流程设计阶段开发人员根据企业业务需求使用图形编辑器创建企业业务流程模型,同时使用组织机构模型中的数据来定制流程参与者。完成流程设计后,开发者 使用流程发布工具将流程模型发布到工作流管理系统,由工作流管理系统完成模型的保存。流程发布完成之后,系统管理员可以在监控模块中查看流程,也可以激活 流程,使得流程可以进入执行过程。下面详细介绍流程设计和流程发布。3.2.1流程设计 流程设计过程中,开发人员使用 JTangFlow-SaaS 提供的流程定制工具进行虢程的编排。流程设计可以分为流程逻辑结构设计、任务执行者定义和流程相关数据定义。流程逻辑结构设计指根据业务流程的需

43、要,对于业务流程中任务的逻辑依赖关系进行定义。流程逻辑结构由流程图具体展示,其中流程图中的边代表任务之间的依赖关系。任务的依赖关系可以根据出线和入线路由划分。出线路由包括与(图3.2a)、或(图3.2b)和异或(图3.2c)三种,其中出线与路由指同时发出所有的出线;出线或路由指根据出线上的条件判断,如果条件成立则发出出线,否则不发出出线;出线异或路由指随机发出一条出线。入线路由也包括与(图3.3a)、或(图3.3b)和异或(图3.3c)三种,其中入线与路由指所有入线到达后启动当前任务;入线路由或指当由指定数目的入线到达时启动当前任务;入线异或路由指有一条入线到达时启动当前任务。根据业务流程以图

44、形的方式完成任务依赖关系编排以后,开发者还需要完成任务执行者的设置。开发者使用流程定制工具时,需要登录到工作流管理系统,登录时 需要指定用户的登录名和对应的租户企业 ID。登录成功后,流程定制工具中会以只读的方式展示出开发者所在企业的人员组织模型。开发者可以将人员组织模型中 的人员、组织和角色以人员表达式的方式定义为任务的执行者。流程执行过程中,引擎会实时计算人员表达式的值来获取任务的实际执行者,最终完成任务的分发。最后,开发人员需要定义每个任务需要传递或者展示的流程相关变量作为任务对应的工作内容。3.2.2流程发布 开发人员完成业务流程的建模后,需要将模型发布到工作流管理系统来将业务流程模型

45、保存为工作流流程定义的数据。流程发布包括流程合理性检查、流程文件生成、流程文件上传、流程文件解析和流程定义数据保存这五个阶段。流程合理性检查是对定义的流程模型进行检查,检查的目的是发现流程定义过程中存在的缺陷和逻辑错误等。合理性检查包含两个方面的内容:语法检查和语义检 查。语法检查指检查流程是否缺少必要的流程组成部分:比如是否缺少任务执行者、是否缺少连接线、是否存在孤立节点等。语义检查指检查流程中是否存在语义错 误,比如流程中是否存在由于任务依赖逻辑定义错误引起的死锁等错误。流程语法检查主要使用图的遍历算法,同时结合对各个流程组成部分进行检查来查看是否缺 少必须的定义元素来完成。语义检查是流程

46、合理性检查中的难点,目前主要是通过形式化的方法来进行检查,而且语义检查只能辅助发现特定的流程语义错误,并不 能保证能够发现所有的流程语义错误。因此,流程合理性检查并不能保证所有流程执行引擎处理的流程都是能够完成调度的,因此需要流程执行引擎有相应的异常处 理机制来辅助保证流程执行过程的稳定性。流程文件生成是将流程模型转化成工作流模型定义文件的过程。JTangFlow-SaaS 工 作流管理系统采用了基于 XPDL(XML Process-Definition Language)I 作流定义语言开发的SFDL(Service Flow Defmition Language)流程定义语言作为流程定义

47、的标准文件格式。因此,流程文件生成过程中,工作流定义工具将经过检查的流程数据对象转化为 SFDL 格式的文 件。定义工具完成流程文件的生成之后,调用相关的 API 将文件上传到工作流管理系统。工作流管理系统接收到流程文件后,开始按照 SFDL 规范对流程文件进行解析,并将解析的结果生成相应的数据对象。最后,工作流管理系统将数据对象持久化到预先定义的一系列流程定义数据表中,完成整个流程发布的过程。3.3多租户组织机构管理 SaaS 应用模式 下,工作流管理系统与传统应用方式的一个主要区别在于,使用工作流管理系统的企业数目由一个变为多个。也就是在工作流管理系统中同时存在多个组织机构,因 此在 Sa

48、aS 应用模式下,工作流管理系统中的组织机构管理需要支持多组织机构的情况,同时应该提供普遍适用的组织结构模型,这样才能满足各种不同企业的人 员组织机构的需求。组织机构管理分成两部分:组织机构建模和组织模型查询。组织机构建模是指企业用户的管理员在取得授权后,在工作流管理系统中创建企业在工作流管理系统中使用的人员组织机构的模型。模型建立后,企业管理员需要给模型中的组织人员分配权限。企业管理员建立好组织机构模型后,工作流管理系统可以根据企业的组织机构模型和分配好的权限进行访问控制和任务分配等操作。因此,组织机构管理模块需要提供关于组织机构查询和访问的操作,来帮助其他模块完成与人员相关的操作。下面详细

49、介绍组织机构管理模块中的两个子模块。3.3.1多租户组织机构建模 组织机构建模是企业管理员通过工作流管理系统提供的工具,将企业人员组织信息提交给工作流管理系统,供工作流管理系统执行流程的过程中使用。组织机构建模除了对于实际组织人员信息的形式化还包括对于组织人员权限的分配。3.3.1.1组织机构模型 JTangFlow-SaaS 采用树形结构描述组织机构模型,如图3.4。组织机构模型树由两种组成元素构成:组织和人员。组织是多个人员的集合,组织 中可以包括一个或多个人员。组织中也可以包括子组织。组织有标识 ID 和组织名称组成。每个企业都有一个以企业自身名称作为名称的组织作为其根组织,根组织 的

50、ID 是整个企业的标识 ID,工作流管理系统使用企业的标识 ID 作为企业所有数据的标识 ID,在数据隔离时用于区分属于不同企业用户的数据(见4 3 2节)。人员是构成整个组织的基本单位.人员由标识 ID、姓名等信息组成。完整的组织机构模型由企业自身的组织作为根组织,根组织下包含第一级子组织及直属于企业的人员。第一级子组织下包含第二级子组织及直属于第一缎子组织的人员。如此递归,构成了应用于工作流管理系统的完整的人员组织模型。由于任何企业的组织都可以抽象为由人员和组织构成的树形结构,所以 JTangFlow-SaaS工作流管理系统的组织机构模型可以支持任意的企业组织结构。3.3.1.2权限管理

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 文案大全

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁