会议专题

基于ECFLOW的数值预报业务流程监控系统开发1

本文主要介绍利用欧洲中心研发的流程监控软件ECFLOW进行数值预报业务流程监控系统开发.第一部分介绍了数值预报业务对流程监控功能的需求.一个完整的数值预报业务流程监控系统应当具备以下几项功能:业务流程的编排,作业调度和管理(自动任务调度、命令调度运行、作业执行控制、故障处理与恢复、可视化调度控制);监控信息收集与分析、故障管理的业务逻辑和策略处理.针对前一节数值预报需求分析,本文第二部分对ECFLOW的软件组件(ecflow_view,ecflow_client,ecflow_server)、结构功能(编辑、调度、管理、故障处理、系统恢复)、控制原理、用户安全、容错及系统恢复机制、日志文件管理、错误检测报警等方面进行了全面介绍与分析.最后介绍了利用ECFLOW进行数值预报业务流程监控系统开发的关键步骤. 随着数值天气预报的研究和发展,科研人员开发了越来越多功能强大的数值天气预报模式.数值天气预报不同于其他工程,涉及了大量的科学计算及复杂的流程控制,需要一套完整、高效、稳定的流程监控软件实施管理. 由于数值预报包含大量的科学计算及复杂的流程控制,工作流的管理、作业的自动调度和执行是解决数值预报高效运行的关键,流程管理已经成为数值天气预报系统中不可缺少的部分.传统的方法是采用脚本语言将控制过程编写为作业,并同Namelist文件一起控制整个程序的执行,如果由气象研究人员通过手动方式执行则非常繁琐且容易出错.数值天气预报系统虽然复杂,但是工作流程的执行顺序基本一致.当作业流程一旦编排好后,对所有用户来说都是通用的.数值预报系统在每天固定的时间启动,逐日滚动运行的连续系统,具有很强的时效性,而且每一次运行都与上一次的运行状态和结果有很强的联系.正是这种关系和依赖性将所有的过程形成了一个完整的工作流.因此,在这类业务作业应用系统中,不仅需要准确定时地启动业务作业流程以及保证它们的时序关系,而且要求随时监视和报告业务作业运行过程中发生的任何异常,以便及时处理,确保业务作业的及时准确. 本研究工作是在ECMWF开发的ECFLOW基础上进行二次开发,该软件包专门针对气象应用的C/S工作流控制,由ecflow_view,ecflow_client,ecflow_server三部分组成,ecflow_server是整个系统的服务端,负责调度作业和响应ecflow_client的请求;ecflow_client是系统的命令行程序,用于和服务器的通信,通过命令级接口(CLI)实现,pythonAPI也提供了大多数的这种功能;ecflow_view是一个监视和可视化节点树形结构的专业GUI客户图形界面.ECFLOW通过账户管理保证安全性,具备良好的自动修复和容错功能,通过日志管理向维护人员提供作业运行信息,错误报警功能可提示维护人员及时处理. 为了应用于不同的数值预报业务流程监控管理,必须对ECFLOW进行二次开发,主要进行了三项工作:(一)编写作业包定义def文件,通过一套类shell的业务描述脚本语言(包括必要的结构控制语句、变量定义及操作语法),完成业务组成、业务逻辑关系、业务对象控制结构定义,并实现复杂业务对象的逻辑结构设计.(二)编写作业脚本ecf文件,即编排了作业执行顺序的逻辑结构,包括定时启动以及依赖关系,从而完成对整个工作流控制系统的开发.(三)增加声音报警功能,是通过修改node_alert.cc源程序重新编译运行实现,当系统检测到作业异常后,调用系统中的媒体播放机播放预设的报警声音文件.

数值预报 业务流程 监控系统 软件开发

岳琨 王廷芳 王伟峰

空军气象中心 北京1000843

国内会议

第32届中国气象学会年会

天津

中文

1-11

2015-10-01(万方平台首次上网日期,不代表论文的发表时间)