面向协作的轻量级柔性工作流引擎的设计与实现

论文价格:150元/篇 论文用途:硕士毕业论文 Master Thesis 编辑:硕博论文网 点击次数:
论文字数:53622 论文编号:sb2024043011523952331 日期:2024-05-19 来源:硕博论文网

本文是一篇软件工程论文,本文采用基于外挂模式的任务适配策略管理机制,可根据具体需求实现任务适配策略,同时内置了基于蚁群算法实现的任务适配策略,该策略根据蚁群算法的数学模型计算出目标列表的搜索解并将协作任务分发至对应的解对象。
第一章 绪论
1.1 研究工作的背景与意义
随着互联网的迅猛发展,越来越多的组织开始采用无纸化办公的工作模式,新冠疫情的冲击更是加快了线上办公大众化的速度,企业、政府、高校等机构对于在线协同办公方面的需求有增无减。2022年中,中国互联网络信息中心发布了第50次《中国互联网络发展状况统计报告》。根据该报告的数据,截至2022年6月中国在线办公用户规模达4.61亿,占网民整体的43.8%[1]。
工作流概念的引入在很大程度上解决了遵循固定流程的云办公的需要。工作流是预先规定的信息流,象征着协同办公的业务交互流程,是一种抽象模型。工作流技术将工作流模型付诸实践,通过将日常业务流程划分成特定固定数量步骤,将文档、信息或任务等作为流程的载体交由特定角色的人员按照定义好的规则来流转这些步骤,以实现业务流程半自动化或全自动化。
工作流引擎是工作流技术的核心支撑,其作用好比汽车的发动机引擎,负责根据预定义的业务模型进行流程调度和过程管理,从而达到降低沟通成本和提高工作效率的目的[2]。OSWorkflow、JBPM、Activiti、Flowable和Camunda等是目前较为流行的开源工作流引擎,这些传统流程引擎采用将一组任务组织起来的方式以完成单个有序的过程[3],如图1-1所示,每项任务既可以由一个或多个人来完成,也可以由一个或一组软件系统完成,还可以由一个或多个人与软件系统协同完成,流程引擎的构成包括模型定制工具、外部数据访问接口和流程调度器等。

软件工程论文怎么写
软件工程论文怎么写

.........................
1.2 国内外研究历史与现状
工作流技术并非一项新技术,它的发展已有一段时间。早在1993年便成立了工作流管理联盟(Workflow Management Coalition,WfMC),该组织的构成包括推广学者、分析师、开发工程师、顾问、大学和研究团体,涵盖工作流与业务流程管理,制定了工作流的产品规范并给出了一套工作流的参考模型[4]。而后陈畅和吴朝晖[5]对工作流模型及其规范进行了深层解读,将这套通用工作流参考模型划分为一个核心工作流运行控制服务和一组统一的工作流服务接口,并给出了工作流规范的制定、描述、检验、分析以及动态工作流的实现等几个值得研究的核心方向。
1.2.1 基于预定规则的工作流建模
基于预定规则的工作流建模即预先制定一组规则来表示工作流的流程,后续基于这组规则完成工作流的运转,规则格式的制定便成为了一个研究热点。早在2001年  Goh A.等人[6]介绍了一种基于ECA规则的工作流管理系统—STEP,该系统针对分布式的协作工作流旨在建立灵活可控的高集成企业级平台,而且该系统既符合WfMC的产品规范,也可集成到符合同样规范的企业级工具。它的灵活性便是基于规则的可配置来实现的,所以支持运行时修改,是一种自适应的动态工作流系统。ECA(Event-condition-action)规则是一种事件驱动的规则,它在数据库对内部事件和外部事件变化的反应方面有很大的作用[7]。同样地,孙政[8]将ECA规则应用到审批工作流模型中,制定了事件驱动的工作流执行语义,通过基于角色的流程管理服务和任务管理服务两个核心模块构建了一个细粒度管控的审核工作流管理系统。
...................................
第二章 柔性协作引擎需求分析
2.1 协作场景分析
为了更加全面地建立协作式工作流模型,本节针对常见的协作场景进行了对比、分析与总结,以便提取其共性并抽象为统一的建模形式。实际应用中协作场景是多种多样的,从受限维度的角度可以划分为自由协作和受限协作两大类,而受限协作又可以根据协作目标指派、任务是否回传、协作次数和访问控制粒度等角度进行进一步的划分,接下来以一个小型初创公司的变迁过程为例展开说明。
2.1.1 自由协作
该公司在成立初期由于人员较少所以采用无组织的办公协作,整个团队内的各个员工都知晓其他员工应该负责的工作职责,且一个人可能身兼数职,此时该公司内部的运转可以看作单个工作流,员工根据主观意识将任务交由合适的同事进行协作。上述案例中业务流程的协作不添加任何限制称作自由协作,在组织内协作任务像一个皮球被自由地传来传去,因此任务可能在某个协作人手中直接完成结束,也可能被无限传递下去。这种场景下工作流的参与者无需关心任务的传递路线、时空范围以及涉及的文件、表单等数据对象对谁可见的访问控制权限,只需发起或完成待办任务并传递至任意目标即可。自由协作常见于企业内部的团队协作工具以及各行各业协同使用的任务管理系统等。
.................................
2.2 功能性需求分析
通过上述场景分析可以提取出如图2-5所示的用例图,用例的参与者主要是顶层业务服务、过程定义工具等上游服务。共包含以下两部分功能:
(1)工作流配置管理
上游服务可以通过协作引擎管理和维护工作流程中的各种配置项,这些配置项在确保工作流高效运行的前提下动态生效以体现工作流引擎的柔性和灵活性,包括任务调度配置、参数设置、安全配置等控制逻辑,主要体现在协作模板管理和协作实体类型管理两大用例板块。协作模板规定了流程的受限条件和任务流转策略,协作实体类型包含了协作任务附带数据的权限控制与状态变换等控制项,这两部分在第三章的功能模块设计部分和第四章的协作引擎内核设计部分均有详细说明,此处先按下不表。
(2)工作流运行与监控
上游服务可以通过协作引擎推进业务流程的执行并对其过程进行监控管理,主要包括任务信息查询、任务协作、任务回退、协作日志管理和任务业务对象管理五大部分功能。
任务信息查询指工作流的参与者可以根据任务的名称、状态、优先级、截止时间等通用属性查询任务的运行时信息、历史信息及其关联的实体数据,返回的数据要经过范围过滤和权限控制,例如对于个人用户而言只能查看自己参与过的任务,而且在任务的不同状态下可以进行的操作也有所不同。
任务协作指工作流的参与者为完成特定的操作或者业务需求将其结果传递给下一个协作者,柔性协作引擎需支持手动递交、手动认领和自动分配三种协作动作,并保证执行顺序按照配置管理的内容履行。
任务回退指工作流的参与者在任务运转过程中可以执行错误或异常操作将任务的状态及附加数据还原到之前的状态,回退的动作须由用户根据业务场景手动触发,柔性协作引擎需要记录回退日志。
..........................
第三章 柔性协作引擎整体设计 ················· 22
3.1 功能模块设计 ························· 22
3.2 应用架构设计 ····························· 23
3.3 体系结构设计 ······················· 25
第四章 柔性协作引擎详细设计 ·························· 27
4.1 协作引擎内核设计 ················ 27
4.1.1 概述 ········································ 27
4.1.2 协作模板配置项设计 ························· 29
第五章 柔性协作引擎功能实现 ···························· 54
5.1 协作实体管理 ························ 54
5.1.1 数据库设计 ··································· 54
5.1.2 接口设计 ···································· 56
第六章 柔性协作引擎测试与分析
6.1 测试环境与场景
本文实现的柔性协作引擎采用本地环回测试的方式,测试所需的软硬件环境参数如表6-1所示。

