一种基于分布式ale的rfid中间件的制作方法

文档序号:6469266阅读:176来源:国知局
专利名称:一种基于分布式ale的rfid中间件的制作方法
技术领域
本发明属丁 RFID中间件技术领域,特别是提供--种基于分布式ALE的RFID中间件。
背景技术
RFID中间件(Radio Frequency Identification middleware)可以自动识别和收集信息而广泛 应用于各种领域。RFID中间件在自动识别设备(比如RFID阅读器)和应用系统之间架起了数 据通信的桥梁。应用层事件(ApplicationLevel Event)规范定义出RPID中间件对上层应用系 统应该提供的一组标准接口,以及RFID中间件最基本的功能收集/过滤(Collect/Filter)。 应用层事件(Application Level Event)规范于2005年,由EPCglobal组织正式对外发布。 它定义出RFID中间件对上层应用系统应该提供的一组标准接口,以及RFID中间件最基本的 功能收集/过滤(Collect/Filter)。 ALE层介于应用业务逻辑和原始标签读取层之间。它接 收从数据源(一个或多个读写器)中发来的原始标签数据,而后,按照时间间隔等条件累计 (Accumulate)数据,将重复或不敢兴趣的EPCs剔除过滤(Filter),同时可以进行计数及组合 (Count/Group)等操作,最后,将这些信息向应用系统进行汇报。它管理设备以及向设备 订阅标签数据。
阅读器工作时候,会不停地读取标签。因而,会造成同一个标签在一分钟之内可能被读 取到几十次,这些数据如果直接发送给应用程序,将带来很大的资源浪费。而ALE的出现主 要是为了减少原始数据的冗余性,从大量数据中提炼出有效的业务逻辑。
ALE (Application Level Event)规范详细阐述了 RFID中间件的框架,如附图1所示,在 这个框架中,将多个物理阅读器组成一个逻辑阅读器。ALE看到的只是逻辑阅读器,而不会 面向物理阅读器。当某些逻辑阅读器读取的标签数过多,或者有很多个逻辑阅读器的时候, 一个ALE就无法处理那么多标签信息,就会导致ALE的延迟或者故障。
附图2所示为分布式模型,启动多个ALE。新启动的ALE和原来的ALE是映像关系, 也就是说它们的过滤规则、分组规则等等都是一样的。然后将原来负载过度的ALE部分逻辑 阅读器,根据各个逻辑阅读器的负载情况,分配给新启动的ALE。这样就能快速处理标签信 息,通过过滤、分组标签信息,生成报表反馈给应用层,。
这个模型虽然解决了负载过度的问题,但是引发了其它新问题。
第一,不符合ALE去除数据冗余的原则。因为阅读器是不停地读取标签信息, 一个标签 可能被同一个或者多个阅读器读到好多次。而上面模型中,ALE1和ALE2之间的数据处理是 相互独立的,当一个标签都逻辑阅读器0和逻辑阅读器2读到的话,它们都会向应用层提交 这个标签信息。而应用层并不需要重复标签信息。ALE的主要功能就是过滤这些重复标签, 根据应用层的规则提炼许多业务逻辑。
第二,该模型对应用层不透明。假设应用层向第一个模型的ALE0以及第二个模型的 ALE1和ALE2,分别输入一个同样的事件周期规范ECSpec(Event Cycle Specification),也就 是业务逻辑定义。经过一定的时间后,它们向应用层提供的报表分别是报表O,报表l,报表 2.而报表1和报表2并不能完全整合成报表0。也就是说用户输入同样业务逻辑,却得到不同 的报表。
由上面分析,可见只有一个ALE的RFID中间件连接的阅读器过多,或者阅读器读到的 标签数过多就会导致RFID中间件延迟或者崩溃。但是如果以分布式的形式,启动多个ALE, 而在各个ALE之间对逻辑阅读器进行简单的负载调度,又会导致新的问题不符合ALE去 除数据冗余的原则和对应用层不透明。因此本发明提出了在RFID中间件中的分布式ALE的 设计方法将中间件中的ALE的机制分解为多个ALE并行执行,并引入负载均衡的机制, 协调各ALE的工作负荷。分布式ALE的方案,在完全实现了标准ALE规定的功能的同时, 对用户以及设备管理层是透明的。

