專利名稱:計算環(huán)境表示的制作方法
計算環(huán)境表示背景許多計算環(huán)境都包括由一組對象系統(tǒng)管理的大型且不同的對象集合。例如,計算 環(huán)境可包括由文件系統(tǒng)管理的文件集合、由數(shù)據(jù)庫系統(tǒng)管理的一個或多個數(shù)據(jù)庫、表示應(yīng) 用程序并由匯編高速緩存管理的可執(zhí)行二進制代碼集合、由操作系統(tǒng)的用戶簡檔組件管理 的用戶簡檔集合、以及由數(shù)據(jù)高速緩存組件管理的各種數(shù)據(jù)高速緩存,如由操作系統(tǒng)的復 制緩沖器管理的復制項的集合、由操作系統(tǒng)的撤消組件管理的撤消動作的集合、以及由操 作系統(tǒng)的項使用跟蹤組件管理的“最近使用”項的集合。此外,可以在由一個或多個用戶操 作的多個設(shè)備之間并且根據(jù)一個或多個操作(例如,歸并兩個對象集的對象同步操作以及 調(diào)整目標對象集以與源對象集相匹配的對象鏡像操作)來交換這些對象。以此方式,這些 對象通過一組對象系統(tǒng)來松組織并聚集以表示計算環(huán)境。概述提供本概述是為了以簡化的形式介紹將在以下詳細描述中進一步描述的一些概 念。本概述并不旨在標識出所要求保護的主題的關(guān)鍵因素或必要特征,也不旨在用于限定 所要求保護的主題的范圍。將計算系統(tǒng)內(nèi)的對象組織成一組脫節(jié)的、松聚集的對象系統(tǒng)可以造成若干問題。 例如,可能難以通過各種設(shè)備向用戶呈現(xiàn)一致的計算環(huán)境,尤其是在這些設(shè)備能力不同的 情況下(例如,高性能個人工作站、基于瀏覽器的公共終端、以及低性能蜂窩電話設(shè)備)。作 為另一示例,將諸如同步和備份等服務(wù)應(yīng)用于對象可涉及與每一對象系統(tǒng)進行接口以影響 由此管理的對象,并且這樣的接口可以隨對象系統(tǒng)而變化。作為第三示例,使一組不同的對 象相關(guān)(諸如所有對象構(gòu)成一應(yīng)用程序)可能由于管理對象系統(tǒng)的不完全協(xié)作而是困難 的。用于表示構(gòu)成計算環(huán)境的對象的一種替換技術(shù)涉及在可由計算環(huán)境主機來主存 的對象分層結(jié)構(gòu)中組織這些對象。如果對象是由對象系統(tǒng)以統(tǒng)一的方式表示并以一致的方 式來管理的,則可以設(shè)計一組服務(wù)以應(yīng)用于計算環(huán)境的所有對象。此外,對象分層結(jié)構(gòu)可被 傳遞到各個設(shè)備以表示同一計算環(huán)境(包括相同的用戶簡檔、應(yīng)用程序、數(shù)據(jù)文件等),并 且每一設(shè)備可以用一致的方式來呈現(xiàn)該計算環(huán)境,但基于該設(shè)備的能力(例如,用于從附 連到工作站的鍵盤設(shè)備接收數(shù)據(jù)輸入的硬鍵盤接口,以及用于從蜂窩電話設(shè)備接收數(shù)據(jù)輸 入的觸摸屏軟鍵盤接口)來定制該計算環(huán)境。此處所呈現(xiàn)的是一種這樣的表示,其中對象分層結(jié)構(gòu)根據(jù)對象分層架構(gòu)來結(jié)構(gòu) 化,該對象分層架構(gòu)定義一組各種類型的資源,諸如應(yīng)用程序、包括一組活動的活動集合、 以及包括一組用戶簡檔的用戶簡檔集合。根據(jù)此處所指定的對象分層架構(gòu)的對象組織可提 供勝于這些對象的其他表示和組織的某些優(yōu)點。例如,此處所呈現(xiàn)的對象表示服從用特定 種類的元數(shù)據(jù)來標記,并且這些元數(shù)據(jù)可以類似地與不同種類的對象(諸如應(yīng)用程序、數(shù) 據(jù)文件和設(shè)備)相關(guān)聯(lián)以啟用域?qū)S迷獢?shù)據(jù)。如此處所描述的那樣安排的對象還可方便各 種對象集在各種設(shè)備上的映射,這可準許計算環(huán)境相對于不同用戶和設(shè)備的合乎需要的適 應(yīng)。這些和其他好處可通過此處所指定的對象分層架構(gòu)來實現(xiàn),這些好處可通過由對象分層結(jié)構(gòu)來表示并由具有不同能力的設(shè)備來呈現(xiàn)的計算環(huán)境來展示。為實現(xiàn)上述和相關(guān)目的,以下描述和附圖闡述了各個說明性方面和實現(xiàn)。這些方 面和實現(xiàn)僅指示可使用一個或多個方面的各種方式中的一些。結(jié)合附圖閱讀以下詳細描 述,則本發(fā)明的其他方面、優(yōu)點、以及新穎特征將變得顯而易見。附圖描述
圖1是計算環(huán)境主機與各計算環(huán)境呈現(xiàn)設(shè)備的示例性交互的圖示。圖2是示例性對象分層架構(gòu)對象集的圖示。圖3是示例性對象分層架構(gòu)的圖示。圖4是示出表示計算環(huán)境的示例性方法的流程圖。圖5是示例性對象分層結(jié)構(gòu)的圖示。圖6是用于存儲對象分層結(jié)構(gòu)的對象的三種示例性存儲技術(shù)的圖示。圖7是可以與對象分層架構(gòu)的對象類型相關(guān)聯(lián)的一組附加對象屬性的圖示。圖8是包括被配置成實現(xiàn)此處所闡述的裝置中的一個或多個的處理器可執(zhí)行指 令的示例性計算機可讀介質(zhì)的圖示。圖9示出了其中可實現(xiàn)此處所闡述的裝置中的一個或多個的示例性計算環(huán)境。詳細描述現(xiàn)在參考附圖來描述所要求保護的主題,所有附圖中使用相同的附圖標記來指代 相同的元素。在以下描述中,為解釋起見,闡明了眾多具體細節(jié)以提供對所要求保護的主題 的全面理解。然而,很明顯,所要求保護的主題可以在沒有這些具體細節(jié)的情況下實施。在 其他情況下,以框圖形式示出了公知的結(jié)構(gòu)和設(shè)備以便于描述所要求保護的主題。現(xiàn)代計算機系統(tǒng)包括大量且各種對象。許多計算機系統(tǒng)表征文件存儲,該文件存 儲包含用于配置該計算機系統(tǒng)的文件(包括可執(zhí)行文件、類庫、配置信息集和資源)以及由 一個或多個用戶生成或接收的用戶文件。許多計算機系統(tǒng)還包括包含計算機系統(tǒng)硬件和軟 件的各種各樣的配置信息,包括計算機系統(tǒng)的硬件和設(shè)備、操作系統(tǒng)、外殼用戶界面、以及 該外殼用戶界面中可用的應(yīng)用程序的配置。還可存儲各種用戶簡檔和帳戶,前者包括描述 特定用戶或用戶類的信息(姓名、外殼用戶界面偏好、主目錄等),而后者包括描述用戶或 類的特權(quán)(文件所有權(quán)、讀/寫特權(quán)、對各種設(shè)備的訪問權(quán)等)的信息。諸如口令、證書、公 鑰/私鑰對、以及訪問控制列表等受保護的安全信息可被存儲在安全對象中,操作系統(tǒng)可 對該安全對象施加管制訪問??梢源嬖谝粋€或多個數(shù)據(jù)高速緩存,諸如瀏覽器高速緩存和 歷史、應(yīng)用程序或瀏覽器文本框中的最近輸入、以及最近使用的文件和對象列表。各種應(yīng)用 程序可創(chuàng)建應(yīng)用程序或任務(wù)專用檔案,諸如包含各種文件夾和消息的電子郵件檔案以及包 含由各個系統(tǒng)用戶從各個源接收到的并在用戶定義的組中組織的聯(lián)系人信息的共享地址 簿。最后,計算機系統(tǒng)可被配置成與其他計算機、用戶和設(shè)備交換特定信息集,諸如要同步 的對象以及可以在各種條件下授予對其的訪問權(quán)(讀/寫特權(quán)、所有權(quán)、定額等)的對象 集。這些對象類型通常由各種管理系統(tǒng)(例如,文件系統(tǒng)、系統(tǒng)注冊表存儲、用戶帳戶管理 系統(tǒng)、以及電子郵件系統(tǒng))在計算機系統(tǒng)中以特別方式來管理,但訪問方法或?qū)ο蠼M織的 一致性或標準化極少。將計算系統(tǒng)內(nèi)的對象組織成一組脫節(jié)的、松聚集的對象系統(tǒng)可以造成若干問題。 作為第一示例,呈現(xiàn)并維護包括一組一致的對象(諸如文件、應(yīng)用程序、用戶簡檔、應(yīng)用程序配置、數(shù)據(jù)高速緩存等)的一致的計算環(huán)境可能是非常困難的,尤其是在諸如個人工作 站、公共終端和蜂窩設(shè)備等具有不同能力的設(shè)備之間。作為第二示例,將服務(wù)應(yīng)用于對象 可能由于將不同的對象存儲在多個對象系統(tǒng)中而復雜化。例如,定位匹配特定描述的對象 (諸如在特定時間跨度內(nèi)最后一次修改的對象)可涉及通過一個或多個文件系統(tǒng)來查詢匹 配的文件、通過數(shù)據(jù)庫系統(tǒng)來與數(shù)據(jù)庫記錄進行匹配、通過系統(tǒng)注冊表來與注冊表鍵進行 匹配、通過匯編高速緩存來與應(yīng)用程序進行匹配、通過各種數(shù)據(jù)高速緩存來與數(shù)據(jù)高速緩 存項進行匹配等。因為這些對象系統(tǒng)通常以非標準方式存儲相關(guān)聯(lián)的對象,諸如按照特定 于對象性質(zhì)的參數(shù)(例如,通過文件系統(tǒng)日志來檢查文件記錄,以及通過數(shù)據(jù)專用時間戳 來檢查數(shù)據(jù)庫記錄),所以對各種對象中的每一個應(yīng)用操作可能是困難的。作為第三示例, 因為每一個對象系統(tǒng)都被配置成管理特定種類的對象,所以混合各種類型的對象并使其相 關(guān)可能困難的。例如,應(yīng)用程序可包括存儲在匯編高速緩存中的可執(zhí)行二進制代碼、存儲在 系統(tǒng)注冊表中的某些配置信息、存儲在文件系統(tǒng)中的補充文件(諸如各種語言的字典)、以 及存儲在數(shù)據(jù)高速緩存中的事件(諸如最近編輯的文檔)??赡茈y以表示各種系統(tǒng)中的這 些對象類型的關(guān)聯(lián),并且一起操縱所有這些對象(例如,刪除所有這些對象以卸載應(yīng)用程 序)。作為第四示例,計算機系統(tǒng)的對象集可以分布在若干設(shè)備上,并且提供對這些對象集 的一致訪問可能由于設(shè)備的各種配置、每一個設(shè)備的物理能力、以及每一個設(shè)備用來交換 數(shù)據(jù)的線格式的不兼容性(例如,第一設(shè)備可被配置成根據(jù)XML架構(gòu)來交換數(shù)據(jù),而第二設(shè) 備可被配置成根據(jù)JSON來交換數(shù)據(jù))而復雜化??稍O(shè)計一種替換方法,其中計算環(huán)境以可被傳遞至設(shè)備的方式來表示以便根據(jù)設(shè) 備的能力來呈現(xiàn)。該表示包括根據(jù)對象分層結(jié)構(gòu)來組織并根據(jù)共同語法來表示的一組對 象。這些對象包括計算機系統(tǒng)的數(shù)據(jù)對象,諸如用戶文件和用戶創(chuàng)建的數(shù)據(jù)。這些對象還包 括構(gòu)成操作系統(tǒng)組件的可執(zhí)行二進制代碼和類庫,諸如外殼以及其中提供的應(yīng)用程序。該 對象還包括指定計算環(huán)境的用戶界面的信息,包括外殼偏好(例如,視覺主題、應(yīng)用程序啟 動菜單、以及雙擊閾值)、用戶帳戶及特權(quán)、安全信息(例如,口令、安全令牌、以及證書)、應(yīng) 用程序二進制代碼和配置信息、用戶數(shù)據(jù)和元數(shù)據(jù)(例如,文件共享信息)、以及數(shù)據(jù)高速 緩存(例如,最近使用的文件列表和瀏覽器歷史)。盡管這些對象具有各種性質(zhì)和用途,但 這些對象在對象分層結(jié)構(gòu)中是以共同的方式來表示的,并且可在該分層結(jié)構(gòu)中任意組織。 因此,與包括各自包含一種類型的對象的一組隔離數(shù)據(jù)存儲(例如,包含文件的文件系統(tǒng)、 包含配置信息的注冊表、以及包含瀏覽器歷史的數(shù)據(jù)高速緩存)的先前的系統(tǒng)相反,該方 法中的對象分層結(jié)構(gòu)在對象分層結(jié)構(gòu)中以共同的方式組織所有這些對象。以此方式表示的計算環(huán)境可被傳遞到任何設(shè)備并以適于該設(shè)備的能力的方式來 呈現(xiàn)。例如,工作站可作為穩(wěn)健且通用的計算環(huán)境來呈現(xiàn)信息,而公共工作站可以通過web 瀏覽器呈現(xiàn)不同的計算環(huán)境體驗(例如,作為可在用戶的會話結(jié)束時丟棄的虛擬機),并且 蜂窩電話可提供具有對蜂窩電話相關(guān)信息(例如,聯(lián)系人、日歷、以及導航數(shù)據(jù))的更快訪 問的更瘦的界面。此外,對該信息集的更新(例如,偏好改變和對其中包含的數(shù)據(jù)文件的 更新)可被應(yīng)用于該信息集的規(guī)范源,并且因此被傳播到該信息集被傳遞到的所有其他設(shè) 備。同樣,共享該計算環(huán)境的設(shè)備可以通過該共享信息集來集成,使得一個設(shè)備可以與在該 信息集中標識的其他設(shè)備進行交互;例如,存儲在第一設(shè)備上的數(shù)據(jù)可由第二設(shè)備訪問,并 且第一設(shè)備可由第二設(shè)備通過通信管道來控制。該信息集因此可以標識共享該計算環(huán)境的設(shè)備的集合,以及每一設(shè)備的角色、能力、以及資源,以便跨可能大量且各種設(shè)備來提供集 成計算體驗。圖1示出一個這樣的場景10,其中計算環(huán)境可由計算環(huán)境主機12主存,計算環(huán)境 主機42可以存儲并管理對象分層結(jié)構(gòu)14。計算環(huán)境主機12還可以代表各種設(shè)備(如蜂窩 電話設(shè)備16、個人筆記本計算機20、以及公共工作站24)并且還代表具有不同訪問特權(quán)的 不同類型的用戶,以不同的方式呈現(xiàn)對象分層結(jié)構(gòu)14。該計算環(huán)境的呈現(xiàn)因此反映了跨展 示相同的應(yīng)用程序、用戶簡檔、外殼配置、用戶數(shù)據(jù)對象等的所有設(shè)備的一致計算環(huán)境。因 此,用戶可以通過高性能筆記本計算機訪問該計算環(huán)境的全特征版本22、在低功率蜂窩電 話設(shè)備16上訪問該計算環(huán)境的精簡版本18、以及通過公共終端24的web瀏覽器146訪問 該計算環(huán)境的可兼容瀏覽器并且面向隱私的版本28。在每一這樣的設(shè)備的能力支持該計算 環(huán)境的呈現(xiàn)的程度上,由于根據(jù)每一設(shè)備的能力調(diào)整了對象分層結(jié)構(gòu)14的呈現(xiàn),所以可以 呈現(xiàn)一致的用戶界面和數(shù)據(jù)集。對計算環(huán)境的更新可以傳播回計算環(huán)境主機12,并且可以 與其他設(shè)備自動進行同步。各設(shè)備還可以通過與其他設(shè)備共享存儲在本地的數(shù)據(jù)并且通過 控制其他設(shè)備或由其他設(shè)備控制來進行協(xié)作。因此,可將該計算環(huán)境設(shè)計并呈現(xiàn)為云計算 體系結(jié)構(gòu),包括表達為跨形成同一計算環(huán)境的各協(xié)作門戶(具有設(shè)備專用屬性)的網(wǎng)格的 所有設(shè)備(“客戶機”)的一致呈現(xiàn)的設(shè)備無關(guān)表示(“云”)。此外,計算環(huán)境主機12可以 將服務(wù)應(yīng)用于構(gòu)成對象分層結(jié)構(gòu)14的各個對象,并且將對象存儲在該對象分層結(jié)構(gòu)中的 共同格式可以便于這些服務(wù)的一致可用性和應(yīng)用,而不論向其應(yīng)用這些服務(wù)的對象的性質(zhì) 如何。除這些目的之外,對象分層架構(gòu)可被設(shè)計成以特定方式來組織該對象分層結(jié)構(gòu)的 各個對象。例如,可以設(shè)計并結(jié)構(gòu)化各個對象以表示數(shù)據(jù)對象(如,文件)、用戶和用戶帳 戶、設(shè)備和該計算環(huán)境中發(fā)生的事件、以及來歷、所有權(quán)、以及它們之間的相互關(guān)系。相對于 對象的其他組織而言,組織對象的這一方式可以產(chǎn)生特定優(yōu)點和/或減少缺點。因此,根據(jù) 其來組織對象的該對象分層架構(gòu)是鑒于這些對象和計算環(huán)境的使用來設(shè)計的。例如,可以 通過將各個對象與具有各種許可集合的一個或多個用戶帳戶(例如,第一用戶帳戶具有對 一對象的讀/寫許可,第二用戶帳戶具有對該對象的只讀許可,并且第三用戶帳戶沒有對 該對象的許可)相關(guān)聯(lián)來對安全許可建模。計算環(huán)境可被配置成根據(jù)對象分層架構(gòu)的結(jié)構(gòu) 和語義來利用該對象分層結(jié)構(gòu)的對象,從而允許以適用于每一設(shè)備的配置和能力但以其他 方式在所有這樣的設(shè)備之間一致的方式來跨多個設(shè)備呈現(xiàn)可部署計算環(huán)境??梢岳斫?,對象分層架構(gòu)的制定可以顯著地影響設(shè)備和主存計算環(huán)境的服務(wù)器的 配置。作為一個示例,設(shè)備可以只請求計算環(huán)境的一部分(例如,蜂窩電話設(shè)備可以請求對 象分層架構(gòu)中包含諸如電話號碼和電子郵件地址等一組聯(lián)系人信息的部分),并且服務(wù)器 可以只提供該部分;然而,如果該設(shè)備和服務(wù)器按不同的對象分層架構(gòu)來操作,則請求可能 失敗。例如,設(shè)備可能根據(jù)第一對象分層架構(gòu)來請求對象分層結(jié)構(gòu)的特定部分(例如,/聯(lián) 系人),但服務(wù)器可根據(jù)第二對象分層架構(gòu)來將這一信息存儲在該對象分層結(jié)構(gòu)的不同部 分(例如,/地址簿/聯(lián)系人)中,并且因此可能無法提供所請求的信息,即使在該服務(wù)器 主存的對象分層結(jié)構(gòu)中存在聯(lián)系人信息。作為第二示例,服務(wù)器能夠根據(jù)任何對象分層架 構(gòu)來存儲對象分層結(jié)構(gòu),但可被更有利地配置成利用對象分層結(jié)構(gòu)的一部分,同時向其提 供服務(wù),并且因此可以期望找出在對象分層結(jié)構(gòu)中根據(jù)特定對象分層架構(gòu)來定義和組織的對象。例如,響應(yīng)于設(shè)備接收對象分層結(jié)構(gòu)的請求,服務(wù)器可嘗試使用存儲在對象分層結(jié)構(gòu) 中的認證信息來認證該設(shè)備。由此,該服務(wù)器可被更容易地配置成根據(jù)特定對象分層架構(gòu) 來主存對象分層結(jié)構(gòu),以使其還可訪問和利用存儲在該對象分層架構(gòu)中的信息,同時提供 與該分層架構(gòu)相關(guān)的服務(wù)。鑒于上述原理,此處所呈現(xiàn)的是一種這樣的對象分層架構(gòu),其中對象以方便服務(wù) 器對計算環(huán)境應(yīng)用服務(wù)以及計算環(huán)境到可以按一致但設(shè)備專用的方式呈現(xiàn)該計算環(huán)境的 設(shè)備的可部署性的特定方式來定義和互相關(guān)。此處所描述的對象分層架構(gòu)被呈現(xiàn)為一組已 定義的對象,每一個定義都表示計算環(huán)境中的特定類型的數(shù)據(jù)對象(例如,用戶簡檔、應(yīng)用 程序和設(shè)備)并且具有與其相關(guān)的特定屬性。某些對象被定義為專門類型的其他對象,例 如,通用“個人”對象類型可被擴展為表示“用戶”對象類型,該對象類型可以是具有表示這 個人在計算環(huán)境中的特權(quán)的附加信息的一個人。另外,某些對象被定義為用于一個或多個 其他對象的容器,諸如包含一個或多個“人”對象類型的“人集合”對象類型。此外,此處所 呈現(xiàn)的對象分層架構(gòu)定義了此處在對象分層結(jié)構(gòu)中定義的對象的分層組織;即,特定對象 類型將被存儲在對象分層結(jié)構(gòu)中的特定位置,以使得在該對象分層結(jié)構(gòu)中搜索這些對象的 任何設(shè)備或計算機系統(tǒng)都將在該對象分層結(jié)構(gòu)中的已知、所確定的位置找到存在于該計算 環(huán)境中的任何事物。圖2示出了對象分層架構(gòu)的對象類型以及這些對象類型之間的擴展相互關(guān)系。在 該附圖中,對象關(guān)系示出了對象之間的專門化,例如,“動物”對象類型可能被專門化為“哺 乳動物”對象類型,該“哺乳動物”對象類型可被進一步專門化為“貓”對象類型。此處討論 關(guān)于對象分層架構(gòu)中的每一個對象的屬性的細節(jié),但該附圖是作為對此處所呈現(xiàn)的對象分 層架構(gòu)中所包含的數(shù)據(jù)對象的類型的概覽來呈現(xiàn)的。圖2的對象分層架構(gòu)對象集30包括資源對象類型32,該資源對象類型表示存儲 在該對象分層結(jié)構(gòu)中的基本數(shù)據(jù)對象。資源對象類型32表示對象分層架構(gòu)中用于提供對 象分層結(jié)構(gòu)中的可區(qū)別定址的位置的可定址對象;即,對于對象分層結(jié)構(gòu)中的特定地址,在 該對象分層結(jié)構(gòu)中只有一個對象對應(yīng)于該位置。在對象分層架構(gòu)的某些實施例中,資源只 可由一個地址來標識,而在對象分層架構(gòu)的其他實施例中,資源可以在多個地址處標識。然 而,在任一這樣的實施例中,對象分層結(jié)構(gòu)中的單個地址可以與最多一個對象相關(guān)聯(lián)。圖2的對象分層架構(gòu)對象集30中的資源對象類型32用作對于許多其他對象類型 的基礎(chǔ)對象類型。這些對象類型中的若干對象類型對應(yīng)于有時被設(shè)計為常規(guī)計算環(huán)境中的 一個或多個文件的對象。作為第一示例,對象分層架構(gòu)對象集30包括核心對象對象類型 34、該對象類型是包括位于對象分層結(jié)構(gòu)的根處的一組對象的專門類型的資源。對象分層 架構(gòu)對象集30還包括應(yīng)用程序?qū)ο箢愋?6,該對象類型是表示代表安裝在計算環(huán)境中的 應(yīng)用程序的對象的專門類型的資源。許多其他對象可以與應(yīng)用程序?qū)ο箢愋拖嚓P(guān)聯(lián),諸如 標題、應(yīng)用程序圖標、以及一個或多個可執(zhí)行二進制代碼。對象分層架構(gòu)對象集30還包括 數(shù)據(jù)條目對象類型38,該對象類型是表示諸如應(yīng)用程序二進制代碼、文檔、一組應(yīng)用程序配 置信息、圖像等原子數(shù)據(jù)單元的容器的專門類型的資源。對象分層架構(gòu)對象集30還包括新 聞項對象類型40,該對象類型是表示計算環(huán)境中的值得注意的事件的專門類型的數(shù)據(jù)條目 對象。資源對象類型還可用作對于其他對象類型的基礎(chǔ)對象類型。作為一個示例,對象分層架構(gòu)對象集30還包括數(shù)據(jù)訂閱源對象類型43,該對象類型是表示諸如構(gòu)成專輯的一 組歌曲(例如,MP3對象)或構(gòu)成照片相冊的一組照片圖像等相關(guān)數(shù)據(jù)條目的集合的專門類 型的資源。對象分層架構(gòu)對象集30還包括活動對象類型44,該對象類型是表示諸如對象創(chuàng) 建、用戶登錄、以及計算環(huán)境中的設(shè)備添加等最近發(fā)生在計算環(huán)境中的事件的專門類型的 資源。(可以理解,活動表示諸如復制文本的一部分等在計算環(huán)境的普通過程中發(fā)生的、用 戶可能只是短暫地感興趣的較不重要的事件,而新聞項表示諸如創(chuàng)建照片相冊等用戶可能 長期感興趣的較重要的事件。)對象分層架構(gòu)對象集30還包括成員對象類型46,該對象類 型是表示核心對象和與該核心對象相關(guān)的用戶之間的關(guān)系(例如,通過所有權(quán)或許可集) 的專門類型的資源。對象分層架構(gòu)對象集30還包括設(shè)備對象類型48,該對象類型是表示授 權(quán)向其傳送對象分層結(jié)構(gòu)的至少一部分,并且授權(quán)在其上呈現(xiàn)所表示的計算環(huán)境的至少一 部分的設(shè)備的專門類型的資源。對象分層架構(gòu)對象集30還包括映射對象類型50,該對象 類型是表示設(shè)備(即,設(shè)備對象)和可被傳遞至該設(shè)備的核心對象之間的關(guān)系的專門類型 的資源。對象分層架構(gòu)對象集30還包括簡檔對象類型52,該對象類型是表示計算環(huán)境的 至少一部分中的授權(quán)用戶的用戶簡檔的專門類型的資源。這些對象類型基于資源對象類型 32,并且這些對象類型的對象以與諸如文檔和圖像等更常規(guī)的對象類型相似的可定址且可 訪問的方式被包括在對象分層結(jié)構(gòu)中。對象分層架構(gòu)對象集30還包括未從資源對象類型32中專門化的對象類型。這些 對象被包括在對象分層架構(gòu)中,但可以不作為可根據(jù)對象分層架構(gòu)30的定址模型來定址 的條目來包括。相反,這些對象可包括其他對象的可訪問成員,或者對象分層架構(gòu)的被封裝 在對象分層架構(gòu)30的定址模型之外的對象中的專門特征。作為一個示例,對象分層架構(gòu)對 象集30包括網(wǎng)格對象類型54,該對象類型包括關(guān)于整個對象分層結(jié)構(gòu)的信息。通常,單個 網(wǎng)格對象可以與特定對象分層結(jié)構(gòu)相關(guān)聯(lián),但該關(guān)聯(lián)的變體可被包括在對象分層架構(gòu)的其 他實施例中。對象分層架構(gòu)對象集30還包括存儲服務(wù)對象類型56,該對象類型表示對象分 層結(jié)構(gòu)的一部分(例如,一個或多個核心對象)位于其上的存儲設(shè)備。對象分層架構(gòu)20還 包括資源集合對象類型58,該對象類型表示特定對象類型的資源的集合。例如,設(shè)備對象可 通過一個或多個相應(yīng)的映射對象來與一個或多個核心對象相關(guān)聯(lián),該映射對象可包括與該 設(shè)備相關(guān)聯(lián)的映射對象的資源集合。類似地,計算環(huán)境的用戶簡檔可被表示為與對象分層 結(jié)構(gòu)的網(wǎng)格單元素對象相關(guān)聯(lián)的簡檔對象的資源集合。對象分層架構(gòu)20還包括描述特定 用戶的身份對象類型60,例如,給予計算環(huán)境中的用戶的許可。對象分層架構(gòu)20還包括角 色對象類型62,該對象類型根據(jù)特定類型的角色(例如,所有者、讀者和貢獻者)來將成員 對象與核心對象相關(guān)。總而言之,圖2所示的對象類型構(gòu)成對象分層架構(gòu)的重要部分,并且計算環(huán)境中 的許多對象可根據(jù)這些互相關(guān)的對象類型來表示。鑒于這些對象類型和包括這些對象類型 的對象的對象分層結(jié)構(gòu),圖3示出了對象分層架構(gòu)70的結(jié)構(gòu),其中從第一對象到第二對象 的單箭頭指示該第一對象與該第二對象的關(guān)系。同樣,在圖3中,從第一對象到第二對象的 雙箭頭指示該第一對象是該第二對象所指示的類型的一個或多個對象的集合。例如,網(wǎng)格 對象72與設(shè)備集合78相關(guān)(如單箭頭所示),該設(shè)備集合78包含設(shè)備對象80的集合(如 雙箭頭所示)??梢岳斫?,圖2的對象分層架構(gòu)對象集30示出了對象類型的專門化(例如, 第一對象是第二對象的專門類型),而圖3的對象分層架構(gòu)70示出了這些對象類型的對象在對象分層結(jié)構(gòu)中的組織(例如,第一對象與一個或多個第二對象相關(guān))。圖3呈現(xiàn)了此處所描述的包括網(wǎng)格對象72的示例性對象分層架構(gòu)70,在該示例 性對象分層架構(gòu)70中,該網(wǎng)格對象包括描述計算環(huán)境的單元素對象。網(wǎng)格對象72與六種 類型的對象和對象集合相關(guān)。首先,網(wǎng)格對象72與簡檔對象74相關(guān),在該示例性對象分層 架構(gòu)70中,簡檔對象74包括表示當前用戶的簡檔的單元素對象。網(wǎng)格對象72還與存儲服 務(wù)集合76相關(guān),該存儲服務(wù)集合76包含表示可以存儲對象分層結(jié)構(gòu)的各部分的不同位置 的零個或更多存儲服務(wù)對象78。(可以注意到,存儲服務(wù)集合76和存儲服務(wù)78兩者都不 被稱為“資源”,因為這些對象不基于資源對象類型32。)網(wǎng)格對象72還與應(yīng)用程序資源集 合80相關(guān),該應(yīng)用程序資源集合80包含表示在對象分層結(jié)構(gòu)所表示的計算環(huán)境中可用的 應(yīng)用程序的零個或更多應(yīng)用程序資源對象82。網(wǎng)格對象72還與設(shè)備資源集合76相關(guān),該 設(shè)備資源集合76包含表示其上可呈現(xiàn)計算環(huán)境的至少一部分的設(shè)備的零個或更多設(shè)備資 源對象84。最后,網(wǎng)格72還與核心對象資源集合92相關(guān),該核心對象資源集合92包含包 括位于對象分層結(jié)構(gòu)的根處的一組對象的零個或更多核心資源對象94。如在圖3的示例性對象分層架構(gòu)70中進一步示出的,核心資源對象94與四個對 象集合相關(guān)。首先,核心資源對象94與包含至少零個映射資源對象98的映射資源集合96 相關(guān)。映射資源對象98表示核心資源對象94與其上可呈現(xiàn)核心資源對象98的設(shè)備的關(guān) 系;因此,各個映射資源對象98與至少一個設(shè)備資源對象86相關(guān)。核心資源對象94還與 活動資源集合100相關(guān),該活動資源集合100包含表示諸如各種更改等相對于核心資源對 象94發(fā)生的較不重要的事件的零個或更多活動資源對象102。核心資源對象94還與成員 資源集合106相關(guān),該成員資源集合106包含表示被給予對核心資源對象94的各種訪問級 別的用戶的一個或多個成員資源對象106。各個成員資源對象106與一個或多個身份對象 108相關(guān),該身份對象108提供關(guān)于成員資源對象106所表示的成員的附加信息。最后,核 心資源對象94還與數(shù)據(jù)訂閱源資源集合110相關(guān),該數(shù)據(jù)訂閱源資源集合110包含表示各 種相關(guān)數(shù)據(jù)條目的集合(例如,相關(guān)用戶對象的集合,諸如音樂專輯中的歌曲)的零個或更 多數(shù)據(jù)訂閱源資源對象112。數(shù)據(jù)訂閱源資源對象112分別與數(shù)據(jù)條目資源對象116的數(shù) 據(jù)條目資源集合114相關(guān)。數(shù)據(jù)訂閱源資源對象112還與角色對象120的角色集合118相 關(guān),角色對象120表示擴展到各個用戶的相對于數(shù)據(jù)訂閱源資源對象112的訪問特權(quán);因 此,角色對象120與表示擁有這些角色的用戶的一個或多個成員資源對象106相關(guān)。圖3的示例性對象分層架構(gòu)70因此以表示構(gòu)成典型的計算機系統(tǒng)的各種且各式 各樣的數(shù)據(jù)對象的方式呈現(xiàn)了圖2所示的對象類型的示例性組織。對象分層結(jié)構(gòu)(諸如圖 1的場景10中的示例性對象分層結(jié)構(gòu)14)可以依照示例性對象分層架構(gòu)70來建模,并且 可由服務(wù)器(諸如計算環(huán)境主機12)來主存,該服務(wù)器可對對象分層結(jié)構(gòu)14中的對象應(yīng)用 一組服務(wù)以更改和維護計算環(huán)境。對象分層結(jié)構(gòu)14還可被部署到被配置成接收依照圖3 的示例性對象分層架構(gòu)70來建模的對象分層結(jié)構(gòu)的一個或多個設(shè)備(諸如蜂窩電話設(shè)備 16、個人筆記本計算機20、以及公共工作站24),并且因此可呈現(xiàn)由此以一致的方式表示的 計算環(huán)境。可以理解,對象分層架構(gòu)的制定可用于創(chuàng)建表示計算環(huán)境的對象分層結(jié)構(gòu)的實 例。因此,圖4示出了表示計算環(huán)境的示例性方法130,其中該示例性方法130涉及將計算環(huán) 境表示為根據(jù)諸如圖3的示例性對象分層架構(gòu)70等對象分層架構(gòu)來組織的對象分層結(jié)構(gòu)。圖4的示例性方法130在132處開始并涉及將計算環(huán)境表示134為包括描述計算環(huán)境的網(wǎng) 格對象的對象分層結(jié)構(gòu)。該網(wǎng)格對象進而包括至少一個簡檔資源對象;存儲服務(wù)對象的存 儲服務(wù)集合;應(yīng)用程序資源對象的應(yīng)用程序資源集合;設(shè)備資源對象的設(shè)備資源集合;新 聞項資源對象的新聞項資源集合;以及核心資源對象的核心對象資源集合。各個核心資源 對象進而包括將核心對象相關(guān)到至少一個設(shè)備對象的映射資源對象的映射資源集合;活動 資源對象的活動資源集合;將核心對象相關(guān)到至少一個身份對象的成員資源對象的成員資 源集合;以及數(shù)據(jù)訂閱源資源對象的數(shù)據(jù)訂閱源資源集合。最后,各個數(shù)據(jù)訂閱源資源對象 包括數(shù)據(jù)條目資源對象的數(shù)據(jù)條目資源集合,以及將數(shù)據(jù)訂閱源資源對象相關(guān)到核心資源 對象的成員資源對象的角色資源對象的角色資源集合。通過以此方式組織對象分層結(jié)構(gòu)中 的對象并使其相關(guān),該示例性方法以可部署的方式獲取計算環(huán)境的表示,并由此在136處 結(jié)束。圖5示出了基于圖3的示例性分層架構(gòu)70并利用圖2的對象分層架構(gòu)對象集30 中所示的對象類型的示例性對象分層結(jié)構(gòu)140。示例性對象分層結(jié)構(gòu)140包括包含表示當 前用戶的簡檔資源對象144的網(wǎng)格對象142 ;表示用于存儲示例性對象分層結(jié)構(gòu)140的存 儲服務(wù)(諸如計算環(huán)境主機和蜂窩電話設(shè)備)的存儲服務(wù)集合146 ;表示計算環(huán)境中可用 的應(yīng)用程序集(諸如日歷應(yīng)用程序和計算器應(yīng)用程序)的應(yīng)用程序資源集合148;表示一 起構(gòu)成計算環(huán)境的設(shè)備(諸如工作站計算機系統(tǒng)和蜂窩電話設(shè)備)的設(shè)備資源集合150 ; 以及描述發(fā)生在計算環(huán)境中的值得注意的事件(諸如新照片相冊的創(chuàng)建和音樂專輯的添 加)的新聞項資源集合152。網(wǎng)格對象142還包含核心資源對象集合154,該核心資源對 象集合包含表示一組照片相冊的第一核心資源對象156以及表示一組音樂專輯的第二核 心資源對象166。第一核心資源對象156包含表示相對于第一核心資源對象156發(fā)生的較 不重要的事件的活動資源集合、表示被給予對第一核心資源對象156的各種訪問級別的成 員的成員資源集合、以及將第一核心資源對象156相關(guān)到可通過其訪問第一核心資源對象 156的設(shè)備的映射集合。第一核心資源對象156還包含數(shù)據(jù)訂閱源資源集合,該集合包括 表示照片相冊集合中的照片相冊的數(shù)據(jù)訂閱源資源對象158。數(shù)據(jù)訂閱源資源對象158進 而包含包括照片相冊中的照片的數(shù)據(jù)條目資源集合162、以及表示成員相對于照片相冊的 各種角色(第一成員所擁有的“所有者”角色以及第二成員所擁有的“貢獻者”角色)的角 色資源集合164。類似地,第二核心資源對象166包含活動、成員、映射和數(shù)據(jù)訂閱源的集 合,包括表示具有表示音樂專輯中的各首歌曲的數(shù)據(jù)訂閱源資源對象170的音樂專輯的數(shù) 據(jù)訂閱源資源集合172,以及表示可訪問音樂專輯的成員的角色資源集合174(包括第一成 員所擁有的“所有者”角色以及第二成員所擁有的“收聽者”角色)。如此處所討論的那樣設(shè)計的對象分層架構(gòu)(諸如圖3的示例性對象分層架構(gòu)70) 可以用許多方面的變體來實現(xiàn)。某些變體可呈現(xiàn)增加的優(yōu)點和/或相對于這些和其他技術(shù) 的其他變體減少缺點。在這些技術(shù)(諸如圖4的示例性方法130)的各實施例中,這些變體 可單獨地或結(jié)合其他變體來包括以促進這些增加的優(yōu)點和/或減少的缺點??呻S這些技術(shù)的實現(xiàn)而變化的第二方面涉及存儲根據(jù)對象分層架構(gòu)來組織的對 象分層結(jié)構(gòu)中的對象的方式。此處所描述的對象分層架構(gòu)可以在對象分層結(jié)構(gòu)的許多模型 中實現(xiàn)。某些示例性實施例在圖6中示出,這些實施例各自示出了表示人(具有屬性“名” 和“姓”)、設(shè)備(具有屬性“設(shè)備ID”)和應(yīng)用程序(具有屬性“標題”和“二進制代碼”,后者包括可執(zhí)行二進制代碼的內(nèi)容)的對象的存儲。作為第一示例180,對象分層架構(gòu)可以 用諸如〔#等面向?qū)ο笳Z言來表現(xiàn)為對象集,其中對象通過又被定義為已命名屬性和方法 的明確類型的集合的類來實例化。在該模型中,可定義一組類,并且可從每一個類實例化對 象以表示由該類建模的對象類型的實例。例如,類類型可被定義為表示人,并且該類可被實 例化為表示第一人(“David Smith”)的第一類實例(“人1”)以及表示第二人(“John Lee”)的第二類實例(“人2”)。作為第二示例190,對象分層架構(gòu)可被表現(xiàn)為存儲在諸如 關(guān)系型數(shù)據(jù)庫等數(shù)據(jù)存儲中的一組對象。每一種類型的對象都可被存儲在根據(jù)對象的屬性 來結(jié)構(gòu)化的特定關(guān)系型表中。例如,表可被結(jié)構(gòu)化為存儲各個人的表示,并且可包含表示 第一人("David Smith,,)的第一記錄(“人1”)以及表示第二人("JohnLee")的第二 記錄(“人2”)。作為第三示例200,對象分層結(jié)構(gòu)中的對象可依照對象分層架構(gòu)中的對象 來建模,但可以按提供屬性名稱和值的字典的結(jié)構(gòu)不可知方式來存儲。可利用元組系統(tǒng),其 中任何名稱的對象都可被聲明為任意一組鍵/值元組。例如,人的表示可作為表示第一人 ("David Smith”)的第一二元組(“人1”)以及表示第二人(“John Lee”)的第二二元 組(“人2”)來存儲。對象分層架構(gòu)的這些和其他實施例可由本領(lǐng)域普通技術(shù)人員設(shè)計, 同時實現(xiàn)此處所討論的技術(shù)。可隨這些技術(shù)的實現(xiàn)而變化的第二方面涉及以促進這些對象類型的可擴展性和/ 或新對象類型的添加的方式來制定對象分層架構(gòu)。圖2所示的對象類型可以完全足以表示 計算環(huán)境中的許多或所有對象。然而,圖2所示的示例性對象分層架構(gòu)對象集30并非作為 可以定義并結(jié)合在對象分層架構(gòu)中的對象類型的窮盡列表來呈現(xiàn)。對象分層架構(gòu)的各實施 例可包括和定義從圖2所示的對象類型中專門化的、作為對圖2所示的對象類型的補充和 /或次要更改的其他對象類型。此外,對象分層架構(gòu)的某些實施例可準許將其他類型的對 象存儲在由此組織的對象分層結(jié)構(gòu)中。對象分層架構(gòu)因此可被設(shè)計成可擴展對象系統(tǒng),其 中對象可以在對象分層結(jié)構(gòu)中根據(jù)新對象類型來創(chuàng)建,并且對象類型可被擴展成具有新屬 性。作為第一示例,全新類型的對象可由各個用戶設(shè)計并被插入到對象分層結(jié)構(gòu)中。作為 第二示例,用戶可能希望將元數(shù)據(jù)與對象相關(guān)聯(lián)以指示對象具有語義關(guān)系。該元數(shù)據(jù)可以 用對用戶有價值的信息來補充對象分層結(jié)構(gòu)中的對象,并且對象分層架構(gòu)可以按元數(shù)據(jù)不 干擾對象分層結(jié)構(gòu)中的對象的表示的方式來設(shè)計。為了促進對象分層架構(gòu)的可擴展性,對象分層結(jié)構(gòu)中的各個對象可根據(jù)可遞歸基 本表示格式來指定和存儲,其中對象的分量可以按基本方式表示。例如,可以認識到,對象 通常包含三種類型的數(shù)據(jù)元素原子(單個數(shù)據(jù)單元,諸如數(shù)字或字符)、記錄(一起操作 的單個數(shù)據(jù)單元的集合)以及序列(元素的聚集)。記錄一般表示不可分割地一起用作表 示的一組元素,諸如數(shù)字7、4和1776 —起表示日期1776年7月4日;而序列表示一組可分 割項目,諸如2、3、5和7構(gòu)成質(zhì)數(shù)的子集。此外,可以遞歸地設(shè)計語法,這可準許嵌套特定 種類的元素(例如,序列的序列、或包含作為記錄的一個元素的序列的記錄)。通過以此方 式組織對象,對象分層架構(gòu)可準許表示已知對象類型(諸如圖2所示的那些對象類型)的 對象以及表示未知對象類型的對象,以及用諸如用戶定義的元數(shù)據(jù)等新信息來擴展已知對 象類型。本領(lǐng)域的普通技術(shù)人員能夠設(shè)計許多可擴展對象分層架構(gòu)及其格式,同時實現(xiàn)此 處所討論的技術(shù)??呻S這些技術(shù)的實現(xiàn)而變化的第三方面涉及可用于標識對象分層結(jié)構(gòu)中的對象
12的定址模型。可以有利地選擇該定址模型以反映構(gòu)成對象分層結(jié)構(gòu)的對象的分層安排 (即,如果第一對象在分層結(jié)構(gòu)上從屬于第二對象,則第一對象的地址在分層結(jié)構(gòu)上從屬于 第二對象的地址)。還可以有利地選擇定址模型以便為每一個地址指定最多一個對象,并且 使得對象保持可以在特定地址處定址直到且除非對象改變在對象分層結(jié)構(gòu)中的位置或被 移除。在對象分層架構(gòu)的某些實施例中,可設(shè)計定址模型以使得各個對象在單個地址可用, 以使得在第一地址可用的第一對象與在第二地址可用的第二對象相比是事實上的不同對 象。在對象分層架構(gòu)的其他實施例中,對象可以在兩個或更多地址處訪問。作為一個示例, 對象可以具有對象分層結(jié)構(gòu)中的分層地址,也可具有可用于區(qū)別地標識對象而不管其在對 象分層結(jié)構(gòu)中的位置的全局區(qū)別地址。例如,對象分層結(jié)構(gòu)中的對象可被分配全局唯一標 識符(GUID),并且可根據(jù)對象分層結(jié)構(gòu)中的一個或多個分層地址來訪問或者根據(jù)其GUID 不通過分層結(jié)構(gòu)來訪問。由此,表示關(guān)于John Lee的聯(lián)系人信息的對象可以在創(chuàng)建時被指 定⑶ID0xF451D3E0,并且可通過分層結(jié)構(gòu)位置和名稱(例如,/聯(lián)系人/JohnLee)或通過其 GUID(例如,/GUID/F451D3E0)來訪問。本領(lǐng)域的普通技術(shù)人員可設(shè)計用于對象分層架構(gòu)的 許多定制模型,同時實現(xiàn)此處所討論的技術(shù)。可以是有利的一種這樣的定址模型涉及為對象分層結(jié)構(gòu)的各個地址定義資源對 象類型的最多一個對象的分層定址模型。該定址模型可以適用于包括諸如圖2的示例性對 象分層架構(gòu)對象集30所示的對象類型的對象分層架構(gòu),其中許多對象類型從基礎(chǔ)資源對 象類型32導出。從中導出的任何這樣的對象可被授予對象分層結(jié)構(gòu)中的單個、分層定向的 地址;相反,并非從資源對象類型32導出的對象可能無法通過該定址模型獲得。更具體而 言,該分層定址模型可根據(jù)統(tǒng)一資源標識符(URI)分層定址模型來定義。URI通常根據(jù)以下 句法來定義方案//授權(quán)機構(gòu)/路徑/資源名稱其中方案表示通信協(xié)議(HTTP、FTP、telnet等),授權(quán)機構(gòu)表示服務(wù)器或數(shù)據(jù)源, 而路徑表示到分層結(jié)構(gòu)中存在已命名資源的節(jié)點的斜杠分隔的路徑。基于對象分層架構(gòu) (諸如圖3的示例性對象分層架構(gòu)70)的對象分層結(jié)構(gòu)的對象能夠以此方式定址,諸如http//mycomputer. com/Contacts/JohnLee該定址模型在若干方面可以是有利的。第一,可以此方式定址的對象分層結(jié)構(gòu)可 由公共web服務(wù)器來主存,即使該web服務(wù)器未被專門被配置成存儲表示計算環(huán)境的對象 分層結(jié)構(gòu)中的對象。第二,以方式指定的對象訪問可由主要被配置成處理基于URI的請求 的聯(lián)網(wǎng)硬件(例如,防火墻和路由器)來更容易地處理。第三,可以此方式定址的對象分層 結(jié)構(gòu)可根據(jù)代表性狀態(tài)傳輸(“REST”)接口來表示,其中對象分層結(jié)構(gòu)中的對象可通過一 組受約束的明確定義的操作來操作;例如,常見HTTP方法(PUT、GET、POST和DELETE)可以 完全足以啟用用于訪問表示計算環(huán)境的對象分層結(jié)構(gòu)中的對象的常見動詞(創(chuàng)建、讀取、 更新和刪除)。與用于各種對象分層架構(gòu)的其他定址模型相比,可提供其他優(yōu)點和/或減少 其他缺點。可隨這些技術(shù)的實現(xiàn)而變化的第四方面涉及對象分層架構(gòu)中所定義的已知對象 類型的分量。圖2所示的示例性對象分層架構(gòu)對象集30并非作為可以定義并結(jié)合在對象分 層架構(gòu)中的對象類型的窮盡列表,也不是作為包括這些對象類型的完整屬性集來呈現(xiàn)。圖7 示出了示例性附加對象屬性集210,包括可以與對象分層架構(gòu)的對象類型相關(guān)聯(lián)的附加對象屬性??梢赃x擇(單獨地或結(jié)合其他附加對象屬性)這些附加對象屬性以便進一步定義 根據(jù)對象分層架構(gòu)來組織的對象分層結(jié)構(gòu)中的對象,這可對于對象分層架構(gòu)定義具有不同 對象屬性集的對象類型呈現(xiàn)附加優(yōu)點和/或減少缺點。如示例性附加對象屬性集210所示,網(wǎng)格對象類型54可以與包括自鏈接對象和/ 或標題對象的附加屬性相關(guān)聯(lián),該自鏈接對象指定網(wǎng)格中的地址(例如,定義網(wǎng)格的服務(wù) 器或源的部分URI,諸如http://myCOmputer. com),標題對象指定對象分層結(jié)構(gòu)和由此表 示的計算環(huán)境的名稱。資源對象類型32和資源集合對象類型58兩者都可以與較大范圍的 屬性相關(guān)聯(lián),包括標識資源或資源集合的作者的作者集合;指定資源或資源集合中所包 含的項目的基地址(例如,基礎(chǔ)URI)的基地址對象;指定描述資源或資源集合的某些用戶 定義的類別的類別集合;指定資源或資源集合的貢獻者的貢獻者集合;標識對于資源或資 源集合的版權(quán)聲明的版權(quán)對象;諸如全局唯一標識符(GUID)等標識對象;標識與資源或資 源集合相關(guān)的鏈接(例如,URL)的鏈接集合;指定資源或資源對象的區(qū)別地址(例如,URI) 的自鏈接對象;包含資源或資源集合的文本概述的概述對象;和/或指定資源或資源集合 的名稱的標題對象。如在示例性附加對象屬性集210中進一步示出的,核心對象類型34可以與包含與 該核心對象相關(guān)聯(lián)的一組任意分配的用戶數(shù)據(jù)(例如,域?qū)S迷獢?shù)據(jù))的用戶數(shù)據(jù)對象相 關(guān)聯(lián)。應(yīng)用程序?qū)ο箢愋?6可以與以下對象相關(guān)聯(lián)區(qū)別標識應(yīng)用程序的應(yīng)用程序標識對 象(例如,應(yīng)用程序名稱);標識應(yīng)用程序的主頁的主頁位置對象(例如,網(wǎng)站URL);標識對 象分層結(jié)構(gòu)中的應(yīng)用程序的當前版本的安裝版本位置(例如,計算器版本1. 2. 1. 1600);標 識應(yīng)用程序清單的位置的清單位置對象(例如,標識對象分層結(jié)構(gòu)中的資源對象的URI,或 者標識web可訪問應(yīng)用程序清單的URL);和/或標識在清單位置可用的應(yīng)用程序清單的版 本的清單版本對象。數(shù)據(jù)條目對象類型38可以與以下對象相關(guān)聯(lián)指示數(shù)據(jù)條目對象的分 層父對象的父對象標識對象、包含對象同步信息(例如,最新對象同步指示符、該數(shù)據(jù)條目 最后一次與計算環(huán)境主機同步的日期和時間等)的同步對象、和/或包含與數(shù)據(jù)條目相關(guān) 聯(lián)的一組任意分配的用戶數(shù)據(jù)的用戶數(shù)據(jù)對象。數(shù)據(jù)訂閱源對象類型42可以與包括一組 同步相關(guān)活動或新聞項的同步條目集合和/或指示數(shù)據(jù)訂閱源的類型(例如,圖像或聲音 的集合、多媒體文檔的組件等)的數(shù)據(jù)訂閱源類型對象相關(guān)聯(lián)。如在示例性附加對象屬性集210中進一步示出的,活動對象類型44可以與描述活 動類型(例如,數(shù)據(jù)條目創(chuàng)建、讀取、更新或刪除)的活動類型對象、和/或定義活動的最大 有用生存期的最大年齡對象相關(guān)聯(lián),超過該生存期活動可表示不再有用地存儲并呈現(xiàn)給用 戶的過時事件。成員對象類型46可以與以下對象相關(guān)聯(lián)指示被邀請成為資源或資源集 合的成員的一個人是否已接受該邀請的邀請接受指示符對象;指示成為資源或資源集合的 成員的邀請是否已期滿的邀請期滿指示符;指示成員是否是資源或資源集合的所有者的所 有者指示符;和/或指示成員相對于資源或資源集合所擁有的角色類型(例如,作者、讀者 等)的角色類型對象。設(shè)備對象類型48可以與描述所表示的設(shè)備所屬的一般設(shè)備類別的 設(shè)備類型對象和/或指示當前表示計算環(huán)境的設(shè)備當前是否可訪問該設(shè)備的設(shè)備在線指 示符對象相關(guān)聯(lián)。映射對象類型50可以與標識核心資源對象中的映射到設(shè)備的特定數(shù)據(jù) 訂閱源的數(shù)據(jù)訂閱源映射集合相關(guān)聯(lián)。例如,設(shè)備可以通過映射對象類型50的對象來映射 到核心對象的子集,但該映射可被限于映射對象的數(shù)據(jù)訂閱源映射集合中所標識的特定數(shù)據(jù)訂閱源。簡檔對象類型52可以與表示用戶姓名的姓名對象和/或表示用戶的電子郵件 地址聯(lián)系方式的電子郵件地址對象相關(guān)聯(lián)。最后,角色對象類型62可以與以下對象相關(guān) 聯(lián)標識與角色相關(guān)聯(lián)的許可的創(chuàng)建許可指示符對象、刪除許可指示符對象、讀取許可指示 符對象、和/或更新許可指示符對象、和/或標識該角色的用戶所擁有的角色類型的角色類 型對象。圖7的示例性附加對象屬性210由此示出了可以進一步與對象分層架構(gòu)中的各種 對象類型相關(guān)聯(lián)(單獨或組合)的某些對象屬性。然而,可以理解,附加對象屬性集210并 非作為可以與這樣的對象分層架構(gòu)中的各種對象類型相關(guān)聯(lián)的對象屬性的窮盡列表來呈 現(xiàn),并且許多其他對象屬性可另選地或另外地與各種對象類型相關(guān)聯(lián)。本領(lǐng)域的普通技術(shù) 人員能夠在對象分層架構(gòu)的各種已知對象類型的定義中包括附加或替換對象屬性,同時實 現(xiàn)此處所討論的技術(shù)。此處所討論的技術(shù)的另一實施例涉及包括處理器可執(zhí)行指令的計算機可讀介質(zhì), 這些指令被配置成執(zhí)行一種根據(jù)對分層結(jié)構(gòu)來表示計算環(huán)境的方法??梢杂眠@些方式設(shè)計 的一種示例性計算機可讀介質(zhì)在圖8中示出,其中實現(xiàn)220包括其上編碼有計算機可讀數(shù) 據(jù)224的計算機可讀介質(zhì)222 (例如,⑶-R、DVD-R、或硬盤驅(qū)動器的盤片)。該計算機可讀 數(shù)據(jù)224又包括被配置成根據(jù)此次闡述的原理來操作的一組計算機指令226。在一個這樣 的實施例220中,處理器可執(zhí)行指令226可被配置成執(zhí)行一種根據(jù)對象分層結(jié)構(gòu)來表示計 算環(huán)境的方法,諸如圖4的示例性方法130。本領(lǐng)域普通技術(shù)人員可以設(shè)計可被配置成根據(jù) 此處描述的技術(shù)操作的許多這樣的計算機可讀介質(zhì)。盡管用結(jié)構(gòu)特征和/或方法動作專用的語言描述了本主題,但可以理解,所附權(quán) 利要求書中定義的主題不必限于上述具體特征或動作。相反,上文所描述的具體特征和動 作是作為實現(xiàn)權(quán)利要求的示例形式來公開的。如在本申請中所使用的,術(shù)語“組件”、“模塊”、“系統(tǒng)”、“接口 ”等一般旨在表示計 算機相關(guān)的實體,該實體可以是硬件、硬件和軟件的組合、軟件、或者執(zhí)行中的軟件。例如, 組件可以是,但不限于是,在處理器上運行的進程、處理器、對象、可執(zhí)行碼、執(zhí)行的線程、程 序和/或計算機。作為說明,運行在控制器上的應(yīng)用程序和控制器都可以是組件。一個或 多個組件可以駐留在進程和/或執(zhí)行的線程中,并且組件可以位于一個計算機內(nèi)和/或分 布在兩個或更多的計算機之間。此外,所要求保護的主題可以使用產(chǎn)生控制計算機以實現(xiàn)所公開的主題的軟件、 固件、硬件或其任意組合的標準編程和/或工程技術(shù)而被實現(xiàn)為方法、裝置或制品。在此使 用的術(shù)語“制品”旨在涵蓋可以從任何計算機可讀設(shè)備、載體或介質(zhì)訪問的計算機程序。當 然,本領(lǐng)域的技術(shù)人員將會認識到,在不背離所要求保護的主題的范圍或精神的前提下可 以對這一配置進行許多修改。圖9和以下討論提供了對用于實現(xiàn)此處所闡述的原理中的一個或多個實施例的 合適計算環(huán)境的簡要、概括描述。圖9的操作環(huán)境只是合適的操作環(huán)境的一個示例,并不旨 在對該操作環(huán)境的使用范圍或功能提出任何限制。示例計算設(shè)備包括但不限于個人計算 機、服務(wù)器計算機、手持式或膝上型設(shè)備、移動設(shè)備(諸如移動電話、個人數(shù)字助理(PDA)、 媒體播放器等等)、多處理器系統(tǒng)、消費電子產(chǎn)品、小型計算機、大型計算機、包括任何以上 系統(tǒng)或設(shè)備的分布式計算環(huán)境等等。
各實施例可以在由一個或多個計算設(shè)備執(zhí)行的“計算機可讀指令”的一般上下文 中描述。計算機可讀指令可通過計算機可讀介質(zhì)來分發(fā)(在以下討論)。計算機可讀指令 可被實現(xiàn)為執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的程序模塊,如函數(shù)、對象、應(yīng)用程序編 程接口(API)、數(shù)據(jù)結(jié)構(gòu)等等。通常,計算機可讀指令的功能可按需在各個環(huán)境中組合或分布。圖9示出了包括被配置成實現(xiàn)此處所提供的一個或多個實施例的計算設(shè)備232的 系統(tǒng)230的示例。在一種配置中,計算設(shè)備232包括至少一個處理單元236和存儲器238。 取決于計算設(shè)備的確切配置和類型,存儲器238可以是易失性的(如RAM)、非易失性的(如 ROM、閃存等)或是兩者的某種組合。該配置在圖9中由虛線234來示出。在其他實施例中,設(shè)備232可以包括附加特征和/或功能。例如,設(shè)備232還可以 包括附加存儲(例如,可移動和/或不可移動),其中包括但不限于磁存儲、光存儲等等。這 樣的附加存儲在圖9中由存儲240示出。在一個實施例中,用于實現(xiàn)此處所提供的一個或 多個實施例的計算機可讀指令可以在存儲240中。存儲240還可以儲存實現(xiàn)操作系統(tǒng)、應(yīng) 用程序等的其他計算機可讀指令。可以在存儲器238中加載計算機可讀指令以便由例如處 理單元236來執(zhí)行。此處所使用的術(shù)語“計算機可讀介質(zhì)”包括計算機存儲介質(zhì)。計算機存儲介質(zhì)包 括以用于存儲諸如計算機可讀指令或其他數(shù)據(jù)等信息的任何方法或技術(shù)來實現(xiàn)的易失性 和非易失性、可移動和不可移動介質(zhì)。存儲器238和存儲240都是計算機存儲介質(zhì)的示例。 計算機存儲介質(zhì)包括但不限于,RAM、ROM、EEPR0M、閃存或其他存儲器技術(shù)、CD-ROM、數(shù)字多 功能盤(DVD)或其他光存儲、磁帶盒、磁帶、磁盤存儲或其他磁存儲設(shè)備、或者可用于存儲 所需信息并且可由設(shè)備232訪問的任何其他介質(zhì)。任何這樣的計算機存儲介質(zhì)都可以是設(shè) 備232的一部分。設(shè)備232還可包括允許該設(shè)備232與其他設(shè)備進行通信的通信連接246。通信連 接246可包括但不限于,調(diào)制解調(diào)器、網(wǎng)絡(luò)接口卡(NIC)、集成網(wǎng)絡(luò)接口、射頻發(fā)射機/接收 機、紅外線端口、USB連接、或用于將計算設(shè)備232連接到其他計算設(shè)備的其他接口。通信 連接246可以包括有線連接或無線連接。通信連接246可以發(fā)送和/或接收通信媒體。術(shù)語“計算機可讀介質(zhì)”可以包括通信介質(zhì)。通信介質(zhì)通常以諸如載波或其他傳輸 機制等“已調(diào)制數(shù)據(jù)信號”來體現(xiàn)計算機可讀指令或其他數(shù)據(jù),并包括任何信息傳送介質(zhì)。 術(shù)語“已調(diào)制數(shù)據(jù)信號”指以對信號中的信息進行編碼的方式設(shè)置或改變其一個或多個特 征的信號。設(shè)備232可包括輸入設(shè)備244,諸如鍵盤、鼠標、筆、語音輸入設(shè)備、觸摸輸入設(shè)備、 紅外照相機、視頻輸入設(shè)備和/或任何其他輸入設(shè)備。設(shè)備232中還可包括輸出設(shè)備242, 諸如一個或多個顯示器、揚聲器、打印機和/或任何其他輸出設(shè)備。輸入設(shè)備244和輸出設(shè) 備242可以通過有線連接、無線連接或其任何組合來連接到設(shè)備232。在一個實施例中,來 自另一計算設(shè)備的輸入設(shè)備或輸出設(shè)備可用作計算設(shè)備232的輸入設(shè)備244或輸出設(shè)備 242。計算設(shè)備232的組件可以通過諸如總線等各種互連來連接。這些互連可包括諸如 PCI Express等外圍部件互連(PCI)、通用串行總線(USB)、火線(IEEE1394)、光學總線結(jié)構(gòu) 等。在另一實施例中,計算設(shè)備232的組件可以通過網(wǎng)絡(luò)互連。例如,存儲器238可由位于通過網(wǎng)絡(luò)互連的不同物理位置的多個物理存儲器單元組成。本領(lǐng)域技術(shù)人員會認識到,用于存儲計算機可讀指令的存儲設(shè)備可分布在網(wǎng)絡(luò) 上。例如,可以通過網(wǎng)絡(luò)248訪問的計算設(shè)備250可以存儲實現(xiàn)此處所提供的一個或多個 實施例的計算機可讀指令。計算設(shè)備232可以訪問計算設(shè)備250并下載部分或全部計算機 可讀指令來執(zhí)行。或者,計算設(shè)備232可以按需下載計算機可讀指令的片斷,或者某些指令 可以在計算設(shè)備232處執(zhí)行而某些則在計算設(shè)備250處執(zhí)行。此處提供了各實施例的各種操作。在一個實施例中,所描述的操作中的一個或多 個可以組成儲存在一個或多個計算機可讀介質(zhì)上的計算機可讀指令,這些指令如果被計算 設(shè)備執(zhí)行則使得計算設(shè)備執(zhí)行所描述的操作。描述一些或全部操作的順序不被解釋為暗示 了這些操作必須要依賴于順序。從本說明書獲益的本領(lǐng)域技術(shù)人員應(yīng)理解替換的排序。此 外,應(yīng)該理解并非所有的操作都必須存在于此處所提供的每一實施例中。此外,在此使用詞語“示例性”意指用作示例、實例或說明。在此被描述為“示例性” 的任何方面或設(shè)計并不一定被解釋為比其他方面或設(shè)計有利。相反,使用詞語“示例性”旨 在以具體的方式呈現(xiàn)各個概念。如本申請中所使用的,術(shù)語“或”意指包括性“或”而非互 斥性“或”。即,除非另有指定或從上下文可以清楚,否則“X使用A或B”意指任何自然的包 括性排列。即,如果X使用A ;X使用B ;或X使用A和B兩者,則在任何以上情況下,都滿足 “X使用A或B”。另外,本申請中和所附權(quán)利要求書中所使用的冠詞“一”和“一個” 一般可 被解釋為是指“一個或多個”,除非另有指定或從上下文可以清楚指的是單數(shù)形式。同樣,雖然參考一個或多個實現(xiàn)示出并描述了本發(fā)明,但本領(lǐng)域技術(shù)人員基于對 本說明書和附圖的閱讀和理解可以想到各種等效替換和修改。本發(fā)明包括所有這些修改和 替換并且只由所附權(quán)利要求書來限定。特別地,對于由上述組件(例如,元素、資源等)執(zhí) 行的各種功能,除非另外指明,否則用于描述這些組件的術(shù)語旨在對應(yīng)于執(zhí)行所描述的執(zhí) 行此處在本發(fā)明的示例性實現(xiàn)中所示的功能的組件的指定功能(例如,功能上等效)的任 何組件,即使這些組件在結(jié)構(gòu)上不等效于所公開的結(jié)構(gòu)。另外,盡管可相對于若干實現(xiàn)中的 僅一個實現(xiàn)來公開本發(fā)明的一個特定特征,但是這一特征可以如對任何給定或特定應(yīng)用所 需且有利地與其它實現(xiàn)的一個或多個其它特征相組合。此外,就在說明書或權(quán)利要求書中 使用術(shù)語“包含”、“具有”、“含有”和“帶有”及其變體而言,這些術(shù)語旨在以與術(shù)語“包括” 相似的方式為包含性的。
1權(quán)利要求
一種表示計算環(huán)境的方法(50),所述方法(50)包括在對象分層結(jié)構(gòu)(10)中表示(54)所述計算環(huán)境中的對象,各個對象根據(jù)可遞歸基本表示格式來表示。
2.如權(quán)利要求1所述的方法,其特征在于,所述可遞歸基本表示格式包括原子記錄的 可遞歸序列。
3.如權(quán)利要求1所述的方法,其特征在于,所述對象分層結(jié)構(gòu)被表示為XML。
4.如權(quán)利要求1所述的方法,其特征在于,至少一個對象被表示為未擴展節(jié)點。
5.如權(quán)利要求4所述的方法,其特征在于,所述方法包括在接收到擴展未擴展節(jié)點的請求時,提供所述未擴展節(jié)點的對象。
6.如權(quán)利要求1所述的方法,其特征在于所述未擴展節(jié)點引用包含所述未擴展節(jié)點的對象的對象存儲,并且 所述方法包括在接收到擴展引用對象存儲的未擴展節(jié)點的請求時 向所述對象存儲請求所述對象;以及在接收到來自所述對象存儲的對象時,響應(yīng)于所述請求來提供所述對象。
7.如權(quán)利要求1所述的方法,其特征在于 所述計算環(huán)境被表示到設(shè)備,并且所述表示根據(jù)所述設(shè)備的能力來調(diào)整。
8.如權(quán)利要求7所述的方法,其特征在于 所述設(shè)備的能力包括設(shè)備存儲能力,并且所述調(diào)整包括用至少一個未擴展節(jié)點來表示所述計算環(huán)境以將所表示的計算環(huán)境的 大小限于不超過所述設(shè)備存儲容量。
9.如權(quán)利要求1所述的方法,其特征在于 所述計算環(huán)境被表示給用戶,并且所述表示根據(jù)所述用戶來調(diào)整。
10.如權(quán)利要求9所述的方法,其特征在于 所述計算環(huán)境指定所述用戶的用戶帳戶,所述計算環(huán)境指定所述用戶帳戶對于所述計算環(huán)境的對象的訪問特權(quán),并且 所述調(diào)整包括用至少一個未擴展節(jié)點來表示所述計算環(huán)境,所述至少一個未擴展節(jié) 點表示所述對象分層結(jié)構(gòu)中根據(jù)所述用戶帳戶的訪問特權(quán)來對所述用戶限制的一部分。
11.如權(quán)利要求1所述的方法,其特征在于,包括將所述計算環(huán)境從所述可遞歸基本表示格式變換成數(shù)據(jù)交換格式。
12.如權(quán)利要求1所述的方法,其特征在于,包括將所述計算環(huán)境中的對象編組為平臺表示格式的至少一個類的實例。
13.如權(quán)利要求1所述的方法,其特征在于,包括 計算環(huán)境表示組件,所述計算環(huán)境表示組件被配置成 接收對指定數(shù)據(jù)交換格式的計算環(huán)境的請求;以及將所述計算環(huán)境從所述可遞歸基本表示格式變換成所述數(shù)據(jù)交換格式。
14.如權(quán)利要求1所述的方法,其特征在于,包括 查詢對象服務(wù);同步對象服務(wù);以及 報告對象事件服務(wù)。
15.如權(quán)利要求14所述的方法,其特征在于,包括 被配置成存儲構(gòu)成所述計算環(huán)境的對象的計算環(huán)境對象存儲(62); 計算環(huán)境表示組件(64),所述計算環(huán)境表示組件被配置成在對象分層結(jié)構(gòu)(10)中表 示所述計算環(huán)境的對象,各個對象根據(jù)可遞歸基本表示格式來表示;以及計算環(huán)境服務(wù)集(66),所述計算環(huán)境服務(wù)集包括被配置成操作所述計算環(huán)境的對象的 至少一個計算環(huán)境服務(wù)。
全文摘要
計算環(huán)境可被表示為可部署對象分層結(jié)構(gòu),該可部署對象分層結(jié)構(gòu)可根據(jù)通常在計算環(huán)境主機和被配置成呈現(xiàn)該計算環(huán)境的設(shè)備之間共享的對象分層架構(gòu)來組織。詳細地呈現(xiàn)了用于表示計算環(huán)境的特定對象分層架構(gòu),其中該計算環(huán)境中的許多對象被建模為可區(qū)別定址的資源(例如,在具有REST特性(RESTful)的對象分層結(jié)構(gòu)中)。呈現(xiàn)許多類型的對象及其屬性以闡明示例性對象分層架構(gòu)并示出示例性對象和根據(jù)該架構(gòu)來組織的對象分層結(jié)構(gòu)。各種對象分層架構(gòu)的其他特性包括可擴展性、可部署性以及具有各種優(yōu)點的對象定址模型。
文檔編號G06F9/06GK101978369SQ200980110676
公開日2011年2月16日 申請日期2009年2月19日 優(yōu)先權(quán)日2008年3月20日
發(fā)明者D·舒克拉, J·張, O·阿米加, V·瓦蘇 申請人:微軟公司