物联传媒 旗下网站
登录 注册
RFID世界网 >  技术文章  >  其他  >  正文

面向移动设备的可配置RFID中间件设计与实现

作者:陈泉泉
来源:RFID世界网
日期:2011-12-13 10:28:36
摘要:针对RFID中间件将海量数据集中在服务器端处理带来的性能压力问题,提出了一种面向移动设备的可灵活配置RFID中间件(SMM)。SMM可以用于移动设备,具有较好的平台无关性,能部署与多个操作系统中;通过将设备抽象为对象,便于用户通过用户接口(UI)和标准Web接口控制和管理各种移动设备。同时,SMM也提供数据同步功能。实验结果表明,SMM具有能耗低、效率高的优点,可以有效减轻服务器压力,提高系统性能。
关键词:RFID中间件

  0 引言

  射频识别(Radio Frequency Identification, RFID)中间件是在物理RFID阅读器和上层应用软件之间的一层软件,RFID中间件屏蔽了各种不同的阅读器传输标准,使上层应用软件得到统一、不变的数据和控制接口;另外,它还能对原始数据进行整合和过滤,产生用户定制的数据报表。在大规模应用RFID技术时,将产生海量数据,应用RFID中间件将使数据处理和传输变得相对简单。中间件的承上启下作用使RFID系统设计更为灵活,维护更为简单,不论是后端应用程序的变化,还是前端阅读器变化,都不会影响另外一端,省去维护多对多连接的复杂性问题。

  RFID中间件是RFID技术应用领域和应用规模发展的产物,当今市场上已有一些产品,如:SUN、Microsoft和BEA的RFID中间件产品,然而,这些产品大都是运行在PC机或服务器端,由于网络带宽有限,海量的数据要通过网络传输,大量无效的数据都要集中在服务器端,服务器必须对海量的数据进行筛选、过滤并按照确定的业务规则使数据转化成用户需要的、有意义的数据,这种复杂的处理必会增加服务器的压力,影响系统的性能。在发生网络故障时,也容易造成数据的丢失等。

  随着技术的进步,移动设备(如PDA等)的内存存储能力、CPU的处理能力不断增强,这也使得设计一种面向移动设备的RFID中间件成为可能。针对这种技术发展趋势,本文提出了一种面向移动设备的可灵活部署的RFID中间件SeaMobileMiddleware(SMM)。SMM能有效利用移动设备的内存、CPU等空闲资源,在数据发往服务器之前做一系列的预处理,优化原始数据,降低网络和服务器压力,并在网络故障时自动存储数据,保证数据的一致性。

  1 RFID中间件SMM系统架构

  系统架构对系统整体性能有很大影响,针对移动设备特点,给出了一种面向移动设备的可灵活配置RFID中间件SMM系统架构,如图1所示。

  SMM的系统整体架构包括三大模块,其中:最下层为Device模块,负责把物理的真实设备抽象为系统的Device对象;中间层为Task Manager模块,是SMM的核心模块,负责处理用户和上层应用系统的一切命令,把标准的XML命令转化系统的Task对象并执行,以用来控制Device对象;最上层是用户接口(User Interface,UI)模块,是基于标准的Java swing开发的图形界面,使用户可以在本地方便地控制Device对象。同时,SMM也提供标准Web service接口,方便其他远程系统控制和管理移动设备。

  通过为移动设备提供本地UI和远程管理接口,SMM可以使用户自定义流程,通过过滤和筛选将原始标签数据转化成用户想要的有意义数据。Task Manger提供的基于XML的标准接口也为SMM提供了很好的扩展性和兼容性。

  1.1 Device模块

  由于目前的Tag、Reader等种类繁多,标准各不相同,RFID中间件的核心功能一个就是屏蔽阅读器传输标准的差异,为上层提供统一的接口。SMM通过抽象,把不同种类RFID阅读器、PDA等移动设备作为不同类型Device对象进行处理,并为每种Device配置Rule、Dispatcher和Driver三种属性。不同Tag发出的原始数据通过Driver适配变为统一的数据格式,通过Rule将统一的数据格式转化成上层系统需要的数据,然后通过Dispatcher把数据发送到所需的上层应用程序中。

  1)Driver:考虑到实际应用中的Tag、Reader的多样性,Driver对不同类型Reader数据进行适配处理,对数据进行统一和格式化。SMM架构中内置了缺省的Driver,负责处理当前大部分流行的Reader.同时,针对特殊需求,用户可以开发特定Driver完成特殊Reader及Tag的数据标准化。

  2)Rule:Rule可以自定义特定业务逻辑和数据过滤规则,从而把数据转化成上层应用程序需要的有意义的数据。

  比如:通过Rule配置提取同一个厂商生产的Tag的数据。

  3)Dispatcher:Dispatcher定义数据分发路径,为数据提供路由功能。可以自定义Dispatcher,从而把数据发送到用户需要的上层应用程序中。另外,系统提供了离线Dispatcher,用于设备离线时的数据处理。当设备处于离线状态时,系统会把数据保存在嵌入式移动数据库"Olite"上,当系统连线时,离线Dispatcher自动将保存在"Olite"数据库的历史事件发送到上层应用程序中,从而实现数据自动同步。

  基于抽象思想,Device模块把各种不同RFID阅读器等抽象成不同对象。通过配置Rule、Dispatcher和Drive属性等管理真实设备,将来源不同的Tag数据格式化为统一标准的数据,并按用户定义的规则过滤数据,转发到对应的上层系统中。

  1.2 Task Manager模块

  RFID中间件的另一核心功能是对外提供标准接口,便于上层应用程序调用和二次开发[10].SMM中Task Manager模块通过管理所有命令和任务执行提供标准输入输出。

  Task Manager模块具有如下功能:1)接受各种XML命令,解析XML命令找到对应的任务对象并执行后把结果封装成标准的XML返回给调用者;2)提供高效的任务队列来处理各种各样的XML命令;3)提供动态的日志队列使用户能够实时监控设备的相关信息。

  基于Task Manager模块,SMM提供图形界面和Web Service两种类型的请求来控制和管理移动设备,以使用户获取所需的数据。如果是SMM内部请求,则提供标准的Java API;如果是外部请求,则提供基于XML的标准Web接口。图3给出了Task Manager的实现流程。在模块中,上层应用程序通过HTTP协议把标准XML命令发送到SMM,SMM通过内嵌的轻型HTTP Server Jetty处理各种HTTP请求。Jetty接受到标准的XML请求后,把各种XML命令给Task Manager模块,Task Manager解析XML格式的命令后,通过Java反射得到对应的Task对象。如果Task对象是同步的,则调用Task执行方法,返回相应结果并转化成标准XML给Jetty服务器;如果Task对象是异步的,则放到任务队列里面去,返回为空。

  任务队列通过线程按照先进先出的方法来执行任务。为展示Task执行过程,本文给出设备启动过程展现上层应用程序控制设备的过程。

  上层应用通过HTTP(POST)方法把标准的XML命令发送到Jetty服务器上,格式如下:

  Task Manager根据"action"的内容,通过Java提供的反射机制得到相应任务Start Device Task实例,并把相应的设备名称作为参数交给Start Device Task实例。由于Start Device Task是异步的,所以Start Device Task会放到任务队列中执行并且返回空。当任务队列执行到Start Device Task任务时,Task Manager日志队列会实时写日志改变dev21和dev22的状态,并返回到SMM的UI。

