骆潇龙
摘 要:智慧农业是现代化农业发展的必然趋势。将农业生产活动中的感知数据共享在网络中使之可以被检索发现是农产品监管以及精细耕作的前提。然而农产品与感知数据间关系复杂,无法使用爬虫获取全部关联信息,因此现有的检索方案无法有效解决农产品关联资源数据的查询需求,所以本文提出了一种基于标识服务的资源数据检索方法,借助标识明确了产品的关联关系。最后针对查询效率进行了测评,并验证了本方案在异构网络环境中具有良好的扩展性。
关键词:智慧农业;检索服务;关联资源发现;可扩展性
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)。属性在资源对象中一般表达为
该分布式树状结构由网络中的各个服务器共同维护,每个服务器维护自己所管理的资源对象的属性信息以及资源对象之间的关联关系。每个对象节点的建立只用在所属的父对象节点上注册即可。这种分布式层次树状结构将资源对象信息的管理权交给对象的所有者,各个对象节点只用关心与子节点的关系即可维护全网范围内对象间的关系。而资源对象的对象标识则可以通过该对象在整个树形结构中的位置来生成。
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不仅包含查询对象的信息,还包括相关对象中可以表达该对象特征的信息
[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.
(作者单位:重庆邮电大学计算机学院)