当前位置: 首页 > 专利查询>微软公司专利>正文

以多维数据为中心的服务协议制造技术

技术编号:7589669 阅读:189 留言:0更新日期:2012-07-21 00:26
描述了以多维数据为中心的服务协议。通过查询表达式的中间表示方式来促进数据获得。可生成中间表示,并且该中间表示随后被传输到关于查询执行的多个执行环境并被该多个执行环境使用。更具体的,中间表示可被转换为可本地执行的查询表达式。另外,数个因素可塑造经创建和被传输的中间表示。

【技术实现步骤摘要】

本申请涉及以多维数据为中心的服务协议
技术介绍
数据处理是计算机编程的基本部分。可从各种编程语言中选择创建程序的编程语言。用于特定的应用的所选语言可取决于应用上下文、开发者的偏好、或公司策略,以及其他因素。无论所选语言如何,开发者最终将必须处理数据,即查询和更新数据。已开发称为语言集成查询(LINQ)的技术以促进来自编程语言内部的数据交换。 LINQ提供方便且声明性简写查询句法以在编程语言(例如,C# 、Visual Basic ...)内部允许对查询的指定。具体而言,提供映射到低级语言构造或原语(诸如方法和拉姆达表达式)的查询运算符。提供用于各种运算(例如,过滤、投影、链接、分组、排序……)族的查询运算符,并且查询运算符可包括但不限于映射到实现这些名称所表示的运算符的方法的 “where”和“select”运算符。作为不例,用户可以以诸如“from n in numbers where n < IOselect n”的形式指定查询表达式,其中“numbers”是数据源并且该查询从数据源返回小于10的整数。此外,可以以各种方式组合查询运算符以生成任意复杂度的查询。可以存在对于查询处理的客户机-服务器关系,其中客户机生成查询而服务器执行该查询。此外,可在客户机和服务器的执行环境之间存在差异,通常称为阻抗失配。该阻抗失配可通过将查询的客户机表示直接转换成目标-服务器可理解的形式来被桥接。例如,通用编程语言(例如,C# ,Visual Basic ,Java......)内集成的查询表达式可被翻译为诸如T-SQL(例如,事务-结构化查询语言)之类的域专用编程语言,以使得可相对于关系数据库系统来执行。这可通过利用查询源和执行目标的密切知识在该源和该目标之间映射来实现。
技术实现思路
下面呈现了简化的
技术实现思路
,以便提供对所公开主题的某些方面的基本概念。本
技术实现思路
不是广泛性的概观。它并不旨在标识关键/重要元素,也不旨在划定所要求保护主题的范围。其唯一目的是以简化形式呈现一些概念,作为稍后呈现的更具体实施例的序简言之,本专利技术一般涉及以多维数据为中心的服务协议。可生成独立于查询-表达式生成和执行环境的查询表达式的中间表示。换言之,中间表示在无需域专用知识的情况下被生成。该中间表示随后可被提供到查询执行服务,该查询执行服务可将该中间表示转换成可本地执行的表示。随后,查询表达式可被执行并且返回结果。因此,中间表示为跨多个不同的执行环境的查询表达式的交换提供了统一的手段。此外,可使用关于中间表示的多个特征。例如,中间表示的至少一部分可根据特定执行上下文(例如,自动地键入的)而被丢弃。此外,可结合中间表达式传送客户机上下文信息以使得能够基于此做出关于查询执行的决定。此外,可利用各种压缩技术来在传送之前减少查询表达式和/或其表示的总体大小。为实现上述及相关目的,在此结合以下描述和附图描述了所要求保护主题的某些说明性方面。这些方面指示可实践本主题的各种方式,它们均落在所要求保护主题的范围之内。当结合附图阅读以下详细描述时,本专利技术的其他优点和新颖特征将变得显而易见。附图说明图I是数据获得系统的框图。图2是代表性通信组件的框图。图3是便于数据获得的系统的框图。图4示出了以数据为中心的协议的具体示例。图5是数据获得的方法的流程图。图6是提供数据的方法的流程图。图7是提供以数据为中心的服务的方法的流程图。图8是示出用于本专利技术各方面的合适操作环境的示意性框图。具体实施方式以下的详细内容一般涉及以多维数据为中心的服务协议。各种服务可用于处理对数据的请求。例如,多个服务器可被连接于网络的客户机访问来执行查询表达式,或更简而言之,查询。查询表达式的中间表示可被生成以供相对于多个执行环境使用,而非将查询表达式直接从源格式翻译成目标格式。随后,该中间表示可被传送到查询执行环境,该查询执行环境可将该中间表示转换成可本地执行的形式。通过这种方式,不需要知道有关执行环境的复杂的细节,这可允许查询实质上在任何执行上下文中执行。此外,中间表示可从关于查询执行器的改变(例如,数据源方案改变)中隔离查询表达式生成器。另外,数个因素也可塑造经创建和被传送的中间表示。例如,在中间表示的一些部分不被执行环境支持的情况下,这些部分可在传送之前被移除。此外,客户机上下文信息可被添加到中间表示以使得执行环境能够以各种方式使用这样的数据。此外,查询表达式的至少一些部分可被压缩以促进传输。换言之,协议可以是多维的。现在参考附图更详细地描述本公开的各个方面,在全部附图中用相似的标记来指示相似或相应的元素。然而应该理解,附图及其相关详细描述不旨在将所要求保护的主题限于所公开的具体形式。相反,其意图是覆盖落在所要求保护主题的精神和范围之内的所有修改、等价物和替换的方案。最初参考图1,示出了数据获得系统100,该数据获得系统100包括查询生成组件 110、表示生成组件120、通信组件130以及多个查询执行组件140 (1-M,其中M是正整数)。 查询生成组件110和表示生成组件120可形成客户机查询-生成环境的一部分,而查询执行组件140可形成服务器查询-执行环境的一部分,其中环境指其中可发生生成或执行的底层平台或上下文(例如,硬件/软件)。通信组件130使得能够在客户机查询-生成环境和服务器-执行环境之间进行通信。查询生成组件110产生查询表达式(例如,一个或多个值和/或运算符的组合) 的本地表示。例如并且虽然并不限于此,查询表达式可对应于所指定的关于查询运算符的组合的语言集成查询(LINQ或LINQ查询),并且所生成的本地表示可以是表达式树。此外, 查询表达式可任选地被分割成两个或更多个查询表达式,以使得能够实现分布式的查询执行。然而,为清楚且简单起见,本说明书针对单个查询表达式,其可以是被指定为用于分布式执行的多个子-查询表达式中的一个。表示生成组件120接收、检索或以其他方式获取或获得指定关于一个或多个数据源的查询的查询表达式,并产生该查询表达式的中间表示,该中间表示是独立于查询-表达式生成和执行环境的(例如,无需域专用知识)。然而,中间表示捕捉由一个或多个查询运算符的排序(例如,通过类型信息、方法调用......)所暗示的查询表达式的语义(例如,含义)。例如,如果查询表达式的客户机表示是表达式树,那么表示生成组件120可迭代通过树的各节点并生成不依赖于特定执行上下文(例如,硬件或软件)的等同代码。在一特定的实例中,类型信息可在不同的粒度级被生成,这是因为信息可被确定或推断并且可被重构。换言之,中间表示是客户机查询-生成环境和服务器查询-执行环境之间独立于域的知识交换的手段。此外,表示生成组件120可包括中间表示内的元数据,诸如稍后在此描述的客户机上下文信息。通信组件130提供了一种用于促进中间表示到一个或多个查询执行组件140的通信的方式。如将稍后在此描述,通信组件130可使得能够在客户机查询-生成环境和服务器查询-执行环境之间实现关于中间表示的特定协议的协商。查询执行组件140可包括与查询表达式被构造于其中的执行上下文不同的执行上下文(例如,支持的硬件/软件)。例如,查询表达式可用第一编程语言来构造,而查询执行组件140支持第二编程语言。此外,执行上下文本文档来自技高网
...

【技术保护点】

【技术特征摘要】
...

【专利技术属性】
技术研发人员:B·德斯梅特H·J·M·梅杰
申请(专利权)人:微软公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术