软件工程论文参考
软件工程论文参考

以第四章描述的三个范例设计为测试场景,首先进行一级审核场景的协作实体类型配置和协作模板配置,并以测试用户的账号发起协作任务并参与协作,而后在一级审核配置的基础上添加二级审核协作配置并进行协作任务轮转,最后完成众包模式下认领协作任务和派单领域下分派协作任务的操作。在功能测试方面先使用接口调试工具对柔性协作引擎开放接口的输入输出参数进行测试,然后在接口功能测试通过的情况下进行人机交互界面层面的测试与浏览。
...............................
第七章 总结与展望
自工作流的概念提出以来,越来越多的开源工作流引擎被推出和使用,然而这些工作流引擎大都是基于流程定义来诠释业务需求,一旦遇到业务调整则需要进行影响较大的流程重新绘制与上线。本文针对传统流程引擎的弊端提出了一种柔性的协作式工作流引擎,从协作任务的角度进行过程管理与监控,主要工作体现在以下几个方面:
(1)需求分析与整体设计
本文首先从自由协作和受限协作两大类协作场景的角度进行了对比、分析与总结,并从目标指派、任务回传、协作次数和访问控制四个维度对受限协作场景进行了细分说明,基于分析结果归纳了面向协作的工作流引擎应实现的功能性需求和非功能性需求,然后进行宏观层面的功能模块设计、应用架构设计和体系结构设计。
(2)协作引擎详细设计
在协作引擎结构方面,本文将引擎内核划分为协作策略配置、协作任务目标执行人适配算法管理、协作任务调度、协作引擎服务接口和跨业务处理五大模块,并介绍了各模块的内部细节和南北向衔接。而后就协作策略配置的协作模板和协作实体类型的配置项展开了详细说明,这些配置项是协作引擎灵活处理需求不确定流程的基础支撑。基于协作模型的定义与配置项说明给出了审核领域、众包模式和派单领域的设计范例以加深理解。
(3)功能实现与测试
最后,本文针对引擎的数据库设计和接口功能设计进行代码层面的实现并以第四章的三个场景范例作为测试的用例完成功能测试和性能的压力测试,测试结果显示引擎的开放能力符合预期。
参考文献(略)


如果您有论文相关需求,可以通过下面的方式联系我们
点击联系客服
QQ 1429724474 电话 18964107217