于明亮,李永进
(中国民航信息股份有限公司研发中心,北京 100105)
本文提出了建设中国民航下一代TypeX报文系统的完整解决方案,为国内外的航空公司、机场和GDS提供TypeX报文服务,使中国民航IT系统间的信息交互标准化,消息的内容多样化,并全面支持民航IT系统的多媒体化。目前国内外民航业广泛使用的非实时消息采用的是IATA TypeB标准,该标准已经使用近30年,但是随着互联网的飞速发展以及各种计算机技术和通信技术的进步,使得TypeB报文标准的弊端不断暴露:报文长度受限,格式固定,无法为民航IT系统传递复杂的数据;无法支持民航业的多媒体化;报文无生命周期管理等,因此中国民航业亟需建设TypeX报文系统来解决上述问题。
航空业是信息化最早的行业之一,为了运营其全球性的网络、保持极高的营运安全以及实现IT系统的高度信息自动化,需要频繁地进行可靠的B2B通信。但在航空业诞生时,还没有全球统一的开放信息通讯标准,甚至连OSI模型都没有提出,因此,由IATA制定了民航业专有的存储转发消息标准——TypeB报文协议。该协议规定了TypeB报文的寻址、路由、格式等相关内容,满足了早期民航业的B2B通信需求。但随着互联网的迅速普及以及众多开放信息通信标准的涌现,航空业的专有标准也在从封闭走向开放,TypeB也面临着被开放报文协议TypeX取代的巨大挑战[1]。
文中涉及的主要专业术语意义如下:
IATA:国际航空运输协会(international air transport association)是一个由世界各国航空公司所组成的大型国际组织,负责统一国际航空运输规则等事务。
GDS:全球分销系统(global distribution system),是应用于民航运输及整个旅游业的大型计算机信息服务系统。
双签码:2位数字和字母的组合,代表第三方公司。当报文中出现双签码时,该报文产生的传输费用由双签码代表的公司支付。
PDM(possible duplicate message):TypeX 报文中用此属性标识重复报文。
最近十几年,航空业的业务种类以及业务量在爆发式增长,航空领域消费模式在快速变革,航空领域营销方式以及运营方式向多元化发展,在使用TypeB报文进行B2B通信时面临诸多挑战[2]:
1)报文长度受限、格式固定、内容扩展性差,无法表现复杂的数据,无法适应航空业越来越丰富的新应用以及快速变化的新需求;
2)报文不能携带多媒体信息,限制了报文的服务范围,无法帮助航空公司、机场的IT系统向多媒体化发展,无法为旅客带来更优质的服务体验;
3)报文无生命周期管理,报文传输发生故障时,难以追溯和恢复;
4)建立点对点通信时,需要双边协议以使两方应用兼容,降低了系统间交互的效率;
5)历史原因。报文大量使用私有网络或专用网络传输,带宽成本高;在TCP/IP网络上进行数据传输时,使用MATIP、BATAP等航空业专有协议,不利于与公共开放网络互连互通;
6)由于TypeB报文使用自由文本格式,客户端应用在使用TypeB报文时,对报文的分析是逐个比特进行的,并且处理逻辑大都采用硬编码,一旦发生数据结构变化或应用需求变更,都会耗费大量的开发成本和时间成本,且系统不易维护。
面对上述弊端,国内外机场、航空公司以及GDS在建设新一代计算机订座、旅客离港、机票分销系统以及空地通信、地面保障等最为重要的IT系统时采用基于开放标准的架构,并使用XML数据格式。随着互联网络的高速发展,基于开放标准的XML消息和web service通信架构早已成为目前B2B通信的主流解决方案。使用开放标准技术进行系统开发时,开发人员无需学习航空业专有协议,可使用多种编程语言、开发平台和自动化工具,能得到大量的IT组织和团体的支持,这都将大幅降低人力成本。由于XML自描述、结构化以及松耦合的特性,使应用的开发效率大大提高,同时降低了不同业务间整合的难度,也减少了应用维护成本。为了解决TypeB报文的问题,SITA和ARINC成立了TypeX工作组,将TypeB报文与XML等开放标准结合起来,起草了TypeX报文标准,得到了IATA的支持和认可。
建设TypeX报文系统的目的是解决目前TypeB报文系统面临的问题,最终完全替代TypeB报文系统[3]。
建设思路:
1)借鉴W3C相关标准以及参考IATA TypeX报文规范;
2)对国外已实现的TypeX报文系统的功能,从技术上提出具体的解决方案;
3)使用成熟的消息中间件以及主流的开发框架实现本系统;
4)联合国内外各大航空公司、机场以及GDS,对接相关应用,对TypeX报文系统进行功能、性能以及压力测试。
建设目标:
1)为国内外机场、航空公司以及GDS提供符合I ATA TypeX标准的报文服务;
2)使报文系统的接入标准化,报文系统接口的开发简单化,从而降低系统间数据传输的人力以及维护成本;
3)整合民航业内部信息系统,解决信息孤岛,实现系统间无缝信息交换。
TypeX报文除了具备TypeB报文的所有功能外,还可对报文进行回路检测、重复检测以及生命周期管理,TypeX报文使用W3C XML标准,使报文结构可扩展并能够携带所有类型的数据。TypeX报文结构如图1所示。
图1 TypeX报文结构Fig.1 TypeX message schema
图1中,TXM_Header是TypeX报文的消息头,包含报文发送方、报文接收方、消息体、系统间会话、系统间命令以及报文可靠性等详细信息。描述报文属性的信息包含在TXM_BodyHeader中,包括发报地址、目的地址、报文经过的节点信息、报文的双签码、报文的群组信息等30多项属性。
TXM_Body是报文的消息体,包括TXM_Payload、TXM_Faut、TXM_Report等属性。其中,TXM_Payload是报文携带的具体消息;TXM_Faut描述了当报文传输发生错误时,给发报方的相关错误信息;TXM_Report描述了当报文传输成功的时侯,给发报方发送的报告信息。
TXM_Attachment是报文的附件,可以是2进制的各种信息(音频、视频、文本、图片等),也可以是URI信息。
TypeX报文包含近200个属性,但很多属性是可选的,不同功能的报文,属性也不尽相同。
为了支持高并发以及高可用性,将TypeX报文系统设计成节点分布式,实现报文的点到点传输和端到端传输,并支持同步和异步的消息传输。TypeX数据在不同节点间传输的示意图如图2所示。
图2 TypeX报文通信Fig.2 TypeX message communication
每一个TypeX传输节点都需要实现一系列开放协议,分层展示如图3所示。
图3 TypeX报文节点Fig.3 TypeX message node
客户端应用:提供TypeX报文所需的关键信息,如报文的收发地址、内容等。
TypeX消息代理:此层是客户端应用和消息协议栈的适配器,根据客户端应用提供的信息,组装TypeX报文,并兼容TypeB报文标准。
应用间可靠性保障协议:可使用XATAP(TypeX application to application protocol)协议来保障TypeX报文的可靠性传输,也可利用持久化队列或数据库来实现。
会话管理:目标是监控、控制以及保持应用间的连接。可使用XSM协议或消息中间件实现。
消息协议层:定义消息传输模型。可以使用SOAP、JMS 等协议实现[4]。
数据传输层:负责消息的实际传输。符合TCP/IP标准的通信协议(HTTP、SMTP、FTP、MATIP 等)均可使用[5]。
TypeX系统中,除了完全兼容TypeB系统的各类地址以外,还要能够处理传真、电报、短信、URI等类型的地址,实现与其他通信系统的无缝对接。
TypeB系统中,报文无生命周期管理。在TypeX报文中,通过设置不同的参数,对报文的生命周期进行管理。如设置LifeTime参数(某个时间)后,一旦在此时间之前,报文还没有被送达,系统将自动产生一条报告,发送给报文最初发送方,通知此报文没有成功发送。设置ExpirationTime参数(某段时间),告知报文转发节点需要存储此条报文的时间。
TypeB系统中,如果报文发送3次失败,则不再继续发送。TypeX系统依靠XATAP协议,通过在报文中设置SerialNumber参数及XATAP Id来保证报文在不重复的前提下一直发送,直到接收方返回确认信息[6]。工作流程如图4所示。
图4 XATAP协议机制Fig.4 Interaction diagram of XATAP
由于标准设计的缺陷,TypeB系统有可能产生“回路报文”,如图5所示。
图5 回路报文Fig.5 Looping message
图5中,节点A为某应用转发一条报文,其判断节点B可将此报文转发至目的地,故将此报文转发给节点B处理,而节点B判断节点A有能力将此报文转发至目的地,又将此报文发回节点A。接下来,此条报文将在节点A、B之间来回转发,产生了一条“回路报文”。由于报文转发会产生费用,此类报文可能给报文转发方造成巨大的经济损失,而且同一条报文在两个系统间反复转发,会浪费大量的系统资源,甚至造成系统崩溃。
在TypeX系统中,通过设置NodeTrace参数避免“回路报文”的产生,如图6所示。
图6 回路报文检测Fig.6 Looping message detection
图6中,节点A在为某应用转发报文时,报文的NodeTrace记录NodeA,节点A判断节点B可将此报文转发至目的地,故将此报文转发给节点B处理,报文的NodeTrace记录NodeA、NodeB,节点B判断节点A有能力将此报文转发至目的地,又将此报文发回节点A。此时,节点A发现报文的NodeTrace中有NodeA的记录后,抛出此报文并报错,交给系统维护人员定期处理,避免了“回路报文”的产生。
当TypeB系统的转发节点无法将报文发送至目的地时,没有完善的机制通知发报方,解决办法往往是人工介入处理,不符合航空信息系统自动化处理的趋势。
在TypeX系统中,如果报文转发节点无法将报文发送至目的地,将给报文发送方自动回复无法转发报文的具体原因,并携带国际通用的错误码供发报方系统自动处理。
国内某大型机场货运部门,因业务需要,装卸货人员需要将货物的运单信息手工抄录至运单系统,运单系统将运单信息分析处理后,生成TypeB报文,供机场内部其他货运系统查询、备案以及IT系统间交互使用。但随着最近几年货运业务量的爆发式增长,上述工作耗费极大的人力,并且在人工抄录过程中极易出错。在系统改造过程中,利用高清相机将运单信息生成图片,数据由相应设备自动录入至运单系统,经过计算后,生成TypeX报文,最后利用TypeX报文系统,将携带图片信息的TypeX报文通过多种接口进行发布,不仅机场内部IT系统可以查询使用,相关外部人员也可安全高效的访问此数据。
此系统改造后,减少了近80%的运单信息录入人员,降低了机场的用工成本;有效避免了信息的错误录入,提高了系统的可靠性、准确性;丰富的数据接口以及灵活的发布方式也避免了信息孤岛的产生,提高了数据的使用效率。
某些国外海关出于安保考虑,要求入境的国际航班提供机组报以及旅客PNR报,并规定报文格式为XML。中国航信在为中国航空公司完成此需求时发现,目前广泛使用的TypeB报文由于长度受限以及报文格式等原因无法使用,最终采用TypeX报文为该国海关传输相关数据。首先从中国民航的主机旅客服务系统下载相应航班的机组报以及旅客PNR报,按照某国海关的要求,生成相应的XML数据,利用TypeX报文系统提供的web service接口,生成TypeX报文,放入某国海关的MQ队列中,供其身份识别系统使用。
此系统的投产,丰富了中国民航的数据传输方式,打通了中国民航业与国外海关的数据传输通道,是中国航空公司走向国际化的重要组成部分。
1)TypeX报文采用XML格式,存在冗余信息,传输时增加带宽消耗。但由于TypeX报文在因特网上可以使用数字签名和加密技术,数据传输可以从昂贵的专网转移至价格低廉的公共网络,因此可以增加公共网络的使用来降低带宽费用。
2)历史的计费模式需要进一步探讨,由于XML文件本身含有冗余信息,因此不再适合使用比特作为计费单位。
本文在借鉴IATA TypeX标准以及国外TypeX系统的基础上,通过研究国内外航空公司、机场对TypeX报文传输的实际需求,结合目前最新的软件技术以及架构,提出中国民航TypeX报文系统的解决方案,对TypeX报文系统的关键模块给出了详细的设计方案,并列举了目前已经投入服务的的领域,解决了目前TypeB报文系统存在的问题。通过阐述TypeX报文系统的优势,为航空公司、机场的新一代IT系统建设的设计提供思考的方向。
截至2012年底,中国的民航旅客运输量已位居世界第二,中国是民航大国,但不是民航强国。中国在全球民航业标准、规则的制定上参与很少,在航空联盟中也鲜有话语权,在IT系统建设上也仅限于解决实际生产需要,前瞻性技术研究的开展少之又少。TypeX作为TypeB报文的下一代标准,研究价值极高,其应用遍布民航旅客服务、营销、离港以及货运等重要领域,民航各IT系统提前布局TypeX报文的相关应用显得尤为重要。
[1]BELOBABA P,ODONI A,BARNHAR C.The Global Airline Industry[M].Boston:John Wiley & Sons Inc,2010.
[2]MANSOUR,REZAEI,MAZINANI.Air Transport & Travel Industry Type X Messaging Specifications[C]//Montreal:SITA Corporation,2009.
[3]董卫东.民航情报处理系统研究与开发[D].长春:吉林大学,2004.
[4]万 军.基于JMS和XML的数据交换模型设计与实现[D].苏州:苏州大学,2005.
[5]应光晖.民航有线通信中自动转报系统的应用[J].科技资讯,2012(7):16-17.
[6]武亚宁.XML安全技术及其应用探析[J].信息系统工程,2012(7):74-75.