使用来自外部数据源的数据来丰富数据库查询响应的制作方法

文档序号:6495577阅读:345来源:国知局
使用来自外部数据源的数据来丰富数据库查询响应的制作方法
【专利摘要】本发明涉及使用来自外部数据源的数据来丰富数据库查询响应。在处理从外部数据源搜寻经丰富的数据的数据库查询时,基于数据库查询请求被传送到外部数据源。基于由外部数据源提供的数据,经丰富的数据库查询响应被生成。经丰富的数据库查询响应可以与经由内部数据库查询操作返回的和/或被插入到本地数据库表格中的数据进行组合。
【专利说明】使用来自外部数据源的数据来丰富数据库查询响应
[0001]背景
[0002]软件应用操作依赖于高效的计算资源使用。因此,为了促进积极的用户体验,需要支持数据存储和处理机制。
[0003]这样的软件应用包括:访问包括结构化数据记录(例如,表格数据)的企业内部数据库的数据库应用。该数据库应用是构建在数据库管理系统的开发平台上的。当用户发送数据库查询时,数据库应用访问内部数据库并且(通常)提供包括与该数据库查询相匹配的表格数据的响应。
[0004]除了内部数据,用户有时想要访问来自一个或多个外部数据源的数据,诸如查看这样的数据连同所检索到的内部数据库数据。为此,应用(数据源提供方)需要被开发成懂得如何与每个外部源进行通信,例如,它的认证模型、通信协议(连接串)和/或诸如记账需求的任何其它信息。开发这样的应用已经超出了通常仅仅想要分析数据的典型的查询作者的能力和/或对于查询作者而言太耗时。
[0005]概述
[0006]提供本概述以便以简化形式介绍将在以下的【具体实施方式】中进一步描述的一些代表性概念。本概述不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在以限制所要求保护的主题的范围的任何方式来使用。
[0007]简言之,在此描述的主题的各个方面涉及维持翻译机制,该翻译机制通过使用直接的查询命令使得从内部数据库查询检索到的数据能用来自外部数据源的数据来丰富。在一个方面,该翻译机制便于外部数据的检索,因为对于不同的外部数据源不需要分开的提供方。查询作者或应用开发者不需要处理,例如,数据库查询如何被认证、表格数据如何从外部数据源导入,或如何针对访问来对用户记账。
[0008]在另一方面,丰富服务器使用翻译机制来将内部数据库与来自一个或多个外部数据库的表格数据进行组合。由于内部数据库可能包括非公共(即私有)数据,因此丰富服务器允许用各种公共信息对非公共数据进行无缝扩充。
[0009]在一个方面,丰富服务器从数据库查询提取用来标识实体的参数。实体包括数据类型分组作为用户请求其值的诸组件。参数还包括被用作用于从外部数据源选择数据的搜索准则等等的值。使用这些参数,翻译机制发起对协议的适当的本地功能调用以供从外部数据源请求数据。
[0010]附图简述
[0011]作为示例而非限制,在附图中示出了本发明,附图中相同的附图标记指示相同或相似的元素,附图中:
[0012]图1是示出用于使用来自外部数据源的数据来丰富数据库查询响应的示例性系统的框图。
[0013]图2是根据一个示例实现的用于使用来自外部数据源的数据来丰富数据库查询响应的步骤的流程图。
[0014]图3是根据一个示例实现的用于使用目录来将对各种信息的请求发送到外部数据源的步骤的流程图。
[0015]图4是根据一个示例实现的用于将数据从外部数据源转换到经丰富的数据库查询响应的步骤的流程图。
[0016]图5是根据一个示例实现的用于构建用于将数据库查询翻译成对外部数据源的本地请求的目录的步骤的流程图。
[0017]图6是根据一个示例实现的用于将实体组件映射到外部数据源的步骤的流程图。
[0018]图7是示出其中可实现本文中描述的各个实施例的示例性非限制联网环境的框图。
[0019]图8是示出其中可实现本文中所描述的各个实施例的一个或多个方面的示例性非限制计算系统或操作环境的框图。
[0020]详细描述
[0021]此处所描述的技术的各方面一般针对使用从外部数据源提取的数据来丰富数据库查询响应。数据库查询包括指定用于从外部数据源选择数据的一个或多个准则的一个或多个参数。一个示例性参数包括一组数据类型的实体标识符(例如,名称)。每个数据类型可包括一个或多个其它数据类型。其它示例性参数包括该组数据类型的一个或多个数据类型的一个或多个值。一些其它示例性参数可以是上下文参数,该上下文参数将由外部数据源返回的值限制到例如特定时间和/或位置。因为对数据库查询的经丰富的响应包括表格数据,所以该组数据类型定义一个或多个列,而该一个或多个值定义一个或多个行。在一个示例性实现中,表格数据的每行内的列数据对应于该一个或多个值。
[0022]在一个示例性实现中,数据库查询涉及用例示为财务信息的各种信息来丰富公司数据,财务信息诸如股价、雇员统计、收益报告、市场资本化价值(“市值”)、近期股票价格等等。一个或多个外部数据源,诸如财经新闻媒体、股市、搜索引擎等等,响应于本地功能调用或请求这样的数据的查询(“请求”),来提供一个或多个公司名称的各种财务信息。定义各种财务信息的各部分的数据类型构成实体。因此,数据库查询包括作为参数的实体名称和一个或多个公司名称。
[0023]示例性实体包括多个组件(S卩,数据类型),包括代表多个雇员、市值和股价的组件。许多其它组件可被包括在实体中,例如,公司高管、销售总额、注册状态、存在年数等等。为了从外部源访问这样的数据,翻译机制提供一个或多个示例性参数,包括(例如,用户查询中标识的)任何实体组件,并指令在合适的外部数据源处运行的连接软件执行本地功能。因此,连接软件返回例如雇员数量、市值和/或股价(如果那些被指定的话)的值。
[0024]作为示例,考虑具有“诸公司”表格的名为C的企业,该表格包含公司名称的行,和关于诸公司的各行的一列邮政编码数据(以及可能的许多其它列)。考虑内部数据库不包括股票行情数据或每个公司的雇员数量,但是这样的信息可从外部源获得。为查看格式化为名称、邮政编码、行情和雇员数量的数据,迄今为止需要自定义应用(提供方)来将内部查询结果与来自外部源的数据合并。通过数据丰富,用户只需要指定包括合适的组件(诸如行情、雇员数量、市值等等)的预先定义的实体(例如,“公司财务”),并提交合适的查询:
[0025]SELECT name, zipcode, ticker, num_employees (选择名称、邮政编码、行情、雇员数量)
[0026]FROM Companies c (从公司 C)[0027]ENRICH on CompanyFinancial (c.name)(丰富公司财务(名称 C))
[0028]第一行指定要检索的数据的列,其中名称和邮政编码可从企业的内部数据库获得,而行情和雇员数量可从一个(或多个)外部源获得。第二行指示要丰富的表格。第三行是数据丰富,其指定包括用于外部数据的组件的预先定义的实体“公司财务”,其中c.name参数指定为哪些公司返回外部数据,即那些在“公司C”表格中的公司。注意,用户可查看“公司财务”实体以确定所需的数据列(在此示例中行情和雇员数量)将通过指定这一实体来得到满足。
[0029]如果实体组件之一,诸如雇员数量,从一个数据源不可获得(或保持未知),则翻译机制可指令在另一个外部数据源上运行的连接软件执行不同的本地功能,以便于访问该未知的实体组件。因此,翻译机制取代对一个或多个单独数据提供方的需求来与每个类型的外部数据源通信。
[0030]由于外部数据源可利用唯一或专用的协议(例如,应用编程接口(API))来发送数据,因此翻译机制访问(例如,维持在目录中的)配置数据以配置与这样的协议兼容的功能调用或远程查询。功能调用或远程查询包括用于标识各种信息的一些信息(例如,财务信息)以用于丰富的准则。在翻译机制发起功能调用或查询之后,外部数据源返回匹配这样的准则的数据。由于数据是根据本地格式安排的,翻译机制将数据转换成兼容的表格数据。
[0031]例如,翻译机制可调用从股市数据库请求特定公司股价的功能。这样的调用包括特定公司名称(或标记)以及指示股价被请求的一些指示(例如,属性)。股价以本地格式被发送到翻译机制。翻译机制提取股价并将股价插入表格数据,形成经丰富的数据库查询响应的一部分。接着,表格数据可被用来填充企业数据的内部数据库的一个或多个列,包括私有数据。
[0032]如上所述,一些示例性参数可包括指定位置和/或时间值的上下文参数。翻译机制使用上下文参数来从外部数据源标识与该位置和/或时间值对应的数据。例如,翻译机制使用特定日期/时间作为本地功能调用参数,来选择在该特定日期/时间的股价。作为另一个示例,翻译机制发起另一个本地功能调用,用于计算跨一个时间间隔(例如,若干天)的平均股价。
[0033]在一替换示例性实现中,数据库查询包括用于用在特定地理位置处或在特定地理位置附近的各种新闻信息来丰富私有公司数据的参数,该特定地理位置可被表示为物理位置(例如,地理或大地坐标)或互联网资源位置(例如,互联网协议(IP)地址)。例如,翻译机制可发起对于特定全球定位系统(GPS)位置的一定范围内的公司相关新闻的本地功能调用。本地功能调用还可请求特定时间段的公司相关新闻,诸如历史新闻或当前新闻。
[0034]图1是示出用于使用来自外部数据源的数据来丰富数据库查询响应的示例性系统的框图。(例如,在许多服务器中的一个服务器上实现的)示例性系统可支持各种数据库服务。该示例性系统包括各种示例组件,诸如在此所描述的SQL引擎102、丰富服务器104和翻译机制106。丰富服务器104可以是包括丰富服务的一个或多个服务器。
[0035]SQL引擎102接收包括诸如实体标识符的各种参数(即,有时称为丰富参数)的数据库查询。丰富服务器104可访问实体数据108并验证查询中的每个组件可从内部数据109获得或通过与实体标识符匹配的实体来获得。对于实体的外部组件,丰富服务器104使用翻译机制106来访问一个或多个外部数据源IlO1-1lOn处的数据并为各种实体组件选择值。这些值可以以表格数据的形式存储在经丰富的数据库查询响应中,该响应通过丰富服务器104传送到SQL引擎102。在一个实现中,SQL引擎102被配置成用经丰富的数据库查询响应来填充内部数据库109的部分(例如,表格数据的一个或多个列)。
[0036]为便于知道如何与每个外部源通信,翻译机制访问目录112,目录112具有针对对应于视图组件的每个数据源而维护的信息。例如,目录112具有针对每个外部数据源IIO1-1 IOn的条目,每个条目定义用于向外部数据源传送数据的协议,包括本地功能调用、数据格式、记账过程、安全凭证等等。如可容易地理解的,作为目录的替代或附加,任何合适的机制可被用于确定这样的信息,包括在另一个数据存储中维持协议/相关数据,将协议/相关数据硬编码到翻译机制等等。
[0037]丰富服务器104和翻译机制106可在本地计算机/网络处存储并运行,以控制对本地和/或联网数据库的访问。可替换地,丰富服务器104和/或翻译机制106可被包括在云计算应用中,其中本地计算机主要用作用于共享远程服务器数据中心的计算资源的接口。当云计算应用将表格数据存储在内部数据库中时,该内部数据库并没有存储在例如本地计算机处。
[0038]根据一个示例性实现,丰富服务器104可利用策略114来将各实体组件的每一个映射到多个数据源IlO1-1lOn中的合适的外部数据源。例如,策略114可包括与选择合适的外部数据源相关联的偏好。作为更特定的示例,策略114可指示相比于商业/付费数据服务而言对免费数据服务的偏好,由此丰富服务器104仅在不存在免费选择时才选择商业/付费数据服务;也可以在策略中指定价格限制。作为另一个示例,策略114可向指定数据源分派高优先权。除非实体组件的值不能被检索或计算,否则丰富服务器104使用该特定数据源来访问用于丰富数据库查询响应的数据。
[0039]根据一个示例性实现,多个外部数据源IlO1-1lOn包括任何类型的远程或互联网数据服务(例如,数据馈送、报告、商业或免费数据库、搜索引擎等等),从该服务表格数据被检索且接着被用于生成经丰富的数据库查询响应。每个外部数据源IlO1-1lOn实现特定协议,该协议允许其它计算机系统访问该表格数据。特定协议可包括应用编程接口,其中调用特定功能检索表格数据的部分。由于特定功能对于特定协议而言是本地的,它们可以被称为本地功能。
[0040]本地功能的输入参数标识表格数据的要被返回的部分。例如,翻译机制106用输入参数调用功能,该输入参数指定公司名称和所请求的数据类型,诸如当前股价。外部数据源之一搜索提供股价的数据库并返回包括公司名称和当前股价的表格数据。作为另一个示例,翻译机制106可请求前一天(诸如昨天)的股价。除了公司名称,输入参数包括指定一天的参数。
[0041]图2是根据一个示例实现的用于使用来自外部数据源的数据来丰富数据库查询响应的步骤的流程图。图2中描绘的步骤在步骤202开始,并前进到步骤204,其时由SQL引擎104处理数据库查询。步骤204表示数据库查询内的丰富参数的识别和数据库查询向丰富服务器104的发送。
[0042]步骤206示出了从数据库查询中对丰富参数的提取,其包括实体标识符和一个或多个实体组件的一个或多个值。如在此所描述的,这些实体组件包括与丰富数据库查询相关联的数据类型。如也在此描述的,来自外部数据源的结果对应于一个或多个值。步骤208表示将实体组件映射到外部数据源。步骤208的一个示例性实现在图6中示出,其中策略确定使用哪个外部数据源来检索特定实体组件的数据。
[0043]步骤210实现翻译机制106,其产生对各种数据的本地请求并将该本地请求传送到外部数据源。本地请求根据用于连接到外部数据源、执行兼容命令和检索结果的协议来配置。在一个示例中,本地请求包括由外部数据源实现的本地功能调用。图3示出了步骤210的示例实现,其中使用目录来将数据库查询翻译为这样的请求实体组件的数据的本地功能调用。
[0044]步骤212涉及作为对本地请求的响应处理从外部数据源接收到的数据。在一个示例性实现中,翻译机制106将外部数据源提供的数据转换成被用于生成经丰富的数据库查询响应的表格数据。丰富服务器204将经丰富的数据库查询响应传送到SQL引擎102,该SQL引擎102返回经丰富的表格响应的视图和/或例如根据一模式将表格数据插入内部数据库的内部表格。内部表格可在时间安排的基础上或类似地,例如通过自动生成对外部数据的新查询并使用经丰富的数据响应中的数据插入经更新数据,来被自动刷新。
[0045]可任选地,丰富服务器204收集关于记账行为、数据源诊断等等的统计。这些统计可被用于各种目的,诸如审计记账花费、分析数据源并更新政策。例如,策略可包括对于特定数据源的使用限制。如果统计指示已达到使用限制,则可从策略选择另一个数据源。步骤214表示丰富数据库查询响应的终结。
[0046]图3是根据一个示例实现的用于使用目录来将对各种信息的请求发送到外部数据源的步骤的流程图。这些请求被配置为用于外部数据源的本地命令。丰富服务器104使用翻译机制来基于从SQL引擎102发送的数据库查询产生这些请求。图3描绘的步骤在步骤302开始,并前进到步骤304,其中丰富服务器104访问实现翻译机制106的目录。
[0047]步骤306表示检查与外部数据源相关联的目录条目。步骤308涉及标识用于与外部数据源进行通信的协议。目录条目定义用于与外部数据源进行通信的协议,包括本地功能调用、数据格式、记账过程、安全凭证等等。因此,这样的协议被翻译机制106用来发起对外部数据源的一个或多个本地功能调用。
[0048]步骤310涉及与外部数据源连接。目录条目内的协议还包括位置(诸如IP地址)以及对外部数据源的任何认证过程。例如,可能需要帐户用户名和密码来访问外部数据源。在建立会话(例如,HTTP或HTTPS会话)后,翻译机制106选择一个或多个特定数据库或表格并发起请求各种信息的调用,如步骤312所示。这些调用包括与外部数据源的API相关联的本地功能调用。步骤314涉及使用目录来将对各信息的请求传送到外部数据源的终结。
[0049]图4是根据一个示例实现的将数据从外部数据源转换到经丰富的数据库查询响应的步骤的流程图。图4中描绘的步骤从步骤402开始,并进行到步骤404,其时翻译机制106响应于对各种信息(诸如财务或新闻信息)的本地请求而从外部数据源接收数据。
[0050]步骤406涉及检查与从外部数据源接收到的数据相关联的格式(尽管该格式可从例如目录中的信息预先得知)。在一个示例性实现中,特定外部数据源以唯一的格式(诸如JavaScript对象符号JSON格式)返回值。翻译机制106将这些值转换成表格数据并准备经丰富的数据库查询响应,如步骤408所表示的。翻译机制106可对这些值执行附加处理,诸如将一段时间的股价进行合计并计算股价的平均或中值。
[0051]步骤410涉及返回经丰富的表格的视图和/或使用经丰富的数据库查询响应填充内部数据库。根据一个示例性实现,通过丰富服务器104,从由特定外部数据源返回的值创建的表格数据可被插入至内部数据库内的特定表格或一个或多个列。在一个示例中,表格数据与特定表格共享类似模式,从而将插入操作呈现为一系列复制数据操作。可替换地,特定表格是空白的或位于与内部数据库相关联的关系范式之外的临时表格。步骤412意味着经丰富的数据库查询响应的完成。
[0052]图5是根据一个示例实现的用于构建用于将数据库查询翻译成对外部数据源的本地请求的目录的步骤的流程图。目录形成翻译机制106的一部分。图5所示的步骤始于步骤502,并且前进到步骤504,其时翻译机制106生成空目录条目。
[0053]如以下进一步解释的,根据一个示例性实现,翻译机制106将各种信息存储在空目录条目中,诸如用于与外部数据源进行通信的协议。该协议定义用于请求信息的本地功能调用和用于组织所请求的信息的格式。在一个示例中,协议需要各种凭证,诸如用户名和密码。
[0054]步骤506涉及与外部数据源连接。例如,翻译机制106使用IP地址通过到外部数据源的接口(诸如应用编程接口 API)创建会话。翻译机制106前进到通过该接口与外部数据源进行通信,如由步骤508表示的。在一些实现中,翻译机制106使用该接口来枚举每个可用数据库并响应于在此描述的策略来选择合适的数据库。
[0055]步骤510涉及确定对于使用与外部数据源相关联的协议的需求。在一个示例性实现中,翻译机制106标识可由接口执行并被配置成返回各种信息的功能。这些功能对于外部数据源而言是本地的,并且允许对一个或多个可用数据库的访问。根据一个示例,翻译机制106还确定需要哪些凭证来搜索一个或多个可用数据库。在一个替换示例中,翻译机制还确定是否使用唯一或适当格式来与外部数据库交换数据。关于对使用协议的需求的任何信息被存储在空目录条目中,如步骤512所表示的。在完成时,目录条目被用来更新目录,由步骤514表示。
[0056]步骤516表示关于是否要用下一个外部数据源的另一个条目来进一步更新目录的判定。如果有更多的外部数据源要检查,则重复步骤504到514。如果在另一方面没有更多外部数据源要检查,则执行步骤516,期间目录的构建终结。目录可在任何合适的时间(例如在新数据源被添加或改变其协议的任何时候)被重建和/或更新。
[0057]图6是示出根据一个示例实现的用于将实体组件映射到外部数据源的步骤的流程图。每个实体组件包括一个数据类型,其一个或多个值丰富数据库查询响应。如本发明中提及的,数据库查询指定表示对数据类型的分组的实体。图6所示的步骤始于步骤602,并且前进到步骤604,其时翻译机制106检查实体组件。
[0058]步骤606涉及标识实体组件的匹配外部数据源。匹配外部数据源被配置成提供与实体组件相对应的信息。例如,匹配外部数据源提供具有与实体组件相同的数据类型的数据。由匹配外部数据源提供的数据可要求进一步处理。作为一个示例,这样的数据包括算法用作输入参数以便于计算存储在实体组件中的另一个值的多个值。
[0059]在标识匹配外部数据源之后,步骤608涉及访问用于选择合适的一个数据源来请求各种信息的策略,如在步骤610所表示的。在一个示例性实现中,策略包括基于各种因素(诸如记账需求、性能等)对特定外部数据源的偏好。在一个示例中,策略指示对于免费数据源的偏好。如此,仅匹配外部数据源的免费数据源是考虑选项。如果一个以上的匹配外部数据源是免费的,则它们中的任何一个可被选择。
[0060]步骤612表示关于将另一个实体组件映射到合适的外部数据源的判定。如果有更多的实体组件,则丰富服务器经由翻译机制106返回至步骤604,对于下一个实体组件重复每个步骤直到610。如果,在另一方面,没有更多实体组件,则实体组件的映射终结,如步骤614表不的。
[0061]图7提供了示例性的联网或分布式计算环境的示意图。该分布式计算环境包括计算对象710、712等以及计算对象或设备720、722、724、726、728等,这些计算对象或设备可包括如由示例应用730、732、734、736、738表示的程序、方法、数据存储、可编程逻辑等。可以理解,计算对象710、712等以及计算对象或设备720、722、724、726、728等可包括不同的设备,诸如个人数字助理(PDA)、音频/视频设备、移动电话、MP3播放器、个人计算机、膝上型计算机等。
[0062]每一个计算对象710、712等以及计算对象或设备720、722、724、726、728等可通过通信网络740直接或间接与一个或多个其他计算对象710、712等以及计算对象或设备720、722、724、726、728等进行通信。尽管在图7中被示为单个元件,但通信网络740可包括向图7的系统提供服务的其他计算对象和计算设备和/或可表示未示出的多个互连网络。每个计算对象710、712等或计算对象或设备720、722、724、726、728等还可以包含应用,诸如可以利用API或其他对象、软件、固件和/或硬件的、适于根据本发明的各实现所提供的应用实现与其进行通信的应用730、732、734、736、738。
[0063]存在支持分布式计算环境的各种系统、组件和网络配置。例如,计算系统可由有线或无线系统、本地网络或广泛分布的网络连接在一起。当前,许多网络被耦合至因特网,后者为广泛分布的计算提供了基础结构并包含许多不同的网络,但任何网络基础结构都可用于便于与如各实施例中所描述的系统的示例性通信。
[0064]由此,可使用诸如客户机/服务器、对等、或混合体系结构之类的网络拓扑结构和网络基础结构的主机。“客户机”是使用与它无关的另一类或组的服务的一个类或组中的成员。客户机可以是进程,例如,大致上是请求另一程序或进程所提供的服务的一组指令或任务。客户机进程利用所请求的服务,而不必“知道”有关其他程序或服务本身的任何工作细节。
[0065]在客户机/服务器体系结构中,尤其在联网系统中,客户机通常是访问另一计算机(例如,服务器)所提供的共享网络资源的计算机。在图7的图示中,作为非限制性示例,计算对象或设备720、722、724、726、728等可被认为是客户机而计算对象710、712等可被认为是服务器,其中计算对象710、712等担当提供数据服务的服务器,诸如从客户机计算对象或设备720、722、724、726、728等接收数据、存储数据、处理数据、向客户机计算对象或设备720、722、724、726、728等发送数据,但任何计算机都可取决于环境而被认为是客户机、服务器、或两者。
[0066]服务器通常是可通过诸如因特网或无线网络基础结构之类的远程网络或本地网络访问的远程计算机系统。客户机进程可在第一计算机系统中活动,而服务器进程可在第二计算机系统中活动,它们通过通信介质相互通信,由此提供分布式功能并允许多个客户机利用服务器的信息收集能力。
[0067]在其中通信网络740或总线例如是因特网的网络环境中,计算对象710、712等可以是其他计算对象或设备720、722、724、726、728等通过诸如超文本传输协议(HTTP)等多种已知协议中的任一种与其通信的web服务器。担当服务器的计算对象710、712等还可用作客户机,例如计算对象或设备720、722、724、726、728等,这是分布式计算环境的特性。
[0068]示例性计算设备
[0069]如上所述,有利地,本文所描述的技术可应用于任何设备。因此,应当理解,构想了结合各实施例使用的所有种类的手持式、便携式和其它计算设备和计算对象。因此,以下在图8中所述的通用远程计算机只是计算设备的一个示例。
[0070]各实施例可部分地经由操作系统来实现,以供设备或对象的服务开发者使用和/或被包括在用于执行此处所述的各实施例的一个或多个功能方面的应用软件内。软件可以在由诸如客户机工作站、服务器或其它设备等一个或多个计算机执行的诸如程序模块等计算机可执行指令的通用上下文中描述。本领域的技术人员可以理解,计算机系统具有可用于传递数据的各种配置和协议,并且由此没有特定配置或协议应当被认为是限制性的。
[0071]图8由此示出了其中可实现本文所述的各实施例的一个或多个方面的合适的计算系统环境800的一个示例,尽管如上所述,计算系统环境800仅为合适的计算环境的一个示例,并非对使用范围或功能提出任何限制。此外,也不应当将计算系统环境800解释为对在示例性计算系统环境800中所示的组件中的任何一个或其组合有任何依赖。
[0072]参考图8,用于实现一个或多个实施例的示例性远程设备包括计算机810形式的通用计算设备。计算机810的组件可包括,但不限于,处理单元820、系统存储器830、以及将包括系统存储器的各种系统组件耦合到处理单元820的系统总线822。
[0073]计算机810通常包括各种计算机可读介质,并且可以是可由计算机810访问的任何可用介质。系统存储器830可包括诸如只读存储器(ROM)和/或随机存取存储器(RAM)之类的易失性和/或非易失性存储器形式的计算机存储介质。作为示例而非限制,系统存储器830还可包括操作系统、应用程序、其他程序模块、以及程序数据。
[0074]用户可通过输入设备840向计算机810输入命令和信息。监视器或其他类型的显示设备也经由诸如输出接口 850之类的接口连接到系统总线822。除监视器以外,计算机还可包括诸如扬声器和打印机之类的其他外围输出设备,它们可通过输出接口 850连接。
[0075]计算机810可使用到一个或多个其他远程计算机(诸如远程计算机870)的逻辑连接在联网或分布式环境中操作。远程计算机870可以是个人计算机、服务器、路由器、网络PC、对等设备或其他常见网络节点、或者任何其他远程媒体消费或传输设备,并且可包括以上关于计算机810所述的任何或全部元件。图8所示的逻辑连接包括诸如局域网(LAN)或广域网(WAN)之类的网络872,但也可包括其他网络/总线。这些联网环境在家庭、办公室、企业范围的计算机网络、内联网和因特网中是常见的。
[0076]如上所述,尽管结合各种计算设备和网络体系结构描述了各示例性实施例,但基本概念可被应用于其中期望改进资源使用的效率的任何网络系统和任何计算设备或系统。
[0077]而且,存在实现相同或相似功能的多种方法,例如适当的AP1、工具箱、驱动程序代码、操作系统、控件、独立或可下载软件对象等,它们使得应用和服务能够使用此处提供的技术。由此,此处的实施例从API (或其他软件对象)的观点以及从实现如此处描述的一个或多个实施例的软件或硬件对象来构想。由此,此处所述的各实施例可具有完全采用硬件、部分采用硬件并且部分采用软件、以及采用软件的方面。[0078]本文中所使用的词语“示例性”意味着用作示例、实例、或说明。为避免疑惑,本文所公开的主题不限于这些示例。另外,在此所述的被描述为“示例性”的任意方面或设计并不一定要被解释为相比其它方面或设计更优选或有利。此外,在使用术语“包括”、“具有”、“包含”和其他类似词语的程度上,为避免疑惑,这些术语旨在当用于权利要求中时以类似于术语“包括”作为开放的过渡词的方式是包含性的而不排除任何附加或其他元素。
[0079]如所述的,此处所述的各种技术可结合硬件或软件或,在适当时,以两者的组合来实现。如此处所使用的,术语“组件”、“模块”、“系统”等同样旨在指计算机相关实体,或者是硬件、硬件和软件的组合、软件或者是执行中的软件。例如,组件可以是,但不限于是,在处理器上运行的进程、处理器、对象、可执行码、执行的线程、程序和/或计算机。作为说明,在计算机上运行的应用和计算机都可以是组件。一个或多个组件可以驻留在进程和/或执行的线程中,并且组件可以位于一个计算机内和/或分布在两个或更多计算机之间。
[0080]如前所述的系统已经参考若干组件之间的交互来描述。可以理解,这些系统和组件可包括组件或指定的子组件、某些指定的组件或子组件和/或附加的组件,并且根据上述内容的各种置换和组合。子组件还可作为通信地耦合到其他组件的组件来实现,而不是被包括在父组件内(层次性)。另外,应注意到一个或多个组件可被组合成提供聚集功能的单个组件中,或被分成若干单独的子组件,且诸如管理层等任何一个或多个中间层可被设置成通信耦合到这样的子组件以便提供集成功能。此处所述的任何组件也可与一个或多个此处未专门描述的但本领域技术人员一般已知的其他组件进行交互。
[0081]鉴于本文所述的示例性系统,可根据参考各附图的流程图还可理解根据所述的主题来实现方法。尽管为了说明简洁起见,作为一系列框示出和描述的方法,但是应当理解,各实施例不仅仅限于框的次序,因为一些框可以与此处所描绘和描述的框不同的次序发生和/或与其他框并发地发生。尽管经由流程图示出了非顺序或分支的流程,但可以理解,可实现达到相同或相似结果的各种其他分支、流程路径和框的次序。此外,某些示出的框在实现下文所述的方法中是可选的。
[0082]结语
[0083]尽管本发明易于作出各种修改和替换构造,但其某些说明性实施例在附图中示出并在上面被详细地描述。然而应当了解,这不旨在将本发明限于所公开的具体形式,而是相反地,旨在覆盖落入本发明的精神和范围之内的所有修改、替换构造和等效方案。
[0084]除此处所述的各实施例以外,应当理解,可使用其他相似实施例,或者可对所述实施例作出修改和添加以便执行对应实施例的相同或等效功能而不背离这些实施例。此外,多个处理芯片或多个设备可共享此处所述的一个或多个功能的性能,并且相似地,存储可跨多个设备实现。因此,本发明不应限于任何单个实施例,而是应当根据所附权利要求书的广度、精神和范围来解释。
【权利要求】
1.一种在计算环境中至少部分地在至少一个处理器上执行的方法,包括: 处理数据库查询,包括基于所述数据库查询将一个或多个本地请求传送到至少一个外部数据源,并基于由所述至少一个外部数据源响应于所述本地请求而生成经丰富的数据库查询响应。
2.如权利要求1所述的方法,其特征在于,传送所述本地请求还包括将所述数据库查询翻译成一个或多个本地请求,包括处理与所述数据库查询相关联的实体,并且对于每个实体组件,针对对应的外部数据源标识协议,并基于所述协议产生本地请求。
3.如权利要求1所述的方法,其特征在于,生成所述经丰富的数据库查询响应还包括,响应于所述本地请求,将由所述至少一个外部数据源提供的数据转换为经丰富的数据库查询响应,并返回对应于所述经丰富的数据库查询响应的视图,或用所述经丰富的数据库查询响应填充表格数据,或两者。
4.如权利要求1所述的方法,其特征在于,还包括,连接到外部数据源,标识用于与所述外部数据源进行通信的协议,并存储与利用所述协议来从所述外部数据源请求数据相关联的数据,包括,存储配置成在所述外部数据源处认证数据库查询的一个或多个凭证,或存储与被所述外部数据源使用的数据相关联的一个或多个格式,或存储配置成在所述外部数据源处认证数据库查询一个或多个凭证、存储与被所述外部数据源使用的数据相关联的一个或多个格式两者,并且将所述数据存储于被用来基于所述数据库查询产生对于所述外部数据源的本地请求的目录条目中。
5.一种在计算环境中的系统,包括: 丰富服务,被配置成从数据库查询中标识至少一个参数,所述丰富服务耦合到翻译机制,所述翻译机制被配置成产生对访问来自至少一个外部数据源的数据的一个或多个本地请求,其中所述本地请求包括对应于所述至少一个参数的数据,并且所述翻译机制还被配置来将所述一个或多个本地请求传送到所述至少一个外部数据源。
6.如权利要求5所述的系统,其特征在于,所述丰富服务还被配置成从所述一个或多个外部数据源接收数据,并将通过内部数据库操作检索到的数据与来自所述一个或多个外部数据源的数据进行组合。
7.如权利要求5所述的系统,其特征在于,还包括目录,所述目录被配置成存储与和所述至少一个外部数据源之一进行的通信相关联的协议相关数据,并且其中所述丰富服务访问所述目录以获得针对外部数据源的所述协议相关数据。
8.—个或多个具有计算机可执行指令的计算机可读介质,所述计算机可执行指令在被执行时执行以下步骤,包括: 从数据库查询提取一个或多个参数,包括实体标识符; 为对应于所述实体的实体组件标识外部数据源,其中所述实体组件从所述数据库查询已知; 与所述外部数据源进行通信以获得实体组件的数据;以及 向所述查询返回经丰富的数据库查询响应,所述经丰富的数据库查询响应数据包括与由针对所述实体组件的所述外部数据源所提供的数据相对应的数据。
9.如权利要求8所述的一个或多个计算机可读介质,其特征在于,具有包括执行下列各步骤的进一步的计算机可执行指令:将来自所述经丰富的数据库查询响应数据的至少一些数据插入到内部数据库表格中。
10.如权利要求9所述的一个或多个计算机可读介质,其特征在于,具有包括执行下列各步骤的进一步的计算机可执行指令: 在时间安排的基础上,用来自自动生成的经丰富的数据库查询的数据来自动刷新所述内部数据库表格。
【文档编号】G06F15/16GK103608810SQ201280029313
【公开日】2014年2月26日 申请日期:2012年6月5日 优先权日:2011年6月14日
【发明者】A·N·比切, D·鲁宾逊, H·斯瓦拉马克瑞希楠 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1