APP下载

民航订座系统PNR容量扩容

2011-11-27王晓勃任利明

中国民航大学学报 2011年3期
关键词:首字母投产报文

王晓勃,任利明

(中国民航信息网络股份有限公司研发中心主机系统支持部,北京 100029)

近年来中国民航事业蓬勃发展,2009年中国民航旅客运输量达到2.3亿,2010年达到2.67亿。据民航局预测,2011年将突破3亿。民航订座系统作为重要的航空旅游产品分销系统,承担着民航事业高速发展的重任;迅猛增长的民航旅客给民航订座系统带来巨大的挑战。长久以来,中国民航订座系统使用5位记录编号来表示旅客信息,最多可支持1600万实时旅客订单信息[1]、2.8亿的年旅客量。这已不能满足2011年春运高峰期的实时旅客订单信息需求[1]及年旅客处理量的需求,更不能满足未来10年国内民航业的发展。

目前,国际各大GDS的PNR记录编号位数均为6位;并且在建立系统时,就已设计为6位。民航订座系统的记录编号扩容无国际经验可供参考。PNR旅客记录编号是订座系统中最底层、最基础的数据,涉及系统内绝大部分程序[2-3]和多个系统间核心交互[4-5]。PNR容量扩容工作涉及系统改造工作量巨大,周边系统众多;会对系统稳定运行产生极大的风险及对周边系统造成严重的影响。本文结合对民航订座系统的研究与PNR旅客记录编号的应用特点,提出了PNR容量扩容升位的改造方案。依据该方案,在中国民航订座系统上实现了PNR容量的扩容。

1 研究与方法

1.1 背景知识

PNR是旅客订座记录的缩写,是订座系统基本信息存储单元,记录了旅客乘机旅行的基本信息,包括团队、人数信息、旅客姓名、性别、身份信息、航程、票务、联系方式等。PN文件是存储PNR数据的物理存储文件,其一个存储单元对应着一个PNR。PNR记录编号是PNR的唯一识别标识。目前中国民航订座系统内使用5位PNR记录编号,5位PNR记录编号通过特殊算法和PN文件的存储单元索引值(PN record key)形成一一对应关系。单个PN文件可容纳16 M个存储单元,即1677万个PNR记录编号[2]。如图1所示。

1.2 底层转换算法

目前,在民航订座系统内,PNR记录编号与PN文件的record key一一对应,它们之间存在一个转换算法。PN文件的PN record key为36个bits。目前系统内,设计前11个bits均为0;后25个bits分为5组,每组5个bits;5个组合转换成5个数字或者字母。25个bits转换对应了系统目前所使用的5位记录编号,全部对应到一个PN物理文件上。

PNR容量扩容,在底层实现上,可通过使用大文件机制、增加PN物理存储文件来扩充记录编号容量。增加PNR记录编号位数,由现有5位升级至6位;设计新算法,用新增加的首字母来标识所占用的物理存储文件,将6位PNR记录编号对应到多个PN文件。

设计新的算法,用新增加的首字母与PN record key的第4~6个bit对应,来标识所占用的PN物理文件,如图2所示。使用1个固定的首字母,将系统现有5位记录编号对应在第1个PN大文件上。在合适的时机依次开启新的PN大文件,并依次使用新的首字母与之对应[6]。6位记录编号首字母使用如下规则,而启用程度由PN文件的用度决定。ICS依次使用M、N、P、Q、R、S、X、Y 共 8 个字符作为首字母;CRS 依次使用 H、J、K、L、B、C、G、Z 共 8 个字符作为首字母。

图2 PN record key格式Fig.2 Format of PN record key

理论上,使用这种方式可将PNR底层可用物理容量扩至现有的8倍。而要想实现PNR容量扩容以及PNR记录编号位数升级,需要对整个订座系统所有程序升级才可支持PNR记录编号位数的变化。

1.3 方案介绍

