1、南方航空接口模块设计
1 概述
南方航空接口模块主要实现访问中国南方航空官方网站
深航
海航
国航
东航
南方航空官网
1 2 3 4
航班动态
5
2、
查询航班动态
轮询处理
数据库
推送下发
查询处理
航班动态数据
处理中心模块
1)南航:出发到达(出发机场和到达机场)或航班号
2)东航:出发到达(出发机场和到达机场),国内/国际,航班日期(昨日、今日、明日)或航班号
3)国航:出发到达(出发机场和到达机场),起飞日期或航班号,起飞日期
4)海航:出发到达(出发机场和到达机场),出
3、发时间或航班号,出发时间.出发时间为过往2日今日和未来2日
5)深航:出发到达(出发机场和到达机场),航班日期(今日)
说明: 接口模块将南方航空变更信息主动推送到中心模块;
中心模块也可能主动发起到南方航空的查询;
2 接口说明
与南方航空的接口:使用HttpClient方式模拟查询航班动态,数据格式如下。
航班号
机型
出发机场
到达机场
计划起飞时间
实际起飞时间
计划到达时间
实际到达时间
CZ3101
777
广州
北京
01-16 0800
01-1
4、6 0851
16 1110
16 1108
CZ3099
380
广州
北京
01-16 0900
01-16 0938
16 1210
16 1155
CZ0345
332
广州
北京
01-16 1000
01-16 1032
16 1310
--
说明:对航班的起降时间格式化处理成’yyyy-MM-dd HH:mm:ss’
与中心模块的接口有两种: http方式查询接口(可根据配置是否提供), 按航班号查询,返回结果与现有飞友数据格式保持一致。
推送消息下发接口: socket接口,采用Mina实现。属于同一航班的同一批次变更,封装
5、在一条推送消息中。主要格式参见天航信推送消息定义,但由于机场还包括登机口,行李提取等字段,需要增加节点定义。
0 -- 查询码 --
*** no message *** -- 查询结果描述 –
CA4764 -- 航班号 --
2011-10-28 -- 飞行日期
CTU --起飞机场三字码 --
XMN --到达机场三字码 –
2011-10-28
6、 12:10:00 -- 计划起飞时间 --
2011-10-28 15:05:00 -- 计划到达时间 --
2011-10-28 11:25:00 -- 预计起飞时间 --
2011-10-28 15:05:00 -- 预计到达时间 --
2011-10-28 13:15:00 -- 实际起飞时间--
null -- 实际到达时间,如果出现备降,
7、此字段为null --
备降 -- 航班状态 –
T1 -- 接机楼 --
null -- 候机楼 –
-- 以下字段是当航班有备降的时候出现 --
WUH -- 备降机场三字码 –
到达 -- 备降状态 –
2011-10-28 15:35:00 --备降到达时间
-- 以下字段是当备降
8、后出现新计划时出现 –
CTU -- 备降后新计划的起飞机场三字码 --
CKG -- 备降后新计划的到达机场三字码 --
2011-11-1 20:30:00 --备降后新计划起飞时间--
2011-11-1 21:11:00 --备降后新计划到达时间--
2011-11-1 20:30:00 --备降后新预
9、计起飞时间
2011-11-1 21:11:00 --备降后新预计到达时间
null --备降后新计划实际起飞时间--
null --备降后新计划实际到达时间--
延误 --备降后新计划状态--
T2A --备降后新计划接机楼--
null -
10、备降后新计划候机楼--
--登机口数据—
31
--行李提取处数据—
6
--机场状态数据--
3处理流程
初始化处理:初始化Socket接口并进行端口监听。缓冲队列创建。轮询处理线程创建(数量1个),推送下发处理线程创建(数量可多个)。
轮询处理:以独立线程方式,每隔5分钟向南方航空网站模拟查询航班动态请求,将查询结果解析处理,转换成为内部对象,与缓存中的上次查询结果对比,将有变化的数据,如航班预计起降时间变化等信息,生成待推送消息数据存储到缓冲队列中Queue;
轮询策略:当前时间与实际起飞时间相隔20分钟以内(可配置),便不查询该航班
推送下发处理:以独立线程方式,从缓冲队列中取出待推送数据,取出session,通过该session.write方法发送数据。