论文部分内容阅读
近年来,随着信息技术的迅速发展,物联网(InternetofThings,IoT)技术在测控行业中得到了广泛的应用。典型的物联网测控系统由感知层、网络层、应用层组成。感知层是测控系统的基础,主要利用传感器技术进行相关数据的收集,这也是整个物联网的核心。网络层主要通过无线网络技术及时传送收集的数据。应用层作为测控系统的上层应用主要实现数据的存储、查询、展示等功能。本文在基于物联网测控的基本框架下,设计了一种用于以环境信息采集分析为主的物联网测控应用场景后台处理软件——云服务平台。该云服务平台主要用于测控数据的分析、存储、查询以及为用户终端提供业务逻辑处理,可满足多用户同时在线进行实时检测、定时检测、远程控制等操作。本文开展的工作如下。(1)在方案设计方面,研究分析了物联网测控云服务平台的功能需求和技术需求,并在此基础上对云服务平台框架结构和工作流程进行设计,同时根据工作流程进行功能模块的划分以及功能模块间调用时序的设计。此外还对云服务平台数据库进行设计与优化。(2)在数据传输格式方面,采用了 Protobuf(Google Protocol Buffer)协议,它定义了一种二进制消息格式,特别适合网络传输或存储。并在此基础上设计能够在网络编程中使用的数据传输格式。从而使得通信双方在共享proto文件的情况下,接收方在接收到Protobuf二进制数据流后,能够自动创建具体类型的Protobuf Message对象,并用接收到的数据填充该Message对象,实现了数据的高效可靠传输。(3)在并发能力方面,使用Boost库的asio库和thread库进行并发编程,asio库基于操作系统的异步输入/输出(Input/Output,I/O)高效地实现了前摄器(Proactor)模式,而thread库提供了可移植的多线程处理能力。通过asio和thread的配合使用可以构建出多线程异步I/O程序,能够获得更高的性能。(4)在系统安全方面,采用安全套接字层(Security SocketLayer,SSL)/传输层安全(TransportLayerSecurity,TLS)协议对网络连接进行加密以及鉴别通信双方的身份,可以有效地保证数据的传输安全,防止数据在传输过程中被窃听或者恶意篡改。以及使用安全散列算法(Secure Hash Algorithm 256,SHA-256)对用户密码进行散列(Hash)处理再存储,以保证用户密码的存储安全。同时还采用参数化结构化查询语言(Structured Query Language,SQL)语句阻止SQL注入的发生,保证了数据库的安全,也进一步提高了系统的安全性。(5)在功能实现方面,使用模块化设计,解耦程序,使软件具有结构性和扩展性,便于开发、维护和管理。通过功能测试和性能测试本云服务平台运行良好且在500用户并发度下平均响应时间可达到150ms,能够基本满足实际应用需求。本文设计的云服务平台最大的特点是在云端建立了一个统一的数据处理平台,将分布在不同地点和应用场景下的测控数据通过互联网统一汇聚到云端进行处理,实现数据共享,并可用于大范围的测控管理。此外该云服务平台具有统一接口可为多种终端设备提供服务,突破在时间上、空间上和设备上的束缚。目前该云服务平台在粮情检测场景中的应用已经在多个省份得到了推广使用。