1、南京理工大学硕士学位论文广域监控系统的可重构协议解析器设计与开发姓名:卢宪申请学位级别:硕士专业:控制理论与控制工程指导教师:朱岩20090608硕士论文 广域监控系统的可重构协议解析器设计与开发摘 要目前广域监控系统已广泛应用于众多领域。与其它监控系统相比,其被控对象分布范围广,且具有多样性和易变性。不同种类的被控对象需要不同的数据通信协议:当需求发生变化时,协议也需要相应的变化。因而,研究可扩展的数据通信协议以及合理的数据帧解析与构建策略具有现实意义。本文以广域监控系统中的车辆监控系统为对象,研究其数据帧解析与构建策略,并利用软件重构和设计模式等软件开发技术,使实现数据帧解析与构建功能的协
2、议解析器具有可重构、易扩展和易维护的性能。本文首先根据车辆监控系统信息交互的类型,设计出可扩展的数据通信协议;其次将协议的格式以XML文档的形式进行描述,减少协议与代码的耦合,并设计验证协议格式的XML Schema文档;最后依据XML Schema文档,采用数据访问层、业务逻辑层和表现层的三层结构进行代码编写。当协议变化时,只要相应的XML文档仍符合XML Schema,协议解析器便能够重新配置自身的结构,实现数据帧的解析。若协议在原来基础上增加了新字段,只需简单添加新的解析模块并修改相应的XML文档就能完成解析任务。关键词:广域监控系统,协议解析器,数据通信协议,可重构,XML,设计模式,
3、软件重构Abstract 硕士论文AbstractThe wide-area monitoring system has been widely used in many fidds nowadaysControlled objects in wide-area monitoring system are diverse,variable and widelydistributed compared wim those in other monitoring systemsDifferent kinds of controlledobjects require different Data C
4、ommunication Protocol(DCP)The DCP need to be changedcorrespondingly when requirements changeAs a result,it is necessary to investigate sealableDCP and better strategy of data frame parsing and buildingVehiele monitoring system is an important component of widearea moitoring systemInthis paper,the st
5、rategy of data frame parsing and building in vehicle monitoring st),stem isstudiedThe DCP is used to parse and build data frame,in order to make it reconfigurable,scalable and easy to maintain,the software development technology of software refactoringand design patterns is widely used in the code d
6、esignFirstly,the DCP is designed to bescalable according to the type of the information exchanged in the vehicle monitoring systemThen,the format of DCP is descIibed in the form of XML(Extensible Markup Language)document to minimize coupling between DCP and codesBesides,an XML schema documentis desi
7、gned to validate the format of DCE At last,the whole architecture of software isdesigned as three-layered structure:Data Access Layer,Business Logic Layer andPresentation layerAt the same time,the codes are designed according to XML SchemadocumentWhen the DCP is changed,SO long as the corresponding
8、XML document stillsatisfies the constraints of XML schema document,DCP parser can reconfigure the parsingmodules and parse the data frame as usualWhen a new field is added to the DCP,DCP parsercan also parse the new data frame by simply adding a new parsing module and modifying thecorresponding XML
9、documentKey Words:Wide-area monitoring system,Protocol parser,Data communication protocol,Reconfigurable,XML,Design patterns,Software refactoring声 明本学位论文是我在导师的指导下取得的研究成果,尽我所知,在本学位论文中,除了加以标注和致谢的部分外,不包含其他人已经发表或公布过的研究成果,也不包含我为获得任何教育机构的学位或学历而使用过的材料。与我一同工作的同事对本学位论文做出的贡献均已在论文中作了明确的说明。研究生签名: 夕一口7年f月少日学位论文使
10、用授权声明南京理工大学有权保存本学位论文的电子和纸质文档,可以借阅或上网公布本学位论文的部分或全部内容,可以向有关部门或机构送交并授权其保存、借阅或上网公布本学位论文的部分或全部内容。对于保密论文,按保密的有关规定和程序处理。研究生签名: 口67年,月少日硕士论文 广域监控系统的可重构协议解析器设计与开发1绪论11研究背景目前,监控系统已广泛应用于电力、交通、消防、邮电、钢铁、化工、工矿企业、住宅小区等诸多领域,几乎各个行业都不同程度地采用各种测控、监控设备【l】。早期的监控系统,被控对象往往只局限于一个车间、一个部门等小区域。随着计算机技术、数据通信技术和网络技术的发展,广域监控系统应运而生
11、,被控对象的分布范围越来越广,从一个城市的一处扩展到多处,从一个城市扩展到多个城市【2】。广域监控系统的具体实现形式千差万别,但一般都可分为现场(或前端)、通信和监控三个层次,如图11所示。监控层通信层现场层图11广域监控系统的层次结构现场层由远程终端和被控对象组成。远程终端负责检测、采集被控对象的各种模拟量或开关量信息,并进行必要的预处理;同时能够根据上层下传的控制命令,直接作用于执行机构,对被控对象进行控制。其中,所有被控对象的分布具有分散性、广域性,可以位于需要的任何位置。通信层是现场层与监控层进行信息交互的“媒介“,负责上传远程终端采集的各种信息,下传监控中心的各种命令。其网络为广域网
12、,能够覆盖所有可能的被控对象。常见的广域网络有Internet网络、GPRS(General Packet Radio Service,通用无线分组业务)网络、CDMA(Code Division Multiple Access,码分多址)网络等。监控层(或监控中心)负责整个系统的管理和控制工作,对接收到的信息先依据协议格式进行解析,再进行分析、归纳、整理、计算等二次加工,以图、文、声等多种形式进行报道,并能根据事先决定好的控制策略下发控制命令【31。监控层中的协议解析器l绪论 硕士论文主要用于数据帧的解析与构建。车辆监控系统属于广域监控系统,是融GPS(Global Positioning
13、System,全球卫星定位系统)技术、GIS(Geographic Information System,地理信息系统)技术和现代无线通信技术于一体的系统【4】。本文以车辆监控系统为例,开展对广域监控系统的协议解析器的研究。该系统分为车载终端、通信网络、数据服务中心DSC(Data Server Center)、数据库以及业务展示平台等五个部分,以GPS技术、GPRS技术、GIS技术为支撑,用于实现对大型工程车辆的监控。12研究意义和目的在广域监控系统中,被控对象和监控中心是通过协议来进行信息交互的,被控对象之间既具有相似性又具有一定的差异性。具体到车辆监控系统中,不同种类的车辆需要不同的数据
14、通信协议格式;同时,当需求发生变化,对终端升级改造后,协议格式也将发生改变,可能出现新旧协议必须兼容的状态。另一方面,DSC的主要功能之一是数据处理,而数据帧的解析与构建是该数据处理模块的主要功能。解析后的数据是数据库和业务展示平台的数据来源,构建后的数据帧是控制车辆的依据。协议解析器性能的好坏直接影响着DSC的运行效率,它在整个系统中处于核心地位。因此,要保证系统的长期稳定运行,必须具有可扩展的数据通信协议,同时协议解析器必须是可重构的【51,即当协议变化时能重新配置自身的结构,实现对新数据帧的解析。虽然车辆监控系统数据帧解析与构建方面已有不少现成的处理策略,但是均存在不同程度的问题。大多数
15、系统都采用硬编码解析,即协议的格式、处理逻辑皆固化在代码中。采用这种方式的协议解析器是不可重构的。虽然它能使解析速度得到很好的保证,但是只要协议发生变化,即使是微小的变化,就必须对软件进行修改;同时也不利于软件的扩展、维护,软件复用很困难。部分系统利用XML技术设计了可重构的协议解析器,将协议以XML文档的形式表现。协议变化时,只修改XML文档,代码可不作修改。这样做的确在一定程度上实现了协议解析器的可重构,但还是存在着一些问题。首先,表示协议具体格式(或内容)的XML文档与验证协议格式的XML Schema文档设计不合理。XML Schema没有完全对XML文档进行约束,无法用来验证XML文
16、档中的协议格式,从而无法准确判断新数据帧(依据新协议)能否被解析。XML文档中对协议的各个字段设置了位置变量,开始解析时先要计算各字段在数据帧中的绝对位置,并将它作为解析的唯一依据。计算位置变量的过程中一旦出现问题,将导致解析出错。其次,解析过程中,读XML文档的信息是采用查询的方式。无论解析什么类型的数据帧均要建立所有字段的节点对象,2硕士论文 广域监控系统的可重构协议解析器设计与开发而不同类型的数据帧有不少特有的字段,这使得很多节点对象是空对象。随着解析数据帧的增多,节点对象也急剧膨胀,这影响了系统的性能,降低了解析速度。最后,协议解析器中的耦合度比较高,使得对某部分的修改将影响到其它部分
17、,不利于维护、扩展。综上所述,研究可扩展的数据通信协议以及可重构的协议解析器具有现实意义。协议解析器的设计目标为:充分利用现有的软件开发技术,使协议解析器的结构是可重构的。在系统运行的初始阶段有一个初始的配置,系统运行过程中,能根据运行状况和环境的变化产生一个新的配置,即能根据协议的变化,改变自己的结构,实现对新数据帧的解析。协议解析器也应具有较强的可复用性,代码之间耦合度低,利于维护、扩展。协议变化超出其重构范围时,只需简单修改或增加解析模块,而其它代码不需作任何变化。另外,为了不影响整个系统的性能,必须保证协议解析器的解析速度,使得系统在车辆增多的情况下,也能够正常运行。13国内外研究现状
18、可重构的概念最早由美国加利福尼亚大学的Geraid Estrinr于上个世纪的60年代末提出【56】。但是他研制的可重构系统只侧重于理论上,并没有在应用上予以实现。到了1975年,WIerlin和Back将重构技术应用于配电网【57】,可重构的理论才得以与实际系统相结合,并显示出其对系统性能的优化。此后,可重构的研究不断地深入,但由于缺乏理想的可重构器件等诸多原因,实际应用仍然不多。90年代以来,随着大规模集成电路的迅速发展,特别是现场可编程门阵列FPGA(FieldProgrammable Gate Array)性能的不断改进,可重构系统开始应用于众多领域,如军事目标匹配、大数运算、声纳波束
19、合成、基因组匹配、图象纹理填充、集成电路的计算机辅助设计等。其中,早期最成功的例子是Splash2。在遗传学基因组分析的应用中,它的运算速度是当时的SPARCl0工作站的2500倍;若做灰度图像的中值滤波器,则几乎是SPARCl0的140倍瞵J。目前,可重构技术和可重构系统仍是学术领域和应用领域的研究热点,且以动态重构与远程重构为重剧91。动态重构是指系统在重构过程中可以照常工作,即一边工作一边进行重构。远程重构是指把通讯和网络控制技术与可重构技术相结合而产生的一种全新的基于网络技术的可重构逻辑概念。14本文内容及章节安排本文主要内容为:研究数据帧解析与构建策略,设计可重构的协议解析器。设计过
20、程中充分利用软件重构和设计模式等软件开发技术,提高软件的可重构性、可维护性、可扩展性,实现软件复用。其中,解析上传数据帧分为两个步骤:初次解析时,依据协议的具体格式,将模拟量、开关量等字段的每个数据从数据帧中分离出来,分离后的值31绪论 硕士论文称为原始值。再次解析时,依据车载终端的配置信息,将原始值解析为有物理含义的真实值。数据帧构建主要是构建两类数据帧:一是构建应答数据帧,作为对上传信息的应答;二是构建配置信息和控制信息的数据帧,作为下发的控制命令。具体实现上,由于XML的强大功能,本文仍使用XML及其相关技术来对数据帧进行解析与构建。首先根据车辆监控系统信息交互的类型,设计可扩展的数据通
21、信协议;其次制定出代表协议每个字段的关键字,设计描述协议具体格式的XML文档与验证协议格式的XML Schema文档;最后依据XML Schema文档编写解析代码。代码采用数据访问层、业务逻辑层和表示层的三层结构,并充分利用已有的设计模式,尽量减少各层之间、各子模块之间的耦合。当接到一个数据帧时,协议解析器依据对应的XML文档内容,对数据帧进行解析。当协议发生变化时,只要其对应的XML文档能通过XMLSchema文档的验证,协议解析器能根据新的XML文档重新配置自已的结构,实现对新数据帧的解析。本文章节安排如下:第一章:概述广域监控系统的体系结构,并阐述本文的研究目的和研究内容。第二章:介绍车
22、辆监控系统的总体设计以及与协议直接相关的子系统的功能,从而明确了协议解析器在系统中的地位和作用。同时介绍软件重构与设计模式的知识,为后面的内容作理论准备。第三章:介绍网络通信协议的相关内容,给出车辆监控系统可扩展的数据通信协议,并完整定义可重构的协议解析器的概念,结合协议格式分析了其工作原理。第四章:介绍XML的相关知识,给出基于XML解析的具体思想,并设计描述协议具体格式的XML文档与验证协议格式的XML Schema文档。XML Schema文档实现了对协议格式的完全约束,能用于判断协议解析器能否通过重新配置自身结构来解析新数据帧。同时,XML Schema也是代码编写的依据,减少了协议格
23、式与代码的耦合。第五章:介绍协议解析器的设计,给出数据访问层、业务逻辑层和表示层的具体实现,并对协议解析器性能进行了讨论。在业务逻辑层中分为初次解析、再次解析、数据帧构建三个子系统,使软件更利于扩展、维护。第六章:总结了本文所做的主要工作和取得的成果,并提出了若干需要研究和解决的问题。4硕士论文 广域控系统的可|构协议解析罂设计与开旋2车辆监控系统与软件开发技术车辆监控系统是广域监控系统在车辆交通行业的应用,具有广域监控系统的共同结构即均由前端、通信网络、监控中心三部分构成。但是,监控系统结构的具体实现形式是千差万别的,功能上也有或多或少的差异。本章第一部分将介绍本文所研究的车辆监控系统的总体
24、结构及其主要部分的功能。同时,数据帧解析与构建策略的研究、协议解析器的设计充分利用了软件重构和设计模式。重构与设计模式贯穿于整个研究的始终。故本章第二部分将介绍软件重构与设计模式等软件开发技术的相关知识,为后面章节的内容做准备。21车辆监控系统的总体设计21I车辆监控系统的结构车辆监控系统的功能是实时地采集车辆GPS信息和工作状态参数,并存八数据库,用户可以根据需要通过网页对它们进行查询和控制,实现对车辆的监控。其结构如图2 1所示。本地信息 - WEBN务器通信网络 监控中心圈2 1车辆监控系统的结构客户端客户端数据服务中心2车辆监控系统与软件开发技术 硕士论文前端,是指安装有终端控制器的所
25、有车辆,它们的终端控制器有相似性但又有一定的差异,如某些车辆要采集8种模拟量信号,而某些车辆只需采集6种模拟量信号。同时,它们的分布是广域的,可以位于一个城市,也可以位于多个城市。通信网络是指GPRS网络和Intemet网络,采用GPRS接入Intemet的方式。监控中心是整个监控系统的核心,由DSC、数据库和业务展示平台三个部分组成。DSC实现信息的解析和构建,并将信息转发到相应的位置(如数据库、业务展示平台等);数据库实现车辆的各种状态信息、配置信息和报警信息的存储;业务展示平台实现以电子地图的形式展现车辆的位置及各种状态信息,同时可用于下发控制命令,对车辆进行控制。整个系统的工作机制如下
26、:车载终端的GPS模块根据定位卫星发来的定位信息,计算出车辆所在位置的经纬度、行驶速度、方向角等信息,通过数据接口送到中心控制模块;同时,CAN(ControllerAreaNetwork,控制器局域网络)总线接口模块将采集到的CAN总线信息,数据采集模块将采集到的开关量信息、模拟量信息也送到中心控制模块;中心控制模块对实时、统计、报警等各种信息进行整理、分析,并按照数据通信协议的格式构建成数据帧,通过通信网络上传至具有静态P地址的DSC。DSC收到数据帧后,先由协议解析器将数据帧解析出来,若收到的数据帧正确,就向终端下发应答帧。同时,将解析后的各种信息,一方面存入数据库,作为历史信息存储,以
27、备用户查询;另一方面,将实时信息缓存于内存,以备业务展示平台查询调用。用户可以通过业务展示平台查看车辆的各种信息,并能够下发命令信息。命令信息在DSC构建成数据帧后,通过通信网络下发至车载终端,实现对车辆的控制。车载终端、通信网络和DSC是与数据帧解析构建直接联系的三个子系统。车载终端的信息是解析的对象,通信网络是协议内容的传送载体,DSC是完成数据帧解析与构建的工作场所,所以在此主要介绍这三个子系统的结构和功能。212车载终端控制器车载终端控制器是指安装在车辆上的嵌入式系统,它以ARM芯片作为处理器,实现两方面的功能:(1)采集车载终端的各种信息(包括GPS定位信息和工作状态信息)通过通信网
28、络上传至监控中心:(2)接收监控中心下发的命令对车辆进行控制(锁车等)。其结构图如图22所示。6硕士论文 广域监控系统的可重构协议解析器设计与开发I lL一一J图22车载终端的结构中心控制模块中心控制模块是车载终端的主控制器,在整个车载终端子系统中处于核心地位,完成数据的处理和控制节点的控制。具体功能为:将GPS模块送来的定位信息和通过数据采集模块、CAN总线接口模块采集到的工作状态信息进行分析整理,按照数据通信协议的格式将其构建成数据帧,一方面向监控中心上传,另一方面将重要的信息存储在存储器中。若分析工作状态信息时发现异常,就马上向监控中心上传报警信息。同时,中心控制模块能够将监控中心下发的
29、控制命令解析,通过开关输出模块对开关节点进行控制。数据采集模块数据采集模块主要由AD模块和FO模块组成。AD模块用于采集车辆的模拟量信息,如电压、油温、水位等,并将模拟量转化成数字量后送到中心控制模块。IO模块用于采集车辆的开关量输入信息和开关量输出信息,如点火、供电等,然后送入中心控制模块;同时,IO模块接受来自中心控制模块的指令,通过输出模块改变继电器的状态,实现对车辆的控制。数据采集模块的配置,是因车辆类型而异的,因而它们所采集的信息的种类和数量是不一样的,这要求数据通信协议是可扩展的。另一方面终端硬件是可重构的,运行过程中可以改变配置,从而改变了协议,这要求协议解析器能够应对协议的变化
30、。CAN总线接口模块CAN总线接口模块用于接收从CAN总线传输过来的车辆工作状态信息,如车辆故障信息、车辆电气部件工作状态信息等。它是对数据采集模块的重要补充,传送来的信息种类同样可以因车辆的不同而有差异。CAN总线,属于工业现场总线的范畴。与一般的通信总线相比,CAN总线的数据72车辆监控系统与软件开发技术 碰论文通信具有突出的可靠性、实时性和灵活性现已广泛应用于汽车内部控制系统与各检测和执行机构问的数据通信。GPS模块GPS模块是车辆位置信息的来源,由天线、接收机、计算机及输入廊出设备四个部件组成。它通过天线接收来自GPS卫星(至少四颗)的定位信号,经过变频、放大、滤波等一系列处理后,能够
31、对GPS卫星信号进行跟踪、锁定、测量,产生计算位置的数据信息,如纬度、经度、高度、速度、Iq期、航向、卫星状况等旧。GPRS通信模块GPRS通信模块是车载终端与监控中心通信的桥梁,完成的功能是:将中心控制模块构建好的数据帧通过GPRS网络传送到监控中心,同时接收从监控中心下发的控制信息和配置信息。存储器模块存储模块主要用于完成两方面的功能:首先存储车载终端的程序;其次存储车辆一段时间内的重要工作状态信息以及缓存上传失败的数据帧。这样,当通讯网络m现故障而导致信息上传失败时,因对数据帧进行了备份,等到网络恢复通畅后,可再将信息上传,防止DSC接收到小完整的信息。同时,当车辆出现故障时,查询最近的
32、工作状态信息,就可以为制造商提供重要参数,以便修理及改进产品。213通信网络车辆是一种移动目标,在某时刻所处的位置具有不可预测性,所以无线通信网络是其首选的通信方式。自从1 896年马可尼发明了无线电报I三c来,无线通信得到了飞速发展。其通信方式主要有无线电台、微波通信、GSM(Global System For MobileCommurfication,全球移动通信系统)阿络、GPRSCDMA、卫星通信等。本系统使川GPRS网络进行通信。GPRS是第二代移动通信技术GSM向第二代移动通信(3G)过渡的技术,被称为2 5G,其系统结构如图2,3所示。国移动台图23GPRS系统结构目硕士论文 广
33、域监控系统的可重构协议解析器设计与开发GPRS网络是在GSM网络的基础上通过增加网关GPRS支持节点GGSN(GatewayGPRS Supporting Node)和服务GPRS支持节点SGSN(Serving GPRS Supporting Node)实现的。SGSN的作用是记录移动台(即移动客户设备,包括车载台、便携台和手机)当前的位置信息,并实现移动台与GGSN之间移动分组数据的接收和发送。GGSN主要起网关作用,连接GPRS网络和外部分组交换网(如因特网),移动台发起的分组数据通过GGSN传输至外部网络,而来自外部网络的数据被GGSN直接传送给SGSN,最后到达移动刽14】。无线通信
34、相对于有线通信具有信号传输距离有限、稳定性较差、易被干扰等弱点:同时,监控中心采用hlt锄et网络进行通信容易实现。因此,系统的整个通信链路采用由GPRS网络接入Intemet网络的方式。214数据服务中心DSCDSC,又称转发中心,主要用于提供数据服务,是整个系统的核心。其结构如图24所示。图24DSC结构图首先,它将车载终端上传的数据帧使用协议解析器进行解析,解析后的信息分为两个流向,一方面存入数据库备份;另一方面,将实时信息在内存中缓存,以备用户实时调用。这种处理方法使得业务展示平台只在请求历史数据时才调用数据库,对于频繁请求的实时信息可直接从DSC获取,提高了响应速度,也减轻了数据库的
35、压力。其次,它将业务展示平台下发的控制信息和配置信息使用协议解析器构建成数据帧,下发至相应的车载终端。通信模块 通信模块用于实现监控中心的网络通信功能,完成车载终端上传数据帧的接收和用92车辆监控系统与软件开发技术 硕士论文户下发命令的发送。代码实现上采用Ci6Socket套接字编程。字节流套接字使用传输控制协议TCP(Transmission Control Protoc01),完成面向连接的通信,在传送数据之前必须建立连接,且在数据传输结束后才释放,提供全双工和可靠交付的服务。数据报套接字使用用户数据报协议UDP(User Datagram Protoc01),完成非连接的通信。传送数据之
36、前不用建立连接,对方收到数据报后也不进行确认,所以是一种简单、不可靠的通信【l 51。本系统数据通信的特点是车载终端定期向监控中心上传数据帧,具有阵发性,两者之间不用一直保持连接状态;每个数据帧的长度也较短,不需要一次进行大量的数据传送。同时,GPRS网络采用流量收费,系统一旦运行就得支付这方面的费用。采用TCP协议,每一次上传都得先建立连接,这样反复连接不仅影响系统的性能,也增加了费用。综合以上因素,本系统采用UDP协议进行通信,并在数据通信协议中制定信息交互时的确认机制,保证其可靠性。通信模块接收数据时采用异步接收,当套接字处于等待接收状态时,主线程可以进行其它操作,从而保证了系统的性能。
37、数据处理模块数据处理功能是DSC的核心功能。完成的任务为:对上传数据帧解析,解析的结果为信息原始值,它们一方面交给数据库服务模块用于存储,另一方面将其中的实时信息缓存;同时构建应答数据帧用于下发确认信息。当业务展示平台请求实时信息时,将缓存的信息原始值再次进行解析得到信息的真实值,返回给业务展示平台。当用户有下发命令时,先将其构建成数据帧,然后下发。从实现功能上,可以从数据处理模块中分离出协议解析器,专门用于数据帧的解析与构建。当车辆种类增加或车载终端重新配置时,数据通信协议将发生变化,如果协议解析器不可重构、难扩展、难维护,将无法保证系统长期的稳健运行。协议发生微小的变化,就得对系统进行修改
38、,通常这种修改花费的时间较长、付出的代价也较大。协议解析器将成为制约整个系统可维护性和可扩展性的“瓶颈”。数据集合模块下发数据时,需要知道车载终端的地址和端口号,为了方便数据处理,本文将终端手机号、P地址和端口号、上传时间、终端归属者编号等信息封装在模块类中,再将每个车辆对应的模块类存放在一个集合中,构成一个数据集合模块。同时,模块类中还封装了车载最近一次的实时信息。这样,通过数据集合模块可以很方便地下发数据帧及响应业务展示平台的查询。数据库访问模块数据库访问模块主要完成数据库的读写工作。ADONET是NET中用于数据库访问的类库,提供了数据库访问的接口,具有访问简单、可扩展、统一XML和关系
39、数据库等特点f16】,故本系统采用它来进行数据库访问。10硕士论文 广域监控系统的可重构协议解析器设计与开发业务展示接口模块业务展示接口模块是DSC与业务展示平台进行交互的接口,实现接收业务展示平台查询命令以及获取用户下发控制命令的功能。22软件开发技术221软件开发要求当今,软件维护工作在软件开发周期中所占的比例越来越大,对软件的可维护性、可复用性的要求也越来越高。软件的可维护性是指软件能够修改和升级的容易程度;软件的可复用性是指软件或软件系统在不修改或者仅做少量修改的情况下可以被新的软件系统所利用的能力【071。当用户的需求发生变化时,软件就得进行修改。随着修改次数的增加,系统原来的设计就
40、变得越来越模糊,程序员难以通过阅读源码来理解原来的设计。最后将导致没有人愿意再来修改,甚至需要对系统进行重新设计,重新编码调试。解决这个问题有两个途径:(1)在系统开始设计时,参照已有的设计模式,使系统有一个良好的设计;(2)在系统的开发与维护过程中,培养重构的习惯,积极对软件的代码进行重构,改进系统的设计【l71。大多数情况下,对于途径(2),设计模式仍然发挥着巨大的作用,它可以指导重构的进行,重构与设计模式之间有着千丝万缕的联系。许多关于重构和设计模式方面的经典著作都指出了这一点。如Erich Gamma等人的设计模式,在其“结论“章节中指出:设计模式记录了许多重构产生的设计结构,设计模式
41、为重构提供了目标。MartinFowler在重构一书中也有类似的说明:模式和重构之间存在着天然联系。模式是你想到达的目的地,而重构则是从其他地方抵达这个目的地的条条道路。因此,对协议解析器进行设计的过程中,本文采用的方法是:先参照已有的设计模式,进行预先设计,得到一个较合理的解决方案,再积极对软件进行重构。重构的过程中,以设计模式为导向,进行一种模式导向的重构。这样做可以改进预先设计,有利地弥补预先设计中的不足;同时,重复之处可以被去除或减少,复杂之处可以被简化,代码可更好地表达其意图。然而,协议解析器设计过程中,也需要避免使用设计模式过度。若在完全没有必要的时候也硬套一个模式,就会使软件变得
42、更加复杂。接下来,将具体介绍软件重构和设计模式的相关知识。222软件重构重构这个概念最初产生于对Smalltalk的研究和使用。由于重构是开发过程中不可缺少的部分,当研发人员在精练代码,对类的继承层次和设计框架进行整理时,逐步使用了这个概念【171。现在重构的作用越来越被人们所重视,重构开始成为了一种技术。1l2车辆监控系统与软件开发技术 硕士论文重构的定义为:是一种对软件内部结构的一种调整,目的是在不改变软件可见行为的情况下,使其更易理解,修改成本更低【l引。重构不仅限于整理代码,还提供了一种更高效且受控的代码整理技术。它提供了一系列的重构准则,根据这些重构准则,可以去除重复,简化复杂逻辑和
43、澄清模糊的代码。重构的优点归纳起来主要有以下四个方面【18】:(1)改进软件的设计:在软件设计的最初阶段,由于不可能考虑到所有的问题,随着开发过程的深入,代码将被不断地修改,导致系统原有的设计变得越来越模糊,程序失去了原有的结构。而重构可以使代码维持原有的形态。(2)使软件更易理解:当软件开发人员不注重重构,而一味只顾着编程时,代码将会变得难以理解。而通过重构将复杂的逻辑简化、模糊的代码澄清,可以提高软件的可理解性。(3)易于找出错误:不断对代码进行重构时,代码不会局限于计算机能够理解的语言,任何软件开发人员都能轻松读懂,从而很容易找出代码中的错误。(4)提高开发速度:良好的设计是提高软件开发
44、速度的根本,重构有效地防止了代码变质,提高了设计质量,从而提高了开发速度。重构是在一定的重构准则下进行的,主要为:(1)一个时刻只戴一顶帽子:使用重构技术开发软件,添加新功能时,不修改既有的代码,只管添加新功能;而重构时,不添加新功能,只管改进程序结构。(2)保持可观察行为:重构过程中必须保持外部可观察性不变。(3)小步前进:对代码进行重构时,若一下子作很大的动作,很容易出现错误。而一次只作很少改动,改一步测试一下,可以有效地减少错误和提高速度。223设计模式模式的概念最早由建筑大师ChristopherAlexander提出【19】,他说:“每一个模式描述了一个在我们周围不断重复发生的问题,
45、以及该问题的解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复劳动“。尽管他所指的是城市和建筑模式,但是他的思想也同样适用于软件的设计模式。设计模式的定义为:被用于描述特定场景下解决一般设计问题的类和相互通信的对象20l。它使人们可以简单方便地复用成功的设计和体系结构,帮助软件开发人员做出有利于系统复用的选择,避免损害系统的复用性。从而提高了软件开发的效率,减少了开发过程中的错误,同时也有利于开发人员之间的交流。根据模式完成的工作的不同,可以将设计模式分为行为型、创建型和结构型三大类。行为型模式描述了类和对象怎样交互和怎样分配职责;创建型模式与对象的创建有关;结构型模式用来处理类或
46、对象的组合【19】。12硕士论文 广域监控系统的可重构协议解析器设计与开发根据模式的作用范围可将设计模式分为类模式和对象模式两大类。顾名思义,类模式是用于处理类和子类之间的关系,而对象模式则是用于处理对象间的关系。在协议解析器设计与重构过程中,所使用到设计模式将在第五章中进行具体分析。23本章小结本章首先介绍了车辆监控系统的总体结构,接着阐述了车载终端、通信网络、DSC等三个与数据帧解析与构建直接相关的子系统的功能。最后介绍了软件重构与设计模式的相关知识,分析了它们在软件开发中的作用,并说明了本系统设计过程中如何使用它们。13硕士论文 广域监控系统的可重构协议解析器设计与开发3数据通信协议协议
47、是车载终端与监控中心进行交互的语言。如前所述,车载终端是易变的和多样的,如果没有一个具有一定柔性的协议就无法实现车载终端与监控中心的信息交互;同时,也将直接制约整个监控系统的可扩展性与可维护性。当需求发生变化时,即使是微小的变化,也将导致对整个系统的修改。本章首先介绍网络协议的相关内容,接着给出本系统可扩展的数据通信协议,最后提出可重构协议解析器的概念,并依据协议的格式分析其工作原理。31协议概述311协议的定义及其分层结构通信就是相互通信,是在两个或多个实体之间交换信剧211。为了在这些通信实体之间准确、完整地交换信息,就必须要有一些事先约定好的规则。这些规则明确规定了所交换信息的内容、格式
48、以及信息交换的顺序等。为进行网络中的数据交换而建立的规则、标准或约定,就是网络协议【冽。网络协议主要由语法、语义和同步三个要素组成22,23】:1语法定义了所交换数据与控制信息的结构或格式。例如,网际协议口规定数据报首部第16到第31个bit位是总长度,第32到47个bit位是标识等。2语义定义了需要发出何种控制信息,完成何种动作以及做出何种响应,也就是对协议组成成份含义的约定。例如,P协议首部中的目的口地址,表达的语义是根据目的IP地址进行路由选择。3同步定义了事件实现顺序以及速度匹配。体现在当两个实体进行通信时,数据发送的时间以及发送的速率。计算机网络是一个非常复杂的系统,在进行协议设计时
49、通常采用分层结构。每一层都建立在下一层的基础上,并负责完成明确定义的功能,同时向它的上一层提供特定的服务。计算机网络的各层及其协议的集合,就是网络的体系结构。国际标准化组织定义的开放系统互连参考模型OSI-RM COpSystem Interconnection-Reference Mode)采用了7层的体系结构,从下到上分别为物理层、数据链路层、网络层、传输层、会话层、表示层和应用层【221。而目前广泛应用的TCPIP则采用物理层、数据链路层、网络层、传输层和应用层的五层结构。153数据通信协议 硕士论文分层的优势是明显的,它使层与层之间相对独立、相互隔离,灵活性好,有利于实现、维护和标准化。本系统采用的是TCPIP协议族,车载终端所采集的数据在各层之间的传送过程如图31所示。发送方 接收方数据部分l应用层 龟 应用层 童运输层 鏊1 1日日P 数据部分I -* -I首部 数据部分 卜一一 运输层 震k 墓网络层 翼 +-t首部l 数据部分 卜一一 网络层、J 雾数据链路层 叫首部I 数据部分 I尾部卜 数据链路层、 霎物理层 叫01010101