|
无线射频识别中间件技术基本的RFID系统一般由3部分组成:标签、阅读器以及应用支撑软件。中间件是应用支撑软件的一个重要组成部分,是衔接硬件设备如标签、阅读器和企业应用软件如企业资源规划(ERP)、客户关系管理(CRM)等的桥梁。 由面向对象的多态性特征,根据state字段目前所指向的对象来动态确定由ECState接口的哪一个具体的实现类的代码来完成工作。ECState接口的实现类根据实际情况确定是否需要在处理过程中修改ECSpec对象的状态属性(state),此处在应用状态模式时,需要设计多个定时器类来辅助状态机的跳转。 3.4 策略模式切换多种报告上传、命令下发方式 事件周期结束之后,中间件需要组装报告上传给规则的预订者,即应用系统。上传的方式有多种,如HTTP、Socket、JMS等等。中间件的核心逻辑处理模块不应该关心具体的上传技术,相应工作应交给报告上传模块来做,核心逻辑处理模块只须完成自己的工作,然后把一定格式的数据通过报告上传模块发送,参见代码示例。 报告发送接口ReportSender: publicinterfaceReportSender{ voidsendReport(ECReportsreports); } 通过Http方式发送报告的ReportSender接口实现类ReportSenderByHttp: publicclassReportSenderByHttpimplements ReportSender { public void sendReport(ECReports reports) { } } 通过Socket方式发送报告的ReportSender接口实现类ReportSenderBySocket: publicclassReportSenderBySocketimplements ReportSender { publicvoidsendReport(ECReportsreports) { } } 通过JMS方式发送报告的ReportSender接口实现类ReportSenderByJms: publicclassReportSenderByJmsimplements ReportSender { publicvoidsendReport(ECReportsreports) { } } 报告发送示例客户端类 SendReportWorker: publicclassSendReportWorker{ privateReportSendersender; privateECReportsreports; publicvoidsetReports(ECReportsreports) { this.reports = reports; } publicstaticvoidmain(String[] args) { SendReportWorker worker = new SendReportWorker(); worker.sender.sendReport(reports); } publicvoidsetSender(ReportSendersender) { this.sender = sender; } } 这样,发送消息的工人类可通过设置ReportSender的实例来灵活设置其发送方式。 同样,中间件的清点命令下发,即中间件与阅读器之间的接口,也存在多种方式,如Socket、SOAP等,也可采用类似的设计。 3.5 观察者模式处理上报消息 阅读器的消息上报转换为消息对象,对消息对象的接收、分发可采用经典的观察者模式实现。 4、中间件发展方向 4.1 与阅读器管理系统的融合 中间件是阅读器与后台应用系统之间的桥梁,而阅读器通常有设备管理需求,比如软件版本下载、设备告警管理、参数配置等等,阅读器管理系统也是直接与阅读器交互的软件模块。于是,如何处理好中间件与阅读器管理系统之间的关系成为一个亟待解决的问题。 从软件部署(部署在同一台主机上)、软件模块重用(重用阅读器通信模块)等角度考虑,中间件与阅读器管理系统的融合势必成为中间件本身的一个优势。 4.2 对多标准标签的支持 RFID技术在国内外的发展和应用方兴未艾,国际上多个标准组织都试图统一RFID标准,但在一定的时期内,势必出现多标签并存的情况。于是,对多标准标签的支持也是中间件系统的一个发展方向。 4.3 对多厂商阅读器的支持 中间件与阅读器之间的接口、通信方式以及信息格式,也无法做到统一标准。对多厂商阅读器的支持、至少对少数几家主流厂商的阅读器的支持,已经是对中间件所提出的基本要求。 责编:刘沙 微信扫一扫实时了解行业动态 微信扫一扫分享本文给好友 著作权声明:畅享网文章著作权分属畅享网、网友和合作伙伴,部分非原创文章作者信息可能有所缺失,如需补充或修改请与我们联系,工作人员会在1个工作日内配合处理。 |
推荐博客 |
|