基于条件的资源布置的制作方法

文档序号:6442999阅读:327来源:国知局
专利名称:基于条件的资源布置的制作方法
基于条件的资源布置相关申请的交叉引用
本申请涉及—提交的标题为“USER INTERFACE RESOURCE INDEX (用户接口资源索引)”的待决美国专利申请序列号—(代理人案号330747. 01)以及标题为“UNIFIED ACCESS TO RESOURCES (对于资源的统一访问)”的美国专利申请序列号—(代理人案号 330749. 01)。前面提到的申请被全文合并在此以作参考。
背景技术
在应用中采用资源包来提供对于在应用中所使用的数据的分发、更新和增强。所述数据可以包括字符串或者用在用户接口中的其他数据,但是还可以包括其他类型的应用数据。这样的数据可以包括具有预定用在特定情境中的变体的元素。举例来说,字符串资源可以具有不同语言中的变体;除了语言之外的资源变化的其他维度也是可能的。资源包可以聚集对应于一种或更多种特定变体的资源。例如在一个语言包中,处于en-US文件夹中的资源适用于说英语的用户。在许多实例中,只有应用资源的一个子集适用于给定用户。开发者没有用来分割应用资源以便限制为用户布置的资源并且在运行时间提供仅仅适用于该情境中的资源的统一视图的高效且自动的技术。

发明内容
下面给出简化的概要以便提供对于这里所描述的一些新颖实施例的基本理解。本概要不是详尽的总览,并且不意图标识出关键的/决定性的元素或者界定其范围。本概要的唯一目的是以简化形式给出一些概念,以作为后面给出的更加详细的描述的引子。所公开的体系结构促进了基于各项条件对应用资源的包分割以及基于各项条件的包适用性。在应用的建立时间,资源被索引到综合索引中并且在特定条件下被确定为适用(例如如果资源处于en-US文件夹中,则所述资源适用于说英语的用户)。所述条件随后与资源和/或针对资源的引用(对于未被包括在索引中的资源)一起也被包括在索引中。随后利用使得资源适用的条件来自动将资源分割到适当的包(例如语言包)中。如果资源的条件匹配包中的其他资源的条件,则将所述资源或者该资源的引用或索引放置到所述包中。如果不存在其资源具有类似条件的包,则创建新的包。每一个包随后在使得其中的资源适用的条件下变为适用,并且在消费者满足所述条件的情况下被布置给消费应用(例如英语应用将接收到英语字符串的英语包,而不是法语包)。在访问资源之前,针对已被布置在给定计算系统上的不同资源包中的资源的引用被合并,并且可以被用来对可用资源进行适当的查找。所述体系结构还可以考虑到架构验证和覆盖完整性。举例来说,在一项应用可能具有六项资源的情况下,这些资源当中的四项可以对于英语和法语本地化,并且剩余的两项资源可以只对于法语可用。如果分割是基于适用性,则结果可能是不完全覆盖所述资源架构的英语资源包。这在布置机制可以允许依赖性并且确保存在依赖性的包也被布置的情况下可能是令人满意的。但是替换地可能期望系统创建对于所述架构具有完全覆盖的英语资源包,其中利用法语资源作为回退变体以填补空隙。为了实现前述及有关目的,在这里结合下面的描述和附图描述了某些说明性方面。这些方面代表可以实践这里所公开的原理的各种方式,并且所有方面及其等效方案都应当落在所要求保护的主题内容的范围内。在结合附图考虑时,其他优点和新颖特征将从下面的详细描述变得显而易见。


