陈景柱 谢志林 刘学纵 巩林玉 王圣根
(卡斯柯信号有限公司,200071,上海∥第一作者,工程师)
目前,城市轨道交通线路正朝着网络化方向发展,网络化运营管理成为轨道交通发展必然趋势。从体系化建设的理念出发,构建出一个实现城市轨道交通网络化管理预警机制,确保整个轨道交通网“安全、可靠、高效”运行,能够提供信息化的运营协调指挥功能、状态监测预警功能、维护保障功能、信息资源管理功能的完整的网络体系至关重要。
建立一个依靠先进的技术手段实现对网络中各种运营设施、设备系统、固定资产的统一管理和维护的平台,依靠这个平台实现设施设备统筹维护、应急抢修统一执行、网络物资统一供应、网络安全统一监测、网络资产统一管理十分必要。通过这个平台解决路网安全信息孤立分散、缺乏基于系统安全态势分析的预警及隐患识别能力的问题,为网络化运营的安全保障提供全数字化信息、安全综合管理技术支撑。
在《基于城市轨道交通运输组织、控制及保障一体化关键技术与系统研制》的课题中,研制出主动维保系统子系统下的城市轨道交通安监平台。该平台从面向服务的架构出发,汇聚信号监测系统、综合监控系统 、车辆系统、桥梁、隧道、工务监测系统和车载监测系统的关键设备状态信息和健康状态信息,实现各专业信息的汇聚和联动,解决各专业系统间信息的有效、可靠、实时通信,对系统中的关键设备状态统一管理和维护,形成一个统一的在线监测数据应用平台和在线监测设备状态监控平台。本文的创新在于采用面向服务架构和中间件技术将城市轨道交通线路下各个不同专业信息利用实时库进行梳理和汇聚,根据业务要求进行分类处理,搭建了一个统一的数据处理平台,方便地利用统一的通道传送给主动维保系统等上层应用系统,屏蔽平台异构和数据异构。
面向服务的体系结构 (service-oriented architecture,简为SOA)是一个组件模型,它将应用程序的不同功能单元(下文称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是用中立的方式进行定义的,独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在不同系统中的服务可以通过统一和通用的方式进行交互,不必要考虑其后台具体的实现技术和运行平台等。可以实现技术标准化和平台一致性。SOA为解决异构资源的统一访问提供了很好的架构。
Web Service是一个独立、松耦合、自包含的、基于可编程的Web的应用平台。可使用开放的XML标准来描述、发布、发现、协调和配置这些应用程序,用于开发分布式互操作的应用程序。
Web Service是一个分布式计算模型,是Web数据和信息集成的有效机制,是一套开放标准[2],包括了SOAP(简单对象访问协议)、WSDL(服务描述)、UDDI(发现与集成服务)以及补充的 Web Service等规范,可促进SOA更加广泛应用。
图1为Web Service的服务关系。服务提供者实现 Web服务的定义,用 Web服务描述语言WSDL(Web Service Description Language)对服务进行描述,并在服务注册代理中使用通用描述、发现与集成服务 UDDI(Universal Description,Discovery and Integration)进行注册,UDDI起着目录服务器的作用,用于集中存放和查找WSDL描述文件。服务的请求者利用服务注册代理查找所需的服务,当找到所需服务时,服务注册代理向其提供WSDL,然后使用服务描述与服务提供者进行绑定,并提供相应的Web服务。图2为Web Service协议结构。服务通过HTTP/SMTP或者其他协议访问Web系统,数据基于XML形式的,当获得XML文档后,只需要通过强类型转化即可将XML文档映射成数据库中数据表一样的结构,在 Web Service中添加一个Web方法即可处理XML文档,使用WSDL描述服务,使用UDDI发布和查找服务,采用SOAP协议执行服务调用。
图1 Web Service的服务关系
1.3.1 中间件
图2 Web Service协议结构
中间件位于服务器/客户机的操作系统之上,是独立于系统软件和服务的程序,是连接2个及以上独立应用程序或独立系统的软件,管理着计算机资源和网络通信。相连接的系统,即使它们具有不同的接口,但通过中间件相互之间仍能交换信息和共享资源。通过中间件,应用程序可以工作于多平台或多 OS(操作系统)环境[3]。
1.3.2 CORBA简述
公共对象请求代理体系结构(Common Object Request Broker Architecture,简为 CORBA)是由OMG(对象管理组织)组织制订的一种标准的面向对象应用程序体系规范。CORBA体系结构是OMG为解决分布式处理环境(DCE)中,硬件和软件系统的互连而提出的一种解决方案。CORBA利用分布式计算和面向对象计算相结合的方式,引入“代理”概念。
1.3.3 ORB和IDL
对象请求代理(Object Request Broker,简为ORB)是CORBA的通信核心,CORBA的核心组件。ORB提供了识别和定位对象、处理连接管理、传送数据和请求通信所需的框架结构。ORB是一个便于实现不同软硬件平台上的互操作和集成的软件总线。在分布式系统中,ORB抽象了远程方法调用的内在复杂性,使其独立于编程语言、网络协议和软硬件平台[4]。CORBA体系规范中定义了包括面向对象系统和分布式系统在内的多种服务,如对象命名服务、事件服务、通知服务等。
接口描述语言(Interface description language,简为IDL),是CORBA规范的一部分,是跨平台开发的基础。IDL是用来描述软件组件接口的一种计算机语言。IDL通过一种中立的方式来描述接口,使得在不同平台上运行的对象和用不同语言编写的程序可以相互通信交流;IDL向ORB提供了与操作系统和编程语言无关的接口。
1.3.4 CORBA通信机制
为了保证在不同的CORBA产品基础之上构建的分布式对象可以相互通信,如图3所示,Client和Server通过ORB进行通信。一般的运行流程是Client把请求发送给ORB,ORB再把请求发送给Server,Server把返回结果发送给ORB,ORB再把返回结果发送给是Client。ORB可以说是Client和Server之间的翻译者。CORBA提供IDL到C、C++和JAVA编程语言的映射,即使Client和Server使用不同的编程语言编写,只要是符合相同的IDL定义,ORB也可以完成相互的通信。
图3 CORBA通信机制
安监平台以城市轨道交通基础设施监测、失效预警及主动维保系统的核心需求,以及对设备状态信息、健康状态信息等的需求为主线,并结合目前运营管理、维护保障体系。主动维保系统包括了设备管理平台、主动维保平台和安监平台。
安监平台所处的系统整体共分为上层、中间层和下层3层结构(见图4):下层主要包括综合监控(ISCS)、车辆系统、信号系统、车载数据中心(隧道、桥梁、触网、轨道),是基础数据来源;中间层是安监平台,负责采集和处理下层数据;上层主要包括设备管理平台和主动维保平台,从安监平台获得数据进行Web展示。
图4 安监平台在主动维保系统中地位
安监平台数据流如图5所示。安监平台从ISCS、车载、车辆和信号4个基础专业系统采集原始数据,然后对原始数据进行加工、处理等操作后输入实时库。设备管理平台、维保平台和安监平台通过SOAP Web Service机制进行信息访问,即设备管理平台、维保平台和安监平台用SOAP Web Service机制通过CORBA接口访问实时数据库中的数据。
安监平台提供给上层接口服务的数据分2种情况:一种是实时数据以请求响应方式给设备管理平台和主动维保平台;另一种是当安监平台产生了优先级比较高的报警信息后主动通知设备管理平台和主动维保平台,然后设备管理平台和主动维保平台向安监平台请求报警和实时数据。
图5 安监平台的数据流
根据轨道交通基础设备设施的特点和故障特征,通过对运营相关的基础设施,如接触网、轨道、桥梁、隧道等专业的业务分析,充分研究了基于状态变量安全特征分布的监测和特征因子提取技术,实现对关键设备设施实时状态监测。结合基础设施综合评判方法和设备维修信息,建立关键设备设施失效预警处理模型和故障诊断处理模型。
模型建立基于综合分析之后的统一实时库。实时库根据多专业监测数据的数据特征和特点,包括模拟量、数字量、累计量3大类。实时库根据设备关联关系和数据属性建立数据间的逻辑处理关系。
实时库在系统内存中缓存各专业关键设备状态数据和分析处理的结果数据。安监平台从下层接口收到原始数据按照数据业务特征加工后放入实时库中。实时库中的设备运行参数在系统启动前就被配置好,统一成一个RTU号和一个Point号,表示一个设备的一个参数,例如综合监控系统接口下获取的紫藤路水泵LD-2风机电流用RTU号为1,Point号为1表示,那么在实时库中更新紫藤路水泵LD-2风机电流的值只要更新RTU号为1,Point号为1的模拟量的值。通过这样的处理,可以统一各专业关键设备状态的数据格式,形成可以统一处理的实时库。
3.2.1 安监平台与信号监测系统接口
安监平台和信号系统采用基于TCP/IP方式通信,安监平台的通信模块为客户端,信号监测系统为服务端。通信的过程为:安监平台的通信模块周期性发送各个指令,信号监测系统响应指令,向安监平台的通信模块发送响应信息,安监平台将接收到的数据按照规则置入实时库中。
3.2.2 安监平台与车辆监测系统接口
安监平台和车辆监测系统是基于TCP/IP方式通信。协议采用自定义协议,安监平台将接收到的车辆关键设备监测数据按照规则置入实时库中。
3.2.3 安监平台与车载监测系统接口
安监平台和车载监测系统是基于TCP/IP方式通信。协议采用自定义协议,安监平台将接收到的车载关键设备状态监测数据按照规则置入实时库中。
3.2.4 安监平台与综合监控系统接口
安监平台和综合监控系统是基于TCP/IP方式通信。协议采用通用网络协议,安监平台将接收到的综合监控系统传来的关键设备状态监测数据按照规则置入实时库中。
3.3.1 安监平台和上层系统的通讯机制
如图6所示,安监平台与上层应用系统选择SOAP Web Service机制实现通信,WEB服务器与安监平台以COBRA中间件作为两者通信的桥梁。
图6 安监平台和主动维保平台的接口
主动维保平台的界面层动态显示时,需要向安监信息系统请求设备的实时状态信息,安监信息系统响应该需要设备状态信息。对象定义规则主要以对象结构格式形成分层结构,主要包含设备资产编码、信息点号和当前实时数值等内容。
3.3.2 安监平台和上层应用系统的服务机制
安监平台和上层应用系统交互包括以下3个过程:
(1)Web服务器为上层应用系统提供注册功能、实时数据接口。上层应用系统初始化连接安监平台时,根据 Web服务器提供的注册函数进行登记,登记完毕后把自己 Web Service地址告诉给安监平台。上层应用系统根据安监平台提供的设备属性函数进行调用,安监平台根据传递的资产编号找到合适的设备号,并组装该设备所有的实时数据返回给上层应用系统。
(2)Web服务器启动一个事件处理任务线程,周期性扫描CORBA服务的报警接口。如果发现有报警,安监平台通过上层应用系统注册的 Web Service作为地址发送消息给主动维保平台NotifyEvent接口(此接口提供消息通知触发机制),上层应用系统接到消息后通过 Web服务器访问CORBA服务中的报警和实时数据。
(3)Corba服务与安监平台通信。Corba服务通过命名服务(Naming Service)方式和安监平台进行通信。
3.3.3 CORBA命名服务应用
安监平台选择CORBA命名服务(Naming Service)通信方式。命名服务将服务对象赋予一个指定的标识,通过名字与对象之间的映射关系来实现对服务对象的查找和定位。命名服务提供的助记符解析服务使得应用程序可以借助助记符,而不是一大串IOR来访问到相应的Servant。
3.3.4 接口描述文件
由于Web服务器和安监平台的编程语言不一样,使用IDL工具生成C++和JAVA的接口代码,这样确保Web服务器与安监平台之间实现数据流传输。具体实现代码不在IDL定义中编写,是用真正的编程语言来进行具体实现。本平台的IDL文件包括了数据属性结构体,报警属性结构体,获得实时数据接口函数,获得报警接口函数。当添加新的数据接口无需添加冗余的代码时,只需在IDL中配置新的对象参数。当主动维保平台增加应用时,只需在IDL中添加合适的订阅记录接口。
设备管理库的主要作用是通过HASH算法,把相同设备资产编码组织在同一个链表下。设备管理库分为2条链路:一条是不同的设备编码之间织成线性链表关系,另一条是相同的设备编码之间组织成线性链表关系。设备编码分类和属性汇聚可以加快设备属性的检索速度。
3.3.5 安监平台的SOAP Web Service接口定义文件
从实时数据传递角度看,安监平台作为服务端,Web Service服务作为客户端。同时,从报警信息传递角度看,当有一级报警产生时,Web Service服务通知主动维保平台和设备信息平台。获取的报警内容包含设备编码和组代码信息,以此来查询安监平台该设备编码的实时数据。这之间都使用SOAP协议通信。主要提供下列功能:事件报警接口;实时数据接口;报警通知接口;给上层应用接口。
安监平台是城市轨道交通运输组织、控制及保障一体化关键技术与系统研制课题中的重要子系统之一,将汇聚的各专业设备状态监测数据加工处理后传递给上层应用设备管理平台和主动维保平台。采用了面向服务的架构和中间件的技术,解决了安监平台多专业业务数据的异构和上层平台异构问题,方便平台之间信息共享,在今后工程化应用上具有灵活性和扩展性。本文的介绍方法极大地方便了分布式实时监控系统中的信息共享、数据共享,支持实时数据Web发布,提高了维保中心系统的实现效率,为主动维保奠定了基础。
[1]Shin S.Webservices[J].Advances in Computers,2005(64):45.
[2]吴泉源,贾焰,周斌.分布对象中间件Starbus[J].计算机工程与应用,2002,16(3):195.
[3]成玉荣,王聪丽.基于TAO的CORBA应用软件设计[J].无线电工程,2010,40(11):13.
[4]朱麟,徐中伟,喻钢,等.引入接口中间件的基于通信的列车控制系统仿真[J].城市轨道交通研究,2013(2):70.