应于特定的遥感应用业务流程。
[0059] 在利用流程编排工具进行流程编排时,可W将编排好的流程保存下来供W后参 考,也可W从先前创建的流程中选择一个作为模板,并在模板的此基础上做进一步地流程 编排或修改。通过上述方式极大地提高了流程模型的创建效率,减少了用户的重复劳动。
[0060] S102、将所述可视化的遥感应用流程模型转换为流程描述语言。
[0061] 本发明所定义的流程描述语言是WXML语言的方式对流程进行描述,而流程模型 则是W图形的方式来向用户展示业务流程,将所述可视化的遥感应用流程模型转换为流程 描述语言即将W图形方式可视化表示的遥感应用流程模型映射为对应的。WXML语言方式 表示的业务流程。本发明所定义的流程描述语言借鉴了当前流行的国际标准xro^BPMN、 BPEL并在此基础上形成了符合遥感应用的流程描述语言。所述流程描述语言至少包括W 下元素:
[0062] 流程,用于描述调度过程中的最大业务单元,对应流程模型中的流程图,包括J员 序流、网关、任务;
[0063] 顺序流,用于顺序连接任务和网关;
[0064] 网关,用于描述流程中的分支和聚合; 阳0化]任务,用于描述调度过程中的最小业务单元,执行一个具体业务;
[0066] 事件,用于描述任务的触发条件;
[0067] 属性,用于描述上述各元素的某一特征;
[0068] 脚本,用于供用户对上述各元素进行控制。
[0069] 参见下表所述:
[0070]
[0071] 表1流程描述语言元素表
[0072] 对上述元素的具体描述如下:
[0073] (1)流程Process:流程中可W包含顺序流、网关、任务,通过运Ξ个元素就可W描 述一个完整的业务流程,如图2所示。具体表示方式为:
[0074]
[00巧]流程Process对应了流程模型中的整个流程图,流程图中的所有元素都可W通过 标签sequenceFolw、邑ateWay、task表示。
[0076] (2)顺序流SequenceFlow:顺序流是一种连接线,通过连接线将任务,网关连接起 来,形成一个流程,如图2所示。具体表示方式为:
[0077] <sequenceFlowid= " 2"name= "connectl"sourceRef= "start"targetRef ="taskl"〉
[0078] <messa邑eEventX/messa邑eEvent〉
[OOW] 〈/sequenceFlow〉
[0080] 其中,sourceRef代表连接线的起始元素,targetRef代表连接线的终止元素。 sourceRef和targetRef的值可W是任务,网关。此外,顺序流中可W添加事件,且事件只能 添加在顺序流中。如上例中的messageEvent就是一种消息事件。
[0081] (3)网关Gateway:网关用于描述流程中的分支和聚合情况,通过网关解决了复杂 流程的编排,如图2所示。网关包括封闭式网关和开放式网关。封闭式网关,表示只有当网 关前面的所有任务全部结束,才可执行网关后面的任务;开放式网关,表示只要有一个分支 的任务结束,即可执行网关后面的任务。具体表示方式为:
[0082]
阳08引其中,incoming表示输入的顺序流,outgoing表示输出的顺序流。此外,本语言没 有如其他语言一样把网关按与网关、或网关、条件网关分类,而是把运种分类交给了事件去 判断,即在网关后的连接线上定义事件,由事件决定是否执行连接线后面的流程。通过运种 方法,简化了当前流程描述语言中网关普遍过于复杂的问题,简化了对流程描述语言的理 解。
[0084] (4)任务化sk:任务是调度过程中的最小业务单元,用于执行一项具体业务,如图 2所示。具体表示方式为:
[00化]〈taskid="3"name="taskl"dispatchtype="No;rmal"nodeInfoID="1"〉</task〉
[0086] 其中,dispatchtype表示任务类型,任务包含常规任务、脚本任务、手动任务、服务 任务、系统任务。常规任务对应一般的可执行模块,遥感大多数任务都是此类任务;脚本任 务一般用于辅助性处理;手动任务指一些需要在流程中进行人机交互的任务;服务任务指 需要调用外部服务的任务;系统任务指需要调用外部分系统的任务。多种任务类型满足了 遥感应用中的不同需要。
[0087] 根据任务的不同,任务的下发方式也不一样,有常规下发型,按处理节点下发型, 按时间下发型,按时间和处理节点下发型。
[0088] 此外,任务中还定义了许多与遥感处理流程相关的属性,包括:任务的工作路径、 任务的配置路径、任务的软件路径、任务的输入输出信息等等。
[0089] (5)事件Event:事件是对任务触发条件的说明,它定义在顺序流中,它的存在扩 展了原有软件的功能。
[0090] 事件包含多种类型,下面对每种类型的事件进行详细描述。
[0091] 消息事件:表示在获得一个消息后才能触发后续任务。消息事件可W用于在接收 到遥感处理数据消息后才能触发后续任务。具体表示方式为:
[0092] <sequenceFlowid= " 2"name= "connectl"sourceRef= "start"targetRef ="taskl"〉
[0093] <messageEvent> 脚本名称 </messageEvent>
[0094] </sequenceFlow)
[0W5] 时间事件:表示按照一定的时间规则触发任务。时间事件可W应用于遥感卫星数 据接收流程,当接收时间到达则启动卫星数据接收任务。具体表示方式为:
[0096]<sequenceFlowid=" 2"name="connectl"sourceRef="start"targetRef = "taskl"〉
[0097] <timeEvent〉timeDate= 12:00:00 ;sc;ript=脚本名称 </timeEvent>
[0098] </sequenceFlow>
[0099] 数据事件:表示当数据到达后才能触发后续任务。数据事件可W应用于遥感数据 自动处理流程,当遥感数据到达则触发后续处理流程。具体表示方式为:
[0100] <sequenceFlowid= " 2"name= "connectl"sourceRef= "start"tar邑etRef = "taskl"〉 阳 101]<dat址vent〉脚本名称</dat址vent〉
[0102] </sequenceFlow> 阳103] 条件事件:表示当满足指定条件时才能触发后续任务。具体表示方式为:
[0104]<sequenceFlowid=" 2"name="connectl"sourceRef="start"targetRef="taskl"〉
[01 化]〈conditio址vent〉脚本名称〈/conditio址vent〉
[0106] </sequenceFlow> 阳107] 并行事件:表示将后续任务根据并行条件动态分解为多个并行任务。并行事件针 对遥感长条带数据的编目结果进行图像处理的并行处理流程专口设计,但是,它也具有一 定的通用性。具体表示方式为:
[0108] <sequenceFlowid=" 2"name="connectl"