基于SOS技术的物联网实时数据管理系统开发
扫描二维码
随时随地手机看文章
引言
物联(Internet of Things, IoT)是指将各种信息传感设备、 传感器网络、RFID电子标签、仪表、条码、二维码和GPS 接收仪等同人们感兴趣的物体以无线或有线的方式连接起来, 使这些物体可以提供本身及其所在环境的实时信息,这些信 息通过网关及传输网络(互联网、3G/4G移动网络)被发送到 数据服务中心进行数据存储和智能化处理。物联网应用涉及智 能交通、环境保护、政府工作、公共安全、平安家居、智能消 防、工业监测、老人护理、个人健康等多个领域。物联网 具有高度的创造性、渗透性和带动性,对国家安全、经济和 社会发展产生深远影响,欧、美、日、韩等主要发达国家和地 区将物联网纳入国家战略性计划,我国也将物联网放到了战略 发展的地位。
1物联网应用系统
图1所示是物联网应用实时信息系统的组成图。该物联 网应用系统包含六个部分:节点(node)、网关(gateway)、传 输网络、数据服务中心、物联网服务接入网络及物联网服务客 户端。
图2所示是可同物联网网关进行数据交换的各类节点。 具体来说,物联网节点就是仪表、传感器、RFID标签、摄像 头、GPS设备、执行器和继电器等。一维码、二维码、RFID 标签等节点主要作用是识别物体;传感网、传感器及仪表等节 点主要用来获取物体的状态及环境信息;执行器和继电器主要用来控制被监控的设备;GPS等节点主要用来跟踪被监控物 体的位置信息;摄像头等节点主要用来监控物体的当前的行为 状态。物联网节点通过USB、RS 232、RS 485、蓝牙、红外、 ZigBee、Wi-Fi等短距离有线或无线传输技术进行协同工作或 者传递数据到物联网网关。网关进一步将来自不同节点的数据 通过传输网络发送到物联网数据服务中心。
图1物联网应用实时信息系统组成
图2可同物联网网关进行数据交换的各类节点
IoT网关是一个具有多种接口的嵌入式计算机设备,其 可以收集并处理来自其所管理的各类节点的数据,并将处理 后的数据通过其具有的广域接口(3G/4G、Wi-Fi、以太网等) 传输到IoT数据服务中心。物联网传输网络负责网关与数据服 务中心之间的数据传送,常见的传输网络包括3G移动网络、
Wi-Fi无线网络及以太网等。物联网数据服务中心负责存储来 自一个或多个IOT网关的实时数据,对数据进行智能化处理, 提供各种物联网实时信息服务,比如实时监测、定位跟踪、报 警联动、自动化处理、反向控制、远程维护、统计决策和信息 安全等。物联网服务接入网络使用户可以接受或使用物联网数 据服务中心提供的服务。物联网服务接入网络和物联网传输网 络可以是同一个网络,也可以是不同的网络。物联网服务客户 端是用户通过物联网服务接入网络接受或使用物联网数据服 务中心提供的服务的设备,包括智能手机、平板电脑、笔记本 电脑和台式电脑等。
对于较大规模的物联网应用,物联网数据服务中心往往 要接收来自成百上千的物联网网关的实时数据,并且每一个网 关所管理的物联网节点的数目和种类较多。每一网关如果希望 往数据服务器中心发送数据,该网关所管理的物联网节点必须 在数据服务中心进行注册。另外,对于注册后的物联网节点的 数据,也必须按照特定的格式由网关发送到数据服务中心。近 年来,物联网应用在我国得以迅速发展的同时,也出现了一些 亟待解决的问题。各种物联网应用的开发都是相关对独立和 封闭的,导致了物联网节点在数据服务中心的注册的方式及网 关往数据服务中心所发送的格式都各有差异。有时,即使对 于同一个物联网应用,由于物联网节点被添加的时间不同,其 被注册的方式及数据传输的格式,也有可能不同,这导致每 一个新的物联网节点的添加,都会涉及到对数据服务中心和网 关软件源代码的修改。同时,由于节点注册格式和节点数据传 输格式的不同,不同的物联网应系统之间数据交换或数据融 合也变得极为困难。目前,所存在的物联网节点注册难以管理、 数据传输存储格式难以统一、难以实施数据融合及智能决策 等问题,造成了时间和经济资源的严重浪费,它们也成为当前 物联网应用开发领域迫切需要解决的问题。
为了解决所存在的实时数据标准化管理问题,本论文以 开放地理空间联盟(Open Geospatial Consortium,OGC)制 定的 SOS(Sensor Observation Service)服务标准为基础[5-10], 建立了标准化的物联网节点注册格式、标准化的节点实时数据 传输格式和标准化的节点实时数据存储格式,并依此开发了物 联网实时数据管理系统。同时,为验证物联网实时数据管理 系统的性能,研究团队使用Android智能手机作为物联网网关, 使用手机上面所配置的各种传感器及GPS接收仪作为物联网节 点,实现并验证了标准化的节点注册、标准化数据传输、标准 化数据存储和数据的智能化处理及显示,取得了良好的效果。
2实时数据管理系统的开发及测试环境
实时数据管理系统所涉及的软硬件及网络拓扑图如图3 所示。
图3系统开发及测试环境网络拓扑图
所开发的系统中数据库采用PostGreSQL作为数据库,以 MyEclipse作为开发软件平台,应用当前流行的JavaEE SSH 开发框架进行整合开发。本系统所涉及的硬件包括笔记本数台、 Android手机数台,服务器一台和无线路由器一台。Android 手机需要安装Android 2.2或者更高版本的操作系统,手机上配 备有Wi-Fi无线上网功能。然后,下载并安装PostgreSQL 8.x或者 更高版本的Postgres数据库服务器。在安装Postgres数据库时, 需要选择要安装相应的空间数据库软件PostGIS 1.5。完成安装 PostgreSQL后,根据SOS的文件指南,运行必要需要的SQL 语句来建立相应的数据库表格。Maven软件被用来管理SOS Web服务器平台的开发和升级。下载并解压缩apache-maven- 3.0.4-bin.zip,安装好Maven后,需要修改配置文件setting.xml 来并配置Maven运行环境变量,插入以下代码。
〈profile〉
<id>52n- start</id>
<repositories>
<repository><id>n52-releases</id>
<name>52n Releases</name>
<url>HYPERLINK "http://52north.org/maven/repo/releases%3c/url"> <releases><enabled>true</enabled></releases> <snapshots><enabled>false</enabled></snapshots> </repository>
<repository><id>geotools</id>
<name>Geotools repository</name> <url>HYPERLINK "http://maven.geotools.fr/repository%3c/url"> </repository>
<repository><id>Refractions</id> <name>Refractions repository</name> <url>HYPERLINK "http://lists.refractions.net/m2%3c/url"> </repository>
<repository><id>Apache</id>
<name>Apache repository</name>
<url>HYPERLINK "http://repo1.maven.org/maven2%3c/url">
</repository> </repositories> </profile> 安装Java开发工具时,可以先从官方网站下载最新的 Java SE Development Kit (JDK)版本,安装完成后,要进行“环 境变量,,和“系统变量”的配置,并建立JAVA_HOME路径。 物联网实时数据管理系统SOS Web服务器安装有Tomcat应 用服务器软件。可以从网站HYPERLINK "http://jakarta.apache.org/site/%e4%b8%8b%e8%bd%bd" 最新版的Tomcat进行安装及配置。安装完成后,需要配置 Tomcat Web服务器的管理员权限,可在tomcat-users.xml配 置文件中添加如下管理员权限相关的信息。
<role rolename="manager-gui"/>
<role rolename="manager-script"/> <role rolename="manager-jmx"/> <role rolename="manager-status"/> <user password="admin" roles="manager-gui" username=" tomcat" />
<user password="admin" roles= "manager-script,manager-jmx,manager-status" username="admin"/>
安装及配置完成Maven、Postgres、JDK和Tomcat软件后, 可以在命令行界面执行mvn -命令来进行SOS Web服务软件 的下载、升级和更新。例如,通过命令行mvn-Pwith-deploy, 对SOS服务生成和部署。
3 SOS服务介绍
图4所示是SOS数据服务体系的结构图。SOS通过提 供一个标准的数据传输接口,收集来自物联网网关及物联网 节点的实时数据。实时数据按照标准的格式传输到SOS Web 服务器,并按照标准格式存储到SOS数据库。物联网实时 数据使用客户端可以通过标准的SOS接口来获取SOS数据 库中不同形式的数据,然后进行智能化数据处理及各种物联 网应用的开发。例如,通过GetCapabilitiesRequest标准接 口,可以获取一个Capabilities文档,该文档主要描述了 SOS Web服务器可以提供的各种数据服务,包含了 SOS服务所 支持服务的所有操作,以及每个操作所涉及的参数等。使用 DescribeNodeRequest标准接口,可以获取物联网节点数据标 记语言(lOTNodeML) XML文件,该文件描述了物联网节 点及其实时数据的特性。另外,使用GetObservationRequest 标准接口,可以获取SOS数据库中所存储的物联网实时或 者历史数据,说返回的XML文档中包含Observations & Measurements (O&M)数据。
图4 SOS数据服务体系结构图
SOS数据服务体系采用了 B/S三层架构,分别为数据展 示层、业务逻辑层和数据访问层。展示层主要负责与物联网实 时数据使用客户端的交互。业务逻辑层主要包括SOSServelet 以及RequestOperation这两个核心类。前者用于处理用户请求 以及返回响应信息,后者接收SOSServelet请求,并将请求信 息进行有效的过滤,将信息传给监听类,再由监听类决定调 用何种操作。数据访问层主要包括各种工厂类和Dao类,负 责与数据库的交互。
4物联网实时数据的标准化管理
为了解决物联网实时数据处理难以统一的问题,我们依 据OGC制定的SOS服务标准,建立了物联网节点注册的标 准化格式、节点实时数据传输的标准化格式、节点实时数据 存储的标准化格式和查询使用物联网实时数据的标准化格式。 对于这些物联网实时数据的标准化管理,分别叙述如下。 4.1标准化的物联网节点注册
在各种各类物联网实时信息系统的开发过程中,一个重 要的方面是将来自无数物联网节点的数据在数据服务中心进行 统一的存储。在存储数据之前,需要知道这些数据来自何地 的物联网网关所管辖的物联网节点,这就需要将这些物联网节 点的名称、地理位置和数据类型等信息在数据库中进行注册。 当前,注册物联网节点的方式多种多样,有的物联网节点注册 是通过人工方式将物联网节点相关文件导入到数据库;有的 是直接通过数据库SQL语句的人工操作来注册物联网节点信 息;有的是通过UI界面数据输入来进行物联网节点的注册。 以上注册方式,不但速度慢,易出错,而且浪费大量的人力 和物力。在我们的物联网实时系统设计和实践中所采用的物联 网节点注册方式是,物联网网关自动发现其所管理的物联网节 点的名称、位置和数据特征等信息,然后建立一个标准化的 物联网节点XML注册文件,并将该文件发送到SOS Web服 务的数据接收接口。当SOS服务器接收到注册XML文档信 息后,将会自动分析该文档的特征,并将物联网节点的相关信 息存入数据库,自动完成物联网节点的注册。一个简化版本的 物联网节点标准化注册XML文档如下:t它主要包括物联网节 点ID注册、物联网节点经度、纬度和海拔高度位置信息注册 和物联网节点数据输岀注册等)
<?xml version="1.0" encoding="UTF-8"?>
<RegisterSensor service="SOS" version="1.0.0" > <SensorDescription>
<sml:SensorML version=''1.0.1">
<sml:member><sml:System >
<!--sml:identification元素必须包含物联网节点的ID--> <sml:identification><sml:IdentifierList><sml:identifier> <sml:Term definition="OGC:uniqueID">
<sml:value> IfGI- SDP</sml:value>
</sml:Term></sml:identifier></sml:IdentifierList>
</sml:identification>
<!一物联网节点最后一次测定位置信息-->
<sml:position name=" sensorPosition">
<swe:Position referenceFrame=" EPSG:4326"> <swe:location>
<swe:Vector gml:id="STATION_LOCATION"> <swe:coordinate name="easting">
<swe:Quantity axisID="x">
<swe:uom code="degree"/>
<swe:value>7.52</swe:value>
</swe:Quantity>
</swe:coordinate>
<swe:coordinate name="northing">
<swe:Quantity axisID="y">
<swe:uom code="degree"/>
<swe:value>52.90</swe:value> </swe:Quantity></swe:coordinate>
<swe:coordinate name="altitude">
<swe:Quantity axisID="z">
<swe:uom code="m"/>
<swe:value>52.0</swe:value> </swe:Quantity></swe:coordinate> </swe:Vector></swe:location> </swe:Position></sml:position>
<!—物联网节点数据输出列表-->
<sml:outputs><sml:OutputList>
<sml:output name=''imagesequence">
<swe:Quantity definition=" imagesequence"> <gml:metaDataProperty>
<id>IMAGE_SEQUENCE</id> <name>SDP</name></offering> </gml:metaDataProperty>
<swe:uom code=""/> </swe:Quantity></sml:output></sml:OutputList>
</sml:outputs></sml:System></sml:member>
</sml:SensorML></SensorDescription>
</RegisterSensor>
4.2标准化的数据传输格式
在各种各类物联网实时信息系统的开发过程中,另外一 个重要的方面是如何将来自无数物联网节点的数据传输到数据 服务中心,并进行统一的存储。对于当前的物联网实时信息系 统,很多网关往同一个物联网数据服务中心发送数据。对于每 一个网关而言,它管理着很多物联网节点,每一个节点的数据 输出格式也不相同。在很多情况下,网关按照不同的格式将不 同的节点数据发送到数据服务中心。数据服务中心需要能够处 理所接收到的不同格式的实时数据。这种情况导致每次增加 一些物联网节点,就需要修改网关软件和数据服务中心软件的 源代码,这为物联网的大面积和大规模应用带来了很多不便。
在我们的物联网实时系统设计和实践中,物联网网关采 用标准的XML文档数据传输格式,并将该文件发送到SOS Web服务的数据接收接口。当SOS接收到该XML文档信息后, 将会自动分析该文档的数据特征,自动解析物联网节点实时 数据并存人数据库。对于同一个或不同的物联网实时信息系统, 网关所采用的XML文档传输格式都是相同的。也就是说不同 的网关所使用的XML文档具有相同的标签,只是不同标签下 所包含的内容对于不同的物联网节点有所不同。一个简化版本 的物联网网关数据传输XML文档如下所示,它主要包括物联 网节点ID、数据采集时间、采样点值、地理位置信息和实时 数据的值。
<InsertObservation service="SOS" version="1.0.0"> <AssignedSensorId> IfGI-SDP</AssignedSensorId> <om:Measurement><om:samplingTime><gml:TimeInsta nt>
<gml:timePosition>2014-07-20T17:44:15+00
</gml:timePosition></gml:TimeInstant>
</om:samplingTime>
<om:procedure xlink:href=" IfGI-SDP"/>
<om: observedProperty xlink:href="OGC:imagesequence"/>
<om:featureOfInterest>
<sa: SamplingPoint gml:id="SDP SamplingPoint 1">
<gml:name>SDP SamplingPoint 1</gml:name>
<sa: sampledFeature xlink:href=""/>
<sa:position>
<gml:Point>
<gml:pos srsName="EPSG:4326">40.6392 -73.7789
</gml:pos>
</gml:Point></sa:position></sa:SamplingPoint>
</om:featureOfInterest>
<om:result uom="">100</om:result>
</om: Measurement>
</InsertObservation>
4.3标准化的数据存储格式
在数据服务中心,利用SOS数据库对物联网实时数据进 行标准化存储。SOS数据库设计所涉及的主要表格为Feature- of_interest (观测点数据特征)表(即表1)、Observation (观 测数据)表(即表2)‘Phenomenon (节点数据现象)表(表3)、 Offering (节点数据服务)表(表4)和Procedure (节,点数据 处理过程)表(表5),分别叙述如下:
Feature_of_interest表格存储有关物联网节点观测点的特 征及地理特征的参数。其中geom字段是PostGIS的类型,详 细记录了观测点的地理位置。
Observation表格结合了物联网节点以及其它如时间、处 理过程、观测点特征等分开存储的数据。其中Procedure_id, Feature_of_interest_id 和 Offering_id 是外键。Observation 存 储具体观测到的每一条物联网节点数据,同时,观测者可以 过滤物联网节点实时数据信息。
表 2 Observation
字段名 |
含义 |
observation_id |
观测者ID |
tme_s/mp |
观测的时间戳 |
procedure_id |
过程ID |
feamie_o_inteiesLid |
观测点特征ID |
phenomenon_id |
现象ID |
offering_id |
供应传感ID |
texLvalue |
Tex值 |
numeric_value |
数值 |
spatia_value |
空间值 |
m ^e_^pe |
Tex值 |
Phenomenon表存储了物联网节点所描述的数据观察现 象,在SOS规范下的数据现象又称为观测属性。该表格属性 包括现象ID、现象描述、数据单位、值类型、复合现象和 Schema链接等。
Offering表存储了可以提供SOS服务的物联网节点信息。 当注册物联网节点时,节点相关的信息将被存储到Offering表格。
表3 Phenomenon (节点数据现象)
字段名 |
含义 |
phenomenon_id |
现象ID |
phenomenon_description |
现象描述 |
unit |
单位 |
value恥e |
值类型 |
composite_phenomenon |
复合现象 |
om_application_schema_link |
Schema链接 |
表4 Offering (节点数据服务)
字段名 |
含义 |
offering_id |
供应传感ID |
offering_name |
供应名称 |
min_time |
最小时间 |
max_time |
最大时间 |
Procedure表存储了数据处理过程,是物联网节点具体信 息在数据库中的体现,该表的属性包括过程ID、url描述、描 述类型、Sml文件、实际地理位置、节点是否移动和节点是否 激活。
表5 Procedure (节点数据处理过程)
字段名 |
含义 |
procedure_id |
过程ID |
description_ur 1 |
ur描述 |
description.板pe |
描述类型 |
外 _file |
Sm文件 |
actua [position |
实际地理位置 |
mobi e |
节点是否移动 |
active |
节点是否激活 |
随着物联网应用范围和领域的扩大,各级各类物联网实 时信息系统不断涌现出来。当前,各级各类物联网实时信息 系统之间的数据交换是一个难点。一个原因是很多物联网实 时信息系统没有提供数据交换的API接口。另一个原因是对 一些提供对外数据交换API接口的物联网实时信息系统,由 于它们提供的接口各不相同,当一个物联网实时信息系统希望 使用其它几个实时信息系统的数据时,该系统就需要大量修 改原有的源代码,来从不同的API接口获取其它系统的数据。 不同物联网实时信息系统之间的数据交换问题,已经制约了 物联网应用在各个领域大规模深入发展,我们研究小组试图 解决这个难题。
在我们的物联网实时系统设计和实践中,物联网网关采 用标准的XML文档进行不同应用和不同实时数据系统之间的 数据交换。当一个基于SOS的物联网实时信息系统希望从另 外一个基于SOS的物联网实时数据管理系统获取数据时,该 系统可以将一个标准的XML文档发送到SOS Web服务的数 据接收接口。当SOS Web服务器接收到该XML文档信息后, 将会自动分析该文档的特征,并从SOS数据库中提取相关数 据,并将这些数据以标准O&M XML文档返回到调用数据的 物联网实时数据系统。对于同一个或不同的物联网实时信息系 统,调用同一类数据时所采用的XML文档传输格式都是相同 的。一个简化版本的标准化的数据获取GetObservation XML 文档如下所示,它主要描述了所调用数据的名称、数据特性、 返回数据格式和返回查询结果模型。
<?xml version="1.0" encoding="UTF-8"?>
<GetObservation service="SOS" version="1.0.0" srsName="EPSG:4326">
<offering>GAUGE_HEIGHT</offering>
<observedProperty>OGC: waterlevel</observedProperty> <responseFormat>text/xml</responseFormat> <resultModel>Measurement</resultModel> <responseMode>inline</responseMode> </GetObservation>
5物联网实时数据管理系统设计
基于SOS Web实时数据服务平台,我们开发了物联网实 时数据管理系统。整个系统的设计分为物联网网关数据传输 客户端功能设计与SOS Web服务器端数据处理及管理功能的 设计。
5.1物联网网关客户端设计
客户端设计比较简单,它主要包括物联网网关节点标准 化注册设计、数据收集设计和标准化数据传输设计。物联网 网关客户端通过Post请求将标准化的XML文档发送到一个 指定的url地址进行物联网节点的标准化注册和实时数据传 输。本论文以Android智能手机作为物联网网关,它所配置的 各种传感器作为物联网节点,对物联网网关客户端节点标准化 注册和标准化数据传输功能进行了测试。
5.2服务器端SOS数据服务设计
SOS服务采用PostgreSQL数据库,实现物联网节点数 据的自动注册、采集、过滤和存储。通过SOS服务,可以有 效观测物联网实时的数据。具体流程是:当服务器接收到来 自客户端的请求,RequestOperation检查其合法和有效性,如 果是合法的请求,则把它交给Listener。SOS服务中存在多种 Listener,每个listener都有其对应的请求,当Listener监听 到请求信息,就调用相应的数据库访问层的DAO,或者反馈 一些有效信息到客户端。数据库访问层包含了各个处理业务信 息的DAO, SOS通过DAO与数据库交互。
5.3 Web服务器端数据处理及管理设计
基于SOS服务所提供的各种实时数据,可设计各种各样 的物联网应用。本论文只简单讨论具有4个功能模块的的物联 网应用的设计,它们是用户信息管理、物联网实时数据管理、 GIS数据管理和日志管理。用户信息管理模块主要管理所有此 系统用户的基本信息,管理员可以通过此模块注册新的管理 员或者普通用户,同时管理员可以查看和删除普通用户账号。 普通用户可以通过此模块修改自身信息。
通过物联网实时数据管理,可查看物联网网关发送过来 的实时数据。在我们开发的系统中,主要是通过动态曲线图和 表格来查看数据的详细信息。其中数据表格可以通过时间范 围分页查询详细的物联网节点数据信息。管理员和普通用户都 具有查看此模块具体内容的权限。
GIS数据管理模块通过Google map定位物联网节点的具 体位置,可以查看所有物联网节点数据的具体表格信息。当双 击其中某条数据时,Google map上的弹窗可以显示据此条数 据时间点附近的五条相同类型数据,通过柱状图的比较,可 以看出其中的差异。通过日志管理模块可查看系统的所有登录 信息,只有管理员具备此权限,普通用户无法查看。
6物联网网关客户端功能实现
本论文以Android智能手机及它的传感器作为物联网网 关及物联网节点,来测试网关客户端的功能实现。Android客 户端负责光线数据、方向数据、磁场数据和加速度数据的产 生与传输,通过Post请求将XML格式数据发送到一个指定 的url地址。Web服务器端通过运行SOS服务将收集到的数 据自动持久化到PostgreSQL数据库。数据观测员或者管理员 可以访问系统网站,通过详细的实时数据和曲线图观测传感器 数据的变化。
本次设计涉及到的传感器数据的收集和发送主要是通 过Android设备里面自带的传感装置和GPS模块来进行传感 器数据和位置信息的收集。通过选择发送各个传感器数据到 SOS服务器端。传感器数据的发送需要封装成标准化的XML 格式,XML具体格式如以下代码所示。
<?xml version="1.0" encoding="UTF-8"?>
<InsertObservationservice="SOS" version="1.0.0">
<AssignedSensorId> androidsensor-accelerometer </AssignedSensorId>
<om:CategoryObservation>
<om:samplingTime><gml:TimeInstant>
<gml:timePosition>2012-04-02T17:44:15+02:00 </gml:timePo sition>
</gml:TimeInstant></om:samplingTime>
<om:procedure xlink:href="androidsensoi-accelerometer"/> <om: observedProperty xlink: href= "accelerometer"/> <om:featureOfInterest>
<sa:SamplingPoint gml:id="foi_sensor_10001"> <gml:name>SANMING</gml:name>
<sa:sampledFeature xlink:href=""/>
<sa:position>
<gml:Point>
<gml:pos srsName="EPSG:4326">5L7167 8.76667 </gml:pos></gml:Point></sa:position>
</sa: SamplingPoint></om: featureOfInterest> <om:result>12, 12, 12</om:result> </om:CategoryObservation>
</InsertObservation>
SOS指定了一个可以发送和接收数据的网络地址,http:// IP地址:8080/52nSOSv3/sos,具体的IP地址和端口视具体网络 环境改变,手机端软件每隔一段时间(1 s、5 s或10 s)便会自动 将收到的实时数据以标准化的数据传输XML文档发送到SOS 服务器。当服务器接收到post请求,便调用SOS的Servlet和监 听器类,对XML代码详细解析,当判断出此XML是观测到的传 感器数据信息,将自动持久化到数据库,并反馈插入成功的标识和 信息到客户端。当用户点击此软件客户端,就会进入如图5所示的 主界面,用户可以观测到各种传感器数据的变换,并通过menu键, 选择发送数据或停止发送数据。
图5 Android客户端展示
7 Web服务器端的功能实现
如图6所示,在浏览器地址栏中输入http:// IP地址:8080/ sensorSystem,就可以看到登陆界面,通过输入用户名和密码, 以及角色权限,经验证合法,将会跳转到系统首页。管理员 与普通用户的权限不尽相同,管理员可以查看各个模块的信 息,以及管理各个用户,并且查看日志信息,普通用户只能查 看传感器数据信息。图7所示是光线传感器的实时动态数据 显示界面,其它的传感数据显示界面相似。动态曲线图显示的 是实时的十五条最新数据,用户也通过grid条件查询,查询 某个时间范围内的数据列表如图8所示。图9所示是Google map模块数据管理界面。Google map展示页与管理页的风格 是一致的,采用将Google map嵌入panel的形式,不仅可以 实现物联网网关及节点的定位,而且与Grid数据的交互更加 方便。图10所示是Google map界面实时数据柱状图展示。 当用户双击界面列表中的某一条记录,Google map上将会打 开一个信息窗口,此窗口展示了与此记录相同传感类型的五条 传感器数据,通过柱状图的比较,可以观测出他们的区别,更 为直观地展示数据。
图6物联网实时数据数据管理系统登录界面
图7光线传感器动态数据曲线显示
图8光线传感器数据列表
图9 Google map模块数据管理界面
图10 Google map界面实时数据柱状图展示
8结语
本论文依据SOS Web数据服务标准,建立了标准化的物 联网实时数据管理体系,它包括物联网节点的标准化注册、物 联网实时数据标准化传输、物联网实时数据标准化存储和物 联网实时数据标准化调用。同时,为了验证该实时数据标准化 管理体系的有效性,使用了目前非常流行的Web前后台开发 框架 Extjs 和 SSH2(Struts2, Spring,Hibernate)开发了物联 网实时数据管理系统,该系统使用了 PostgreSQL数据库,它 运行于小巧灵活的Tomcat Web服务器。开发及测试表明,我 们所采用的物联网实时数据处理标准可以帮助快速建立高性 能的物联网实时数据处理系统,并可以方便地完成不同系统 之间的数据交换。