陳景柱 謝志林 劉學縱 鞏林玉 王圣根
(卡斯柯信號有限公司,200071,上海∥第一作者,工程師)
目前,城市軌道交通線路正朝著網(wǎng)絡(luò)化方向發(fā)展,網(wǎng)絡(luò)化運營管理成為軌道交通發(fā)展必然趨勢。從體系化建設(shè)的理念出發(fā),構(gòu)建出一個實現(xiàn)城市軌道交通網(wǎng)絡(luò)化管理預警機制,確保整個軌道交通網(wǎng)“安全、可靠、高效”運行,能夠提供信息化的運營協(xié)調(diào)指揮功能、狀態(tài)監(jiān)測預警功能、維護保障功能、信息資源管理功能的完整的網(wǎng)絡(luò)體系至關(guān)重要。
建立一個依靠先進的技術(shù)手段實現(xiàn)對網(wǎng)絡(luò)中各種運營設(shè)施、設(shè)備系統(tǒng)、固定資產(chǎn)的統(tǒng)一管理和維護的平臺,依靠這個平臺實現(xiàn)設(shè)施設(shè)備統(tǒng)籌維護、應(yīng)急搶修統(tǒng)一執(zhí)行、網(wǎng)絡(luò)物資統(tǒng)一供應(yīng)、網(wǎng)絡(luò)安全統(tǒng)一監(jiān)測、網(wǎng)絡(luò)資產(chǎn)統(tǒng)一管理十分必要。通過這個平臺解決路網(wǎng)安全信息孤立分散、缺乏基于系統(tǒng)安全態(tài)勢分析的預警及隱患識別能力的問題,為網(wǎng)絡(luò)化運營的安全保障提供全數(shù)字化信息、安全綜合管理技術(shù)支撐。
在《基于城市軌道交通運輸組織、控制及保障一體化關(guān)鍵技術(shù)與系統(tǒng)研制》的課題中,研制出主動維保系統(tǒng)子系統(tǒng)下的城市軌道交通安監(jiān)平臺。該平臺從面向服務(wù)的架構(gòu)出發(fā),匯聚信號監(jiān)測系統(tǒng)、綜合監(jiān)控系統(tǒng) 、車輛系統(tǒng)、橋梁、隧道、工務(wù)監(jiān)測系統(tǒng)和車載監(jiān)測系統(tǒng)的關(guān)鍵設(shè)備狀態(tài)信息和健康狀態(tài)信息,實現(xiàn)各專業(yè)信息的匯聚和聯(lián)動,解決各專業(yè)系統(tǒng)間信息的有效、可靠、實時通信,對系統(tǒng)中的關(guān)鍵設(shè)備狀態(tài)統(tǒng)一管理和維護,形成一個統(tǒng)一的在線監(jiān)測數(shù)據(jù)應(yīng)用平臺和在線監(jiān)測設(shè)備狀態(tài)監(jiān)控平臺。本文的創(chuàng)新在于采用面向服務(wù)架構(gòu)和中間件技術(shù)將城市軌道交通線路下各個不同專業(yè)信息利用實時庫進行梳理和匯聚,根據(jù)業(yè)務(wù)要求進行分類處理,搭建了一個統(tǒng)一的數(shù)據(jù)處理平臺,方便地利用統(tǒng)一的通道傳送給主動維保系統(tǒng)等上層應(yīng)用系統(tǒng),屏蔽平臺異構(gòu)和數(shù)據(jù)異構(gòu)。
面向服務(wù)的體系結(jié)構(gòu) (service-oriented architecture,簡為SOA)是一個組件模型,它將應(yīng)用程序的不同功能單元(下文稱為服務(wù))通過這些服務(wù)之間定義良好的接口和契約聯(lián)系起來。接口是用中立的方式進行定義的,獨立于實現(xiàn)服務(wù)的硬件平臺、操作系統(tǒng)和編程語言。這使得構(gòu)建在不同系統(tǒng)中的服務(wù)可以通過統(tǒng)一和通用的方式進行交互,不必要考慮其后臺具體的實現(xiàn)技術(shù)和運行平臺等??梢詫崿F(xiàn)技術(shù)標準化和平臺一致性。SOA為解決異構(gòu)資源的統(tǒng)一訪問提供了很好的架構(gòu)。
Web Service是一個獨立、松耦合、自包含的、基于可編程的Web的應(yīng)用平臺??墒褂瞄_放的XML標準來描述、發(fā)布、發(fā)現(xiàn)、協(xié)調(diào)和配置這些應(yīng)用程序,用于開發(fā)分布式互操作的應(yīng)用程序。
Web Service是一個分布式計算模型,是Web數(shù)據(jù)和信息集成的有效機制,是一套開放標準[2],包括了SOAP(簡單對象訪問協(xié)議)、WSDL(服務(wù)描述)、UDDI(發(fā)現(xiàn)與集成服務(wù))以及補充的 Web Service等規(guī)范,可促進SOA更加廣泛應(yīng)用。
圖1為Web Service的服務(wù)關(guān)系。服務(wù)提供者實現(xiàn) Web服務(wù)的定義,用 Web服務(wù)描述語言WSDL(Web Service Description Language)對服務(wù)進行描述,并在服務(wù)注冊代理中使用通用描述、發(fā)現(xiàn)與集成服務(wù) UDDI(Universal Description,Discovery and Integration)進行注冊,UDDI起著目錄服務(wù)器的作用,用于集中存放和查找WSDL描述文件。服務(wù)的請求者利用服務(wù)注冊代理查找所需的服務(wù),當找到所需服務(wù)時,服務(wù)注冊代理向其提供WSDL,然后使用服務(wù)描述與服務(wù)提供者進行綁定,并提供相應(yīng)的Web服務(wù)。圖2為Web Service協(xié)議結(jié)構(gòu)。服務(wù)通過HTTP/SMTP或者其他協(xié)議訪問Web系統(tǒng),數(shù)據(jù)基于XML形式的,當獲得XML文檔后,只需要通過強類型轉(zhuǎn)化即可將XML文檔映射成數(shù)據(jù)庫中數(shù)據(jù)表一樣的結(jié)構(gòu),在 Web Service中添加一個Web方法即可處理XML文檔,使用WSDL描述服務(wù),使用UDDI發(fā)布和查找服務(wù),采用SOAP協(xié)議執(zhí)行服務(wù)調(diào)用。
圖1 Web Service的服務(wù)關(guān)系
1.3.1 中間件
圖2 Web Service協(xié)議結(jié)構(gòu)
中間件位于服務(wù)器/客戶機的操作系統(tǒng)之上,是獨立于系統(tǒng)軟件和服務(wù)的程序,是連接2個及以上獨立應(yīng)用程序或獨立系統(tǒng)的軟件,管理著計算機資源和網(wǎng)絡(luò)通信。相連接的系統(tǒng),即使它們具有不同的接口,但通過中間件相互之間仍能交換信息和共享資源。通過中間件,應(yīng)用程序可以工作于多平臺或多 OS(操作系統(tǒng))環(huán)境[3]。
1.3.2 CORBA簡述
公共對象請求代理體系結(jié)構(gòu)(Common Object Request Broker Architecture,簡為 CORBA)是由OMG(對象管理組織)組織制訂的一種標準的面向?qū)ο髴?yīng)用程序體系規(guī)范。CORBA體系結(jié)構(gòu)是OMG為解決分布式處理環(huán)境(DCE)中,硬件和軟件系統(tǒng)的互連而提出的一種解決方案。CORBA利用分布式計算和面向?qū)ο笥嬎阆嘟Y(jié)合的方式,引入“代理”概念。
1.3.3 ORB和IDL
對象請求代理(Object Request Broker,簡為ORB)是CORBA的通信核心,CORBA的核心組件。ORB提供了識別和定位對象、處理連接管理、傳送數(shù)據(jù)和請求通信所需的框架結(jié)構(gòu)。ORB是一個便于實現(xiàn)不同軟硬件平臺上的互操作和集成的軟件總線。在分布式系統(tǒng)中,ORB抽象了遠程方法調(diào)用的內(nèi)在復雜性,使其獨立于編程語言、網(wǎng)絡(luò)協(xié)議和軟硬件平臺[4]。CORBA體系規(guī)范中定義了包括面向?qū)ο笙到y(tǒng)和分布式系統(tǒng)在內(nèi)的多種服務(wù),如對象命名服務(wù)、事件服務(wù)、通知服務(wù)等。
接口描述語言(Interface description language,簡為IDL),是CORBA規(guī)范的一部分,是跨平臺開發(fā)的基礎(chǔ)。IDL是用來描述軟件組件接口的一種計算機語言。IDL通過一種中立的方式來描述接口,使得在不同平臺上運行的對象和用不同語言編寫的程序可以相互通信交流;IDL向ORB提供了與操作系統(tǒng)和編程語言無關(guān)的接口。
1.3.4 CORBA通信機制
為了保證在不同的CORBA產(chǎn)品基礎(chǔ)之上構(gòu)建的分布式對象可以相互通信,如圖3所示,Client和Server通過ORB進行通信。一般的運行流程是Client把請求發(fā)送給ORB,ORB再把請求發(fā)送給Server,Server把返回結(jié)果發(fā)送給ORB,ORB再把返回結(jié)果發(fā)送給是Client。ORB可以說是Client和Server之間的翻譯者。CORBA提供IDL到C、C++和JAVA編程語言的映射,即使Client和Server使用不同的編程語言編寫,只要是符合相同的IDL定義,ORB也可以完成相互的通信。
圖3 CORBA通信機制
安監(jiān)平臺以城市軌道交通基礎(chǔ)設(shè)施監(jiān)測、失效預警及主動維保系統(tǒng)的核心需求,以及對設(shè)備狀態(tài)信息、健康狀態(tài)信息等的需求為主線,并結(jié)合目前運營管理、維護保障體系。主動維保系統(tǒng)包括了設(shè)備管理平臺、主動維保平臺和安監(jiān)平臺。
安監(jiān)平臺所處的系統(tǒng)整體共分為上層、中間層和下層3層結(jié)構(gòu)(見圖4):下層主要包括綜合監(jiān)控(ISCS)、車輛系統(tǒng)、信號系統(tǒng)、車載數(shù)據(jù)中心(隧道、橋梁、觸網(wǎng)、軌道),是基礎(chǔ)數(shù)據(jù)來源;中間層是安監(jiān)平臺,負責采集和處理下層數(shù)據(jù);上層主要包括設(shè)備管理平臺和主動維保平臺,從安監(jiān)平臺獲得數(shù)據(jù)進行Web展示。
圖4 安監(jiān)平臺在主動維保系統(tǒng)中地位
安監(jiān)平臺數(shù)據(jù)流如圖5所示。安監(jiān)平臺從ISCS、車載、車輛和信號4個基礎(chǔ)專業(yè)系統(tǒng)采集原始數(shù)據(jù),然后對原始數(shù)據(jù)進行加工、處理等操作后輸入實時庫。設(shè)備管理平臺、維保平臺和安監(jiān)平臺通過SOAP Web Service機制進行信息訪問,即設(shè)備管理平臺、維保平臺和安監(jiān)平臺用SOAP Web Service機制通過CORBA接口訪問實時數(shù)據(jù)庫中的數(shù)據(jù)。
安監(jiān)平臺提供給上層接口服務(wù)的數(shù)據(jù)分2種情況:一種是實時數(shù)據(jù)以請求響應(yīng)方式給設(shè)備管理平臺和主動維保平臺;另一種是當安監(jiān)平臺產(chǎn)生了優(yōu)先級比較高的報警信息后主動通知設(shè)備管理平臺和主動維保平臺,然后設(shè)備管理平臺和主動維保平臺向安監(jiān)平臺請求報警和實時數(shù)據(jù)。
圖5 安監(jiān)平臺的數(shù)據(jù)流
根據(jù)軌道交通基礎(chǔ)設(shè)備設(shè)施的特點和故障特征,通過對運營相關(guān)的基礎(chǔ)設(shè)施,如接觸網(wǎng)、軌道、橋梁、隧道等專業(yè)的業(yè)務(wù)分析,充分研究了基于狀態(tài)變量安全特征分布的監(jiān)測和特征因子提取技術(shù),實現(xiàn)對關(guān)鍵設(shè)備設(shè)施實時狀態(tài)監(jiān)測。結(jié)合基礎(chǔ)設(shè)施綜合評判方法和設(shè)備維修信息,建立關(guān)鍵設(shè)備設(shè)施失效預警處理模型和故障診斷處理模型。
模型建立基于綜合分析之后的統(tǒng)一實時庫。實時庫根據(jù)多專業(yè)監(jiān)測數(shù)據(jù)的數(shù)據(jù)特征和特點,包括模擬量、數(shù)字量、累計量3大類。實時庫根據(jù)設(shè)備關(guān)聯(lián)關(guān)系和數(shù)據(jù)屬性建立數(shù)據(jù)間的邏輯處理關(guān)系。
實時庫在系統(tǒng)內(nèi)存中緩存各專業(yè)關(guān)鍵設(shè)備狀態(tài)數(shù)據(jù)和分析處理的結(jié)果數(shù)據(jù)。安監(jiān)平臺從下層接口收到原始數(shù)據(jù)按照數(shù)據(jù)業(yè)務(wù)特征加工后放入實時庫中。實時庫中的設(shè)備運行參數(shù)在系統(tǒng)啟動前就被配置好,統(tǒng)一成一個RTU號和一個Point號,表示一個設(shè)備的一個參數(shù),例如綜合監(jiān)控系統(tǒng)接口下獲取的紫藤路水泵LD-2風機電流用RTU號為1,Point號為1表示,那么在實時庫中更新紫藤路水泵LD-2風機電流的值只要更新RTU號為1,Point號為1的模擬量的值。通過這樣的處理,可以統(tǒng)一各專業(yè)關(guān)鍵設(shè)備狀態(tài)的數(shù)據(jù)格式,形成可以統(tǒng)一處理的實時庫。
3.2.1 安監(jiān)平臺與信號監(jiān)測系統(tǒng)接口
安監(jiān)平臺和信號系統(tǒng)采用基于TCP/IP方式通信,安監(jiān)平臺的通信模塊為客戶端,信號監(jiān)測系統(tǒng)為服務(wù)端。通信的過程為:安監(jiān)平臺的通信模塊周期性發(fā)送各個指令,信號監(jiān)測系統(tǒng)響應(yīng)指令,向安監(jiān)平臺的通信模塊發(fā)送響應(yīng)信息,安監(jiān)平臺將接收到的數(shù)據(jù)按照規(guī)則置入實時庫中。
3.2.2 安監(jiān)平臺與車輛監(jiān)測系統(tǒng)接口
安監(jiān)平臺和車輛監(jiān)測系統(tǒng)是基于TCP/IP方式通信。協(xié)議采用自定義協(xié)議,安監(jiān)平臺將接收到的車輛關(guān)鍵設(shè)備監(jiān)測數(shù)據(jù)按照規(guī)則置入實時庫中。
3.2.3 安監(jiān)平臺與車載監(jiān)測系統(tǒng)接口
安監(jiān)平臺和車載監(jiān)測系統(tǒng)是基于TCP/IP方式通信。協(xié)議采用自定義協(xié)議,安監(jiān)平臺將接收到的車載關(guān)鍵設(shè)備狀態(tài)監(jiān)測數(shù)據(jù)按照規(guī)則置入實時庫中。
3.2.4 安監(jiān)平臺與綜合監(jiān)控系統(tǒng)接口
安監(jiān)平臺和綜合監(jiān)控系統(tǒng)是基于TCP/IP方式通信。協(xié)議采用通用網(wǎng)絡(luò)協(xié)議,安監(jiān)平臺將接收到的綜合監(jiān)控系統(tǒng)傳來的關(guān)鍵設(shè)備狀態(tài)監(jiān)測數(shù)據(jù)按照規(guī)則置入實時庫中。
3.3.1 安監(jiān)平臺和上層系統(tǒng)的通訊機制
如圖6所示,安監(jiān)平臺與上層應(yīng)用系統(tǒng)選擇SOAP Web Service機制實現(xiàn)通信,WEB服務(wù)器與安監(jiān)平臺以COBRA中間件作為兩者通信的橋梁。
圖6 安監(jiān)平臺和主動維保平臺的接口
主動維保平臺的界面層動態(tài)顯示時,需要向安監(jiān)信息系統(tǒng)請求設(shè)備的實時狀態(tài)信息,安監(jiān)信息系統(tǒng)響應(yīng)該需要設(shè)備狀態(tài)信息。對象定義規(guī)則主要以對象結(jié)構(gòu)格式形成分層結(jié)構(gòu),主要包含設(shè)備資產(chǎn)編碼、信息點號和當前實時數(shù)值等內(nèi)容。
3.3.2 安監(jiān)平臺和上層應(yīng)用系統(tǒng)的服務(wù)機制
安監(jiān)平臺和上層應(yīng)用系統(tǒng)交互包括以下3個過程:
(1)Web服務(wù)器為上層應(yīng)用系統(tǒng)提供注冊功能、實時數(shù)據(jù)接口。上層應(yīng)用系統(tǒng)初始化連接安監(jiān)平臺時,根據(jù) Web服務(wù)器提供的注冊函數(shù)進行登記,登記完畢后把自己 Web Service地址告訴給安監(jiān)平臺。上層應(yīng)用系統(tǒng)根據(jù)安監(jiān)平臺提供的設(shè)備屬性函數(shù)進行調(diào)用,安監(jiān)平臺根據(jù)傳遞的資產(chǎn)編號找到合適的設(shè)備號,并組裝該設(shè)備所有的實時數(shù)據(jù)返回給上層應(yīng)用系統(tǒng)。
(2)Web服務(wù)器啟動一個事件處理任務(wù)線程,周期性掃描CORBA服務(wù)的報警接口。如果發(fā)現(xiàn)有報警,安監(jiān)平臺通過上層應(yīng)用系統(tǒng)注冊的 Web Service作為地址發(fā)送消息給主動維保平臺NotifyEvent接口(此接口提供消息通知觸發(fā)機制),上層應(yīng)用系統(tǒng)接到消息后通過 Web服務(wù)器訪問CORBA服務(wù)中的報警和實時數(shù)據(jù)。
(3)Corba服務(wù)與安監(jiān)平臺通信。Corba服務(wù)通過命名服務(wù)(Naming Service)方式和安監(jiān)平臺進行通信。
3.3.3 CORBA命名服務(wù)應(yīng)用
安監(jiān)平臺選擇CORBA命名服務(wù)(Naming Service)通信方式。命名服務(wù)將服務(wù)對象賦予一個指定的標識,通過名字與對象之間的映射關(guān)系來實現(xiàn)對服務(wù)對象的查找和定位。命名服務(wù)提供的助記符解析服務(wù)使得應(yīng)用程序可以借助助記符,而不是一大串IOR來訪問到相應(yīng)的Servant。
3.3.4 接口描述文件
由于Web服務(wù)器和安監(jiān)平臺的編程語言不一樣,使用IDL工具生成C++和JAVA的接口代碼,這樣確保Web服務(wù)器與安監(jiān)平臺之間實現(xiàn)數(shù)據(jù)流傳輸。具體實現(xiàn)代碼不在IDL定義中編寫,是用真正的編程語言來進行具體實現(xiàn)。本平臺的IDL文件包括了數(shù)據(jù)屬性結(jié)構(gòu)體,報警屬性結(jié)構(gòu)體,獲得實時數(shù)據(jù)接口函數(shù),獲得報警接口函數(shù)。當添加新的數(shù)據(jù)接口無需添加冗余的代碼時,只需在IDL中配置新的對象參數(shù)。當主動維保平臺增加應(yīng)用時,只需在IDL中添加合適的訂閱記錄接口。
設(shè)備管理庫的主要作用是通過HASH算法,把相同設(shè)備資產(chǎn)編碼組織在同一個鏈表下。設(shè)備管理庫分為2條鏈路:一條是不同的設(shè)備編碼之間織成線性鏈表關(guān)系,另一條是相同的設(shè)備編碼之間組織成線性鏈表關(guān)系。設(shè)備編碼分類和屬性匯聚可以加快設(shè)備屬性的檢索速度。
3.3.5 安監(jiān)平臺的SOAP Web Service接口定義文件
從實時數(shù)據(jù)傳遞角度看,安監(jiān)平臺作為服務(wù)端,Web Service服務(wù)作為客戶端。同時,從報警信息傳遞角度看,當有一級報警產(chǎn)生時,Web Service服務(wù)通知主動維保平臺和設(shè)備信息平臺。獲取的報警內(nèi)容包含設(shè)備編碼和組代碼信息,以此來查詢安監(jiān)平臺該設(shè)備編碼的實時數(shù)據(jù)。這之間都使用SOAP協(xié)議通信。主要提供下列功能:事件報警接口;實時數(shù)據(jù)接口;報警通知接口;給上層應(yīng)用接口。
安監(jiān)平臺是城市軌道交通運輸組織、控制及保障一體化關(guān)鍵技術(shù)與系統(tǒng)研制課題中的重要子系統(tǒng)之一,將匯聚的各專業(yè)設(shè)備狀態(tài)監(jiān)測數(shù)據(jù)加工處理后傳遞給上層應(yīng)用設(shè)備管理平臺和主動維保平臺。采用了面向服務(wù)的架構(gòu)和中間件的技術(shù),解決了安監(jiān)平臺多專業(yè)業(yè)務(wù)數(shù)據(jù)的異構(gòu)和上層平臺異構(gòu)問題,方便平臺之間信息共享,在今后工程化應(yīng)用上具有靈活性和擴展性。本文的介紹方法極大地方便了分布式實時監(jiān)控系統(tǒng)中的信息共享、數(shù)據(jù)共享,支持實時數(shù)據(jù)Web發(fā)布,提高了維保中心系統(tǒng)的實現(xiàn)效率,為主動維保奠定了基礎(chǔ)。
[1]Shin S.Webservices[J].Advances in Computers,2005(64):45.
[2]吳泉源,賈焰,周斌.分布對象中間件Starbus[J].計算機工程與應(yīng)用,2002,16(3):195.
[3]成玉榮,王聰麗.基于TAO的CORBA應(yīng)用軟件設(shè)計[J].無線電工程,2010,40(11):13.
[4]朱麟,徐中偉,喻鋼,等.引入接口中間件的基于通信的列車控制系統(tǒng)仿真[J].城市軌道交通研究,2013(2):70.