基于多种通道的车辆监控服务器设计_第1页
基于多种通道的车辆监控服务器设计_第2页
基于多种通道的车辆监控服务器设计_第3页
基于多种通道的车辆监控服务器设计_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于多种通道的车辆监控服务器设计

随着社会经济的发展,大型团队的监督需求不断增加。这些监控系统通常有几个中央监控中心,许多车辆载台和监控中心之间的通信任务仍然复杂且复杂。考虑到通信质量、覆盖范围等因素,当前车辆监控系统的无线通信通常采用短消息服务(sms消息服务)和通用无线服务(eprs,通用领域的无线服务)。sms适用于车辆数据的存储,存储转发方法只能由于负载变化而无法接收传输时间。二次计费模式也可以提高大型系统的运营成本。集群分布的带宽非常高,并且基于ip协议传输的数据非常容易连接到网络。基于流量成本,车辆监控信息的传输需要成本。然而,由于发展时间短,eprs的覆盖范围远低于sms。为了实现优势互补,需要车载台同时支持SMS和GPRS并能自动切换.SMS/GPRS通信服务器的课题正是针对这一问题提出的,它主要研究车载台与监控中心之间的网络互连、车辆定位信息向各监控中心的及时分发、控制信息向车载台的路由选择(SMS或GPRS)等技术.本文详细论述了课题的关键部分SMS/GPRS通信服务器的设计思想和实现方法.1sms/gprs通信服务器设计SMS/GPRS通信服务器是车载台和各监控中心之间的信息交换枢纽.所有的车载台和监控中心均作为客户端与通信服务器相连(图1).通信服务器通过互联网与GPRS网络的GGSN(GPRS网关支持节点)连接,通过租用数据专线与SMS的SMSC(短消息服务中心)连接.各分监控中心可视具体情况分别通过LAN(局域网)、租用专线或互联网与通信服务器相连.基于上述数据通信模型,设计SMS/GPRS通信服务器的具体功能如下:①同时提供与GPRS和SMS网络相连的链路和接口,记录每一车载台发送数据的链路状态,监控各链路的通信状态,出现异常时自动重连或者报警;②实时将收到的车载台信息分发到各监控中心,并对信息进行数据存贮备份,当监控中心需要时可以提供相应的历史数据;③提供面向各监控中心的Socket通信接口,在连接时验证监控中心的身份,维护每一监控中心所监控的车载台号码表;④对各监控中心的控制命令数据包按车载台的当前通信链路进行实时转发,缓存暂时无法送达的控制命令数据包,待车载台连通时再进行转发;⑤管理车载台号码和监控中心用户.2项目设计2.1通信服务器模块从上述通信模型可以看出,整个系统的通信跨越了GPRS、SMS和各监控中心等多个通信网络.为了解决网间网通信的无共享缓存、异步等问题,SMS/GPRS通信服务器与各网络的通信采用客户/服务器模式.根据通信服务器的网络连接结构、功能以及客户/服务器模式的特点,采用分段式模块化的软件结构.主要包括5个模块:GPRS通信模块、SMS通信模块、用户管理模块、报文处理转发模块、监控中心通信模块.各模块之间的关系如图2所示.2.2用户管理模块整个通信服务器的数据处理模型见图3.GPRS通信模块通过GPRS网络与车载台实现数据链接.它接受并管理所有车载台通过GPRS网络与通信服务器建立的TCP连接;接收车载数据将其转换为监控接口协议数据格式后尽快转发到报文处理转发模块,在必要时可以进行数据缓存;接收报文处理转发模块送来的监控中心控制命令,根据目的车载台号码查到对应的TCP连接号后提交发送.SMS通信模块的功能与GPRS通信模块类似,但因为SMSC的对外接口协议类型繁杂,所以协议转换是本模块的主要任务之一.SMS与GPRS通信模块在协议转换的过程中,能够识别出报警、急救等特殊信息,这些信息在加入报文处理转发模块的发送队列时直接插入队列的头部,避免与其他信息排队而延缓转发.用户管理模块所指的用户包括车载台用户和监控中心用户.每个车载台在投入使用前应通过本模块进行登记,内容包括编号、所属监控中心代号(一辆车可同时属于多个监控中心)等.监控中心用户的内容包括用户名、密码、代号、IP地址等信息,用于监控中心向通信服务器登录时的注册认证.报文处理转发模块是通信服务器的核心.它缓存GPRS和SMS两通信模块发来的数据包,根据来源模块记录每一数据包的源地址(车载台)的当前通信状态(GPRS或SMS),根据源地址查找目的地址(监控中心代号)并按监控接口协议格式将其加入数据包(如有多个目的地址则相应复制多份).同时,本模块还对各监控中心发来的数据包按类进行处理,需要转发的按目的地址(车载台编号)当前的链路状态发送到相应的通信模块,对于请求改变监控车辆的数据包则解释其内容并相应地修改车载台的所属监控中心.另外,该模块对其处理过的数据包均作历史备份.监控中心通信模块负责维护监控中心与通信服务器的通信链路,完成监控中心的登录认证工作,将报文处理转发模块发来的数据包发往监控中心,对监控中心传来的数据包根据监控接口协议进行解释,需要转发的则送往报文处理转发模块.2.3车载台之间的通信协议由于通信服务器连接3种类型的网络(SMS、GPRS、监控中心),与每个网络的通信协议也互不相同.这就需要通信服务器完成必要的协议转换来实现网络互通.各模块的通信协议如图4所示.GPRS通信模块与车载台之间采用基于TCP/IP的通信协议.SMS通信模块与SMSC之间的通信协议较多,常见的有SMPP、EMI、CIMD、TAP等.为了使通信服务器能够与不同接口的SMSC实现互联,需要一个协议转换器将它们转换为一种统一协议.各监控中心与通信服务器之间采用自行设计的监控接口协议.考虑到车辆监控系统传送的数据与SMS的短消息类似,监控接口协议以SMSC的对外接口SMPP协议为参考协议,并对原有的命令进行了一些必要的扩充,添加了有关监控中心修改其监控车辆号码等命令,在回执上采用了类似TCP/IP批量回应的思想,大大减少不必要的网络流量.3实现3.1ws提供的soceti线程是具有最小开销的程序实体,一个线程可以与其他线程并行执行.合理地使用多线程可以改善程序结构,提高系统的响应速度,增强系统的稳定性.Winsock是Windows提供的最低层的SocketAPI,它的使用分同步和异步两种模式.异步模式采用无阻塞调用,能够在接收和发送信息时处理界面和其他事件,适合在单线程的程序中使用,程序结构比较复杂.在多线程的环境中,如果使用Winsock的线程专为通信设计,则无须使用异步模式,而选用实现简单的同步模式为好.一般主线程执行用户界面,而阻塞Winsock调用则在其他工作线程中实现.系统实现时采用了MFC提供的CAsyncSocket和第三方提供的CBlockingSocket分别支持上述两种模式.3.2监控通信及监控通信比较根据各模块的功能和组成特点,采用具有图形界面的主线程实现用户管理模块和报文处理转发模块,其他3个通信模块分别由GPRS、SMS和监控通信线程实现.各线程的关系及简要流程图如图5所示.用户管理模块需要用户界面,且所管理的数据主要由报文处理转发模块使用,报文处理转发模块又是本通信服务器的核心模块,所以将二者结合起来设计在主线程内较为合理.GPRS和SMS因通信协议不同,所以需要分开设立两个线程.每个线程与外部网络都有多条链路相联,且每条链路的通信流量不大,所以适合采用消息形式的CAsyncSocket类.监控通信模块与监控中心的连接数不会太大,且各连接的数据流量大,协议统一,所以每个连接适合采用独立线程(阻塞Winsock)方式实现.主线程启动CBlockingSocket的连接侦听和第一个监控通信线程.监控通信线程阻塞等候接收连接,当收到连接后马上启动第2个监控通信线程在Accept调用阻塞,等候下一个连接.依此类推,在任何时候总有一个监控通信线程在等候新的连接.采用这种实现方法,可以支持多个监控中心并发操作,并具有良好的请求响应能力.除监控通信线程外,其他各线程均采用事件驱动的结构.采用消息触发不仅可以使程序具有良好的性能,而且在没有消息到达时,线程可被挂起,不占用CPU资源,有助于提高整个系统的效率.监控线程因为通信流量较大,且其主要工作集中在Socket的读写操作上,采用阻塞调用不会明显增加CPU的负担,但却可以大幅度降低程序实现时的复杂性,提高协议运行的可靠性.3.3cqueue类下标设计通信服务器在通信的过程中需要频繁地查询和读写其中的数据信息.为了加快访问速度,多处数据结构采用了以空间换时间的设计思想.车载台的通信状态表以及所属监控中心表分别以数组和结构数组的形式实现.每个车载台拥有自己的编号.按照编号规则,可以将这些编号映射到0~n的连续自然数范围.以此整数作为前述两表的数组下标,就可以快速定位所需信息.因为每辆车有可能同时被多个监控中心监控,所以车载台所属监控中心表的结构要复杂一些.考虑到实际使用中每辆车通常只同时被两个以下的监控中心监控,设计了一个带有指针的含有两个中心ID的结构(如图6所示).当所属监控中心不多于两个时,其指针指向NULL.而当所属监控中心多于两个时,可动态申请一个同样的结构,前一结构的指针则指向新的结构,新结构的指针指向NULL,-1表示该存储单元为空.各线程的缓存队列是线程交换数据的场所.考虑到车辆定位和控制信息的数据包的大小比较统一,以结构数组为基础设计了CQueue类.该类在创建时动态申请指定大小的结构数组,以便能够在多线程之间实现数据共享.用数组作为队列较动态实时申请的链表在内存占用方面有些不利,但可加快访问速度,减少内

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论