CN102057377A - 虚拟化查询中的对象 - Google Patents
虚拟化查询中的对象 Download PDFInfo
- Publication number
- CN102057377A CN102057377A CN2009801222393A CN200980122239A CN102057377A CN 102057377 A CN102057377 A CN 102057377A CN 2009801222393 A CN2009801222393 A CN 2009801222393A CN 200980122239 A CN200980122239 A CN 200980122239A CN 102057377 A CN102057377 A CN 102057377A
- Authority
- CN
- China
- Prior art keywords
- data
- action
- attribute
- property value
- data set
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/188—Virtual file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/289—Object oriented databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/38—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
- G06F16/381—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using identifiers, e.g. barcodes, RFIDs
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Library & Information Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及用于虚拟化查询中的对象的方法、系统和计算机程序产品。本发明的各实施例虚拟化用于查询的数据访问。虚拟化可在句法树的任意部分中实现。例如,可以虚拟化本身是另一对象的对象属性的数据。数据虚拟化便于对查询表达式的懒惰求值。即,虚拟化数据构造语句中的属性的实际属性值直到查询具体地请求该实际属性值。此外,数据虚拟化还节约了资源并导致更高效的查询求值。
Description
背景
1.背景和相关技术
计算机系统和相关技术影响社会的许多方面。的确,计算机系统处理信息的能力已转变了人们生活和工作的方式。计算机系统现在通常执行在计算机系统出现以前手动执行的许多任务(例如,文字处理、日程安排和会计等)。最近,计算机系统彼此耦合并耦合到其他电子设备以形成计算机系统和其他电子设备可以在其上传输电子数据的有线和无线计算机网络。因此,许多计算任务的执行分布在多个不同的计算机系统和/或多个不同的计算环境上。
大多数(即使不是全部)计算任务通常包括对数据执行诸如例如创建、修改、删除等操作来获得所需结果的软件(例如,应用程序或操作系统)。由此,对于要获得所需结果的软件,该软件必须能够访问适当的数据。例如,为了对文字处理文档做出编辑,用户必须定位该文字处理文档(例如,在文件系统中)并将命令输入到文字处理程序来指示该文字处理程序打开该文字处理文档。
如果用户不知道文档位置,则用户可使用各种搜索工具来定位文档。用户可将各种搜索项输入到搜索模块(例如,文件查找器)中。搜索模块可在文件系统中搜索包括在搜索项中标识的特征的文档并将任何所标识的文档的位置返回给用户。因此,在某种程度上,用户将查询(搜索项)提交给搜索模块,搜索模块处理查询(标识任何匹配),然后搜索模块返回结果(任何所标识的匹配)。
在许多环境中,使用更复杂的数据操作来创建并访问较大一部分数据的数据子集。例如在数据库系统中,数据创建语句可用于创建对数据库中的数据的视图。查询可针对对数据库(或甚至整个)的视图(或其他对象)来发出以检索所需数据子集。基于数据库中的数据的安排和数据量,数据创建语句和查询可相对复杂。此外,一系列数据创建语句和查询可彼此结合使用来更细粒度地访问数据,导致额外的复杂度。
另外,常常有请求少于全部分组数据集(或子集)来执行所需计算操作的情况。例如,数据库可包含含有若干顾客的企业地址的地址对象。每一地址对象可包含街道、城市、州和邮政编码字段。然而,为了执行所需操作(例如,确定每个邮政编码的顾客数量),只有邮政编码字段中的值是相关的。因此,可以发出查询来从每一地址对象的邮政编码字段中获得值。
不幸的是,在大部分(即使不是全部)数据库系统中,当查询引用对象的一部分(例如,其中的字段)时,整个对象被实例化,从而需要立即对整个对象求值。即,在处理只引用对象的一部分的查询之前对整个对象求值。例如,邮政编码查询可能需要在处理邮政编码查询之前实例化整个地址对象。实例化与查询无关的数据并对其求值不必要地消耗了计算机系统资源并导致查询处理的低效性。
此外,随着对象大小增加,计算机系统资源的不必要的消耗以及查询处理的低效性也增加。例如,考虑下列描述了创建表示订单的对象的对象查询:
Order order=
new Order()
{
ItemCount=items.Count(),
ShippingAddress=
new Address()
{
Street=“123 Abc Lane”,
City=“Tukwila”,
State=“WA”,
ZipCode=LookupZipCode(…)
},
TotalCost=
(from it in items
select item.Price).Sum()
}
且对对象的查询是:
Address address=order.Address
通常对该查询的求值需要首先实例化Order(订单)对象,导致此时需要立即对ItemCount(项目计数)、ShippingAddress(送货地址)和TotalCost(总成本)属性的表达式求值。然后,ShippingAddress属性的值将从Order对象实例中检索。Order对象的创建和对ItemCount和TotalCost属性的表达式的求值不被第二查询使用,但无论如何在其创建和求值时使用了计算机系统资源和时间。
简要概述
本发明涉及用于虚拟化查询中的对象的方法、系统和计算机程序产品。在某些实施例中,按照可在不需要构造整个对象的情况下访问对象的部分的方式来创建对象。查询求值器接收数据构造语句(例如,对象查询片段)。数据构造语句包括对象的类型的指示和一个或多个属性标识符,该指示表明该数据构造语句表示该对象的构造。每一属性标识符标识对象的属性。数据构造语句还包括一个或多个相应的映射。每一相应的映射将属性标识符映射到查询表达式。查询表达式指示如何计算属性标识符所标识的对象的属性的值。
查询求值器响应于接收到数据构造语句来创建数据提供者。数据提供者虚拟化数据访问从而使得可在不需要对整个数据构造语句求值或者完全构造整个对象的情况下访问数据构造语句所描述的对象的属性。在某些实施例中,数据提供者包括对数据构造语句的引用。引用传递性地包括回头对数据构造语句的类型、属性标识符和相应的映射的引用。
在其他实施例中,查询求值器响应查询。查询求值器接收属性值访问查询。属性值访问查询查询在先前接收的数据构造语句中标识的属性的属性值。查询求值器基于属性值访问查询中包含的数据来标识从先前接收的数据构造语句中创建的数据提供者。数据提供者虚拟化数据访问从而使得可在不必对整个数据构造语句求值或者完全构造整个对象的情况下访问数据构造语句所描述的对象的属性。
查询求值器将所标识的数据提供者放置在与该查询求值器相关联的已知位置(例如,该查询求值器使用的栈)中。查询求值器为属性值访问查询创建数据消费者。数据消费者从已知位置访问所标识的数据提供者。
数据消费者向数据提供者请求所标识的属性的属性值。数据消费者从数据提供者接收所标识的属性的属性值。数据消费者将所接收的属性值放置在已知位置中以供进一步处理。
提供本概述是为了以精简的形式介绍将在以下详细描述中进一步描述的一些概念。本概述不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
本发明的另外的特征和优点将在随后的描述中阐述,并且部分地将从本说明书中显而易见,或可以通过本发明的实施来获知。本发明的特征和优点可通过在所附权利要求书中特别指出的工具和组合来实现和获得。本发明的这些和其他特征将通过以下描述和所附权利要求书变得更加显而易见,或可通过对下文中所述的本发明的实践来领会。
附图简述
为了描述可以获得本发明的上文所列举的以及其他优点和特征的方式,将通过参考附图中所示的本发明的各具体实施例来呈现上文简要描述的本发明的更具体的描述。可以理解,这些附图只描绘了本发明的各典型实施例,并且因此不被认为是对其范围的限制,将通过使用附图并利用附加特征和细节来描述和解释本发明,在附图中:
图1A示出便于创建虚拟化数据访问的对象的示例计算机体系结构。
图1B示出包括便于响应查询的其他组件的图1A的示例计算体系结构。
图1C示出包括便于响应查询的其他组件的图1B的示例计算体系结构。
图2示出用于创建虚拟化数据访问的对象的示例方法的流程图。
图3示出用于响应查询的示例方法的流程。
详细描述
本发明涉及用于虚拟化查询中的对象的方法、系统和计算机程序产品。在某些实施例中,按照可在不需要构造整个对象的情况下访问对象的部分的方式来创建对象。查询求值器接收数据构造语句(例如,对象查询片段)。数据构造语句包括对象的类型的指示和一个或多个属性标识符,该指示表明该数据构造语句表示该对象的构造。每一属性标识符标识对象的属性。数据构造语句还包括一个或多个相应的映射。每一相应的映射将属性标识符映射到查询表达式。查询表达式指示如何计算属性标识符所标识的对象的属性的值。
查询求值器响应于接收到数据构造语句来创建数据提供者。数据提供者虚拟化数据访问从而使得可在不必对整个数据构造语句求值或者完全构造整个对象的情况下访问数据构造语句所描述的对象的属性。在某些实施例中,数据提供者包括对数据构造语句的引用。引用传递性地包括回头对数据构造语句的类型、属性标识符和相应的映射的引用。
在其他实施例中,查询求值器响应查询。查询求值器接收属性值访问查询。属性值访问查询查询在先前接收的数据构造语句中标识的属性的属性值。查询求值器基于属性值访问查询中包含的数据来标识从先前接收的数据构造语句中创建的数据提供者。数据提供者虚拟化数据访问从而使得可在不必对整个数据构造语句求值或者完全构造整个对象的情况下访问数据构造语句所描述的对象的属性。
查询求值器将所标识的数据提供者放置在与该查询求值器相关联的已知位置(例如,该查询求值器使用的栈)中。查询求值器为属性值访问查询创建数据消费者。数据消费者从已知位置访问所标识的数据提供者。
数据消费者向数据提供者请求所标识的属性的属性值。数据消费者从数据提供者接收所标识的属性的属性值。数据消费者将所接收的属性值放置在已知位置中以供进一步处理。
本发明的各实施例可以包括或利用含有计算机硬件的专用或通用计算机,这将在以下做出进一步讨论。本发明范围内的各实施例还包括用于承载或存储计算机可执行指令和/或数据结构的物理和其他计算机可读介质。这样的计算机可读介质可以是可由通用或专用计算机系统访问的任何可用介质。存储计算机可执行指令的计算机可读介质是物理存储介质。承载计算机可执行指令的计算机可读介质是传输介质。由此,作为示例而非限制,本发明的各实施例可包括至少两种完全不同种类的计算机可读介质:物理存储介质和传输介质。
物理存储介质包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储或其他磁存储设备、或可用于存储计算机可执行指令或数据结构形式的所需程序代码装置且可由通用或专用计算机访问的任何其他介质。
“网络”被定义为允许在计算机系统和/或模块和/或其他电子设备之间传输电子数据的一个或多个数据链路。当信息通过网络或另一通信连接(硬连线、无线、或硬连线或无线的组合)传输或提供给计算机时,该计算机将该连接适当地视为传输介质。传输介质可包括可用于携带计算机可执行指令或数据结构形式的所需程序代码装置并可由通用或专用计算机访问的网络和/或数据链路。上述的组合也应被包括在计算机可读介质的范围内。
此外,在到达各种计算机系统组件之后,计算机可执行指令或数据结构形式的程序代码装置可从传输介质自动转移到物理存储介质(或者相反)。例如,通过网络或数据链路接收到的计算机可执行指令或数据结构可被缓存在网络接口模块(例如,“NIC”)内的RAM中,然后最终被传送到计算机系统RAM和/或计算机系统处的较不易失性的物理存储介质。由此,应当理解,物理存储介质可被包括在同样(或甚至主要)利用传输介质的计算机系统组件中。
计算机可执行指令包括,例如使通用计算机、专用计算机、或专用处理设备执行某一功能或某组功能的指令和数据。计算机可执行指令可以是例如二进制代码、诸如汇编语言等中间格式指令、或甚至源代码。尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解的是,所附权利要求书中定义的主题不必限于上述特征或动作。相反,上述特征和动作是作为实现权利要求的示例形式而公开的。
本领域的技术人员将理解,本发明可以在具有许多类型的计算机系统配置的网络计算环境中实践,这些计算机系统配置包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持式设备、多处理器系统、基于微处理器的或可编程消费电子设备、网络PC、小型计算机、大型计算机、移动电话、PDA、寻呼机、路由器、交换机等等。本发明也可以在其中通过网络链接(或者通过硬连线数据链路、无线数据链路,或者通过硬连线和无线数据链路的组合)的本地和远程计算机系统两者都执行任务的分布式系统环境中实践。在分布式系统环境中,程序模块可以位于本地和远程存储器存储设备中。
图1A示出便于创建虚拟化数据访问的对象的示例计算机体系结构100。图1B示出包括便于响应查询的其他组件的计算机体系结构100。图1C示出包括便于响应查询的其他组件的计算机体系结构100。因此,计算机体系结构100包括查询求值器101、数据储存库102和高速缓存103。在对象创建和/或查询求值期间的不同时刻,计算机体系结构100还可包括一个或多个数据消费者,诸如例如数据消费者106(图1B)、107(图1C)和108(图1C),以及一个或多个数据提供者,诸如例如数据提供者171(图1A和1B)和数据提供者173B(图1C)。
所描绘的组件中的每一个可通过诸如例如局域网(“LAN”)、广域网(“WAN”)和甚至因特网等网络(或作为网络的一部分)彼此连接。因此,所描绘的组件中的每一个以及任何其他连接的组件都可以创建消息相关数据并通过网络交换消息相关数据(例如,网际协议(“IP”)数据报和利用IP数据报的其他更高层协议,诸如传输控制协议(“TCP”)、超文本传输协议(“HTTP”)、简单邮件传输协议(“SMTP”)等)。
本发明的各实施例还一般地实现包括消息的请求/响应对的协议。请求从数据消费者被发送至数据提供者,然后响应从数据提供者返回至数据消费者。请求包含要访问的属性的标识符和可能的用于维护消费者和提供者之间的辅助协议的其他信息。响应包含所访问的属性的值(可能是数据对象/协议提供者的另一虚拟化表示)以及用于维护提供者和消费者之间的辅助协议的其他信息。
参考图1,查询求值器101一般被配置成执行已经从表达式编译的指令集。查询求值器可维护每一指令在其执行时可读取并更新的内部状态集。一般而言,指令从查询求值器101的当前状态读取先前指令的结果并将结果写回至查询求值器101的当前状态从而使得这些结果对其他指令可用。
只要查询求值器101遇到对象创建指令(例如,new Order(){…}),它便创建数据提供者并用关于该数据提供者正在虚拟化的对象的类型的信息(例如,属性标识符列表)来填充该数据提供者。数据提供者随后被放置在求值器的当前状态中,使得其可供其他指令使用。只要查询求值器101遇到属性访问指令(例如,order.ItemCount),它便创建数据消费者,将属性的标识符连同从查询求值器101的当前状态中检索的提供者一起传递至数据消费者。对数据消费者的求值的结果被放置在查询求值器101的当前状态中,由此该结果可被其他指令使用。
因此,查询求值器101一般被配置成接收数据构造语句并从该数据构造语句中创建数据提供者。
在某些实施例中,数据构造语句表示根据句法树来定义的对象。例如,数据构造语句151表示根据句法树157来定义的Order对象161。一般而言,句法树(有时也被称为抽象句法树“AST”)是有向树,其中每一内部节点表示构造而该节点的子节点表示该构造的有意义的组分。例如,参考句法树157,ShippingAddress属性163B的子节点是Address(地址)构造。Street(街道)属性163B1、City(城市)属性163B2、State(州)属性163B3和ZipCode(邮政编码)属性163B4表示ShippingAddress属性163B的子节点Address构造的有意义的组分。
句法树157可表示与以下类似的查询片段:
Order order=
new Order()
{
ItemCount=items.Count(),
ShippingAddress=
new Address()
{
Street=“123 Abc Lane”,
City=“Tukwila”,
State=“WA”,
ZipCode=LookupZipCode(…)
},
TotalCost=
(from it in items
select item.Price).Sum()
}
因此,查询求值器101可接收数据构造语句151并从数据构造语句151中创建数据提供者171。数据提供者171虚拟化对对象161的数据访问。虚拟化数据访问便于在不必完全对数据构造语句151求值的情况下提供对对象161的属性的访问(即,获得句法树157中的每一属性的实际数据值)。虚拟化数据访问还包括在不必完全构造对象161的情况下提供对对象161的属性的访问。
数据储存库102表示存储数据的数据库或其他数据存储位置。数据构造语句可被配置成将数据添加至数据储存库102、提供对来自数据储存库102的数据的视图、或以其他方式修改存储在数据储存库102中的数据。
一般而言,每一次对描述数据的构造的查询表达式求值时创建数据提供者(例如,通过查询求值器101),诸如例如Order order=new Order(){ItemCount=items.Count(),…}。每一数据提供者包含关于其表示的对象的类型的信息。该信息的一部分是对象上包含的属性的全部标识符(例如,ItemCount)的列表。每一数据提供者还包含列表中的每一属性标识符和要被用于计算该虚拟化实例的属性值的查询表达式(例如,items.Count())之间的关联映射。数据提供者还可维护属性标识符的其他关联映射(诸如每一属性的结果的高速缓存)。
当在数据提供者处接收到请求消息时,数据提供者从消息中提取属性标识符并在其关联映射中查找相应的查询表达式。数据提供者还可从属性的其他关联映射中检索任何信息(例如,属性的先前高速缓存的值)。数据提供者还可使用请求消息中包含的任何其他信息(例如,对所高速缓存的值的生存时间的指定)。
数据提供者然后可调用查询求值器101来处理属性的查询表达式,可能传递来自其内部映射和/或请求消息的任何辅助信息。查询求值的结果(包括任何辅助信息)用于更新数据提供者中的关联映射(例如,高速缓存查询的结果)。查询的结果(以及任何辅助信息)被包装到响应消息中。响应消息然后被发送至发起针对数据提供者的请求的客户机。
现在参考图2,图2示出用于创建虚拟化数据访问的对象的示例方法200的流程图。方法200将参考图1A中描绘的计算机体系结构100的组件和数据来描述。
方法200包括接收数据构造语句的动作(动作201)。例如,查询求值器101可接收数据构造语句151。数据构造语句151可从计算机体系结构100中的某一其他联网计算机系统(未示出)接收。另选地,数据构造语句151可作为查询求值器101对查询表达式求值的结果来接收。
数据构造语句包括对象的类型的指示,表明该数据构造语句表示该对象的构造。例如,数据构造语句151包括指示数据构造语句151表示对Order对象161的构造的对象类型152。数据构造语句151可定义对数据储存库102中的数据的视图。
数据构造语句还包括一个或多个属性标识符。例如,数据构造语句151包括属性标识符153。每一属性标识符标识对象的属性。例如,属性ID 153A标识ItemCount属性163A、属性ID 153B标识ShippingAddress属性163B,而属性ID 153C标识TotalCost属性163C。
数据构造语句还包括一个或多个相应的映射。例如,数据构造语句151包括映射154。每一相应的映射将属性标识符映射到查询表达式。例如,映射154A将属性ID 153A映射到查询表达式156A,映射154B将属性ID 153B映射到查询表达式156B,而映射154C将属性ID 153C映射到查询表达式156C。每一查询表达式指示如何计算属性标识符所标识的对象的属性的值。例如,查询表达式156A指示如何计算ItemCount属性163A的值,查询表达式156B指示如何计算ShippingAddress属性163B的值,而查询表达式156C指示如何计算TotalCost属性163C的值。
方法200包括响应于接收到数据构造语句来创建数据提供者的动作(动作202)。例如,查询求值器101可响应于接收到数据构造语句151来创建数据提供者171。数据提供者171虚拟化数据访问从而使得可在不必完全对数据构造语句151求值或者完全构造Order对象161的情况下访问Order对象161的属性(由数据构造语句151所描述)。
例如,代替查询求值器101对ShippingAddress属性163B的所有属性求值,数据提供者171改为指示在这些属性(例如,163B1、163B2、163B3和163B4)随后被请求的情况下如何对这些属性的值求值(例如,响应于后续属性值访问查询来对其他数据构造语句“new Address()”求值)。此外,数据提供者171表示Order对象161的部分构造。因此,通过最小化可能不必要的对数据储存库102的访问并最小化用于存储对象161的各部分的可能不必要的存储器分配而节约了资源。最小化数据访问和存储器分配还促进更高效的查询处理。
在某些实施例中,数据提供者(例如,最初为顶层对象创建的数据提供者)包括对数据构造语句的引用。例如,数据提供者171包括对数据构造语句151的引用151R。该引用传递性地包括数据构造语句的对类型、属性标识符和相应的映射的引用。例如,引用151R传递性地包括对对象类型152、属性标识符153和映射154的引用。
现在参考图1B,图1B示出包括便于响应查询的其他组件的计算机体系结构100。因此,一般而言,查询求值器101也被配置成响应查询,诸如例如属性值访问查询。响应于属性值访问查询,查询求值器101可标识适当的数据提供者来响应属性值访问查询。查询求值器101可将所标识的数据提供者放置在栈104上。
查询求值器101可创建数据消费者来与所标识的数据提供者进行交互。数据消费者可从栈104访问所标识的数据提供者并将属性标识符发送给所标识的数据提供者。数据提供者可对与属性标识符相对应的查询表达式进行求值并将结果返回给数据消费者。数据消费者可将结果放置在栈104上。对查询表达式的求值可包括参考数据库102来访问实际数据值。
在某些实施例中,先前创建的数据提供者从高速缓存103来访问。
图3示出用于响应查询的示例方法300的流程。方法300将参考图1B中描绘的计算机体系结构100的组件和数据来描述。
方法300包括接收属性值访问查询的动作,该属性值访问查询查询在先前接收的数据构造语句中标识的属性的属性值(动作301)。例如,查询求值器101可接收属性值访问查询121。属性值访问查询121是对来自数据构造语句151的ItemCount属性163A的属性值的查询。查询求值器101可解析属性值访问查询121来确定,属性值访问查询121的“Order”部分标识Order对象161,而属性值访问查询121的“Itemcount”部分标识Itemcount属性163A。因此,查询求值器101还可从该信息中确定属性ID 153A与正在查询的属性相对应。
方法300包括基于属性值访问查询中包含的数据来标识从先前接收的数据构造语句中创建的数据提供者的动作(动作302)。例如,查询求值器101可基于属性值访问查询121中包括的项“Order”来标识数据提供者171(从数据构造语句151中创建的)。
所访问的数据提供者虚拟化数据访问从而使得可在不必对整个数据构造语句求值或者完全构造整个对象的情况下访问数据构造语句所描述的对象的属性。例如,如先前所描述的,数据提供者171虚拟化对Order对象161的属性的数据访问。
方法300包括将所标识的数据提供者放置在与查询求值器相关联的已知位置中的动作(动作303)。例如,查询求值器101可将数据提供者171放置在栈104上。
一般而言,每一次对描述了对诸如例如order.ItemCount(订单的项目计数)等的属性值的访问的查询表达式求值时对协议消费者(例如,由查询求值器101)求值。协议消费者被给予(例如,由查询求值器101)要从数据提供者访问的属性的标识符以及要与其进行通信的数据提供者的实例。
数据消费者构造包含属性标识符以及可能的可从查询求值器获得的任何其他带外信息(例如,所高速缓存的值的生存时间)的请求消息。消费者随后将请求发送至提供者并等待响应。当从数据提供者接收到响应时,消费者拉取属性的结果值并将其返回给查询求值器101,查询求值器101随后可将结果值放置在栈104上以供其他查询消费。数据消费者还基于响应消息中包含的其他信息来更新查询求值器101的任何其他状态/带外信息。
因此,方法300包括为属性值访问查询创建数据消费者的动作(动作304)。例如,查询求值器101可创建数据消费者106。所创建的数据消费者可被传递与正在查询其属性值的属性相对应的属性标识符。例如,查询求值器101可将属性ID 153A传递至数据消费者106(或者可构造数据消费者106来包括属性ID 153A)。
方法300包括数据消费者从已知位置访问所标识的数据提供者的动作(动作305)。例如,数据消费者106可从栈104访问数据提供者171。方法300包括数据消费者向数据提供者请求所标识的属性的属性值的动作(动作306)。例如,数据消费者106可将属性ID 153A提交给数据提供者171来请求ItemCount属性163A的属性值。
数据提供者171可将属性ID 153A匹配到查询表达式156A。查询求值器101随后可对查询表达式156A求值来创建ItemCount属性163A的值。例如,查询求值器101可参考数据储存库102和访问数据197来计算值108(例如,订单中的项目总数)。数据提供者171可将值108返回给数据消费者106。
方法300包括数据消费者从数据提供者接收所标识的属性的属性值的动作(动作307)。例如,数据消费者106可从数据提供者171接收值108。方法300包括数据消费者将所接收的属性值放置在已知位置中以供进一步处理的动作(动作308)。例如,数据消费者106可将值108放置在栈104上(例如,代替数据提供者171)。因此,可在不完全创建对象161且不必对属性163C、162B1、162B2、162B3和162B4的实际值进行求值的情况下获得ItemCount属性163A的属性值。
图1C示出计算机体系结构300并包括便于响应查询的其他组件。一般而言,查询求值器101还被配置成从在所接收的属性值访问查询的处理期间对其进行求值的其他数据构造语句中创建其他数据提供者。现在参考图1C,在某些实施例中,属性ID可映射到作为其他数据构造语句的查询表达式。例如,在数据提供者171中,属性ID 153B被映射到查询表达式156B,表达式156B是用于创建地址对象的数据构造语句“new Address()”。对其他数据构造语句的求值可导致其他数据提供者的创建。例如,对查询表达式156B的求值可导致数据提供者173B的创建。
因此,也可以虚拟化本身就是对象的对象属性来节约资源并促进高效的查询处理。例如,仍然参考图1C,查询求值器可接收属性值访问查询121。属性值访问查询121是对来自数据构造语句151的Street属性163B1的属性值的查询。查询求值器101可解析属性值访问查询121来确定,属性值访问查询121的“Order”部分标识Order对象161,且属性值访问查询121的“ShippingAddress”部分标识ShippingAddress属性163B,并且属性值访问查询121的“Street”部分标识Street属性163B1。因此,查询求值器101还可从该信息中确定属性ID153B1与正在查询的属性相对应。
查询求值器101可基于属性值访问查询121中包括的项“order.ShippingAddress.Street”(订单的送货地址的街道)来标识数据提供者171(从数据构造语句151创建的)。查询求值器101可将数据提供者171放置在栈104上。
查询求值器101可创建数据消费者107并向其提供属性ID 153B。从属性153B,数据消费者107能够请求ShippingAddress属性163B的值。为此,数据消费者107可从栈104访问数据提供者171。数据消费者107随后可将属性ID153B提交给数据提供者171来请求ShippingAddress属性163B的属性值。
数据提供者171可将属性ID 153B匹配到查询表达式156B。查询求值器101随后可对查询表达式156B进行求值。对查询表达式156B(其他数据构造语句)的求值导致数据提供者173B的创建。数据提供者173B虚拟化对表示Address对象162的对象(其是ShippingAddress属性163B的值)的数据访问,与数据提供者151如何虚拟化对Order对象161的数据访问类似。数据提供者171可将数据提供者173B返回给数据消费者107。数据消费者107可接收数据提供者173B并将数据提供者173B放置在栈104上(例如,代替数据提供者171)。
查询求值器101可创建数据消费者108和所传递的属性ID 153B1。从属性153B1,数据消费者108能够请求Street属性163B1的值。数据消费者108随后可从栈104访问数据提供者173B。数据消费者108随后可将属性ID 153B1提交给数据提供者173B来请求Street属性163B1的属性值。
数据提供者173B可将属性ID 153B1匹配到查询表达式156B1。查询求值器101随后可对查询表达式156B1进行求值。查询表达式156B1求值为文字数据值“123 ABC Lane”。数据提供者173B将文字数据值“123 ABC Lane”返回给数据消费者108。数据消费者108可接收文字数据值“123 ABC Lane”并将文字数据值“123 ABC Lane”放置在栈104上(例如,替代数据提供者173B)。
在某些实施例中,带外数据通过所组成的查询来发送。带外数据可用于建立并维护查询之间的内部协议。例如,生存时间(“TTL”)值可用于确定数据提供者要被高速缓存多长时间。例如,数据消费者可在请求中包括TTL值,例如250ms,来向数据提供者指示其要保持被高速缓存多长时间。
因此,本发明的各实施例虚拟化用于查询的数据访问。虚拟化可在句法树的任意部分中实现。例如,可以虚拟化本身是另一对象的对象属性的数据。数据虚拟化便于对查询表达式的懒惰(lazy)求值。即,虚拟化数据构造语句中的属性的实际属性值直到查询具体地请求该实际属性值。此外,如前所描述的,数据虚拟化还节约了资源并导致更高效的查询求值。
本发明可被具体化为其他具体形式而不背离其精神或本质特征。所描述的实施例在所有方面都应被认为仅是说明性而非限制性的。从而,本发明的范围由所附权利要求书而非前述描述指示。落入权利要求书的等效方案的含义和范围内的所有改变应被权利要求书的范围所涵盖。
Claims (20)
1.一种在计算机系统处的用于创建对象(161)从而使得可在无需构造整个对象(161)的情况下访问所述对象(161)的部分的方法,所述方法包括:
接收数据构造语句(151)的动作,所述数据构造语句(151)包括:
对象类型(152)的指示,所述指示表明所述数据构造语句表示所述对象的构造;
一个或多个属性标识符(153),每一属性标识符表示所述对象的属性;以及
一个或多个相应的映射(154),每一相应的映射将属性标识符映射到查询表达式(156),所述查询表达式(156)指示如何计算所述属性标识符所标识的对象的属性的值;以及
响应于接收到所述数据构造语句(151)来创建数据提供者(171)的动作,所述数据提供者(171)虚拟化数据访问从而使得可在不必对所述整个数据构造语句(151)求值或者完全构造所述整个对象(161)的情况下访问所述数据构造语句(151)所描述的所述对象(161)的属性,所述数据提供者包括:
对所述数据构造语句的引用(151R),所述引用(151R)传递性地
包括对所述数据构造语句的类型、属性标识符和相应的映射的引用。
2.如权利要求1所述的方法,其特征在于,所述接收数据构造语句的动作包括接收在提交针对所述数据构造语句所描述的所述虚拟化对象的属性的任何查询之前提交所述数据构造语句以供求值的用户输入的动作。
3.如权利要求1所述的方法,其特征在于,所述接收数据构造语句的动作包括从现有数据提供者接收所述数据构造语句的动作,所述数据构造语句被包含在来自所述现有数据提供者的属性映射的查询表达式中。
4.如权利要求1所述的方法,其特征在于,还包括:
从数据消费者接收对所述数据提供者内的属性的值的请求的动作;
参考所述相应的一个或多个映射来定位与所标识的属性相对应的查询表达式的动作;
对所述查询表达式求值来获得所述属性的属性值的动作;以及
将所述属性值返回给数据消费者的动作。
5.如权利要求4所述的方法,其特征在于,所述对所述查询表达式求值来获得所述属性的属性值的动作包括对所述查询表达式求值来获得所述属性的实际属性值的动作。
6.如权利要求5所述的方法,其特征在于,所述对所述查询表达式求值来获得所述属性的实际属性值的动作包括参考数据储存库的动作。
7.如权利要求6所述的方法,其特征在于,所述参考数据储存库的动作包括参考所述数据储存库来访问用于计算所述实际属性值的数据而无需访问用于计算所述数据构造语句所描述的任何其他属性的值的数据的动作。
8.如权利要求4所述的方法,其特征在于,所述对所述查询表达式求值来获得所述属性的属性值的动作包括对所述查询表达式求值来获得其他数据提供者的动作,所述其他数据提供者虚拟化来自所述数据提供者的属性值。
9.如权利要求8所述的方法,其特征在于,所述对所述查询表达式求值来获得其他数据提供者的动作包括对所述数据提供者中包含的其他数据构造语句求值来创建所述其他数据提供者的动作。
10.一种在包括查询求值器(101)的计算机系统处的用于响应查询(121)的方法,所述方法包括:
接收属性值访问查询(121)的动作,所述属性值访问查询(121)查询在先前接收的数据构造语句中标识的属性的属性值;
基于所述属性值访问查询(121)中包含的数据来标识从所述先前接收的数据构造语句中创建的数据提供者(171)的动作,所述数据提供者(171)虚拟化数据访问从而使得可在不必对所述整个数据构造语句求值或者完全构造所述整个对象的情况下访问所述数据构造语句所描述的对象的属性;
将所标识的数据提供者(171)放置在与所述查询求值器(101)相关联的已知位置中的动作;
为所述属性值访问查询(121)创建数据消费者(106)的动作;
所述数据消费者(106)从所述已知位置(104)访问所标识的数据提供者(171)的动作;
所述数据消费者(106)向所述数据提供者(171)请求(153A)所标识的属性的属性值的动作;
所述数据消费者(106)从所述数据提供者(151)接收所标识的属性的属性值(108)的动作;
所述数据消费者(106)将所接收的属性值(108)放置在所述已知位置(104)中以供进一步处理的动作。
11.如权利要求10所述的方法,其特征在于,所述数据消费者从所述数据提供者接收所标识的属性的属性值的动作包括所述数据消费者从所述数据提供者接收所述属性的实际属性值的动作。
12.如权利要求10所述的方法,其特征在于,从所述数据提供者接收所述属性的实际属性值的动作包括在不必对所述先前接收的数据构造语句所描述的其他属性的查询表达式求值的情况下接收所述属性的实际属性值的动作。
13.如权利要求10所述的方法,其特征在于,所述数据消费者从所述数据提供者接收所标识的属性的属性值的动作包括所述数据消费者从所述数据提供者接收其他数据提供者的动作,所述其他数据提供者虚拟化来自所述数据提供者的属性值。
14.如权利要求10所述的方法,其特征在于,所述数据消费者将所接收的属性值放置在所述已知位置中以供进一步处理的动作包括所述数据消费者将所述属性的实际属性值放置在所述已知位置中的动作。
15.如权利要求10所述的方法,其特征在于,所述数据消费者将所获得的属性值放置在所述已知位置中以供进一步处理的动作包括将其他数据提供者放置在所述已知位置中的动作,所述其他数据提供者虚拟化来自所述数据提供者的属性值。
16.如权利要求15所述的方法,其特征在于,还包括:
为所述属性值访问查询创建其他数据消费者的动作;
所述其他数据消费者从所述已知位置访问所述其他数据提供者的动作;
所述其他数据消费者向所述其他数据提供者请求所标识的属性的属性值的动作;
所述数据消费者从所述其他数据提供者接收所标识的属性的属性值的动作;
所述数据消费者将所接收的属性值放置在所述已知位置中以供进一步处理的动作。
17.如权利要求16所述的方法,其特征在于,所述接收所述属性的属性值的动作包括在不必参考数据储存库来对所述先前接收的数据构造语句所描述的属性的查询表达式求值并且不必对所述其他数据构造语句所描述的其他属性的查询表达式求值的情况下接收所述属性的实际属性值的动作。
18.一种在包括查询求值器(101)的计算机系统处的用于虚拟化数据以促进更高效的查询的方法,所述方法包括:
接收数据构造语句(151)的动作,所述数据构造语句包括:
对象类型(152)的指示,所述指示表明所述数据构造语句(151)表示所述对象的构造;
一个或多个属性标识符(153),每一属性标识符标识所述对象(161)的属性;以及
一个或多个相应的映射(154),每一相应的映射将属性标识符映射到查询表达式(156),所述查询表达式指示如何计算所述属性标识符所标识的对象的属性值;以及
响应于接收到所述数据构造语句(151)来创建初始数据提供者(171)的动作,所述数据提供者(171)虚拟化数据访问从而使得可在不必对所述整个数据构造语句(151)求值或者完全构造所述整个对象(161)的情况下访问所述数据构造语句(151)所描述的所述对象(161)的属性,所述数据提供者(171)包括:
对所述数据构造语句的引用(151R),所述引用传递性地包括对所
述数据构造语句的类型、属性标识符和相应的映射的引用;
接收属性值访问查询(121)的动作,所述属性值访问查询(121)包括来自所述数据构造语句的属性标识符;
用于响应于所述属性值访问查询(121)基于所述属性标识符来标识所述初始数据提供者(171)的动作;
将所述初始数据提供者(171)放置在与所述查询求值器(101)相关联的已知位置(104)中的动作;
为所述属性值访问查询(121)创建数据消费者(106)的动作;
所述数据消费者(106)从所述已知位置(104)访问所述初始数据提供者(171)的动作;
所述数据消费者向所述初始数据提供者(171)请求(153A)所标识的属性的属性值的动作;
所述初始数据提供者(171)查找与来自所述先前接收的数据构造语句(151)的所标识的属性相对应的查询表达式(156A)的动作;
对所述查询表达式(156A)求值来获得所述属性的属性值(108)的动作;
所述初始数据提供者(171)将所获得的属性值(108)返回给所述数据消费者(106)的动作;
所述数据消费者(106)接收所获得的属性值(108)的动作;以及
所述数据消费者(106)将所接收的属性值(108)放置在所述已知位置(104)中以供进一步处理的动作。
19.如权利要求18所述的方法,其特征在于,所述对所述查询表达式求值来获得所述属性的实际属性值的动作包括从数据库访问数据的动作。
20.如权利要求18所述的方法,其特征在于,所述对所述查询表达式求值来获得所述属性的实际属性值的动作包括构造其他数据提供者的动作。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/136,616 | 2008-06-10 | ||
US12/136,616 US7917547B2 (en) | 2008-06-10 | 2008-06-10 | Virtualizing objects within queries |
PCT/US2009/044258 WO2009151873A1 (en) | 2008-06-10 | 2009-05-15 | Virtualizing objects within queries |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102057377A true CN102057377A (zh) | 2011-05-11 |
CN102057377B CN102057377B (zh) | 2013-03-27 |
Family
ID=41401207
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009801222393A Active CN102057377B (zh) | 2008-06-10 | 2009-05-15 | 虚拟化查询中的对象 |
Country Status (6)
Country | Link |
---|---|
US (1) | US7917547B2 (zh) |
EP (1) | EP2300339B1 (zh) |
JP (1) | JP5426667B2 (zh) |
KR (1) | KR101608101B1 (zh) |
CN (1) | CN102057377B (zh) |
WO (1) | WO2009151873A1 (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8805875B1 (en) | 2008-10-04 | 2014-08-12 | Reflex Systems Llc | Systems and methods for information retrieval |
US9081873B1 (en) * | 2009-10-05 | 2015-07-14 | Stratacloud, Inc. | Method and system for information retrieval in response to a query |
JP4965746B2 (ja) * | 2010-07-02 | 2012-07-04 | 隆敏 柳瀬 | 論理演算システム |
US8756209B2 (en) | 2012-01-04 | 2014-06-17 | International Business Machines Corporation | Computing resource allocation based on query response analysis in a networked computing environment |
US9720702B2 (en) * | 2014-09-04 | 2017-08-01 | Home Box Office, Inc. | Object-oriented programming system and library |
US10305985B1 (en) * | 2014-12-29 | 2019-05-28 | EMC IP Holding Company LLC | Defining new properties using expressions in API calls |
US20160335371A1 (en) * | 2015-05-15 | 2016-11-17 | General Electric Company | System and method for querying graphs distributed over multiple machines |
US10853370B2 (en) * | 2015-06-26 | 2020-12-01 | Intel Corporation | Devices and/or methods to provide a query response based on ephemeral data |
CN105740305A (zh) * | 2015-11-16 | 2016-07-06 | 天津南大通用数据技术股份有限公司 | 集群数据库的数据加载方法及装置 |
Family Cites Families (56)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6054217B2 (ja) * | 1978-07-17 | 1985-11-29 | 三菱重工業株式会社 | コンベア装置 |
US5590325A (en) | 1991-06-11 | 1996-12-31 | Logical Information Machines, Inc. | System for forming queries to a commodities trading database using analog indicators |
US5694559A (en) | 1995-03-07 | 1997-12-02 | Microsoft Corporation | On-line help method and system utilizing free text query |
CA2168287C (en) | 1995-03-31 | 2000-05-23 | Guy M. Lohman | Method for detecting and optimizing relational queries with encoding/decoding tables |
US5999192A (en) | 1996-04-30 | 1999-12-07 | Lucent Technologies Inc. | Interactive data exploration apparatus and methods |
US6032144A (en) | 1996-05-29 | 2000-02-29 | Lucent Technologies Inc. | Optimization of queries using relational algebraic theta-semijoin operator |
US5978789A (en) | 1997-05-07 | 1999-11-02 | Lucent Technologies Inc. | Efficient hypothetical query evaluation in a database system |
US6092062A (en) | 1997-06-30 | 2000-07-18 | International Business Machines Corporation | Relational database query optimization to perform query evaluation plan, pruning based on the partition properties |
US6618718B1 (en) | 1997-10-14 | 2003-09-09 | International Business Machines Corporation | Apparatus and method for dynamically generating query explain data |
US6134545A (en) | 1997-11-13 | 2000-10-17 | Electronics Data Systems Corporation | Method and system for processing a query |
US6009422A (en) | 1997-11-26 | 1999-12-28 | International Business Machines Corporation | System and method for query translation/semantic translation using generalized query language |
US6341281B1 (en) | 1998-04-14 | 2002-01-22 | Sybase, Inc. | Database system with methods for optimizing performance of correlated subqueries by reusing invariant results of operator tree |
US6438741B1 (en) | 1998-09-28 | 2002-08-20 | Compaq Computer Corporation | System and method for eliminating compile time explosion in a top down rule based system using selective sampling |
US6285997B1 (en) | 1998-11-16 | 2001-09-04 | International Business Machines Corporation | Query optimization with deferred update and autonomous sources |
US6360214B1 (en) | 1998-12-16 | 2002-03-19 | Microsoft Corporation | Automatic database statistics creation |
US6728726B1 (en) | 1999-03-05 | 2004-04-27 | Microsoft Corporation | Prefetching and caching persistent objects |
US6205441B1 (en) | 1999-03-31 | 2001-03-20 | Compaq Computer Corporation | System and method for reducing compile time in a top down rule based system using rule heuristics based upon the predicted resulting data flow |
US6393415B1 (en) | 1999-03-31 | 2002-05-21 | Verizon Laboratories Inc. | Adaptive partitioning techniques in performing query requests and request routing |
US20020123984A1 (en) | 1999-08-23 | 2002-09-05 | Naveen Prakash | Dynamic query of server applications |
US6810429B1 (en) * | 2000-02-03 | 2004-10-26 | Mitsubishi Electric Research Laboratories, Inc. | Enterprise integration system |
US6678672B1 (en) | 2000-05-31 | 2004-01-13 | Ncr Corporation | Efficient exception handling during access plan execution in an on-line analytic processing system |
US7873649B2 (en) | 2000-09-07 | 2011-01-18 | Oracle International Corporation | Method and mechanism for identifying transaction on a row of data |
US6557011B1 (en) | 2000-10-31 | 2003-04-29 | International Business Machines Corporation | Methods for analyzing dynamic program behavior using user-defined classifications of an execution trace |
US6804677B2 (en) * | 2001-02-26 | 2004-10-12 | Ori Software Development Ltd. | Encoding semi-structured data for efficient search and browsing |
US20050015381A1 (en) | 2001-09-04 | 2005-01-20 | Clifford Paul Ian | Database management system |
US7149732B2 (en) | 2001-10-12 | 2006-12-12 | Microsoft Corporation | Clustering web queries |
AU2003210795A1 (en) | 2002-02-01 | 2003-09-02 | John Fairweather | System and method for analyzing data |
US6843360B2 (en) * | 2002-03-27 | 2005-01-18 | Douglas Machine, Inc. | Retractable transfer device metering apparatus and methods |
US7055142B2 (en) | 2002-05-10 | 2006-05-30 | Microsoft Corporation | Permutation nuances of the integration of processes and queries as processes at queues |
US7082433B2 (en) * | 2002-07-20 | 2006-07-25 | Microsoft Corporation | Translation of object queries involving inheritence |
CA2424881A1 (en) * | 2003-04-08 | 2004-10-08 | Ctc Canada Inc. | Convertible compact cigarette making machine |
US7895191B2 (en) | 2003-04-09 | 2011-02-22 | International Business Machines Corporation | Improving performance of database queries |
CA2429909A1 (en) | 2003-05-27 | 2004-11-27 | Cognos Incorporated | Transformation of tabular and cross-tabulated queries based upon e/r schema into multi-dimensional expression queries |
US8447775B2 (en) | 2003-06-13 | 2013-05-21 | Microsoft Corporation | Database query user interface to assist in efficient and accurate query construction |
US7146352B2 (en) | 2003-06-23 | 2006-12-05 | Microsoft Corporation | Query optimizer system and method |
US7437666B2 (en) * | 2003-10-22 | 2008-10-14 | Intel Corporation | Expression grouping and evaluation |
US6941316B2 (en) * | 2003-10-23 | 2005-09-06 | Microsoft Corporation | System and method for object persistence in a database store |
US7383246B2 (en) | 2003-10-31 | 2008-06-03 | International Business Machines Corporation | System, method, and computer program product for progressive query processing |
US7146378B2 (en) | 2003-11-10 | 2006-12-05 | Bellsouth Intellectual Property Corporation | Methods, systems and computer program products for segmented presentation of service order status information |
US7657516B2 (en) | 2003-12-01 | 2010-02-02 | Siebel Systems, Inc. | Conversion of a relational database query to a query of a multidimensional data source by modeling the multidimensional data source |
US7185024B2 (en) | 2003-12-22 | 2007-02-27 | International Business Machines Corporation | Method, computer program product, and system of optimized data translation from relational data storage to hierarchical structure |
US7120864B2 (en) | 2004-01-27 | 2006-10-10 | International Business Machines Corporation | Eliminating superfluous namespace declarations and undeclaring default namespaces in XML serialization processing |
US7472341B2 (en) * | 2004-11-08 | 2008-12-30 | International Business Machines Corporation | Multi-user, multi-timed collaborative annotation |
US7415487B2 (en) | 2004-12-17 | 2008-08-19 | Amazon Technologies, Inc. | Apparatus and method for data warehousing |
US7349896B2 (en) | 2004-12-29 | 2008-03-25 | Aol Llc | Query routing |
US7882100B2 (en) | 2005-01-24 | 2011-02-01 | Sybase, Inc. | Database system with methodology for generating bushy nested loop join trees |
US8126870B2 (en) | 2005-03-28 | 2012-02-28 | Sybase, Inc. | System and methodology for parallel query optimization using semantic-based partitioning |
US20060224556A1 (en) | 2005-03-29 | 2006-10-05 | Bea Systems, Inc. | SQL interface for services |
US20060248078A1 (en) | 2005-04-15 | 2006-11-02 | William Gross | Search engine with suggestion tool and method of using same |
US7886269B2 (en) | 2005-04-29 | 2011-02-08 | Microsoft Corporation | XML application framework |
JP2007041930A (ja) | 2005-08-04 | 2007-02-15 | Toshiba Corp | コンテンツ管理システム |
US7730079B2 (en) * | 2005-08-30 | 2010-06-01 | Microsoft Corporation | Query comprehensions |
US20070050348A1 (en) | 2005-08-30 | 2007-03-01 | Microsoft Corporation | Programmatic query assistance |
WO2007061430A1 (en) | 2005-11-22 | 2007-05-31 | Bea Systems, Inc. | System and method for translating sql queries into xml query language |
US7685131B2 (en) | 2006-02-28 | 2010-03-23 | International Business Machines Corporation | Web services database cluster architecture |
JP4071816B1 (ja) * | 2007-03-22 | 2008-04-02 | 透 降矢 | 合成関係演算を利用したマルチオペレーション・プロセッシングを用いたデータベースのクエリー処理システム |
-
2008
- 2008-06-10 US US12/136,616 patent/US7917547B2/en not_active Expired - Fee Related
-
2009
- 2009-05-15 JP JP2011513534A patent/JP5426667B2/ja not_active Expired - Fee Related
- 2009-05-15 KR KR1020107027380A patent/KR101608101B1/ko active IP Right Grant
- 2009-05-15 CN CN2009801222393A patent/CN102057377B/zh active Active
- 2009-05-15 WO PCT/US2009/044258 patent/WO2009151873A1/en active Application Filing
- 2009-05-15 EP EP09763164.2A patent/EP2300339B1/en active Active
Also Published As
Publication number | Publication date |
---|---|
KR101608101B1 (ko) | 2016-03-31 |
JP5426667B2 (ja) | 2014-02-26 |
WO2009151873A1 (en) | 2009-12-17 |
WO2009151873A9 (en) | 2010-03-11 |
EP2300339A1 (en) | 2011-03-30 |
EP2300339A4 (en) | 2016-03-16 |
EP2300339B1 (en) | 2020-08-26 |
US7917547B2 (en) | 2011-03-29 |
JP2011524052A (ja) | 2011-08-25 |
CN102057377B (zh) | 2013-03-27 |
US20090307192A1 (en) | 2009-12-10 |
KR20110030444A (ko) | 2011-03-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102057377B (zh) | 虚拟化查询中的对象 | |
CN100397398C (zh) | 从多个格式不同的物理表创建逻辑表的方法和系统 | |
US7472346B2 (en) | Multidimensional XBRL engine | |
CN1647080B (zh) | 多数据库环境中存取数据的方法和计算机 | |
CN1713179B (zh) | 在对象模型中的影响分析 | |
US7313782B2 (en) | Method for distributing, integrating, and hosting a software platform | |
US10019242B2 (en) | User interface engine for Miniapp development | |
AU2002340375B2 (en) | Methods, systems, and articles of manufacture for providing product availability information | |
US20100023952A1 (en) | Platform for data aggregation, communication, rule evaluation, and combinations thereof, using templated auto-generation | |
CN101183379A (zh) | 用于检索数据的方法和系统 | |
AU2002312183A1 (en) | System and method for geocoding diverse address formats | |
EP1402472A1 (en) | System and method for geocoding diverse address formats | |
CN103425529A (zh) | 基于资源利用在网络计算环境间迁移虚拟机的系统及方法 | |
WO2007068522A1 (en) | Service broker realizing structuring of portlet services | |
CN101288047A (zh) | 软件内插附件组件的发现、鉴定和激活 | |
US20070185930A1 (en) | System, method and program product for adding, updating and removing RDF statements stored on a server | |
CN102754073A (zh) | 用于虚拟化的扩展点声明性注册 | |
CN102831526A (zh) | 一种针对在线交易应用的商品搜索排序的方法和系统 | |
CN102142025B (zh) | 构成带有链接的自动创建的视图 | |
US20060155695A1 (en) | Global search for items using a request broker | |
CN100357919C (zh) | 高性能受管理的运行时环境应用程序管理器 | |
CN105981010B (zh) | 创建数据视图 | |
US20060136873A1 (en) | Application development performed independent of system landscape | |
Wust et al. | Xsellerate: supporting sales representatives with real-time information in customer dialogs | |
Li et al. | Implementing an mobile agent platform for m-commerce |
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 | ||
ASS | Succession or assignment of patent right |
Owner name: MICROSOFT TECHNOLOGY LICENSING LLC Free format text: FORMER OWNER: MICROSOFT CORP. Effective date: 20150529 |
|
C41 | Transfer of patent application or patent right or utility model | ||
TR01 | Transfer of patent right |
Effective date of registration: 20150529 Address after: Washington State Patentee after: Micro soft technique license Co., Ltd Address before: Washington State Patentee before: Microsoft Corp. |