航班信息发布接口系统设计与实现
2015-08-09吴冰
吴 冰
(中国民用航空华北地区空中交通管理局,北京 100621)
随着民航事业的发展,数据与信息的共享需求也随之增大。导致越来越多的单位系统或项目需要引接民航华北空管局综合电报处理系统航班动态和计划数据,建立一个用于该系统信息发布接口的必要性也随之增强。
航班信息发布接口系统在设计时考虑了四个方面,分别为软件流程设计、参数功能设计、数据库设计以及传输设计。
1 软件流程设计
航班信息发布接口软件,使用DELPHI 语言编写,该语言是Windows 平台下快速应用程序开发工具(简称RAD)。航班信息发布接口软件,核心功能分为三个部分,分别为数据引接、数据处理、数据发布。
1.1 数据引接设计
数据引接方面,航班信息发布接口从综合电报处理系统引接航班时刻表、中长期计划表、核心计划表,动态更新表等数据。
航班时刻表:此表为由中国民用航空总局空管局统一下发,一年两次,分别为冬春、夏秋航班时刻,此表信息每日8时从综合电报处理系统引接一次,同步至接口系统。
中长期计划表:临时根据电话、文件或电报内容生成的计划表,此表实时同步。
核心计划表:此表由航班时刻表、中长期计划表和一些基础信息表,例如航站信息表、航路信息表共同联合生成,航班信息全面,属于航班信息接口系统核心表,此表实时同步。
动态更新表:为航班AFTN电报更新的核心计划后的表,同属于航班信息接口系统核心表,此表实时同步。
接口系统将上述数据进行引接,组建成航班信息数据源,存入数据库,在数据库中根据数据源建立用于数据引接的各类视图,等待数据接口程序进行处理及发布。
1.2 数据处理及发布
接口软件根据任务参数从数据源视图中索取航班信息,将信息进行XML生成,首先存放于本地,后将信息进行发布。在发布过程中进行数据备份以及发布提示。
数据备份便于同对方系统接收的航班信息核对,同时存放的历史记录也方便于数据重传,以支持对方系统故障、瘫痪重新索取航班信息的各类需求。
发布提示主要是监控发布过程是否成功,当失败时接口程序会进行试探性重传,当试探两次仍失败后,将产生告警信息提示维护人员进行检查链路或程序。
简略流程中绿色模块为计划发布接口,首先根据任务参数生成航班信息组成XML 文件,再通过Ftp 协议上传至对端系统FTP 接口服务器,同时对上传数据进行备份。此过程中接口软件会判断传输是否正常,如不正常则尝试重传,两次失败后提示告警。
1.3 其他设计
采用DELPHI 多线程技术,支持多任务并发,设计1个任务对应1个线程,能够同时提供15项任务传输,且每项任务支持10种视图的同时发布。
数据量方面,在网络设备允许的情况下,最快可支持向单系统发布航班数据10 000 条/min,数据量超过10M/min。
在稳定性方面,软件在编写过程中加入了数据库死锁、内存溢出、类库冲突等容错机制代码,并将软件运行中的错误日志进行记录,为维护人员提供告警。
2 任务参数设计
航班信息接口程序支持多任务同时运行,各任务可连接不同数据库取所需数据;可向不同FTP 服务器进行文件传输;可将本地导出XML 的文件备份至不同文件,单个发布任务对应1个INI 任务参数,每个INI 由XT、DATABASE、FTP、XML、TABLE 五块参数设置组成,下面以TABLE参数设计为例进行介绍。
2.1 TABLE参数设计
此参数作为软件调用核心参数,为数据源获取信息,包括数据表/视图名称、发布间隔、具体条件等。
表1 TABLE参数2
2.2 参数设置:
参数设置详细说明如表1:
(例如:2=jkv_changelist#ROW_ID>$1341767 order by row_id#2011-10-27 14:10:00$2011-10-27 14:11:00$5$1#0$2011-07-06 17:05:00#jkv_changelist#)
3 数据库设计
本系统的建设由三模块组成:软件程序设计、数据库设计、FTP 服务器设计,本章将对数据库设计进行介绍。在数据库方面,系统采用ORACLE 11G数据库,ORACLE 11G 相比以往版本有对高可用性的增强、新的Flashback能力、支持回滚更新操作;对安全性的增强,便于管理大量的用户[1];BI 方面的增强,包括改进的SQL 能力、分析功能、数据挖掘的能力等;对非关系型数据存储的能力进行了改进;以及支持XML的能力,降低了管理开销,提高了后台运算性能[2]。
本系统的数据库建设分为系统层设计、业务层设计、发布层设计三个方面,其中系统层设计包括ZJ_LOGIN权限管理表、RZ_LIST日志运行表;业务层设计包含DRT_DYNAMIC_HXH_DMZ 核心航班计划表、HBT_FLIGHT 航班时刻表、CQT_PLAN 运管中长期计划表、RZT_HXHUPDATE 动态更新记录表、LST_DYNAMIC_HXH_DMZ 核心航班计划历史表;业务层设计包含DRV_DYNAMIC_JCG 核心航班计划视图、JKV_DYNAMIC_CR次日航班计划发布视图、JKV_DYNAMIC_DR当日航班动态发布视图、JKV_DYNAMIC_LS 昨日航班计划发布视图、LSV_DYNAMIC_JCG 历史航班计划视图、LSV_DYNAMIC_DR历史航班计划发布视图。
3.1 系统层设计
系统层设计主要为程序的管理权限、运行日志记录提供服务。
3.1.1 权限表
该表由软件调用,包括用户名、密码以及权限记录,程序通过调用该表实现安全管理。
3.1.2日志表
该表为软件运行日志信息,包括记录号、运行错误的步骤、故障导致原因、检查与排除故障方法、故障时间,在软件运行时记录各流程状态是否正常,异常时将错误记录至该表,方便维护人员调阅,查找故障原因。
3.2 业务层设计
业务层设计主要用于数据引接、整理。
3.2.1 核心计划表
该表为系统核心航班计划动态表,数据来源于实时同步的综合电报处理系统,里面记录着航班各类信息,包括航班号、机型、时刻、性质等,包含昨日、当日、次日三天数据,此表为软件系统的核心,向外发布视图数据均来源于该表。
3.2.2 航班时刻表
该表为航班长期计划表,数据来源于综合电报处理系统,每日完成一次同步,里面记录着航班各类信息,包括航班号、机型、部分计划时刻、性质等,一般存放半年计划。
3.3 发布层设计
发布层设计主要用于数据发布,多采用视图形式,方便修改。
3.3.1 核心动态视图
该视图数据来源于核心计划表DRT_DYNAMIC_HXH_DMZ,将该表中数据进行分段处理拆分后进行呈现,因8 段视图均为重复Sql 语句,故以第一段视图进行展示。
3.3.2 次日计划视图
该视图数据来源于视图DRV_DYNAMIC_JCG,仅为次日航班计划信息,用于向其他系统发布此日计划使用。
3.3.3 当日动态视图
该视图数据来源于视图JKV_DYNAMIC_DR,为当日航班动态信息,用于向其他系统发布实时航班动态信息使用。
4 信息传输设计
本系统在建设中考虑到信息传输的安全、高效,采用了FTP传输方式,将软件生成的XML文档,通过FTP文件传输协议传送到对端接口服务器,向用户屏蔽不同主机中各种文件存储系统的细节,加强了数据传输的可靠性和高效性。但也因此需在对端接口服务器中建立FTP服务,与大多数Internet 服务一样,FTP 也是一个客户机/服务器系统。用户通过一个支持FTP 协议的客户机程序,连接到远程主机上的FTP服务器程序。用户通过客户机程序向服务器程序发出命令,服务器程序执行用户所发出的命令,并将执行的结果返回到客户机。比如说,用户发出一条命令,要求服务器向用户传送某一个文件的一份拷贝,服务器会响应这条命令,将指定文件送至用户的机器上[3]。客户机程序代表用户接收到这个文件,将其存放在用户目录中。
5 结语
本文从软件设计、参数设计、数据库设计、数据传输四个方面向大家介绍了航班信息发布接口系统的设计思想。在整体设计方面,除了考虑到接口系统安全性、实时性、稳定性以外,还适当的考虑了接口的规范性、适用性和灵活性,为今后的业务拓展、信息扩容做前瞻性预见。
[1]吕清娇.基于Web 技术的Oracle 数据库实验平台的研究与实现[D].长沙:中南大学,2014.
[2]唐志涛.测评系统组件间数据交互的设计与实现[D].西安:西安电子科技大学,2011.
[3]杨松.有关计算机软件数据接口的应用研究[J].科技创新与应用,2013(17):85-91.