应用气象学报  2003, 14 (4): 395-401   PDF    
网络编程实现气象卫星资料的传输
赵立成, 关彤     
国家卫星气象中心, 北京 100081
摘要: 气象卫星应用系统是一个异构平台的分布式处理系统,由多机协同完成资料接收、传输、处理、存档与产品分发等任务。使用网络编程进行气象卫星资料的传输,可以提高资料的传输实效,确保分布式环境下不同系统之间的同步与资料的可靠性,从而保证气象卫星产品及时提供用户使用。该文介绍了网络编程技术在气象卫星资料传输方面的应用。
关键词: 分布式系统    网络编程    气象卫星资料传输    
TRANSFER OF METEOROLOGICAL SATELLITE DATA THROUGH NETWORK PROGRAMMING
Zhao Licheng, Guan Tong     
National Satellite Meteorological Center, Beijing 100081
Abstract: The meteorological satellite application system is a heterogeneous distributed system consisting of multi-functional subsystems such as data ingesting, transferring, processing and archiving. Using network programming to transmit data amongst subsystems can reduce transferring time and improve processing efficiency, so that the products can be delivered to users in time.
Key words: Distributed system     Network programming     Data transfer    
引言

随着网络技术的飞速发展,气象卫星资料应用系统逐步从大型主机为主的集中处理转向UNIX系统为主的分布处理。国家卫星气象中心的气象卫星资料应用系统是一个由近20台运行不同操作系统的计算机组成的异构分布式处理系统,每天自动接收处理静止气象卫星与极轨气象卫星资料,同时兼顾接收处理国外气象卫星GMS、NOAA等卫星资料。由于气象卫星探测资料的实效性要求很强,因此如何在分布式系统中实现资料及产品的高效传输,及时将资料及产品分发给用户,一直是气象卫星资料应用系统设计的技术重点。

1 应用系统结构与信息流程 1.1 应用系统结构

气象卫星应用系统由FY-2静止气象卫星应用系统与FY-1极轨气象卫星应用系统组成。

FY-2静止气象卫星应用系统由指令和数据接收站 (CDAS)、资料处理中心 (DPC)、卫星运行控制中心 (SOCC) 三部分组成。CDAS与DPC、SOCC之间通过光纤网络相连,实现卫星图像资料、运行控制参数、控制命令的实时传输。

FY-1极轨气象卫星应用系统由位于北京、广州、乌鲁木齐的3个气象卫星资料地面接收站 (DAS)、资料处理中心 (DPC)、资料存档检索中心 (DAC) 组成。北京地面站与DPC之间通过光纤网络相连,京外两个地面站与DPC之间使用通信卫星信道实现卫星图像资料、运行控制参数及命令的传输。

应用系统的计算机系统除2台富士通M770大型主机外,主要是UNIX服务器与工作站,以及微机,这些计算机通过网络交换机相连,构成气象卫星资料分布式处理系统。应用系统逻辑结构如图 1所示。

图 1. 应用系统逻辑结构

图 1不难看出,从资料获取到产品服务,需要经过接收、传输、处理、存档、分发等环节,资料及产品需在不同的计算机系统 (平台) 之间及时传输,由多台计算机协同处理。

1.2 信息流程 1.2.1 静止气象卫星资料传输流程

静止气象卫星资料传输流程主要包括FY-2A展宽图像资料传输、FY-2B展宽图像资料传输、卫星运行控制信息传输。

(1) FY-2A展宽图像资料传输:CDAS接收的FY-2A展宽图像通过光纤通信系统,以660 Kbps的固定码速率逐帧向DPC传输,SUN4/490实时接收并通过与M770的联接通道CTC以直接通道编程的方式转发给M770;GMS卫星资料由SUN4/490直接接收并实时向M770转发。