PNR扩容升位面临以下难题:①在开发工作量巨大的前提下,既要保障功能实现,更要保证系统运行安全;②由于涉及范围广,需将对周边系统的影响降到最低;③需考虑对外航扩容改造的全面支持。

针对以上问题,本文提出了由5位至6位平缓过渡的整体投产方案;在具体实施中,提出了采用参数控制不同阶段、全面配合周边系统的具体方案。

1.3.1 整体方案

为了降低影响,给外系统升级改造的缓冲,否决了将PNR记录编号一步升级到6位的“一刀切”方案;提出由5/6位并存到5位自然消亡全6位的过渡整体投产方案。同时,投产方案遵循“一个PNR在生存周期内,始终以一个PNR key展现”的基本原则。即:新生成的6位PNR按6位方式呈现,老PNR按5位方式呈现。整体投产方案的实施可分为3个阶段进行过渡,而在不同阶段,PNR编号具有不同的表现形式(显示格式),如图3所示。

图3 记录编号扩容步骤Fig.3 Steps of PNR expansion

1)系统改造阶段 改造系统支持5/6位并存。此时,订座系统内记录编号仍然只有5位记录编号PNR,不会新生成6位记录编号PNR。升级系统程序,使处理逻辑能够兼容5位、5/6位并存、全6位3个阶段。虽然尚没有出现真正的6位记录编号,但对于屏幕输出类,格式开始发生变化,位置将由目前占用5个字符变成占用6个字符;并以右对齐方式展现。此时,为了不影响系统性能,有一小部分指令输出为假的6位记录编号或以左对齐方式展现。而对于通用报文类(包括有外航/GDS的交互报文),依然采用左对齐方式。格式不会发生变化,也不会出现假6位。

2)开通6位功能阶段 开启6位开关。此时系统将开始生成新的6位记录编号PNR。随后,随着新的PNR生成,6位记录编号PNR将逐渐增多,5位逐渐减少。此时,订座系统内5/6位记录编号并存。

3)开通大文件功能 开启第2个大文件。等待5位自然消亡或在合适时间择机开通大文件功能,并开启第2个大文件,实现订座系统内全6位记录编号,系统内只存在6位记录编号PNR。在大文件依次开启时,PNR记录编号将依次使用新的首字母与之对应。

其中的每一步都具有里程碑的意义,分别标志着订座系统改造成功、6位记录编号功能实现、PNR容量扩容成功。第3步需在前2步基础上,做大文件的开通工作及相关的清尾工作。

1.3.2 控制开关

依据投产方案,首先需改造系统能够支持5/6位并存,即需修改程序处理逻辑。结合民航订座系统与PNR记录编号的应用特点,本文提出使用2个控制开关支持不同投产阶段的方案,使得程序中的处理逻辑只做一次修改,便可同时支持多个阶段。控制开关设计如下:

1)系统切换开关

为了降低程序上线与投产的风险,设计了系统切换开关。它是开始生成6位记录编号的开关,用来控制生成5位或6位PNR。当值为1时,新建PNR为5位;值为0时,新建PNR为6位。该参数初始值为1,表示现在的5位状态;在上述投产方案的第2步,设置其为0,生成6位PNR,系统内出现新的6位记录编号。由于参数的默认值为0,待5位自然消亡至全6位时,对该参数的使用也再不需修改。

配合系统切换开关,同时设计了PNR标志位来标识PNR记录编号位数。该参数由6位开关参数控制,用来表示本PNR记录编号的位数。它在PNR被初始分配时赋值。当6位开关参数为1时,新分配的PNR标志位为1,表示5位记录编号。值为0时,新分配的PNR标志位就为0,表示6位记录编号。程序中可以使用它判断PNR的位数,进而做下一步的处理。使用这个参数便可以改造系统程序兼容5/6位并存。

采用上述方案与设计的参数,使得对程序一次修改就可以支持所有阶段。减少了程序上线次数,降低了多次上线对系统安全运行所造成的风险;并可在很长时间内持续验证程序修改的正确性及安全性,保障了系统的稳定运行。

