基于Alljoyn框架的物联网系统构建研究.docx
《基于Alljoyn框架的物联网系统构建研究.docx》由会员分享,可在线阅读,更多相关《基于Alljoyn框架的物联网系统构建研究.docx(6页珍藏版)》请在冰豆网上搜索。
![基于Alljoyn框架的物联网系统构建研究.docx](https://file1.bdocx.com/fileroot1/2023-2/3/e88b1085-fc7b-4f71-a4b5-73489191bfad/e88b1085-fc7b-4f71-a4b5-73489191bfad1.gif)
基于Alljoyn框架的物联网系统构建研究
基于Alljoyn框架的物联网系统构建研究
摘要:
物联网设备之间统一的访问方式和设备之间的互操作是物联网系统实现中必须要考虑的问题。
本文利用Alljoyn框架来实现物联网中设备之间的连接和设备服务的访问,并且还在Alljoyn框架的基础之上,讨论了利用语义技术来实现设备间的互操作,提高设备的智能性。
关键词:
物联网;Alljoyn;语义技术
1引言
近年来,随着科技的进步和人们生活的需要,物联网技术得到了广泛的应用,越来越多的智能设备出现在了人们的生活当中。
智能设备之间相互协作,为用户提供基于上下文的和实时的体验。
在物联网中,地理位置相近的设备往往会相互连接、组网,形成一个邻近网络。
邻近网络可以通过网关辅助连接、服务器辅助连接等方式接入互联网中,这样任意邻近网络中的信息可以进入互联网中流通,也可以借助于互联网访问任意邻近网络中的设备或服务。
在互联网中,访问服务一般通过域名的方式。
这些域名由IANA统一管理,申请域名时会在域名系统中集中注册,查找域名时会逐层搜索。
互联网采用这种方式是因为互联网有较为固定的基础设施支撑,服务信息适合以集中的方式组织起来。
另外,互联网中服务信息量相对来说不是特别大。
但是在物联网环境中,设备和服务非常多,从可扩展性的角度看不适合对所有服务集中管理,服务搜索时产生的延时也会比较大。
虽然某一邻近区域内设备和服务的数据量不是很大,但邻近网络往往是各种各样的自组织网络形式,如车载网络、传感器网络等。
这些网络往往没有固定的基础设施,拓扑结构动态变化,链路状态不稳定,无法提供一个稳定的服务注册机构来对区域内的服务集中管理。
目前,邻近网络之间的服务信息一般采用集中注册的方式,但是在邻近网络中,设备发布服务信息大多采用“推模式”,通过在邻近区域内广播自己的服务信息或者等待服务请求者的查找来完成服务信息发布,形成p2p的服务网络。
这种方式不需要稳定的网络基础设施,服务搜索延迟相对较低。
另外,由于整个过程只在邻近网络中进行,有利于信息的安全和隐私的保护。
在物联网中,如果想要构建可扩展的、智慧的系统,邻近网络内部和相互之间的设备互操作性是关键。
由于智能设备功能和产生的数据的多样性和异构性,不能够对智能设备的服务和数据进行统一规范和分类标识。
但是,两个智能设备之间需要先识别对方是何种设备和能够提供哪些服务,然后智能设备才能进一步的交互和完成功能的调用。
为了解决这些问题,将基于机器可解释的形式化描述的语义技术引入物联网中,为设备和服务添加语义信息,服务请求者可以通过语义检索来进行服务发现和选择。
本文基于Alljoyn框架来解决邻近网络中设备之间的连接和互操作等问题。
Alljoyn是一个开源的框架,支持多种通信协议和目前流行的各种系统平台。
它基于邻近网络,采用p2p来发布服务信息,支持对设备和服务进行描述,通过对描述分析可以了解对方的功能,完成设备间的互操作。
2Alljoyn框架
Alljoyn框架是一个开源的软件系统,为运行在不同设备上的分布式应用程序提供运行环境。
它负责处理在分布式异构系统中所面临的问题和移动网络的问题,从而让开发人员只需要关注应用程序的构建。
Alljoyn有几个关键的部分,分别是AlljoynBus,AlljoynRouter,Busattachment,BusInterface,Busobject。
AlljoynBus是对分布式系统中数据链路的抽象,为消息传递提供了更快速、更简单的方法。
应用程序在连上AlljoynBus之后就可以和其他的应用程序通信,底层的实现机制对应用程序来说是透明的。
AlljoynBus可以分成多个段,每段位于不同的设备上,Alljoyn负责管理每个段之间的连接。
实际上,每段都是一个AlljoynRouter,一般运行在一个独立的进程中,负责支持各种通信协议,包括蓝牙,wifi等。
如图所示,AlljoynRouter之间相互连接和转发信息,形成了AlljoynBus。
应用程序连接AlljoynBus时其实是连接AlljoynRouter,然后向AlljoynRouter请求转发数据,最后AlljoynRouter将数据转发至目的地。
应用程序通过BusAttachment连接AlljoynRouter,它封装了多种进程间通讯方式。
连接之后,AlljoynBus给每个Busattachment分配一个唯一的名字,用来区别不同的应用程序。
但这名字只是临时的,每次连接所得到的名字都不相同。
应用程序可以同时请求一个永久的well-knownname,这样其他的设备可以通过well-knownname来访问应用程序。
在Alljoyn中,应用程序以声明Businterface的形式向外部提供访问的接口。
Businterface包含Busmethods,Busproperties,Bussignals。
一般情况下Businterface的实现都是通过Busattachment中的BusObject来完成,Busobject代表着应用程序所提供的服务。
如图所示,Alljoyn提供远程代理ProxyBusObject来访问远程的Busobject,ProxyBusObject会负责相应的Busmethods等信息的传递。
well-knownname与BusObject的组合可以唯一标识服务信息。
应用程序在连接AlljoynBus之后,可以将服务信息发布给其他应用程序,也可以搜索其他应用程序的服务信息。
当一个设备靠近另一个设备时,由于它们是物理隔离的,不可能知道对方的信息,但是它们需要对方服务信息才能确定是否访问服务。
这就是服务信息发布和搜索需要完成的功能。
3智能设备间的连接
在邻近网络中,设备之间会相互连接,组成一个通信网络来进行数据的传输。
不同的设备组网方式对设备的硬件能力和通信协议等有着不同的要求。
目前,市场上的物联网设备采用的底层通信协议多种多样,每个通信协议在相应的领域广泛应用。
各个通信协议之间并没有出现相互统一的趋势,这意味着多种协议并存的现象在未来很长的一段时间内一直存在。
相同通信协议的设备通讯时直接建立连接即可,但是当周围有不同通信协议的设备存在时,两个设备建立连接需要进行协议的转换。
在物联网中,设备被赋予的计算能力和通信能力也是有差异的。
有些设备只是做简单的数据采集和数据上传工作,数据量小,对硬件的需求低。
有些设备需要进行活动或流程感知,并对数据进行分析,协同其他设备来反馈,这样对设备的硬件要求就比较高。
物联网由于其特性,存在一些动态的设备网络,在动态网络中,设备可以随时进入和离开网络,没有一个稳定的网关来对网络中的数据通信进行管理。
设备之间相互连接并转发数据,组成一个动态网络。
因此,设备组网时需要考虑设备的硬件能力、设备底层通信协议和网络动态性要求,选择合适的设备组网方式。
Alljoyn框架的底层数据传输是基于TCP/IP的,且通过IP组播的方式发布网络中设备的服务信息。
因此,在设备网络组建之后,需要考虑如何对网络进行配置,使得Alljoyn底层的数据传输能够进行。
目前,邻近网络中设备的组网方式有以下几种。
(1)直接连接。
两个设备之间直接建立连接,不需要中间节点来进行控制和转发。
这种方式简单、直接,适用于相同通信协议的设备,但是不同通信协议的设备不能建立连接。
两个设备之间建立连接时需要相互协商来完成地址分配、身份认证等功能,对设备通信组网方面的能力要求比较高。
例如设备之间通过Wi-FiDirect连接,GroupOwner需要具有DHCP的功能,能够对连接的GroupClient分配IP地址,GroupOwner和GroupClient属于同一个网段。
这种组网方式通常用于一些临时的、短距离的数据传输需求,安全性高。
(2)利用中心节点辅助连接。
周围设备都先连接到中心节点,中心节点接收数据和转发。
这种方式广泛应用于现在的互联网中,如在WiFi环境中提供接入点来让设备连接,进而组成一个局域网。
也可以让中心节点支持多种通信协议,拥有多种接入点,并对网络层地址和接口做映射。
当中心节点接收到数据时,根据数据包的网络层地址来选择相应的接口。
这样不同通信协议的设备可以利用中心节点进行协议转换,从而建立连接。
这种连接方式对设备的组网能力要求比较低,对中心节点的要求比较高。
这种方式目前广泛应用于智能家居中,因为家中往往会有多种协议的设备并存。
(3)自组网。
自组织网络是由一些具备路由转发功能的设备相互连接形成的多跳网络。
这种网络的节点可以随时离开和进入网络,从而导致网络结构变化、链路状态不稳定。
当节点离开网络时,原本经过该节点的链路就会断开,其他节点根据相应的协商机制重新选择路径。
当节点进入网络时,其他节点会自行检测,判断是否有更优的链路。
该组网方式常用于无中心节点、设备节点动态变化的环境中,适用于相同通信协议和不同通信协议的设备。
每个节点都可以接收和转发数据,并且节点之间相互沟通、协作,形成一个网络。
这种连接模式对网络中每个节点的通信能力要求比较高。
这种网络因为不需要固定的网络设施,因而广泛应用于军事领域和救灾中。
在物联网中,自组织网络广泛应用于无线传感器网络中。
传感器一般使用无线技术来进行数据传输,且一般发射功率小。
因此传感器之间采用多跳方式进行连接,相互协作完成各种应用任务。
Alljoyn对这三种方式都提供了支持,在Alljoyn应用程序通信时,只需要将数据交给底层的网络。
数据的传输由网络层和传输层负责,与Alljoyn无关。
Alljoyn支持多种底层通信协议,并对底层协议进行抽象,向上层协议提供统一的接口。
不管采用哪种组网方式,对Alljoyn来说都是相同的。
Alljoyn利用alljoynrouter对底层网络进行抽象,让其对上层应用透明,并且从alljoynrouter之间的相互通信抽象出alljoynbus。
从开发人员的角度看,应用程序都是连接到alljoynbus上,应用程序之间数据的传输都相当于在一个虚拟总线上进行。
当应用程序进入或退出alljoynbus时,都会向alljoynbus发出通知,然后alljoynbus将该事件通知给其他的应用程序,其他应用程序会执行进行相应的动作。
4智能设备间的互操作
物联网是由与人们生活息息相关的智能设备按照一定的通信协议相互连接组成的。
它们产生的数据和服务多种多样,反映了人们生活的方方面面。
然而,不同设备产生和收集到的数据是多模式的和不同特性的。
数据和服务的异构性,使得物联网设备之间的互操作成为一个挑战。
为了解决这个问题,近年来的研究逐步将语义web技术引入物联网中,使得数据和服务以统一的模式进行描述,便于设备之间的识别和数据的整合与共享。
通过数据的语义标注能够提供机器可解析的数据描述,包括数据的表示对象、数据的起源、与周边环境的关系、提供者的信息以及质量、技术等属性信息,有利于物联网信息的自动化处理和交互。
基于语义技术,在领域专家的指导下构建相关领域的本体,然后参照已建立的本体对物联网中的数据和资源等进行标注。
需要对设备提供的服务进行细化的语义描述,能够反映设备所处的环境等信息。
同时,还需要对用户的需求进行语义化处理,通过本体以及Peri网理论等方法来表示用户需求。
然后,可以通过计算语义相似度等方法对服务和用户需求进行服务匹配和选择。
如果服务与需求能够匹配,则设备之间会建立连接,完成功能的调用。
Alljoyn框架提供Aboutinterface来描述设备信息、设备提供的服务、以及其他相关的信息。
About是一个通用的Businterface,应用程序可以通过它来描述自己,也可以访问其他应用程序的Aboutinterface来获取对方信息。
在设备的服务信息发布和搜索环节中,当收到的服务信息中含有Aboutinterface信息时,可以访问该接口来获取对方的信息。
我们可以在Aboutinterface中采用语义化的形式来表达设备和设备提供的服务,其他设备获取这些信息之后,依据一些规则推理来识别设备,并可以根据自己的需求进行服务匹配与选择。
如果设备与自己的需求符号,则建立连接,访问相应的功能。
5总结
本文首先介绍了Alljoyn框架,说明了Alljoyn对底层通信的抽象和Alljoyn系统中设备服务的访问方式。
然后介绍了邻近网络中设备的几种组网方式,并说明了Alljoyn能够适应多种网络结构。
最后介绍了语义技术在物联网中的应用,并将语义技术与Alljoyn相结合。
参考文献
[1]刘莉,窦轶,戴庭,黄海平,赵生伟.基于Jini的物联网服务框架[J].信息通信,2011.
[2]管健.基于XML和本体的物联网数据交换标准体系研究[J].物联网技术,2012.
[3]黄涛,褚淑杰.基于红外通信的智能家居系统[J].嵌入式应用,2004.
[4]杜晓明,陈岩.无线传感器网络研究现状与应用[J].北京工商大学学报(自然科学版),2008.
[5]王保云.物联网技术研究综述[J].电子测量与仪器学报,2009.
[6]袁凌云,王兴超.语义技术在物联网中的应用研究综述[J].计算机科学,2014.
[7]黄映辉,李冠宇.语义物联网:
物联网内在矛盾之对策[J].计算机应用研究,2010.
[8]陈海明,崔莉,谢开.物联网体系结构与实现方法的比较研究[J].计算机学报,2013.