【摘要】 支持分布式执行的工作流模型动态分割的方法属于企业工作流模型分割技术领域,其特征在于,在每一套由服务器端和客户端共同组成的工作流系统中实现;在服务器端设有:建模模块、分片池模块、分片管理模块、活动监控模块、活动分配模块以及数据库,在客户端设有任务客户端模块;其中,分片池模块把建模模块中设定的工作流模型送往分片管理模块,模型经过动态分割后得到的分片送往分片池模块,供任务客户端模块使用;活动分配模块的作用是为活动提供实际执行站点标识,或者为分割后新分片中的后继活动指定实际执行站点;活动监控模块用于动态记录实际执行站点所执行的各项活动。本发明给出了工作流模型动态分割和执行的方法,具有广泛的应用前景。 【专利类型】发明授权 【申请人】清华大学 【申请人类型】学校 【申请人地址】100084 北京市海淀区100084-82信箱 【申请人地区】中国 【申请人城市】北京市 【申请人区县】海淀区 【申请号】CN200810055620.X 【申请日】2008-01-04 【申请年份】2008 【公开公告号】CN101216911B 【公开公告日】2010-09-29 【公开公告年份】2010 【授权公告号】CN101216911B 【授权公告日】2010-09-29 【授权公告年份】2010.0 【IPC分类号】G06Q10/00; G06Q10/06 【发明人】范玉顺; 谭伟 【主权项内容】支持分布式执行的工作流模型动态分割方法,其特征在于:所述方法是在每一套由服务器端和客户端共同组成的工作流执行系统中依次按照以下步骤实现的:步骤(1)初始化在做站点用的服务器端安装建模模块、分片池模块、活动分配模块、分片管理模块、活动监控模块,以及数据库,其中:建模模块:建立以活动网络图模型描述的全局工作流模型,所述活动网络图是一种由节点和连接弧组成的有向图;节点包括代表在工作流流程中活动的活动节点,代表活动之间关系的逻辑节点,包括与分支节点、与汇合节点、或分支节点、或汇合节点,以及代表工作流流程开始和结束的标志节点;连接弧连接各种节点,定义节点间的执行顺序关系,所述活动网络图使用CIMFlow工作流建模软件定义;数据库,设有:活动-站点表,活动-实际分配站点表,分片实例表,活动实例表,相关数据表,其中:活动-站点表用于预先存储每个活动的允许执行站点,该活动-站点表分别用活动标识ID和允许执行站点标识ID标志;活动-实际分配站点表用于记录活动的实际分配站点,设有以下数据项:主键,用于标志活动的标识ID;实际执行站点标识ID;以及分配该活动执行站点的时间;分片实例表,用于记录分片池中的由于对活动网络图模型进行分割后产生的分片的实例,设有以下数据项:主键,为分片实例标识ID,自动生成;分片所关联的过程标识ID;分片实例状态,包括运行、暂停和终止状态;创建该分片实例的实际执行站点标识ID;该分片实例的创建时间;以及该分片实例的当前活动标识ID;活动实例表,记录分片实例中的当前活动实例,设有以下数据项:主键,是当前活动实例标识,自动生成;当前活动所关联的分片实例标识ID;当前活动实例的状态,包括运行、暂停和终止状态;当前活动实例的创建时间;创建该当前活动实例的实际执行站点标识ID;当前活动实例的名称;当前活动实例执行者标识ID;及后继活动标识ID列表;相关数据表,记录分片实例的相关数据,设有以下数据项:当前活动实例标识ID;分片实例标识ID;数据名称;数据类型,包括数值型、布尔型、字符串型;以及数据值;活动分配模块,在初始化时,从数据库中输入所建活动-站点表,在运行时,接受所述分片管理模块发送来的当前活动标识,查询该活动-站点表,为当前活动随机选择一个站点作为实际执行站点,向分片管理模块返回执行站点标识ID;活动监控模块,根据分片管理模块输入的当前活动和实际执行站点数据,构建活动-实际分配站点表,存储于所述数据库中;分片池模块,与所述分片管理模块互连,用于存取由所述活动-实例执行站点表中的当前活动实例形成的分片运行信息,其中包括所述分片实例表、活动实例表和所述相关数据表;分片管理模块,是用于执行分片的工作流引擎,在运行时向所述活动监控模块报告活动执行情况,按以下步骤对所述活动网络图模型进行动态分割,并把后继分片发送给目标站点的分片池模块:第1步:分片池模块向所述分片管理模块输入用分片实例表示的分片FD,以及分片的当前活动ts第2步:所述分片管理模块如步骤(1)所述,从活动分配模块得到一个实际执行站点标识ID;第3步:判断当前活动节点的类型:若:当前活动ts非“与分支”类型的节点,则:当前活动ts的后继活动记为ti,所述后继活动即在活动网络图中与ts直接连接,并且在ts之后的活动;把所述后继活动在分片FD中所能达到的那部分记为一个新的分片,并把该部分加入到后继分片列表F_LIST中;若:当前活动ts为“与分支”类型的节点,则:当前活动ts的多个后继活动分别为{t1,t2,...,tk},计算限制活动的集合TC,其中所述TC是分片FD中,与分支活动ts对应的与汇合活动组成的集合;对集合{t1,t2,...,tk}中的任意一个ti:当i=1时,将ti在分片FD中达到的那部分加入F_LIST;否则将ti在分片FD中达到的,同时TC中的活动在分片FD中不能达到的那部分加入F_LIST;在客户端安装任务客户端模块,该模块通过HTTP协议访问服务器端的分片池模块,获得站点的实际执行活动列表,供该站点的工作流用户访问并完成任务;步骤(2)按以下步骤实施活动网络图模型的动态分割:步骤(2.1)在设定站点,用所述建模模块构建用活动网络图形式描述的全局工作流模型;步骤(2.2)所述建模模块把活动网络图模型实例信息输入到分片池模块,并把当前设定的站点作为该活动网络图模型实例的实际执行站点;步骤(2.3)在该实际执行站点执行分片的当前活动,其步骤如下:步骤(2.3.1)分片池模块把该活动网络图模型实例输入所述分片池模块,进行动态分割,产生当前分片;步骤(2.3.2)该分片管理模块检查分割产生的当前分片,若该当前分片的所有前驱活动已全部完成,则通知任务客户端模块执行该当前分片中的当前活动;步骤(2.3.3)该分片管理模块向活动监控模块报告活动实际执行完成的情况,该活动监控模块在活动-实际分配站点表中添加一条记录,表明该活动在该实际执行站点执行;步骤(2.3.4)若:该当前分片还有未执行的后继活动,则由分片管理模块向活动分配模块请求分配执行站点,若:后继活动仍在当前的实际站点执行,则转向步骤(2.1);否则,转向步骤(2.4);步骤(2.4)所述分片管理模块对分片池模块中所述当前分片作动态分割,按以下步骤把产生的后继分片送到由活动分配模块所指定的执行站点的分片池模块中;步骤(2.4.1)分片管理模块向活动分配模块请求为分割后每个新产生的分片分配执行站点;步骤(2.4.2)把步骤(2.4.1)中所述的新产生的分片发送到指定的执行站点的分片池模块中;步骤(3)反复执行步骤(2.3)、(2.4),直到没有新的分片产生。 【当前权利人】清华大学 【当前专利权人地址】北京市海淀区100084-82信箱 【专利权人类型】公立 【统一社会信用代码】12100000400000624D 【引证次数】3.0 【他引次数】3.0 【家族引证次数】3.0 【家族被引证次数】18