负载分布系统、事件处理分布控制装置以及程序的制作方法

文档序号:6557821阅读:141来源:国知局
专利名称:负载分布系统、事件处理分布控制装置以及程序的制作方法
技术领域
本发明涉及用于为多个处理服务器实施负载分布的负载分布系统。
背景技术
在处理发生于设备的事件的现有系统中,一个处理服务器504执行事件处理,如图1所示。在该系统中,随着从511a到511f的事件数的增加,服务器504成为处理的瓶颈。这导致系统处理性能受到限制的问题。
如图2中所示,在基于诸如在Web服务中使用的方法等服务器和客户端方法的负载分布方法中,服务器606a和606b分别包括基本上彼此相等的应用程序608a和608b。在这个系统中,参考传输控制协议(TCP)连接或cookie,来自相同的客户端(605a至605f)的会话被传递到相同的服务器(606a、606b)。
日本专利申请未决公开第2000-222374号讲述了一种用于根据来自包处理器的响应,确定包分散控制器向其发出处理请求的包处理器之一的技术。
根据日本专利申请未决公开第2004-005249号,在处理器中安装有分布程序,以便能够根据控制通道号或终端号来在处理器之间传递处理。

发明内容
因此,本发明的一个目的是为了解决该问题,提供一种负载分布系统,其中安装有多个处理服务器,并且在处理服务器前面的级中安装有上下文依赖分布器103。为分布器103设置分布规则,以将事件适当地分布到相关的处理服务器,该事件是服务器执行为其设定的处理规则必需的。
为了实现根据本发明的第一个方面的目标,提供一种负载分布系统,其包括多个处理服务器,用于将事件处理结果通知给多个应用程序;上下文依赖分布单元,用于将终端中发生的事件分布到多个处理服务器;以及事件处理分布控制单元,用于为多个处理服务器单独地设置处理规则,并且为上下文依赖分布单元设置分布规则,由此分布单元适当地分布执行处理规则所需的事件。事件处理分布控制单元为有关的处理服务器设置应用程序所需的事件处理的处理规则。事件处理分布控制单元为上下文依赖分布单元设置分布规则。事件根据处理规则被适当地分布到有关的处理服务器。
根据本发明的第二个方面,负载分布系统进一步包括上下文独立分布单元,用于将终端中发生的事件随机分布到上下文依赖分布单元。上下文独立分布单元将事件分布到上下文依赖分布单元,而不参考事件的上下文。
在根据本发明的第三个方面的负载分布系统中,每一个终端都包括由事件处理分布控制单元设置的分布规则。终端根据分布规则,将其中发生的事件分布到处理服务器。
根据本发明的第四个方面,负载分布系统包括多组上下文独立分布单元,其中至少有一个上下文独立分布单元执行事件分布,以分布事件。上下文独立分布单元相互确认彼此的故障。如果在进行事件分布的上下文独立分布单元中检测到故障,则该单元被另一个上下文独立分布单元替换。
根据本发明的第五个方面,负载分布系统包括多组上下文依赖分布单元。上下文依赖分布单元相互确认彼此的故障。
在根据本发明的第六个方面的负载分布系统中,通过将故障确认通知给上下文独立分布单元,上下文独立分布单元不将事件分布到已经发生了故障的上下文依赖分布单元中。
在根据本发明的第七个方面的故障分布系统中,事件处理分布控制单元包括处理规则分布记录单元,用于为每一个处理服务器记录至少包含在如上分布的处理规则中的事件条件。事件处理分布控制单元在接收到新处理规则时参考处理规则分布记录单元,并且将新处理规则分配到被分配有处理规则且其处理规则的个数相对于分别被分配给各处理服务器的处理规则的个数的最小值在预定范围内的各处理服务器之一,该处理服务器具有基本上等于新处理规则的事件条件的事件条件。
在根据本发明的第八个方面的负载分布系统中,在不存在事件条件基本上等于新处理规则的事件条件的处理服务器的情况下,如果事先被分配给各处理服务器中的特定处理服务器的事件条件的一部分与新处理规则的事件条件相匹配,则新处理规则被分配给特定处理服务器。
在根据本发明的第九个方面的负载分布系统中,在不存在事件条件基本上等于新处理规则的事件条件的处理服务器的情况下,如果新处理规则的事件条件的一部分与事先被分配给各处理服务器中的特定处理服务器的事件条件相匹配,则新处理规则被分配给该特定处理服务器。
根据本发明的第十个方面的负载分布系统进一步包括用于每一个处理规则的加权系数。事件处理分布控制单元包括处理规则分布记录单元,用于为每一个处理服务器记录至少包含在如上分布的处理规则中的事件条件。事件处理分布控制单元在接收到新处理规则时参考处理规则分布记录单元,并且将新处理规则分配到被分配有处理规则且其加权系数之和相对于分别被分配给各处理服务器的处理规则的个数的加权系数之和的最小值在预定范围内的各处理服务器之一,该处理服务器具有基本上等于新处理规则的事件条件的事件条件。
在根据本发明的第11个方面的负载分布系统中,在不存在事件条件基本上等于新处理规则的事件条件的处理服务器的情况下,如果事先被分配给各处理服务器中的特定处理服务器的事件条件的一部分与新处理规则的事件条件相匹配,则新处理规则被分配给该特定处理服务器。
在根据本发明的第12个方面的负载分布系统中,在不存在事件条件基本上等于新处理规则的事件条件的处理服务器的情况下,如果新处理规则的事件条件的一部分与事先被分配给各处理服务器中的特定处理服务器的事件条件相匹配,则新处理规则被分配给该特定处理服务器。
根据本发明的第13个方面,提供一种用于负载分布系统中的事件处理分布控制装置,该负载分布系统包括多个处理服务器,用于将事件处理结果通知给多个应用程序;以及上下文依赖分布单元,用于将终端中发生的事件分布到多个处理服务器。该控制装置将从应用程序接收到的处理规则分布到处理服务器。该分布系统包括处理规则分布记录单元,用于为每一个处理服务器记录至少包含在如上分布的处理规则中的事件条件。事件处理分布控制单元在接收到新处理规则时参考处理规则分布记录单元,并且将新处理规则分配到被分配有处理规则且其处理规则的个数相对于分别被分配给各处理服务器的处理规则的个数的最小值在预定范围内的各处理服务器之一,该处理服务器具有基本上等于新处理规则的事件条件的事件条件。
根据本发明的第14个方面的事件处理分布控制装置,在不存在事件条件基本上等于新处理规则的事件条件的处理服务器的情况下,如果事先被分配给各处理服务器中的特定处理服务器的事件条件的一部分与新处理规则的事件条件相匹配,则新处理规则被分配给该特定处理服务器。
在根据本发明的第15个方面的事件处理分布控制装置中,在不存在事件条件基本上等于新处理规则的事件条件的处理服务器的情况下,如果新处理规则的事件条件的一部分与事先被分配给各处理服务器中的特定处理服务器的事件条件相匹配,则新处理规则被分配给该特定处理服务器。
根据本发明的第16个方面,提出了一种用于负载分布系统中的事件处理分布控制装置,该负载分布系统包括多个处理服务器,用于将事件处理结果通知给多个应用程序;以及上下文依赖分布单元,用于将终端中发生的事件分布到多个处理服务器。该控制装置将从应用程序接收到的处理规则分布到处理服务器。该负载分布系统包括用于每一个处理规则的加权系数,以及处理规则分布记录单元,用于为每一个处理服务器记录至少包含在如上分布的处理规则中的事件条件。控制装置在接收到新处理规则时参考处理规则分布记录单元,并且将新处理规则分配到被分配有处理规则且其加权系数之和相对于分别被分配给各处理服务器的处理规则的个数的加权系数之和的最小值在预定范围内的各处理服务器之一,该处理服务器具有基本上等于新处理规则的事件条件的事件条件。
在根据本发明的第17个方面的事件处理分布控制装置中,在不存在事件条件基本上等于新处理规则的事件条件的处理服务器的情况下,如果事先被分配给各处理服务器中的特定处理服务器的事件条件的一部分与新处理规则的事件条件相匹配,则新处理规则被分配给该特定处理服务器。
在根据本发明的第18个方面的事件处理分布控制装置中,在不存在事件条件基本上等于新处理规则的事件条件的处理服务器的情况下,如果新处理规则的事件条件的一部分与事先被分配给各处理服务器中的特定处理服务器的事件条件相匹配,则新处理规则被分配给该特定处理服务器。
根据本发明的第19个方面,提供一种用于负载分布系统中的事件处理分布控制程序,该负载分布系统包括多个处理服务器,用于将事件处理结果通知给多个应用程序;以及上下文依赖分布单元,用于将终端中发生的事件分布到多个处理服务器。控制程序将从应用程序接收到的处理规则分布到处理服务器。该程序包括如下步骤由处理规则分布记录单元为每一个处理服务器记录至少包含在如上分布的处理规则中的事件条件;以及由事件处理分布控制单元在接收到新处理规则时参考处理规则分布记录单元,并且将新处理规则分配到被分配有处理规则且其处理规则的个数相对于分别被分配给各处理服务器的处理规则的个数的最小值在预定范围内的各处理服务器之一,该处理服务器具有基本上等于新处理规则的事件条件的事件条件。
根据本发明的第20个方面,事件处理分布控制程序进一步包括如下步骤在不存在事件条件基本上等于新处理规则的事件条件的处理服务器的情况下,如果事先被分配给各处理服务器中的特定处理服务器的事件条件的一部分与新处理规则的事件条件相匹配,则将新处理规则分配给该特定处理服务器。
根据本发明的第21个方面,事件处理分布控制程序进一步包括如下步骤在不存在事件条件基本上等于新处理规则的事件条件的处理服务器的情况下,如果新处理规则的事件条件的一部分与事先被分配给各处理服务器中的特定处理服务器的事件条件相匹配,则将新处理规则分配给该特定处理服务器。
在根据本发明的第22个方面中,提供一种用于负载分布系统中的事件处理分布控制程序,该负载分布系统包括多个处理服务器,用于将事件处理结果通知给多个应用程序;以及上下文依赖分布单元,用于将终端中发生的事件分布到多个处理服务器。控制程序将从应用程序接收到的处理规则分布到处理服务器。控制程序包括如下步骤设置用于每一个处理规则的加权系数;由处理规则分布记录单元为每一个处理服务器记录至少包含在如上分布的处理规则中的事件条件;由控制装置在接收到新处理规则时参考处理规则分布记录单元,并且将新处理规则分配到被分配有处理规则且其加权系数之和相对于分别被分配给各处理服务器的处理规则的个数的加权系数之和的最小值在预定范围内的各处理服务器之一,该处理服务器具有基本上等于新处理规则的事件条件的事件条件。
根据本发明的第23个方面的事件处理分布控制程序,进一步包括如下步骤在不存在事件条件基本上等于新处理规则的事件条件的处理服务器的情况下,如果事先被分配给各处理服务器中的特定处理服务器的事件条件的一部分与新处理规则的事件条件相匹配,则将新处理规则分配给该特定处理服务器。
根据本发明的第24个方面的事件处理分布控制程序,进一步包括如下步骤在不存在事件条件基本上等于新处理规则的事件条件的处理服务器的情况下,如果新处理规则的事件条件的一部分与事先被分配给各处理服务器中的特定处理服务器的事件条件相匹配,则将新处理规则分配给该特定处理服务器。
根据本发明,安装多个处理服务器,并且在处理服务器前面的级中布置上下文依赖分布器。事件处理分布控制器为各个处理服务器设置各处理规则。为上下文依赖分布器设置分布规则,以将每一个处理服务器需要的事件进行适当地分布,以便执行为其设置的处理规则。因此,可以实施处理服务器的负载分布,甚至在处理服务器执行彼此不同的事件处理和需要彼此不同的事件的情况下。


