专利名称:用于通过远程应用的高效数据提取的方法和系统的制作方法
技术领域:
本发明的实施例一般涉及一种数据处理系统,更具体地说,涉及通过远程应用从数据库的高效数据提取。
背景技术:
随着放于网络上的数据量的增加,诸如通过用于数据挖掘的数据提取来收集数据资料库中的大量数据并识别所收集的数据中的模式(pattern)已变得更加普遍。通过应用服务器对提供数据资料库的数据库的数据提取需要从应用服务器处的数据提取应用向数据库发送查询,并且解释从数据库向数据提取应用发送回的结果。由于去往数据库的数据查询以及从数据库的数据的返回造成的延迟,从应用服务器对数据库的数据库调用(call)对于数据提取应用带来性能损失(cost)。此外,由于因数据库处理来自数据提取应用的众 多查询而引入的延迟,从应用服务器对数据库的数据库调用对于数据库的任何其他用户带来性能损失。
发明内容
有鉴于上述,存在对于一种用于减少从数据提取应用向提供数据资料库的数据库发送的查询的数目、同时维持数据提取应用性能和精确度的方法、系统和程序的需要。一个实施例提供了一种用于减少由应用向数据库发送的查询的数目的方法。该方法响应于检测到数据提取应用准备针对至少一个数据提取规则来查询数据库,而访问包括与新添加到数据库的数据相关的信息的高速缓冲存储器。在数据处理应用将从每个新数据事件解析的数据添加到数据库之前,该信息被添加到用于每个新数据事件的高速缓冲存储器。所述方法相对于高速缓冲存储器中的信息来评估每个数据提取规则,以确定该信息是否与至少一个数据提取规则相关。所述方法仅针对与该信息相关的任何特定数据提取规则通过数据提取应用向数据库发送单独的查询。本发明的另一个实施例包括一种用于减少由应用向数据库发送的查询的数目的系统。该系统包括在至少一个处理器和存储器上操作的查询控制器。该查询控制器操作以响应于检测到数据提取应用准备针对至少一个数据提取规则来查询数据库,而访问包括与新添加到数据库的数据相关的信息的高速缓冲存储器。该查询控制器操作以相对于高速缓冲存储器中的信息来评估每个数据提取规则,以确定该信息是否与至少一个数据提取规则相关。所述查询控制器仅针对与该信息相关的任何特定数据提取规则通过数据提取应用向数据库发送单个查询。本发明的另一个实施例包括一种用于减少由应用向数据库发送的查询的数目的计算机程序产品。该计算机程序产品包括一个或多个计算机可读的有形存储设备。此外,该计算机程序产品包括存储在一个或多个存储设备中的至少一个上的程序指令,用于响应于检测到数据提取应用准备针对至少一个数据提取规则查询数据库,而访问包括与新添加到数据库的数据相关的信息的高速缓冲存储器。该计算机程序产品包括存储在一个或多个存储设备中的至少一个上的程序指令,用于相对于高速缓冲存储器中的信息来评估每个数据提取规则,以确定该信息是否与至少一个数据提取规则相关。该计算机程序产品包括存储在一个或多个存储设备中的至少一个上的程序指令,用于仅针对与该信息相关的任何特定数据提取规则通过数据提取应用向数据库发送单独的查询。本发明的另一个实施例提供一种用于管理关于添加到数据库的数据的信息的方法。数据处理应用接收新数据事件。数据处理应用解析新数据事件以识别至少一个所解析的元素。数据处理应用对于每个所解析的元素确定该所解析的元素是否被指定为至少一个数据提取规则中的感兴趣元素,所述至少一个数据提取规则是针对基于所述至少一个数据提取规则对于数据库查询数据的至少一个数据提取应用而指定的。对于被指定为感兴趣元素的每个所解析的元素,数据处理应用为所解析的元素调用数据提取处理机以向高速缓冲存储器添加关于所解析的元素的信息,并为所解析的元素调用默认处理机以向数据库添加关于所解析的元素的数据。对于未被指定为至少一个数据提取规则中的至少一个感兴趣元素的每个所解析的元素,数据处理应用为所解析的元素调用默认处理机以向数据库添加关 于所解析的元素的数据。与数据提取应用共享对高速缓冲存储器中的信息的访问,以使得数据提取应用可以对于每个查询时段来确定任何数据提取规则是否需要关于存储在数据库中的新数据基于在高速缓冲存储器中共享的信息而被重新评估。
在所附权利要求中阐述了认为是本发明的一个或多个实施例的特征的新颖特性。然而,当结合附图来阅读说明性实施例时,参考说明性实施例的下面具体说明将最好地理解发明自身的一个或多个实施例,在附图中图I图示其中可以实现本发明的、包括用于向数据库发送查询的至少一个数据提取应用的系统架构;图2图示用于在将数据存储到数据库中之前高速缓冲关于与数据提取规则相关的新数据事件的信息的数据处理应用的框图;图3图示数据提取规则、格式化的规则、XML消息表单、默认处理机(handler)、更新后处理机以及XML事件的几个说明性例子;图4图示用于在共享的新高速缓冲存储器中存储由数据提取应用使用的、关于新数据事件的信息的树结构的框图;图5图示示出数据提取应用的一个例子的框图,该数据提取应用相对于共享的新高速缓冲存储器中的事件信息来评估数据提取规则,以通过在远程数据库处运行查询来确定哪个规则要重新评估;图6图示示出其中可以实现本发明的网络环境的一个例子的框图;图7图示其中可以实现本发明的计算机系统的一个例子;图8图示用于针对由数据处理应用使用的共享的提取规则高速缓冲存储器来格式化数据提取规则的高级逻辑流程图;图9图示用于将数据处理应用的解析器配置为高效高速缓冲一个或多个数据提取应用感兴趣的新数据事件的信息的高级逻辑流程图;图10图示用于根据指定一个或多个数据提取应用感兴趣的元素的格式化的规则来处理到来的数据事件的高级逻辑流程图;以及图11图示对于查询时段确定重新评估哪个数据提取规则的高级逻辑流程图。
具体实施例方式在下面的描述中,为了解释的目的阐述了大量具体细节,以提供本发明的全面理解。然而,应当理解,对于本领域的一名技术人员来说,可以无需这些具体细节来实践本发明。在其他实例中,以框图形式示出了公知结构和设备,以避免不必要地模糊本发明。此外,在下面的描述中,为了解释的目的,描述了大量系统。重要的是要注意到,并且这对于本领域的一名技术人员来说显然的是,可以在各种系统中执行本发明,包括各种计算机系统以及运行任何数量的不同类型的操作系统的电子设备。现在参照附图,特别是现在参照图1,其框示其中可以实现本发明的、包括用于向数据库发送查询的至少一个数据提取应用的系统架构。在一个例子中,系统架构100包括一个或多个客户端层102、中间层120以及数据层140。客户端层102、中间层120和数 据层140的每一个中的每个元素可以跨越经由网络通信连接的一个或多个系统而分布。在一个例子中,在一个或多个应用服务器内实现一个或多个客户端层102、中间层120和数据层140。在一个例子中,应用服务器是Jav^应用服务器,诸如Java企业版2(JavaEnterprise Edition2, J2EE)应用服务器,该Java 应用服务器具有防数据丢失服务,实现包括含有操作系统、中间件和应用的一个或多个层的软件,并在J2EE基础结构内运行一个或多个Java虚拟机(JVM)。在例子中,在客户端层102中实现的多个数据提取应用106中的每一个包括数据提取规则108的一个或多个集合。每个数据提取应用106基于为特定数据提取应用指定的数据提取规则108而周期性地产生用于从数据层140中的数据库142提取数据的查询。可以为共享对数据库142的访问的一个或多个不同实体指定数据提取应用106和数据提取规则108中的每一个。当访问数据库142时,数据提取应用106中的一个或多个作为远程应用操作。在一个例子中,因为每个查询首先被发送到查询服务128,然后查询服务128查询数据库142,所以当访问数据库142时数据提取应用106作为为远程应用操作。在另一个例子中,因为在与实现数据库142的服务器系统分离的服务器系统上实现数据提取应用106,所以当访问数据库142时数据提取应用106作为远程应用操作。虽然在该例子中在客户端层102中图示出数据提取应用106和数据提取规则108,但是也可以在中间层120中实现数据提取应用106和数据提取规则108中的任一个。此外,虽然未示出,但是系统架构100可以包括表示层,该表示层包含浏览器或用户通过其可以访问数据提取应用106的其他接口。在一个例子中,客户端层102包括数据源104,数据源104表示向中间层120中的数据处理应用122提供数据以存储在数据层140中的数据库142内的一个或多个元素。数据库142可以表示数据资料库。可以以一个或多个类型的标记语言或格式来对数据源104内的数据进行编码。数据处理应用122可以实现转换器,用于将从数据源104接收的所有数据转换为可扩展标记语言(XML)格式。在一个例子中,数据处理应用122将从数据源104接收的数据处理为基于XML的事件。数据处理应用122解析每个XML事件以识别数据元素,并且解析的数据元素被存储在数据库142中。此外,为了提高数据提取应用106的效率,数据处理应用122在共享的新高速缓冲存储器124中存储关于XML事件的信息。共享的新高速缓冲存储器124是在一个或多个数据提取应用106之间共享的高速缓冲存储器。在一个例子中,共享的新高速缓冲存储器124是多JVM共享的高速缓冲存储器,其由处理数据提取应用106的多个JVM共享。具体而言,在共享的新高速缓冲存储器124中存储关于XML事件的信息时,数据处理应用122确定一个或多个数据提取应用106对哪些新XML事件感兴趣,并且仅在共享的新高速缓冲存储器124中存储关于一个或多个数据提取应用106感兴趣的新XML事件的信息。通过在共享的新高速缓冲存储器124中仅存储关于一个或多个数据提取应用106感兴趣的新XML事件的信息,数据处理应用122将共享的新高速缓冲存储器124中的可搜索条目的数目限制为仅仅是提供数据提取应用106感兴趣的信息的条目,并且也将向共享的新高速缓冲存储器124中添加条目所需的处理开销限制为仅仅是提供数据提取应用106感兴趣的信息的条目。为了数据处理应用122确定一个或多个数据提取应用106对哪些新XML事件感兴 趣,数据处理应用122访问共享的提取规则高速缓冲存储器126。共享的提取规则高速缓冲存储器126包括来自一个或多个数据提取规则108的提取规则,并且所述提取规则为了由数据处理应用122使用而被格式化。每个格式化的提取规则基于在数据提取规则108内的每个规则中定义的元素来识别一个或多个数据提取应用106感兴趣的一个或多个元素的集合。在一个例子中,共享的提取规则高速缓冲存储器126是由处理数据提取应用106的多个JVM共享的多JVM共享的高速缓冲存储器。当更新数据提取规则108时,数据处理应用122动态更新共享的提取规则高速缓冲存储器126中的格式化的规则,以反映所述更新。具体而言,因为针对数据提取应用106中的每一个可以以一个或多个不同格式来指定数据提取规则108,所以数据处理应用122将数据提取规则108转换为共享规则格式,诸如数据提取规则中的元素名称列表,并且将格式化的数据提取规则存储到共享的提取规则高速缓冲存储器126中。例如,数据提取规则134可以是如下格式包括但不限于数据库对象、XML、文件和web服务。数据提取应用132基于数据提取规则134周期性地向查询服务128发送查询,用于查询数据库142。基于响应于查询而从数据库142向数据提取应用132中的每一个返回的数据,数据提取应用中的每一个对来自数据库142的返回数据执行数据挖掘或其他类型的数据分析处理。在该实施例中,数据提取应用106被配置为基于数据提取规则108而产生用于调用数据库142的查询。在本发明中,为了减少由数据提取应用106产生的查询的数目并且为了减少由数据提取应用106向查询服务128发送的对于数据库142的调用的数目,对于每个查询时段,数据提取应用106中的每一个首先考虑到关于在共享的新高速缓冲存储器124中可访问的新数据事件的信息来确定是否有任何数据提取规则108需要被重新评估。接下来,数据提取应用106中的每一个仅对于数据提取规则108中基于在共享的新高速缓冲存储器124中可获得的信息而需要重新评估的任何规则发送查询。通过在将来自新数据事件的数据存储在数据库142中之前、首先基于在共享的新高速缓冲存储器124中所存储的关于新数据事件的信息来评估数据提取规则108中的哪些规则需要重新评估,数据提取应用106中的每一个首先限制了需要由数据提取应用106中的每一个产生的查询的数目,这减小了每个数据提取应用用于查询产生的工作量。此外,通过在每个查询时段仅对于需要重新评估的规则产生查询而不是对于所有数据提取规则108产生查询,减少了由数据提取应用106发送到查询服务128的查询的数目,这减小了查询服务128上来自多个远程应用的共享工作量。另外,通过仅对于需要重新评估的规则发送查询,数据提取应用106中的每一个也将从查询服务128接收更少的数据,这减小了每个数据提取应用用于查询响应处理的工作量。在该实施例中,共享的新高速缓冲存储器124中的条目可能需要被清除(flush)。可以通过中间层120内的数据处理应用122、数据提取应用106和清除服务中的一个或多个来执行共享的新高速缓冲存储器124的清除,并且共享的新高速缓冲存储器124的清除可以取决于数据提取规则108中的规则的类型和由每个数据提取应用106实现的查询时段。具体而言,清除策略和配置可以被指定为避免在由数据提取应用106访问信息之前清除共享的新高速缓冲存储器124,但是也可以最小化共享的新高速缓冲存储器124所需的高速缓冲存储器的量。例如,如果针对诸如六(6)个小时特定时段指定数据提取规则108,则在6小时时段的结束时,清除服务可以清除比6个小时更久的条目。在另一个例子中,如果数 据提取应用106正一致工作,则一个或多个数据提取应用可以被设置为触发清除服务来清除一个或多个条目、或者一个或多个数据提取应用可以被设置为将条目标记为已读以使得清除服务能够特定地将一些条目作为目标。在例子中,查询服务128从数据提取应用106接收查询,处理每个查询,并返回来自数据库142的查询结果。在一个例子中,查询服务128也可以实现本地高速缓冲存储器,以存储从数据库142返回的查询结果的结果,从而使得对于与先前查询匹配的随后查询,可以从本地高速缓冲存储器中高效访问先前查询的结果,这也减少了查询服务128对数据库142的调用的数目。然而,在本地高速缓冲存储器中维持数据库条目的查询服务128可能需要查询服务128也使本地高速缓冲存储器内的条目有效,这增加了查询服务128上的工作量。维持本地高速缓冲存储器内的有效条目可能需要对于在数据库142处接收的每个新数据事件或对于每个所选择的时段重新评估条目的有效性。此外,维持本地高速缓冲存储器内的数据库条目的查询服务128可能需要用于本地高速缓冲存储器的额外高速缓冲存储器,并且当对于每个查询首先搜索本地高速缓冲存储器时可能由于高速缓冲存储器未命中(miss)而降低查询服务128的性能。在该实施例中,因为数据提取应用106被配置为将一查询时段内对于查询服务128的查询的数目限制为仅仅如下查询即关注于基于关于在共享的新高速缓冲存储器124内的新数据事件的信息而需要重新评估的数据提取规则108的选择的查询,所以如果查询服务128能够实现本地高速缓冲存储器,则查询服务128可以包括用于数据提取应用106的可配置设置,以设置为关掉在本地高速缓冲存储器中高速缓冲结果或设置为将在本地高速缓冲存储器中高速缓冲的结果限制于仅特定类型的结果。在例子中,数据库142在数据库表格中可以包括额外字段,专门用于可以减少为每个查询搜索的数据量的每个数据提取应用。例如,数据库142可以包括标志,所述标志被设置为指示数据库表格内与一个数据提取规则108中不匹配的每行,以使得在每个查询期间跳过任何被做标志的行,这减少用于每个查询的查询时间。然而,因为当动态调整数据提取规则108时必须重新评估数据库142的每行以确定是否对该行做标志,所以对特定行做标志是对行做标志增加对于数据库142的工作量。当数据提取规则108内的规则的数目增加且当对数据提取规则108的调整频率增大时,用于维持数据库142中的标志行的工作量增加。此外,对数据库142中的特定行做标志可以减少用于每个查询的查询时间,但是对特定行做标志并不减少向数据库142发送的查询的数目。在该实施例中,因为数据提取应用106被配置为将一查询时段内对于查询服务128的查询的数目有效限制为仅关注于基于关于在共享的新高速缓冲存储器124内的新数据事件的信息而需要重新评估的数据提取规则108的选择的查询,所以如果数据库142能够实现用于标记与一个数据提取规则108不匹配的行的字段,则数据库142可以包括用于数据提取应用106的可配置设置,以设置为关掉行标记的使用或者设置为将行限制为特定数据提取规则。在例子中,在新数据事件中的数据被存储到数据库142中之前,数据提取应用106可以具有在运行时对来自数据处理应用或直接来自数据源104的新数据事件的访问。通过访问在数据被存储到数据库142中之前在运行时访问数据的数据提取应用106,数据提取应用106可以不需要查询数据库142,因为已由数据提取应用访问了要查询的数据。然而,因为数据提取应用106可能需要在接收每个新数据事件时重新评估数据提取规则108中的每一个,所以数据提取应用106在运行时访问数据可能增加数据提取应用106上的工作量。 此外,数据提取应用106在运行时访问数据可能不减少数据提取应用106的查询的数目,因为如果需要相对于数据库142中的历史数据来检查新数据事件,则在运行时将需要数据库142的额外查询。在该实施例中,因为数据提取应用106被配置为将一查询时段内对于查询服务128的查询的数目有效限制为仅关注于基于关于在共享的新高速缓冲存储器124内的新数据事件的信息而需要重新评估的数据提取规则108的选择的查询,所以如果数据提取应用106能够在运行时访问数据,则数据提取应用106可以包括可配置选项,用于关掉在运行时的数据访问或者用于将在运行时的数据访问限制为例如特定类型的数据事件、特定数据源或特定时段。现在参照图2,图2描绘用于在将数据存储到数据库中之前高速缓冲关于与数据提取规则相关的新数据事件的信息的数据处理应用的框图。在例子中,数据处理应用122包括规则转换器226,用于当更新数据提取规则108时读取规则、将数据提取规则108转换为解析器204使用的格式、并将转换后的提取规则添加到共享的提取规则高速缓冲存储器126中作为格式化的规则238。在例子中,规则转换器226被图示为数据处理应用122的组件或服务,但是,也可以由与数据处理应用122分离的服务或客户端层102内的服务来实现规则转换器226。在一个例子中,数据提取规则108中由规则转换器226访问的数据提取规则可以包括诸如图3中图示的数据提取规则302的XML规则。例如,为示出具有范围为“10”和“20”个文件的“员工”的数据定义数据提取规则302,所述文件在它们的工作站上包含“个人可识别信息”。在一个例子中,规则转换器226通过将规则归类(flat)到列表中的感兴趣元素的集合(诸如格式化的规则304中图示的“ [type, Content, Role, SummaryField]([类型,内容,角色,总结字段]”)来转换数据提取规则302,并将集合添加到共享的提取规则高速缓冲存储器126。具体而言,在例子中,规则转换器226将来自数据提取规则302的 XML 兀素〈Type>〈/Type>、〈ContentX/Content〉、<RoleX/Role> 和〈SummaryFieldX/SummaryFieId> 转换为列出感兴趣兀素 “Type”、“Content”、“Role” 和 “SummaryField” 的格式化的规则,以供解析器204使用。在其他实施例中,规则转换器226可以将数据提取规则108转换为由解析器204使用的其他类型的格式。如所图示的,数据处理应用122包括用于从共享的提取规则高速缓冲存储器126中读取格式化的规则238的解析器204。此外,解析器204解析诸如XML事件202的XML事件、为在解析XML事件202时遇到的每个元素名称选择元素处理机(handler)、并且为在解析XML事件202时遇到的每个元素名称创建所选择的元素处理机。在例子中,到来的事件是表示来自一个数据源104的数据事件的XML事件202,但是可以实现其他类型的事件。解析器204可以包括用于XML的简单应用编程接口(API) (Simple Application ProgrammingInterface for XML, SAX)解析器、文档对象模型(DOM)解析器或其他类型的解析器。在一个例子中,解析器204实现处理机选择器224,以解析到来的XML事件202,为当基于格式化的规则238解析XML事件202时遇到的每个元素名称选择正确的元素处理机,并且为当解析XML事件202时遇到的每个元素名称创建所选择的元素处理机。在一个例子中,处理机选择器224实现SAX DefaultHandler来解析到来的XML事件202。此外,处理机选择器224被配置为实现多个类型的面向对象的元素处理机,以处理在诸如XML事件202的到来的事件中预期的各个元素中的每一个。面向对象的元素处理机被定义为包括解 析XML以存储在数据库142中的默认元素处理机,并且被定义为包括在调用默认元素处理机以前解析XML并向共享的高速缓冲存储器222添加关于所解析的XML的信息的数据提取处理机。处理机选择器224的SAX DefaultHandler被配置为为在处理期间遇到的每个元素名称选择并创建正确的元素处理机。具体而言,在为分析XML文档202理期间遇到的每个元素选择并创建正确的元素处理机时,处理机选择器224在默认元素处理机和数据提取元素处理机之间进行选择,默认元素处理机解析XML元素以存储在数据库142中,且数据提取元素处理机在调用默认元素处理机以前解析XML元素并向共享的新高速缓冲存储器124添加关于所解析的XML元素的信息。处理机选择器224基于格式化的规则238中当前指定感兴趣元素的规则而在默认元素处理机和数据提取元素处理机之间动态地进行选择。处理机选择器224为在XML中解析的、与格式化的规则238中所选择的感兴趣元素的集合匹配的元素选择数据提取元素处理机。处理机选择器224为在XML中解析的、与格式化的规则238中所选择的感兴趣元素的集合不匹配的元素选择默认元素处理机。在一个例子中,解析器204解析在XML消息表单306中图示的表单的到来的XML事件。在例子中,处理机选择器224被配置为具有默认处理机308,用于所预期的第一级元素TypeHandler (类型处理机)、ContentHandler (内容处理机)、RoleHandler (角色处理机)、NameHandler (名称处理机)、LocationHandler (位置处理机)、ManagerHandler (管理器处理机)、UserIDHandler (用户ID处理机)和SummaryFieldHandler (总结字段处理机)中的每一个。在例子中,处理机选择器224读取格式化的规则304并与数据提取处理机交换与格式化的规则304中的元素匹配的默认处理机308的选择,所述数据提取处理机如由更新后处理机 310 中的处理机“E TypeHandler”、“E ContentHandler”、“E RoleHandler”和“ESummaryFieIdHandler” 所图不。利用根据格式化的规则238而动态调整的默认处理机和数据提取处理机,当包括如在到达的XML事件312中图示的XML元素的XML事件202到达时,处理机选择器224遇到XML事件312中的“Type (类型)”元素、基于格式化的规则304而识别“Type”是感兴趣元素且在更新后处理机310中设置提取类型处理机、并且选择和调用提取类型处理机206。数据提取类型处理机206利用关于解析的类型元素的信息来更新共享的新高速缓冲存储器124,并且调用默认类型处理机210以将所解析的数据存储到数据库142中。此外,在例子中,处理机选择器224遇到XML事件312中的“Name(名称)”元素、基于格式化的规则304而识别“Name”不是感兴趣元素且在更新后处理机310中设置默认名称处理机,并且选择和调用默认名称处理机208来将所解析的数据存储到数据库142中。由处理机选择器224调用的数据提取处理机以便于数据提取应用106高效搜索信息的格式将关于数据事件的信息存储到共享的新高速缓冲存储器124中。在一个例子中,数据提取处理机以树结构来将关于数据事件的事件信息204存储到共享的新高速缓冲存储器124中。通过以树结构在共享的新高速缓冲存储器124存储关于数据事件的事件信息204,由为格式化的规则238中的规则创建的元素的数目来确定树的深度,并且数据提取应用106能够对应于树结构来高效地评估数据提取规则108。现在参照图4,图4图示用于在共享的新高速缓冲存储器中存储关于新数据事件 的信息以便由数据提取应用使用的树结构的框图。在例子中,树400图示当考虑格式化的规则304解析时、为到达XML事件312存储的信息。在例子中,树400包括根402、为格式化的规则304中的“Type”元素解析的“发现(discover)”节点404、针对格式化的规则304中的“Content (内容)”兀素的“个人可识别信息(Individual Identifiable Information)”节点406、针对格式化的规则304中的“Role (角色)”元素的“员工(Staff )”节点408、以及针对格式化的规则304中的“SummaryField”元素的“文件数目(NumofFiles)”节点410和“15”节点412。本领域普通技术人员应当认识到,可以在树400中包括额外或替换分支。现在将参照图5,其图示示出数据提取应用的一个例子的框图,该数据提取应用相对于共享的新高速缓冲存储器中的事件信息来评估数据提取规则,以通过在远程数据库处运行查询来确定重新评估哪个规则。在例子中,诸如来自数据提取应用106中的数据提取应用的数据提取应用502被配置为具有评估时段504。评估时段504指定时间或用于计算数据提取应用502将开始重新评估数据提取规则506的时间的规则。数据提取应用502也包括数据提取规则506,诸如来自数据提取规则108的数据提取规则的集合。数据提取规则506定义用于提取数据以便由数据分析器520使用以诸如通过数据挖掘或对所提取的数据执行其他类型的分析而检测所提取的数据中的模式(pattern)的当前规则。此外,数据提取应用502可以包括规则评估器522,用于周期性地分析在数据提取规则506中当前设置的规则并动态调整在数据提取规则506中设置的规则。此外,一个或多个用户可以通过客户端接口来调整数据提取规则506。数据提取应用502访问查询控制器510,该查询控制器510用于控制选择向数据库142发送的查询并控制向数据库142发送查询。评估时段504中的设置、客户端接口输入或者其他类型的输入可以触发查询控制器开始新的查询时段。虽然在例子中,查询控制器510被图示为数据提取应用502的组件,但是查询控制器510可以充当能够从客户端层102或中间层120访问数据提取应用502的服务、模块或其他应用。此外,在另一个实施例中,多个数据提取应用可以共享查询控制器510或查询控制器510的实例。当触发新的查询时段时,在查询控制器510基于数据提取规则506对数据库142运行任何查询之前,数据提取应用502相对于共享的新高速缓冲存储器124中的事件信息240来评估数据提取规则506内的每个规则,以确定数据提取规则506中的哪些规则需要被重新评估。具体而言,数据提取规则506相对于事件信息240中的树结构来运行,并且查询控制器510标记重新评估规则508内需要被重新评估的任何规则。接下来,数据提取应用502仅针对在重新评估规则508中标记的任何数据提取规则对数据库142运行查询,如由所选择的重新评估查询512所图示的。一旦查询控制器510运行查询,则查询控制器510返回休眠模式达在评估时段504中指定的时段。例如,如果数据提取规则506包括规则A、B和C,且查询控制器510基于指示与规则A匹配的新数据事件的事件信息在重新评估规则508中仅设置规则A,则查询控制器510在所选择的重新评估查询512中仅发送针对规则A的查询。如果查询控制器510不具有对事件信息240的访问,则查询控制器510将需要发送三个查询,用于规则A、规则B和规则C中的每一个。在实施例中,查询控制器510可以将查询限制为仅针对规则A的一个查询,并且因为仅仅基于规则A的查询将返回更新后数据,所以其仍然以相同的能力和精确度来操 作,如同已经发送了三个查询一样。现在参照图6,图示示出其中可以实现本发明的网络环境的一个例子的框图。在例子中,网络环境600包括网络602,用于通信地连接到多个系统。在一个例子中,网络602通信地连接到客户端系统610、客户端系统612、应用服务器614、应用服务器616、数据库服务器618和数据库服务器620。网络环境600可以表示多个类型和层的服务器系统、数据系统、在分布式计算环境中配置的客户端系统、集群计算环境、网格环境、云、或包括多个计算节点的其他网络环境。网络602可以包括但不限于诸如因特网或内联网的分组交换网络以及电话网络。此外,网络602可以包括路由器、交换机、网关和使能一个或多个系统之间的通信通道的其他硬件。本领域的一名普通技术人员将认识到,网络环境600可以包括额外或替代系统。在一个实施例中,网络环境600内的一个或多个系统可以实现系统架构100。在一个例子中,数据库142可以表示跨越数据库服务器618和数据库服务器620中的一个或多个而分布的一个或多个物理数据库。在另一个例子中,可以在跨越应用服务器614和应用服务器616中的一个或多个而实现的一个或多个应用服务器内实现在客户端层102、中间层120和数据库层140的每一个中图示的组件。在另一个例子中,可以跨越客户端系统610和客户端系统612中的一个或多个来实现在客户端层102中图示的一个或多个组件。在另一个实施例中,系统架构100表示如下环境其中在远离数据库142的一个或多个远程系统中实现数据提取应用106,并且其中数据提取应用的多个实例查询数据库142。例如,可以在应用服务器614中实现数据提取应用106,并且可以在数据库服务器618中实现数据库142,其中当查询数据库142时数据提取应用106是远程应用。图7图示其中可以实现本发明的计算机系统的一个例子。可以在各种系统和系统的组合中实现本发明,所述系统由诸如参照计算机系统700描述的功能组件的功能组件组成并可以被通信地连接到诸如网络602的网络。在一个例子中,客户端系统610、客户端系统612、应用服务器614、应用服务器616、数据库服务器618和数据库服务器620中的每一个可以实现参照计算机系统700描述的功能组件中的一个或多个。计算机系统700包括总线722或用于在计算机系统700内传达信息的其他通信设备;以及至少一个硬件处理设备,诸如处理器712,耦接到总线722用于处理信息。总线722优选地包括低延迟路径和较高延迟路径,其通过桥和适配器连接并在计算机系统700内由多个总线控制器来控制。当被实现为服务器或节点时,计算机系统700可以包括被设计用于提高网络服务能力的多个处理器。在多个处理器共享总线722的情况下,可以实现用于管理总线接入和锁定(lock)的额外控制器(未示出)。处理器712可以是至少一个通用处理器,诸如bmr PowerPC^处理器,其在正常操作期间,在软件750的控制下处理数据,软件750可以包括如下中的至少一个应用软件、操作系统、中间件、以及能够从诸如随机存取存储器(RAM) 714的动态存储器件、诸如只读存储器(R0M)716的静态存储器件、诸如海量存储器件718的数据存储器件或其他数据存储介质访问的其他代码和计算机可执行程序。软件750可以包括但不限于用于控制一个或多个系统的代码、应用、协议、接口和过程,所述系统包括但不限于客户端系统610、客户端系统612、应用服务器614、应用服务器616、数据库服务器618和数据库服务器620。在一个实施例中,由处理器712执行的操作可以控制图8、9、10及11的流程的操作以及这里描述的其他操作。可以由软件750或其他代码来请求由处理器712执行的操 作,或者可以通过专用硬件组件或通过编程的计算机组件与定制硬件组件的任何组合来执行本发明的一个实施例的步骤,所述专用硬件组件包括用于执行步骤的硬连线逻辑。本领域普通技术人员应当明白,本发明的一个实施例的各方面可以被具体化为系统、方法或计算机程序产品。因此,本发明的一个实施例的各方面可以采取全硬件实施例的形式、全软件实施例(包括固件、驻留软件、微代码等)的形式或包含在这里可通称为“电路”、“模块”或“系统”的软件和硬件方面的实施例的形式。此外,本发明的一个实施例的各方面可以采取计算机程序产品的形式,该计算机程序产品被具体化在其上具体化有计算机可读程序代码的一个或多个有形计算机可读介质(或多个)中。可以利用一个或多个计算机可读介质(或多个)的任何组合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质例如可以是但不限于电、磁、光、电磁、红外或半导体系统、装置、设备或者前述的任何适当组合。计算机可读存储介质的更多具体例子(非穷尽性列举)将包括下述具有一条或多条线的电连接、便携式计算机磁碟、诸如海量存储器件718的硬盘、诸如RAM714的随机存取存储器(RAM)、只读存储器(R0M)716、可擦除可编程只读存储器(EPR0M,或快闪存储器)、光纤、便携式致密盘只读存储器(CDR0M)、光学存储器件、磁存储器件或者前述的任何适当组合。在该文档的上下文中,计算机可读存储介质可以是任何有形介质,可以包含或存储由指令执行系统、装置或设备使用或者与指令执行系统、装置或设备结合的程序。计算机可读信号介质可以包括其中具体化有计算机可读程序代码的传播数据信号,例如,在基带中或作为载波的一部分。这样的传播信号可以采取各种形式中的任何形式,包括但不限于电磁、光、或其任何适当组合。计算机可读信号介质可以是并非计算机可读存储介质的任何计算机可读介质,其能够传达、广播或传送由指令执行系统、装置或设备使用或者与指令执行系统、装置或设备结合的程序。可以使用任何适当的介质来发送在计算机可读介质上具体化的程序代码,所述介质包括但不限于无线、有线、光纤电缆、射频(RF)等或前述的任何适当组合。可以以一种或多种编程语言的任何组合来来编写执行本发明的实施例的操作的计算机程序代码,包括面向对象编程语言以及传统的过程编程语言,面向对象编程语言诸如Java、Smalltalk、C++等,传统的过程编程语言诸如“C”编程语言或类似的编程语言。程序代码可以全部在诸如计算机系统700的用户的计算机上执行、作为独立软件包部分在用户的计算机上执行、部分在用户的计算机上执行且部分在远程计算机上执行、或者全部在远程计算机或服务器上执行。在后者的方案中,远程计算机可以通过任何类型的网络(诸如网络602)、通过通信接口(诸如网络接口 732)、经由例如可以连接到网络602的网络链路而连接到用户的计算机。在例子中,网络接口 732包括适配器734,用于通过链路将计算机系统700连接到网络602。虽然未示出,但是网络接口 732可以包括诸如设备驱动的额外软件、额外硬件和使能通信的其他控制器。当被实现为服务器时,计算机系统700例如可以包括可经由连接到输入/输出控制器的多个外围组件互连(PCI)总线桥而访问的多个通信接口。以此方式,计算机系统700允许经由多个分离的端口到多个客户端的连接,并且每个端口也可以支持到多个客户端的多个连接。
下面参照根据本发明的实施例的方法、装置(系统)和计算机程序产品的流程示和/或框图来说明本发明的一个实施例。本领域普通技术人员应当明白,可以通过计算机程序指令来实现所述流程示和/或框图的每个块、以及所述流程示和/或框图中的块的组合。可以将这些计算机程序指令提供给通用计算机、专用计算机、或者其他可编程数据处理装置的处理器以便产生机器,使得经由所述计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现在所述流程图和/或框图的一个或多个块中指定的功能/动作的部件。也可以将这些计算机程序指令存储在计算机可读介质中,该计算机可读介质可以指示诸如计算机系统700的计算机或者其他可编程数据处理装置以特定的方式发挥作用,使得存储在计算机可读介质产品中的指令产生一种制造产品,该制造产品包括实现在所述流程图和/或框图的一个或多个块中指定的功能/动作的指令部件。也可以将计算机程序指令加载到诸如计算机系统700的计算机或其他可编程数据处理装置上,以使得在计算机或其他可编程装置上执行一系列操作步骤,从而产生计算机实现的过程,使得在计算机或其他可编程装置上执行的指令提供用于实现在所述流程图和/或框图的一个或多个块中指定的功能/动作的过程。计算机接口 732、到网络602的网络链路以及网络602可以使用携带数字数据流的电、电磁或光学信号。通过各种网络的信号、以及携带去往计算机系统700和来自计算机系统700的数字数据的网络602、到网络602的网络链路及计算机接口 732上的信号可以是传送信息的载波的形式。此外,计算机系统700可以包括便于输入和输出的多个外围组件。这些外围组件连接到多个控制器、适配器和扩展槽,诸如输入/输出(I/O)接口 726,并且耦接到总线722的多个级别中的一个。例如,经由控制输入的I/O接口 726在总线722上通信地使能的输入设备724可以例如包括麦克风、视频捕捉设备、图像扫描系统、键盘、鼠标或其他输入外围设备。此外,例如,经由控制输出的I/O接口 726在总线722上通信地使能的输出设备720例如包括一个或多个图形显示设备、音频扬声器和触觉可检测输出界面,但是也可以包括其他输出接口。在本发明的替换实施例中,可以添加额外的或替代的输入和输出外围组件。本领域普通技术人员应当明白,在图7中描绘的硬件可以变化。此外,本领域普通技术人员应当明白,所描绘的例子并不意味着暗含对于本发明的架构限制。图8图示用于针对由数据处理应用使用的共享的提取规则高速缓冲存储器来格式化数据提取规则的高级逻辑流程图。如所图示的,过程在块800处开始,并且此后进行到块802。块802示出确定规则转换器是否检测到对于数据提取应用中的一个的数据提取规则更新。块804图示从多个格式化规则中选择用于数据提取规则类型的格式化规则。然后,块806示出根据所选择的格式化规则将数据提取规则中的每个元素转换为格式化的元素。此后,块808图示将每个格式化的元素添加到用于共享的提取规则高速缓冲存储器中的格式化的数据提取规则的元素集合中,并且过程结束。图9图示用于将数据处理应用的解析器配置为高效高速缓冲关于一个或多个数据提取应用感兴趣的新数据事件的信息的高级逻辑流程图。如所图示的,过程在块900处开始,并且此后进行到块902。块902图示将具有处理机选择器的解析器配置为解析到来的 XML事件。然后,块904示出在解析器中定义面向对象的默认处理机和数据提取处理机,用于处理机选择器进行调用。此后,块906图示将解析器配置为访问共享的提取规则高速缓冲存储器中的格式化的规则。然后,块908示出将处理机选择器配置为根据格式化的规则为每个所解析的元素选择默认处理机或数据提取处理机并调用,并且过程结束。图10图示用于根据指定一个或多个数据提取应用感兴趣的元素的格式化的规则来处理到来的数据事件的高级逻辑流程图。如所图示的,过程在块1000处开始,并且此后进行到块1002。块1002图示确定数据处理应用是否检测到新数据事件,数据处理应用用于解析数据事件并将所解析的数据存储到数据库中。如果检测到新数据事件,则过程进行到块1004。块1004图示解析新数据事件的每个元素,其中所解析的元素被识别为与所定义的默认处理机匹配的元素。然后,块1006示出根据当前格式化的规则为每个元素选择默认处理机或数据提取处理机,其中格式化的规则指定一个或多个数据提取应用感兴趣的元素。此后,块1008图示为每个元素调用所选择的处理机,并且过程进行到块1010。块1010图示关于调用什么类型的处理机进行确定。如果为元素调用默认处理机,则过程进行到块1012。块1012图示默认处理机控制在数据库中存储所解析的元素,并且过程结束。返回块1010,在块1010处,如果为元素调用数据提取处理机,则过程进行到块1014。块1014图示数据提取处理机控制向共享的新高速缓冲存储器中添加关于新数据事件元素的信息。然后,块1016示出数据提取处理机为元素调用默认处理机,并且过程返回块 1010。图11图示对于查询时段确定哪个数据提取规则要重新评估的高级逻辑流程图。如所图示的,过程在块1100处开始,并且此后进行到块1102。块1102图示确定对于数据提取应用是否触发新查询时段。在一个例子中,当数据提取应用的查询控制器检测到对于新查询时段的触发时,查询控制器检测到数据提取应用准备针对至少一个数据提取规则来查询数据库。如果触发新查询时段,则过程进行到块1103。块1103示出访问共享的新高速缓冲存储器中的事件信息,其中在将从每个新数据事件中解析的数据添加到数据库之前,事件信息被添加到用于每个数据事件的高速缓冲存储器中,并且其中该信息可以仅包括用于从定义新数据的所接收的数据事件中解析的要添加到数据库中的多个元素中、根据至少一个数据提取规则选择被指定为感兴趣元素的元素的条目。然后,块1104图示性对于共享的新高速缓冲存储器中的事件信息来评估数据提取应用的每个数据提取规则。通过相对于事件信息来评估每个数据提取规则,数据提取应用确定哪些数据提取规则需要被重新评估,因为事件信息指示新数据已经被添加到数据提取规则参数内的数据库中。在一个例子中,相对于共享的新高速缓冲存储器中的事件信息来评估关于数据提取应用的每个数据提取规则包括相对于共享的新高速缓冲存储器中按照树结构存储的事件信息来评估每个数据提取规则,以识别树结构的任何分支是否包括与数据提取规则相关的节点。然后,块1105图示根据当前清除策略来标记评估的信息以控制共享的新高速缓冲存储器的清除。块1106图示根据事件信息确定是否需要重新评估任何数据提取规则。在块1106,如果对于查询时段没有数据提取规则需要重新评估,则过程进行到块1114。块1114图示对于当前查询时段不产生任何查询或调用数据库,并且过程进行到块1112。块1112图示将查询控制器设置为休眠模式,直到触发下一查询时段为止,并且过程结束。返回块1106,如果在块1106处,对于查询时段有至少一个数据提取规则需要重新评估,则过程进行到块1108。块1108图示仅对于选择需要重新评估的数据提取规则产生查询。然后,块1110图 示调用具有所产生的查询的数据库,并且过程进行到块1112。附图中的流程图和框示了根据本发明各种实施例的系统、方法和计算机程序产品的可能实现方式的架构、功能和操作。在这一点上,所述流程图或框图中的每个块可以表示模块、片段或代码部分,其包括用于实现指定的一个或多个逻辑功能的一个或多个可执行指令。还应当注意,在某些替代实现方式中,块中标注的功能可以不按照图中标注的顺序进行。例如,连续示出的两个块实际上可以基本同时地执行,或者根据所涉及的功能,有时候可以按照相反的顺序执行所述块。还将注意到,可以通过执行指定的功能或动作的基于专用硬件的系统或者专用硬件和计算机指令的组合来实现所述框图和/或流程示的每个块、以及所述框图和/或流程示中的块的组合。在这里使用的术语只是出于描述特定实施例的目的,而非意图限制本发明。如这里使用的,单数形式“一”、“一个”和“该”意图是也包括复数形式,除非上下文清楚地指出不是这样。还将理解的是,当在本说明书中使用时,术语“包括”和/或“包含”指明存在所述特征、整数、步骤、操作、要素和/或组件,但是不排除存在或附加一个或多个其他特征、整数、步骤、操作、要素、组件和/或其组。下面的权利要求中的所有部件或步骤加功能元件的对应结构、材料、动作和等价物意在包括用于与特别要求权利的其它要求组件组合地执行功能的任何结构、材料或动作。已经为了示例性和说明性的目的呈现了本发明的一个或多个实施例的说明,但该说明不意在是穷举的或将本发明限制到所公开的形式。许多修改和改变对于本领域的普通技术人员而言将是显而易见的,而不偏离本发明的范围和精神。选择和说明实施例,以便最佳地说明本发明的原理和实际应用,并使得本领域的其它普通技术人员对于具有适于所构思的特定使用的各种修改的各种实施例能够理解本发明。虽然已经参照一个或多个实施例具体示出和描述了本发明,但是本领域技术人员应当明白,可以在其中做出形式上和细节上的各种改变,而不会偏离本发明的精神和范围。
权利要求
1.一种用于减少由应用向数据库做出的查询的数目的方法,该方法包括 响应于检测到应用准备针对至少一个数据提取规则来查询数据库,而访问包括与新添加到数据库的数据相关的信息的高速缓冲存储器; 相对于高速缓冲存储器中的信息来评估至少一个数据提取规则中的每一个,以确定该信息是否与至少一个数据提取规则相关;以及 响应于从至少一个数据提取规则中检测到与该信息相关的至少一个特定数据提取规贝U,通过应用仅向数据库发送针对所述至少一个特定数据提取规则的单独查询。
2.根据权利要求I所述的方法,其中,所述响应于检测到应用准备针对至少一个数据提取规则来查询数据库、而访问包括与新添加到数据库的数据相关的信息的高速缓冲存储器进一步包括 访问包括与新添加到数据库的数据相关的信息的高速缓冲存储器,其中在将从每个新数据事件解析的数据添加到数据库之前,该信息被添加到高速缓冲存储器用于每个新数据事件。
3.根据权利要求I所述的方法,其中,所述响应于检测到应用准备针对至少一个数据提取规则来查询数据库、而访问包括与新添加到数据库的数据相关的信息的高速缓冲存储器进一步包括 访问包括与新添加到数据库的数据相关的信息的高速缓冲存储器,其中该信息仅包括用于从定义新数据的所接收的数据事件解析的要添加到数据库中的多个元素中、根据至少一个数据提取规则选择被指定为感兴趣元素的元素的条目。
4.根据权利要求I所述的方法,其中,所述响应于检测到应用准备针对至少一个数据提取规则来查询数据库、而访问包括与新添加到数据库的数据相关的信息的高速缓冲存储器进一步包括 响应于检测到针对应用针对新的查询时段的触发,而检测到应用准备针对至少一个数据提取规则来查询数据库。
5.根据权利要求I所述的方法,其中,所述相对于高速缓冲存储器中的信息来评估至少一个数据提取规则中的每一个、以确定该信息是否与至少一个数据提取规则相关进一步包括 相对于所述高速缓冲存储器中以树结构存储的信息来评估至少一个数据提取规则中的每一个,以识别树结构的任何分支是否包括与所述至少一个数据提取规则相关的节点。
6.根据权利要求I所述的方法,进一步包括 响应于应用相对于高速缓冲存储器中的信息来评估至少一个数据提取规则,对高速缓冲存储器中的信息做标记以指示应用已经评估了该信息,用于控制从高速缓冲存储器中清除所评估的信息。
7.根据权利要求I所述的方法,进一步包括 响应于没有检测到所述至少一个数据提取规则中与该信息相关的任何一个,应用对于当前查询时段不向数据库发送任何查询。
8.根据权利要求I所述的方法,进一步包括 由数据处理应用来接收新数据事件,所述数据处理应用用于解析数据事件并将所解析的数据存储到数据库中;由数据处理应用解析新数据事件,以识别所述新数据事件内的至少一个元素; 对于至少一个所解析的元素中的每一个,确定该至少一个所解析的元素是否被指定为所述至少一个数据提取规则中的至少一个感兴趣元素; 对于被指定为所述至少一个数据提取规则中的至少一个感兴趣元素的每个所解析的元素,为所解析的元素调用数据提取处理机以将关于所解析的元素的信息添加到高速缓冲存储器中,并且为所解析的元素调用默认处理机以将所解析的元素的数据添加到数据库中;以及 对于未被指定为所述至少一个数据提取规则中的至少一个感兴趣元素的每个所解析的元素,为所解析的元素调用默认处理机以将关于所解析的元素的数据添加到数据库中。
9.一种用于减少由应用向数据库做出的查询的数目的系统,该系统包括 查询控制器,包含至少一个处理器和存储器,该查询控制器响应于检测到应用准备针 对至少一个数据提取规则来查询数据库,操作以访问包括与新添加到数据库的数据相关的信息的高速缓冲存储器; 该查询控制器操作以相对于高速缓冲存储器中的信息来评估至少一个数据提取规则中的每一个,以确定该信息是否与至少一个数据提取规则相关;并且 该查询控制器响应于从至少一个数据提取规则中检测到与该信息相关的至少一个特定数据提取规则,操作以通过应用仅向数据库发送针对所述至少一个特定数据提取规则的单独查询。
10.根据权利要求9所述的系统,其中,该查询控制器响应于检测到应用准备针对至少一个数据提取规则来查询数据库,操作以访问包括与新添加到数据库的数据相关的信息的高速缓冲存储器进一步操作以访问包括与新添加到数据库的数据相关的信息的高速缓冲存储器,其中在将从每个新数据事件解析的数据添加到数据库之前,该信息被添加到高速缓冲存储器用于每个新数据事件。
11.根据权利要求9所述的系统,进一步包括 该查询控制器响应于应用相对于高速缓冲存储器中的信息来评估至少一个数据提取规则,操作以对高速缓冲存储器中的信息做标记以指示应用已经评估了该信息,用于控制从高速缓冲存储器中清除所评估的信息;并且 在应用服务器中维持所述高速缓冲存储器,并且所述高速缓冲存储器由多个数据提取应用所共享。
12.根据权利要求9所述的系统,进一步包括 该查询控制器响应于没有检测到所述至少一个数据提取规则中与该信息相关的任何一个,操作以使应用对于当前查询时段不向数据库发送任何查询。
13.根据权利要求9所述的系统,进一步包括 该查询控制器在至少一个应用服务器的客户端层中操作; 数据处理应用在至少一个应用服务器的中间层中操作,其中客户端层在中间层的上部操作; 数据处理应用操作以从客户端层中的至少一个数据源接收新数据事件; 数据处理应用操作以解析新数据事件,以识别所述新数据事件内的至少一个元素; 对于至少一个所解析的元素中的每一个,数据处理应用操作以确定该至少一个所解析的元素是否被指定为所述至少一个数据提取规则中的至少一个感兴趣元素; 对于被指定为所述至少一个数据提取规则中的至少一个感兴趣元素的每个所解析的元素,数据处理应用操作以为所解析的元素调用数据提取处理机以将关于所解析的元素的信息添加到高速缓冲存储器中,并且为所解析的元素调用默认处理机以将所解析的元素的数据添加到数据库中;以及 对于未被指定为所述至少一个数据提取规则中的至少一个感兴趣元素的每个所解析的元素,数据处理应用操作以为所解析的元素调用默认处理机以将所解析的元素的数据添加到数据库中。
14.一种用于管理关于添加到数据库的数据的信息的方法,包括 由数据处理应用接收新数据事件; 解析新数据事件以识别至少一个所解析的元素; 对于至少一个所解析的元素中的每一个,确定所述至少一个所解析的元素是否被指定为至少一个数据提取规则中的至少一个感兴趣元素,所述至少一个数据提取规则是针对基于所述至少一个数据提取规则对于数据库查询数据的至少一个数据提取应用而指定的;对于被指定为至少一个感兴趣元素的每个所解析的元素,为所解析的元素调用数据提取处理机以向高速缓冲存储器添加关于所解析的元素的信息,并为所解析的元素调用默认处理机以向数据库添加所解析的元素的数据; 对于未被指定为至少一个数据提取规则中的至少一个感兴趣元素的每个所解析的元素,为所解析的元素调用默认处理机以向数据库添加所解析的元素的数据;以及与所述至少一个数据提取应用共享对高速缓冲存储器中的信息的访问。
15.根据权利要求14所述的方法,进一步包括 访问第一格式的第一数据提取规则; 根据针对第一格式的第一格式化规则,识别被指定为与默认处理机相关联的第一数据提取规则内的每个特定元素; 在高速缓冲存储器中在标准格式的第一列表中存储每个特定元素; 访问第二格式的第二数据提取规则; 根据针对第二格式的第二格式化规则,识别被指定为与默认处理机相关联的第二数据提取规则内的每个特定元素; 在高速缓冲存储器中在标准格式的第二列表中存储每个特定元素。
16.根据权利要求14所述的方法,进一步包括 定义多个面向对象的默认处理机和多个面向对象的数据提取处理机,以供数据处理应用的解析器选择和调用。
17.根据权利要求14所述的方法,进一步包括 由至少一个数据提取应用访问高速缓冲存储器中的信息; 由至少一个数据提取应用基于该信息来评估至少一个数据提取规则中的每个是否需要重新评估; 由至少一个数据提取应用仅基于被识别为需要重新评估的任何特定数据提取规则来查询数据库。
全文摘要
一种查询控制器,该查询控制器响应于检测到数据提取应用准备针对至少一个数据提取规则来查询数据库,而访问包括与新添加到数据库的数据相关的信息的高速缓冲存储器。在数据处理应用将从每个新数据事件中解析的数据添加到数据库之前,该信息被添加到高速缓冲存储器,用于由数据处理应用接收的每个新数据事件。查询控制器相对于高速缓冲存储器中的信息来评估每个数据提取规则,以确定该信息是否与至少一个数据提取规则相关。查询控制器仅针对与该信息相关的任何特定数据提取规则来通过数据提取应用向数据库发送单独的查询,使得查询控制器将对于每个查询时段发送的查询的数目减小到仅仅是基于关于新添加到数据库中的数据更新的信息而需要重新评估的数据提取规则的查询。
文档编号G06F17/30GK102968428SQ201210265198
公开日2013年3月13日 申请日期2012年7月27日 优先权日2011年7月29日
发明者K.R.冈恩, V.默多克 申请人:国际商业机器公司