(2) FY-2B展宽图像资料传输:CDAS接收的FY-2B展宽图像通过千兆网络,采用网络编程的方式逐帧向DPC的HP/ L2000转发,HP/L2000接收并向SOCC的图像监视工作站进行转发,资料接收完毕后在HP/L2000上启动资料及产品处理程序运行。

(3) 卫星运行控制信息传输:CDAS接收的卫星遥测资料,实时向SOCC转发; SOCC对卫星遥测资料进行处理,并根据应用需求,生成卫星运行控制指令或指令链,向CDAS发送,控制卫星运行。

1.2.2 极轨气象卫星资料传输流程

极轨气象卫星资料传输流程主要包括FY-1与NOAA卫星资料传输、运行控制信息传输。

(1) FY-1与NOAA卫星资料传输:三个地面接收站在卫星过境时实时接收高分辨率图像资料 (HRPT) 与延时资料 (DPT)。北京地面站接收的资料以文件传输方式向DPC传输,京外两个地面站接收的资料采用分时共享通信卫星信道方式,逐帧向DPC的HP/K370传输。

(2) 运行控制信息传输:地面应用系统运行所需卫星轨道参数、运行时间表等控制信息,采用文件传输方式自动传输。

1.2.3 存档管理与产品分发流程

(1) 存档流程:采用文件传输方式将M770主机、HP/K370与HP/ L2000服务器上接收的原始资料与加工处理的产品分别定时自动发送给HP/K570,进行长期存档管理。

(2) 分发流程:采用文件传输方式将M770、HP/K370、HP/ L2000加工处理的卫星产品分别定时自动发送给HP/D260,并由HP/D260向9210主站、局大院用户等分发。

2 不同协议的编程应用 2.1 直接执行通道程序规约应用

直接执行通道程序 (EXCP)(Executive Channel Program) 是M770控制通道工作的规约,M770的通道命令都是通过EXCP控制器执行的。EXCP是M770与通道连接的外部设备、计算机系统进行数据通信的主要规约[1]

EXCP程序的设计要点有两点:一是正确地填写通道控制字 (CCW)、数据控制块 (DCB)、事件控制块 (ECB) 等,对控制字位进行置位与复位操作; 二是中断处理程序的设计。EXCP程序运行在专门的通道处理器上,不占用主机处理器周期,与其它程序并行运行,是M770高速数据输入输出的快速通路。

FY-2A展宽图像资料的实时传输,采用EXCP方式进行:SUN4/490接收一条图像扫描线,就执行一次EXCP命令,实时向M770传输。展宽图像资料传输程序采用非对称模式设计:M770上的接收程序为控制方,SUN4/490上的发送程序为从属方。接收程序定时循环发出EXCP命令,发送程序侦听接收程序发送的通道命令,根据命令类型 (读/写) 进行数据传输操作。如果是读命令,则发送图像帧; 反之则接收主机发送的数据或命令; 图像数据结束时向接收程序发送结束标志。

由于直接面向通道编程,应用程序设计了严格的差错处理功能,进行误码检测、丢帧重传控制,保证数据传输的完整性。

直接面向通道编程,S UN4/490接收的S-VISSR资料实时传输到M770主机,没有任何延误。若采用前端SUN4/490接收存储,事后回放传输,则一幅原盘图的回放时间需4min左右。

2.2 TCP/IP协议编程应用

传输控制协议/网间协议 (TCP/IP)(Transport Cont rol Protocol/Internet Protocol) 是一个由TCP与IP组成的协议族,主要包括TCP、UDP、ICMP、IP以及应用层工具等。

