论文部分内容阅读
随着智能交通的发展,越来越多的企业开始从事智能交通的终端设备的研制与开发。但由于整个行业的标准没有一个统一的规范,造成了不同厂商产品之间的特殊性。不同厂商开发的管理软件与终端设备之间都是私有的对应关系。管理软件与终端设备之间不具有“互操作性”与“互换性”。如果在某个智能交通网络中使用了多个不同厂商提供的终端设备,管控平台为了集成不同的设备,必须兼容多种不同的通信协议。这将会使管控平台的开发变得极其复杂,而且不具有通用性和可扩展性。文本提供了一种解决办法。就是由终端供应商开发一款代理软件,来代替管控平台管理多样化的终端设备。又而使管控平台可以不考虑终端的具体特性而独立设计与开发。代理系统屏蔽了不同厂商终端设备的多样化的通信协议,代之以统一的接口与管控平台进行通信。只要一开始确定了双方之间的通信的接口规范,二者就可以同时进行开发。同时为了解决管控平台与代理系统之间的耦合性,两者之间将使用面向消息的中间件技术通过异步消息来实现数据交互。基于完整的终端控制系统,本文实现了一套代理系统的设计与开发。首先,为了降低代理系统与管控平台之间的“耦合性”,双方通过面向消息的中间件进行异步通信。使用的中间件是Apache软件基金会开发的开源软件Apache ActiveMQ。同时,消息数据的格式采用的是XML的文件格式,因为它允许用户自定义标记的含义,从而方便用户开发自己的信息系统。代理系统在解析管控平台下发的XML格式的命令报文时,由于XML文件格式有良好的树形结构,通过对比其中某一层的标记名,我们很容易就可以区分出不同的报文类型。在设计代理系统的架构方面,我们可以参考服务器的模型。因为代理系统是自动响应管控平台的命令报文的,这种响应方式类似于服务器处理客户端请求的方式。其结构有:循环结构,并行结构、IO复用循环结构。但是,由于代理系统是基于现有的终端控制系统进行设计的。我们在设计代理系统的程序架构时,必须充分考虑与现有编程接口与终端的交互方式。在设计如何管理系统运行中涉及到的数据时,我们使用的是存储为本地的文本文件,或者直接是存储在内存中的。因为代理系统的功能主要就是数据的转发,没有必要设计多么复杂的数据库系统来管理这些数据。基于已有的嵌入式控制系统来设计、开发我们的系统尽管可以加快开发的进度。但同时,终端的某些特性也对我们的代理系统的设计有一些限制。为了解除这些限制,我们设想了另外两种解决办法:重新实现终端系统的编程接口;或者,重新设计终端系统的通信接口。这两种办法都需要重新设计终端控制系统。