嵌入式查询制定服务的制作方法

文档序号:6495580阅读:109来源:国知局
嵌入式查询制定服务的制作方法
【专利摘要】本文描述了用于提供并利用查询制定服务的各系统和方法。根据某些实施例,应用被配置成通过与使来自多个数据源的数据可用的数据服务进行交互来从目标数据源获取数据,每一数据源支持不同的查询制定方法。为了从该目标数据源获取数据,该应用向查询制定服务请求与该目标数据源相关联的查询制定用户界面(UI),并且当从查询制定服务接收到所请求的查询制定UI时嵌入所请求的查询制定UI。该应用的用户随后与嵌入式查询制定UI进行交互,以制定适合于从该目标数据源获取数据的查询,并且该应用将查询发送给数据服务以供针对该目标数据源进行执行。
【专利说明】嵌入式查询制定服务
[0001]背景
[0002]存在允许信息工作者从各种不同的数据源(诸如各种不同的数据库和web服务)访问数据的数据服务。通常通过应用来提供对该数据的访问,该应用可使其用户能够制定要针对目标数据源来执行的查询,从该目标数据源导入数据,并且对从该目标数据源导入的数据执行附加动作(诸如分析、可视化、或报告)。
[0003]通过数据服务变得可用的各种数据源可支持不同的查询制定方法,并且可具有不同的能力和机制来指定查询。例如,某些数据提供者可允许用户指定固定参数的值,作为制定要针对它们的数据源来执行的查询的一部分。其他数据提供者可允许用户构建灵活的类似SQL的查询表达式。又一些其他数据提供者可允许用户制作自然语言查询,自然语言查询随后由数据提供者来解释。
[0004]由于各种数据源可支持不同的查询制定方法,所以访问这些数据源的应用开发者在建立与底层数据提供者所允许的意图和保真度匹配的完整且持久的查询制定用户界面(UI)时面临困难且复杂的任务。例如,每次新数据源经由数据服务变得对应用可用时,该应用的查询制定Π可能需要被更新以支持该新数据源所支持的特定查询制定方法。此外,数据提供者可随时修改或扩充它们的数据源所支持的查询制定方法。在这种情况下,应用开发者必须继续采取步骤以确保被内置到其应用中的查询制定Π可利用或至少与经修改或扩充的查询制定方法兼容。
[0005]概述
[0006]提供本概述是为了以简化的形式介绍将在以下详细描述中进一步描述的选择的概念。本概述并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。此外,注意到本发明不限于在详细描述和/或本文的其它章节中所述的特定实施例。本文呈现这些实施例仅用于说明性的用途。基于本文所包含的描述,其它实施例对于相关领域的技术人员将是显而易见的。
[0007]本文描述了用于提供并利用查询制定服务的各系统和方法。根据某些实施例,应用被配置成通过与使来自多个数据源的数据可用的数据服务进行交互来从目标数据源获取数据,每一数据源支持不同的查询制定方法。为了从该目标数据源获取数据,该应用向查询制定服务请求与该目标数据源相关联的查询制定UI,并且当从查询制定服务接收到所请求的查询制定UI时将所请求的查询制定UI嵌入该应用的UI中。该应用的用户随后与嵌入式查询制定UI进行交互,以制定适合于从该目标数据源获取数据的查询,并且该应用将查询发送给数据服务以供针对该目标数据源进行执行。
[0008]具体而言,本文描述了包括数据服务和查询制定服务的系统,数据服务和查询制定服务中的每一者在一个或多个服务器计算机上执行。数据服务使来自多个数据源的数据对相应客户机计算机的用户可访问的多个应用可用,每一数据源支持不同的查询制定方法。数据服务通过将从这样的应用接收到的查询应用于数据源来使这样的数据可用。响应于接收到对其的请求,查询制定服务提供与多个数据源中的特定数据源对应的查询制定Π以嵌入多个应用中的特定应用中。查询制定Π可由该特定应用的用户用于制定该特定应用可向数据服务提交的从该特定数据源获取数据的查询。
[0009]本文还描述了一种提供查询制定服务的方法。根据该方法,接收对要嵌入应用中的查询制定Π的请求。查询制定Π与多个数据源中的特定数据源相关联,并且可由该应用的用户用于制定适合于从该特定数据源获取数据的查询。随后从多个查询制定Π中获取所请求的查询制定UI,多个查询制定Π中的每一个对应于多个数据源中相应的一个数据源。所请求的查询制定UI随后被返回以嵌入该应用中。
[0010]本文还描述了一种利用查询制定服务的方法。根据该方法,向查询制定服务发送对与多个数据源中的特定数据源相关联的查询制定UI的请求。所请求的查询制定UI是多个查询制定Π中的一个,多个查询制定Π中的每一个对应于多个数据源中相应的一个数据源。随后从查询制定服务接收所请求的查询制定UI,并且将其嵌入应用中,以产生可由该应用的用户用于制定适合于从该特定数据源获取数据的查询的嵌入式查询制定Π。
[0011]下面将参考各个附图,详细描述本发明的进一步特点和优点,以及本发明的各实施例的结构和操作。值得注意的是,本发明不仅限于此处所描述的特定实施例。本文呈现这些实施例仅用于说明性的用途。基于本文所包含的描述,其它实施例对于相关领域的技术人员将是显而易见的。
【专利附图】

