射频识别RFID标签处理方法和装置 【技术领域】
本发明涉及数字通讯技术领域,尤其涉及一种射频识别(RadioFrequency Identification,RFID)标签的分发方法和装置。
背景技术
在全球产品电子代码管理中心(Electronic Product Code Global,EPC global)系统框架中,每一层次标准都约定了标签接收与发送接口,而RFID中间件作为阅读器与产品电子代码(Electronic ProductCode,EPC)资讯服务系统之间的中间件,需要完成应用级别事件(Application Level Event,简称为ALE)标准中的标签的实时过滤与分组,因此,对RFID中间件的处理性能要求很高。
以下对上文中涉及的概念术语进行解释:
RFID:一种非接触式的自动识别技术,通过射频信号自动识别目标对象并获取相关数据,识别工作不受人工干预,可应用于各种恶劣环境。
EPC global:EPC的全球管理机构,它隶属于国际物品编码协会,是全球用户参与的、中立的、非营利性的标准化组织。它通过国际物品编码协会在全球103个国家和地区的编码组织来推动和实施EPC工作,主要包括:推广EPC标准;管理EPC global网络;实施EPC系统的推广工作。
EPC:其载体为RFID电子标签,借助互联网传递信息。EPC的目的是为每一件单品建立全球的、开放的标识标准,实现全球范围内对单件产品的跟踪与追溯,从而有效提高供应链管理水平、降低物流成本。
ALE:其事件处于应用领域而非边缘领域,用于提供业务层面的标准接口来对经过边缘过滤的数据再进行处理。
RFID中间件:EPC global中的ALE的系统实现,实现ALE规范中约束的所有内容,包括过滤、分组等功能,此外还实现了TDT协议中约定的标签解码,稳定性校验等功能。
目前,RFID中间件对RFID标签的分发方法为:RFID中间件在事件周期下不断接收来自阅读器的标签,当事件周期到后将收集到的标签根据事件规则进行处理,生成事件报告,最终发送给报告订阅者。这种处理方法虽然符合ALE规范要求,能够达到功能需要,当事件周期相对较小,单位时间标签发送量相对较大的情况下,标签处理的任务比较集中,在某一段时间,RFID中间件的处理任务较重,导致标签不能及时被处理,从而降低系统的性能。虽然目前有一种解决方案是增加了多线程,但由于处理本身的不可拆分性,多线程只是将接收标签和处理标签并行,做到不阻塞接收标签,仍然无法从根本上提高处理性能,致使在某些情况下,会使系统性能不断下降,严重情况下可能会导致系统崩溃。
【发明内容】
有鉴于此,本发明提供了一种RFID标签处理方法和装置,用于解决现有技术在大数据量、小事件周期的环境中,RFID标签不能及时被处理,而导致系统效率降低的问题。
根据本发明的一个方面,提供了一种RFID标签的处理方法,该方法用于对接收到的来自阅读器的RFID标签执行处理操作。
根据本发明的RFID标签的处理方法包括:在一个事件周期开始时,启动预先设置的控制器,其中,该控制器用于记录接收RFID标签的数量或时间;在该控制器记录的数量或时间到达预设阈值的情况下,确定在该控制器到达预设阈值的当前时间段内接收到的RFID标签中是否存在未处理的第一RFID标签,如果是,则根据预设的事件规则中的报告规则对上述第一RFID标签执行处理操作,并启动控制器重新记录接收RFID标签的数量或时间,否则,不对当前时间段内接收到的RFID标签进行处理,启动上述控制器重新记录接收RFID标签的数量或时间;在事件周期到达的情况下,确定在最后一次启动上述控制器到事件周期到达的时间段内接收到的RFID标签中是否存在未处理的第二RFID标签,如果是,则根据报告规则对第二RFID标签执行处理操作,否则,不对该时间段内接收到的RFID标签进行处理。
具体地,上述管控模块包括:计时子模块用于在事件周期内记录接收模块接收RFID标签的时间;或者,计数子模块用于计算接收模块接收到的RFID标签的数量。
根据本发明的另一个方面,提供了一种RFID标签的处理装置。
根据本发明的RFID标签的处理装置包括:接收模块、管控模块、预处理模块和主处理模块,其中,接收模块用于接收来自阅读器的RFID标签;管控模块用于在一个事件周期开始时,启动预先设置地控制器,并在控制器到达预设阈值时,或事件周期结束时,触发预处理模块,其中,控制器用于记录接收RFID标签的数量或时间;预处理模块用于判断在预定时间段内接收模块接收到的RFID标签中是否存在未处理的RFID标签,并在判断结果为是的情况下,触发主处理模块,其中,预定时间段包括:控制器到达预定阈值的时间段、最后一次重启控制器到事件周期结束的时间段;主处理模块,用于根据预设的事件规则中的报告规则对未处理的RFID标签执行处理操作。
通过本发明实施例提供的上述技术方案,通过将一个事件周期内接收的RFID标签分多次处理,从而将一个事件周期的RFID标签的处理压力均衡化,解决了现在技术中由于不能及时处理RFID标签而导致系统效率降低的问题,提高RFID中间件的整体性能,相比于现有技术,在大数据量、小事件周期的环境中,能够更高效地对事件周期中的RFID标签进行处理,减少因集中处理所带来的系统性能瓶颈,提高了系统的处理效率。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
【附图说明】
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1A为根据本发明实施例的RFID标签处理装置的结构示意图;
图1B为根据本发明优选实施例的RFID标签处理装置的结构图;
图2为根据本发明实施例的用于实现RFID标签处理装置的一种结构的示意图;
图3为根据本发明实施例的RFID标签处理方法的流程图;
图4为实施例一的流程图;
图5为实施例二的流程图;
图6为实施例三的流程图。
【具体实施方式】
功能概述
本发明实施例中,在事件周期中,RFID中间件不断接收来自阅读器的RFID标签,然后根据配置的计时或计数阈值来多次对收集到标签进行预处理,当到达配置的阈值的时间周期内接收到的RFID标签为新增的RFID标签,则依据事件规则中的报告规则进行过滤和分组处理,当事件周期时间间隔到后,统一整合为一个事件报告发送给事件报告的订阅者。
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
根据本发明实施例,首先提供了一种RFID标签处理装置。
图1A为根据本发明实施例的RFID标签处理装置的结构图,图1B为根据本发明优选实施例的RFID标签处理装置的结构图。
如图1A所示,根据本发明实施例的RFID标签处理装置包括:接收模块10、预处理模块12、管控模块14、主处理模块16。以下进一步结合附图来描述上述各个模块。
(一)接收模块10,用于接收来自阅读器的RFID标签。
(二)预处理模块12,与接收模块10和管控模块14连接,用于在管控模块的控制下,判断在预定时间段内接收模块10接收到的RFID标签中是否存在未处理的RFID标签,并在判断结果为是的情况下,触发主处理模块16,其中,上述预定时间段包括:控制器到达预设阈值的时间段、最后一次重启控制器到事件周期结束的时间段。
(三)管控模块14,与预处理模块12连接,用于在一个事件周期开始时,启动预先设置的控制器,并在控制器到达预设阈值时,或该事件周期结束时,触发预处理模块12。
具体地,如图1B所示,管控模块14中的控制器可以包括以下之一或其组合:计时子模块140(即计时器)或计数子模块142(即计数器)。其中,计时子模块140,用于在一个事件周期内进行计时,当达到一次计时阈值时触发一次预处理模块12,并重启所述计时子模块140,即将计时器重启计时,进行下一段的计时。计数子模块142,用于计算接收模块10接收到的RFID标签的数量,当达到一次计数阈值时触发预处理模块12,并重启所述计数子模块142进行重新计数,即将计数器置0,重新计算接下来接收到的RFID标签的数量。
具体地,如图1B所示,该装置还可以包括:第一存储模块11和第二存储模块13,其中,第一存储模块11与接收模块10连接,用于存储在上述预定时间内接收模块10接收到的RFID标签;第二存储模块13与预处理模块12连接,用于存储上述未处理的RFID标签。在具体实施过程中,上述第一存储模块11和第二存储模块12可以为两个标签容器,这两个标签容器可以位于一个存储装置中。
则预处理模块12可以包括:判断子模块120和处理子模块122。其中,判断子模块120用于判断第一存储模块11中存储的RFID标签中是否存在未处理的RFID标签;处理子模块122,与判断子模块120连接,用于在判断子模块120确定有新的未处理的RFID标签的情况下,将未处理的RFID标签从第一存储模块11复制第二存储模块13中,并将第一存储模块11清空,即删除第一存储模块11中存储的RFID标签。
(四)主处理模块16,与预处理模块12连接,当预处理模块12确定接收模块10接收到的RFID标签中存在有未处理的RFID标签时,触发主处理模块16,主处理模块16根据预设的事件规则中的报告规则,对上述未处理的RFID标签分别执行处理操作。
具体地,主处理模块16执行的处理操作包括过滤和/或分组。
进一步地,如图1B所示,该装置还包括整合模块18,与主处理模块16连接,用于将上述事件周期内主处理模块16执行处理操作后生成的事件报告进行整合,并将整合后的事件报告发送给相应的客户端。
根据本发明实施例提供的上述装置,可以将一个事件周期内接收到的RFID标签分为多次处理,从而避免了在单位时间内RFID标签数量较多时,RFID标签不能及时处理的问题。
在具体实施过程中,上述RFID标签处理装置可由图2中的RFID中间件24的清点装置240实现。该清点装置240装置包括:对外接口2400、应用事件服务2402、标签数据接收器2404、标签容器2406以及报告生成器2408。其中,
对外接口2400用于接收来自内部客户端或接口调用者20的前置操作命令,并将操作命令发送给应用事件服务2402。
应用事件服务2402用于获取标签的前置操作,通过设备驱动模块242来控制阅读器26与标签产生交互操作,进而上报标签数据。
标签数据接收器2404,相当于图1B中的接收模块10,用于对从阅读器26中接收标签,以备后续处理所用。
标签容器2406,与标签数据接收器2404连接,相当于图1A及图1B中的预处理模块12、管控模块14和主处理模块16,用于在标签收集到一定时间或者一定数量后进行一次预处理,即依据事件规则对一定阈值范围内收集到的标签进行一次处理。
报告生成器2408,与标签容器2406连接,相当于图1A及图1B中的整合模块18,用于在事件周期达到后,将前面预操作的结果整合,并追加一些附加信息形成事件报告,并将最后形成的报告发送给报告接收者22。
根据本发明实施例,还提供了一种RFID标签处理方法,该方法可以利用上述图1A、图1B和图2中的任一装置实现。
图3为本发明实施例提供的RFID标签的处理方法的接收标签的流程图。需要说明的是,在以下方法中描述的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在图3中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。如图3所示,该方法包括主要包括以下处理(步骤S300-步骤S304):
步骤S300:在一个事件周期开始时,启动预先设置的控制器,其中,该控制器用于记录接收RFID标签的数量或时间;
步骤S302:在控制器记录的数量或时间到达预设阈值的情况下,确定在控制器到达上述预设阈值的当前时间段内接收到的RFID标签中是否存在未处理的第一RFID标签,如果是,则根据预设的事件规则中的报告规则对第一RFID标签执行处理操作,并重启控制器重新记录接收RFID标签的数量或时间,否则,不对当前时间段内接收到RFID标签进行处理,并重启控制器重新记录接收RFID标签的数量或时间;
步骤S304:到达上述事件周期的情况下,确定在最后一次重启控制器到事件周期结束的时间段内接收到的RFID标签中是否存在未处理的第二RFID标签,如果是,则根据报告规则对第二RFID标签执行处理操作,否则,不对该时间段内接收到的RFID标签进行处理。
以下进一步描述上述处理的各个细节。
(一)步骤S300
在本发明实施例中,为了解决在事件周期相对较小,单位时间RFID标签发送量相对较大的情况下,在事件周期结束后再对该事件周期对接收到的RFID标签进行处理,从而可能出现RFID不能得到及时处理的问题,利用控制器进行记数或记时,将一个事件周期分为多个时间段,再对每个时间段内接收到的RFID标签进行处理,从而将一个事件周期的处理压力均衡化,使得接收到的RFID标签能够得到及时处理,从而提高RFID中间件的整体性能。
其中,上述控制器可以记录RFID中间件接收RFID标签的时间或数量,如果控制器记录的为时间,则可以通过设置一个计时器,并设置该计时器的时间阈值,在一个事件周期开始时,启动该计时器进行计时;如果控制器记录的为接收到的RFID标签,则可以通过设置一个计数器,并设置该计数器的数量阈值,该计数器的初始值为0,在一个事件周期开始时,启动该计数器计算接收到的RFID标签的数量。
(二)步骤S302
在控制器记录的数量或时间到达预设阈值时,即上述计时器到达设置的时间阈值或计数器到达设置的数量阈值,开始对这段时间内接收到RFID标签进行预处理,即判断该时间段内接收到的RFID标签中是否存在有未处理的RFID标签,在具体实施过程中,可以通过以下方法进行预处理:
步骤1:将在该时间段内从阅读器接收到的RFID标签保存到第一标签容器中;
步骤2:将第一标签容器中的RFID标签与在该事件周期内已处理的RFID标签集合进行比较,如果第一标签容器中的RFID标签中存在已处理的RFID标签集合中没有的RFID标签,则确定第一标签容器中存在有未处理的RFID标签。
上述预处理操作中,如果确定在该时间内接收到RFID标签中存在未处理的RFID标签,则根据预设的事件规则中的报告规则,对未处理的RFID标签执行相应的处理操作,并重新启动控制器记录接收RFID标签的数量和时间,具体地,即重新启动上述计时器进行计时,或将上述计数器置零,重新开始计算接收RFID标签的数量,并在预设阈值到达时,再次执行上述预处理操作;如果预处理操作确定该时间内接收到的RFID标签中不存在未处理的RFID标签,则直接重新启动控制器记录接收RFID标签的数量和时间,具体地,即重新启动上述计时器进行计时,或将上述计数器置零,重新开始计算接收RFID标签的数量,并在预设阈值到达时,再次执行上述预处理操作。
与上述预处理操作相应,对未处理的RFID标签执行处理操作可以通过以下方法实现:
步骤1:将第一标签容器中确定未处理的RFID标签复制到第二标签容器中,并清空第一标签容器,重启上述计时器或计数器;
步骤2:对第二标签容器中的上述未处理的RFID标签执行上述处理操作,并将重启上术计时器或计数器后接收到的RFID标签保存到上述第一标签容器中。
在具体实施过程中,在对该时间段内接收的未处理的RFID标签执行上述处理操作后,将上述未处理的RFID标签加入该事件周期已处理的RFID标签集合,并根据处理操作的结果生成相应的事件报告。
(三)步骤S304
当上述事件周期到达时,将对在最后一次启动上述控制器到该事件周期到达的时间内接收到RFID标签进行预处理,并在确定这段时间内接收到的RFID标签中包括未处理的RFID标签时,根据预设的事件规则中的报告规则对未处理的RFID标签执行处理操作,具体处理过程与上述步骤S304中对在预设阈值的周期内接收的RFID标签的处理过程相似,在此不再赘述。
在对上述时间内接收到的RFID标签中的未处理的RFID标签执行相应的处理操作后,将上述未处理的RFID标签加入该事件周期已处理的RFID标签集合,并根据处理操作的结果将生成相应的事件报告,将该事件报告与在此之前该事件周期内生成的所有事件报告进行整合,将整合后的事件报告发送给相应订阅者。
根据本发明实施例的上述方法,可以将RFID中间件在一个事件周期内接收到的RFID标签进行分批处理。
为了进一步描述本发明实施例提供的技术方案的具体实施方式,下面的实施例结合上述的装置,对本发明实施例提供的RFID标签的处理方法进行详细说明。
实施例一
本实施例对本发明实施例中将接收到的RFID标签进行预处理操作的方法进行说明,图4为本实施例的流程图,如图4所述,该方法主要包括以下步骤:
步骤S400:从阅读器中获取标签数据,并将其存放于接收标签容器(即上述第一标签容器)中,等待处理。
步骤S402:当管控模块中控制器(也可称为阈值控制器),即定时器或计数器,达到阈值时,预处理流程被触发。
步骤S404:将该预设阈值时间段内收集到的标签与该事件周期内已处理的集合进行比较。如果有新增的标签则触发步骤S406,否则,重新阈值控制器,触发步骤S408。
步骤S406:将新增的标签复制到一个新标签容器中,重启阈值控制器,触发主处理流程。
步骤S406:将接收标签容器清空,以存放接收到的RFID标签。
实施例二
本实施例对本发明实施例中将未接收到的RFID标签进行主处理的方法进行详细说明,图5为本实施例的流程图,如图5所示,该方法主要包括以下步骤:
步骤S500:当主处理流程被触发,取出预设的事件规则中的每个报告规则,对每个报告规则,都要执行一次步骤S502以后的操作。
步骤S502:根据报告规则中的过滤条件,将需要处理的RFID标签集合进行一次过滤,生成一个过滤后的标签集合,等待后续处理。
步骤S504:如果过滤后的集合中不包含任何标签,则执行步骤S518,如果集合不为空,则执行步骤S506。
步骤S506:判断此次操作是否为第一次预操作,如果是,则执行S508,如果不是则执行S510。
步骤S508:初始化事件报告,包括报告中的每个子报告项。
步骤S510:判断该报告规则所有分组的集合依据,如果是新增(ADDITION)集合则执行步骤S512,如果是删除(DELETION)集合则执行步骤S514,如果是当前(CURRENT)集合则执行步骤S516。
其中,ADDITION集合表示此集合与上一个事件周期多出来的标签集合,DELETION集合表示此集合与上一个事件周期少处理的标签集合,CURRENT即表示当前收集到的集合。
步骤S512:将本集合与上一个事件周期的集合进行比较,取出多的标签,形成新集合。
步骤S514:将本集合与上一个事件周期的集合进行比较,取出少的标签,形成新集合。
步骤S516:将形成的集合根据报告规则中的分组条件,将标签分入不同组中。
步骤S518:判断是否对所有的报告规则均进行了处理,如果处理完则接收,如果没有处理完则返回S502执行。
实施例三
本实施例对本发明实施例中的整合方法进行描述,图6为实施例的流程图,如图6所述,该方法主要包括以下步骤:
步骤S600:当事件周期到达后,对在最后一次启动控制器后收集的标签重新执行一次上述图5所示的流程,以保证接收到的所有的标签都被处理过,形成报告的主体。
步骤S602:根据事件规则判断是否需要在报告中增加规则内容的表述,如有需要,则执行步骤S604,如无需要则执行步骤S606。
步骤S604:将事件规则的内容追加到报告中。
步骤S606:将该事件周期生成的报告发送给相应订阅者。
步骤S608:将本次周期的标签集合放入到上次周期的集合中,以备下次周期的使用。
本发明实施例中,在管控模块的控制下,在收集到一定数量的RFID标签或收集一段时间的RFID标签后,触发一次预处理,将本阈值时间段内的标签依据事件规则进行处理,以减少在事件周期达到时所需的工作。
如上所述,借助本发明,通过事件周期内的多次预处理操作将周期内的处理压力均衡化,能有效提高RFID中间件的处理性能,提高了对事件周期内的标签进行处理的效率,降低了事件周期结束时的压力,均衡的系统性能,提高了整体效率。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。