图1示出了根据所公开的体系结构的资源管理系统。图2示出了资源管理系统的一个替换实施例。图3示出了根据所公开的体系结构的资源布置的一种更加详细的实现方式。图4示出了采用索引以及索引的用户来生成资源包的系统。图5示出了根据所公开的体系结构的资源管理方法。图6示出了图5的方法的其他方面。图7示出了根据所公开的体系结构执行资源管理的计算系统的方框图。
具体实施例方式现今的应用例如在用户接口(UI)资源方面面临挑战。其中的问题包括本地化、各种技术之间的行为一致性以及经过调整的资源包(例如语言包)的布置。在语言“包”的领域内,当前可用于开发者的UI资源技术最多只能识别一种用户优选的语言,即便如此,对于本地化资源的显示行为在各种技术之间也不是一致的。所公开的体系结构便于对资源创建并应用各项条件,其中的一些或全部资源将被利用来创建对应于一项应用的资源包。但是在确定资源的适用性时考虑所述条件。更具体来说,所述体系结构便于根据各项条件将应用资源分割成各个包以及基于各项条件的包适用性。一项条件是关于资源对给定包的适用性的限制。举例来说,在法语语言包中,一项条件可以是用在该包中的特定资源适用于法语语言。为了支持所公开的体系结构,将资源索引到所有可用资源的综合索引中。所述索引提供去到所有资源的单映射,其中所述资源可以具有不同格式。举例来说,一项资源可以是单个文件、或者是其本身包括多个文件(多项资源)的一个文件、一个文件夹、程序代码、 UI对象以及其他相对项目、可执行文件、文件或文件夹分层结构等等。索引条目包括可用资源、针对资源的引用、使得资源可被使用的条件、资源适用于其中的情境(例如150DPI的显示分辨率)等等。在应用的建立时间,基于各项条件对资源进行索引并且确定其适用。使得资源适用的(多项)条件随后被使用来将资源自动分割到适当的包中。每一个资源包随后在使得资源适用的各项条件下变为适用,并且在消费应用满足所述条件的情况下被布置给消费应用 (例如英语用户将接收到英语字符串的英语包,而不是法语包)。在访问资源(例如在运行时间)之前,针对资源的引用被合并,并且可以被用来对哪些资源可用进行适当的查找。举例来说,如果用户既说英语又说法语,则用户可以同时接收对应于英语和法语的资源包,在这种情况下就创建对于英语和法语资源的合并索引。
应当理解的是,可以在不同时间合并对于两个或更多资源包的索引,比如在布置服务器上的布置时间,在客户端系统上的安装时间,在应用启动时,在应用运行时间等等。 关于运行时间,潜在地可以在运行时间将附加的资源包带到范围内(例如加载应用框架,并且随后在此时将各项框架资源的索引合并到应用资源索引中)。现在参照附图,其中相同的附图标记始终被用来指代相同的元件。在下面的描述中,出于解释的目的,阐述了许多具体细节以便提供对于本发明的透彻理解。但是可以明显看到,可以在没有这些具体细节的情况下实践各个新颖实施例。在其他实例中,以方框图的形式示出了公知的结构和设备以便于对其进行描述。其意图是涵盖落在所要求保护的主题内容的精神和范围内的所有修改、等效方案和替换方案。图1示出了根据所公开的体系结构的资源管理系统100。系统100包括条件组件 102,其便于创建使得资源106适用于建立应用108的条件104。条件104定义对应于应用 108的相关联的资源的适用性信息。分割组件110基于相关联的条件104将资源106自动分割成各个资源包(例如资源包112)以便由应用108使用。举例来说,资源包可以是语言包(例如英语或法语)。另一种类型的资源包可以便于诸如智能电话之类的手持式设备上的为此类设备提供屏幕分辨率的操作,以及用以提供最优用户体验的其他应用设定。资源具有其所适用的不同情境维度(例如语言、DPI、年龄、外型等等)。相应地,可以在多个维度上做出决定。如果资源的条件匹配资源包中的另一项资源的条件,则将所述资源或者对于该资源的引用存储在所述资源包中。在应用运行时间访问资源之前,对于资源包中的各项资源的引用被合并,并且使用合并的引用来查找可用资源。当不存在具有匹配资源包中的其他资源的条件的资源时,创建新的资源包。资源包在使得相关联的资源适用的条件下适用,并且在应用满足所述条件的情况下被布置给应用。图2示出了资源管理系统200的一个替换实施例。系统200包括图1的系统100 的各个组件和实体。此外,系统200可以包括索引组件202、条件应用器组件204和情境组件206。索引组件202创建索引208,其枚举资源106、对于资源的引用210、与资源106和引用210相关联的条件104以及元数据212。元数据212对应于资源,并且允许检测资源中的改变、对资源施行约束、施行许可以及施行认证。条件应用器组件204识别来自资源元数据和/或来源的令牌以便找到满足对应于应用108的资源包(例如资源包112)的特定适用性信息的资源。举例来说,应用器组件 204可以对文件系统路径名进行解析,以便在其中包含图像数据的文件的文件名内或者在存储该文件的文件夹名中识别出具有“dpil44”形式的令牌。应用器组件204还可以识别定义/配置在系统中的将被视为语义上等效的其他令牌(例如“缩放1. ”)。应用器组件 204识别这样的令牌、解释令牌语义并且与索引组件202进行交互,以便将该适用性一条件信息包括在对应于资源的索引条目中。情境组件206确定当前运行时间情境的属性并且把所述属性与适用性信息进行比较,以便找到对应于资源包(例如资源包112)的相关联的条件106。在运行时间,情境组件206确定当前运行时间情境的属性(例如读取系统中的可用显示器信息以便确定所述显示器正操作在150DPI下)。情境组件206随后针对关于资源表达的适用性条件来评估运行时间属性,从而确定针对144DPI的资源是将在涉及150DPI设备的当前运行时间情境中使
5用的最适当的资源。存在开发者可以关于资源(通过某种措施)声明的适用性条件。随后将所述适用性条件与运行时间情境相匹配。举例来说,开发者可以(通过某种公知措施)将图像标记(或加标签)为适用于特定尺寸的显示器(例如144DPI —点每英寸)。在运行时间,客户端系统的某一部件可以表明运行时间情境例如是150DPI。条件104是从应用来源元数据推断出的或者是在应用来源中明确地声明的,并且在建立时间被记录。资源包112和其他资源包在建立时间被创建。资源包112是基于条件 104的适用性。基于给定资源包的条件对于目标系统(例如移动电话)和(多个)用户的适用性而将各个资源包布置到计算系统。可以将多个资源包布置到给定系统,在这种情况下,在应用运行时间访问资源之前将对于这些包中的资源的引用合并,并且使用合并的引用来查找可用资源。资源106可以包括图像、字符串、控制、消息、嵌入式XML (可扩展标记语言)等等, 其例如被利用在用户接口(UI)中以便告知UI如何操作。此外,一些资源根据语言而不同, 其他资源则不随语言变化。此外,一些资源可能根据除语言之外的其他维度的因素而不同, 其中包括(但不限于)目标设备外型(例如智能电话)、显示器像素密度(DPI—点每英寸)、年龄、用户可访问性要求(例如高对比度图形模式)以及用户地区或市场分块。相应地,可以在多个维度上执行决定。在应用108的建立时间,(可用)资源106被索引并且被确定为在特定条件104下适用(例如如果某一项资源处于en-US文件夹中,则所述资源适用于说英语的用户)。使得资源适用的(多项)条件随后被用来将所述资源自动分割成适当的包。如果一项资源具有与包112中的其他资源的条件相匹配的一项或更多项条件,则将所述资源以及对于该资源的引用(或索引)放置到包112中。如果不存在其资源具有类似条件的包,则创建新的包。每一个包112随后在使得其中的资源适用的条件下变为适用。随后在用户满足所述条件的情况下将资源包布置到所述用户(消费应用)(例如英语用户将接收到英语字符串的英语包而不是法语包)。在应用运行时间访问资源之前,对于所述资源的引用的索引被合并,并且可以被用来针对哪些资源可用进行适当的查找。换句话说,通过创建完全描述资源106以及使得资源106适用的条件104的集合的索引208,通常与应用资源相关联的问题得以解决。索引208提供单个处所来描述资源 106、条件106、资源引用210以及资源元数据212,以供在运行时间进行查找。由于该信息在运行时间位于一处,因此对索引208中进行查找以便确定可用资源,而不需要搜索诸如盘、 文件系统之类的大容量存储设备并且不需要在各个包中进行搜索。在索引创建时间,通过在索引208中查看对应于资源106的索引条目来对所述资源进行分割。可以把在特定条件下适用的资源分割到不同索引中。通过对资源或资源引用进行分割允许用户只接收并存储对用户适用的资源。此外,通过把资源和使得资源适用的条件与对应于特定索引的条件集合相匹配而使得所述处理自动化。在运行时间执行对索引的查找,并且按照明确定义的方式决定将要使用的适当资源。资源具有其所适用的不同情境维度(例如语言、DPI、年龄、外型等等)。相应地,可以在多个维度上执行决定。该决定还允许当具有最优条件的特定资源不可用时进行适当的多维度回退。此外,索引还允许存储对应于每一项资源的元数据,其实现了检测对于资源的改变、关于改变资源施行约束、施行许可、认证、对于第三方存储描述/意见等等的能力。图3示出了根据所公开的体系结构的资源布置的一种更加详细的实现方式。在这里,资源管理系统300创建索引208,其在该例中被特别描绘为包括索引条目302。条目302 包括资源信息(例如资源》、适用于资源的条件(例如条件》以及资源引用(资源引用3)。资源106包括对应于应用108的可用资源。条件组件102促进(从在开发情境中所隐含或明确的信息)生成条件104,在条件104下可用资源106当中的一项资源适于自动将所述资源分割成资源包112,并且自动将索引分割成分别对应于特定资源包112的分立索引。换句话说,提供一种计算机实施的资源管理系统,其包括条件组件,其便于创建使得资源适用于建立应用的条件,所述条件定义对应于应用的相关联资源的适用性信息; 索引组件,其创建枚举资源、对于资源的引用以及与资源和引用相关联的条件的索引;条件应用器组件,其识别来自资源元数据和/或来源的令牌以便找到满足对应于应用的资源包的特定适用性信息的资源;以及分割组件,其基于相关联的条件和索引分割将资源自动分割成资源包以便由应用来使用。所述系统还可以包括情境组件,其确定当前运行时间情境的属性并且把所述属性与适用性信息进行比较,以便找到对应于资源包的相关联的条件。资源包存储资源和对于资源的引用,如果所述资源具有与包中的另一项资源的条件相匹配的条件,则在应用运行时间访问所述资源之前合并对于包中的各项资源的引用,并且使用合并的引用来查找可用资源。当不存在其条件与包中的其他资源相匹配的资源时,创建新的资源包。资源包是基于条件而被布置的。在创建索引208时,还可以对于各个应用方面的给定版本创建资源架构。随后根据所述架构生成索引。这样就提供了资源版本化语义,其表明什么兼容以及什么不兼容。图4示出了基于相关联的条件采用索引208和索引208的用户402来生成资源包 112的系统400。在这里对各项资源进行索引,并且对于每一项资源应用一项或更多项条件以便确定所述资源何时适用。举例来说,资源包括具有相关联的条件(条件1和条件2)的第一资源(资源1)、具有相关联的条件(条件1和条件3)的第二资源(资源2)以及针对资源 404的资源指针(资源指针3)。如果资源具有与包中的其他资源的条件相匹配的条件,则将所述资源以及该资源的指针或条目放置到索引208中。如果不存在其资源具有类似条件的包,则创建新的包。第一用户(用户1)向索引208发送资源请求,所述资源请求是针对具有条件(条件 1和条件2)的标签为A的资源。作为响应,索引208返回第一资源,这是因为只有第一资源的条件与请求中的条件相匹配。类似地,第二用户(用户2)向索引208发送资源请求,所述资源请求是针对具有条件(条件1、条件2和条件4)的标签为A的资源。作为响应,索引 208返回第二资源,这是因为只有第二资源的条件与请求中的条件相匹配。在全部两种情况下,随后可以作为资源包112的一部分来传递第一和第二资源。下面是对于一则示例性实例化的更加详细的描述,其对于一项处理(例如应用)的异类资源采用索引。所述体系结构可以采用索引器基类(IBC)来支持创建各项资源(例如资源106)的资源索引。具体来说,IBC提供同时可用于开发者环境和目标客户端机器布置及资源运行时间特定于格式的索引和声明性配置规则来与资源分层结构进行交互。IBC便于(通过特定于格式的索引器)向索引器工具返回资源(例如资源106)的资源分层结构,所述索引器工具通过索引组件提供索引能力以便输出资源索引。在一种实现方式中,IBC独立于索引组件。可替换地,索引组件可以包括IBC以及/或者特定于格式的索引器的聚集。此外,在一个替换实施例中,写入索引的系统基类可以与索引组件进行交互 (也就是说,系统基类与IBC进行交互,并且IBC是索引组件的一个组件)。IBC还可以与系统基类进行交互。系统基类包括用于合并、转储的功能、读取器基类和生成器基类以便与资源索引进行交互。(应当提到的是,在这里的一些地方提到“索引文件”时,应当理解的是不要求(多个)索引作为一个独立文件而驻留。)此外还应当理解的是,这仅仅是一种可能的实例化,并且可以采用其他实例化。举例来说,为了建立跨越资源的不同类型和格式的索引以及获取索引,可以采用写入和读取索引的功能,但是不采用合并索引或转储索引数据的功能。合并器允许把从几个特定于格式的索引器输出到该合并器的资源索引与所述索引合并。转储器工具允许第三方开发者分析置于索引中的资源和相关联的所应用的条件。 最终的输出是所述索引。作为基类设计的一部分,还提供对应于索引内容以及创建特定于格式的索引器扩展的配置规则。所述配置规则可以是用XML (可扩展标记语言)写成的以便指明资源/资源类型与各个维度或者某一维度中的特定数值之间的关系。举例来说,以语言名称命名的目录中的文件可以被用来满足针对这些特定语言的资源请求。在这种情况下,所述维度是语言,资源是文件,并且与该维度中的数值的关系可以是基于包含所述文件的目录名。应当理解的是,这仅仅是一种可能的可选实例化。特定于格式的索引器被索引器基类调用以便打开并识别资源分层结构中的各个节点的内容。继续前面的实例,提供用于目录和文件的索引器工具。这样的索引器向基类报告目录的内容并且识别对应于每一项的属性。这一特征还提供了由特定于格式的索引器使用来关于在某一维度中指定特定数值做出决定的某种共用功能。该共用功能是利用某种共用规则建立的,其随后被利用在各个特定于格式的索引器上。IBC提供用以创建资源索引的基本功能单元,这是通过基于配置规则和所提供的特定于格式的索引器分析资源分层结构而实现的,或者是通过合并现有索引的聚集而实现的。IBC允许创建提供元数据的资源索引,所述元数据描述资源和资源位置,以便允许在运行时间识别对于给定情境最为适当的资源。所述体系结构是可扩展的,从而允许各个单独的特定于格式的索引器与IBC集成,并且以更高的灵活性和更低的成本实现对于附加资源格式或资源容器格式的实现方式支持。各个单独的特定于格式的索引器的开发者能够利用用于确定维度数值的共用功能, 从而允许把焦点导向包含资源的特定格式。IBC从资源分层结构集合建立索引集合。IBC利用系统基类来实际建立包资源索引文件,并且利用特定于格式的索引器来遍历资源106。IBC编制处理并且遵循特定逻辑来建立正确的索引集合。IBC还提供用于在从资源的元数据确定适用条件时由特定于格式的索引器进行查询的统一机制。
在为一项处理(例如消费应用)创建一个或更多包方面,应当提到的是,这仅仅是一个示例性实施例。举例来说,如果提供了支持不同类型和格式的资源的单个系统,则对于条件的管理和相关联的组件(比如条件应用器)是可选的。但是应当理解的是,所述处理或 (多项)消费应用可以是用于任何适当目的。此外,可以应用限制针对给定目的的资源利用的条件。下面是对应于IBC的一个示例性类定义集合 条件应用器
=Γ·: EU1— ‘ C € [ :i t: i .3 η Ap ρ 一 ia t ::; r [ XKLS-ioae 1%!·/ ; r otiment Vi/;;dL· ι LonSetPooi
i ! ; ::J e χ P 2 H C :· η ι !,
^r.v ; ! '."Imiii
ζ.:·-.>::;.!i i ..,‘;i:.;fe I F.:—>..—2::
HRESUl
H r·
".Jl t οιΓ :1:.!-Lt
J it. i -./Π
rt.I
项目实例条目
项目实例汇点
....t r
δ·00
f: I
:\-til ]%-:,if. Cr
:a: err
Γ『u:1 ne
:-...1 rii 11 --n Jet P-:
....· i r1 v.《二. i ·:、T"t
:.,..:;ti'iktx
:ri.ie>
.η π
IKE; J.^II
r:: I
Entr :
LTi'
索引传递
Krν s
CnuJ itl :;!i,Tti
ι —
..-_·: i .- . " J ■*· ‘‘ r. I
^n-V ι :、,f!dr:.t 丨
I I.-!K.; 1::1
:F.
:.3 (''." t i、;;::.,t '-r
?Ξ w. rJ LT r rL" t- ζ w I
:t e it. 二 r ι γ t a r ι. .二 θ :... ι ri k ι γ ..: ν γ ;; .η .:
:t.Ii.: r t: :-&i.丨 i!.ι}.: ι η :iH- ^ i γ h
资源索引器
权利要求
1.一种计算机实施的资源管理系统(100),其包括条件组件(102),其便于创建使得资源适用于建立应用的条件,所述条件定义对应于所述应用的相关联资源的适用性信息;分割组件(110),其基于相关联的条件将资源自动分割成资源包以便由应用来使用;以及处理器,其执行与至少所述条件组件和分割组件相关联的计算机可执行指令。
2.权利要求1的系统,其还包括索引组件,所述索引组件创建枚举资源、对于资源的引用以及与资源和引用相关联的条件的索引,所述索引存储对应于资源的元数据,以便允许检测资源中的改变、对资源施行约束、施行许可以及施行认证。
3.权利要求1的系统,其还包括条件应用器组件,其识别来自资源元数据和/或来源的令牌以便找到满足对应于所述应用的资源包的特定适用性信息的资源;以及情境组件, 其确定当前运行时间情境的属性并且把所述属性与所述适用性信息进行比较,以便找到对应于资源包的相关联的条件。
4.权利要求1的系统,其中,如果资源具有与资源包中的另一项资源的条件相匹配的条件,则将所述资源和对于所述资源的引用存储在所述资源包中,所述资源包在使得相关联的资源适用的条件下适用,并且在所述应用满足所述条件的情况下被布置到所述应用。
5.权利要求1的系统,其中,在应用运行时间访问资源之前合并对于资源包中的所述资源的引用,并且使用合并的引用来查找可用资源,当不存在其条件与资源包中的其他资源相匹配的资源时,创建新的资源包。
6.一种计算机实施的资源管理方法,其包括以下步骤在建立时间创建适用于建立应用的资源索引(500);生成使得资源适用于创建对应于所述应用的资源包的条件(502);基于所述条件将所述资源分割成资源包(504)以及;利用执行存储在存储器中的指令的处理器来执行所述创建、生成和分割步骤。
7.权利要求6的方法,其还包括基于所述条件将资源包布置到应用。
8.权利要求6的方法,其还包括基于运行时间情境的属性和与资源的适用性条件的属性关系,在运行时间访问所述索引以便查找并确定对应于所述应用的可用资源;以及基于所述索引的索引条目对资源进行分割。
9.权利要求6的方法,其还包括识别来自资源元数据和/或来源的令牌,以便找到满足资源包的特定适用性条件的资源。
10.权利要求6的方法,其还包括确定当前运行时间情境的属性并且把所述属性与适用性条件进行比较,以便找到对应于资源包的相关联的条件。
全文摘要
本发明涉及便于根据条件对应用资源进行包分割以及基于条件的包适用性的体系结构。创建索引以用于对可用资源进行统一查找。在应用的建立时间,基于条件对资源进行索引并且将其确定为适用。使得资源适用的条件随后被用来将所述资源自动分割成适当的包。每一个资源包随后在使得其中的资源适用的条件下变为适用,并且在用户满足条件的情况下被布置到用户(例如英语用户将接收到英语字符串的英语包而不是法语包)。在运行应用之前,对于资源的引用被合并,并且可以被用来对哪些资源可用进行适当的查找。
文档编号G06F17/30GK102541638SQ20111043757
公开日2012年7月4日 申请日期2011年12月23日 优先权日2010年12月23日
发明者D.迟, E.福琼, P.G.康斯泰布尔, R.豪金斯, S.崔 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1