2)外航交互方案与开关

外航销售是航空公司及代理人收益的重要组成部分,在外航/国外GDS订座中,记录编号交互解析是一个核心的功能。在这方面,采用保守的改造方案,在6位开关开启前,不对外航/GDS之间的交互做任何改变。仍然保持相互之间全5位PNR记录编号,以及保持交互时的现有报文格式不变。在6位开关开启后,生成新的真正6位PNR记录编号后,与外航/GDS之间的交互报文中才出现6位PNR记录编号,以及出现6位的格式。这样的方案设计,为外部系统预留了足够长的时间进行改造、联合测试。同时,由于外航和GDS的改造进度不在自我的把控范围内,当有外航或GDS由于种种原因而不能按期投产,则民航订座系统与该外航或GDS的订座功能将会中断。因此,在技术手段上对此类外航进行支持。

同时,设计外航交互开关,控制对指定外航发送的PNR记录编号的位数,以防投产时外航系统不支持的情况。这些方案设计都极大地降低了系统升级带来的影响,可保障扩容升位工作顺利进行。

2 系统实现

本文将上述方案应用于中国民航订座系统,并实现了PNR容量扩容的成功。

PNR扩容工作有3个重要的里程碑:①完成程序修改上线,实现民航订座系统改造,此时系统可支持5/6位记录编号并存;②投产6位记录编号,此时开启6位开关,系统中产生真正的6位记录编号;③大文件功能开通,此时对PN文件开通大文件功能,开启第2个PN文件,系统内只存在全6位记录编号。另外,实际工作中,在进行第2步6位记录编号的正式投产前,对6位记录编号进行了预投产。预投产的成功保障了正式投产的顺利进行。

本节将从以上这些方面,简单介绍中国民航订座系统PNR容量扩容的系统实现情况。

2.1 系统改造

依据设计方案修改程序,程序修改完成上线后,系统改造基本完成。此时屏幕输出/报文中有一些变化。

对于屏幕输出类,格式发生变化:位置将由原来占用5个字符变成占用6个字符,并以右对齐方式展现。格式变化如图4所示。

图4 屏幕输出PNR格式变化Fig.4 PNR format change on screen output

对于通用报文类,依然采用左对齐方式。由于未开启6位开关,新报文与原来格式一致,如图5所示。

图5 报文中的PNR格式Fig.5 PNR format in message

2.2 预投产

由于6位记录编号涉及面广,为降低风险,保障系统安全,本文相关工作在正式投产前对6位功能进行了小规模的预投产。预先生成少量长度为6位的记录编号,以验证目前生产系统在6位记录编号生成的情况下能够正确的运行。

预投产工作选用了国内三大航的特定航班,针对国航、东航、南航进行了单一航班的预投产工作。2010年10月24~25日,在生产系统进行3个投产航班PNR记录编号升位的设置工作;2010年11月2日,预投产航班正常起飞。预投产工作期间,对相关航班的运行情况进行了监控,并监视跟踪每一个6位记录编号PNR的变化情况。同时,与53家外航和4家GDS测试,测试结果正确。在预投产航班生存周期内的订座、出票、离港等全系列过程中,系统运行平稳,用户操作正常,全部旅客信息处理正确。

2.3 开启6位开关

在系统改造完成后,第2个重要的里程碑就是开启6位开关,民航订座系统产生真正的6位PNR。第1个里程碑的成功实现后,经过一段时间的监控与准备过程,一定程度上保障了第2个里程碑的顺利实现,保障了6位记录编号的成功投产。开启6位开关后,由于系统内产生了真正6位PNR,屏幕输出/报文中的显示情况有一些新的变化。

对于屏幕输出类,与第1个里程碑时格式基本一致。区别是出现了真正的6位PNR,如图6所示。

图6 屏幕输出PNR格式Fig.6 PNR format on screen output

对于通用报文类,依然采用左对齐方式,由于出现了真正的6位记录编号,格式与第1个里程碑时有所不同。格式变化如图7所示。

