CN102541638B - 资源管理系统和方法 - Google Patents
资源管理系统和方法 Download PDFInfo
- Publication number
- CN102541638B CN102541638B CN201110437575.6A CN201110437575A CN102541638B CN 102541638 B CN102541638 B CN 102541638B CN 201110437575 A CN201110437575 A CN 201110437575A CN 102541638 B CN102541638 B CN 102541638B
- Authority
- CN
- China
- Prior art keywords
- resource
- index
- condition
- bag
- application
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/80—Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
- G06F16/81—Indexing, e.g. XML tags; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44536—Selecting among different versions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及便于根据条件对应用资源进行包分割以及基于条件的包适用性的体系结构。创建索引以用于对可用资源进行统一查找。在应用的建立时间,基于条件对资源进行索引并且将其确定为适用。使得资源适用的条件随后被用来将所述资源自动分割成适当的包。每一个资源包随后在使得其中的资源适用的条件下变为适用,并且在用户满足条件的情况下被布置到用户(例如英语用户将接收到英语字符串的英语包而不是法语包)。在运行应用之前,对于资源的引用被合并,并且可以被用来对哪些资源可用进行适当的查找。
Description
相关申请的交叉引用
本申请涉及___提交的标题为“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可以对文件系统路径名进行解析,以便在其中包含图像数据的文件的文件名内或者在存储该文件的文件夹名中识别出具有“dpi144”形式的令牌。应用器组件204还可以识别定义/配置在系统中的将被视为语义上等效的其他令牌(例如“缩放1.5x”)。应用器组件204识别这样的令牌、解释令牌语义并且与索引组件202进行交互,以便将该适用性-条件信息包括在对应于资源的索引条目中。
情境组件206确定当前运行时间情境的属性并且把所述属性与适用性信息进行比较,以便找到对应于资源包(例如资源包112)的相关联的条件106。在运行时间,情境组件206确定当前运行时间情境的属性(例如读取系统中的可用显示器信息以便确定所述显示器正操作在150DPI下)。情境组件206随后针对关于资源表达的适用性条件来评估运行时间属性,从而确定针对144DPI的资源是将在涉及150DPI设备的当前运行时间情境中使用的最适当的资源。
存在开发者可以关于资源(通过某种措施)声明的适用性条件。随后将所述适用性条件与运行时间情境相匹配。举例来说,开发者可以(通过某种公知措施)将图像标记(或加标签)为适用于特定尺寸的显示器(例如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包括资源信息(例如资源1)、适用于资源的条件(例如条件1)以及资源引用(资源引用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提供同时可用于开发者环境和目标客户端机器布置及资源运行时间的公共内部API。IBC便于创建资源索引以及管理资源索引。IBC可以利用特定于格式的索引和声明性配置规则来与资源分层结构进行交互。
IBC便于(通过特定于格式的索引器)向索引器工具返回资源(例如资源106)的资源分层结构,所述索引器工具通过索引组件提供索引能力以便输出资源索引。在一种实现方式中,IBC独立于索引组件。可替换地,索引组件可以包括IBC以及/或者特定于格式的索引器的聚集。此外,在一个替换实施例中,写入索引的系统基类可以与索引组件进行交互(也就是说,系统基类与IBC进行交互,并且IBC是索引组件的一个组件)。
IBC还可以与系统基类进行交互。系统基类包括用于合并、转储的功能、读取器基类和生成器基类以便与资源索引进行交互。(应当提到的是,在这里的一些地方提到“索引文件”时,应当理解的是不要求(多个)索引作为一个独立文件而驻留。)此外还应当理解的是,这仅仅是一种可能的实例化,并且可以采用其他实例化。举例来说,为了建立跨越资源的不同类型和格式的索引以及获取索引,可以采用写入和读取索引的功能,但是不采用合并索引或转储索引数据的功能。
合并器允许把从几个特定于格式的索引器输出到该合并器的资源索引与所述索引合并。转储器工具允许第三方开发者分析置于索引中的资源和相关联的所应用的条件。最终的输出是所述索引。
作为基类设计的一部分,还提供对应于索引内容以及创建特定于格式的索引器扩展的配置规则。所述配置规则可以是用XML(可扩展标记语言)写成的以便指明资源/资源类型与各个维度或者某一维度中的特定数值之间的关系。举例来说,以语言名称命名的目录中的文件可以被用来满足针对这些特定语言的资源请求。在这种情况下,所述维度是语言,资源是文件,并且与该维度中的数值的关系可以是基于包含所述文件的目录名。应当理解的是,这仅仅是一种可能的可选实例化。
特定于格式的索引器被索引器基类调用以便打开并识别资源分层结构中的各个节点的内容。继续前面的实例,提供用于目录和文件的索引器工具。这样的索引器向基类报告目录的内容并且识别对应于每一项的属性。
这一特征还提供了由特定于格式的索引器使用来关于在某一维度中指定特定数值做出决定的某种共用功能。该共用功能是利用某种共用规则建立的,其随后被利用在各个特定于格式的索引器上。
IBC提供用以创建资源索引的基本功能单元,这是通过基于配置规则和所提供的特定于格式的索引器分析资源分层结构而实现的,或者是通过合并现有索引的聚集而实现的。IBC允许创建提供元数据的资源索引,所述元数据描述资源和资源位置,以便允许在运行时间识别对于给定情境最为适当的资源。
所述体系结构是可扩展的,从而允许各个单独的特定于格式的索引器与IBC集成,并且以更高的灵活性和更低的成本实现对于附加资源格式或资源容器格式的实现方式支持。各个单独的特定于格式的索引器的开发者能够利用用于确定维度数值的共用功能,从而允许把焦点导向包含资源的特定格式。
IBC从资源分层结构集合建立索引集合。IBC利用系统基类来实际建立包资源索引文件,并且利用特定于格式的索引器来遍历资源106。IBC编制处理并且遵循特定逻辑来建立正确的索引集合。IBC还提供用于在从资源的元数据确定适用条件时由特定于格式的索引器进行查询的统一机制。
在为一项处理(例如消费应用)创建一个或更多包方面,应当提到的是,这仅仅是一个示例性实施例。举例来说,如果提供了支持不同类型和格式的资源的单个系统,则对于条件的管理和相关联的组件(比如条件应用器)是可选的。但是应当理解的是,所述处理或(多项)消费应用可以是用于任何适当目的。此外,可以应用限制针对给定目的的资源利用的条件。
下面是对应于IBC的一个示例性类定义集合:
条件应用器
项目实例条目
项目实例汇点
索引传递
资源索引器
当被采用时,条件应用器是用以把给定字符串识别为条件并且把条件应用到ItemInstanceEntry(项目实例条目)的中心处所。该应用器是根据由特定于格式的索引器从诸如(例如资源分层结构的)文件夹和文件名之类的项目中提取的令牌(例如文件名、文件路径等等)执行条件识别和指派的对象。识别作为文件或文件夹名称中的令牌而被声明的条件的条件应用器的这种实现方式仅仅是声明关于资源实例的条件的一种可能方式,而绝不应当被理解为进行限制。
下面的条件应用器构造器
构造一个ConditionApplicator(条件应用器)对象。输入包括索引传递配置数据,定义所支持的情境属性的环境对象,以及包含条件集合列表的ConditionSetPool(条件集合池)。
下面是应用条件构造器:
其尝试应用对应于给定字符串的情境属性和数值。输入包括将作为条件解释的字符串以及去到条件集合池中的索引,所述索引定义一个条件集合。
输出包括去到一个条件集合池中的索引(例如newConditionSetIndex(新条件集合索引))。所述条件集合池定义来自前一个自变量中所引用的集合的条件的超集。可能已经将条件添加到所述条件集合中。还有可能的情况是,如果所述令牌是对于所传入的其中一项条件的复制条件,则没有条件被添加。如果传入条件的并集与适用于令牌的条件相同,则该输出被确保返回相同的索引。输出还包括关于所传入的字符串令牌是否被确定为条件(例如isCondition(是否为条件))。这不一定意味着添加了条件。在一种实现方式中,条件应用器尝试将字符串识别为BCP47有效标签。
IBC枚举将由特定于格式的索引器使用的遍历汇点条目,并且将这些项目实例条目添加到索引汇点中。从索引汇点将所述条目添加到最终索引文件中。
下面的添加项目实例条目
将项目实例条目添加到汇点中。输入是将要添加的项目实例条目。
在IBC的构造期间,由所述配置的索引部分定义一个索引传递集合。一个索引传递定义将要索引的资源分层结构的一部分。通过具有多个索引传递允许在没有复杂的互斥规则的情况下把分开的资源分层结构索引到一起。
索引传递构造器
建立一个新的索引传递类对象。输入包括索引传递XML配置数据以及被用来定义情境属性的环境。ConditionSetPool(条件集合池)定义对应于资源的条件集合以及去到项目根文件夹的绝对路径。
下面的索引传递处理对象
处理索引传递。
下面是对应于索引传递的示例性工作流程。首先,从对应于索引传递的配置数据确定一个索引器列表。在这一确定下,利用索引传递配置数据,识别出被包括在所述传递中的独有索引器(忽略复制配置数据),利用整个索引传递配置数据构造索引器,并且对于每一个特定于格式的索引器调用init(初始化)。其次,将一个根项目推送到具有以下各项的遍历汇点上:聚集,项目名称,项目类型,实例值,条件(定义在维度元素中的维度),以及实例类型。最后,开始索引循环。
输入包括将为之添加各个ItemInstanceEntry(项目实例条目)以进行遍历的遍历汇点,以及将为之添加各个ItemInstanceEntry(项目实例条目)以建立索引的索引汇点。
关于初始化,IBC的构造开始于针对输入执行检查、建立TraversalSink(遍历汇点)和初始值以及随后从配置数据设立索引传递。
下面的构造器建立应对具有版本的构造的新IBC对象:
输入可以包括作为一个XML DOM节点的索引配置、包清单的包ID部分内的名称字段、去到从该处进行所有索引(所有索引都在该目录下进行)的项目根文件夹的绝对路径、去到用以输出索引文件的文件夹的绝对路径以及索引从中导出版本的主版本。
下面的构造器建立具有将新索引与之进行比较的先前索引文件的新IBC对象:
输入可以包括作为一个XML DOM(文档对象模型)节点的索引配置、去到从该处进行所有索引的项目根文件夹的绝对路径、去到用以输出索引文件的文件夹的绝对路径以及去到索引的绝对路径。
所述处理通过调用适当的索引传递并且随后利用所索引的资源建立主资源索引器文件而开始索引处理:
所述工作流程包括构造环境、构造遍历汇点、构造索引汇点、实例化并且处理索引传递以及打包索引汇点条目。
关于配置格式,被传递到IBC的配置可以采取类似于下面的格式。(MSXML(Microsoft XML)或另一种解析可以被利用在针对DOM支持和XML架构验证的XML操作中)。
关于前面的打包部分,IBC具有影响将资源放置到不同包中的方式的能力。通过把资源放置在不同索引中,打包工具随后可以读取索引并且确定将与适当索引一起放置到特定包中的文件。索引不一定描述包中的完全文件集合。一些文件可能被包括在包中,但是所述文件没有在索引中列出。
前面的打包部分决定IBC的输出,并且确定打包部分产生的索引文件的数目以及进入索引文件的项目。IBC保持索引文件列表以便将接收自特定于格式的索引器的项目分发到正确的索引文件。在打包部分内,配置数据更加具体地定义每一个索引所包含的情境。如果在IBC的构造器中还没有给出资源架构,则在打包部分中定义一个主包。
资源架构是开发者分组在一起的资源项目的聚集,这通常是因为所述项目被使用在共同的情形下。举例来说,如果一项应用具有两个字符串项目,一个Welcome(欢迎)字符串和一个Exit(退出)字符串,每一个字符串具有六种语言的实例,则所述资源架构由两个项目构成。一项应用可以具有对应于其所有资源项目的单个架构(所述架构与对应于不同应用的架构不同)。可替换地,开发者可以在不同应用中使用共用组件,并且把资源组织成使得所述共用组件使用一种架构,每一个特定于应用的资源集合处于其自身的架构中,于是每一项应用将使用一种架构组合:对应的特定于应用的架构加上共用组件架构。
主包定义包含不具有情境值的所有项目的索引。如果没有定义主包,则假设资源包索引被与来自构造器中给出的主包的资源架构单独建立在一起。
所定义的所有资源包决定放置在这些索引中的项目的情境。打包部分还定义被称作autoResourcePacks(自资源包)的属性,其在为真时定义根据从特定于格式的索引器返回的并且与所声明包无关的任何情境在运行中创建索引文件的能力。如果autoResourcePacks(自资源包)为假,则与所声明包无关的所有情境都被添加到主包的索引中。可以依照包的名称属性来命名索引,但是对于主包则不可以,其被定义为主索引。
关于索引部分,所述索引部分定义在资源上执行的不同索引会话或传递。各个索引传递可能会索引特定资源两次,其中错误由系统基类关于冲突资源来应对(比如被索引两次的文件夹将会导致由系统基类抛出的一系列警告)。每一个索引传递都初始化由索引元素内的配置信息给出的正确的特定于格式的索引器。利用索引传递配置对每一个特定于格式的索引器进行初始化。每一个索引传递还对将由每一个特定于格式的索引器使用的ConditionApplicator(条件应用器)进行初始化。
每一个索引传递开始于将根目录(其由startIndexAt(索引起始处)属性给出)放置到遍历汇点上。所述根目录是相对于传递到IBC的构造器中的项目根目录。所述根目录充当对应于遍历汇点上的ItemInstanceEntry(项目实例条目)的实例值,并且outputRelativeTo(相对输出处)属性充当对应于该项目的项目名称。根条目获得根据定义在索引元素内的维度元素而为之应用的条件。
IBC利用适当的特定于格式的索引器来实际遍历资源集合。在一种实现方式中,IBC支持两个特定于格式的索引器:文件夹索引器和XML索引器。IBC确定用以进行实例化的适当的特定于格式的索引器并且随后关于资源运行。IBC负责自举、配置以及运行索引器。
下面是每一个特定于格式的索引器所附着的示例性的IFormatSpecific Interface(特定于格式的接口):
IFormatSpecificIndexer(特定于格式的索引器)
Init初始化特定于格式的索引器,并且对于每一个索引传递将每一个特定于格式的索引器构造一次。输入包括定义在IBC的构造器中的项目根部、对应于当前索引传递的特定索引部分的XML节点以及用来基于字符串向各个ItemInstanceEntry(项目实例条目)应用条件的ConditionApplicator(条件应用器)。
Process处理被用来引用特定资源容器的ItemInstanceEntry(项目实例条目)。可以同步处理每一个特定于格式的索引器。输入包括待处理的ItemInstanceEntry(项目实例条目)以及将各个新的ItemInstanceEntry(项目实例条目)添加到其中的TraversalEntrySink(遍历条目汇点)。输出是关于是否不应当索引所传入的容器。
关于系统基类交互,实际的索引建立和对于文件的写入是由系统基类实现的。在利用来自主包的ResourceSchema(资源架构)建立资源包索引之前,建立并终结主包索引。关于主包,一旦完成了所有索引传递之后,就在给定对应于IBC的构造器参数的情况下适当地初始化对应于主包的PackageResources(包资源)类。在添加了对应于主包的所有ItemInstanceEntry(项目实例条目)之后,索引被终结、检验并且在输出文件夹中以resources_main.indx为名被写入存储。
关于资源包,一旦完成主包之后,就利用相关联的ItemInstanceEntry(项目实例条目)适当地建立资源包。利用主包的ResourceSchema(资源架构)来构造资源包。在添加了所有ItemInstanceEntry(项目实例条目)之后,索引被终结并且在输出文件夹中以来自打包配置的适当文件名被写入存储。
下面是示出所述处理的一个实例。考虑下面的文件结构:
还考虑下面的配置文件config.xml:
初始化下面的IBC:
IBC读取配置中的索引传递,并且如下所示地开始。IBC利用索引传递配置和遍历汇点初始化ConditionApplicator(条件应用器)。IBC利用索引传递配置初始化仅仅一个文件夹和仅仅一个XML索引器。IBC如下初始化所述队列:
IBC弹出队列中的第一项并且将res\传递到文件夹索引器。文件夹索引器随后将其添加到队列中,并且返回“真”以令IBC知晓不要把res\项放置在索引中。
随后把图像项传递到文件夹索引器,后者随后读取图像文件夹的内容,读取hello.jpg并且将其添加到队列中。
将res\fr-fr项给到所有索引器,并且文件夹索引器添加各项。
IBC随后查看res\images\hello.jpg,并且在没有从特定于格式的索引器获得“真”返回之后,IBC识别出情境为空值并且toIndex(到索引)为真,并且将所述实例添加到主包索引汇点中。IBC随后查看res\fr-fr\images,并且文件夹索引器将各项添加到队列中并且返回“真”以便不把项目添加到索引中。
IBC随后查看res\fr-fr\strings.xml,并且XML索引器对于不同字符串将各项添加到队列中。XML索引器还返回“真”以便不把该项添加到索引中。
最后,字符串和图像被添加到索引中,并且toIndex(到索引)被标记为真。这些字符串和图像被添加到fr-fr索引队列中是因为autoResourcePacks(自资源包)被设定为真。
随后索引管理器检察其索引队列并且建立对应于主包的包资源索引,并且随后使用对应于该包的架构来建立对应于资源包的包资源索引文件。主包被命名为resources_main.indx,资源包被称作resources_fr-fr.indx。
在这里包括了代表用于执行所公开的体系结构的各个新颖方面的示例性方法的一组流程图。虽然为了解释简单起见,这里例如以流程图的形式示出的一种或更多种方法被显示并描述为一系列步骤,但是应当理解并认识到的是,所述方法不受步骤顺序限制,这是因为一些步骤可以按照不同的顺序发生并且/或者可以与除了这里所示出并描述的之外的其他步骤同时发生。举例来说,本领域技术人员将理解并认识到,可以将一种方法替换地表示为一系列相互关联的状态或事件,比如在状态图中表示。此外,对于一种新颖实现方式不需要在某一种方法中所示出的所有步骤。
图5示出了根据所公开的体系结构的资源管理方法。在500中,在建立时间创建适用于建立一项应用的资源索引。在502中,生成使得一项资源适用于创建对应于所述应用的资源包的条件。在504中,基于所述条件将所述资源分割到资源包中。
应当提到的是,可替换地可能潜在地以不同方式发生定序。由于索引最终可能包括条件信息,因此可以在将该信息插入到索引之前确定条件的适用性。因此,502可以在500之前发生。但是有可能在没有条件信息的情况下创建资源索引,于是在那之后添加条件信息。在这方面假设每一个资源实例具有可以借之区分给定项目的各种变体的完全唯一的标识符,以便后来把不同实例与不同条件相关联。
图6示出了图5的方法的其他方面。应当提到的是,箭头表明每一个方框代表一个步骤,其可以作为图5的流程图所代表的方法的附加方面被单独包括或者与其他方框相组合地包括在一起。在600中,基于索引的索引条目对资源进行分割。在602中,基于所述条件将资源包布置到应用。在604中,基于运行时间情境的属性以及与资源的适用性条件的属性关系,在运行时间访问索引以便查找并且确定对应于应用的可用资源。在606中,识别来自资源元数据和/或来源的令牌,以便找到满足资源包的特定适用性条件的资源。在608中,确定当前运行时间情境的属性并且把所述属性与适用性条件进行比较,以便找到对应于所述资源包的相关联的条件。
在本申请中使用的术语“组件”和“系统”意图指代与计算机有关的实体,其或者是硬件、软件与有形硬件的组合、软件或者执行中的软件。举例来说,组件可以是(但不限于)诸如处理器、芯片存储器、大容量存储设备(例如光盘驱动器、固态驱动器和/或磁性存储介质驱动器)和计算机之类的有形组件,或者是诸如运行在处理器上的处理、对象、可执行程序、数据结构(其被存储在易失性或非易失性存储介质中)、模块、执行线程和/或程序之类的软件组件。作为说明,运行在服务器上的应用和所述服务器都可以是组件。一个或更多组件可以驻留在处理和/或执行线程内,并且组件可以定位在一台计算机上以及/或者分布在两台或更多台计算机之间。“示例性”一词可以在这里被用来意指充当例子、实例或说明。在这里被描述为“示例性”的任何方面或设计都不必被理解为相对于其他方面或设计是优选的或有利的。
现在参照图7,其中示出了根据所公开的体系结构执行资源管理的计算系统700的方框图。为了提供对应于其各个方面的附加情境,图7和下面的描述意图提供对于可以在其中实施所述各个方面的适当计算系统700的简要的一般性描述。虽然前面的描述是在可以运行在一台或更多台计算机上的计算机可执行指令的一般情境中进行的,但是本领域技术人员将认识到,还可以与其他程序模块相组合以及/或者作为硬件与软件的组合来实施新颖的实施例。
用于实施各个方面的计算系统700包括具有(多个)处理单元704的计算机702、诸如系统存储器706之类的计算机可读存储装置以及系统总线708。(多个)处理单元704可以是多种能够买到的处理器当中的任一种,比如单处理器、多处理器、单核单元和多核单元。此外,本领域技术人员将认识到,可以利用其他计算机系统配置实践所述新颖方法,其中包括小型计算机、大型计算机、以及个人计算机(例如台式、膝上型等等)、手持式计算设备、基于微处理器的或可编程消费电子设备等等,其中的每一种可操作地耦合到一个或更多相关联的设备。
系统存储器706可以包括计算机可读存储装置(物理存储介质),比如易失性(VOL)存储器710(例如随机存取存储器(RAM))和非易失性存储器(NON-VOL)712(例如ROM、EPROM、EEPROM等等)。基本输入/输出系统(BIOS)可以被存储在非易失性存储器712中,并且包括比如在启动期间促进计算机702内的各个组件之间的数据和信号传送的基本例程。易失性存储器710还可以包括高速RAM,比如用于高速缓存数据的静态RAM。
系统总线708提供用于系统组件的接口,其中包括(但不限于)系统存储器706到(多个)处理单元704的接口。系统总线708可以是利用许多能够买到的总线体系结构的能够进一步连接到存储器总线(其具有或没有存储器控制器)和外围总线(例如PCI、PCIe、AGP、LPC等等)的几种类型的总线结构当中的任一种。
计算机702还包括(多个)机器可读存储子系统714和用于将(多个)存储子系统714接口到系统总线708和其他所期望的计算机组件的(多个)存储接口716。(多个)存储子系统714(物理存储介质)例如可以包括硬盘驱动器(HDD)、磁性软盘驱动器(FDD)以及/或者光盘存储驱动器(例如CD-ROM驱动器、DVD驱动器)当中的一项或更多项。(多个)存储接口716可以包括诸如EIDE、ATA、SATA和IEEE 1394之类的接口技术。
一项或更多项程序和数据可以被存储在存储器子系统706、机器可读的可移除存储器子系统718(例如闪存驱动器外型技术)和/或(多个)存储子系统714(例如光学、磁性、固态)中,其中包括操作系统720、一项或更多项应用程序722、其他程序模块724以及程序数据726。
操作系统720、一项或更多项应用程序722、其他程序模块724和/或程序数据726例如可以包括图1的系统100的实体和组件,图2的系统200的实体和组件,图3的系统的实体和组件,图4的系统的实体和流程,以及图5和6的流程图所代表的方法。
一般来说,程序包括执行特定任务或实施特定抽象数据类型的例程、方法、数据结构、其他软件组件等等。操作系统720、应用722、模块724和/或数据726当中的全部或一部分还可以被高速缓存在诸如易失性存储器710之类的存储器中。应当认识到的是,可以利用多种能够买到的操作系统或操作系统组合(例如作为虚拟机)来实施所公开的体系结构。
(多个)存储子系统714和存储器子系统(706和718)充当计算机可读介质以用于对数据、数据结构、计算机可执行指令等等进行易失性和非易失性存储。这样的指令在由计算机或其他机器执行时,可以使得所述计算机或其他机器执行一种方法的一个或更多步骤。用以执行所述步骤的指令可以被存储在一项介质上,或者可以被存储在多项介质上,从而使得所述指令总体出现在一项或更多项计算机可读存储介质上,而不管是否所有指令都处在相同的介质上。
计算机可读介质可以是能够由计算机702访问的任何可用介质,并且包括可移除或不可移除的易失性和非易失性的内部和/或外部介质。对于计算机702,所述介质容纳任何适当数字形式的数据存储。本领域技术人员应当认识到,可以采用其他类型的计算机可读介质,比如zip驱动器、磁带、闪存卡、闪存驱动器、卡盒等等,以便存储用于执行所公开的体系结构的新颖方法的计算机可执行指令。
用户可以利用诸如键盘和鼠标之类的外部用户输入设备728与计算机702、程序和数据进行交互。其他外部用户输入设备728可以包括麦克风、IR(红外)遥控器、操纵杆、游戏手柄、摄影机识别系统、触笔、触摸屏、姿态系统(例如眼睛移动、头部移动等等)等等。用户可以利用诸如触摸板、麦克风、键盘等板载用户输入设备730与计算机702、程序和数据进行交互,其中计算机702例如是便携式计算机。上述和其他输入设备通过(多个)输入/输出(I/O)设备接口732并且经由系统总线708连接到(多个)处理单元704,但是也可以通过其他接口连接,比如并行端口、IEEE 1394串行端口、游戏端口、USB端口、IR接口、短距离无线(例如Bluetooth)和其他个人区域网(PAN)技术等等。(多个)I/O设备接口732还便于使用诸如打印机、音频设备、摄影机设备等输出外设734,比如声卡和/或板载音频处理能力。
一个或更多图形接口736(其通常也被称作图形处理单元(GPU))在计算机702与(多个)外部显示器738(例如LCD、等离子显示器)和/或板载显示器(其例如用于便携式计算机)之间提供图形和视频信号。(多个)图形接口736也可以作为计算机系统板的一部分来制造。
计算机702可以利用通过有线/无线通信子系统742去到一个或更多网络和/或其他计算机的逻辑连接而操作在联网环境中(其例如基于IP)。其他计算机可以包括工作站、服务器、路由器、个人计算机、基于微处理器的娱乐电器、对等设备或其他公共网络节点,并且通常包括关于计算机702所描述的许多或所有元件。所述逻辑连接可以包括去到局域网(LAN)、广域网(WAN)、热点等等的有线/无线连接。LAN和WAN联网环境在办公室和公司中是常见的并且便于诸如内联网之类的企业范围的计算机网络,所有这些网络都可以连接到诸如因特网之类的全球通信网络。
在被使用在联网环境中时,计算机702通过有线/无线通信子系统742(例如网络接口适配器、板载收发器子系统等等)连接到网络,以便与有线/无线网络、有线/无线打印机、有线/无线输入设备744等等进行通信。计算机702可以包括调制解调器或者用于通过网络建立通信的其他装置。在联网环境中,可以把关于计算机702的程序和数据存储在与分布式系统相关联的远程存储器/存储设备中。应当认识到,所示出的网络连接是示例性的,并且可以使用在计算机之间建立通信链接的其他措施。
计算机702适于利用诸如IEEE 802.xx标准族的无线电技术与有线/无线设备或实体进行通信,比如适于被布置成例如与以下设备进行无线通信(例如IEEE 802.11空中调制技术)的无线设备:打印机、扫描器、台式和/或便携式计算机、个人数字助理(PDA)、通信卫星、与无线可检测标签相关联的任何装备或地点(例如信息亭、报刊亭、休息室)以及电话。这方面至少包括用于热点的Wi-Fi(或无线保真)、WiMax以及BluetoothTM无线技术。因此,所述通信可以是与传统网络一样的预定义结构,或者简单地是至少两个设备之间的自组织通信。Wi-Fi网络利用被称作IEEE 802.11x(a、b、g等等)的无线电技术来提供安全、可靠、快速的无线连接。Wi-Fi网络可以被用来将计算机彼此连接、连接到因特网以及连接到有线网络(其使用与IEEE 802.3有关的介质和功能)。
可以在分布式计算环境中实践所图示及描述的各个方面,其中特定任务由通过通信网络链接的远程处理设备执行。在分布式计算环境中,程序模块可以被加载到本地和/或远程存储装置和/或存储器系统中。
前面所描述的内容包括所公开的体系结构的实例。当然不可能描述每一种可以设想到的组件和/或方法的组合,但是本领域技术人员可以认识到,许多其他组合和排列也是可能的。相应地,所述新颖的体系结构意图涵盖落在所附权利要求书的精神和范围内的所有这种更改、修改和变型。此外,就在详细描述或权利要求书中使用的术语“包含”而言,这样的术语类似于术语“包括”而意图是包含性的,正如在权利要求中被用作关联词的术语“包括”的解释一样。
Claims (9)
1.一种计算机实施的资源管理系统(100),其包括:
条件组件(102),其被配置成创建使得资源适用于建立应用的条件,所述条件定义与所述应用相关联的适用性信息;
索引组件,其被配置成创建枚举资源、对于资源的引用以及条件的索引;
条件应用器组件,其被配置成识别来自资源元数据和/或来源的令牌以便找到满足对应于所述应用的资源包的特定适用性信息的资源;
分割组件(110),其被配置成响应于所述条件应用器组件的操作将资源自动分割成资源包以便由应用来使用;以及
处理器,其执行与所述条件组件、所述索引组件、所述条件应用器组件和所述分割组件相关联的计算机可执行指令。
2.权利要求1的系统,其中,所述索引存储对应于资源的元数据,以便允许检测资源中的改变、对资源施行约束、施行许可以及施行认证。
3.权利要求1的系统,其还包括情境组件,其被配置成确定当前运行时间情境的属性并且把所述属性与所述适用性信息进行比较,以便找到对应于资源包的相关联的条件。
4.权利要求1的系统,其中,如果资源具有与资源包中的另一项资源的条件相匹配的条件,则将所述资源和对于所述资源的引用存储在所述资源包中,所述资源包在使得相关联的资源适用的条件下适用,并且在所述应用满足所述使得资源适用于建立所述应用的条件的情况下被布置到所述应用。
5.权利要求1的系统,其中,在应用运行时间访问资源之前合并对于资源包中的资源的引用,并且使用合并的引用来查找可用资源,当不存在其条件与资源包中的其他资源相匹配的资源时,创建新的资源包。
6.一种计算机实施的资源管理方法,其包括以下步骤:
在建立时间创建适用于建立应用的资源索引;
生成使得资源适用于创建对应于所述应用的资源包的条件,并且按照索引指示所生成的条件;
识别来自资源元数据和/或来源的令牌,以便找到满足资源包的特定适用性条件的资源;
基于由所述索引指示的条件将所述资源分割成资源包;以及
利用执行存储在存储器中的指令的处理器来执行所述创建、识别、生成和分割步骤。
7.权利要求6的方法,其还包括:基于由所述索引指示的条件将资源包布置到应用。
8.权利要求6的方法,其还包括:基于运行时间情境的属性以及基于与资源的适用性条件的属性关系,在运行时间访问所述索引以便查找并确定对应于所述应用的可用资源。
9.权利要求6的方法,其还包括:确定当前运行时间情境的属性并且把所述属性与适用性条件进行比较,以便找到对应于资源包的相关联的条件。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/977,113 US8495570B2 (en) | 2010-12-23 | 2010-12-23 | Resource deployment based on conditions |
US12/977113 | 2010-12-23 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102541638A CN102541638A (zh) | 2012-07-04 |
CN102541638B true CN102541638B (zh) | 2015-06-17 |
Family
ID=46318659
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110437575.6A Active CN102541638B (zh) | 2010-12-23 | 2011-12-23 | 资源管理系统和方法 |
Country Status (2)
Country | Link |
---|---|
US (3) | US8495570B2 (zh) |
CN (1) | CN102541638B (zh) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9047103B2 (en) | 2010-12-21 | 2015-06-02 | Microsoft Technology Licensing, Llc | Resource index identifying multiple resource instances and selecting most appropriate UI resource instance based on weighted resource request conditions |
US8495570B2 (en) * | 2010-12-23 | 2013-07-23 | Microsoft Corporation | Resource deployment based on conditions |
US9495371B2 (en) * | 2010-12-28 | 2016-11-15 | Microsoft Technology Licensing, Llc | Unified access to resources |
US9766870B2 (en) * | 2013-05-30 | 2017-09-19 | Microsoft Technology Licensing, Llc | Bundle package generation |
US20140359606A1 (en) * | 2013-05-30 | 2014-12-04 | Microsoft Corporation | Bundle package retrieving |
US20140357357A1 (en) | 2013-05-30 | 2014-12-04 | Microsoft Corporation | Game bundle package |
US9323514B2 (en) | 2013-05-30 | 2016-04-26 | Microsoft Technology Licensing, Llc | Resource package indexing |
CN105518648B (zh) * | 2013-09-04 | 2018-10-09 | 安提特软件有限责任公司 | 经由节点-关系模型向客户提供资源 |
EP3042310A4 (en) | 2013-09-04 | 2017-08-16 | Hewlett-Packard Enterprise Development LP | Providing recursively-generated instantiated computing resource in a multi-tenant environment |
WO2015034485A1 (en) * | 2013-09-04 | 2015-03-12 | Hewlett-Packard Development Company, L.P. | Providing services as resources for other services |
CN103731369A (zh) * | 2013-12-27 | 2014-04-16 | 乐视网信息技术(北京)股份有限公司 | 服务器中的数据队列的更新方法及系统 |
US10198253B2 (en) * | 2014-12-30 | 2019-02-05 | Airwatch Llc | Bundle administration and management |
US9733927B2 (en) * | 2015-11-11 | 2017-08-15 | International Business Machines Corporation | Detection of software or hardware incompatibilities in software packages |
US10289980B2 (en) * | 2015-11-24 | 2019-05-14 | Ariba, Inc. | In-memory index for evaluating a complex expression |
US10318667B2 (en) | 2015-12-16 | 2019-06-11 | International Business Machines Corporation | Test case generation |
US10496605B2 (en) * | 2016-04-29 | 2019-12-03 | Splunk Inc. | Application deployment for data intake and query system |
US10216862B1 (en) * | 2016-09-26 | 2019-02-26 | Splunk Inc. | Predictive estimation for ingestion, performance and utilization in a data indexing and query system |
US10083029B2 (en) * | 2016-11-09 | 2018-09-25 | Red Hat, Inc. | Detect application defects by correlating contracts in application dependencies |
CN107493316B (zh) * | 2017-06-29 | 2021-04-16 | 努比亚技术有限公司 | 应用运营管理方法、服务器及计算机可读存储介质 |
JP6855348B2 (ja) * | 2017-07-31 | 2021-04-07 | 株式会社ソニー・インタラクティブエンタテインメント | 情報処理装置およびダウンロード処理方法 |
CN110463162B (zh) | 2017-09-19 | 2021-01-05 | 华为技术有限公司 | 应用部署方法、装置及系统 |
CN109669683A (zh) * | 2018-12-25 | 2019-04-23 | 福建南威软件有限公司 | 一种功能组件自动打包的方法 |
US11327774B2 (en) * | 2018-12-27 | 2022-05-10 | Microsoft Technology Licensing, Llc | Personalization of resource strings in a computing device |
CN111258680B (zh) * | 2020-01-21 | 2021-12-07 | 腾讯科技(深圳)有限公司 | 资源加载方法和装置、存储介质及电子装置 |
CN115934654A (zh) * | 2023-02-03 | 2023-04-07 | 北京联合伟世科技股份有限公司 | 实验资源的打包方法、装置、设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1804823A (zh) * | 2005-12-22 | 2006-07-19 | 北京中星微电子有限公司 | 直接存储访问控制器 |
CN101526884A (zh) * | 2008-03-07 | 2009-09-09 | 株式会社日立制作所 | 存储系统及其管理方法 |
Family Cites Families (91)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1146819C (zh) | 1998-05-12 | 2004-04-21 | 龙卷风科技股份有限公司 | 电脑文件名称搜寻系统 |
CN1128531C (zh) | 1999-12-30 | 2003-11-19 | 国际商业机器公司 | 可接插式服务发送平台 |
US6938256B2 (en) | 2000-01-18 | 2005-08-30 | Galactic Computing Corporation | System for balance distribution of requests across multiple servers using dynamic metrics |
US6704776B1 (en) | 2000-06-30 | 2004-03-09 | Webtv Networks, Inc. | Selecting attribute based content for server applications |
US7454516B1 (en) | 2000-08-03 | 2008-11-18 | Microsoft Corporation | Scalable virtual partitioning of resources |
EP1202168A3 (en) * | 2000-10-30 | 2006-08-23 | Microsoft Corporation | System and method for dynamically veryfying the compatibility of a user interface resource |
US7584262B1 (en) | 2002-02-11 | 2009-09-01 | Extreme Networks | Method of and system for allocating resources to resource requests based on application of persistence policies |
AU2003279115A1 (en) * | 2002-10-03 | 2004-04-23 | Whisperwire, Inc. | System and method for bundling resources |
US7072807B2 (en) * | 2003-03-06 | 2006-07-04 | Microsoft Corporation | Architecture for distributed computing system and automated design, deployment, and management of distributed applications |
WO2004090729A1 (ja) | 2003-04-07 | 2004-10-21 | Seiko Epson Corporation | 画像蓄積装置及びプログラム |
US20040230416A1 (en) * | 2003-05-12 | 2004-11-18 | Microsoft Corporation | Bifurcated operating system having a language neutral component |
JP2005004350A (ja) | 2003-06-10 | 2005-01-06 | Sony Ericsson Mobilecommunications Japan Inc | リソース管理方法及び装置、リソース管理プログラム、記憶媒体 |
US7146353B2 (en) | 2003-07-22 | 2006-12-05 | Hewlett-Packard Development Company, L.P. | Resource allocation for multiple applications |
US8015301B2 (en) | 2003-09-30 | 2011-09-06 | Novell, Inc. | Policy and attribute based access to a resource |
JP3712071B2 (ja) | 2003-10-02 | 2005-11-02 | ソニー株式会社 | ファイル管理装置、ファイル管理方法、ファイル管理方法のプログラム及びファイル管理方法のプログラムを記録した記録媒体 |
US7305376B2 (en) * | 2003-10-23 | 2007-12-04 | Microsoft Corporation | Multiple language-dependent resources compacted into a single resource file |
US7451219B2 (en) | 2003-11-05 | 2008-11-11 | International Business Machines Corporation | Determining server resources accessible to client nodes using information received at the server via a communications medium |
US7251659B1 (en) | 2003-12-04 | 2007-07-31 | Sprint Communications Company L.P. | Method and system for managing resource indexes in a networking environment |
CN100444566C (zh) | 2004-02-20 | 2008-12-17 | 中兴通讯股份有限公司 | 一种多用户并发接入装置及其方法 |
US20050273507A1 (en) | 2004-06-08 | 2005-12-08 | Yong Yan | Method and system for managing heterogeneous resources across a distributed computer network |
US7536370B2 (en) | 2004-06-24 | 2009-05-19 | Sun Microsystems, Inc. | Inferential diagnosing engines for grid-based computing systems |
US20060053169A1 (en) | 2004-09-09 | 2006-03-09 | Straub Roland U | System and method for management of data repositories |
US7499970B2 (en) | 2004-11-12 | 2009-03-03 | International Business Machines Corporation | Method and system for supervisor partitioning of client resources |
EP1831829A1 (en) | 2004-12-15 | 2007-09-12 | Sap Ag | Resource management |
GB0427670D0 (en) | 2004-12-16 | 2005-01-19 | Ibm | Methods, systems and computer program products for loading a resource |
US7657868B2 (en) * | 2005-03-14 | 2010-02-02 | Research In Motion Limited | System and method for applying development patterns for component based applications |
US7757227B2 (en) * | 2005-03-18 | 2010-07-13 | Microsoft Corporation | Dynamic multilingual resource support for applications |
US7814492B1 (en) * | 2005-04-08 | 2010-10-12 | Apple Inc. | System for managing resources partitions having resource and partition definitions, and assigning a named job to an associated partition queue |
US7971198B2 (en) * | 2005-06-08 | 2011-06-28 | Unoweb Inc. | Method for global resource sharing having logically linked means and integrated functionality for building solutions |
US7757229B2 (en) * | 2005-08-09 | 2010-07-13 | International Business Machines Corporation | Reflective, XML-based framework for the construction of common application launchers |
KR100985450B1 (ko) | 2005-08-30 | 2010-10-07 | 구글 인코포레이티드 | 지역 검색 |
US7921358B2 (en) * | 2006-01-17 | 2011-04-05 | Microsoft Corporation | Automatic package conformance validation |
US20090132232A1 (en) * | 2006-03-30 | 2009-05-21 | Pegasystems Inc. | Methods and apparatus for implementing multilingual software applications |
KR100727056B1 (ko) | 2006-04-06 | 2007-06-12 | 엔에이치엔(주) | 로컬 컴퓨터의 프로그램 실행 방법 및 시스템 |
US7827155B2 (en) * | 2006-04-21 | 2010-11-02 | Microsoft Corporation | System for processing formatted data |
US7814498B2 (en) | 2006-05-01 | 2010-10-12 | Microsoft Corporation | Loading application resources |
US7962470B2 (en) | 2006-06-01 | 2011-06-14 | Sap Ag | System and method for searching web services |
US20070294699A1 (en) | 2006-06-16 | 2007-12-20 | Microsoft Corporation | Conditionally reserving resources in an operating system |
US20080065664A1 (en) * | 2006-06-27 | 2008-03-13 | Kehn Daniel B | Computer-implemented method, tool, and program product for more efficiently utilizing java resource bundles |
US8191060B2 (en) * | 2006-08-29 | 2012-05-29 | Adobe Systems Incorporated | Software installation using template executables |
US20130047150A1 (en) * | 2006-08-29 | 2013-02-21 | Adobe Systems Incorporated | Software installation and process management support |
US20080082490A1 (en) | 2006-09-28 | 2008-04-03 | Microsoft Corporation | Rich index to cloud-based resources |
US20090271762A1 (en) * | 2008-04-29 | 2009-10-29 | Sugarcrm Inc. | Business software application system and method |
US8341595B2 (en) * | 2007-05-30 | 2012-12-25 | Roam Data Inc | System and method for developing rich internet applications for remote computing devices |
US8266287B2 (en) | 2007-06-12 | 2012-09-11 | International Business Machines Corporation | Managing computer resources in a distributed computing system |
US8276121B2 (en) * | 2007-06-19 | 2012-09-25 | Microsoft Corporation | Selection of versioned resource among multiple compatible versions |
CN101350763A (zh) | 2007-07-16 | 2009-01-21 | 华为技术有限公司 | 一种资源管理方法、系统和网络设备 |
US7831590B2 (en) * | 2007-08-31 | 2010-11-09 | Teradata Us, Inc. | Techniques for partitioning indexes |
US8904400B2 (en) * | 2007-09-11 | 2014-12-02 | 2236008 Ontario Inc. | Processing system having a partitioning component for resource partitioning |
US20090094609A1 (en) * | 2007-10-09 | 2009-04-09 | Microsoft Corporation | Dynamically providing a localized user interface language resource |
US8151084B2 (en) | 2008-01-23 | 2012-04-03 | Oracle America, Inc. | Using address and non-address information for improved index generation for cache memories |
US20090216707A1 (en) * | 2008-02-26 | 2009-08-27 | International Business Machines Corporation | File resource usage information in metadata of a file |
US8595710B2 (en) * | 2008-03-03 | 2013-11-26 | Microsoft Corporation | Repositories and related services for managing localization of resources |
US8924947B2 (en) * | 2008-03-05 | 2014-12-30 | Sap Se | Direct deployment of static content |
US8146091B2 (en) | 2008-05-01 | 2012-03-27 | International Business Machines Corporation | Expansion and contraction of logical partitions on virtualized hardware |
US9361636B2 (en) * | 2008-05-20 | 2016-06-07 | Microsoft Technology Licensing, Llc | Creating, managing, and provisioning packages of online applications |
US20090328028A1 (en) * | 2008-06-25 | 2009-12-31 | O'rourke Connor | Electronic documents and methods for updating resource files for an application |
US20100011368A1 (en) | 2008-07-09 | 2010-01-14 | Hiroshi Arakawa | Methods, systems and programs for partitioned storage resources and services in dynamically reorganized storage platforms |
US9280335B2 (en) * | 2010-09-30 | 2016-03-08 | International Business Machines Corporation | Semantically rich composable software image bundles |
US20100083219A1 (en) * | 2008-10-01 | 2010-04-01 | Microsoft Corporation | Runtime Object Composition |
US8548946B2 (en) * | 2008-10-14 | 2013-10-01 | Microsoft Corporation | Content package for electronic distribution |
GB2465784B (en) * | 2008-11-28 | 2012-07-11 | Vmware Inc | Computer system and method for configuring an application program in a computer system |
GB2465785B (en) * | 2008-11-28 | 2012-07-04 | Vmware Inc | Computer system and method for resolving dependencies in a computer system |
US8874701B2 (en) | 2008-12-22 | 2014-10-28 | Sap Se | On-demand provisioning of services running on embedded devices |
US8793365B2 (en) | 2009-03-04 | 2014-07-29 | International Business Machines Corporation | Environmental and computing cost reduction with improved reliability in workload assignment to distributed computing nodes |
US8392567B2 (en) * | 2009-03-16 | 2013-03-05 | International Business Machines Corporation | Discovering and identifying manageable information technology resources |
US8418181B1 (en) | 2009-06-02 | 2013-04-09 | Amazon Technologies, Inc. | Managing program execution based on data storage location |
US8224804B2 (en) * | 2009-07-22 | 2012-07-17 | Microsoft Corporation | Indexing of partitioned external data sources |
US8707172B2 (en) * | 2009-11-12 | 2014-04-22 | International Business Machines Corporation | Internationalization technology |
US8275888B2 (en) * | 2009-11-25 | 2012-09-25 | International Business Machines Corporation | Indexing heterogeneous resources |
US8627298B2 (en) * | 2009-12-14 | 2014-01-07 | International Business Machines Corporation | Using appropriate level of code to be executed in runtime environment using metadata describing versions of resources being used by code |
US8402139B2 (en) | 2010-02-26 | 2013-03-19 | Red Hat, Inc. | Methods and systems for matching resource requests with cloud computing environments |
US8341185B2 (en) | 2010-04-02 | 2012-12-25 | Nokia Corporation | Method and apparatus for context-indexed network resources |
US9710261B2 (en) * | 2010-05-06 | 2017-07-18 | Microsoft Technology Licensing, Llc | Techniques to enhance software production |
US8719784B2 (en) * | 2010-09-06 | 2014-05-06 | International Business Machines Corporation | Assigning runtime artifacts to software components |
US9047103B2 (en) * | 2010-12-21 | 2015-06-02 | Microsoft Technology Licensing, Llc | Resource index identifying multiple resource instances and selecting most appropriate UI resource instance based on weighted resource request conditions |
US8495570B2 (en) * | 2010-12-23 | 2013-07-23 | Microsoft Corporation | Resource deployment based on conditions |
US9495371B2 (en) * | 2010-12-28 | 2016-11-15 | Microsoft Technology Licensing, Llc | Unified access to resources |
US20120272204A1 (en) * | 2011-04-21 | 2012-10-25 | Microsoft Corporation | Uninterruptible upgrade for a build service engine |
US8972967B2 (en) * | 2011-09-12 | 2015-03-03 | Microsoft Corporation | Application packages using block maps |
CA2756102A1 (en) * | 2011-11-01 | 2012-01-03 | Cit Global Mobile Division | Method and system for localizing an application on a computing device |
US8910132B2 (en) * | 2012-07-13 | 2014-12-09 | Facebook, Inc. | Client-side script bundle management system |
US8984487B2 (en) * | 2012-09-14 | 2015-03-17 | Microsoft Technology Licensing, Llc | Resource tracker |
US20140357357A1 (en) * | 2013-05-30 | 2014-12-04 | Microsoft Corporation | Game bundle package |
US9766870B2 (en) * | 2013-05-30 | 2017-09-19 | Microsoft Technology Licensing, Llc | Bundle package generation |
US20140359606A1 (en) * | 2013-05-30 | 2014-12-04 | Microsoft Corporation | Bundle package retrieving |
US20140359605A1 (en) * | 2013-05-30 | 2014-12-04 | Microsoft Corporation | Bundle package signing |
US9323514B2 (en) * | 2013-05-30 | 2016-04-26 | Microsoft Technology Licensing, Llc | Resource package indexing |
US9626271B2 (en) * | 2014-09-26 | 2017-04-18 | Oracle International Corporation | Multivariate metadata based cloud deployment monitoring for lifecycle operations |
US9785424B2 (en) * | 2015-06-05 | 2017-10-10 | Apple Inc. | Capability attributes based application packaging |
US9986064B2 (en) * | 2015-12-03 | 2018-05-29 | International Business Machines Corporation | Adaptable applications in a client/server architecture |
-
2010
- 2010-12-23 US US12/977,113 patent/US8495570B2/en active Active
-
2011
- 2011-12-23 CN CN201110437575.6A patent/CN102541638B/zh active Active
-
2013
- 2013-06-25 US US13/926,861 patent/US9021434B2/en active Active
-
2015
- 2015-02-20 US US14/627,361 patent/US10228933B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1804823A (zh) * | 2005-12-22 | 2006-07-19 | 北京中星微电子有限公司 | 直接存储访问控制器 |
CN101526884A (zh) * | 2008-03-07 | 2009-09-09 | 株式会社日立制作所 | 存储系统及其管理方法 |
Also Published As
Publication number | Publication date |
---|---|
US20120167111A1 (en) | 2012-06-28 |
US9021434B2 (en) | 2015-04-28 |
US8495570B2 (en) | 2013-07-23 |
US20130290930A1 (en) | 2013-10-31 |
US10228933B2 (en) | 2019-03-12 |
US20150234653A1 (en) | 2015-08-20 |
CN102541638A (zh) | 2012-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102541638B (zh) | 资源管理系统和方法 | |
KR102327913B1 (ko) | 블록 기반 데이터 분석 방법 및 시스템 | |
TWI722592B (zh) | 資料結構的讀取及更新方法、裝置、電子設備 | |
CN102542045B (zh) | 对于资源的统一访问 | |
US20160253174A1 (en) | Integrated development environment-based repository searching in a networked computing environment | |
CN111901294A (zh) | 一种构建在线机器学习项目的方法及机器学习系统 | |
CN102609813B (zh) | 基于云的主数据管理体系结构 | |
CN109582473A (zh) | 基于区块链的跨链数据访问方法和装置 | |
CN105144077A (zh) | 云服务平台 | |
CN105474206A (zh) | 支持按需数据传输的虚拟同步 | |
CN102426523A (zh) | 多维对象 | |
WO2014145084A1 (en) | Methods for managing applications using semantic modeling and tagging and devices thereof | |
CN102142014B (zh) | 导入和导出位于元数据注册系统中的元数据的系统和方法 | |
CN105637478A (zh) | 原生移动应用代码的计算机辅助开发 | |
CN103064637A (zh) | 一种网盘的缓存同步方法及系统 | |
EP3812917A1 (en) | Data structure reading method and apparatus, data structure updating method and apparatus, and electronic device | |
CN113791765A (zh) | 云服务的资源编排方法、装置、设备及存储介质 | |
CN106663090A (zh) | 在编译期间将呈现元数据转换成浏览器可渲染格式 | |
KR100858157B1 (ko) | 맵 업데이트 시스템 및 방법, 방법 프로그램을 기록한저장매체, 사용자 단말기 | |
CN107992354A (zh) | 用于降低内存负载的方法以及装置 | |
CN113435173B (zh) | 文本生成方法、相关装置及系统 | |
CN106462415A (zh) | 访问开发系统中的语义内容 | |
US9936015B2 (en) | Method for building up a content management system | |
CN117827221A (zh) | 部署程序代码的方法、装置、设备和存储介质 | |
CN105843881A (zh) | 一种图片处理url映射方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
ASS | Succession or assignment of patent right |
Owner name: MICROSOFT TECHNOLOGY LICENSING LLC Free format text: FORMER OWNER: MICROSOFT CORP. Effective date: 20150604 |
|
C41 | Transfer of patent application or patent right or utility model | ||
TR01 | Transfer of patent right |
Effective date of registration: 20150604 Address after: Washington State Patentee after: Micro soft technique license Co., Ltd Address before: Washington State Patentee before: Microsoft Corp. |