TASKCTL流程以模块为单位的流程核心信息组织思路是有别传统的思路,是一种创新的思路。以下我们以与传统思路比较的方式对该思路进行描述。
传统设计思路在调度业界,流程核心信息主要组织思路为:将作业节点化,并将作业控制策略属性化,其中依赖关系、并行关系是最主要的控制策略内容。关系表达图形思路在ETL调度界,流程图主要根据流程作业节点以及节点关系进行表达。图形表达如下:
编辑添加图片注释,不超过字(可选)由图可知,该图简洁且直观描述了各作业的依赖关系与并行关系。
数据表达思路编辑切换为居中添加图片注释,不超过字(可选)面向用户的设计方案
传统设计思路比较简洁直观,每个节点之间相对独立。在面向用户实施方面,主要是对每个作业节点直接以记录方式描述。
具体实施手段,主要是图形拖拽以及节点表单方式描述。比如:Control-M的作业对话框描述以及Excel方式描述。
TASKCTL设计思路关系表达图形思路TASKCTL设计思路与传统设计思路相比,共同点是将作业节点化,而不同点是对主要控制策略信息依赖并行关系表达方式的不同,TASKCTL未采用对依赖以简单节点属性方式描述,而是站在整个流程的角度,采用串并节点方式进行结构化描述。该方式相对传统方式有一定的抽象。
表达思路如下图所示:
编辑切换为居中添加图片注释,不超过字(可选)该方式与传统方式相比,主要是增加了串并节点的思想,作业之间的运行关系不是主要通过依赖属性确定,而是通过上级组节点的串并属性决定。
数据表达思路
编辑切换为居中添加图片注释,不超过字(可选)面向用户的设计方案由TASKCTL结构化示意图得知,流程整个组织思路结构化特征非常明显,其结构是具有唯一根节点的标准树结构。
为此,TASKCTL在流程核心信息组织时,直接采用面向用户并以XML语言为载体的文本进行描述。
以下是对前面TASKCTL结构化示意图的XML描述:编辑切换为居中添加图片注释,不超过字(可选)由以上信息可以简单看出,流程的模块信息是通过XML语言对图形直接描述,该信息具有明显的结构特征。
由于是以文本的方式组织,使信息更为扁平化,更易编辑。
实际TASKCTL方案中,为了使流程设计更容易、更简单,TASKCTL提供了专业的流程集成设计开发环境,在该开发环境中,用户既可以通过文本代码方式设计,又可以图形拖拽方式设计。设计思路总结从设计思路的角度,传统方式比TASKCTL思路简单,更容易让人理解,TASKCTL组织思路相对有一定的抽象,但由于采用了一定结构化特征,在面对大量作业面前,该思路在理解的基础上,使用会更灵活、更快捷方便,完成同样调度设计,信息总量也相对较少。流程总控文件流程总控文件是通过XML语言描述的流程概述总控信息文件。该文件与模块文件不一样,不直接面向用户,其信息主要通过相应的流程设计工具软件中相关命令与界面操作完成。虽然流程总控文件不直接面向用户,但对该文件的具体了解,不仅可以加深对整个流程的理解,同时也会对流程具体设计带来更大的帮助。
另外,在TASKCTL的发展计划中,今后该文件会公开且直接面向用户,使用户可以对该文件直接进行编辑设计,从而增加设计的灵活性。
一份简单的流程总控文件例子编辑切换为居中添加图片注释,不超过字(可选)通过以上范例得知,流程总控信息主要由三部分构成,它们包括:流程基本信息、模块信息、流程变量信息等。
XML关键字
流程总控文件XML标签关键字如下:
流程基本信息流程基本信息主要包括:流程名称、流程描述、启动模块、流程最大作业并行度、是否为子流程等信息构成。flowname-流程名称流程名称是调度平台对流程的关键索引信息,使用时注意以下几点:唯一性:流程名称相对调度服务器是唯一的,不能重复长度:流程名称长度不能超过20个字符输入限制:名称不能数字开头,不能包含特殊字符,如:!#*...等。desc-流程描述流程描述指流程的说明信息,该信息可以由任意字符组合。另外,流程描述虽然不是必输项,但通过客户端工具具体应用时,该信息具有特殊的展示意义。长度:名称长度不能超过个字符输入限制:不能包含特殊字符,如:!
#*...等。startmodul-启动模块一个流程可能由多个模块组成,用户必须指定启动模块,以表示流程的调度运行入口。这与一个程序必须定义主函数类似。
在TASKCTL平台中,启动模块即为流程主模块。
issubflow是否为子流程子流程是TASKCTL调度平台重要概念,它从信息内容上与普通流程没区别。唯一区别是:子流程能被其他普通流程调用。TASKCTL引入子流程概念的主要目的:一方面与模块一样,是为了有效结构化管理流程信息,另一方面,是为了达到更佳的调度控制效果。
子流程与模块本质区别在于:模块是流程的组成部分,而子流程不是调用流程的组成部分;子流程有自己独立的私有变量空间,而模块与调用流程具有同样的变量空间。
该区别就像实际程序一样,模块类似程序内部的一个类,而子流程是一个独立程序,可以通过其它程序调用。
对于子流程的具体应用意义,在本文相关章节会有具体举例说明。在流程总控文件中,该属性Y代表子流程;N代表普通流程。ctlbatch业务批次规则流程从头到尾运行一次,称之为一个批次。通过设定流程批次命名规则,以便于更好的理解和划分业务流程的逻辑运行批次。
在TASKCTL中,可以利用流程的ctlbatch属性来实现个性化的批次命名规则。比如可以跟业务逻辑日期变量进行关联:
ctlbatch核心系统第$(work_date)批次流程/ctlbatch通过以上批次规则,可以直观的在运行数据信息中进行展示:“核心系统第批次流程”模块信息在总控信息中,模块信息主要列举流程的所有模块概要信息,内容主要包括:模块名称、模块描述。模块名称模块名称是一个流程内模块的关键索引信息,使用时注意以下几点:唯一性:一个流程内,模块名称是唯一的,不能重复长度:模块名称长度不能超过30个字符输入限制:名称不能数字开头,不能包含特殊字符,如:!#*...等。模块描述模块描述指模块的说明信息,该信息可以由任意字符组合。另外,模块描述虽然不是必输项,但通过客户端工具具体应用时,该信息具有特殊的展示意义。长度:名称长度不能超过个字符输入限制:不能包含特殊字符,如:!
#*...等。