{$page$}

  同理,上层应用也通过HTTP(GET)方法得到设备信息。

  由于得到设备信息的Task是同步的,所以Jetty服务器会返回如下格式的XML信息给上层系统,包括:设备名、用户定义的扫描时间间隔、设备状态,以及driver、rule和dispatcher等相关信息。同理,外部应用程序可以通过HTTP方法来增加、启动、更新等操作来控制设备,从而可以动态改变"Device"的Driver,Rule,Dispatcher等属性,有效筛选、过滤并按照确定的业务规则使数据转化成需要的、有意义的数据。

  1.3 SMM的整合

  作为一种面向移动设备的可配置RFID中间件,SMM需要与底层和上层进行有效整合,以发挥其功能。本文给出了一种SMM整合方案,如图3所示。

  本文提出的SMM的底层基于J2ME,可以安装部署于WinCE、Linux、Symbain等多个面向移动设备的操作系统上。

  在SMM整合架构中,SMM安装在各种不同的移动设备上,读取不同类型的Tag、Smart Card的数据等,原始数据通过SMM转化成用户或者系统需要的数据,然后发送到上层系统中。

  2 SMM性能分析

  为了分析SMM性能,本文在PC机上使用微软的移动设备模拟器Device Emulator搭建了WindowsMobile6.0仿真环境,并在仿真环境中安装Java虚拟机crème.其中:仿真器处理器为ARM9207,主频400GHz,内存94.16MB.仿真实验步骤如下。

  1)启动Windows CE的Java虚拟机,系统检测显示的内存图如表1.

  2)基于CrEme启动SMM,系统检测显示的内存图如表2所示。

  3)关闭SMM的嵌入式服务Jetty,系统检测显示的内存图如表3所示。

  由表1~3可知,运行CrEme的所需的内存为Mc=559KB,SMM运行所需的总内存Mt=1143KB,不开启Jetty服务器所需的内存为Mnj=847KB,SMM的嵌入式服务器Jetty所需的内存为Mj=Mt-Mnj=296KB.关闭Jetty并除去CrEme消耗的内存,SMM所需的资源Ms=Mt-Mj-Mc=288KB.可见,SMM对资源要求较低,完全可以适合资源有限的移动设备。

  3 结语

  针对RFID移动设备的发展趋势,本文提出一种面向移动设备的可灵活配置RFID中间件SMM.SMM可以使上层系统和用户灵活配置和管理移动设备,并在出现网络故障时,保证数据同步和一致性。SMM对资源消耗较小,在移动设备资源有限的情况下可以充分利用移动设备的资源,通过过滤、分析等操作处理原始数据,为上层提供有意义的数据,并减少上层应用程序的资源消耗,提高系统效率。