发明内容
本发明的目的在于解决现有方法的不足,提出了分布式的ALE体系结构,通过子任务的 划分,标签信息的分配,充分利用分布式资源来并行计算,解决了负载过度问题,同时还维 护了报表的一致性,从而实现了对应用层是透明的。
为了实现发明目的,采用的技术方案如下
一种基于分布式ALE的RFID中间件,包括从上到下依次连接的Global-ALE模块、 Sub-ALE模块和连接池模块,所述Global-ALE模块向上与应用业务逻辑层连接,所述连接池 模块向下与阅读标签层连接,所述Sub-ALE模块包括多个Sub-ALE,每一个Sub-ALE都具 有ALE的功能,而且每个Sub-ALE之间都是映像关系,即采用一样的业务规则。 所述Global-ALE模块设置有业务逻辑模块、命令接口模块和报表集成模块。
所述Sub-ALE模块的每个Sub-ALE均设置有标签处理模块和负载探针模块。 所述连接池模块设有Sub-ALE池和标签池,以及用于管理Sub-ALE池、标签池的 Sub-ALE池管理模块和标签池管理模块。
所述中间件设有负载均衡机制,该负载均衡机制包括标签分发、负载更新、负载调度。 所述标签分发包括分发标签单周期以及循环周期;
所述分发标签单周期是对所有的Sub-ALE进行了一次完整的标签分发,其对Sub-ALE 池的所有Sub-ALE进行遍历,只对可用的Sub-ALE进行分配标签,当有可用的Sub-ALE的 时候,就到标签池读取标签,如果标签池没有标签,就以稍停顿可终止的循环方式,来探询 标签池,当标签池有标签,就一次读取K个标签,其中K是发生标签的上阀值,当然如果标 签池里面的标签数少于K,则读取标签池剩下的所有标签,当读取到标签的时候,就将上面 读取的所有标签,根据当前可用Sub-ALE的网络地址,发送出去。
所述循环周期以稍停顿可终止的循环方式,调用单周期,对各个Sub-ALE进行分配标签。
所述负载更新具体如下
对各个可用Sub-ALE建立通道也就是要先和各个Sub-ALE建立负载通道,以方便各 个Sub-ALE将各自的负载信息及时反馈回来;
遍历Sub-ALE:对Sub-ALE池的所有Sub-ALE进行遍历,只对可用的Sub-ALE进行负 载更新;
建立通道与对应的Sub-ALE建立负载通道,如果建立负载通道失败,则将该Sub-ALE 设置成不可用;
监听并且更新负载信息对各个Sub-ALE进行负载监听,当监听到负载信息,包括 Sub-ALE的网络地址和对应的CPU使用率,就根据IP网络地址,在Sub-ALE池中遍历查找 到对应的Sub-ALE,然后更新该Sub-ALE的CPU使用率。
所述负载调度具体如下
负载调度初始化主要是初始化负载调度要使用到的阀值以及负载的参数信息,其中初
始化Sub-ALE的标识符n=0,用来循环遍历所有Sub-ALE;设置负载上阀值highLoad,默认 是80,就是当Sub-ALE对应的CPU利用率高于highLoad的时候,表示该Sub-ALE负载过 度;设置负载下阀值lowLoad,默认是20,就是当Sub-ALE对应的CPU利用率低于lowLoad
的时候,表示该Sub-ALE处于空闲状态;设置可用Sub-ALE的个数kK),便于统计当前可用 Sub-ALE的个数;设置大于highLoad的Sub-ALE的个数hn=0和小于lowLoad的Sub-ALE
的个数111=0,分别是为了统计信息;
负载分析在初始化的基础上,统计可用Sub-ALE的个数k、大于highLoad的Sub-ALE 的个数hn和小于lowLoad的Sub-ALE的个数In;
负载调度根据负载分析,调用调度算法,执行调度,具体调度算法为当可用Sub-ALE
的个数k等于大于highLoad的Sub-ALE的个数hn的时候,如果还有未启动的Sub-ALE,则 启动一个Sub-ALE;当可用Sub-ALE的个数k等于小于lowLoad的Sub-ALE的个数In的时 候,如果还有已经启动的Sub-ALE,则停止一个Sub-ALE。
所述中间件设有报表整合机制,由Global-ALE的报表整合模块对各个Sub-ALE发送上 来的报表进行整合,具体如下
报表监听首先读取配置信息,得到Sub-ALE的个数k;为每一个Sub-ALE初始化一 个代数生成器,并且将代数初始化为0,接着就是以稍暂停可终止的循环方式,监听各个 Sub-ALE的报表;
报表处理对监听到的报表,进行暂时存储到报表缓冲池;当该代的报表都到齐的时候, 就进行报表整合;当产生总报表的时候,就执行维和数据一致性模块;最后,将该总报表发 送给应用业务逻辑层;
报表存储当监听到报表的时候,调用发送该报表的Sub-ALE对应的代数生成器,获 取一个代数标识符g, g为唯一的整数值;将这个代数标识符赋给该报表;将该报表存储在报 表缓冲池;
报表整合遍历报表缓冲池,统计代数标识符是g的报表的个数n;如果n等于可用 Sub-ALE的个数k,则将报表缓冲池里面,所有代数标识符是g的报表提取出来,进行整合, 得到总报表;
最后进行维护数据一致性以及将该总报表发送给应用业务逻辑层。 所述中间件设有维护数据一致性的机制,具体如下 初始化读取总报表,并且清空上一个事件周期标签集合;
标签提取读取总报表的每一个标签,并且删除原记录;并且判断该标签是否存在于上 一个事件周期标签集合中,如果存在,就跳过该标签,如果不存在,就将该标签添加到上一
个事件周期标签集合;
同步上一个事件周期标签当将总报表的所有标签,都整理好给上一个事件周期标签集 合后,就将上一个事件周期标签集合,通过网络接口调用,同步到各个Sub-ALE中。
本发明所设计的一种基于分布式ALE的RFID中间件方法,其功能特点可以细分为如下 几个方面
1、 阅读器"即插即用"在分布式ALE的体系结构中,由于引入了连接池,使得该结 构体系层次清晰,层与层之间是相互透明的。由于分布式ALE对阅读器的变化是透明的,因 此阅读器具有很强的灵活性。对已经连接上的阅读器可以很灵活地启动与停止,而分布式ALE 并不受任何影响。对动态添加或者移除阅读器,只需与连接池建立或者关闭标签通道,而不 影响分布式ALE的其他运作。
2、 Sub-ALE(包括标签处理器和负载探针器)"即插即用"每一个Sub-ALE在分布式ALE 系统结构中是相对独立的,与各个模块的耦合性比较低。因此可以动态增加或者删除Sub-ALE。 Sub-ALE与Global-ALE的关联只有命令通道和报表通道,与连接池的关联只有标签通道和负 载均衡通道。所以动态增加或者删除S油-ALE的时候,只需建立或者关闭上面四个通道即可。
3、 智能分发标签由于标签都根据相应的存储算法存储在标签池中,并且Sub-ALE池 里面有各个Sub-ALE的网络地址、CPU利用率以及可用标识符。标签池管理模块可以选择标 签分发算法,将标签池的标签分发给各个Sub-ALE。标签分发算法有两种 一就是对Sub-ALE 池的所有可用的Sub-ALE进行轮询发送标签;二就是根据Sub-ALE池的所有可用的Sub-ALE 的CPU利用率,建立优先级;CPU利用率越高,优先级越低;优先级越低, 一次分配的标签 数越少。这样就能很好地根据各个Sub-ALE的负载情况进行分配标签,从而实现良好的负载 均衡。
4、 动态负载均衡各个Sub-ALE的负载探针模块负载探测本机的负载情况,也就是本 机的CPU利用率,并且将该值发送给连接池。连接池的Sub-ALE池管理模块,接收各个Sub-ALE 的负载信息,并且更新到Sub-ALE池。Sub-ALE池管理模块,先设置负载上阀值(High Load) 和负载下阀值(Low Load);当Sub-ALE的CPU利用率超过上阀值,就表示该Sub-ALE处于高 负载,当Sub-ALE的CPU利用率低于下阀值,就表示该Sub-ALE处于空闲状态。Sub-ALE池 管理模块会根据相应的负载调度算法来启动和停止各个Sub-ALE。
5、 整合报表。
6、维护数据一致性。


