本文共 9869 字,大约阅读时间需要 32 分钟。
简介: 传感器技术在智慧的地球中起着非常重要的作用,借助于各类传感器我们可以将日常生活中物体的位置、温度、重量以及气体浓度、水流速度等信息实时输送到后台系统。IBM WebSphere Sensor Events(WSE)中间件可以帮助收集、过滤现实中各种类型的传感数据,再将统一格式的传感数据传送给 IBM WebSphere Business Events(WBE)中间件,按照事先定义的复杂事件规则对传感数据进行分析,从而产生出更有意义的带有商业逻辑的事件数据,最终我们可以借助 IBM WebSphere Business Monitor(WBM)的仪表盘等功能形象、直观的监控这些现实世界的事件,帮助我们更加科学有效地发现和解决问题。本文将着重向读者介绍怎样将 WSE、WBE、WBM 集成在一起,完成相互消息传输、加工的方法,并提供一个完整的开发案例让读者直观的感受到通过以上三个产品的集成使用给企业日常生产带来的好处。
<!--
IBM WebSphere Sensor Events(下面简称为 WSE)是一个针对传感器解决方案而设计开发的中间件产品平台,它提供了一套灵活的硬件管理、数据传输及消息适配方案,使用户能够轻而易举的接收和处理各类传感器事件,并能够快速集成、扩展现有的企业系统架构。而在 V6.2 版本中软件本身又通过两个全新的消息转换可重用组件及相关消息输入输出通道,实现了与 IBM WebSphere Business Events(下面简称为 WBE),IBM WebSphere Business Monitor(下面简称为 WBM)的系统集成,今后用户可以借助 IBM 强大的企业数据管理软件对传感数据进行智能分析,以应对各类商业挑战,帮助企业及时预估潜在风险,果断且快速地作出决策处理。如图 1 所示 WSE 和 WBE,以及 WBM 的系统集成架构图。
用户通过使用 WSE 的数据采集功能(Data Capture)将实时的传感器数据进行加工处理(过滤、聚合、标准化等),然后将基于 CBE 格式的传感器事件 XML(如 RFID 标签读取事件)通过事件网关发布到指定的 SIBUS 上,再由 WSE 的可重用组件对消息进行订阅及进一步的加工(业务逻辑、格式转换等),最后将符合 WBE 或 WBM 消息格式要求的信息通过多种 WSE 输出通道发送给 WBE 或 WBM 进行数据智能分析。同时用户也可以将 WBE 事件处理引擎的反馈信息再次通过事件网关发布到 SIBUS 上供 WSE 使用。
下面我们将要介绍 WSE 和 WBE,以及 WBM 集成过程中涉及到几点关键技术。IBM 传感器事件是基于 IBM 公共基础事件模型,该传感器事件是 WSE 中间件产品内部使用的标准消息格式。它主要由三部分组成:
一个标准的 WSE6.2 传感器事件(标签读取类型)如下:
BDDR%2Freport%2FTagReport50IBMSensorEvent_39d7e401-204e-4d05-ae5b-951ee4b627feP22010-06-07T09:05:29.312Z6.1com.ibm.sensorevent.model.payload.PassiveRFIDTagReadPayloadurn%3Aepc%3Aid%3Agrai%3A1234567.00110.1urn%3Aepc%3Atag%3Agrai-96%3A2.1234567.00110.1urn%3Aepc%3Araw%3A96.x33544B5A1C001B800000000133544b5a1c001b8000000001 |
传感器事件网关向外提供了一个数据输入接口,用户可以通过它将传感器事件发布到一个名字叫做 ibmsensorevent 的 WebSphere application server service integration bus(SIBUS),然后 WSE 可以通过 MDB 订阅并处理这些消息。传感器事件网关同时提供了 Java 消息服务(JMS),HTTP 和 Web 服务接口,用户可以使用任意一种方式将事件消息发布到 SIBUS。
以上的这些传感器事件网关接口都会先行将传感器事件 XML 转化为 IBMSensorEvent 对象后再发送至 SIBUS,所以传递于 ibmsensorevent 总线上的消息都是以 IBMSensorEvent 形式存在。
WSE 按照不同商业应用场景,抽象并剥离出了一些可以重复使用的功能模块(如资产注册,标签打印,第三方事件格式转化等),并遵循标准的 J2EE 开发模式进行重新构建,这样便形成了许多 WSE 中可重用的 J2EE 应用。如果用户希望扩展自己的 WSE 功能,又不希望花费过多时间放在消息处理及架构设计上,可以使用可重用组件开发框架制作出用来满足其特殊业务需求的可重用组件,由此大大提高了系统的灵活度及可扩展性。
可重用组件框架要求将公共接口以以下三种方式公开出来,供其他开发者使用:
在 WSE 中 每种事件输出都有其事件类型标识,如果用户希望只输出一种或多种特定事件类型的消息时就需要使用事件模板功能,用户可以在自定义消息类型的过滤条件后再选择 将这些消息通过何种输出渠道进行输出。输出通道用来指定 WSE 的消息输出以何种方式,何种规格,向哪些外部目标输送。
一共有以下七种输出方式可供选择:
WSE 的 Event Template 和 Output Channel 功能为用户提供了灵活的消息筛选,路由及传送机制。
本章将向读者详细介绍怎样将 IBM WebSphere Sensor Events ,IBM WebSphere Business Events 和 IBM WebSphere Business Monitor 集成在一起,完成对一个 RFID 标签读取事件的消息传输和加工的过程,以及提供验证这些集成是否成功的方法。
WBE 提供了易于使用的图形创作工具,您可以将其用于定义业务策略和逻辑,以便响应业务事件和模式,以及发起相应的业务操作。业务策略描述系统将如何对某些组合中或在某些时间发生或未发生的事件做出反应。
WSE 中的可重用组件 WBE RUC 可以帮助用户将 sensor event 转化为 WBE 标准格式。可以被 WBE 处理的事件(标签读取类型)格式如下:
IBMSensorEvent_A1DE870DB91E9F50CB21B83833386663P2BDDR/report/TagReport6.1302010-06-07T14:59:47+0800112010-06-07T14:59:47+0800P2urn:epc:tag:grai-96:2.1234567.00110.1urn:epc:id:grai:1234567.00110.1urn:epc:raw:96.x33544B5A1C001B800000000133544b5a1c001b8000000001127.0.0.12010-06-07T14:59:47+0800An event of type: BDDR/report/TagReport has arrived from location: P2 |
WebSphere Business Events 端的配置(以标签读取事件为例)
右击接触点区域,选择插入一个新的接触点,命名为 WebSphere Sensor Events Server。
按照同样的方法创建另外两个中间对象 IBMSE_PassiveRFIDTagRead_Payload 和 IBMSE_PayloadMetaData,如图 2 所示
按照同样的方法为 IBMSE_Header 定义以下中间对象域
Name | Data type |
---|---|
eventId | String |
sourceId | String |
eventType | String |
ibmseversion | String |
priority | Integer |
dateTime | DateTime |
按照同样的方法为 IBMSE_PayloadMetaData 定义以下中间对象域
Name | Data type |
---|---|
epcprocess | String |
按照同样的方法为 IBMSE_PassiveRFIDTagRead_Payload 定义以下中间对象域
Name | Data type |
---|---|
count | Integer |
antenna | Integer |
discovered | DateTime |
reader | String |
taguri | String |
tagidrui | String |
rawuri | String |
tagid | String |
按照同样的方法定义以下动作对象域
Name | Data type | Type | Expression |
---|---|---|---|
eventId | String | Field | IBMSE_Header.eventId |
Event_type | String | Field | IBMSE_Header.eventType |
WebSphere Sensor Events 端的配置
打开 WSE 的管理界面(缺省为 http://WSE_Server:9080/ibmrfidadmin),进入 Agent Configuration 界面,点击 WBEAgent,设置 wbe.location=local。
打开 WSE 的管理界面(缺省为 http://WSE_Server:9080/ibmrfidadmin),进入 Controller group Configuration 界面,点击 EventTransformationAgent,修改 topic.tranform.to.external 属性,使得改属性包含 %LOCATION_AND_APPLICATION_ID%/report/TagReport = com.ibm.sensorevent.model.payload.PassiveRFIDTagReadPayload。
打开 WAS 的管理界面(缺省为 http://WAS_Server:9080/ibm/console),选择资源 >JMS,点击激活规范,找到 WBERUCAS,修改 Message selector 属性为 ibmse='RfidInventory/TagReport' OR ibmse='RfidInventory/TagAggregationReport' OR ibmse LIKE '%/report/TagReport' OR ibmse LIKE '%/report/TagAggregationReport'。
WebSphere Sensor Events 和 WebSphere Business Events 的集成测试
做完以上的步骤后,下面我们要描述 WSE 和 WBE 的集成测试步骤和验证方法
首先是介绍集成测试步骤,其实非常简单,只需要一下 2 步就可以了。
接着怎么样验证我们的集成测试成功与否,同样非常简单,可以通过一下 3 个方面去验证 WSE 和 WBE 的集成是否成功。
如果以上验证都没问题,那么 WSE 和 WBE 的集成就成功完成了。
WBM 是 IBM 为用户提供的一个可以利用度量指标、可视显示和报警提供实时业务监控的工具,它为业务活动监控提供了业务流程的实时检测。
WSE 中的可重用组件 BAE RUC 可以帮助用户将 sensor event 转化为 WBM 标准格式。可以被 WBM 处理的事件(标签读取类型)格式如下:
2010-06-07T05:56:41.484ZIBMSensorEvent_A1DE6F71EFEB0CC0F934E43934623231BDDR/report/TagReport30P2urn:epc:id:grai:1234567.00110.1urn:epc:raw:96.x33544B5A1C001B800000000133544b5a1c001b8000000001urn:epc:tag:grai-96:2.1234567.00110.11just a testing2010-06-07T05:49:36.531Z1100G3.2G33544b5a1c001b80000000013G |
WebSphere Business Monitor 端的配置
配置 WebSphere Business Monitor server 使其能够通过 WebSphere MQ 接收消息。
登陆 WAS admin console,选择 应用程序 > 安装新的应用程序
点击 浏览并指定应用的完整路径 was_root/scripts.wbm/CEIMQ/MQtoCEIMediation.ear完成默认安装。WAS_ADMIN_HOST=localhost WAS_ADMIN_PORT=8880 #WAS_ADMIN_USERID= #WAS_ADMIN_PASSWORD= #ME_NAME=myNode.server1-CommonEventInfrastructure_Bus QM_HOST=localhost QM_PORT=1414 QM_NAME=myQueueManager CONNECT_TO_MQ=true #QM_ADMIN_CHANNEL= #QM_USERID= #QM_PASSWORD= #SCRIPT_FILE_NAME= |
Windows 平台:was_root/scripts.wbm/CEIMQ/configCEIForMQClients.bat -props configCEIForMQClients.props
AIX, HPUX, Linux 平台:was_root/scripts.wbm/CEIMQ/configCEIForMQClients.sh -props configCEIForMQClients.props脚本在 WebSphere MQ 和 CommonEventInfrastructure_Bus 之间建立了一个 WebSphere MQ 链路,并且创建了一个远程队列 CEIQueue,后面我们会使用它接收来自 IBM Sensor Events server 的消息。
完成所有以上配置后,需要重新启动 WebSphere Business Monitor server。
使用 WebSphere Business Monitor Development Toolkit 导入并发布 Sample BAM Model 工程
在 BusinessSpace 中建立 Dashboard 用来显示 Tag Read 消息
至此,WSE 和 WBM 的集成,WBM 端的配置就完成了。
WebSphere Sensor Events 端的配置
配置 IBM Sensor Events server 使其能够通过 WebSphere MQ 发送消息到 WBM
选择 资源 >JMS> 队列连接工厂
选择 作用域,点击 新建 在 选择 JMS 资源提供程序页面 选择 WebSphere MQ messaging provider,点击确定 编辑队列连接工厂具体信息(注意: QM 主机端口信息参照 WBM 所在主机填写)选择 资源 >JMS> 队列
选择 作用域,点击 新建 在 选择 JMS 资源提供程序页面 选择 WebSphere MQ messaging provider,点击确定 编辑队列具体信息。选择 资源 >JMS> 激活规范 >BAERUCAS
将消息选择器格式修改为:ibmse='RfidInventory/TagReport' OR ibmse='RfidInventory/TagAggregationReport' OR ibmse LIKE '%/report/TagReport' OR ibmse LIKE '%/report/TagAggregationReport'完成所有以上配置后,需要重新启动 WebSphere Sensor Events server 以让上述改动生效。
WebSphere Sensor Events 和 WebSphere Business Monitor 的集成测试
使用 IBM WebSphere Sensor Events Server 扫描 RFID 标签
测试验证:
使用 IBM WebSphere Sensor Events Server 扫描一个 RFID 标签,然后查看刚才建立的 Dashboard,识别到的 RFID 标签信息会显示在报表中,如图 8 所示
以上内容以一个最基本的 RFID 标签读取事件为例描述了 IBM Webpshere Sensor Events 和 WebSphere Business Events 以及 WebSphere Business Mointor 集成的具体配置方法,以及验证过程。根据具体的业务需求,用户还可以依此对项目进行扩展,已达到更好的集成使用效果。
原文链接:
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/14789789/viewspace-673749/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/14789789/viewspace-673749/