- 熱點文章
-
- 09-14關于高等職業院校弱電專業教改的探索
- 11-28東芝將在2009年CES帶來新水平的前沿技術
- 11-28互聯網:世界的鏡子
- 11-28中美文化論壇研討數字技術保護文化
- 11-28淺析“三鹿集團奶粉事件”危機根源
- 11-28新媒體的發展及其教育創新應用研究
- 11-28樓宇信息系統的現狀與應用以及發展趨勢
- 11-28中國2009世界郵展60城市巡郵漯河站啟動
- 11-28打造煥發生命活力的教育時空
- 11-28觀察中國管理教育30年
- 11-28駕馭論:科學發展的新智囊
- 11-28軟著陸將解讀中國管理國際化新走勢
- 11-28創建中國水電國際化強勢品牌
- 11-28管理科學進入新觀察時代
- 11-28全球化傳播語境下的家國建構
- 11-28網絡民主對公民社會建設的影響研究
- 11-28奧運后中國酒店業的發展分析
- 11-28國家創新系統下的大學科研管理研究
- 11-28高校數字圖書館建設及服務模式探討
- 11-28非均衡理論及我國房地產市場供求
- 11-28綠色、安全和通訊是汽車電子的未來
- 11-28敦煌莫高窟將為游客建"數字洞窟"
- 11-28思科新軟件平臺幫媒體公司建社交網絡
- 11-28蘋果喬布斯:用13年給IT業洗一次腦
- 11-28海外傳真:2008年數字印刷市場回顧
- 11-28東芝將在2009年CES帶來新水平的前沿技術
- 11-28互聯網:世界的鏡子
- 11-28中美文化論壇研討數字技術保護文化
- 11-28故宮國圖面臨“數字化”難題 缺乏專門人才
航空新分銷報文聚合方法研究與應用
2024-04-07 09:52:00 來源:優秀文章
摘要:全球航空業正在經歷著以航空新分銷能力建設為代表的技術變革,不同航空公司不同版本的NDC報文的聚合能力直接關系該變革是否能夠得以實施。本文提出一種通過自定義模板、報文拆分、報文分布轉換并組合的方式,實現面向NDC標準的大型XML報文的高效解析與聚合。實驗結果表明,在針對航空公司航班查詢典型場景的NDC報文響應中,提出的方法性能優于基于傳統XSLT的解析轉換方法,取得了很好的使用效果。
關鍵詞:航空新分銷;NDC標準;航空公司;消息聚合;XML轉換
中圖分類號:C94 文獻標識碼:B 文章編號:1671-2064(2023)21-0164-05
0引言
NDC(New Distribution Capability,新分銷能力)是近年來國際航空運輸協會(以下簡稱:國際航協)力推的新分銷標準,它打破了以往航空公司與合作伙伴間主要通過EDIFACT報文進行消息傳輸的方式,采用了一種基于XML的全新數據傳輸標準來加強信息交互能力。航空公司可借助NDC向合作伙伴提供豐富的信息、個性化的產品、完善的服務功能,進而為旅客創造價值,實現航空新零售轉型。目前,眾多行業相關方參與到NDC建設中,國際航協也在加速推進NDC的發展。
隨著NDC的發展,在NDC生態環境中,產生了NDC聚合商(Aggregator)這一重要角色。在沒有該角色之前,航空公司需要采用N對N的方式與下游分銷商(如代理人、在線旅游分銷商OTA、差旅服務商TMC、元搜索引擎等)建立基于NDC標準的銷售渠道,極大浪費了雙方的溝通和開發成本。針對這一問題,聚合商角色提供一個符合NDC標準的、基于開放系統的聚合及分銷平臺,將多家航空公司NDC內容進行聚合后,以統一形式分發給下游,為下游提供完整的銷售閉環,形成了N:1:N的連接模式,極大降低了航空公司和分銷商的溝通與開發成本,如圖1所示。NDC聚合商的存在對推動航空新零售的轉型和發展具有重要意義。
作為新零售鏈路上消息的傳遞者,NDC聚合商的航空公司接入能力和報文轉換性能是其建設水平的重要考核指標,如何將多航空公司不同版本的報文、不同業務流程以統一形式高效地提供給下游,一直是困擾NDC聚合商的主要問題。本文就NDC聚合器的報文轉換技術進行研究,結合實際應用,提出一種面向NDC的XML報文解析轉換方法,助力于構建高性能的NDC聚合平臺。
1航空公司NDC消息聚合難點
1.1國際航協NDC版本多且不斷升級
國際航協發布的NDC標準一直隨著使用者反饋不斷升級和調整,之前以每年4個版本向前推進,近幾年逐步縮減到一年發布兩個版本。升級調整主要包括兩方面:一是調整版本中接口的數量。早期由于既要向新零售轉型,又要兼顧原有傳統銷售的方式,為了保障航空公司從查詢、預訂、支付、出票到退改全銷售流程操作,發布的接口數量較多,以2016年版本為例,接口數量超過50個。而后通過逐步調整與功能合并,到18.2版本時接口數量銳減到40個。隨著對新零售認識逐漸清晰,又增強了訂單、支付相關功能,到21.3版本時,接口數量基本穩定在50個上下。二是不同版本中同樣名稱的接口,也會存在結構調整情況,例如將A節點整體從父節點B挪到父節點C上。所以對于聚合商來說,如果要向下游使用者輸出統一的標準接口,每接入一個NDC版本,就要對該版本中的接口向輸出的標準接口進行轉換,隨著聚合商接入版本增多,對轉換的效率與復雜度要求就越高。
1.2航空公司使用NDC版本不一致
如果航空公司A和航空公司B都將同樣的NDC版本提供給聚合商,也并不意味著聚合的工作量減半。即使同一個版本,各航空公司在使用上仍舊存在差異。首先,根據國際航協NDC標準,接口中可以存在自定義節點,可根據各航空公司業務情況靈活掌握。其次,接口只能做到相對結構化,而標準節點中放入的內容不能絕對結構化,這樣就會導致不同航空公司在同一個標準節點內放入的內容易讀性存在很大區別。對于聚合商來說,在進行消息處理時,既需要了解航空公司自定義節點內容,也需要對結構化數據中非結構化內容進行標準化處理。
1.3航空公司接入越多聚合難度越大
除了NDC版本多、不同航空公司使用同一版本但用法不一的情況外,聚合難度還體現接入航空公司數量上。目前,獲得國際航協NDC認證的航空公司近70家,設想如果一個旅客通過聚合商向70家航空公司發起查詢請求,聚合商需要將所有航空公司的返回結果在最短的時間內進行解析再聚合返回給旅客,對于系統的業務邏輯處理能力和處理速度都將是極大挑戰。如何將響應時間控制在用戶可接受范圍,也是考察聚合商能力的重要指標。
圖1 聚合商在NDC環境中的位置
2 NDC消息轉換理論基礎及現狀分析
NDC旨在通過定義一種基于XML的數據傳輸標準,以增強航空公司和分銷商之間的通信能力。因此,在NDC的應用及聚合器的構建過程中,XML文件的解析和轉換是實現數據交互和數據處理的關鍵步驟。XML解析是指將XML轉換為可操作的數據結構或對象模型,以便進一步處理和操作;XML轉換是指將XML從一種形式轉換為另一種形式,如將XML轉換為HTML、JSON、數據庫記錄或另一格式的XML等。XML解析及轉換工作已有多種成熟的技術,介于XML在信息處理系統中的使用的廣泛性,不同的XML解析及轉換技術也在不同場景中被廣泛使用。王海鳳提出了一種使用DOM技術實現關系數據庫到XPDL轉換的方法[1];李效東[2]及田斌[3]分別提出了基于DOM及基于SAX的網頁信息提取方法,可以用來從目標網頁中抽取關鍵信息用于后續存儲或使用;范書義提出了一種結合使用SAX和DOM的大型XML文檔處理方法,其中采用SAX對XML文檔進行讀取并轉化為DOM對象,然后使用SAX對XML內容進行解析,極大地改善了應用程序的性能[4];任鑫基于StAX實現了一種針對面向對象語言的XML解析庫,并構造了Java環境中的XML解析器,取得了較高的XML解析效率[5];周穎基于JDOM實現了一種針對異構數據庫的數據提取方法,可以將異構數據庫中的信息轉換為XML文檔進行輸出[6];周強基于DOM4J實現了一種XML頁面與XHTML頁面互相轉換的方法,實現了瀏覽器兼容[7];陳俊林基于XSLT實現了PDF論文元數據的優化提取,以便于對文獻進行歸類[8]。而隨著數字化進程的發展,在各種應用場景中需要處理的XML信息越來越復雜,更多的學者在各自的領域針對傳統的XML解析及轉換技術提出了改進,提出了不同的XML解析及轉換方法。F. Breitling提出了一種基于語義分析的XSLT轉換方式,在處理天文學數據的場景中,能高效地將XML文件轉換為RDF文件[9]。Ren′e Haberland設計并實現了Prolog轉換語言,它由XML讀寫操作、轉換運算符和預定義的遍歷順序組成,相比XSLT能夠更加簡潔地實現XML文件之間的轉換[10]。Igor L. Bratchikov等人提出了一個合適的XML文檔模型,定義了Prolog LTL的基本轉換語言,并展示了與XSLT相比的表達能力[11]。
相比已有的應用場景,NDC環境下的XML解析具有自身的特點:一是待處理的報文普遍較大,AirShopping(查詢接口)的報文通常含有大量的航班數據定義及報價信息,其報文通常以KB或MB為單位。二是待處理的報文從語義角度松散耦合,報文中的航班數據定義、報價信息、其他自定義信息等分屬于各自的根節點,信息之間如需關聯,通過節點的ID值進行引用。三是報文轉換難以一步到位,即在報文格式轉換操作后,不能立刻得到結果報文,而是需要在轉換后的報文初版基礎上,依據業務邏輯對部分的節點及節點的數據進行增加、刪除、修改等操作后,方可得到可以向用戶輸出的報文終版。四是需要轉換的報文版本多,存在多種不同格式的源XML需要轉換至同一種格式的目標XML。一方面聚合商作為NDC環境下報文處理鏈路中的核心環節,對于報文的處理具備上述所有特點;另一方面,聚合商作為WEB系統,也需要滿足WEB系統在處理性能方面的要求(從用戶體驗角度,通常認為系統響應時間在4秒以內,大部分用戶可以接受,超過10秒則90%以上的用戶選擇離開)。而從處理流程角度,聚合商在處理具體用戶的請求時,首先需要從用戶的請求的目標航空公司處分別獲取航空公司的響應后,再針對得到的航空公司響應XML報文進行轉換及聚合,在整個流程中存在航空公司處理響應耗時、網絡傳輸耗時、聚合商內部XML報文轉換及聚合耗時3個主要的耗時環節,其中航空公司處理響應耗時和網絡傳輸耗時不可控,因此如何縮減內部XML報文轉換耗時,高效處理大量復雜大報文的轉換和聚合是聚合商面對的技術難題。
3基于NDC標準的XML報文聚合方法
在面向NDC的XML報文轉換場景中,既需要同時對大量并發大報文進行快速處理,又需要靈活定義轉換規則,以滿足不同版本報文的轉換,還需要對報文進行高效的字段級讀寫以滿足數據填補的需求。通過對當前市面上存在的XML解析及轉換技術的分析可知,針對需要完全表示、隨機處理XML小型文檔的場景,適用DOM解析、JDOM解析或DOM4J解析;針對需要處理大型XML或對性能較高的場景,適用SAX解析、StAX解析或DOM4J解析;針對需要靈活定義轉換規則和操作的場景,適用XSLT轉換。其中,XSLT轉換能夠大致完成NDC場景下XML報文轉換的功能需求,但是在大流量下性能有限,直接應用不能滿足系統真實生產的性能要求。因此,針對沒有單獨的一種XML解析及轉換技術能夠直接滿足NDC場景下的XML報文轉換需求這一問題,提出了一種面向NDC的XML報文轉換方法。
3.1方法組成
面向NDC的XML報文轉換方法邏輯上由航空公司輸入、輸出組件、報文分片組件、模板轉換組件、報文聚合組件等構成,其中模板轉換組件內部又由分片解析策略組件、模板加載組件、模板翻譯組件組成。相關組件的構成圖如圖2所示。
圖2 面向NDC的XML報文轉換方法的組件構成
航空公司輸入、輸出組件主要從網絡層面承擔了系統與外部交互的工作,報文聚合組件用于將處理過的報文片段接合到一起,這幾個組件在報文轉換方法中的功能相對簡單,在此不做贅述,下文就方法中核心組件進行進一步詳述。
3.1.1報文分片組件
報文分片組件的作用是針對不同航空公司的不同接口選取不同的分片策略并執行分片。報文分片組件會分析不同接口的返回報文,將大報文拆分成多個小的片段,每個小的片段將被分發到不同的線程中解析,一般情況下節點相似的報文會被分發到一起。
3.1.2分片解析策略組件
分片解析策略組件用于判定最優的解析策略,通過對用戶調用的航空公司、接口、NDC版本號、報文大小,計算出一個權重值,并根據權重值判斷報文應采用的解析策略。當前可選的分片解析組件有3種。
(1)當前線程解析組件。針對節點較少的小報文,采用單線程的方式解析,防止線程上下文頻繁切換以節省系統的開銷。
(2)大任務分片解析策略。針對較大的報文,原報文會被拆分為多個較小的報文進行處理,針對每個小報文的處理會生成一個小任務,多個小任務一組并發執行,以提升大報文的解析速度。
(3)并行流式解析策略。在報文數據量較大的情況下,可以針對整個報文通過并行流的方式開啟多個線程來同時執行處理,每個線程執行一個片段的報文解析。
3.1.3模板加載組件與模板翻譯組件
考慮到基于NDC的XML報文轉換的復雜性,在轉換的核心組件,優先選擇XSLT解析,應用其轉換規則靈活及自定義輸出模板的特點滿足功能需求。其次,針對XSLT解析在處理大型XML文檔時性能較低的問題,一方面,采用業界成熟的XSLT轉換工具,例如Saxon;另一方面,在XSLT工具上進行自定義轉換函數的定制來實現針對個別節點及節點值的增加、刪除、修改等操作,以達到提升整體轉換效率的效果。模板加載組件針對不同航空公司的不同接口,加載相應的報文轉換模板,模板翻譯組件會基于加載的模板及相關的自定義函數,實現XML報文的翻譯。
3.2實現原理
3.2.1系統初始化流程
面向NDC的XML報文轉換方法的系統初始化流程如下。
(1)初始化模板加載組件和模板翻譯組件。系統中每個航空公司的配置都定義為一個模板翻譯組件,系統會在啟動的時候加載各個航空公司的配置,把不同航空公司、不同版本的模板翻譯組件進行裝載。例如,將某航空公司NDC172版本的模板翻譯組件裝載到系統輸出的NDC182組件中,從而獲取172版本到182版本雙向轉換所需要的配置信息。同時系統加載每個航空公司的各個接口對應的XSLT模板。
(2)初始化報文分片組件。系統啟動時加載報文分片組件,報文分片組件會接入航空公司組件對較大的報文實施分片,把一個大的報文拆分成包含多個節點的小報文。
(3)初始化分片解析策略組件。系統啟動時,會根據初始化好的航空公司組件生成對應的分片解析策略組件,每個航空公司的分片解析策略組件不盡相同。分片解析策略組件的生成主要依賴報文的航空公司、接口、NDC版本號、報文大小,系統首先會根據這些條件生成默認的權重值。例如,AirShopping接口默認的權重值為5,OfficePrice接口權重值為3等;報文>5M時默認的權重值為50,2M≤報文<5M默認的權重值為20,報文<2M時默認的權重值為5等。當接收到一個報文時,系統會計算出一個總的權重值。當值≤20時執行當前線程解析策略,20<值≤100時執行并行流式解析策略,值大>100時執行大任務分片解析策略。
(4)初始化報文聚合組件。報文聚合組件會將待輸出的報文片段整合成一個完整的報文對外輸出。
(5)完成模板轉換組件組裝。當初始化完以上組件,系統就會自動收集這些組件為每個航空公司的模板轉換組件。用戶在調用接口時,系統會判斷使用哪個模板轉換組件來轉換報文。
4.2.2系統運行案例
為了說明方案的運行流程,下文以基于美國航空(簡稱AA)的AirShopping接口的轉換過程為例進行說明。系統運行時的整體流程如圖3所示。
圖3 系統運行時的整體流程
(1)獲取模板轉換組件
系統獲取用戶請求的XML報文,根據<MessageDoc> <Name>AA</Name></MessageDoc>節點、HTTP請求頭里面的agg-ndc-method參數、agg-ndc-version參數判斷屬于AA航空公司182版本的AirShopping接口,然后從系統內存中獲取對應的模板轉換組件,判斷該組件是否“存活”,若“存活”則取出對應的轉換模板待用,如果該組件“死亡”則直接返回用戶接口異常。
(2)計算報文分片
在得到航空公司輸入報文后,報文分片組件會將XML報文分成多個小的片段。這里AA航空公司的AirShopping報文會被拆分成DataList、OffersGroup、AugmentationPoint、Utils 4個片段,然后系統會啟動4個線程去并行解析這4個小的片段。
(3)獲取分片解析策略
根據AA航空公司組件可以拿到其分片解析策略,該分片解析策略組件會自動計算出AirShopping接口報文解析的一個權重值:AA航空公司的182版本AirShopping接口配置的接口權重為5;DataList、OffersGroup片段報文>5M得到50的權重,AugmentationPoint片段報文<2M得到5的權重,2M<Utils片段報文<5M得到20的權重;DataList、OffersGroup片段報文的節點數在5000以上得到45的權重,AugmentationPoint片段報文的節點數在10以下又得到2的權重,Utils片段報文的節點數在100以上1000以下得到20的權重。然后判斷該XML是OWD模式又得到5的權重。最后通過計算得到DataList、OffersGroup片段的權重在105,根據分片解析策略判斷該片段報文應采用大任務分片解析策略;AugmentationPoint片段的權重在17,根據分片解析策略判斷該片段報文應采用當前線程解析策略;Utils片段的權重在50,根據分片解析策略判斷該片段報文應采用并行流式解析策略。
(4)解析轉換報文
第一步執行模板翻譯,模板翻譯組件會使用預定義的模板將每個片段整體轉換為目標格式的XML片段框架。第二步執行自定義函數,DataList、OffersGroup片段采用大任務分片解析策略時,系統會計算需要執行的自定義函數數量,將自定義函數拆分成20個一組,每組函數啟動4個線程去并發執行解析轉換,每組函數執行完成之后就會把結果放入系統緩存中,然后繼續執行下一組函數;AugmentationPoint片段采用當前線程策略,系統會啟動一個線程去執行解析轉換,解析結果同樣放入系統緩存中;Utils片段采用并行流式解析策略,系統會把需要執行的函數全部放入一個隊列中,然后啟動5個線程,每個線程從隊列中獲取一個自定義函數并發執行解析,解析結果同樣放入系統緩存中。
(5)返回統一版本的NDC報文
最后報文聚合組件從緩存中獲取報文的所有轉換結果片段,整合成一個符合NDC182版本的報文并對用戶輸出。
圖4 本文提出的XML解析轉換方法與Xalan的對比
4效果與結果數據分析
為了比對本文提出的方法與其他方法的差異,選擇了一種成熟的XSLT解析技術Xalan作為對照。選擇一家典型的支持NDC的航空公司——大洋洲航空(QF),對真實機票銷售中的16種場景的查詢接口的報文,分別采用Xalan與本文提出的面向NDC的XML報文轉換方法進行解析與轉換,并比對兩者的轉換時間,結果如圖4所示。
圖4橫坐標為測試的具體場景,主坐標(左)含義為被轉換的報文大小(KB),副坐標(右)為方法轉換耗時(ms),為了便于觀察,將不同場景的報文平均大小從小到大進行了排序。從圖4可以看出,報文轉換耗時與報文大小基本呈正比,在絕大多數場景中,本文提出的轉換方式所需的轉換時間遠遠小于Xalan方式,在測試的16個場景中,轉換時間平均降低了40.4%。只有在單程單成人這種最簡單的場景中,本文提出的轉換方式耗時比Xalan方式增加了56%,這是由于在處理最簡單報文的場景中,馬上執行轉換的效率比對報文進行一系列分析、拆分、方案選擇后再進行拆分要高。注意到在場景11之前,當報文大小不超過1MB時,本文提出的轉換方法與Xalan方法相差不大,轉換時間平均降低30.9%;而當報文大小超過1MB時,本文方法與Xalan方法明顯拉開差距,轉換時間平均降低61.3%;當報文大小超過2MB時,Xalan方法的處理時間明顯有所發散,從場景15到場景16,雖然報文大小只增長了29.1%,但是處理時間增長了159.9%,而本文方法處理時間增長了80.1%,可見本文方法收斂性更強,針對大報文具有更好的性能。
5結語
新零售是航空公司銷售和分銷的最新發展趨勢,也是近年來最大的行業顛覆之一,它使得航空公司能夠以全新方式為消費者提供全新產品,而國際航協NDC標準是航空公司新零售轉型的重要載體。作為聚合商,提升NDC消息聚合處理能力,可以有效減少上下游溝通和開發成本,對推動航空新零售的發展起到積極意義。為了提升NDC聚合器針對XML報文的聚合效率,本文提出了一種面向NDC的XML報文轉換方法。不同于傳統技術的XML報文轉換方式,本文方法從構建模板轉換組件入手,通過對大報文進行分片,對分片報文采用不同的方式進行解析轉換,將轉換后的報文片段進行整合輸出的方式,大大提升了對于NDC環境下XML報文進行解析轉換的效率,進而提高了NDC對多航空公司報文的聚合能力。
此外,本文提出的XML解析轉換方法不局限于民航領域,也可以適用于其他任何需要對大規模XML報文解析及轉換的場景,具有較高的現實指導意義。
參考文獻
[1] 王海鳳,薩智海.DOM技術在數據轉換中的應用[J].內蒙古工業大學學報(自然科學版),2008,27(4):270-274.
[2] 李效東,顧毓清.基于DOM的Web信息提取[J].計算機學報, 2002,25(5):8.
[3] 田斌,孫霞.基于SAX的XML文檔解析和存儲技術應用[J].微機發展,2005,15(3):4.
[4] 范書義,李巖,孟晨.XML文件解析中SAX和DOM的結合應用[J].微型電腦應用, 2011(12):42-44.
[5] 任鑫,曹冬磊,金蓓弘.支持StAX的高效XML解析器的設計與實現[J].計算機科學,2006,33(6):5.
[6] 周穎,王義發.用JDOM和XML實現異構數據庫的數據提取[J].計算機技術與發展, 2006, 16(11):4.
[7] 周強,李宇,許雁冬.基于dom4j轉換XML為XHTML頁面的方法[J].計算機技術與發展,2010,20(1):43-45,49.
[8] 陳俊林,張文德.基于XSLT的PDF論文元數據的優化抽取[J].現代圖書情報技術,2007,(2):18-23.
[9] Breitling F.A standard transformation from XML to RDF via XSLT[J].Astronomische Nachrichten,2010,330(7):755-760.
[10] Haberland,René,Bratchikov I L.Transformation of XML-documents with Prolog[J].2019.
[11] Haberland,René.Using Prolog for Transforming XML-Documents[J].2019.
Research and Application on Message Aggregation Method of Airline New Distribution
SUN Dongming,XIE Jia,LIU Kai,YANG Chao
(Travelsky Technology Limited, Beijing 101318)
Abstract:The global aviation industry is undergoing technological changes represented by the development of a new distribution capability (NDC), and the ability to aggregate different versions of NDC messages directly relates to the success of this transformation. This paper proposes a method that involves custom templates, message splitting, distribution transformation, and aggregation to efficiently parse and aggregate large XML messages compliant with the NDC standard. Experimental results indicate that the proposed method outperforms traditional XSLT-based parsing and transformation methods in terms of NDC message response for typical airline flight query scenarios, achieving excellent performance.
Key words:new distribution capability;NDC standard;airline company;message aggregation;XML transformation
上一篇:某機載交換機散熱設計與分析*