图7 报文中的PNR格式Fig.7 PNR format in message

2.4 开通大文件功能

本文相关工作未等5位记录编号自然消亡,在合适时间,开通了大文件功能,并开启第2个大文件,实现订座系统内全6位记录编号,系统内只存在6位记录编号PNR。在大文件依次开启时,PNR记录编号将依次使用新的首字母与之对应。ICS依次使用M、N、P、Q、R、S、X、Y 共 8个字符作首字母;CRS依次使用 H、J、K、L、B、C、G、Z 共 8 个字符作首字母。

2.5 方案优势

使用该方案,研究组成功完成了中国民航订座系统PNR记录编号由5位到6位的升级工作。不仅实现了5位到6位的平缓过渡,而且最大程度地保障了系统的稳定运行,也将对周边系统的影响降到了最低。该方案具有以下优势:

1)实现了旅客订座数据库容量扩容 PNR记录编号由5位扩充至6位,启动大文件机制,解决了物理存储文件用度瓶颈,扩充了系统订座信息存储量,达到8×16 M(13416万个),保障了未来相当长时间内旅客量增长的需要,对航空公司航班正常销售、旅客正常出行具有重要的意义。

2)保障了系统运行稳定 采用渐进的扩容方案,以及可同时支持多个阶段的程序修改方案;减少了程序上线次数,并有足够长的时间持续验证安全性,降低了系统运行风险,满足了安全生产要求。

3)保障了周边系统平稳过渡 采用本方案极大地降低了对周边系统的影响,使其有足够长的时间改造升级,降低了全行业出现系统风险的概率。

4)对外航/GDS全面支持 采用本方案为外航与GDS预留了足够长的改造时间,以及使用参数预防控制措施,降低了系统升级对外航与GDS系统带来的影响,使其平缓过渡,保障了航空公司外航销售收益。

3 结语

本文对民航订座系统PNR容量扩容、PNR升位工作进行了研究,提出了5/6位平缓过渡系统改造方案,以及采用参数控制不同阶段、配合周边系统的具体实施方案。方案的实施可实现PNR容量扩容,且将风险影响降到了最低,保障了系统稳定运行;对周边系统的影响也极低,并考虑了对外航/GDS的全面支持。

目前,该方案已在中国民航订座系统进行了实施,不仅有效缓解了当前系统PNR容量将近饱和的情况,更将对系统的风险影响降到了最低,保障了安全生产的要求。它具有重要的研究价值,为以后的升位工作积累了宝贵的经验。

[1]中国航信运行中心.运行中心性能分析平台[EB/OL].[2010-11-10].http://172.17.23.163/1.asp?pagename=HVSTAT.

[2]Unisys Corporation.USAS Systems Control Operations Reference Manual[G].Blue Bell:Unisys Corporation,1997.

[3]Unisys Corporation.USAS Reservations(USAS RES)Database Programming Reference Manual[G].Blue Bell:Unisys Corporation,1997.

[4]IATA.Reservations Interline Message Procedures Passenger(AIRIMP)[G].33rd ed.Montreal-Geneva:IATA,2009.

[5]Unisys Corporation.USAS Message Switching(USAS MSG)Operations Reference Manual[G].Blue Bell:Unisys Corporation,1997.

[6]Unisys Corporation.ASCⅡFortran Programming Reference Manual-UP8244.4B[G].Blue Bell:Unisys Corporation,1991.

猜你喜欢

首字母投产报文
基于J1939 协议多包报文的时序研究及应用
350MW抽水蓄能机组投产发电
世界最大抽水蓄能电站正式投产发电
低轨星座短报文通信中的扩频信号二维快捕优化与实现
白鹤滩15号机组投产发电
CTCS-2级报文数据管理需求分析和实现
浅析反驳类报文要点
新目标英语八年级(上)Unit5 STEP BY STEP随堂通
新目标英语八年级(上)Unit4 STEP BY STEP随堂通
Unit 12 STEP BY STEP 随堂通