APP下载

航空物流数据智能分发模型研究

2017-04-14王天凯罗云生丁建立

中国民航大学学报 2017年1期
关键词:路由器报文路由

王天凯,罗云生,丁建立

(1.中国民航信息网络股份有限公司,北京100010;2.中国民航大学计算机科学与技术学院,天津300300)

航空物流数据智能分发模型研究

王天凯1,罗云生2,丁建立2

(1.中国民航信息网络股份有限公司,北京100010;2.中国民航大学计算机科学与技术学院,天津300300)

在航空物流领域,为了高效地将海量数据发送给感兴趣的信息消费者,实现货物全流程信息交互与资源共享,建设行业级数据交换平台,对航空物流企业的运营至关重要。本研究基于面向服务架构(SOA,serviceoriented architecture)研究设计航空物流数据共享平台iLink,数据分发基于动态优先级的先到先服务算法,根据航空物流数据报文的格式和内容,实现传输过程中将不同消息格式自动转换并智能分发到参与者,满足不同终端系统的访问需求。实验表明,该研究方法在数据发送和接收方面具有良好的性能。

航空物流;数据交换;数据报文;智能分发;共享平台

随着航空物流业的不断发展,近年中国民航航空运输业有较大发展,货运总周转量年增长率达4.7%,2012年总周转量达632亿吨,货邮运输量达578万吨。但航空运输业与其作为国家经济安全和国民经济命脉的战略产业地位不相匹配,主要表现在市场占有率低、航空运力不足、信息孤岛现象严重、缺乏统一信息标准、信息共享程度低、货单分离和缺乏技术协同等,使得航空物流资源难以得到高效和优化配置[1-2]。

2006年,梅立军等[3]提出了“代理+服务器”松散耦合模式的数据交换平台系统,利用消息服务解决数据交换过程中复杂的控制信息交互,该系统实现过程中借鉴了SOA体系架构的思想;2008年,贾宇清等[4]针对电子交换系统提出了基于开放平台的新架构XML/ EDI系统,建立了与XML相结合的EDI系统模型;2010年,王淑营[5]提出了面向产业链协同商务平台的动态数据交换解决方案,设计和实现了平台端和客户端数据交换适配器,实现了用户身份和交换业务关键字驱动的动态数据交换。为了实现航空物流领域全流程用户的航空货运数据交换与共享,本文采用面向服务架构[6],通过企业服务总线(ESB,enterprise service bus)技术研究适合于中国航空物流运输的关键技术,为全行业的物流参与者提供全流程的一站式解决方案。实现与货主、货代、货站、政府部门、海关、银行等的电子网络连接和信息交换,通过实现公司整体的网络化、信息化来实施业务运作[7]。

1 航空物流数据交换平台系统架构

航空物流数据交换平台(iLink)是航空电子货单信息平台的基础平台之一,通过建立安全、高效、稳定的数据传输通道,实现航空物流参与者之间的数据交换。iLink能够为物流参与者,包括航空公司、收发货代理人、机场货站提供符合行业规范的报文交互、数据智能路由及格式转换,实现单点接入、多点对接,为客户提供一站式的数据传输交换服务。

1.1 iLink系统架构

iLink数据交换平台基于Windows的Microsoft.Net Framework平台;支持跨平台技术的接口包括iLink SDK、Web Service和MQ等,可以被其他操作系统平台的应用所调用;数据库基于Oracle的消息落地存储模式,实现“接收—路由—分发”,层层落地的模式以保证端对端的传输。报文数据在iLink中将一直存在,直到其被正确、完整地传输到目的系统,端端通信都采用不同RSA1024 Key、AES加密,因此,在任何网络环境下数据都将被安全传输。图1为航空物流数据交换平台(iLink)的技术架构图。

图1 iLink技术架构图Fig.1 Technology architecture of iLink

iLink的数据库设计为若干个区域,每个区域由一张或多张表构成。应用分为中心转发程序和终端程序。图2所示为iLink数据库示意图。

