计算环境表示.pdf

上传人:a1 文档编号:1282701 上传时间:2018-04-12 格式:PDF 页数:26 大小:929.12KB
返回 下载 相关 举报
摘要
申请专利号:

CN200980110676.3

申请日:

2009.02.19

公开号:

CN101978369A

公开日:

2011.02.16

当前法律状态:

撤回

有效性:

无权

法律详情:

发明专利申请公布后的视为撤回IPC(主分类):G06F 17/00申请公布日:20110216|||实质审查的生效IPC(主分类):G06F 17/00申请日:20090219|||公开

IPC分类号:

G06F17/00; G06F17/21; G06F9/06

主分类号:

G06F17/00

申请人:

微软公司

发明人:

D·舒克拉; O·阿米加; V·瓦苏; J·张

地址:

美国华盛顿州

优先权:

2008.03.20 US 12/052,554

专利代理机构:

上海专利商标事务所有限公司 31100

代理人:

杨洁;钱静芳

PDF下载: PDF下载
内容摘要

计算环境可被表示为可部署对象分层结构,该可部署对象分层结构可根据通常在计算环境主机和被配置成呈现该计算环境的设备之间共享的对象分层架构来组织。详细地呈现了用于表示计算环境的特定对象分层架构,其中该计算环境中的许多对象被建模为可区别定址的资源(例如,在具有REST特性(RESTful)的对象分层结构中)。呈现许多类型的对象及其属性以阐明示例性对象分层架构并示出示例性对象和根据该架构来组织的对象分层结构。各种对象分层架构的其他特性包括可扩展性、可部署性以及具有各种优点的对象定址模型。

权利要求书

1: 一种表示计算环境的方法 (50), 所述方法 (50) 包括 : 在对象分层结构 (10) 中表示 (54) 所述计算环境中的对象, 各个对象根据可递归基本 表示格式来表示。
2: 如权利要求 1 所述的方法, 其特征在于, 所述可递归基本表示格式包括原子记录的 可递归序列。
3: 如权利要求 1 所述的方法, 其特征在于, 所述对象分层结构被表示为 XML。
4: 如权利要求 1 所述的方法, 其特征在于, 至少一个对象被表示为未扩展节点。
5: 如权利要求 4 所述的方法, 其特征在于, 所述方法包括 : 在接收到扩展未扩展节点的请求时, 提供所述未扩展节点的对象。
6: 如权利要求 1 所述的方法, 其特征在于 : 所述未扩展节点引用包含所述未扩展节点的对象的对象存储, 并且 所述方法包括 : 在接收到扩展引用对象存储的未扩展节点的请求时 : 向所述对象存储请求所述对象 ; 以及 在接收到来自所述对象存储的对象时, 响应于所述请求来提供所述对象。
7: 如权利要求 1 所述的方法, 其特征在于 : 所述计算环境被表示到设备, 并且 所述表示根据所述设备的能力来调整。
8: 如权利要求 7 所述的方法, 其特征在于 : 所述设备的能力包括设备存储能力, 并且 所述调整包括 : 用至少一个未扩展节点来表示所述计算环境以将所表示的计算环境的 大小限于不超过所述设备存储容量。
9: 如权利要求 1 所述的方法, 其特征在于 : 所述计算环境被表示给用户, 并且 所述表示根据所述用户来调整。
10: 如权利要求 9 所述的方法, 其特征在于 : 所述计算环境指定所述用户的用户帐户, 所述计算环境指定所述用户帐户对于所述计算环境的对象的访问特权, 并且 所述调整包括 : 用至少一个未扩展节点来表示所述计算环境, 所述至少一个未扩展节 点表示所述对象分层结构中根据所述用户帐户的访问特权来对所述用户限制的一部分。
11: 如权利要求 1 所述的方法, 其特征在于, 包括 : 将所述计算环境从所述可递归基本表示格式变换成数据交换格式。
12: 如权利要求 1 所述的方法, 其特征在于, 包括 : 将所述计算环境中的对象编组为平台表示格式的至少一个类的实例。
13: 如权利要求 1 所述的方法, 其特征在于, 包括 : 计算环境表示组件, 所述计算环境表示组件被配置成 : 接收对指定数据交换格式的计算环境的请求 ; 以及 将所述计算环境从所述可递归基本表示格式变换成所述数据交换格式。
14: 如权利要求 1 所述的方法, 其特征在于, 包括 : 查询对象服务 ; 2 同步对象服务 ; 以及 报告对象事件服务。
15: 如权利要求 14 所述的方法, 其特征在于, 包括 : 被配置成存储构成所述计算环境的对象的计算环境对象存储 (62) ; 计算环境表示组件 (64), 所述计算环境表示组件被配置成在对象分层结构 (10) 中表 示所述计算环境的对象, 各个对象根据可递归基本表示格式来表示 ; 以及 计算环境服务集 (66), 所述计算环境服务集包括被配置成操作所述计算环境的对象的 至少一个计算环境服务。

说明书


