CN101067843B - 用于处理自动识别数据的系统和方法 - Google Patents
用于处理自动识别数据的系统和方法 Download PDFInfo
- Publication number
- CN101067843B CN101067843B CN2007101021433A CN200710102143A CN101067843B CN 101067843 B CN101067843 B CN 101067843B CN 2007101021433 A CN2007101021433 A CN 2007101021433A CN 200710102143 A CN200710102143 A CN 200710102143A CN 101067843 B CN101067843 B CN 101067843B
- Authority
- CN
- China
- Prior art keywords
- rule
- automatic recognition
- data
- recognition data
- automatic
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/08—Logistics, e.g. warehousing, loading or distribution; Inventory or stock management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/08—Logistics, e.g. warehousing, loading or distribution; Inventory or stock management
- G06Q10/087—Inventory or stock management, e.g. order filling, procurement or balancing against orders
Landscapes
- Business, Economics & Management (AREA)
- Economics (AREA)
- Engineering & Computer Science (AREA)
- Marketing (AREA)
- Quality & Reliability (AREA)
- Theoretical Computer Science (AREA)
- Entrepreneurship & Innovation (AREA)
- Human Resources & Organizations (AREA)
- General Physics & Mathematics (AREA)
- Operations Research (AREA)
- Development Economics (AREA)
- Strategic Management (AREA)
- Tourism & Hospitality (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明的实施例改进数据处理,特别是改进用于数据处理的规则引擎和改进处理自动识别数据。在一个实施例中,本发明在自动识别设备层与自动识别节点层之间包括网关层,用于处理数据。网关层可以包括用于处理数据的规则引擎。在另一个实施例中,本发明包括规则处理器,其中,规则被自动激活和去激活,以减少系统开销。在再一个实施例中,规则引擎有多个服务构成,如果给定规则组的处理不需要所述服务,则可以省略它们,以减少占用空间(footprint)和规则引擎的资源消耗。
Description
技术领域
本发明涉及数据处理系统,特别涉及用于使用规则引擎(rule engine)对数据,包括自动识别(Auto-ID)数据,进行处理的系统和方法。
背景技术
自动识别系统是高度分布式系统,其包含关于其自身的信息。这些设备有时被称为“智能物件(item)设备”,而在此处被称为“自动识别设备”。自动识别系统用于例如识别或用其它方法获得关于将要制造、购买或销售、运输、或以其它方式在商业中使用的单个产品或物件(item)的信息。例如,可以将关于物理对象,诸如装运台(shipping dock)上的货盘(pallet),的信息与固定到该货盘或货盘上的货物的电子标识符(例如,标签ID)或传感器相关联地进行存储。然后,一些种类的自动识别设备,例如读取器或传感器,可以用来通过访问所述标识符和/或传感器来识别该物理对象或例如该对象的温度。因此,自动识别设备可以生成对应于产品或与产品相关联的对象的自动识别数据。如在此处所使用的,自动识别数据是识别或描述真实世界的对象的数据(例如,RFID数据),或者是描述真实世界的对象的物理环境的数据(例如,传感器数据)。所访问的信息可以被发送到计算机系统以进行存储和处理。例如,对象的商标名称和/或对象的温度可以被读取、被发送到计算机系统、被存储和被处理。
包含与它们相关联的对象相关的信息的射频识别(“RFID”)标签提供了智能物件(smart item)设备的简单形式。典型地,RFID标签将适度的存储容量与用于将所存储信息,诸如电子产品代码(EPC),无线地传送到RFID读取器的装置进行组合。在供应链管理的场境中,被附加标签的对象通常是货盘、箱子、甚至单个销售品。无源RFID标签不需要机载(on-board)电池,并且可以从几厘米到几米的距离范围内读取。另一方面,有源标签伴随有机载电池,其提供较大的读取范围和存储容量,但其单位成本较高,尺寸较大,且寿命受限,一般为3-5年。该场境中的智能设备的另一个例子是环境传感 器,例如温度和湿度传感器,其能够提供被跟踪对象及其物理环境的更完整的描述。
通过自动、实时的对象跟踪,智能物件技术能够以更加及时的方式为公司提供关于其商业运作的更精确的数据,同时有助于使操作本身简单化和自动化。这会带来成本缩减以及附加的商业利益,例如增加的资产可见性、提高的响应性(responsiveness)、甚至拓展的商业机会。然而,弥补物理世界与数字世界之间的距离需要一种灵活的、可升级的系统架构,以使自动数据获取与现有的业务流程相结合。
图1示出了典型的自动识别系统100。自动识别系统100可以被分成设备层101、设备操作层102、桥接(bridging)层103(例如业务流程桥接层)以及应用层104。设备层101可以包括多种不同的自动识别设备,诸如例如RFID标签110和112或传感器111。可以通过硬件独立的低级(low-level)接口来支持不同类型的RFID或传感器设备。设备层由用于读取和写入数据的基本操作以及用以报告观测事件的发布/订阅(publish/subscribe)接口构成。通过实现应用程序接口(“API”),可以在自动识别基础结构内部署(deploy)不同种类的“智能物件”设备。除RFID读取器之外,这些设备还可以包括环境传感器和可编程逻辑控制器(“PLC”)设备。设备操作层102协调多个设备。它还可以提供在将所接收的传感器数据传送到下一层之前对其进行过滤、压缩(condense)、聚集(aggregate)和调整的功能。这一层由一个或多个设备控制器(“DC”)120和121形成。桥接层103将到来的观测消息与现有的业务流程相关联。在这一层维护被跟踪对象的状态和历史信息。该信息可以包括对象位置、聚集信息以及与附加了标签的对象的环境相关的信息。这一层可以包括“自动识别节点”(“AIN”)130,其包括复杂和强大的数据处理软件组件。桥接层还可以包括诸如数据库储存库(repository)132的用于存储自动识别数据的存储工具(facility)以及用来管理自动识别节点的自动识别管理器组件131。最后,应用层104支持使用到来的自动识别信息的计算机应用,诸如例如包括供应链管理(SCM)、客户关系管理(CRM)或资产管理应用的企业应用140的业务流程。应用层104可以包括诸如数据仓库的数据库141以及用于访问应用的门户(portal)142。
图1示出了典型的自动识别系统100。图2示出了自动识别系统的示例应用。有效地部署RFID技术可以使商业伙伴更加容易地获取和分享关于货 物的实时数据并通过电子方式进行交易。如果供应商向零售分配中心运送12货盘的货物,则可以向它们附加无源RFID标签。在层250,应用可以在步骤201创建交付单证(delivery document),该单证包括预先装运通知(AdvancedShipping Notice,“ASN”)和电子产品代码(“EPC”)。当货盘离开供应商的装车平台时,货盘上的标签可以被自动扫描。当卡车门被关闭并用RFID高保封(bolt seal)密封时,扫描该高保封可以触发供应商的内部系统在202自动向零售商RFID系统发送该交付单证。
在另一端,零售商的自动识别节点260接收ASN,并且能够在203读取和存储该ASN。然后,一旦运送的货物到达并且从卡车上卸下,零售商就能够使用该ASN来验证其正确性。当零售商在204和207使用读取器270扫描12个到达的货盘上的RFID标签时,原始数据由设备控制器(“DC”)发送到自动识别节点260。该自动识别节点在205和208将所接收的信息与ASN中的信息进行比较。如果信息匹配,则零售商的自动识别节点在209能够通过生成报告233并将其发送到后端应用来自动确认到达的运送货物。这可以自动触发到供应商的消息,以例如生成电子清单(invoice)。在210,一个或多个零售商的后端应用可以根据来自自动识别节点的信息而继续运行。如果标签上的信息与ASN不匹配,则接收方的系统可能要求供应商的系统确认运送的货物。从图1和图2可以看出,利用自动识别数据的可用性,几乎无数的业务流程规则都可以应用到自动识别系统。
然而,现有的自动识别系统的一个问题在于,可能获得潜在地大量信息。例如,特定数目的读取器可以访问来自多个标签和传感器的自动识别数据。此外,期望的用于处理这些信息的方法(例如,业务规则)可能随时间而改变。典型地,原始数据处理以在单片AIN组件中执行的业务规则的形式在桥接层103中的自动识别节点103上执行。然而,普遍期望开发一种更加分布式的和更灵活的架构,其包括移动业务逻辑的一部分使其更靠近观测点,并且在本地做出反应,以获得更好的系统可扩展性和吞吐率。然而,较低级设备一般具有有限的存储器和计算能力。因此,不可能总是以目前在AIN上的表示和执行复杂业务规则形式来在例如RFID或传感器节点的智能设备上处理复杂商业规则。
因此,需要一种改进的自动识别数据处理。本发明通过提供用于处理自动识别数据的改进的系统和方法来解决这些和其它问题。
发明内容
本发明的实施例改进数据处理,特别是改进用于数据处理的规则引擎和改进处理自动识别数据。在一个实施例中,本发明包括处理数据的方法,包括在第一系统中从一个或多个自动识别设备接收自动识别数据;在所述第一系统中使用第一组多个规则处理所述自动识别数据,所述第一组多个规则指定该第一系统上的第一组多个可用处理方法中的特定处理方法;以及将所述自动识别数据中的至少一部分发送到第二系统,以便由第二组多个规则进行处理,所述第二组多个规则指定在该第二系统上的第二组多个可用处理方法中的特定处理方法,其中,按照对应于第一组多个规则中的至少一个规则的方法,所述自动识别数据的至少一部分被发送到所述第二系统并且用于检索相关信息,并且,所述第一系统从所述第二系统接收该相关信息并将该相关信息用在所述自动识别数据的处理中。
在另一个实施例中,本发明包括一种处理数据的方法,包括:存储多个预定义的规则,其中,每个预定义规则具有多个可用处理方法中的一个或多个相应的特定处理方法,并且其中,所述多个预定义规则的第一部分处于激活状态,并且所述多个预定义规则的第二部分处于去激活状态;执行与多个预定义规则的第一部分相对应的一个或多个方法;以及根据所执行的方法中的至少一个激活所述多个预定义规则的第二部分中的一个或多个。
在另一个实施例中,本发明包括一种包括自动识别处理网关的装置,包括:耦接到一个或多个自动识别设备的第一输入;耦接到至少一个自动识别节点的第一输出;存储器,用于存储从所述一个或多个自动识别设备接收到的信息和从所述自动识别节点接收到的信息;规则引擎,用于使用指定在所述网关上的多个可用处理方法中的特定处理方法的多个规则来处理所述自动识别数据,其中,所述自动识别网关被配置使得所述自动识别数据的至少一部分被发送到所述自动识别节点以用于检索相关信息,并且,该相关信息随后被所述自动识别网关从所述自动识别节点接收并且被用于处理所述自动识别数据。
在一个实施例中,规则引擎被构建在基于组件或模块或面向服务的架构上,该架构提供对规则执行流程的灵活配置。例如,如果省略规则定义中的条件部分,则可以改变执行流程,并且事件检测可以直接连接到动作。类似 地,可以在事件源和复杂事件检测器之间放置事件过滤器而无需改变这些组件的代码。灵活的规则引擎能够根据给定的规则组省略诸如事件组合和条件评估的处理步骤,因此其减少了给定规则组的规则引擎的占用空间(footprint)。从而,可以在具有有限处理能力的网关上根据需要来加载和运行非常复杂的规则。
以下的详细描述和附图提供了对本发明的本质和优点的更好理解。
附图说明
图1示出了典型的自动识别系统100。
图2示出了使用自动识别系统的例子。
图3示出了根据本发明一个实施例的自动识别系统。
图4示出了根据本发明的一个实施例的包括网关的计算机系统。
图5A-图5B示出了根据本发明另一个实施例的用于处理数据的规则和方法。
图6示出了本发明的另一个方面。
图7示出了根据本发明的一个实施例的示例应用。
图8示出了根据本发明的一个实施例的在网关上实现规则处理器的例子。
图9示出了根据本发明的一个实施例的网关上的规则处理器的操作。
图10示出了注册新的规则规范(specification)的例子。
图11示出了示例的规则实现的类层次结构(class hierarchy)。
图12-15示出了根据本发明的一个实施例的规则规范的语法。
图16示出了网关上的规则的示例部署(deployment)。
图17示出了网关上的规则引擎的示例的运行时(run-time)过程。
图18-19示出了在本发明的一个实施例的示例实现方式中可能用到的类。
图20示出了可以用来实现本发明的一个实施例的示例的计算机系统和网络。
具体实施方式
这里描述的是用于处理数据,包括自动识别数据,的技术。在随后的描述中,出于解释的目的,会阐述许多例子和特定细节,以便提供对本发明的全面理解。然而,由权利要求书所限定的本发明可以只包括这些例子中的一些或全部特征,或者也可以包括这些例子中的一些或全部特征与下面描述的特征的结合,并且还可以包括这里所描述的特征和概念的修改和等价物,这对于本领域技术人员来说将是显而易见的。
图3示出了根据本发明的一个实施例的自动识别系统300。自动识别系统300包括存储和/或生成自动识别数据的设备层、用于根据第一组规则处理 该数据的网关层311、用于根据第二组规则处理数据的自动识别节点层312、以及用于执行使用自动识别数据的应用的应用层313。可以将一个或多个应用耦接到一个或多个自动识别节点,并且每个自动识别节点可以耦接到一个或多个网关。反过来,每个网关可以耦接到一个或多个自动识别设备。因此,可以在网关320的输入端接收由设备层生成的自动识别数据,根据第一组规则对其进行处理,并在输出端将其提供给一个或多个自动识别节点以进行进一步的处理。因此,在一个实施例中,本发明包括中间层(网关层),以便从自动识别节点卸载(offload)一些自动识别数据处理。
设备层310包括生成自动识别数据的一个或多个自动识别设备,诸如例如RFID标签301和302、RFID读取器303和304、传感器306和308、以及传感器接收器(“RX”)307和309。RFID标签可以是有源的(即,具有内部电源)或无源的(即,没有内部电源)。一般通过从RFID读取器接收RF信号并使用所接收的信号能量中的一些来给无源标签上的电路供电(power)来给所述无源标签供电。一个或多个标签301可以接收来自RFID读取器303的读取请求信号,并且响应于该读取请求,标签301可以将存储在该标签中的RFID数据发送到该读取器。类似地,标签302可以将RFID数据发送到读取器304。RFID数据可以包括用来识别标签所附加到的或所关联的对象的数字码(即,标识)。例如,RFID数据可以是与附加了该标签的产品相对应的电子产品代码(“EPC”)。
在一些应用中,自动识别数据可以从例如可配置在网络中的一个或多个传感器得到。如图3所示,传感器306可以感测例如温度、光、声音、加速度、方向或湿度的参数。在一个实施例中,系统包括无线传感器发射器(“传感器TX”)和传感器接收器(“传感器RX”),并且由传感器生成的数据可以存储在本地和/或从传感设备无线地发送到接收器。
RFID读取器和传感器接收器耦接到网关320的输入端。网关320在输入端接收自动识别数据,并处理该数据。网关320包括规则引擎321、规则322和方法332。规则引擎是根据多个预定义规则处理数据的软件程序。规则322可以例如存储在网关320上。网关软件还可以包括多个可用于执行的方法。方法可以执行操作和/或处理数据,并且有时被称为过程或函数。如下面将详细描述的,规则可以用来指定在处理期间使用的多个可用处理方法中的特定处理方法。
网关320的输出端耦接到自动识别节点330。自动识别节点330包括规则引擎331和储存库332。规则引擎331可以与应用层中的应用和网关层中的网关两者进行交互。自动识别节点330中的规则引擎331可以执行第二级的处理。由规则引擎331使用的数据可以存储在诸如数据库的储存库332中。规则引擎331可以例如包括要求一些、全部自动识别数据或不要求自动识别数据的业务逻辑。规则引擎331可以处理复杂或计算密集的处理任务,而网关320可以处理不太复杂的处理或如下面的例子示出的对原始观测数据的预处理。
图4示出了根据本发明的一个实施例的包括网关的计算机系统400。在一个实施例中,本发明包括组件化的(componentized)网关架构,其使用源自预定义的规则的组件来接收和处理来自自动识别设备的数据。网关可以发送和接收数据、结果或与自动识别节点的事务(transaction)。例如,读取器401和传感器接收器402可以将自动识别数据403A发送到网关420。在一个实施例中,可以将自动识别数据作为自动识别事件发送到网关420。可以复制自动识别数据403A并将其移动到网关420上的存储器424中,如403B所示。可以将数据或事件存储在例如组件缓存器(component buffer)或通用存取缓存器(general access buffer)中以维护在一段时间内的事件的历史。网关420可以被配置成根据预定义的规则处理到来的数据。例如,在一个实施例中,网关420接收指定一个或多个规则的规则规范410。所述规则定义当网关接收到数据时将如何对数据进行处理。所述规则可以用来触发相应的软件组件421-423,执行软件组件421-423以实现所述规则。示例的软件组件包括根据相应的类定义实例化的对象,其中,所述类定义可以用诸如C++或Java的编程语言来实现。特定的对象可以根据预定义的规则来实例化,并且可以例如执行操作(例如对原始自动识别数据)、与其它系统(例如读取器、传感器或自动识别节点)的事务,或执行算法。网关420和自动识别节点430可以例如一起工作以处理自动识别数据。例如,网关420可以执行这样的规则,所述规则包括接收自动识别数据、访问自动识别节点430中的储存库432、以及使用所接收的数据访问和检索其它数据以用于处理网关。此外,一个或多个组件421-423可以从规则引擎43 1接收输入,或向规则引擎431提供输入,以使得网关420和自动识别节点能够一起工作来处理到来的自动识别数据。
图5A-5B示出了根据本发明另一个实施例的用于处理数据的规则和方法。在一个实施例中,规则可以被激活(activate)或去激活(deactivate)。图5A示出了N个规则和M个方法(其中M和N为整数)。规则1 501可以使用方法A 502和方法i 503。类似地,规则2 504可以使用方法B 505和方法k506。规则可以处于有效(active)状态或无效(inactive)状态。在这个例子中,规则1处于有效状态,而规则2是无效的(如由斜线图案所示出的)。在一个实施例中,可以使用方法来激活或去激活规则。图5B示出了规则对象。规则对象510可以包括属性512、激活方法514、去激活方法516以及一个和多个其它方法518。当执行激活方法时,相应的规则变为有效,并且该规则的相应方法可以被调用。当执行去激活方法时,相应的规则变为无效。
图6示出了本发明的另一个方面。本发明的一个方面提供了一种使用由其它规则在运行时自动激活和去激活的规则来处理数据的方法。首先,系统可以存储多个预定义的规则。每个预定义的规则可以具有多个可用处理方法中的一个或多个相应的特定处理方法。最初,所述多个预定义的规则中的一部分处于激活状态,而该多个预定义规则中的另一部分处于去激活状态。一个或多个激活的规则可以使相应的方法被激活。在运行时,执行与激活的规则相对应的方法可以导致另一个无效的规则变得被激活,或者导致有效的规则变成无效。例如,在一些其它的步骤601之后,规则引擎可以在602调用有效的规则1。规则1可以在603导致有效的规则2被调用。处理中的下一个步骤可以包括调用规则3604,规则3可以作为处理流程定义的一部分而被调用,或者可以根据对另一个规则(例如规则2)的执行而被调用。然而,规则3处于无效状态。因此,根据本发明的一个方面,通过在运行时自动激活无效的规则,无效的规则可以被规则引擎用来处理数据。规则可以类似地被自动去激活。通过去激活一个或多个规则,然后根据其它规则自动激活它们,可以减少系统开销(overhead)并消耗较少的资源。
图7示出了根据本发明一个实施例的示例的使用情况。图7示出了应用层701、自动识别节点702(或“业务流程桥接层”)、网关703和设备层704。在710,可以执行使用自动识别特征的应用。例如,在710,可以创建文档,并且应用可能想要使用自动识别数据来处理该文档。首先,文档被发送到自动识别节点。在711,文档由自动识别节点接收。在712,文档被存储在自动识别节点上的储存库中。在713,RFID读取器可以扫描标签并接收RFID数 据。在714,RFID数据可以被读入到网关中。网关又可以将接收到的RFID数据发送到自动识别节点,并且用于检索与RFID数据相关联的信息。例如,如果RFID数据是EPC码,并且文档是具有EPC行项(line item)的运送清单,则该EPC码可以被用来从自动识别节点检索具有相关EPC码的所有运送清单。因此,自动识别节点可以将相关的信息,例如所存储的文档,发送到网关。在一个实施例中,网关使用RFID数据生成查询(query),诸如SQL查询,和诸如远程函数调用的请求。查询可以被发送到自动识别节点上的数据库,以检索数据库中的相关信息,并自动将该信息发送回网关。在715,可以从传感器读取传感器数据。例如,可以在718生成信号以向传感器查询参数。如将在下面详细描述的,传感器可以自动地和周期性地本地存储感测到的参数(例如,周期性地接通电源;进行测量;将结果存储在非易失性存储器中;然后断电)。当传感器接收到来自网关的查询时,传感器可以将所有所存储的数据发送到网关。
在另一个实施例中,在网关接收来自一个自动识别源的自动识别数据,并且该自动识别数据被用来从另一个自动识别源检索数据。例如,来自一个源(例如RFID读取器/标签)的自动识别数据可以用来确定是否应当从另一个源(例如传感器)检索自动识别数据。一个示例性的例子是供应链管理(“SCM”)。在这个特定应用中,可以从SCM应用接收文档并将其存储在自动识别节点上。该文档可以指示附加到被运送物件的RFID数据,例如EPC码,而该被运送的物件也包括传感器。例如,RFID标签和温度传感器可以被附加到葡萄酒货物上,并且由SCM应用生成并被发送到自动识别节点的预先装运通知(“ASN”)可以包括RFID标签数据与期望的传感器数据之间的关联,其中,所述传感器数据提供关于装运条件的信息。因此,当网关接收到RFID标签数据时,相关的ASN指示还期望传感器数据。然后,触发网关以便查询传感器并检索数据。
在719,可以在网关软件中根据预定义的规则来处理自动识别数据。网关软件可以接收RFID数据、传感器数据、和与自动识别数据或由已经定义的规则指定的其它数据相关联的附加信息。在720,可以生成诸如事务、结果、甚至自动识别数据的输出,并将其从网关发送到自动识别节点。在721,自动识别节点可以存储来自网关的入站(inbound)信息。如果需要,自动识别节点702可以执行附加的本地处理,然后在722继续所述应用。
示例的实现方式
图8示出了根据本发明一个实施例的在网关层的规则处理器的示例实现方式。图8中描绘的规则处理器是事件、条件、动作(“ECA”)规则处理器的例子。规则处理器提供定义、删除、激活/去激活、以及搜索/浏览ECA规则所需的功能。网关802包括事件组合(composition)服务810、条件评估(evaluation)服务811以及动作执行服务812,它们将在图9中更具体地描述。这些服务控制对存储在网关上的规则所指定的方法的执行。网关802还包括N个规则820-822和M个可用方法830、840和850。例如还包括服务和管理平台860,以用于管理执行控制和开销。服务平台可以使用例如OSGi来实现,并且可以提供生命周期管理、远程部署(remote deployment)、以及服务依赖(service dependency)控制。
规则处理器870可以暴露(expose)应用程序接口(“API”),以用于接收规则规范871,以便在网关中添加新规则。规则处理器870可以包括分析器(parser),例如用于分析基于文本的规则规范并生成一个或多个用于处理自动识别数据的规则对象。如将在下面详细描述的,可以通过提供规则的规范来将规则加载到网关上。规范可以被转换成访问特定方法的本地规则表示(representation)(例如规则对象)。每个规则可以是有效的或无效的。在一些实施例中,有效规则导致无效规则变得有效,或者导致有效规则变得无效。在ECA规则处理器中,数据或事件可以流动通过(flow through)事件组合服务、条件评估服务和/或动作执行服务,并且有效规则可以被这些服务中的一个或多个调用。因此,在一些实施例中,规则规范可以包括事件规范部分、条件评估部分和动作部分。
图9示出了根据本发明的一个实施例的在网关上的规则处理器的操作。到来的自动识别数据被事件组合服务910接收。在一些应用中,自动识别数据可以首先由事件通知服务(未示出)打包,并且作为包括原始自动识别数据和其它信息,诸如例如时间戳、数据类型、和源标识符,的自动识别事件而在规则处理器中被接收。事件组合服务910检测特定类型的事件。事件服务910可以应用事件规则以检测简单或复杂事件。简单事件可以是检测特定属性,例如诸如检测对EPC码的接收。复杂事件可以由规则定义,所述规则可以包括使用诸如AND(与)、OR(或)、或NOT(非)的逻辑函数对事件进行逻辑组合以创建复合事件。检测复合事件赋予规则引擎更多灵活性,以 便在网关层执行更复杂的算法或处理流程。在一些实施例中,复杂事件检测服务可以结合事件检测所需的其它服务,诸如过滤服务、时间服务、报警服务、事件适配器。一旦检测到事件,该简单或复杂事件就被条件评估服务920接收。条件评估服务920可以对事件应用条件表达规则,并且如果条件满足即执行预定义的方法。接下来,动作执行服务930可以接收事件并应用由规则动作(即,由规则确定的动作)指定的方法。
在这个例子中,每个服务可以访问相应的规则以执行它们的功能。例如,事件服务910可以使用N个规则事件911-913(即,触发对规则进行评估的事件)。规则1可以指定事件、条件和动作。因此,规则1事件911可以检测由规则1指定的事件。其它事件可以由规则2事件912和任何数量的其它事件检测规则来检测。条件服务920可以使用规则921-923来评估条件表达式,并且如果条件满足则执行操作。规则1条件921可以接收事件并将该事件的一个或多个属性用作条件表达式的输入。如果条件满足,则可以执行与规则1条件相关联的方法。最后,动作执行服务930可以使用规则931-933来执行由规则所指定的各种动作。
事件可以以各种方式在服务910、920和930之间流动。在一个实施例中,可以在服务之间直接传递数据。例如,服务可以使用服务之间的异步函数调用来传递数据或事件。数据或事件可以在每个服务之间传递以便被相应的规则处理,或者数据可以存储在具有指向数据的指针的存储器中,以便用于数据存取和流程。在另一个实施例中,数据处理服务950(例如,事件代理(eventbroker))接收数据,并且服务和相应的规则订阅该数据处理服务。事件、条件和动作服务可以使用在事件、条件和动作服务之间传输事件信息的发布/订阅(pub/sub)通知服务来组合事件、条件和动作服务。生产者通过发布信息而使信息可获得,而消费者通过发出订阅来提出对事件的固定请求(standingrequest)。因此,当接收到数据或事件时,数据处理服务可以发布接收到的数据或事件。在一个实施例中,每个服务910、920和930可以暴露两种类属的(generic)和非常简单的接口:i)服务接口,其具有将事件通知作为自变量(argument)来接收的简单方法;以及ii)用于管理目的的配置接口,诸如利用每个服务注册、激活、去激活规则。如上所述,在一个实施例中,规则可以是有效的和无效的,并且有效的规则可以激活或去激活其它规则。
图10示出了注册新的规则规范的例子。在这个例子中,规则处理器1002 接收规则规范1001。规则规范的例子在下面的附录中示出。从这个例子可以看出,规则规范可以用XML来表示。如上所述,规则处理器1002可以包括用于分析基于文本的规则规范,例如XML,的分析器。在这个例子中,规则处理器1002分析规则规范1001并创建规则对象(例如,以面向对象语言,诸如Java或C++)。规则处理器1002可以包括例如用于部署规则(即,将规范翻译成对象)、激活规则、去激活规则或浏览规则的API。在1020示出了示例的规则对象。网关规则引擎可以将ECA规则实现为例如Java对象。根据规则处理器相应的实现方式,并且根据所讨论的域,可以从不同的源,例如XML文档或纯文本(plain text)文件,来获得这一表示。在事件-条件-动作处理器中,每个规则可以包括基本规则部分1010、规则事件部分1011、规则条件部分1012、以及规则动作部分1014。规则条件1012和规则动作1014部分还可以包括规则语句(statements)1013和1015,以用于通过相关的方法来实现动作。
图11示出了示例的规则实现方式的类层次结构。在这个例子中,Rule1101是基类,RuleEvent 1102是派生类,其调用Expression 1103、SimpleExpression 1104和ComplexExpression 1105以实现预定义的事件规则。ComplexExpression 1105包括ANDExpression 1106和ORExpression 1107派生类,用于实现对规则引擎所接收的数据或事件的逻辑组合。类似地,RuleCondition 1108实现条件表达式(例如,方法“RuleCondition()),并且如果条件满足则可以调用RuleStatement 1110以执行操作。RuleAction 1109通过调用RuleStatement 1110来实现动作。如果规则是有效的,它可以与上述ECA服务之一相关联。此外,在一个实施例中,每个规则可以包括方法,如上所述,所述方法在一些情况下可以激活无效的规则或去激活有效的规则。
一旦部署了规则并且获得了规则的对象表示,则规则就可以被激活或去激活。可以通过调用“激活”方法来使规则有效。规则处理器还可以提供相反的方法以去激活规则,并且可以提供如上所述的规则搜索/浏览方法。这个机制可以用于去激活一组规则中的一部分而不必对它们进行解除部署(un-deploying)。此外,可以添加调试方法来允许对规则的执行进行具体的分析。这一特性可以用来例如查看规则在管理控制台上的执行。
图12-15示出了根据本发明一个实施例的可能的规则规范语言的示例语法。图12-15用图表(diagram)示出了规则的语法。这个示例语法中的结构 (constructs)可以包括例如诸如XML命名空间或可以用作占位符的匿名(anonymous)类型的类型。如之前所提到的,ECA规则可以包括如图12所示的事件部分,条件部分和动作部分。事件部分可以包括指定应当“何时”触发ECA规则的表达式。事件可以是“简单的(simple)”(即,用原语(primitive)事件来定义),或“复杂的(complex)”(即由OR/AND结构组成-例如递归地)。图13示出了规则的事件部分的模式(schema)。在该图表中,简单事件被例示为包括一个或多个简单事件约束,用于指定将要检测的简单事件。在该图表中,复杂事件被例示为包括一个或多个复杂事件定义,用于指定将被检测的事件的组合。图14示出了条件部分。条件部分可以被用于指定操作ECA规则的附加约束,并且可以不包括在所有ECA规则中。这部分规则可以包括单一(single)语句的列表。在图14的图表中,条件被例示为一个或多个语句。语句可以指定提供服务的实体的名称、方法名称、参数列表、以及可选的返回值。在条件中用于评估条件表达式的语句一般会返回布尔值。图15示出了动作。可以以与条件部分类似的方式来构造动作部分。其也包含语句列表,该语句描述应当以所定义的顺序执行的服务。在图15的图表中,动作被例示为一个或多个语句,其指定服务提供者、方法、参数和返回值。
图16示出了在网关上对规则的示例部署。如上所述,可以通过联系规则处理器API来部署规则。在一个实施例中,可以使用该API的代理(proxy)。代理可以负责将规则表示(例如使用此处所描述的模式的XML文档)转换成Java对象。对象可以被串行化(serialize),然后被移动到规则处理器正在运行(例如在网关上)的特定目录。在这个例子中,规则处理器包括ECADeployerSrv 1601,其周期性地检查目录的描述规则的XML文件。当添加XML文件时,包含在其中的规则被分析以便获得Java对象表示。利用其,联系ECAManagerSrv 1602并且调用注册和激活方法,并且将规则事件、条件和动作部分提供给事件服务610、条件服务1620、以及动作服务1630。有效规则还可以例如订阅事件代理服务1640以接收发布的事件。
注册规则可以包括将规则集成(integrate)到ECA服务中。这一处理可以包括:i)分解(decompose)规则;ii)找到(find);iii)联系(contact);以及iv)配置ECA服务以支持规则。ECA规则管理器分解被传送以用于注册的的规则定义,并且根据其部分在服务注册(registry)中找到必需的服务。ECA 规则管理器还可以负责构建将处理所讨论的规则的服务链。然后,可以联系ECA服务以便配置。配置ECA服务本身可以包括三个步骤:a)订阅在前ECA服务的输出,b)在该服务的职责下配置任务(例如,利用必需被评估的规则的条件配置条件评估服务),以及c)配置发布器(publisher)。
图17示出了网关上的规则引擎的示例的运行时过程。图17示出了数据和执行流程的例子,以示出在处理自动识别读取事件中所涉及的示例组件。首先,自动识别设备1701读取标签。自动识别设备准备包含事件信息(EPC值,门牌号、时间戳等)的主动消息(active message)(例如使用TinyOS),并且可以将该分组(packet)发送到网关(例如通过无线电)。在网关中运行的MoteGatewaySrv 1702接收到来的无线电分组。信息可以被封装(wrap)成‘EPC’事件。服务1702例如在EventBrokerSrv 1703中发布该事件。如果存在关注这样的事件的预先定义的规则,则通知EventSrv 1704。如果满足规则表达式,则EventSrv 1704可以重新发布组合事件。如果不需要事件组合,则可以完全省略事件组合步骤。如果规则包括条件部分,则通知ConditionSrv1706。如果条件满足,则执行与该规则相关联的方法,并且服务1706重新发布该‘EPC’事件。最后,通知ActionSrv 1707,并且执行规则的特定语句,诸如例如使用计时器服务1708中的方法调用来启动计时器,使用本地储存库服务1709中的方法调用从后端数据库1720取得信息,或者通过调用系统中可用的任何插入(plug-in)服务中的方法。
图18-19示出了可以在示例实现方式中使用的类。如之前所提到的,系统可以被构造成一组可重用的服务组件(“服务”)。这些服务中的每一个可以被例如打包为OSGi包(bundle)。服务可以包括由ECA管理器服务(例如ECAManagerSrv)管理的ECA服务(例如EventSrv,ConditonSrv,ActionSrv)。操作还可以被实现为当规则指定时可以由ConditionSrv或ActionSrv使用的语句。例子包括计时器(“TimerSrv”)或自动识别数据获取服务(“MoteGatewaySrv”)。服务可以与规则引擎集成。每个服务还可以包括其它服务以完成其任务。例如,ECAManagerSrv可以在规则部署时使用EventSrv、ConditionSrv和ActionSrv,以便注册或激活规则。这些服务又可以使用EventBrokerSrv来在运行时交换信息。为了使服务知道它所要求的服务的可用性,可以由服务实现ServiceListener接口。由于一些功能对于所有ECA服务来说是公用的,因此可以实现抽象(abstract)BasicSrv类。如图18所示, ECA服务扩展这个类。
此外,ECAManagerSrv可以实现配置接口以配置服务(例如,ECAManagerSrvCfgIF)。这是外部组件可用来部署(即注册/激活)或解除部署(即去激活/撤消注册(unregister))规则、或者浏览注册的/有效的规则的接口。剩余的EventSrv、ConditionSrv和ActionSrv类实现另一个配置接口(例如ECASrvCfgIF)。这个接口可以由规则引擎内部使用,以允许ECAManagerSrv统一地访问其核心组件。
如上所述,EventSrv实现复杂事件检测功能。因此,一旦ECAManagerSrv被请求注册具有复杂事件(例如,由AND、OR或NOT连接的两个简单事件)的规则,它就可以将事件检测委托给EventSrv服务。结果,EventSrv服务可以跟踪过去的事件,并且可以在接收到新事件时执行匹配算法。过去的事件可以临时存储在缓存器中(例如,在上述组件缓存器或通用存取缓存器中)具体来说,当执行匹配时,复杂事件检测功能的这种实现方式可以消费(consume)最早公布的事件(即,在缓存器中存储了时间最长的事件)。最后,当检测到复杂事件时,可以公布新的复合事件,其由链中的下一个ECA服务(即,ConditonSrv或ActionSrv)采用。ConditonSrv可以执行一个或多个语句,以便在决定是否前进之前检查其它的条件。类似的,ActionSrv可以执行多个语句。
图19示出了用于执行操作的方法的示例实现方式。如前所述,规则的条件和动作部分可以包括语句的列表。这些语句可以在服务中相关地(coherently)分组,并且可以通过插入连接器接口统一地访问。插入接口又可以暴露类属execute()方法,其将方法名称和参数列表两者作为参数来接收。每个服务可以实现这个接口的单一方法,注意所需的参数被适当地实例化。如果在运行时发生错误,可以由相应的环境抛出(throw)和捕获(catch)PlugInException。在这个例子中,这些服务中的每一个包括三个要素:(a)代理类,实现PlugIn接口,(b)特定于服务的接口,以及(c)实现服务的实际类。由图19描绘了用于TimerSrv的这一方案。图19示出了在其它类之间的插入(PlugIn)接口1901、扩展PlugIn接口的计时器代理类1902、计时器服务接口1903(即TimerSrvIF)、以及计时器服务类(即,TimerSrv)。其它方法可以类似地实现,诸如用于访问自动识别数据1905(例如来自“MoteGateway”的传感器数据)的方法,或用于访问自动识别节点1906上的储存库(例如, LocalRepository)的方法。
图20示出了可用于实现本发明的示例的计算机系统和网络。计算机系统2007可以运行网关,而计算机系统2010可以运行自动识别节点或应用或它们两者。应用或自动识别节点还可以在服务器2031-2035中的任何一个上运行,并且可以通过因特网2030而被访问。计算机系统2007通过自动识别接口2006接收自动识别数据。计算机系统2007包括总线2005或用于在系统硬件组件之间传输信息的其它通信机制。系统2007包括与总线2005耦接的处理器2001,以用于处理信息。计算机系统2007还包括耦接到总线2005的存储器2002,用于存储将被处理器2001执行的信息和指令,诸如到来的自动识别数据、规则规范或规则处理器软件。这个存储器的可能实现可以是,但不限于,随机存取存储器(RAM)、只读存储器(ROM),或它们两者。还提供存储设备2004以用于存储信息和指令。存储设备的一般形式包括例如硬盘驱动器、磁盘、光盘、CD-ROM、DVD、快闪存储器、USB存储卡、和计算机能够从其进行读取的任何其它介质。
计算机系统2010包括与系统2007类似的配置,但可以不包括自动识别接口。网关与节点之间的通信可以通过例如标准本地网络。系统2010可以经由2017耦接到用于向计算机用户显示信息的显示器2012,诸如阴极射线管(CRT)和液晶显示器(LCD)。输入设备2011,诸如键盘和/或鼠标,耦接到总线2017,以用于将从用户向处理器2013传输信息和命令选择。这些组件的组合允许用户与系统进行通信。
计算机系统2007和2010还包括网络接口2003和2015。网络接口可以提供每个系统与本地网络2020之间的双向数据通信。网络接口可以是数字用户线(DSL)或调制解调器,以通过电话线提供数据通信连接。网络接口的另一个例子是局域网(LAN)卡,用以提供到兼容的LAN的数据通信连接。另一个例子是无线链路。在任何这些实现方式中,网络接口发送和接收携带表示各种类型信息的数字数据流的电信号、电磁信号或光信号。
计算机系统2007和2010可以通过到内联网或因特网2030的网络接口发送和接收信息,包括自动识别数据。在因特网的例子中,软件组件或服务可以驻留在网络上的多个不同的计算机系统2010或服务器2031上。服务器2031可以通过因特网2030、本地网络2020以及到计算机系统2006或2010上的软件的网络接口发送或接收来自应用或自动识别节点的信息。然后,所述信 息可以例如被发送到处理器,以便由规则引擎执行。然后,接收到的信息可以由处理器进行处理,和/或存储在存储设备2004、2016或其它非易失性存储器中以便以后执行。所述发送和接收信息的过程可以用于在计算机系统2007、2010以及服务器2031至2035中的任何一个之间的任意方向的通信。
上述描述示出了本发明的各种实施例以及如何实现本发明各方面的例子。上述例子和实施例不应被认为是仅有的实施例,而是提供用来示例由所附权利要求书限定的本发明的灵活性和优点的。根据上述公开内容以及随后的权利要求书,其它安排、实施例、实现方式和等价物对于本领域技术人员来说将是显而易见的,并且可以在不脱离权利要求书所限定的本发明的精神和范围的情况下得到实施。
附录
以下是使用XML的示例的规则规范:
规则1-到来的EPC:
<?xml version=″1.0″encoding=″UTF-8″?>
<tns:rule ruleid=″1″rulename=″IncomingEPC″
xmlns:tns=″http://www.dvsl.informatik.tu-darmstadt.de/ECARuleSchema″
xmlns:xsi=″http://www.w3.org/2001/XMLSchema-instance″
xsi:schemaLocation=″http://www.dvsl.informatik.tu-darmstadt.de/ECARuleSchemaECARuleSchema.xsd″>
<event>
<simpleEvent>
<simpleEventConstraint attribute=″type″operator=″=″
value=″EPC″/>
</simpleEvent>
</event>
<action>
<statement
description=″Request the ASN id associated to the EPC code read″>
<serviceProvider name=″LocalRepository″/>
<method name=″getASNId″/>
<parameter name=″Door″value=″Door″type=″EVENT″/>
<parameter name=″EPCValue″value=″EPCValue″type=″EVENT″/>
<!--Things to publish ifthere is no ASN for the read EPC-->
<parameter name=″topic″value=″ECA″type=″CONST″/>
<parameter name=″type″value=″UnexpectedEPC″type=″CONST″/>
<parameter name=″Door″value=″Door″type=″EVENT″/>
<parameter name=″EPCValue″value=″EPCValue″type=″EVENT″/>
<return name=″ASNId″/>
</statement>
<statement
<serviceProvider name=″Timer″/>
<method name=″startTimer″/>
<parameter name=″TimerId″value=″ASNTimer″type=″CONST″/>
<parameter name=″TimerName″value=″ASNId″type=″LOCAL″/>
<parameter name=″DueTime″value=″30″type=″CONST″/>
<!--Things to publish iftimer times out-->
<parameter name=″topic″value=″ECA″type=″CONST″/>
<parameter name=″tyPe″value=″ASNTimeOut″type=″CONST″/>
<parameter name=″ASNId″value=″ASNId″type=″LOCAL″/>
</statement>
<statement
description=″Append the received EPC in the Local Repository″>
<serviceProvider name=″LocalRepository″/>
<method name=″appendEPC″/>
<parameter name=″EPCValue″value=″EPCValue″type=″EVENT″/>
<parameter name=″ASNId″value=″ASNId″type=″LOCAL″/>
</statement>
<statement
description=″Request the Mote id associated to the EPC code read″>
<serviceProvider name=″LocalRepository″/>
<method name=″getMoteId″/>
<parameter name=″EPCValue″value=″EPCValue″type=″EVENT″/>
<parameter name=″ASNId″value=″ASNId″type=″LOCAL″/>
<retum name=″MoteId″/>
</statement>
<statement description=″Query motes for physical conditions″>
<serviceProvider name=″MoteGateway″/>
<method name=″queryHistory″/>
<parameter name=″MoteId″value=″MoteId″type=″LOCAL″/>
</statement>
<statement
description=″Set a timer for the mote′MoteId′query″>
<serviceProvider name=″Timer″/>
<method name=″startTimer″/>
<parameter name=″TimerId″value=″MoteTimer″type=″CONST″/>
<parameter name=″TimerName″value=″MoteId″type=″LOCAL″/>
<parameter name=″DueTime″value=″15″type=″CONST″/>
<!--Things to publish ifthe timer times out -->
<parameter name=″topic″value=″ECA″tyPe=″″CONST″/>
<parameter name=″type″value=″MoteTimeOut″type=″CONST″/>
<parameter name=″MoteId″value=″MoteId″type=″LOCAL″/>
</statement>
<statement
description=″Check whether all the required data was collected″>
<serviceProvider name=″LocalRepository″/>
<method name=″checkAllDataCollected″/>
<parameter name=″ASNId″value=″ASNId″type=″LOCAL″/>
<!--Things to publish if all data was collected-->
<parameter name=″top″value=″ECA″tyPe=″CONST″/>
<parameter name=″type″value=″DataCollectionReady″
type=″CONST″/>
<parameter name=″ASNId″value=″ASNId″type=″LOCAL″/>
</statement>
</action>
</tns:rule>
规则2-传感器数据
<?xml version=″1.0″encoding=″UTF-8″?>
<tns:rule ruleid=″2″rulename=″IncomingSensorData″
xmlns:tns=″http://www.dvs1.informatik.tu-darmstadt.de/ECARuleSchema″
xmlns:xsi=″http://www.w3.org/2001/XMLSchema-instance″
xsi:schemaLocation=″http://www.dvs1.informatik.tu-darmstadt.de/ECARuleSchema
ECARuleSchema.xsd″>
<event>
<complexEvent operator=″OR″>
<event>
<simpleEvent>
<simpleEventConstraint attribute=″type″operator″=″
value=″SensorData″/>
</simpleEvent>
</event>
<event>
<simpleEvent>
<simpleEventConstraint attribute=″type″operator=″=″
value=″MoteTimeOut″/>
</simpleEvent>
</event>
</complexEvent>
</event>
<action>
<statement
description=″Stops the timer associated to the MoteQuery″>
<serviceProvider name=″Timer″/>
<method name=″stopTimer″/>
<parameter name=″TimerId″value=″MoteTimer″type=″CONST″/>
<parameter name=″TimerName″value=″MoteId″type=″EVENT″/>
</statement>
<statement description=″Appends the history received from the mote in the repository″>
<serviceProvjder name=″LocalRepository″/>
<method name=″appendHistory″/>
<parameter name=″MoteId″value=″MoteId″type=″EVENT″/>
<parameter name=″SensorData″value=″SensorData″type=″EVENT″/>
</statement>
<statement
description=″Request the ASN Id associated to the MoteID″>
<serviceProvider name=″LocalRepository″/>
<method name=″getASNIdForMoteId″/>
<parameter name=″MoteId″value=″MoteId″type=″EVENT″/>
<return name=″ASNId″/>
</statement>
<statement
description=″Check whether all the required data was collected″>
<serviceProvider name=″LocalRepository″/>
<method name=″checkAllDataCollected″/>
<parameter name=″ASNId″value=″ASNId″type=″LOCAL″/>
<!--Things to publish if all data was collected-->
<parameter name=″topic″value=″ECA″type=″CONST″/>
<parameter name=″type″value=″DataCollectionReady″
type=″CONST″/>
<parameter name=″ASNId″value=″ASNId″type=″LOCAL″/>
</statement>
</action>
</tns:rule>
规则3-运送结束
<?xml version=″1.0″encoding=″UTF-8″?>
<tns:rule rulejd=″3″rulename=″EndOfShipment″
xmlns:tns=″http://www.dvs1.informatik.tu-darmstadt.de/ECARuleSchema″
xmlns:xsi=″http://www.w3.org/2001/XMLSchema-instance″
xsi:schemaLocation=″http://www.dvs1.informatik.tu-darmstadt.de/ECARuleSchema
ECARuleSchema.xsd″>
<event>
<complexEvent operator=″OR″>
<event>
<simpleEvent>
<simpleEventConstraint attribute=″type″operator=″=″
value=″ASNTimeOut″/>
</simpleEvent>
</event>
<event>
<simpleEvent>
<simpleEventConstraint attribute=″type″operator=″=″
value=″DataCollectionReady″/>
</simpleEvent>
</event>
</complexEvent>
</event>
<action>
<statement
<serviceProvider name=″Timer″/>
<method name=″stopTimer″/>
<parameter name=″TimerId″value=″ASNTimer″type=″CONST″/>
<parameter name=″TimerName″value=″ASNId″type=″EVENT″/>
</statement>
<statement description=″Verify the Shipment readings″>
<serviceProvider name=″LocalRepository″/>
<method name=″verify″/>
<parameter name=″ASNId″value=″ASNId″type=″EVENT″/>
</statement>
<statement
description=″Report the Shipment readings to the backend″>
<serviceProyider name=″LocalRepository″/>
<method name=″report″/>
<parameter name=″ASNId″value=″ASNId″type=″EVENT″/>
</statement>
</action>
</tns:rule>
规则4-意外(异常处理)
<?xml version=″1.0″encoding=″UTF-8″?>
<tns:rule ruleid=″4″rulename=″EPCException″
xmlns:tns=″http://www.dvs1.informatik.tu-darmstadt.de/ECARuleSchema″
xmlns:xsi=″http://www.w3.org/2001/XMLSchema-instance″
xsi:schemaLocation=″http://www.dvs1.informatik.tu-darmstadt.de/ECARuleSchema
ECARuleSchema.xsd″>
<event>
<simpleEvent>
<simpleEventConstraint attribute=″type″operator=″=″
value=″UnexpectedEPC″/>
</simpleEvent>
</event>
<action>
<statement description=″Reports the read EPC to the backend″>
<serviceProvider name=″Backend″/>
<method name=″reportUnexpectedEPC″/>
<parameter name=″EPCValue″value=″EPC″type=″EVENT″/>
<parameter name=″Door″value=″Door″type=″EVENT″/>
</statement>
</action>
</tns:rule>
Claims (17)
1.一种处理数据的方法,包括:
在第一系统(320;420;703)中从一个或多个自动识别设备(301-309)接收自动识别数据(403A);
在所述第一系统(320;420;703)中使用第一组多个规则(322)处理所述自动识别数据(403A),所述第一组多个规则(322)指定该第一系统(320;420;703)上的第一组多个可用处理方法(332)中的特定处理方法;以及
将所述自动识别数据(403A)中的至少一部分发送到第二系统(330;430;702),以便由第二组多个规则进行处理,所述第二组多个规则指定在该第二系统(330;430;702)上的第二组多个可用处理方法中的特定处理方法,
其中,按照对应于第一组多个规则(322)中的至少一个规则的方法,所述自动识别数据(403A)的至少一部分被发送到所述第二系统(330;430;702)并且用于检索相关信息,并且,所述第一系统(320;420;703)从所述第二系统(330;430;702)接收该相关信息并将该相关信息用在所述自动识别数据(403A)的处理中。
2.如权利要求1所述的方法,其中,第一预定义规则指定将被检测的自动识别数据(403A)的预定义组合,并且与该第一预定义规则相对应的一个或多个方法(332)检测所指定的自动识别数据(403A)的组合。
3.如权利要求1所述的方法,其中,第一预定义规则为所述自动识别数据(403A)指定条件表达式,并且与该第一预定义规则相对应的一个或多个方法将所指定的条件表达式应用到该自动识别数据(403A)。
4.如权利要求1所述的方法,其中,所述自动识别数据(403A)包括多个自动识别事件,所述方法还包括:
执行与第一预定义规则相对应的一个或多个第一方法,以检测所接收到的自动识别事件的预定义组合;
执行与第二预定义规则相对应的将条件表达式应用到一个或多个自动识别事件的一个或多个第二方法,并且,如果该条件表达式得到满足,则执行与该第二预定义规则相对应的一个或多个第三方法;以及
执行与第三预定义规则相对应的一个或多个第四方法。
5.如权利要求1所述的方法,还包括:
接收规则规范(871;1001);
分析该规则规范(871;1001);以及
根据该规则规范(871;1001)生成用于处理所述自动识别数据(403A)的一个或多个规则对象(510;1020)。
6.如权利要求5所述的方法,其中,所述规则规范(871;1001)指定事件组合部分(910)、条件部分(920)或动作部分(930)中的一个或多个。
7.如权利要求1所述的方法,其中,所述自动识别设备(301-309)包括一个或多个RFID读取器(303,304),并且,在所述第一系统(320;420;703)中从所述一个或多个RFID读取器(303,304)接收自动识别数据(403A)。
8.如权利要求1所述的方法,其中,所述自动识别设备(301-309)包括一个或多个传感器(307,309),并且,在所述第一系统(320;420;703)中从所述一个或多个传感器(307,309)接收所述自动识别数据(403A)。
9.如权利要求1所述的方法,其中,所述自动识别设备(301-309)包括第一自动识别源和第二自动识别源,并且,在所述第一系统(320;420;703)中从所述第一自动识别源接收自动识别数据(403A),并且该从第一自动识别源接收的自动识别数据(403A)用于从所述第二自动识别源检索数据。
10.一种包括自动识别网关(320;420;703)的装置,包括:
耦接到一个或多个自动识别设备(301-309)的第一输入;
耦接到至少一个自动识别节点(330;430;702)的第一输出;
存储器,用于存储从所述一个或多个自动识别设备(301-309)接收到的信息和从所述自动识别节点(330;430;702)接收到的信息;
规则引擎(321;421),用于使用指定在所述自动识别网关(320;420;703)上的多个可用处理方法中的特定处理方法(332)的多个规则(322)来处理自动识别数据(403A),
其中,所述自动识别网关(320;420;703)被配置使得所述自动识别数据(403A)的至少一部分被发送到所述自动识别节点(330;430;702)以用于检索相关信息,并且,该相关信息随后被所述自动识别网关(320;420;703)从所述自动识别节点(330;430;702)接收并且被用于处理所述自动识别数据(403A)。
11.如权利要求10所述的装置,还包括分析器,用于分析规则规范并生成一个或多个规则对象(510;1020),以用于处理所述自动识别数据(403A)。
12.如权利要求10所述的装置,其中,所述规则引擎(321;421)包括用于控制对复杂事件规则的执行的事件服务。
13.如权利要求10所述的装置,其中,所述规则引擎(321;421)包括条件服务,用于控制对规则的事件条件的执行。
14.如权利要求10所述的装置,其中,所述规则引擎(321;421)包括动作服务,用于控制对规则动作的执行。
15.如权利要求10所述的装置,其中,所述自动识别设备(301-309)包括读取器(303,304),并且,所述第一输入耦接到所述RFID读取器(303,304)。
16.如权利要求10所述的装置,其中,所述自动识别设备(301-309)包括传感器(307,309),并且,所述第一输入耦接到所述传感器(307,309)。
17.如权利要求10所述的装置,其中,所述自动识别设备(301-309)包括第一自动识别源和第二自动识别源,并且,所述自动识别网关(320;420;703)从所述第一自动识别源接收第一自动识别数据,并且所述第一自动识别数据被用于从所述第二自动识别源检索第二自动识别数据。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/429,151 US8452663B2 (en) | 2006-05-04 | 2006-05-04 | Systems and methods for processing auto-ID data |
US11/429,151 | 2006-05-04 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101067843A CN101067843A (zh) | 2007-11-07 |
CN101067843B true CN101067843B (zh) | 2010-12-01 |
Family
ID=38255454
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007101021433A Active CN101067843B (zh) | 2006-05-04 | 2007-04-29 | 用于处理自动识别数据的系统和方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8452663B2 (zh) |
EP (1) | EP1855238A1 (zh) |
CN (1) | CN101067843B (zh) |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10445799B2 (en) * | 2004-09-30 | 2019-10-15 | Uber Technologies, Inc. | Supply-chain side assistance |
US20070294360A1 (en) * | 2006-06-15 | 2007-12-20 | International Business Machines Corporation | Method and apparatus for localized adaptation of client devices based on correlation or learning at remote server |
US20090083612A1 (en) * | 2007-09-20 | 2009-03-26 | Baker Allen F | Method for processing electronic documents |
CN101488843A (zh) * | 2008-01-16 | 2009-07-22 | 北京航空航天大学 | 一种基于冗余机制的高可用服务组合实现方法 |
KR20100000334A (ko) * | 2008-06-24 | 2010-01-06 | 삼성전자주식회사 | 디바이스 인터페이싱 방법 및 장치 |
CN101882354B (zh) * | 2009-05-08 | 2013-09-18 | 北京时代凌宇科技有限公司 | 一种动态计算传感器物理量的装置和方法 |
FR2962823B1 (fr) * | 2010-07-13 | 2012-08-17 | Ensuite Inf | Processeur d'analyse situationnelle |
US8463888B1 (en) * | 2010-12-06 | 2013-06-11 | The Boeing Company | Methods and systems for managing automated identification technologies information |
WO2013097073A1 (zh) * | 2011-12-26 | 2013-07-04 | 华为技术有限公司 | 一种流处理方法和装置 |
US9195631B1 (en) * | 2012-03-26 | 2015-11-24 | Emc Corporation | Providing historical data to an event-based analysis engine |
KR20140000578A (ko) * | 2012-06-25 | 2014-01-03 | 삼성전자주식회사 | 관리 서버, 화상형성장치, OSGi 기반 서비스 제공 방법 및 컴퓨터 판독가능 기록매체 |
US9354762B1 (en) | 2012-06-26 | 2016-05-31 | Emc International Company | Simplifying rules generation for an event-based analysis engine by allowing a user to combine related objects in a rule |
US9430125B1 (en) | 2012-06-27 | 2016-08-30 | Emc International Company | Simplifying rules generation for an event-based analysis engine |
US8949168B1 (en) | 2012-06-27 | 2015-02-03 | Emc International Company | Managing a memory of an event-based analysis engine |
CN103885376A (zh) * | 2012-12-19 | 2014-06-25 | 施耐德电器工业公司 | 可编程逻辑控制器及其事件驱动编程方法 |
US9098804B1 (en) | 2012-12-27 | 2015-08-04 | Emc International Company | Using data aggregation to manage a memory for an event-based analysis engine |
GB2515035A (en) * | 2013-06-11 | 2014-12-17 | Ibm | Prioritising event processing based on system workload |
US10878323B2 (en) * | 2014-02-28 | 2020-12-29 | Tyco Fire & Security Gmbh | Rules engine combined with message routing |
US20150288604A1 (en) | 2014-04-02 | 2015-10-08 | Tyco Fire & Security Gmbh | Sensor Network Gateway |
US9569284B2 (en) * | 2014-12-29 | 2017-02-14 | International Business Machines Corporation | Composing applications on a mobile device |
US10601823B2 (en) * | 2015-04-07 | 2020-03-24 | Tyco Fire & Security Gmbh | Machine to-machine and machine to cloud end-to-end authentication and security |
CN104852909B (zh) * | 2015-04-24 | 2019-07-09 | 新华三技术有限公司 | 一种攻击检测规则的开启方法和设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1296585A (zh) * | 1998-01-22 | 2001-05-23 | 英特罗杰斯公司 | 用于通用数据交换网关的方法和装置 |
CN1663204A (zh) * | 2002-06-18 | 2005-08-31 | 株式会社Ntt都科摩 | 网关装置和在该网关装置中的信号处理方法 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6943678B2 (en) * | 2000-01-24 | 2005-09-13 | Nextreme, L.L.C. | Thermoformed apparatus having a communications device |
US7290708B2 (en) * | 2002-07-31 | 2007-11-06 | Sap Aktiengesellschaft | Integration framework |
US6901304B2 (en) * | 2002-01-11 | 2005-05-31 | Sap Aktiengesellschaft | Item tracking system architectures providing real-time visibility to supply chain |
US7969306B2 (en) | 2002-01-11 | 2011-06-28 | Sap Aktiengesellschaft | Context-aware and real-time item tracking system architecture and scenarios |
US6941184B2 (en) * | 2002-01-11 | 2005-09-06 | Sap Aktiengesellschaft | Exchange of article-based information between multiple enterprises |
US7079023B2 (en) * | 2002-10-04 | 2006-07-18 | Sap Aktiengesellschaft | Active object identification and data collection |
WO2004042563A2 (en) * | 2002-11-04 | 2004-05-21 | Instrumentarium Corporation | Method and system for integrated processing of automatically collected interaction data |
US7603291B2 (en) * | 2003-03-14 | 2009-10-13 | Sap Aktiengesellschaft | Multi-modal sales applications |
US7267275B2 (en) | 2003-11-04 | 2007-09-11 | Captech Ventures, Inc. | System and method for RFID system integration |
US8604910B2 (en) * | 2004-07-13 | 2013-12-10 | Cisco Technology, Inc. | Using syslog and SNMP for scalable monitoring of networked devices |
KR100674088B1 (ko) * | 2004-12-20 | 2007-01-24 | 한국전자통신연구원 | 무선식별 기술을 이용한 실시간 비즈니스 프로세스 실행시스템 및 그 방법 |
US8198985B2 (en) * | 2005-05-31 | 2012-06-12 | Amtech Systems, LLC | Automatic mode detection in a dual operating mode RFID tag |
-
2006
- 2006-05-04 US US11/429,151 patent/US8452663B2/en active Active
-
2007
- 2007-04-05 EP EP07007190A patent/EP1855238A1/en not_active Ceased
- 2007-04-29 CN CN2007101021433A patent/CN101067843B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1296585A (zh) * | 1998-01-22 | 2001-05-23 | 英特罗杰斯公司 | 用于通用数据交换网关的方法和装置 |
CN1663204A (zh) * | 2002-06-18 | 2005-08-31 | 株式会社Ntt都科摩 | 网关装置和在该网关装置中的信号处理方法 |
Also Published As
Publication number | Publication date |
---|---|
EP1855238A1 (en) | 2007-11-14 |
US8452663B2 (en) | 2013-05-28 |
US20070260470A1 (en) | 2007-11-08 |
CN101067843A (zh) | 2007-11-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101067843B (zh) | 用于处理自动识别数据的系统和方法 | |
Bornhövd et al. | Integrating automatic data acquisition with business processes experiences with SAP's auto-ID infrastructure | |
CN101163152B (zh) | 智能物件环境中基于成本的组件部署 | |
US7151453B2 (en) | Bi-directional data flow in a real time tracking system | |
US8413170B2 (en) | Event processing finite state engine and language | |
US7389921B2 (en) | Dynamic component management | |
US6941184B2 (en) | Exchange of article-based information between multiple enterprises | |
US7267275B2 (en) | System and method for RFID system integration | |
US7479875B2 (en) | Method of and system for managing data in a sensor network | |
US7260553B2 (en) | Context-aware and real-time tracking | |
Bornhovd et al. | Integrating smart items with business processes an experience report | |
US8417854B2 (en) | Generic device integration within an auto-id system | |
JP2005535543A (ja) | 資産管理及び追跡機能を提供するためのシステム及び方法 | |
KR100974621B1 (ko) | Rfid 비즈니스 인식 프레임워크 | |
Cheong et al. | RFID data management and RFID information value chain support with RFID middleware platform implementation | |
Hackenbroich et al. | Optimizing business processes by automatic data acquisition: RFID technology and beyond | |
US20060168112A1 (en) | Generic integration within an auto-id system | |
Guo et al. | Design and Research of IOT Based Logistics Warehousing and Distribution Management System | |
KR20140132197A (ko) | Rfid 기반 통합 물류 이력 시스템 | |
Kang et al. | Design and Implementation of ALE v1. 1 Middleware in RFID systems | |
KR100701644B1 (ko) | 객체 위치 추적 통합 시스템 및 그 방법 | |
Leontiadis et al. | Bridging RFID systems and enterprise applications through virtualized connectors | |
Kefalakis et al. | Generating Business Events in an RFID network | |
Zervoudakis et al. | SmartProduct: a prototype platform for product monitoring-as-a-service, leveraging IoT technologies and the EPCIS standard | |
Guo¹ et al. | Fujian Yili Electric Power Technology Co., Ltd., Beijing 100055, China |
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 |