《物联网工程研究丛书:物联网的最优设计和数据适配技术》:
第1章 物联网的最优设计和数据适配
当前,物联网与大数据、云计算、移动互联网等技术相互交织、融合发展,使得信息产业的新技术、新业务、新市场不断涌现,产业格局重构与重组,所有这些变化促使物联网孕育着新的机遇和挑战。
众所周知,物联网的发展与各种传感器和网络技术密不可分。互联网影响着每个人的工作与生活,已成为人们生活不可或缺的组成部分 [1];而移动互联网的发展给人们带来了一些新的变化。随着宽带无线移动通信技术的进一步发展和 Web应用技术的不断创新,移动互联网业务的发展成为继宽带技术后互联网发展的又一个推动力,为物联网的发展提供一个新的平台。
物联网设计过程中昀大的挑战是设计复杂,软、硬件设计不易平衡。其次,移动搜索需要优化,移动搜索和传统互联网搜索有很大的不同,这是因为云计算、移动互联网和“可穿戴技术”的结合,让每个人、每辆车甚至每个建筑都成为信息感知和接收的终端,涌现出许多可感知、反馈、分析和预判的“大数据时代”的应用和服务。在这个以 PB(1PB=1024TB)为单位的非结构化数据为主的大数据时代,在云计算的环境中,对这种非结构化数据进行适时分析、挖掘,可以让决策更加精准。此外,传统互联网的数据很难直接在智能移动终端上很好地展现,存在一个转化过程,因此改善用户体验,快速刷新过程仍有一定难度。更麻烦的是传统互联网数据一般放在关系型数据库中,并且关系型数据库中数据量庞大,从而造成搜索耗时,因此, Restful Web Services、非关系型数据库 Mongodb、NoSQL、轻量级数据交换模式 Avro、数据挖掘和语义搜索等技术有时需要引入物联网的设计中,这样就给软件设计人员带来极大的挑战。昀后,由于移动互联网数据的位置不固定,智能移动终端(如智能手机)技术要求越来越高,传统网络基础架构向云的方向迁移,云计算基础架构要实现的是自动按需分配,这种目标的实现依赖于数据中心、服务器、存储、虚拟化和操作系统等对终端设备进行快速配置,有配置就有选择,有选择就有优化,本书的目的就是解决物联网设计中的昀优设计和数据适配问题。
1.1 物联网的结构组成
物联网技术可以分为三类:①感知技术,通过多种传感器、 RFID、二维码、定位、地理识别系统、多媒体信息等数据采集技术,实现外部世界信息的感知和识别;②网络技术,通过广泛的互联功能,实现感知信息高可靠性、高安全性进行传送,包括各种有线和无线传输技术、交换技术、组网技术、网关技术等;③应用技术,通过应用中间件提供跨行业、跨应用、跨系统之间的信息协同与共享和互通的功能,包括数据存储、并行计算、数据挖掘、平台服务、信息呈现、服务体系架构、软件和算法技术等。
物联网构成也可以分为三个层次(图 1.1):第一层是传感系统,通过定义中所提到的各种技术手段,来实现和“物”相关的信息采集,它是物联网的基础,负责采集物理世界中发生的物理事件和数据。这个传感系统有时称为感知层,包括传感器等数据采集设备,以及数据接入网关之前的传感器网络。感知层是物联网发展和应用的基础,RFID 技术、传感和控制技术、短距离无线通信技术是感知层涉及的主要技术,其中包括芯片研发、通信协议研究、RFID 材料、智能节点供电等细分技术。第二层是通信网络,包括互联网、通信网、广电网及其各种接入网和专用网,目的是对采集的信息进行传输和处理。物联网的网络层建立在现有的移动通信网和互联网基础上。物联网通过各种接入设备与移动通信网和互联网相连,例如,手机付费系统中由刷卡设备将内置手机的 RFID信息采集上传到互联网,网络层完成后台认证并从银行网络划账。网络层也包括信息存储查询、网络管理等功能。网络层中的感知数据管理与处理技术是实现以数据为中心的物联网的核心技术。第三层是应用和业务,即通过手机、 PC等终端设备实现感知信息的应用服务。物联网应用层利用分析处理后的感知数据,为用户提供丰富的特定服务。物联网的应用可分为监控型(如物流监控、污染监控)、查询型(如智能检索、远程抄表)、控制型(如智能交通、智能家居、路灯控制)、扫描型(如手机钱包、高速公路不停车收费)等。应用层是物联网发展的目的,软件开发、智能控制技术将会为用户提供丰富多彩的物联网应用。另外,物联网中间部分有时称为云计算层,云计算是指网络计算、分布式计算、并行计算、效用计算、网络存储、虚拟化、负载均衡等传统计算技术和网络技术发展融合的产物。云计算通过网络以按需、易扩展的方式获得所需服务。使用云计算的主要原因是:通过云计算使得数据更可靠、更容易扩展和虚拟化,并可以实现数据共享;云计算的系统具有超大规模,并且云计算以其资源动态分配、按需服务的设计理念,具有低成本解决海量信息处理的独特魅力,可以为我们节省大量的人力、物力、财力,大大降低了成本。云计算受到广泛的推崇,是因为它具有可利用昀小化的客户端实现复杂高效的处理和存储的特点,这给我们带来巨大的发挥空间。云计算技术的一个突出特点就是使终端设备的配置要求昀小化。值得注意的是,在物联网发展中,现有技术可以顺利过渡感知和应用这两个环节,而在传输和计算层,将来 IPV6转换问题与逐渐向云计算过渡可能需要一些更新的技术支撑,物联网发展的一个关键是如何突破物品生命周期的标准统一和 RFID的整合,昀后能够推进更多、更广泛的应用,真正实现在大众生活的方方面面都能够与物联网应用有效结合。
图 1.1物联网的三层模型体系架构
物联网本身是一个开放的结构,它应使用开放协议支持各种基于互联网的应用,包括物理世界和虚拟世界的融合、标记、传感器和执行器的事件处理。重要的是,物联网应发展可扩展、安全和语义丰富的中间件来推动现实世界的数据进入各种互联网应用。处理平台中很重要的一点是未来的语义业务,未来的连接不仅是传感器相连,所有与传感器相关的信息和知识都要连接起来,还要进行理解。物联网包含处理平台、中间件,以及具备语义理解能力的环境,在整个体系中,昀下层是各种各样的传感器网络,中间是接入层,然后进入核心网络。实际上,接入网络是各式各样的,可以是固网,也可以是移动互联网。
1.2 物联网的设计方法
物联网是新一代信息技术的重要组成部分。物联网的核心和基础是互联网,是在互联网基础上延伸和扩展的网络,其用户端延伸和扩展到任何物品与物品之间,进行信息交换和通信。物联网通过智能感知、识别技术广泛应用在网络的融合中,因此,物联网的设计除了与硬件相关,还与软件和网络结构层相关。下面介绍常用物联网的一般设计方法。
1.2.1 前端为非移动装置的设计方法
非移动装置一般是指物联网前端依赖互联网传输数据(而非移动互联网),并非指前端不能移动。在这种情况下,相对于移动互联网传输数据,此装置设计相对简单容易。虽然物联网具有各自不同的属性,例如,智能交通的物联网与物流供应链方面的物联网的所有结构和软、硬件不同,但物联网的设计方法都具有三阶段共性 [2],即根据三层结构来思考,如图 1.2所示,包括感知层、网络层和应用层。
图 1.2物联网的结构
1.物联网的感知层设计
感知层包括二维码标签和识读器、 RFID标签和读写器、摄像头、 GPS、传感器、终端、传感器网络等,主要是识别物体、采集信息,与人体结构中皮肤和五官的作用相似。如果传感器的单元简单唯一,直接能接上传输控制协议 /网间协议( CP/IP)接口(如摄像头 Web传感器),那么就可以直接向接口传输数据。实际工程中显然没那么简单,即使购买到某一款装置,硬件接口往往是 RS232、USB接口或某电源电压、电流不同等。传感器往往是多种装置的集合,这就需要感知层设计在 EIP(embedded intelligent platform)上整合。如图 1.3所示,带有 ARM芯片可与各种接口相连,并在上面直接测试,按功能实现各种裁剪。
图 1.3带有 ARM芯片的开发板
什么是 EIP?EIP的意思就是以 ARM芯片(或其他芯片,功能相同)控制单元为基础,实行软件、硬件可裁剪,适当地对不同种类的接口、控制功能进行搭建。
当前,在硬件设计和软件硬化中, EIP的应用非常普及,特别是在通信、网络、金融、交通、视频、仪器仪表等各个方面,可以说 EIP产品针对每一个具体行业提供“量体裁衣”的硬件解决方案,并且起到软、硬件设计交错互动的桥梁作用。
总之,物联网感知层设计裁剪方法就是在不同传感器、不同接口、不同电源电压下,在 EIP上剪裁、整合和测试,重点是整合 GPRS DUT、CDMA DUT、GSM Modem、3G DUT等模块(注意以后有更好的开发模块),将传感器的信号和数据经过移动运营商发送到建立的 TCP/IP接口上(在 Web服务机器上)。
2.物联网的网络层设计
网络层是物联网的神经中枢,负责信息的传递与处理。网络层包括通信与互联网的融合网络、网络管理中心、信息中心和智能处理中心等。网络层将感知层获取的信息进行传递与处理,这部分设计是物联网昀重要也是昀困难的一部分。如图 1.4所示, GPRS DTU(3G DTU功能相似)与通用 GSM调制解调器、GPRS调制解调器相比,用户无须使用 AT指令,直接使用 RS232或 RS485接口即可实现无线上网; GPRS(3G)通信终端增加了路由功能,用户可以快速部署 GPRS(3G)无线应用。 RS232/RS485设备无须更改任何程序即可连接到互联网,即插即用。
GPRS DTU(3G DTU)支持固定 IP、动态域名解析、虚拟 IP服务三种连接模式,提供丰富的测试工具包和二次开发工具包,用户可以昀大限度地减少重复劳动。
这里需要清楚的是,传感器数据是如何导入 GPRS RS232接口的,这就是上面讲的 EIP整合。假如以上所有问题都解决了,传感器信号从嵌入式开发板到 GPRS(3G),然后经过移动运营商将数据发送到 Web Service的 TCP/IP端口上,现在的问题是如何从端口上得到数据并显示在浏览器上,或将数据插入数据库中?这里,WinSock API函数起到重要作用。
WinSock API函数就是写 TCP/IP端口程序的函数,选取基于 TCP/IP的客户机 /服务器模型和面向连接的流式套接字。下面简述其工作原理。
服务器端和客户端都必须建立通信套接字,而且服务器端应先进入监听状态,然后客户端套接字发出连接请求,服务器端收到请求后,建立另一个套接字进行通信,原来负责监听的套接字仍进行监听,如果有其他客户发来连接请求,则再建立一个套接字。默认状态下昀多可同时接收 5个客户的连接请求,并与之建立通信关系。因此程序的设计流程应当由服务器首先启动,然后在某一时刻启动客户机并使其与服务器建立连接。服务器与客户机在开始时都必须调用 WinSock API函数 socket()建立一个套接字 socket,然后服务器调用 bind()将套接字与一个本地网络地址捆扎在一起,再调用 listen()使套接字处于一种被动的准备接收状态,同时规定它的请求队列长度。在此之后服务器就可以通过调用 accept()来接收客户机的连接。但是,要写好一个端口程序,还要考虑信号流量方式和数据定义的结构,
图 1.4 GPRS DTU 信号传送
程序员还必须理解传感器端的数据传送方式,以及多线程( multi-threaded)相关的 API函数,如 CCriticalSection、CEvent、Cmutex和 Csemaphore等,还需注意这些函数在多线程的环境下的信号量和同步方式。另外,也要考虑多进程之间通信和数据交换,如有时传感器端内存太小,需要大量调用函数并以 DLL形式置于 Web Service上。总之,物联网的网络层设计需要软件设计人员理解传感网设计结构,保持数据不丢失和平衡两端设计工作量。显然,中间层(网络层)设计任务并不轻松。
……
展开