一种灵活可扩展的基于自定义工作日历的工作流调度框架制造技术

技术编号:6543571 阅读:476 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种灵活可扩展的基于自定义工作日历的工作流调度框架,属于工作流系统的调度框架领域。该框架结构由工作日历定义层、时间计算层、任务调度及管理层三个逻辑层组成,工作日历定义层:用户可以根据企业特定的作息制度,进行工作日历的自定义;时间计算层:工作流产品进行在执行期限、预警提醒、定时执行的任务调度时,都必须进行相对间隔时间计算,用户可以根据需要,为每一项计算指定其所基于的工作日历;任务调度及管理层:在按照自定义日历进行时间计算的基础上,进行执行期限、预警提醒、定时执行调度任务的创建、触发、查询和变更维护。与现有技术相比,本发明专利技术的工作流调度框架实现了灵活的任务调度时间计算方式、工作日历的灵活配置和动态替换、并将任务调度与工作日历进行解耦,其灵活性、可扩展性得到了大幅提高。

【技术实现步骤摘要】

本专利技术涉及工作流系统的调度框架领域,具体地说是一种灵活可扩展的基于自定义工作日历的工作流调度框架
技术介绍
最近几年,对工作流系统中的执行期限、预警提醒、定时执行的任务调度需求从无到有、并且日益复杂,对工作日历定义的要求也越来越特殊。在工作流系统中,类似于“两个小时内处理完成,提前半个小时自动发送邮件或短信给参与者进行预警通知”、“每天一上班就启动作业流程”……,诸如此类的定时任务,现在已经越来越常见了。这些调度任务可以被划分为执行期限、预警提醒、定时执行三类。最开始的调度任务都是采用M小时的标准日历进行计算的,这种方式只能按照7 χ M小时的模式进行相对时间计算,而且都是采用同一个日历进行计算。这样存在很多弊端,比如对“两个小时内完成”的处理,假设开始时间恰好是当天下班时间点,这种日历的计算方式依然按照从现在开始的两个小时。这就要求其参与者必须是晚上加班完成,否则就肯定超时了,这种计算方式显然是不合理的。这就首先要求工作流系统能够按照企业的作息制度进行自定义工作日历,只有这样,才能避免采用M小时标准日历的问题。比如上面说的假设开始时间恰好是当天下班前时间点,那么就要求系统终止计时,直到下一个工作日的上班时间才开始继续计时,系统自动累计排除掉非工作时间的实际工作时间进行计算,包括每天的非工作时间、周末、节假日、调休的特殊情形。只有基于这种按照企业特定作息制度制定出的企业日历进行相对时间的计算,才能满足企业真正的业务需要。在这种需求的拉动下,工作流系统的自定义日历以及基于这种自定义日历的调度框架逐步开始建立起来,并且逐步开始考虑企业内同时存在多种日历并行的更为复杂和特殊的情形。
技术实现思路
本专利技术的技术任务是针对上述现有技术的不足,提供一种灵活可扩展的基于自定义工作日历的工作流调度框架。该框架通过引进自定义日历、添加时间计算层的技术手段, 实现了灵活的任务调度时间计算方式、工作日历的灵活配置和动态替换、并将任务调度与工作日历进行解耦,解决了工作流产品进行执行期限、预警提醒、定时执行的任务调度领域中涉及的自定义工作时间计算方式单一、框架灵活性不够的问题。本专利技术的技术任务是按以下方式实现的一种灵活可扩展的基于自定义工作日历的工作流调度框架,由工作日历定义层、时间计算层、任务调度及管理层三个逻辑层组成,工作日历定义层用户可以根据企业特定的作息制度,进行工作日历的自定义,并可以根据需要,制定多套工作日历进行并行使用;时间计算层工作流产品进行在执行期限、预警提醒、定时执行的任务调度时,都必须进行相对间隔时间计算,用户可以根据需要,为每一项计算指定其所基于的工作日历;任务调度及管理层在按照自定义日历进行时间计算的基础上,进行执行期限、预警提醒、定时执行的调度任务创建、触发、查询和变更维护。上面的三部分,共同组成了一种灵活可扩展的基于自定义工作日历的工作流调度框架。该框架的逻辑分层为日历定义和管理层位于最底端,其负责日历文件解析和管理工作;时间计算层位于中间,负责根据任务调度的计算请求,调用日历管理和定义类进行时间计算;任务调度及管理层位于最上层,其不与日历定义和管理层打交道,只根据任务调度的配置信息调用时间计算层进行时间计算。通过对中间层的抽取,该框架实现了任务调度和日历的解耦。进一步的所述工作日历定义层的主要内容包括日历描述文档、日历描述文档的可视化配置界面、一套日历定义框架和管理框架,所述日历描述文档为XML格式文件;所述日历定义框架为按照日工作日历、周工作日历、年度工作日历的方式,将日历的定义划分为三个层次,形成年度工作日历嵌套周工作日历,周工作日历嵌套日工作日历的逐层嵌套的日历定义框架结构,每个层次负责处理该层内的定义和维护日工作日历用来定义每天的工作时段划分,可以根据需要将一天的工作时间划分为几个时段;周工作日历用来定义每周的工作日定义,定义每周的工作时间,或通过定义每周的休息时间进行排除,周工作日历默认是基于日工作日历的,这样周日历只需要定义周几是工作日即可;年度工作日历用来定义周工作日历和日工作日历无法描述的特殊时段,比如国家或单位的节假日及其相应的调休时间;每个日历都以其名字进行唯一标识,用户可以同时定义多套工作日历并行使用,在设计时或运行时都可以制定该条定时任务所采用哪个工作日历进行计算,设计时指定就是通过流程设计器进行流程设计时直接制定所依赖日历的名称,运行时指定是通过相关数据进行指定的,只要在开始计算前为相关数据赋值为所要引用的日历名称即可;所述日历管理框架负责各个工作日历的加载、初始化、查找、销毁、动态更新的管理和维护工作。日历管理框架在支持多工作日历并行方面起着基础而又决定性的作用。所述时间计算层在工作日历定义层的基础上,根据用户设计时或者运行时指定的日历名称,调用日历管理框架查找相应的日历进行相对时间计算,所述相对时间计算自动跳过日历中定义的非工作时间段,只计算有效的工作时间段进行累加,即从开始点开始计时,遇到非工作时间段则直接跳过,从下一个工作时间段的起点开始接续计时,以上述方式循环下去,直到找到结束时间点或者达到计算结束条件为止,可以为每一项计算都指定其所基于的特定的工作日历。 所述非工作时间包括节假日、周末、调休、每天的非工作时间段。所述工作时间包括正常工作日、放假调整的非默认工作日每天的工作时间段。所述任务调度及管理层处于所述工作流调度框架的最上层,也是直接供用户配置和使用的层,任务调度及管理层负责按照用户的设置,进行执行期限、预警提醒、定时执行的调度任务创建、触发、查询和变更维护。创建调度任务时,首先将用户配置的时间计算信息传递给中间的时间计算层,通过时间计算层调用日历定义层进行时间计算;然后根据返回的目标时间设置调度任务的目标触发时间;最后将该调度任务放入调度任务池开始等待,并可以根据需要对该任务进行管理维护。所述管理维护包括变更目标触发时间、删除调度任务、持久化、触发到期任务。任务调度及管理层既可以基于上面提到的自定义日历进行相对时间的定时调度, 也可以执行绝对时间的定时调度,后者与自定义日历无关。本专利技术的灵活可扩展的基于自定义工作日历的工作流调度框架与现有技术相比具有以下突出的有益效果(一)在日历定义时采用标准的XML文档进行定义,支持多套工作日历定义及并行执行,通过对工作日历的良好分层简化了纷繁复杂的日历定义结构,使得定义文档简洁、易读;(二)通过引入时间计算层作为中间的衔接层,实现了引擎调度与工作时间算法的解耦,使得任务调度和日历定义进行了逻辑分离,使得其可以独立演化;(三)提供的调度框架,是一个相对比较独立的模块。其可以不依赖于任何具体的工作流系统,具有较广泛的适应性。附图说明附图1是本专利技术灵活可扩展的基于自定义工作日历的工作流调度框架的包结构示意附图2是本专利技术灵活可扩展的基于自定义工作日历的工作流调度框架的日历定义流程附图3是本专利技术灵活可扩展的基于自定义工作日历的工作流调度框架的日历定义框架和管理框架示意附图4是本专利技术灵活可扩展的基于自定义工作日历的工作流调度框架的调度框架的示意类附图5是本专利技术灵活可扩展的基于自定义工作日历的工作流调度框架的执行期限定义界面示例图。具体实施例方式参照说明书附图以具体实施例对本专利技术的灵活可扩展的基于自定义工作日历的本文档来自技高网
...

