谈流程引擎

标签: IT项目管理 | 发表时间:2013-08-15 21:25 | 作者:人月神话
出处:http://blog.sina.com.cn/cmmi
在分布式的架构中,流程引擎和权限引擎也不适合分离构建,两者之间的耦合度相当高,一个好的流程引擎首先要依赖于一个完善的权限模型和架构,其中包括了细粒度的数据权限控制等。

流程引擎中会产生动态权限控制,动态权限和静态权限的区别是静态权限是固定的,而动态权限是跟随流程节点的执行动态变化的,如当你处理到某个流程节点的时候,你对某个工单有查看权限,但是一旦审核或处理完成后,即权限自动回收。这是对静态权限的一个重要扩展。

流程引擎的活动节点需要参与人,参与人可以是具体的人,可以是岗位,可以是角色,也可以是直接上级的某个角色。参与人往往是一个抽象的概念,在最终流程执行的过程中会最终定位到一个或多个人。在处理静态功能和操作级权限的时候,往往定义到具体的角色和角色组就足够用了。但是在考虑和流程引擎结合的时候,需要进一步定义用户组。用户组是一个多维度累加后的一个概念,举个例子来说项目管理员是角色的概念,而某个组织某类产品的项目管理员即定位到具体的用户组,如市场部消费类产品项目管理员。

在流程执行过程中映射到具体的参与人一般有两种做法,在这里说明如下。一种是活动节点只配置到角色,即只配置到当前节点有项目管理员处理。在实际的工单中有具体的组织信息,有具体的产品线信息,因此根据映射可以明确的映射到某个工单是需要定位到哪个组织哪个产品的项目管理员,即用户组。在这个用户组里面往往可以定位到具体的一个人。如果还定位到多个人则可以处理为流程抢先处理机制。如果某个流程只涉及到根据组织进行划分,则有第二种不需要用户组的做法,即所有的人全部放到角色里面,流程在执行过程中首先映射出具体的人员,然后根据组织ID或上级组织ID对人员进一步进行筛选即可,这种方法的可行之处主要在于本身人员信息属性中就带有所属组织信息。

工单和流程模块是一种完全的松耦合关系,一个工单根据根据类型的不同挂多个不同的流程模版,而多个工单也可以同时挂接同一个流程模版。因此工单和流程模版之间需要有一种支撑这种松耦合的关系表。即实现工单和流程之间的一种映射。对于流程模型而言,关键的内容是流程模版,活动节点,连接弧和路由信息,活动节点对应的参与人信息,路由事件(前+后)相关信息等。这些信息在流程启动后又涉及到具体的实例信息,如流程实例信息,活动节点产生的任务实例信息等。

对于不属于一套完整的快速开发平台产品的流程引擎,最好的方式就是只管流程,而不管任何和表单相关的数据。包括在流程处理环节中可以涉及到的需要新补充填写的扩展字段等,这些内容最好的方式就是都放给应用侧来处理,流程引擎可以提供调用接口,但是不要去建模,存储和处理这些数据。

对于企业私有云PaaS平台中的流程引擎,实质是BPaaS的一部分内容,体现了流程即服务的思想,流程和应用完全松耦合开。在这里流程引擎必须要支撑内部的多租户,而租户就是外部的多个业务系统或应用模块。在多个业务系统之间需要考虑流程引擎本身的数据,权限等各方面内容的隔离性。

流程引擎需要有完善的条件节点和表达式节点的定义,在这里涉及到工单中的任何属性都可以作为表达式节点的计算条件参与到具体的计算和路由分支的选择。同时对于复杂的场景,在路由发生前和发生后还需要支持对外部服务接口的调用,外部接口服务是一个完整的业务逻辑触发,在这种情况下一个工作流引擎已经实现了部分BPM服务编排的内容。

再次强调下BPM是在工作流引擎之上,更加强调的是端到端流程整合,业务流处理和服务自动编排,对于顶层的BPM流程下钻后才是具体的审批流处理。

  青春就应该这样绽放   游戏测试:三国时期谁是你最好的兄弟!!   你不得不信的星座秘密

相关 [引擎] 推荐:

JS游戏引擎