【附图说明】
[0012]合并在此并作为说明书一部分的附图与说明书一起示出了本发明的实施例,且进一步用于解释本发明的原理的作用,并且使相关领域的技术人员能够实现并使用本发明。
[0013]图1是根据一个实施例的用于提供并利用查询制定服务的示例系统的框图。
[0014]图2是示出在web应用嵌入由查询制定服务所提供的查询制定用户界面(UI)的一个实施例中各系统组件之间的信息流的框图。
[0015]图3是示出在web应用嵌入由查询制定服务所提供的查询制定Π的另一实施例中各系统组件之间的信息流的框图。
[0016]图4是示出在客户机应用嵌入由查询制定服务所提供的查询制定Π的一个实施例中各系统组件之间的信息流的框图。
[0017]图5描绘根据一个实施例的用于提供查询制定服务的方法的流程图。
[0018]图6描绘根据一个实施例的用于利用查询制定服务的方法的流程图。
[0019]图7是可用于实现本文描述的各实施例的示例计算机系统的框图。
[0020]当结合其中相同的附图标记标识对应的元素的附图时,本发明的特征和优点将从以下阐述的详细描述中变得更加显而易见。在附图中,相同的参考标号一般指相同的、功能上相似的和/或结构上相似的元素。其中元素第一次出现的附图由对应的参考标号中最左侧的数字指示。
[0021]详细描述
[0022]1.引言
[0023]以下详细描述参考示出本发明的示例性实施例的附图。但是,本发明的范围不限于这些实施例,而是由所附权利要求书定义。因此,诸如所示实施例的修改版本之类的在附图所示之外的实施例仍然由本发明所包含。
[0024]本说明书中对“一个实施例”、“实施例”、“示例实施例”等的引用指的是所述实施例可包括特定的特征、结构或特点,但是每一实施例不一定包括该特定的特征、结构或特点。此外,这些短语不一定指相同的实施例。此外,当结合实施例描述具体特征、结构或特性时,应当理解在相关领域的技术人员的知识范围内能够结合其他实施例来实现具体特征、结构或特性,无论是否被显式地描述。
[0025]本文描述了用于提供并利用查询制定服务的各系统和方法。根据某些实施例,应用被配置成通过与使来自多个数据源的数据可用的数据服务进行交互来从目标数据源获取数据,每一数据源支持不同的查询制定方法。为了从该目标数据源获取数据,该应用向查询制定服务请求与该目标数据源相关联的查询制定UI,并且当从查询制定服务接收到所请求的查询制定Π时嵌入所请求的查询制定Π。该应用的用户随后与嵌入式查询制定Π进行交互,以制定适合于从该目标数据源获取数据的查询,并且该应用将查询发送给数据服务以供针对该目标数据源进行执行。
[0026]由于在上述实施例中查询制定服务而非该应用负责提供用于制定要针对特定数据源来执行的查询的适当UI,因此该应用的开发者不需要投资任何资源来开发用于制定要针对该数据源来执行的查询的UI,而是可改为依赖于查询制定服务来提供这样的Π。此夕卜,在查询制定服务提供与支持不同查询制定方法的各种数据源对应的各种查询制定Π的各实施例中,能够调用查询制定服务的应用可被容易地扩展,以支持对可针对数据源中的任一个来执行的查询的制定,而不管数据源支持不同的查询制定方法的事实。
[0027]如本文将描述的,根据至少一个实施例的查询制定服务可有利地被用于一旦新数据源变得可用就提供与这样的新数据源相关联的新查询制定UI,并且还向应用提供与特定数据源相关联的查询制定Π的最近或最新版本。根据本文描述的其他实施例,查询制定服务可向应用提供查询制定Π的特定版本。例如,查询制定Π的特定版本可由应用来请求或由查询制定服务来提供给应用,以确保返回到该应用的查询制定UI将与其兼容。
[0028]根据本文要描述的又一些实施例,提供了与数据源相关联的数据提供者可用来扩展和/或定制由查询制定服务所提供的用于制定要针对该数据源来执行的查询的查询制定Π的装置。还提供了应用的开发者可用来定制如何在该应用中显示由查询制定服务所提供的查询制定UI的其他装置。例如,这些装置可使开发者能够改变由查询制定UI所提供的文本框或其他控件的大小或样式,以更好地与该应用的那些相匹配。
[0029]I1.用于提供并利用查询制定服务的各示例系统
[0030]图1是根据一个实施例的用于提供并利用查询制定服务的示例系统100的框图。如图1所示,系统100包括通信地连接到多个应用IlO1-1lOn以及多个数据源104的数据服务102。如图1进一步示出的,系统100还包括查询制定服务106,查询制定服务106通信地连接到应用IlO1-1lOn以及存储多个查询制定用户界面(UI)的数据库108。如图1中更进一步示出的,系统100还包括通信地连接到查询制定服务106的数据提供者接口 112。
[0031]数据服务102表示使来自不同数据源104的数据对多个应用IlO1-1lOn中的各应用可用的自动系统。在一个实施例中,数据服务102包括诸如由华盛顿州雷蒙德市的微软公司发布的Windows Azure?Marketplace DataMarket之类的服务。如相关领域技术人员可以理解的,Windows Azure? Marketplace DataMarket是基于云的服务,该服务提供信息的全球市场,包括数据、web服务和分析。该服务可由数据提供者用于使其数据源对全世界广大受众可用,可由订阅者用于通过丰富的发现来定位满足其需求的数据源,并且可由能编写代码的开发者用于在一个或多个计算平台上消费这些数据源。然而,以上只是示例,并且数据服务102旨在广泛地表示应用可用来从多个不同数据源获取数据的任何服务。
[0032]在至少一个实施例中,数据服务102的功能在一个或多个服务器计算机上执行的软件中实现。可用于实现数据服务102的某些或全部特征的计算机系统的示例在下面第IV部分中提供。
[0033]数据源104包括至少多个数据库120和多个web服务130。多个数据库120的每一数据库包括以数字形式存储的有组织的数据集合。每一数据库中数据被组织的方式将与用于实现该数据库的数据模型相对应。常见数据库模型包括但不限于:分层、网络、关系、实体-关系、对象、以及对象-关系数据模型。每一数据库可存储在一个或多个存储器设备中,存储器设备通信地连接到执行数据服务102的全部或部分的计算机。
[0034]web服务103包括自动系统,这些自动系统可用于向另一自动实体提供一个或多个服务,或代表另一自动实体执行一个或多个操作,另一自动实体诸如数据服务102。在系统100的上下文中,多个web服务130中的每一 web服务用于响应于接收到来自数据服务102的请求来向数据服务102返回特定类型的数据。数据服务102与web服务130中的每一者之间的交互可使用任何已知web服务协议来实现,web服务协议包括但不限于REST(代表性状态转移)协议和SOAP (简单对象访问协议)协议。每一 web服务可在一个或多个计算机上执行,这些计算机通信地连接到执行数据服务102的全部或部分的计算机。或者,web服务130中的一个或多个可在同样用于执行数据服务102的全部或部分的计算机上执行是可能的。
[0035]数据服务102用于通过将从应用IlO1-1lOn接收到的查询应用于对应的数据源,使来自数据源104的数据对应用IIO1-1 IOn可用。根据一个实施例,来自数据源104中的不同数据源支持不同的查询制定方法。例如,数据源104中的某些可支持通过指定固定参数的值已制定的查询。数据源104中的其他数据源可支持使用灵活的类似SQL的查询表达式已构建的查询。数据源104中的又一些其他数据源可支持使用自然语言查询表达式来制作的查询。特定数据源所支持的查询制定类型可至少部分地由数据源的底层结构或技术能力来规定。另外,特定数据源所支持的查询制定类型还可至少部分地由数据服务102来规定,数据服务102可出于同系统性能等有关的原因针对特定数据源实施查询制定规则。
[0036]应用IIO1-1 IOn包括执行软件应用或进程,这些执行软件应用或进程可由客户机计算机的用户访问,并且包括使这些用户能够导入或以其他方式经由数据服务102获取来自数据源104中一个或多个数据源的数据的功能。为实现这一点,应用IlO1-1lOn中的每一个都能够向数据服务102提交由它的用户所制定的查询以供针对数据源104中的特定一个数据源进行执行。如下文将更详细地讨论的,应用IlO1-1lOn中的一个或多个可包括在web服务器上执行的且客户机计算机可经由一个或多个网络来访问的web应用。可用于实现这样的web服务器的计算机系统的一个示例在以下第IV部分提供。作为补充或替换,应用IlO1-1lOn中的一个或多个可包括在客户机计算机上执行的客户机应用。
[0037]如这里使用的,术语“客户机计算机”旨在涵盖能够访问应用IlO1-1lOn中的一个或多个的功能的任何系统或设备。这样的客户机计算机可包括,仅作为示例而非限制,台式计算机、膝上型计算机、平板计算机、智能电话、个人数字助理、视频游戏控制台、个人媒体播放器等等。可用于实现客户机计算机的计算机系统的一个示例在以下第IV部分提供。[0038]为使用户能够制定提交给数据服务102供针对数据源104中的特定一个数据源进行执行的查询,应用IlO1-1lOn中的每一个用于向查询制定服务106请求适合于在构建可针对目标数据源来执行的查询时使用的查询制定Π。查询制定服务106包括用于响应于从应用IlO1-1lOn接收到这样的请求来返回适当的查询制定Π的自动系统。与数据服务102类似,查询制定服务106可在一个或多个服务器计算机上执行的软件中实现。在一个实施例中,查询制定服务106由拥有并操作数据服务102的同一实体拥有并操作,但情况不一定如此。根据这样的实施例,数据服务102和查询制定服务106可在同一个或同一组计算机上实现。
[0039]在图1所示的实施例中,用于制定要针对不同数据源104来执行的查询并且可向应用IlO1-1lOn中的每一个返回的查询制定Π存储在数据库108中,数据库108通信地连接到查询制定服务106并且可由其访问。在一个实施例中,数据库108存储在一个或多个存储器设备中,存储器设备通信地连接到执行查询制定服务106的全部或部分的计算机。
[0040]在一个实施例中,每一查询制定UI被表示且被存储成一个或多个标记语言文档或文件,标记语言文档或文件可被返回给每一应用IlO1-1lOn并且由其呈现以供向用户显示。可用于表示查询制定UI的示例标记语言可包括但不限于XML、XAML、HTML等等。然而,查询制定Π不必使用标记语言来表示,并且表示这样的Π的其他方法可被使用。例如,根据一个替换实施例,查询制定Π中的一个或多个由查询制定服务106基于与查询制定Π相关联的一个或多个底层数据源的特性来动态地生成。底层数据源的特性可由数据服务102存储的或由数据源自己存储的且从中取回的元数据来表示。
[0041]当应用IlOl-1lOn从查询制定服务106接收到所请求的查询制定Π时,它将这样的Π嵌入它的应用特性数组中,从而使该Π对该应用的用户可用。应用IlO1-1lOn可用于嵌入查询制定Π的各种机制将在下文描述。该应用所嵌入的查询制定Π可向它的用户提供对促进构建适合特定数据源的查询的各种功能(诸如,查询确认、预览或其他业务逻辑)的访问。用户与嵌入式查询制定π进行交互以生成应用随后提交给数据服务102以供针对特定数据源来执行的查询。
[0042]在某些实施例中,数据服务102和数据源104之间、应用IIO1-1 IOn和数据服务102之间、应用IlO1-1lOn和查询制定服务106之间、和/或查询制定服务106和数据库108之间的通信经由一个网络或网络组合来实现。这样的网络可包括例如,因特网。然而,这一示例不旨在限制,并且这样的实体之间的通信可通过任何类型的网络或网络组合来实现,包括一个或多个广域网(WAN)、局域网(LAN)、私有网络、公共网络、分组网络、电路交换网络、以及有线或无线网络。尽管数据服务102和查询制定服务106在图1中被示为相连接,但注意情况不一定如此。此外,在替换实施例中,图1中示出的每一数据源可具有它自己的数据服务,而不是所有数据源有单个数据服务。
[0043]根据上面对系统100的描述,由于查询制定服务106负责提供用以制定要针对特定数据源来执行的查询的适当UI,因此应用IlO1-1lOn的开发者不需要投资任何资源来开发用以制定要针对该特定数据源来执行的查询的UI。此外,由于查询制定服务106可提供与支持不同查询制定方法的各种数据源对应的各种查询制定UI,因此能够调用查询制定服务106的任何应用IlO1-1lOn可被容易地扩展,以支持对可针对数据源中的任一个来执行的查询的制定,而不管数据源支持不同的查询制定方法的事实。[0044]根据某些实施例,查询制定服务106能够在一旦新数据源经由数据服务102变得可用时就提供与这样的新数据源相关联的新查询制定UI。查询制定服务106还可向应用提供与特定数据源相关联的查询制定Π的最近或最新版本。根据其他实施例,查询制定服务106可向应用提供查询制定UI的特定版本。例如,查询制定UI的特定版本可由应用IIO1-1IOn之一请求和/或由查询制定服务106向其提供,以确保返回给该应用的查询制定UI将与其兼容。
[0045]A.示例信息流
[0046]现在将参考图2-4来描述各种信息流。每一信息流旨在示出根据一个实施例的在提供和利用查询制定服务期间信息如何在各示例性系统组件之间被交换。仅作为示例而非旨在限制,这里描述这些信息流。
[0047]图2是示出在web应用嵌入由查询制定服务所提供的查询制定Π的一个实施例中各系统组件之间的信息流的框图200。如图2所示,框图200包括数据服务102和查询制定服务106,其中的每一个在上文中已参考图1的系统100进行了描述。如图2中进一步示出,框图200还包括web应用210和用户代理220。web应用210包括客户机计算机经由一个或多个网络访问以向该客户机计算机的用户递送功能的应用。web应用210可在一个或多个服务器计算机(也可被称为web服务器)上执行。web应用210可表示如上文参考图1的系统100所描述的应用IlO1-1lOn中的特定一个应用。用户代理220包括在客户机计算机上执行的软件应用或进程,用户代理经由一个或多个网络与web应用210进行交互以向该客户机的用户递送web应用的功能。在一个实施例中,用户代理220包括web浏览器,但这仅作为一个示例而非旨在限制。
[0048]该信息流在用户代理220向web应用210发送导入数据的请求时开始,如箭头230所表示的。例如,响应于用户代理220的用户激活web应用210的导入数据特征,用户代理220可发送这样的请求。
[0049]响应于接收到导入数据的请求,web应用210包括指示用户代理220向查询制定服务106发出后续请求的HTML标记,如箭头232所表示的。在用户代理220包括web浏览器的实施例中,web应用210可通过在递送给用户代理220的网页(从查询制定服务106获取的内容将被加载到该网页)内部嵌入i帧来执行这一功能。在用户代理220包括web浏览器的另一实施例中,web应用210可通过指示用户代理220打开新浏览器窗口并且将从查询制定服务106获取的内容加载到该新浏览器窗口来执行这一功能。在用户代理220包括web浏览器的又一实施例中,web应用210可通过指示用户代理220从查询制定服务106获取内容以供加载到整个当前打开的浏览器窗口(而不是上述i帧方式,在i帧方式中内容仅被加载到当前打开的浏览器窗口的一部分)来执行这一功能。然而,上述这些方式仅作为示例来提供,并且其他方法可用于将用户代理220重定向到查询制定服务106。
[0050]当用户代理220已被重定向到查询制定服务106之后,用户与由查询制定服务106所提供的且由用户代理220所呈现的查询制定UI进行交互,以构建要针对目标数据源来执行的查询。这些交互在图2中用双向箭头234指示。查询制定服务106所提供的查询制定UI可适于支持按与目标数据源所支持的一种或多种特定查询制定方法一致的方式来构建查询。可按一个或多个标记语言文档的形式向用户代理220提供查询制定Π。例如,根据至少一个实施例,查询制定Π包括可被递送给并且由用户代理220呈现的一个或多个HTML定义的网页。然而,这仅作为一个示例来表示,并且可以理解查询制定Π可按其他形式来提供。
[0051]当用户使用查询制定服务106所提供的查询制定Π构建了查询之后,查询制定服务106将该查询重定向回到web应用210,如图2中的箭头236和238所表示的。各种机制可用于将来自查询制定服务106的查询重定向回到web应用210。例如,在其中用户代理220包括web浏览器的实施例中,查询制定服务106可向用户代理220返回HTML重定向响应,其中该重定向URL包括使用查询制定Π来建立的查询串。根据另一示例,查询制定服务106可返回调用由该应用所定义回调函数的JavaScript,或向用户代理220返回由用户代理220执行以使该查询被返回到web应用210的其他代码。然而,这些仅作为示例,并且各种各样的其他机制可用于向web应用210返回该查询。
[0052]在查询已被返回到web应用210之后,web应用210向数据服务102提供查询以供针对该查询被定标到的数据源进行执行。这由箭头240来表示。如果数据响应于查询的执行而从数据源被返回,则数据服务102可向web应用210提供所返回的数据,以完成导入数据过程。
[0053]图3是示出在应用嵌入由查询制定服务所提供的查询制定UI的另一实施例中各系统组件之间的信息流的框图300。如图3所示,框图300包括数据服务102和查询制定服务106 (其中的每一个在上文中已参考图1的系统100进行了描述),以及用户320。框图300还包括应用310。在一个实施例中,应用310类似于图2的web应用210,因为它包括客户机计算机经由一个或多个网络访问的用于向该客户机计算机的用户递送功能的应用。或者,应用310可包括由客户机计算机执行以向其本地用户递送功能的应用。在任一情况下,应用310被配置成担当查询制定服务106的代理,将查询制定服务106所提供的查询制定UI转换成向用户320递送的内容,而不依赖于将用户代理重定向到查询制定服务106。
[0054]现在将在图3的信息流的上下文中解释这种代理方式。该信息流在用户320向应用310发出导入数据的请求时开始,如箭头330所表示的。例如,可由用户320经由激活应用310的导入数据特征来发出这样的请求。
[0055]响应于接收到导入数据的请求,应用310直接与查询制定服务106进行通信,以获取与要从中导入数据的数据源相对应的查询制定UI。应用310接收查询制定UI并且将其提供给用户310,或另选地,将该查询制定Π转换成另一格式,例如,转换成不同的标记语言、Π描述语言、或执行以生成对于用户320的适当的Π的代码。用户与由应用310以此方式代理的查询制定UI进行交互以建立查询在图3中由双向箭头332和334来表示。
[0056]当用户320使用由查询制定服务106所提供的且由应用310所代理的查询制定Π构建了查询之后,应用310获取查询并将其提供给数据服务102以供针对查询被定标到的数据源进行执行。这由箭头336来表示。如果数据响应于查询的应用而从数据源被返回,则数据服务102可向应用310提供所返回的数据,以完成导入数据过程。
[0057]图4是示出在客户机应用嵌入由查询制定服务所提供的查询制定UI的一个实施例中各系统组件之间的信息流的框图400。如图4所示,框图400包括数据服务102和查询制定服务106,其中的每一个在上文中已参考图1的系统100进行了描述。如图4中进一步示出的,框图400还包括客户机应用400。客户机应用410包括由客户机计算机执行以向它的用户递送功能的应用。客户机应用410可表示如上文参考图1的系统100所描述的应用IIO1-1 IOn中的特定一个应用。
[0058]如图4中进一步示出的,客户机应用410包括或以其他方式能够访问嵌入式用户代理420。嵌入式用户代理220包括在与客户机应用410相同的客户机计算机上执行且能够经由一个或多个网络与远程实体(诸如查询制定服务106)进行交互以从中获取内容的软件过程。在一个实施例中,嵌入式用户代理420包括嵌入式web浏览器,但这仅作为一个示例而非旨在限制。
[0059]该信息流可在客户机应用的用户激活客户机应用410的特征时开始,该特征可用于从通过数据服务102变得可用的特定数据源导入数据。这在图4中可由箭头432来表示。响应于导入数据特征的激活,客户机应用410利用嵌入式用户代理420向查询制定服务106请求适当的查询制定Π,并且在从查询制定服务106接收到查询制定Π时加载查询制定Π。在嵌入式用户代理中加载查询制定Π可在图2中由箭头434来表示。
[0060]嵌入式用户代理420随后以允许应用410的用户与查询制定Π进行交互以构建要针对目标数据源来执行的查询的方式来呈现接收到的查询制定UI。这些交互在图4中用双向箭头436指示。当用户使用查询制定服务106所提供的查询制定UI构建了查询之后,查询制定服务106将该查询提供给客户机应用410,如箭头438所表示的。在查询已被返回到客户机应用410之后,客户机应用410向数据服务102提供该查询以供针对该查询被定标到的数据源进行执行。这由箭头440来表示。如果数据响应于查询的执行而从数据源被返回,则数据服务102可向客户机应用410提供所返回的数据,以完成导入数据过程。
[0061]B.示例查询制定Π功能
[0062]如上所述,查询制定服务106所提供的查询制定Π可以使用户能够使用特定数据源所支持的查询制定方法来构建要针对该数据源来执行的查询。作为示例而非限制,这可能需要允许用户通过输入固定参数来构建查询,允许用户构建类似SQL的表达式(以文本或图形形式),或允许用户查看数据源并以图形方式执行诸如过滤、排序和选择之类的操作以生成查询。这还可能需要允许用户使用各种输入方法(例如,文本、姿势、音频、视频等)中的任一种来输入自然语言查询。自然语言查询随后可由查询制定服务106或由与目标数据源相关联的数据提供者转换成不同形式。
[0063]查询制定服务106所提供的查询制定UI也可执行其他功能。例如,查询制定UI可用于呈现将通过执行针对特定数据源的特定查询所生成的结果的预览。查询制定Π还可用于在用户引起要针对特定数据源来执行的查询之前,提供对用户所创建的该查询相关联的成本的估计。查询制定UI还可用于生成用户所构建的查询的持久表示(例如,URL表示)以及与其相关联的结果,使得该表示可被该应用使用多次。在用户因从数据服务102获取数据而被收费的实施例中,这样的表示可被该应用使用多次,而不会导致不止一次向用户收费。
[0064]在又一实施例中,查询制定服务106可用于选择性地向用户提供可用于建立针对特定数据源来执行的查询的多个不同查询制定Π中的一个。例如,与特定数据源相关联的查询制定Π中的每一个可具有不同水平的复杂性和/或可提供不同的查询建立工具组。查询制定服务106可按基于以下各项的方式来选择查询制定UI中适当的一个查询制定UI:例如,基于所确定的用户的熟练程度、基于查询制定Π被集成的上下文、和/或各种其他因素。[0065]C.查询制定Π定制和扩充
[0066]根据某些实施例,与通过数据服务102变得可用的数据源相关联的数据提供者可被允许定制、扩充、或以其他方式修改与该数据源相关联的查询制定服务106所服务的查询制定Π。这样的定制和扩充可包括,作为示例而非限制,改变查询制定Π的外观,或者添力口、移除或改变经由查询制定Π可访问的功能和/或特征。在图1所示的实施例中,这样的修改可通过向查询制定服务106提供数据提供者接口 112来实现,数据提供者接口 112使数据提供者能够提供定义或以其他方式表示对查询制定UI的这些修改的元数据。该元数据可存储在例如数据库108中或查询制定服务106可访问的某一其他位置中。该元数据可与特定数据源相关联地存储,和/或与修改被应用到的查询制定UI相关联地存储。
[0067]根据其他实施例,与特定数据源相关联的数据提供者可动态地提供向查询制定服务106所请求的查询制定Π的全部或一部分。这样的实现可例如通过将查询制定服务106配置成在对查询制定Π的请求被接收时向数据提供者服务器发出回调来实现。这样的实现使数据提供者能够行使对远程查询制定UI的某些或全部的控制。
[0068]根据又一些实施例,应用可被配置成定制、扩充或以其他方式修改由与该数据源相关联的查询制定服务106所服务的查询制定Π。配置应用来实现这些修改的方式可取决于应用如何嵌入查询制定Π。例如,在应用包括图2的web应用210的系统中,应用不具有对查询制定Π的直接访问。在这种情况下,应用必须被配置成向用户代理220提供使该用户代理能够加载与对查询制定Π作出的应用专用修改有关的某些信息。
[0069]相反,在应用包括图3的应用310或图4的客户机应用410的系统中,应用确实具有对查询制定Π的直接访问,并且由此可将修改直接应用于查询制定Π。这样的修改可包括,作为示例而非限制,改变查询制定UI的外观,或者添加、移除或改变经由查询制定UI可访问的功能和/或特征。这样的修改还可包括将查询制定Π从第一表示(例如,第一标记语言表示)变换成第二表示(例如,第二标记语言表示)以促进呈现该查询制定UI,或任何其他类型的修改。
[0070]II1.用于提供并利用查询制定服务的示例方法
[0071]图5描绘根据一个实施例的用于利用查询制定服务的示例性方法的流程图500。现在将继续参考系统100 (如上参考图1所描述的)以及各种系统元件(参考图2-4的框图所描述的)来描述流程图500的方法。然而,方法不限于那些实施例。相关领域技术人员将容易地理解,流程图500的方法可使用其他系统或系统元件来实现。
[0072]如图5所示,流程图500的方法在步骤502开始,其中对要嵌入应用的查询制定UI的请求被接收。查询UI可与多个数据源中的特定数据源相关联,并且可由该应用的用户用于制定适合于从该特定数据源获取数据的查询。例如,该步骤可由图1的查询制定服务106来执行,如上所述,查询制定服务106可接收对要嵌入应用IlO1-1lOn中的任一个的查询制定UI的请求。
[0073]步骤502可包括例如,接收对与特定数据库或特定web服务相关联的查询制定UI的请求。例如,继续参考图1的系统100,步骤502可包括接收对与通过数据服务102变得可用的数据库120中的特定一个数据库或web服务130中的特定一个web服务相关联的查询制定Π的请求。所请求的查询制定Π可用于允许用户按特定数据库或特定web服务所支持的方式来制定查询。[0074]步骤502可进一步包括接收对要嵌入web服务器上执行的web应用(诸如上文参考图2描述的web应用,或上文参考图3描述的web应用310)中的查询制定Π的请求。步骤502还可包括接收对嵌入客户机计算机上执行的客户机应用(诸如上文参考图4描述的客户机应用410)中的查询制定Π的请求。
[0075]在步骤504,从多个查询制定Π中获取所请求的查询制定Π。例如,该步骤可由查询制定服务106来执行,查询制定服务106可从存储在数据库108中的多个查询制定UI中获取所请求的查询制定UI。
[0076]在步骤506,返回所请求的查询制定UI以嵌入该应用中。例如,该步骤可由查询制定服务106来执行,查询制定服务106可返回所请求的查询制定Π以嵌入应用IlO1-1lOn的任一个中
[0077]流程图500的方法可进一步包括由与特定数据源相关联的实体来定制或控制所请求的查询制定Π的至少一部分。例如,各种方法在上面I1.C部分讨论,与特定数据源相关联的数据提供者可通过这些方法来定制查询制定Π,或与特定数据源相关联的数据提供者可通过这些方法来向查询制定服务返回所请求的查询制定Π的全部或一部分。
[0078]图6描绘根据一个实施例的用于利用查询制定服务的方法的流程图600。现在将继续参考系统100 (如上参考图1所描述的)以及各种系统元件(参考图2-4的框图所描述的)来描述流程图600的方法。然而,该方法不限于那些实施例。相关领域技术人员将容易地理解,流程图600的方法可使用其他系统或系统元件来实现。
[0079]如图6所示,流程图600的方法在步骤602开始,其中向查询制定服务发送对与多个数据源中的特定数据源相关联的查询制定Π的请求。所请求的查询制定Π可包括多个查询制定UI之一,多个查询制定UI中的每一个对应于多个数据源中相应的一个数据源。例如,如上所述,该步骤可由图1的应用IIO1-1 IOn中的任一个来执行,这些应用中的每一个可向查询制定服务106发送对查询制定UI的请求。
[0080]步骤602可包括例如,向查询制定服务发送对与特定数据库或特定web服务相关联的查询制定Π的请求。例如,继续参考图1的系统100,步骤602可包括向查询制定服务106发送对与通过数据服务102变得可用的数据库120中的特定一个数据库或web服务130中的特定一个web服务相关联的查询制定UI的请求。所请求的查询制定UI可用于允许用户按该特定数据库或该特定web服务所支持的方式来制定查询。
[0081]在步骤604,从查询制定服务接收所请求的查询制定Π。例如,如上所述,该步骤可由图1的应用IIO1-1IOn中的任一个来执行,这些应用中的每一个可从查询制定服务106接收所请求的查询制定Π。
[0082]在步骤606,将所请求的查询制定Π嵌入应用中,以产生可由应用的用户用于制定适合于从该特定数据源获取数据的查询的嵌入式查询制定Π。例如,如上所述,该步骤可由图1的应用IIO1-1IOn中的任一个来执行,这些应用中的每一个可嵌入从查询制定服务106接收到的所请求的查询制定UI。
[0083]根据某些实施例,步骤606包括将所请求的查询制定Π嵌入web应用中。可用于将所请求的查询制定UI嵌入web应用中的各种方法在上文参考图2和图3的示例信息流进行了描述。根据某些其他实施例,步骤606包括将所请求的查询制定Π嵌入客户机计算机上执行的客户机应用中。可用于将所请求的查询制定UI嵌入客户机计算机上执行的客户机应用中的各种方法在上文参考图4的示例信息流进行了描述。
[0084]在步骤608,向将查询应用于特定数据源的数据服务发送使用嵌入式查询制定UI来制定的查询。例如,该步骤可由图1的应用IlO1-1lOn中的任一个来执行,这些应用中的每一个可以向将查询应用于数据源104中的特定数据源的数据服务102发送使用嵌入式查询制定Π来制定的查询。
[0085]流程图600的方法可进一步包括在向应用的用户呈现所请求的查询制定Π之前,由应用修改所请求的查询制定Π。应用可用来修改从查询制定服务获取的查询制定Π的各种方法在上文I1.C部分进行了描述。
[0086]IV.示例计算机系统实现
[0087]图7描述了可用于实现本文描述的各个实施例的示例计算机系统700。例如,计算机系统700可用于实现先前描述的以下元素中的任一个:数据服务102,查询制定服务106,应用IlO1-1lOn,数据提供者接口 112,web应用210,用户代理220,web应用310和客户机应用410。此处所提供的对计算机系统700的描述只是为了说明,并不是限制性的。实施例也可以在相关领域的技术人员所知的其它类型的计算机系统中实现。
[0088]如图7所示,计算机系统700包括处理单元702、系统存储器704,以及将包括系统存储器704的各种系统组件耦合到处理单元702的总线706。处理单元702可包括一个或多个处理器或处理核心。总线706表示若干类型的总线结构中的任何一种总线结构的一个或多个,包括存储器总线或存储器控制器、外围总线、加速图形端口,以及处理器或使用各种总线体系结构中的任何一种的局部总线。系统存储器704包括只读存储器(ROM) 708和随机存取存储器(RAM)710。基本输入/输出系统712 (BIOS)储存在R0M708中。
[0089]计算机系统700还具有一个或多个以下驱动器:用于读写硬盘的硬盘驱动器714、用于读或写可移动磁盘718的磁盘驱动器716、以及用于读或写诸如⑶R0M、DVD ROM或其他光介质之类的可移动光盘722的光盘驱动器720。硬盘驱动器714、磁盘驱动器716,以及光驱动器720分别通过硬盘驱动器接口 724、磁盘驱动器接口 726,以及光学驱动器接口728连接到总线706。驱动器以及它们相关联的计算机可读介质为计算机提供了对计算机可读指令、数据结构、程序模块,及其他数据的非易失存储器。虽然描述了硬盘、可移动磁盘和可移动光盘,但是,也可以使用诸如闪存卡、数字视频盘、随机存取存储器(RAM)、只读存储器(ROM)等等之类的其他类型的计算机可读介质来存储数据。
[0090]数个程序模块可被储存在硬盘、磁盘、光盘、ROM或RAM上。这些程序模块包括操作系统730、一个或多个应用程序732、其他程序模块734以及程序数据736。根据各个实施例,程序模块可包括可由处理单元702执行以执行如上文参考图1-4描述的以下各项的任意和全部功能和特征的计算机程序逻辑:数据服务102,查询制定服务106,应用IlO1-1lOn,数据提供者接口 112,web应用210,用户代理220,web应用310和客户机应用410。程序模块还可包括当被处理单元702执行时执行图5的流程图500或图6的流程图600的步骤中的任一个的计算机程序逻辑。
[0091]用户可以通过诸如键盘738和定点设备740之类的输入设备向计算机系统700中输入命令和信息。其它输入设备(未示出)可包括话筒、操纵杆、游戏控制器、扫描仪等等。在一个实施例中,结合显示器744提供触摸屏以允许用户通过向触摸屏上的一个或多个点施加触摸(例如通过手指或指示笔)来提供用户输入。这些及其他输入设备常常通过耦合到总线706的串行端口接口 742连接到处理单元702,但是,也可以通过其他接口,诸如并行端口、游戏端口、通用串行总线(USB)端口,来进行连接。
[0092]显示器744还通过诸如视频适配器746之类的接口连接到总线706。除了显示器744之外,计算机系统700还可包括其他外围输出设备(未示出),比如扬声器和打印机。
[0093]计算机系统700通过网络接口或适配器750、调制解调器752或其它用于在网络上建立通信的装置连接到网络748 (例如,局域网或诸如因特网之类的广域网)。调制解调器752 (可以是内置的或外置的)通过串行端口接口 742连接到总线706。
[0094]如此处所用的,术语“计算机程序介质”以及“计算机可读介质”被用于泛指非瞬态介质,诸如与硬盘驱动器714相关联的硬盘、可移动磁盘718、可移动光盘722,以及其他介质,诸如闪存卡、数字视频盘、随机读取存储器(RAM)、只读存储器(ROM)等。
[0095]如上文所指示的,计算机程序和模块(包括应用程序732及其他程序模块734)可被储存在硬盘、磁盘、光盘、ROM或RAM上。这样的计算机程序也可以通过网络接口 750或串行端口接口 742来接收。这些计算机程序在由处理单元702执行时使得计算机系统700能够实现此处所讨论的实施例的特征。因此,这样的计算机程序表示计算机系统700的控制器。
[0096]实施例还针对包括存储在任何计算机可读介质上的软件的计算机程序产品。这样的软件,当在一个或多个数据处理设备中执行时,使数据处理设备如此处所描述的那样操作。实施例可使用现在已知或将来知晓的任何计算机可使用或计算机可读介质。计算机可读介质的例子包括但不限于存储设备,诸如RAM、硬盘、软盘、CD ROM,DVD R0M、Zip盘、磁带、磁存储设备、光存储设备、基于MEMS的存储设备、基于纳米技术的存储设备,等等。
[0097]在替换实现中,数据服务102,查询制定服务106,应用IIO1-1IOn,数据提供者接口112,web应用210,用户代理220,web应用310和客户机应用410中的每一者可被实现成硬件逻辑/电子电路或固件。根据进一步实施例,这些组件中的一个或多个可被实现在片上系统(SoC)中。SoC可包括集成电路芯片,该集成电路芯片包括以下一个或多个:处理器(如微控制器、微处理器、数字信号处理器(DSP)等等)、存储器、一个或多个通信接口、和/或用于执行其功能的进一步的电路和/或嵌入的固件。
[0098]V.结语
[0099]虽然以上描述了不同的实施例,但应当理解的是它们只是作为示例而非限制。对于相关领域的技术人员显而易见的是,可以对其做出各种改变而不背离本发明的精神和范围。因此,此处所公开的本发明的宽度和范围不应被上述所公开的示例性实施例所限制,而应当仅根据所附权利要求书及其等同替换来定义。
【权利要求】
1.一种系统,包括: 在一个或多个服务器计算机上执行的数据服务,所述数据服务通过将从相应客户机计算机能访问的多个应用接收到的查询应用于多个数据源,来使得所述数据源对这样的应用可用,其中每一数据源支持不同的查询制定方法;以及 在所述一个或多个服务器计算机上执行的查询制定服务,所述查询制定服务提供与所述多个数据源中的特定数据源相对应的、以供响应于接收到对其的请求来嵌入所述多个应用中的特定应用中的查询制定用户界面(UI),所述查询制定Π能由所述特定应用的用户用于制定所述特定应用能向所述数据服务提交以从所述特定数据源获取数据的查询。
2.如权利要求1所述的系统,其特征在于,所述多个数据源包括一个或多个数据库或web服务。
3.如权利要求1所述的系统,其特征在于,所述多个应用包括在web服务器上执行的web应用,所述客户机计算机中的至少一个经由网络能访问所述web应用。
4.如权利要求3所述的系统,其特征在于,所述web应用用于将所述查询制定服务所提供的查询制定Π加载到要经由网络递送到所述客户机计算机中的至少一个的一个或多个网页。
5.如权利要求4所述的系统,其特征在于,所述web应用用于在将嵌入式查询制定服务所提供的所述查询制定UI加载到所述一个或多个网页之前,修改所述查询制定UI。
6.如权利要求3所述的系统,其特征在于,所述web应用用于指引在所述客户机计算机中的至少一个上执行的用户代理从所述查询制定服务获取所述查询制定Π。
7.如权利要求6所述的系统,其特征在于,所述web应用进一步用于指引所述用户代理获取对所述查询制定Π的应用专用·定制。
8.如权利要求1所述的系统,其特征在于,所述多个应用包括在客户机计算机上执行的客户机应用,所述客户机应用包括用于从所述查询制定服务获取查询制定Π的嵌入式用户代理。
9.如权利要求8所述的系统,其特征在于,所述客户机应用能够在向所述客户机应用的用户呈现从所述查询制定服务获取的查询制定UI之前,修改所述查询制定UI。
10.如权利要求1所述的系统,其特征在于,向所述特定应用提供的所述查询制定Π的至少一部分包括与所述特定数据源相关联的实体所提供的元数据,所述元数据定义对所述查询制定Π的源专用定制。
11.如权利要求1所述的系统,其特征在于,向所述特定应用提供的所述查询制定Π的至少一部分是由所述查询制定服务从与所述特定数据源相关联的实体所主存的服务获取的。
12.一种提供查询制定服务的方法,包括: 接收对要嵌入应用中的查询制定Π的请求,所述查询制定Π与多个数据源中的特定数据源相关联且能被所述应用的用户用来制定适合于从所述特定数据源获取数据的查询; 从多个查询制定Π中获取所请求的查询制定UI,所述多个查询制定Π中的每一个对应于所述多个数据源中相应的一个数据源;以及 返回所请求的查询制定UI以嵌入所述应用中。
13.如权利要求12所述的方法,其特征在于,接收对要嵌入所述应用中的查询制定Π的请求包括: 接收对要嵌入web服务器上执行的web应用中或客户机计算机上执行的客户机应用中的查询制定UI的请求。
14.如权利要求12所述的方法,其特征在于,还包括: 通过与所述特定数据源相关联的实体来定制或控制所请求的查询制定Π的至少一部分。
15.一种包括上面记录有计算机程序逻辑的计算机可读介质的计算机程序产品,该计算机程序逻辑包括用于 使得处理器能够执行如权利要求12-14任一项所述的方法的装置。
【文档编号】G06F17/30GK103597481SQ201280029335
【公开日】2014年2月19日 申请日期:2012年6月5日 优先权日:2011年6月16日
【发明者】A·D·威尔逊, C·林斯伯格 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1