各模块的具体含义如下:

1)系统配置区存储基础数据及配置iLink规则的一类表,表名通常以T_CFG_开始,是iLink的核心数据;

2)待转发区发送数据临时表,即所有用户发送的数据都存储在这类表中等待转发,表名以T_MSG_ TEMP_开始;

3)待接收区数据被转发后存储的位置,用户可以直接在该类表中提取接收数据,表名以T_MSG_ QUEUE_或T_MSG_MAIN_开始;

4)历史消息区和日志区记录iLink中已被处理的数据及简要日志,用于历史查询;

5)转发机器人决定数据转发的目的用户,是iLink的核心应用;

6)用户终端程序完成数据上传数据库和从数据库取数据的功能,如iLink客户端。

图1中,iLink SDK是部署在用户客户端的一个基于Microsoft.Net 2.0的Winform程序,iLink SDK将自动把某个文件夹下的iLink消息文件或SITA报文(用户设定的)发送至目的地;iLink SDK同时能够自动将接收iLink消息放置在用户设定的文件夹下。iLink SDK有4个文件夹,分别为:OUT(监控发送文件路径)、BAK(备份文件路径)、IN(接收文件路径,包括正常接收的数据,以及针对发送数据反馈的回执)和ERR(错误文件路径)。对于设定的文件夹iLink SDK有完全的读写权限,同时,对于部署的机器iLink SDK也有读写应用程序事件日志的权限。

1.2 iLink地址和数据报文

1.2.1 iLink地址构造

iLink具有独特的地址设计体系,但同时也兼容AFTN和SITA报文地址。iLink自定义地址是由{A~Z,-,0~9}中的20个字符组成,如表1所示。

如P-CTUXH-ILINK0000000表示“成都机场货站”,CTU表示成都,XH表示机场,ILINK表示该用户为成都机场的货运系统。如果已经存在地址PCTUXH-ILINK0000000,而成都机场货站用户希望自

图2 iLink数据库示意图Fig.2 Schematic diagram of iLink-database

表1 iLink地址Tab.1 Address of iLink

己有两个账号实现不同功能(如一个收数据、一个发数据;或系统升级,新旧系统一起运行),则可分配新地址P-CTUXH-ILINK0000001。

1.2.2 iLink的数据报文

iLink设计为一个弹性支持系统,既能满足行业内传统数据交换方式需求,也能适应新标准、新技术的扩展需要,很方便地扩展其支持的数据。目前iLink支持转发的数据有:

1)符合SITA标准的Type B报文;

2)符合iLink规范的自定义的XML数据,有InfolinkXML格式和CargoXML格式两种;

3)CIMP格式的数据标准;

4)iLink支持的传输文件,文件类型包括Office Word、Excel文档、JPG图片等。

为了满足不同用户的特殊要求,iLink提供了报文格式转换功能,可以通过插件或调用服务对报文进行处理,以达到用户的要求。如用户1向用户2发送了一份格式为XML的报文,但用户2只能接收CIMP格式的报文,在这种情况下,iLink会自动调用XML转CIMP插件Cimp2CargoXml,将CIMP格式的报文自动转换为XML格式的报文。

2 iLink分发原理及算法

iLink转发的工作由iLink路由器来完成,实现数据从待转发区到待接收区的转移,待转发区是由多张临时表组成,每个iLink路由器针对一张临时表,不断轮询该表检查待处理数据。iLink采用消息队列接收报文,每个消息队列最大容量为50 000条记录,在高并发情况下,如果某条消息队列溢出,则将溢出的消息放入其余消息队列中。

2.1 iLink分发策略

iLink对外提供iLink客户端和WebService服务接口进行数据交换。下面介绍用户通过iLink客户端进行数据交换的过程。如果用户1向用户2发送一份报文,用户1首先将报文放到本地的发送目录,即OUT文件目录下,打开iLink客户端程序,iLink客户端会将报文发送至iLink系统中,iLink路由器自动解析该报文的目的地址,然后发送到用户2的本地接收目录,即IN文件目录下,如图3所示。

