一种支持可穿戴设备间数据与服务的协同方法
技术领域
本发明属于智能终端服务技术领域,具体涉及一种支持可穿戴设备间数据与服务的协同方法。
背景技术
随着软件技术和硬件技术的发展,可穿戴设备在最近几年发展迅速,已经从试验阶段进入了商用阶段。如今可穿戴设备种类繁多,在用途上,已经涉及到了个人健康、现实增强和智能交互等多个领域。这些可穿戴设备将计算能力、通信能力等与人们的日常生活紧密连接在一起,方便了人们的生活。同时,智能手机的性能和功能更加强大,其计算能力,联网能力和存储能力已经接近传统PC,智能手机成为了人们生活的计算中心和通信中心。如今的可穿戴设备都提供了蓝牙、WIFI等数据通信方式,通过这些通信方式我们可以将可穿戴设备连接到智能手机上,通过智能手机上的应用,可以可视化的显示和管理可穿戴设备采集的数据。智能手机已经有能力作为访问可穿戴设备数据和服务的一个媒介。
目前,可穿戴设备大都独立工作,提供某一方面的服务,可穿戴设备之间很少有联系。然而可穿戴设备独立工作,提供服务的能力毕竟有限,如果能把不同的可穿戴设备协同起来,就可以提供更多更优质的服务。如何使不同的可穿戴设备协同工作,提供更好的服务是一个急需解决的问题。当前已经有一些研究者提出了如何使不同设备协同工作的方案:Suranga Nanayakkara等人设计的EyeRing平台运行于一个带摄像头的智能指环之上,可以使智能指环和其他设备协同工作,根据指向不同的物体,触发其它设备进行不同的工作;Kathrin Probst等人设计的Active Office平台专注于平台专注于办公室内各设备任务的协同以及无缝的迁移,该平台将办公室内的工作分成传统desk、站立desk和whiteboard三类,办公室内的设备按照这三类划分,实现了一个任务在这三类设备上的协同和无缝地迁移。这些不同设备协同工作的方案大都只专注于某一个领域或场景的设备协同,而不能适用于其它领域或场景。
可穿戴设备间数据与服务的协同需要服务的开放与授权,公开号为CN102196012的中国专利公开了一种服务开放的方法,该方法接收来自第三方应用的服务请求,根据请求信息获取请求的服务信息,通过服务授权开放给第三方应用;而公开号为CN103532982A的中国专利公开了一种基于可穿戴设备的服务授权方法,该方法为每个请求服务的第三方应用生成对应的唯一特征码,并将该特征码发送到可穿戴设备,接收可穿戴设备根据所述的唯一特征码所生成并发送的授权消息,对所述的第三方应用进行授权。这些方案关注于服务的开放与授权方面,并没有涉及可穿戴设备协同的问题。
发明内容
针对现有技术所存在的上述技术问题,本发明提供了一种支持可穿戴设备间数据与服务的协同方法,通过使用智能终端汇聚可穿戴设备上的数据与服务并且依靠智能终端的计算和处理能力实现可穿戴设备间数据与服务的协同。
一种支持可穿戴设备间数据与服务的协同方法,如下:
由智能终端对可穿戴设备提供的数据与服务统一以服务的形式进行封装,并建立统一的调用接口,使得可穿戴设备的数据与服务统一汇集到智能终端上;
可穿戴设备提供的服务在智能终端上安装或更新后,智能终端将这些服务在服务列表中注册为本地服务;
智能终端搜索附近其他用户用于汇集可穿戴设备间数据与服务的智能终端,并读取其他用户智能终端上的服务列表并将该服务列表上的服务在本地服务列表上注册为远程服务;
在智能终端上运行的应用通过统一的调用接口调用智能终端所汇集的本地服务或远程服务。
所述的智能终端根据可穿戴设备所提供数据与服务的不同,将数据与服务分别抽象归类为数据服务和应用服务。
所述的数据服务是以可穿戴设备作为数据的提供者,将数据获取的接口暴露成服务;所述的应用服务不以可穿戴设备提供数据作为服务,而是以可穿戴设备的计算能力和反馈能力来作为服务,其分为有参数类应用服务和无参数类应用服务。
无参数类应用服务没有服务响应,如智能手环的震动功能就是一个无参数类应用服务,有参数类应用服务在调用时需要传递相应的参数。
所述的智能终端利用可穿戴设备提供商公布的关于数据与服务的调用方法,将各种可穿戴设备的调用方法封装成统一的调用接口,以获取并缓存可穿戴设备提供的数据与服务。
所述的智能终端对可穿戴设备提供的数据与服务进行统一的服务描述并写成服务描述文件,进而将服务描述文件与数据或服务对应的抽象服务类别统一封装。
所述的智能终端每安装或更新一项服务,均会触发智能手机上的应用安装事件,该事件被触发之后,智能终端利用智能终端中自有的获取应用信息的方法获取服务对应的信息,确认该服务是一个有效服务,然后读取服务中的服务描述文件,根据服务描述文件中的信息注册该服务。
所述的智能终端搜索附近其他用户用于汇集可穿戴设备间数据与服务的智能终端时,在多播地址上发送设备发现消息,该消息包括智能终端的描述地址以及搜索目标的设备类型。
在智能终端上运行的应用调用本地服务时,执行以下步骤:
A1.应用在启动时向智能终端进行注册,注册信息包括:动作、应用名称以及所请求服务的详细信息,所述的注册信息会发送给智能终端;
A2.智能终端接收到注册信息之后,启动应用所请求的所有服务;
A3.当应用需要服务时,向智能终端发送服务调用请求,调用请求信息包括:动作、应用名称以及所请求服务的详细信息,所述的调用请求信息会发送给智能终端;
A4.智能终端接收到调用请求信息之后,将服务的结果返回给应用;
A5.当应用关闭时,向智能终端发送服务注销请求,注销请求消息包括:动作、应用名称以及所请求服务的详细信息;
A6.智能终端收到注销请求消息之后,关闭应用所请求过的所有服务。
在智能终端上运行的应用调用远程服务时,执行以下步骤:
B1.应用首先申请调用所要请求的远程服务的授权,应用首先向授权管理器发送授权申请,授权管理器将该授权申请推送到所要请求的远程服务所属的智能终端上;
B2.接收到授权申请的智能终端向授权管理器发送授权许可,授权管理器收到授权许可之后,将该授权许可返回给请求服务的应用;
B3.应用收到授权许可之后,持该授权许可向授权管理器请求准入令牌,授权管理器将准入令牌发送给应用,应用即被授权调用对应的远程服务;
B4.应用向所请求的远程服务所属的智能终端上的Http服务器(用于接收远程服务请求并解析请求)发送Http请求,该请求即为远程服务请求;
B5.远程服务所属的智能终端收到Http请求后,根据URL地址解析出要请求的服务名称,并启动对应的服务;
B6.智能终端将对应的远程服务执行的结果信息封装成Http响应消息,返回给应用;
B7.应用收到响应消息后解析该响应消息,得到服务执行结果。
本发明协同方法将可穿戴设备上的数据与服务分别封装成数据服务与应用服务,通过智能终端汇聚可穿戴设备上的数据与服务,并提供了统一的调用接口;应用既可以调用智能终端上汇聚的本地服务,也可以调用智能终端汇聚的远程服务;应用可以调用的可穿戴设备提供的服务不再局限于一个智能终端之上,附近智能终端上汇聚的服务都可以作为远程服务被调用。故本发明有利于更方便的使用不同的可穿戴设备上的数据和服务,实现可穿戴设备间数据与服务的协同;有利于基于智能终端开发出具有更多更强功能的应用。
附图说明
图1为本发明可穿戴设备间数据与服务协同方法的功能框图。
图2为本发明中将数据与服务封装成两种服务类型的封装模型示意图。
图3为本发明中授权应用访问远程服务的授权流程示意图。
具体实施方式
为了更为具体地描述本发明,下面结合附图及具体实施方式对本发明的技术方案进行详细说明。
本实施方式以智能手机作为中心,其他可穿戴设备作为智能手机的延伸,扩展智能手机的服务。可穿戴设备是外接的,它们通过蓝牙等无线方式与手机进行连接。
支持可穿戴设备间数据与服务的协同方法的功能框架如图1所示,按照该方法功能框架分为四层,这四层分别是应用接口层、协同核心服务层、管理层以及设备抽象层。
设备抽象层解决了智能手机和可穿戴设备服务的抽象问题,使这些设备的服务能够方便的接入智能手机中。同时提供了扩展性,支持后期服务的扩展。管理层对智能手机采集的数据和服务进行管理,数据和服务进行持久化存储,提供一系列操作接口,供其他模块调用。核心服务层是最重要的一层,处理服务调用、数据集采等的核心逻辑。协同模块是整个功能框架的核心模块,提供可穿戴设备协同的相关操作与处理。应用接口层,把智能手机的服务调用接口暴露给使用者和上层应用。通过应用接口层,可以使用核心服务层提供的功能。
本实施方式中所提到的智能手机是运行Android系统的智能手机。本实施方式的具体步骤如下:
步骤1:将不同的可穿戴设备上的数据与服务进行封装,提供统一的调用接口,统一汇聚到智能手机上;
在本实施方式中,接入智能手机的服务分为两种形式:一种是数据服务,指可穿戴设备作为数据的提供者,将数据获取的接口暴露成服务,提供给智能手机或者上层应用使用;一种是应用服务,以可穿戴设备的计算能力或者反馈能力来提供服务。本实施方式中定义了两种服务模型以及相应的服务访问接口,如图2所示。对于数据服务和应用服务,分别定义了AIDL接口,AIDL接口是Android系统中实现可以跨进程访问的服务的实现接口,定义的AIDL接口为:IDataService和IApplicationService。对于数据服务和应用服务的开发,需要继承DeviceService并实现IDataService或者IApplicationService接口。AIDL接口中的getData和invok方法的具体实现,由服务开发者调用可穿戴设备提供的SDK进行实现。所以服务的具体实现方式因设备的不同而不同。
步骤2:对安装的服务自动进行注册,智能手机将安装的服务注册为本地服务;
为了支持设备服务的可扩展性,在本实施方式提出了一种插件化的扩展方式。服务开发者将需要提供的可穿戴设备的服务按要求进行实现,然后打包成Android中的APK。通过安装APK的形式,使智能手机支持更多的设备。功能框架中的管理层会对应用安装进行监控,从而进行服务的注册。一个插件安装的工作流程如下:
1.监控系统中的应用安装情况;
2.当识别安装的应用为支持的插件时,更新插件数据库;
3.获取插件对应的服务信息;
4.在服务注册数据库中对服务进行注册。
当插件安装完成之后,就可以使用插件提供的服务。一个插件通常对应于一款设备,相当于设备的驱动,一个插件可以提供多个服务。对于接入移动智能手机的服务,采用了以下格式进行描述。当服务初次接入系统时,会对服务信息进行注册。除这些属性外,服务还具有PackageName和ServiceName属性。通过这两个值来识别唯一的服务,并对服务进行调用,服务信息如下:
步骤3:智能手机搜索附近其它汇聚可穿戴设备间数据与服务的设备,读取这些设备上的服务列表,将这些服务注册为远程服务;
在设备发现中,采用了SSDP简单设备发现协议,SSDP协议提供了在局部网络里面发现设备的机制,通过SSDP协议可以根据自己的需要查询在自己所在的局部网络里面提供特定服务的设备。根据SSDP协议在239.255.255.250:1900这个多播地址进行设备发现。当有设备加入局域网后,会发送ssdp:alive消息。当设备需要发现服务时,可以向多播地址发送ssdp:discover消息,当其他设备接收到ssdp:discover消息后,就会发送ssdp:alive消息。方法只采用了SSDP协议进行设备发现以及UPnP中的设备描述解析的过程,没有使用UPnP中后续的服务描述获取以及服务解析和调用等过程,服务解析以及调用使用远程接口提供的RESTful API。我们定义了新的UPnP设备类型-ScudewareMobile。智能手机只对这类设备进行发现以及响应,忽略其他UPnP设备的消息。智能手机以用户账户进行唯一的标示,所以可以根据账户进行设备的区分。
设备发现之后,智能手机根据授权机制向发现的设备请求查询所有服务的命令,发现的设备将自己管理的所有服务列表信息返回给发送请求的智能手机,智能手机将这些服务注册为远程服务;
步骤4:在智能手机上运行的应用根据提供的统一调用接口调用智能手机汇聚的本地服务或者远程服务,如果调用本地服务,则执行以下步骤:
a.应用在启动时向智能手机进行注册,注册信息包括:动作(register)、应用名称、所请求服务的列表详细信息,注册信息以JSON格式发送给智能手机;
b.智能手机接收到注册信息之后,启动应用所请求的服务列表里所有服务;
c.当应用需要服务时,向智能手机发送服务调用请求,请求信息包括:动作(request)、应用名称、所请求的服务的详细信息,请求信息以JSON格式发送给智能手机;
d.智能手机接收到服务请求信息之后,将服务的结果返回给应用;
e.当应用关闭时,向智能手机发送注销应用消息,消息包括:动作(unregister)、应用名称、所请求的服务列表信息;
f.智能手机收到注销信息之后,关闭应用所请求过的所有服务。
本地接口是本地应用的访问接口,本地应用指运行在智能手机上的本地程序。本地接口是本地应用访问本地服务的唯一方式。在实现中,本地接口使用Android提供的Handler和Message机制,可以满足多线程以及双向通信的特性。对于本地接口,方法提供了四个API,见表2。通过这组接口,上层应用可以查询已经调用接入到智能手机的服务,并且可以对服务进行调用。
表2
Action名 |
说明 |
register |
注册应用 |
unregister |
注销应用 |
request |
调用远程服务 |
query |
查询远程服务 |
如果调用远程服务,则执行以下步骤:
a.应用首先要申请调用所要请求的远程服务的授权,应用首先向授权管理器发送授权申请,授权管理器将该授权申请推送到所要请求的远程服务所属的智能手机上;
b.接收到授权申请的智能手机向授权管理器发送授权许可,授权管理器收到授权许可之后,将该授权许可返回给请求服务的应用;
c.应用收到授权许可之后,持该授权许可向授权管理器请求准入令牌,授权管理器将准入令牌发送给应用,应用即被授权调用对应的远程服务;
d.应用向所请求的远程服务所属的智能手机上的ScudwareHttp服务器发送Http请求,该请求即为远程服务请求,形式为:/device/{deviceName}/service/{serviceName}/data.json,其中{deviceName}为远程服务所属的设备名称,{serviceName}为远程服务的名称;
e.远程服务所属的智能手机收到Http请求后,根据URL地址解析出要请求的服务名称,启动对应的服务;
f.将对应的远程服务执行的结果信息封装成Http响应消息,返回给应用;
g.应用收到响应消息后解析该响应消息,得到服务执行结果。
本实施方式采用经过修改的OAuth2.0协议实现授权机制,OAuth协议为用户资源的授权提供了一个安全的、开放而又简易的标准,OAuth2.0是OAuth的下一版本。本实施方式采用了一个授权管理器以管理授权和认证。
对于服务来说,服务是位于智能手机上的,而不是授权管理器上面,应用在获得准入许可之后需要向智能手机请求远程服务。授权管理器作为OAuth认证中的授权服务器。当应用从授权管理器上的认证模块获得准入许可之后,凭借准入许可向智能手机请求服务。智能手机核对准入许可后,才能提供远程服务给第应用。
在协同应用中开放服务的一方是被动进行授权的,和传统的OAuth2.0流程有所区别。特别是调用远程服务的情况下,其他智能手机使用者需要使用一个用户开放的服务,这就需要使用者进行权限申请,然后服务的开放者进行授权。所以本实施方式中的授权机制针对OAuth2.0授权码认证过程进行修改。当应用请求用户开放的服务时,请求消息首先发送到授权管理器,接着授权管理器以消息形式通知用户。收到消息之后,用户可以对权限请求进行认证。当用户进行授权许可之后,继续进行OAuth2.0授权码认证模式的后面步骤。这样就完成了用户对于应用访问开放服务的授权。所有权限的数据在授权管理器进行持久化存储,具体的认证过程如图3所示。
本实施方式用远程调用的接口支持远程应用对服务的访问,远程应用指与智能手机不同平台的应用。本实施方式利用一个轻量级的Http服务器来支持远程接口。远程应用根据服务所属智能手机的IP地址进行访问。Http服务器作为后台demon进程一直运行,监听远程应用的请求。本实施方式定义了一套RESTful API对服务进行远程访问,如表3所示:
表3