您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 资本运营 > 基于SWIM的空管信息系统互联策略-刘丹
ComputerKnowledgeandTechnology电脑知识与技术第10卷第3期(2014年1月)本栏目责任编辑:谢媛媛软件设计开发基于SWIM的空管信息系统互联策略刘丹(华东空管局,上海201101)摘要:近年,空管业务量不断增长,空管系统协同决策需求越来越高。而由于传统空管系统存在信息缺乏共享、数据交互机制不顺畅等问题,已成为制约空管业务发展的瓶颈。该文介绍了目前美国、欧盟空管普遍推崇的广域信息管理(SWIM,SystemWideInformationManagement)技术,并以一体化系统为例,分析在SWIM平台建设完成后,各空管系统如何作为作为一项服务与SWIM平台互联,基于SWIM平台与其它系统完成信息交互。笔者开发了一体化系统与SWIM平台互联的适配器原型系统,并部署测试环境,成功将通过适配器处理后的一体化系统航班信息数据通过模拟的SWIM平台发送到其它系统使用。关键词:信息交互;SWIM;适配器;服务中图分类号:TP311文献标识码:A文章编号:1009-3044(2014)03-0524-051背景近年民航业迅速发展,民航空管业务量与日俱增,空管系统协同工作要求越来越高,管理和决策过程中需要掌握的信息量及信息种类也越来越多,而传统空管系统的信息共享与交换方式存在诸多弊端,已无法满足这些要求。为解决航空运输量的快速增长与空中交通管理保障能力之间矛盾日益突出的问题,欧美等主要航空发达国家早在二十世纪末期就开始研究和发展新一代空中交通管理系统,其中广域信息管理(SWIM,SystemWideInformationManagement)是该系统发展的基础和关键技术之一。SWIM基本理念是,通过SWIM,最大限度地使空中交通管理的各参与方同时共享各方的最新信息,确保机场、空管、航空公司等相关民航单位的相关信息能安全、有效和及时地共享和交换,从而进行及时、准确地协同决策,大幅提高决策的预见性和有效性。2SWIM架构SWIM的基础是面向服务的体系结构(Service—OrientedArchitecture,SOA)。是一种松耦合的、灵活的和分布式的信息集成方式。SOA架构将应用系统作为信息服务,用统一的标准集成进服务总线,注册在SWIM平台上。各系统之间的信息交互是通过服务来完成的,每个系统执行一个服务接口功能,用于实现一系列服务的传递,这些服务可以被其他系统通过SWIM服务功能来进行调用,一个系统的服务接口是一个功能要素,它可以使服务用一种符合SWIM规范并能被识别的技术标准方式传给其他的系统。图1显示了传统系统架构与SWIM系统架构的区别。在传统方式中,信息系统采用点到点连接,因此当业务流程或需求发生变化时,这种方式必须投资升级以建立新的连接。在SWIM系统中,因采用SOA架构,当业务流程或需求发生变化时,可通过更新交换策略方式方便的调整信息服务,对已建立的连接影响很小。图1传统网状通信结构与SWIM总线通信结构收稿日期:2014-01-02作者简介:刘丹(1981-),女,主任工程师,研究方向为广域信息管理平台。E-mail:xsjl@dnzs.net.cn电脑知识与技术Vol.10,No.3,January2014524ComputerKnowledgeandTechnology电脑知识与技术第10卷第3期(2014年1月)软件设计开发本栏目责任编辑:谢媛媛3基于SWIM的空管信息交互3.1空管信息系统与SWIM平台互联方案空管信息系统(如流量管理系统、情报系统、自动化系统、气象系统、第三方使用者等)作为信息交换、共享的信息源及使用者,通过定制开发的适配器,与SWIM平台互联。SWIM平台内会设置对应各不同系统的SWIM-box。SWIM—box是SWIM的核心模块,其中既包含了SWIM节点间的数据交换与共享、安全服务、可靠性服务、管理服务等诸多服务功能,又有按照航班信息、气象信息、监视信息和航行情报信息等诸多空管业务领域进行对象化建模的信息域。通过SWIM—box,可以将千差万别的各个空管业务系统所能提供的服务,整合到一个统一的服务平台之上,同时也能为现有的以及新建的业务系统提供其所需要的各类空管业务服务。但各空管信息系统与SWIM平台接口标准、消息格式等存在差异,且存在数据安全问题,因此,各信息系统需经过适配器进行接口转换、消息转换、数据过滤等操作后,经过适配器翻译成SWIM平台能够接受的数据格式、消息格式,方能与SWIM平台上其他系统进行信息交互。各信息系统与SWIM平台的互联方案如图所示:图2信息系统与SWIM平台的互联方案3.2信息交互流程各信息系统以服务方式注册到SWIM平台,通过SWIM平台向其他系统发布数据。SWIM平台中的服务的操作包括:3.2.1服务发布为了使服务可访问,各系统需要向SWIM平台发布服务描述,以使服务请求者可以发现和调用它。3.2.2服务查询服务请求者定位服务,方法是查询服务注册中心来找到满足其标准的服务。3.2.3服务绑定和调用在检索完服务描述之后,服务请求者根据服务描述中的信息来调用服务。3.2.4信息交互流程示例以下将以空军运控系统引接一体化系统航班信息为例阐述信息交互流程:一体化系统通过适配器连接到SWIM平台后,需预先将自己的服务和接口契约发布到SWIM平台服务注册中心。(其中SWIM平台服务注册中心是服务发现的支持者。它包含一个可用服务的注册库,并允许感兴趣的服务请求者查找服务提供者接口),以便服务请求者可以发现和访问该服务。当空军运控系统需要读取一体化系统航班计划信息时,空军运控系统应用程序作为服务请求者,通过发送消息发起对SWIM平台注册中心中的服务的查询,这些消息由SWIM平台企业服务总线(servicebus)转换后发送给一体化系统。一体化系统根据接口契约自动执行来自空军运控系统的服务请求。3.3信息系统SWIM平台适配器开发设计(以一体化系统为例)本文主要以一体化系统为例,分析在SWIM平台建设完成后,各空管系统如何作为作为一项服务与SWIM平台互联,基于SWIM平台与其它系统完成信息交互。一体化系统核心功能是围绕航班生产的“计划、实施、统计”三个阶段,为空管所有管制单位提供相应的生产服务及生产辅助信息服务,如:航班计划管理、塔台进程单流转、流量协同管理、航班统计等功能。因一体化系统与SWIM平台在接口标准、消息标准等方面均存在差异,所以需要一体化系统与SWIM平台的适配器,来进行数据及消息格式转换。另外,考虑数据安全等方面的问题,一体化生产系统需与外部系统隔离,因此一体化系统对外发布的数据需525ComputerKnowledgeandTechnology电脑知识与技术第10卷第3期(2014年1月)本栏目责任编辑:谢媛媛软件设计开发采用独立的中间数据库、数据多重过滤机制、防火墙安全策略等保证信息对外发布的安全性。3.3.1适配器架构一体化系统适配器包含两个模块,一个是用于航班信息内部交换的数据交换平台,另外一个是能够实现向外部用户,即外部信息需求者,提供航班信息输出服务的对外发布平台。首先,通过一体化主用数据库镜像方式获取航班动态信息,并由航班信息同步程序根据当前已配置的同步模式,将信息发送给信息对外发布平台,再经过一定的数据解析、处理和过滤后,生成不包含敏感信息的航班动态信息等数据;再由航班信息发布程序将已过滤的航班信息,向其他系统进行发布。具体数据交换及发布模式如下:待发布数据(如航班动态数据信息)由服务程序向作为一体化系统消息中间件接口的输入队列发送,并通过队列与一体化系统ESB建立消息通道,充分利用消息中间件的可靠传输功能,保证数据传输上的可靠性及稳定性。一体化系统ESB通过对消息内容的地图和交换路径的路由等配置信息,动态引接由源队列到目的队列之间的数据交换通路,达到数据交换的纵向扩展。再交由一体化系统SWIM平台适配器服务程序进行数据处理、过滤、消息转换等操作,并通过SWIM平台实现向外部用户发布数据。一体化系统SWIM平台适配器技术架构图如下所示:图3一体化系统SWIM平台适配器技术架构图航班信息同步功能主要负责将从一体化主用数据库中镜像获取的待同步数据以文件形式同步发送给航班信息对外发布平台。航班信息接收功能主要负责接收来自于一体化系统ESB的航班信息文件,并作相应的解析处理,最后写入一体化系统SWIM平台适配器对外信息发布数据库中,完成数据的存储。航班信息发布功能主要负责根据外部用户的实际请求,读取对外信息发布数据库中数据,并基于特定的数据过滤机制,对待发布的航班信息数据进行过滤处理,最后完成航班信息的发布。3.3.2一体化SWIM平台适配器原型开发一体化SWIM平台适配器整体分为2个子系统:数据交换子系统,通过C控制台程序实现,负责对一体化系统数据进行接收—处理—存储;对外发布子系统,C控制台程序实现,负责对一体化系统数据进行筛选—转存—发布。3.3.2.1数据交换平台处理流程1)数据采集从一体化航班信息系统中收集定时发送至对外发布系统的航班数据,采集数据的条件是每隔30秒,由MQ_receiver线程从一体化航班信息系统数据交换MQ中接收实时的航班信息,并调用GET_CSV_VALUE从接收到的数据中获取存储航班数据的CSV字段信息,调用logginScreen将处理结果输出在屏幕上,调用LOGGER4CPP对每一步操作进行日志记录。2)数据解析向FP05_FLT_INF写入航班数据,csvtooracle线程从GET_CSV_VALUE取得待处理数据,先存储原始数据至本地,再调用CSV_PRASER执行航班数据提取,得到航班信息数据。调用logginScreen将处理结果输出在屏幕上,调用LOGGER4CPP对每一步操作进行日志记录。3)数据存储每次向数据库插入或更新一批数据,调用selectSQLInner查询已经存入库的数据,如果已存在则更新,如果不存在则插入,调用LOGGER4CPP对每一步操作进行日志记录。3.3.2.2对外发布平台处理流程对外发布子系统是整个系统的核心,在该模块中根据用户需求对数据进行筛选处理,并封装成用户需要的格式进行转发。526ComputerKnowledgeandTechnology电脑知识与技术第10卷第3期(2014年1月)软件设计开发本栏目责任编辑:谢媛媛1)数据筛选从FP05_FLT_INF中筛选用户需要的航班数据,并对敏感的航班信息进行过滤,筛选数据的条件是每隔5分钟选择同步标志位SYN_FLAG为1,且保障等级不敏感的航班信息,或者每天凌晨2:00选择未来3天的航班计划数据。调用GET_FLIGHT根据条件进行查询,调用LOGGER4CPP对每一步操作进行日志记录。2)数据封装将经过筛选的数据进行封装,写入文件,调用FLT_INF将查询得到的航班数据存入文件中。调用logginScreen将生成的文件名输出在屏幕上,调用LOGGER4CPP对每一步操作进行日志记录。3)数据转发将数据文件放入FTP服务器,并将文件名告知用户,调用FILE_FTP。数将存有航班信息的文件放入网络内的FTP服务器供用户下载,调用CMQ_SEND函数将最新生成的航班信息文件名发送给各用户。3.3.2.3函数分类除了上述函数以外,其他函数按照各自功能划分如下:表1函数列表函数数据处理CSV_Parse.cConfig4SG.cFLT_INT_SEL.c数据封装函数FLT_INF_XMLcLOG4CPP.c数据转发函数ftp.c通讯函数CMq.c数据库函数OracleDAO.c功能数据解析模块被DAT_REC回调函数调用,将接收到的数据解析拆分,非法数据统一由afDoOtherMessage处理Getcsv—获取数据中的data.字段的具体值set_field_term_char–设置CSV文件处理中的f
本文标题:基于SWIM的空管信息系统互联策略-刘丹
链接地址:https://www.777doc.com/doc-1541377 .html