周亮瑾,王富章
(中國鐵道科學(xué)研究院 研究生部,北京 100081)
鐵路客票發(fā)售和預(yù)訂系統(tǒng) (以下簡稱“客票系統(tǒng)”) 自 1996 年開始建設(shè),經(jīng)過 20 余年的發(fā)展,目前已經(jīng)建成覆蓋全國的超大型售票網(wǎng)絡(luò),實現(xiàn)了全國聯(lián)網(wǎng)售票。鐵路全方位的直銷渠道主要包括窗口、自動售票機、互聯(lián)網(wǎng)、電話、代售點等銷售渠道,其中售票窗口約 28 000 個,自動售票機約2 000 臺,互聯(lián)網(wǎng)注冊用戶約 2.6 億戶,電話訂票線路約 10 萬線,日均售票量超過 800 萬張,峰值售票量達 1 326 萬張以上。鐵路客票系統(tǒng)很好地適應(yīng)了我國鐵路高速度、高密度、大流量、高安全和網(wǎng)絡(luò)化的業(yè)務(wù)特點[1]。
隨著我國經(jīng)濟社會的不斷發(fā)展,旅客的出行頻率增加,鐵路旅客發(fā)送量不斷創(chuàng)出歷史新高。2018 年鐵路計劃完成旅客發(fā)送量 32.5 億人次,按照目前鐵路客票業(yè)務(wù)辦理情況統(tǒng)計,發(fā)送人數(shù)與辦理業(yè)務(wù)量的比值約為 1 : 2,即鐵路客票系統(tǒng)需要支撐 65 億單業(yè)務(wù)量的辦理。鐵路客票系統(tǒng)目前采用邏輯集中、物理獨立分層管理的方式來對客運產(chǎn)品進行銷售。這種管理方式與鐵路目前的客運業(yè)務(wù)管理十分契合,邏輯集中適應(yīng)了當前客運業(yè)務(wù)管理權(quán)限的集中模式需要;物理獨立的鐵路局集團公司級分層、分范圍管理,提高并發(fā)處理能力,降低了數(shù)據(jù)審計成本。但是,隨著客運業(yè)務(wù)的不斷發(fā)展,根據(jù)車站所處的地理位置、路網(wǎng)位置不同,在各個物理節(jié)點上的數(shù)據(jù)分布也不均衡,從而導(dǎo)致業(yè)務(wù)辦理的速度差別,特別是在節(jié)假日等高峰出行時段,需求密集提交,交易集中辦理,給客票系統(tǒng)正常運行帶來挑戰(zhàn)。
保證鐵路客票發(fā)售與預(yù)訂系統(tǒng)平穩(wěn)運行的重要前提是及時做好系統(tǒng)的負載均衡工作。負載均衡方法是以客流預(yù)測結(jié)果為導(dǎo)向,進行負載均衡的方法,其研究重點均在客流預(yù)測方法上[2-7],在應(yīng)對交易高峰和運行圖調(diào)整時局限性明顯。因此,為保證鐵路客票系統(tǒng)的正常、平穩(wěn)運行,從分析客票系統(tǒng)核心交易業(yè)務(wù)的辦理流程出發(fā),確定核心數(shù)據(jù)與核心業(yè)務(wù)辦理效率關(guān)系[8],建立基于工作量證明的負載優(yōu)化模型,得到系統(tǒng)數(shù)據(jù)資源平衡與分配方案,用于指導(dǎo)客票系統(tǒng)數(shù)據(jù)資源的配置。
鐵路客票系統(tǒng)交易業(yè)務(wù)的辦理,是以列車票額為中心,兼顧其他客運業(yè)務(wù)規(guī)則的票額銷售體系。在全部的客運產(chǎn)品銷售過程中,列車票額從產(chǎn)生到消亡,接受所有與列車相關(guān)的管理規(guī)則、銷售策略、業(yè)務(wù)規(guī)則及系統(tǒng)要求的約束,是交易系統(tǒng)中的核心數(shù)據(jù)。目前,列車票額數(shù)據(jù)在客票系統(tǒng)總體架構(gòu)中,在物理上,服從全路客運業(yè)務(wù)辦理的均衡性要求,采用數(shù)據(jù)分中心的基于列車的票額均衡存放組織;在邏輯上,根據(jù)交易業(yè)務(wù)管理的獨立性要求,采用基于列車管理中心的分布式存取訪問。這種物理均衡、邏輯獨立的核心數(shù)據(jù)組織方式,可以通過擴充數(shù)據(jù)中心實現(xiàn)有效擴容,有利地保證了客票系統(tǒng)業(yè)務(wù)辦理效率,特別是鐵路 12306 及手機APP 渠道在高峰期業(yè)務(wù)辦理的穩(wěn)定性、可靠性。
隨著鐵路建設(shè)的發(fā)展,列車運行圖的市場化調(diào)整日趨頻繁,引起列車的運行區(qū)間、到發(fā)時刻、車型、停站、編組類型等影響運輸能力的票額相關(guān)屬性發(fā)生變化,現(xiàn)有的物理獨立、邏輯業(yè)務(wù)統(tǒng)一的票額數(shù)據(jù)管理方式容易受業(yè)務(wù)的影響,導(dǎo)致數(shù)據(jù)負載中心間資源的不均衡使用。產(chǎn)生不均衡的原因主要有 2 個:一是技術(shù)人員的影響,為了方便管理,將同向、同始發(fā)、同屬性的列車集中存放在 1 個數(shù)據(jù)中心上,在高峰期,容易將系統(tǒng)壓力集中在若干個熱門方向、熱門列車上,導(dǎo)致負載不均衡,在后臺系統(tǒng)監(jiān)控中一般容易表現(xiàn)為階梯式失衡,即若干中心持續(xù)繁忙、若干中心持續(xù)空閑的現(xiàn)象;二是業(yè)務(wù)規(guī)則的影響,如車站起售時間調(diào)整、列車編組調(diào)整、集中調(diào)圖時后押預(yù)售引起的席位集中投放,導(dǎo)致列車票額數(shù)量或某一時刻的票額極不平衡的釋放,從而導(dǎo)致負載不均衡,在系統(tǒng)監(jiān)控中容易產(chǎn)生漸進式失衡,即中心間的失衡在一段時間內(nèi)不易觀察,在個別系統(tǒng)壓力點下出現(xiàn)時才逐漸顯露。
階梯式失衡較容易識別,便于系統(tǒng)后續(xù)調(diào)優(yōu)處理;漸進式失衡不易察覺,一般在集中交易高峰顯現(xiàn)。目前,為有效規(guī)避數(shù)據(jù)中心負載失衡,客票系統(tǒng)采用定期巡檢機制,對各中心系統(tǒng)的負載壓力進行評估診斷,保證數(shù)據(jù)中心整體均衡運行。
鐵路客票系統(tǒng)數(shù)據(jù)中心的均衡性與其進行的客票交易相關(guān)業(yè)務(wù)密切相關(guān)。維持數(shù)據(jù)中心負載的均衡性是保證客票系統(tǒng)穩(wěn)定、可靠運營的基礎(chǔ)。辦理客票交易業(yè)務(wù),以列車的基礎(chǔ)數(shù)據(jù)、產(chǎn)品數(shù)據(jù)為基礎(chǔ),旅客需求與列車席位相互配合完成交易。對于目前的客票系統(tǒng)架構(gòu),以某一鐵路局集團公司有 2 個數(shù)據(jù)中心為例進行分析,除列車產(chǎn)品數(shù)據(jù) (席位數(shù)據(jù)) 分攤存放外,其他數(shù)據(jù)處理與存放均需要集中在 1 個數(shù)據(jù)中心上進行。因此,票額作為核心數(shù)據(jù)是基本工作量的關(guān)鍵指標證明,實現(xiàn)系統(tǒng)的負載均衡、降低售票高峰期的系統(tǒng)壓力,核心問題就是將交易業(yè)務(wù)頻繁的席位數(shù)據(jù)進行數(shù)據(jù)中心間的均衡;考慮到客運業(yè)務(wù)管理的業(yè)務(wù)完整性需求,票額均衡需要以列車車次為單位,進行數(shù)據(jù)中心的均衡方案調(diào)整。
旅客列車對外提供的客運產(chǎn)品以可發(fā)售票額為載體。圍繞列車票額的銷售交易辦理是從票額的生命周期開始點——進入預(yù)售期開始,直至列車運行至終點結(jié)束。在這段時間內(nèi),根據(jù)車票所處的運輸時期、運輸區(qū)段、運輸時間的不同,旅客的需求熱度不同,對票額數(shù)據(jù)的訪問熱度也不同。因此,客票系統(tǒng)目前采用的基于靜態(tài)客運量預(yù)測方法進行的負載均衡方法,體現(xiàn)的是最終票額數(shù)量對數(shù)據(jù)中心的影響,不能體現(xiàn)票額銷售過程中局部密集訪問對數(shù)據(jù)中心造成的瞬時壓力失衡,特別是這些瞬時壓力疊加后,對數(shù)據(jù)中心造成的影響。為此,對于各個數(shù)據(jù)中心按照業(yè)務(wù)邏輯組織的列車票額存放方式,建立基于銷售強度和銷售量的雙因素工作量證明形式化算法,以期更合理地實現(xiàn)對各個數(shù)據(jù)中心系統(tǒng)壓力的數(shù)據(jù)負載評估。
工作量證明形式化算法是以票額數(shù)據(jù)為基礎(chǔ),對業(yè)務(wù)上若干相關(guān)負載中心的負載現(xiàn)狀工作量進行指定時段的負載工作量計算,確定相關(guān)負載中心的負載系數(shù),以及需要均衡負載的負載中心范圍,并根據(jù)業(yè)務(wù)人員選擇的是以搬遷數(shù)量最小為目標,還是以負載均衡性最優(yōu)為目標,通過基于票額數(shù)據(jù)的工作量證明進行均衡方案計算,得到負載均衡方案。對負載均衡方案進行可行性評估,同時業(yè)務(wù)專家結(jié)合業(yè)務(wù)應(yīng)用需要進行微調(diào),得到可以實施的最終負載方案并付諸實施。
工作量證明形式化算法步驟如下。
步驟 1:設(shè) H = 均衡時刻{1 : 00,1 : 30,…,23 : 30};G = {均衡目標|搬遷數(shù)量最小,負載均衡最優(yōu)};TNi= 負載壓力閾值;Ni= 第 i 個負載中心;Ti= 第 i 列列車票額;Ai= 列車預(yù)售強度;NT = 需要進行均衡負載的數(shù)據(jù)中心范圍,是 Ni上的集合。
步驟 2:獲取訓(xùn)練數(shù)據(jù)集 S、相同客流時期的列車席位 Ti和列車預(yù)售強度 Ai。
步驟 3:以步驟 2 中的數(shù)據(jù)為基礎(chǔ),計算均衡時刻基于列車銷售量的負載系數(shù)、基于預(yù)售強度的負載系數(shù)。
步驟 4:確定指定范圍內(nèi)負載均衡的必要性,以及需要進行均衡負載的數(shù)據(jù)中心范圍 NT。例如,原先有 10 個數(shù)據(jù)中心,經(jīng)過評估需要調(diào)整 3 個數(shù)據(jù)中心, NT = {N3,N5,N7},則 || NT || = 3。
步驟 5:根據(jù)均衡目標 G 和 TNi,確定需要實施負載均衡的必要性和負載均衡列車范圍。
步驟 6:按照最優(yōu)化理論中的整數(shù)規(guī)劃,計算基于工作量證明的負載均衡方案 Q。
步驟 7:評估負載均衡方案 QI。
步驟 8:業(yè)務(wù)專家評估方案 QIR。
步驟 9:形成最終負載均衡方案 Qr,對負載中心 NT 依次進行負載均衡數(shù)據(jù)策略調(diào)整。
業(yè)務(wù)專家結(jié)合業(yè)務(wù)應(yīng)用需要進行的方案評估,在達成業(yè)務(wù)共識后,也可以增加至評估算法中。
在上述工作量證明形式化算法中,最核心的子算法為負載均衡算法。負載均衡算法本質(zhì)上可以視為整數(shù)規(guī)劃問題,這里的整數(shù)是將列車的席位集視為可選數(shù)據(jù)集。各個負載中心的均衡是二次優(yōu)化的結(jié)果。第 1 次,根據(jù)最值定理,建立靜態(tài)銷售量優(yōu)化模型,求列車在各個負載中心上的均衡分布負載量的最大值;第 2 次,對各個負載中心席位預(yù)售強度的均衡性求解。
優(yōu)化模型目標函數(shù) Z 如公式 ⑴ 所示,求解即為各負載中心的列車負載結(jié)果集。
式中:Tj為數(shù)據(jù)中心上的第 j 列列車票額;Ni為第 i個負載中心;i ∈ (0,|| NT ||),j = {1,2,…,U},i為調(diào)整的負載中心標識號,U 為常數(shù),表示所管理的列車數(shù)的最大值的序號。
采用上述方法,以武漢數(shù)據(jù)中心為例,進行客票系統(tǒng)數(shù)據(jù)中心負載均衡評估與調(diào)整。在客票系統(tǒng)數(shù)據(jù)中心負載均衡調(diào)整前,根據(jù)武漢數(shù)據(jù)中心當前業(yè)務(wù)組織狀態(tài),評估各個數(shù)據(jù)負載中心的負載系數(shù)、各個時刻的負載系數(shù),評估進行數(shù)據(jù)中心負載均衡的必要性。
武漢數(shù)據(jù)中心與客票業(yè)務(wù)辦理相關(guān)的有 3 個數(shù)據(jù)負載中心,系統(tǒng)負載均衡調(diào)整前各數(shù)據(jù)負載中心票額靜態(tài)均衡狀態(tài)如表 1 所示,系統(tǒng)負載均衡調(diào)整前各數(shù)據(jù)負載中心觀察時刻票額均衡狀態(tài)如圖 1 所示。
從表 1 和圖 1 可以看出,數(shù)據(jù)負載中心 1 的負載壓力最小,數(shù)據(jù)負載中心 3 的負載壓力最大。從銷售量上看,需要進行 3 個數(shù)據(jù)負載中心的負載均衡性調(diào)整。觀察武漢數(shù)據(jù)中心的預(yù)售高峰,可以看出在 12 : 00、12 : 30 和 13 : 30 3 個時間點分別出現(xiàn)了個別負載壓力點,特別是 13 : 30 的數(shù)據(jù)負載中心 1 節(jié)點,這些局部高點會在售票高峰期時出現(xiàn)系統(tǒng)提供的交易服務(wù)出現(xiàn)卡頓現(xiàn)象。
表 1 系統(tǒng)負載均衡調(diào)整前各數(shù)據(jù)負載中心票額靜態(tài)均衡狀態(tài)Tab.1 Static data from all centers before load balancing
因此,需要對 3 個數(shù)據(jù)負載中心進行系統(tǒng)負載的均衡性調(diào)整計算。考慮到 3 個數(shù)據(jù)負載中心的機器設(shè)備性能基本匹敵,從業(yè)務(wù)角度分析,3 個數(shù)據(jù)負載中心的負載量可以考慮均擔。采用上述基于工作量證明的負載均衡算法,對 3 個數(shù)據(jù)負載中心進行高峰期的預(yù)售強度和售票的工作量證明,得到系統(tǒng)負載均衡性調(diào)整后各數(shù)據(jù)負載中心票額靜態(tài)均衡狀態(tài)如表 2 所示。從各數(shù)據(jù)負載中心的靜態(tài)負載狀態(tài)看,3 個數(shù)據(jù)負載中心的負載量基本相同,列車票額均勻分布在各個負載中心上。
表 2 系統(tǒng)負載均衡性調(diào)整后各數(shù)據(jù)負載中心票額靜態(tài)均衡狀態(tài)Tab.2 Static data from all centers after load balancing
考慮到業(yè)務(wù)管理人員和系統(tǒng)維護人員便于管理和操作的因素,對武漢數(shù)據(jù)中心的列車進行業(yè)務(wù)規(guī)則的二次整理,以保證業(yè)務(wù)人員方便記憶管理規(guī)則。系統(tǒng)負載均衡性調(diào)整后各數(shù)據(jù)負載中心搶票高峰 10 min 的票額均衡狀態(tài)如圖 2 所示。
通過表 1 和表 2 的系統(tǒng)負載均衡性調(diào)整比較,在靜態(tài)負載量方面,數(shù)據(jù)負載中心 1 從 17%增加至32%;數(shù)據(jù)負載中心 2 從 37% 調(diào)整至 35%;數(shù)據(jù)負載中心 3 從 46% 下調(diào)至 33%。靜態(tài)調(diào)整后,各個數(shù)據(jù)負載中心的均衡性向好。觀察圖 1 和圖 2,系統(tǒng)負載均衡性調(diào)整前重點觀察時刻的累計席位基本均衡,但 13 : 30 數(shù)據(jù)負載中心 1 的負載是數(shù)據(jù)負載中心 2、數(shù)據(jù)負載中心3 的 10 倍以上,數(shù)據(jù)負載中心 1 壓力較大;系統(tǒng)負載均衡性調(diào)整后,相同觀察時刻各數(shù)據(jù)負載中心的峰值為調(diào)整前的一半,整體較為均衡,調(diào)整后觀察時刻的累計交易量數(shù)據(jù)負載中心 1 較其他數(shù)據(jù)負載中心大,但 11 個觀察時刻中,數(shù)據(jù)負載中心 1 的預(yù)售強度相對均衡,削峰填谷作用明顯,故高峰搶票應(yīng)對性好。
圖 1 系統(tǒng)負載均衡調(diào)整前各數(shù)據(jù)負載中心觀察時刻票額均衡狀態(tài)Fig.1 Real-time load status at all centers before load balancing
圖 2 系統(tǒng)負載均衡性調(diào)整后各數(shù)據(jù)負載中心搶票高峰 10 min 的票額均衡狀態(tài)Fig.2 Load status at all centers, 10 minutes after load balancing
生產(chǎn)實時交易系統(tǒng)的穩(wěn)定運行是評估客票系統(tǒng)的重要標準,適用的數(shù)據(jù)中心負載均衡方法是決定客票系統(tǒng)是否正常運行的關(guān)鍵。研究提出的基于關(guān)鍵交易數(shù)據(jù)的預(yù)售強度和銷售量的雙層工作量證明優(yōu)化負載均衡方法,解決了傳統(tǒng)靜態(tài)均衡方法無法實現(xiàn)搶票高峰辦理時的系統(tǒng)負載均衡問題。武漢數(shù)據(jù)中心的 3 個數(shù)據(jù)負載中心應(yīng)用該方法進行評估與調(diào)整,驗證了鐵路客票系統(tǒng)數(shù)據(jù)負載均衡方法的實用性和有效性。在客票發(fā)售過程中,還應(yīng)進一步研究如何實現(xiàn)各個數(shù)據(jù)中心的動態(tài)壓力評估與實施動態(tài)業(yè)務(wù)負載均衡方法。
[1] 張振利. 適應(yīng)中國高速鐵路客流特性的售票組織策略優(yōu)化研究[J]. 鐵道經(jīng)濟研究,2010(6):43-45.ZHANG Zhen-li. Study on Strategies about the Optimal Control of Seat Selling based on the Characteristics of Passenger Flows in Chinese High-speed Railway[J]. Railway Economics Research,2010(6):43-45.
[2] 汪榮鑫. 隨機過程[M]. 西安:西安交通大學(xué)出版社,2000.
[3] 龔光魯,錢敏平. 應(yīng)用隨機過程教程及在算法和智能計算中的隨機模型[M]. 北京:清華大學(xué)出版社,2005.
[4] 王 燕. 應(yīng)用時間序列分析[M]. 北京:中國人民大學(xué)出版社,2005.
[5] 何 勇,鮑一丹,吳江明. 隨機型時間序列預(yù)測方法的研究[J]. 系統(tǒng)工程理論與實踐,1997(1):36-43.HE Yong,BAO Yi-dan,WU Jiang-ming. A New Forecasting Method for Stochastic Time Series[J]. Systems Engineering-Theory and Practics,1997(1):36-43.
[6] 張 圣,朱建生,王洪業(yè). 鐵路大站票額預(yù)分預(yù)測模型研究[J]. 鐵道運輸與經(jīng)濟,2017,39(6):27-31.ZHANG Sheng,ZHU Jian-sheng,WANG Hong-ye. Study on Forecast Model of Ticket Pre-assignment in Railway Large Station[J]. Railway Transport and Economy,2017,39(6):27-31.
[7] 李夏苗,黃桂章,湯 杰. 基于 OD 反推模型預(yù)測客運通道客流量[J]. 鐵道學(xué)報,2008,30(6):7-12.LI Xia-miao,HUANG Gui-zhang,TANG Jie. Passenger Flow Forecasting based on OD-matrix Estimation Model[J].Journal of the China Railway Society,2008,30(6):7-12.
[8] 馬建軍,許 紅,胡思繼,等. 計算機編制旅客列車票額分配系統(tǒng)的理論和設(shè)計方法[J]. 鐵道學(xué)報,2001,23(6):6-10.MA Jian-jun,XU Hong,HU Si-ji,et al. Theory and Design Method on Seats Allotment System of Passenger Trains Worked Out with Computer[J]. Journal of China Railway Society,2001,23(6):6-10.