CN101373509A - 一种基于分布式ale的rfid中间件 - Google Patents

一种基于分布式ale的rfid中间件 Download PDF

Info

Publication number
CN101373509A
CN101373509A CNA2008101990662A CN200810199066A CN101373509A CN 101373509 A CN101373509 A CN 101373509A CN A2008101990662 A CNA2008101990662 A CN A2008101990662A CN 200810199066 A CN200810199066 A CN 200810199066A CN 101373509 A CN101373509 A CN 101373509A
Authority
CN
China
Prior art keywords
ale
sub
label
load
module
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA2008101990662A
Other languages
English (en)
Other versions
CN101373509B (zh
Inventor
刘发贵
揭育柱
刘泽浩
申维
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
South China University of Technology SCUT
Original Assignee
South China University of Technology SCUT
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by South China University of Technology SCUT filed Critical South China University of Technology SCUT
Priority to CN2008101990662A priority Critical patent/CN101373509B/zh
Publication of CN101373509A publication Critical patent/CN101373509A/zh
Application granted granted Critical
Publication of CN101373509B publication Critical patent/CN101373509B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种基于分布式ALE的RFID中间件,包括从上到下依次连接的Global-ALE模块、Sub-ALE模块和连接池模块,所述Global-ALE模块向上与应用业务逻辑层连接,所述连接池模块向下与阅读标签层连接,所述Sub-ALE模块包括多个Sub-ALE,每一个Sub-ALE都具有ALE的功能,而且每个Sub-ALE之间都是映像关系,即采用一样的业务规则。本发明采用了分布式的ALE体系结构,通过子任务的划分,标签信息的分配,充分利用分布式资源来并行计算,很好地解决了负载过度问题。同时,维护了报表的一致性,从而实现了对应用层是透明的。

Description

一种基于分布式ALE的RFID中间件
技术领域
本发明属于RFID中间件技术领域,特别是提供一种基于分布式ALE的RFID中间件。
技术背景
RFID中间件(Radio Frequency Identification middleware)可以自动识别和收集信息而广泛应用于各种领域。RFID中间件在自动识别设备(比如RFID阅读器)和应用***之间架起了数据通信的桥梁。应用层事件(Application Level Event)规范定义出RFID中间件对上层应用***应该提供的一组标准接口,以及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),也就是业务逻辑定义。经过一定的时间后,它们向应用层提供的报表分别是报表0,报表1,报表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的个数k=0,便于统计当前可用Sub-ALE的个数;设置大于highLoad的Sub-ALE的个数hn=0和小于lowLoad的Sub-ALE的个数ln=0,分别是为了统计信息;
负载分析:在初始化的基础上,统计可用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。
所述中间件设有报表整合机制,由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的关联只有命令通道和报表通道,与连接池的关联只有标签通道和负载均衡通道。所以动态增加或者删除Sub-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交互中,有几个最基本的方法:define/undefine,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的处理器的使用率,它有两个静态常量:上阀值(HighLoad)和下阀值(Low Load)。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的个数ln=0,分别是为了统计信息。
负载分析:该模块是在上模块初始化的基础上,统计可用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中。

Claims (10)

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.根据权利要求1所述的基于分布式ALE的RFID中间件,其特征在于所述Sub-ALE模块的每个Sub-ALE均设置有标签处理模块和负载探针模块。
4.根据权利要求1所述的基于分布式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的个数k=0,便于统计当前可用Sub-ALE的个数;设置大于highLoad的Sub-ALE的个数hn=0和小于lowLoad的Sub-ALE的个数ln=0,分别是为了统计信息;
负载分析:在初始化的基础上,统计可用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。
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的RFID中间件,其特征在于所述中间件设有维护数据一致性的机制,具体如下:
初始化:读取总报表,并且清空上一个事件周期标签集合;
标签提取:读取总报表的每一个标签,并且删除原记录;并且判断该标签是否存在于上一个事件周期标签集合中,如果存在,就跳过该标签,如果不存在,就将该标签添加到上一个事件周期标签集合;
同步上一个事件周期标签:当将总报表的所有标签,都整理好给上一个事件周期标签集合后,就将上一个事件周期标签集合,通过网络接口调用,同步到各个Sub-ALE中。
CN2008101990662A 2008-10-10 2008-10-10 一种基于分布式ale的rfid中间件 Expired - Fee Related CN101373509B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2008101990662A CN101373509B (zh) 2008-10-10 2008-10-10 一种基于分布式ale的rfid中间件

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2008101990662A CN101373509B (zh) 2008-10-10 2008-10-10 一种基于分布式ale的rfid中间件

Publications (2)

Publication Number Publication Date
CN101373509A true CN101373509A (zh) 2009-02-25
CN101373509B CN101373509B (zh) 2011-05-18

Family

ID=40447666

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008101990662A Expired - Fee Related CN101373509B (zh) 2008-10-10 2008-10-10 一种基于分布式ale的rfid中间件

Country Status (1)

