WCF在电务调度指挥系统中的应用

2015-12-30 03:32李永燕凌长生
铁道通信信号 2015年9期
关键词:电务指挥系统道岔

李永燕 凌长生

1 电务调度指挥系统

电务调度指挥系统是近年来各电务段依据自身生产管理流程特别定制的一套综合信息系统,主要面向电务段机关生产指挥决策中心,涵盖了车站信号、区间信号、列控、监测等信号系统和设备。它充分利用集中监测系统、综合视频系统、信息管理系统等提供的数据资源和相关网络通道资源,依据设备与设备之间、设备与系统之间以及系统与系统之间的相互关系和规则,智能挖掘各种分散孤立的海量数据,科学地整合于同一平台,实现信号设备故障的自动报警、监测数据的实时分析、应急处置的综合决策和作业过程的有效监督,科学地指导电务段的日常生产和维修工作。

电务调度指挥需将各个相关系统进行集中综合展示,实现电务系统之间的联动、数据共享以及设备故障场景的自动关联。要实现这些功能需要在各个电务子系统间进行数据共享、数据交换,达到在设备故障时通过应用服务器将设备的故障信息分别发送到不同的子系统,最终实现应急联动的目的。

电务调度指挥系统依托集中监测服务器中心和网络,在电务段设置数据库服务器、应用服务器、通信服务器、接口服务器以及显示服务器,通过调用、收集、分析集中监测、区间监测、道岔缺口监测、环境监测、视频监控、MIS等系统的数据和信息,实现集中展示、联动分析指挥的功能。系统显示如图1所示。

图1 电务调度指挥系统显示图

系统显示由多块大屏幕墙组成,如果某站道岔设备故障时,可以自动分屏展现并切换监测终端到该站的站场图形,同时自动打开该站、该组道岔故障时段的集中监测相关信息,如:故障道岔设备的道岔区段状态、道岔表示、联动道岔的开关量信息和道岔动作曲线、道岔表示电压曲线等模拟量信息,调动站区综合视频能够自动定位到该道岔对应的摄像头,该站的道岔缺口系统能读取故障时段的缺口图片和信息,专家分析系统也能给出造成该次故障可能的原因和处理建议,同时该站的道岔控制电路原理图、配线图等图纸,该设备对应车站支援径路地理信息,以及车间、工区、应急抢险相关业务科室的人员及物资信息,均可及时显示和查阅,电务调度指挥人员可以根据上述综合信息及时决策、远程指挥快速修复设备故障。

电务调度指挥系统涉及面广、系统间交互多,若采用面向对象的模型 (紧耦合)来进行系统开发,可能会导致后期的频繁修改,系统显得非常脆弱,最终导致系统不稳定。因此,在该系统开发过程中,采用了面向服务的体系结构进行系统开发,服务请求者到服务提供者的绑定与服务之间应该是松耦合的,服务请求者不需要知道服务提供者实现的技术细节,例如程序语言、底层平台等等。这样既能保证每个系统间相互数据共享,又能保证每个系统之间的相对独立性。

2 WCF平台

WCF (Windows Communication Foundation)即Windows通信开发平台,是Microsoft为构建面向服务 (SOA)的应用提供的分布式通信编程框架,是 .Net Framework 3.5的重要组成部分,是Windows平台上开发分布式应用最佳的实践方式。使用该框架,开发人员可以构建跨平台、安全、可靠和支持事务处理的企业级互联应用解决方案。一个WCF服务由宿主、服务类、端点组成,宿主是WCF服务的运行环境;服务类是标记为ServiceContract属性的类,其中就包含了公开的服务;WCF服务是一个公开终结点集合的程序,其中包含了服务的位置信息、底层传输形式信息、数据交换的格式信息。

WCF是 ASMX,.Net Remoting,Enterprise Service,WSE,MSMQ等技术的整合,是一款真正面向服务的产品,它改变了通常的开发模式。铁路电务调度指挥系统可以利用WCF,解决包括系统安全、可信赖、互操作、跨平台通信等等的功能需求。WCF客户端与服务器端模型如图2所示。

图2 WCF客户端服务器模型图

3 电务调度指挥系统结构WCF模型

电务调度指挥涉及到铁路电务系统的方方面面,特别是当设备故障时,决策者需要快速地根据已经安装的各种监测、监控、分析系统提供的数据,判断当前设备的状态、设备故障影响范围、设备抢修需要的相关人力物力、以及所能提供的技术指导等相关信息。所以,当设备故障时,需要监控系统将各种信息根据需要发给各个电务系统。为了便于系统部署安装,将WCF server端部署于每个电务子系统以及指挥中心终端,客户端部署于指挥中心监控系统。当指挥中心监控系统发现系统故障时,将故障信息推送给指挥中心终端,指挥中心终端操作员根据实际需要启动故障应急处理,同时,命令监控系统将故障信息发送给各个显示子系统。子系统根据报警车站名称、设备类型、设备的名称、报警可能原因、报警时间等信息自动选择对应的信息。具体接入关系如图3所示。

4 软件实现

4.1 WCF Server的实现

WCF Server的实现主要包含4个部分:服务契约的定义、服务契约的实现、服务的配置、服务的宿主。

1.定义服务契约。定义一个接口,并为该接口添加ServiceContract属性的修饰符,使它成为WCF服务中公开的接口。同时,为该接口中每个方法添加OperationContract属性的修饰符,使它成为WCF服务公开接口中公开的成员,从而保证其能被客户端调用。

2.实现服务契约。实现 WCF服务契约中所定义的接口。与一般的面向对象编程类似,直接在相应的函数中编写对应的逻辑功能代码即可。

图3 电务调度指挥系统结构

3.WCF服务的配置。可以通过在代码中直接设置相关对象的属性来完成服务端和客户端的配置,也可以利用App.config配置文件,来配置WCF服务的URL地址、通信协议、运行时相关特性等。利用配置文件进行配置为WCF带来了软件开发的灵活性,电务调度指挥系统中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();//停止服务

4.2 WCF Client的实现

WCF Client客户端相对来说比较简单,首先利用 “svcutil.exe{终结点}/out: {输出文件.cs}/config:{配置文件.config}”来获取WCF服务上提供的接口代理;然后在客户端程序中直接调用对应的类和对应的函数,即可使用服务提供的功能。

5 结束语

通过简单描述如何使用WCF实现电务调度指挥系统在设备故障时自动实现车站设备故障场景的自动调用、集中显示和相互切换,使基于WCF的面向服务编程减少了系统间的耦合度,提高了系统的灵活性和可扩展性,同时采用WCF实现相应的服务端和客户端简化了系统通信编程的复杂性,提高了系统健壮性。

[1] 闫冰.基于WCF的分布式应用开发[J].电脑知识与技术,2008(07).

[2] 严商.基于WCF的分布式程序的研究与实现[D].武汉:武汉理工大学硕士论文,2008.

[3] 吴清寿.基于 WCF的分布式系统模型研究与实现[J].吉林师范大学学报(自然科学版),2012,03.

猜你喜欢
电务指挥系统道岔
河北省冬季奧运会交通应急保障指挥系统
指挥系统迭代升级带来的挑战与对策
国外驱护舰作战指挥系统技术现状与发展趋势
中低速磁浮道岔与轮轨道岔的差异
电务车载设备维护新模式的探讨
场间衔接道岔的应用探讨
电务系统大型机具上道时的作业防护
既有线站改插铺临时道岔电路修改
电务施工现场作业控制系统的探讨
电务维修决策支持系统研究