数据与传感器规划服务DSPS需要同客户端、信息收集设备、其他Web服务等进行交互操作,这些交互操作通过不同的组件实现。根据交互对象的不同,可将DSPS的交互分为外部交互和内部交互。交互图如图3-5所示。
1. 外部交互
DSPS的外部交互包含如下两类: 与客户端的交互、与信息收集设备的交互。
a. 与客户端的交互
DSPS跟客户端交互的过程就是客户端通过SPS提供的接口查询传感器、提交任务的过程。客户首先根据Get Capabilities接口获取SPS可以控制的传感器和虚拟传感器,然后通过Describe Tasking获取操作某个传感器需要的参数等必要信息,最后填写参数,构建Get Feasibility的请求文档,若SPS服务器验证通过则进行Submit任务提交。之后还可以通过Get Status查询任务执行状态、update更新任务参数等。
图3-5 DSPS的交互图
b. 与信息收集设备的交互
SPS的主要功能是提供接口以规划信息收集设备,很明显DSPS同信息收集设备的交互是系统的核心,因为离开了收集设备,SPS的规划就无从谈起。二者的交互过程由收集设备本身的情况决定,不同类型的设备交互过程不尽相同,收集设备包括真实传感器和虚拟传感器,本书重点讨论后者。
DSPS同设备的交互是通过SPS中间件实现的。前文已经提到,虚拟传感器就是依据一定规则向外提供服务的Web Service,对于该类型的收集设备而言,交互即通过该设备提供的API访问对方的过程。以一个数据中心为例,它的规则可能包括访问权限——什么样的用户能够获取什么样的数据、访问途径——通过何种协议以何种方式访问等。SPS中间件的任务就是根据不同的收集设备类型依据其不同的规则跟设备进行通信。
事实上SPS同收集设备的交互通常与客户端发送的请求相对应,若客户发送了Submit请求,SPS中间件就会跟设备通信,将任务提交,首次通信结束。在大多数情况下在首次提交任务之后还会涉及更新参数的操作。比如我们正在控制一个远程的摄像头,通过某一提交任务之后获取到了远程画面,这时候如果想让摄像头向某一角度转动,可以重新提交一个任务,但这种方式显然效率较低,推荐的方法是在以前提交任务的基础上进行Update操作,更新角度、距离等参数,节省服务器的开销,同时也使应速度加快。同样的,当客户端发送了一个Get Status请求,SPS中间件在需要的情况下会连接设备,查询当前任务完成的进度以返回客户端。
2. 内部交互(www.xing528.com)
内部交互指的是DSPS内部组件之间的通信过程,包括SPS与SOS的交互、SPS与WNS的交互。
a. 与SOS的交互
SOS通常是用户获取信息的最终途径 (Havlik等,2009),对于物理传感器而言,传感器扫描到观测数据后会直接通过SOS的Insert Observation接口将数据插入到SOS中。然而本书实现的数据与传感器规划服务不同于目前已存的SPS,明显的差别在于对数据预订系统等虚拟传感器的支持,涉及数据的检索和存储,数据预订系统本身未必会将数据主动插入到SOS,因此将虚拟传感器 (数据预订系统) 的数据插入到SOS中需要特定的激发者,这里SPS作为虚拟传感器和SOS的激发者,通过SOS中间件将数据插入SOS。
如图3-6所示,SPS同SOS的交互通过SOS中间件进行,主要发生在两种情形下:
(1) 注册传感器: 该步骤在SPS第一次启动完成,主要通过SOS的Register Sensor接口向SOS注册SPS能够规划的所有传感器。
(2) SPS向SOS插入观测数据: 若用户感兴趣的数据在当前SOS不存在,SPS则根据用户要求向信息收集设备提交相应的任务 (详细过程参照3.2.1小节),如果是真实的传感器,数据的返回将由传感器本身完成,就本书针对的虚拟传感器而言,SPS需要通过SOS中间件向数据预订系统查询数据,并通过Insert Observation接口将其插入到SOS。
图3-6 SPS同SOS的交互
b. 与WNS的交互
由于传感器和虚拟传感器的种类繁多且复杂,一个SPS任务可能立即返回结果,但也可能是一个耗时任务,这会导致传统的客户端与服务端之间的同步通信机制——求-响应模式会导致低效率 (Min等,2008)。为了解决该问题,本书设计了基于WNS的异步通信中间件。WNS中间件的任务是完成客户端的注册、查询、通知等功能。
当客户端成功提交任务即Submit操作得到了正确的响应,WNS中间件就会根据提取到的客户端注册信息如user ID、Notification URL等,调用WNS,通过WNS提供的Do Notifi-cation接口通知用户。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。