李永燕 凌長生
電務調度指揮系統是近年來各電務段依據自身生產管理流程特別定制的一套綜合信息系統,主要面向電務段機關生產指揮決策中心,涵蓋了車站信號、區(qū)間信號、列控、監(jiān)測等信號系統和設備。它充分利用集中監(jiān)測系統、綜合視頻系統、信息管理系統等提供的數據資源和相關網絡通道資源,依據設備與設備之間、設備與系統之間以及系統與系統之間的相互關系和規(guī)則,智能挖掘各種分散孤立的海量數據,科學地整合于同一平臺,實現信號設備故障的自動報警、監(jiān)測數據的實時分析、應急處置的綜合決策和作業(yè)過程的有效監(jiān)督,科學地指導電務段的日常生產和維修工作。
電務調度指揮需將各個相關系統進行集中綜合展示,實現電務系統之間的聯動、數據共享以及設備故障場景的自動關聯。要實現這些功能需要在各個電務子系統間進行數據共享、數據交換,達到在設備故障時通過應用服務器將設備的故障信息分別發(fā)送到不同的子系統,最終實現應急聯動的目的。
電務調度指揮系統依托集中監(jiān)測服務器中心和網絡,在電務段設置數據庫服務器、應用服務器、通信服務器、接口服務器以及顯示服務器,通過調用、收集、分析集中監(jiān)測、區(qū)間監(jiān)測、道岔缺口監(jiān)測、環(huán)境監(jiān)測、視頻監(jiān)控、MIS等系統的數據和信息,實現集中展示、聯動分析指揮的功能。系統顯示如圖1所示。
圖1 電務調度指揮系統顯示圖
系統顯示由多塊大屏幕墻組成,如果某站道岔設備故障時,可以自動分屏展現并切換監(jiān)測終端到該站的站場圖形,同時自動打開該站、該組道岔故障時段的集中監(jiān)測相關信息,如:故障道岔設備的道岔區(qū)段狀態(tài)、道岔表示、聯動道岔的開關量信息和道岔動作曲線、道岔表示電壓曲線等模擬量信息,調動站區(qū)綜合視頻能夠自動定位到該道岔對應的攝像頭,該站的道岔缺口系統能讀取故障時段的缺口圖片和信息,專家分析系統也能給出造成該次故障可能的原因和處理建議,同時該站的道岔控制電路原理圖、配線圖等圖紙,該設備對應車站支援徑路地理信息,以及車間、工區(qū)、應急搶險相關業(yè)務科室的人員及物資信息,均可及時顯示和查閱,電務調度指揮人員可以根據上述綜合信息及時決策、遠程指揮快速修復設備故障。
電務調度指揮系統涉及面廣、系統間交互多,若采用面向對象的模型 (緊耦合)來進行系統開發(fā),可能會導致后期的頻繁修改,系統顯得非常脆弱,最終導致系統不穩(wěn)定。因此,在該系統開發(fā)過程中,采用了面向服務的體系結構進行系統開發(fā),服務請求者到服務提供者的綁定與服務之間應該是松耦合的,服務請求者不需要知道服務提供者實現的技術細節(jié),例如程序語言、底層平臺等等。這樣既能保證每個系統間相互數據共享,又能保證每個系統之間的相對獨立性。
WCF (Windows Communication Foundation)即Windows通信開發(fā)平臺,是Microsoft為構建面向服務 (SOA)的應用提供的分布式通信編程框架,是 .Net Framework 3.5的重要組成部分,是Windows平臺上開發(fā)分布式應用最佳的實踐方式。使用該框架,開發(fā)人員可以構建跨平臺、安全、可靠和支持事務處理的企業(yè)級互聯應用解決方案。一個WCF服務由宿主、服務類、端點組成,宿主是WCF服務的運行環(huán)境;服務類是標記為ServiceContract屬性的類,其中就包含了公開的服務;WCF服務是一個公開終結點集合的程序,其中包含了服務的位置信息、底層傳輸形式信息、數據交換的格式信息。
WCF是 ASMX,.Net Remoting,Enterprise Service,WSE,MSMQ等技術的整合,是一款真正面向服務的產品,它改變了通常的開發(fā)模式。鐵路電務調度指揮系統可以利用WCF,解決包括系統安全、可信賴、互操作、跨平臺通信等等的功能需求。WCF客戶端與服務器端模型如圖2所示。
圖2 WCF客戶端服務器模型圖
電務調度指揮涉及到鐵路電務系統的方方面面,特別是當設備故障時,決策者需要快速地根據已經安裝的各種監(jiān)測、監(jiān)控、分析系統提供的數據,判斷當前設備的狀態(tài)、設備故障影響范圍、設備搶修需要的相關人力物力、以及所能提供的技術指導等相關信息。所以,當設備故障時,需要監(jiān)控系統將各種信息根據需要發(fā)給各個電務系統。為了便于系統部署安裝,將WCF server端部署于每個電務子系統以及指揮中心終端,客戶端部署于指揮中心監(jiān)控系統。當指揮中心監(jiān)控系統發(fā)現系統故障時,將故障信息推送給指揮中心終端,指揮中心終端操作員根據實際需要啟動故障應急處理,同時,命令監(jiān)控系統將故障信息發(fā)送給各個顯示子系統。子系統根據報警車站名稱、設備類型、設備的名稱、報警可能原因、報警時間等信息自動選擇對應的信息。具體接入關系如圖3所示。
WCF Server的實現主要包含4個部分:服務契約的定義、服務契約的實現、服務的配置、服務的宿主。
1.定義服務契約。定義一個接口,并為該接口添加ServiceContract屬性的修飾符,使它成為WCF服務中公開的接口。同時,為該接口中每個方法添加OperationContract屬性的修飾符,使它成為WCF服務公開接口中公開的成員,從而保證其能被客戶端調用。
2.實現服務契約。實現 WCF服務契約中所定義的接口。與一般的面向對象編程類似,直接在相應的函數中編寫對應的邏輯功能代碼即可。
圖3 電務調度指揮系統結構
3.WCF服務的配置??梢酝ㄟ^在代碼中直接設置相關對象的屬性來完成服務端和客戶端的配置,也可以利用App.config配置文件,來配置WCF服務的URL地址、通信協議、運行時相關特性等。利用配置文件進行配置為WCF帶來了軟件開發(fā)的靈活性,電務調度指揮系統中EndPoint和默認地址如下所示。
配置EndPoint:
<service
name="SHTD.ServiceModel.OpenRelationTerminal"
behaviorConfiguration="OpenRelationTerminalServiceBehavior">
<endpoint address=""
binding="NetTcpBinding"
contract="SHTD.ServiceModel.IOpenRelationTerminal"/>
</service>
配置默認的基地址:
<host>
<baseAddress>
< addbaseAddress = "http://localhost: 8080/sdims"/>
</baseAddress>
</host>
4.服務的啟動停止。
ServiceHost host= new ServiceHost (typeof (Open-RelationTerminal));
host.Open ();//開啟服務
host.Close();//停止服務
WCF Client客戶端相對來說比較簡單,首先利用 “svcutil.exe{終結點}/out: {輸出文件.cs}/config:{配置文件.config}”來獲取WCF服務上提供的接口代理;然后在客戶端程序中直接調用對應的類和對應的函數,即可使用服務提供的功能。
通過簡單描述如何使用WCF實現電務調度指揮系統在設備故障時自動實現車站設備故障場景的自動調用、集中顯示和相互切換,使基于WCF的面向服務編程減少了系統間的耦合度,提高了系統的靈活性和可擴展性,同時采用WCF實現相應的服務端和客戶端簡化了系統通信編程的復雜性,提高了系統健壯性。
[1] 閆冰.基于WCF的分布式應用開發(fā)[J].電腦知識與技術,2008(07).
[2] 嚴商.基于WCF的分布式程序的研究與實現[D].武漢:武漢理工大學碩士論文,2008.
[3] 吳清壽.基于 WCF的分布式系統模型研究與實現[J].吉林師范大學學報(自然科學版),2012,03.