我刚开始学习jBPM,慢慢学习做学习笔记,向各位大侠学习:)
------------------------------------------
【转】 在下面这部分,我尝试回答这样的问题“什么是流程定义包括的内容?”。这是从各种规范和工具所使用模型的原则和概念中总结得来的,反映了大部分模型中通用的基本思想。流程定义的内容可以分为四个不同的层次:状态(state)、上下文(context)、程序逻辑(programming logic)和用户界面(UI)。
状态层
所有状态和控制流的表述,都属于业务流程的状态层。标准编程语言中的控制流来源于Von Neuman体系。控制流定义了必须被执行的指令的顺序,控制流由我们书写的命令、if语句、循环语句等确定。在业务流程中的控制流基本与此一致。但在业务流程中不是使用命令而是使用状态作为基本元素。
在流程中,状态 (或者说等待状态)代表了一种对外部参与者(actor)的依赖。状态的意思就像“现在X系统或某某人必须作某些事,在此等待直到参与者通知这些任务已完成”。状态定义了一种对外部提供结果的依赖。状态典型的例子是批准步骤(step)。
流程定义中的状态也指定了执行依赖于哪个参与者。在活动图中,泳道(swimlanes)的标注代表这些参与者的名字。工作流系统使用这些信息构建任务列表,这是一般工作流系统都有的功能。如前所述,参与者可以是人也可以是系统。对于需要人参与的状态,工作流系统必须在运行时计算出具体的个人。这样的计算使工作流系统必须依赖于组织结构信息。关于这方面的一篇非常有趣的文章是在further reading section提到的“工作流应用中的组织管理”( 'Organizational Management in Workflow Applications')。
流程定义的控制流包含一组状态和它们之间的关系。状态之间的逻辑关系描述了哪些执行路径可以同时执行,那些不可以。同步执行路径用分叉(forks)和联合(joins)建模,异步执行路径用判断(decisions)和合并( merges)建模。注意在大多数模型中,在每个状态之前都有一个隐式合并。
UML活动图经常被用来做业务流程建模。作为一种直观和通用的表达,活动图在图形表述上有一个主要问题,就是没有区分状态和动作,它们都用活动来表示。缺少这种区分(导致状态概念的缺失)是学术派对UML活动图的主要批评。UML活动图的第二个问题是在UML2.0版中引入的。当多个迁移(transitions)到达一个活动时,以前的版本规定这是一个缺省合并(merge),在2.0版中规定这是一个需要同步的缺省联合(join)。在我看来,UML活动图的图形部分仍旧可以用来对业务流程状态层次建模,只要使用时对两条构建语义作如下的变化:
1.在用图形表述业务流程时,只建模状态层(状态和控制流),不要包括动作。这意味着图形中的矩形都是状态而不是活动
2.如果多个迁移到达一个状态,缺省定义为不需要同步的合并(merges)
在流程运行过程中,工作流系统用一个令牌(token)作为指针跟踪流程的状态。这相当于Von Neuman体系中的程序计数器。当令牌到达一个状态时,它被分配给工作流系统等待的外部参与者。外部参与者可以是个人、组织或者计算机系统。我们定义流程运行的执行人或系统为“参与者”(actor)。只有在工作流系统将令牌分配给一个参与者时,才需要访问组织结构信息。工作流系统通过分配令牌构建任务列表。
上下文层
流程上下文变量(process context variable) ,或简称变量,是与流程实例相关的变量。流程开发人员可以使用流程变量存储跨越流程实例整个生命周期的数据。一些工作流管理系统有固定数目的数据类型,另一些你可以定义自己的数据类型。
注意变量也可以用来存放引用( references)。一个变量可以引用如数据库中的记录、网络上的文件。什么时候使用引用,取决于使用引用数据的其他应用。
和流程变量相关的另一个令人感兴趣的方面是:工作流系统如何将数据转化为信息。工作流是用于组织内部跨越各种异构系统实现任务和数据协同的。对于业务流程中人工执行的任务,工作流系统负责从其他相关系统,如SAP、数据库、CRM系统、文档管理系统收集数据。在业务流程的每一个人工步骤,只有相关联的数据项被从异构系统中收集和计算。通过这种方式,从不同系统来的数据被转换并展现为信息。
程序逻辑层
如前所述,动作是在流程运行过程中,工作流系统响应指定的事件(event)执行的一段程序逻辑(programming logic)。程序逻辑可以是二进制或源代码形式的、用任何语言或脚本编写的软件。程序逻辑层是所有这些软件片断和关于在什么事件发生时调用它们的信息的组合。程序逻辑的例子包括发Email、通过消息代理发消息、从ERP系统中拿数据和更新数据库。
用户界面层
一个参与者通过向流程变量中填充数据的事件,来触发结束一个状态。比如,在请假的例子中,老板提供“同意”或“不同意”数据到流程中。某些工作流系统允许指定哪些数据可以填充到流程中,以及它们如何在流程变量中存储。通过这些信息,可以生成从用户收集信息的UI表单。基于流程定义生成用户提交表单的Web应用例子,可以访问the jBpm online demo。
分享到:
相关推荐
#### 一、流程定义与理解 1. **基本定义**: - 按照《牛津词典》的定义,流程是指一系列连续有规律的行动,这些行动以确定的方式发生或执行,从而导致特定结果的实现。 - 国际标准化组织(ISO)在ISO 9001:2000...
企业流程制度体系通常包括四个层次的文件:企业运营管理手册、流程文件、支持性文件和记录表格。在构建过程中,应根据企业的规模、产品类型、流程复杂度以及人员能力来规划文件结构,以确保文件数量尽可能少,同时不...
* 流程定义:迈克尔·哈默:把一个或多个输入转化为对顾客有价值的输出的活动。牛津英语大字典:一个或一系列有规律的行动,这些行动以确定的方式发生或执行,导致特定结果的出现——一个或一系列连续的操作。 * ...
例如,采购审批流程,既可能是采购管理流程的下一个层次,也可能包含了多种类型的采购物资分类。 四、企业流程的分级、分类和分层方法 企业流程的分级、分类和分层方法可以根据企业的性质、规模和发展阶段来确定。...
流程有多个层次,包括战略层面的流程、业务层面的流程和操作层面的流程。战略流程定义了企业的核心业务方向;业务流程关注的是如何实现战略目标的具体操作;操作流程则是业务流程细化到日常任务的执行层面。 3. **...
### 四、流程管理员的角色与职责 流程管理员在流程管理中扮演着关键角色,他们的主要职责包括: - **流程维护与管理**:确保流程的日常运行符合既定标准。 - **调整、试运行、优化、实施**:根据需要调整流程,并...
结构化开发流程定义了四个层次:阶段、步骤、任务和活动,并定义了每项工作的责任人、输入输出模板与样例、评价要素和时间界限等。 结构化开发的层次包括阶段、步骤、任务和活动等四个层次,每个层次都有其特定的...
3. **四层层级关系**:在组织结构或流程图中,四层通常代表最高级别的四个主要分类,每个大类下可能包含更细分的小类。这种结构有助于条理化信息,让观众逐步理解各个部分之间的关联和从属关系。 4. **层级关系**:...
**流程架构**: 定义企业内各级流程的分类、层次及其相互之间的关系。 2. **流程规范**: 描述每个流程的具体步骤、活动、输入、输出以及关键绩效指标(KPI)。 3. **流程治理**: 包括流程的制定、审批、发布、执行、...
这个文件提供了一个系统的流程架构方法论,涵盖了流程框架的概念、流程模块和具体流程的概念、流程框架的意义和应用、流程模块的组成和特点、流程框架的建立方法论、业务价值链和业务场景模式、流程标准化和差异化、...
在选择工作流系统时,需要考虑到流程定义的四个层次:流程定义、流程实例、流程上下文变量和流程的运行状态。 本文还对工作流和业务流程管理(BPM)的概念进行了比较,提出了工作流系统的主要优点和挑战。 在...
这份教材主要涵盖四个核心部分:关注流程与顾客、流程识别与设计、流程优化以及流程的持续管理。 首先,关注流程与顾客是企业成功的关键。流程被定义为一组共同为客户提供价值的相互关联的活动,它的核心在于理解...
- **流程规划**:定义需要建立哪些流程,以及这些流程之间的层次关系。 - **流程设计**:根据客户的需求设计具体的流程步骤。 - **流程优化**:识别并改进流程中的瓶颈和低效环节。 - **流程实施推动**:确保设计好...
2. **层次化状态结构**:细致规划状态机的层次结构,确保每个层次的状态数量不超过5个,这样可以保持清晰性和可维护性。 3. **状态跳转限制**:明确状态之间的跳转规则,避免不必要的跳转路径,提高状态机的效率和...
流程管理涵盖规划、建设、执行和运营四个阶段,形成一个闭环的管理体系。 3. 全业务流程覆盖 华为的业务流程覆盖全面,包括执行类、使能类和支撑类流程。执行类流程直接创造客户价值,使能类流程提供支持,而支撑类...
- **L3 流程**:具体的业务流程,定义了从输入到输出的完整业务过程。 - **L4 子流程**:更大的流程的一个组成部分,可以根据需要进一步细化。 - **L5 活动**:将流程分解为具体的执行任务,便于角色分工和执行。...
本文档提供了图书馆管理系统的业务流程图和ER图的设计方案,包括系统需求分析、系统目标、系统功能需求定义、系统功能结构图、业务流程图、数据流程图、ER图和数据字典等内容。该系统的主要目标是实现图书馆的信息化...
流程分为四个层次:岗位、关键动作、关键表单和模板化。这些层次共同构成了流程的骨架,使得流程在实际操作中更具可操作性和可追溯性。在制定流程时,要根据业务需求和实际情况判断是否需要建立流程制度,如涉及跨...
四、流程图与其他技术的结合 1. 配合后端数据:通过Ajax或其他API请求从服务器获取流程图数据,动态生成流程图,实现数据驱动的可视化。 2. 结合Vue、React等框架:在前端MVVM框架中,可以利用组件化开发流程图,...