图3 报文流向图Fig.3 Message delivery route

在高并发情况下,如同一时刻,有大量的用户将报文放在其本地发送目录下,如果没有较好的分发算法和灵活的分发机制,会造成分发效率低,甚至导致系统瘫痪。在该系统中,采用基于动态优先级的先到先服务策略[8-12],算法的流程图如图4所示。

图4 iLink转发流程图Fig.4 Flowchart of iLink forwarding

该算法的关键是计算报文的权重。航空物流数据报文头中一般有源地址、目的地址、报文类型、优先级、ACK、发送时间和截止时间等。给每个属性规定一个权重,属性的权重有确定的,也有非确定性的,如报文中自带的“优先级”就是发送用户事先给定的,不同的状态报文具有不同的优先级。根据各属性的优先级,最终确定该报文的优先级,当发送失败后,则重置优先级,最后根据各属性的权重重新计算整个报文的优先级,此过程称为消息队列调度,如图5所示。用户将数据发送到iLink平台,由于数据量大,种类繁多,各种消息紧急程度也不同,所以路由转发的顺序不能仅依据先来先服务的转发策略。消息队列调度就是根据报文数据的优先级排序,排好序的报文数据放入待转发区2中等待转发机器人转发至需要的用户。

2.2 iLink智能路由机制

iLink为解决航空物流领域数据交换需求,针对行业标准报文建立完善的业务数据模型,通过路由引擎自动将报文路由至报文相关接收方。iLink系统中有3种路由机制,分别是智能路由、系统指定路由和发送方指定路由。智能路由,即自动路由,根据数据业务意义智能判断报文数据的接收方,通过对标准FFM、FWB、FHL、FSU报文进行业务数据分析,自动判断报文路由地址,实现数据相关方的业务数据共享;系统指定路由,即iLink系统硬性指定的目的地址,通过报文类型和发送方判断;发送方指定路由,发送者在发送数据时,指定该数据报文的接收方。后两者实现比较容易,下面重点介绍智能路由机制。

采用智能路由前,必须在系统配置中进行业务性路由配置。如舱单消息(FFM)自动路由根据表T_ CFG_FFM和T_CFG_FFM_TARGET配置,如表2所示。

图5 消息队列调度模型Fig.5 Message queue scheduling model

表2 FFM消息路由配置Tab.2 Routing configuration of FFM message

定义发送地址(SRC_ADDRESS)的权值为1;起始航站(ORIGINPORT)的权值为2;承运人(CARRIER)的权值为4;航班号(FLIGHTNO)的权值为8;目的航站1(DESTPORT1)的权值为16;目的航站2(DESTPORT2)的权值为32;到达航站(DESTFINAL)的权值为64。

路由器根据报文的发送地址、起始航站、承运人、航班号、中转站、到达航站来解析FFM报文内容,通过这些内容对T_CFG_FFM表进行完全匹配和部分匹配查询。在查询的结果中对比权值最高的结果,到T_ CFG_FFM_TARGET表查寻路由到的iLink地址。

FFM(舱单)配置如表2所示,FFM解析出的内容如下:

P-PEKXH-ILINK0000000|PEK|FM|FM9374|NULL| NULL|TNA

根据权值PRI排序返回结果编号RECID=3,然后在T_CFG_FFM_TARGET表中查找RECID=3所对应的iLink地址,从而实现智能路由。

3 验证实验

3.1 消息发送性能测试

实验环境为Windows 2003 Server,测试软件为EQATECProfiler。

场景1用客户端1、2分别做3次单客户端测试。在Windows 2003 Server下,运行EQATECProfiler发送报文,监测发送10 000条报文所需要时间,测试结果如图6(a)所示。

场景2用客户端3、4、5做3次多客户端测试。在Windows 2003 Server下,运行EQATECProfiler处理后的客户端发送报文,监测发送10 000条报文所需要时间,测试结果如图6(b)所示。

