分享好友 电磁兼容首页 电磁兼容分类 切换频道

无线射频识别中间件技术

2010-04-061220


近十余年来,面向对象思想几乎全面占领软件设计领域,成为最主流的分析、设计方法。而近数年来,对设计模式的研究也已日臻完善,模式几乎已成为一种“更高级编程语言”(相比于Java、C++等高级编程语言)被广泛应用。

面向对象思想、设计模式都是以实现软件的可理解、可扩展、可修改、可插入、可重用等目标为己任的,本文也将应用面向对象思想、参考模式语言,对中间件的软件架构做一个初步的探讨,下文的例子如涉及高级编程语言,均采用Java语言[2]。

3.1 封装、隔离处理流程中的各个节点

将中间件的业务流程中的各个节点分作不同模块处理,可以获得封装、高内聚、低耦合等优势,参见图5。 [!--empirenews.page--]


                                                                                                                      图5 中间件系统模块划分图

其中,报告上传模块,负责实现不同类型的报告上传方式,如HTTP、JMS等;API接口模块,负责隔离应用系统和中间件核心业务逻辑处理模块,向应用系统提供中间件API接口;中间件核心业务逻辑处理模块,负责中间件核心业务,包括数据接收过滤、数据分组、报告生成、规则对象的状态跳转等;阅读器通信模块,负责中间件系统与阅读器的通信。

3.2 门面模式、工厂模式对外部暴露API接口

为了避免后台应用系统,即中间件的客户端过分耦合,采用门面模式(Facade)对系统内部、外部实现清晰的隔离。处理流程可参见图6所示的序列图。客户端仅仅与Facade类建立联系,如果Facade接口定义得足够清晰,客户端可以对中间件的内部实现一无所知,这体现了面向对象中的封装性。


                                                                                                                            
图6 客户端调用APT序列图

类的设计参见源代码示例,从中可以看出,采用简单工厂模式(Simple Factory)能够在客户端不知情的情况下,灵活地替换API实现类的版本。中间件API接口清晰地定义了中间件提供的操作,客户端只须知道工厂类(APIFactory)能够得到中间件API接口的实例即可。

中间件API接口MiddlewareAPI:

publicinterfaceMiddlewareAPI{
void define(String specName, ECSpec spec);
void undefine(String specName);
void subscribe(String specName, String uri);
void unsubscribe(String specName, String uri);
EPCReports poll(String specName);
EPCReports immediate(ECSpec spec);
}

工厂类APIFactory:

publicclassAPIFactory{
publicstaticMiddlewareAPIgetAPIInstance(){
}
}

API的实现类A:

publicclassClient{
publicstaticvoidmain(String[] args) {
MiddlewareAPI api = APIFactory.getAPIInstance();
api.define(a new spec, new EPCSpec());
}
}

3.3 状态模式模拟规则的状态机

规则在其生命周期中拥有不同的状态,在每个状态对一系列操作都有着不同的表现,于是可以利用状态模式(state)来模拟规则的状态机,将不同状态的不同表现作为可变化因素封装起来,参见代码示例。

规则状态接口ECState:

publicinterfaceECState{
voidsubscribe(StringspecName,String uri);
voidunsubscribe(StringspecName,String uri);
EPCReportspoll(StringspecName);
}

未被请求状态类ECStateUnrequested:

publicclassECStateUnrequestedimplements ECState {
}

已被请求状态类ECStateRequested:

publicclassECStateRrequestedimplements ECState {
}

激活状态类ECStateActive:

publicclassECStateActiveimplements ECState {
}

规则类ECSpec:

publicclassECSpec{
privateECStatestate;
publicECStategetState(){
return state;
}
publicvoidsetState(ECStatestate) {
this.state = state;
}
}

这样,在针对规则实施相应操作的时候,就可以直接把相应操作委派给其状态属性(ECState)去做即可。比如,ECSpec的subscribe操作,只需一行代码“state.suscribe(specName, uri);”即可。其中,specName、uri为临时变量,具体取值在方法调用之前确定。

由面向对象的多态性特征,根据state字段目前所指向的对象来动态确定由ECState接口的哪一个具体的实现类的代码来完成工作。ECState接口的实现类根据实际情况确定是否需要在处理过程中修改ECSpec对象的状态属性(state),此处在应用状态模式时,需要设计多个定时器类来辅助状态机的跳转。

收藏 0
打赏 0
评论 0
电磁波能量比吸收率SAR评估的过去、现在和未来
新颖创新的SAR(电磁波能量比吸收率)快速测量系统于近期进入了市场。SAR测量系统被用来确认无线设备,如移动电话使用者的电磁波辐射状态。测量所得的SAR值则与国际标准或行业标准进行比较,使受测的无线设备可以被批

0评论2015-11-04970

量化射频干扰对线性电路的影响
典型的精密运算放大(运放)器可以有1MHz的增益带宽积。从理论上讲,用户可能期望千兆赫水平的RF信号衰减到非常低的水平,因为它们远远超出了放大器的带宽范围。然而,实际情况并非如此。事实上,包含在放大器内的静

0评论2015-09-24132

如何使用示波器进行射频信号测试
摘要随着无线通信、雷达、卫星通信、光通信等领域对于信号传输速率或者分辨率要求的提升,采用的调制制式越来越复杂,信号带宽也越来越宽。现代的实时示波器由于芯片和材料工艺的提升,已经可以提供高达几十GHz的实时

0评论2015-07-13699

欧洲无线射频EN300328 V1.8.1版标准新增要求
EN 300 328 V1.8.1适用于2.4GHz的Frequency Hopping equipment和other types of Wide Band modulation equipment, 比如2.4G WIFI, 蓝牙以及zigbee产品。而EN 301 893 V1.7.1主要针对5GHz WIFI及DFS产品。EN 300 328

0评论2015-01-23370

EMC射频设计要着重滤波和屏蔽
为了防止解调,模拟电路处于干扰环境中时需保持线性和稳定,尤其是反馈回路,更需在宽频带范围内处于线性及稳定状态,这就常常需要对容性负载进行缓冲,同时用一个小串联电阻(约为500)和一个大约5PF的积分反馈电容

0评论2013-01-14408

手机与电磁波对人有影响
现在,手机的使用越来越广泛。十多年以前,只有极少数的有钱人才用得起手机,时至今日,手机已经非常普及,成为一种基本的工作与娱乐工具。随着其越来越小巧和便宜,越来越多的人拥有了属于自己的手机。 与互联网功

0评论2012-08-02870

射频电路与天线的电磁干扰研究
当射频电路一切都按预先设定的方案设计完成之后,其性能不一定就会完全达标,其中会导致射频性能不达标的一个重要因素有可能就是电磁干扰,而电磁干扰并不一定是因为射频范畴内电路布局、布线不合理造成,亦可能是因

0评论2012-07-10454