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

多个运行时容器共享的值解析制造技术

技术编号:7164869 阅读:247 留言:0更新日期:2012-04-11 18:40
策略和服务便于在可扩展应用程序环境中在合成容器之间共享值。值解析器服务从具有值解析策略的值解析器接收请求。该服务标识具有兼容策略的其它值解析器,根据所涉及的策略对它们进行查询,获得值,并且将它们提供给请求值解析器。值解析策略指定在值解析期间搜索组合容器的次序以及在组合容器之间共享值的可见性;策略可依赖于组合容器范围。如果值解析器不能提供值,那么值解析器服务调用故障处理器。

【技术实现步骤摘要】
【国外来华专利技术】多个运行时容器共享的值解析
技术介绍
软件应用程序的功能可由开发者通过代码扩展,该代码在软件运行前被定义为软件的一部分。例如,软件开发经常包括编写源代码,将源代码编译成可执行机器代码或虚拟机代码,以及将编译结果链接或者以其它方式绑定至先前创建的代码。这种扩展在编译时发生。一些体系结构允许应用程序的功能在终端用户运行该应用程序时扩展。例如,一些应用程序支持插件,这些插件是可由应用程序(或以其名义)在运行时加载的相对较小的应用程序专用软件。插件增强了应用程序,而不是独立运行。插件是可选的,因为即使没有插件应用程序也提供基本功能。插件是应用程序专用的,被设计和实现以与特定应用程序一起操作,并且有时甚至与该应用程序的特定版本一起操作。每个应用程序提供它自己的基础结构用于定位和使用它所支持的插件。托管(managed)可扩展性框架允许应用程序在支持不同应用程序间共享功能的基础结构中在运行时给予和接收软件功能以及应用程序专用扩展。这种应用程序被称为 “可扩展的”。托管可扩展性框架的基础结构提供使应用程序基于签名和/或与扩展和应用程序相关联的其它数据类型信息从而定位和加载可用扩展的机制。
技术实现思路
一些实施例在可扩展应用程序环境中提供用于在组合容器间共享值的策略和服务。每个组合容器具有相应的值解析器(value resolver)。值解析器服务从具有值解析策略的值解析器接收值解析请求,并且试图标识具有兼容的值解析策略的其它值解析器。值解析策略指定在值解析期间搜索组合容器的次序,以及在值解析期间在组合容器之间共享值的可见性;可见性和次序可各自依赖于组合容器范围。值解析器服务查询其值解析策略与请求值解析器的值解析策略兼容的值解析器。如果值解析请求寻找多个经解析的值,那么值解析器服务可提供它所接收的作为查询响应的多个经解析的值的聚集集合。如果值解析器不能提供值,那么值解析器服务可调用单次使用故障处理器(handler)。所给出的示例只是说明性的。本概述并不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于限定所要求保护的主题的范围。相反地,提供本
技术实现思路
是为了以简化的形式介绍将在以下详细描述中进一步描述的一些概念。利用权利要求书定义本专利技术,在本
技术实现思路
与权利要求书有冲突的情况下,应该以权利要求书为准。附图说明将参考附图给出更具体的描述。这些附图只示出了选定的方面,且因此不完全确定覆盖或范围。图1是示出在操作环境中具有处理器、存储器、具有相应的值解析器的至少两个组合容器、以及其它项的计算机系统并且还示出经配置的存储介质实施例的框图;图2是进一步示出值解析策略和其它值解析机制的框图3是示出一示例体系结构中的值解析的数据流程图;图4是示出标识符范围的图表;图5是进一步示出值解析上下文中的范围的图表;以及图6是示出一些方法的步骤和经配置的存储介质的实施例的流程图。详细描述概览可扩展应用程序环境可包括在彼此之间导入/导出值的组合容器。在一些可扩展应用程序环境中,导入/导出遵循严格的父-子模型,例如,子容器可从父容器导入,反之则不然,并且缺少公共祖先的容器不能共享值。微软提供被称为“MEF” ( “托管可扩展性框架”)的可扩展应用程序环境。MEF提供运行时可扩展性而不在应用程序上施加插件模型。MEF允许主应用程序展示它自己的扩展以及使用外部扩展。扩展可在不同应用程序间重用,并且还可被实现为应用程序专用的。 扩展可相互依赖;MEF基于类型以及其它约束自动连接扩展。MEF提供用于使应用程序定位和加载可用扩展的发现机制。MEF还支持用元数据标记扩展,这便于查询和过滤。MEF的核心构造包括目录和组合容器。目录负责发现扩展,而组合容器则协调项目创建和满足依赖性。在MEF中,可组合部件贡献一个或多个导出,并且还可依赖于一个或多个外部提供的服务或其它导入。可组合部件还管理实例,该实例可以是给定类型的对象实例。MEF是可扩展的;可提供附加的可组合部件实现,只要它们遵循指定的导入/导出契约。契约是导出和导入之间的桥梁。导出契约可包括可用于对导出发现进行过滤(例如通过指示由导出所提供的专用能力)的元数据。MEF支持父组合容器和子组合容器之间的有限共享。然而,共享仅仅是单向的,并且父/子关系被紧密地耦合,例如该关系需要在构造子容器时知晓。子容器仅可具有一个父容器,因而限制了可与它共享的组合的数量。此处描述的一些实施例提供用于使组合容器跨其它组合容器解析对值的请求的机制。一些实施例还提供用于将策略应用于约束跨系统内各个组合容器发生解析的方式的机制。在一些实施例中,单个集中式服务组织解析并实施策略。定制值解析器可由其范围、 解析偏好以及按照关联策略的可见性来标识。一些实施例支持动态共享,因为共享不需要先验地知道什么其它的组合容器存在。一些实施例提供解析故障处理能力以在值解析请求时创建值(例如,创建和填充组合容器)。现在将参考诸如附图中所示出的那些示例性实施例,并使用特定语言来对其进行描述。但是,精通相关技术的人员所能想到的对此处所示出的本专利技术的特点的更改和进一步的修改,如此处所示出的本专利技术的原理的其他的应用,都应该被视为在带有权利要求的本专利技术的范围内。在本专利技术中阐明了术语的含义,如此,应该在仔细关注这些阐明的情况下阅读权利要求书。给出了具体示例,但是,相关领域的技术人员将理解,其他示例也可以落在所使用的术语的含义范围内,并且在一个或多个权利要求的范围内。术语不一定具有与它们在一般用途中、在特定行业的用途、或在特定词典或词典集中拥有的相同含义。附图标记可以与各种措词一起使用,以帮助显示术语的广度。从给定文本片段中省略附图标记不一定意味着没有通过文本讨论附图的内容。专利技术人声称并行使其对于其自己的词典编纂的权利。这里在详细描述中和/或在申请文件的别处显式地或隐式地定义了术语。如本文所使用的,“计算机系统”可包括例如一个或多个服务器、主板、处理节点、 个人计算机(便携式或非便携式)、个人数字助理、蜂窝或移动电话、和/或提供至少部分地由指令控制的一个或多个处理器的其它设备。指令可以采取存储器中的软件和/或专门电路的形式。具体而言,虽然许多实施例在工作站或膝上型计算机上运行,但是其他实施例也可以在其他计算设备上运行,并且任何一个或多个这样的设备都可以是给定实施例的一部分。“多线程化”计算机系统是支持多个执行线程的计算机系统。术语线程应被理解为包括能够或经历同步的任何代码,并且可用另一名称来称呼,如“任务”、“进程”或“协同例程”。线程可以并行地、按顺序、或以并行执行(例如,多处理)和顺序执行(例如,时间分片)的组合运行。多线程环境是以各种配置设计的。执行线程可以并行地运行,或者线程可以被组织为并行执行,但是实际轮流按顺序执行。例如,多线程化可以通过在多处理环境中在不同的核上运行不同的线程、通过对单个处理器核上的不同线程进行时间分片、或者通过时间分片和多处理器线程化的某种组合来实现。线程上下文切换可以例如由内核的线程调度器、由用户空间信号、或由用户空间和内核操作的组合来发起。线程可以轮流对共享数据进行操作,或者例如每一线程都可以对其自己的数据进行操作。“逻辑处理器”或“处理器”是单个独立的硬件线程。例如,每一个核运行两个线程的超线程化四核芯片具有8个逻辑本文档来自技高网
...

【技术保护点】
1.一种在包含至少两个组合容器(120)的计算系统(102)中解析值的方法,其中每个组合容器具有相应的值解析器(122),所述方法包括以下步骤:值解析器服务(136)从第一组合容器的第一值解析器接收(604)值解析请求(128),所述第一值解析器具有指定以下各项中的至少一个的至少一个值解析策略(138):用于在值解析期间搜索组合容器的次序说明(202),用于在值解析期间在组合容器之间共享值的可见性说明(204);以及所述值解析器服务尝试(606)标识具有与所述第一值解析器的所述值解析策略兼容的值解析策略的第二组合容器的第二值解析器。

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:D·罗森
申请(专利权)人:微软公司
类型:发明
国别省市:US

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

1