- 米随随 - HTML5研究小组
If you don’t have anything better to do and want to help fellow redditors interested in JS game dev out, feel free to fork the list and modify it as you like.

mysql 引擎优化

- - CSDN博客推荐文章
MySQL数 据库引擎取决于MySQL在安装的时候是如何被编译的. 要添加一个新的引擎,就必须重新编译MYSQL. 在缺省情况下,MYSQL支持三个引擎:ISAM、MYISAM和HEAP. 另外两种类型INNODB和BERKLEY(BDB),也常常可以使用. 如果技术高超,还可以使用MySQL++ API自己做一个引擎.

谈流程引擎

- - 人月神话的BLOG
在分布式的架构中,流程引擎和权限引擎也不适合分离构建,两者之间的耦合度相当高,一个好的流程引擎首先要依赖于一个完善的权限模型和架构,其中包括了细粒度的数据权限控制等. 流程引擎中会产生动态权限控制,动态权限和静态权限的区别是静态权限是固定的,而动态权限是跟随流程节点的执行动态变化的,如当你处理到某个流程节点的时候,你对某个工单有查看权限,但是一旦审核或处理完成后,即权限自动回收.

Mysql Innodb 引擎优化

- 彦强 - 阿辉的空间
作/译者:吴炳锡,来源:http://imysql.cn/ & http://www.mysqlsupport.cn 转载请注明作/译者和出处,并且不能用于商业用途,违者必究. InnoDB给MySQL提供了具有提交,回滚和崩溃恢复能力的事务安全(ACID兼容)存储引擎. InnoDB锁定在行级并且也在SELECT语句提供 一个Oracle风格一致的非锁定读.

Zend引擎的优化

- Angus - 风雪之隅
作者: Laruence(. 本文地址: http://www.laruence.com/2011/07/14/2115.html. 在PHP 5.4的更新list上, 有一句: 提升了Zend引擎的性能, 减少了内存占用.. 那么, 到底是怎么提升的呢?. 避免不必要的Hashtable. 我们知道在PHP中, 类的属性/静态属性/常量, 都是保存在Hashtable中的, 而在以前, 即使一个类没有申明属性/静态属性/常量, Zend引擎也会为他们分配Hashtable..

JS游戏引擎列表

- sku - 酷壳 - CoolShell.cn
这里有一个网址收集了关于JS游戏引擎开发库的一个列表,转过来. 关于使用JS和HTML5做的一些小游戏,可参见《HTML5 小游戏展示》. Name Latest Release License Type Notes The Render Engine 1.5.3 MIT 跨浏览器; 大规模 API; 开源. 2 gameQuery 0.5.1 CC BY-SA 2.5 和 jQuery 一起使用 gTile 0.0.1 Tile based.

uSniff:BT种子搜索引擎

- leqoqo - 软件志
一、uSniff相关信息: 1、官方主页:http://www.usniff.com/ 2、简介:uSniff是一个BT种子搜索引擎,简单、易用、实时是其最大的优点,其搜索引擎数据库包含了17个知名种子站点的种子信息,目的是想发展成为世界上最大的BT种子搜索引擎,而且对于每个种子,该搜索引擎都会进行安全认证,以保证用户的正常使用.

Android游戏引擎 Lib9

- Bin - 开源中国社区最新软件

试用mysql的infobright引擎

- - 博客园_首页
     换了新的单位我现在也从oracle从业者变成了mysql从业者,当然放弃oracle的原因主要是因为在新单位可以尽量少的写代码了.      现在我面对的是一个数据仓库,和上一家公司一样,数据仓库最让我们技术人员受不鸟的是数据量太大,存储,I/O,效率都让人想死,每次有些统计分析要求,在清单表里查询简直是让我等到花儿都谢了.

调研js模板引擎

- - CSDN博客Web前端推荐文章
从这几个指标来比较js模板引擎:. 1 文件大小 - 影响网络传输时间. 2 执行速度(性能) - 影响响应速度,涉及模板解析和渲染. 3 语法简明/易用/灵活/自定义操作符 - 影响开发效率和维护难度. 4 错误处理/调试 - 影响开发效率和维护难度. 5 安全(XSS) - 是否防止XSS. artTemplate(腾讯):5k.