CN101373509A - 一种基于分布式ale的rfid中间件 - Google Patents
一种基于分布式ale的rfid中间件 Download PDFInfo
- 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
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
技术领域
本发明属于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中。
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)
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的分布式架构数据共享方法 |
-
2008
- 2008-10-10 CN CN2008101990662A patent/CN101373509B/zh not_active Expired - Fee Related
Cited By (14)
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 |