图6 单机消息发送性能测试Fig.6 Performance test of stand-alone messaging

CCSClient.workerSend_ProgressChanged方法用来显示异步任务进度,在上述5个客户端发送消息时,该方法耗时分析柱状图如图7所示。

根据以上场景可以看出:每发送1条数据,所耗时间在单客户端和并发情况下差别并不大,但是10000报文量时,CCSClient.workerSend_ProgressChanged方法会被调用40 000次,此时,该方法并发情况下(3个客户端)所耗时间比单客户端要增加80 s。

3.2 消息接收性能测试

本节实验是测试单客户端单独启动及并发启动后每秒处理数据的性能。前提条件是数据库T_MSG_QUEUE_TEST*各表有可读取的报文信息记录,通过实验适时记录完成接收10 000(或5 000)条报文记录的截止时间,每次实验至少取7个截止时间点。

场景1客户端1、2做单机消息接收测试,一次开启1个接收客户端从数据库读取报文数据,并生成本地文件,记录每秒处理条数,如图8(a)和图8(b)所示。

图7CCSClient.workerSend_ProgressChanged方法耗时分析Fig.7 Analysis of CCSClient.workerSend_ProgressChanged

图8 单机消息接收性能测试Fig.8 Performance test of single client’s message reception

场景2客户端3、4、5做多机测试,一次开启3个接收客户端从数据库的一张数据表并发读取报文数据,并生成本地文件,如图9所示。

各客户端处理性能汇总,如图10所示。从实验结果可以得出:无论在单机还是多机工作状态下,消息接收的性能都比较稳定,每秒处理4~6条记录。

3.3 iLink消息路由性能测试

测试工具:iLink消息路由测试系统,EQATEC测试软件。测试方法:利用EQATEC测试软件,监测路由运行过程中调用的方法和所用时间,提取路由报文的技术指标;建立模型,测试不同组合方式路由产生何种差异并判定其稳定性;记录消息路由过程中调用方法所占时间,分析影响路由性能的操作,以便讨论出更合理的方案提高路由性能。

实验中采用5个客户端,分别为客户端1~5;3个路由器,分别为路由器1、2、3。客户端1、2发送的报文临时存储,分别设定为T_MSG_TEMP_TEST1、T_MSG_ TEMP_TEST2,接收表为T_MSG_QUEUE_TEST1、T_MSG_QUEUE_TEST2;客户端3、4、5发送报文的临时存储为T_MSG_TEMP_TEST3,接收表为T_MSG_ QUEUE_TEST3。路由传递方向为:CIMP报文的5个测试端路由分别为客户端1→3,2→4,3→5,4→1,5→1;XML报文设置了FFM表中的客户端4—客户端1的路由。

场景1单个路由器运行时路由性能测试:用1000条CIMP报文和1 000条XML报文,分别有路由器1、路由器2和路由器3进行路由实验,利用EQATEC监测路由组件获取数据并画出柱状图,如图11所示。

场景2多个路由器同时运行时路由性能测试:用10 000条CIMP报文和10 000条XML报文分别做如下实验:单独路由、两两路由(如路由器1的两两路由表示路由器1和路由器2,路由器1和路由器3路由结果的平均值)、3个路由器同时路由。然后分别记录不同实验中各个路由器每秒处理报文的平均数。实验结果如图12所示。

图9 多机消息接收性能测试Fig.9 Performance test of multiple clients’message reception

图10 客户端消息接收性能对比Fig.10 Performance test of different systems’message reception

图11 路由器单独处理CIMP报文和XML报文Fig.11 Single router handle ICMP packets and XML messages

图12 多路由器同时处理CIMP报文和XML报文Fig.12 Multi-routers handle ICMP packets and XML messages

以上分析可得,路由器处理XML报文的时间远小于处理CIMP报文的时间,图12说明并发情况下,多个路由器同时工作并不影响系统性能。上述3方面实验说明该方法的可行性并具有较高的发送接收效率。

