劉 雋,李士祥,朱艷軍
(中國鐵道科學(xué)研究院集團(tuán)有限公司通信信號研究所,北京 100081)
調(diào)度集中是調(diào)度中心(調(diào)度員)對某一區(qū)段內(nèi)的信號設(shè)備進(jìn)行集中控制、對列車運(yùn)行直接指揮、管理的技術(shù)裝備[1]。中國高速鐵路調(diào)度集中系統(tǒng)(簡稱“CTC系統(tǒng)”)是綜合了鐵路信號、通信、運(yùn)輸?shù)葘I(yè)技術(shù)和計(jì)算機(jī)、網(wǎng)絡(luò)等現(xiàn)代信息技術(shù),采用智能化分散自律設(shè)計(jì)原則,以列車運(yùn)行調(diào)整計(jì)劃為中心,以車站運(yùn)行線路信息與相關(guān)管理細(xì)則為約束條件,兼顧列車與調(diào)車作業(yè)流程,高度自動化、智能化的調(diào)度指揮系統(tǒng)[2-4]。
CTC系統(tǒng)核心的分散自律設(shè)計(jì)原則是指將整個(gè)系統(tǒng)的目標(biāo)和任務(wù)事先按一定的方式分配給各子系統(tǒng),然后由子系統(tǒng)間通過數(shù)據(jù)通信進(jìn)行信息交換和相互協(xié)調(diào),獨(dú)立完成目標(biāo)或任務(wù),實(shí)現(xiàn)了設(shè)備分散,功能分散,風(fēng)險(xiǎn)分散,同時(shí)提高了系統(tǒng)的可擴(kuò)展性,便于對系統(tǒng)進(jìn)行重構(gòu),實(shí)時(shí)地動態(tài)分配與管理系統(tǒng),以適應(yīng)不同的線路和環(huán)境要求[5-6]。
CTC系統(tǒng)屬于企業(yè)級綜合性業(yè)務(wù)系統(tǒng),包括信息管理和實(shí)時(shí)控制兩部分,即“管控結(jié)合”類型的計(jì)算機(jī)應(yīng)用系統(tǒng)[7]。CTC中心子系統(tǒng)包括數(shù)據(jù)庫服務(wù)器、應(yīng)用服務(wù)器、接口服務(wù)器等服務(wù)器設(shè)備;調(diào)度員工作站、助理調(diào)度員工作站、綜合維修工作站、計(jì)劃員工作站等用戶終端設(shè)備。CTC車站子系統(tǒng)包括車站自律機(jī)、車站服務(wù)器、車務(wù)終端、電務(wù)維護(hù)終端等設(shè)備[8]。終端、服務(wù)器上運(yùn)行了相應(yīng)的軟件,眾多軟件、硬件分工協(xié)作,共同構(gòu)成了CTC系統(tǒng)網(wǎng)絡(luò)。為確保能夠7×24 h不間斷運(yùn)行,CTC系統(tǒng)在主要設(shè)備上采用了雙機(jī)熱備結(jié)構(gòu),即每一種主要終端或服務(wù)器都由2臺計(jì)算機(jī)組成,且軟、硬件的配置保持一致,它們以主、備用機(jī)的形式作為一個(gè)整體對外提供計(jì)算服務(wù)[9]。同時(shí),CTC系統(tǒng)通過多種接口形式與其他相關(guān)系統(tǒng)進(jìn)行調(diào)度信息的實(shí)時(shí)共享。
從上述功能與結(jié)構(gòu)上看,無論終端還是服務(wù)器軟件,都要實(shí)現(xiàn)通信、雙機(jī)同步、主備裁決等基本功能。為降低設(shè)計(jì)和開發(fā)工作量,優(yōu)化軟件架構(gòu),提高執(zhí)行效率,實(shí)現(xiàn)代碼復(fù)用,CTC系統(tǒng)采用了企業(yè)級應(yīng)用系統(tǒng)常用的分層架構(gòu)。分層架構(gòu)(Layered Architecture)是指將應(yīng)用邏輯分解為不同的層。每一層中的組件處于一個(gè)特定的抽象層次上,在本層內(nèi)保持內(nèi)聚性,對其下各層保持松耦合性。分層架構(gòu)體現(xiàn)了“職責(zé)分離”的思想,對相應(yīng)的職責(zé)進(jìn)行分組,有助于提高系統(tǒng)的可理解性和可維護(hù)性[10-12]。
CTC系統(tǒng)分層架構(gòu)的底層是分布式的“基礎(chǔ)服務(wù)平臺”,在CTC系統(tǒng)的每一個(gè)終端、服務(wù)器上都部署基礎(chǔ)服務(wù)平臺的節(jié)點(diǎn)軟件,在基礎(chǔ)服務(wù)平臺之上構(gòu)建終端和服務(wù)器應(yīng)用軟件;由基礎(chǔ)服務(wù)平臺實(shí)現(xiàn)通信、雙機(jī)同步、主備裁決等基本功能,并以服務(wù)的形式提供給上層的應(yīng)用軟件;應(yīng)用軟件在基礎(chǔ)服務(wù)平臺的支持下,專注于進(jìn)行調(diào)度業(yè)務(wù)邏輯的處理及調(diào)度業(yè)務(wù)信息的集中展現(xiàn)。圖1表示了CTC系統(tǒng)分層架構(gòu)中軟件在各層中的部署情況。
圖1 CTC系統(tǒng)的分層架構(gòu)
多智能體(multi-agent)技術(shù)主要用于系統(tǒng)的控制決策,其目標(biāo)是讓若干個(gè)具備簡單智能卻便于管理控制的系統(tǒng)能通過相互協(xié)作實(shí)現(xiàn)復(fù)雜智能,使得在降低系統(tǒng)建模復(fù)雜性的同時(shí),提高魯棒性、可靠性、靈活性。因此,幾乎所有涉及智能推理、規(guī)劃決策、協(xié)同控制等領(lǐng)域的相關(guān)問題均可以通過多智能體技術(shù)來處理[13]。近年來,多智能體被引入到列車運(yùn)行控制研究領(lǐng)域,例如,文獻(xiàn)[14-17]將多智能體技術(shù)應(yīng)用于列控系統(tǒng)的建模與仿真研究中,文獻(xiàn)[18]關(guān)注多智能體技術(shù)在列車追蹤運(yùn)行方面的運(yùn)用,文獻(xiàn)[19]采用多智能體技術(shù)設(shè)計(jì)聯(lián)鎖系統(tǒng)的框架,文獻(xiàn)[20]描述了多智能體技術(shù)在客運(yùn)專線運(yùn)營調(diào)度系統(tǒng)上的應(yīng)用。但未見將多智能體技術(shù)應(yīng)用在CTC系統(tǒng)設(shè)計(jì)方面的相關(guān)文獻(xiàn)。
因此,在分析CTC系統(tǒng)對基礎(chǔ)服務(wù)需求的基礎(chǔ)上,提出基于多智能體系統(tǒng)架構(gòu)的基礎(chǔ)服務(wù)平臺設(shè)計(jì)方案,將智能體方法和面向?qū)ο蠓治雠c設(shè)計(jì)方法相結(jié)合,進(jìn)行系統(tǒng)分析與建模,通過軟件設(shè)計(jì)模式、多線程等技術(shù)確保基礎(chǔ)服務(wù)平臺能夠滿足可擴(kuò)展性、可靠性等方面的要求。
由于CTC系統(tǒng)中的各類應(yīng)用軟件之間,CTC系統(tǒng)與其他系統(tǒng)之間,以及雙機(jī)結(jié)構(gòu)中的主備機(jī)之間,都需進(jìn)行大量、實(shí)時(shí)的信息交換,基礎(chǔ)服務(wù)平臺首要的功能就是提供多種類型的通信服務(wù)[21]。歸納起來,通信類型以及應(yīng)用范圍見表1。
表1 通信模式匯總
表1中,“本機(jī)通信”是應(yīng)用軟件與基礎(chǔ)服務(wù)平臺之間的通信;“內(nèi)網(wǎng)通信”是CTC網(wǎng)絡(luò)內(nèi)各終端、服務(wù)器之間的通信;“外網(wǎng)通信”是CTC與聯(lián)鎖、列控、TDCS等系統(tǒng)之間的通信;“雙機(jī)通信”是雙機(jī)結(jié)構(gòu)中的主備機(jī)之間的通信。由于上層的不同類型的應(yīng)用軟件對通信的需求不盡相同,作為通信服務(wù)提供者的基礎(chǔ)服務(wù)平臺要能夠靈活、便捷地滿足應(yīng)用軟件的需求。
由于采用雙機(jī)熱備結(jié)構(gòu),要求運(yùn)行在上層的應(yīng)用軟件處于主用或者備用狀態(tài)時(shí),內(nèi)部執(zhí)行邏輯相同,界面內(nèi)容一致,但用戶操作權(quán)限不同,對外輸出數(shù)據(jù)有別。應(yīng)用軟件是否作以主用狀態(tài)運(yùn)行需底層平臺向它們發(fā)出主備狀態(tài)命令,因此,基礎(chǔ)服務(wù)平臺應(yīng)具備對雙機(jī)系統(tǒng)的主備狀態(tài)自動裁決功能。
主備裁決的前提是感知每臺計(jì)算機(jī)當(dāng)前的工作狀態(tài),這就要求基礎(chǔ)服務(wù)平臺能夠?qū)τ?jì)算機(jī)的軟、硬件運(yùn)行狀態(tài)進(jìn)行實(shí)時(shí)的監(jiān)測、匯總,并生成統(tǒng)一的狀態(tài)報(bào)告。
基礎(chǔ)服務(wù)平臺提供的上述各項(xiàng)功能都不是獨(dú)立存在的,相互之間具有較密切的關(guān)聯(lián),例如,通信服務(wù)狀態(tài)需要被納入狀態(tài)監(jiān)測的范圍,主備裁決需用到單播通信服務(wù),而狀態(tài)報(bào)告也是主備裁決必不可少的輸入信息。由此可見,如何將上述功能進(jìn)行有機(jī)的集成也是對基礎(chǔ)服務(wù)平臺提出的一項(xiàng)重要需求。
經(jīng)過對需求的統(tǒng)一整理與分析,得到了基礎(chǔ)服務(wù)平臺的各功能模塊之間的結(jié)構(gòu)關(guān)系,如圖2所示。
圖2 功能模塊關(guān)系
基礎(chǔ)服務(wù)平臺的每個(gè)節(jié)點(diǎn)軟件都應(yīng)具備上述結(jié)構(gòu),且在其宿主機(jī)上獨(dú)立運(yùn)行,其中各模塊負(fù)責(zé)內(nèi)容如下所述。
狀態(tài)監(jiān)測模塊負(fù)責(zé)對宿主機(jī)的軟、硬件運(yùn)行狀態(tài)進(jìn)行統(tǒng)一監(jiān)測;
狀態(tài)報(bào)告模塊負(fù)責(zé)依據(jù)狀態(tài)監(jiān)測結(jié)果生成狀態(tài)報(bào)告,并提供給主備裁決模塊;
主備裁決模塊負(fù)責(zé)根據(jù)本機(jī)狀態(tài)報(bào)告、對等機(jī)狀態(tài)報(bào)告等信息進(jìn)行綜合運(yùn)算,裁決宿主機(jī)的主備狀態(tài);
通信管理模塊負(fù)責(zé)建立、管理通信通道,接收、發(fā)送信息;
配置管理模塊負(fù)責(zé)依據(jù)平臺節(jié)點(diǎn)軟件的配置文件內(nèi)容,在啟動階段對其他模塊的啟動流程、運(yùn)行參數(shù)統(tǒng)一管理。因此,該模塊以控制流的方式與其他模塊建立聯(lián)系。
從需求最終成為實(shí)用的產(chǎn)品,需經(jīng)歷分析、設(shè)計(jì)、開發(fā)、測試等一系列密切相關(guān)的過程,這其中要解決的關(guān)鍵問題是:首先,要在設(shè)計(jì)階段確定基礎(chǔ)服務(wù)平臺的總體架構(gòu),架構(gòu)決定了平臺的執(zhí)行效率、安全性以及擴(kuò)展性,是平臺能否成功的關(guān)鍵;其次,要在開發(fā)階段明確采用哪些具體的軟件開發(fā)技術(shù)來實(shí)現(xiàn)平臺中的各個(gè)功能模塊,這些技術(shù)決定了平臺對外提供服務(wù)的質(zhì)量。
依照分散自律設(shè)計(jì)原則,通過分析雙機(jī)結(jié)構(gòu)中基礎(chǔ)服務(wù)平臺兩個(gè)節(jié)點(diǎn)軟件之間,以及每個(gè)節(jié)點(diǎn)軟件與其他節(jié)點(diǎn)軟件之間的關(guān)系,可以確定節(jié)點(diǎn)軟件應(yīng)具備以下特點(diǎn)。
自主性:在沒有外界環(huán)境或其他節(jié)點(diǎn)軟件干預(yù)的情況下,平臺中的每個(gè)節(jié)點(diǎn)軟件都能夠自主地完成其主要功能,例如,配置管理、通信、狀態(tài)監(jiān)測,并且能夠控制其內(nèi)部的狀態(tài)。
社會性:節(jié)點(diǎn)軟件能夠主動和其他節(jié)點(diǎn)軟件交互,以實(shí)現(xiàn)其既定的目標(biāo),例如,通信、狀態(tài)報(bào)告。
被動響應(yīng)能力:節(jié)點(diǎn)軟件能夠感知周圍環(huán)境的變化,并且能夠依據(jù)一定的規(guī)則產(chǎn)生實(shí)時(shí)響應(yīng),例如,狀態(tài)監(jiān)測、狀態(tài)報(bào)告。
主動響應(yīng)能力:為實(shí)現(xiàn)自身目標(biāo),節(jié)點(diǎn)軟件能夠主動執(zhí)行一些操作,例如,主備裁決[18]。
經(jīng)分析所得的結(jié)論是,基礎(chǔ)服務(wù)平臺節(jié)點(diǎn)軟件的上述特點(diǎn)符合智能體的定義,即“智能體(Agent)是處于某個(gè)特定的環(huán)境下的計(jì)算機(jī)系統(tǒng),該系統(tǒng)可根據(jù)自身對環(huán)境的感知,按照已有的知識或通過自主學(xué)習(xí),并與其他智能體進(jìn)行溝通協(xié)作,在其所處的環(huán)境自主地完成設(shè)定的目標(biāo)[13]。因此,完全可以采用智能體方法進(jìn)行節(jié)點(diǎn)軟件的設(shè)計(jì)。
利用智能體技術(shù)實(shí)現(xiàn)基礎(chǔ)服務(wù)平臺的首要步驟是確定節(jié)點(diǎn)軟件與智能體之間的映射關(guān)系。在面向?qū)ο蠓治雠c設(shè)計(jì)方法(Object Oriented Analysis & Design)中,對象(Object)被定義為一個(gè)計(jì)算實(shí)體,封裝了一些狀態(tài),可以在這些狀態(tài)下執(zhí)行某些動作和方法,且可以通過信息進(jìn)行通信,所以對象和智能體有許多相似之處。同時(shí),面向?qū)ο蠓椒ㄖ袕V泛使用的繼承、多態(tài)、泛化、組合等技術(shù),可以有效提高系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)的效率和可靠性[20]。因此,在基礎(chǔ)服務(wù)平臺的分析和設(shè)計(jì)過程中,采用了面向?qū)ο笈c智能體相結(jié)合的設(shè)計(jì)方法,并完成了節(jié)點(diǎn)智能體的建模,即依照智能體元素(包括感知、動作、目標(biāo)、計(jì)劃、事件、信念)規(guī)劃節(jié)點(diǎn)軟件功能模塊,以面向?qū)ο蟮腢ML方法表達(dá)功能模塊的關(guān)系模型。智能體元素與功能模塊的對應(yīng)關(guān)系如表2所示。
表2 智能體元素與功能模塊對應(yīng)關(guān)系
圖3是節(jié)點(diǎn)智能體UML用例。圖3中定義了節(jié)點(diǎn)智能體中各個(gè)功能模塊之間實(shí)際的相互關(guān)系,其中,uses代表調(diào)用關(guān)系,extends代表擴(kuò)展關(guān)系,并用箭頭表明了方向。
圖3 節(jié)點(diǎn)智能體用例
與圖2相比,圖3中增加了一個(gè)“知識庫”功能模塊,智能體的其他功能模塊都需要通過調(diào)用知識庫來完成自身的功能。由于智能體具有自主性、社會性、主被動響應(yīng)等屬性,因而需要內(nèi)建知識庫,在運(yùn)行過程中通過知識庫有計(jì)劃指導(dǎo)動作的執(zhí)行,實(shí)現(xiàn)既定的自律目標(biāo)。目前,知識庫內(nèi)主要儲備了雙機(jī)主備裁決原則、信息流管理規(guī)則、信息過濾規(guī)則、監(jiān)測點(diǎn)特征信息、狀態(tài)報(bào)告算法等知識。節(jié)點(diǎn)智能體所執(zhí)行的任務(wù)不同,因此,其內(nèi)部知識庫內(nèi)容在整個(gè)平臺中是獨(dú)一無二的,也就是說平臺中的每個(gè)智能體都是唯一的。每一個(gè)智能體既要實(shí)現(xiàn)自身的服務(wù)目標(biāo),又要通過與其他智能體的交互,共同實(shí)現(xiàn)一個(gè)總體目標(biāo),這樣它們就以多智能體系統(tǒng)架構(gòu)方式共同構(gòu)建了一個(gè)完整的分布式基礎(chǔ)服務(wù)平臺。
由于基礎(chǔ)服務(wù)平臺是由多個(gè)節(jié)點(diǎn)智能體組成,整個(gè)平臺就構(gòu)成了一個(gè)多智能體系統(tǒng)。多智能體系統(tǒng)是指:可以相互協(xié)作的多個(gè)簡單智能體為完成某些全局或者局部目標(biāo),使用相關(guān)技術(shù)組成的分布式智能系統(tǒng)[13]。多智能體系統(tǒng)的研究方法實(shí)際是用模擬人類社會系統(tǒng)的運(yùn)作機(jī)制,采用多個(gè)智能體進(jìn)行協(xié)作,通過任務(wù)分解和任務(wù)協(xié)調(diào)來提高整個(gè)系統(tǒng)的能力。同時(shí),通過多智能體之間的合作還可以克服單個(gè)智能體知識不完全、處理信息不確定等缺點(diǎn),因此,多智能體系統(tǒng)是適合于基礎(chǔ)服務(wù)平臺這類分布式系統(tǒng)的架構(gòu)方案。
在多智能體系統(tǒng)中,由于未設(shè)置能夠進(jìn)行全局控制的角色,數(shù)據(jù)是分散存儲在各個(gè)智能體中的,每個(gè)智能體內(nèi)部的運(yùn)算也是異步進(jìn)行的,因而,每個(gè)智能體所具備的能力和掌握的信息都是不完整的。為達(dá)到既定的總體目標(biāo),多智能體系統(tǒng)中的每一智能體個(gè)體,除前面提到的自主性、社會性、響應(yīng)能力,還應(yīng)該具備以下特點(diǎn)。
面向目標(biāo)性:每個(gè)智能體都有一個(gè)具體的目標(biāo),確保為CTC系統(tǒng)提供可靠、高效的服務(wù)。
協(xié)作性:一個(gè)智能體所需實(shí)現(xiàn)的目標(biāo)只是總體目標(biāo)的組成部分。對于不同的智能體,它們的目標(biāo)之間有可能存在沖突,例如,雙機(jī)結(jié)構(gòu)中的A、B機(jī)都要成為主用機(jī)。這就需要智能體之間通過協(xié)商的方式來共同實(shí)現(xiàn)系統(tǒng)的總體目標(biāo)。
綜合以上分析,用圖示方法給出基礎(chǔ)服務(wù)平臺中各類智能體之間關(guān)系與交互內(nèi)容的架構(gòu)方案,如圖4所示。
圖4 基礎(chǔ)服務(wù)平臺節(jié)點(diǎn)智能體之間的交互關(guān)系方案
圖4中,宿主機(jī)-A、宿主機(jī)-B以及在其中運(yùn)行的應(yīng)用軟件、節(jié)點(diǎn)智能體軟件共同構(gòu)成了CTC系統(tǒng)中的一套雙機(jī)主備結(jié)構(gòu)。圖示內(nèi)容展現(xiàn)了宿主機(jī)內(nèi)節(jié)點(diǎn)智能體與應(yīng)用軟件之間、雙機(jī)節(jié)點(diǎn)智能體之間,以及節(jié)點(diǎn)智能體與平臺中其他節(jié)點(diǎn)智能體之間的關(guān)系和主要的信息流內(nèi)容,箭頭方向代表了信息流向,這是設(shè)計(jì)智能體模型結(jié)構(gòu)、通信機(jī)制、交互原語、協(xié)商機(jī)制的基本依據(jù)。下面根據(jù)信息流編號進(jìn)行說明。
(1)8號信息流表示節(jié)點(diǎn)智能體發(fā)送給應(yīng)用軟件的主備狀態(tài)命令。
(2)9號信息流是應(yīng)用軟件發(fā)出的心跳信息。
(3)10號信息流是應(yīng)用軟件之間發(fā)送和接收的調(diào)度業(yè)務(wù)數(shù)據(jù)。
(4)11號信息流是節(jié)點(diǎn)智能體從宿主機(jī)獲得的運(yùn)行狀態(tài)信息。
(5)12號信息流是節(jié)點(diǎn)智能體轉(zhuǎn)發(fā)的調(diào)度業(yè)務(wù)數(shù)據(jù)。
(6)13號信息流是節(jié)點(diǎn)智能體發(fā)出的狀態(tài)報(bào)告信息。
(7)14號信息流是來自其他節(jié)點(diǎn)智能體的狀態(tài)報(bào)告信息。
(8)15號信息流是雙機(jī)間的心跳信息。
(9)16號信息流是雙機(jī)間的同步數(shù)據(jù)。
除主要的調(diào)度業(yè)務(wù)數(shù)據(jù)、雙機(jī)同步數(shù)據(jù),智能體與應(yīng)用軟件之間、雙機(jī)智能體之間、平臺中的各節(jié)點(diǎn)智能體之間通過命令、心跳、狀態(tài)報(bào)告等信息進(jìn)行實(shí)時(shí)、廣泛的通信聯(lián)絡(luò),以共同協(xié)商、協(xié)作的方式,遵從智能體知識庫中內(nèi)建的規(guī)則與算法,實(shí)現(xiàn)基礎(chǔ)服務(wù)平臺對外提供服務(wù)的總體目標(biāo)。
基礎(chǔ)服務(wù)平臺的多智能體架構(gòu)設(shè)計(jì)屬于系統(tǒng)的宏觀方面,而智能體功能模塊的實(shí)現(xiàn)則是具體的微觀部分。
在智能體主要功能模塊的實(shí)現(xiàn)過程中,軟件設(shè)計(jì)模式(Software Design Pattern)、多線程(Multithreading)等軟件開發(fā)技術(shù)得到了廣泛的應(yīng)用,并且在軟件擴(kuò)展性、結(jié)構(gòu)穩(wěn)定性,以及代碼執(zhí)行效率等方面起到了關(guān)鍵性的作用。
軟件設(shè)計(jì)模式是為解決軟件開發(fā)領(lǐng)域中多種重復(fù)出現(xiàn)的經(jīng)典問題而提出的解決方案,通過對面向?qū)ο缶幊探?jīng)驗(yàn)的總結(jié),體現(xiàn)了軟件設(shè)計(jì)技巧中最重要的方法和原則。不斷變化的需求是軟件設(shè)計(jì)需要不斷面對的問題,其解決之道就是封裝變化。設(shè)計(jì)模式通過尋找軟件中可能存在的“變化”,利用抽象的方法對這些變化進(jìn)行封裝。由于抽象不涉及具體的實(shí)現(xiàn),代表了一種無限的可能性,使得軟件系統(tǒng)能夠以擴(kuò)展的方式滿足未來的需求變化。
工廠方法(Factory Method)模式通過定義一個(gè)用于創(chuàng)建對象的接口,讓子類決定實(shí)例化哪一個(gè)類。在配置管理模塊中,從配置文件中讀取信息,利用工廠方法依次將狀態(tài)監(jiān)測、狀態(tài)報(bào)告、主備裁決等模塊啟動執(zhí)行;在通信管理模塊中,具體的TCP、UDP、SerialPort通信類的實(shí)例化操作也是通過工廠方法實(shí)現(xiàn)的。
觀察者(Observer)模式定義對象的一種一對多的依賴關(guān)系,當(dāng)一個(gè)對象的狀態(tài)發(fā)生變化時(shí),所有依賴于它的對象都得到通知并自動更新。當(dāng)以太網(wǎng)卡、串口、應(yīng)用軟件、通信通道等被監(jiān)測對象的運(yùn)行狀態(tài)發(fā)生變化時(shí),狀態(tài)監(jiān)測模塊是以觀察者模式獲得的狀態(tài)變化通知;在通信管理模塊中,當(dāng)通信對象收到了有效信息,也是以觀察者模式給具體的信息處理對象發(fā)送通知。
狀態(tài)(State)模式允許一個(gè)對象在其內(nèi)部狀態(tài)改變時(shí)改變它的行為,對象看起來似乎修改了它的類。主備裁決模塊完全以狀態(tài)模式構(gòu)建,通過不間斷從狀態(tài)報(bào)告模塊、其他節(jié)點(diǎn)智能體獲得信息,對自身所處的環(huán)境進(jìn)行實(shí)時(shí)判斷,并確定本節(jié)點(diǎn)智能體當(dāng)前應(yīng)該進(jìn)入的狀態(tài)。
多線程是軟件在運(yùn)行過程中并發(fā)執(zhí)行多個(gè)線程的技術(shù)。該技術(shù)充分利用了計(jì)算機(jī)的計(jì)算資源,尤其是對中央處理器的時(shí)間片使用率進(jìn)行了優(yōu)化,因而,能夠提高軟件的整體運(yùn)行效率,同時(shí)也增強(qiáng)了軟件的靈活性。
從表1可以看出,一個(gè)智能體的通信管理模塊要應(yīng)對來自不同通信方向、不同通信方式的信息。為滿足大數(shù)據(jù)量、實(shí)時(shí)處理的通信請求,節(jié)點(diǎn)智能體中的每個(gè)通信通道都分配了至少一個(gè)獨(dú)立的線程,負(fù)責(zé)執(zhí)行數(shù)據(jù)接收與發(fā)送任務(wù),同時(shí)還有多個(gè)后臺線程負(fù)責(zé)信息轉(zhuǎn)發(fā)、過濾,以及通信對象狀態(tài)監(jiān)視。
上述兩項(xiàng)技術(shù)在平臺的開發(fā)過程中并不總是獨(dú)立運(yùn)用的,例如,在主備裁決模塊中,通過設(shè)計(jì)模式與多線程的融合,最終實(shí)現(xiàn)了多線程狀態(tài)模式:設(shè)置一個(gè)獨(dú)立的監(jiān)視線程,負(fù)責(zé)監(jiān)視當(dāng)前狀態(tài)的執(zhí)行情況以及管理狀態(tài)之間的切換過程;設(shè)置一個(gè)狀態(tài)執(zhí)行線程,在監(jiān)視線程的控制下負(fù)責(zé)執(zhí)行具體的當(dāng)前狀態(tài)運(yùn)算代碼。不同類型技術(shù)的綜合運(yùn)用,加強(qiáng)了節(jié)點(diǎn)智能體及整個(gè)基礎(chǔ)服務(wù)平臺的執(zhí)行效率與穩(wěn)定性。
基礎(chǔ)服務(wù)平臺目前已應(yīng)用于“高鐵信號綜合仿真測試系統(tǒng)”(簡稱“測試系統(tǒng)”)中,該系統(tǒng)是涵蓋聯(lián)鎖、列控、調(diào)度集中、無線閉塞中心等關(guān)鍵信號安全設(shè)備的虛實(shí)結(jié)合的綜合測試平臺,其設(shè)計(jì)目標(biāo)是加強(qiáng)系統(tǒng)間的試驗(yàn)驗(yàn)證,優(yōu)化現(xiàn)場驗(yàn)證方案,降低施工安全風(fēng)險(xiǎn)。測試系統(tǒng)按照功能可從下到上依次分為:半真實(shí)半仿真系統(tǒng)層、真實(shí)設(shè)備適配層、測試驅(qū)動管理層。其中,實(shí)物設(shè)備包括聯(lián)鎖、列控中心、TSRS、CTC、RBC、ATP車載設(shè)備、安全數(shù)據(jù)網(wǎng)和GSM-R網(wǎng)絡(luò)設(shè)備?;A(chǔ)服務(wù)平臺即位于CTC系統(tǒng)中,實(shí)現(xiàn)了調(diào)度集中模式下的分散自律控制。測試系統(tǒng)的結(jié)構(gòu)如圖5所示。
圖5 高鐵信號綜合仿真測試系統(tǒng)結(jié)構(gòu)
高速鐵路調(diào)度指揮是涉及多種業(yè)務(wù)、多個(gè)層次、多項(xiàng)因素,復(fù)雜的實(shí)時(shí)運(yùn)輸資源調(diào)度工作,為確保高速鐵路調(diào)度集中系統(tǒng)能夠充分發(fā)揮作用,提高調(diào)度指揮效能,將分散自律原則的理論研究與具體運(yùn)用相結(jié)合,首次提出了基于多智能體架構(gòu)的基礎(chǔ)服務(wù)平臺方案。其目的在于充分利用多智能體技術(shù)解決分布式問題,尤其是其在交通控制方面具有的優(yōu)勢,提高調(diào)度指揮的智能化水平,填補(bǔ)了在CTC設(shè)計(jì)與實(shí)現(xiàn)領(lǐng)域應(yīng)用多智能體技術(shù)的空白。由于全面采用智能體設(shè)計(jì)思想,結(jié)合面向?qū)ο蠓治雠c設(shè)計(jì)方法,以及設(shè)計(jì)模式、多線程等具體的軟件開發(fā)技術(shù),基礎(chǔ)服務(wù)平臺的開發(fā)效率得到了有效提升,平臺的可用性和可靠性也得到了充分保證。本方案已在高速信號綜合仿真測試系統(tǒng)中應(yīng)用,并得到測試與驗(yàn)證,將多智能體架構(gòu)應(yīng)用于調(diào)度指揮系統(tǒng)的構(gòu)建,并與其他軟件開發(fā)技術(shù)綜合運(yùn)用,在實(shí)踐中是切實(shí)可行的,同時(shí)為未來進(jìn)行智能化調(diào)度系統(tǒng)的設(shè)計(jì)與開發(fā)積累了寶貴的經(jīng)驗(yàn)。