WSE为了我们做了什么事情,它的价值体现在两个方面上。
首先,一是在传感器组网的时候,它提供了对将要部署的传感器的属性的配置(采集物理参量的定义,地理信息,controller ID ,Server IP,device group ,agent ),在这里,我们使用的组件就是在WSE server上的console中的Controller,这个Controller是直接和分布式的各个Data Capture and Delivery 通信的,他们的通信方式就是在Server上使用了每个Data Capture and Delivery上的Device Kit,我们在将传感器连接到安装了data capture and delivery 的设备(这个设备一定是PC,也可以是嵌入式的ARM板,只要能运行JDK的设备就行,我们称这个设备是data capture and delivery controller)上之前,需要在Server上建立这个设备的信息,它的data capture and delivery controller的IP或mac地址,agent 的IP地址。每个传感器设备都是在agent中管理的,每个agent都是在data capture and delivery controller中管理的,而添加agent的思想是OSGI式的。添加一个硬件设备的过程是复杂的,因为除了两个能起到寻址作用的参数外,就是对这个硬件设备的信息的添加了,在Server Console 上还可以添加这个硬件设备的Location(一种属性,定义地理位置信息),Output Channel(这个是在将来这个传感器采集信息后,将这个数据发给其它应用时的属性)。经过了这样的过程,传感器上传的信息的路径就建立了,而且处理其上传信息的机制也建立了。
其次,所说的WSE的另外的一个方面就是对传感器数据进行处理:
1.对数据进行格式化,每个agent在将捕获的数据传递给Micro Broker之前,会进行简单的过滤,这里的规则是可控的,因为我们可以在device kit中编辑每个agent ,例如,它支持计数器,可人为的约定其上传数据的延时等。那么,格式化的类型,就是“Sensor Event”。在这里,会加入一些除了物理参量之外的额外的信息,这是为了定义了这个传感器本身的ID和agent本身的ID,我的理解是,这种处理思路就是Java中类的反射。这样在Sensor Event被传递到上面的时候就能被EPC connector等监听应用处理。
2.gateway (其实就是一个进MQ的queue和一个出MQ的queue)每个传感器捕获的信息,都会通过gateway进入Server的处理,WSE中有定义好的处理,如持久化工作,EPC格式化、查询等,另外就是Message Driven Beans 了,这个会使用信息来做各种事情,例如在WSE中预先做好了一些监听Gateway的Task Agents就会完成alert、Ping(确定一个硬件是否存在)等基本操作。
3.和RTLS的集成,这里定义了一些功能,使得和IBM的maximo产品实现集成。在WSE中,有些application是定义好了的,可以安装进去,像
○ Asset Visibility Client
○ Container Tracking
○ Event Monitor
○ Track and Trace
○ Remote Patient Monitoring
WSE需要我们做哪些事情?
找到合适的硬件:
配置传感器:设计拓扑结构,搭建硬件环境
建立客户需要的服务模型:根据需要的功能,结合已有的产品(RTLS,maximo,ITS)