首页> 中国专利> 非关系型查询语言与关系型数据存储的集成

非关系型查询语言与关系型数据存储的集成

摘要

提供了使用非关系型(例如,XML(可扩展标记语言))查询语言来访问结合关系型(例如,SQL(结构化查询语言)数据库管理系统使用的存储过程的系统和/或方法。SQL中的存储过程使得能够预先确定可以针对关系型数据库执行的查询。本发明在非关系型查询语言与关系型数据存储之间搭建桥梁。换言之,本发明使得能够集成非关系型查询语言与关系型数据存储。本发明可以定义当前数据模型中的关系型数据的视图,将数据从关系型格式转换为非关系型格式,并提供可以使用例如一函数等从非关系型查询语言引用存储过程的机制。

著录项

  • 公开/公告号CN1815468A

    专利类型发明专利

  • 公开/公告日2006-08-09

    原文格式PDF

  • 申请/专利权人 微软公司;

    申请/专利号CN200510003568.X

  • 申请日2005-12-30

  • 分类号G06F17/30(20060101);

  • 代理机构31100 上海专利商标事务所有限公司;

  • 代理人张政权

  • 地址 美国华盛顿州

  • 入库时间 2023-12-17 17:33:59

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-12-20

    未缴年费专利权终止 IPC(主分类):G06F17/30 授权公告日:20090624 终止日期:20181230 申请日:20051230

    专利权的终止

  • 2015-05-20

    专利权的转移 IPC(主分类):G06F17/30 变更前: 变更后: 登记生效日:20150430 申请日:20051230

    专利申请权、专利权的转移

  • 2009-06-24

    授权

    授权

  • 2008-03-19

    实质审查的生效

    实质审查的生效

  • 2006-08-09

    公开

    公开

说明书

技术领域

本发明涉及数据处理和数据管理,尤其涉及非关系型查询语言与关系型数据处理环境的集成。

背景技术

关系型数据库被广泛地用于维护数据。目前,世界上绝大多数的数据存储是基于关系型数据模型的。从而,常常由SQL(结构化查询语言)标准的变化来主导访问。例如,众多公司在SQL兼容的数据库中维护组织、产品和顾客数据。SQL是用于在关系型数据库中询问和处理数据的语言。通常为结合大型机使用而开发的被设计用于客户机/服务器环境的大多数数据库管理系统(DBMS)支持SQL。

可以与关系型DBMS结合使用特别或非标准化查询来基于所定义的准则来标识信息。换言之,当出现需求时,可以构成特别查询来回答问题。例如,可以构成标识驻留在特定邮政编码的地理界限内的所有人的特别查询。

然而,由于某些原因,众多数据库管理员避免授予用户特别查询的能力。一个原因是,编写和执行含有众多复杂参数的特别查询可能会损害主存数据库的服务器的性能。另一原因是安全。通常数据库包含个人或敏感数据(例如,社会保障和信用卡帐号)。授予用户特别许可有时可能危及该信息的安全和机密性。

为这些原因,数据库管理员通常使用“存储过程”,它实际上是其中仅有小部分(例如,参数)可改变的内置的查询。例如,存储过程可以被定义为标识在特定邮政编码区域中拥有营业场所的顾客。根据该示例性存储过程,用户仅需输入邮政编码的值来获取结果。换言之,用户可以调用存储过程并传递所期望的邮政编码作为被标识的参数。

存储过程是SQL标准的基石特征,且类似于典型编程语言中的函数,它使得数据库管理员能预先确定针对该数据库执行的查询。查询的预先确定可以在数据库行为中提供额外的安全等级和性能可预测性。关系型数据库的许多用户排他地依赖于存储过程,因此禁用了由数据库消费任意(例如,特别)查询的能力。

最近,兴起描述表示数据和向商业应用程序的伙伴发送数据的方法的被称为XML(可扩展标记语言)的新技术。XML允许设计者创建他们自定义的标签,来允许在应用程序之间和组织之间定义、传输、确认以及解释数据。

从而,特别为XML数据创建了XML查询语言。由定义,这些语言不能查询关系型数据模型的数据库。缺乏这种查询能力造成不均衡,因为这些数据访问方法和/或语言与大多数现有数据存储不兼容。例如,在关系型数据库中维护大量数据,而公司想要通过XML来访问它。通过这样做,公司可以开发利用XML的应用程序并利用XML与其商业伙伴交互。换言之,存在兼容性中的不均衡,因为存在XML数据格式、关系型数据格式、XML查询语言和关系型查询语言。

最近的开发是针对用于将查询的行集合(例如,SQL)结果变换成分层(例如,XML)数据流的计算机化的系统和方法。然而,对于使用非关系型(例如,XML)查询语言来通过存储过程访问数据,从而从关系型(例如,SQL)数据库中获取结果,仍然存在未解决的问题。从而,存在对可以使用XML查询语言来从关系型数据存储中获取信息的系统的未被满足的需求。尤其需要,允许使用非关系型查询语言来调用关系型数据存储内的存储过程以访问其中的数据的系统和/或方法。

发明内容

以下提供了本发明的简化的概述,以提供对本发明的一个或多个方面的基本理解。该概述不是本发明的广泛的概观。它既不旨在标识本发明的关键或重要的元素,也不描绘本发明的范围。该概述的唯一的目的是以简化的形式呈现作为之后呈现的更详细描述的序言的本发明的某些概念。

此处所揭示和要求的本发明,在其中的一个方面,包含使用非关系型(例如,XML)查询语言来访问结合关系型(例如,SQL)DBMS使用的存储过程的系统和/或方法。使用SQL的存储过程允许可以针对关系型数据库执行的查询的预先确定。如上所述,最近关于非关系型数据模型查询语言进行了大量的研究。由定义,这些语言不能查询关系型数据模型数据库。缺乏这种能力导致不均衡,因为这些数据访问方法与关系型数据存储不兼容。本发明连接这之间的差异,并允许非关系型查询语言与关系型数据存储的集成。

本发明的各方面提供从非关系型查询语言对以非关系型查询语言的存储过程的支持。该支持可以通过以下生效(1)定义当前数据模型中的关系型数据的视图以及(2)提供使用例如函数等来从非关系型查询语言引用存储过程的机制。

在一个方面中,提供了便于通过非关系型查询组件从关系型数据存储中访问数据的系统。根据该方面,集成组件可以将在非关系型查询组件内定义的函数转换为对存储过程的调用。可以理解,存储过程可以便于对关系型数据存储内的数据的访问。而且,可以使用转换组件,它将从关系型数据存储(例如,SQL)中检索得到的数据转换为与非关系型查询组件(例如,XML)一致的非关系型格式。

在一个方面,数据为动态类型的数据。一替换的方面是针对其中数据是静态类型的数据的系统。可以传递一个或一组参数来标识存储过程,以及定义将由该存储过程使用的准则。在静态类型的方面中,可以使用能够就类型对参数和数据进行确认的组件。

替换的方面结合本发明使用促进集成的逻辑和推断机制。例如,可以使用促进接口组件的制定决策功能的基于规则和/或人工智能的机制。

为了达到前述以及相关的目的,此处结合以下描述和附图描述本发明的某些说明性的方面。然而,这些方面仅指示可以使用本发明的原则的各种方式中的少数几种,且本发明旨在包含所有这样的方面以及其等效实施方式。结合附图阅读以下本发明的详细描述时,本发明的其它优点和新颖的特征将变得明显。

附图说明

图1示出了根据本发明的一方面,含有促进非关系型查询语言与关系型数据存储之间的集成的接口组件的系统的一般组件框图。

图2示出了根据本发明的一动态类型方面,在非关系型查询语言与关系型数据存储之间的示例性集成的一般体系结构示意图。

图3示出了根据本发明的一静态类型方面,在非关系型查询语言与关系型数据存储之间的示例性集成的一般体系结构示意图。

图4示出了根据本发明,便于确认的另一可替换静态类型方面的一般体系结构示意图。

图5示出了根据本发明的一替换方面,使用基于规则的决策机制的可替换接口组件的组件框图。

图6示出了根据本发明的一替换方面,使用基于人工智能的决策机制的可替换接口组件的组件框图。

图7示出了根据一揭示的动态类型方面,用于集成非关系型查询语言与关系型数据存储的过程的示例性流程。

图8示出了根据一揭示的静态类型方面,用于集成非关系型查询语言与关系型数据存储的过程的示例性流程。

图9示出了可用于执行所揭示的体系结构的计算机的框图。

图10示出了根据本发明的示例性计算环境的示意性框图。

具体实施方式

现在参照附图描述本发明,在全部附图中,相同的参考标号指的是同样的元素。在以下描述中,为说明起见,描述了众多具体细节,以提供对本发明的彻底理解。然而显然,本发明可以无需这些具体细节而实现。在其它实例中,公知的结构和设备以框图形式示出,以便描述本发明。

如在本申请中所使用的,术语“组件”和“系统”指的是计算机相关的实体,它们或者是硬件、硬件和软件的组合、软件或者是执行中的软件。例如,组件可以是,但不限于,运行在处理器上的进程、处理器、对象、可执行代码、执行的线程、程序和/或计算机。作为说明,运行在服务器上的应用程序和服务器本身都可以是组件。一个或多个组件可以驻留在进程和/或执行中的线程内,且组件可以位于一台计算机上和/或分布在两台或多台计算机之间。

如此处所用,术语“推断”和“推论”一般指的是从通过事件和/或数据捕捉到的一组观察值中推出或推断系统、环境和/或用户的状态的过程。推论例如可以被用来标识具体的上下文或动作,或者可以生成状态上的概率分布。推论可以是概率性的,即,基于对数据和事件的考虑进行对所关心的状态上的概率分布的计算。推论也可以指的是用于从一组事件和/或数据中组成更高级的事件的技术。这样的推论导致从一组观察到的事件和/或存储的事件数据中构造出新的事件或动作,而不论原先的事件是否在时间上紧密相关,也不论原先的事件和数据是来自一个还是若干个事件和数据源。

最初参考图1,示出了根据本发明促进非关系型查询语言与关系型数据存储环境之间的集成的系统100。一般而言,系统100包括非关系型查询语言组件102、关系型数据存储组件104和接口组件106。更具体地,图1的系统可以使用接口组件106来实现对与关系型数据存储组件104相关联的存储过程的调用,并检索结果,好像结果是被格式化为与非关系型查询语言组件(例如,XML)一致。从而,代替必须依赖关系型查询语言(例如,SQL)来获取该信息,可以直接使用非关系型查询语言组件102来访问关系型数据存储组件104内的数据。

根据本发明,非关系型查询语言组件102可以表示本领域中已知的任何非关系型查询语言,包括但不限于,XML查询语言。尽管此处描述了针对使用XML查询语言的各方面,但可以理解,本发明的新颖的方面可以结合任何非关系型查询语言组件102来使用,而不背离本发明及就此所附的权利要求书的精神和范围。

操作中,可以通过非关系型查询语言组件102定义函数108,并将其通信(例如,传输)至接口组件106。例如,查询中定义的函数108可以引用一存储过程,通过该存储过程,可以向关系型数据存储组件104请求数据。接口组件106可以接收并分析函数108,从而生成将被传送至关系型数据存储组件104内的合适的存储过程的调用110。

一旦结合关系型数据存储组件104执行存储过程,可以将数据112返回至接口组件106。因为是通过关系型数据存储组件104来生成数据112的,应该理解,该数据(例如,112)可以是表格格式的。接口组件116可以根据视图定义进程,促进将表格格式的数据112转换为非关系型数据格式(例如,数据114)。将在下文更详细描述接口组件106的功能。可以关于两个完全不同的特征,即视图定义特征和存储过程引用特征来描述,接口组件106可以响应于非关系型查询语言组件102来访问存储过程并格式化通过该存储过程接收的数据的概念。这些完全不同的特征将在下文中详细讨论。

首先,关于视图定义特征,接口组件106可以定义当前数据模型内包含的关系型数据的视图。一般有两种方法来实行访问和格式转换。第一种方法是通过正则视图。换言之,可以对关系型数据进行预先定义的整形以使其遵循目标数据模型(例如,XML)。第二种方法涉及向当前数据模型定义关系型数据的自定义视图。第二种方法尤其灵活,因为它允许在成形进程中应用自定义的逻辑,从而提供自定义的成形。可以理解,如此处所用,“成形”和“映射”是同义的术语。定义关系型数据的视图的第一特征以提供转换为目标数据模型(例如,XML)的机制,在于2000年3月17日提交的,名为“Transforming Query Results into HierarchicalInformation(将查询结果变换为分层信息)”的美国专利第6,708,164中描述,其整体通过引用包含在此。以下是便于通过非关系型查询语言请求和获取关系型数据的第二特征(例如,存储过程引用)的详细描述。

第二特征可以使用其中可以从非关系型查询语言引用和/或访问存储过程的机制。DBMS中,存储过程可以指的是存储在数据库中的程序(例如,SQL程序)。当然,该存储的程序可以由来自客户机或来自数据库触发器的调用直接执行。可以理解,因为在数据库中存储SQL过程,所以不必在每一客户机中复制该过程。这样,存储过程可以减少编程的工程量,尤其当使用不同的客户机用户界面和开发系统时。触发器和存储过程可以嵌入至客户机/服务器环境中所使用的DBMS中。

如上所述,在一个方面中,可以通过已知为函数的编程构造进行存储过程引用。函数一般是可以由若干组件重用的封装的逻辑块。查询语言(例如,非关系型查询语言组件102)可以使得,特定的扩展函数108当被调用时,可以访问关系型数据存储组件104内的存储过程。从而,表格数据112和重定格式的数据114可以通过以上描述的接口组件106的成形进程来返回。

根据本发明的特征,关于类型分配来描述各方面。图2是针对使用动态类型的或后期绑定查询语言的一方面。另一方面,图3和4针对使用静态类型或前期绑定的查询语言的各方面。可以理解,动态类型的查询语言可以指的是一种语言,对其而言,对变量和表达式的类型的分配在运行时基于该时刻的条件发生。而相反,在前期绑定方面中,可以理解对变量和表达式的类型分配在编译时发生。

现在参考图2,示出了针对动态类型查询语言102。如图所示,非关系型查询语言组件102可以使用参数1至M,其中M是整数。参数1至M可以个别地或共同地被称为参数202。关系型数据存储组件104可以使用存储过程1至N,其中N为整数。存储过程1至N可以个别地或共同地被称为存储过程204。

对诸如XPath查询语言等动态类型的查询语言而言,实现可以使用单个扩展函数108,其中函数108的参数202可以被传递至接口组件106,借此参数202标识存储过程204的名称。从而,可以在执行过程中调用该存储过程204。另外的参数202也可以被传递至该扩展函数108。可以理解,可以在存储过程调用110过程中传递这些另外的参数。在这种情况中,可以使用单个扩展函数108来访问所有可供使用用的存储过程204。

作为示例,假设存储过程204名为“GetCustomer”。该特定的存储过程204可以采用单个整数值参数202。根据示例性XPath非关系型查询语言组件102,用于调用此存储过程204并返回为XML(例如,数据114)的结果的扩展函数108可以是:

Access-Stored-Proc(″GetCustomers″,345)/Order[@id=5]

该示例性查询将使用参数202的值“345”来调用“GetCustomer”存储过程204。在该示例中,“GetCustomer”和“345”均通过参数202被传递给函数108(例如,“Access-Stored-Proc”)。该存储过程204的结果(例如,数据112)然后可以被变换为XML片段(例如,数据114),且该XPath查询的剩余部分,如果存在,可以在该片段上执行。可以理解,可以响应于存储过程调用实现任何数量的查询。尽管该示例性函数名为“Access-Stored-Proc”,但是应该理解,可以利用任何名称,而不背离此处描述的功能。

现在参考图3,示出了本发明的一替换方面。图3的方面针对其中非关系型查询用于组件102是静态类型的查询语言的系统300。对诸如XQuery语言等静态类型查询语言102而言,示例性系统300可以使用在查询编译过程中建立的可用的存储过程信息,并展示用于访问存储过程204的多个扩展函数302。如图所示,非关系型查询用于组件102可以使用1至P个扩展函数,其中P为整数。扩展函数1至P可以单个或共同被称为扩展函数302。

可以理解,这方面可以展示对应于可用的每一存储过程204的扩展函数302。传递至这些扩展函数302的参数202可以由接口组件106以调用110的形式传递给存储过程204。引用组件304可以基于扩展函数302实现存储过程204的标识。可以提供视图组件306来定义如上所述当前数据模型的关系型数据的视图。具体地,视图组件306可以转换表格(例如,关系型)格式数据112成非表格格式(例如,非关系型)数据114。

包含以下示例以提供本发明的上下文。在一个方面中,假设Customer(顾客)拥有Order History(定单历史)。具体地,假设Customer拥有带有一百个相应Product(产品)的十个定单。在该情形中,将形成层次结构。换言之,Customer关联至Order History,Order History关联至Order,最终Order关联至Product。

可以理解,关系型数据库(例如,SQL)不能存储该层次关系型。相反,关系型环境中存在名为“规格化”的概念,借此概念可以以表格的方式存储信息,从而可以将结构变更为函数。规格化进程可以将数据分解为记录组,借此提供更有效的处理。贯穿该进程,可以使用记录中的关键字段来标识数据。

继续该示例,Order信息可以由Order Number(定单号)标识,而Customer信息可以由Customer号标识。然而,数据库并不理解该Customer是与该Order相关联的。经常在该非关系型空间中,这些Order可以与该Customer相关联。视图组件306可以查看关系型数据存储组件104,并格式化结果得到的数据(例如,112)以显示关系型,从而生成数据114。此处所述的视图组件306可以使用与之前提及的美国专利第6,708,164中所述的类似的概念,该专利整体通过引用包含在此。

因为本方面的非关系型查询语言组件102是静态类型的,系统300可以确保和确认所使用的参数202对应于指定的数据类型。同样,关于存储过程(如由视图组件306所规定的)返回的数据(例如,数据112)的类型可以被验证来确保,它与查询的其余部分一致。这些确认方面将在下文关于图4更详细地讨论。

除视图组件306之外,本发明的另一新颖的方面针对引用组件306。引用组件304可以促进接收来自非关系型查询语言组件102的请求和访问关系型数据存储组件104内维持的数据。换言之,本发明的新颖的特征是针对允许就非关系型查询语言组件102(例如,XML)方面的通信的系统和方法,借此可以从关系型数据库104中指定并获取信息(例如,数据)。可以通过与关系型数据存储104相关联的存储过程204访问该信息。如上关于视图组件306所述,一旦获取关系型信息(例如,数据112),那么可以实现对关系型数据112的转换,以生成与非关系型环境(例如,XML)兼容格式的数据114。

尽管将接口组件106描述为分离的组件,但可以理解,接口组件106的功能可以被包含在现有系统的编译器中。例如,无论何时用户调用查询,编译器可以将非关系型查询的文本转换成可由计算机执行的语言和/或代码(例如,调用110)。基本上,本发明的各方面可以被视为编译器的新特征,从而实现将由非关系型查询语言组件102展示的查询语言(例如,函数302)转换成由关系型数据存储组件104的存储过程204可识别的调用110的能力。

返回参考该示例,假定在XQuery环境中实现。假设在每一Order中存在多个Product,多个Order组成Order History,且每一Customer拥有一Order History。另外,存在存储过程204,它可以通过标识号来检索Customer。就此,关系型数据存储组件104可以展示可以通过标识号来检索Customer的存储过程204。如图3中所示,用户可以将函数302中的参数(例如,整数)202传递至接口组件106。接口组件106通过引用组件304,可以将函数302转换成至指定存储过程204的调用110。随后,可以执行存储过程204,从而从关系型数据存储组件104返回请求的数据112。

因为数据112是从关系型数据存储组件104中检索得到的,所以将以多个数据集来返回数据112。按照惯例,因为非关系型(例如,XML)语言不使用关系型机制,所以对哪个Product关联至所返回的Order的手动解释是必需的。然而,根据本发明,视图组件306可以如上所述被用于建立关系型。可以理解,关系型数据库使用嵌套(例如,分层)格式,如果将其转换,可以在XML环境中使用它。

本发明允许对存储过程204的访问,借此由关系型数据存储组件104存储的层次结构可以被自动地以与非关系型环境(例如,XML)一致的格式来访问、转换和使用。换言之,根据本发明,来自XML环境内,可以引用和使用该分层的、嵌套的结构。根据该示例,Customer内,用户可以查看Order以寻找所定购的特定Product。

再次参见图3,为了访问来自关系型数据存储组件104的数据112,用户可以通过非关系型查询语言组件102来使用扩展函数302。扩展函数302可以在非关系型查询语言组件102内定义。可以理解,“函数”可以指的是能够为其被写入的程序或某些其它程序执行任务的自包含软件例程(例如,存储过程)。因为该方面使用静态类型的情景,表示所期望的存储过程204的名称的参数202可以作为函数302传递。

接口组件106可以将所定义的扩展函数302翻译成可以由关系型数据存储组件104内的存储过程204理解的调用110。调用110可以是由程序对使用子例程(例如,存储过程204)的请求。当然,该子例程(例如,存储过程204)可以是大型的,且可以执行大量处理。同样,子例程可以小如标识单个字段和返回结果。如在图3的静态类型方面中所示,函数302和随后的调用110可以指定存储过程204的名称,后跟要传递给存储过程204的任何值或参数202。

当调用存储过程204时,如图所示可以执行操作从而返回结果(例如,数据112)。尽管所述方面是针对数据存储组件(例如,关系型数据存储组件104)内部的存储过程204,但是可以理解,存储过程204可以是对该数据存储组件外部的程序和/或子例程。

作为其它示例,在该静态类型的示例中,名为“FindCustomer”的存储过程可以通过非关系型查询语言组件102直接调用。从而,可以添加“姓”和“邮政编码”作为参数202,这样就为存储过程204定义了准则。从而,该函数302能够调用该指定存储过程204(例如,“FindCustomer”)并返回对应于所定义的参数202的结果(例如,数据112)。下一步,可以以适于该查询语言102进一步后处理的方式转换该结果(例如,数据112)。

如上所述,图2的方面针对非静态类型的机制。就此,可存在能够促进对存储过程204的访问的一个标准扩展函数108(例如,Access-Stored-Proc)。换言之,实现对存储过程204访问的编译器可以展示单个函数108。此外,函数108的参数202中的一个可以标识要调用哪个存储过程204。

另一方面,图3(以及下述的图4)中示出的本发明的方面针对静态类型的方面。可以理解,非关系型查询语言组件102可以使用类型的概念来提供额外的功能。例如,在静态类型或前期绑定情形中,非关系型查询语言组件102可以意识到关系型数据存储104内包含的数据的类型,借此使用分析和/或确认技术。按照惯例,可以理解,常见的数据类型可以包括数字、串、布尔(例如,真/假)等。

参考图4的方面,非关系型查询语言组件102可以关于关系型数据存储组件104强化这些类型。作为示例,如果用户调用使用布尔逻辑“真”加“真”的查询,那么非关系型查询语言组件102可以识别出,这是无意义的动作,从而引起就此的通知。根据本发明,非关系型查询语言组件102可以利用这种类型的逻辑。这样做,包含在关系型数据存储组件104内的数据可以按照特定类型分类。

回到该示例,根据静态类型方面,可以定义“Customer”类型和“Order History”类型。从而,如果使用函数来标识“Customer”的“Product”,那么编译器(例如,确认组件402)可以提示基于数据类型指示错误的通知。换言之,“Customer”不具有于其直接相关联的“Product”。在该示例中,“Customer”拥有“Order History”,而它拥有“Order”,而“Order”含有“Product”。然而,“Customer”不直接含有“Product”。从而,该请求可以被标识为错误。

如图所示,确认组件402可以被使用来根据关于存储过程204预先定义的类型,来确认参数202以及所返回数据112的类型。作为示例,假设关系型数据存储104中的名为“FindCustomer”的存储过程204采用两个串参数202。第一参数202是“名”而第二参数202是“姓”。从而,在示例性XQuery环境中,用于调用该存储过程204并返回作为XML的结果(例如,数据114)的扩展函数302可以是:

            FindCustomer(″George″,″Washington″)

为了确保该查询是静态正确的,如果参数202的类型不符合存储过程204,那么接口组件106(例如,确认组件402)可以提示在来自非关系型查询语言组件102的查询上出错。同样,如果所返回的数据112的类型与查询(例如,XQuery查询)的剩余部分不兼容,可以生成出错通知。关于以下示例应该可以更好地理解该功能。假设提供以下XQuery:

        FindCustomer(″George″,123)

在上述查询语句中,“FindCustomer”存储过程204不接受整数值作为参数202。因为静态类型的XQuery编译器(例如,确认组件402)含有关于存储过程04所必需的静态信息,确认组件402所以能够确定该查询是不正确的。另外,确认组件402可以提供基于通过存储过程204检索到的结果得到的数据(例如,112)的类型的类似的检测和确认。

在关于图2描述的方面中,接口组件106和/或编译器不知道任何这样的类型信息(例如,动态类型的)。然而,在图4的静态类型的方面中,编译器了解关系型数据存储组件104中的信息的类型。从而,接口组件106能够理解类型,并能展示存储过程204作为强类型的方法。据此,接口组件106可以使用确认组件402来检查所返回数据(例如,数据112)的有效性,并要求发送给存储过程204的参数202关于已知类型是正确的。

可以理解,图4的方面是针对静态检查的机制。这通常取决于查询语言是否被设计来支持静态类型。如所述,在静态类型的方面中,存储过程自身可以被展示为对扩展函数的参数。换言之,因为提前知道存储过程,可以直接创建表示存储过程的构造。应该理解,信息相关类型在执行之前已知,那么本发明可以检查数据和函数的有效性。

继续该示例,并关于图5,示出了接口组件106的更详细的示意视图。如图所示,接口组件106一般可以包括基于规则的引擎组件502。如将关于图6所述,可任选的人工智能(AI)组件(未示出)可以与该基于规则的引擎组件502共同使用,或代替引擎组件502被使用来自动推断要被结合如上所述接口组件106的功能而使用的一个动作或一组动作。

在图5的示例性方面中,基于规则的引擎组件502可以根据预先确定的偏好(例如,规则)来被编程或配置。例如,规则(例如,逻辑)可以被构造来基于定义的层次结构自动对查询区分优先级。更具体地,可以建立规则来考虑查询的具体特征、处理时间限制、信息类型等来区分优先级和处理查询。基于规则的引擎502可以促进规则的应用,借此可以因而变更对接口组件106的控制。

在图6中示出本发明的另一替换方面的示意图。图6中示出的该方面的接口组件106使用AI组件602来自动推断和/或预测动作。如图所示,该替换方面可以任选地包括促进自动控制和/或操作的推断模块604。

根据该方面,可任选AI组件602、604可以促进自动执行如此处所述的本发明的各个方面(例如,控制优先级、进程限制)。AI组件602可以任选地包括推断组件604,它部分利用基于推断的模式来促进推断在给定时间和/或状态时要被执行的预期动作,进一步增强AI组件的自动化方面。可以通过任何合适的基于机器学习的技术和/或基于统计的技术和/或基于概率的技术来实施本发明基于AI的方面。

在该替换方面中,如图6进一步示出,本发明(例如,结合控制查询(例如,存储过程)执行和/或操作)可以任选地使用各种基于人工智能的模式用于自动执行其中的各个方面。具体地,可以任选地提供人工智能组件602、604来基于人工智能进程(例如,置信度、推论)以实现本发明的各方面。例如,可以通过自动分类器系统和进程促进用于基于用户偏好来或处理请求确定查询执行的优先化的进程。而且,可任选的人工智能组件602、604可以被使用来促进基于预测和/或推断的偏好来呈现和/或格式化所接收到的数据的自动化进程。

分类器是将输入属性向量x=(x1,x2,x3,x4,xn)映射至该输入属于的一类的置信度的函数,即f(x)=confidence(class)。这样的分类可以使用概率和/或基于统计的分析(例如,因式分解成分析效用和开销)来预测或推断用户期望自动执行的动作。

支持向量机(SVM)是可以使用的分类器的一个示例。SVM通过寻找可能输入的空间中的超曲面操作,其中超曲面试图从非触发事件中分裂触发准则。直观地,这使分类对于接近但不同于训练数据的测试数据是正确的。可以使用其它有向或无向的模型分类方法包括,例如原始贝叶斯、贝叶斯网络、决策树、以及提供独立的不同模式的概率分类模型。此处所用的分类也包括用于开发优先级模型的统计回归。

可以通过本说明书中容易地理解,本发明可以使用显式训练(例如,通过普通训练数据)以及隐式训练(例如,通过观察用户行为、接收外部信息)的分类器。例如,可以通过分类器构造器和特征选择模块内的学习或训练阶段来配置SVM。换言之,构想了使用专家系统、模糊逻辑、支持向量机器、贪婪搜索算法、基于规则的系统、贝叶斯模型(例如,贝叶斯网络)、神经网络、其它非线性训练技术、数据融合、基于效用的分析系统、使用贝叶斯模型的系统等,且它们的使用被预期属于此处所附的权利要求书的范围内。

AI的其它实现可以包括可替换的方面,借此基于学会或预测到的用户意图,系统可以提示来验证。例如,系统可以在呈现敏感和/或机密数据(例如,社会保障和信用卡帐号)之前提示验证安全凭证。同样,可任选的AI组件可以基于系统状态提示用户延迟处理查询。

关于图7和8,示出了根据本发明的流程图。尽管为说明的简明起见,例如以流程图形式此处所示的一种或多种方法被示出和描述为一连串动作,但是可以理解和领会,本发明不受动作顺序的限制,而根据本发明,某些动作可以此处示出和描述的顺序不同的顺序和/或与其它动作同时发生。例如,本领域的技术人员可以理解和领会,方法可以被替换地表示为一连串相互关联的状态或事件,诸如在状态图中。而且,不是所有示出的动作对实现根据本发明的方法都是必需的。

参考图7,示出了使用动态类型查询语言组件的示例性方法。在702处,定义了访问存储过程的函数。如上所述,定义访问存储过程的函数可以采用所期望的任何名称。例如,如上所述,函数可以被定义为“Access-Stored-Proc”。在704处,标识参数,并将其传递至函数中。参数可以标识特定存储过程以及将在访问该存储过程的过程中所使用的变量。

在706处,函数被转换为与存储过程兼容的调用。例如,接口组件(例如,引用组件)可以被使用来将函数转换为存储过程调用。下一步,系统试图定位该存储过程。从而,在708处,作出是否存在存储过程的判断。如果在708处,作出不存在存储过程的判断,那么如图所示该进程终止。

反之,如果在708处,系统确定该存储过程的确存在,那么可以在710处执行该存储过程。如此处所述,可以理解,可以结合替换方面使用区分优先级的和/或延迟的存储过程执行。一旦执行,在712处存储过程返回结果。可以理解,因为存储过程结合关系型数据存储执行,所以返回的数据是表格格式的。在714处,该表格格式的数据可以被转换成与非关系型查询引用(例如,XML)一致的分层格式。可以通过上述视图定义组件实现该格式转换。图7的方面是针对动态类型情形的,而图8是针对静态类型情形的。

关于图8的静态类型方面,在802处,标识存储过程。如上所述,因为这方面是静态类型的,所以关于存储过程的信息是可用的,从而该信息可以通过非关系型查询语言标识。换言之,在该方面中,函数可以采用所期望的存储过程的名称。在804处,标识参数,并将其添加至函数。在806处,该函数被转换为可以由关系型数据库内的存储过程解释的调用。

因为图8的方面指的是静态类型(例如,前期绑定)的系统,可以理解,可以使用确认来确保可接受的处理。因而,在808处,可以作出所标识的参数是否与所标识的存储过程一致的判断。换言之,系统可以确定参数的类型是否与存储过程一致。如果确定,类型不一致,那么中止调用并结束该进程。如果,反之,参数是可接受的,那么在810处执行存储过程。在812处,从关系型数据存储返回表格数据。

再一次,因为该方面指的是静态类型的情形,在814处,可以验证所返回的数据与查询的兼容性。例如,如果要执行另外的查询动作,系统可以验证所返回的数据类型与该另外的查询动作一致。如果不可兼容,那么中止该进程,并终止该方法。如果在814处,作出数据是兼容的判断,那么可以在816处,对数据重定格式。该重定格式动作可以将所返回的表格数据格式化成与非关系型查询语言(例如,XML)一致的可接受的分层格式。

现在参考图9,示出了用于执行所揭示的体系结构的计算机的框图。为了向本发明的各方面提供附加的环境,图9及以下讨论旨在提供可在其中实现本发明各方面的合适的计算环境900的简要、大致的描述。尽管以上在可以在一台或多台计算机上运行的计算机可执行指令的通用语境中描述了本发明,但是本领域的技术人员可以认识到,本发明也可以结合其它程序模块和/或作为软硬件的组合来实现。

一般而言,程序模块包括例程、程序、组件、数据结构等,它们执行特定的任务或实现特定的抽象数据类型。而且,本领域的技术人员可以理解,本发明方法可以使用其它计算机系统配置来实现,包括单处理器或多处理器计算机系统、小型机、大型机、以及个人计算机、手持式计算设备、基于微处理器的或可编程消费电子产品等,它们中的每一个都可以有效地耦合至一个或多个相关联的设备。

本发明所示方面也可以在分布式计算环境中实现,在分布式计算环境中某些任务是由通过通信网络链接的远程处理设备执行的。在分布式计算环境中,程序模块可以位于本地或远程存储器存储设备中。

计算机一般包括各种计算机可读介质。计算机可读介质可以是可由计算机访问的任何可用介质,且包括易失性和非易失性介质、可移动和不可移动介质。作为示例,而非限制,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以任何方法或技术实现的用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括,但不限于,RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储、磁带盒、磁带、磁盘存储或其它磁性存储设备、或能用于存储所需信息且可以由计算机访问的任何其它介质。

通信介质通常具体化为诸如载波或其它传输机制等已调制数据信号中的计算机可读指令、数据结构、程序模块或其它数据,且包含任何信息传递介质。术语“已调制数据信号”指的是这样一种信号,其一个或多个特征以在信号中编码信息的方式被设定或更改。作为示例,而非限制,通信介质包括有线介质,诸如有线网络或直接线连接,以及无线介质,诸如声学、RF、红外线和其它无线介质。上述中任一个的组合也应包括在计算机可读介质的范围之内。

再次参考图9,示出了用于实现本发明各方面的示例性环境900,包括计算机902,计算机902包括处理单元904、系统存储器906和系统总线908。系统总线908将包括但不限于系统总线906在内的系统组件耦合至处理单元904。处理单元904可以是各种市场上可购买的任何处理器。双微处理器和其它多处理器体系结构也可以作为处理单元904使用。

系统总线908可以是若干类型总线结构中的任一种,可进一步与存储器总线(带有或不带有存储器控制器)、外设总线和使用各种市场上可购买的总线体系结构中任一种的局部总线互连。系统存储器906包括只读存储器(ROM)910和随机存取存储器(RAM)912。基本输入/输出系统(BIOS)存储在诸如ROM、EPROM、EEPROM等非易失性存储器910中,其中BIOS包含有助于诸如启动时在计算机902中元件之间传递信息的基本例程。RAM 912还可以包括用于高速缓存数据的诸如静态RAM的高速RAM。

计算机902还包括内部硬盘驱动器(HDD)914(例如EIDE、SATA),其中内部硬盘驱动器914也可被配置为在合适的机箱(未示出)中供外部使用;磁软盘驱动器(FDD)916(例如读写可移动盘918)以及光盘驱动器920(例如读CD-ROM盘922,或者读写诸如DVD的其它高容量光介质)。硬盘驱动器914、磁盘驱动器916和光盘驱动器920可以分别通过硬盘驱动器接口924、磁盘驱动器接口926和光盘驱动器接口928连接至系统总线908。用于外部驱动器实现的接口924包括通用串行总线(USB)和IEEE 1394接口技术中的至少一个或两者。

驱动器及其相关联的计算机可读介质提供数据、数据结构、计算机可执行指令等的非易失性存储。对于计算机902,驱动器和介质容纳以合适数字格式的任何数据的存储。尽管以上计算机可读介质的描述提及HDD、可移动磁盘和诸如CD或DVD的可移动光介质,但本领域的技术人员应该理解,计算机可读的其它类型的介质,诸如zip驱动器、磁带盒、闪存卡、盒式磁带等,也可以在示例性操作环境中使用,而且,任何这样的介质可以包含用于执行本发明的方法的计算机可执行指令。

多个程序模块可存储在驱动器和RAM 912中,包括操作系统930、一个或多个应用程序932、其它程序模块934和程序数据936。操作系统、应用程序、模块和/或数据的全部或部分也可以高速缓存在RAM 912中。可以理解,本发明可以使用各种市场上可购买的操作系统或操作系统的组合来实现。

用户可以通过一个或多个有线/无线输入设备,例如键盘938和诸如鼠标940等定点设备来向计算机902输入命令和信息。其它输入设备(未示出)可包括麦克风、IR遥控器、操纵杆、游戏垫、指示笔、触摸屏等。这些和其它输入设备通常通过耦合至系统总线908的输入设备接口942连接到处理单元904,但可以由其它接口连接,诸如并行端口、IEEE 1394串行端口、游戏端口、USB端口、IR接口等。

监示器944或其它类型的显示设备也通过接口,诸如视频适配器946连接至系统总线908。除监示器944之外,计算机一般包括其它外设输出设备(未示出),诸如扬声器、打印机等。

计算机902可使用通过有线和/或无线通信至一台或多台远程计算机,诸如远程计算机948的逻辑连接在网络化环境中操作。远程计算机948可以是工作站、服务器计算机、路由器、个人计算机、便携式计算机、基于微处理器的娱乐设备、对等设备或其它常见的网络节点,并且一般包括相对于计算机902描述的多个或全部元素,但是为了简明起见,仅示出存储器存储设备950。所示逻辑连接包括至局域网(LAN)952和/或较大网络,例如广域网(WAN)954的有线/无线连接。这样的LAN和WAN网络环境在办公室和公司中是常见的,且促进诸如内联网的企业范围网络,它们全部都可连接至例如因特网的全球通信网络。

当在LAN网络环境中使用时,计算机902通过有线和/或无线通信网络接口或适配器956连接至局域网952。适配器956可促进至LAN 952的有线或无线通信,LAN 925也可包括部署在其上的用于与无线适配器956通信的无线接入点。当在WAN网络环境中使用时,计算机902可以包括调制解调器958,或者连接至WAN954上的通信服务器,或者具有用于通过诸如因特网等WAN 954建立通信的其它装置。调制解调器958可以是内置或外置的和有线或无线设备,它通过串行端口接口942连接至系统总线908。在网络化环境中,相对于计算机902所述的程序模块或其部分可以存储在远程存储器/存储设备950中。可以理解,所示的网络连接是示例性的,且可使用在计算机之间建立通信链路的其它手段。

计算机902可以用于与操作上部署在无线通信中的任何无线设备或实体通信,例如,打印机、扫描仪、台式和/或便携式计算机、便携式数据助理、通信卫星、与无线可检测标签(例如公共电话亭、报亭、休息室)相关联的任何设备部分或位置、以及电话。这至少包括Wi-Fi和BluetoothTM(蓝牙)无线技术。因此,通信可以是使用常规网络的预先定义的结构,或仅仅是至少两个设备之间的特别通信。

Wi-Fi或无线保真允许从家里的睡椅、旅馆房间中的床或工作单位的会议室无线地连接至因特网。Wi-Fi是类似于蜂窝电话的无线技术,它使得例如计算机等设备能够在室内外基站范围内的任何地方收发数据。Wi-Fi网络使用称为IEEE802.11(a、b、g等)的无线电技术来提供安全、可靠、快速的无线连接。Wi-Fi网络可以用于将计算机彼此连接、连接至因特网、以及连接至有线网络(使用IEEE 802.3或以太网)。Wi-Fi网络在非特许的2.4和5GHz无线电波段中,例如以11Mbps(802.1a)或54Mbps(802.11b)数据速率运行,或者带有包括两种波段(双波段)的产品,因此网络可以提供类似于在许多办公室中使用的基本10BaseT有线以太网网络的真实世界性能。

现在参考图10,示出了根据本发明的示例性计算环境1000的示意框图。系统1000包括一个或多个客户机1002。客户机1002可以是硬件和/或软件(例如,线程、进程、计算设备)。客户机1002可以例如,通过使用本发明主存cookie和/或相关联的上下文信息。系统1000也包括一个或多个服务器1004。服务器1004也可以是硬件和/或软件(例如,线程、进程、计算设备)。服务器1004例如可以通过使用本发明主存执行变换的线程。客户机1002与服务器1004之间的一种可能的通信可以是以适用于在两个或多个计算机进程之间传输的数据包的形式。数据包可以包括,例如cookie和/或相关联的上下文信息。系统1000包括通信架构1006(例如,诸如因特网的全球通信网络),它可以被用于促进客户机1002与服务器1004之间的通信。

可以通过有线(包括光纤)和/或无线技术来促进通信。客户机1002操作上连接至一个或多个客户机数据存储1008,它们可以被用于存储对客户机1002本地的信息(例如,cookie和/或相关联的上下文信息)。类似地,服务器1004操作上连接至可使用来存储对服务器1004本地的信息的一个或多个服务器数据存储1010。

以上描述包括本发明的示例。当然,不可能为描述本发明而描述每个可想象的组件或方法的组合,但是本领域的普通技术人员可以认识到,还可能有本发明的众多其它组合和排列。从而,本发明旨在包括落入所附权利要求书精神和范围内的所有这样的变更、修改和变化。而且,就或者在详细描述中或者在权利要求书中使用的术语“包括”而言,当被用作权利要求书中的过渡词时,这样的术语旨在是包含性的,类似于解释术语“包含”的方式。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号