【技术保护点】
1.一种灵活可扩展的基于自定义工作日历的工作流调度框架,其特征在于:由工作日历定义层、时间计算层、任务调度及管理层三个逻辑层组成,工作日历定义层:用户可以根据企业特定的作息制度,进行工作日历的自定义,并可以根据需要,制定多套工作日历进行并行使用;时间计算层:工作流产品进行在执行期限、预警提醒、定时执行的任务调度时,都必须进行相对间隔时间计算,用户可以根据需要,为每一项计算指定其所基于的工作日历;任务调度及管理层:在按照自定义日历进行时间计算的基础上,进行执行期限、预警提醒、定时执行调度任务的创建、触发、查询和变更维护。

【技术特征摘要】
1.一种灵活可扩展的基于自定义工作日历的工作流调度框架,其特征在于由工作日历定义层、时间计算层、任务调度及管理层三个逻辑层组成,工作日历定义层用户可以根据企业特定的作息制度,进行工作日历的自定义,并可以根据需要,制定多套工作日历进行并行使用;时间计算层工作流产品进行在执行期限、预警提醒、定时执行的任务调度时,都必须进行相对间隔时间计算,用户可以根据需要,为每一项计算指定其所基于的工作日历;任务调度及管理层在按照自定义日历进行时间计算的基础上,进行执行期限、预警提醒、定时执行调度任务的创建、触发、查询和变更维护。2.根据权利要求1所述的灵活可扩展的基于自定义工作日历的工作流调度框架,其特征在于,所述工作日历定义层的主要内容包括日历描述文档、日历描述文档的可视化配置界面、一套日历定义框架和管理框架,所述日历描述文档为XML格式文件;所述日历定义框架为按照日工作日历、周工作日历、年度工作日历的方式,将日历的定义划分为三个层次,形成年度工作日历嵌套周工作日历,周工作日历嵌套日工作日历的逐层嵌套的日历定义框架结构,每个层次负责处理该层内的定义和维护 日工作日历用来定义每天的工作时段划分;周工作日历用来定义每周的工作日定义,定义每周的工作时间,或通过定义每周的休息时间进行排除,周工作日历默认是基于日工作日历的;年度工作日历用来定义周工作日历和日工作日历无法描述的特殊时段; 每个日历都以其名字进行唯一标识,用户可以同时定义多套工作日历并行使用,在设计时或运行时都可以制定该条...

【专利技术属性】
技术研发人员:戴海宏
申请(专利权)人:浪潮集团山东通用软件有限公司
类型:发明
国别省市:88

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1