应用气象学报  2005, 16 (4): 426-433   PDF    
风云二号02批气象卫星数据处理中心软件工程方法
钱建梅1, 施进明1, 李小榕2     
1. 国家卫星气象中心, 北京 100081;
2. 北京航天指挥控制中心, 北京 100080
摘要: 数据处理中心是风云二号02批静止气象卫星地面应用系统的核心业务处理系统之一。该文描述了风云二号02批卫星的业务特征;对科研阶段研制的数据处理中心应用软件在稳定业务运行方面尚有的欠缺做出分析;根据软件工程的再工程理论,提出使用逆向工程方法,进行数据、代码、接口和文档的重构;对数据处理中心的业务流程进行构造,对业务系统进行逻辑层次的结构设计。
关键词: 静止气象卫星    数据处理中心    软件工程    再工程    逆向工程    
THE ENGINEERING METHOD FOR SOFTWARE OF METEOROLOGICAL SATELLITE FY-2C/FY-2D DATA PROCESSING CENTER
Qian Jianmei1, Shi Jinming1, Li Xiaorong2     
1. National Satellite Meteorological Center, Beijing 100081;
2. Beijing Aerospace Command & Control Center, Beijing 100080
Abstract: The data processing center of geostationary meteorological satellite FY-2C/FY-2D ground applied system is one of the kernel operational systems. The operational characteristics of the satellite are described, also analysis is done of the deficit of the operational steadiness achieved in the research phase of the processing unit. According to reengineering theory on software engineering, a method of converse engineering to reconstruct data, code, interface and files is proposed. Furthermore, an attempt is made to construct the technological process of the processing unit and design the structure of operation system.
Key words: Geostationary meteorological satellite     Data processing center     Software engineering     Reengineering     Conversing engineering    
引言

1995年和2000年我国成功发射了两颗试验静止气象卫星,在地球静止轨道上实现了气象卫星观测。风云二号02批静止气象卫星 (以下简称风云二号02批卫星) 为业务气象卫星,业务气象卫星在运行稳定可靠、产品种类精度、服务方式能力等多方面对地面应用系统提出了更高的要求。地面应用系统的数据处理中心 (Data Processing Center,以下简称DPC) 担负将观测数据转变成图像和产品的任务,是风云二号02批卫星应用系统的核心,因此,DPC软件的开发,必须积极采用新的管理理念,先进的设计思想和开发技术,按照软件工程的科学规律来组织实施。本文提出了DPC软件工程化的方法,用来实现业务化的系统建设目标。

1 风云二号02批卫星的业务特征 1.1 风云二号02批卫星的主要功能

风云二号卫星位于赤道上空35800 km高度的静止轨道,对地球大气进行遥感观测。其主要功能包括以下4个方面:

(1) 利用多光谱扫描辐射计获取地球昼夜的红外图像和水汽分布图,白天的可见光图像,每30 min可获取一幅地球全景圆盘图像。多光谱扫描辐射计有红外、可见光等5个光谱通道,技术特性如表 1所示。

表 1 风云二号02批卫星光谱通道的技术特性

(2) 向覆盖地区进行图像和气象卫星产品的广播:星载多光谱扫描辐射仪将扫描捕获的地球观测数据实时向地面传送,经地面应用 (中心) 系统相关的业务处理中心处理,生成展宽图像和各种气象卫星产品后,再发往卫星,向其覆盖区内的用户站进行广播。

(3) 转发地面数据收集平台收集的气象和环境资料:星载UHF/S转发器接收分布在高山、海洋、森林、沙漠等边缘地区的数据收集平台向卫星发送的地球大气环境观测资料,由卫星上的数据转发器向地面转发。星上的数据收集系统拥有100个国内通道,33个国际通道,可容纳4000个数据收集平台同时工作。

(4) 对空间环境进行监测:星载空间环境监测器监测太阳X射线和高能粒子辐射,为空间环境科学研究和卫星工程提供太阳耀斑爆发、质子事件、静电放电、单粒子翻转和电磁脉冲干扰等现象的观测资料。

1.2 风云二号02批卫星的业务模式

风云二号02批卫星业务模式分为正常业务模式和汛期业务模式。正常业务模式每小时获取1幅全圆盘图,从正点开始观测,另外,每天增加4次全圆盘图用于推导大气移动矢量,从23 :00,05 :00,11 :00,17 :00(世界时,下同) 的半点开始观测。汛期工作模式在正常业务模式之上增加观测,使1天24 h中,每半个小时能够获取1幅北半球图像。正常业务模式时间表如表 2所示,汛期业务模式时间表如表 3所示。