考虑下面的详细讲述并且结合附图,本发明的目的和特征将更加清楚,其中图1为框图,示出了现有负载分布系统的结构;图2为框图,示意性地示出了现有负载分布系统的结构;图3为示意框图,示出了负载分布系统的第一实施例的结构;图4为框图,示出了负载分布系统的第二实施例的结构;图5为框图,示意性地示出了负载分布系统的第三实施例的结构;图6为示意框图,示出了负载分布系统的第四实施例的结构;图7为框图,示出了事件处理分布控制器的结构;图8为程序列表,示出了处理规则的例子;图9为程序的一部分,示出了处理规则分布记录的例子;图10为流程图,示出了处理规则分布的过程;图11为流程图,示出了规则分布的过程;图12为程序的一部分,示出了事件的例子;图13示出了由客户设置的处理规则的例子;图14为程序的一部分,示出了规则分布控制服务器的规则分布例子1;图15为表的一部分,示出了事件分布规则例子1;图16为程序的一部分,示出了规则分布控制服务器的规则分布例子2;以及图17为表格的一部分,示出了事件分布规则例子2。
具体实施例方式
现在来讲述本发明的概要。本发明的负载分布系统是在如下系统的基础上进行构造的,其中应用程序向系统发出作为处理规则的请求,也就是说,来自诸如射频识别器(RFID)或传感器等设备的事件发生信息或事件的处理。根据规则,系统使用事件的上下文来执行处理,并且将处理结果发送给应用程序。处理规则包括各个组项,用于系统根据事件的内容来执行处理。
为了在这种类型的系统中分散处理,布置了多个处理服务器,并且事件处理分布控制单元针对各个应用程序,分别将事件处理规则设置到各个处理服务器。分布控制器将与事件上下文有关的分布规则设置到分布器,以便事件被分布到事先被指定处理该事件的有关服务器。结果,为处理服务器完成了负载分布。
在根据事件的上下文将事件分布到合适的处理服务器的上下文依赖分布器103前面的级中,布置有上下文独立分布器,用于将事件随机分布到处理服务器,而与其上下文无关。具体地说,在上下文独立分布器后面的级中,布置了包括有彼此相同的分布规则的多个上下文依赖分布器103。
上下文独立分布器将来自设备的每一个事件随机分布到上下文依赖分布器103。事件根据其上下文从上下文依赖分布器103被传递到合适的处理服务器。像在包括有一个上下文依赖分布器103的系统中那样,可以分布事件以实现在该系统中的负载分布。还可以分散加于上下文依赖分布器103上的负载。
现在参考附图来讲述本发明的实施例。
负载分布系统包括事件处理分布控制器101、上下文依赖分布器103和多个处理服务器104a至104f。分布器103连接到诸如RFID读取器和传感器等多个设备105a至105f。服务器104a至104f连接到多个应用程序106a至106h。
不需要使处理服务器、设备和应用程序的个数彼此相等。例如,一个处理服务器,例如处理服务器104a可以对应于多个应用程序106a和106b。当向该系统发出了多个事件处理请求时,诸如应用程序106b的一个应用程序可以对应于多个处理服务器104a和104b。
上下文依赖分布器103包括指示事件分布的分布规则107。处理服务器104a至104f分别包括指示事件处理方法的处理规则108a至108f。事件处理分布控制器101提供由箭头109和110a至110f所指示的各信息项。
第一实施例下面参考图3来讲述负载分布系统的第一实施例中的处理。
事件处理分布控制器101将由应用程序106a至106f请求的事件处理的处理规则108a至108f设置到由箭头110a至110f指示的处理服务器104a至104f。
在例如如下所述的RFID系统中设置事件处理的处理规则108a至108f。如果应用程序106a在事件检测时期望得到需要产生项目的所有部件的所有RFID都被检测到的通知,则应用程序106a为如箭头110a所示的处理服务器104a的处理规则108a设置规则“如果所有部件的所有RFID都已经被检测到,将该条件通知给应用程序”。
事件处理分布控制模块101然后为上下文依赖分布器103设置分布规则107(箭头109),以便事件被分别分布到被指定用来根据处理规则108a至108f来处理各个事件的处理服务器104a至104f。在上述例子中,规则为例如“产品的部件的RFID检测的事件被传递到处理服务器104a”。
上下文依赖分布器103接收分别在设备105a至105f中发生的事件111a至111f。分布器103参考每一个接收到的事件的上下文,以便根据分布规则107将事件馈送到服务器104a至104f中的合适的一个(箭头113a至113f)。
在已经接收到来自分布器103的事件(113a至113f)的情况下,有关的处理服务器根据分布规则107将事件传递到有关的应用程序(106a至106h)。
第二实施例接下来参考图4来讲述第二实施例。
在第二实施例中,布置了多个上下文依赖分布器103(203)。在分布器203前面的级中,布置有上下文独立分布器202,它将事件随机地分布到上下文依赖分布器203,而没有参考事件的上下文(箭头212a至212c)。被事件处理分布控制器201设置到分布器203a至203c的分布规则207a至207c基本上彼此相等。规则的内容和过程基本上与第一实施例的相同。
在包括有多个处理服务器和一个用于分布服务器的负载的上下文依赖分布器103的系统中,存在着一个问题,即由于分布器103为了分布事件而参考每一个事件的上下文,因此分布器103的处理负载增加。不过,从图4中可以看出,当在多个上下文依赖分布器103前面的级中布置有通过少量的处理步骤来随机分布事件而不参考事件上下文的上下文独立分布器时,可以在上下文依赖分布器103之间实现负载分布。
第三实施例在第三实施例中,在每一个设备305a至305f中安装有在第一实施例中采用的上下文依赖分布器103的分布规则107。当设备305a至305f之一检测到事件时,可以自动执行上下文依赖事件分布313aa至313af。结果,在没有使用上下文依赖分布器103的情况下可以将事件的上下文依赖分布的负载分散各设备。
第四实施例第四实施例是在第二实施例的上下文独立分布器和上下文依赖分布器103中安装了故障规避功能的例子。
在双重系统中实施了两个上下文独立分布器402和402′。设备405a至405f将各个事件411a和411a′(411b和411b′、411c和411c′、411d和411d′、以及411f和411f′)分别通知给上下文独立分布器402和402′。或者,每一个设备405a至405f可以只传递一个事件包,以便上下文独立分布器402和402′接收各包。
分布器402和402′相互进行故障确认415。通常,只有分布器402完成事件分布412a至412c。分布器402′不执行分布。不过,当分布器402′通过故障确认415检测到分布器402中的发生故障时,分布器402′开始事件分布412a′至412c′。因此,这使得能够避免上下文独立分布器系统(402和402′)中的故障。
上下文依赖分布器403a至403c分别将其活动状态通知416a和416a′(416b和416b′、416c和416c′)发送给上下文独立分布器402和402′。分布器402和402′分别只对上下文依赖分布器403a至403c中的活动的上下文依赖分布器进行事件分布412a至412c和412a′至412c′。对于非活动的上下文依赖分布器,不进行事件分布,从而避免上下文依赖分布器模块(403a至403c)的故障。
第五实施例在第一实施例中,一个处理服务器执行一个有关的处理规则。也就是说,当应用程序的个数增加时,由一个处理服务器进行处理的处理规则的个数变大。在这个结构中,如果处理规则被分配成集中在特定处理服务器上,则会产生处理服务器的处理负载增加的问题。
解决这一问题的方法之一是将一个处理规则分配到多个处理服务器。在处理规则独立于处理历史的“无状态(state-less)”处理中,这种方法是有效的。不过,如果处理规则是依赖于处理历史的“有状态”处理,则可能需要布置一个可从多个处理服务器获得的公用存储器,以便处理同样的处理规则的处理服务器参考和更新公用服务器,从而应用处理规则。在这一方法中,在与公用存储器进行通信和在各处理服务器之间进行通信需要独占控制。这成为处理的瓶颈,并且导致担心总体处理性能恶化。结果,特别是在大型系统中,采用如下处理规则是有效的,即一个处理服务器处理一个有关的处理规则。
图7示出了事件处理分布控制器101的结构。
控制单元101包括处理规则接收模块200,用于接收来自应用程序106a至106h的处理规则;处理规则分布单元201,用于确定每一个处理规则到处理服务器的分配;处理规则发送器单元202,用于将处理规则发送到处理服务器;分布规则生成器单元203,用于创建将处理规则分布到处理服务器的分布规则;分布规则发送模块204,用于将分布规则发送到上下文依赖分布器103;以及处理规则分布记录器单元205,用于为每一个处理服务器记录有关的处理规则的分布。
图8示出了处理规则的例子。该例子包括处理规则的名称,被处理事件的条件(事件条件),以及针对事件的处理描述。行0001表示处理规则的名称。行0002是应用处理规则的事件的条件。也就是说,事件包括字段“tag_kind”,表示一种RFID,并且如果字段包含的值为4,则应用该处理规则。例如,如果用“事件(tag_kind,TagID)”来表示该事件时,对与“tag_kind=4”的“TagID”有关的每一个事件执行该处理。行3和后面的行是处理的内容。行0004是初始化处理以开始处理规则。在讲述中,行0005保留一个阵列存储区域,以保存“eventlog”事件。行0006表示整数变量“event_count”,也就是说,所存储的事件个数被清除为零。
行0008至0018表示接收事件时的处理。在行0009,这样接收的事件存储在“eventlog”中。在行0010,“event_count”以1递增。另外在行0011中,如果“event_count”为零,则在“eventlog”中记录的十个事件在行0012中被发送到已经设置了处理规则的应用程序。在行0013中,“event_count”被清除为零。在行0014中,有关的定时器被重置或被清除。
如果在行0011中“event_count”小于10,则在行0016中将定时器设置为10秒的值。如果从定时器接收到超时的指示时,则在行0019中执行“timeout”处理。在行0014中的定时器重置将取消该处理。
当接收到上个事件之后过去10秒时,在至少一个事件保持在“eventlog”中用于发送的情况下,在行0019中的“timeout”处理是被激活的处理。在行0020中,记录在“eventlog”中的每一个事件被传递到已经设置了处理规则的应用程序。在行0021中,“event_count”被清除为零。在行0021中,定时器被重置。
简而言之,该处理规则表示当接收到“tag_kind”被设置为4的十个事件时,或者当在上个事件的接收之后过去10秒时,存储在“eventlog”中的每一个事件被发送到与该处理规则有关的应用程序。处理规则减轻了需要将事件从处理服务器发送到应用程序的处理的负载。
处理规则需要用于“event_count”和“eventlog”的记录部分。根据处理规则的状态,与事件有关的处理内容变化。也就是说,处理是“有状态”处理。
图9示出了在处理规则分布记录部分205中记录的信息例子。在记录部分205中,至少需要存储为每一个处理服务器设置的处理规则的个数以及每一个处理规则的事件条件。在该例子中假定为每一个处理服务器记录为该服务器设置的处理规则的个数、处理规则名称和事件条件。标识符EP1至EP6对应于处理服务器108a至108f。假定已经寄存了18个规则,并且能够仅通过tag_kind来确定事件条件。
事件处理分布控制器101通过处理规则接收器200接收来自应用程序的处理规则。接收器200将处理规则传递到处理规则分布模块201。
图10为流程图,示出了分布模块201将处理规则分布到处理服务器的过程。
分布单元201首先获得被分配给各个处理服务器的规则的个数的最小值。图9的例子中的EP1和EP2的最小值为“2”。
分布器201选择候选的处理服务器,它们的处理规则的个数和最小值之差等于或者小于预定值。
如果预定值为“0”,则选择EP1和EP2。如果预定值为“1”,则选择EP1、EP2、EP3和EP5。假定在例子中预定值为“1”,并且因此选择EP1、EP2、EP3和EP5。如果仅存在一个处理服务器作为候选,则选择该处理服务器。
接着,分布器201将处理规则的事件条件与EP1、EP2、EP3和EP5的每一个的事件条件相比较。
如果只有一个处理服务器具有匹配事件条件,则该服务器被最终确定为分布目标。假定例如事件条件为tag_kind=4。在EP1、EP2、EP3和EP5中,只有EP2具有满足tag_kind=4的事件条件。因此,EP2被确定为分布目标。
如果多个处理服务器满足事件条件,则处理服务器中具有最小事件个数的处理服务器被选择和指定为分布目标。例如,如果事件条件为tag_kind=4,则EP2和EP5满足该条件。EP2的事件的个数小于EP5,并且从而被假定为分布目标。
如果没有处理服务器满足事件条件,则处理服务器中具有最小事件个数的处理服务器被指定作为分布目标。
在有些情况下,当与事件条件相比较时多个处理服务器都保留作为候选。在这种情况下,各处理服务器中的一个处理服务器例如根据序列号以随机形式或根据另一合适的规则被确定作为分布目标。
在选择候选服务器时,如果每一个服务器的处理规则的个数和最小值之差等于或小于预定值时,则选择该处理服务器作为候选。不过,这并没有限制本发明。例如,可以采用如下比值,诸如“如果差值等于或小于最小值的1.5倍,则选择该处理服务器作为候选”等。
假定新处理规则的事件条件为tag_kind=7。尽管不存在完全相同的事件条件,但是既然“tag_kind=5或tag_kind=7”的条件包括tag_kind=7,因此也可以假定EP5满足该条件。
另一方面,假定新处理规则的事件条件是使用“或”彼此耦合的多个条件的组合,例如,tag_kind=3或tag_kind=8。如果存在满足该事件条件的处理服务器,则选择该服务器。否则,选择部分地满足该事件条件的处理服务器。例如,由于EP3的tag_kind=3部分地满足该条件,因此选择EP3。
在讲述中,事件条件与“用于表示标签种类(RFID)的tag_kind的预定值”有关。不过,本发明并不限于这一例子。可以采用能够使事件本身被区分开来的任何条件。被分配给每一个处理服务器的处理规则个数用于分布处理规则。不过,这并不限制本发明。例如,可以通过对与事件条件相匹配的事件个数进行加权,或者通过对处理的负载的程度进行加权来获得负载度,从而采用负载度之和来代替处理规则个数等。
在确定用于对处理规则进行处理的处理服务器之后,处理规则分布模块201将处理规则的分布结果寄存到记录部分205,从而更新其内容。当出现新处理规则时,分布模块201根据如上更新的记录部分205的内容来将规则分布到处理服务器。
分布器201然后通过发送模块202将处理规则发送这样确定的处理服务器。
另外,分布单元201将分布结果通知给规则生成器203。生成器203创建包括有成对的处理规则的事件条件和处理服务器的分布规则,并且然后经由发送模块204将分布规则馈送到上下文依赖分布器103。
对于一个事件,分布器103根据多个分布规则来确定一处理服务器作为事件的目标。不过,在事件的多个分布规则被发送到一个处理服务器的情况下,理想的是不对每一个分布规则都进行发送事件,而是进行一次性发送,以便在处理服务器端应用多个处理规则。
如果为多个处理规则指定了同样的事件条件和同样的处理服务器,也可以配置该系统以使分布规则不被发送到上下文依赖分布器103。
如上所述,通过分布如实施例中所示的处理规则,可以防止负载被集中到某些特定的处理服务器上等事件。同时,具有相同或部分相同的事件条件的处理规则可以被集中到特定的服务器。因此,对于特定的事件,可以减少上下文依赖分布器103向其传递事件的处理服务器的个数。由于可以减少被处理服务器接收的事件个数,因此被每一个处理服务器接收的事件个数也得到减少。因此,有利于总体处理性能的增加。
第六实施例现在来讲述实施根据本发明的处理规则分布的第六实施例。
图11示出了处理规则分布的流程。每当由应用程序(106a至106h)来设置处理规则时,执行图11的处理。在如图11所示的流程图中,在步骤1中的处理规则个数之间的可容许差值为预定值。在这些步骤的任何一个中,如果处理服务器个数为1,则为该处理服务器设置处理规则。作为区别事件类别的方法,可以使用例如为每一个事件分配属性以便根据属性来对事件进行分类的方法。
这些步骤的执行顺序无需是固定的,而是可以对其进行更改。
事件和处理规则的定义根据事件和处理规则的例子,下面将讲述处理规则分布方法。在该例子中,设备是RFID读取器,并且应用程序是处理由RFID读取器通知的RFID信息的应用程序。事件包括RFID(TagID)和已经获得RFID的读取器的ID。图12示出了TagID为“10”和ReaderID为“20”的事件的例子。
图13示出了由应用程序分配的处理规则的例子。
假定顺序地指定了范围从Rule_A1至Rule_A6的这些规则。在每一个处理规则描述中,左侧表示条件,并且右侧或最后项表示操作。条件字段包括两个事件,表明如果从设备接收到发生在该字段中描述的两个事件,则满足该条件。例如,条件Rule_A1,也就是,事件(TagID=10,ReaderID=20)&事件(TagID=11,ReaderID=20)表示如果TagID=10,ReaderID=20和TagID=11,ReaderID=20这两个事件都发生,则处理规则的操作被激活。在这种情况下,需要处理两个事件。也就是说,这些事件被分布到被分配有处理规则的处理服务器。
操作字段“通知到Applicaiton_A”表明要把匹配条件事件通知给Application_A。在这种连接下,Application_A对应于应用程序106a并且Application_B对应于应用程序106b。这也适用于其他应用程序。
处理分布规则例子1假定存在三个处理服务器,并且处理规则之间的可容许差值为2。事件处理分布控制器如图13所示分布图14的处理规则。
现在来讲述处理流程。假定三个处理服务器为EP1、EP2和EP3;需要进行处理规则的条件检查的事件被称为处理规则检查事件,并且为处理服务器指定的和被要求进行处理规则检查的一组事件统称为处理服务器基本事件。
当应用程序106a设置Rule_A1时,由于在初始状态没有为任何处理服务器指定规则,因此在步骤1中选择所有服务器。
控制进行到步骤2。需要检查处理规则的事件是事件(TagID=10,ReaderID=20)和事件(TagID=11,ReaderID=20)。由于没有为任何处理服务器设置处理规则,因此不存在用于处理规则检查的事件。因此,通常需要的事件个数,也就是说,各个处理服务器需要的事件个数,基本上彼此相等,因此选择所有的处理服务器。控制进行到步骤3。
在步骤3,由于没有为任何处理服务器指定处理规则,因此对于每一个处理服务器,如上所要求的事件个数为零。
因此,选择所有的处理服务器。最终,随机选择要分布处理的处理服务器。假定选择EP2。
当应用程序106b设置Rule_A2时,由于为每一个处理服务器分配的处理规则的个数之差等于或小于可容许差值“2”,因此在步骤1中选择所有处理服务器。处理进行到步骤2。需要检查处理规则的事件为事件(TagID=10,ReaderID=20)和事件(TagID=11,ReaderID=20)。EP2需要的事件是事件(TagID=10,ReaderID=20)和事件(TagID=11,ReaderID=20)。其他处理服务器需要的事件不被EP2需要。由于处理规则检查和EP2共同需要这两个事件,因此Rule_A2被设置给EP2。
当应用程序106c指定Rule_A3时,由于为每一个处理服务器指定的处理规则的个数之差等于或小于可容许差值“2”,因此在步骤1中选择所有处理服务器。然后处理进行到步骤2。由于不存在处理规则检查和各个服务器共同需要的事件,因此在步骤2中选择所有的处理服务器,并且处理进行到步骤3。由于EP2需要两个事件,而另一个处理服务器不需要任何事件,因此选择EP1和EP3。最终,随机选择EP1和EP3中的一个。为选择的处理服务器设置Rule_A3。假定选择EP1。
当应用程序106c设置Rule_A4时,由于为每一个处理服务器指定的处理规则的个数等于或小于可容许差值“2”,因此在步骤1中选择所有处理服务器,并且然后处理进行到步骤2。由于事件(TagID=11,ReaderID=20)是处理规则检查和各个服务器共同需要的,并且没有为处理检查和其他处理服务器共同需要的事件,因此为EP2设置Rule_A4。
当应用程序106a指定Rule_A5时,由于为Ep2指定的处理规则的个数比Ep3的个数大处理规则可容许差值“2”,因此在步骤1中排除EP2并选择EP1和EP3,并且然后处理进行到步骤2。由于不存在处理规则检查和各个服务器共同需要的事件,因此选择所有的处理服务器,并且控制进行到步骤3。EP1需要两个处理规则,并且EP3不需要处理规则。因此,为EP3设置Rule_A5。
当应用程序106b指定Rule_A6时,由于为每一个处理服务器设置的处理规则的个数之差等于或小于可容许差值“2”,因此在步骤1中选择所有的处理服务器,并且然后控制进行到步骤2。不存在处理规则检查和EP1共同需要的事件,并且有一个事件是处理规则检查和另一个处理服务器需要的。因此,选择EP2和EP3,并且处理进行到步骤3。由于EP2需要三个事件并且EP3需要两个事件,因此为EP3设置Rule_A6。
当如图13所示分布处理规则时,图15的事件分布处理规则被设置到上下文依赖分布器103。图15所示表格的每一个条目表示事件的条件与满足该条件的事件的传递目标处理服务器之间的关系。例如,事件(TagID=10,ReaderID=20)被传递到EP2,并且事件(TagID=13,ReaderID=25)被传递到EP2和EP3。
处理规则分布例子2在上面所述的例子中,处理规则是根据在处理规则的条件下指定的事件的的所有属性来进行分布的。不过,也可以根据在处理规则条件下指定的事件的部分属性来执行分布。现在使用TagID作为用于分布的属性来讲述处理规则分布的流程。图16示出了以TagID为基础对图14中所示的处理规则进行分布。在下面的讲述中,如果用星号表示属性的值,则其表示属性取任意值。
当应用程序106a设置Rule_A1时,由于在初始状态下没有将处理规则设置到任何处理服务器,因此在步骤1中选择所有的处理服务器。处理进行到步骤2。需要进行处理检查的事件是事件(TagID=11,ReaderID=*)。由于没有处理规则被设置到任何处理服务器,因此不需要任何事件。因此,处理服务器共同需要的事件个数彼此相等,因此选择所有的处理服务器。处理进行到步骤3。由于没有处理规则被设置到任何处理服务器,因此处理服务器共同需要的事件的个数为零,因此选择所有的处理服务器。最终,随机选取要分布的处理规则的处理服务器。假定选择EP2。
当应用程序106b设置Rule_A2时,由于为每一个处理服务器指定的处理规则的个数之差等于或小于可容许差值“2”,因此在步骤1中选择所有的处理服务器。控制进行到步骤2。处理规则检查需要事件(TagID=10,ReaderID=*)和事件(TagID=11,ReaderID=*)。EP2需要事件(TagID=10,ReaderID=*)和事件(TagID=11,ReaderID=*)。其它处理服务器不需要事件。处理规则检查和EP2共同需要这两个事件。因此,为EP2设置Rule_A2。
当应用程序106c设置Rule_A3时,由于为每一个处理服务器指定的处理规则的个数等于或小于可容许差值“2”,因此在步骤1中选择所有的处理服务器。处理进行到步骤2。处理规则检查需要事件(TagID=11,ReaderID=*)和事件(TagID=12,ReaderID=*)。处理规则检查和EP2共同需要一个事件。因此,为EP2设置Rule_A3。
当应用程序106c设置Rule_A4时,由于为EP2设置的处理规则的个数与为其他处理服务器中的每一个设置的处理规则的个数之差大于处理规则之间的可容许差值“2”,因此在步骤1中选择EP1和EP3。控制进行到步骤2。由于没有事件是为处理规则检查和处理服务器共同需要的,因此选择所有的处理服务器。处理进行到步骤3。由于不存在处理服务器需要的事件,因此选择所有的处理服务器。最终,随机地选择EP1或EP3。假定选择EP1。
当应用程序106a设置Rule_A5时,由于为EP2设置的处理规则的个数与为EP3设置的处理规则个数之差大于处理规则之间的可容许差值“2”,因此选择EP1和EP3。处理进行到步骤2。由于不存在处理规则检查和处理服务器共同需要的事件,因此选择所有的处理服务器。控制进行到步骤3。EP1需要两个事件,并且EP3不需要事件。因此,为EP3设置Rule_A5。
当应用程序106b设置Rule_A6时,由于为每一个处理服务器指定的处理规则的个数等于或小于可容许差值“2”,因此在步骤1中选择所有的处理服务器,并且然后控制进行到步骤2。不存在处理规则检查和EP2共同需要的事件,并且一个事件是处理规则检查和其他处理服务器共同需要的事件。因此,选择EP1和EP3并且处理进行到步骤3。由于EP1和EP3共同需要两个事件,所以目标服务器是随机选择的。为选择的服务器设置Rule_A6。假定选择EP3,图16示出了这种情况下的处理规则分布结果。
对于图16的处理规则分布,事件分布处理规则被设置到上下文依赖分布模块103,如图17所示。图17的内容与图15的内容相类似。
由于上述结构,即使更经常地发生来自设备的事件并且事件数据被更频繁地访问和更新,也可以避免与共享事件数据有关地发生现有的瓶颈问题。
通过使用规则分布方法,可以在上下文依赖分布模块103中最大程度地减少事件拷贝操作,从而能够有效地使用系统资源。
已经讲述了规则分布例子1和2。在例子1中,上下文依赖分布器103更严格地缩窄了选择的事件的范围。因此,每一个处理服务器需要仅处理最少量的事件。根据例子2,控制器103仅需要访问或参考规则分布中的一个属性。因此,当与为了分布而访问所有属性的情况相比,这样能够增加处理速度。
尽管本发明的讲述参考了特定的解释性实施例,但是并不受这些实施例的限制,而只受到权利要求的限制。可以理解,本领域的技术人员可以对这些实施例进行更改或修订,只要不偏离本发明的范围和精神。
权利要求
1.一种负载分布系统,包括多个处理服务器,用于将事件处理结果通知给多个应用程序;上下文依赖分布部件,用于将终端中发生的事件分布到多个处理服务器;以及事件处理分布控制部件,用于为多个处理服务器单独地设置处理规则,并且为上下文依赖分布部件设置分布规则,由此该分布部件适当地分布执行处理规则所需的事件,事件处理分布控制部件为有关的处理服务器设置应用程序所需的事件处理的处理规则,事件处理分布控制部件为上下文依赖分布部件设置分布规则,事件根据处理规则被适当地分布到有关的处理服务器。
2.如权利要求1所述的负载分布系统,进一步包括上下文独立分布部件,用于将终端中发生的事件随机分布到上下文依赖分布部件,上下文独立分布部件将事件分布到上下文依赖分布部件,而不参考事件的上下文。
3.如权利要求1所述的负载分布系统,其中每一个终端都包括由事件处理分布控制部件设置的分布规则,终端根据分布规则,将其中发生的事件分布到处理服务器。
4.如权利要求1所述的负载分布系统,包括多套上下文独立分布部件,其中至少有一个上下文独立分布部件执行事件分布,以分布事件,上下文独立分布部件相互确认彼此的故障,如果在进行事件分布的上下文独立分布部件中检测到故障,则该部件被另一个上下文独立分布部件替换。
5.如权利要求1所述的负载分布系统,包括多套上下文依赖分布部件,上下文依赖分布部件相互确认彼此的故障。
6.如权利要求5所述的负载分布系统,其中通过将故障确认通知给上下文独立分布部件,上下文独立分布部件不将事件分布到已经发生了故障的上下文依赖分布部件。
7.如权利要求1所述的负载分布系统,其中事件处理分布控制部件包括处理规则分布记录部件,用于为每一个处理服务器记录至少包含在如上分布的处理规则中的事件条件,事件处理分布控制部件在接收到新处理规则时参考处理规则分布记录部件,并且将新处理规则分配到被分配有处理规则且其处理规则的个数相对于分别被分配给各处理服务器的处理规则的个数的最小值在预定范围内的各处理服务器之一,该处理服务器具有基本上等于新处理规则的事件条件的事件条件。
8.如权利要求7所述的负载分布系统,其中在不存在事件条件基本上等于新处理规则的事件条件的处理服务器的情况下,如果事先被分配给各处理服务器中的特定处理服务器的事件条件的一部分与新处理规则的事件条件相匹配,则新处理规则被分配给该特定处理服务器。
9.如权利要求7所述的负载分布系统,其中在不存在事件条件基本上等于新处理规则的事件条件的处理服务器的情况下,如果新处理规则的事件条件的一部分与事先被分配给各处理服务器中的特定处理服务器的事件条件相匹配,则新处理规则被分配给该特定处理服务器。
10.如权利要求1所述的负载分布系统,进一步包括用于每一个处理规则的加权系数,其中事件处理分布控制部件包括处理规则分布记录部件,用于为每一个处理服务器记录至少包含在如上分布的处理规则中的事件条件,事件处理分布控制部件在接收到新处理规则时参考处理规则分布记录部件,并且将新处理规则分配到被分配有处理规则且其加权系数之和相对于分别被分配给各处理服务器的处理规则的个数的加权系数之和的最小值在预定范围内的各处理服务器之一,该处理服务器具有基本上等于新处理规则的事件条件的事件条件。
11.如权利要求10所述的负载分布系统,其中在不存在事件条件基本上等于新处理规则的事件条件的处理服务器的情况下,如果事先被分配给各处理服务器中的特定处理服务器的事件条件的一部分与新处理规则的事件条件相匹配,则新处理规则被分配给该特定处理服务器。
12.如权利要求11所述的负载分布系统,其中在不存在事件条件基本上等于新处理规则的事件条件的处理服务器的情况下,如果新处理规则的事件条件的一部分与事先被分配给各处理服务器中的特定处理服务器的事件条件相匹配,则新处理规则被分配给该特定处理服务器。
13.一种用于负载分布系统中的事件处理分布控制装置,该负载分布系统包括多个处理服务器,用于将事件处理结果通知给多个应用程序;以及上下文依赖分布部件,用于将终端中发生的事件分布到多个处理服务器,该控制装置将从应用程序接收到处理规则分布到处理服务器,该控制装置包括处理规则分布记录部件,用于为每一个处理服务器记录至少包含在如上分布的处理规则中的事件条件,其中事件处理分布控制部件在接收到新处理规则时参考处理规则分布记录部件,并且将新处理规则分配到被分配有处理规则且其处理规则的个数相对于分别被分配给各处理服务器的处理规则的个数的最小值在预定范围内的各处理服务器之一,该处理服务器具有基本上等于新处理规则的事件条件的事件条件。
14.如权利要求13所述的事件处理分布控制装置,在不存在事件条件基本上等于新处理规则的事件条件的处理服务器的情况下,如果事先被分配给各处理服务器中的特定处理服务器的事件条件的一部分与新处理规则的事件条件相匹配,则新处理规则被分配给该特定处理服务器。
15.如权利要求13所述的事件处理分布控制装置,其中在不存在事件条件基本上等于新处理规则的事件条件的处理服务器的情况下,如果新处理规则的事件条件的一部分与事先被分配给各处理服务器中的特定处理服务器的事件条件相匹配,则新处理规则被分配给该特定处理服务器。
16.一种用于负载分布系统中的事件处理分布控制装置,该负载分布系统包括多个处理服务器,用于将事件处理结果通知给多个应用程序;以及上下文依赖分布部件,用于将终端中发生的事件分布到多个处理服务器,该控制装置将从应用程序接收到的处理规则分布到处理服务器,该控制装置包括用于每一个处理规则的加权系数;以及处理规则分布记录部件,用于为每一个处理服务器记录至少包含在如上分布的处理规则中的事件条件,该控制装置在接收到新处理规则时参考处理规则分布记录部件,并且将新处理规则分配到被分配有处理规则且其加权系数之和相对于分别被分配给各处理服务器的处理规则的个数的加权系数之和的最小值在预定范围内的各处理服务器之一,该处理服务器具有基本上等于新处理规则的事件条件的事件条件。
17.如权利要求16所述的事件处理分布控制装置,其中在不存在事件条件基本上等于新处理规则的事件条件的处理服务器的情况下,如果事先被分配给各处理服务器中的特定处理服务器的事件条件的一部分与新处理规则的事件条件相匹配,则新处理规则被分配给该特定处理服务器。
18.如权利要求16所述的事件处理分布控制装置,其中在不存在事件条件基本上等于新处理规则的事件条件的处理服务器的情况下,如果新处理规则的事件条件的一部分与事先被分配给各处理服务器中的特定处理服务器的事件条件相匹配,则新处理规则被分配给该特定处理服务器。
19.一种用于负载分布系统中的事件处理分布控制程序,该负载分布系统包括多个处理服务器,用于将事件处理结果通知给多个应用程序;以及上下文依赖分布部件,用于将终端中发生的事件分布到多个处理服务器,该控制程序将从应用程序接收到的处理规则分布到处理服务器,该控制程序包括如下步骤由处理规则分布记录部件为每一个处理服务器记录至少包含在如上分布的处理规则中的事件条件;以及由事件处理分布控制部件在接收到新处理规则时参考处理规则分布记录部件,并且将新处理规则分配到被分配有处理规则且其处理规则的个数相对于分别被分配给各处理服务器的处理规则的个数的最小值在预定范围内的各处理服务器之一,该处理服务器具有基本上等于新处理规则的事件条件的事件条件。
20.如权利要求19所述的事件处理分布控制程序,进一步包括如下步骤在不存在事件条件基本上等于新处理规则的事件条件的处理服务器的情况下,如果事先被分配给各处理服务器中的特定处理服务器的事件条件的一部分与新处理规则的事件条件相匹配,则将新处理规则分配给该特定处理服务器。
21.如权利要求19所述的事件处理分布控制程序,进一步包括如下步骤在不存在事件条件基本上等于新处理规则的事件条件的处理服务器的情况下,如果新处理规则的事件条件的一部分与事先被分配给各处理服务器中的特定处理服务器的事件条件相匹配,则将新处理规则分配给该特定处理服务器。
22.一种用于负载分布系统中的事件处理分布控制程序,该负载分布系统包括多个处理服务器,用于将事件处理结果通知给多个应用程序;以及上下文依赖分布部件,用于将终端中发生的事件分布到多个处理服务器,该控制程序将从应用程序接收到的处理规则分布到处理服务器,该控制程序包括如下步骤设置用于每一个处理规则的加权系数;由处理规则分布记录部件为每一个处理服务器记录至少包含在如上分布的处理规则中的事件条件;以及由控制装置在接收到新处理规则时参考处理规则分布记录部件,并且并且将新处理规则分配到被分配有处理规则且其处理规则的个数相对于分别被分配给各处理服务器的处理规则的个数的最小值在预定范围内的各处理服务器之一,该处理服务器具有基本上等于新处理规则的事件条件的事件条件。
23.如权利要求22所述的事件处理分布控制程序,进一步包括如下步骤在不存在事件条件基本上等于新处理规则的事件条件的处理服务器的情况下,如果事先被分配给各处理服务器中的特定处理服务器的事件条件的一部分与新处理规则的事件条件相匹配,则将新处理规则分配给该特定处理服务器。
24.如权利要求22所述的事件处理分布控制程序,进一步包括如下步骤在不存在事件条件基本上等于新处理规则的事件条件的处理服务器的情况下,如果新处理规则的事件条件的一部分与事先被分配给各处理服务器中的特定处理服务器的事件条件相匹配,则将新处理规则分配给该特定处理服务器。
全文摘要
在负载分布系统中,安装有多个处理服务器,并且在处理服务器前面的级中布置有上下文依赖分布器,以便为分布器设置分布规则,以将事件合适地分布到有关的处理服务器,其中事件是服务器执行为其设定的处理规则必需的。为了在这种类型的系统中实现处理分布,布置了多个处理服务器,并且针对各应用程序,事件处理分布控制单元为各个处理服务器设置事件处理规则。分布控制器为分布器设置与事件的上下文有关的分布规则,以便事件被分布到事先被指定处理该事件的有关服务器。因此,能够完成处理服务器的负载分布。
文档编号G06F9/46GK1841357SQ20061006828
公开日2006年10月4日 申请日期2006年3月27日 优先权日2005年3月28日
发明者佐藤正, 矶山和彦 申请人:日本电气株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1