一种可穿戴设备扩展架构的设计
2016-12-29吴迪
吴 迪
(黎明职业大学 信息与电子工程学院,福建 泉州 362000)
一种可穿戴设备扩展架构的设计
吴 迪
(黎明职业大学 信息与电子工程学院,福建 泉州 362000)
针对目前可穿戴设备存在的硬件模块少、存储容量小等局限性,提出了一种以可穿戴设备为中心的可穿戴设备扩展架构WDEA,使得可穿戴设备在保持便携性的基础上,使用无线物联网技术对功能进行扩展.文中按步骤详细论述了设计方案中涉及到的主要技术问题,包括借鉴OAuth2.0有限授权解决跨设备访问云端空间的授权问题、可穿戴设备界面显示方法和访问云端方法.最后以实际应用场景为例说明上述设计方案的可行性和所达到的实际效果.
可穿戴设备;物联网;扩展架构;OAuth2.0;RESTful;Alloyn协议
0 引言
随着软硬件技术的不断发展,市场上已出现了许多可穿戴设备.如Google的Google Glass,Apple的Apple Watch和Fitbit智能手环等.由于可穿戴设备具有体积小、便于携带、续航时间长等优点,深受人们的喜爱.但是可穿戴设备存在局限性,主要存在以下几个缺点:1)硬件功能模块较少,如缺少摄像头之类的外部感知模块;2)存储容量小,无法保存大量数据.这给人们的使用带来了不便,这也是可穿戴设备无法代替手机的原因.这些功能的缺失并非技术原因,主要是为了在便携性、省电和功能性方面寻找一个平衡点.未来智能可穿戴设备的功耗进一步下降或者小型化程度达到一个新的临界点的时候,那么厂家将会在可穿戴设备中集成更多的功能.最近ARM架构下的图形处理器Mali-470 GPU就实现了在保持性能的同时将能耗降低了几乎一半.但受技术发展速度的制约,在近期内可穿戴设备要代替智能手机还不太可能.但是若能在保持硬件模块没有明显增加的前提下扩展可穿戴设备的功能,维持原有的低功耗和便携性,将使用户在一定程度上减少对手机的依赖.
1 问题及解决方案
1.1 问题分析
目前可穿戴设备的研究很热门,但研究的主要是应用方面,如利用智能手表、手环进行健康、运动的监测,也有涉及可穿戴设备的协同问题,如Apple Watch,可实现同iPhone的蓝牙同步;或开发支持可穿戴设备间数据及服务协同的移动中间件,屏蔽了可穿戴设备的异构性,将设备的数据和服务进行汇聚,从而达到设备协同的目的.但这些都是以智能手机为中心,智能手表、手环等可穿戴设备为辅,如果脱离了智能手机,可穿戴设备将缺失很多功能,如不能连接Internet,不能保存数据等.还有一种思路是以某一应用为中心,例如QQ物联.该方案的设计思想是以QQ应用为中心,制定一套协议标准,硬件开发商可以使用QQ物联的SDK,方便地开发出接入QQ物联协议的设备,从而实现不同品牌间设备的互联互通.但由于目前运行QQ应用的主要移动载体是智能手机,所以仍然还是以智能手机为中心的架构设计思想.以智能手机或智能硬件(如Google 的 Nest)为中心的架构使得用户无法单独使用可穿戴设备,可穿戴设备仅仅是作为数据采集的终端而已,也是可穿戴设备的发展目前遇到瓶颈的原因之一.
1.2 解决方案
因此针对上述问题,本文提出了一种以可穿戴设备为中心的设计思想和架构Wearable Device Extensible Architecture,以下简称WDEA,即可穿戴设备扩展架构.与现有的以智能手机为中心的架构不同,WDEA的架构设计完全是以可穿戴设备为中心,通过无线方式对可穿戴设备的功能进行扩展,即以物联网方式克服现有可穿戴设备存储容量小,无法保存大量数据的缺点.这里做一下名称定义,WDEA架构中包括3个对象,把可穿戴设备称为Client端,智能手机等外部设备称为Server端以及存储数据的云端,WDEA架构设计及主要关联关系如图1所示.
图1 WDEA架构设计及主要关联关系
2 授权问题
WDEA架构的授权机制主要解决两个问题:身份验证和权限控制.WDEA架构是以可穿戴设备为主,在Server端完成数据获取后,所上传的云端空间是由可穿戴设备的拥有方管理的.因此Server端后续的云端操作需要获得可穿戴设备的授权,而Server端如果向Client端索取账号密码,则权利要求过大,容易造成安全问题.因此WDEA架构的授权机制采用了类似OAuth2.0的有限授权或者称为开放授权(Open Authorization),并进行了一些改动,以支持限时、细粒度的授权,且不会泄露账号密码.所谓的OAuth2.0是从OAuth1发展来的并做了简化,其允许用户提供一个令牌Access Token,而不是用户名和密码来访问他们存放在特定服务提供者的数据.每一个令牌Access Token授权一个特定的网站或应用在特定的时段,例如接下来的1小时内访问特定的资源.WDEA架构中的Client端支持http协议,在获取Access Token后传递给Server端,Server端调用云端的Open API,实现相关操作.获取Access Token的同时还应该附带相关参数,包括Access Token的有效期expires,以秒为单位;Access Token最终的访问范围scope,即用户实际授予的权限列表.以访问百度平台为例,举例说明如下,这里授权模式采用类似Implicit Grant模式即隐式模式,因为该方式不需要客户端服务器.用户提交信息到取 token页面,为了获取Access Token,Client应用需要发送请求到百度OAuth2.0授权服务的"http://openapi.baidu.com/oauth/2.0/authorize"地址上,请求数据包格式需带上若干必须参数:
·client_id:注册应用时获得的API Key.
·response_type:此值固定为"token".
·redirect_uri:授权后要回调的URI,即接受Access Token的URI.如果用户在授权过程中取消授权,会回调该URI,并在URI末尾附上error=access_denied参数.对于无Web Server的应用,其值可以是"oob",授权后会回调OAuth提供的一个默认页面:"http://openapi.baidu.com/oauth/2.0/login_success".响应数据包格式中加入如下参数:
·access_token:要获取的Access Token;
·expires_in:Access Token的有效期,以秒为单位;
·scope:Access Token最终的访问范围,即用户实际授予的权限列表.
·state:如果请求获取Access Token时带有state参数,则将该参数原样返回.
·session_key:基于http调用Open API时所需要的Session Key,其有效期与Access Token一致;
·session_secret:基于http调用Open API时计算参数签名用的签名密钥.
返回的json格式数据包实例如下:
{
"access_token":"2YotnFZFEjr1zCsicMWpAA",
"token_type":"example",
"expires_in":3600,
"refresh_token":"tGzv3JOkF0XG5Qx2TlKWIA",
"example_parameter":"example_value"
}
Client端从上述返回的响应数据包中获取到Access Token.WDEA架构在OAuth2.0的基础上,增加了对http的支持,用获取Access Token时所返回的session_key和session_secret参数调用百度的Open API,在访问速度上有所提升.
实际应用中一般不会将Access Token有效期设置的过长,如果外部设备因延时等待等原因造成任务在Access Token有效期内未完成,如果用户没有终止操作,系统可用Refresh Token重新刷新获取新的Access Token和Refresh Token,如此反复操作来实现操作的延续直至任务完成或用户主动停止.Refresh Token包含在上述返回的json数据包中.不同平台的实现可能不同,如Implicit Grant方式获取Access Token时,平台一般不会返回Refresh Token,但WDEA架构并不完全遵循标准OAuth2.0,而是基于其设计思想按需求进行一定的修改,在该问题上可采取其他的一些技术手段来完成延长操作时间的任务.此外WDEA架构的设计也不涉及OAuth2.0中客户端将用户导向认证服务器的步骤,而是用户使用在可穿戴设备上已经绑定的账号信息从云端获取Access Token.采用Implicit Grant授权模式在安全性方面没有授权码模式(authorization code)那么严密和完备,所以要考虑采用HTTPS协议作为传输信道,以确保Access Token不会泄露.
3 可穿戴设备操作界面
连接成功后,可穿戴设备首先获取到外部设备列表,然后根据需要请求查询某一外部设备开放接口,获取到该外部设备的资源列表信息回显给发起请求的可穿戴设备,并获得相应的授权.WDEA架构采取轻量化设计,数据的传输格式采用json格式.外部设备列表和资源列表数据都将以json格式返回给可穿戴设备.可穿戴设备内置Web浏览器,可对json数据进行解析,显示为HTML5界面,然后在发送指令页面将Web API命令跟HTML5中的控制按钮进行绑定.当用户点击相关按钮,将触发相关命令.在可穿戴设备的液晶屏上显示HTML5界面,可以采用jQuery的模板技术,如jquery.tmpl.js,自动生成匹配页面[10],例如渲染外部设备列表页面所需的json数据如下:
//device表示设备名,type表示型号
var devices=[ ] {device:"H30-T10",type:"手机"},
{device:"KIW-T0H",type:"手机"},
{device:"HP260M",type:"摄像机"}
];
var markup="";
//编译上述markup段为模板
$.template("deviceTemplate",markup);
//用设备列表devices渲染模板
$.tmpl("deviceTemplate",movies).appendTo("# deviceList");
这样在可穿戴设备上页面流程图如图2所示,点击外部设备列表页面的设备项后,界面跳转到资源列表页面,为便于用户操作,布局为陈列馆式也可采用九宫格式.如图2所示,点击外部设备列表页第一项后呈现资源列表页面,点击摄像头按钮跳转到命令控制页面.
4 连接云端
以百度开放平台为例,第三方应用开发者在获得百度的授权后,根据百度提供的REST API,可以获取到百度用户的用户资料、好友关系等基本信息,以及今后百度开放的其他操作和数据.HTTP 请求方法在RESTful Web服务中对资源的典型操作包括:GET,PUT,POST,DELETE[11],上传数据是POST操作,其属于非安全和非幂等的,虽然目前百度还没有开放相关API,但百度和其他平台未来会增加新的Web API以满足用户的需求.目前百度云允许以GET或POST方式发送请求包,来调用云端RESTful Web API,并根据响应结果值来判断操作结果.
图2 WDEA架构页面流程图
5 应用场景
接下来举例说明WDEA架构的一些应用场景.
场景1 用户佩戴智能手环使用健康检测设备进行健康体检.其中,这里的健康检测设备除具备常规的健康监测功能外,还具备WDEA架构中Server端的功能要素.用户使用该健康检测设备完成体检后,然后通过智能手环轻触该健康检测设备,二者都支持NFC[12],轻触完成配对.配对成功后,健康检测设备按约定协议开放查询接口,由医护人员在健康检测设备操作设置,并返回可用数据列表给智能手环,数据列表包括健康检测数据等.
此时智能手环上的液晶屏根据约定协议动态生成操作菜单,接下来用户操作智能手环上的操作菜单,以无线方式发送上传的指令到健康检测设备,将智能手环所绑定的云端账号的限制性权限转换成Access Token,通过HTTPS信道授权给健康检测设备,即生成临时访问令牌发送给该健康检测设备.
健康检测设备接收到上述指令,根据临时访问令牌,将健康检测数据通过Internet传送到与智能手环绑定的云端账号对应的云端存储空间保存.过后用户可以通过手机或电脑等设备,登录云端账号在云端打开和查看健康检测数据.
场景2 用户佩戴有智能手环参加某一重要会议,需要将会议录像拷贝下来.虽然用户用智能手机能够现场录像,但手持拍摄会影响开会的质量.此时,可以在会议现场设置一台摄像机,该摄像机除具备常规的摄像功能外,还具备WDEA架构中Server端的功能要素,可向现场佩戴智能手环的人员推送消息.其中,推送消息指的是当智能手环启动连接协议时,摄像机告知自身的状态,并提供连接许可.因摄像机仅供参加会议的人员佩戴的智能手环连接使用,不宜让无关人员也获取视频,因此考虑到系统的完整性,需补充设计认证约束机制.用户启动智能手环上的连接协议如Alloyn协议[13],利用Alloyn协议开发出的应用程序,可以方便地搜索附近各品牌、类别、系统的设备,而无需借助云端进行连接.发现该摄像机后,发起连接请求,连接成功后,摄像机按约定协议开放查询接口,返回可用资源列表给智能手环,资源列表包括摄像头功能接口等.
若现场有多个智能手环或其他类型的可穿戴设备发起连接请求,摄像机生成一个请求队列,用来记录不同用户的请求详情.智能手环根据约定协议动态生成操作菜单,接下来用户操作智能手环上的操作菜单,以无线方式发送录制视频的指令到摄像机,将智能手环所绑定的云端账号的权限有限度的授权给摄像机,即生成临时访问令牌发送给摄像机.
随后,摄像机会产生连接会话,接收指令和临时访问令牌,并缓存在本地;此时摄像机会生成一个任务队列,记录不同用户的连接会话.摄像机根据指令录制完视频后,按任务队列顺序,使用临时访问令牌自动将视频的数据,通过Internet传送到与智能手环绑定的云端账号对应的云端存储空间保存.操作完成后,临时访问令牌自动失效.用户也可以中途发送取消或完成指令给摄像机,摄像机根据连接会话ID,进行相应的操作,并将该用户的操作从任务队列中删除.后续用户从云端获取数据的操作跟场景1类似.
6 结语
WDEA架构的总体设计思想是对可穿戴设备的功能进行扩展,本质上采用了物物互联的物联网方式,与邻近资源通信并发现和利用资源,使可穿戴设备可以具备手机的部分功能甚至有些方面要好于手机,使得用户可以减少对手机的依赖.WDEA架构的运行包括以下几个主要步骤[14]:1)可穿戴设备通过无线方式搜索、发现及连接外部设备;2)连接成功后,外部设备开放被查询接口,提供本地设备的资源列表并授权给可穿戴设备;3)可穿戴设备访问外部设备的数据感知接口;4)可穿戴设备发送指令到外部设备,采用类似OAuth2.0方式将其绑定的云端账号权限有限度地授权给外部设备,外部设备执行可穿戴设备发送的指令并将获取到的信息传送到云端空间保存.
WDEA架构很适合在现有技术条件下,对可穿戴设备进行功能的扩展,增加其应用范围.但由于涉及到跨设备授权及访问云端等安全敏感问题,为能将该设计方案变为最终实际可应用产品,后续的研究需要在安全控制方面进一步完善.
[1] 耿 怡,安 晖,李 扬,等.可穿戴设备发展现状和前景探析[J].电子科学技术,2014,1(2):238-245
[2] 张瑞吟.可穿戴式电子设备或将取代智能手机部分功能.集成电路应用,2013,11(8):17
[3] 丁 杨,李石坚,叶志强,等.Scudware Mobil:支持可穿戴设备数据及服务协同的移动中间件.计算机科学,2014,41(10):58
[4] 腾讯开发平台.QQ物联平台简介概述[EB/OL].http://iot.open.qq.com/introduction,2015-10-20
[5] 时子庆,刘金兰,谭晓华.基于OAuth2.0认证授权技术.计算机系统应用,2012,21(3):262-263
[6] 百度开发者中心.Implicit Grant授权[EB/OL].[2015].http://developer.baidu.com/wiki/index.php?title=docs/oauth/implicit,2015-08-18
[7] IETF Tools.The oAuth 2.0 authorization framework[EB/OL].http://tools.ietf.org/html/rfc6749,2012-10-12
[8] 王焕孝,顾纯祥.开放授权协议OAuth2.0的安全性形式化分析.信息工程大学学报,2014,15(2):141-147
[9] CROCKFORD D.The application/json media type for javascript object notation(json)[EB/OL].http://tools.ietf.org/html/rfc4627,2014-06-13
[10] JQUERY team.BorisMoore/jquery-tmpl[EB/OL].https://github.com/BorisMoore/jquery-tmpl,2014-03-27
[11] 潘 冰.面向资源的RESTful Web应用研究.微计算机应用,2010,31(7):38-43
[12] 马 捷,鄂金龙.用NFC技术快速建立蓝牙安全连接问题研究.计算机应用与软件,2013,30(3):207-212
[13] ALLSEENALLIANCE.org.AllJoyn for developer[EB/OL].https://allseenalliance.org/opportunities/developers,2014-08-06
[14] 吴 迪.一种穿戴式设备的扩展方法及装置:中国,201510769241.7.2015-11-12
A Design of Wearable Device Extension Architecture
WU Di
(College of Information and Electronics Engineering,Liming Vocational University,Quanzhou 362000, China)
For the current short supply of hardware modules and the limited storage capacity, the paper proposes a device-centered wearable device extensible architecture, abbreviated as WDEA. Therefore the wearable device can extend the function with the wireless things technology on the basis of maintaining portability. The paper discusses the main technical problems involved in the design program, including using the OAuth2.0 limited authorization for reference to solve the authorization of accessing the cloud with cross-devices, the method of the UI display and accessing cloud. At last, the paper takes the practical scene as an example to state the above-mentioned feasibility of the design and its practical effect.
wearable device;internet of things;extension architecture;OAuth2.0;RESTful;alloyn protocol
2016-03-24
黎明职业大学2015年规划项目(LZ2015113).
吴 迪(1976-),男,福建泉州人,硕士,黎明职业大学信息与电子工程学院副教授,主要从事移动互联技术研究.
1672-2027(2016)02-0051-05
TP311
A