王天凱,羅云生,丁建立
(1.中國民航信息網(wǎng)絡股份有限公司,北京100010;2.中國民航大學計算機科學與技術學院,天津300300)
航空物流數(shù)據(jù)智能分發(fā)模型研究
王天凱1,羅云生2,丁建立2
(1.中國民航信息網(wǎng)絡股份有限公司,北京100010;2.中國民航大學計算機科學與技術學院,天津300300)
在航空物流領域,為了高效地將海量數(shù)據(jù)發(fā)送給感興趣的信息消費者,實現(xiàn)貨物全流程信息交互與資源共享,建設行業(yè)級數(shù)據(jù)交換平臺,對航空物流企業(yè)的運營至關重要。本研究基于面向服務架構(SOA,serviceoriented architecture)研究設計航空物流數(shù)據(jù)共享平臺iLink,數(shù)據(jù)分發(fā)基于動態(tài)優(yōu)先級的先到先服務算法,根據(jù)航空物流數(shù)據(jù)報文的格式和內(nèi)容,實現(xiàn)傳輸過程中將不同消息格式自動轉(zhuǎn)換并智能分發(fā)到參與者,滿足不同終端系統(tǒng)的訪問需求。實驗表明,該研究方法在數(shù)據(jù)發(fā)送和接收方面具有良好的性能。
航空物流;數(shù)據(jù)交換;數(shù)據(jù)報文;智能分發(fā);共享平臺
隨著航空物流業(yè)的不斷發(fā)展,近年中國民航航空運輸業(yè)有較大發(fā)展,貨運總周轉(zhuǎn)量年增長率達4.7%,2012年總周轉(zhuǎn)量達632億噸,貨郵運輸量達578萬噸。但航空運輸業(yè)與其作為國家經(jīng)濟安全和國民經(jīng)濟命脈的戰(zhàn)略產(chǎn)業(yè)地位不相匹配,主要表現(xiàn)在市場占有率低、航空運力不足、信息孤島現(xiàn)象嚴重、缺乏統(tǒng)一信息標準、信息共享程度低、貨單分離和缺乏技術協(xié)同等,使得航空物流資源難以得到高效和優(yōu)化配置[1-2]。
2006年,梅立軍等[3]提出了“代理+服務器”松散耦合模式的數(shù)據(jù)交換平臺系統(tǒng),利用消息服務解決數(shù)據(jù)交換過程中復雜的控制信息交互,該系統(tǒng)實現(xiàn)過程中借鑒了SOA體系架構的思想;2008年,賈宇清等[4]針對電子交換系統(tǒng)提出了基于開放平臺的新架構XML/ EDI系統(tǒng),建立了與XML相結合的EDI系統(tǒng)模型;2010年,王淑營[5]提出了面向產(chǎn)業(yè)鏈協(xié)同商務平臺的動態(tài)數(shù)據(jù)交換解決方案,設計和實現(xiàn)了平臺端和客戶端數(shù)據(jù)交換適配器,實現(xiàn)了用戶身份和交換業(yè)務關鍵字驅(qū)動的動態(tài)數(shù)據(jù)交換。為了實現(xiàn)航空物流領域全流程用戶的航空貨運數(shù)據(jù)交換與共享,本文采用面向服務架構[6],通過企業(yè)服務總線(ESB,enterprise service bus)技術研究適合于中國航空物流運輸?shù)年P鍵技術,為全行業(yè)的物流參與者提供全流程的一站式解決方案。實現(xiàn)與貨主、貨代、貨站、政府部門、海關、銀行等的電子網(wǎng)絡連接和信息交換,通過實現(xiàn)公司整體的網(wǎng)絡化、信息化來實施業(yè)務運作[7]。
航空物流數(shù)據(jù)交換平臺(iLink)是航空電子貨單信息平臺的基礎平臺之一,通過建立安全、高效、穩(wěn)定的數(shù)據(jù)傳輸通道,實現(xiàn)航空物流參與者之間的數(shù)據(jù)交換。iLink能夠為物流參與者,包括航空公司、收發(fā)貨代理人、機場貨站提供符合行業(yè)規(guī)范的報文交互、數(shù)據(jù)智能路由及格式轉(zhuǎn)換,實現(xiàn)單點接入、多點對接,為客戶提供一站式的數(shù)據(jù)傳輸交換服務。
1.1 iLink系統(tǒng)架構
iLink數(shù)據(jù)交換平臺基于Windows的Microsoft.Net Framework平臺;支持跨平臺技術的接口包括iLink SDK、Web Service和MQ等,可以被其他操作系統(tǒng)平臺的應用所調(diào)用;數(shù)據(jù)庫基于Oracle的消息落地存儲模式,實現(xiàn)“接收—路由—分發(fā)”,層層落地的模式以保證端對端的傳輸。報文數(shù)據(jù)在iLink中將一直存在,直到其被正確、完整地傳輸?shù)侥康南到y(tǒng),端端通信都采用不同RSA1024 Key、AES加密,因此,在任何網(wǎng)絡環(huán)境下數(shù)據(jù)都將被安全傳輸。圖1為航空物流數(shù)據(jù)交換平臺(iLink)的技術架構圖。
圖1 iLink技術架構圖Fig.1 Technology architecture of iLink
iLink的數(shù)據(jù)庫設計為若干個區(qū)域,每個區(qū)域由一張或多張表構成。應用分為中心轉(zhuǎn)發(fā)程序和終端程序。圖2所示為iLink數(shù)據(jù)庫示意圖。
各模塊的具體含義如下:
1)系統(tǒng)配置區(qū)存儲基礎數(shù)據(jù)及配置iLink規(guī)則的一類表,表名通常以T_CFG_開始,是iLink的核心數(shù)據(jù);
2)待轉(zhuǎn)發(fā)區(qū)發(fā)送數(shù)據(jù)臨時表,即所有用戶發(fā)送的數(shù)據(jù)都存儲在這類表中等待轉(zhuǎn)發(fā),表名以T_MSG_ TEMP_開始;
3)待接收區(qū)數(shù)據(jù)被轉(zhuǎn)發(fā)后存儲的位置,用戶可以直接在該類表中提取接收數(shù)據(jù),表名以T_MSG_ QUEUE_或T_MSG_MAIN_開始;
4)歷史消息區(qū)和日志區(qū)記錄iLink中已被處理的數(shù)據(jù)及簡要日志,用于歷史查詢;
5)轉(zhuǎn)發(fā)機器人決定數(shù)據(jù)轉(zhuǎn)發(fā)的目的用戶,是iLink的核心應用;
6)用戶終端程序完成數(shù)據(jù)上傳數(shù)據(jù)庫和從數(shù)據(jù)庫取數(shù)據(jù)的功能,如iLink客戶端。
圖1中,iLink SDK是部署在用戶客戶端的一個基于Microsoft.Net 2.0的Winform程序,iLink SDK將自動把某個文件夾下的iLink消息文件或SITA報文(用戶設定的)發(fā)送至目的地;iLink SDK同時能夠自動將接收iLink消息放置在用戶設定的文件夾下。iLink SDK有4個文件夾,分別為:OUT(監(jiān)控發(fā)送文件路徑)、BAK(備份文件路徑)、IN(接收文件路徑,包括正常接收的數(shù)據(jù),以及針對發(fā)送數(shù)據(jù)反饋的回執(zhí))和ERR(錯誤文件路徑)。對于設定的文件夾iLink SDK有完全的讀寫權限,同時,對于部署的機器iLink SDK也有讀寫應用程序事件日志的權限。
1.2 iLink地址和數(shù)據(jù)報文
1.2.1 iLink地址構造
iLink具有獨特的地址設計體系,但同時也兼容AFTN和SITA報文地址。iLink自定義地址是由{A~Z,-,0~9}中的20個字符組成,如表1所示。
如P-CTUXH-ILINK0000000表示“成都機場貨站”,CTU表示成都,XH表示機場,ILINK表示該用戶為成都機場的貨運系統(tǒng)。如果已經(jīng)存在地址PCTUXH-ILINK0000000,而成都機場貨站用戶希望自
圖2 iLink數(shù)據(jù)庫示意圖Fig.2 Schematic diagram of iLink-database
表1 iLink地址Tab.1 Address of iLink
己有兩個賬號實現(xiàn)不同功能(如一個收數(shù)據(jù)、一個發(fā)數(shù)據(jù);或系統(tǒng)升級,新舊系統(tǒng)一起運行),則可分配新地址P-CTUXH-ILINK0000001。
1.2.2 iLink的數(shù)據(jù)報文
iLink設計為一個彈性支持系統(tǒng),既能滿足行業(yè)內(nèi)傳統(tǒng)數(shù)據(jù)交換方式需求,也能適應新標準、新技術的擴展需要,很方便地擴展其支持的數(shù)據(jù)。目前iLink支持轉(zhuǎn)發(fā)的數(shù)據(jù)有:
1)符合SITA標準的Type B報文;
2)符合iLink規(guī)范的自定義的XML數(shù)據(jù),有InfolinkXML格式和CargoXML格式兩種;
3)CIMP格式的數(shù)據(jù)標準;
4)iLink支持的傳輸文件,文件類型包括Office Word、Excel文檔、JPG圖片等。
為了滿足不同用戶的特殊要求,iLink提供了報文格式轉(zhuǎn)換功能,可以通過插件或調(diào)用服務對報文進行處理,以達到用戶的要求。如用戶1向用戶2發(fā)送了一份格式為XML的報文,但用戶2只能接收CIMP格式的報文,在這種情況下,iLink會自動調(diào)用XML轉(zhuǎn)CIMP插件Cimp2CargoXml,將CIMP格式的報文自動轉(zhuǎn)換為XML格式的報文。
iLink轉(zhuǎn)發(fā)的工作由iLink路由器來完成,實現(xiàn)數(shù)據(jù)從待轉(zhuǎn)發(fā)區(qū)到待接收區(qū)的轉(zhuǎn)移,待轉(zhuǎn)發(fā)區(qū)是由多張臨時表組成,每個iLink路由器針對一張臨時表,不斷輪詢該表檢查待處理數(shù)據(jù)。iLink采用消息隊列接收報文,每個消息隊列最大容量為50 000條記錄,在高并發(fā)情況下,如果某條消息隊列溢出,則將溢出的消息放入其余消息隊列中。
2.1 iLink分發(fā)策略
iLink對外提供iLink客戶端和WebService服務接口進行數(shù)據(jù)交換。下面介紹用戶通過iLink客戶端進行數(shù)據(jù)交換的過程。如果用戶1向用戶2發(fā)送一份報文,用戶1首先將報文放到本地的發(fā)送目錄,即OUT文件目錄下,打開iLink客戶端程序,iLink客戶端會將報文發(fā)送至iLink系統(tǒng)中,iLink路由器自動解析該報文的目的地址,然后發(fā)送到用戶2的本地接收目錄,即IN文件目錄下,如圖3所示。
圖3 報文流向圖Fig.3 Message delivery route
在高并發(fā)情況下,如同一時刻,有大量的用戶將報文放在其本地發(fā)送目錄下,如果沒有較好的分發(fā)算法和靈活的分發(fā)機制,會造成分發(fā)效率低,甚至導致系統(tǒng)癱瘓。在該系統(tǒng)中,采用基于動態(tài)優(yōu)先級的先到先服務策略[8-12],算法的流程圖如圖4所示。
圖4 iLink轉(zhuǎn)發(fā)流程圖Fig.4 Flowchart of iLink forwarding
該算法的關鍵是計算報文的權重。航空物流數(shù)據(jù)報文頭中一般有源地址、目的地址、報文類型、優(yōu)先級、ACK、發(fā)送時間和截止時間等。給每個屬性規(guī)定一個權重,屬性的權重有確定的,也有非確定性的,如報文中自帶的“優(yōu)先級”就是發(fā)送用戶事先給定的,不同的狀態(tài)報文具有不同的優(yōu)先級。根據(jù)各屬性的優(yōu)先級,最終確定該報文的優(yōu)先級,當發(fā)送失敗后,則重置優(yōu)先級,最后根據(jù)各屬性的權重重新計算整個報文的優(yōu)先級,此過程稱為消息隊列調(diào)度,如圖5所示。用戶將數(shù)據(jù)發(fā)送到iLink平臺,由于數(shù)據(jù)量大,種類繁多,各種消息緊急程度也不同,所以路由轉(zhuǎn)發(fā)的順序不能僅依據(jù)先來先服務的轉(zhuǎn)發(fā)策略。消息隊列調(diào)度就是根據(jù)報文數(shù)據(jù)的優(yōu)先級排序,排好序的報文數(shù)據(jù)放入待轉(zhuǎn)發(fā)區(qū)2中等待轉(zhuǎn)發(fā)機器人轉(zhuǎn)發(fā)至需要的用戶。
2.2 iLink智能路由機制
iLink為解決航空物流領域數(shù)據(jù)交換需求,針對行業(yè)標準報文建立完善的業(yè)務數(shù)據(jù)模型,通過路由引擎自動將報文路由至報文相關接收方。iLink系統(tǒng)中有3種路由機制,分別是智能路由、系統(tǒng)指定路由和發(fā)送方指定路由。智能路由,即自動路由,根據(jù)數(shù)據(jù)業(yè)務意義智能判斷報文數(shù)據(jù)的接收方,通過對標準FFM、FWB、FHL、FSU報文進行業(yè)務數(shù)據(jù)分析,自動判斷報文路由地址,實現(xiàn)數(shù)據(jù)相關方的業(yè)務數(shù)據(jù)共享;系統(tǒng)指定路由,即iLink系統(tǒng)硬性指定的目的地址,通過報文類型和發(fā)送方判斷;發(fā)送方指定路由,發(fā)送者在發(fā)送數(shù)據(jù)時,指定該數(shù)據(jù)報文的接收方。后兩者實現(xiàn)比較容易,下面重點介紹智能路由機制。
采用智能路由前,必須在系統(tǒng)配置中進行業(yè)務性路由配置。如艙單消息(FFM)自動路由根據(jù)表T_ CFG_FFM和T_CFG_FFM_TARGET配置,如表2所示。
圖5 消息隊列調(diào)度模型Fig.5 Message queue scheduling model
表2 FFM消息路由配置Tab.2 Routing configuration of FFM message
定義發(fā)送地址(SRC_ADDRESS)的權值為1;起始航站(ORIGINPORT)的權值為2;承運人(CARRIER)的權值為4;航班號(FLIGHTNO)的權值為8;目的航站1(DESTPORT1)的權值為16;目的航站2(DESTPORT2)的權值為32;到達航站(DESTFINAL)的權值為64。
路由器根據(jù)報文的發(fā)送地址、起始航站、承運人、航班號、中轉(zhuǎn)站、到達航站來解析FFM報文內(nèi)容,通過這些內(nèi)容對T_CFG_FFM表進行完全匹配和部分匹配查詢。在查詢的結果中對比權值最高的結果,到T_ CFG_FFM_TARGET表查尋路由到的iLink地址。
FFM(艙單)配置如表2所示,F(xiàn)FM解析出的內(nèi)容如下:
P-PEKXH-ILINK0000000|PEK|FM|FM9374|NULL| NULL|TNA
根據(jù)權值PRI排序返回結果編號RECID=3,然后在T_CFG_FFM_TARGET表中查找RECID=3所對應的iLink地址,從而實現(xiàn)智能路由。
3.1 消息發(fā)送性能測試
實驗環(huán)境為Windows 2003 Server,測試軟件為EQATECProfiler。
場景1用客戶端1、2分別做3次單客戶端測試。在Windows 2003 Server下,運行EQATECProfiler發(fā)送報文,監(jiān)測發(fā)送10 000條報文所需要時間,測試結果如圖6(a)所示。
場景2用客戶端3、4、5做3次多客戶端測試。在Windows 2003 Server下,運行EQATECProfiler處理后的客戶端發(fā)送報文,監(jiān)測發(fā)送10 000條報文所需要時間,測試結果如圖6(b)所示。
圖6 單機消息發(fā)送性能測試Fig.6 Performance test of stand-alone messaging
CCSClient.workerSend_ProgressChanged方法用來顯示異步任務進度,在上述5個客戶端發(fā)送消息時,該方法耗時分析柱狀圖如圖7所示。
根據(jù)以上場景可以看出:每發(fā)送1條數(shù)據(jù),所耗時間在單客戶端和并發(fā)情況下差別并不大,但是10000報文量時,CCSClient.workerSend_ProgressChanged方法會被調(diào)用40 000次,此時,該方法并發(fā)情況下(3個客戶端)所耗時間比單客戶端要增加80 s。
3.2 消息接收性能測試
本節(jié)實驗是測試單客戶端單獨啟動及并發(fā)啟動后每秒處理數(shù)據(jù)的性能。前提條件是數(shù)據(jù)庫T_MSG_QUEUE_TEST*各表有可讀取的報文信息記錄,通過實驗適時記錄完成接收10 000(或5 000)條報文記錄的截止時間,每次實驗至少取7個截止時間點。
場景1客戶端1、2做單機消息接收測試,一次開啟1個接收客戶端從數(shù)據(jù)庫讀取報文數(shù)據(jù),并生成本地文件,記錄每秒處理條數(shù),如圖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個接收客戶端從數(shù)據(jù)庫的一張數(shù)據(jù)表并發(fā)讀取報文數(shù)據(jù),并生成本地文件,如圖9所示。
各客戶端處理性能匯總,如圖10所示。從實驗結果可以得出:無論在單機還是多機工作狀態(tài)下,消息接收的性能都比較穩(wěn)定,每秒處理4~6條記錄。
3.3 iLink消息路由性能測試
測試工具:iLink消息路由測試系統(tǒng),EQATEC測試軟件。測試方法:利用EQATEC測試軟件,監(jiān)測路由運行過程中調(diào)用的方法和所用時間,提取路由報文的技術指標;建立模型,測試不同組合方式路由產(chǎn)生何種差異并判定其穩(wěn)定性;記錄消息路由過程中調(diào)用方法所占時間,分析影響路由性能的操作,以便討論出更合理的方案提高路由性能。
實驗中采用5個客戶端,分別為客戶端1~5;3個路由器,分別為路由器1、2、3??蛻舳?、2發(fā)送的報文臨時存儲,分別設定為T_MSG_TEMP_TEST1、T_MSG_ TEMP_TEST2,接收表為T_MSG_QUEUE_TEST1、T_MSG_QUEUE_TEST2;客戶端3、4、5發(fā)送報文的臨時存儲為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監(jiān)測路由組件獲取數(shù)據(jù)并畫出柱狀圖,如圖11所示。
場景2多個路由器同時運行時路由性能測試:用10 000條CIMP報文和10 000條XML報文分別做如下實驗:單獨路由、兩兩路由(如路由器1的兩兩路由表示路由器1和路由器2,路由器1和路由器3路由結果的平均值)、3個路由器同時路由。然后分別記錄不同實驗中各個路由器每秒處理報文的平均數(shù)。實驗結果如圖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說明并發(fā)情況下,多個路由器同時工作并不影響系統(tǒng)性能。上述3方面實驗說明該方法的可行性并具有較高的發(fā)送接收效率。
本文研究設計航空物流數(shù)據(jù)共享平臺(iLink),根據(jù)不同的客戶平臺需求,實現(xiàn)各種報文格式自動轉(zhuǎn)換,同時也能根據(jù)報文內(nèi)容智能判斷接收方,智能路由分發(fā)到各參與者。實現(xiàn)航空物流信息在航空物流業(yè)務鏈中各參與方之間數(shù)據(jù)交換與共享。極大提高航空貨運的業(yè)務處理效率和航空貨運服務質(zhì)量。
[1]欒笑天.航空物流產(chǎn)業(yè)發(fā)展研究[J].交通企業(yè)管理,2011(9):50-51.
[2]王倉卓.航空電子貨運的信息挑戰(zhàn)[J].互聯(lián)網(wǎng)周刊,2010(15):58-60.
[3]梅立軍,付小龍,劉啟新,等.基于SOA的數(shù)據(jù)交換平臺研究與實現(xiàn)[J].計算機工程與設計,2006,27(19):3601-3603,3627.
[4]賈宇清,張磊.新架構XML/EDI在民航電子數(shù)據(jù)交換的應用[J].微計算機信息,2010,26(16):233-235.
[5]王淑營.產(chǎn)業(yè)鏈協(xié)同商務平臺動態(tài)數(shù)據(jù)交換技術[J].計算機集成制造系統(tǒng),2010,16(6):1336-1343.
[6]徐精晶,沈羚茵,熊靜,等.基于SOA的第四方航空物流信息平臺架構分析[J].物流科技,2012(8):21-24.
[7]孔曉昀,王曉聰,陳正奎.海量跨域數(shù)據(jù)交換平臺[J].計算機系統(tǒng)應用,2015,24(1):49-55.
[8]黃萬偉,汪斌強,王保進,等.面向區(qū)分服務的可重構任務在線調(diào)度算法[J].計算機輔助設計與圖形學學報,2010,22(4):717-723,728.
[9]危達,李建華,李曼,等.服務請求排隊算法[J].計算機系統(tǒng)應用, 2009(8):50-53.
[10]叢龍水.動態(tài)優(yōu)先級作業(yè)調(diào)度算法與實現(xiàn)[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基金項目:中國民用航空局科技創(chuàng)新重大專項(MHRD20140106);中央高?;究蒲袠I(yè)務費專項(3122014P004);國家科技支撐計劃(2014BAJ04B02)
王天凱(1978—),男,吉林長春人,助理工程師,學士,研究方向為航空物流信息平臺架構、應用系統(tǒng)和系統(tǒng)運維.