TCP是传输控制协议,提供面向连接的、可靠的、全双工数据传输控制。TCP考虑确认、序列号、超时和重传等具体细节。UDP是用户数据报协议,是一个简单的传输层协议,应用程序写一数据报到UDP套接口,封装成网际协议版本4或版本6数据报,然后发送到目的地; UDP不考虑确认、序列号、超时和重传等细节,UDP不保证数据传输的完整性; ICMP是网际控制消息协议,处理路由器和主机间的错误和控制消息,这些消息一般不是由用户进程处理的,而是由TCP/IP网络软件本身产生与处理。IP是网际协议,为TCP、UDP、ICMP等提供递送分组的服务。目前使用的IP协议有2个版本,这就是IPV4和IPV6,分别是20世纪80年代早期主用的IP版本4和90年代中期设计出来的用来代替版本4的版本6;应用层工具是基于TCP/IP协议的一些应用软件如文件传输FTP、远程终端Telnet、网络文件系统NFS等,用户或应用程序可以直接使用或调用 (TCP/IP的详细介绍参见参考文献[2])。

FY-2B展宽图像资料、卫星运行控制命令与参数、遥测资料的传输采用基于TCP/IP套接字编程方式进行。

(1) 应用程序设计模式FY-2B应用系统中共设计了7对数据网络传输程序,分别运行在CDAS、DPC、SOCC的不同计算机上。这7对传输程序全部采用客户/服务器 (Client/Server) 设计模式,发起请求方 (数据传输) 定义为Client端,请求接收方 (数据接收) 定义为Server端。其中S-V ISSR图像资料的传输,也采用网络编程实时传输。数据网络传输程序的客户/服务器设计模式如图 2所示。

图 2. 客户/服务器传输模式 (图中DL1、DL2 … …DL7代表数据链路 (DataLink))

(2) 链路建立规则逻辑链路的建立,主要考虑协议、套接口对等参数的设置,以及链路建立的握手顺序。

协议选择:展宽图像资料、遥测资料,卫星运行控制命令等都具有极高的传输可靠性要求,不容许在传输中发生数据丢失,因此全部采用面向连接的TCP协议设计。

套接口对:网络中任何时候都容许多个进程同时使用TCP或UDP,TCP和UDP使用16位的端口号来区别这些进程。当客户与服务器建立连接时,通过定义TCP连接套接口对标明连接的唯一性。套接口对定义连接端的4元组:本地IP、本地TCP端口、远程IP、远程TCP端口。通信进程使用的端口号为系统保留端口号以外的数,为兼容IANA (Internet Assig ned Number Authori ty) 与BSD版本,通信进程使用的端口号在1024~5000之间选择,一对连接的两端使用相同的端口号。

链路连接:分4步建立TCP连接。服务器调用Socket、Bind、Listen函数准备接受连接,此为被动打开; 客户端调用Connect函数进行主动打开,此时客户发送一个同步SYN,告诉服务器“客户将在待建立的连接中发送数据的初始序列号”; 服务器确认客户的同步SYN,同时发送同步SYN给客户; 客户确认服务器的同步SYN。至此就建立了客户/服务器TCP逻辑连接,见图 3

图 3. TCP链路建立过程

(3) 安全机制传输程序的设计引入了身份认证与数据标签等安全机制:服务器只接收来自于指定IP的建链请求,并对接收到的数据进行标签识别,无标签或标签错误的数据均被扔掉。

(4) 缓冲技术展宽资料发送程序设计了数据缓冲区,当网络堵塞而不能按时发出数据帧时,将待发送数据缓存在缓冲区中,确保发送数据的完整性。

(5) 效率比较采用套接字编程传输FY-2B的S-VISS R图像资料,CDAS的图像获取系统在接收FY-2B观测的原始图像的同时就可以向DPC转发,严格同步传输,没有时延; 若采用FTP文件传输方式,由图像获取系统接收完毕后再向DPC传输,需要2 min; 另外,采用网络编程实时传输,DPC可以在接收图像数据帧的同时进行通道分离、区域分割处理,尤其是可以在接收完北半球的资料后进行启动产品处理程序运行,比事后FTP文件传输方式可以提前至少15 min。

2.3 自动文件传输应用

