为了能更好的了解F2工作流引擎的架构体系,花了些时间画了整个架构的体系图。F2工作流引擎遵循参考WFCM规范,目标是实现轻量级的工作流引擎,支持多种数据库及快速应用到任何基于.net管理系统,实现工作流审批、业务流(BPM)的智能性、灵活性、简单实用性,具有强大的扩张性、集成性、独立性、开放性和稳定性,实现了可视化的流程设计或优化,流程的定制完全是通过鼠标拖、拉、拽的方式来完成,常见的串行、并行、分支、聚合都可以非常方便快捷地实现,依托于工作流强大的自定义,管理员还可以随时根据企业的情况调整流程,真正做到企业流程的不断优化。图形化、可视化设计流程定义通过Web端纯JS流程设计器无需编程的“拖、拉”式图形用户流程设计环境,支持通用流程条件,多节点,多流向。
关于轻量级:易集成、真可嵌入式架构决定其是否为真正轻量级,所谓轻量级就是易用易集成,没有臃肿的第三方框架,大量使用第三方的框架会使使用者的门槛很高,大量的应用第三方框架不仅集成时非常困难,而且要解决各种版本冲突问题,最终导致自称轻量级的工作流却无法达到真正嵌入式集成或者要做嵌入式集成时要花费大量的时间和人力成本来解决种种版本冲突问题,百度搜索到的几乎都自称轻量级,但是决多数都是为了自称轻量级而叫轻量级,但实际应用还是依然是重型工作流,整合嵌入非常困难,各种DLL或Jar包冲突。
从我的理解,首先为什么要做到轻量级呢,原因就是你是要为别的系统服务的,做为工作流引擎是要面对各种业务系统,被业务系统集成整合进去的,由于这样的应用就决定了工作流引擎自身必须是一个非常纯净的代码环境。所以最极致轻量级的就是C#或Java的原生代码,整个引擎最多使用一种行业最常用的架构,比如Java的SpringMVC,.net的asp.net MVC,除此以外不使用任何第三个架构,这样你的引擎代码将十分纯洁,而且可以只编译成一个DLL或一个Jar包。这样不仅整合时没有任何冲突,而且也不会导致因为过多的引用使原来的业务系统环境就得更加杂锁复杂进而会导致将来的维护成本直线上升。
F2BPM工作流引擎的架构设计就是基于极致轻量级的设计,真正做到轻量级这个称呼。实务做好事情,比漂亮的宣传带来实实在在的成就。
上图:F2BPM工作流引擎微内核技术架构
上图:F2BPM流程引擎五大接口
l Web建模工具:也叫“流程设计器” 即基于浏览器纯JS流程设计器无需编程的“拖、拉”式图形用户流程设计器工具。
l 流程引擎:调度,推进工作流过程和活动。
l 任务管理器:维护活动,为外部系统调用参与者任务列表提供数据
l 组织模型:流程任务最终是应用到人,达到人机交互的效果,为流程运转提供参与者。
l 支持多数据库的ORM:工作流引擎需要应用到各个系统中去,需要有自己的ORM数据库访问层,同时支持多种数据库类型。
l 流程数据:即模型库数据,流程定义相关数据。
l 相关数据:即运动库数据,相关待办事项任务,活动实例等运动数据,流程上下文数据等。
l 流程实例:流程实例工单数据。
l 任务数据:待办工作项数据。
l 形参数据:外部Tools,Apps中规定的参数类型数据。
l 控制数据:迁移的前驱ID,后续活动ID,工作流对象状态等数据。
l 业务表单数据:工作任务活动界面的数据,即表单展现
l 外部组织模型数据:外部系统的用户组织角色数据
l 外部应用数据:外部数据执行所需要的数据
工作流:Workflow
工作流定义:WorkflowDefinition
活动Activity:活动即是步骤的意思。
参与者Actor:参与者是直接或间接参与执行工作的人、机器或组织单元。
任务Task:用户待办任务实例,是工作的最小单位,即工作项。
迁移:流转转向,即带剑头的线所表示。即Petri网中的变迁
SplitXOR:异或散发,即后续步骤只能选择一条分支。
SplitOR:或散发,即后续步骤可选择大于等于1的分支
JoinXOR:异或汇聚,即前继步骤只要有一条分支聚合就满足
JoinOR:聚合,根据规则需要聚合1条或多条分支
WorkFlowEnactmntService(工作流执行服务)这个组件就是我们平常说的工作流执行服务或工作流引擎包含了多个工作流机,主要功能是读取工作流定义、根据工作流定义驱动工作流的流转,分为三个阶段:
1、模型建立阶段:利用工作流建模工具设计,并把XPDL文件解析导入到模型库。
2、模型实例化阶段:模型库数据库导入到运动库,并做好状态初始化,并分配每个活动执行所需要的资源参数等。
3、模型执行阶段:根据运行库的状态,条件判定,推动流程状态的迁移,并完成相关任务,同时提供注程实例运转过程的监控跟跟踪。
相关推荐
STM32F2系列产品具备先进的存储器和总线架构,通过多层AHB总线矩阵实现高性能和灵活的内存管理。接下来,我们将对STM32F2的存储器和总线架构进行详细的知识梳理。 首先,STM32F2的系统架构中包含了多层的AHB总线...
例如,F2BPM等国产工作流引擎提供了丰富的扩展接口,支持快速嵌入到基于.NET或Java平台技术的目标系统中,并支持自定义业务开发表单等功能。这种灵活性对于企业在不断变化的市场环境中保持竞争力至关重要。 #### 三...
本文将对Linux通用处理器体系架构进行概述,并重点关注STM32-F0、F1和F2这三款微控制器。 首先,通用处理器体系架构是指一类广泛应用于各种计算设备的处理器设计,其特点是具有高度的灵活性和可编程性。在Linux环境...
本文将深入探讨"stc15f2k60s2基本架构程序"所涉及的知识点,包括数码管测试、实时时钟、时钟设置、实时电压测量、周期测量和PWM测试。 1. **数码管测试**:数码管是一种常见的显示设备,用于显示数字或字符。在STC...
本节将深入探讨该系列微控制器的存储器与总线架构,帮助开发者更好地理解其内部工作原理及优化策略。 #### 二、多层AHB总线矩阵 多层AHB(Advanced High-performance Bus)总线矩阵是STM32F2的一个关键特性,它...
f2py,全称为 Fortran to Python Interface Generator,是Python科学计算库NumPy的一部分,用于构建Python和Fortran之间的接口。这个工具使得Python能够轻松调用Fortran编写的科学计算程序,反之亦然,极大地提高了...
标题 "f2fs-tools-1.12.0.tar.gz" 暗示这是一个用于管理F2FS(Fast and Flexible File System)文件系统的工具包,版本号为1.12.0,它被封装在一个tar.gz格式的压缩文件中。在Linux系统中,这种格式的压缩文件通常...
尼康F2系列包括F2、F2A、F2AS、F2S和F2SB多个版本,其核心特性始终如一,即卓越的性能和极高的可靠性。 对于这样一款复杂的机械相机,说明书的作用不容小觑。它不仅是用户学习和掌握尼康F2操作的指南,更是一本全面...
微信小程序F2自定义图表组件f2-canvas-master.zip是一个包含使用F2库在微信小程序中构建自定义图表的资源包。F2是阿里AntV团队开发的一个轻量级、可扩展的移动图表库,它提供了丰富的图表类型和强大的交互功能,能够...
STM32F2XX固件库是STMicroelectronics公司为基于ARM Cortex-M4内核的STM32F2系列微控制器提供的一套完整的软件开发工具。这个固件库包含了驱动程序、中间件和示例代码,旨在简化开发者在STM32F2芯片上的应用程序设计...
《STM32F2XX参考手册》是针对基于高级ARM架构的32位微控制器STM32F205xx、STM32F207xx、STM32F215xx及STM32F217xx(统称为STM32F20x和STM32F21x)的一份详尽技术文档。这份手册旨在为应用开发者提供全面的指导,涵盖...
F2trading公司自主研发机器人搬砖套利技术,全球首创1秒交易3000次核心算法,对接全球前50名的币交所建立API接口,F2会员后台公布每一笔交易订单的真实ID号/交易场所/时间/实时价格/单笔交易量,自动更新每天F2机器人...
"Four-Faith四信F2X16简易版使用说明书.doc" 本文档是Four-Faith四信F2X16简易版的使用说明书,旨在指导用户正确安装、配置和使用该设备。本文档涵盖了设备的基本概念、接线说明、配置工具使用、中心服务器设置、...
MDK是Keil公司推出的一套完整的嵌入式软件开发工具,包括C/C++编译器、实时操作系统(RTOS)内核、调试器、库函数等,支持多种微控制器架构,如ARM Cortex-M、ARM7、ARM9等。其强大的功能和易用性使得它在嵌入式开发...
这个资源是官方提供的,确保了其可靠性和兼容性,旨在帮助开发者进行高效且精准的编程工作。下面将详细介绍这个压缩包中的关键知识点: 1. **Keil μVision**: 这是一款由ARM公司开发的集成开发环境(IDE),广泛...
本文将详细讲解基于STC8F2K16S2单片机的听写机设计,涉及C51编程语言及单片机控制音频播放的关键技术。STC8F2K16S2是一款高性能、低功耗的8位单片机,常用于嵌入式系统开发,尤其在音频处理等领域有着广泛的应用。 ...
- **配置示例**:通过具体的实例展示F2MC-8FX CPU的配置方式,帮助读者更好地理解其工作原理和应用场景。 #### 二、内存空间(第二章) 该章节深入探讨了F2MC-8FX CPU的内存空间分配和管理机制。对于理解和利用...
C8051F2xx系列微控制器基于增强型8051 CPU内核,运行速度可达25 MIPS,支持管道指令架构,其中70%的指令可以在1或2个系统时钟周期内执行,极大地提高了处理效率。该系列微控制器配备有8 KB的在系统可编程(ISP)闪存...
通过分析和运行这些程序,开发者可以熟悉STC15F2K60S2的工作原理和编程技巧。 "STC-开发板4-程序-C语言-V1"可能是特定版本的开发板程序,针对C语言编程。C语言是单片机编程中常用的语言,具有高效、灵活的特点。...
STC15F2K60S2系列单片机是STC公司推出的8051内核单片机中的一款,具有丰富的功能特性和较高的性能指标,适合于多种嵌入式系统的开发。下面将详细介绍STC15F2K60S2系列单片机的主要技术特点和应用特性。 1. STC15F2...