情景: 法院一般对一个案子有以下一个流程<o:p></o:p>
立案à分案à审判à结案
其中
立案阶段 ---- 立案人员
分案阶段 ---- 分案人员
审判阶段 ---- 法官
结案阶段 ---- 法官
<o:p> </o:p>
上述的立案人员,分案人员,法官各自都是一个Group
<o:p> </o:p>
一个案件加入有8个属性
a b c d e f g h
每个阶段不同组的人员处理案件的属性为
立案阶段 ---- 立案人员 -- a b
分案阶段 ---- 分案人员 – c d
审判阶段 ---- 法官 --e f
结案阶段 ---- 法官 --g h
<o:p> </o:p>
<o:p> </o:p>
<o:p> </o:p>
一. 需要工作流的本质<o:p></o:p>
根据上述的情景,试想一下没有工作流的情况,我们一般的实现方式
为了将问题简单化
定义一个model为Case --- 案件
其中Case里面有一个属性,专门纪录案件状态,为state
在立案状态,state =’L’
分案状态,state =’F’
审判状态,state =’S’
结案状态,state =’J’
<o:p> </o:p>
还有一个与案件相关的Repository,CaseRepository
以及处理案件的用例ProcessCaseService
我们只分析处理案件用例里面的3个子用例
1. 取得相关案件 List getCases(String userName)
2. 改变案件状态 void changeCaseState(String userName)
3. 由立案人员建立一个案件 void createCase(String userName)
4. 处理案件 void dealCase(BussinessDomain business)
<o:p> </o:p>
<o:p> </o:p>
还有一个处理用户和用户组的用例ProcessOrganizationService
里面的相关的用例有
1.取得相关的用户组 String getGroupName(String userName)<o:p></o:p>
<o:p> </o:p>
立案人员有3个用例与之相关
1. 只获得与立案阶段相关的案件
2. 将案件状态改变为分案状态
3. 建立一个处于立案阶段的案件
4. 处理立案阶段案件的相关数据
<o:p> </o:p>
分案人员同样与立案人员有相似的用例
<o:p> </o:p>
整一个案件的处理过程,也就是整一个处理案件的主线<o:p></o:p>
立案à分案à审判à结案
<o:p> </o:p>
而这一个过程,涉及到的相关的业务逻辑有
1.只获得属于自己处理阶段的相关案件
2.改变案件状态
3.案件状态对应的groupName
<o:p> </o:p>
当业务逻辑发生变化的时候,比如有的地方法院实现分案,后立案
分案à 立案à审判à结案
<o:p> </o:p>
那么,针对这个法院,我们就要对我们原来存在的系统进行代码的修整
<o:p> </o:p>
原来是立案人员建立一个案件
现在由分案人员建立一个案件
需要修正的代码是void createCase(String userName)
<o:p> </o:p>
这个时候,又有的地方法院分案阶段处理的案件属性是a和b,而不是原来的c和d
需要修正的代码是void dealCase(BussinessDomain business)
当dealCase业务逻辑复杂的时候,所需要修改的代码是海量的
<o:p> </o:p>
这时候,又有的法院的案件处理是分案人员负责立案,立案人员负责分案
需要修正代码的地方是
void changeCaseState(String userName)
void createCase(String userName)
void dealCase(BussinessDomain business)
<o:p> </o:p>
这里只是法院的业务流程,每个行业都有每个行业自己的业务流程,为了将对业务流程的处理这一部分,抽取出来,并且尽可能的少修改代码,就有了工作流引擎的产生
二. wfmc定义的域模型<o:p></o:p>
<o:p> </o:p>
业务流程是什么?业务逻辑的那些部分是属于业务流程?哪些业务逻辑是要划分给工作流引擎的呢?
1. 什么是需要根据实际情况系统要发生改变
根据情景
(1) 一般法院的案件处理流程为
立案à分案à审判à结案
而有的法院为
分案à 立案à审判à结案
这4个阶段的先后顺序会发生变化<o:p></o:p>
(2) 有的地方法院分案阶段处理的案件属性是a和b,而不是原来的c和d
不同阶段需要处理的案件相关数据发生变化<o:p></o:p>
(3) 有的地方法院是分案人员负责立案,立案人员负责分案
角色所要负责处理的相应阶段的事情发生了变化<o:p></o:p>
<o:p> </o:p>
这个情景只是法院的情况,不同的领域,业务流程也不一样。为了将所有领域的业务流程的抽取出来,标准化组织对此做出了明确的定义,并定义了元数据模型,也就是我们开发过程中的业务流程相关的model类
如下图
不同的流程有时会调用相同的相关数据,以及组织结构等这部分公共数据可能是相同的
标准化组织又在基本的model之上定义了包结构
如下图
目的就是为了防止重复定义,增强复用性,被包内任何工作流定义引用
1. 工作流引擎怎么与其他业务逻辑交互以及与抽取的业务流程互交,以及工作流引擎自身如何管理,不同的工作流引擎之间又如何互交
标准化组织又为工作流引擎明确定义了一下接口
nterface1 解决了与其他业务逻辑交互以及与抽取的业务流程互交问题
interface2 就是工作流引擎相关的客户端
interface3 就是流程处理中,所需要调用的外部程序,如何和他们互交
interface4 就是如何与其他工作流引擎互交
interface5 就是工作流引擎的管理和监控接口,改变工作流的一些初始化配置<o:p></o:p>
- 大小: 20.1 KB
- 大小: 31.7 KB
- 大小: 12 KB
分享到:
相关推荐
在当今快速发展的商业环境中,企业对于业务流程的管理效率和灵活性提出了更高的要求。...未来,随着人工智能和大数据分析技术的融入,工作流系统将会变得更加智能和高效,为企业的持续发展提供强有力的支持。
大数据处理工作流调度系统是此类系统在大数据场景下的应用,专门处理海量数据的存储、计算和分析工作。OOZIE是一个用于管理Hadoop作业的工作流调度系统,它提供了易于使用的接口来定义和执行Hadoop工作流。 Oozie...
本书《Linux内核源代码情景分析》旨在通过对Linux内核最新版本2.4.0的源代码进行深入剖析,帮助读者更好地理解Linux内核的工作原理。书中采用了一种独特的情景分析方法,即通过具体的使用场景来讲解相关的代码和技术...
以情景演算理论为基础来研究工作流管理系统,形式化地将LR的状态对象...给出了情景演算的归结算法和算法分析,说明了如何将情景演算应用到工作流引擎中,给出了实际应用系统,并分析了基于情景演算的工作流引擎的优点。
《Android系统源代码情景分析源码》是一份深入学习Android操作系统源码的宝贵资料,主要涵盖了应用层和系统层的源码分析。这份资源对于开发者来说是提升技术水平、理解Android系统内部运作机制的重要工具,旨在帮助...
WindChill是一款由PTC公司开发的企业产品生命周期管理(PLM)系统,它主要用于管理和协作产品的设计、开发和维护过程。...因此,仔细分析和学习此图,对于掌握WindChill工作流的运作机制极其有益。
《Linux内核源代码情景分析(绿色标注版)》是一本专为初学者设计的教程,旨在帮助读者深入了解Linux内核的工作原理。该资源通过绿色标注的方式,清晰地标识出关键概念和代码片段,使学习过程更为直观和易懂。在阅读这...
通过阅读《LINUX内核源代码情景分析》,我们可以深入理解这些模块的工作原理。 在进程管理方面,内核负责调度和控制进程的执行,包括创建、删除、挂起和唤醒等操作。书中会详细讲解进程的状态转换、调度算法以及...
《Linux内核代码情景分析》是一本深入剖析Linux内核的权威著作,它分为上下两册,全面且详细地讲解了Linux内核的工作原理和实现机制。书籍旨在帮助读者理解这个世界上最广泛使用的开源操作系统的核心机制,使开发者...
《LINUX内核源代码情景分析(上)》是一份深度探讨Linux内核源代码的教程,旨在帮助读者理解这个世界上最流行的开源操作系统的核心工作原理。Linux内核是计算机操作系统的核心部分,负责管理系统的硬件资源,提供基础...
Stan 2.6.8 物质流分析(Substance Flow Analysis, SFA)是一种用于研究和量化特定区域内物质在经济系统和环境之间流动的方法。它通过对物质输入、过程、转化和输出的全面分析,帮助我们理解不同物质的生命周期,...
《Linux内核源代码情景分析》则更专注于内核的深层次解析,读者可以通过此书了解到Linux内核的工作原理,如调度算法、内存管理、设备驱动、文件系统、网络协议栈等关键模块的实现。这本书将复杂的内核代码通过情景...
在Linux内核中,中断和函数调用是操作系统核心功能的重要组成部分,它们是系统响应硬件事件和调度软件任务的关键...通过情景分析,学习者可以更生动、更深刻地掌握这些核心概念,为理解和调试内核代码打下坚实基础。
书中详细介绍了LEMON的工作流程,包括它在main()函数中的执行流,以及各函数的工作机制、相关数据结构及其相互之间的有机联系。全书分为11章,依次对LEMON进行了概略性介绍,讲解了如何利用LEMON开发具有特定功能的...
混流式水轮机的解剖和理解涉及到多个层面,包括结构分析、工作原理、操作技能和维护保养。深入理解这些内容,不仅需要扎实的理论基础,还需要丰富的实践经验。在实际工作中,技术人员需要对每一个部件的功能和作用有...