图3-7为SPS的内部组件图,包括5个组件: 操作管理器、可插拔的传感器实例、SPS中间件、SOS中间件和WNS中间件。
图3-7 DSPS组件图
1. 操作管理器实现
操作管理器管理SPS标准规范中定义的所有接口,管理器本身实现的接口有Get Ca-pabilities、Describe Tasking,其他操作Get Feasibility、Submit等需要同特定传感器进行通信的操作由基于资源配置的SPS中间件实现。
SPS在系统第一次启动时会加载与SPS中间件相关联的资源配置文件,动态生成该SPS服务的元数据信息,包括Get Capabilities文档中包含的所有内容,以及每个传感器的参数信息,当用户进行Get Capabilities和Describe Tasking的时候可以快速返回,提高效率。
2. 传感器实例
传感器实例是信息设备等逻辑传感器在本书实现的SPS系统中的映射,传感器实例要同这些收集设备进行交互,传感器实例的任务就是把与逻辑传感器交互通信的过程通过SPS的接口进行包装,因此SPS规范定义的大部分接口如Get Feasibility、Submit、Get Status、Update、Cancel实际上是由该传感器实例实现的。其中Submit是SPS标准规范中唯一要求必须实现的操作,其他操作可根据具体情况选择是否实现,通常用户在进行Submit之前会进行Get Feasibility请求,因此这里着重介绍Get Feasibil-ity和Submit操作的实现。(www.xing528.com)
(1) Get Feasibility操作: 向SPS服务器查询一个任务的可行性,该操作的实现关键在于对用户请求的验证。验证客户端提交的请求文档是否符合SPS规范的定义格式,然后提取用户提交的参数以及参数值,并跟对应传感器的配置文件进行比对,判断参数类型以及参数值是否合法等。
(2) Submit操作: 是SPS同传感器或者虚拟传感器进行交互的唯一方式,是SPS服务的核心,它的操作如图3-8所示。
第一步: 验证。若用户提交的Submit文档包含了feasibility ID,并且该ID在SPS中有存储,则表示该用户已经提交过Get Feasibility请求,参数验证通过,无须重复验证,转第二步。若Submit文档中包含的有任务参数,则需要对参数进行二次验证,其验证方式和方法跟Get Feasibility中的验证操作基本一致。
第二步: 封装具体的SPS任务并发送至传感器或者虚拟传感器。不同类型的传感器封装方式也不相同,对于真实的传感器,需要根据其通信标准进行封装; 对于数据中心则要根据其数据模型以及外部协议进行包装,对于Web 服务则依照Webservice的请求方式进行封装。
图3-8 Submit操作流程图
第三步: 提交第二步得到的SPS任务并获取结果。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。