基于REST的泛在网络资源服务架构设计
2017-05-16张前进
张前进
(安徽国防科技职业学院 信息工程系, 安徽 六安 237011)
基于REST的泛在网络资源服务架构设计
张前进
(安徽国防科技职业学院 信息工程系, 安徽 六安 237011)
针对泛在网中泛在资源的异构性、海量性和动态性等问题,分析了REST架构的关键原则,并基于REST架构原则构建了泛在网资源服务架构与资源服务管理平台;分析了泛在网资源服务管理平台资源服务的流程,给出了泛在网中泛在资源的描述方法和基于REST的接口定义。
泛在网; REST架构; 资源管理; 资源描述
泛在网是以无所不包、无所不能、无所不在为基本特征的网络,以实现在任何时间、任何点、任何人、任何物都能顺畅地通信为目标[1],即广泛存在的网络。泛在网以传感网技术为基础,融合互联网和通信网实现物与物、物与人、人与人之间的互联互通。泛在网中包含各种M2M(Machine to Machine)终端、传感器、RFID等异构的感知设备。一方面这些异构资源本身不具有计算和相互间的通信能力,无法接入到现有的基础网络以及进行复杂的计算;另一方面,泛在网资源具有海量和动态性。本文从泛在网资源访问的Web服务出发,基于REST(Representational State Transfer)架构,针对上述泛在网资源存在的问题,对泛在网的资源服务框架进行了研究与设计。
1 REST架构关键原则
REST概念最早由Roy Fielding在其博士论文中提出,它是一个以网络为基础,具有功能强、性能好、适宜通信的应用软件架构。REST强调组件交互的可伸缩性、接口的通用性、组件的独立部署性,以及用来减少交互延迟、增强安全性、封装遗留系统的中间组件[2]。REST定义了一组约束和规则,用来指导正确使用Web标准。基于REST架构设计的Web应用,主要包含以下原则:
(1)资源唯一性
在Web中,资源包含的范围很广,既可以包含文本、图像、视频等数字化的文档,也可以是接入互联网的冰箱、电视等实体资源。如何保证网络中资源能够被正确访问,就需要有一个能够被唯一识别的标识。统一资源标识符(Uniform Resource Identifier,或URI)是一个用于标识某一互联网资源名称的字符串[3]。基于URI标识的资源允许用户通过特定的协议进行信息交互,同时资源访问的场景也更加广泛,既适用于基于浏览器的Web应用,也适用于M2M通信。
(2)超媒体作为应用状态的引擎
超媒体不再是传统意义上讲的媒体资源,而是基于第一个原则构建的具有统一标识的“链接”资源。超媒体被当作应用状态引擎主要有两方面的优势:一方面,基于URI标准的资源描述规范可以使Web上的所有资源互联互通;另一方面,用户可以通过URI链接将应用从一个状态向另一个状态转变。
(3)资源访问接口统一性
前两个原则从资源的角度对资源描述的唯一性、可访问性以及状态可改变性进行了定义与约束。“标准接口”从应用的角度对接收到的资源信息如何处理了统一定义,即定义一套标准的处理方法。在HTTP中应用处理的标准方法包含:PUT、DELETE、GET、POST等。标准接口的定义实现了客户端应用程序与资源的相互协作。
(4)无状态通信
REST本身包含无状态特性(statelessness),但并不是开放的功能应用不能有状态。由于大量的客户端交互会影响服务器的内存可用空间,为了保证应用的可伸缩性,服务器端不能保存客户端除了单次请求之外的,任何与之通信的通信状态。因此,REST要求状态要么放在资源状态中,要么保存在客户端上。无状态通信的另一个优势就是服务器的变化对客户端是不可见的。对于同一台客户端的两次连续的请求,并不依赖于同一台服务器。
2 基于REST的泛在网资源服务架构
2.1 基于REST的泛在网资源服务架构设计
2.1.1 泛在网
泛在网由感知层、接入层、泛在网关、NGN(Next Generation Network)层、应用层组成。与传统的基础网络架构相比,泛在网增加了感知层。
(1)感知层:感知层由传感器、M2M终端、摄像头、RFID等感知设备组成,负责环境数据的采集与识别。感知层数据具有异构性、多源性、海量性的特点。
(2)接入层:接入网包括各种无线接入、有线接入、卫星等技术。实现感知层数据的传输接入。
(3)泛在网关:泛在网关负责将多种接入手段整合起来,统一将感知层接入到网络层。它既可以满足局部区域内短距离通信的接入需求,完成与核心网络的接入,同时还可以实现数据的转发、信令的交换以及编解码等功能[4]。
(4)NGN层:NGN层是泛在网络的核心网络层。NGN是一个分组网络,以软交换为中心,利用多种带宽和具有QoS能力的传送技术,实现业务功能与底层传送技术的分离,形成统一的网络业务与运营管理平台。实现物与物、人与物、人与人的无障碍通信。
(5)应用层:应用层直接面对用户,为用户提供不受时间、地点限制,以情景智能为驱动的智能应用与服务。
2.1.2 基于REST的泛在网服务架构
图1 基于REST的泛 在网服务架构
由上述可知,基于REST架构的应用与服务强调组件交互的可伸缩性、接口的通用性。基于REST架构原则设计的泛在网络服务架构可以很好的解决感知层设备的异构性,为用户提供具有设备无关性、开放性的统一数据服务。其架构的核心是在泛在网络架构的基础上引入资源服务管理平台,如图1所示。
2.2 基于REST的资源服务管理平台
2.2.1 资源服务管理平台组成
泛在物联网的开放性特点,一方面使得传感层的设备接入与退出具有极大的灵活性,另一方面随着应用、服务、中间件、传感设备的部署,使得以传统Web应用方案构建的Web应用系统的复杂性和维护成本呈线性增加。在泛在网中引入基于REST架构的资源访问Web服务后,通过对应用服务、泛在设备进行统一资源描述,可有效解决泛在网中资源异构问题,同时也为服务及设备的部署与退出提供技术解决方案。资源服务管理平台由资源搜索、资源注册引擎、资源库、资源管理四部分组成,如图2所示。
图2 资源服务管理平台
资源库是资源管理平台的核心,主要有实体资源库、服务资源库、数据资源库组成;资源注册引擎负责对发现的资源在资源库中进行注册;资源搜索引擎为用户提供资源搜索与发现服务,是资源服务管理平台对外服务的接口;资源管理负责资源状态管理、资源组织、资源发现、资源描述,即为资源提供有效管理手段。
2.2.2 泛在网资源服务管理平台信息服务流程
资源服务管理平台在基于泛在网的Web应用中起着至关重要的作用,记录着整个应用系统中的资源信息,基于REST架构的泛在网信息服务流程如图3所示。
(1)首先资源访问者访问资源服务管理平台中的资源,如果资源状态为可以直接访问,则由平台直接将资源返回给资源访问者。
(2)如果泛在资源状态为不能通过平台直接访问,但可以直接访问泛在资源,则按照平台中记录的资源信息直接访问资源。
图3 资源服务流程
(3)如果泛在资源状态为不能通过平台直接访问,也不可以直接访问泛在资源,则按照平台中记录的资源网关信息访问网关,由网关访问泛在资源后,再通过网关将资源返回给资源访问者。
从基于REST的泛在网络服务架构整体来看,资源管理服务平台是整个泛在网络Web应用系统的核心伺服系统[5],是整个系统正常运行的机制保障。同时,为感知层提供资源注册,为应用层提供资源搜索与管理等服务。
2.3 泛在资源描述方法与接口定义
本文从生态节能性方面对驾驶员驾驶行为进行评价,通过对车辆能耗影响因素的分析,借鉴国内外在生态驾驶、驾驶行为建议等方面的研究[5-7],结合对车辆从业人员和驾驶员的调研结果,从采集的基础数据中,提取出4类影响车辆能源消耗的4类要素:急加速、急减速、长时超速、长时怠速. 本文将四类影响因素的出现次数作为评价输入,归纳各要素与生态驾驶行为评价之间的关系.
2.3.1 泛在资源描述方法
在REST架构的设计原则中,泛在网中任何事物均视为资源,既可以是感知设备采集的环境信息的数据值,也可以是感知设备本身在泛在网中的配置信息,还可以是智能开关的开关状态[6]。这些泛在资源使用URI进行资源标识。不同于关系数据,使用URI标识的泛在资源本身不具有联系,需要使用类似自然语言的陈述性语句来存储Web数据。资源描述框架(Resource Description Framework,RDF)是一种用于描述Web资源的标记语言,可以为泛在资源赋予相应的语义描述,其使用XML语言将元数据描述成为数据模型。主(Subject)-谓(Predicate)-宾(Object)三元组是RDF数据模型的基本表示单元。例如下面的一个RDF的XML代码:
xmlns:dc="http://test.com/dc/property/1.1/">
上述XML代码对应的三元组如表1所示。
表1 RDF三元组
资源访问者首先对HTTP URI进行请求,对于语义浏览器来说,其HTTP请求头信息为“application/rdf+xml”,返回值包含两类资源:文档和数据。因此基于RDF的泛在资源描述就构建了两种网络,一种是文档网,供人阅读;一种是数据网,供机器阅读[7]。
2.3.2 基于REST的接口定义
在对泛在资源进行RDF描述后,还需定义操作泛在资源的方法接口。泛在网中对资源的操作主要包含:查询、注册、更新、删除等4种形式,分别对应HTTP的4种操作GET、POST、PUT、DELETE。例如:获取一个视频设备资源的配置信息可以使用HTTP的GET方法,更新视频资源的配置信息则可以使用HTTP的PUT方法。
按照资源的类型来分,泛在资源可以分为数据资源和设备资源两大类。针对不同类型的资源设计REST接口如表2所示。
表2 资源操作REST接口
泛在资源的操作中,资源的“删除”并不是真正意义上的删除,只是资源的状态由在线变为删除,因此删除对应的HTTP的操作方法为PUT。例如,设备配置信息中state(0表示非活跃;1表示活跃)用来表示设备的活跃状态,如果要关闭设备则可以将其状态设置为0。实现如下所示:
HTTP操作方法:PUT;
URI:http://example.com/device/control/08/state;
state值为0;
通过访问上述URI实现将8号设备关闭。
3 结束语
泛在物联网是未来物联网的发展趋势与研究热点。实现泛在物联网中物与物、人与物、人与人无障碍通信最大的困难是设备、数据、协议的异构。REST架构的松耦合、易交互的特性可以很好的解决物联网Web应用系统高复杂性与高维护成本及资源异构的问题。本文基于REST架构设计的泛在物联环境下的资源服务架构,为构建物联网服务支撑平台提供理论与实践参考。
[1] 张春红,裘晓峰,夏海伦,等.物联网技术与应用[M].北京:人民邮电出版社,2011.
[2] FIELDING R T. Architectural Styles and the Design of Network-based Software Architectures[D]. California:University of California,2000.
[3] BERNERS-LEE T,FIELDING R T,MASINTER L. Uniform Resource Identifier(URI):Generic Syntax[J]. Staff.kmutt.ac.th.,2005(4):84-87.
[4] 陆晓钧.泛在网网关中间件架构设计[J].电信网技术,2016(7):87-94.
[5] 朱红.基于REST架构的泛在物联通信技术研究[J].数字通信技术,2015(3):38-41.
[6] 程冬梅,王瑞聪,刘燕,等.基于REST架构风格的物联网服务平台研发[J].计算机工程与应用,2012,48(14):74-78.
[7] 程相,孙继银,李琳琳,等.基于RDF的军事网格资源描述方法研究[J].计算机技术与发展,2011,21(10):129-132.
[责任编辑:谢 平]
Ubiquitous network resource service architecture design based on REST
ZHANG Qian-jin
(Department of Information Engineering, Anhui Vocational College of Defense Technology,Lu’an 237011, China)
Aiming at the problem of the heterogeneous, massive and dynamic resources in ubiquitous network, we have analyzed the key principles of REST architecture, and built an ubiquitous network resource service architecture and resource service management platform; The specific process is also analyzed, the description method is derived and the interface based on REST is also defined.
ubiquitous network; REST architecture; resource management; resource description
2016-12-07
2017-01-13
高校优秀青年人才支持计划重点项目(gxyqZD2017100);高校自然科学研究重点项目(KJ2017A782);安徽省质量工程项目——卓越互联网软件开发技能型人才培养计划(2016zjjh012)
张前进(1982—),男,河南省商丘市人,安徽国防科技职业学院讲师,硕士,主要研究方向为计算机应用技术。
1673-2944(2017)02-0060-04
TP393.02
A