Download presentation
Presentation is loading. Please wait.
1
中南大学 信息科学与工程学院 湖南科技大学 知识处理与网络化制造湖南省普通高校重点实验室
成批处理工作流中数据流的管理与控制 文一凭 中南大学 信息科学与工程学院 湖南科技大学 知识处理与网络化制造湖南省普通高校重点实验室
2
√ Outline 问题的提出 1 问题的提出 1 问题的提出 1 数据流管理机制 2 数据流管理机制 2 数据流管理机制 2
数据流控制机制 3 数据流控制机制 3 数据流控制机制 3 数据流控制机制 3 应用实例 4 应用实例 4
3
问题的提出:研究背景 一类包含成批处理区的特殊业务过程 成批处理区中同一类型工作流活动的多个活动实例可进行合并处理
成批处理工作流 一类包含成批处理区的特殊业务过程 成批处理区中同一类型工作流活动的多个活动实例可进行合并处理 原本分别执行的多个活动实例可成组合并执行 例:某公司处理共享租车的工作流 活动A提出租车申请;活动B审批租车申请;若租车申请未被审批通过,则选择活动G发送拒绝通知 反之,活动C安排出租车;活动D为通知司机;活动E为通知乘车人;活动F为乘车人缴费
4
问题的提出:研究背景
5
问题的提出:研究背景 当BG1、BG2执行完后,需要将BG1、BG2的输出数据进行拆分,即根据乘客数量将乘车费用分摊到C1、C3与C2、C4中
6
问题的提出:研究背景
7
问题的提出:研究的问题 从这个例子可以看出,活动分组实例与活动分组执行实例间的数据交互具有以下特点:
活动分组实例来自多个不同的并发过程实例 需进行合并与拆分等数据操作 因此,为提高成批处理工作流执行的自动化程度,需要提供一种对成批处理工作流中数据流进行管理与控制的机制。
8
问题的提出:相关概念的形式化描述
9
问题的提出:相关概念的形式化描述
10
问题的提出:相关概念的形式化描述
11
问题的提出:相关概念的形式化描述
12
√ Outline 问题的提出 1 问题的提出 1 问题的提出 1 数据流管理机制 2 数据流管理机制 2 数据流管理机制 2
数据流控制机制 3 数据流控制机制 3 数据流控制机制 3 数据流控制机制 3 应用实例 4 应用实例 4 12
13
数据流管理机制:成批处理数据模型 设A为成批处理区中的一个活动,下面先对与活动A成批处理过程相关的数据操作进行描述。
14
数据流管理机制:成批处理数据模型
15
数据流管理机制:成批处理数据模型
16
数据流管理机制:成批处理数据模型 上述定义说明,活动分组实例与活动分组执行实例间的数据交互可通过一系列数据操作来完成
因此,可定义与过程模型相对应的成批处理数据模型
17
数据流管理机制:数据管理组件 数据管理组件主要包括一个成批处理数据模型解释器,一组数据表结构及一个数据处理模块
活动实例的输入输出数据使用关系表结构存储 分组映射信息使用分组映射表结构存储
18
√ Outline 问题的提出 1 问题的提出 1 问题的提出 1 数据流管理机制 2 数据流管理机制 2 数据流管理机制 2
数据流控制机制 3 数据流控制机制 3 数据流控制机制 3 数据流控制机制 3 应用实例 4 应用实例 4 18
19
数据流控制机制 我们的前期工作已设计了一个基于事件驱动机制的成批处理调度引擎(DBP)
20
数据流控制机制 DBP采用事件触发机制来组织成批处理工作流的执行过程
ECA规则解释器对事件队列中的新到事件进行处理,当某条ECA规则满足,则其被解释执行 对原有DBP中的事件与ECA规则进行扩展与修改,便可使引擎的原有组件与数据管理组件配合实现对数据流的管理与控制
21
数据流控制机制
22
数据流控制机制 对于缓冲区管理器,可新增一个Acti_Ins_ Arrival事件
在工作流引擎将新的活动实例送入到缓冲区管理器时由缓冲区管理器产生 新增一条可由该事件触发的ECA规则:ON Event Acti_Ins_ Arrival DO Action { Record_Info( ); } 在原有ECA规则Rule 2与Rule 3的未尾均加入操作函数CreateGroup Rule1的未尾加入操作函数DecomposeGroup 算法1-3分别描述了这三个操作函数
23
数据流控制机制 算法1:Record_Info aid=GetInstanceID( ); //获取活动实例ID pid= GetProcessID( ); //获取过程实例ID ActivityName=GetInstanceInfo( ); //获取活动名 AddToInsList(aid, pid, ActivityName, ‘Initial’); //将活动实例加入到InsList TableName= GetDataTable (ActivityName); //获取活动的数据表名 SaveInfo(TableName, GetInputData(aid, pid)); //将活动实例的输入数据存入数据表
24
数据流控制机制 算法2:CreateGroup ActivityName= GetScheduleInfo( ); //获取活动名 InstanceSet= SelectPartition(ActivityName); //选择一组活动实例 SetInsStatus(InstanceSet, ’Scheduled’); //将该组活动实例设为调度态 GID= CreateGroup(InstanceSet); //创建活动分组实例,返回分组ID TableName=GetGDataTable(ActivityName); //获取活动分组实例的数据表名 BAID= CreateGroupInstance(GID); //创建一个活动分组执行实例,返回该实例ID SetMapTable(GID, BAID); //建立分组映射关系 SaveInfo(TableName, Projection(GID, BAID, ActivityName)); //将执行投影操作获取的数据存入数据表 SaveInfo(TableName, Combination(GID, BAID, ActivityName)); //将执行合并操作获取的数据存入数据表 ArrangeTask(BAID, ActivityName); //分发工作项给执行者
25
数据流控制机制 算法3:DecomposeGroup BAID= GetInstanceID( ); //获取活动实例ID ActivityName=GetInstanceInfo( ); //获取活动名 TableName=GetGDataTable(ActivityName); //获取活动实例的数据表名 SaveInfo(TableName, GetOutputData(BAID)); //将活动实例的输出数据存入数据表 GID= GetMapInfo(BAID); //获取分组映射关系 TableName=GetDataTable(ActivityName); //获取活动的数据表名 SaveInfo(TableName, Distribution(GID, BAID, ActivityName)); //将执行分发操作获取的数据存入数据表 SaveInfo(TableName, DeComb(GID, BAID, ActivityName)); //将执行拆分操作获取的数据存入数据表 SetInsStatus(GetGroupSet(GID), ’Completed’); //根据分组映射关系将该组活动实例设为完成态
26
√ Outline 问题的提出 1 问题的提出 1 问题的提出 1 数据流管理机制 2 数据流管理机制 2 数据流管理机制 2
数据流控制机制 3 数据流控制机制 3 数据流控制机制 3 数据流控制机制 3 √ 应用实例 4 应用实例 4 26
27
应用实例 TCGIS(Trusted Car-pooling Geographic Information System,可信拼车地理信息系统 ) 用于解决现实拼车中最优化行车路线选择、费用分摊、拼车双方(乘客和驾驶员)信誉评级等问题 通过应用GPS、LBS(Location-based Service, 基于位置的服务)、Google API等技术,为拼车用户提供更多其它服务 本文的研究为该平台自动化处理拼车信息提供了技术支持
28
应用实例 TCGIS系统体系结构图
29
Q & A Thank you!
Similar presentations