面向SaaS的工作流管理系统设计与实现.pdf
《面向SaaS的工作流管理系统设计与实现.pdf》由会员分享,可在线阅读,更多相关《面向SaaS的工作流管理系统设计与实现.pdf(39页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
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、入终止状态,同时请求控制层进行路由调度。表现层:该层联系流程管理系统和用户,为用户提供操作界面。通过分离出表现层,系统可以分离流程调度逻辑和界面,提高了系统的灵活性。表现层主要包括监控界面,任务管理器界面。参考模型列出了每个层次中重要的子模块及其功能,用户可以在此基础上引入其他的功能模块来完善用户系统的功能。图形化用户界面子系统包含了所有用于最终 用户和工作流管理系统交互的界面,该模块是最终用户与工作流管理系统交互的唯一方式。任务处理模块完成用户关于任务的请求,通过该模块用户可以完成任务的 领取、处理和提交等操作。该模块功能的完成需要底层模块的配合。用户管理模块完成企业中用户的管理,包括用户权
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 SaaS 工作流 管理 系统 设计 实现
限制150内