表 2 正常业务模式时间表

表 3 汛期业务模式时间表

1.3 风云二号02批卫星地面应用系统构成

风云二号02批卫星地面应用系统在卫星发射定点以后,负责接收从卫星传下的各种数据,生成图像和各种定量产品,向用户分发服务。地面应用系统由6大部分构成,除DPC之外的其他系统是:指令和数据接收站 (简称CDAS),承担卫星指令发送与卫星数据获取任务;运行控制中心 (简称SOCC),负责卫星业务测控、地面应用 (中心) 系统业务运行的远程监控;计算机网络系统 (简称CNAS),为地面应用系统提供计算机、网络与存储的硬软件支撑平台;应用服务中心 (简称ASC),提供遥感监测服务与应用示范;用户利用站 (简称USS),配备在省级地市级气象台站,构成全国性的气象卫星资料应用网。DPC根据SOCC发出的运行时间表和控制命令,实时处理CDAS获取的卫星观测数据,在规定时效内生产出各种遥感资料和产品,送往ASC和CNAS,进行气象和监测服务并长期保存。这些资料和数据同时还在卫星广播,为遍布全国的USS提供LRI T数据。另外DPC生产的各类产品还通过气象卫星综合应用业务系统 (9210工程)、Internet和服务专线实施产品的国内国际分发等任务。

1.4 风云二号02批卫星的主要产品

DPC利用静止气象卫星观测频次高、且量化等级较风云二号01批卫星有较大提高的特点,生产各种定量产品,用于数值天气预报初始场、天气分析和预报,以及环境监测。当有条件时,还使用其他国家静止卫星数据与风云二号02批卫星数据进行多星数据融合处理,生成更大地理范围的产品。风云二号02批卫星的主要产品如表 4所示。

表 4 风云二号02批卫星主要产品

2 DPC应用软件的工程化

风云二号地面应用系统的应用软件由国家卫星气象中心独立承担。DPC应用软件的研制,分科研和工程化两个阶段完成。研究阶段探索数据处理的数学物理原理和算法,开发出符合大气物理过程的数学模型和相应的数据处理程序,其过程侧重于物理过程和算法的正确性。通过科研阶段的工作,已经在科研环境下获得合理的产品。但是,由于科研环境和业务运行环境之间的差异、质量较好的样本数据和实际数据之间的差异、单任务独立顺序运行和多任务协同并发运行的差异,科研阶段研制的应用软件在稳定业务运行方面尚有较大的欠缺。因此,需要对其进行工程化,以适应稳定可靠业务运行的要求。应用软件工程化的主要任务是:在数据处理软件由科研平台到业务运行平台移植的过程中,对数据和程序进行定义和规范,运用软件再工程[1]方法学,通过逆向工程,进行数据、代码、接口和文档的重构,使应用软件标准化、模块化、层次化,增加对实际数据的容错处理能力,优化与合理使用内存、I/O带宽、磁盘文件等系统资源。

2.1 数据的定义与规范

数据按照其变化特性分为常数、静态数据和动态数据,按照其存储特性分类有常驻内存数据和磁盘文件数据。常数指随时间不变的数据,每项常数由1个具体参数组成,具有特定的物理量纲,单位与习惯用法一致,分设对应的头文件进行发布和使用。静态数据指一组相对固定的数据,或在相当长的时间内不会改变的数据,以文件或共享内存的方式提供使用。动态数据指随时间不断变化的数据,如卫星观测数据、环境监测数据等。为了提高系统的处理能力和效率,设置一组共享内存段,存放生成时效要求特别高的产品所需要的数据,如本时次卫星观测数据、经纬度与扫描线号/像素号查找表、辐射定标查找表等,产品生成软件从内存直接读出这些数据进行产品的生产。其他中间数据和所有最终产品在业务系统中保存1个月,供各种用户访问。

为规范起见,DPC系统中使用的所有数据均需要通过注册。DPC对注册数据进行发布、使用、修正和管理。为了确保对数据的定义和引用无歧义,对符合数据本身的功能和属性进行说明,保持数据的正确性和一致性。数据注册的项目包括数据标识码、名称、内容、范围 (值域)、精度、时效、格式、类别、责任人。