北京地面站接收的FY-1、NOAA卫星资料,采用文件传输方式自动传输到DPC的资料处理服务器HP/K370;HP/K370处理的产品与1B数据集,也采用文件传输方式定时自动向其他应用服务器发送。按照如下步骤设置自动FTP操作:

(1) 设置连接控制文件为了实现逻辑连接建立的自动化,将FTP目的主机名或IP、帐号、口令按照以下的格式写入到名为.net rc的连接控制文件中:

Machine XXX login YYY passw ord ZZZ

其中XXX为目的主机IP地址或主机名称,若使用主机名称,则应在hosts文件中加以定义; YYY为建立FTP连接所用帐户; ZZZ为帐户口令。

(2) 设置传输控制文件将待传输文件及传输到目的主机后的文件名写入到传输控制文件中。传输控制文件为文本文件,格式如下:

transfer_mode

send old_file new_file或recv old_file new_file

其中tansfer_mode为ascii或bin,传输二进制数据文件选择bin,否则选择ascii; send与recv为FTP子命令,old_file为待传输文件名,new_file为传输后的新文件名。可以重复键入send或recv命令行,一次批量传输复数个文件。

(3) 启动运行将连接主机与传输控制文件作为程序调用FTP的参数递入,自动建立FTP连接,并根据传输控制文件的设置内容自动传输数据文件:

FTP XXX<传输控制文件。XXX是 (1) 中定义的目的主机IP或名称。

小于号“<”为换向控制符,表示FTP命令从其后所跟随的传输控制文件中获取参数。

2.4 其他机制的应用

(1) 消息队列 消息队列是UNIX系统中最常用的进程通信机制,就是在系统内存中开辟带有标识ID的区域,一个进程将待传输数据以消息格式存放在队列中,其他进程从队列中读取数据 (消息)。队列的最大特点是排队,按写入先后顺序存放消息。

FY-2B遥测资料接收进程与处理进程间采用队列进行资料交换。接收进程将遥测资料标记后写入队列,处理进程循环从队列中读取消息,消息读出后,自动从队列中清除。

(2) 共享内存 共享内存是在系统内存中开辟的一段带有标识号的区域,进程可以根据共享内存段设置的权限随机写入/读取数据。共享内存可以覆盖写入,读出为非清除操作,其最大优点是多个进程可以同时共享内存段中的数据。由于内存的读写速率远高于磁盘读写速率,使用共享内存可以提高数据读写速度,缩短处理时间。FY-2B的展宽图像数据就存放在共享内存段中,由所有的处理进程共享。

(3) 信号灯 信号灯是UN IX系统中进程间使用的通信原语,主要用于进程的同步与互斥控制通信。展宽资料接收进程与处理进程间使用信号灯进行同步通信,当接收进程将图像数据帧写入共享内存段后,就置位信号灯,告知处理进程可以处理数据; 处理进程在接到信号灯后,从共享内存段中读取图像数据帧,然后复位信号灯。这样对信号灯交替置位与复位,确保数据读写的同步操作,处理进程可在最短时间内获取图像数据。

(4) 网络时间服务协议 应用系统中安装了1台网络时间服务器为所有计算机提供网络校时服务。网络校时采用客户/服务器模式,客户机从时间服务器获取其广播的时间信号进行自动校时。

3 结束语

使用网络编程方式实现大容量图像资料的实时传输是切实可行的,通过在应用层增加差错控制与丢帧重传机制,并使用数据标签技术,可以增强软件的容错性,保证资料的完整性。对于安全性要求极高的卫星运行控制命令传输等卫星测控业务软件,应探讨安全机制更强的技术手段,如IBM公司的消息队列软件MQ (Message Queue),可以考虑作为设计此类软件的底层支持平台。

参考文献
[1] Sun MicroSoft.Sun Link Channel Adapter Programming Guide.1992.
[2] Stevens W R. UNIX网络编程. 施振川, 周利民, 等译. 北京: 清华大学出版社, 2000.