图1为现有RFID中间件的框架示意图; 图2为现有RFID中间件的分布式框架示意图; 图3为基于分布式ALE的RFID中间件的总体架构逻辑示意图; 图4为分布式ALE的标签分发的流程示意图; 图5为分布式ALE的负载更新的流程示意图; 图6为分布式ALE的负载调度的流程示意图; 图7为分布式ALE的报表整合的流程示意图; 图8为分布式ALE的维护数据一致性的流程示意图。
具体实施例方式
下面结合附图,对本发明的具体实施做进一步的详细描述。
附图3展示了基于分布式ALE的RFID中间件的总体架构,该框架包括的模块有 Global-ALE, Sub-ALE ,连接池(Connection Pool)。具体如下 Global-ALE负责响应应用层的请求以及协调各个Sub-ALE。
Global-ALE可以接受应用层的业务规则的输入,并且将这些业务规则也同步给各个 Sub-ALE。这些业务规则包括过滤标签模式,分组标签模式,获取报表的频率以及定义报表 格式等等。由于处理标签信息的依据是业务规则,而各个Sub-ALE的业务规则都实现了同步, 所以为报表的一致性奠定了基础。
应用层可以通过调用Global-ALE的接口 ,和Global-ALE交互。在和Global-ALE交互中, 有几个最基本的方法defme/undefme, subscribe/unsubscribe, poll/Immediate 。所以Global-ALE 在响应应用层的交互命令后,应该通过网络接口调用,来协调各个Sub-ALE的响应,从而维 护命令操作的一致性。
在接收了应用层的业务规则以及经过一定时间的标签处理后,Global-ALE应该向应用层 提供一份报表。而各个Sub-ALE已经根据业务规则处理了标签信息并且生产了子报表。所以 Global-ALE只需将这些子报表集成之后发给应用层。
Sub-ALE负责从连接池接收标签信息,过滤分组标签信息后,将处理后的数据提交给 Global-ALE 。
每一个Sub-ALE都具有原来ALE的功能。而且各个Sub-ALE之间都是映像关系。即它 们的业务规则都是一样的。所以连接池向任意一个Sub-ALE发送标签信息,处理的结果都是 一样的。因此可以通过将标签信息分给多个Sub-ALE来并行处理,就可以解决负载过度问题。 每一个Sub-ALE都有一个负载探针模±央,它负责检测当前处理器的负载问题。检测负载的指 数是CPU的使用率。
连接池(Connection Pool)负责接收阅读器发送的标签信息,并保存到标签池(EPC Pool)中, 然后根据调度信息将标签发送给各个Sub-ALE。
连接池的主要模块包括标签池(EPC Pool) 、 Sub-ALE池、标签池管理(EPC Pool Manager) 以及Sub-ALE池管理(Sub-ALE Pool Manager)。标签池保存了所有阅读器读取的标签信息, 其实现机制是FIFO的队列。Sub-ALE池保存了所有Sub-ALE的信息,其实现机制是单循环 链表。每一个节点描述一个Sub-ALE。其中标识符表示这个Sub-ALE的序号;IP地址代表这 个Sub-ALE的网络地址;Is Used的值是True表示当前这个Sub-ALE正在运行,否则就是闲 置;CPU利用率表示运行这个Sub-ALE的处理器的使用率,它有两个静态常量上阀值(High Load)和下阀值(LowLoad)。 CPU利用率值大于High Load的值,表示当前处理器负载过度; CPU利用率值小于Low Load的值,表示当前处理器空闲;标签池管理负责从阅读器那里接 收标签信息保存到标签池,以及读取标签池的标签信息发送给各个已经启用的Sub-ALE。 Sub-ALE池管理负责接收各个Sub-ALE的负载探针的信息,并且及时更新到Sub-ALE ,最 后根据这些探针消息来执行负载调度程序。
图4展示了分布式ALE的负载均衡的子功能标签分发的流程示意图。标签分发其实 担任着分配负载的角色,它将连接池里面的全部负载,也就是所有标签信息,按照某种分配 算法,分配给各个Sub-ALE进行处理。这样解决了负载分配问题,就为负载均衡奠定了基础。 其中标签分发具体如下
单周期分发标签。也就是对所有的Sub-ALE进行了一次完整的标签分发。
遍历Sub-ALE:对Sub-ALE池的所有Sub-ALE进行遍历,只对可用的Sub-ALE进行分 配标签。
读取标签当有可用的Sub-ALE的时候,就到标签池读取标签。如果标签池没有标签, 就以稍停顿可终止的循环方式,来探询标签池。当标签池有标签,就一次读取K个标签(其中 K是发生标签的上阀值),当然如果标签池里面的标签数少于K,则读取标签池剩下的所有标签。
发送标签当读取到标签的时候,就将上面读取的所有标签,根据当前可用Sub-ALE的 网络地址,发送出去。
循环调用单周期这里以稍停顿可终止的循环方式,调用单周期,对各个Sub-ALE进 行分配标签。
附图5展示了分布式ALE的负载均衡的子功能负载更新的流程示意图。负载更新就 是将各个Sub-ALE的负载信息,也就是CPU的利用率,及时反馈给连接池的Sub-ALE池管 理模块。为负载调度提供及时的负载信息,从而为实现动态负载均衡提供了数据依据。负载 更新具体如下
对各个可用Sub-ALE建立通道也就是要先和各个Sub-ALE建立负载通道,以方便各 个Sub-ALE将各自的负载信息及时反馈回来。
遍历Sub-ALE:对Sub-ALE池的所有Sub-ALE进行遍历,只对可用的Sub-ALE进行负 载更新。
建立通道这里与对应的Sub-ALE建立负载通道,如果建立负载通道失败,则将该 Sub-ALE设置成不可用。
监听并且更新负载信息对各个Sub-ALE进行负载监听,当监听到负载信息(包括 Sub-ALE的网络地址和对应的CPU使用率),就根据IP网络地址,在Sub-ALE池中遍历查找 到对应的Sub-ALE,然后更新该Sub-ALE的CPU使用率。
附图6展示了分布式ALE的负载均衡的子功能负载调度的流程示意图。负载调度就 是根据各个Sub-ALE的负载情况,调用调度算法所有Sub-ALE进行调度。负载调度具体如 下
负载调度初始化主要是初始化负载调度要使用到的阀值以及负载的参数信息。其中初
始化Sub-ALE的标识符n=0,用来循环遍历所有Sub-ALE;设置负载上阀值highLoad(默认是 80),就是当Sub-ALE对应的CPU利用率高于highLoad的时候,表示该Sub-ALE负载过度; 设置负载下阀值lowLoad(默认是20), 就是当Sub-ALE对应的CPU利用率低于lowLoad的 时候,表示该Sub-ALE处于空闲状态;设置可用Sub-ALE的个数k=0,便于统计当前可用 Sub-ALE的个数;设置大于highLoad的Sub-ALE的个数hn=0和小于lowLoad的Sub-ALE 的个数1if0,分别是为了统计信息。
负载分析该模块是在上模块初始化的基础上,统计可用Sub-ALE的个数k、大于 highLoad的Sub-ALE的个数hn和小于lowLoad的Sub-ALE的个数ln。
负载调度该模块根据上面的负载分析,调用调度算法,执行调度。譬如下面调度算法:
当可用Sub-ALE的个数k等于大于highLoad的Sub-ALE的个数hn的时候,如果还有未启 动的Sub-ALE,则启动一个Sub-ALE;当可用Sub-ALE的个数k等于小于lowLoad的Sub-ALE 的个数ln的时候,如果还有已经启动的Sub-ALE,则停止一个Sub-ALE。
附图7展示了分布式ALE的报表整合的流程示意图。报表整合是由Global-ALE的报表 整合模块对各个Sub-ALE发送上来的报表进行整合。具体如下
报表监听首先读取配置信息,得到Sub-ALE的个数k;为每一个Sub-ALE初始化一 个代数生成器,并且将代数初始化为0。接着就是以稍暂停可终止的循环方式,监听各个 Sub-ALE的报表。
报表处理对监听到的报表,进行暂时存储到报表缓冲池;当该代的报表都到齐的时候, 就进行报表整合;当产生总报表的时候,就执行维和数据一致性模块;最后,将该总报表发 送给应用业务逻辑层。
报表存储当监听到报表的时候,调用发送该报表的Sub-ALE对应的代数生成器,获 取一个代数标识符g(唯一的整数值);将这个代数标识符赋给该报表;将该报表存储在报表缓 冲池。
报表整合遍历报表缓冲池,统计代数标识符是g的报表的个数n;如果n等于可用 Sub-ALE的个数k,则将报表缓冲池里面,所有代数标识符是g的报表提取出来,进行整合, 得到总报表;
维护数据一致性在下面详细分析;
发送报表将该总报表发送给应用业务逻辑层。
附图8展示了分布式ALE的维护数据一致性的流程示意图。所有Sub-ALE必须共享上 一个事件周期期间读取的所有标签信息,称作previousEPCSet。 Global-ALE的总报表的所有 标签的集合恰好就是全局的previousEPCSet。因此Global-ALE将总报表的所有标签信息,添 加到Global-ALE的previousEPCSet,然后将这个previousEPCSet同步给每一个Sub-ALE。具
体如下
初始化读取总报表,并且清空上一个事件周期标签集合。
标签提取读取总报表的每一个标签,并且删除原记录;并且判断该标签是否存在于上 一个事件周期标签集合中,如果存在,就跳过该标签,如果不存在,就将该标签添加到上一 个事件周期标签集合。
同步上一个事件周期标签当将总报表的所有标签,都整理好给上一个事件周期标签集 合后,就将上一个事件周期标签集合,通过网络接口调用,同步到各个Sub-ALE中。
权利要求
1.一种基于分布式ALE的RFID中间件,其特征在于包括从上到下依次连接的Global-ALE模块、Sub-ALE模块和连接池模块,所述Global-ALE模块向上与应用业务逻辑层连接,所述连接池模块向下与阅读标签层连接,所述Sub-ALE模块包括多个Sub-ALE,每一个Sub-ALE都具有ALE的功能,而且每个Sub-ALE之间都是映像关系,即采用一样的业务规则。
2、 根据权利要求1所述的基于分布式ALE的RFID中间件,其特征在于所述Global-ALE 模块设置有业务逻辑模块、命令接口模块和报表集成模块。
3、 根据权利要求l所述的基于分布式ALE的RFID中间件,其特征在于所述Sub-ALE 模块的每个Sub-ALE均设置有标签处理模块和负载探针模块。
4、 根据权利要求l所述的基于分布式ALE的RFID中间件,其特征在于所述连接池模 块设有Sub-ALE池和标签池,以及用于管理Sub-ALE池、标签池的Sub-ALE池管理模块和 标签池管理模块。
5、 根据权利要求1至4任一项所述的基于分布式ALE的RFID中间件,其特征在于所 述中间件设有负载均衡机制,该负载均衡机制包括标签分发、负载更新、负载调度。
6、 根据权利要求5所述的基于分布式ALE的RFID中间件,其特征在于所述标签分发 包括分发标签单周期以及循环周期;所述分发标签单周期是对所有的Sub-ALE进行了一次完整的标签分发,其对Sub-ALE 池的所有Sub-ALE进行遍历,只对可用的Sub-ALE进行分配标签,当有可用的Sub-ALE的 时候,就到标签池读取标签,如果标签池没有标签,就以稍停顿可终止的循环方式,来探询 标签池,当标签池有标签,就一次读取K个标签,其中K是发生标签的上阀值,当然如果标 签池里面的标签数少于K,则读取标签池剩下的所有标签,当读取到标签的时候,就将上面 读取的所有标签,根据当前可用Sub-ALE的网络地址,发送出去。所述循环周期以稍停顿可终止的循环方式,调用单周期,对各个Sub-ALE进行分配标签。
7、 根据权利要求5所述的基于分布式ALE的RFID中间件,其特征在于所述负载更新 具体如下对各个可用Sub-ALE建立通道也就是要先和各个Sub-ALE建立负载通道,以方便各 个Sub-ALE将各自的负载信息及时反馈回来;遍历Sub-ALE:对Sub-ALE池的所有Sub-ALE进行遍历,只对可用的Sub-ALE进行负 载更新;建立通道与对应的Sub-ALE建立负载通道,如果建立负载通道失败,则将该Sub-ALE 设置成不可用;监听并且更新负载信息对各个Sub-ALE进行负载监听,当监听到负载信息,包括 Sub-ALE的网络地址和对应的CPU使用率,就根据IP网络地址,在Sub-ALE池中遍历查找 到对应的Sub-ALE,然后更新该Sub-ALE的CPU使用率。
8、 根据权利要求5所述的基于分布式ALE的RFID中间件,其特征在于所述负载调度 具体如下负载调度初始化主要是初始化负载调度要使用到的阔值以及负载的参数信息,其中初 始化Sub-ALE的标识符n=0,用来循环遍历所有Sub-ALE;设置负载上阀值highLoad,默认 是80,就是当Sub-ALE对应的CPU利用率高于highLoad的时候,表示该Sub-ALE负载过 度;设置负载下阔值lowLoad,默认是20,就是当Sub-ALE对应的CPU利用率低于lowLoad 的时候,表示该Sub-ALE处于空闲状态;设置可用Sub-ALE的个数ki,便于统计当前可用 Sub-ALE的个数;设置大于highLoad的Sub-ALE的个数hn=0和小于lowLoad的Sub-ALE 的个数111=0,分别是为了统计信息;负载分析在初始化的基础上,统计可用Sub-ALE的个数k、大于highLoad的Sub-ALE 的个数hn和小于lowLoad的Sub-ALE的个数In;负载调度根据负载分析,调用调度算法,执行调度,具体调度算法为当可用Sub-ALE的个数k等于大于highLoad的Sub-ALE的个数hn的时候,如果还有未启动的Sub-ALE,则 启动一个Sub-ALE;当可用Sub-ALE的个数k等于小于lowLoad的Sub-ALE的个数In的时 候,如果还有已经启动的Sub-ALE,则停止一个Sub-ALE。
9、 根据权利要求1至4任一项所述的基于分布式ALE的RFID中间件,其特征在于所 述中间件设有报表整合机制,由Global-ALE的报表整合模块对各个Sub-ALE发送上来的报 表进行整合,具体如下报表监听首先读取配置信息,得到Sub-ALE的个数k;为每一个Sub-ALE初始化一 个代数生成器,并且将代数初始化为0,接着就是以稍暂停可终止的循环方式,监听各个 Sub-ALE的报表;报表处理对监听到的报表,进行暂时存储到报表缓冲池;当该代的报表都到齐的吋候, 就进行报表整合;当产生总报表的时候,就执行维和数据一致性模块;最后,将该总报表发 送给应用业务逻辑层;报表存储当监听到报表的时候,调用发送该报表的Sub-ALE对应的代数生成器,获 取一个代数标识符g, g为唯一的整数值;将这个代数标识符赋给该报表;将该报表存储在报 表缓冲池;报表整合遍历报表缓冲池,统计代数标识符是g的报表的个数n;如果n等于可用 Sub-ALE的个数k,则将报表缓冲池里面,所有代数标识符是g的报表提取出来,进行整合, 得到总报表;最后进行维护数据一致性以及将该总报表发送给应用业务逻辑层。
10、根据权利要求1至4任一项所述的基于分布式ALE的RPID中间件,其特征在丁-所 述中间件设有维护数据一致性的机制,具体如下初始化读取总报表,并且清空上一个事件周期标签集合;标签提取读取总报表的每一个标签,并且删除原记录;并且判断该标签是否存在于上 一个事件周期标签集合中,如果存在,就跳过该标签,如果不存在,就将该标签添加到上一 个事件周期标签集合;同步上一个事件周期标签当将总报表的所有标签,都整理好给上一个事件周期标签集 合后,就将上一个事件周期标签集合,通过网络接口调用,同步到各个Sub-ALE中。
全文摘要
本发明提供了一种基于分布式ALE的RFID中间件,包括从上到下依次连接的Global-ALE模块、Sub-ALE模块和连接池模块,所述Global-ALE模块向上与应用业务逻辑层连接,所述连接池模块向下与阅读标签层连接,所述Sub-ALE模块包括多个Sub-ALE,每一个Sub-ALE都具有ALE的功能,而且每个Sub-ALE之间都是映像关系,即采用一样的业务规则。本发明采用了分布式的ALE体系结构,通过子任务的划分,标签信息的分配,充分利用分布式资源来并行计算,很好地解决了负载过度问题。同时,维护了报表的一致性,从而实现了对应用层是透明的。
文档编号G06K7/00GK101373509SQ20081019906
公开日2009年2月25日 申请日期2008年10月10日 优先权日2008年10月10日
发明者刘发贵, 刘泽浩, 揭育柱, 维 申 申请人:华南理工大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1