在全系统中分层次定义数据格式,数据经过不同的处理写入对应的数据格式。例如卫星观测数据进入系统时写入地面图像获取系统产生的展宽数据格式S-VISSR,经过质量检验后生成压缩的展宽数据格式CSV (Compact Stretched VISSR Format),经预处理后生成以标称卫星观测几何关系为基础的标称投影格式NOM (Normalized Dataset Format)。所有产品均写入先进的气象卫星交换数据格式AWX 2.0(Advanced Weather-satellite eXchange format),以便直接通过气象卫星综合应用业务系统 (简称9210工程) 进行产品的分发。送往存档系统长期保存的数据则采用分层数据格式HDF (Hierarchical Data Format)。

业务系统数据文件名的命名采用数据类型、卫星标识、观测日期和时间、仪器通道等多个字段构成固定长度结构。由文件名即可知此文件是哪颗卫星何时何种方法处理的何种产品。文件名的每个字段之间用下划线隔开,便于在程序中对文件名进行分解,以获得与该文件有关的信息。

2.2 程序的定义与规范

程序的静态结构以功能/子功能为线索,按一定的规则自顶层向下逐层把整个软件体系结构[2]分解成一个包括下述6种节点的标准倒树型结构:项目 (Project) 级节点,是整个树型结构的根,代表整个系统或子系统。一个项目级节点,一般可按其功能分类和/或系统配置情况,分为多个不同的软件 (Software) 级节点。软件级节点,是树型结构的主干,它又可按功能分解成若干个程序 (Program) 级节点。程序级节点:是一个抽象的节点,一般没有对应的可执行映象,仅仅在逻辑上等价于需求规格说明书中定义的一个软件功能。定义程序级节点的目的,是控制问题的复杂性,以便于并行开发与管理。程序级节点又可进一步按子功能分解成若干个进程 (Process) 级节点。进程级节点负责组织、控制各种实际的处理流程 (主进程、分支进程或线程),可进一步按一定的封装策略,分解成若干个操作包 (Operation Package) 级节点。操作包级节点,是一个没有对应可执行映象的抽象节点,一般由一组逻辑和/或物理上相互依赖的操作组成,可进一步按一定的模块化策略,分解成若干个操作 (Operation) 级节点。静态地看,一个操作级节点是一个函数子程序。它在操作包的约束下完成对包内某个对象的一个特定的操作或简单的处理。

DPC软件程序的动态过程与结构由不同的业务模式和观测任务所决定。预先根据不同的卫星业务模式,制定出不同的生产流程、批作业和作业模板。这些模板按相对时序描述了DPC软件各功能模块在相应业务模式下所具有的典型动态过程与结构。再按照具体的业务观测要求,生成可完成特定资料处理与产品生成任务的DPC软件运行计划。最后由调度软件按照DPC软件运行计划,调度和监控相应的批作业、作业运行,从而实现由各种模板所定义的程序的动态结构。

对软件、程序、进程、操作包、操作等各层次软件成分进行命名约定,包括预留英文字母的约定、各层次成分的占位约定、名称长度的约定等。对公共服务例程进行命名约定,由字母Z后跟例程名及其可能的前缀组成。对变量与标号进行命名约定,全局变量与标号必须全系统统一,无二义性,变量名简短,同时有意义,尽量做到“见名知义”。

2.3 应用软件工程化的方法与过程

应用软件工程化与业务化阶段的目标是运用软件再工程[2]方法学,通过逆向工程、代码重构、数据重构、文档重构、正向工程等一系列软件过程,将卫星气象科研单位完成并提交的卫星气象观测资料处理数学物理方法与计算机程序,再造成能够满足风云二号02批卫星业务系统的功能性、可靠性、易用性、维护性和实时性等主要质量特性要求的资料处理业务应用软件。

采用逆向工程法对科学研究的成果进行软件程序与文档的分析,按照软件工程的要求进行软件程序及文档的重构。代码理解、数据分析、代码重构、数据重构、接口重构、文档重构是逆向工程的主要环节。

代码理解在系统、程序、模块、运行模式和语句等不同层次上,抽取代码中蕴含的与处理有关的抽象信息,理解程序的整体功能。

数据分析的目的是通过评估所有包含数据定义、文件描述、I/O、以及接口描述的计算机高级语言语句,抽取数据项和对象,获取关于数据流的信息,理解现存的数据结构。

代码重构的目的是使软件结构清晰、易于调度控制,易于维护。增加或重写原代码,满足业务系统对模块的功能、性能要求与输入、输出接口要求;对核心处理的算法与程序流程的控制结构进行优化;尽可能使用系统服务、实用程序;提取两个以上子系统中用到的过程、动作及方法,建立公共函数库。

