《计算环境表示.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的定址模型。可以。