《基于无线传感网的展馆监控系统数据平台设计与实现 毕业论文.doc》由会员分享,可在线阅读,更多相关《基于无线传感网的展馆监控系统数据平台设计与实现 毕业论文.doc(32页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、毕 业 设 计 报 告课题:基于无线传感网的展馆监控系统数据平台设计与实现 院系: 班级: 学号: 学生: 指导教师: 2014年4月5日 毕业设计任务书一、 设计课题: 基于无线传感网的展馆监控系统数据平台设计与实现二、 设计目的:介绍了传感网络和展馆监控系统。三、设计要求: 本课题设计要求如下:1、介绍传感网络和监控系统2、 分析数据平台的特点,提出了设计方案3、 对了难闻的总结及展望 四、毕业设计报告要求:毕业设计报告由以下几部分组成:1、标题封面:标题要求简洁、确切、鲜明。2、毕业设计成绩评定记录表(教师等填写)3、毕业设计任务书(指导教师提供)4、目录5、正文6、附录五、设计进度计划
2、: 1月15日- 1月25日 查阅资料、系统功能分析、模块设计、数据库设计 2月 1日- 2月25日 代码设计、调试3月 1日- 3月25月 撰写毕业设计报告4月 毕业设计答辨六、毕业答辨需提交的材料:1、完整的系统代码2、毕业设计报告学 生: 指导教师签名:2014年4月5日目 录第一章 绪论61.1 引言61.2基于WSN的展馆监控系统概况71.3监控系统组成71.21.4数据平台的功能需求及背景8第二章 无线传感网络82.1无线传感网络的特点82.2平面型网络与层次型网络9第三章 数据平台总体设计93.1开发环境介绍及配置93.1.1数据平台结构93.1.2开发环境搭建及配置103.2数
3、据平台结构及工作流程103.2.1数据平台结构103.2.2数据平台工作流程113.3数据平台消息通信格式123.3.1 RSAUP消息123.3.2 SNCCP消息133.4数据加密143.5数据平台与SCN的数据交互163. 6数据平台设计补充17第四章 数据平台实现184.1数据平台认证184.1.1证书握手184.1.2证书生成194.1.3证书加载最简化程序示例214.2 RSAU模块组成与功能实现214.2.1RSAU模块组成214.2.2 RSAU运行流程234.2.3 makefile编写244.3 SNCC模块组成与功能实现274.3.1SNCC模块组成274.3.2SNCC
4、运行流程274.4 SNCC界面管理274.5 SNCC数据平台与SCN之间的通信及数据的保存284.6数据平台实现补充294.6.1 SNCC守护进程294.6.2编写可移植C程序要点294.6.3 SNCC分级及数据平台的扩展移植性304.6.4数据平台如何接入监控系统30第五章 总结与展望31致 谢32参考文献33第一章绪论:1.1 引言物联网与传感网被预言为继互联网之后全球信息产业的又一次科技与经济浪潮,受到各国政府、企业和学术界的重视,美国、欧盟、日本等甚至将其纳入国家和区域信息化战略。我国也及时地将传感网和物联网列为国家重点发展的战略性的新兴产业之一。目前传感网方面的应用已经延伸至
5、医疗、通信、交通、工业、农业等各行各业。而目前基于WSN(Wireless Sensor Network)即无线传感网的监控系统方面的应用,只是局限于小覆盖范围,比如智能家居监控系统,这是现在主流的基于无线传感网的监控方面的应用,它的监控范围比较小,且在部署完成后往往不再需要做大的变化,即使有变化也对整个监控系统的网络拓扑和管理不会构成大的影响。但是对于展馆监控系统这种大型的监控系统而言,它除了具有小型监控系统的实时性要求之外,还具有监控范围大和在自适应可扩展方面要求高的特点,尤其是对于巡展的展馆,展馆往往是临时部署,可扩展性和自适应的要求就更高了。小型的监控系统往往只局限于一个本地的自组网,
6、对于传感器的管理和传感信息的收集与处理也集中在系统中,不符合大型展馆监控的要求。为了便于对接入的传感器及监测设备的管理和传感数据的收集分析处理,本文提出了一种可用于家居环境监控的无线传感网控制系统数据平台设计方案,在设计方案中,把监控系统中管理传感器及相关监测的设备和收集分析处理传感数据的功能单独设计,也就是说把集中监控平台中管理传感网和分析处理传感数据的部分从中分离出去,这即是本文所说的监控系统的数据平台,而数据平台又分成了用于设置管理底层传感网的传感(感知)网络控制器(Sensor Network Communication Controller,以下简称SNCC)和用于接收分析处理传感信
7、息的远端感知接入单元(Remote Sensor Access Unit,以下简称RSAU),数据平台为展馆监控系统提供数据上的支撑和传感网络的管理服务。这样做符合系统设计中的由上到下,逐步细化的原则,不仅可以方便的收集监测和控制展馆环境中的温度、湿度、防火等多种安全情况,而且还简化了系统中监控平台的设计,让整个监控系统各组成模块之间的分工更加明细,而且使监控系统便于扩展和自适应的删减或添加小型监控子网。1.2基于WSN的展馆监控系统概况无线传感网技术在监控系统中已经得到应用。对于信息的采集,传感器以其电池供电、功耗小、成本低廉、可快速部署和在特殊的环境下也可正常工作等诸多优点,使其在监控系统
8、的信息采集中得到广泛应用。但目前基于无线传感网技术的监控系统,一般覆盖范围比较小,监控系统功能要求低,设计相对比较简单。展馆监控系统因为覆盖面广、分布式部署、采集数据多等原因,需要设计独立的数据平台来控制分布部署在各展区的远端传感单元,并从各展区获取监控系统的状态和告警信息,为整个监控系统的实现提供数据上的支持,使得整个监测更加可控化。本文的主要目的就是设计实现可移植、可扩展、性能良好的基于WSN的展馆监控系统的数据平台,并且可使监控系统数据平台也可推广应用到其他的与之具有类似要求和特点的监控环境中,使其更有现实意义。1.3监控系统组成 该监控系统以集中监控平台为中心,由感知通信节点(Sens
9、or Communication Note,简写为SCN)、远端感知接入单元(RemoteSensor Access Unit,以下简称RSAU)、感知网络控制器(Sensor Network CommunicationController,以下简称SNCC)、多媒体通信平台(MVCP)、本地无线/有线监控中心(WLMC)及感知网络运维系统(SNOPS)共同组成。集中监控平台主要负责集中监控各个房间的安全监控系统,防止人员异常操作,关闭监控系统所带来的安全隐患等。感知网络运维系统主要负责文物的安全感知网络,安全感知网络控制器、安全远端感知接入单元的在线配置、远程控制、集中管理和远程运维。本地无
10、线/有线监控中心主要负责现场的监控。多媒体通信平台对文物安全保护工作中所需要的各种视频通信功能。RSAU负责获取本地监控系统的状态和告警信息,将之上报到SNCC, SNCC安全感知网络控制器负责控制分布部署的物品安全远端感知接入单元,从各房间的集中监控系统获取监控系统状态和告警信息。感知通信节点SCN (也称传感通信节点)用于扩展各种无数据接口或者只提供有线数据接口的传感器和探测器设备的无线通信能力,使这些设备具有无线通信能力并实现到RSAU或者文物安全本地无线监控中心的网络连接。感知通信节点有两种,一种是普通的通信节点,采用802. 11局域无线通信技术,实现各类有线传感器和探测器设备的探测
11、数据的无线传输,从而在不方便部署有线网络的地方快速部署无线监控系统;另外一种是超低功耗感知通信节点,在野外等不方便通电的环境,利用超低功耗无线通信技术,实现各类有线传感器和探测器设备的探测数据的无线传输 ,可以在1节AA电池供电的情况下长期提供高达1M的数据传输速率,传输距离最髙可达800米。另外,SCN还提供多种接口如USB、RJ-45、 RJ-232与协议Zigbee的自适配。其中RSAU和SNCC即是本文提到的数据平台,只不过这两部分采用层次型网络设计,各自在整个监控系统中占有较大的比重,所以在系统组成图中将数据平台分成RSAU和SNCC两个单独的部分,实际上两者是紧密联系在一起的。1.
12、4数据平台的功能需求及背景目前,基于WSN的很多行业的大场景的系统级应用尚在自行开发过程中,将其中管理与接收无线传感器釆集的数据并处理的数据模块从大的监控系统中分离出去单独设计的方案是以后此类监控系统的发展趋势和必然,从传感器采集到的信息包括温度、湿度、光照强度及空气中某些对文物保管产生影响的气体成分等很多数据信息,大多传统的监控系统未采用无线传感网技术,监控系统的部署比较复杂,信息釆集不便且实时性差,往往需要另外配备人员来为监控系统作补充,人力物力的成本高,且不便于应对如临时开辟新展区?并启动监控等突发情况,可控性较差。一些已经采用无线传感网技术的监控系统,像智能家居监控系统,覆盖范H有限,
13、可扩展性不好,且对有多种不同要求的监控处理的分布部署的监控系统无法提供数据上的支持。为此,对于设计这样一个数据平台,需要考虑到很多因素,包括可移植性与可扩展性,及在一定程度上保证数据在传输过程中的完整性和安全性等。该数据平台是在Linux环境下开发设计,Linux是开源的,我们可以自行修改其内核将与数据平台无关的不必要的系统服务去掉,以使机器的性能发挥至最大。本文设计的无线传感网监测控制系统的数据支撑平台具有较好的安全性、可扩展性和可移植性,适应覆盖范围大、实时性及可靠性要求高、快速部署、可扩展性强的基于WSN的系统级应用。第二章 无线传感网络2.1无线传感网络的特点 无线传感网络是无线通信技
14、术的分支之一,它有无线通信的基本特点,却又因为它在特殊的应用场景和需求,所以无线传感网络具有许多传统无线通信网络所不具备的特点:1)传感器节点成本低,体积小,只有有限的计算能力在无线传感网络中,节点设备都高度集成化,各部件都充分精简,这降低了大规模布网成本的同时也使其计算能力受到很大限制。2)单个节点覆盖范围小,通信能力有限为了降低功耗,节约资源,单个节点的通信能力一般都比较有限,只有几十到几百米,因而无线传网络必须设计成能够支持多跳通信的模式,才能满足通信的要求。3)传感节点数量大山于成本低,传感节点通常中监测区域大规模布署,再加上多种应用环境的差异,导致无线传感网络的环境复杂,加大了维护的
15、难度,所以无线传感网必须具有组织能力,可以在独立地维持网络的正常工作。4)节点供电限制由于网络环境复杂,节点数量大,分布广且分散,节点的供电一般只能依靠电池,而电池电量储存有限,所有注意电源的使用效率非常重要。5)传感数据是核心对于使用者,传感网络本身不是他们最关心,他们真正需要的是节点的感测数据。因此对于传器传感测到的数据的管理与处理才是设计无线传感网络的重点。6)通信的不对称性无线传感网络中传输信息的方向多半是从节点向用户,而从用户传向传感节点的数据基本上是控制信令,用于发布任务和配置等,两个方向的通信量相差很大,因而无线传感网络的通信上下行是很不对称的。2.2平面型网络与层次型网络 网络
16、的设计一般分为平面型网络设计和层次型网络设计两种设计模型。而对于平面网络,网络中的第二层设备基本不能控制广播或过滤不需要的数据流。随着平面网络中设备和应用程序的增多,响应时间将逐渐变慢,甚至导致网络不可用,而在上面我们对无线传感网络的特点的介绍中,可以清楚的得出这样的结论:平面网络的设计不近合无线传感网络,尤其是应用于展馆监控中,监控数据需要得到快速的响应,平面网络只近应于相对简单的应用场景,应该采取层次型网络的设计模型来设计展馆监控系统的数据平台。 第三章数据平台总体设计3.1开发环境介绍及配置3.1.1开发环境介绍RSAU远端传感接入单元)负责接入各种类型的SCN (传感通信节点),帮助传
17、感通信节点所连接的传感器和监测仪器、设备等接入到传感通信网络中,通信方式有有线和无线两种,所以需要使用装有CentOS5.5 (CentOS5.6或者RedHat相应版本)带有无线的收发模块且性能较好的计算机,而SNCC (传感网络通信控制器)需要并发地支技多个RSAU并为之服务,需要配置高的计算机(操作系统与RSAU相同)。Gcc版本应该在4.1.2之上,gdb版本在7.0.1之上,另外需要辅助使用wireshark以便调试时抓取数据包并分析。3.1.2 开发环境搭建及配置1)安装wiresharkwireshark是在UNIX/Linux平台下的抓包软件,类似于S可以在wireshark的
18、官方网站下载最新的源代码包,解伍后编译安装即可。如果或者连接有外网,也可以直接在控制台里输入下面两行命令后等待执行完毕即可:yum install wiresharkyum install wireshark-gnome2) 安装openssl 在openssl的官方网站下载openssl 0.9.8g的源代码包,由于我们改动了源代码主要是两个源文件和一个头文件(bio.h)。两个源文件为app一smnormal.c和appjls.c,分别实现数据传输时的安全模式(数据加密)和普通模式(数据不加密),头文件bio.h则是对源文件所用到的接口进行声明,将bio.h覆盖到/usr/include/
19、openssl目录下,编译时要加上-shared选项,编译后会产生两个共享库:libcrypto.so.0.9.8和libssl.so.0.9.8,并将它们拷贝到/usr/Hb目录下。3.2数据平台结构及工作流程3.2.1数据平台结构数据平台中的RSAU (远端传感接入单元)负责接入各种类型的传感通信节点,帮助传感通信节点所连接的传感器和监测仪器、设备等接入到传感通信M络中。RSAU接受SNCC (传感M络通信控制器)的控制,每个RSAU在启动后可以通过静态配置方法或者通过动态配置(在传感网络部署网关存在的情况下)方法获取其可以接入的SNCC。 SNCC作为一个传感网络通信域的核心控制设备,负
20、责该域内的传感网络控制管理和传感业务处理等功能。传感通信节点可以包含多个种类,以实现不同类型的传感器或者监测仪器设备的M络接入功能。一个传感通信节点向下可以连接一个或者多个传感器,向上通过各种网络接口(以太网、串口、 Wi-Fi、 USB等)接入到RSAU,为了匹配不同类型的传感网业务和不同类继的传感通信节点,RSAU上可以动态配置多种类型的传感服务单元和传感接入单元。 数据平台的架构设计类似于图2.2-2的层次型网络设计图,不同的是它的核心层是SNCC,分布层为多个RSAU, RSAU下面的接入层由与其连接的多个SCN及连接着SCN的底层的传感器与监测设备组成。它的网络架构其实就是传统网络的
21、传感网化,只是其接入层由传统的PC机变成了传感器和监测设备。3.2.2数据平台工作流程图中的版本检查主要是在RSAU与SNCC认证接入后执行,RSAU接入SNCC后并不会立即进入配置改变流程,而是先把RSAU的版本号上报给SNCC,SNCC将其版本后与其是版本配置文件中的最新RSAU版本号进行比较,如果RSAU上报的版本号低于SNCC记录的最新版本号,则会发RSAU版本低的信息,提示更新。此时RSAU会启动更新进程,由于可能会涉及更新进程自身的更新,在关闭RSAU主进程,更新进程会先创建更新进程的副本,使更新进程结束后利用其副本从SNCC更新文件包中下载更新文件,更新结束后会自动启动新版本的R
22、SAU。比如当前RSAU版本号为4,SNCC记录的最新版本号为5,则在该RSAU在接入SNCC后会提示更新。这里有一个极端的情形就是,在该RSAU从版本4更新到版本5的过程中,SNCC又发布了新的RSAU版本6,结果在该RSAU更新结束后再次启动的时候还会提示版本低的消息,这时还需要再执行一次更新,这是与逻辑相违背的,因为RSAU刚更新过。这种情形虽然是一种极端的情形,但也是应该考虑到的,目前还没有比较好的解决办法。3.3数据平台消息通信格式3.3.1RSAUP消息数据平台主要通过进程建立消息队列来实现消息的通信。RSAUP指的是RSAU与SCN之间传递的消息,虽然SCN不属于数据平台,但是数
23、据平台中的RSAU需要接收并把SNCC的配置信息下发给SCN,所以需要定义RSAU与SCN之间的消息格式。由于RSAU与SCN之问的通信是在局域的自组M中传递,所以这部分消息不需要加密。另外我们把消息分成了控制消息和数据两种,虽然这样设计比单一的消息格式复杂,但是山于控制消息和数据消息的分离,可以很方便的对消息进行处理。RSAUP的控制消息承载控制信令,数据消息承载传感器釆集信息上报数据包或者发给传感器的数据包。控制消息的格式如下所示:+-+| IP | UDP | RSAUP | Contorl | Message | Hdr | Hdr | Header | Header | body |
24、+-+ 数据消息的格式如下图所示+-+| IP | UDP | RSAUP | | Hdr | Hdr | Header | +-+ UDP包头:所有RSAUP包都被封转进UDP包内。RSAUP包头(RSAUP Hdr):所有RSAUP协议包使用一个公共的包头。有效载荷(Payload): 个RSAUP协议数据包的数据信息。控制包头(Control Header):所有RSAUP控制都包含一个控制头。RSAUP数据包不包含控制包头。3.3.2 SNCCP消息RSAU与SNCC之间的消息称为SNCCP消息,需要加密的消息主要是SNCC与RSAU采用安全模式(safe-mode)时的SNCCP消息
25、。对于SNCCP消息,一个SNCCP包山1个或者多个SNCCP传输层包头和一个SNCCP消息组成。SNCCP消息也分为数据消息和控制消息。控制消息承载控制信令,数据消息承载传感器采集或者发给传感器的数据包。SNCCP协议包含保护模式和普通模式两种。安全模式是为了解决SNCC和RSAU之间通过公网连接时的安全问题,普通模式用于SNCC和RSAU在专网或者内网中部署的场景。在安全模式情况下,除了 SNCC发现请求消息和SNCC发现响应消息外,其它所有控制消息和数据消息都被DTLS保护。普通模式下控制消息的格式如下所示:+-+| IP | UDP | SNCCP | Contorl | Messag
26、e | Hdr | Hdr | Header | Header | Element(s) |+-+ 普通模式下数据消息的格式如下图所示+-+| IP | UDP | SNCCP | Payload | Hdr | Hdr | Header | +-+ 对于安全模式下的SNCCP控制消息,其格式如下:SNCCP控制包(DTLS安全保护)+-+| IP | UDP | SNCCP | DTLS | SNCCP | Contorl | Message | DTLS | Hdr | Hdr | DTL Hdr | Hdr |Header | Header | Element(s) | Trlr |+-
27、+安全模式下的SNCCP数据包如下:+-+| IP | UDP | SNCCP | DTLS | SNCCP | | DTLS | Hdr | Hdr | DTL Hdr | Hdr | Hdr | Payload | Trlr |+-+ UDP包头:所有SNCCP包都被封转进UDP包内。SNCCP DTLS 包头(SNCCP DTLS Hdr):所有DTLS加密的SNCCP协议都有一个SNCCP DTLS包头作为前缀。DTLS包头(DTLS Hdr): DTLS包头为它封装的SNCCP有效载荷提供认证和加密服务。SNCCP也头(SNCCP Hdr):所有SNCCP协议包使用一个公共的包头。有
28、效载荷(Payload): 个SNCCP协议数据包的数据信息;控制包头(Control Header):所有SNCCP控制也都包含一个控制包头。SNCCP数据包不包含控制包头。消息元(Message Element): 个SNCCP控制包含1个或者多个消息元。这些消息元的格式为类型长度/值。安全模式下的SNCCP消息有结束标志(Trlr)。安全模式下有可以很好地保护数据的私密性,而在内网中采用普通模式传输数据又可以保证在内网中传输的效率,避免了不分情形一律加密带来的不必要的额外开销。3.4数据加密在安全模式下,我们釆用的加密算法主要有两种:对称加密的三重DES算法与公开密钥加密的RSA算法。由
29、于三重DES算法比较复杂,为了更容理解,这里我们以简化的DES (S-DES)来说明它的构造思想。S-DES加密算法的输入是8位明文(例如10111101)和10位密钥,输出是8位密文。解密算法的输入、输出与之对应。加密算法包括4个函数:初始置换IP、复杂函数fk、简单置换函数SW和IP的逆运算IP。其中fk包括置换和替代运算,并且要使用两次。第一个fk输入是8位数据和8位密钥K1,后者是由10位原始密钥经过转换P10移位而产生的。移位输出经过另一个移位和另一个P生成第二个子密钥K2。加密过程可以表示为: C=IP1(fk2(SW(IP(M))K1=P8(shift(P10(key)))K2=
30、P8(shift(P10(key)))M=IP1(fk1(SW(fk2(IP(C)解密过程为: 图3.4-1 S-DES体制 S-DES依赖收发双方共享的10位密钥,它产生的两个子密钥分别用在加解密的不同阶段,这个过程参见图3.4-2。 P1035274101986P8637485109 图3.4-2定义置换P10为其中数字1至10表示密钥的不同比特。这意味着输出第1位是输入的第3位,输出第2位是输出的第5位等等。这样,密钥1010000010经过置换后变成了1000001100。然后将其前5位和后5位分别循环左移一位,得到0000111000。在选取其中的8位作置换P8,得到子密钥K1=10
31、100100。由上面循环得到的两个5位串在分别循环左移2位,产生0010000011,根据置换P8产生子密钥K2=01000011。S-DES的加密过程参见图3.4-3。首先将输入的8位明文使用IP置换,保留所有8位信息,但将其混淆,最后使用逆运算置换满足IP1(IP(X)=XIP26314857 图3.4-33.5数据平台与SCN的数据交互数据平台与SCN的数据交互指的是数据平台的RSAU与SCN之间的数据传输。由于RSAU与SCN之间的网络连接属于内部局域网,距离近且均带有无线的收发模块,它们之间的数据通信通过无线网络传输。数据平台运行时,由RSAU与SCN之间建立UDP网络套接口,通过U
32、DP以无阻塞方式传输数据。SCN负责将温、湿度及其他检测特定空气成分的传感节点感知到的温度、湿度及特定气体浓度等信息组织成双方约定的RSAUP消息数据包传送给RSAU, RSAU同样根据约定对消息数据进行解析。RSAU与SCN之间的数据通信可以理解为上位机与下位机之间的通信,由于本文所设计的数据平台是将管理传感器及相关监测的设备和分析处理传感数据的功能从监控系统中分离出来单独设计,所以使得作为上位机的RSAU只需要和SCN协商好通信方式与消息格式,而不必在意SCN的实现及SCN管理部署传感节点的具体细节,SCN只需要在扩充传感节点后将节点的类型及采集数据的格式等组织成消息发送给RSAU,然后R
33、SAU再通知SNCC使其更新网络拓扑即可。这种上层与底层分离的设计也是保证数据平台具备良好移植性的设计原则之一。对于所有SCN发送给RSAU的传感信息类型,在RSAU中均设有相应的上下域值(上下域值的具体设置由SNCC下发给RSAU),当收到SCN的数据包时,我们为了简化处理,没有采取数据库建表保存数据的方式,而是把数据包中的传感信息提取出来和上下域值进行比较,并定时打印日志信息,将数据写入日志文件保存的方式。这种方式的执行原则是:1)RSAU通过与相应上下域值比较的方式,确定监控区域内的各项参数状态维持在正常范围中;2)如果感知到的信息超出上域值或低于下域值时,立即发送异常告警消息,通知SN
34、CC处理调节使其恢复到正常范围内;3)定时将各参数打印到日志文件中,而不是每收到一次信息都会打印。但是如果出现异常发送告警消息后,打印日志的频率会增大,这是因为出现异常时打印日志文件的定时间隔会比处在正常情况下的间隔要小,这样做可以使我们査阅日志时能够快速定位异常,分析原因。数据传入上位机后如果采取数据库建表方式保存数据,需要RSAU与数据库做交互处状态值对状态值反馈并辅以定时打印日志的处理方式,可以简化操作,节约开销,体现出UNIX/Linux环境下程序设计哲学中的KISS (Keep It Simple,Stupid)思想。下位机的SCN与SN之间的连接主要采用R_M5和RJ-232两种接
35、口,另外也会有USB接口, SCN还支持近距离低功耗的Zigbee协议的自近配。每当按照某种算法部署扩充SN时,SCN只需要将新接入的SN类型和数据格式以消息的方式通知RSAU即可,无须将采用的传感节点部署算法也通知RSAU,实现个系统的底层与上的分层设计,使各层能够专注于本层的处理而无须关注其他层的细节实现。一个SCN可以接入许多个SN, SCN通过设置开关量来决定当前接收特定的SN的数据,并将接收到的数据按照约定组织成消息转发给RSAU处理。3. 6数据平台设计补充1)进程在数据平台中,多数模块都含1至2个主进程,实现该模块的主要业务逻辑。进程划分为两类:静态进程和动态进程。静态进程是指系
36、统系统后山启动模块创建的进程,这些进程在程序的整个运行周期内均存在,是数据平台的基础进程;动态进程是指各种传感服务单元和传感接口单元模块所创建的进程,这些进程是否启动依据平台前的系统配置,只有相应的传感通信节点或者传感业务被配置,相关ill;程才会被启动。2)消息驱动各进程之间的通信主要通过消息来交互(另外也有通过共享内存互通信息)。每个进程都有一个消息队列,进程的主要业务逻辑都是由消息来驱动的2*】。系统内部各进程之间的消息被称为内部消息,内部消息由消息号和消息体两部分组成。其中消息号为WORD(typedefunsigned short WORD)类值,消息体包含消息的具体内容。部分消息的
37、消息体可以为空。3)RSAUP和SNCCP消息4)平台配置原则a)配置文件boardconfigxfg:用于存放初始基本配置,SNCC与RSAU都有。RSAU/SNCCconfig.dat: RSAUconfig.dat存放各自RSAU从SNCC获取的各种配置数据,SNCCconfig.dat存放所有RSAU的配置,RSAU接入SNCC后将各个RSAU的配置下发给具体的RSAU 。* _profile:其中* (无符号长整数)表示传感接口单元标识,此文件内存放传感接口单元的私有配置;*_profile:其中* (无符号长整数)表示传感服务单元标识,此文件内存放传感服务单元的私有配置。b)系统配
38、置方法启动配置RSAU在启动后,利用boardconfigxfg中的内容和RSAU_config.dat中的内容对其自身进行配置。运行阶段配置修改当RSAU启动流程完成,接入到SNCC后,SNCC可以动态修改RSAU上的配置,并将修改后的配置信息保存到RSAU上的RSAUconfig.dat文件中。第四章 数据平台实现4.1数据平台认证4.1.1证书握手数据平台的握乎是指RSAU接入SNCC之前进行的相互认证过程,用来确认两方的身份。本数据平台的证书握手使用的是最简单的单向握手,客户是不需要任何证书的,即使服务端换了一套证书,双方还是可以在安全模式下通信,ssl握手的意义在于商定出一份密钢来保
39、证后续数据安全性,而不是双方之一不可信就握手失败,如果很在意对方证书的可信度的话,可以在握手之前加载信任证书列表,握1-之后验证证书可信度,而本平台现还是初级阶段,这方面的设计相对比较简单,只用了单向握手且只是从思想上相信了对方的证书可信度。简言之,握手过程就是确定一份密钥以确保后续通信的安全性,即使被截取也是加密的信息,也只有双方知道该如何解密。针对本数据平台的单向握手过程,也是默认的握手过程,可使用wireshark之类的抓包工具看到,握手过程可简述为以下几步:1、客户端发出hello来开启握手,此消息中包含了客户端可实现的算法及其他必要信息。2、服务端回应hello并确定了此次通信所需要
40、的算法,接着把自己的证书和公钥发给客户端。3、客户端验证服务端的可信度,并生成一条秘密消息,用服务端发来的公钥加密后发送给服务端。(即使可信度不高,如过期,也不会导致握手失败,如果客户端对证书的可信度质疑,需要在握手之后调用SSL_getverifyresult来确认之,届时可以决定是否需要继续通信)4、服务端用自己的私销解密,会话协商成功,双方可以用同一份密钥进行通信。4.1.2证书生成首先进入opensslapps目朵下(不一定是该目,可在出错时确定,见下文说明),找到f文件,査看CA_default下的dir的值是什么,举例:0.9.8e版本的dir=./demoCA所以在生成证书的时候
41、要把密钥和csr文件放在demoCA目下,demoCA是自己建的,建在哪个目录都无所谓,只要与配置文件所指一致。下面幵始证书的生成:(1)在终端中使用如下命令建立目录结构:$ mkdir -p ./demoCA/private,newcertsprivate存放密铜newcerts存放证书的$ touch ./demoCA/index.txt为空文件$ touch ./demoCA/serial索弓1生成一个证书就加1开始的时候在seriala中写入01 ,以后每生成一个证书就自动+1.(2)证书生成1.首先要生成服务器端的私钥(server.key文件):#openssl genrsa -d
42、es3 -out server.key 1024运行时会提示输入密码,此密码用于加密key文件(参数des3便是指加密算法,这里用的是三重DES算法,当然也可以选用其他的加密算法,如使用rsa参数,则是指用RSA算法加密,这里就不赘述了,可以査看openssl的man文档或者相关资料了解其他的参数及其代表的加密算法),以后每当需读取此文件(通过openssl提供的命令或API)都需输入口令,1024和加密精度有关,越大表示精度越高,需要破解的时间越长。如果不想每次输入密码,可以使用本命令去掉servenkey中已经指定的密码:#openssl rsa -in server.key -out s
43、erver.key不过,即使有密码,程序中也可以设定默认密码免去每次都输入密码的麻烦:char *pKeyPasswd=serve;SSL_CTX_set_default_passwd_cb_userdata(ctx, pKeyPasswd);2.用server.key生成一个证书:#openssl req -new -key server.key -out server.csr3.按照同样的步骤生成客户端的clientkey和client.csr文件#openssl genrsa -des3 -out client.key 1024# openssl req -new -key client.key -out client.csr4.现在已经有了 server.csr和clientcsr文件但是必须要有CA的签名才可以形成证书。所以下面开始生成一个KEY文件cakey和根证书ca.crt#openssl req -new -x509 -keyout ca.key -out ca.crt5.用刚生成的CA的证书为刚才生成的server.csr文件签名得到server.crt#openssl ca -in server.csr -out server.crt -cert caxrt -keyfile ca.key6.用刚生成的CA的证书为刚才生成的client.csr