国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      操縱數(shù)據(jù)存儲(chǔ)系統(tǒng)中的數(shù)據(jù)的制作方法

      文檔序號(hào):6566850閱讀:376來源:國(guó)知局

      專利名稱::操縱數(shù)據(jù)存儲(chǔ)系統(tǒng)中的數(shù)據(jù)的制作方法
      技術(shù)領(lǐng)域
      :本發(fā)明一般涉及數(shù)據(jù)庫(kù),尤其涉及便于基于與相應(yīng)的數(shù)據(jù)存儲(chǔ)系統(tǒng)相關(guān)聯(lián)的數(shù)據(jù)模型和/或安全實(shí)現(xiàn)來操縱數(shù)據(jù)的系統(tǒng)和/或方法。
      背景技術(shù)
      :計(jì)算機(jī)技術(shù)(例如,微處理器速度、存儲(chǔ)器容量、數(shù)據(jù)傳輸帶寬、軟件功能等)的進(jìn)步總體上對(duì)計(jì)算機(jī)在各種行業(yè)中的日益增加的應(yīng)用做出了貢獻(xiàn)。通常提供常被配置為服務(wù)器陣列的甚至更強(qiáng)大的服務(wù)器系統(tǒng)來服務(wù)源自諸如萬維網(wǎng)等外部源的請(qǐng)求。當(dāng)可用電子數(shù)據(jù)的數(shù)量增長(zhǎng)時(shí),以便于用戶友好和快速數(shù)據(jù)搜索和檢索的可管理方式來儲(chǔ)存這些數(shù)據(jù)也變得愈發(fā)重要。當(dāng)今,一種常見的方法是將電子數(shù)據(jù)儲(chǔ)存在一個(gè)或多個(gè)數(shù)據(jù)庫(kù)中。一般而言,典型的數(shù)據(jù)庫(kù)可被稱為其數(shù)據(jù)被結(jié)構(gòu)化使得計(jì)算機(jī)程序可例如快速搜索和選擇期望的數(shù)據(jù)的有組織的信息集合。通常,數(shù)據(jù)庫(kù)內(nèi)的數(shù)據(jù)是經(jīng)由一張或多張表來組織的。這些表被排列為行和列的數(shù)組。同樣,表可包括一組記錄,其中記錄包括一組字段。記錄通常被索引為表內(nèi)的行,而記錄字段通常被索引為列,使得索引的行/列對(duì)可引用表內(nèi)的特定數(shù)據(jù)。例如,行可儲(chǔ)存與銷售交易、個(gè)人或項(xiàng)目相關(guān)的完整數(shù)據(jù)記錄。同樣,表的列可定義具有相同的一般數(shù)據(jù)格式的行的離散部分,其中列可定義記錄的字段。每一個(gè)別的數(shù)據(jù)本身一般并不具有非常豐富的信息。數(shù)據(jù)庫(kù)應(yīng)用程序使得數(shù)據(jù)更有用是因?yàn)樗鼈儙椭脩艚M織和處理數(shù)據(jù)。數(shù)據(jù)庫(kù)應(yīng)用程序允許用戶比較、分類、排序、合并、分離和互連數(shù)據(jù),使得可從數(shù)據(jù)生成有用的信息。數(shù)據(jù)庫(kù)的容量和多功能性正難以置信地增長(zhǎng),以允許利用數(shù)據(jù)庫(kù)的實(shí)際上無止境的存儲(chǔ)容量。然而,典型的數(shù)據(jù)庫(kù)系統(tǒng)提供了基于時(shí)間、文件擴(kuò)展名、位置和大小的有限的査詢能力。例如,為了搜索關(guān)聯(lián)到一數(shù)據(jù)庫(kù)的大量數(shù)據(jù),典型的搜索限于文件名、文件大小、創(chuàng)建日期等,其中這些技術(shù)是不完善且不合適的。隨著最終用戶對(duì)數(shù)據(jù)的持續(xù)且日益增長(zhǎng)的創(chuàng)建,圍繞査找、相關(guān)、操縱和儲(chǔ)存這些數(shù)據(jù)的問題和困難也逐步增加。最終用戶編寫文檔、儲(chǔ)存照片、從光盤中抓取音樂、接收電子郵件、保留已發(fā)送郵件的副本等等。例如,在創(chuàng)建音樂光盤的簡(jiǎn)單過程中,最終用戶可創(chuàng)建兆字節(jié)的數(shù)據(jù)。從光盤中抓取音樂、將文件轉(zhuǎn)換成合適的格式、創(chuàng)建首飾盒封面以及設(shè)計(jì)光盤標(biāo)簽都需要?jiǎng)?chuàng)建數(shù)據(jù)。不僅僅是圍繞用戶的復(fù)雜情況,而且開發(fā)者也具有對(duì)數(shù)據(jù)的類似問題。開發(fā)者創(chuàng)建并編寫從個(gè)人應(yīng)用程序到高度開發(fā)的企業(yè)應(yīng)用程序的大量應(yīng)用程序。在創(chuàng)建和/或開發(fā)時(shí),開發(fā)者即使不是總是也經(jīng)常要收集數(shù)據(jù)。當(dāng)獲得這些數(shù)據(jù)時(shí),需要儲(chǔ)存這些數(shù)據(jù)。換言之,圍繞查找、相關(guān)、操縱和儲(chǔ)存數(shù)據(jù)的問題和困難同時(shí)影響了開發(fā)者和最終用戶兩者。特別地,隨著對(duì)這類數(shù)據(jù)的操縱,必須確保數(shù)據(jù)的完整性,而不會(huì)破壞和/或調(diào)用常規(guī)的系統(tǒng)和/或數(shù)據(jù)庫(kù)內(nèi)的任何不穩(wěn)定條件。發(fā)明概述以下提出了本發(fā)明的簡(jiǎn)化概述以提供對(duì)本發(fā)明的某些方面的基本理解。本概述不是本發(fā)明的廣泛綜述。它并不旨在標(biāo)識(shí)本發(fā)明的關(guān)鍵或決定性元素,也不旨在描繪本發(fā)明的范圍。其唯一的目的是以簡(jiǎn)化的形式提出本發(fā)明的某些概念,作為以后提出的更詳細(xì)描述的序言。本發(fā)明涉及便于至少部分地基于與特性和/或約束相關(guān)聯(lián)的數(shù)據(jù)模型來操縱數(shù)據(jù)的系統(tǒng)和/或方法。數(shù)據(jù)模型可表示數(shù)據(jù)存儲(chǔ)系統(tǒng)(例如,基于數(shù)據(jù)庫(kù)的文件存儲(chǔ)系統(tǒng)),其中這一模型是可將數(shù)據(jù)存儲(chǔ)系統(tǒng)內(nèi)的信息表示為復(fù)雜類型的實(shí)例的持久儲(chǔ)存的實(shí)體和子實(shí)體的分層模型。為了便于操縱數(shù)據(jù),數(shù)據(jù)操縱組件可提供與該數(shù)據(jù)存儲(chǔ)系統(tǒng)相關(guān)聯(lián)的數(shù)據(jù)操縱過程,同時(shí)實(shí)施和/或?qū)崿F(xiàn)特性和/或約束中的至少個(gè)。換R之,數(shù)據(jù)操縱組件在任何適當(dāng)?shù)臄?shù)據(jù)操縱期間將數(shù)據(jù)持久儲(chǔ)存在數(shù)據(jù)存儲(chǔ)系統(tǒng)中。根據(jù)本發(fā)明的一方面,數(shù)據(jù)操縱組件可包括提供至少一個(gè)過程的過程組件,其中過程操縱數(shù)據(jù)。對(duì)數(shù)據(jù)的過程可實(shí)現(xiàn)復(fù)制、更新、替換、獲取、設(shè)置、創(chuàng)建、刪除、移動(dòng)、修改等等。此外,數(shù)據(jù)操縱組件可包括實(shí)施和/或?qū)崿F(xiàn)與表示數(shù)據(jù)存儲(chǔ)系統(tǒng)的數(shù)據(jù)模型相關(guān)聯(lián)的特性和/或約束的實(shí)施器組件。通過利用與數(shù)據(jù)操縱相關(guān)聯(lián)的特性和/或約束,在整個(gè)數(shù)據(jù)存儲(chǔ)系統(tǒng)中維護(hù)了數(shù)據(jù)模型的完整性。根據(jù)本發(fā)明的另一方面,數(shù)據(jù)操縱組件可利用應(yīng)用程序編程接口(API)。API可被展示給客戶端(例如,調(diào)用者),其中API是可調(diào)用一個(gè)或多個(gè)私有實(shí)現(xiàn)例程來執(zhí)行客戶端請(qǐng)求的公有表面區(qū)域。在一方面,API可提供例程(例如,可以不涉及任何子例程)。API可用于允許用戶調(diào)用和/或利用與操縱數(shù)據(jù)存儲(chǔ)系統(tǒng)內(nèi)的數(shù)據(jù)相關(guān)聯(lián)的至少一個(gè)過程,同時(shí)維護(hù)與其相關(guān)聯(lián)的至少一個(gè)特性和/或約束。API還可利用可定義允許在數(shù)據(jù)存儲(chǔ)系統(tǒng)內(nèi)執(zhí)行合適的操作的各種函數(shù)和/或過程的API定義組件。根據(jù)又一方面,數(shù)據(jù)操縱組件可包括便于支持多個(gè)并發(fā)調(diào)用者,同時(shí)消除死鎖的鎖定組件。例如,想像這樣一種情形,其中有多個(gè)請(qǐng)求對(duì)一組公共資源的所有權(quán)的并發(fā)調(diào)用者,它們以由于每一調(diào)用者都在等待其它調(diào)用者而使沒有一個(gè)請(qǐng)求可被滿足的方式來請(qǐng)求所有權(quán),因此會(huì)發(fā)生死鎖。在這一情況下,鎖定組件可進(jìn)行鎖定(例如,阻斷調(diào)用者),其中離開這一情況的唯一方式是驅(qū)逐調(diào)用者之一。鎖定組件還可支持多個(gè)并發(fā)調(diào)用者,使得復(fù)雜的鎖定邏輯可確保各個(gè)請(qǐng)求原子地成功或失敗。此外,數(shù)據(jù)操縱組件可包括利用樂觀并發(fā)性技術(shù)的樂觀并發(fā)性組件,其中這-技術(shù)假定第一進(jìn)程與第二進(jìn)程在基本相似的時(shí)刻做出改變的可能性較低,且在將改變提交到數(shù)據(jù)存儲(chǔ)系統(tǒng)之前不采用鎖。在多個(gè)調(diào)用者的并發(fā)訪問導(dǎo)致特定調(diào)用者關(guān)于倉(cāng)庫(kù)的狀態(tài)將被無效的假設(shè)的情況下,可檢測(cè)該無效假設(shè)并且數(shù)據(jù)改變請(qǐng)求被系統(tǒng)拒絕,直到調(diào)用者重新同步了對(duì)系統(tǒng)狀態(tài)的理解并重新提交了請(qǐng)求。這一技術(shù)可通過消除執(zhí)行取走鎖的指令的必要性來改善系統(tǒng)性能。此外,這一技術(shù)可通過消除取走長(zhǎng)期鎖的需求來減少系統(tǒng)中的死鎖。根據(jù)本發(fā)明的另一方面,數(shù)據(jù)操縱組件可包括提供可對(duì)應(yīng)于由這一系統(tǒng)采用的各種數(shù)據(jù)操縱的安全技術(shù)的安全組件。安全組件可利用用戶配置文件和/或諸如但不限于登錄、口令、生物測(cè)定標(biāo)記(例如,指紋、視網(wǎng)膜掃描、感應(yīng)…)、語音識(shí)別等各種安全措施來確保操縱數(shù)據(jù)的特定實(shí)體的完整性和有效性。此外,數(shù)據(jù)操縱組件可包括在數(shù)據(jù)操縱將必然伴有特性和/或約束不被實(shí)施的情況下提供差錯(cuò)代碼的差錯(cuò)組件??蓪?shí)現(xiàn)差錯(cuò)代碼以表示數(shù)據(jù)操縱未完成,其中差錯(cuò)代碼可對(duì)應(yīng)于描述差錯(cuò)的文本。在本發(fā)明的其它方面,提供了便于操縱數(shù)據(jù)同時(shí)符合數(shù)據(jù)模型的方法。以下描述和附圖詳細(xì)闡明了本發(fā)明的某些說明性方面。然而,這些方面僅指示了可采用本發(fā)明的原理的各種方法中的幾種,且本發(fā)明不旨在包括所有這些方面及其等效方面。當(dāng)結(jié)合附圖考慮以下本發(fā)明的詳細(xì)描述時(shí),本發(fā)明的其它優(yōu)點(diǎn)和新穎特征將變得顯而易見。附圖簡(jiǎn)述圖1示出了便于至少部分地基于具有相應(yīng)特性的數(shù)據(jù)模型來操縱數(shù)據(jù)的示例性系統(tǒng)的框圖。圖2示出了便于在數(shù)據(jù)存儲(chǔ)系統(tǒng)的特性內(nèi)操縱數(shù)據(jù)的示例性系統(tǒng)的框圖。圖3示出了便于實(shí)現(xiàn)對(duì)與數(shù)據(jù)存儲(chǔ)系統(tǒng)相關(guān)聯(lián)的數(shù)據(jù)的操縱的數(shù)據(jù)完整性和安全性的示例性系統(tǒng)的框圖。圖4示出了便于實(shí)現(xiàn)操縱與數(shù)據(jù)存儲(chǔ)系統(tǒng)相關(guān)聯(lián)的數(shù)據(jù)的API的示例性系統(tǒng)的框圖。圖5示出了便于調(diào)用在數(shù)據(jù)存儲(chǔ)系統(tǒng)的特性內(nèi)操縱數(shù)據(jù)的API的示例性系統(tǒng)的框圖。圖6示出了便于調(diào)用在數(shù)據(jù)存儲(chǔ)系統(tǒng)的特性內(nèi)操縱數(shù)據(jù)的API的示例性系統(tǒng)的框圖。圖7示出了便于利用API組件來操縱數(shù)據(jù)存儲(chǔ)系統(tǒng)內(nèi)的數(shù)據(jù)的示例性系統(tǒng)的框圖。圖8示出了便于至少部分地基于數(shù)據(jù)模型來操縱數(shù)據(jù)的示例性系統(tǒng)的框圖。圖9示出了用于至少部分地基于以數(shù)據(jù)庫(kù)為基礎(chǔ)的系統(tǒng)來調(diào)用數(shù)據(jù)操縱同時(shí)實(shí)施至少一個(gè)模型約束的示例'性方法。圖IO示出了用于至少基于實(shí)施了相應(yīng)特性的數(shù)據(jù)模型來操縱數(shù)據(jù)的示例性方法。圖11示出了其中可采用發(fā)明的新穎方面的示例性網(wǎng)絡(luò)環(huán)境。圖12示出了可根據(jù)本發(fā)明采用的示例性操作環(huán)境。發(fā)明詳述如本申請(qǐng)中所使用的,術(shù)語"組件"、"系統(tǒng)"、"接口"等指的是計(jì)算機(jī)相關(guān)的實(shí)體,它們可以是硬件、軟件(例如,執(zhí)行中的)和/或固件。例如,組件可以是運(yùn)行在處理器上的進(jìn)程、處理器、對(duì)象、可執(zhí)行碼、程序、和/或計(jì)算機(jī)。作為說明,運(yùn)行在服務(wù)器上的應(yīng)用程序和服務(wù)器都可以是組件。一個(gè)或多個(gè)組件可駐留在--個(gè)進(jìn)程內(nèi),且組件可位于一臺(tái)計(jì)算機(jī)上和/或分布在兩臺(tái)或更多計(jì)算機(jī)之間。本發(fā)明參考附圖來描述,所有附圖中使用相同的參考標(biāo)號(hào)來指代相同的元素。在以下描述中,為解釋起見,闡明了眾多具體細(xì)節(jié)以提供對(duì)本發(fā)明的全面理解。然而,很明顯,本發(fā)明可以在沒有這些具體細(xì)節(jié)的情況下實(shí)施。在其它情況下,以框圖形式示出了公知的結(jié)構(gòu)和設(shè)備以便于描述本發(fā)明?,F(xiàn)在轉(zhuǎn)向附圖,圖1示出了便于至少基于具有其相應(yīng)特性的數(shù)據(jù)模型來操縱數(shù)據(jù)的系統(tǒng)100。數(shù)據(jù)模型102可以是至少基于數(shù)據(jù)庫(kù)結(jié)構(gòu)的復(fù)雜模型,其中定義了項(xiàng)、子項(xiàng)、屬性和關(guān)系來允許將數(shù)據(jù)存儲(chǔ)系統(tǒng)內(nèi)的信息表示為復(fù)雜類型的實(shí)例。數(shù)據(jù)模型102可利用一組基本構(gòu)件塊來創(chuàng)建和管理豐富的、持久儲(chǔ)存的對(duì)象以及對(duì)象之間的鏈接。項(xiàng)可被定義為數(shù)據(jù)模型102內(nèi)的最小一致性單元,它可被獨(dú)立地保護(hù)、串行化、同步、復(fù)制、備份/還原等。項(xiàng)是類型的實(shí)例,其中數(shù)據(jù)模型102中的所有項(xiàng)可被儲(chǔ)存在單個(gè)全局的項(xiàng)范圍中。數(shù)據(jù)模型102可以基于至少一個(gè)項(xiàng)和/或容器結(jié)構(gòu)。此外,數(shù)據(jù)模型102可以是展示出作為項(xiàng)埋藏在文件中的豐富元數(shù)據(jù)的存儲(chǔ)平臺(tái)。可以理解,數(shù)據(jù)模型102可以表示支持上述功能的基于數(shù)據(jù)庫(kù)的文件存儲(chǔ)系統(tǒng),其中可實(shí)現(xiàn)任何適當(dāng)?shù)奶匦院?或?qū)傩浴4送?,?shù)據(jù)模型102可表示利用容器分層結(jié)構(gòu)的基于數(shù)據(jù)庫(kù)的文件存儲(chǔ)系統(tǒng),其中容器是可包含0個(gè)或多個(gè)項(xiàng)的項(xiàng)。包含概念經(jīng)由相關(guān)聯(lián)類內(nèi)的容器ID屬性來實(shí)現(xiàn)。倉(cāng)庫(kù)也可以是容器,使得倉(cāng)庫(kù)可以是物理組織和可管理性單元。另外,倉(cāng)庫(kù)表示分層結(jié)構(gòu)內(nèi)的容器樹的根容器。此外,數(shù)據(jù)模型102可表示數(shù)據(jù)存儲(chǔ)系統(tǒng),它是定義至少一個(gè)持久儲(chǔ)存的實(shí)體以及每實(shí)體的0個(gè)或多個(gè)子實(shí)體以將信息表示為復(fù)雜類型的分層模型的基于數(shù)據(jù)庫(kù)的系統(tǒng)。數(shù)據(jù)操縱組件104可操縱與數(shù)據(jù)模型102有關(guān)的數(shù)據(jù),同時(shí)確保與這一數(shù)據(jù)模型102的特性相關(guān)聯(lián)的數(shù)據(jù)完整性和穩(wěn)定性。數(shù)據(jù)模型102可包括與基于數(shù)據(jù)庫(kù)的文件存儲(chǔ)系統(tǒng)相關(guān)聯(lián)的任何適當(dāng)?shù)奶匦院?或方針。數(shù)據(jù)操縱組件104可提供對(duì)至少一個(gè)對(duì)象的移動(dòng)、刪除、復(fù)制、創(chuàng)建、更新、替換等,同時(shí)確保穩(wěn)定的系統(tǒng)(例如,符合與由數(shù)據(jù)模型102表示的基于數(shù)據(jù)庫(kù)的文件存儲(chǔ)系統(tǒng)相關(guān)聯(lián)的任何特性)。例如,數(shù)據(jù)模型102可表示具有其中用于容器的每一ID都是唯一的特性的基于數(shù)據(jù)庫(kù)的文件存儲(chǔ)系統(tǒng)。繼續(xù)該示例,數(shù)據(jù)操縱組件104可采用任何適當(dāng)?shù)臄?shù)據(jù)操縱(例如,復(fù)制、更新、替換、獲取、設(shè)置、創(chuàng)建、刪除、移動(dòng)、…),同時(shí)實(shí)施和/或支持用于容器的ID的唯一性。可以理解,上述功能并不被看做是對(duì)本發(fā)明的限制,并且可釆用涉及數(shù)據(jù)模型102的任何適當(dāng)?shù)臄?shù)據(jù)操縱同時(shí)維持與其有關(guān)的任何適當(dāng)?shù)奶匦?。此外,可以理解,?shù)據(jù)操縱組件104可基于數(shù)據(jù)模型102來操縱對(duì)應(yīng)于分層結(jié)構(gòu)的數(shù)據(jù)(例如,利用倉(cāng)庫(kù)和容器中的至少一種,…)。根據(jù)本發(fā)明的一方面,數(shù)據(jù)操縱可以通過利用例如應(yīng)用程序編程接口(API)(未示出)來至少部分地基于來自用戶的輸入。通過利用API,可實(shí)現(xiàn)涉及數(shù)據(jù)模型102和相應(yīng)的基于數(shù)據(jù)庫(kù)的文件存儲(chǔ)系統(tǒng)的交互和/或操縱,同時(shí)維持/實(shí)施與其相關(guān)聯(lián)的任何適當(dāng)?shù)奶匦???梢悦靼缀屠斫?,API可由數(shù)據(jù)操縱組件104來調(diào)用、可以是單獨(dú)的組件、可被結(jié)合到數(shù)據(jù)操縱組件104中、和/或其任何組合。系統(tǒng)100還包括接口組件106,它提供了將數(shù)據(jù)操縱組件104集成到實(shí)際上任何操作和/或數(shù)據(jù)庫(kù)系統(tǒng)中的各種適配器、連接器、通道、通信路徑等。另外,接口組件106可提供允許與數(shù)據(jù)和數(shù)據(jù)操縱組件104的交互的各種適配器、連接器、通道、通信路徑等??梢岳斫猓M管接口組件106被結(jié)合到數(shù)據(jù)操縱組件104中,但這-實(shí)現(xiàn)并不限于此。例如,接口組件106可以是接收或發(fā)送與系統(tǒng)100有關(guān)的數(shù)據(jù)的獨(dú)立組件。圖2示出了便于在數(shù)據(jù)存儲(chǔ)系統(tǒng)的特性內(nèi)操縱數(shù)據(jù)的系統(tǒng)200。數(shù)據(jù)存儲(chǔ)系統(tǒng)202可以是通過至少利用分層結(jié)構(gòu)將數(shù)據(jù)實(shí)例表示為復(fù)雜類型的基于數(shù)據(jù)庫(kù)的文件存儲(chǔ)系統(tǒng)、數(shù)據(jù)存儲(chǔ)系統(tǒng)202可包括被實(shí)施以在操縱數(shù)據(jù)時(shí)確保數(shù)據(jù)存儲(chǔ)系統(tǒng)202的特性的至少一個(gè)特性??梢岳斫?,數(shù)據(jù)模型(未示出)可表示數(shù)據(jù)存儲(chǔ)系統(tǒng)202。此外,可在數(shù)據(jù)存儲(chǔ)系統(tǒng)202內(nèi)定義項(xiàng)、子項(xiàng)、屬性和關(guān)系,以允許將信息表示為復(fù)雜類型的實(shí)例。數(shù)據(jù)存儲(chǔ)系統(tǒng)202可以是可描述數(shù)據(jù)的形狀、聲明隱含關(guān)r數(shù)據(jù)的某些語義一致性的約束、以及定義數(shù)據(jù)之間的語義關(guān)聯(lián)的數(shù)據(jù)模型。數(shù)據(jù)存儲(chǔ)系統(tǒng)202可利用一組基本構(gòu)件塊來創(chuàng)建和管理豐富的、持久存儲(chǔ)的對(duì)象以及對(duì)象之間的鏈接。例如,構(gòu)件塊可包括"項(xiàng)(Item)"、"項(xiàng)擴(kuò)展(ItemExtension)"、"鏈接(Link)"和"項(xiàng)片段(ItemFragment)"。"項(xiàng)"可被定義為數(shù)據(jù)存儲(chǔ)系統(tǒng)202內(nèi)的最小一致性單元,它可被獨(dú)立地保護(hù)、串行化、同步、復(fù)制、備份/還原等。例如,項(xiàng)可以是最小一致性單元,但是圍繞項(xiàng)繪出的邊界可包括可由項(xiàng)邏輯地?fù)碛械逆溄印㈨?xiàng)擴(kuò)展以及項(xiàng)片段。由此,項(xiàng)可以是表中的一行,但也可以指該項(xiàng)行及其所有的次要部分。換言之,項(xiàng)可被刪除、復(fù)制等,同時(shí)確保這些操作被原子地應(yīng)用于項(xiàng)及其所有部分。項(xiàng)是類型的實(shí)例,其中數(shù)據(jù)存儲(chǔ)系統(tǒng)202中的所有項(xiàng)可被儲(chǔ)存在單個(gè)全局的項(xiàng)范圍中。"項(xiàng)擴(kuò)展"是利用實(shí)體擴(kuò)展來擴(kuò)展的項(xiàng)類型。實(shí)體擴(kuò)展可以在具有相應(yīng)屬性(例如,名稱、擴(kuò)展的項(xiàng)類型、屬性聲明、…)的模式中定義??梢詫?shí)現(xiàn)"項(xiàng)擴(kuò)展"以將可被應(yīng)用于擴(kuò)展的項(xiàng)類型的一組屬性分組在一起。"鏈接"是定義兩個(gè)項(xiàng)實(shí)例之間的關(guān)聯(lián)的實(shí)體類型,其中鏈接是定向的(例如,一個(gè)項(xiàng)是鏈接的源,而另一個(gè)是鏈接的目標(biāo))。"項(xiàng)片段"是允許在項(xiàng)類型和/或項(xiàng)擴(kuò)展中聲明大集合的實(shí)體類型,其中集合的元素可以是實(shí)體??梢悦靼缀屠斫?,數(shù)據(jù)存儲(chǔ)系統(tǒng)202可表示提供了數(shù)據(jù)作為復(fù)雜類型實(shí)例的表示的任何適當(dāng)?shù)幕跀?shù)據(jù)庫(kù)的文件存儲(chǔ)系統(tǒng),且以上描述并不被看做是限制本發(fā)明。數(shù)據(jù)存儲(chǔ)系統(tǒng)202可以基本類似于圖1所描繪的數(shù)據(jù)模型102的表示。數(shù)據(jù)操縱組件204可提供對(duì)數(shù)據(jù)存儲(chǔ)系統(tǒng)202內(nèi)的數(shù)據(jù)的操縱,同時(shí)實(shí)施與這一數(shù)據(jù)存儲(chǔ)系統(tǒng)202相關(guān)聯(lián)的至少一個(gè)特性。數(shù)據(jù)操縱組件204可提供諸如但不限于對(duì)數(shù)據(jù)(例如,由復(fù)雜類型的實(shí)例來表示)的復(fù)制、更新、替換、獲取、設(shè)置、創(chuàng)建、刪除、移動(dòng)等的操縱。可以理解,數(shù)據(jù)操縱組件204可以基本類似于圖1所描繪的數(shù)據(jù)操縱組件104。數(shù)據(jù)操縱組件204可包括提供根據(jù)與數(shù)據(jù)存儲(chǔ)系統(tǒng)202相關(guān)聯(lián)的特性來操縱數(shù)據(jù)的特定功能的過程組件206。換言之,過程組件206可提供與數(shù)據(jù)存儲(chǔ)系統(tǒng)202有關(guān)的操縱技術(shù)。例如,過程組件206可包括對(duì)數(shù)據(jù)和/或作為復(fù)雜類型實(shí)例的數(shù)據(jù)表示的復(fù)制、移動(dòng)、替換、設(shè)置、刪除、創(chuàng)建、獲取、更新??梢岳斫?,過程組件206可以提供可對(duì)數(shù)據(jù)存儲(chǔ)系統(tǒng)202實(shí)現(xiàn)的任何適當(dāng)?shù)臄?shù)據(jù)操縱技術(shù)和/或功能。盡管過程組件206被描述為被結(jié)合到數(shù)據(jù)操縱組件204中,但本發(fā)明不限于此。過程組件206也可以是獨(dú)立組件或被結(jié)合到數(shù)據(jù)存儲(chǔ)系統(tǒng)202中(例如,可以是數(shù)據(jù)模型概念的實(shí)例化)。數(shù)據(jù)操縱組件204還可包括將數(shù)據(jù)存儲(chǔ)系統(tǒng)202的至少一個(gè)特性與數(shù)據(jù)操縱相結(jié)合的實(shí)施器組件208。如上所述,數(shù)據(jù)存儲(chǔ)系統(tǒng)202可包括可提供關(guān)于對(duì)這一數(shù)據(jù)存儲(chǔ)系統(tǒng)202內(nèi)的數(shù)據(jù)的操縱的引導(dǎo)的任何適當(dāng)數(shù)量的特性。換言之,實(shí)施器組件208允許在不破壞與數(shù)據(jù)存儲(chǔ)系統(tǒng)202有關(guān)的數(shù)據(jù)模型約束的情況下對(duì)數(shù)據(jù)存儲(chǔ)系統(tǒng)202內(nèi)的數(shù)據(jù)進(jìn)行操縱。可以理解,實(shí)施器組件208可被結(jié)合到數(shù)據(jù)操縱組件204中(如圖所示)、可以是獨(dú)立組件、可被結(jié)合到數(shù)據(jù)存儲(chǔ)系統(tǒng)202中、以及以上的任意組合。例如,數(shù)據(jù)存儲(chǔ)系統(tǒng)202可利用項(xiàng)、容器和倉(cāng)庫(kù)結(jié)構(gòu)層次(如上所述)。實(shí)施器組件208可實(shí)現(xiàn)與關(guān)聯(lián)到數(shù)據(jù)存儲(chǔ)系統(tǒng)202的容器ID有關(guān)的特性。例如,實(shí)施器組件208可提供以下的至少一個(gè)(1)包含倉(cāng)庫(kù)中的項(xiàng)的非空項(xiàng)ID的容器ID(例如,這可對(duì)以下討論的操縱函數(shù)和/或技術(shù)"Createltem(創(chuàng)建項(xiàng))"、"CreateComplexItem(創(chuàng)建復(fù)雜項(xiàng))"、"Moveltem(移動(dòng)項(xiàng))"禾口"Replaceltem(替換項(xiàng))"實(shí)現(xiàn));(2)容器ID不利用操縱函數(shù)和/或技術(shù)"Updateltem(更新項(xiàng))"(以下討論)來更新;以及(3)容器ID可經(jīng)由對(duì)"MowItem"的調(diào)用來改變??梢悦靼缀屠斫猓景l(fā)明不限于以上函數(shù)和/或技術(shù)的參考名。在另一示例中,實(shí)施器組件208可結(jié)合數(shù)據(jù)操縱來實(shí)現(xiàn)事務(wù)語義。實(shí)施器組件208可實(shí)現(xiàn)以下事務(wù)語義(1)如果沒有事務(wù)是活動(dòng)的,則可返回一差錯(cuò)代碼并且不處理批;以及(2)試圖確認(rèn)并應(yīng)用操作。如果確認(rèn)和應(yīng)用操作成功,則控制可被返回給調(diào)用者,同時(shí)帶有在由調(diào)用者提供事務(wù)中未提交操作的效果。如果確認(rèn)或應(yīng)用操作失敗,則事務(wù)失敗且引發(fā)差錯(cuò),并且控制可被返回給調(diào)用者。失敗的事務(wù)意味著調(diào)用者可發(fā)出關(guān)于該事務(wù)的查詢,但是不能提交該事務(wù)(例如,提交的調(diào)用會(huì)導(dǎo)致差錯(cuò))。可以理解,API請(qǐng)求可原子地成功或完全失敗。復(fù)雜API可對(duì)底層存儲(chǔ)表做出至少一個(gè)改變,并且可實(shí)現(xiàn)一組復(fù)雜的一致性和/或完整性測(cè)試。此外,可以理解,系統(tǒng)200永不留在非一致和/或無效狀態(tài)。圖3示出了便于實(shí)現(xiàn)與數(shù)據(jù)存儲(chǔ)系統(tǒng)相關(guān)聯(lián)的數(shù)據(jù)操縱的數(shù)據(jù)完整性和安全性的系統(tǒng)300。數(shù)據(jù)存儲(chǔ)系統(tǒng)302可以是至少部分地基于數(shù)據(jù)模型的基于數(shù)據(jù)庫(kù)的文件存儲(chǔ)系統(tǒng),其中數(shù)據(jù)被表示為復(fù)雜類型的實(shí)例。數(shù)據(jù)操縱組件304可提供與數(shù)據(jù)存儲(chǔ)系統(tǒng)302相關(guān)聯(lián)的數(shù)據(jù)操縱。數(shù)據(jù)操縱組件304可包括可提供涉及操縱數(shù)據(jù)存儲(chǔ)系統(tǒng)302內(nèi)的數(shù)據(jù)的至少一個(gè)函數(shù)和/或技術(shù)的過程組件306。此外,數(shù)據(jù)操縱組件304可包括設(shè)立與數(shù)據(jù)存儲(chǔ)系統(tǒng)302有關(guān)的至少一個(gè)特性和/或方針的實(shí)施器組件308,其中這一特性確保對(duì)數(shù)據(jù)操縱實(shí)現(xiàn)數(shù)據(jù)模型約束。可以明白和理解,數(shù)據(jù)存儲(chǔ)系統(tǒng)302、數(shù)據(jù)操縱組件304、過程組件306以及實(shí)施器組件308可以分別基本類似于圖3中的數(shù)據(jù)存儲(chǔ)系統(tǒng)202、數(shù)據(jù)操縱組件204、過程組件206和實(shí)施器組件208。數(shù)據(jù)操縱組件304可包括便于儲(chǔ)存和/或訪問與操縱數(shù)據(jù)存儲(chǔ)系統(tǒng)302內(nèi)的數(shù)據(jù)相關(guān)聯(lián)的至少一個(gè)過程的數(shù)據(jù)倉(cāng)庫(kù)310。例如,數(shù)據(jù)倉(cāng)庫(kù)310可儲(chǔ)存可由API利用的過程(例如,代碼),其中數(shù)據(jù)操縱可由用戶接收并被調(diào)用,同時(shí)維護(hù)與數(shù)據(jù)存儲(chǔ)系統(tǒng)302相關(guān)聯(lián)的至少一個(gè)特性。在另一示例中,數(shù)據(jù)倉(cāng)庫(kù)310可儲(chǔ)存與數(shù)據(jù)存儲(chǔ)系統(tǒng)302和/或各種API數(shù)據(jù)(例如,子例程等)相關(guān)聯(lián)的各種特性。在一個(gè)示例中,數(shù)據(jù)倉(cāng)庫(kù)310可以是硬盤驅(qū)動(dòng)器。數(shù)據(jù)倉(cāng)庫(kù)310可以是例如易失性存儲(chǔ)器或非易失性存儲(chǔ)器,或者可同時(shí)包括易失性存儲(chǔ)器和非易失性存儲(chǔ)器兩者。作為說明而非局限,非易失性存儲(chǔ)器可包括只讀存儲(chǔ)器(ROM)、可編程ROM(PROM)、電可編程ROM(EPROM)、電可擦除可編程ROM(EEPROM)或閃存。易失性存儲(chǔ)器可包括隨機(jī)存取存儲(chǔ)器(RAM),它用作外部高速緩沖存儲(chǔ)器。作為說明而非局限,RAM以多種形式可用,如靜態(tài)RAM(SRAM)、動(dòng)態(tài)RAM(DRAM)、同步DRAM(SDRAM)、雙數(shù)據(jù)率SDRAM(DDRSDRAM)、增強(qiáng)型SDRAM11(ESDRAM)、同步鏈路DRAM(SLDRAM)、Rambus直接RAM(RDRAM)、直接Rambus動(dòng)態(tài)RAM(DRDRAM)以及Rambus動(dòng)態(tài)RAM(RDRAM)。本系統(tǒng)和方法的數(shù)據(jù)倉(cāng)庫(kù)310旨在包括但不限于這些以及其它任何適當(dāng)類型的存儲(chǔ)器。另外,可以理解,數(shù)據(jù)倉(cāng)庫(kù)310可以是服務(wù)器和/或數(shù)據(jù)庫(kù)。數(shù)據(jù)操縱組件304還可包括向系統(tǒng)300提供至少一個(gè)安全屬性的安全組件312。例如,安全組件304可利用用戶配置文件,使得特定數(shù)據(jù)操縱函數(shù)和/或技術(shù)與其相關(guān)聯(lián)。此外,安全組件304可利用諸如但不限于登錄、口令、生物測(cè)定標(biāo)記(例如,指紋、視網(wǎng)膜掃描、感應(yīng)、…)、語音識(shí)別等各種安全措施來確保操縱數(shù)據(jù)的特定實(shí)體的完整性和有效型。安全組件312還可采用與數(shù)據(jù)存儲(chǔ)系統(tǒng)302相關(guān)聯(lián)的任何適當(dāng)?shù)陌踩珜傩浴Q言之,安全組件312可實(shí)現(xiàn)安全規(guī)章,以實(shí)施數(shù)據(jù)存儲(chǔ)系統(tǒng)302的安全約束。圖4示出了便于實(shí)現(xiàn)操縱與數(shù)據(jù)存儲(chǔ)系統(tǒng)相關(guān)聯(lián)的數(shù)據(jù)的API的系統(tǒng)400。數(shù)據(jù)存儲(chǔ)系統(tǒng)402可以是具有與其相關(guān)聯(lián)的至少一個(gè)特性的基于數(shù)據(jù)庫(kù)的文件存儲(chǔ)系統(tǒng),其中數(shù)據(jù)存儲(chǔ)系統(tǒng)402可由數(shù)據(jù)模型(未示出)來表示。數(shù)據(jù)操縱組件404可允許包括何不限于對(duì)與數(shù)據(jù)存儲(chǔ)系統(tǒng)402有關(guān)的數(shù)據(jù)的復(fù)制、移動(dòng)、替換、設(shè)置、刪除、創(chuàng)建、獲取、更新的數(shù)據(jù)操縱??梢岳斫?,數(shù)據(jù)存儲(chǔ)系統(tǒng)402和數(shù)據(jù)操縱組件404可利用與分別在圖3和2中的數(shù)據(jù)存儲(chǔ)系統(tǒng)302、數(shù)據(jù)存儲(chǔ)系統(tǒng)202、數(shù)據(jù)操縱組件304以及數(shù)據(jù)操縱組件204基本類似的功能。數(shù)據(jù)操縱組件404還可包括允許實(shí)體操縱數(shù)據(jù)存儲(chǔ)系統(tǒng)402中的數(shù)據(jù)的API組件406(此處稱為"API406")。實(shí)體可以是,但不限于,用戶、計(jì)算機(jī)、數(shù)據(jù)庫(kù)、。API406可接收至少一個(gè)用戶輸入,使得用戶輸入是涉及對(duì)數(shù)據(jù)存儲(chǔ)系統(tǒng)402內(nèi)的數(shù)據(jù)的操縱的命令和/或函數(shù)。盡管被描繪為結(jié)合到數(shù)據(jù)操縱組件404中,但可以理解,API406可以是獨(dú)立的組件、可被結(jié)合到數(shù)據(jù)存儲(chǔ)系統(tǒng)402中、和/或其組合。此外,API406可利用先前討論的各種組件來提供利用特定過程的數(shù)據(jù)操縱同時(shí)實(shí)施與數(shù)據(jù)存儲(chǔ)系統(tǒng)402有關(guān)的特性。圖5示出了便于調(diào)用在數(shù)據(jù)存儲(chǔ)系統(tǒng)的特性內(nèi)操縱數(shù)據(jù)的應(yīng)用程序編程接口(API)的系統(tǒng)500。數(shù)據(jù)存儲(chǔ)系統(tǒng)502可以是具有至少一個(gè)定義特性的基于數(shù)據(jù)庫(kù)的文件存儲(chǔ)系統(tǒng),其中數(shù)據(jù)存儲(chǔ)系統(tǒng)502可以至少部分地基于數(shù)據(jù)模型(未示出)。數(shù)據(jù)操縱組件504可允許包括但不限于對(duì)與數(shù)據(jù)存儲(chǔ)系統(tǒng)502有關(guān)的數(shù)據(jù)的復(fù)制、移動(dòng)、替換、設(shè)置、刪除、創(chuàng)建、獲取、更新的數(shù)據(jù)操縱??梢岳斫猓瑪?shù)據(jù)存儲(chǔ)系統(tǒng)502和數(shù)據(jù)操縱組件504可以基本類似于分別在圖4、圖3和圖2中的數(shù)據(jù)存儲(chǔ)系統(tǒng)402、數(shù)據(jù)存儲(chǔ)系統(tǒng)302、數(shù)據(jù)存儲(chǔ)系統(tǒng)202、數(shù)據(jù)操縱組件404、數(shù)據(jù)操縱組件304以及數(shù)據(jù)操縱組件204。數(shù)據(jù)操縱組件504可包括API組件506(稱為"API506")。API506可通過執(zhí)行存儲(chǔ)過程來提供數(shù)據(jù)操縱(例如,倉(cāng)庫(kù)內(nèi)的數(shù)據(jù)的創(chuàng)建、更新和刪除)。API506可允許例如用戶實(shí)現(xiàn)數(shù)據(jù)操縱同時(shí)確保與數(shù)據(jù)存儲(chǔ)系統(tǒng)502相關(guān)聯(lián)的特性的完整性和/或純潔度。數(shù)據(jù)操縱可通過利用例如API506來至少部分地基于來自用戶的輸入。通過采用API506,可實(shí)現(xiàn)涉及數(shù)據(jù)存儲(chǔ)系統(tǒng)502的交互和/或操縱,同時(shí)維持/實(shí)施與其相關(guān)聯(lián)的任何適當(dāng)?shù)奶匦?。可以明白和理解,API506可由數(shù)據(jù)操縱組件504調(diào)用、可以是單獨(dú)的組件、可被結(jié)合到數(shù)據(jù)操縱組件504中、和/或其任意組合。數(shù)據(jù)操縱組件504還可包括通過利用確保完整性的適當(dāng)鎖定策略來便于一個(gè)或多個(gè)應(yīng)用程序并發(fā)地訪問數(shù)據(jù)的鎖定組件508。例如,想像這樣一種情形,其中有多個(gè)請(qǐng)求對(duì)一組公共資源的所有權(quán)的調(diào)用者,它們以由于每一調(diào)用者都在等待其它調(diào)用者而使沒有一個(gè)請(qǐng)求能得到滿足的方式來做出請(qǐng)求(例如,可發(fā)生死鎖)。在這」瞎況下,鎖定組件508可允許阻斷(例如,鎖住)調(diào)用者,其中離開這一情況的唯-方法是驅(qū)逐調(diào)用者之一。為避免這'隋況,鎖定組件508可支持多個(gè)并發(fā)調(diào)用者,使得復(fù)雜的鎖定邏輯可確保各個(gè)請(qǐng)求自動(dòng)成功或失敗。此外,鎖定組件508可檢測(cè)死鎖并對(duì)其做出反應(yīng)。鎖定組件508可通過采用經(jīng)由鎖定對(duì)數(shù)據(jù)存儲(chǔ)系統(tǒng)的某些部分(例如,倉(cāng)庫(kù))的串行化訪問來保持?jǐn)?shù)據(jù)一致性。鎖定可以在粒度級(jí)上完成,其中數(shù)據(jù)存儲(chǔ)系統(tǒng)中受到給定操縱和/或操作影響的資源(例如,倉(cāng)庫(kù))可在這一操縱和/或操作期間鎖定??梢岳斫?,不同的操作和/或基本相似的操作可按不同的次序取鎖,因此會(huì)發(fā)生死鎖。例如,鎖定組件508能以顯著的性能損失來避免死鎖。此外,鎖定組件508可向API506提供死鎖差錯(cuò)代碼以通知這一情況。數(shù)據(jù)操縱組件504可包括樂觀并發(fā)性組件510。API506可利用樂觀并發(fā)性來向數(shù)據(jù)存儲(chǔ)系統(tǒng)502內(nèi)的數(shù)據(jù)應(yīng)用操縱和/或改變。并發(fā)性在至少兩個(gè)進(jìn)程試圖在基本相似的時(shí)刻更新基本相似的數(shù)據(jù)時(shí)發(fā)生。樂觀并發(fā)性組件510利用樂觀并發(fā)性,其中樂觀并發(fā)性假定另一進(jìn)程在基本相似的時(shí)刻做出改變的可能性較低,因此它不取鎖直到準(zhǔn)備好將改變提交給數(shù)據(jù)存儲(chǔ)系統(tǒng)(例如,倉(cāng)庫(kù))。通過采用這一技術(shù),樂觀并發(fā)性組件510減少了鎖定時(shí)間并提供了更好的數(shù)據(jù)庫(kù)性能。在多個(gè)調(diào)用者的并發(fā)訪問導(dǎo)致特定調(diào)用者關(guān)于倉(cāng)庫(kù)狀態(tài)要被無效的假設(shè)的情況下,可檢測(cè)到該無效假設(shè)并且數(shù)據(jù)改變請(qǐng)求被系統(tǒng)拒絕,直到調(diào)用者重新同步了對(duì)系統(tǒng)狀態(tài)的理解并重新提交了請(qǐng)求。例如,樂觀并發(fā)性組件510可保持與項(xiàng)相關(guān)聯(lián)的令牌,該令牌隨對(duì)項(xiàng)的每一次修改而變化。令牌在將數(shù)據(jù)讀入存儲(chǔ)器時(shí)被傳遞給調(diào)用者。調(diào)用者可將令牌作為更新操作的參數(shù)向下傳回倉(cāng)庫(kù)。倉(cāng)庫(kù)可將傳入的令牌與倉(cāng)庫(kù)中的當(dāng)前令牌值進(jìn)行比較。如果令牌相等,則寫將成功并被實(shí)現(xiàn)。然而,如果存儲(chǔ)器中調(diào)用者的版本是與倉(cāng)庫(kù)中的版本不同的值,則這表示項(xiàng)已被另一應(yīng)用程序修改且寫將失敗。在另一示例中,檢查由于兩個(gè)應(yīng)用程序的并發(fā)訪問而引起的失敗。在以下表中,存在并發(fā)地運(yùn)行在數(shù)據(jù)存儲(chǔ)系統(tǒng)502上的試圖修改項(xiàng)的兩個(gè)應(yīng)用程序。<table>tableseeoriginaldocumentpage14</column></row><table>API506可通過返回關(guān)于每一創(chuàng)建和/或更新操作的令牌信息來支持這一技術(shù)。例如,來自創(chuàng)建函數(shù)的輸出令牌參數(shù)可被命名為"concurrencyToken(并發(fā)性令牌)"。API506也可取令牌信息作為關(guān)于更新和/或刪除操作的輸入?yún)?shù)。傳入更新和/或刪除操作的令牌信息也可被稱為"concurrencyToken"??梢岳斫猓瑓?shù)既可以是輸入?yún)?shù)也可以是輸出參數(shù)。在輸入時(shí),"concurrencyToken"是在對(duì)象被讀入高速緩存、被創(chuàng)建和/或被更新時(shí)接收到的值。如果對(duì)于對(duì)象沒有寫,則這可以是倉(cāng)庫(kù)中的"期望值"。在輸出時(shí),倉(cāng)庫(kù)可在成功完成操作之后返回對(duì)象的新"concurrencyToken"。"concurrencyToken"參數(shù)可被類型化為BIGINT(例如,64位整型)??梢岳斫?,參數(shù)可以是數(shù)據(jù)庫(kù)時(shí)間戳,然而其值可以不增加。從備份中還原項(xiàng)可導(dǎo)致在過去與時(shí)間有關(guān)的狀態(tài)。兩個(gè)"concurrencyToken"之間的唯一支持的操作是對(duì)于相等性和/或不等性的操作。該值也可以在倉(cāng)庫(kù)支持的各種視圖中可用。視圖中的列名是用于項(xiàng)、項(xiàng)擴(kuò)展、鏈接和項(xiàng)片段的"LastUpdateLocalTS"。對(duì)于安全描述符,列名是"SDLastUpdateLocalTS"。圖6示出了便于調(diào)用在數(shù)據(jù)存儲(chǔ)系統(tǒng)的特性內(nèi)操縱數(shù)據(jù)的API的系統(tǒng)600。數(shù)據(jù)存儲(chǔ)系統(tǒng)602可以是至少部分地基于數(shù)據(jù)模型的基于數(shù)據(jù)庫(kù)的文件存儲(chǔ)系統(tǒng),其中數(shù)據(jù)被表示為復(fù)雜類型的實(shí)例。數(shù)據(jù)操縱組件604可提供與數(shù)據(jù)存儲(chǔ)系統(tǒng)602相關(guān)聯(lián)的數(shù)據(jù)操縱。數(shù)據(jù)操縱組件604可調(diào)用API組件606(此處稱為"API606")。API606可通過執(zhí)行存儲(chǔ)過程來提供數(shù)據(jù)操縱(例如,倉(cāng)庫(kù)內(nèi)的數(shù)據(jù)的創(chuàng)建、更新和刪除)。API606可允許例如用戶實(shí)現(xiàn)數(shù)據(jù)操縱同時(shí)確保與數(shù)據(jù)存儲(chǔ)系統(tǒng)602相關(guān)聯(lián)的特性的完整性和/或純潔度。數(shù)據(jù)存儲(chǔ)系統(tǒng)602、數(shù)據(jù)操縱組件604和API606可基本類似于分別在圖5、4、3和2中的數(shù)據(jù)存儲(chǔ)系統(tǒng)502、402、302和202、數(shù)據(jù)操縱組件504、404、304和204、API506、406。數(shù)據(jù)操縱組件604可包括可采用API606利用的至少一個(gè)數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)結(jié)構(gòu)組件608。例如,數(shù)據(jù)結(jié)構(gòu)組件608可利用各種同義字和/或類屬列表類型。在-一個(gè)不例中,下表可定義同義字和結(jié)構(gòu)化査詢語言(SQL)類型,以及列表類型和對(duì)應(yīng)的公共語言運(yùn)行時(shí)間(CLR)。可以理解,下表是示例,且本發(fā)明不限于此。<table>tableseeoriginaldocumentpage15</column></row><table>[System.Storage.Store].SecurityDescriptor列表類型_.AssignmentValueList__.ComplexItemList.ItemldList說明書第13/37頁(yè)VA腿NARY(MAX)_對(duì)應(yīng)的CLR等效物_SqlList<[System.Storage.Store].AssignmentValue〉_SqlList<[System.Storage.Store].ComnplexItem〉_SqlLisK[System.Storage.Store].Itemld>數(shù)據(jù)結(jié)構(gòu)組件608可采用改變定義類型。API606和數(shù)據(jù)操縱組件604可提供屬性粒度級(jí)的更新操作和/或修改。通過利用這一技術(shù),調(diào)用者可將改變的數(shù)據(jù)傳遞給更新方法,同時(shí)保持操作的大小與改變的數(shù)據(jù)的大小成比例。粒度更新可利用ChangeDefmition(改變定義)類型來描述。在數(shù)據(jù)存儲(chǔ)系統(tǒng)602中,對(duì)象被持久儲(chǔ)存在倉(cāng)庫(kù)中,其中表的特定單元,即Contact(聯(lián)系人)或某一其它復(fù)雜類型的所儲(chǔ)存的實(shí)例具有可能較復(fù)雜的屬性。可以明白和理解,ChangeDefmition類型可對(duì)可應(yīng)用于結(jié)構(gòu)化對(duì)象的一組改變建模。例如,為更新聯(lián)系人的名字字段,調(diào)用者可創(chuàng)建ChangeDefmition對(duì)象的實(shí)例、用兩個(gè)節(jié)點(diǎn)(即,描述項(xiàng)類型的一個(gè)節(jié)點(diǎn)和包含字段名的另一節(jié)點(diǎn))來填充該對(duì)象??蛻舳巳缓罂蓪hangeDefmition的己編譯版本和相應(yīng)值的列表中的至少一個(gè)傳遞給Updateltem方法,該方法在倉(cāng)庫(kù)中做出修改??梢岳斫猓蓱?yīng)用基本類似的模式來修改項(xiàng)擴(kuò)展和/或鏈接中的字段。ChangeDefmition實(shí)例利用一樹結(jié)構(gòu)來對(duì)每一屬性建模,在該樹結(jié)構(gòu)中,樹中的每一層可對(duì)應(yīng)于對(duì)象類型內(nèi)的一嵌套屬性層。對(duì)屬性值的改變由葉節(jié)點(diǎn),稱為分配節(jié)點(diǎn)來表示。分配節(jié)點(diǎn)類型可以是assignment(分配)。這些節(jié)點(diǎn)可表示對(duì)屬性的分配,并包含屬性名。非葉節(jié)點(diǎn)(除根之外)表示作為頂層屬性和/或另一嵌套類型屬性的成員的嵌套類型。這可被稱為遍歷節(jié)點(diǎn)。遍歷節(jié)點(diǎn)包含節(jié)點(diǎn)列表(分配或遍歷)以及由倉(cāng)庫(kù)用于實(shí)現(xiàn)適當(dāng)?shù)念愋蛷?qiáng)制轉(zhuǎn)換的類型。遍歷節(jié)點(diǎn)類型是PathComponent(路徑組件)。數(shù)據(jù)結(jié)構(gòu)組件608可通過創(chuàng)建遍歷和分配節(jié)點(diǎn)來構(gòu)建ChangeDefinition。例如,節(jié)點(diǎn)可通過ChangeDefmition來添加,其中ChangeDefmition類具有用于創(chuàng)建節(jié)點(diǎn)以及走查樹的方法。在一個(gè)示例中,ChangeDefmition類不是用戶定義類型(UDT)。在另一示例中,以下是定義的分配類型1)在一深度分配一標(biāo)量值;2)在一深度分配一嵌套類型實(shí)例;以及3)在一深度分配一集合(例如,多集和/或sqlList)。"T以明白和理解,標(biāo)量屬性(例如,XML和FileStream(文件流)屬性)可被替換。在另一示例中,這些標(biāo)量屬性被部分地更新。一旦樹完成,數(shù)據(jù)結(jié)構(gòu)組件608可利用Compile(編譯)方法,該方法可返回可用二進(jìn)制格式改變的屬性的描述(例如,也稱為已編譯的改變定義)。在一個(gè)示例中,值可作為c/za"geZ)e,m'"o"參數(shù)被傳入U(xiǎn)pdate方法中。以下是數(shù)據(jù)結(jié)構(gòu)組件608的一個(gè)實(shí)現(xiàn)的示例,并且不被看做是對(duì)本發(fā)明的限制。調(diào)用者可負(fù)責(zé)構(gòu)建對(duì)應(yīng)于ChangeDefinition樹中描述的屬性的值列表。當(dāng)調(diào)用者向ChangeDefinition樹添加一分配節(jié)點(diǎn)時(shí),可向該分配節(jié)點(diǎn)分配一索引。該索引可等于n-l(其中n是迄今為止向樹的插入次數(shù))。例如,第一個(gè)分配節(jié)點(diǎn)獲得索引0,第::個(gè)分配節(jié)點(diǎn)獲得索引1,依此類推。索引也可被返回給addAssignment(添加分配)的調(diào)用者。調(diào)用者然后構(gòu)造包含添加到ChangeDefinition樹的屬性的值白勺AssignmentValue(分酉己值)對(duì)象。AssignmentValue然后被添力口到AssignmentValueList(分配值列表),使得其在AssignmentValueList中的位置可映射到ChangeDefinition樹的分配節(jié)點(diǎn)中的索弓|。分配節(jié)點(diǎn)可被添加到ChangeDefinition,且對(duì)應(yīng)的AssignmentValue對(duì)象可使用將AssignmentValue對(duì)象附力l]到列表結(jié)尾的添加方法添力P到AssignmentValueList。所得的AssignmentValueList是對(duì)Upade方法的va/M丄/W(值列表)參數(shù)傳入的值。數(shù)據(jù)操縱組件604還可包括處理與同數(shù)據(jù)存儲(chǔ)系統(tǒng)602的特性沖突的操作和/或數(shù)據(jù)操縱相關(guān)聯(lián)的差錯(cuò)的差錯(cuò)組件610。例如,API606確保當(dāng)前項(xiàng)域,其中項(xiàng)域是項(xiàng)定義和/或包括相關(guān)聯(lián)的屬性、實(shí)體和/或子實(shí)體的邏輯區(qū)域。如果項(xiàng)在項(xiàng)域外部引用(例如,通過項(xiàng)或通過鏈接、項(xiàng)擴(kuò)展或項(xiàng)片段),則項(xiàng)如同它不存在那樣顯現(xiàn)。換言之,可采用差錯(cuò)代碼"Theitemdoesnotexist"(該項(xiàng)不存在)。差錯(cuò)組件610可調(diào)用差錯(cuò)代碼??蓪?shí)現(xiàn)差錯(cuò)代碼以表示數(shù)據(jù)操縱未完成,其中差錯(cuò)代碼可對(duì)應(yīng)于描述差錯(cuò)的文本。與對(duì)數(shù)據(jù)存儲(chǔ)系統(tǒng)602內(nèi)的數(shù)據(jù)的操縱有關(guān)的過程和/或操作可返回一整型值,該值可以是函數(shù)(例如,刪除(delete)、復(fù)制(copy)、移動(dòng)(move)、獲取(get)、設(shè)置(set)、更新(update)、…)的返回代碼。在一個(gè)示例中,如果操作成功,則該值可以為0,或者如果操作失敗,則該值為非0。每一相應(yīng)的操縱過程/操作和/或函數(shù)可以關(guān)聯(lián)到一差錯(cuò)代碼。例如,API606可返回差錯(cuò)代碼而非顯示文本。差錯(cuò)代碼然后可被鏈接到對(duì)應(yīng)的文本消息,其中文本消息可在必要時(shí)從數(shù)據(jù)庫(kù)中的表檢索。圖7示出了便于利用API組件來操縱數(shù)據(jù)存儲(chǔ)系統(tǒng)內(nèi)的數(shù)據(jù)的系統(tǒng)700。數(shù)據(jù)存儲(chǔ)系統(tǒng)702可以是至少部分地基于數(shù)據(jù)模型的基于數(shù)據(jù)庫(kù)的文件存儲(chǔ)系統(tǒng),其中數(shù)據(jù)被表示為復(fù)雜類型的實(shí)例。數(shù)據(jù)操縱組件704可提供與數(shù)據(jù)存儲(chǔ)系統(tǒng)702相關(guān)聯(lián)的數(shù)據(jù)操縱,同時(shí)確保與數(shù)據(jù)存儲(chǔ)系統(tǒng)702相關(guān)聯(lián)的至少一個(gè)特性的實(shí)施。數(shù)據(jù)操縱組件704可調(diào)用API組件706(此處稱為"API706")。API706可通過執(zhí)行與接收的用戶輸入有關(guān)的存儲(chǔ)過程來提供數(shù)據(jù)操縱(例如,復(fù)制、更新、替換、獲取、設(shè)置、創(chuàng)建、刪除、移動(dòng)、…)。API706可接收與數(shù)據(jù)操縱請(qǐng)求/命令有關(guān)的用戶輸入,其中這一用戶輸入在確保與數(shù)據(jù)存儲(chǔ)系統(tǒng)702相關(guān)聯(lián)的特性的完整性和/或純潔度的同時(shí)被執(zhí)行??梢岳斫?,數(shù)據(jù)存儲(chǔ)系統(tǒng)702、數(shù)據(jù)操縱組件704以及API706可以基本類似于分別在圖6、5、4、3和2中的數(shù)據(jù)存儲(chǔ)系統(tǒng)602、502、402、302和202、數(shù)據(jù)操縱組件604、504、404、304和204、API606、506、406。數(shù)據(jù)操縱組件704可包括定義允許用戶操縱與數(shù)據(jù)存儲(chǔ)系統(tǒng)702相關(guān)聯(lián)的數(shù)據(jù)而不會(huì)使任何數(shù)據(jù)模型(用于開發(fā)數(shù)據(jù)存儲(chǔ)系統(tǒng)702)約束無效的過程和/或操作的API定義組件708。API定義組件708可實(shí)現(xiàn)與對(duì)數(shù)據(jù)存儲(chǔ)系統(tǒng)702內(nèi)的數(shù)據(jù)的操縱有關(guān)的任何適當(dāng)?shù)暮瘮?shù)和/或過程。可以理解,以下過程描述是一個(gè)示例,且本發(fā)明不限于此。此外,以下過程參考名、功能、屬性和描述不是對(duì)本發(fā)明的限制。API定義組件708可利用過程來創(chuàng)建數(shù)據(jù)存儲(chǔ)系統(tǒng)702內(nèi)的項(xiàng),更具體地是創(chuàng)建數(shù)據(jù)存儲(chǔ)系統(tǒng)702內(nèi)的倉(cāng)庫(kù)中的項(xiàng)。例如,下表提供了與創(chuàng)建項(xiàng)過程相關(guān)聯(lián)的參數(shù)。<table>tableseeoriginaldocumentpage18</column></row><table><table>tableseeoriginaldocumentpage19</column></row><table>如上所述,創(chuàng)建項(xiàng)過程至少部分地基于確保與數(shù)據(jù)存儲(chǔ)系統(tǒng)702有關(guān)的約束,可具有與其相關(guān)聯(lián)的各種差錯(cuò)代碼。這些差錯(cuò)代碼可以是任何適當(dāng)?shù)母袷?,其中代碼可表示描述相應(yīng)差錯(cuò)的文本消息。例如,當(dāng)用戶試圖創(chuàng)建文件后備文件夾時(shí),可生成差錯(cuò)代碼。在另一示例中,如果類型為類屬文件的項(xiàng)不是文件后備的,則可生成差錯(cuò)代碼。繼續(xù)創(chuàng)建項(xiàng)的示例過程,每一項(xiàng)具有稱為Containerld(容器Id)的屬性,它是容器項(xiàng)的Itemld(項(xiàng)Id)。容器項(xiàng)必須已經(jīng)存在于倉(cāng)庫(kù)中且可從客戶端的連接點(diǎn)達(dá)至lj。如果調(diào)用者未提供關(guān)于項(xiàng)的CreationTime(創(chuàng)建時(shí)間)(例如,提供了空值),則倉(cāng)庫(kù)將CreationTime設(shè)為當(dāng)前時(shí)間。如果調(diào)用者未提供關(guān)于項(xiàng)的LastModificationtime(最后修改時(shí)間)(例如,提供了空值),則倉(cāng)庫(kù)將LastModificationTime設(shè)為當(dāng)前時(shí)間。如果未提供這兩個(gè)值,則倉(cāng)庫(kù)將提供item.CreationTime,且所生成的item丄astModificationTime將基本類似。在另一示例中,API定義組件708可采用SecurityDescriptor(安全描述符)。包括可任選的SecurityDescriptor滿足了對(duì)客戶端能夠自動(dòng)創(chuàng)建新項(xiàng)且明確地設(shè)置安全性和驗(yàn)證參數(shù)的要求??梢岳斫猓琒ecurityDescriptor可結(jié)合上述安全組件(未小出)來r作。此外,API定義組件708可定義墓碑項(xiàng)的實(shí)現(xiàn)。如果在倉(cāng)庫(kù)中存在具有與傳入過程的項(xiàng)id完全相同的項(xiàng)id的墓碑項(xiàng),則過程不會(huì)失敗。墓碑項(xiàng)將被復(fù)活,且傳入對(duì)Createltem的這一調(diào)用的新數(shù)據(jù)將被放入復(fù)活的項(xiàng)中。如上所述,返回concurrencyToken以允許客戶端使用關(guān)于對(duì)項(xiàng)的后繼更新的樂觀并發(fā)性檢測(cè)。所返回的concurrencyToken用于項(xiàng)的令牌。在另一示例中,當(dāng)文件系統(tǒng)代理調(diào)用Creatdtem時(shí),API組件706將不生成監(jiān)察。該調(diào)用將在用戶的上下文中做出(例如,exec—as—token),并且將在API706中完成訪問監(jiān)察。對(duì)該事件的文件系統(tǒng)(例如,傳統(tǒng)文件存儲(chǔ)系統(tǒng),其中基于位的系統(tǒng)結(jié)合操作系統(tǒng)采用具有類似的位大小的API)監(jiān)察將由文件系統(tǒng)代理生成。此外,API定義組件708可提供與文件后備項(xiàng)有關(guān)的各種實(shí)施。例如,如果項(xiàng)是文件后備項(xiàng)(例如,isFileBacked標(biāo)志被設(shè)為真),則以下適用1)FileBackedltem(文件后備項(xiàng))不能被包含在另一文件后備項(xiàng)樹中(例如,對(duì)于父項(xiàng),EntityState.RootFileBackedltemld應(yīng)為空);以及2)僅被聲明為"Compoundltem(復(fù)合項(xiàng))"類型的項(xiàng)可以是文件后備的。API定義組件708可實(shí)現(xiàn)創(chuàng)建至少一個(gè)復(fù)雜項(xiàng)的過程。該過程可以在與數(shù)據(jù)存儲(chǔ)系統(tǒng)702相關(guān)聯(lián)的倉(cāng)庫(kù)中創(chuàng)建多個(gè)項(xiàng)??梢岳斫?,API定義組件708可創(chuàng)建一組項(xiàng)擴(kuò)展以及與每一項(xiàng)的一組鏈接。類型Complexltem(復(fù)雜項(xiàng))是不可變UDT。它本質(zhì)上是傳遞與操作/過程相關(guān)聯(lián)的數(shù)據(jù)的容器。以下是Complexltem的示例定義。publicclassComplexltemPublicComplexltem(Itemitem,SqlInt32PromotionStatus,SqlBooleanisFileBakced,SqlStringnamespaceName,SqlBooleanisGhost,SyncEntityVersionsynclnfo,itemSyncMetadatasyncMetadata);publicvoidAddLink(Linklink,SyncEntitylnformationsynclnfo,LinkSyncMetadatasyncMetadata);publicvoidAddItemExtension(ItemExtensionitemExtension,SyncEntityVersionsynclnfo);publicvoidAddItemFragment(ItemFragmentitemFragment,SyncEntityVersionsynclnfo);此外,下表提供了與創(chuàng)建復(fù)雜項(xiàng)過程相關(guān)聯(lián)的參數(shù)的示例。<table>tableseeoriginaldocumentpage21</column></row><table><table>tableseeoriginaldocumentpage22</column></row><table><table>tableseeoriginaldocumentpage23</column></row><table>可以理解,API定義組件708確保了與數(shù)據(jù)存儲(chǔ)系統(tǒng)702相關(guān)聯(lián)的各種特性。例如,H標(biāo)項(xiàng)id可指向正確類型(如在該鏈接類型的模式中指定的)的有效項(xiàng),和/或目標(biāo)項(xiàng)id必須為空。CreateLink(創(chuàng)建鏈接)可用于在現(xiàn)有的數(shù)據(jù)存儲(chǔ)系統(tǒng)702的項(xiàng)之間創(chuàng)建一個(gè)鏈接??梢岳斫?,如果在倉(cāng)庫(kù)中存在具有與傳入該過程的鏈接id和源項(xiàng)id基本類似的鏈接id和源項(xiàng)id的墓碑鏈接,則該過程不會(huì)失敗。墓碑鏈接可被復(fù)活,且傳入對(duì)CreateLink的這一調(diào)用的新數(shù)據(jù)將被放入復(fù)活的鏈接中。另外,可返回concurrencyToken來允許客戶端使用關(guān)于對(duì)該鏈接的后繼更新的樂觀并發(fā)性檢測(cè)。API定義組件708可采用在倉(cāng)庫(kù)內(nèi)創(chuàng)建項(xiàng)擴(kuò)展的過程。例如,下表可描繪與用于創(chuàng)建項(xiàng)擴(kuò)展的過程相關(guān)聯(lián)的各種參數(shù)。<table>tableseeoriginaldocumentpage23</column></row><table>可返回以上利用的concurrencyToken以允許客戶端利用關(guān)于對(duì)該項(xiàng)擴(kuò)展的后繼更新的樂觀并發(fā)性檢測(cè)。API定義組件708可調(diào)用修改倉(cāng)庫(kù)內(nèi)的項(xiàng)的過程,其中倉(cāng)庫(kù)是與數(shù)據(jù)存儲(chǔ)系統(tǒng)702有關(guān)的持久儲(chǔ)存的數(shù)據(jù)。下表是對(duì)應(yīng)于修改項(xiàng)過程的參數(shù)和描述的一個(gè)示例。<table>tableseeoriginaldocumentpage23</column></row><table><table>tableseeoriginaldocumentpage24</column></row><table>API定義組件708可調(diào)用修改倉(cāng)庫(kù)中的鏈接的過程。下表是對(duì)應(yīng)于修改鏈接過程的參數(shù)和描述的一個(gè)示例。<table>tableseeoriginaldocumentpage25</column></row><table>鏈接的源是不可變的,并且不能通過使用存儲(chǔ)過程來改變。鏈接的目標(biāo)是可變的,并且可通過調(diào)用UpdateLink(更新鏈接)來改變。目標(biāo)項(xiàng)id的類型可以為空或非空。如果為非空,則它可指向存在于倉(cāng)庫(kù)中的項(xiàng),并且它可匹配鏈接上聲明的類型。另外,API定義組件708可修改倉(cāng)庫(kù)中的項(xiàng)擴(kuò)展。下表是由API定義組件708使用的過程的一個(gè)示例,并且示出了與其相關(guān)聯(lián)的各種屬性和/或描述。<table>tableseeoriginaldocumentpage26</column></row><table>此外,API定義組件708可調(diào)用API706的允許在倉(cāng)庫(kù)內(nèi)刪除項(xiàng)的過程。以下是具有從倉(cāng)庫(kù)中刪除項(xiàng)的過程的示例參數(shù)和描述的表。<table>tableseeoriginaldocumentpage26</column></row><table><table>tableseeoriginaldocumentpage27</column></row><table>如果調(diào)用者沒有同步則必須為空。默認(rèn)值為空。在未找到項(xiàng)的情況下,該過程將返回成功。倉(cāng)庫(kù)中以該項(xiàng)為目標(biāo)的任何鏈接都可將Targetltemld屬性設(shè)為空。無論調(diào)用者對(duì)鏈接所具有的實(shí)際許可是什么,將Targetltemld設(shè)為空都可成功。當(dāng)刪除一項(xiàng)時(shí),可刪除以該項(xiàng)為源的鏈接、與該項(xiàng)相關(guān)聯(lián)的項(xiàng)擴(kuò)展和項(xiàng)片段。如果項(xiàng)沒有子項(xiàng)(例如,不存在容器id等于項(xiàng)id的項(xiàng)),則刪除可以成功。在一個(gè)示例中,沒有方法來強(qiáng)制對(duì)項(xiàng)樹的級(jí)聯(lián)刪除。這只能由調(diào)用者實(shí)現(xiàn)。如果項(xiàng)id是墓碑的,則不論concurrencyToken/LastUpdateTS值的狀態(tài)是什么都返回成功。如果concurrencyToken不匹配且項(xiàng)不是墓碑,則可返回差錯(cuò)代碼。文件系統(tǒng)代理可在其自己的上下文中調(diào)用Deleteltem。在API706中不完成任何訪問檢査或監(jiān)察。API定義組件708可調(diào)用刪除倉(cāng)庫(kù)中的鏈接的過程。下表是對(duì)應(yīng)于刪除鏈接過程的參數(shù)和描述的一個(gè)示例。<table>tableseeoriginaldocumentpage27</column></row><table><table>tableseeoriginaldocumentpage28</column></row><table><table>tableseeoriginaldocumentpage29</column></row><table>API定義組件708可調(diào)用修改倉(cāng)庫(kù)中的項(xiàng)片段的過程。這一存儲(chǔ)過程可對(duì)每一類型生成,使得ItemFragment屬性的類型名稱和名稱將被包含在存儲(chǔ)過程的名稱中。為更清晰起見,參考如上所述的"CreateltemFragment(創(chuàng)建項(xiàng)片段)"。下表是對(duì)應(yīng)于修改倉(cāng)庫(kù)中的項(xiàng)片段的參數(shù)和描述的一個(gè)示例。<table>tableseeoriginaldocumentpage29</column></row><table><table>tableseeoriginaldocumentpage30</column></row><table><table>tableseeoriginaldocumentpage31</column></row><table>返回concurrencyToken以允許客戶端使用關(guān)于對(duì)安全描述符的后繼更新的樂觀并發(fā)性檢測(cè)。concurrencyToken可以與安全描述符相關(guān)聯(lián)。在一個(gè)示例中,用于安全描述符的concurrencyToken不與對(duì)應(yīng)于itemid的項(xiàng)的concurrencyToken值有關(guān)。文件系統(tǒng)代理可在其自己的上下文中調(diào)用GetltemSecurity(獲取項(xiàng)安全性)。API定義組件708可設(shè)置倉(cāng)庫(kù)中的項(xiàng)的安全描述符。下表是由API706用于設(shè)覽安全描述符的過程的一個(gè)示例,并示出了與其相關(guān)聯(lián)的各種屬性和/或描述。<table>tableseeoriginaldocumentpage31</column></row><table>API定義組件708可采用將項(xiàng)從一個(gè)容器移至另一個(gè)和/或改變項(xiàng)的namespaceName的過程。下表是與這一過程相關(guān)聯(lián)的各種參數(shù)的一個(gè)示例。<table>tableseeoriginaldocumentpage32</column></row><table>如果要移動(dòng)的項(xiàng)或者新容器中的任一個(gè)不能從當(dāng)前連接點(diǎn)達(dá)到,則該過程可返回差錯(cuò)。如果具有相同名稱的項(xiàng)已存在于目標(biāo)容器中,則該操作失敗。有三種有效的方式來使用這一函數(shù)。這些使用在下表中捕捉<table>tableseeoriginaldocumentpage32</column></row><table>不論如何調(diào)用Moveltem(例如,移動(dòng)項(xiàng)和/或?qū)?xiàng)重命名),都更新項(xiàng)的LastUpdateTS值(如concurrencyToken中返回的)。文件系統(tǒng)代理可在用戶上下文中調(diào)用Moveltem。對(duì)重命名的文件/目錄不進(jìn)行訪問檢查或監(jiān)察。在新父項(xiàng)上完成的訪問檢查和監(jiān)察確定用戶是否具有訪問來將項(xiàng)移至新目的地。<table>tableseeoriginaldocumentpage33</column></row><table>效),則Replaceltem失??;6)新項(xiàng)的改變單元都被設(shè)為默認(rèn)值??梢杂兄辽賰蓚€(gè)異常。如果項(xiàng)參與同步,則可將Changelnformation.SyncInformation.CreationSyncVersion〈直從舊工頁(yè)延纟賣至新工頁(yè)。另外,如果項(xiàng)參與同步且是文件后備的,則用于文件流的改變單元從舊項(xiàng)延續(xù)至新項(xiàng);7)必須指定所有基于文件的屬性。與Creatdtem不同,如果File屬性不由用戶設(shè)置,則沒有File屬性從父文件夾的繼承;8)對(duì)文件后備項(xiàng),不修改任何文件流數(shù)據(jù),除非指定了DeleteltemOwnedContent標(biāo)志(見下表);<table>tableseeoriginaldocumentpage34</column></row><table>以及9)Replacdtem不允許項(xiàng)從類屬項(xiàng)類型切換到復(fù)合項(xiàng)類型,反之亦然(見下表)。<table>tableseeoriginaldocumentpage34</column></row><table>圖8示出了采用智能以便于至少部分地基于具有相應(yīng)特性的數(shù)據(jù)模型來操縱數(shù)據(jù)的系統(tǒng)800。系統(tǒng)800可包括數(shù)據(jù)存儲(chǔ)系統(tǒng)802(可由數(shù)據(jù)模型表示來表示)、數(shù)據(jù)操縱組件804、以及接口106,它們都可基本類似于前面的圖中所描述的相應(yīng)組件。系統(tǒng)800還包括智能組件806。智能組件806可由數(shù)據(jù)操縱組件804利用以便于根據(jù)與數(shù)據(jù)存儲(chǔ)系統(tǒng)802相關(guān)聯(lián)的至少一個(gè)特性來操縱數(shù)據(jù)(例如,復(fù)制、更新、替換、獲取、設(shè)置、創(chuàng)建、刪除、移動(dòng)、…)。例如,智能組件806可用于分析與數(shù)據(jù)存儲(chǔ)系統(tǒng)802相關(guān)聯(lián)的特性,和/或確保與數(shù)據(jù)存儲(chǔ)系統(tǒng)802有關(guān)的特性的完整性。可以理解,智能組件806能夠從一組通過事件和/或數(shù)據(jù)捕捉的觀察中推出或推斷系統(tǒng)、環(huán)境和/或用戶的狀態(tài)。例如,推斷可用于標(biāo)識(shí)特定的上下文或動(dòng)作,或可生成狀態(tài)的概率分布。推斷可以是概率性的一即,基于數(shù)據(jù)和事件的考慮計(jì)算感興趣的狀態(tài)的概率分布。推斷也可以指用于從一組事件和/或數(shù)據(jù)組成更高級(jí)事件的技術(shù)。這類推斷導(dǎo)致從一組觀察的事件和/或儲(chǔ)存的事件數(shù)據(jù)構(gòu)造新的事件或動(dòng)作,無論事件是否在相鄰的時(shí)間上相關(guān),也無論事件和數(shù)據(jù)是來自一個(gè)還是若干個(gè)事件和數(shù)據(jù)源??刹捎酶鞣N分類(顯式和/或隱式訓(xùn)練的)方案和/或系統(tǒng)(例如,支持矢量機(jī)、神經(jīng)網(wǎng)絡(luò)、專家系統(tǒng)、貝葉斯信任網(wǎng)絡(luò)、模糊邏輯、數(shù)據(jù)融合引擎…)來執(zhí)行關(guān)于本發(fā)明的自動(dòng)化和/或推斷的動(dòng)作。分類器是將輸入屬性矢量x=(xl,x2,x3,x4,m)映射到該輸入屬于一個(gè)類的置信度的函數(shù),即/r力-co"/Wem^(c/fl^)。這一分類可采用基于概率和/或基于統(tǒng)計(jì)的分析(例如,分解成分析效用和成本)來預(yù)測(cè)或推斷用戶期望自動(dòng)執(zhí)行的動(dòng)作。支持矢量機(jī)(SVM)是可采用的分類器的一個(gè)示例。SVM通過找出可能輸入空間中的超曲面來操作,其中,超曲面試圖將觸發(fā)準(zhǔn)則從非觸發(fā)事件中分離出來。直觀上,這使得分類對(duì)于接近但不等同于訓(xùn)練數(shù)據(jù)的測(cè)試數(shù)據(jù)正確??刹捎闷渌ㄏ蚝头嵌ㄏ蚰P头诸惙椒ǎ?,例如,單純貝葉斯、貝葉斯網(wǎng)絡(luò)、決策樹、神經(jīng)網(wǎng)絡(luò)、模糊邏輯模型以及提供不同獨(dú)立性模式的概率分類模型。此處所使用的分類也包括用j開發(fā)優(yōu)先級(jí)模型的統(tǒng)計(jì)回歸。圖9-10示出了根據(jù)本發(fā)明的方法。為解釋簡(jiǎn)明起見,方法被描繪和描述為一系列動(dòng)作。可以理解和明白,本發(fā)明不受所示的動(dòng)作和/或動(dòng)作次序的限制,例如,動(dòng)作可按各種次序和/或并發(fā)地發(fā)生,并且可以與此處未呈現(xiàn)和描述的其它動(dòng)作一起發(fā)生。此外,并非所有示出的動(dòng)作都是實(shí)現(xiàn)根據(jù)本發(fā)明的方法所必需的。另外,本領(lǐng)域的技術(shù)人員可以理解和明白,方法可經(jīng)由狀態(tài)圖或事件替代地被表示為一系列相關(guān)狀態(tài)。圖9示出了便于調(diào)用基于數(shù)據(jù)庫(kù)的系統(tǒng)內(nèi)的數(shù)據(jù)操縱同時(shí)實(shí)施至少一個(gè)模型約束的方法900。在參考標(biāo)號(hào)902處,可利用數(shù)據(jù)模型來表示數(shù)據(jù)存儲(chǔ)系統(tǒng)。數(shù)據(jù)模型可以是至少部分地基于數(shù)據(jù)結(jié)構(gòu)的復(fù)雜模型,其中定義了項(xiàng)、子項(xiàng)、屬性和關(guān)系以允許將數(shù)據(jù)存儲(chǔ)系統(tǒng)內(nèi)的信息表示為復(fù)雜類型的實(shí)例。數(shù)據(jù)模型可利用一組基本構(gòu)件塊來創(chuàng)建和管理豐富的、持久儲(chǔ)存的對(duì)象以及對(duì)象之間的鏈接??梢岳斫猓镜臄?shù)據(jù)存儲(chǔ)系統(tǒng)的結(jié)構(gòu)和/或功能上的至少一個(gè)特性。換言之,數(shù)據(jù)模型可包含可被實(shí)施以確保數(shù)據(jù)模型、數(shù)據(jù)存儲(chǔ)系統(tǒng)以及與其相關(guān)聯(lián)的數(shù)據(jù)的完整性的約束。在參考標(biāo)號(hào)904處,可確定與數(shù)據(jù)存儲(chǔ)系統(tǒng)(基于數(shù)據(jù)模型)相關(guān)聯(lián)的特性。特性例如可包括方針、限帝lj、藍(lán)圖等,它們根據(jù)這些特性提供了數(shù)據(jù)存儲(chǔ)系統(tǒng)。通過采用這些特性,可確保相應(yīng)數(shù)據(jù)模型的完整性和準(zhǔn)確性。在參考標(biāo)號(hào)906處,可通過實(shí)現(xiàn)至少一個(gè)過程來調(diào)用數(shù)據(jù)操縱。在提供與數(shù)據(jù)存儲(chǔ)系統(tǒng)有關(guān)的任何適當(dāng)?shù)臄?shù)據(jù)操縱時(shí),實(shí)施這一數(shù)據(jù)存儲(chǔ)系統(tǒng)的特性以提供穩(wěn)定環(huán)境。在一個(gè)示例中,可采用API來允許結(jié)合數(shù)據(jù)存儲(chǔ)系統(tǒng)的任何適當(dāng)?shù)臄?shù)據(jù)操縱。例如,API可由用戶利用,其中用戶可修改數(shù)據(jù)。可以理解,數(shù)據(jù)操縱可包括但不限于,復(fù)制、更新、替換、獲取、設(shè)置、創(chuàng)建、刪除、移動(dòng)等。例如,數(shù)據(jù)存儲(chǔ)系統(tǒng)可包括容器分層系統(tǒng),其中這一特性在用于操縱數(shù)據(jù)存儲(chǔ)系統(tǒng)內(nèi)的數(shù)據(jù)的任何過程期間實(shí)施。圖io示出了用于至少部分地基于實(shí)施了相應(yīng)特性的數(shù)據(jù)模型來操縱數(shù)據(jù)的方法IOOO。在參考標(biāo)號(hào)1002處,可利用數(shù)據(jù)模型來表示數(shù)據(jù)存儲(chǔ)系統(tǒng)。數(shù)據(jù)存儲(chǔ)系統(tǒng)可以是基于數(shù)據(jù)庫(kù)的文件系統(tǒng),其中信息被表示為復(fù)雜類型實(shí)例。在參考標(biāo)號(hào)1004處,確定與所表示的數(shù)據(jù)存儲(chǔ)系統(tǒng)相關(guān)聯(lián)的特性。特性可包括但不限于,與數(shù)據(jù)存儲(chǔ)系統(tǒng)相關(guān)聯(lián)的促使準(zhǔn)確實(shí)現(xiàn)的限制、方針、規(guī)則、目標(biāo)、藍(lán)圖和/或任何其它適當(dāng)?shù)脑?。在參考?biāo)號(hào)1006處,可通過利用至少一個(gè)過程來調(diào)用數(shù)據(jù)操縱。數(shù)據(jù)操縱可由API提供,其中用戶可調(diào)用至少一個(gè)過程,其中過程可對(duì)應(yīng)于至少一個(gè)數(shù)據(jù)操縱??梢岳斫?,在調(diào)用數(shù)據(jù)操縱的同時(shí)維護(hù)和/或?qū)嵤┡c數(shù)據(jù)存儲(chǔ)系統(tǒng)相關(guān)聯(lián)的特性。在參考標(biāo)號(hào)1008處,可利用出錯(cuò)代碼和/或可采用安全性。出錯(cuò)代碼可例如在數(shù)據(jù)操縱侵害了數(shù)據(jù)存儲(chǔ)系統(tǒng)的特性時(shí)生成和利用??梢岳斫?,出錯(cuò)代碼可經(jīng)由API顯示給用戶,其中該代碼可對(duì)應(yīng)于將代碼與文本消息相關(guān)的查找表。與數(shù)據(jù)操縱和/或API相關(guān)聯(lián)的安全性可包括各種授權(quán)級(jí)別和/或登錄和/或口令。換言之,每一數(shù)據(jù)操縱可與一安全級(jí)別相關(guān)聯(lián),其中僅一特定安全級(jí)別可實(shí)現(xiàn)這些過程和/或需要登錄和口令。在參考標(biāo)號(hào)1010處,可實(shí)現(xiàn)與數(shù)據(jù)存儲(chǔ)系統(tǒng)內(nèi)的數(shù)據(jù)操縱有關(guān)的樂觀并發(fā)性和/或死鎖。樂觀并發(fā)性假定另一進(jìn)程在基本相似的時(shí)刻做出改變的可能性較低,因此它不取鎖,直到改變已被提交給數(shù)據(jù)存儲(chǔ)系統(tǒng)(例如,倉(cāng)庫(kù))。通過采用這一技術(shù),減少了鎖定時(shí)間并提供了更好的數(shù)據(jù)庫(kù)性能。在一個(gè)示例中,可隨著對(duì)項(xiàng)的每一次修改保持一令牌以將改變與項(xiàng)相關(guān)聯(lián)。換言之,樂觀并發(fā)性可便于在兩個(gè)并發(fā)的應(yīng)用程序之間訪問數(shù)據(jù)。另外,鎖定可便于支持多個(gè)并發(fā)的調(diào)用者。例如,想像這樣一種情形,其中有請(qǐng)求對(duì)一組公共資源的所有權(quán)的多個(gè)并發(fā)的調(diào)用者,它們以因?yàn)槊恳徽{(diào)用者都在等待其它調(diào)用者而使得沒有一個(gè)請(qǐng)求能得到滿足的方式來做出請(qǐng)求。在這一情況下,系統(tǒng)可阻斷調(diào)用者(例如,將調(diào)用者鎖住),其中離開這一情況的唯一方式是驅(qū)逐調(diào)用者之一。為避免這一情況,鎖定可支持多個(gè)并發(fā)的調(diào)用者,使得復(fù)雜鎖定邏輯可確保各個(gè)請(qǐng)求自動(dòng)成功或失敗。此外,可支持多個(gè)并發(fā)的調(diào)用者,使得復(fù)雜鎖定邏輯可確保各個(gè)請(qǐng)求原子地成功或失敗。為了提供用于實(shí)現(xiàn)本發(fā)明的各方面的附加上下文,圖11-12及以下討論旨在提供對(duì)其中可實(shí)現(xiàn)本發(fā)明的各方面的合適的計(jì)算環(huán)境的簡(jiǎn)要概括描述。盡管上文中在運(yùn)行在本地計(jì)算機(jī)和/或遠(yuǎn)程計(jì)算機(jī)上的計(jì)算機(jī)程序的計(jì)算機(jī)可執(zhí)行指令的一般上下文中描述了本發(fā)明,但是本領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到,本發(fā)明也可結(jié)合其它程序模塊來實(shí)現(xiàn)。一般而言,程序模塊包括例程、程序、組件、數(shù)據(jù)結(jié)構(gòu)等,它們執(zhí)行特定任務(wù)和/或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型。此外,本領(lǐng)域的技術(shù)人員可以理解,本發(fā)明的方法可用其它計(jì)算機(jī)系統(tǒng)配置來實(shí)施,包括單處理器或多處理器計(jì)算機(jī)系統(tǒng)、小型機(jī)、大型計(jì)算機(jī)、以及個(gè)人計(jì)算機(jī)、手持式計(jì)算設(shè)備、基于微處理器的和/或可編程消費(fèi)電子產(chǎn)品等,其每一個(gè)都可操作上與一個(gè)或多個(gè)相關(guān)聯(lián)的設(shè)備通信。所示的本發(fā)明的各方面也可在分布式計(jì)算環(huán)境中實(shí)施,其中某些任務(wù)由通過通信網(wǎng)絡(luò)鏈接的遠(yuǎn)程處理設(shè)備來執(zhí)行。然而,本發(fā)明的某些(如果不是全部)方面也可在獨(dú)立計(jì)算機(jī)上實(shí)施。在分布式計(jì)算環(huán)境中,程序模塊可以位于本地和/或遠(yuǎn)程存儲(chǔ)器存儲(chǔ)設(shè)備中。圖11是本發(fā)明可與其交互的示例計(jì)算環(huán)境1100的示意框圖。系統(tǒng)1100包括一個(gè)或多個(gè)客戶機(jī)1110。客戶機(jī)1U0可以是硬件和/或軟件(如,線程、進(jìn)程、計(jì)算裝置)。系統(tǒng)1100也包括一個(gè)或多個(gè)服務(wù)器1120。服務(wù)器1120也可以是硬件和/或軟件(如,線程、進(jìn)程、計(jì)算裝置)。例如,服務(wù)器1120可容納線程,以通過使用本發(fā)明執(zhí)行變換??蛻魴C(jī)1110和服務(wù)器1120之間的一個(gè)可能的通信可以是適用于在兩個(gè)或多個(gè)計(jì)算機(jī)進(jìn)程之間傳輸?shù)臄?shù)據(jù)分組的形式。系統(tǒng)1100包括可用于便于在客戶機(jī)1110和服務(wù)器1120之間通信的通信框架1140。客戶機(jī)1110操作上連接至可用于儲(chǔ)存對(duì)客戶機(jī)1110本地的信息的一個(gè)或多個(gè)客戶機(jī)數(shù)據(jù)存儲(chǔ)1150。類似地,服務(wù)器1120操作上連接至可用于儲(chǔ)存對(duì)服務(wù)器1140本地的信息的一個(gè)或多個(gè)服務(wù)器數(shù)3據(jù)存儲(chǔ)1130。參考圖12,用于實(shí)現(xiàn)本發(fā)明的各方面的示例性環(huán)境1200包括計(jì)算機(jī)1212。計(jì)算機(jī)1212包括處理單元1214、系統(tǒng)存儲(chǔ)器1216和系統(tǒng)總線1218。系統(tǒng)總線1218將包括但不限于系統(tǒng)存儲(chǔ)器1216的系統(tǒng)組件耦合至處理單元1214。處理單元1214可以是各種可用處理器的任一種。雙微處理器和其它多處理器體系結(jié)構(gòu)也可用作處理單元1214。系統(tǒng)總線1218可以是若干種總線結(jié)構(gòu)類型的任一種,包括存儲(chǔ)器總線或存儲(chǔ)器控制器、外圍總線或外部總線、和/或使用各類可用總線體系結(jié)構(gòu)的局部總線,這些體系結(jié)構(gòu)包括但不限于,工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)(ISA)、微通道體系結(jié)構(gòu)(MSA)、擴(kuò)展ISA(EISA)、智能驅(qū)動(dòng)電子設(shè)備(IDE)、VESA局部總線(VLB)、外圍部件互連(PCI),插件總線、通用串行總線(USB)、高級(jí)圖形端口(AGP)、個(gè)人計(jì)算機(jī)存儲(chǔ)卡國(guó)際協(xié)會(huì)總線(PCMCIA)、火線(IEEE1394)以及小型計(jì)算機(jī)系統(tǒng)接U(SCSI)。系統(tǒng)存儲(chǔ)器1216包括易失性存儲(chǔ)器1220和非易失性存儲(chǔ)器1222?;据斎?輸出系統(tǒng)(BIOS)包括如在啟動(dòng)時(shí)幫助在計(jì)算機(jī)1212內(nèi)的元件之間傳輸信息的基本例程,它儲(chǔ)存在非易失性存儲(chǔ)器1222中。作為說明而非局限,非易失性存儲(chǔ)器1222可包括只讀存儲(chǔ)器(ROM)、可編程ROM(PROM)、電可編程ROM(EPROM)、電可擦除可編程ROM(EEPROM)或閃存。易失性存儲(chǔ)器1220包括擔(dān)當(dāng)外部高速緩存的隨機(jī)存取存儲(chǔ)器(RAM)。作為說明而非局限,RAM以許多形式可用,如靜態(tài)RAM(SRAM)、動(dòng)態(tài)RAM(DRAM)、同步DRAM(SDRAM)、雙數(shù)據(jù)率SDRAM(DDRSDRAM)、增強(qiáng)型SDRAM(ESDRAM)、同步鏈路DRAM(SLDRAM)、Rambus直接RAM(RDRAM)、直接Rambus動(dòng)態(tài)RAM(DRDRAM)以及Rambus動(dòng)態(tài)RAM(RDRAM)。計(jì)算機(jī)1212也包括可移動(dòng)/不可移動(dòng)、易失性/非易失性計(jì)算機(jī)存儲(chǔ)介質(zhì)。例如,圖12示出了盤存儲(chǔ)1224。盤存儲(chǔ)1224包括但不限于,諸如磁盤驅(qū)動(dòng)器、軟盤驅(qū)動(dòng)器、磁帶驅(qū)動(dòng)器、Jaz驅(qū)動(dòng)器、Zip驅(qū)動(dòng)器、LS-100驅(qū)動(dòng)器、閃存卡或記憶棒等設(shè)備。另外,盤存儲(chǔ)1224可單獨(dú)包括存儲(chǔ)介質(zhì)或與其它存儲(chǔ)介質(zhì)組合,其它存儲(chǔ)介質(zhì)包括但不限于,諸如光盤ROM設(shè)備(CD-ROM)、CD可記錄驅(qū)動(dòng)器(CD-R驅(qū)動(dòng)器)、CD可重寫驅(qū)動(dòng)器(CD-RW驅(qū)動(dòng)器)或數(shù)字多功能盤ROM驅(qū)動(dòng)器(DVD-ROM)等光盤驅(qū)動(dòng)器。為便于盤存儲(chǔ)設(shè)備1224連接到系統(tǒng)總線1218,通常使用可移動(dòng)或不可移動(dòng)接口,如接口1226。可以理解,圖12描述了擔(dān)當(dāng)用戶和合適的操作環(huán)境1200中描述的基本計(jì)算機(jī)資源之間的中介的軟件。這類軟件包括操作系統(tǒng)1228。操作系統(tǒng)1228可儲(chǔ)存在盤存儲(chǔ)1224中,它用于控制并分配計(jì)算機(jī)系統(tǒng)1212的資源。系統(tǒng)應(yīng)用程序1230利用操作系統(tǒng)1228通過儲(chǔ)存在系統(tǒng)存儲(chǔ)器1216或盤存儲(chǔ)1224上的程序模塊1232和程序數(shù)據(jù)1234對(duì)資源的管理。可以理解,本發(fā)明可用各種操作系統(tǒng)或操作系統(tǒng)的組合來實(shí)現(xiàn)。用戶通過輸入設(shè)備1236向計(jì)算機(jī)1212輸入命令或信息。輸入設(shè)備1236包括但不限于,諸如鼠標(biāo)、跟蹤球、指示筆、觸摸墊等定點(diǎn)設(shè)備、鍵盤、話筒、操縱桿、游戲墊、圓盤式衛(wèi)星天線、掃描儀、TV調(diào)諧卡、數(shù)碼相機(jī)、數(shù)碼攝像機(jī)、web攝像頭等等。這些和其它輸入設(shè)備通過系統(tǒng)總線1218經(jīng)由接口端口1238連接到處理單元1214。接口端口1238包括,例如,串行端口、并行端口、游戲端口以及通用串行總線(USB)。輸出設(shè)備1240使用與輸入設(shè)備1236相同類型端口中的某一些。由此,例如,USB端口可用于向計(jì)算機(jī)1212提供輸入,并從計(jì)算機(jī)1212輸出信息到輸出設(shè)備1240。提供了輸出適配器1242以說明存在一些輸出設(shè)備1240,如監(jiān)視器、揚(yáng)聲器和打印機(jī),以及需要特殊適配器的其它輸出設(shè)備1240。輸出適配器1242包括,作為說明而非局限,提供輸出設(shè)備1240和系統(tǒng)總線1218之間的連接手段的顯f^和聲卡。應(yīng)當(dāng)注意,其它設(shè)備和/或設(shè)備的系統(tǒng)提供了輸入和輸出能力,如遠(yuǎn)程計(jì)算機(jī)1244。計(jì)算機(jī)1212可以使用到一個(gè)或多個(gè)遠(yuǎn)程計(jì)算機(jī),如遠(yuǎn)程計(jì)算機(jī)1244的邏輯連接在網(wǎng)絡(luò)化環(huán)境中操作。遠(yuǎn)程計(jì)算機(jī)1244可以是個(gè)人計(jì)算機(jī)、服務(wù)器、路由器、網(wǎng)絡(luò)PC、工作站、基于微處理器的電器、對(duì)等設(shè)備或其它常見的網(wǎng)絡(luò)節(jié)點(diǎn)等等,并通常包括相對(duì)于計(jì)算機(jī)1212所描述的許多或所有元件。為簡(jiǎn)明起見,僅對(duì)遠(yuǎn)程計(jì)算機(jī)1244示出了存儲(chǔ)器存儲(chǔ)設(shè)備1246。遠(yuǎn)程計(jì)算機(jī)1244通過網(wǎng)絡(luò)接口1248邏輯上連接至計(jì)算機(jī)1212,然后通過通信連接1250物理地連接。網(wǎng)絡(luò)接口1248包含諸如局域網(wǎng)(LAN)和廣域網(wǎng)(WAN)等有線和/或無線通信網(wǎng)絡(luò)。LAN技術(shù)包括光纖分布式數(shù)據(jù)接口(FDDI)、銅纜分布式數(shù)據(jù)接口(CDDI)、以太網(wǎng)、令牌環(huán)等等。WAN技術(shù)包括但不限于,點(diǎn)對(duì)點(diǎn)鏈路、諸如綜合業(yè)務(wù)數(shù)字網(wǎng)(ISDN)及其變型等電路交換網(wǎng)絡(luò)、分組交換網(wǎng)絡(luò)以及數(shù)字用戶線(DSL)。通信連接1250指用于將網(wǎng)絡(luò)接口1248連接到總線1218的硬件/軟件。盡管為說明清晰起見,示出通信連接1250在計(jì)算機(jī)1212內(nèi),然而它也可以對(duì)計(jì)算機(jī)1212是外部的。僅出于示例性目的,連接到網(wǎng)絡(luò)接口1248所必需的硬件/軟件包括內(nèi)部和外部技術(shù),如包括常規(guī)電話級(jí)調(diào)制解調(diào)器、線纜調(diào)制解調(diào)器和DSL調(diào)制解調(diào)器的調(diào)制解調(diào)器、ISDN適配器和以太網(wǎng)卡。以上所描述的包括本發(fā)明的示例。當(dāng)然,不可能為了描述本發(fā)明而描述組件或方法的每一可想到的組合,但是本領(lǐng)域的普通技術(shù)人員可以認(rèn)識(shí)到,本發(fā)明的許多其它組合和置換都是可能的。因此,本發(fā)明旨在包含落入所附權(quán)利要求書的精神和范圍內(nèi)的所有這些變更、修改和變化。特別地,對(duì)于由上述組件、設(shè)備、電路、系統(tǒng)等執(zhí)行的各種功能,除非另外指明,否則用于描述這些組件的術(shù)語(包括對(duì)"裝置"的引用)旨在對(duì)應(yīng)于執(zhí)行所描述的執(zhí)行此處所示的本發(fā)明的示例性方面中的功能的組件的指定功能(例如,功能上等效)的任何組件,即使這些組件在結(jié)構(gòu)上不等效于所公開的結(jié)構(gòu)。在這一點(diǎn)上,也可認(rèn)識(shí)到本發(fā)明包括用于執(zhí)行本發(fā)明的各種方法的動(dòng)作和/或事件的系統(tǒng)以及具有用于執(zhí)行這些動(dòng)作和/或事件的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì)。另外,盡管可相對(duì)于若干實(shí)現(xiàn)中的僅一個(gè)公開本發(fā)明的一個(gè)特定特征,但是這一特征可以如對(duì)任何給定或特定應(yīng)用所需且有利地與其它實(shí)現(xiàn)的一個(gè)或多個(gè)其它特征相組合。此外,就在說明書或權(quán)利要求書中使用術(shù)語"包括"和"含有"及其變型而言,這些術(shù)語旨在以類似于術(shù)語"包含"相似的方式為包含性的。權(quán)利要求1.一種便于操縱數(shù)據(jù)的系統(tǒng),包括部分地表示復(fù)雜類型實(shí)例并包括約束和特性中的至少一個(gè)的數(shù)據(jù)模型;以及操縱與所述數(shù)據(jù)模型相關(guān)聯(lián)的數(shù)據(jù)并實(shí)施所述約束和所述特性中的至少一個(gè)的數(shù)據(jù)操縱組件。2.如權(quán)利要求l所述的系統(tǒng),其特征在于,所述數(shù)據(jù)模型表示一數(shù)據(jù)存儲(chǔ)系統(tǒng),所述數(shù)據(jù)存儲(chǔ)系統(tǒng)是基于數(shù)據(jù)庫(kù)的系統(tǒng),它定義了至少一個(gè)持久儲(chǔ)存的實(shí)體以及每一實(shí)體的0個(gè)或多個(gè)子實(shí)體的分層模型以將信息表示為復(fù)雜類型。3.如權(quán)利要求l所述的系統(tǒng),其特征在于,所述數(shù)據(jù)操縱是復(fù)制、更新、替換、獲取、設(shè)置、創(chuàng)建、刪除、移動(dòng)和修改中的至少一種。4.如權(quán)利要求l所述的系統(tǒng),其特征在于,還包括可采用對(duì)應(yīng)于所述數(shù)據(jù)操縱的安全技術(shù)來調(diào)用所述數(shù)據(jù)存儲(chǔ)系統(tǒng)的安全組件。5.如權(quán)利要求4所述的系統(tǒng),其特征在于,所述安全技術(shù)是與用戶相關(guān)聯(lián)的S錄、口令、生物測(cè)定標(biāo)記、語音識(shí)別以及安全級(jí)別中的至少一種。6.如權(quán)利要求2所述的系統(tǒng),其特征在于,還包括將與所述數(shù)據(jù)存儲(chǔ)系統(tǒng)相關(guān)聯(lián)的數(shù)據(jù)持久儲(chǔ)存在數(shù)據(jù)庫(kù)內(nèi)的API組件,其中使用至少一個(gè)過程來實(shí)施所述數(shù)據(jù)模型約束和特性中的至少一個(gè)。7.如權(quán)利要求2所述的系統(tǒng),其特征在于,還包括提供根據(jù)與所述數(shù)據(jù)存儲(chǔ)系統(tǒng)相關(guān)聯(lián)的約束和特性中的至少一個(gè)來操縱數(shù)據(jù)的至少一個(gè)過程。8.如權(quán)利要求2所述的系統(tǒng),其特征在于,還包括將所述數(shù)據(jù)存儲(chǔ)系統(tǒng)的特性和約束中的至少一個(gè)與所述數(shù)據(jù)操縱相結(jié)合的實(shí)施器組件。9.如權(quán)利要求2所述的系統(tǒng),其特征在于,還包括提供確保以下的一個(gè)的復(fù)雜鎖定邏輯的鎖定組件各個(gè)請(qǐng)求原子地成功;以及各個(gè)請(qǐng)求原子地失敗。10.如權(quán)利要求2所述的系統(tǒng),其特征在于,還包括利用樂觀并發(fā)性技術(shù)的樂觀并發(fā)性組件,其中這一技術(shù)假定第一進(jìn)程在與第二進(jìn)程基本相似的時(shí)刻做出改變的可能性較小,并且不采用鎖,直到改變被提交給所述數(shù)據(jù)存儲(chǔ)系統(tǒng)。11.如權(quán)利要求2所述的系統(tǒng),其特征在于,還包括可在所述數(shù)據(jù)操縱將不實(shí)施所述特性和約束中的至少一個(gè)時(shí)提供差錯(cuò)代碼的差錯(cuò)組件,其中所述差錯(cuò)代碼可對(duì)應(yīng)于描述差錯(cuò)的文本并且不實(shí)現(xiàn)所述過程。12.如權(quán)利要求3所述的系統(tǒng),其特征在于,還包括可采用要由所述API組件實(shí)現(xiàn)的至少一個(gè)數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)結(jié)構(gòu)組件。13.如權(quán)利要求12所述的系統(tǒng),其特征在于,所述數(shù)據(jù)結(jié)構(gòu)組件利用同義字類型和類屬列表類型中的至少一種。14.如權(quán)利要求12所述的系統(tǒng),其特征在于,所述數(shù)據(jù)結(jié)構(gòu)組件采用提供粒度更新的改變定義類型,其中用戶可將改變的數(shù)據(jù)傳遞給更新方法同時(shí)保持所述過程的大小與所述改變的數(shù)據(jù)的大小成比例。15.如權(quán)利要求3所述的系統(tǒng),其特征在于,還包括定義要與所述API組件一起采用的以下過程中的至少一個(gè)的API定義組件1)創(chuàng)建項(xiàng);2)創(chuàng)建復(fù)雜項(xiàng);3)創(chuàng)建鏈接;4)創(chuàng)建項(xiàng)擴(kuò)展;5)更新項(xiàng);6)更新鏈接;7)更新項(xiàng)擴(kuò)展;8)刪除項(xiàng);9)刪除鏈接;10)刪除項(xiàng)擴(kuò)展;11)創(chuàng)建項(xiàng)片段;12)更新項(xiàng)片段;13)刪除項(xiàng)片段;14)獲取項(xiàng)安全性;15)設(shè)置項(xiàng)安全性;16)移動(dòng)項(xiàng);以及17)替換項(xiàng)。16.如權(quán)利要求3所述的系統(tǒng),其特征在于,所述API組件接收來自用戶的輸入以操縱數(shù)據(jù)。17.—種其上儲(chǔ)存了如權(quán)利要求1所述的系統(tǒng)的組件的計(jì)算機(jī)可讀介質(zhì)。18.—種便于操縱數(shù)據(jù)的計(jì)算機(jī)實(shí)現(xiàn)的方法,包括.-利I1J數(shù)據(jù)模型來表示數(shù)據(jù)存儲(chǔ)系統(tǒng),所述數(shù)據(jù)存儲(chǔ)系統(tǒng)是基于數(shù)據(jù)庫(kù)的文件系統(tǒng);確定與所述數(shù)據(jù)存儲(chǔ)系統(tǒng)相關(guān)聯(lián)的特性和約束中的至少一個(gè);操縱所述數(shù)據(jù)存儲(chǔ)系統(tǒng)內(nèi)的數(shù)據(jù),同時(shí)實(shí)施所述特性和約束中的至少一個(gè);以及調(diào)用允許用戶操縱所述數(shù)據(jù)的API。19.一種在數(shù)據(jù)操縱組件和接口之間傳遞的數(shù)據(jù)分組,所述數(shù)據(jù)分組促進(jìn)如權(quán)利要求18所述的方法。20.—種便于操縱數(shù)據(jù)的計(jì)算機(jī)實(shí)現(xiàn)的系統(tǒng),包括用于用數(shù)據(jù)模型來表示具有特性和約束中的至少一個(gè)的數(shù)據(jù)存儲(chǔ)系統(tǒng)的裝置;用于操縱與所述數(shù)據(jù)模型相關(guān)聯(lián)的數(shù)據(jù)并實(shí)施所述約束和特性中的至少一個(gè)的裝置;以及用于調(diào)用操縱數(shù)據(jù)的API的裝置。全文摘要本發(fā)明提供了便于操縱與數(shù)據(jù)存儲(chǔ)系統(tǒng)相關(guān)聯(lián)的數(shù)據(jù)的系統(tǒng)和/或方法,其中該數(shù)據(jù)存儲(chǔ)系統(tǒng)具有與數(shù)據(jù)模型相關(guān)聯(lián)的特性和約束中的至少一個(gè)。該數(shù)據(jù)模型可表示該數(shù)據(jù)存儲(chǔ)系統(tǒng),使得該數(shù)據(jù)存儲(chǔ)系統(tǒng)是基于數(shù)據(jù)庫(kù)的文件系統(tǒng)。數(shù)據(jù)操縱組件可操縱與該數(shù)據(jù)模型相關(guān)聯(lián)的數(shù)據(jù),并實(shí)施約束和特性中的至少一個(gè)以確保這一系統(tǒng)的完整性。另外,可調(diào)用API組件以提供對(duì)數(shù)據(jù)存儲(chǔ)系統(tǒng)中的數(shù)據(jù)的操縱。文檔編號(hào)G06F7/00GK101617290SQ200680009479公開日2009年12月30日申請(qǐng)日期2006年3月9日優(yōu)先權(quán)日2005年4月21日發(fā)明者A·舒克拉,G·S·弗里德曼,J·T·亨特,J·T·皮爾斯,J·瑞琴斯,M·J·紐曼,N·R·埃利斯,R·L·內(nèi)格林申請(qǐng)人:微軟公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1