论文部分内容阅读
摘 要:智慧农业是现代化农业发展的必然趋势。将农业生产活动中的感知数据共享在网络中使之可以被检索发现是农产品监管以及精细耕作的前提。然而农产品与感知数据间关系复杂,无法使用爬虫获取全部关联信息,因此现有的检索方案无法有效解决农产品关联资源数据的查询需求,所以本文提出了一种基于标识服务的资源数据检索方法,借助标识明确了产品的关联关系。最后针对查询效率进行了测评,并验证了本方案在异构网络环境中具有良好的扩展性。
关键词:智慧农业;检索服务;关联资源发现;可扩展性
1 前言
智慧农业是物联网[1] 应用发展的重要方向之一[2],它作为农业生产的高级阶段可以为其带来不可估量的推动力和无可限量的前景。目前智慧农业的定义各有不同[3-4],但其本质都是物联网技术在农业中的应用,包括各种感知设备对农业生产活动的数据感知,监控,处理等,为农业生产者、消费者提供各种有价值的数据服务。各种数据服务的支撑是各种感知数据。通过这些数据,消费者可以获取更多农产品信息,国家监管部门可以对农业生产进行监管,农业服务提供商可以为农户提供精准的生产建议。要想更好的利用这些感知数据,就需要将这些数据共享在网络中使他们可以被检索到。
然而智慧农业中的感知数据具有规模巨大、时空关联、冗余度高、多维标量等特征[5],这就决定了检索数据资源时面临着更多的挑战。传统的互联网检索针对的资源主要是以静态文档型为主的网页数据[9],这些数据一旦发布内容很少发生变化[7],因此互联网搜索引擎可以通过爬虫获取网页关键字,建立倒排索引实现资源搜索。而智慧农业中的资源大多都是从现实世界中抽象出的对象以及实时描述对象的感知数据信息。由于对象之间关系复杂[6],一个对象的感知信息同样也可以描述与它相关的其他对象,但是这些暗含的关系无法通过爬虫全部获取并建立索引。因此传统互联网的搜索方式无法有效的解决通过对象查询其全部关联感知数据的检索需求。同时,智慧农业中数据规模巨大且主要以开放查询接口的方式共享数据。而用户希望通过统一的查询服务获取网络中不同应用提供的数据服务。因此物联网检索面向的是大规模异构的网络环境,这需要检索系统具有很强的扩展性。
为了解决上述问题,本文开展了物联网资源检索方案的研究。使用标识的方式表述对象间的关系,同时使用分布式索引树的方式维护现实中的关联关系,并在此基础上设计检索方法,使之能在异构的物联网环境中获取所有与查询对象相关的数据资源。最后针对查询效率进行了测评,并验证了本方案在异构网络环境中具有良好的扩展性。
2 相关工作
在物联网环境中,资源对象的搜索问题一直被学术界所重视,当前已有很多工作基于不同的出发点对物联网检索技术进行了研究,并取得了不少成果。
Snoogle[8,10] 系统在现实实体上部署传感器保存关于实体的一组关键字的文本描述。索引节点(index point)保存管理范围内的传感器,所有索引节点由关键索引节点(key index point)统一维护。查询请求根据地区范围发送到索引节点或关键索引节点,根据关键字匹配返回最符合的结果。这中集中管理的方式使得Snoogle系统无法应用于大规模异构的网络环境,可扩展性不高。
MAX[11]系统为物理实体分配带有关键字的标签(RFID)并部署在子站(Sub-station)中。基站(Base-station),从逻辑上讲它表述的是一个静态且不可动的地方,负责管理该范围内的子站。最上层的 MAX 服务器管理维持着所有基站和其位置信息的目录。搜索时,服务器逐层广播,获取关键字匹配的标签列表。这样虽然能在索引维护上减少资源消耗,但是严重增加了通信开销,因此同样不适用于大规模异构的网络环境。
WoT[11-15]的核心思想是借助互联网的基础设施资源将物理实体的资源和服务以网页的形式共享出来,从而使物联网的资源检索服务转化为了Web服务的发现过程[16-17]。Dyser[18]系统就是基于WoT思想上实现的一种物联网实时搜索引擎。
Dyser检索系统使用现有网络基础设施以Web页面的形式发布传感器和物理实体的资源服务,并创建物理实体的索引,使用户可以快速的搜索到符合指定状态的物理实体。该系统提出了利用历史数据信息建立实体预测模型的方式来实现对动态属性的搜索。Dyser是一个具有灵活性、扩展性、普适性的全局搜索服务。但是该系统需要人工提前确定物理实体与传感器之间的关系,同时传感器无法自动与所有相关实体对象建立关系,从而使用户无法获取到与对象相关的全部感知数据资源。
以上的这些相关工作都在一定程度上解决了在网络中搜索指定实体对象的问题,但是对于一些实际的应用场景,尤其针对像智慧农业中资源数据规模巨大存在异构,对象间具有关联性的情况,它们在具体实现时还是无法满足检索到对象全部相关感知数据的查询需求。因此本文在以上方案的基础上研究一种基于标识服务的检索方法来解决上述需求。
3 智慧农业中基于标识服务的资源检索方法
在智慧农业中,物联网标识是一个非常重要的资源[19],它与资源对象拥有相同生命周期。通过标识不仅可以对资源数据进行统一的查询,而且还可以在标识中保存对象间的关系,方便用户通过标识获取对象相关资源数据。因此考虑使用标识服务解决智慧农业中相关资源数据的查询问题。
3.1 智慧农业场景及问题
结合现实中的实际情况,本文设计了智慧农业的四层体系结构如图1所示。该结构自底向上分为对象感知层、数据层、基础服务层和应用层。感知层是由各种感知设备组成的异构网络,负责捕获农场中的感知信息。数据层主要负责保存感知数据以及实体对象描述信息并提供查询接口。在应用层用户提出各种获取数据的需求。而基础服务层在整个体系中则起着至关重要的作用。它需要向下组织数据层共享的资源数据查询接口,向上接收应用层的请求并返回相应的资源给用户。刘阳等人[20]认为标识是与物品具有同样生命周期的重要属性,基于此他提出了建立国家物联网标识管理公共服务平台(后文简称国家平台)实现基础服务层,为用户提供解析、发现等公共服务。该系统可以有效应对农产品信息呈现的异构、复杂、分散等特点,使任意农场系统的标识都能定位到相应的信息服务器上,从而达到整合各个农场的资源信息,为用户提供统一服务的目的。 虽然国家平台解决了部分资源获取的问题,但是依然无法解决如何根据标识发现全部与该产品对象相关的数据资源的问题。例如部署在农场大棚中的温度传感器实时记录着该大棚的温度变化情况。然而这些温度数据同样也可以用来描述生长在该大棚下蔬菜产品。但传感器在记录温度数据时不会关联到大棚中的蔬菜产品。因此仅仅通过产品标识无法查询到这些传感器产生的感知数据。为了解决这个问题本文提出使用带有层级关系的产品标识保存对象之间的关联关系,使用分布式的树状结构维护对象与对象,对象与感知数据之间的关联关系。并设计基于对象关系树的检索方法使用户可以通过产品标识查询到相关传感器的数据信息。
3.2 基于标识服务的检索方法
3.2.1 基本定义与说明
定义1(资源对象)资源对象(O)是指从现实世界的实体中抽象出来的虚拟数字对象。用户可以与网络中的资源对象进行交互获取现实实体的信息。资源对象的属性信息(OI)表示为一个n元组,其中Ki:Vi代表描述资源对象某个属性特征的键值对。
定义2(属性)根据已定义的资源对象,描述对象某方面特征的数据称为该对象的属性(property)。属性在资源对象中一般表达为的形式。其中key表示描述对象特征的名称,value表示该特征的取值。属性根据是否随时间变化又分为静态属性(S-property)和动态属性(D-property)。
定义3(相关对象)对于两类对象O1和O2,如果在O1中存在属性可以用来描述O2的特征,且O2中的任意属性都不无法表述O1的特征,那么则称O1是O2的相关对象。相关对象间存在层级关系,O1是O2的父对象,O2是O1的子对象。
定义4(对象标识)根据对象间层级关系为资源对象分配包含对象间关系的唯一标识,这种标识就称为对象标识(IDO),例如“O1.O2.O3.…On”。对象标识通过保证子对象名在其父对象中具有唯一性的方式,确保了对象标识在全网范围内具有唯一性。定义5(相关信息检索)资源对象相关信息检索指的是获取与查询目标相关的全部资源信息(Robj)。Robj不仅包括该对象本身的全部属性信息,同时还包括它的相关对象中能表达该对象特征的属性信息。
3.2.2 基于标识服务的检索方法概述
下面以上述智慧农业实际场景为例概述基于标识服务的资源检索方法。该方法大体流程如图2。
(1)各农场对象Ofarm在国家平台中注册,成为智慧农场对象下的一个子对象。同时各农场组织维护各自资源对象的属性信息K1:V1,K2:V2,…,Kn:Vn以及对象间的关系并且为对象分配对象标识(IDO)。
(2)各个传感器在部署到农场后,向所监控的农场对象发起入网注册请求。建立对象属性到传感器取数地址的映射关系。
(3)用户在购买到一个农场产品后,可获取到该产品的对象标识IDO,然后借助对象标识向检索服务器发送获取该产品相关资源信息Robj的查询请求。
(4)检索服务器在接收到用户发来的请求后首先查询该资源对象下全部的属性信息。然后根据对象标识逆向检索各个相关对象,查询出这些对象中属性信息。
(5)最后检索服务器将所有查询到的数据结果Robj返回给用户,至此完成对象相关信息的检索。
通过上述整体流程我们可以看出,在基于标识服务的检索方案中主要有以下两个关键问题,对象与对象、对象与属性间关系的维护以及对象相关信息的检索方法。在资源对象关系的维护中,本文采用分布式树状结构来组织这些关联关系,从而有效的解决在智慧农业异构网络环境中如何维护各个资源对象之间的关系问题。本文借助标识服务提出基于对象关系树的相关信息检索方法满足用户相关信息检索的需求。下面围绕这两个关键问题重点展开介绍。
4 分布式树状结构的资源关系维护
本章主要分两个部分,第一部分为对象与对象之间关联关系的建立,第二部分为对象与属性之间关联关系的建立。第一部分针对智慧农业中实体对象规模巨大、对象间存在关联关系的问题,本文提出了使用分布式树状结构来管理从智慧农业中抽象出的实体对象。第二部分首先提出传感器数据是对现实对象某一属性的描述,以此为基础提出传感器入网注册的方式。
4.1 对象与对象关联关系的维护
在物联网中现实世界的各种实体被抽象成资源对象共享在网络上为人们提供信息。这些对象之间往往存在一定的层级关系,相互关联的对象间属性表述的内容是可以共享的。在检索对象相关资源时,与该对象相关资源信息都应被查询到。从整个智能农业的角度讲,这些含有层级性的关联信息数量巨大,无法由搜索引擎以集中式的方式进行管理。同时,由于安全性的需要,资源对象的信息也应由农场方面自行维护。针对以上问题本文提出使用分布式树状结构来管理物联网中实体对象间的关联关系,结构如图3所示。
在该树状结构中,每个对象服务器维护一个或多个对象节点。每个对象节点(ONode)代表一个资源对象。该对象节点需要维护本对象的属性记录(Recordproperty)以及其子对象记录(RecordsubNode)。属性记录将在4.2小节具体介绍。每个对象节点中的子对象记录如下所示。
其中,Name字段表示子对象的名称或是ID,在同一个对象节点中该字段具有唯一性。Info字段记录的则是子对象节点在网络中的位置,该字段通常以IP加端口的形式保存。如果子对象节点在本对象服务器中则用“localhost”表示。ExtendProperty字段记录的是该对象中可以与子对象共享的属性,它的保存形式是该对象节点属性key的一个子集{key1,key2,…,keyi}。 该分布式树状结构由网络中的各个服务器共同维护,每个服务器维护自己所管理的资源对象的属性信息以及资源对象之间的关联关系。每个对象节点的建立只用在所属的父对象节点上注册即可。这种分布式层次树状结构将资源对象信息的管理权交给对象的所有者,各个对象节点只用关心与子节点的关系即可维护全网范围内对象间的关系。而资源对象的对象标识则可以通过该对象在整个树形结构中的位置来生成。
4.2 对象与属性关联关系的维护
在农场的各个对象中部署了大量的传感器,这些传感器以预设频率周期性采集用于描述监测目标某种特征的感知数据信息。各种感知数据可以抽象为以下形式
其中relativeLocation可称为相对地址也可以称为描述对象。这个属性表示了传感器部署的相对位置,如南沙资讯科园霍英东大楼3楼A301室。同时也可以理解为传感器监控的资源对象。property表示的是传感器描述的是监控对象哪一方面的属性。例如温度传感器一般描述的是监控对象的温度属性。视频传感器则可以根据需求表述为监控对象的路况属性(监控某个交通路口),安全属性(监控敏感区域)等。timeStamp表示监控数据采集的时间点。reading则表示传感器采集生成的具体数据。如一个表示温度的读数,一段视频数据流,一个表示光照强度的数值。
根据上述公共的4个部分我们可以把这些感知数据都理解为描述在某时间点的资源对象某一属性所抽象的数据值。因此传感器产生的感知数据即为资源对象的动态属性。资源对象除了动态属性外还有静态属性。静态属性的内容通常是不随时间的变化而频繁发生改变的文本描述信息。这些属性内容以属性记录(Recordproperty)的形式保存在相应的对象节点中。属性记录具体内容如下:
其中,Name表示属性的名称。Type表示属性的类型。根据定义2,Type可以分为以传感器数据为主的动态属性(D-property)和以文本描述为主的静态属性(S-property)。若Type为静态属性那么Info中则直接保存该属性的文本描述。与静态属性不同,作为动态属性的感知数据被不同传感器采集后保存在不同的数据服务器中。由于对象节点无法维护海量的感知数据,同时数据服务器也不可能将全部数据再发送一份到对象节点中,只能以开放查询接口的方式共享数据。因此,如果Type为动态属性那么Info中则保存感知数据的取数接口。
在智慧农业场景中,传感器在部署完成后它所监控的对象以及描述对象何种属性就固定不变了,而且一个传感器所产生的全部数据是由固定系统维护保存的。这种固定监测环境数据的感知设备也不会频繁进入或离开网络,因此本文采用人工发起请求的方式向农场资源对象下注册动态属性。注册时需要提供传感器所监控对象的对象标识、表征对象的属性以及传感器数据的取数地址。首先通过国家平台解析对象标识确定传感器所监控的对象节点,然后向该对象节点发起对象属性注册请求。该请求包括传感器表征对象的属性以及感知数据的取数接口并说明属性的类型为动态属性。为了获取数据方便我们建议数据维护厂商使用REST架构的Web服务来实现取数接口。同时传感器数据具有很强的时间关联性,不同时间点表示的数据意义大不相同,因此厂商提供的取数接口应该支持以时间为条件的查询请求。注册成功后传感器取数接口作为表征该对象的动态属性被注册到相应对象节点下,从而建立了对象与感知数据的关联关系。而静态属性一般由资源对象的所有者自行维护,当有新的静态属性加入时,则在对象节点下自行加入相应的属性记录即可。
5 基于对象关系树的相关信息检索方法
在物联网资源检索中用户有获取检索对象相关信息的需求。根据上文所述对象标识含有与该产品相关的全部对象,因此在检索时需要遍历这些对象,获取与查询对象相关的全部信息。虽然相关对象间属性表述的内容是可以共享的,但是从时间的角度上说子对象只存在于父对象的一定时间范围内。例如温室中的湿度数据同样可以表示在温室中生长蔬菜的湿度属性,然而传感器记录的湿度数据是温室全生命周期内数据,蔬菜产品只存于温室中一定时间范围内,在获取相关数据信息时也只能获取蔬菜这段时间范围内的感知数据信息。因此在获取产品相关对象的感知数据时必须带有产品与其他对象相关联的时间范围。为此本文所提出了基于标识服务的资源检索方法,检索服务器处理过程归纳如图4:
(1)用户通过扫码等技术手段获取物理实体上的对象标识(IDO),使用该对象标识向国家平台的检索服务器发起查询请求。
(2)检索服务器在收到此对象标识后首先解析对象标识,定位到资源对象对应的对象节点(ONode)中,在对象节点中可以获取该资源对象的属性信息(OI)并添加到检索结果集Robj中。
(3)本文中默认查询对象在相关对象中存在的时间(duration)作为静态属性保存在对象节点中。在获取产品对象全部属性信息后,首先提取该时间段作为后续查询的前提。如果对象属性中未包含该时间段则终止查询,将Robj直接返回给用户。
(4)在查询对象存在时间段确定的情况下,根据对象标识“O1.O2.O3.…On”循环查询上一级相关对象的子对象记录(RecordsubNode),根据ExtendProperty字段的内容,获取子对象继承的属性记录(Recordproperty)将其加入到相关属性列表中(Listproperty),直到遍历完全部相关对象即上一级相关对象标识变为物联网根对象“cniotroot.cn”时终止。
(5)遍历Listproperty中全部属性记录(Recordproperty),该属性的Type为静态属性(S-property)则将记录中Name作为key,Info作为value加入到Robj中。如果该属性的Type为动态属性(D-property),则以对象存在时间段为条件,向该记录中Info对应的数据取数接口发送请求。最后以返回结果作为value以记录中Name作为Key保存至Robj中。 (6)此时Robj不仅包含查询对象的信息,还包括相关对象中可以表达该对象特征的信息。最后将结果集Robj返回给用户。
6 系统实现
本文设计的检索服务系统使用JAVA实现各对象服务器维护的分布式树状结构,数据服务器使用elasticsearch 2.1.1提供REST风格的数据搜索服务,使用Java语言实现国家平台的资源检索服务。
为了监测本系统的有效性,设计如下测试场景。该场景中含有两个农场,分别维护各自内部的对象及属性的关系,有多个不同数据服务器为这两个农场维护传感器产生的数据,一个检索服务器用于接收用户的查询请求查询相关的数据。数据服务器和检索服务器CPU型号为“Intel(R)Core(TM)I3-4160 @ 3.60GHz”内存为8G。农场对象服务器CPU型号为“Intel(R)Xeon(R)CPU E5-2650 0 @ 2.00GHz”内存为16G。查询的农产品至少含3个相关对象。
在性能上,智慧农业中的检索系统主要关注的是检索速度以及网络中数据量大规模增长对检索时间的影响。经过测试,使用4个线程并发对100万条感知数据进行查询,平均每次的耗时为0.39ms。当智慧农业场景中传感器数量增加数据服务器增多,网络中数据规模随之扩大。图5是在数据规模扩大的情况下,6个线程并发起1万次查询请求的耗时变化。
根据该图可以看出,随着数据量从50万条扩大到2000万条,4个线程并发1万次的查询时间总体上在39秒到40秒之间。该结果显示由于数据服务提供者数量增加而导致的数据规模的扩大并未使查询时延发生指数型增加。验证了采用分布式树状结构管理物联网中对象属性关系的方法在智慧农业异构网络环境中具有较好的扩展性。
7 总结
本文针对智慧农业中消费者有获取产品全部相关感知数据的需求,开展了对象相关感知资源检索方法的研究。提出了使用分布式索引树的方式维护对象与对象,对象与传感器数据间的关联关系;为现实对象分配包含资源间关系的对象标识;设计使用对象标识查询与产品相关的全部资源数据的检索方案。最后设计实验场景,经过测试得出本检索方案可以有效的查询出对象相关的资源数据,在网络中服务提供者数量增加数据规模逐渐扩大的情况下,检索效率基本不变,因此系统具有较强的可扩展性。
之所以选择智慧农业场景介绍相关感知数据的检索方案是因为现在人们越来越关注食品安全,迫切希望获取所购买农产品更多的信息。同时,本方案也适用于其他场景,只要现实对象处于同一逻辑空间,那么同一时间表述它们的感知数据就可以共享。通过本方案维护对象间的关系,使用对象标识就可以检索到这些与查询对象相关数据信息。
参考文献
[1]We&R M.The Computer for the 21st Century.[J].Scientific American,1991,265(1):94-104.
[2]佚名.2015-2020年中国物联网行业深度评估及投资前景预测报告[Z].中国市场情报中心,2015
[3]李道亮.物联网与智慧农业[J].农业工程,2012,2(1):1-7.
[4]朱会霞,王福林,索瑞霞.物联网在中国现代农业中的应用[J].中国农学通报,2011,27(2):310-314.
[5]LITingli,LIU Yang,TIAN Ye.A Storage Solution for Massive IoT Data Based on NoSQL[M].The 2012 IEEE International Conference on Internet of Things(iThings),2012.
[6]孙婷婷.物联网语义搜索引擎的研究与实现[D].北京邮电大学,2015.
[7]Wang H,Tan C C,Li Q.Snoogle:A Search Engine for Pervasive Environments[J].Parallel & Distributed Systems IEEE Transactions on,2010,21(8):1188-1202.
[8]R?mer K,Ostermaier B,Mattern F,et al.Real-time search for real-world entities:A survey[J].Proceedings of the IEEE,2010,98(11):1887-1902.
[9]高云全,李小勇,方滨兴.物联网搜索技术综述[J].通信学报,2015,36(12):57-76.
[10]Tan C C,Sheng B,Wang H,et al.Microsearch:When Search Engines Meet Small Devices[J].Lecture Notes in Computer Science,2008,(5013):93-110.
[11]YAP K K,SRINIVASAN V,MOTANI M.MAX:Human-centric search of the physical world[A].Proc 3rd Conf Embedded NetwSensorSyst[C].2005:166-179.
[12]Stirbu V.Towards a RESTful Plug and Play Experience in the Web of Things[A].Semantic Computing,2008 IEEE International Conference on[C].2008:512-517. [13]Guinard D,Trifa V,Wilde E.A resource oriented architecture for the Web of Things[A].Internet of Things(IOT)[C].2011:1-8.
[14]Guinard D.A Web of things application architecture[J].DissDgen?ssischeTechnischeHochschule Eth Zürich Nr,2011.
[15]Christophe B,Boussard M,Lu M,et al.The web of things vision:Things as a service and interaction patterns.[J].Bell Labs Technical Journal,2011,16(1):55-61.
[16]Ostermaier B,Ro?Mer K,Mattern F,et al.A real-time search engine for the Web of Things[A].Internet of Things(IOT)[C].2010:1-8.
[17]刘阳.基于标识服务的物联网资源管理关键技术研究[D].中国科学院大学,2014.
[18]Tian Y,Liu Y,Yan Z,et al.RNS-A Public Resource Name Service Platform for the Internet of Things[A].Green Computing and Communications(GreenCom),2012 IEEE International Conference on[C].2012:234-239.
[19]刘鹏.RFID网络发现服务关键技术研究[D].中国科学院大学,2015.
[20]Fielding R T.Architectural styles and the design of network-based software architectures[D].University of California,Irvine,2000.
(作者单位:重庆邮电大学计算机学院)
关键词:智慧农业;检索服务;关联资源发现;可扩展性
1 前言
智慧农业是物联网[1] 应用发展的重要方向之一[2],它作为农业生产的高级阶段可以为其带来不可估量的推动力和无可限量的前景。目前智慧农业的定义各有不同[3-4],但其本质都是物联网技术在农业中的应用,包括各种感知设备对农业生产活动的数据感知,监控,处理等,为农业生产者、消费者提供各种有价值的数据服务。各种数据服务的支撑是各种感知数据。通过这些数据,消费者可以获取更多农产品信息,国家监管部门可以对农业生产进行监管,农业服务提供商可以为农户提供精准的生产建议。要想更好的利用这些感知数据,就需要将这些数据共享在网络中使他们可以被检索到。
然而智慧农业中的感知数据具有规模巨大、时空关联、冗余度高、多维标量等特征[5],这就决定了检索数据资源时面临着更多的挑战。传统的互联网检索针对的资源主要是以静态文档型为主的网页数据[9],这些数据一旦发布内容很少发生变化[7],因此互联网搜索引擎可以通过爬虫获取网页关键字,建立倒排索引实现资源搜索。而智慧农业中的资源大多都是从现实世界中抽象出的对象以及实时描述对象的感知数据信息。由于对象之间关系复杂[6],一个对象的感知信息同样也可以描述与它相关的其他对象,但是这些暗含的关系无法通过爬虫全部获取并建立索引。因此传统互联网的搜索方式无法有效的解决通过对象查询其全部关联感知数据的检索需求。同时,智慧农业中数据规模巨大且主要以开放查询接口的方式共享数据。而用户希望通过统一的查询服务获取网络中不同应用提供的数据服务。因此物联网检索面向的是大规模异构的网络环境,这需要检索系统具有很强的扩展性。
为了解决上述问题,本文开展了物联网资源检索方案的研究。使用标识的方式表述对象间的关系,同时使用分布式索引树的方式维护现实中的关联关系,并在此基础上设计检索方法,使之能在异构的物联网环境中获取所有与查询对象相关的数据资源。最后针对查询效率进行了测评,并验证了本方案在异构网络环境中具有良好的扩展性。
2 相关工作
在物联网环境中,资源对象的搜索问题一直被学术界所重视,当前已有很多工作基于不同的出发点对物联网检索技术进行了研究,并取得了不少成果。
Snoogle[8,10] 系统在现实实体上部署传感器保存关于实体的一组关键字的文本描述。索引节点(index point)保存管理范围内的传感器,所有索引节点由关键索引节点(key index point)统一维护。查询请求根据地区范围发送到索引节点或关键索引节点,根据关键字匹配返回最符合的结果。这中集中管理的方式使得Snoogle系统无法应用于大规模异构的网络环境,可扩展性不高。
MAX[11]系统为物理实体分配带有关键字的标签(RFID)并部署在子站(Sub-station)中。基站(Base-station),从逻辑上讲它表述的是一个静态且不可动的地方,负责管理该范围内的子站。最上层的 MAX 服务器管理维持着所有基站和其位置信息的目录。搜索时,服务器逐层广播,获取关键字匹配的标签列表。这样虽然能在索引维护上减少资源消耗,但是严重增加了通信开销,因此同样不适用于大规模异构的网络环境。
WoT[11-15]的核心思想是借助互联网的基础设施资源将物理实体的资源和服务以网页的形式共享出来,从而使物联网的资源检索服务转化为了Web服务的发现过程[16-17]。Dyser[18]系统就是基于WoT思想上实现的一种物联网实时搜索引擎。
Dyser检索系统使用现有网络基础设施以Web页面的形式发布传感器和物理实体的资源服务,并创建物理实体的索引,使用户可以快速的搜索到符合指定状态的物理实体。该系统提出了利用历史数据信息建立实体预测模型的方式来实现对动态属性的搜索。Dyser是一个具有灵活性、扩展性、普适性的全局搜索服务。但是该系统需要人工提前确定物理实体与传感器之间的关系,同时传感器无法自动与所有相关实体对象建立关系,从而使用户无法获取到与对象相关的全部感知数据资源。
以上的这些相关工作都在一定程度上解决了在网络中搜索指定实体对象的问题,但是对于一些实际的应用场景,尤其针对像智慧农业中资源数据规模巨大存在异构,对象间具有关联性的情况,它们在具体实现时还是无法满足检索到对象全部相关感知数据的查询需求。因此本文在以上方案的基础上研究一种基于标识服务的检索方法来解决上述需求。
3 智慧农业中基于标识服务的资源检索方法
在智慧农业中,物联网标识是一个非常重要的资源[19],它与资源对象拥有相同生命周期。通过标识不仅可以对资源数据进行统一的查询,而且还可以在标识中保存对象间的关系,方便用户通过标识获取对象相关资源数据。因此考虑使用标识服务解决智慧农业中相关资源数据的查询问题。
3.1 智慧农业场景及问题
结合现实中的实际情况,本文设计了智慧农业的四层体系结构如图1所示。该结构自底向上分为对象感知层、数据层、基础服务层和应用层。感知层是由各种感知设备组成的异构网络,负责捕获农场中的感知信息。数据层主要负责保存感知数据以及实体对象描述信息并提供查询接口。在应用层用户提出各种获取数据的需求。而基础服务层在整个体系中则起着至关重要的作用。它需要向下组织数据层共享的资源数据查询接口,向上接收应用层的请求并返回相应的资源给用户。刘阳等人[20]认为标识是与物品具有同样生命周期的重要属性,基于此他提出了建立国家物联网标识管理公共服务平台(后文简称国家平台)实现基础服务层,为用户提供解析、发现等公共服务。该系统可以有效应对农产品信息呈现的异构、复杂、分散等特点,使任意农场系统的标识都能定位到相应的信息服务器上,从而达到整合各个农场的资源信息,为用户提供统一服务的目的。 虽然国家平台解决了部分资源获取的问题,但是依然无法解决如何根据标识发现全部与该产品对象相关的数据资源的问题。例如部署在农场大棚中的温度传感器实时记录着该大棚的温度变化情况。然而这些温度数据同样也可以用来描述生长在该大棚下蔬菜产品。但传感器在记录温度数据时不会关联到大棚中的蔬菜产品。因此仅仅通过产品标识无法查询到这些传感器产生的感知数据。为了解决这个问题本文提出使用带有层级关系的产品标识保存对象之间的关联关系,使用分布式的树状结构维护对象与对象,对象与感知数据之间的关联关系。并设计基于对象关系树的检索方法使用户可以通过产品标识查询到相关传感器的数据信息。
3.2 基于标识服务的检索方法
3.2.1 基本定义与说明
定义1(资源对象)资源对象(O)是指从现实世界的实体中抽象出来的虚拟数字对象。用户可以与网络中的资源对象进行交互获取现实实体的信息。资源对象的属性信息(OI)表示为一个n元组
定义2(属性)根据已定义的资源对象,描述对象某方面特征的数据称为该对象的属性(property)。属性在资源对象中一般表达为
定义3(相关对象)对于两类对象O1和O2,如果在O1中存在属性
定义4(对象标识)根据对象间层级关系为资源对象分配包含对象间关系的唯一标识,这种标识就称为对象标识(IDO),例如“O1.O2.O3.…On”。对象标识通过保证子对象名在其父对象中具有唯一性的方式,确保了对象标识在全网范围内具有唯一性。定义5(相关信息检索)资源对象相关信息检索指的是获取与查询目标相关的全部资源信息(Robj)。Robj不仅包括该对象本身的全部属性信息
3.2.2 基于标识服务的检索方法概述
下面以上述智慧农业实际场景为例概述基于标识服务的资源检索方法。该方法大体流程如图2。
(1)各农场对象Ofarm在国家平台中注册,成为智慧农场对象下的一个子对象。同时各农场组织维护各自资源对象的属性信息K1:V1,K2:V2,…,Kn:Vn以及对象间的关系并且为对象分配对象标识(IDO)。
(2)各个传感器在部署到农场后,向所监控的农场对象发起入网注册请求。建立对象属性到传感器取数地址的映射关系。
(3)用户在购买到一个农场产品后,可获取到该产品的对象标识IDO,然后借助对象标识向检索服务器发送获取该产品相关资源信息Robj的查询请求。
(4)检索服务器在接收到用户发来的请求后首先查询该资源对象下全部的属性信息
(5)最后检索服务器将所有查询到的数据结果Robj返回给用户,至此完成对象相关信息的检索。
通过上述整体流程我们可以看出,在基于标识服务的检索方案中主要有以下两个关键问题,对象与对象、对象与属性间关系的维护以及对象相关信息的检索方法。在资源对象关系的维护中,本文采用分布式树状结构来组织这些关联关系,从而有效的解决在智慧农业异构网络环境中如何维护各个资源对象之间的关系问题。本文借助标识服务提出基于对象关系树的相关信息检索方法满足用户相关信息检索的需求。下面围绕这两个关键问题重点展开介绍。
4 分布式树状结构的资源关系维护
本章主要分两个部分,第一部分为对象与对象之间关联关系的建立,第二部分为对象与属性之间关联关系的建立。第一部分针对智慧农业中实体对象规模巨大、对象间存在关联关系的问题,本文提出了使用分布式树状结构来管理从智慧农业中抽象出的实体对象。第二部分首先提出传感器数据是对现实对象某一属性的描述,以此为基础提出传感器入网注册的方式。
4.1 对象与对象关联关系的维护
在物联网中现实世界的各种实体被抽象成资源对象共享在网络上为人们提供信息。这些对象之间往往存在一定的层级关系,相互关联的对象间属性表述的内容是可以共享的。在检索对象相关资源时,与该对象相关资源信息都应被查询到。从整个智能农业的角度讲,这些含有层级性的关联信息数量巨大,无法由搜索引擎以集中式的方式进行管理。同时,由于安全性的需要,资源对象的信息也应由农场方面自行维护。针对以上问题本文提出使用分布式树状结构来管理物联网中实体对象间的关联关系,结构如图3所示。
在该树状结构中,每个对象服务器维护一个或多个对象节点。每个对象节点(ONode)代表一个资源对象。该对象节点需要维护本对象的属性记录(Recordproperty)以及其子对象记录(RecordsubNode)。属性记录将在4.2小节具体介绍。每个对象节点中的子对象记录如下所示。
其中,Name字段表示子对象的名称或是ID,在同一个对象节点中该字段具有唯一性。Info字段记录的则是子对象节点在网络中的位置,该字段通常以IP加端口的形式保存。如果子对象节点在本对象服务器中则用“localhost”表示。ExtendProperty字段记录的是该对象中可以与子对象共享的属性,它的保存形式是该对象节点属性key的一个子集{key1,key2,…,keyi}。 该分布式树状结构由网络中的各个服务器共同维护,每个服务器维护自己所管理的资源对象的属性信息以及资源对象之间的关联关系。每个对象节点的建立只用在所属的父对象节点上注册即可。这种分布式层次树状结构将资源对象信息的管理权交给对象的所有者,各个对象节点只用关心与子节点的关系即可维护全网范围内对象间的关系。而资源对象的对象标识则可以通过该对象在整个树形结构中的位置来生成。
4.2 对象与属性关联关系的维护
在农场的各个对象中部署了大量的传感器,这些传感器以预设频率周期性采集用于描述监测目标某种特征的感知数据信息。各种感知数据可以抽象为以下形式
其中relativeLocation可称为相对地址也可以称为描述对象。这个属性表示了传感器部署的相对位置,如南沙资讯科园霍英东大楼3楼A301室。同时也可以理解为传感器监控的资源对象。property表示的是传感器描述的是监控对象哪一方面的属性。例如温度传感器一般描述的是监控对象的温度属性。视频传感器则可以根据需求表述为监控对象的路况属性(监控某个交通路口),安全属性(监控敏感区域)等。timeStamp表示监控数据采集的时间点。reading则表示传感器采集生成的具体数据。如一个表示温度的读数,一段视频数据流,一个表示光照强度的数值。
根据上述公共的4个部分我们可以把这些感知数据都理解为描述在某时间点的资源对象某一属性所抽象的数据值。因此传感器产生的感知数据即为资源对象的动态属性。资源对象除了动态属性外还有静态属性。静态属性的内容通常是不随时间的变化而频繁发生改变的文本描述信息。这些属性内容以属性记录(Recordproperty)的形式保存在相应的对象节点中。属性记录具体内容如下:
其中,Name表示属性的名称。Type表示属性的类型。根据定义2,Type可以分为以传感器数据为主的动态属性(D-property)和以文本描述为主的静态属性(S-property)。若Type为静态属性那么Info中则直接保存该属性的文本描述。与静态属性不同,作为动态属性的感知数据被不同传感器采集后保存在不同的数据服务器中。由于对象节点无法维护海量的感知数据,同时数据服务器也不可能将全部数据再发送一份到对象节点中,只能以开放查询接口的方式共享数据。因此,如果Type为动态属性那么Info中则保存感知数据的取数接口。
在智慧农业场景中,传感器在部署完成后它所监控的对象以及描述对象何种属性就固定不变了,而且一个传感器所产生的全部数据是由固定系统维护保存的。这种固定监测环境数据的感知设备也不会频繁进入或离开网络,因此本文采用人工发起请求的方式向农场资源对象下注册动态属性。注册时需要提供传感器所监控对象的对象标识、表征对象的属性以及传感器数据的取数地址。首先通过国家平台解析对象标识确定传感器所监控的对象节点,然后向该对象节点发起对象属性注册请求。该请求包括传感器表征对象的属性以及感知数据的取数接口并说明属性的类型为动态属性。为了获取数据方便我们建议数据维护厂商使用REST架构的Web服务来实现取数接口。同时传感器数据具有很强的时间关联性,不同时间点表示的数据意义大不相同,因此厂商提供的取数接口应该支持以时间为条件的查询请求。注册成功后传感器取数接口作为表征该对象的动态属性被注册到相应对象节点下,从而建立了对象与感知数据的关联关系。而静态属性一般由资源对象的所有者自行维护,当有新的静态属性加入时,则在对象节点下自行加入相应的属性记录即可。
5 基于对象关系树的相关信息检索方法
在物联网资源检索中用户有获取检索对象相关信息的需求。根据上文所述对象标识含有与该产品相关的全部对象,因此在检索时需要遍历这些对象,获取与查询对象相关的全部信息。虽然相关对象间属性表述的内容是可以共享的,但是从时间的角度上说子对象只存在于父对象的一定时间范围内。例如温室中的湿度数据同样可以表示在温室中生长蔬菜的湿度属性,然而传感器记录的湿度数据是温室全生命周期内数据,蔬菜产品只存于温室中一定时间范围内,在获取相关数据信息时也只能获取蔬菜这段时间范围内的感知数据信息。因此在获取产品相关对象的感知数据时必须带有产品与其他对象相关联的时间范围。为此本文所提出了基于标识服务的资源检索方法,检索服务器处理过程归纳如图4:
(1)用户通过扫码等技术手段获取物理实体上的对象标识(IDO),使用该对象标识向国家平台的检索服务器发起查询请求。
(2)检索服务器在收到此对象标识后首先解析对象标识,定位到资源对象对应的对象节点(ONode)中,在对象节点中可以获取该资源对象的属性信息(OI)并添加到检索结果集Robj中。
(3)本文中默认查询对象在相关对象中存在的时间(duration)作为静态属性保存在对象节点中。在获取产品对象全部属性信息后,首先提取该时间段作为后续查询的前提。如果对象属性中未包含该时间段则终止查询,将Robj直接返回给用户。
(4)在查询对象存在时间段确定的情况下,根据对象标识“O1.O2.O3.…On”循环查询上一级相关对象的子对象记录(RecordsubNode),根据ExtendProperty字段的内容,获取子对象继承的属性记录(Recordproperty)将其加入到相关属性列表中(Listproperty),直到遍历完全部相关对象即上一级相关对象标识变为物联网根对象“cniotroot.cn”时终止。
(5)遍历Listproperty中全部属性记录(Recordproperty),该属性的Type为静态属性(S-property)则将记录中Name作为key,Info作为value加入到Robj中。如果该属性的Type为动态属性(D-property),则以对象存在时间段为条件,向该记录中Info对应的数据取数接口发送请求。最后以返回结果作为value以记录中Name作为Key保存至Robj中。 (6)此时Robj不仅包含查询对象的信息
6 系统实现
本文设计的检索服务系统使用JAVA实现各对象服务器维护的分布式树状结构,数据服务器使用elasticsearch 2.1.1提供REST风格的数据搜索服务,使用Java语言实现国家平台的资源检索服务。
为了监测本系统的有效性,设计如下测试场景。该场景中含有两个农场,分别维护各自内部的对象及属性的关系,有多个不同数据服务器为这两个农场维护传感器产生的数据,一个检索服务器用于接收用户的查询请求查询相关的数据。数据服务器和检索服务器CPU型号为“Intel(R)Core(TM)I3-4160 @ 3.60GHz”内存为8G。农场对象服务器CPU型号为“Intel(R)Xeon(R)CPU E5-2650 0 @ 2.00GHz”内存为16G。查询的农产品至少含3个相关对象。
在性能上,智慧农业中的检索系统主要关注的是检索速度以及网络中数据量大规模增长对检索时间的影响。经过测试,使用4个线程并发对100万条感知数据进行查询,平均每次的耗时为0.39ms。当智慧农业场景中传感器数量增加数据服务器增多,网络中数据规模随之扩大。图5是在数据规模扩大的情况下,6个线程并发起1万次查询请求的耗时变化。
根据该图可以看出,随着数据量从50万条扩大到2000万条,4个线程并发1万次的查询时间总体上在39秒到40秒之间。该结果显示由于数据服务提供者数量增加而导致的数据规模的扩大并未使查询时延发生指数型增加。验证了采用分布式树状结构管理物联网中对象属性关系的方法在智慧农业异构网络环境中具有较好的扩展性。
7 总结
本文针对智慧农业中消费者有获取产品全部相关感知数据的需求,开展了对象相关感知资源检索方法的研究。提出了使用分布式索引树的方式维护对象与对象,对象与传感器数据间的关联关系;为现实对象分配包含资源间关系的对象标识;设计使用对象标识查询与产品相关的全部资源数据的检索方案。最后设计实验场景,经过测试得出本检索方案可以有效的查询出对象相关的资源数据,在网络中服务提供者数量增加数据规模逐渐扩大的情况下,检索效率基本不变,因此系统具有较强的可扩展性。
之所以选择智慧农业场景介绍相关感知数据的检索方案是因为现在人们越来越关注食品安全,迫切希望获取所购买农产品更多的信息。同时,本方案也适用于其他场景,只要现实对象处于同一逻辑空间,那么同一时间表述它们的感知数据就可以共享。通过本方案维护对象间的关系,使用对象标识就可以检索到这些与查询对象相关数据信息。
参考文献
[1]We&R M.The Computer for the 21st Century.[J].Scientific American,1991,265(1):94-104.
[2]佚名.2015-2020年中国物联网行业深度评估及投资前景预测报告[Z].中国市场情报中心,2015
[3]李道亮.物联网与智慧农业[J].农业工程,2012,2(1):1-7.
[4]朱会霞,王福林,索瑞霞.物联网在中国现代农业中的应用[J].中国农学通报,2011,27(2):310-314.
[5]LITingli,LIU Yang,TIAN Ye.A Storage Solution for Massive IoT Data Based on NoSQL[M].The 2012 IEEE International Conference on Internet of Things(iThings),2012.
[6]孙婷婷.物联网语义搜索引擎的研究与实现[D].北京邮电大学,2015.
[7]Wang H,Tan C C,Li Q.Snoogle:A Search Engine for Pervasive Environments[J].Parallel & Distributed Systems IEEE Transactions on,2010,21(8):1188-1202.
[8]R?mer K,Ostermaier B,Mattern F,et al.Real-time search for real-world entities:A survey[J].Proceedings of the IEEE,2010,98(11):1887-1902.
[9]高云全,李小勇,方滨兴.物联网搜索技术综述[J].通信学报,2015,36(12):57-76.
[10]Tan C C,Sheng B,Wang H,et al.Microsearch:When Search Engines Meet Small Devices[J].Lecture Notes in Computer Science,2008,(5013):93-110.
[11]YAP K K,SRINIVASAN V,MOTANI M.MAX:Human-centric search of the physical world[A].Proc 3rd Conf Embedded NetwSensorSyst[C].2005:166-179.
[12]Stirbu V.Towards a RESTful Plug and Play Experience in the Web of Things[A].Semantic Computing,2008 IEEE International Conference on[C].2008:512-517. [13]Guinard D,Trifa V,Wilde E.A resource oriented architecture for the Web of Things[A].Internet of Things(IOT)[C].2011:1-8.
[14]Guinard D.A Web of things application architecture[J].DissDgen?ssischeTechnischeHochschule Eth Zürich Nr,2011.
[15]Christophe B,Boussard M,Lu M,et al.The web of things vision:Things as a service and interaction patterns.[J].Bell Labs Technical Journal,2011,16(1):55-61.
[16]Ostermaier B,Ro?Mer K,Mattern F,et al.A real-time search engine for the Web of Things[A].Internet of Things(IOT)[C].2010:1-8.
[17]刘阳.基于标识服务的物联网资源管理关键技术研究[D].中国科学院大学,2014.
[18]Tian Y,Liu Y,Yan Z,et al.RNS-A Public Resource Name Service Platform for the Internet of Things[A].Green Computing and Communications(GreenCom),2012 IEEE International Conference on[C].2012:234-239.
[19]刘鹏.RFID网络发现服务关键技术研究[D].中国科学院大学,2015.
[20]Fielding R T.Architectural styles and the design of network-based software architectures[D].University of California,Irvine,2000.
(作者单位:重庆邮电大学计算机学院)