4 结语

本文研究设计航空物流数据共享平台(iLink),根据不同的客户平台需求,实现各种报文格式自动转换,同时也能根据报文内容智能判断接收方,智能路由分发到各参与者。实现航空物流信息在航空物流业务链中各参与方之间数据交换与共享。极大提高航空货运的业务处理效率和航空货运服务质量。

[1]栾笑天.航空物流产业发展研究[J].交通企业管理,2011(9):50-51.

[2]王仓卓.航空电子货运的信息挑战[J].互联网周刊,2010(15):58-60.

[3]梅立军,付小龙,刘启新,等.基于SOA的数据交换平台研究与实现[J].计算机工程与设计,2006,27(19):3601-3603,3627.

[4]贾宇清,张磊.新架构XML/EDI在民航电子数据交换的应用[J].微计算机信息,2010,26(16):233-235.

[5]王淑营.产业链协同商务平台动态数据交换技术[J].计算机集成制造系统,2010,16(6):1336-1343.

[6]徐精晶,沈羚茵,熊静,等.基于SOA的第四方航空物流信息平台架构分析[J].物流科技,2012(8):21-24.

[7]孔晓昀,王晓聪,陈正奎.海量跨域数据交换平台[J].计算机系统应用,2015,24(1):49-55.

[8]黄万伟,汪斌强,王保进,等.面向区分服务的可重构任务在线调度算法[J].计算机辅助设计与图形学学报,2010,22(4):717-723,728.

[9]危达,李建华,李曼,等.服务请求排队算法[J].计算机系统应用, 2009(8):50-53.

[10]丛龙水.动态优先级作业调度算法与实现[J].计算机工程与应用, 2013,49(10):267-270.

[11]KONG ZHISHENG,MA XIAOYUAN,XU ZHENGYI,et al.Real-time scheduling algorithm based on dynamic priority for multi-data transmission[J].International Journal of Computer Science Issues,2014,11(2): 78-83.

[12]SEOL Y I,KIM Y K.Applying dynamic priority scheduling scheme to static systems of pinwheel task model in power-aware scheduling[J]. The Scientific World Journal,2014,2014:1-9.

(责任编辑:党亚茹)

Research on intelligent data distribution model of aviation logistics

WANG Tiankai1,LUO Yunsheng2,DING Jianli2
(1.TravelSky Technology Limited of China,Beijing 100010,China;
2.College of Computer Science and Technology,CAUC,Tianjin 300300,China)

In the field of aviation logistics,in order to allocate mass data to interested information customer effectively,and implement information interaction and resource sharing,it is crucial to establish an industry-level data exchange platform for the operation of aviation logistics enterprise.Data exchange platform iLink for aviation logistics is researched and designed based on SOA.The data distribution method is based on dynamic priority of‘first come first serve’algorithm,which can realize automatical transmission converts among different message formats and intelligent distribution to participants according to the format and content of aviation logistics data packets. Experimental results show that the method has good performance in terms of sending and receiving data.

air logistics;data exchange;data packets;intelligent distribution;sharing platform

TP302

A

1674-5590(2017)01-0026-06

2016-05-02;

2016-09-01基金项目:中国民用航空局科技创新重大专项(MHRD20140106);中央高校基本科研业务费专项(3122014P004);国家科技支撑计划(2014BAJ04B02)

王天凯(1978—),男,吉林长春人,助理工程师,学士,研究方向为航空物流信息平台架构、应用系统和系统运维.

猜你喜欢

路由器报文路由
基于J1939 协议多包报文的时序研究及应用
买千兆路由器看接口参数
CTCS-2级报文数据管理需求分析和实现
浅析反驳类报文要点
探究路由与环路的问题
ATS与列车通信报文分析
你所不知道的WIFI路由器使用方法?
PRIME和G3-PLC路由机制对比
WSN中基于等高度路由的源位置隐私保护
eNSP在路由交换课程教学改革中的应用