计算环境表示

    背景
     许多计算环境都包括由一组对象系统管理的大型且不同的对象集合。例如, 计算 环境可包括由文件系统管理的文件集合、 由数据库系统管理的一个或多个数据库、 表示应 用程序并由汇编高速缓存管理的可执行二进制代码集合、 由操作系统的用户简档组件管理 的用户简档集合、 以及由数据高速缓存组件管理的各种数据高速缓存, 如由操作系统的复 制缓冲器管理的复制项的集合、 由操作系统的撤消组件管理的撤消动作的集合、 以及由操 作系统的项使用跟踪组件管理的 “最近使用” 项的集合。此外, 可以在由一个或多个用户操 作的多个设备之间并且根据一个或多个操作 ( 例如, 归并两个对象集的对象同步操作以及 调整目标对象集以与源对象集相匹配的对象镜像操作 ) 来交换这些对象。以此方式, 这些 对象通过一组对象系统来松组织并聚集以表示计算环境。
     概述
     提供本概述是为了以简化的形式介绍将在以下详细描述中进一步描述的一些概 念。本概述并不旨在标识出所要求保护的主题的关键因素或必要特征, 也不旨在用于限定 所要求保护的主题的范围。
     将计算系统内的对象组织成一组脱节的、 松聚集的对象系统可以造成若干问题。 例如, 可能难以通过各种设备向用户呈现一致的计算环境, 尤其是在这些设备能力不同的 情况下 ( 例如, 高性能个人工作站、 基于浏览器的公共终端、 以及低性能蜂窝电话设备 )。 作 为另一示例, 将诸如同步和备份等服务应用于对象可涉及与每一对象系统进行接口以影响 由此管理的对象, 并且这样的接口可以随对象系统而变化。 作为第三示例, 使一组不同的对 象相关 ( 诸如所有对象构成一应用程序 ) 可能由于管理对象系统的不完全协作而是困难 的。
     用于表示构成计算环境的对象的一种替换技术涉及在可由计算环境主机来主存 的对象分层结构中组织这些对象。 如果对象是由对象系统以统一的方式表示并以一致的方 式来管理的, 则可以设计一组服务以应用于计算环境的所有对象。 此外, 对象分层结构可被 传递到各个设备以表示同一计算环境 ( 包括相同的用户简档、 应用程序、 数据文件等 ), 并 且每一设备可以用一致的方式来呈现该计算环境, 但基于该设备的能力 ( 例如, 用于从附 连到工作站的键盘设备接收数据输入的硬键盘接口, 以及用于从蜂窝电话设备接收数据输 入的触摸屏软键盘接口 ) 来定制该计算环境。
     此处所呈现的是一种这样的表示, 其中对象分层结构根据对象分层架构来结构 化, 该对象分层架构定义一组各种类型的资源, 诸如应用程序、 包括一组活动的活动集合、 以及包括一组用户简档的用户简档集合。 根据此处所指定的对象分层架构的对象组织可提 供胜于这些对象的其他表示和组织的某些优点。例如, 此处所呈现的对象表示服从用特定 种类的元数据来标记, 并且这些元数据可以类似地与不同种类的对象 ( 诸如应用程序、 数 据文件和设备 ) 相关联以启用域专用元数据。如此处所描述的那样安排的对象还可方便各 种对象集在各种设备上的映射, 这可准许计算环境相对于不同用户和设备的合乎需要的适 应。这些和其他好处可通过此处所指定的对象分层架构来实现, 这些好处可通过由对象分
     层结构来表示并由具有不同能力的设备来呈现的计算环境来展示。
     为实现上述和相关目的, 以下描述和附图阐述了各个说明性方面和实现。这些方 面和实现仅指示可使用一个或多个方面的各种方式中的一些。结合附图阅读以下详细描 述, 则本发明的其他方面、 优点、 以及新颖特征将变得显而易见。
     附图描述
     图 1 是计算环境主机与各计算环境呈现设备的示例性交互的图示。
     图 2 是示例性对象分层架构对象集的图示。
     图 3 是示例性对象分层架构的图示。
     图 4 是示出表示计算环境的示例性方法的流程图。
     图 5 是示例性对象分层结构的图示。
     图 6 是用于存储对象分层结构的对象的三种示例性存储技术的图示。
     图 7 是可以与对象分层架构的对象类型相关联的一组附加对象属性的图示。
     图 8 是包括被配置成实现此处所阐述的装置中的一个或多个的处理器可执行指 令的示例性计算机可读介质的图示。
     图 9 示出了其中可实现此处所阐述的装置中的一个或多个的示例性计算环境。
     详细描述
     现在参考附图来描述所要求保护的主题, 所有附图中使用相同的附图标记来指代 相同的元素。 在以下描述中, 为解释起见, 阐明了众多具体细节以提供对所要求保护的主题 的全面理解。然而, 很明显, 所要求保护的主题可以在没有这些具体细节的情况下实施。在 其他情况下, 以框图形式示出了公知的结构和设备以便于描述所要求保护的主题。
     现代计算机系统包括大量且各种对象。许多计算机系统表征文件存储, 该文件存 储包含用于配置该计算机系统的文件 ( 包括可执行文件、 类库、 配置信息集和资源 ) 以及由 一个或多个用户生成或接收的用户文件。 许多计算机系统还包括包含计算机系统硬件和软 件的各种各样的配置信息, 包括计算机系统的硬件和设备、 操作系统、 外壳用户界面、 以及 该外壳用户界面中可用的应用程序的配置。还可存储各种用户简档和帐户, 前者包括描述 特定用户或用户类的信息 ( 姓名、 外壳用户界面偏好、 主目录等 ), 而后者包括描述用户或 类的特权 ( 文件所有权、 读 / 写特权、 对各种设备的访问权等 ) 的信息。诸如口令、 证书、 公 钥 / 私钥对、 以及访问控制列表等受保护的安全信息可被存储在安全对象中, 操作系统可 对该安全对象施加管制访问。可以存在一个或多个数据高速缓存, 诸如浏览器高速缓存和 历史、 应用程序或浏览器文本框中的最近输入、 以及最近使用的文件和对象列表。 各种应用 程序可创建应用程序或任务专用档案, 诸如包含各种文件夹和消息的电子邮件档案以及包 含由各个系统用户从各个源接收到的并在用户定义的组中组织的联系人信息的共享地址 簿。最后, 计算机系统可被配置成与其他计算机、 用户和设备交换特定信息集, 诸如要同步 的对象以及可以在各种条件下授予对其的访问权 ( 读 / 写特权、 所有权、 定额等 ) 的对象 集。这些对象类型通常由各种管理系统 ( 例如, 文件系统、 系统注册表存储、 用户帐户管理 系统、 以及电子邮件系统 ) 在计算机系统中以特别方式来管理, 但访问方法或对象组织的 一致性或标准化极少。
     将计算系统内的对象组织成一组脱节的、 松聚集的对象系统可以造成若干问题。 作为第一示例, 呈现并维护包括一组一致的对象 ( 诸如文件、 应用程序、 用户简档、 应用程序配置、 数据高速缓存等 ) 的一致的计算环境可能是非常困难的, 尤其是在诸如个人工作 站、 公共终端和蜂窝设备等具有不同能力的设备之间。作为第二示例, 将服务应用于对象 可能由于将不同的对象存储在多个对象系统中而复杂化。例如, 定位匹配特定描述的对象 ( 诸如在特定时间跨度内最后一次修改的对象 ) 可涉及通过一个或多个文件系统来查询匹 配的文件、 通过数据库系统来与数据库记录进行匹配、 通过系统注册表来与注册表键进行 匹配、 通过汇编高速缓存来与应用程序进行匹配、 通过各种数据高速缓存来与数据高速缓 存项进行匹配等。因为这些对象系统通常以非标准方式存储相关联的对象, 诸如按照特定 于对象性质的参数 ( 例如, 通过文件系统日志来检查文件记录, 以及通过数据专用时间戳 来检查数据库记录 ), 所以对各种对象中的每一个应用操作可能是困难的。作为第三示例, 因为每一个对象系统都被配置成管理特定种类的对象, 所以混合各种类型的对象并使其相 关可能困难的。 例如, 应用程序可包括存储在汇编高速缓存中的可执行二进制代码、 存储在 系统注册表中的某些配置信息、 存储在文件系统中的补充文件 ( 诸如各种语言的字典 )、 以 及存储在数据高速缓存中的事件 ( 诸如最近编辑的文档 )。可能难以表示各种系统中的这 些对象类型的关联, 并且一起操纵所有这些对象 ( 例如, 删除所有这些对象以卸载应用程 序 )。作为第四示例, 计算机系统的对象集可以分布在若干设备上, 并且提供对这些对象集 的一致访问可能由于设备的各种配置、 每一个设备的物理能力、 以及每一个设备用来交换 数据的线格式的不兼容性 ( 例如, 第一设备可被配置成根据 XML 架构来交换数据, 而第二设 备可被配置成根据 JSON 来交换数据 ) 而复杂化。 可设计一种替换方法, 其中计算环境以可被传递至设备的方式来表示以便根据设 备的能力来呈现。该表示包括根据对象分层结构来组织并根据共同语法来表示的一组对 象。 这些对象包括计算机系统的数据对象, 诸如用户文件和用户创建的数据。 这些对象还包 括构成操作系统组件的可执行二进制代码和类库, 诸如外壳以及其中提供的应用程序。该 对象还包括指定计算环境的用户界面的信息, 包括外壳偏好 ( 例如, 视觉主题、 应用程序启 动菜单、 以及双击阈值 )、 用户帐户及特权、 安全信息 ( 例如, 口令、 安全令牌、 以及证书 )、 应 用程序二进制代码和配置信息、 用户数据和元数据 ( 例如, 文件共享信息 )、 以及数据高速 缓存 ( 例如, 最近使用的文件列表和浏览器历史 )。尽管这些对象具有各种性质和用途, 但 这些对象在对象分层结构中是以共同的方式来表示的, 并且可在该分层结构中任意组织。 因此, 与包括各自包含一种类型的对象的一组隔离数据存储 ( 例如, 包含文件的文件系统、 包含配置信息的注册表、 以及包含浏览器历史的数据高速缓存 ) 的先前的系统相反, 该方 法中的对象分层结构在对象分层结构中以共同的方式组织所有这些对象。
     以此方式表示的计算环境可被传递到任何设备并以适于该设备的能力的方式来 呈现。例如, 工作站可作为稳健且通用的计算环境来呈现信息, 而公共工作站可以通过 web 浏览器呈现不同的计算环境体验 ( 例如, 作为可在用户的会话结束时丢弃的虚拟机 ), 并且 蜂窝电话可提供具有对蜂窝电话相关信息 ( 例如, 联系人、 日历、 以及导航数据 ) 的更快访 问的更瘦的界面。此外, 对该信息集的更新 ( 例如, 偏好改变和对其中包含的数据文件的 更新 ) 可被应用于该信息集的规范源, 并且因此被传播到该信息集被传递到的所有其他设 备。 同样, 共享该计算环境的设备可以通过该共享信息集来集成, 使得一个设备可以与在该 信息集中标识的其他设备进行交互 ; 例如, 存储在第一设备上的数据可由第二设备访问, 并 且第一设备可由第二设备通过通信管道来控制。 该信息集因此可以标识共享该计算环境的
     设备的集合, 以及每一设备的角色、 能力、 以及资源, 以便跨可能大量且各种设备来提供集 成计算体验。
     图 1 示出一个这样的场景 10, 其中计算环境可由计算环境主机 12 主存, 计算环境 主机 42 可以存储并管理对象分层结构 14。计算环境主机 12 还可以代表各种设备 ( 如蜂窝 电话设备 16、 个人笔记本计算机 20、 以及公共工作站 24) 并且还代表具有不同访问特权的 不同类型的用户, 以不同的方式呈现对象分层结构 14。该计算环境的呈现因此反映了跨展 示相同的应用程序、 用户简档、 外壳配置、 用户数据对象等的所有设备的一致计算环境。因 此, 用户可以通过高性能笔记本计算机访问该计算环境的全特征版本 22、 在低功率蜂窝电 话设备 16 上访问该计算环境的精简版本 18、 以及通过公共终端 24 的 web 浏览器 146 访问 该计算环境的可兼容浏览器并且面向隐私的版本 28。 在每一这样的设备的能力支持该计算 环境的呈现的程度上, 由于根据每一设备的能力调整了对象分层结构 14 的呈现, 所以可以 呈现一致的用户界面和数据集。对计算环境的更新可以传播回计算环境主机 12, 并且可以 与其他设备自动进行同步。 各设备还可以通过与其他设备共享存储在本地的数据并且通过 控制其他设备或由其他设备控制来进行协作。因此, 可将该计算环境设计并呈现为云计算 体系结构, 包括表达为跨形成同一计算环境的各协作门户 ( 具有设备专用属性 ) 的网格的 所有设备 (“客户机” ) 的一致呈现的设备无关表示 (“云” )。此外, 计算环境主机 12 可以 将服务应用于构成对象分层结构 14 的各个对象, 并且将对象存储在该对象分层结构中的 共同格式可以便于这些服务的一致可用性和应用, 而不论向其应用这些服务的对象的性质 如何。 除这些目的之外, 对象分层架构可被设计成以特定方式来组织该对象分层结构的 各个对象。例如, 可以设计并结构化各个对象以表示数据对象 ( 如, 文件 )、 用户和用户帐 户、 设备和该计算环境中发生的事件、 以及来历、 所有权、 以及它们之间的相互关系。 相对于 对象的其他组织而言, 组织对象的这一方式可以产生特定优点和 / 或减少缺点。因此, 根据 其来组织对象的该对象分层架构是鉴于这些对象和计算环境的使用来设计的。例如, 可以 通过将各个对象与具有各种许可集合的一个或多个用户帐户 ( 例如, 第一用户帐户具有对 一对象的读 / 写许可, 第二用户帐户具有对该对象的只读许可, 并且第三用户帐户没有对 该对象的许可 ) 相关联来对安全许可建模。计算环境可被配置成根据对象分层架构的结构 和语义来利用该对象分层结构的对象, 从而允许以适用于每一设备的配置和能力但以其他 方式在所有这样的设备之间一致的方式来跨多个设备呈现可部署计算环境。
     可以理解, 对象分层架构的制定可以显著地影响设备和主存计算环境的服务器的 配置。作为一个示例, 设备可以只请求计算环境的一部分 ( 例如, 蜂窝电话设备可以请求对 象分层架构中包含诸如电话号码和电子邮件地址等一组联系人信息的部分 ), 并且服务器 可以只提供该部分 ; 然而, 如果该设备和服务器按不同的对象分层架构来操作, 则请求可能 失败。例如, 设备可能根据第一对象分层架构来请求对象分层结构的特定部分 ( 例如, /联 系人 ), 但服务器可根据第二对象分层架构来将这一信息存储在该对象分层结构的不同部 分 ( 例如, / 地址簿 / 联系人 ) 中, 并且因此可能无法提供所请求的信息, 即使在该服务器 主存的对象分层结构中存在联系人信息。作为第二示例, 服务器能够根据任何对象分层架 构来存储对象分层结构, 但可被更有利地配置成利用对象分层结构的一部分, 同时向其提 供服务, 并且因此可以期望找出在对象分层结构中根据特定对象分层架构来定义和组织的
     对象。 例如, 响应于设备接收对象分层结构的请求, 服务器可尝试使用存储在对象分层结构 中的认证信息来认证该设备。由此, 该服务器可被更容易地配置成根据特定对象分层架构 来主存对象分层结构, 以使其还可访问和利用存储在该对象分层架构中的信息, 同时提供 与该分层架构相关的服务。
     鉴于上述原理, 此处所呈现的是一种这样的对象分层架构, 其中对象以方便服务 器对计算环境应用服务以及计算环境到可以按一致但设备专用的方式呈现该计算环境的 设备的可部署性的特定方式来定义和互相关。 此处所描述的对象分层架构被呈现为一组已 定义的对象, 每一个定义都表示计算环境中的特定类型的数据对象 ( 例如, 用户简档、 应用 程序和设备 ) 并且具有与其相关的特定属性。某些对象被定义为专门类型的其他对象, 例 如, 通用 “个人” 对象类型可被扩展为表示 “用户” 对象类型, 该对象类型可以是具有表示这 个人在计算环境中的特权的附加信息的一个人。另外, 某些对象被定义为用于一个或多个 其他对象的容器, 诸如包含一个或多个 “人” 对象类型的 “人集合” 对象类型。此外, 此处所 呈现的对象分层架构定义了此处在对象分层结构中定义的对象的分层组织 ; 即, 特定对象 类型将被存储在对象分层结构中的特定位置, 以使得在该对象分层结构中搜索这些对象的 任何设备或计算机系统都将在该对象分层结构中的已知、 所确定的位置找到存在于该计算 环境中的任何事物。 图 2 示出了对象分层架构的对象类型以及这些对象类型之间的扩展相互关系。在 该附图中, 对象关系示出了对象之间的专门化, 例如, “动物” 对象类型可能被专门化为 “哺 乳动物” 对象类型, 该 “哺乳动物” 对象类型可被进一步专门化为 “猫” 对象类型。此处讨论 关于对象分层架构中的每一个对象的属性的细节, 但该附图是作为对此处所呈现的对象分 层架构中所包含的数据对象的类型的概览来呈现的。
     图 2 的对象分层架构对象集 30 包括资源对象类型 32, 该资源对象类型表示存储 在该对象分层结构中的基本数据对象。资源对象类型 32 表示对象分层架构中用于提供对 象分层结构中的可区别定址的位置的可定址对象 ; 即, 对于对象分层结构中的特定地址, 在 该对象分层结构中只有一个对象对应于该位置。在对象分层架构的某些实施例中, 资源只 可由一个地址来标识, 而在对象分层架构的其他实施例中, 资源可以在多个地址处标识。 然 而, 在任一这样的实施例中, 对象分层结构中的单个地址可以与最多一个对象相关联。
     图 2 的对象分层架构对象集 30 中的资源对象类型 32 用作对于许多其他对象类型 的基础对象类型。 这些对象类型中的若干对象类型对应于有时被设计为常规计算环境中的 一个或多个文件的对象。作为第一示例, 对象分层架构对象集 30 包括核心对象对象类型 34、 该对象类型是包括位于对象分层结构的根处的一组对象的专门类型的资源。对象分层 架构对象集 30 还包括应用程序对象类型 36, 该对象类型是表示代表安装在计算环境中的 应用程序的对象的专门类型的资源。许多其他对象可以与应用程序对象类型相关联, 诸如 标题、 应用程序图标、 以及一个或多个可执行二进制代码。对象分层架构对象集 30 还包括 数据条目对象类型 38, 该对象类型是表示诸如应用程序二进制代码、 文档、 一组应用程序配 置信息、 图像等原子数据单元的容器的专门类型的资源。对象分层架构对象集 30 还包括新 闻项对象类型 40, 该对象类型是表示计算环境中的值得注意的事件的专门类型的数据条目 对象。
     资源对象类型还可用作对于其他对象类型的基础对象类型。作为一个示例, 对象
     分层架构对象集 30 还包括数据订阅源对象类型 43, 该对象类型是表示诸如构成专辑的一 组歌曲 ( 例如, MP3 对象 ) 或构成照片相册的一组照片图像等相关数据条目的集合的专门类 型的资源。 对象分层架构对象集 30 还包括活动对象类型 44, 该对象类型是表示诸如对象创 建、 用户登录、 以及计算环境中的设备添加等最近发生在计算环境中的事件的专门类型的 资源。( 可以理解, 活动表示诸如复制文本的一部分等在计算环境的普通过程中发生的、 用 户可能只是短暂地感兴趣的较不重要的事件, 而新闻项表示诸如创建照片相册等用户可能 长期感兴趣的较重要的事件。) 对象分层架构对象集 30 还包括成员对象类型 46, 该对象类 型是表示核心对象和与该核心对象相关的用户之间的关系 ( 例如, 通过所有权或许可集 ) 的专门类型的资源。 对象分层架构对象集 30 还包括设备对象类型 48, 该对象类型是表示授 权向其传送对象分层结构的至少一部分, 并且授权在其上呈现所表示的计算环境的至少一 部分的设备的专门类型的资源。对象分层架构对象集 30 还包括映射对象类型 50, 该对象 类型是表示设备 ( 即, 设备对象 ) 和可被传递至该设备的核心对象之间的关系的专门类型 的资源。对象分层架构对象集 30 还包括简档对象类型 52, 该对象类型是表示计算环境的 至少一部分中的授权用户的用户简档的专门类型的资源。 这些对象类型基于资源对象类型 32, 并且这些对象类型的对象以与诸如文档和图像等更常规的对象类型相似的可定址且可 访问的方式被包括在对象分层结构中。
     对象分层架构对象集 30 还包括未从资源对象类型 32 中专门化的对象类型。这些 对象被包括在对象分层架构中, 但可以不作为可根据对象分层架构 30 的定址模型来定址 的条目来包括。 相反, 这些对象可包括其他对象的可访问成员, 或者对象分层架构的被封装 在对象分层架构 30 的定址模型之外的对象中的专门特征。作为一个示例, 对象分层架构对 象集 30 包括网格对象类型 54, 该对象类型包括关于整个对象分层结构的信息。通常, 单个 网格对象可以与特定对象分层结构相关联, 但该关联的变体可被包括在对象分层架构的其 他实施例中。 对象分层架构对象集 30 还包括存储服务对象类型 56, 该对象类型表示对象分 层结构的一部分 ( 例如, 一个或多个核心对象 ) 位于其上的存储设备。对象分层架构 20 还 包括资源集合对象类型 58, 该对象类型表示特定对象类型的资源的集合。 例如, 设备对象可 通过一个或多个相应的映射对象来与一个或多个核心对象相关联, 该映射对象可包括与该 设备相关联的映射对象的资源集合。类似地, 计算环境的用户简档可被表示为与对象分层 结构的网格单元素对象相关联的简档对象的资源集合。对象分层架构 20 还包括描述特定 用户的身份对象类型 60, 例如, 给予计算环境中的用户的许可。对象分层架构 20 还包括角 色对象类型 62, 该对象类型根据特定类型的角色 ( 例如, 所有者、 读者和贡献者 ) 来将成员 对象与核心对象相关。
     总而言之, 图 2 所示的对象类型构成对象分层架构的重要部分, 并且计算环境中 的许多对象可根据这些互相关的对象类型来表示。 鉴于这些对象类型和包括这些对象类型 的对象的对象分层结构, 图 3 示出了对象分层架构 70 的结构, 其中从第一对象到第二对象 的单箭头指示该第一对象与该第二对象的关系。同样, 在图 3 中, 从第一对象到第二对象的 双箭头指示该第一对象是该第二对象所指示的类型的一个或多个对象的集合。例如, 网格 对象 72 与设备集合 78 相关 ( 如单箭头所示 ), 该设备集合 78 包含设备对象 80 的集合 ( 如 双箭头所示 )。可以理解, 图 2 的对象分层架构对象集 30 示出了对象类型的专门化 ( 例如, 第一对象是第二对象的专门类型 ), 而图 3 的对象分层架构 70 示出了这些对象类型的对象在对象分层结构中的组织 ( 例如, 第一对象与一个或多个第二对象相关 )。
     图 3 呈现了此处所描述的包括网格对象 72 的示例性对象分层架构 70, 在该示例 性对象分层架构 70 中, 该网格对象包括描述计算环境的单元素对象。网格对象 72 与六种 类型的对象和对象集合相关。首先, 网格对象 72 与简档对象 74 相关, 在该示例性对象分层 架构 70 中, 简档对象 74 包括表示当前用户的简档的单元素对象。网格对象 72 还与存储服 务集合 76 相关, 该存储服务集合 76 包含表示可以存储对象分层结构的各部分的不同位置 的零个或更多存储服务对象 78。( 可以注意到, 存储服务集合 76 和存储服务 78 两者都不 被称为 “资源” , 因为这些对象不基于资源对象类型 32。) 网格对象 72 还与应用程序资源集 合 80 相关, 该应用程序资源集合 80 包含表示在对象分层结构所表示的计算环境中可用的 应用程序的零个或更多应用程序资源对象 82。网格对象 72 还与设备资源集合 76 相关, 该 设备资源集合 76 包含表示其上可呈现计算环境的至少一部分的设备的零个或更多设备资 源对象 84。最后, 网格 72 还与核心对象资源集合 92 相关, 该核心对象资源集合 92 包含包 括位于对象分层结构的根处的一组对象的零个或更多核心资源对象 94。
     如在图 3 的示例性对象分层架构 70 中进一步示出的, 核心资源对象 94 与四个对 象集合相关。首先, 核心资源对象 94 与包含至少零个映射资源对象 98 的映射资源集合 96 相关。映射资源对象 98 表示核心资源对象 94 与其上可呈现核心资源对象 98 的设备的关 系; 因此, 各个映射资源对象 98 与至少一个设备资源对象 86 相关。核心资源对象 94 还与 活动资源集合 100 相关, 该活动资源集合 100 包含表示诸如各种更改等相对于核心资源对 象 94 发生的较不重要的事件的零个或更多活动资源对象 102。核心资源对象 94 还与成员 资源集合 106 相关, 该成员资源集合 106 包含表示被给予对核心资源对象 94 的各种访问级 别的用户的一个或多个成员资源对象 106。各个成员资源对象 106 与一个或多个身份对象 108 相关, 该身份对象 108 提供关于成员资源对象 106 所表示的成员的附加信息。最后, 核 心资源对象 94 还与数据订阅源资源集合 110 相关, 该数据订阅源资源集合 110 包含表示各 种相关数据条目的集合 ( 例如, 相关用户对象的集合, 诸如音乐专辑中的歌曲 ) 的零个或更 多数据订阅源资源对象 112。数据订阅源资源对象 112 分别与数据条目资源对象 116 的数 据条目资源集合 114 相关。数据订阅源资源对象 112 还与角色对象 120 的角色集合 118 相 关, 角色对象 120 表示扩展到各个用户的相对于数据订阅源资源对象 112 的访问特权 ; 因 此, 角色对象 120 与表示拥有这些角色的用户的一个或多个成员资源对象 106 相关。
     图 3 的示例性对象分层架构 70 因此以表示构成典型的计算机系统的各种且各式 各样的数据对象的方式呈现了图 2 所示的对象类型的示例性组织。对象分层结构 ( 诸如图 1 的场景 10 中的示例性对象分层结构 14) 可以依照示例性对象分层架构 70 来建模, 并且 可由服务器 ( 诸如计算环境主机 12) 来主存, 该服务器可对对象分层结构 14 中的对象应用 一组服务以更改和维护计算环境。对象分层结构 14 还可被部署到被配置成接收依照图 3 的示例性对象分层架构 70 来建模的对象分层结构的一个或多个设备 ( 诸如蜂窝电话设备 16、 个人笔记本计算机 20、 以及公共工作站 24), 并且因此可呈现由此以一致的方式表示的 计算环境。
     可以理解, 对象分层架构的制定可用于创建表示计算环境的对象分层结构的实 例。 因此, 图 4 示出了表示计算环境的示例性方法 130, 其中该示例性方法 130 涉及将计算环 境表示为根据诸如图 3 的示例性对象分层架构 70 等对象分层架构来组织的对象分层结构。图 4 的示例性方法 130 在 132 处开始并涉及将计算环境表示 134 为包括描述计算环境的网 格对象的对象分层结构。该网格对象进而包括至少一个简档资源对象 ; 存储服务对象的存 储服务集合 ; 应用程序资源对象的应用程序资源集合 ; 设备资源对象的设备资源集合 ; 新 闻项资源对象的新闻项资源集合 ; 以及核心资源对象的核心对象资源集合。各个核心资源 对象进而包括将核心对象相关到至少一个设备对象的映射资源对象的映射资源集合 ; 活动 资源对象的活动资源集合 ; 将核心对象相关到至少一个身份对象的成员资源对象的成员资 源集合 ; 以及数据订阅源资源对象的数据订阅源资源集合。 最后, 各个数据订阅源资源对象 包括数据条目资源对象的数据条目资源集合, 以及将数据订阅源资源对象相关到核心资源 对象的成员资源对象的角色资源对象的角色资源集合。 通过以此方式组织对象分层结构中 的对象并使其相关, 该示例性方法以可部署的方式获取计算环境的表示, 并由此在 136 处 结束。
     图 5 示出了基于图 3 的示例性分层架构 70 并利用图 2 的对象分层架构对象集 30 中所示的对象类型的示例性对象分层结构 140。示例性对象分层结构 140 包括包含表示当 前用户的简档资源对象 144 的网格对象 142 ; 表示用于存储示例性对象分层结构 140 的存 储服务 ( 诸如计算环境主机和蜂窝电话设备 ) 的存储服务集合 146 ; 表示计算环境中可用 的应用程序集 ( 诸如日历应用程序和计算器应用程序 ) 的应用程序资源集合 148 ; 表示一 起构成计算环境的设备 ( 诸如工作站计算机系统和蜂窝电话设备 ) 的设备资源集合 150 ; 以及描述发生在计算环境中的值得注意的事件 ( 诸如新照片相册的创建和音乐专辑的添 加 ) 的新闻项资源集合 152。网格对象 142 还包含核心资源对象集合 154, 该核心资源对 象集合包含表示一组照片相册的第一核心资源对象 156 以及表示一组音乐专辑的第二核 心资源对象 166。第一核心资源对象 156 包含表示相对于第一核心资源对象 156 发生的较 不重要的事件的活动资源集合、 表示被给予对第一核心资源对象 156 的各种访问级别的成 员的成员资源集合、 以及将第一核心资源对象 156 相关到可通过其访问第一核心资源对象 156 的设备的映射集合。第一核心资源对象 156 还包含数据订阅源资源集合, 该集合包括 表示照片相册集合中的照片相册的数据订阅源资源对象 158。数据订阅源资源对象 158 进 而包含包括照片相册中的照片的数据条目资源集合 162、 以及表示成员相对于照片相册的 各种角色 ( 第一成员所拥有的 “所有者” 角色以及第二成员所拥有的 “贡献者” 角色 ) 的角 色资源集合 164。类似地, 第二核心资源对象 166 包含活动、 成员、 映射和数据订阅源的集 合, 包括表示具有表示音乐专辑中的各首歌曲的数据订阅源资源对象 170 的音乐专辑的数 据订阅源资源集合 172, 以及表示可访问音乐专辑的成员的角色资源集合 174( 包括第一成 员所拥有的 “所有者” 角色以及第二成员所拥有的 “收听者” 角色 )。
     如此处所讨论的那样设计的对象分层架构 ( 诸如图 3 的示例性对象分层架构 70) 可以用许多方面的变体来实现。某些变体可呈现增加的优点和 / 或相对于这些和其他技术 的其他变体减少缺点。在这些技术 ( 诸如图 4 的示例性方法 130) 的各实施例中, 这些变体 可单独地或结合其他变体来包括以促进这些增加的优点和 / 或减少的缺点。
     可随这些技术的实现而变化的第二方面涉及存储根据对象分层架构来组织的对 象分层结构中的对象的方式。 此处所描述的对象分层架构可以在对象分层结构的许多模型 中实现。某些示例性实施例在图 6 中示出, 这些实施例各自示出了表示人 ( 具有属性 “名” 和 “姓” )、 设备 ( 具有属性 “设备 ID” ) 和应用程序 ( 具有属性 “标题” 和 “二进制代码” , 后者包括可执行二进制代码的内容 ) 的对象的存储。作为第一示例 180, 对象分层架构可以 用诸如 C# 等面向对象语言来表现为对象集, 其中对象通过又被定义为已命名属性和方法 的明确类型的集合的类来实例化。 在该模型中, 可定义一组类, 并且可从每一个类实例化对 象以表示由该类建模的对象类型的实例。 例如, 类类型可被定义为表示人, 并且该类可被实 例化为表示第一人 (“David Smith” ) 的第一类实例 (“人 1” ) 以及表示第二人 (“John Lee” ) 的第二类实例 (“人 2” )。作为第二示例 190, 对象分层架构可被表现为存储在诸如 关系型数据库等数据存储中的一组对象。 每一种类型的对象都可被存储在根据对象的属性 来结构化的特定关系型表中。例如, 表可被结构化为存储各个人的表示, 并且可包含表示 第一人 (“David Smith” ) 的第一记录 (“人 1” ) 以及表示第二人 (“JohnLee” ) 的第二 记录 (“人 2” )。作为第三示例 200, 对象分层结构中的对象可依照对象分层架构中的对象 来建模, 但可以按提供属性名称和值的字典的结构不可知方式来存储。 可利用元组系统, 其 中任何名称的对象都可被声明为任意一组键 / 值元组。例如, 人的表示可作为表示第一人 (“David Smith” ) 的第一二元组 (“人 1” ) 以及表示第二人 (“John Lee” ) 的第二二元 组 (“人 2” ) 来存储。对象分层架构的这些和其他实施例可由本领域普通技术人员设计, 同时实现此处所讨论的技术。 可随这些技术的实现而变化的第二方面涉及以促进这些对象类型的可扩展性和 / 或新对象类型的添加的方式来制定对象分层架构。图 2 所示的对象类型可以完全足以表示 计算环境中的许多或所有对象。然而, 图 2 所示的示例性对象分层架构对象集 30 并非作为 可以定义并结合在对象分层架构中的对象类型的穷尽列表来呈现。 对象分层架构的各实施 例可包括和定义从图 2 所示的对象类型中专门化的、 作为对图 2 所示的对象类型的补充和 / 或次要更改的其他对象类型。此外, 对象分层架构的某些实施例可准许将其他类型的对 象存储在由此组织的对象分层结构中。对象分层架构因此可被设计成可扩展对象系统, 其 中对象可以在对象分层结构中根据新对象类型来创建, 并且对象类型可被扩展成具有新属 性。作为第一示例, 全新类型的对象可由各个用户设计并被插入到对象分层结构中。作为 第二示例, 用户可能希望将元数据与对象相关联以指示对象具有语义关系。该元数据可以 用对用户有价值的信息来补充对象分层结构中的对象, 并且对象分层架构可以按元数据不 干扰对象分层结构中的对象的表示的方式来设计。
     为了促进对象分层架构的可扩展性, 对象分层结构中的各个对象可根据可递归基 本表示格式来指定和存储, 其中对象的分量可以按基本方式表示。例如, 可以认识到, 对象 通常包含三种类型的数据元素 : 原子 ( 单个数据单元, 诸如数字或字符 )、 记录 ( 一起操作 的单个数据单元的集合 ) 以及序列 ( 元素的聚集 )。记录一般表示不可分割地一起用作表 示的一组元素, 诸如数字 7、 4 和 1776 一起表示日期 1776 年 7 月 4 日 ; 而序列表示一组可分 割项目, 诸如 2、 3、 5 和 7 构成质数的子集。此外, 可以递归地设计语法, 这可准许嵌套特定 种类的元素 ( 例如, 序列的序列、 或包含作为记录的一个元素的序列的记录 )。通过以此方 式组织对象, 对象分层架构可准许表示已知对象类型 ( 诸如图 2 所示的那些对象类型 ) 的 对象以及表示未知对象类型的对象, 以及用诸如用户定义的元数据等新信息来扩展已知对 象类型。本领域的普通技术人员能够设计许多可扩展对象分层架构及其格式, 同时实现此 处所讨论的技术。
     可随这些技术的实现而变化的第三方面涉及可用于标识对象分层结构中的对象
     的定址模型。可以有利地选择该定址模型以反映构成对象分层结构的对象的分层安排 ( 即, 如果第一对象在分层结构上从属于第二对象, 则第一对象的地址在分层结构上从属于 第二对象的地址 )。 还可以有利地选择定址模型以便为每一个地址指定最多一个对象, 并且 使得对象保持可以在特定地址处定址直到且除非对象改变在对象分层结构中的位置或被 移除。 在对象分层架构的某些实施例中, 可设计定址模型以使得各个对象在单个地址可用, 以使得在第一地址可用的第一对象与在第二地址可用的第二对象相比是事实上的不同对 象。在对象分层架构的其他实施例中, 对象可以在两个或更多地址处访问。作为一个示例, 对象可以具有对象分层结构中的分层地址, 也可具有可用于区别地标识对象而不管其在对 象分层结构中的位置的全局区别地址。例如, 对象分层结构中的对象可被分配全局唯一标 识符 (GUID), 并且可根据对象分层结构中的一个或多个分层地址来访问或者根据其 GUID 不通过分层结构来访问。由此, 表示关于 John Lee 的联系人信息的对象可以在创建时被指 定 GUID0xF451D3E0, 并且可通过分层结构位置和名称 ( 例如, / 联系人 /JohnLee) 或通过其 GUID( 例如, /GUID/F451D3E0) 来访问。本领域的普通技术人员可设计用于对象分层架构的 许多定制模型, 同时实现此处所讨论的技术。
     可以是有利的一种这样的定址模型涉及为对象分层结构的各个地址定义资源对 象类型的最多一个对象的分层定址模型。该定址模型可以适用于包括诸如图 2 的示例性对 象分层架构对象集 30 所示的对象类型的对象分层架构, 其中许多对象类型从基础资源对 象类型 32 导出。从中导出的任何这样的对象可被授予对象分层结构中的单个、 分层定向的 地址 ; 相反, 并非从资源对象类型 32 导出的对象可能无法通过该定址模型获得。更具体而 言, 该分层定址模型可根据统一资源标识符 (URI) 分层定址模型来定义。 URI 通常根据以下 句法来定义 :
     方案 :// 授权机构 / 路径 / 资源名称
     其中方案表示通信协议 (HTTP、 FTP、 telnet 等 ), 授权机构表示服务器或数据源, 而路径表示到分层结构中存在已命名资源的节点的斜杠分隔的路径。基于对象分层架构 ( 诸如图 3 的示例性对象分层架构 70) 的对象分层结构的对象能够以此方式定址, 诸如 :
     http://mycomputer.com/Contacts/JohnLee
     该定址模型在若干方面可以是有利的。第一, 可以此方式定址的对象分层结构可 由公共 web 服务器来主存, 即使该 web 服务器未被专门被配置成存储表示计算环境的对象 分层结构中的对象。第二, 以方式指定的对象访问可由主要被配置成处理基于 URI 的请求 的联网硬件 ( 例如, 防火墙和路由器 ) 来更容易地处理。第三, 可以此方式定址的对象分层 结构可根据代表性状态传输 (“REST” ) 接口来表示, 其中对象分层结构中的对象可通过一 组受约束的明确定义的操作来操作 ; 例如, 常见 HTTP 方法 (PUT、 GET、 POST 和 DELETE) 可以 完全足以启用用于访问表示计算环境的对象分层结构中的对象的常见动词 ( 创建、 读取、 更新和删除 )。 与用于各种对象分层架构的其他定址模型相比, 可提供其他优点和 / 或减少 其他缺点。
     可随这些技术的实现而变化的第四方面涉及对象分层架构中所定义的已知对象 类型的分量。 图 2 所示的示例性对象分层架构对象集 30 并非作为可以定义并结合在对象分 层架构中的对象类型的穷尽列表, 也不是作为包括这些对象类型的完整属性集来呈现。 图7 示出了示例性附加对象属性集 210, 包括可以与对象分层架构的对象类型相关联的附加对象属性。可以选择 ( 单独地或结合其他附加对象属性 ) 这些附加对象属性以便进一步定义 根据对象分层架构来组织的对象分层结构中的对象, 这可对于对象分层架构定义具有不同 对象属性集的对象类型呈现附加优点和 / 或减少缺点。
     如示例性附加对象属性集 210 所示, 网格对象类型 54 可以与包括自链接对象和 / 或标题对象的附加属性相关联, 该自链接对象指定网格中的地址 ( 例如, 定义网格的服务 器或源的部分 URI, 诸如 http://mycomputer.com), 标题对象指定对象分层结构和由此表 示的计算环境的名称。资源对象类型 32 和资源集合对象类型 58 两者都可以与较大范围的 属性相关联, 包括 : 标识资源或资源集合的作者的作者集合 ; 指定资源或资源集合中所包 含的项目的基地址 ( 例如, 基础 URI) 的基地址对象 ; 指定描述资源或资源集合的某些用户 定义的类别的类别集合 ; 指定资源或资源集合的贡献者的贡献者集合 ; 标识对于资源或资 源集合的版权声明的版权对象 ; 诸如全局唯一标识符 (GUID) 等标识对象 ; 标识与资源或资 源集合相关的链接 ( 例如, URL) 的链接集合 ; 指定资源或资源对象的区别地址 ( 例如, URI) 的自链接对象 ; 包含资源或资源集合的文本概述的概述对象 ; 和 / 或指定资源或资源集合 的名称的标题对象。
     如在示例性附加对象属性集 210 中进一步示出的, 核心对象类型 34 可以与包含与 该核心对象相关联的一组任意分配的用户数据 ( 例如, 域专用元数据 ) 的用户数据对象相 关联。 应用程序对象类型 36 可以与以下对象相关联 : 区别标识应用程序的应用程序标识对 象 ( 例如, 应用程序名称 ) ; 标识应用程序的主页的主页位置对象 ( 例如, 网站 URL) ; 标识对 象分层结构中的应用程序的当前版本的安装版本位置 ( 例如, 计算器版本 1.2.1.1600) ; 标 识应用程序清单的位置的清单位置对象 ( 例如, 标识对象分层结构中的资源对象的 URI, 或 者标识 web 可访问应用程序清单的 URL) ; 和 / 或标识在清单位置可用的应用程序清单的版 本的清单版本对象。 数据条目对象类型 38 可以与以下对象相关联 : 指示数据条目对象的分 层父对象的父对象标识对象、 包含对象同步信息 ( 例如, 最新对象同步指示符、 该数据条目 最后一次与计算环境主机同步的日期和时间等 ) 的同步对象、 和 / 或包含与数据条目相关 联的一组任意分配的用户数据的用户数据对象。数据订阅源对象类型 42 可以与包括一组 同步相关活动或新闻项的同步条目集合和 / 或指示数据订阅源的类型 ( 例如, 图像或声音 的集合、 多媒体文档的组件等 ) 的数据订阅源类型对象相关联。
     如在示例性附加对象属性集 210 中进一步示出的, 活动对象类型 44 可以与描述活 动类型 ( 例如, 数据条目创建、 读取、 更新或删除 ) 的活动类型对象、 和 / 或定义活动的最大 有用生存期的最大年龄对象相关联, 超过该生存期活动可表示不再有用地存储并呈现给用 户的过时事件。成员对象类型 46 可以与以下对象相关联 : 指示被邀请成为资源或资源集 合的成员的一个人是否已接受该邀请的邀请接受指示符对象 ; 指示成为资源或资源集合的 成员的邀请是否已期满的邀请期满指示符 ; 指示成员是否是资源或资源集合的所有者的所 有者指示符 ; 和 / 或指示成员相对于资源或资源集合所拥有的角色类型 ( 例如, 作者、 读者 等 ) 的角色类型对象。设备对象类型 48 可以与描述所表示的设备所属的一般设备类别的 设备类型对象和 / 或指示当前表示计算环境的设备当前是否可访问该设备的设备在线指 示符对象相关联。映射对象类型 50 可以与标识核心资源对象中的映射到设备的特定数据 订阅源的数据订阅源映射集合相关联。例如, 设备可以通过映射对象类型 50 的对象来映射 到核心对象的子集, 但该映射可被限于映射对象的数据订阅源映射集合中所标识的特定数据订阅源。简档对象类型 52 可以与表示用户姓名的姓名对象和 / 或表示用户的电子邮件 地址联系方式的电子邮件地址对象相关联。最后, 角色对象类型 62 可以与以下对象相关 联: 标识与角色相关联的许可的创建许可指示符对象、 删除许可指示符对象、 读取许可指示 符对象、 和 / 或更新许可指示符对象、 和 / 或标识该角色的用户所拥有的角色类型的角色类 型对象。
     图 7 的示例性附加对象属性 210 由此示出了可以进一步与对象分层架构中的各种 对象类型相关联 ( 单独或组合 ) 的某些对象属性。然而, 可以理解, 附加对象属性集 210 并 非作为可以与这样的对象分层架构中的各种对象类型相关联的对象属性的穷尽列表来呈 现, 并且许多其他对象属性可另选地或另外地与各种对象类型相关联。本领域的普通技术 人员能够在对象分层架构的各种已知对象类型的定义中包括附加或替换对象属性, 同时实 现此处所讨论的技术。
     此处所讨论的技术的另一实施例涉及包括处理器可执行指令的计算机可读介质, 这些指令被配置成执行一种根据对分层结构来表示计算环境的方法。 可以用这些方式设计 的一种示例性计算机可读介质在图 8 中示出, 其中实现 220 包括其上编码有计算机可读数 据 224 的计算机可读介质 222( 例如, CD-R、 DVD-R、 或硬盘驱动器的盘片 )。该计算机可读 数据 224 又包括被配置成根据此次阐述的原理来操作的一组计算机指令 226。在一个这样 的实施例 220 中, 处理器可执行指令 226 可被配置成执行一种根据对象分层结构来表示计 算环境的方法, 诸如图 4 的示例性方法 130。 本领域普通技术人员可以设计可被配置成根据 此处描述的技术操作的许多这样的计算机可读介质。 尽管用结构特征和 / 或方法动作专用的语言描述了本主题, 但可以理解, 所附权 利要求书中定义的主题不必限于上述具体特征或动作。相反, 上文所描述的具体特征和动 作是作为实现权利要求的示例形式来公开的。
     如在本申请中所使用的, 术语 “组件” 、 “模块” 、 “系统” 、 “接口” 等一般旨在表示计 算机相关的实体, 该实体可以是硬件、 硬件和软件的组合、 软件、 或者执行中的软件。例如, 组件可以是, 但不限于是, 在处理器上运行的进程、 处理器、 对象、 可执行码、 执行的线程、 程 序和 / 或计算机。作为说明, 运行在控制器上的应用程序和控制器都可以是组件。一个或 多个组件可以驻留在进程和 / 或执行的线程中, 并且组件可以位于一个计算机内和 / 或分 布在两个或更多的计算机之间。
     此外, 所要求保护的主题可以使用产生控制计算机以实现所公开的主题的软件、 固件、 硬件或其任意组合的标准编程和 / 或工程技术而被实现为方法、 装置或制品。在此使 用的术语 “制品” 旨在涵盖可以从任何计算机可读设备、 载体或介质访问的计算机程序。当 然, 本领域的技术人员将会认识到, 在不背离所要求保护的主题的范围或精神的前提下可 以对这一配置进行许多修改。
     图 9 和以下讨论提供了对用于实现此处所阐述的原理中的一个或多个实施例的 合适计算环境的简要、 概括描述。图 9 的操作环境只是合适的操作环境的一个示例, 并不旨 在对该操作环境的使用范围或功能提出任何限制。示例计算设备包括但不限于个人计算 机、 服务器计算机、 手持式或膝上型设备、 移动设备 ( 诸如移动电话、 个人数字助理 (PDA)、 媒体播放器等等 )、 多处理器系统、 消费电子产品、 小型计算机、 大型计算机、 包括任何以上 系统或设备的分布式计算环境等等。
     各实施例可以在由一个或多个计算设备执行的 “计算机可读指令” 的一般上下文 中描述。计算机可读指令可通过计算机可读介质来分发 ( 在以下讨论 )。计算机可读指令 可被实现为执行特定任务或实现特定抽象数据类型的程序模块, 如函数、 对象、 应用程序编 程接口 (API)、 数据结构等等。通常, 计算机可读指令的功能可按需在各个环境中组合或分 布。
     图 9 示出了包括被配置成实现此处所提供的一个或多个实施例的计算设备 232 的 系统 230 的示例。在一种配置中, 计算设备 232 包括至少一个处理单元 236 和存储器 238。 取决于计算设备的确切配置和类型, 存储器 238 可以是易失性的 ( 如 RAM)、 非易失性的 ( 如 ROM、 闪存等 ) 或是两者的某种组合。该配置在图 9 中由虚线 234 来示出。
     在其他实施例中, 设备 232 可以包括附加特征和 / 或功能。例如, 设备 232 还可以 包括附加存储 ( 例如, 可移动和 / 或不可移动 ), 其中包括但不限于磁存储、 光存储等等。 这 样的附加存储在图 9 中由存储 240 示出。在一个实施例中, 用于实现此处所提供的一个或 多个实施例的计算机可读指令可以在存储 240 中。存储 240 还可以储存实现操作系统、 应 用程序等的其他计算机可读指令。可以在存储器 238 中加载计算机可读指令以便由例如处 理单元 236 来执行。 此处所使用的术语 “计算机可读介质” 包括计算机存储介质。计算机存储介质包 括以用于存储诸如计算机可读指令或其他数据等信息的任何方法或技术来实现的易失性 和非易失性、 可移动和不可移动介质。存储器 238 和存储 240 都是计算机存储介质的示例。 计算机存储介质包括但不限于, RAM、 ROM、 EEPROM、 闪存或其他存储器技术、 CD-ROM、 数字多 功能盘 (DVD) 或其他光存储、 磁带盒、 磁带、 磁盘存储或其他磁存储设备、 或者可用于存储 所需信息并且可由设备 232 访问的任何其他介质。任何这样的计算机存储介质都可以是设 备 232 的一部分。
     设备 232 还可包括允许该设备 232 与其他设备进行通信的通信连接 246。通信连 接 246 可包括但不限于, 调制解调器、 网络接口卡 (NIC)、 集成网络接口、 射频发射机 / 接收 机、 红外线端口、 USB 连接、 或用于将计算设备 232 连接到其他计算设备的其他接口。通信 连接 246 可以包括有线连接或无线连接。通信连接 246 可以发送和 / 或接收通信媒体。
     术语 “计算机可读介质” 可以包括通信介质。 通信介质通常以诸如载波或其他传输 机制等 “已调制数据信号” 来体现计算机可读指令或其他数据, 并包括任何信息传送介质。 术语 “已调制数据信号” 指以对信号中的信息进行编码的方式设置或改变其一个或多个特 征的信号。
     设备 232 可包括输入设备 244, 诸如键盘、 鼠标、 笔、 语音输入设备、 触摸输入设备、 红外照相机、 视频输入设备和 / 或任何其他输入设备。设备 232 中还可包括输出设备 242, 诸如一个或多个显示器、 扬声器、 打印机和 / 或任何其他输出设备。输入设备 244 和输出设 备 242 可以通过有线连接、 无线连接或其任何组合来连接到设备 232。在一个实施例中, 来 自另一计算设备的输入设备或输出设备可用作计算设备 232 的输入设备 244 或输出设备 242。
     计算设备 232 的组件可以通过诸如总线等各种互连来连接。这些互连可包括诸如 PCI Express 等外围部件互连 (PCI)、 通用串行总线 (USB)、 火线 (IEEE1394)、 光学总线结构 等。在另一实施例中, 计算设备 232 的组件可以通过网络互连。例如, 存储器 238 可由位于
     通过网络互连的不同物理位置的多个物理存储器单元组成。
     本领域技术人员会认识到, 用于存储计算机可读指令的存储设备可分布在网络 上。例如, 可以通过网络 248 访问的计算设备 250 可以存储实现此处所提供的一个或多个 实施例的计算机可读指令。计算设备 232 可以访问计算设备 250 并下载部分或全部计算机 可读指令来执行。或者, 计算设备 232 可以按需下载计算机可读指令的片断, 或者某些指令 可以在计算设备 232 处执行而某些则在计算设备 250 处执行。
     此处提供了各实施例的各种操作。在一个实施例中, 所描述的操作中的一个或多 个可以组成储存在一个或多个计算机可读介质上的计算机可读指令, 这些指令如果被计算 设备执行则使得计算设备执行所描述的操作。 描述一些或全部操作的顺序不被解释为暗示 了这些操作必须要依赖于顺序。从本说明书获益的本领域技术人员应理解替换的排序。此 外, 应该理解并非所有的操作都必须存在于此处所提供的每一实施例中。
     此外, 在此使用词语 “示例性” 意指用作示例、 实例或说明。 在此被描述为 “示例性” 的任何方面或设计并不一定被解释为比其他方面或设计有利。相反, 使用词语 “示例性” 旨 在以具体的方式呈现各个概念。如本申请中所使用的, 术语 “或” 意指包括性 “或” 而非互 斥性 “或” 。即, 除非另有指定或从上下文可以清楚, 否则 “X 使用 A 或 B” 意指任何自然的包 括性排列。即, 如果 X 使用 A ; X 使用 B ; 或 X 使用 A 和 B 两者, 则在任何以上情况下, 都满足 “X 使用 A 或 B” 。另外, 本申请中和所附权利要求书中所使用的冠词 “一” 和 “一个” 一般可 被解释为是指 “一个或多个” , 除非另有指定或从上下文可以清楚指的是单数形式。
     同样, 虽然参考一个或多个实现示出并描述了本发明, 但本领域技术人员基于对 本说明书和附图的阅读和理解可以想到各种等效替换和修改。 本发明包括所有这些修改和 替换并且只由所附权利要求书来限定。特别地, 对于由上述组件 ( 例如, 元素、 资源等 ) 执 行的各种功能, 除非另外指明, 否则用于描述这些组件的术语旨在对应于执行所描述的执 行此处在本发明的示例性实现中所示的功能的组件的指定功能 ( 例如, 功能上等效 ) 的任 何组件, 即使这些组件在结构上不等效于所公开的结构。 另外, 尽管可相对于若干实现中的 仅一个实现来公开本发明的一个特定特征, 但是这一特征可以如对任何给定或特定应用所 需且有利地与其它实现的一个或多个其它特征相组合。此外, 就在说明书或权利要求书中 使用术语 “包含” 、 “具有” 、 “含有” 和 “带有” 及其变体而言, 这些术语旨在以与术语 “包括” 相似的方式为包含性的。

计算环境表示.pdf_第1页
第1页 / 共26页
计算环境表示.pdf_第2页
第2页 / 共26页
计算环境表示.pdf_第3页
第3页 / 共26页
点击查看更多>>
资源描述

《计算环境表示.pdf》由会员分享,可在线阅读,更多相关《计算环境表示.pdf(26页珍藏版)》请在专利查询网上搜索。

1、10申请公布号CN101978369A43申请公布日20110216CN101978369ACN101978369A21申请号200980110676322申请日2009021912/052,55420080320USG06F17/00200601G06F17/21200601G06F9/0620060171申请人微软公司地址美国华盛顿州72发明人D舒克拉O阿米加V瓦苏J张74专利代理机构上海专利商标事务所有限公司31100代理人杨洁钱静芳54发明名称计算环境表示57摘要计算环境可被表示为可部署对象分层结构,该可部署对象分层结构可根据通常在计算环境主机和被配置成呈现该计算环境的设备之间共享的对。

2、象分层架构来组织。详细地呈现了用于表示计算环境的特定对象分层架构,其中该计算环境中的许多对象被建模为可区别定址的资源例如,在具有REST特性RESTFUL的对象分层结构中。呈现许多类型的对象及其属性以阐明示例性对象分层架构并示出示例性对象和根据该架构来组织的对象分层结构。各种对象分层架构的其他特性包括可扩展性、可部署性以及具有各种优点的对象定址模型。30优先权数据85PCT申请进入国家阶段日2010092086PCT申请的申请数据PCT/US2009/0344422009021987PCT申请的公布数据WO2009/117201EN2009092451INTCL19中华人民共和国国家知识产权局。

3、12发明专利申请权利要求书2页说明书14页附图9页CN101978374A1/2页21一种表示计算环境的方法50,所述方法50包括在对象分层结构10中表示54所述计算环境中的对象,各个对象根据可递归基本表示格式来表示。2如权利要求1所述的方法,其特征在于,所述可递归基本表示格式包括原子记录的可递归序列。3如权利要求1所述的方法,其特征在于,所述对象分层结构被表示为XML。4如权利要求1所述的方法,其特征在于,至少一个对象被表示为未扩展节点。5如权利要求4所述的方法,其特征在于,所述方法包括在接收到扩展未扩展节点的请求时,提供所述未扩展节点的对象。6如权利要求1所述的方法,其特征在于所述未扩展节。

4、点引用包含所述未扩展节点的对象的对象存储,并且所述方法包括在接收到扩展引用对象存储的未扩展节点的请求时向所述对象存储请求所述对象;以及在接收到来自所述对象存储的对象时,响应于所述请求来提供所述对象。7如权利要求1所述的方法,其特征在于所述计算环境被表示到设备,并且所述表示根据所述设备的能力来调整。8如权利要求7所述的方法,其特征在于所述设备的能力包括设备存储能力,并且所述调整包括用至少一个未扩展节点来表示所述计算环境以将所表示的计算环境的大小限于不超过所述设备存储容量。9如权利要求1所述的方法,其特征在于所述计算环境被表示给用户,并且所述表示根据所述用户来调整。10如权利要求9所述的方法,其特。

5、征在于所述计算环境指定所述用户的用户帐户,所述计算环境指定所述用户帐户对于所述计算环境的对象的访问特权,并且所述调整包括用至少一个未扩展节点来表示所述计算环境,所述至少一个未扩展节点表示所述对象分层结构中根据所述用户帐户的访问特权来对所述用户限制的一部分。11如权利要求1所述的方法,其特征在于,包括将所述计算环境从所述可递归基本表示格式变换成数据交换格式。12如权利要求1所述的方法,其特征在于,包括将所述计算环境中的对象编组为平台表示格式的至少一个类的实例。13如权利要求1所述的方法,其特征在于,包括计算环境表示组件,所述计算环境表示组件被配置成接收对指定数据交换格式的计算环境的请求;以及将所。

6、述计算环境从所述可递归基本表示格式变换成所述数据交换格式。14如权利要求1所述的方法,其特征在于,包括查询对象服务;权利要求书CN101978369ACN101978374A2/2页3同步对象服务;以及报告对象事件服务。15如权利要求14所述的方法,其特征在于,包括被配置成存储构成所述计算环境的对象的计算环境对象存储62;计算环境表示组件64,所述计算环境表示组件被配置成在对象分层结构10中表示所述计算环境的对象,各个对象根据可递归基本表示格式来表示;以及计算环境服务集66,所述计算环境服务集包括被配置成操作所述计算环境的对象的至少一个计算环境服务。权利要求书CN101978369ACN101。

7、978374A1/14页4计算环境表示0001背景0002许多计算环境都包括由一组对象系统管理的大型且不同的对象集合。例如,计算环境可包括由文件系统管理的文件集合、由数据库系统管理的一个或多个数据库、表示应用程序并由汇编高速缓存管理的可执行二进制代码集合、由操作系统的用户简档组件管理的用户简档集合、以及由数据高速缓存组件管理的各种数据高速缓存,如由操作系统的复制缓冲器管理的复制项的集合、由操作系统的撤消组件管理的撤消动作的集合、以及由操作系统的项使用跟踪组件管理的“最近使用”项的集合。此外,可以在由一个或多个用户操作的多个设备之间并且根据一个或多个操作例如,归并两个对象集的对象同步操作以及调整。

8、目标对象集以与源对象集相匹配的对象镜像操作来交换这些对象。以此方式,这些对象通过一组对象系统来松组织并聚集以表示计算环境。0003概述0004提供本概述是为了以简化的形式介绍将在以下详细描述中进一步描述的一些概念。本概述并不旨在标识出所要求保护的主题的关键因素或必要特征,也不旨在用于限定所要求保护的主题的范围。0005将计算系统内的对象组织成一组脱节的、松聚集的对象系统可以造成若干问题。例如,可能难以通过各种设备向用户呈现一致的计算环境,尤其是在这些设备能力不同的情况下例如,高性能个人工作站、基于浏览器的公共终端、以及低性能蜂窝电话设备。作为另一示例,将诸如同步和备份等服务应用于对象可涉及与每。

9、一对象系统进行接口以影响由此管理的对象,并且这样的接口可以随对象系统而变化。作为第三示例,使一组不同的对象相关诸如所有对象构成一应用程序可能由于管理对象系统的不完全协作而是困难的。0006用于表示构成计算环境的对象的一种替换技术涉及在可由计算环境主机来主存的对象分层结构中组织这些对象。如果对象是由对象系统以统一的方式表示并以一致的方式来管理的,则可以设计一组服务以应用于计算环境的所有对象。此外,对象分层结构可被传递到各个设备以表示同一计算环境包括相同的用户简档、应用程序、数据文件等,并且每一设备可以用一致的方式来呈现该计算环境,但基于该设备的能力例如,用于从附连到工作站的键盘设备接收数据输入的。

10、硬键盘接口,以及用于从蜂窝电话设备接收数据输入的触摸屏软键盘接口来定制该计算环境。0007此处所呈现的是一种这样的表示,其中对象分层结构根据对象分层架构来结构化,该对象分层架构定义一组各种类型的资源,诸如应用程序、包括一组活动的活动集合、以及包括一组用户简档的用户简档集合。根据此处所指定的对象分层架构的对象组织可提供胜于这些对象的其他表示和组织的某些优点。例如,此处所呈现的对象表示服从用特定种类的元数据来标记,并且这些元数据可以类似地与不同种类的对象诸如应用程序、数据文件和设备相关联以启用域专用元数据。如此处所描述的那样安排的对象还可方便各种对象集在各种设备上的映射,这可准许计算环境相对于不同。

11、用户和设备的合乎需要的适应。这些和其他好处可通过此处所指定的对象分层架构来实现,这些好处可通过由对象分说明书CN101978369ACN101978374A2/14页5层结构来表示并由具有不同能力的设备来呈现的计算环境来展示。0008为实现上述和相关目的,以下描述和附图阐述了各个说明性方面和实现。这些方面和实现仅指示可使用一个或多个方面的各种方式中的一些。结合附图阅读以下详细描述,则本发明的其他方面、优点、以及新颖特征将变得显而易见。0009附图描述0010图1是计算环境主机与各计算环境呈现设备的示例性交互的图示。0011图2是示例性对象分层架构对象集的图示。0012图3是示例性对象分层架构的。

12、图示。0013图4是示出表示计算环境的示例性方法的流程图。0014图5是示例性对象分层结构的图示。0015图6是用于存储对象分层结构的对象的三种示例性存储技术的图示。0016图7是可以与对象分层架构的对象类型相关联的一组附加对象属性的图示。0017图8是包括被配置成实现此处所阐述的装置中的一个或多个的处理器可执行指令的示例性计算机可读介质的图示。0018图9示出了其中可实现此处所阐述的装置中的一个或多个的示例性计算环境。0019详细描述0020现在参考附图来描述所要求保护的主题,所有附图中使用相同的附图标记来指代相同的元素。在以下描述中,为解释起见,阐明了众多具体细节以提供对所要求保护的主题的。

13、全面理解。然而,很明显,所要求保护的主题可以在没有这些具体细节的情况下实施。在其他情况下,以框图形式示出了公知的结构和设备以便于描述所要求保护的主题。0021现代计算机系统包括大量且各种对象。许多计算机系统表征文件存储,该文件存储包含用于配置该计算机系统的文件包括可执行文件、类库、配置信息集和资源以及由一个或多个用户生成或接收的用户文件。许多计算机系统还包括包含计算机系统硬件和软件的各种各样的配置信息,包括计算机系统的硬件和设备、操作系统、外壳用户界面、以及该外壳用户界面中可用的应用程序的配置。还可存储各种用户简档和帐户,前者包括描述特定用户或用户类的信息姓名、外壳用户界面偏好、主目录等,而后。

14、者包括描述用户或类的特权文件所有权、读/写特权、对各种设备的访问权等的信息。诸如口令、证书、公钥/私钥对、以及访问控制列表等受保护的安全信息可被存储在安全对象中,操作系统可对该安全对象施加管制访问。可以存在一个或多个数据高速缓存,诸如浏览器高速缓存和历史、应用程序或浏览器文本框中的最近输入、以及最近使用的文件和对象列表。各种应用程序可创建应用程序或任务专用档案,诸如包含各种文件夹和消息的电子邮件档案以及包含由各个系统用户从各个源接收到的并在用户定义的组中组织的联系人信息的共享地址簿。最后,计算机系统可被配置成与其他计算机、用户和设备交换特定信息集,诸如要同步的对象以及可以在各种条件下授予对其的。

15、访问权读/写特权、所有权、定额等的对象集。这些对象类型通常由各种管理系统例如,文件系统、系统注册表存储、用户帐户管理系统、以及电子邮件系统在计算机系统中以特别方式来管理,但访问方法或对象组织的一致性或标准化极少。0022将计算系统内的对象组织成一组脱节的、松聚集的对象系统可以造成若干问题。作为第一示例,呈现并维护包括一组一致的对象诸如文件、应用程序、用户简档、应用程说明书CN101978369ACN101978374A3/14页6序配置、数据高速缓存等的一致的计算环境可能是非常困难的,尤其是在诸如个人工作站、公共终端和蜂窝设备等具有不同能力的设备之间。作为第二示例,将服务应用于对象可能由于将不。

16、同的对象存储在多个对象系统中而复杂化。例如,定位匹配特定描述的对象诸如在特定时间跨度内最后一次修改的对象可涉及通过一个或多个文件系统来查询匹配的文件、通过数据库系统来与数据库记录进行匹配、通过系统注册表来与注册表键进行匹配、通过汇编高速缓存来与应用程序进行匹配、通过各种数据高速缓存来与数据高速缓存项进行匹配等。因为这些对象系统通常以非标准方式存储相关联的对象,诸如按照特定于对象性质的参数例如,通过文件系统日志来检查文件记录,以及通过数据专用时间戳来检查数据库记录,所以对各种对象中的每一个应用操作可能是困难的。作为第三示例,因为每一个对象系统都被配置成管理特定种类的对象,所以混合各种类型的对象并。

17、使其相关可能困难的。例如,应用程序可包括存储在汇编高速缓存中的可执行二进制代码、存储在系统注册表中的某些配置信息、存储在文件系统中的补充文件诸如各种语言的字典、以及存储在数据高速缓存中的事件诸如最近编辑的文档。可能难以表示各种系统中的这些对象类型的关联,并且一起操纵所有这些对象例如,删除所有这些对象以卸载应用程序。作为第四示例,计算机系统的对象集可以分布在若干设备上,并且提供对这些对象集的一致访问可能由于设备的各种配置、每一个设备的物理能力、以及每一个设备用来交换数据的线格式的不兼容性例如,第一设备可被配置成根据XML架构来交换数据,而第二设备可被配置成根据JSON来交换数据而复杂化。0023。

18、可设计一种替换方法,其中计算环境以可被传递至设备的方式来表示以便根据设备的能力来呈现。该表示包括根据对象分层结构来组织并根据共同语法来表示的一组对象。这些对象包括计算机系统的数据对象,诸如用户文件和用户创建的数据。这些对象还包括构成操作系统组件的可执行二进制代码和类库,诸如外壳以及其中提供的应用程序。该对象还包括指定计算环境的用户界面的信息,包括外壳偏好例如,视觉主题、应用程序启动菜单、以及双击阈值、用户帐户及特权、安全信息例如,口令、安全令牌、以及证书、应用程序二进制代码和配置信息、用户数据和元数据例如,文件共享信息、以及数据高速缓存例如,最近使用的文件列表和浏览器历史。尽管这些对象具有各种。

19、性质和用途,但这些对象在对象分层结构中是以共同的方式来表示的,并且可在该分层结构中任意组织。因此,与包括各自包含一种类型的对象的一组隔离数据存储例如,包含文件的文件系统、包含配置信息的注册表、以及包含浏览器历史的数据高速缓存的先前的系统相反,该方法中的对象分层结构在对象分层结构中以共同的方式组织所有这些对象。0024以此方式表示的计算环境可被传递到任何设备并以适于该设备的能力的方式来呈现。例如,工作站可作为稳健且通用的计算环境来呈现信息,而公共工作站可以通过WEB浏览器呈现不同的计算环境体验例如,作为可在用户的会话结束时丢弃的虚拟机,并且蜂窝电话可提供具有对蜂窝电话相关信息例如,联系人、日历、。

20、以及导航数据的更快访问的更瘦的界面。此外,对该信息集的更新例如,偏好改变和对其中包含的数据文件的更新可被应用于该信息集的规范源,并且因此被传播到该信息集被传递到的所有其他设备。同样,共享该计算环境的设备可以通过该共享信息集来集成,使得一个设备可以与在该信息集中标识的其他设备进行交互;例如,存储在第一设备上的数据可由第二设备访问,并且第一设备可由第二设备通过通信管道来控制。该信息集因此可以标识共享该计算环境的说明书CN101978369ACN101978374A4/14页7设备的集合,以及每一设备的角色、能力、以及资源,以便跨可能大量且各种设备来提供集成计算体验。0025图1示出一个这样的场景1。

21、0,其中计算环境可由计算环境主机12主存,计算环境主机42可以存储并管理对象分层结构14。计算环境主机12还可以代表各种设备如蜂窝电话设备16、个人笔记本计算机20、以及公共工作站24并且还代表具有不同访问特权的不同类型的用户,以不同的方式呈现对象分层结构14。该计算环境的呈现因此反映了跨展示相同的应用程序、用户简档、外壳配置、用户数据对象等的所有设备的一致计算环境。因此,用户可以通过高性能笔记本计算机访问该计算环境的全特征版本22、在低功率蜂窝电话设备16上访问该计算环境的精简版本18、以及通过公共终端24的WEB浏览器146访问该计算环境的可兼容浏览器并且面向隐私的版本28。在每一这样的设。

22、备的能力支持该计算环境的呈现的程度上,由于根据每一设备的能力调整了对象分层结构14的呈现,所以可以呈现一致的用户界面和数据集。对计算环境的更新可以传播回计算环境主机12,并且可以与其他设备自动进行同步。各设备还可以通过与其他设备共享存储在本地的数据并且通过控制其他设备或由其他设备控制来进行协作。因此,可将该计算环境设计并呈现为云计算体系结构,包括表达为跨形成同一计算环境的各协作门户具有设备专用属性的网格的所有设备“客户机”的一致呈现的设备无关表示“云”。此外,计算环境主机12可以将服务应用于构成对象分层结构14的各个对象,并且将对象存储在该对象分层结构中的共同格式可以便于这些服务的一致可用性和。

23、应用,而不论向其应用这些服务的对象的性质如何。0026除这些目的之外,对象分层架构可被设计成以特定方式来组织该对象分层结构的各个对象。例如,可以设计并结构化各个对象以表示数据对象如,文件、用户和用户帐户、设备和该计算环境中发生的事件、以及来历、所有权、以及它们之间的相互关系。相对于对象的其他组织而言,组织对象的这一方式可以产生特定优点和/或减少缺点。因此,根据其来组织对象的该对象分层架构是鉴于这些对象和计算环境的使用来设计的。例如,可以通过将各个对象与具有各种许可集合的一个或多个用户帐户例如,第一用户帐户具有对一对象的读/写许可,第二用户帐户具有对该对象的只读许可,并且第三用户帐户没有对该对象。

24、的许可相关联来对安全许可建模。计算环境可被配置成根据对象分层架构的结构和语义来利用该对象分层结构的对象,从而允许以适用于每一设备的配置和能力但以其他方式在所有这样的设备之间一致的方式来跨多个设备呈现可部署计算环境。0027可以理解,对象分层架构的制定可以显著地影响设备和主存计算环境的服务器的配置。作为一个示例,设备可以只请求计算环境的一部分例如,蜂窝电话设备可以请求对象分层架构中包含诸如电话号码和电子邮件地址等一组联系人信息的部分,并且服务器可以只提供该部分;然而,如果该设备和服务器按不同的对象分层架构来操作,则请求可能失败。例如,设备可能根据第一对象分层架构来请求对象分层结构的特定部分例如,。

25、/联系人,但服务器可根据第二对象分层架构来将这一信息存储在该对象分层结构的不同部分例如,/地址簿/联系人中,并且因此可能无法提供所请求的信息,即使在该服务器主存的对象分层结构中存在联系人信息。作为第二示例,服务器能够根据任何对象分层架构来存储对象分层结构,但可被更有利地配置成利用对象分层结构的一部分,同时向其提供服务,并且因此可以期望找出在对象分层结构中根据特定对象分层架构来定义和组织的说明书CN101978369ACN101978374A5/14页8对象。例如,响应于设备接收对象分层结构的请求,服务器可尝试使用存储在对象分层结构中的认证信息来认证该设备。由此,该服务器可被更容易地配置成根据特。

26、定对象分层架构来主存对象分层结构,以使其还可访问和利用存储在该对象分层架构中的信息,同时提供与该分层架构相关的服务。0028鉴于上述原理,此处所呈现的是一种这样的对象分层架构,其中对象以方便服务器对计算环境应用服务以及计算环境到可以按一致但设备专用的方式呈现该计算环境的设备的可部署性的特定方式来定义和互相关。此处所描述的对象分层架构被呈现为一组已定义的对象,每一个定义都表示计算环境中的特定类型的数据对象例如,用户简档、应用程序和设备并且具有与其相关的特定属性。某些对象被定义为专门类型的其他对象,例如,通用“个人”对象类型可被扩展为表示“用户”对象类型,该对象类型可以是具有表示这个人在计算环境中。

27、的特权的附加信息的一个人。另外,某些对象被定义为用于一个或多个其他对象的容器,诸如包含一个或多个“人”对象类型的“人集合”对象类型。此外,此处所呈现的对象分层架构定义了此处在对象分层结构中定义的对象的分层组织;即,特定对象类型将被存储在对象分层结构中的特定位置,以使得在该对象分层结构中搜索这些对象的任何设备或计算机系统都将在该对象分层结构中的已知、所确定的位置找到存在于该计算环境中的任何事物。0029图2示出了对象分层架构的对象类型以及这些对象类型之间的扩展相互关系。在该附图中,对象关系示出了对象之间的专门化,例如,“动物”对象类型可能被专门化为“哺乳动物”对象类型,该“哺乳动物”对象类型可被。

28、进一步专门化为“猫”对象类型。此处讨论关于对象分层架构中的每一个对象的属性的细节,但该附图是作为对此处所呈现的对象分层架构中所包含的数据对象的类型的概览来呈现的。0030图2的对象分层架构对象集30包括资源对象类型32,该资源对象类型表示存储在该对象分层结构中的基本数据对象。资源对象类型32表示对象分层架构中用于提供对象分层结构中的可区别定址的位置的可定址对象;即,对于对象分层结构中的特定地址,在该对象分层结构中只有一个对象对应于该位置。在对象分层架构的某些实施例中,资源只可由一个地址来标识,而在对象分层架构的其他实施例中,资源可以在多个地址处标识。然而,在任一这样的实施例中,对象分层结构中的。

29、单个地址可以与最多一个对象相关联。0031图2的对象分层架构对象集30中的资源对象类型32用作对于许多其他对象类型的基础对象类型。这些对象类型中的若干对象类型对应于有时被设计为常规计算环境中的一个或多个文件的对象。作为第一示例,对象分层架构对象集30包括核心对象对象类型34、该对象类型是包括位于对象分层结构的根处的一组对象的专门类型的资源。对象分层架构对象集30还包括应用程序对象类型36,该对象类型是表示代表安装在计算环境中的应用程序的对象的专门类型的资源。许多其他对象可以与应用程序对象类型相关联,诸如标题、应用程序图标、以及一个或多个可执行二进制代码。对象分层架构对象集30还包括数据条目对象。

30、类型38,该对象类型是表示诸如应用程序二进制代码、文档、一组应用程序配置信息、图像等原子数据单元的容器的专门类型的资源。对象分层架构对象集30还包括新闻项对象类型40,该对象类型是表示计算环境中的值得注意的事件的专门类型的数据条目对象。0032资源对象类型还可用作对于其他对象类型的基础对象类型。作为一个示例,对象说明书CN101978369ACN101978374A6/14页9分层架构对象集30还包括数据订阅源对象类型43,该对象类型是表示诸如构成专辑的一组歌曲例如,MP3对象或构成照片相册的一组照片图像等相关数据条目的集合的专门类型的资源。对象分层架构对象集30还包括活动对象类型44,该对象。

31、类型是表示诸如对象创建、用户登录、以及计算环境中的设备添加等最近发生在计算环境中的事件的专门类型的资源。可以理解,活动表示诸如复制文本的一部分等在计算环境的普通过程中发生的、用户可能只是短暂地感兴趣的较不重要的事件,而新闻项表示诸如创建照片相册等用户可能长期感兴趣的较重要的事件。对象分层架构对象集30还包括成员对象类型46,该对象类型是表示核心对象和与该核心对象相关的用户之间的关系例如,通过所有权或许可集的专门类型的资源。对象分层架构对象集30还包括设备对象类型48,该对象类型是表示授权向其传送对象分层结构的至少一部分,并且授权在其上呈现所表示的计算环境的至少一部分的设备的专门类型的资源。对象。

32、分层架构对象集30还包括映射对象类型50,该对象类型是表示设备即,设备对象和可被传递至该设备的核心对象之间的关系的专门类型的资源。对象分层架构对象集30还包括简档对象类型52,该对象类型是表示计算环境的至少一部分中的授权用户的用户简档的专门类型的资源。这些对象类型基于资源对象类型32,并且这些对象类型的对象以与诸如文档和图像等更常规的对象类型相似的可定址且可访问的方式被包括在对象分层结构中。0033对象分层架构对象集30还包括未从资源对象类型32中专门化的对象类型。这些对象被包括在对象分层架构中,但可以不作为可根据对象分层架构30的定址模型来定址的条目来包括。相反,这些对象可包括其他对象的可访。

33、问成员,或者对象分层架构的被封装在对象分层架构30的定址模型之外的对象中的专门特征。作为一个示例,对象分层架构对象集30包括网格对象类型54,该对象类型包括关于整个对象分层结构的信息。通常,单个网格对象可以与特定对象分层结构相关联,但该关联的变体可被包括在对象分层架构的其他实施例中。对象分层架构对象集30还包括存储服务对象类型56,该对象类型表示对象分层结构的一部分例如,一个或多个核心对象位于其上的存储设备。对象分层架构20还包括资源集合对象类型58,该对象类型表示特定对象类型的资源的集合。例如,设备对象可通过一个或多个相应的映射对象来与一个或多个核心对象相关联,该映射对象可包括与该设备相关联。

34、的映射对象的资源集合。类似地,计算环境的用户简档可被表示为与对象分层结构的网格单元素对象相关联的简档对象的资源集合。对象分层架构20还包括描述特定用户的身份对象类型60,例如,给予计算环境中的用户的许可。对象分层架构20还包括角色对象类型62,该对象类型根据特定类型的角色例如,所有者、读者和贡献者来将成员对象与核心对象相关。0034总而言之,图2所示的对象类型构成对象分层架构的重要部分,并且计算环境中的许多对象可根据这些互相关的对象类型来表示。鉴于这些对象类型和包括这些对象类型的对象的对象分层结构,图3示出了对象分层架构70的结构,其中从第一对象到第二对象的单箭头指示该第一对象与该第二对象的关。

35、系。同样,在图3中,从第一对象到第二对象的双箭头指示该第一对象是该第二对象所指示的类型的一个或多个对象的集合。例如,网格对象72与设备集合78相关如单箭头所示,该设备集合78包含设备对象80的集合如双箭头所示。可以理解,图2的对象分层架构对象集30示出了对象类型的专门化例如,第一对象是第二对象的专门类型,而图3的对象分层架构70示出了这些对象类型的对象说明书CN101978369ACN101978374A7/14页10在对象分层结构中的组织例如,第一对象与一个或多个第二对象相关。0035图3呈现了此处所描述的包括网格对象72的示例性对象分层架构70,在该示例性对象分层架构70中,该网格对象包括。

36、描述计算环境的单元素对象。网格对象72与六种类型的对象和对象集合相关。首先,网格对象72与简档对象74相关,在该示例性对象分层架构70中,简档对象74包括表示当前用户的简档的单元素对象。网格对象72还与存储服务集合76相关,该存储服务集合76包含表示可以存储对象分层结构的各部分的不同位置的零个或更多存储服务对象78。可以注意到,存储服务集合76和存储服务78两者都不被称为“资源”,因为这些对象不基于资源对象类型32。网格对象72还与应用程序资源集合80相关,该应用程序资源集合80包含表示在对象分层结构所表示的计算环境中可用的应用程序的零个或更多应用程序资源对象82。网格对象72还与设备资源集合。

37、76相关,该设备资源集合76包含表示其上可呈现计算环境的至少一部分的设备的零个或更多设备资源对象84。最后,网格72还与核心对象资源集合92相关,该核心对象资源集合92包含包括位于对象分层结构的根处的一组对象的零个或更多核心资源对象94。0036如在图3的示例性对象分层架构70中进一步示出的,核心资源对象94与四个对象集合相关。首先,核心资源对象94与包含至少零个映射资源对象98的映射资源集合96相关。映射资源对象98表示核心资源对象94与其上可呈现核心资源对象98的设备的关系;因此,各个映射资源对象98与至少一个设备资源对象86相关。核心资源对象94还与活动资源集合100相关,该活动资源集合。

38、100包含表示诸如各种更改等相对于核心资源对象94发生的较不重要的事件的零个或更多活动资源对象102。核心资源对象94还与成员资源集合106相关,该成员资源集合106包含表示被给予对核心资源对象94的各种访问级别的用户的一个或多个成员资源对象106。各个成员资源对象106与一个或多个身份对象108相关,该身份对象108提供关于成员资源对象106所表示的成员的附加信息。最后,核心资源对象94还与数据订阅源资源集合110相关,该数据订阅源资源集合110包含表示各种相关数据条目的集合例如,相关用户对象的集合,诸如音乐专辑中的歌曲的零个或更多数据订阅源资源对象112。数据订阅源资源对象112分别与数据。

39、条目资源对象116的数据条目资源集合114相关。数据订阅源资源对象112还与角色对象120的角色集合118相关,角色对象120表示扩展到各个用户的相对于数据订阅源资源对象112的访问特权;因此,角色对象120与表示拥有这些角色的用户的一个或多个成员资源对象106相关。0037图3的示例性对象分层架构70因此以表示构成典型的计算机系统的各种且各式各样的数据对象的方式呈现了图2所示的对象类型的示例性组织。对象分层结构诸如图1的场景10中的示例性对象分层结构14可以依照示例性对象分层架构70来建模,并且可由服务器诸如计算环境主机12来主存,该服务器可对对象分层结构14中的对象应用一组服务以更改和维护。

40、计算环境。对象分层结构14还可被部署到被配置成接收依照图3的示例性对象分层架构70来建模的对象分层结构的一个或多个设备诸如蜂窝电话设备16、个人笔记本计算机20、以及公共工作站24,并且因此可呈现由此以一致的方式表示的计算环境。0038可以理解,对象分层架构的制定可用于创建表示计算环境的对象分层结构的实例。因此,图4示出了表示计算环境的示例性方法130,其中该示例性方法130涉及将计算环境表示为根据诸如图3的示例性对象分层架构70等对象分层架构来组织的对象分层结构。说明书CN101978369ACN101978374A8/14页11图4的示例性方法130在132处开始并涉及将计算环境表示134。

41、为包括描述计算环境的网格对象的对象分层结构。该网格对象进而包括至少一个简档资源对象;存储服务对象的存储服务集合;应用程序资源对象的应用程序资源集合;设备资源对象的设备资源集合;新闻项资源对象的新闻项资源集合;以及核心资源对象的核心对象资源集合。各个核心资源对象进而包括将核心对象相关到至少一个设备对象的映射资源对象的映射资源集合;活动资源对象的活动资源集合;将核心对象相关到至少一个身份对象的成员资源对象的成员资源集合;以及数据订阅源资源对象的数据订阅源资源集合。最后,各个数据订阅源资源对象包括数据条目资源对象的数据条目资源集合,以及将数据订阅源资源对象相关到核心资源对象的成员资源对象的角色资源对。

42、象的角色资源集合。通过以此方式组织对象分层结构中的对象并使其相关,该示例性方法以可部署的方式获取计算环境的表示,并由此在136处结束。0039图5示出了基于图3的示例性分层架构70并利用图2的对象分层架构对象集30中所示的对象类型的示例性对象分层结构140。示例性对象分层结构140包括包含表示当前用户的简档资源对象144的网格对象142;表示用于存储示例性对象分层结构140的存储服务诸如计算环境主机和蜂窝电话设备的存储服务集合146;表示计算环境中可用的应用程序集诸如日历应用程序和计算器应用程序的应用程序资源集合148;表示一起构成计算环境的设备诸如工作站计算机系统和蜂窝电话设备的设备资源集合。

43、150;以及描述发生在计算环境中的值得注意的事件诸如新照片相册的创建和音乐专辑的添加的新闻项资源集合152。网格对象142还包含核心资源对象集合154,该核心资源对象集合包含表示一组照片相册的第一核心资源对象156以及表示一组音乐专辑的第二核心资源对象166。第一核心资源对象156包含表示相对于第一核心资源对象156发生的较不重要的事件的活动资源集合、表示被给予对第一核心资源对象156的各种访问级别的成员的成员资源集合、以及将第一核心资源对象156相关到可通过其访问第一核心资源对象156的设备的映射集合。第一核心资源对象156还包含数据订阅源资源集合,该集合包括表示照片相册集合中的照片相册的数。

44、据订阅源资源对象158。数据订阅源资源对象158进而包含包括照片相册中的照片的数据条目资源集合162、以及表示成员相对于照片相册的各种角色第一成员所拥有的“所有者”角色以及第二成员所拥有的“贡献者”角色的角色资源集合164。类似地,第二核心资源对象166包含活动、成员、映射和数据订阅源的集合,包括表示具有表示音乐专辑中的各首歌曲的数据订阅源资源对象170的音乐专辑的数据订阅源资源集合172,以及表示可访问音乐专辑的成员的角色资源集合174包括第一成员所拥有的“所有者”角色以及第二成员所拥有的“收听者”角色。0040如此处所讨论的那样设计的对象分层架构诸如图3的示例性对象分层架构70可以用许多方。

45、面的变体来实现。某些变体可呈现增加的优点和/或相对于这些和其他技术的其他变体减少缺点。在这些技术诸如图4的示例性方法130的各实施例中,这些变体可单独地或结合其他变体来包括以促进这些增加的优点和/或减少的缺点。0041可随这些技术的实现而变化的第二方面涉及存储根据对象分层架构来组织的对象分层结构中的对象的方式。此处所描述的对象分层架构可以在对象分层结构的许多模型中实现。某些示例性实施例在图6中示出,这些实施例各自示出了表示人具有属性“名”和“姓”、设备具有属性“设备ID”和应用程序具有属性“标题”和“二进制代码”,后说明书CN101978369ACN101978374A9/14页12者包括可执。

46、行二进制代码的内容的对象的存储。作为第一示例180,对象分层架构可以用诸如C等面向对象语言来表现为对象集,其中对象通过又被定义为已命名属性和方法的明确类型的集合的类来实例化。在该模型中,可定义一组类,并且可从每一个类实例化对象以表示由该类建模的对象类型的实例。例如,类类型可被定义为表示人,并且该类可被实例化为表示第一人“DAVIDSMITH”的第一类实例“人1”以及表示第二人“JOHNLEE”的第二类实例“人2”。作为第二示例190,对象分层架构可被表现为存储在诸如关系型数据库等数据存储中的一组对象。每一种类型的对象都可被存储在根据对象的属性来结构化的特定关系型表中。例如,表可被结构化为存储各。

47、个人的表示,并且可包含表示第一人“DAVIDSMITH”的第一记录“人1”以及表示第二人“JOHNLEE”的第二记录“人2”。作为第三示例200,对象分层结构中的对象可依照对象分层架构中的对象来建模,但可以按提供属性名称和值的字典的结构不可知方式来存储。可利用元组系统,其中任何名称的对象都可被声明为任意一组键/值元组。例如,人的表示可作为表示第一人“DAVIDSMITH”的第一二元组“人1”以及表示第二人“JOHNLEE”的第二二元组“人2”来存储。对象分层架构的这些和其他实施例可由本领域普通技术人员设计,同时实现此处所讨论的技术。0042可随这些技术的实现而变化的第二方面涉及以促进这些对象类。

48、型的可扩展性和/或新对象类型的添加的方式来制定对象分层架构。图2所示的对象类型可以完全足以表示计算环境中的许多或所有对象。然而,图2所示的示例性对象分层架构对象集30并非作为可以定义并结合在对象分层架构中的对象类型的穷尽列表来呈现。对象分层架构的各实施例可包括和定义从图2所示的对象类型中专门化的、作为对图2所示的对象类型的补充和/或次要更改的其他对象类型。此外,对象分层架构的某些实施例可准许将其他类型的对象存储在由此组织的对象分层结构中。对象分层架构因此可被设计成可扩展对象系统,其中对象可以在对象分层结构中根据新对象类型来创建,并且对象类型可被扩展成具有新属性。作为第一示例,全新类型的对象可由。

49、各个用户设计并被插入到对象分层结构中。作为第二示例,用户可能希望将元数据与对象相关联以指示对象具有语义关系。该元数据可以用对用户有价值的信息来补充对象分层结构中的对象,并且对象分层架构可以按元数据不干扰对象分层结构中的对象的表示的方式来设计。0043为了促进对象分层架构的可扩展性,对象分层结构中的各个对象可根据可递归基本表示格式来指定和存储,其中对象的分量可以按基本方式表示。例如,可以认识到,对象通常包含三种类型的数据元素原子单个数据单元,诸如数字或字符、记录一起操作的单个数据单元的集合以及序列元素的聚集。记录一般表示不可分割地一起用作表示的一组元素,诸如数字7、4和1776一起表示日期177。

50、6年7月4日;而序列表示一组可分割项目,诸如2、3、5和7构成质数的子集。此外,可以递归地设计语法,这可准许嵌套特定种类的元素例如,序列的序列、或包含作为记录的一个元素的序列的记录。通过以此方式组织对象,对象分层架构可准许表示已知对象类型诸如图2所示的那些对象类型的对象以及表示未知对象类型的对象,以及用诸如用户定义的元数据等新信息来扩展已知对象类型。本领域的普通技术人员能够设计许多可扩展对象分层架构及其格式,同时实现此处所讨论的技术。0044可随这些技术的实现而变化的第三方面涉及可用于标识对象分层结构中的对象说明书CN101978369ACN101978374A10/14页13的定址模型。可以。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1