读书笔记:基于web的工作流引擎设计
1、工作流引擎以工作流管理联盟的XPDL(XML Process Definition Language)语言为过程定义语言。
2、基于B/S结构的工作流系统的优点:分布式、跨平台。
3、工作流执行过程中的数据全部储存在中心数据库中。
4、日志的作用:如果一条工作流未能正常结束,管理员可以根据数据库中提供的信息从失败节点继续执行工作流。
5、过程定义为可视化图形界面,生成工作流管理联盟定义的XPDL语言文件存入工作流过程定义库,供工作流引擎调用。
6、工作流引擎的事务处理能力,使数据的一致性得以保证。
7、工作流引擎的设计是以数据库管理系统为核心的,数据库的访问效率直接关系到工作流引擎的效率。
8、工作流引擎组成:
企业管理器:定义企业模型(资源管理,角色管理,人员管理,组织管理)
解释器:解释CPDL过程文件
分配器:将新产生的工作流实例分配到工作列表中。
路由选择器:选择后续活动。
工作列表管理器:对于人工活动节点,采用基于角色的访问控制方法,不同的角色登录进入工作列表管理器后,只能管理和本角色相关的工作列表。
管理监控器:可以管理监控所有的工作流实例。
9、工作流模型ID:一个工作流过程定义的唯一标识
10、一种方案:xpdl只被解释一次,然后就按照”活动”和”变迁”被存在两个表中。后面都可以依赖这两个表来遍历活动。还需要一个状态指示器来标示过程定义的状态。
11、除了人工活动节点,还有自动化活动节点。
12、路由选择的情况,随活动的种类,非常复杂。
13、过程:
定义——由解释器解释出活动和变迁——启动工作流——生成工作流实例——存入工作流实例库——分配第一个活动(从活动、变迁表得到)到工作列表,状态置为“就绪”——活动完成——路由选择器选择路由——分配器分配工作列表——循环直至后续活动为空。
14、工作流引擎采用“生产者/消费者”模型。生产者提供的信息都存储在数据库中,供消费者使用。消费者用状态转移的方法处理消费的信息,并将处理过的信息转存到日志库中。所有消费者在消费信息时都要使用事务控制方法,如果消费者处理失败,事务回滚,信息将被再次处理。这种方法保证了工作流的正确运行。即使服务器崩溃,当服务器重启后,由于储存的信息是持久的,依然能够保证工作流从断点处继续运行。