Country Link
CN (1) CN101373509B (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102209028A (zh) * 2011-05-06 2011-10-05 北京傲天动联技术有限公司 控制cpu流量的装置和方法
CN102314338A (zh) * 2010-07-02 2012-01-11 航天信息股份有限公司 射频识别中间件的实现装置和方法
CN102693434A (zh) * 2011-03-22 2012-09-26 中兴通讯股份有限公司 射频识别设备接口层的通信装置及方法
CN102053962B (zh) * 2009-11-02 2012-09-26 清华大学深圳研究生院 基于轻量型中间件的网络化rfid***及数据交互方法
CN101826145B (zh) * 2009-03-06 2013-02-27 中兴通讯股份有限公司 射频识别***中实现标签清点的装置及方法
CN103399800A (zh) * 2013-08-07 2013-11-20 山东大学 基于Linux并行计算平台的动态负载均衡方法
CN103631600A (zh) * 2013-12-10 2014-03-12 中山大学深圳研究院 一种嵌入式rfid中间件的数据处理方法及***
CN105119839A (zh) * 2015-07-28 2015-12-02 浪潮电子信息产业股份有限公司 一种基于游标指针的加权调度方法及装置
CN105872946A (zh) * 2016-03-11 2016-08-17 杭州电子科技大学 RFID网络中实现k覆盖的阅读器部署方法
CN109800239A (zh) * 2019-01-15 2019-05-24 科大国创软件股份有限公司 基于Redis的分布式架构数据共享方法

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101826145B (zh) * 2009-03-06 2013-02-27 中兴通讯股份有限公司 射频识别***中实现标签清点的装置及方法
CN102053962B (zh) * 2009-11-02 2012-09-26 清华大学深圳研究生院 基于轻量型中间件的网络化rfid***及数据交互方法
CN102314338A (zh) * 2010-07-02 2012-01-11 航天信息股份有限公司 射频识别中间件的实现装置和方法
CN102693434B (zh) * 2011-03-22 2015-01-28 中兴通讯股份有限公司 射频识别设备接口层的通信装置及方法
CN102693434A (zh) * 2011-03-22 2012-09-26 中兴通讯股份有限公司 射频识别设备接口层的通信装置及方法
WO2012126212A1 (zh) * 2011-03-22 2012-09-27 中兴通讯股份有限公司 射频识别设备接口层的通信装置及方法
CN102209028A (zh) * 2011-05-06 2011-10-05 北京傲天动联技术有限公司 控制cpu流量的装置和方法
CN103399800A (zh) * 2013-08-07 2013-11-20 山东大学 基于Linux并行计算平台的动态负载均衡方法
CN103399800B (zh) * 2013-08-07 2016-04-13 山东大学 基于Linux并行计算平台的动态负载均衡方法
CN103631600A (zh) * 2013-12-10 2014-03-12 中山大学深圳研究院 一种嵌入式rfid中间件的数据处理方法及***
CN105119839A (zh) * 2015-07-28 2015-12-02 浪潮电子信息产业股份有限公司 一种基于游标指针的加权调度方法及装置
CN105872946A (zh) * 2016-03-11 2016-08-17 杭州电子科技大学 RFID网络中实现k覆盖的阅读器部署方法
CN109800239A (zh) * 2019-01-15 2019-05-24 科大国创软件股份有限公司 基于Redis的分布式架构数据共享方法
CN109800239B (zh) * 2019-01-15 2022-09-06 科大国创软件股份有限公司 基于Redis的分布式架构数据共享方法

Also Published As

Publication number Publication date
CN101373509B (zh) 2011-05-18

Similar Documents

Publication Publication Date Title
CN101373509B (zh) 一种基于分布式ale的rfid中间件
CN105468435A (zh) Nfv动态资源分配方法
CN108111931A (zh) 一种电力光纤接入网的虚拟资源切片管理方法及装置
CN101477635B (zh) 一种基于轻量级ale的嵌入式rfid中间件
CN107018175A (zh) 移动云计算平台的调度方法和装置
CN101727389A (zh) 一种分布式综合业务自动化测试***及方法
CN103514277A (zh) 用电信息采集***的任务并行处理方法
CN103152393A (zh) 一种云计算的计费方法和计费***
CN114443435A (zh) 一种面向容器微服务的性能监控告警方法及告警***
CN113370209B (zh) 一种机器人控制方法及机器人充电桩
CN103701934A (zh) 一种资源优化调度方法及虚拟机宿主机优化选择方法
CN101610173A (zh) 一种对多网元进行数据配置的方法和网管服务器
CN108009258A (zh) 一种可在线配置的数据采集与分析平台
CN105893113A (zh) 虚拟机的管理***及管理方法
CN106375480A (zh) 一种基于分布式***的电能数据实时采集***及方法
CN103036800A (zh) 虚拟机负载均衡***、节点及方法
CN102339233A (zh) 云计算集中管理平台
CN103235744A (zh) 一种智能电视的应用资源管理***
CN102457578A (zh) 一种基于事件机制的分布式网络监控方法
CN101599971B (zh) 一种串联补偿装置的通信管理设备及其管理方法
CN101893876A (zh) 一种用于大型分布式控制***的控制网络设计
CN107203256A (zh) 一种网络功能虚拟化场景下的节能分配方法与装置
CN1955990B (zh) 综合电信平台中的流程执行方法及***
CN102647457B (zh) 一种处理和上报信息的方法、装置及***
CN102014002A (zh) 一种多个网元设备的管理方法和***

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20110518

Termination date: 20171010