数据重构根据数据分析的结果进行数据的重构。将数据名 (特别是全程量) 标准化,确保所有数据均按设计文档与软件工程规范规定的命名规则命名并在程序中定义;将数据定义与变量构造合理化,解决数据定义 (主要是局部量) 的二义性与构造上的随意、混乱问题,以便使数据的逻辑定义与物理构造相一致。

接口重构在处理、代码、数据重构的基础上,重新构造软件间接口,确保软件能够在一起协调一致地工作。

文档重构在理解软件、改进软件结构的基础上,按软件工程规范,在有关资料和技术说明的基础上,恢复或重新开发该软件的需求规格说明、设计规格说明和测试等业务软件后续维护和改进工作所必须的工程文档。

软件工程化结束时,输出一个能够全面满足风云二号02批卫星地面应用系统业务应用软件工程规范和接口标准、支持相应业务的资料处理应用软件包。包内应用软件是模块化的,能够根据业务需要,以独立作业方式在业务运行控制系统的调度、监控下运行,提供产品化的科研成果与业务化信息服务。应用软件工程化的过程如图 1所示。

图 1. 应用软件工程化的过程

3 DPC应用软件的业务化

DPC的建设目标是自动实现风云二号02批卫星及其他静止卫星的资料接收、预处理、定量产品生成,在规定时效内通过卫星/专线和/或互联网发布给国内外用户。构造DPC业务系统要从顶层进行流程的分析与提炼,利用计算机、网络、数据库、多机群集、多机负载平衡、数据共享等技术,建成无系统硬/软件和应用软件单点故障,不宕机的气象卫星遥感数据处理平台。

3.1 业务流程构造

业务系统的构造指从顶层分析提炼能够执行目标系统预定功能的物理过程或者时间过程的业务处理/信息流程,逐层向下分解为批作业、作业、作业步,再通过运行计划形成作业流,同时给出有效的人机交互控制接口,使得数据处理软件能够与其他业务应用软件集成在一起运行。

DPC从数据准备直至产品的产出,按照时效要求、物理过程、产品聚类的方法可提炼为数据准备流程、高时效产品生产流程、数据预处理流程、高精度产品生产流程、多星融合产品生产流程、交互监测产品生产流程、手动系数更新流程。根据卫星业务模式时间表和程序动态过程的描述模板,生成业务运行计划,设置作业执行器实现每个业务流程的具体任务,采用数据驱动、事件驱动和时间驱动策略实现全部作业的自动化运转。DPC在实现全自动化运行的基础上,设置人机交互控制接口,对各种不能自动恢复的故障、需要人工干预的情况进行人机交互控制。

3.2 业务系统逻辑层次的结构设计

建立数据处理平台的一个重要任务,是进行系统逻辑层次的结构设计,包括关键技术的采用,软/硬件架构的合理选择,形成一个完善实用的业务运行平台体系。DPC需要高频率地获取卫星观测数据 (28~48次/日),高时效地提供应用服务 (北半球观测任务结束3 min即提供北中区域观测图像等广播服务),大规模地进行数据处理 (每日100 GB数据处理量)。DPC采用多台高性能UNIX服务器构成资料处理集群;基于存储域网 (SAN) 技术实现文件系统共享;以千兆高性能网络交换机作为系统核心网络系统,为数据交换提供主要渠道;基于数据库技术根据配置参数灵活构造工作流程;采用群集系统高可用技术提高系统的可用性;使用负载平衡技术将多机系统整合成一台逻辑处理机,最大限度地实现系统内部的资源共享,提高系统运行效率。

DPC系统按照逻辑关系分解,可以划分为5层结构,包括:存储层,通过快速专用的光纤网络,将多种类存储设备连接起来,组成低成本、易于管理的存储区域网络;平台层,使用多台UN IX服务器构成DPC的硬软件平台;服务层,使用高可用、负载平衡、数据库、数据共享等软件将DPC系统构建成为一台高可靠性、高可用性、高灵活性的虚拟生产机;应用层,由业务应用软件组成的卫星数据处理生产线;交互层,自动作业运行监视信息、操作员命令等信息交互。

4 结束语

通过对数据的定义与规范、程序的定义与规范、逆向工程方法实现DPC系统应用软件个体的工程化。通过对DPC系统的功能分析与提炼、系统逻辑层次结构设计、系统的业务流程构造提出完整的业务系统技术方案,对数据处理中心的实现具有重要的指导意义。

参考文献
[1] 郑人杰, 殷人昆, 陶永雷. 实用软件工程 (第二版). 北京: 清华大学出版社, 2003: 388-393.
[2] StephenT A. 软件体系结构的艺术. 北京: 机械工业出版社, 2004: 171-188.