陳匯遠(yuǎn)
(中國鐵道科學(xué)研究院集團(tuán)有限公司通信信號(hào)研究所,北京 100081)
高速鐵路列控系統(tǒng)是保障鐵路運(yùn)輸安全的核心裝備。其中,車載設(shè)備是高鐵列控系統(tǒng)的關(guān)鍵部分,其運(yùn)行直接關(guān)系旅客生命和財(cái)產(chǎn)安全。為保障車載設(shè)備安全可靠地運(yùn)行,有必要對(duì)高鐵列控系統(tǒng)車載設(shè)備的系統(tǒng)功能進(jìn)行充分全面測試和驗(yàn)證。
高鐵列控仿真測試系統(tǒng)涉及大量軟、硬件開發(fā),結(jié)構(gòu)和接口復(fù)雜,業(yè)務(wù)規(guī)則繁雜多變。謝雨飛和郭丹青[1-2]通過采用形式化建模方法對(duì)高鐵列控系統(tǒng)進(jìn)行驗(yàn)證和測試;盧楠[3]通過采用專家系統(tǒng)方法對(duì)列控系統(tǒng)進(jìn)行測試,但其缺少針對(duì)系統(tǒng)業(yè)務(wù)擴(kuò)展如何快速響應(yīng)新需求變化的思考;龐家杰和焦健[4-5]從需求分析、系統(tǒng)設(shè)計(jì)和系統(tǒng)實(shí)現(xiàn)對(duì)高鐵列控測試系統(tǒng)進(jìn)行全面詳細(xì)描述,但系統(tǒng)設(shè)計(jì)基于傳統(tǒng)的單體架構(gòu)設(shè)計(jì),代碼耦合性強(qiáng),資源可重用性低。如何解決大型軟件設(shè)計(jì)建模的復(fù)雜性,促進(jìn)信息系統(tǒng)的開發(fā)與協(xié)同效率,使核心業(yè)務(wù)系統(tǒng)能快速響應(yīng)新需求變化,大幅降低軟件開發(fā)成本,提高系統(tǒng)的可擴(kuò)展性和可維護(hù)性,成為構(gòu)建大型復(fù)雜信息系統(tǒng)迫切需要解決的問題。
高速鐵路列控仿真測試系統(tǒng)是個(gè)半實(shí)物仿真系統(tǒng),它包括主控模塊、無線消息處理模塊和硬件模塊,其系統(tǒng)結(jié)構(gòu)如圖1所示。
圖1 高速鐵路列控仿真測試系統(tǒng)結(jié)構(gòu)
主控模塊包括參數(shù)設(shè)置子模塊、車載與地面仿真子模塊和故障仿真子模塊。
(1)參數(shù)設(shè)置子模塊
用于設(shè)置列車參數(shù)及與硬件模塊通信的參數(shù)。列車參數(shù)主要包括列車型號(hào)、列車長度、輪徑值等。與硬件模塊通信的參數(shù)主要包括:與硬件模塊中IO接口模擬裝置通信參數(shù)、與速度傳感器模擬裝置通信參數(shù)、與軌道電路信號(hào)模擬裝置通信參數(shù)及與應(yīng)答器信號(hào)模擬裝置通信參數(shù)。
(2)車載與地面仿真子模塊
用于模擬地面線路仿真信號(hào)和車輛IO功能。通過加載與校核列控工程數(shù)據(jù)腳本文件產(chǎn)生列車地面線路數(shù)據(jù)仿真信號(hào);根據(jù)列車仿真速度計(jì)算列車位置,并通過列車位置逐條執(zhí)行腳本指令;同時(shí)具備模擬車輛IO功能。列控工程數(shù)據(jù)腳本文件主要包括列車位置、相對(duì)距離、載頻、低頻、區(qū)段名稱及區(qū)段長度等。所產(chǎn)生的仿真信號(hào)主要包括:車輛輸入輸出信號(hào)、軌道電路信號(hào)、應(yīng)答器信號(hào)及速度傳感器信號(hào)。通過IO接口模擬裝置接收車載設(shè)備的制動(dòng)信息、切除牽引、過分相和過分相有效等信號(hào);通過IO接口模擬裝置向ATP車載設(shè)備發(fā)送方向手柄位置、牽引手柄位置、制動(dòng)手柄位置、駕駛室激活、休眠和制動(dòng)反饋等信號(hào)。
(3)故障仿真子模塊
用于模擬列車故障狀況,測試列車ATP異常條件下的功能處理。列車故障不僅包括緊急制動(dòng)反饋故障、常用制動(dòng)反饋故障、速度跳變、速度差故障等,也包括模擬牽引手柄、制動(dòng)手柄、方向手柄的狀態(tài)故障等。
用于模擬無線閉塞中心(Radio Block Center,RBC)的功能,加載并校核無線腳本文件,執(zhí)行無線消息序列,通過硬件模塊中的綜合業(yè)務(wù)數(shù)字網(wǎng)(Integrated Services Digital Network,ISDN)服務(wù)器與真實(shí)ATP進(jìn)行無線消息交互,實(shí)現(xiàn)ATP在列控C3等級(jí)下控車。無線腳本文件主要包含列車位置、RBC發(fā)送的無線消息、RBC接收的無線消息、無線消息長度、無線消息內(nèi)容和無線消息傳輸方向等信息。
硬件模塊包括IO接口模擬裝置、速度傳感器模擬裝置、軌道電路信號(hào)模擬裝置、應(yīng)答器信號(hào)模擬裝置和ISDN服務(wù)器。其中,IO接口模擬裝置用于模擬列車的各種手柄位置、激活駕駛臺(tái)、過分相、制動(dòng)、制動(dòng)反饋等功能;速度傳感器模擬裝置用于模擬列車的速度脈沖信號(hào);軌道電路信號(hào)模擬裝置用于模擬地面線路的軌道電路信號(hào);應(yīng)答器信號(hào)模擬裝置用于模擬地面線路的應(yīng)答器信號(hào);ISDN服務(wù)器用于RBC與ATP車載設(shè)備的無線信息交互。
2004年軟件設(shè)計(jì)大師Eric Evans提出領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)是構(gòu)建大型復(fù)雜軟件的系統(tǒng)分析和設(shè)計(jì)建模方法,它采用分層結(jié)構(gòu),包括用戶界面層、應(yīng)用層、領(lǐng)域?qū)雍突A(chǔ)設(shè)施層[6]。其中,用戶界面層實(shí)現(xiàn)與用戶信息交互;應(yīng)用層起協(xié)調(diào)作用,不含任何業(yè)務(wù)規(guī)則和邏輯,通知領(lǐng)域?qū)酉蚱鋫鬟f調(diào)用信息;領(lǐng)域?qū)訛橄到y(tǒng)的核心層,負(fù)責(zé)表達(dá)業(yè)務(wù)定義、業(yè)務(wù)規(guī)則和業(yè)務(wù)的狀態(tài),它將軟件中最重要的資產(chǎn)業(yè)務(wù)規(guī)則進(jìn)行剝離,抽象在領(lǐng)域?qū)?,使得業(yè)務(wù)邏輯與應(yīng)用層和基礎(chǔ)設(shè)施層等代碼分離,實(shí)現(xiàn)業(yè)務(wù)邏輯與數(shù)據(jù)分離;基礎(chǔ)設(shè)施層提供系統(tǒng)的技術(shù)支撐,包括具體平臺(tái)、數(shù)據(jù)持久化和消息傳輸?shù)取?/p>
領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)是一系列軟件設(shè)計(jì)實(shí)踐、技術(shù)和原則的集合,它是服務(wù)劃分的一種方法,領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)中的核心部分是領(lǐng)域模型,它能夠?qū)㈩I(lǐng)域模型解耦成包含業(yè)務(wù)流程且相互區(qū)別的限界上下文并表達(dá)它們之間的關(guān)系。領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)的技術(shù)特點(diǎn)是分層架構(gòu)與職責(zé)劃分和高可復(fù)用性。
2.1.2 領(lǐng)域模型設(shè)計(jì)
領(lǐng)域?qū)邮窍到y(tǒng)核心層,其主要作用是設(shè)計(jì)出能夠準(zhǔn)確表示系統(tǒng)業(yè)務(wù)邏輯的領(lǐng)域模型。Eric Evans提出7種領(lǐng)域模型元素:實(shí)體、值對(duì)象、關(guān)聯(lián)、服務(wù)、聚合、工廠和倉儲(chǔ)。其中,實(shí)體、值對(duì)象、關(guān)聯(lián)和服務(wù)是反映領(lǐng)域模型中業(yè)務(wù)邏輯的基本元素,聚合、工廠和倉儲(chǔ)則描述上述4種基本元素在領(lǐng)域模型中的生命運(yùn)行周期[7]。
在領(lǐng)域模型設(shè)計(jì)中,首先,明確領(lǐng)域概念和領(lǐng)域邊界;其次,領(lǐng)域可細(xì)化為子域,通過領(lǐng)域邊界分析界定邊界的職責(zé)和劃分限界上下文;然后,通過領(lǐng)域場景分析,設(shè)計(jì)領(lǐng)域模型的屬性和行為,構(gòu)建限界上下文之間的集成關(guān)系[8]。根據(jù)領(lǐng)域場景分析中的操作集合定義領(lǐng)域?qū)嶓w,把具有個(gè)性特征且身份唯一的領(lǐng)域概念抽象成實(shí)體,把不具備身份唯一特征且可變領(lǐng)域概念抽象成值對(duì)象,領(lǐng)域?qū)ο缶邆錉顟B(tài)和行為,根據(jù)領(lǐng)域?qū)嶓w與值對(duì)象業(yè)務(wù)關(guān)聯(lián)性定義聚合,一個(gè)聚合就是一個(gè)事務(wù)邊界[9]。此外,有一些邏輯處理和行為是服務(wù)于實(shí)體,供領(lǐng)域?qū)嶓w對(duì)象調(diào)用,能很好協(xié)調(diào)各實(shí)體共同完成某些行為稱之為領(lǐng)域服務(wù)。領(lǐng)域服務(wù)只有行為沒有狀態(tài),通過對(duì)實(shí)體和領(lǐng)域服務(wù)中的行為建模形成領(lǐng)域事件,領(lǐng)域事件能夠在業(yè)務(wù)流程中驅(qū)動(dòng)業(yè)務(wù)行為進(jìn)行流轉(zhuǎn)[10]。最后,根據(jù)業(yè)務(wù)和語義邊界、服務(wù)及領(lǐng)域事件之間的依賴關(guān)系確定領(lǐng)域模型。
微服務(wù)指根據(jù)系統(tǒng)業(yè)務(wù)功能,構(gòu)建能夠互相協(xié)作的小而自治服務(wù)[11]。它具備高內(nèi)聚、高擴(kuò)展和高自治性特點(diǎn),使得系統(tǒng)易于擴(kuò)展和維護(hù)[12]。
微服務(wù)架構(gòu)是近年來新興的軟件架構(gòu),具備服務(wù)化、組件化、分散化和獨(dú)立部署等優(yōu)點(diǎn),它通過組件化的方式將應(yīng)用程序分解為多個(gè)微服務(wù),使得系統(tǒng)更易開發(fā)、擴(kuò)展和維護(hù)。同時(shí),微服務(wù)系統(tǒng)實(shí)質(zhì)是分布式系統(tǒng),它強(qiáng)調(diào)去中心化的軟件組織架構(gòu),每個(gè)微服務(wù)都可獨(dú)立測試、部署和運(yùn)行,單個(gè)服務(wù)變更不會(huì)影響到其他服務(wù),持續(xù)化部署和維護(hù)更加便利,實(shí)現(xiàn)了系統(tǒng)高可靠性、可用性和可維護(hù)性[13]。
設(shè)計(jì)一種高質(zhì)量的微服務(wù)架構(gòu)需遵循以下原則:單一職責(zé)、服務(wù)自治、輕量級(jí)通信方式和接口明確。根據(jù)這些設(shè)計(jì)原則,微服務(wù)基礎(chǔ)框架應(yīng)包括:服務(wù)注冊(cè)、服務(wù)發(fā)現(xiàn)、服務(wù)通信、日志管理和接口管理等基本功能。此外,為增強(qiáng)微服務(wù)架構(gòu)的完整性及先進(jìn)性,應(yīng)加入限流容錯(cuò)、負(fù)載均衡、服務(wù)配置、服務(wù)監(jiān)控等功能。通過對(duì)這些服務(wù)功能組合使用,保證了微服務(wù)架構(gòu)的高效、穩(wěn)定、可移植和跨平臺(tái)等特性[14]。
領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)與微服務(wù)相結(jié)合,賦予新的活力。SBD公司Jay Bercher指出領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)和微服務(wù)似乎是完美組合,采用這種組合方式,使得開發(fā)團(tuán)隊(duì)明確各自職責(zé)劃分,根據(jù)負(fù)責(zé)的相關(guān)領(lǐng)域進(jìn)行相應(yīng)的微服務(wù)開發(fā),限制了并行開發(fā)中可能出現(xiàn)的冗余,創(chuàng)建了一種高效的開發(fā)模式[15]。
領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)中限界上下文是微服務(wù)設(shè)計(jì)和拆分的主要依據(jù)[8]。領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)中領(lǐng)域?qū)油ㄟ^微服務(wù)形式實(shí)現(xiàn)系統(tǒng)業(yè)務(wù)邏輯功能,限界上下文中領(lǐng)域模型的領(lǐng)域事件,通過異步機(jī)制使得業(yè)務(wù)流程和數(shù)據(jù)能夠從業(yè)務(wù)域中映射到微服務(wù)。領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)中應(yīng)用層不含業(yè)務(wù)規(guī)則和邏輯,協(xié)調(diào)微服務(wù)編排、組合和調(diào)用。
綜合領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)理論和微服務(wù)特點(diǎn),設(shè)計(jì)仿真測試系統(tǒng)領(lǐng)域驅(qū)動(dòng)模型如圖2所示。
圖2 高速鐵路列控仿真測試系統(tǒng)領(lǐng)域驅(qū)動(dòng)模型
表示層實(shí)現(xiàn)與用戶信息交互,主要包括試驗(yàn)場景信息顯示;應(yīng)用層實(shí)現(xiàn)服務(wù)調(diào)用,不含任何業(yè)務(wù)規(guī)則和邏輯;領(lǐng)域?qū)幼鳛橄到y(tǒng)核心層,實(shí)現(xiàn)系統(tǒng)業(yè)務(wù)邏輯功能;基礎(chǔ)設(shè)施層實(shí)現(xiàn)數(shù)據(jù)持久化和數(shù)據(jù)通信。
中臺(tái)是一種企業(yè)能力共享和資源復(fù)用的方法論。中臺(tái)包括業(yè)務(wù)中臺(tái)和數(shù)據(jù)中臺(tái),業(yè)務(wù)中臺(tái)能夠有效組織后臺(tái)的系統(tǒng)資源,轉(zhuǎn)化為前端可調(diào)用的業(yè)務(wù)服務(wù),提升業(yè)務(wù)的協(xié)作效率。業(yè)務(wù)中臺(tái)依據(jù)“高內(nèi)聚、低耦合”原則,將復(fù)雜業(yè)務(wù)系統(tǒng)進(jìn)行細(xì)粒度拆分,降低業(yè)務(wù)系統(tǒng)復(fù)雜度,有利于軟件開發(fā)和維護(hù)。數(shù)據(jù)中臺(tái)是指通過數(shù)據(jù)技術(shù)對(duì)系統(tǒng)中的數(shù)據(jù)進(jìn)行采集、分析和處理,根據(jù)業(yè)務(wù)需要對(duì)各類數(shù)據(jù)進(jìn)行整合,實(shí)現(xiàn)數(shù)據(jù)匯聚和集中管理,以提供給業(yè)務(wù)中臺(tái)使用。
微服務(wù)是目前業(yè)界公認(rèn)的業(yè)務(wù)中臺(tái)技術(shù)最佳實(shí)現(xiàn)方式[16]。業(yè)務(wù)中臺(tái)架構(gòu)建設(shè)多采用微服務(wù)架構(gòu),故具備微服務(wù)架構(gòu)的優(yōu)點(diǎn)和特點(diǎn),此外,基于微服務(wù)架構(gòu)的中臺(tái)架構(gòu),對(duì)系統(tǒng)的共性能力和穩(wěn)定能力進(jìn)行提取,并對(duì)底層進(jìn)行封裝,通過“搭積木”的系統(tǒng)構(gòu)建方式,快速實(shí)現(xiàn)系統(tǒng)升級(jí)和改造[17]。業(yè)務(wù)中臺(tái)建設(shè)遵循“厚中臺(tái)、薄應(yīng)用”的思想,按照高內(nèi)聚、低耦合的原則進(jìn)行構(gòu)建,通過業(yè)務(wù)邏輯分離,為前臺(tái)減負(fù),提高前臺(tái)快速響應(yīng)能力,整合后臺(tái)系統(tǒng)資源,快速支持系統(tǒng)的業(yè)務(wù)擴(kuò)展[18]。業(yè)務(wù)中臺(tái)建設(shè)目標(biāo)是將持續(xù)優(yōu)化和提升的業(yè)務(wù)能力沉淀到業(yè)務(wù)中臺(tái),通過業(yè)務(wù)的集中化管控,實(shí)現(xiàn)業(yè)務(wù)能力復(fù)用和不同業(yè)務(wù)板塊能力融合。 業(yè)務(wù)中臺(tái)價(jià)值的核心意義在于將業(yè)務(wù)能力IT化轉(zhuǎn)化為業(yè)務(wù)能力資產(chǎn)化,提高了業(yè)務(wù)的敏捷性,能夠快速響應(yīng)業(yè)務(wù)需求變化;通過可復(fù)用的業(yè)務(wù)能力能夠大幅提高開發(fā)效率,避免了軟件開發(fā)的重復(fù)建設(shè),提升業(yè)務(wù)創(chuàng)新效能,達(dá)到降本增效的目標(biāo)。
業(yè)務(wù)中臺(tái)設(shè)計(jì)首先基于業(yè)務(wù)領(lǐng)域建模,在業(yè)務(wù)建模的基礎(chǔ)上進(jìn)行中臺(tái)規(guī)劃,并根據(jù)業(yè)務(wù)功能進(jìn)行服務(wù)識(shí)別和服務(wù)設(shè)計(jì),最后實(shí)現(xiàn)服務(wù)[19]。業(yè)務(wù)中臺(tái)領(lǐng)域建模通常采用領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)方法,通過規(guī)劃業(yè)務(wù)限界上下文邊界,構(gòu)建中臺(tái)領(lǐng)域模型,并根據(jù)領(lǐng)域模型進(jìn)行微服務(wù)的識(shí)別和設(shè)計(jì)。業(yè)務(wù)中臺(tái)設(shè)計(jì)如圖3所示。
圖3 業(yè)務(wù)中臺(tái)設(shè)計(jì)
(1)業(yè)務(wù)領(lǐng)域建模
根據(jù)系統(tǒng)需求對(duì)業(yè)務(wù)拆分,并對(duì)業(yè)務(wù)邊界劃分,在建模中使用領(lǐng)域、子域,明確領(lǐng)域邊界和劃分限界上下文,依據(jù)職責(zé)對(duì)“領(lǐng)域模型”進(jìn)行歸納,形成業(yè)務(wù)域模型;通過領(lǐng)域場景分析,設(shè)計(jì)業(yè)務(wù)域的屬性和行為;基于領(lǐng)域建模分析方法分析業(yè)務(wù)實(shí)體,建立實(shí)體間聯(lián)系,并根據(jù)業(yè)務(wù)、領(lǐng)域邊界及領(lǐng)域事件間的關(guān)系確定領(lǐng)域模型。
(2)中臺(tái)規(guī)劃
通過領(lǐng)域模型和業(yè)務(wù)流程對(duì)服務(wù)進(jìn)行識(shí)別和梳理,進(jìn)行服務(wù)化架構(gòu)建模,并根據(jù)領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)聚合要求規(guī)劃業(yè)務(wù)中心。業(yè)務(wù)中心關(guān)注系統(tǒng)的業(yè)務(wù)需求,擁有清晰完整的業(yè)務(wù)邊界。業(yè)務(wù)中臺(tái)中心劃分基本原則遵循高內(nèi)聚低耦合、數(shù)據(jù)完整性、漸進(jìn)性建設(shè)等原則。
(3)服務(wù)識(shí)別和設(shè)計(jì)
微服務(wù)設(shè)計(jì)和拆分的主要依據(jù)是限界上下文,通過領(lǐng)域模型的業(yè)務(wù)域、業(yè)務(wù)流程和限界上下文將業(yè)務(wù)能力設(shè)計(jì)成按業(yè)務(wù)域組織的有層次的服務(wù)。基于領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)劃分微服務(wù)遵循的原則:最小完備原則、穩(wěn)定空間原則、職責(zé)單一原則[20]。
涵蓋本系統(tǒng)的主要業(yè)務(wù)服務(wù)包括車輛輸入信號(hào)處理服務(wù)、車輛輸出信號(hào)處理服務(wù)、列車位置計(jì)算服務(wù)、速度信號(hào)生成服務(wù)、軌道電路信號(hào)生成服務(wù)、應(yīng)答器信號(hào)生成服務(wù)、無線消息處理服務(wù)、故障信息處理服務(wù)等。針對(duì)復(fù)雜業(yè)務(wù),可進(jìn)行顆粒度細(xì)化,拆分成若干微服務(wù),分別進(jìn)行開發(fā)和維護(hù),提高了系統(tǒng)可維護(hù)性。
系統(tǒng)中多處用到的功能統(tǒng)一封裝成可復(fù)用的公共服務(wù),為業(yè)務(wù)服務(wù)提供更便利的支撐。它包括通信服務(wù)、流程服務(wù)、文件服務(wù)等。其中,流程服務(wù)能夠?qū)⒁延械亩鄠€(gè)功能獨(dú)立服務(wù),根據(jù)業(yè)務(wù)需要通過服務(wù)組合的方式組合成更為復(fù)雜和完善的整體應(yīng)用,提高了系統(tǒng)可擴(kuò)展性。
(4)服務(wù)實(shí)現(xiàn)
在服務(wù)實(shí)現(xiàn)階段需考慮系統(tǒng)性能、可靠性、可擴(kuò)展性和可維護(hù)性。經(jīng)過服務(wù)設(shè)計(jì),結(jié)合微服務(wù)的特點(diǎn),通過基于微服務(wù)架構(gòu)實(shí)現(xiàn)服務(wù)的開發(fā)和部署。
服務(wù)網(wǎng)關(guān)是連接客戶端和后臺(tái)的中介,它提供服務(wù)統(tǒng)一代理入口與調(diào)用分發(fā),通過執(zhí)行服務(wù)的路由和消費(fèi)契約的方式,確保微服務(wù)垂直擴(kuò)展。此外,網(wǎng)關(guān)也具備負(fù)責(zé)鑒權(quán)、認(rèn)證、安全和跳轉(zhuǎn)等作用。
服務(wù)監(jiān)督與治理包括服務(wù)注冊(cè)、服務(wù)配置、服務(wù)監(jiān)控、負(fù)載均衡和日志管理。服務(wù)注冊(cè)通過去中心化結(jié)構(gòu),使每個(gè)服務(wù)節(jié)點(diǎn)都可以提供服務(wù)注冊(cè)和發(fā)現(xiàn)功能,有效防止只有一個(gè)注冊(cè)中心由于故障而導(dǎo)致的系統(tǒng)風(fēng)險(xiǎn),提高系統(tǒng)可用性[21]。服務(wù)配置提供應(yīng)用配置與應(yīng)用部署完全分離,實(shí)現(xiàn)在分布式環(huán)境下對(duì)微服務(wù)運(yùn)行時(shí)所需參數(shù)的集中管理、動(dòng)態(tài)調(diào)整和自動(dòng)更新。服務(wù)監(jiān)控提供在系統(tǒng)運(yùn)行時(shí)對(duì)基礎(chǔ)設(shè)施和微服務(wù)等性能進(jìn)行監(jiān)控,方便系統(tǒng)管理員根據(jù)微服務(wù)狀態(tài)和執(zhí)行情況進(jìn)行系統(tǒng)性能參數(shù)的調(diào)優(yōu)和日常運(yùn)維。負(fù)載均衡實(shí)現(xiàn)對(duì)同一微服務(wù)的多個(gè)請(qǐng)求到該微服務(wù)的特定實(shí)例進(jìn)行科學(xué)分配,提高服務(wù)的執(zhí)行效率。日志管理通過日志分析,實(shí)現(xiàn)快速診斷微服務(wù)等發(fā)生故障后,迅速排除錯(cuò)誤,提高系統(tǒng)的可維護(hù)性。
以高速列車C2/C3等級(jí)轉(zhuǎn)換場景為例,如圖4所示,說明業(yè)務(wù)中臺(tái)的應(yīng)用。
(1)場景說明
高鐵列車C2/C3等級(jí)轉(zhuǎn)換業(yè)務(wù)完整流程包含列車C2等級(jí)部分模式發(fā)車、列車C2等級(jí)轉(zhuǎn)完全模式、列車接收到呼叫RBC指令應(yīng)答器信息和C2/C3轉(zhuǎn)換預(yù)告應(yīng)答器信息、列車接收到C2/C3執(zhí)行應(yīng)答器信息和列車C3等級(jí)完全運(yùn)行等5個(gè)主要環(huán)節(jié)[22]。
(2)中臺(tái)應(yīng)用說明
本業(yè)務(wù)場景涉及業(yè)務(wù)中臺(tái)的車輛IO信息中心、車輛信息中心、軌道電路信息中心、應(yīng)答器信息中心和無線消息中心,通過相互協(xié)作能力組合應(yīng)用對(duì)高鐵列車C2/C3等級(jí)轉(zhuǎn)換業(yè)務(wù)提供有效支撐。具體各環(huán)節(jié)場景及環(huán)節(jié)與中心對(duì)應(yīng)關(guān)系如下。
①列車C2等級(jí)部分模式發(fā)車。
通過車輛IO信息中心的車輛輸入信號(hào)服務(wù)和車輛輸出信號(hào)服務(wù)獲取駕駛臺(tái)激活、手柄位置、制動(dòng)反饋等信息;通過車輛信息中心的速度信號(hào)處理服務(wù)和列車位置計(jì)算服務(wù)獲取列車速度、加速度和位置信息;通過軌道電路信息中心的軌道電路信號(hào)處理服務(wù)獲取列車行車許可信息。
圖4 中臺(tái)在高鐵列車C2/C3等級(jí)轉(zhuǎn)換場景中的應(yīng)用
②列車C2等級(jí)轉(zhuǎn)完全模式。
列車在運(yùn)行過程中,通過應(yīng)答器信息中心的應(yīng)答器信號(hào)處理服務(wù),獲取到線路坡度信息、靜態(tài)速度信息、軌道區(qū)段信息和臨時(shí)限速信息等,轉(zhuǎn)換成完全模式。
③列車接收到應(yīng)答器發(fā)送的呼叫RBC指令和C2/C3等級(jí)轉(zhuǎn)換預(yù)告。
列車?yán)^續(xù)運(yùn)行,通過應(yīng)答器信息中心的應(yīng)答器信號(hào)處理服務(wù),獲取呼叫RBC指令和C2轉(zhuǎn)C3等級(jí)預(yù)告報(bào)文。通過無線消息中心的無線消息處理服務(wù),獲取與RBC交互的通信信息。
④列車接收到C2/C3執(zhí)行應(yīng)答器信息。
列車?yán)^續(xù)運(yùn)行,越過C2轉(zhuǎn)C3等級(jí)應(yīng)答器,通過應(yīng)答器信息中心的應(yīng)答器信息處理服務(wù),獲取C2轉(zhuǎn)C3等級(jí)執(zhí)行信息,立即轉(zhuǎn)C3等級(jí)。
⑤列車C3等級(jí)完全運(yùn)行。
列車通過無線消息中心的無線消息處理服務(wù),獲取RBC發(fā)送列車運(yùn)行的行車許可信息,以C3等級(jí)完全模式繼續(xù)運(yùn)行。
在實(shí)際應(yīng)用中,通過搭建實(shí)驗(yàn)平臺(tái)對(duì)基于領(lǐng)域驅(qū)動(dòng)與微服務(wù)框架構(gòu)建的高鐵列控仿真測試系統(tǒng)進(jìn)行驗(yàn)證。實(shí)驗(yàn)平臺(tái)如圖5所示。
圖5 實(shí)驗(yàn)平臺(tái)
實(shí)驗(yàn)平臺(tái)構(gòu)成主要包括客戶端程序、接入層、服務(wù)注冊(cè)中心、服務(wù)配置中心、服務(wù)層和數(shù)據(jù)層??蛻舳顺绦蚴悄M列車在地面線路上運(yùn)行軌跡的仿真程序;接入層主要實(shí)現(xiàn)身份鑒權(quán)和分發(fā)請(qǐng)求;服務(wù)注冊(cè)中心提供服務(wù)注冊(cè)和發(fā)現(xiàn)功能;服務(wù)配置中心提供服務(wù)動(dòng)態(tài)配置和服務(wù)信息更新同步;服務(wù)層包括服務(wù)監(jiān)督與治理、各種業(yè)務(wù)服務(wù)和公共服務(wù);數(shù)據(jù)層包括重要的業(yè)務(wù)數(shù)據(jù)信息。
實(shí)驗(yàn)平臺(tái)采用分布式部署,客戶端程序運(yùn)行在多個(gè)終端PC上,服務(wù)器A包括接入層、服務(wù)注冊(cè)中心和服務(wù)配置中心。服務(wù)器B包括服務(wù)監(jiān)督與治理和公共服務(wù)。服務(wù)器C包括業(yè)務(wù)服務(wù)和數(shù)據(jù)層。微服務(wù)協(xié)同工作原理如下:首先,客戶端向接入層發(fā)送應(yīng)用請(qǐng)求,經(jīng)過接入層身份認(rèn)證后,進(jìn)入服務(wù)網(wǎng)關(guān)。服務(wù)網(wǎng)關(guān)讀取數(shù)據(jù)請(qǐng)求,并從服務(wù)注冊(cè)中心獲取相關(guān)的服務(wù)信息,然后向服務(wù)層分發(fā)請(qǐng)求。服務(wù)層中的微服務(wù)根據(jù)請(qǐng)求調(diào)用數(shù)據(jù)層中的相關(guān)數(shù)據(jù)信息,在經(jīng)過相應(yīng)的業(yè)務(wù)邏輯處理后將結(jié)果返回給客戶端。以高鐵列車C3等級(jí)RBC移交典型場景為例,首先,用戶在ATP車載設(shè)備端通過DMI啟動(dòng)任務(wù)開始流程(SOM),并經(jīng)過身份認(rèn)證登錄后執(zhí)行客戶端程序。服務(wù)端經(jīng)過服務(wù)網(wǎng)關(guān)讀取客戶端的數(shù)據(jù)請(qǐng)求,并通過服務(wù)注冊(cè)中心獲取服務(wù)層中的文件服務(wù)信息,向服務(wù)層文件服務(wù)分發(fā)請(qǐng)求,加載場景線路腳本文件和無線腳本文件,從數(shù)據(jù)層中獲取線路軌道電路信息、應(yīng)答器信息、無線消息等。通過執(zhí)行服務(wù)層中的速度信號(hào)處理服務(wù)、應(yīng)答器信號(hào)處理服務(wù)、軌道電路信號(hào)處理服務(wù)和無線消息處理服務(wù)后,通信服務(wù)將列車速度信息、應(yīng)答器信息、地面軌道電路信息和無線消息發(fā)送給列車ATP車載設(shè)備。列車ATP車載設(shè)備通過用戶操作DMI以C3等級(jí)目視模式發(fā)車,接收到RBC發(fā)送的線路坡度曲線、靜態(tài)速度曲線和行車許可等無線信息后轉(zhuǎn)成完全模式。ATP車載設(shè)備接收到應(yīng)答器中RBC切換命令后,雙電臺(tái)分別與移交RBC和接收RBC進(jìn)行無線連接。當(dāng)列車最小安全后端經(jīng)過RBC移交點(diǎn)時(shí),ATP車載設(shè)備接受結(jié)束與移交RBC通信的命令終止與移交RBC通信,列車以C3等級(jí)完全模式繼續(xù)在接收RBC管轄范圍內(nèi)運(yùn)行。在此期間,客戶端程序界面中能夠?qū)崟r(shí)回顯列車經(jīng)過的軌道電路信息、應(yīng)答器信息、與RBC交互的無線消息、列車速度和列車位置等信息。
業(yè)務(wù)中臺(tái)應(yīng)用在高鐵列控仿真測試系統(tǒng)中能快速響應(yīng)業(yè)務(wù)需求變化。此外,業(yè)務(wù)中臺(tái)主要目標(biāo)之一實(shí)現(xiàn)企業(yè)級(jí)業(yè)務(wù)能力的復(fù)用,將分散在不同業(yè)務(wù)場景重復(fù)建設(shè)的業(yè)務(wù)能力,沉淀到業(yè)務(wù)中臺(tái),實(shí)現(xiàn)業(yè)務(wù)流程融合和能力復(fù)用。綜合上述的高鐵列車C2/C3等級(jí)轉(zhuǎn)換場景和高鐵列車C3等級(jí)RBC移交場景分析,這兩種典型場景多次調(diào)用圖4中5個(gè)能力中心下的同一服務(wù),不同的是根據(jù)列車當(dāng)時(shí)的運(yùn)行等級(jí)和模式,以及列車運(yùn)行過程中調(diào)用相關(guān)服務(wù)接收到不同的應(yīng)答器報(bào)文和無線消息,能夠觸發(fā)不同的業(yè)務(wù)場景處理流程發(fā)生。其他很多場景例如列車過分相等也是類似的處理。通過典型業(yè)務(wù)場景應(yīng)用與分析,基于業(yè)務(wù)中臺(tái)的可復(fù)用業(yè)務(wù)能力,有效地避免了軟件重復(fù)開發(fā)建設(shè),提升了信息系統(tǒng)的開發(fā)與協(xié)同效率,提高了系統(tǒng)的可擴(kuò)展性和可維護(hù)性。同時(shí),遵循“厚中臺(tái)、薄應(yīng)用”思想建設(shè)的業(yè)務(wù)中臺(tái),可根據(jù)新的業(yè)務(wù)需求和設(shè)計(jì),在業(yè)務(wù)中臺(tái)添加新的業(yè)務(wù)能力中心,也可以在既有的業(yè)務(wù)能力中心中添加新的服務(wù),使得業(yè)務(wù)中臺(tái)能快速響應(yīng)業(yè)務(wù)需求變化,大幅提高系統(tǒng)開發(fā)效率,方便了系統(tǒng)的擴(kuò)展和運(yùn)維。
高鐵列控仿真測試系統(tǒng)涉及到大規(guī)模軟硬件開發(fā),且接口眾多結(jié)構(gòu)復(fù)雜。通過領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)和微服務(wù)的結(jié)合,設(shè)計(jì)出一種行之有效的業(yè)務(wù)中臺(tái)模型。與傳統(tǒng)單體架構(gòu)針對(duì)業(yè)務(wù)全流程開發(fā)使得系統(tǒng)存在大量冗余功能缺點(diǎn)的不同,通過業(yè)務(wù)中臺(tái)的可復(fù)用業(yè)務(wù)能力,有效避免了軟件開發(fā)的重復(fù)建設(shè),提高了資源的可重用性和信息的共享性,促進(jìn)了信息系統(tǒng)的開發(fā)與協(xié)同效率,使業(yè)務(wù)系統(tǒng)能快速地響應(yīng)新需求的變化,實(shí)現(xiàn)系統(tǒng)可擴(kuò)展和可維護(hù)性。此外,采用本文提供的中臺(tái)架構(gòu)設(shè)計(jì),在涉及到復(fù)雜信息系統(tǒng)業(yè)務(wù)中臺(tái)軟件建模方面提供了一種實(shí)用的解決方案。