專利名稱:將文件系統(tǒng)模型映射到數(shù)據(jù)庫(kù)對(duì)象的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及數(shù)據(jù)庫(kù),尤其涉及便于存儲(chǔ)類型實(shí)例和/或查詢數(shù)據(jù)的系統(tǒng)和/或方法。
背景技術(shù):
計(jì)算機(jī)技術(shù)的進(jìn)步(例如,微處理器速度、存儲(chǔ)器容量、數(shù)據(jù)傳輸帶寬、軟件功能等等)已經(jīng)廣泛地為各種行業(yè)增長(zhǎng)的計(jì)算機(jī)應(yīng)用做出貢獻(xiàn)。常常被配置成服務(wù)器陣列的更強(qiáng)大的服務(wù)器系統(tǒng)通常用來為從例如萬(wàn)維網(wǎng)等外部源發(fā)出的請(qǐng)求提供服務(wù)。
隨著可用電子數(shù)據(jù)量的增長(zhǎng),以便于用戶友好和快捷數(shù)據(jù)搜索和檢索的可管理方式來存儲(chǔ)這類數(shù)據(jù)變得更為重要。目前,通常的方式是將電子數(shù)據(jù)存儲(chǔ)在一個(gè)或多個(gè)數(shù)據(jù)庫(kù)中。一般地,例如,典型的數(shù)據(jù)庫(kù)可以被稱為信息的有組織集合,其中的數(shù)據(jù)被結(jié)構(gòu)化以便使得計(jì)算機(jī)程序能快捷地搜索和選擇所需要的數(shù)據(jù)片段。通常,數(shù)據(jù)庫(kù)里的數(shù)據(jù)是通過一個(gè)或多個(gè)表來組織的。這些表可以排列為行和列。
表可以包含一個(gè)或多個(gè)記錄,其中一個(gè)記錄可以包括一組字段。記錄通常被索引為表中的行,而記錄字段通常被索引為列,因此索引的一個(gè)行/列對(duì)可引用表中的特定數(shù)據(jù)。例如,行可以存儲(chǔ)與銷售交易、個(gè)人或工程相關(guān)的全部數(shù)據(jù)記錄。同樣,表的列可以定義具有相同的通用數(shù)據(jù)格式的行的離散部分,其中列可以定義諸記錄等字段。
孤立地看,數(shù)據(jù)的每一單獨(dú)片段通常不能提供什么信息。數(shù)據(jù)庫(kù)應(yīng)用程序使數(shù)據(jù)變得更有用,因?yàn)樗鼈儙椭脩艚M織和處理數(shù)據(jù)。數(shù)據(jù)庫(kù)應(yīng)用程序允許用戶比較、分類、排序、合并、分離和互連數(shù)據(jù),所以可以從數(shù)據(jù)中生成有用信息。然而,數(shù)據(jù)庫(kù)的容量和多功能性已經(jīng)增長(zhǎng)到難以置信的程度,以允許幾乎無(wú)窮的存儲(chǔ)器容量利用數(shù)據(jù)庫(kù)。而且,典型的數(shù)據(jù)庫(kù)系統(tǒng)提供有限的基于時(shí)間、文件擴(kuò)展名、位置和大小的查詢性能。例如,為了搜索關(guān)聯(lián)到數(shù)據(jù)庫(kù)的大量數(shù)據(jù),典型的搜索限于文件名、文件大小、創(chuàng)建日期,但這樣的技術(shù)是不足夠和不適當(dāng)?shù)摹?br>
隨著來自最終用戶的持續(xù)不斷和逐漸增加的數(shù)據(jù)創(chuàng)建,圍繞查找、關(guān)聯(lián)和存儲(chǔ)這類數(shù)據(jù)方面的問題和困難到達(dá)了頂峰。最終用戶編寫文檔、存儲(chǔ)照片、從光盤提取音樂、接收電子郵件、保留已發(fā)送電子郵件的副本等等。例如,在創(chuàng)建音樂光盤的簡(jiǎn)單過程中,最終用戶會(huì)創(chuàng)建數(shù)兆字節(jié)的數(shù)據(jù)。從光盤提取音樂、將文件轉(zhuǎn)換成適當(dāng)?shù)母袷?、?chuàng)建珠寶盒封面、設(shè)計(jì)光盤標(biāo)簽,全部都需要?jiǎng)?chuàng)建數(shù)據(jù)。
這類復(fù)雜情況不僅僅困擾用戶,開發(fā)者也面臨類似的數(shù)據(jù)問題。開發(fā)者創(chuàng)建和編寫無(wú)數(shù)的應(yīng)用程序,從個(gè)人應(yīng)用程序到高度發(fā)達(dá)的企業(yè)應(yīng)用程序。在創(chuàng)建和/或開發(fā)中,開發(fā)者常常(如果不是總是)收集數(shù)據(jù)。在獲得這類數(shù)據(jù)時(shí),需要存儲(chǔ)數(shù)據(jù)。換言之,圍繞查找、關(guān)聯(lián)和存儲(chǔ)數(shù)據(jù)方面的問題和困難影響開發(fā)者和最終用戶。如上所述,需要改進(jìn)和/或提供減輕與傳統(tǒng)系統(tǒng)和數(shù)據(jù)庫(kù)相關(guān)的困難的系統(tǒng)和/或方法。
發(fā)明內(nèi)容
下面給出本發(fā)明簡(jiǎn)化概述,以便提供對(duì)本發(fā)明一些方面的基本理解。該內(nèi)容不是本發(fā)明的廣泛縱覽。該內(nèi)容并不是要標(biāo)識(shí)本發(fā)明的關(guān)鍵或重要的元素,也不是描繪本發(fā)明的范圍。其唯一目的是以簡(jiǎn)化的形式給出本發(fā)明的一些概念,作為后面給出的更加詳細(xì)的描述的序言。
本發(fā)明涉及便于將數(shù)據(jù)模型映射到數(shù)據(jù)庫(kù)對(duì)象的系統(tǒng)和/或方法。類型存儲(chǔ)系統(tǒng)能夠提供類型實(shí)例的存儲(chǔ)和/或查詢。類型存儲(chǔ)能描述數(shù)據(jù)庫(kù)對(duì)象,以及如何存儲(chǔ)和/或訪問類型實(shí)例。查詢可以查找滿足特定準(zhǔn)則的項(xiàng)目、文件和聯(lián)系人中的至少其中之一。而且,類型存儲(chǔ)系統(tǒng)能利用界面接收數(shù)據(jù),其中數(shù)據(jù)可以包括模式、類型、準(zhǔn)則、查詢準(zhǔn)則等等。
根據(jù)本發(fā)明的一個(gè)方面,該類型存儲(chǔ)系統(tǒng)可以包括存儲(chǔ)至少一個(gè)類型實(shí)例的存儲(chǔ)組件。該存儲(chǔ)可以是數(shù)據(jù)模型的映射,其中數(shù)據(jù)模型可以表示文件存儲(chǔ)系統(tǒng)。此外,該類型存儲(chǔ)系統(tǒng)也可以包括查詢組件。該查詢組件可以提供文件存儲(chǔ)系統(tǒng)數(shù)據(jù)模型中滿足準(zhǔn)則的至少一個(gè)查詢。根據(jù)本發(fā)明主題的另一個(gè)方面,該類型存儲(chǔ)系統(tǒng)可以包括可以利用關(guān)系型存儲(chǔ)和/或關(guān)系型查詢性能的關(guān)系組件。該關(guān)系組件可以調(diào)用數(shù)據(jù)庫(kù)引擎來提供這類關(guān)系技術(shù),其中這些技術(shù)可以便于存儲(chǔ)類型實(shí)例和/或查詢。
而且,該類型存儲(chǔ)系統(tǒng)還可以包括能夠提供視圖的視圖組件,該視圖展現(xiàn)了給定類型的所有實(shí)例。類型可以是分層結(jié)構(gòu)和/或繼承結(jié)構(gòu)。該視圖與用基本類型投影這些類型的一個(gè)子集的特定類型有關(guān)。在本發(fā)明的其他方面中,提供便于將數(shù)據(jù)模型映射到數(shù)據(jù)庫(kù)對(duì)象的方法。
下列描述和附圖詳細(xì)說明本發(fā)明的某些示例性方面。然而,這些方面僅指示可應(yīng)用本發(fā)明原理的各種方法中的一些,本發(fā)明主題旨在包括所有這些方面及其等效方面。結(jié)合附圖一起考慮,從下面的本發(fā)明具體實(shí)施方式
中可以明顯看出本發(fā)明的其他優(yōu)點(diǎn)和新穎特征。
圖1示出便于存儲(chǔ)與數(shù)據(jù)模型相關(guān)聯(lián)的類型實(shí)例的示例性系統(tǒng)的框圖。
圖2示出便于存儲(chǔ)類型實(shí)例和/或查詢以便查找項(xiàng)目、文檔和聯(lián)系人的至少其中之一的示例性系統(tǒng)的框圖。
圖3示出便于利用關(guān)系型存儲(chǔ)和/或關(guān)系型查詢性能的示例性系統(tǒng)的框圖。
圖4示出結(jié)合類型存儲(chǔ)系統(tǒng)便于映射和/或查看的示例性系統(tǒng)的框圖。
圖5示出便于存儲(chǔ)與數(shù)據(jù)模型相關(guān)聯(lián)的類型實(shí)例的示例性系統(tǒng)的框圖。
圖6示出文件存儲(chǔ)數(shù)據(jù)模型中的存儲(chǔ)的高層結(jié)構(gòu)的框圖。
圖7示出具有相關(guān)聯(lián)的表的類型實(shí)例的框圖。
圖8示出類型層次和相應(yīng)的視圖投影的框圖。
圖9示出用于存儲(chǔ)映射到數(shù)據(jù)模型的類型實(shí)例和/或提供查詢的示例性方法。
圖10示出用于存儲(chǔ)映射到數(shù)據(jù)模型的類型實(shí)例和/或提供查詢的示例性方法。
圖11示出其中可采用本發(fā)明的新穎方面的示例性網(wǎng)絡(luò)環(huán)境。
圖12示出可以根據(jù)本發(fā)明使用的示例性操作環(huán)境。
具體實(shí)施例方式
本申請(qǐng)書中所使用的術(shù)語(yǔ)“組件”、“系統(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)程中,并且,組件可以位于一臺(tái)計(jì)算機(jī)內(nèi)和/或分布在兩臺(tái)或更多的計(jì)算機(jī)之間。
參考附圖描述本發(fā)明主題,附圖中,始終用相同的參考數(shù)字來指示相同的元素。在下列描述中,出于解釋的目的,闡明了很多具體細(xì)節(jié),以提供對(duì)本發(fā)明主題的全面理解。然而,顯然,本發(fā)明主題可以不需要這些具體細(xì)節(jié)就能實(shí)現(xiàn)。在其他實(shí)例中,以框圖的形式顯示眾所周知的結(jié)構(gòu)和設(shè)備,以便于描述本發(fā)明。
現(xiàn)在轉(zhuǎn)到附圖,圖1示出便于存儲(chǔ)與數(shù)據(jù)模型相關(guān)聯(lián)的類型實(shí)例的系統(tǒng)100。數(shù)據(jù)模型可以是允許存儲(chǔ)、查找和相關(guān)信息的文件存儲(chǔ)數(shù)據(jù)模型102。例如,信息類型可以是,但不限于,文檔、圖像、視頻、聯(lián)系人、消息、電子郵件、音頻剪輯等等。信息類型可以被認(rèn)為是能被表示為復(fù)雜類型的實(shí)例的信息單元,這些復(fù)雜類型是支持繼承的類型系統(tǒng)的一部分。繼承可以被定義為其中某些特征從一個(gè)上下文傳遞到另一個(gè)上下文的情況。尤其是在面向?qū)ο蟮木幊讨?,?duì)象從其他對(duì)象繼承屬性和/或行為。應(yīng)當(dāng)明白,繼承可以被認(rèn)為是分層結(jié)構(gòu)和/或格式。
類型存儲(chǔ)系統(tǒng)104可以存儲(chǔ)類型實(shí)例并且進(jìn)行查詢,以便高效地且有效地查找項(xiàng)目、文檔和/或聯(lián)系人的至少其中之一。類型存儲(chǔ)系統(tǒng)104可以接收數(shù)據(jù),其中數(shù)據(jù)可以包括類型、準(zhǔn)則、模式、查詢準(zhǔn)則……。具體來說,存儲(chǔ)與消息類型(例如,文件、圖像、視頻、聯(lián)系人、消息、電子郵件、音頻剪輯)有關(guān)的類型實(shí)例可以提供以下的至少其中之一1)在文件存儲(chǔ)數(shù)據(jù)模型102中查找滿足特定準(zhǔn)則的至少一個(gè)項(xiàng)目;2)在文件存儲(chǔ)數(shù)據(jù)模型102中查找滿足特定準(zhǔn)則的至少一個(gè)文檔;以及3)查找滿足特定準(zhǔn)則的至少一個(gè)聯(lián)系人(例如,包括個(gè)人、組織和群)。
類型存儲(chǔ)系統(tǒng)104可以利用關(guān)聯(lián)到關(guān)系存儲(chǔ)和關(guān)系查詢的關(guān)系型數(shù)據(jù)庫(kù)技術(shù)。應(yīng)當(dāng)明白,這些性能可以由數(shù)據(jù)庫(kù)引擎提供(未示出)。關(guān)系型數(shù)據(jù)庫(kù)技術(shù)可以關(guān)聯(lián)到關(guān)系型數(shù)據(jù)庫(kù),其中關(guān)系型數(shù)據(jù)庫(kù)是被組織為一組規(guī)范描述的表的數(shù)據(jù)項(xiàng)目的集合。表中的數(shù)據(jù)不需要重新組織數(shù)據(jù)庫(kù)表就能以各種方式訪問和/或重新匯編。此外,可以容易地?cái)U(kuò)展關(guān)系型數(shù)據(jù)庫(kù),如增加類別而無(wú)需修改現(xiàn)有的應(yīng)用程序和/或數(shù)據(jù)。應(yīng)該明白,本發(fā)明不限于關(guān)系型數(shù)據(jù)庫(kù)和/或相關(guān)技術(shù),可以利用任何適當(dāng)?shù)募夹g(shù)。
系統(tǒng)100還包括接口組件106,接口組件106提供各種適配器、連接器、信道、通信路徑等等,以將類型存儲(chǔ)系統(tǒng)104集成到實(shí)際上任何操作系統(tǒng)。另外,接口組件106可以提供規(guī)定與數(shù)據(jù)和類型存儲(chǔ)系統(tǒng)104的交互的各種適配器、連接器、信道、通信路徑等等。應(yīng)該明白,盡管接口組件106被合并到類型存儲(chǔ)系統(tǒng)104中,但不限于這種實(shí)現(xiàn)。例如,接口組件106可以是接收或發(fā)送與系統(tǒng)100有關(guān)的數(shù)據(jù)的單獨(dú)組件。
圖2示出便于存儲(chǔ)類型實(shí)例和/或查詢以便查找與數(shù)據(jù)模型202項(xiàng)關(guān)聯(lián)的項(xiàng)目、文檔和聯(lián)系人的系統(tǒng)200。數(shù)據(jù)模型202可以是利用分層特性和/或繼承的文件存儲(chǔ)系統(tǒng)的模型表示。類型可以包括文檔、圖像、視頻、聯(lián)系人、消息、電子郵件、音頻剪輯等等。然而,應(yīng)該明白,類型可以是被存儲(chǔ)在由數(shù)據(jù)模型202表示的系統(tǒng)中的典型信息類型。類型存儲(chǔ)系統(tǒng)204可以存儲(chǔ)類型實(shí)例并提供能夠高效地查找以下的至少其中之一的查詢數(shù)據(jù)模型202中的項(xiàng)目、數(shù)據(jù)模型202中的文檔以及數(shù)據(jù)模型202中的聯(lián)系人。類型存儲(chǔ)系統(tǒng)204可以接收數(shù)據(jù),其中數(shù)據(jù)可以是查詢準(zhǔn)則、模式、準(zhǔn)則、模式定義、數(shù)據(jù)模型、類型……。系統(tǒng)200還可以使用接口206以便于提供各種適配器、連接器、信道、通信路徑等等,以將類型存儲(chǔ)系統(tǒng)204集成到實(shí)際上任何操作系統(tǒng)并便于通信。
類型存儲(chǔ)系統(tǒng)204還可以包括能夠存儲(chǔ)類型實(shí)例的存儲(chǔ)組件208(“存儲(chǔ)208”)。該存儲(chǔ)可以是數(shù)據(jù)模型202的映射,其中該存儲(chǔ)映射可以描述基于模式定義所創(chuàng)建的數(shù)據(jù)庫(kù)對(duì)象,以及該模式中所描述的類型實(shí)例如何被存儲(chǔ)和/或訪問。換言之,存儲(chǔ)208可以存儲(chǔ)該類型的實(shí)例以及與將類型聲明映射到數(shù)據(jù)庫(kù)對(duì)象相關(guān)聯(lián)的至少一個(gè)規(guī)則。
類型存儲(chǔ)系統(tǒng)204可以包括提供數(shù)據(jù)查詢的查詢組件210(“查詢210”)。查詢210可以獲得以下的至少其中之一由數(shù)據(jù)模型202表示的系統(tǒng)中的項(xiàng)目;由數(shù)據(jù)模型202表示的系統(tǒng)中的文檔;以及由數(shù)據(jù)模型202表示的系統(tǒng)中的聯(lián)系人(例如,包括個(gè)人、組織和群)。應(yīng)該明白并理解,查詢可以基于經(jīng)由接口206獲得的至少一個(gè)特定準(zhǔn)則和/或查詢準(zhǔn)則。此外,查詢210不限于項(xiàng)目、文檔和聯(lián)系人,且可以利用存儲(chǔ)在由數(shù)據(jù)模型202表示的系統(tǒng)中的任何適當(dāng)?shù)男畔㈩愋汀?br>
圖3示出便于利用關(guān)系型存儲(chǔ)和關(guān)系型查詢性能的系統(tǒng)300。類型存儲(chǔ)系統(tǒng)304可以存儲(chǔ)類型實(shí)例并查詢以便高效地且有效地查找項(xiàng)目、文檔和聯(lián)系人,其中這些元素被關(guān)聯(lián)到由數(shù)據(jù)模型302表示的文件系統(tǒng)。應(yīng)該明白,該文件系統(tǒng)可以是利用分層結(jié)構(gòu)和/或繼承特性的存儲(chǔ)文件系統(tǒng)。類型存儲(chǔ)系統(tǒng)304實(shí)質(zhì)上可以類似于分別如圖1和2所描述的類型存儲(chǔ)系統(tǒng)104、204。類型存儲(chǔ)系統(tǒng)304可以調(diào)用接口306以便于通信和/或接收要根據(jù)本發(fā)明進(jìn)一步利用的數(shù)據(jù)。
類型存儲(chǔ)系統(tǒng)304可以包括存儲(chǔ)組件308(存儲(chǔ)308)和查詢組件310(“查詢310”)。存儲(chǔ)308可以提供任何適當(dāng)?shù)拇鎯?chǔ)技術(shù)以存儲(chǔ)類型實(shí)例。查詢310能夠提供可以高效地且有效地獲得以下的至少其中之一的查詢系統(tǒng)中滿足準(zhǔn)則的至少一個(gè)項(xiàng)目;系統(tǒng)中滿足準(zhǔn)則的至少一個(gè)文檔;以及符合準(zhǔn)則的至少一個(gè)聯(lián)系人。應(yīng)該明白并理解,存儲(chǔ)308和查詢310實(shí)質(zhì)上可以類似于如圖2所描述的存儲(chǔ)208和查詢210。
類型存儲(chǔ)系統(tǒng)304還可以包括關(guān)系組件312(“關(guān)系312”)。關(guān)系組件312利用數(shù)據(jù)庫(kù)技術(shù)(例如,利用數(shù)據(jù)庫(kù)引擎)建立關(guān)系型存儲(chǔ)和/或提供關(guān)系型查詢性能以便于存儲(chǔ)類型實(shí)例和/或查詢。關(guān)系組件312可以結(jié)合與關(guān)系型數(shù)據(jù)庫(kù)相關(guān)聯(lián)的技術(shù),其中關(guān)系型數(shù)據(jù)庫(kù)是如上所述被組織為一組規(guī)范描述的表的數(shù)據(jù)項(xiàng)目的集合。應(yīng)該明白,本發(fā)明不限于關(guān)系型數(shù)據(jù)庫(kù)和相關(guān)技術(shù),可以利用任何適當(dāng)?shù)募夹g(shù)。
圖4示出便于結(jié)合數(shù)據(jù)模型402來映射和/或查看的系統(tǒng)400。數(shù)據(jù)模型402可以表示允許存儲(chǔ)、查找和相關(guān)信息的文件存儲(chǔ)系統(tǒng)。能夠存儲(chǔ)在該系統(tǒng)中的典型信息類型可以包括文檔、圖像、音樂、視頻、聯(lián)系人、消息等等。該信息類型可以被表示為復(fù)雜類型的實(shí)例,這些復(fù)雜類型是支持繼承的類型系統(tǒng)的一部分。類型存儲(chǔ)系統(tǒng)404可以存儲(chǔ)類型實(shí)例并提供查詢以便查找滿足特定準(zhǔn)則的項(xiàng)目、文檔和聯(lián)系人。系統(tǒng)400還可以使用接口406來便于通信和/或接收數(shù)據(jù),這類數(shù)據(jù)可以包括準(zhǔn)則、類型、模式模型和查詢準(zhǔn)則。
類型存儲(chǔ)系統(tǒng)404還可以包括映射組件408以便于存儲(chǔ)類型實(shí)例。映射組件408提供將模式中所描述的類型映射到所定義的類型和數(shù)據(jù)庫(kù)對(duì)象。映射組件408可以是描述至少一個(gè)數(shù)據(jù)庫(kù)對(duì)象和/或模式中所描述的類型實(shí)例如何被存儲(chǔ)和/或訪問的存儲(chǔ)映射,其中數(shù)據(jù)庫(kù)對(duì)象可以基于模式定義來創(chuàng)建。換言之,可以存儲(chǔ)類型的實(shí)例并可以利用規(guī)則,以將類型聲明映射到數(shù)據(jù)庫(kù)對(duì)象中。模式中的每個(gè)類型映射到存儲(chǔ)中的一個(gè)類(例如,公共語(yǔ)言運(yùn)行庫(kù)(CLR))。
類型存儲(chǔ)系統(tǒng)404可以包括視圖組件410以便提供視圖投影。視圖投影可以展示所查看的類型實(shí)例。應(yīng)該明白,類型可以采用至少利用繼承的分層結(jié)構(gòu)。換言之,每個(gè)類型是類型層次的一部分。視圖可以與一給定的類型相關(guān)聯(lián),并可以投影與其基本類型相關(guān)聯(lián)的相應(yīng)類型視圖的子集。該視圖可以將相關(guān)聯(lián)的實(shí)例投影到特定類型。例如,對(duì)于類型“消息”,至少基于該分層結(jié)構(gòu),只有其消息是其父節(jié)點(diǎn)的實(shí)例才可以被查看。
視圖組件410能夠提供各種類型的用戶界面,以便于用戶和耦合到類型存儲(chǔ)系統(tǒng)404的任何組件之間的交互。如上所述,視圖組件410是被合并到類型存儲(chǔ)系統(tǒng)404中的單獨(dú)實(shí)體。然而,應(yīng)該明白,視圖組件410和/或類似視圖組件可以是獨(dú)立于類型存儲(chǔ)系統(tǒng)404的單獨(dú)組件和/或獨(dú)立單元。視圖組件410可以提供一個(gè)或多個(gè)圖形用戶界面(GUI)、命令行界面等等。例如,GUI可以被實(shí)現(xiàn)為向用戶提供加載、導(dǎo)入、讀取數(shù)據(jù)等的區(qū)域或方法,并可以包括呈現(xiàn)這些結(jié)果的區(qū)域。這些區(qū)域可以包括已知文本和/或圖形區(qū)域,包括對(duì)話框、靜態(tài)控件、下拉菜單、列表框、彈出式菜單以及編輯控件、組合框、單選按鈕、復(fù)選框、下壓按鈕和圖形框。另外,可以使用實(shí)用程序來便于顯示用于導(dǎo)航的這類垂直和/或水平滾動(dòng)條,以及確定區(qū)域是否可查看的工具欄按鈕。例如,用戶可以與耦合到類型存儲(chǔ)系統(tǒng)404的一個(gè)或多個(gè)組件交互。
用戶也可以與區(qū)域交互以便經(jīng)由各種設(shè)備來選擇和提供信息,這些設(shè)備如鼠標(biāo)、滾動(dòng)球、小鍵盤、鍵盤、筆和/或語(yǔ)音激活。通常,可以在輸入信息以便開始搜索之后使用像下壓按鈕或鍵盤上的Enter鍵這樣的機(jī)制。然而,應(yīng)該明白,本發(fā)明不限于此。例如,僅僅突出顯示復(fù)選框就可以啟動(dòng)信息傳送。在另一個(gè)例子中,可以使用命令行界面。例如,命令行界面可以通過提供文本消息來提示用戶(例如,通過顯示器上的文本消息和音頻音調(diào))輸入信息。于是用戶可以提供適當(dāng)?shù)男畔?,如?duì)應(yīng)于界面提示中所提供的選項(xiàng)或?qū)μ崾局兴岢鰡栴}的字母或數(shù)字輸入。應(yīng)該明白,命令行界面可以與GUI和/或API結(jié)合一起使用。另外,命令行界面可以與具有有限的圖形支持和/或低帶寬通信信道的硬件(例如,視頻卡)和/或顯示器(例如,黑白以及EGA)一起使用。
圖5示出利用智能來便于存儲(chǔ)與數(shù)據(jù)模型502相關(guān)聯(lián)的類型實(shí)例的系統(tǒng)500。系統(tǒng)500包括類型存儲(chǔ)系統(tǒng)504、接口506和數(shù)據(jù)模型502,它們實(shí)質(zhì)上可以類似于前面的圖中所描述的組件。接口506能夠便于與數(shù)據(jù)相關(guān)聯(lián)的通信,包括準(zhǔn)則、類型、模式、數(shù)據(jù)模型和查詢準(zhǔn)則。系統(tǒng)500能夠提供存儲(chǔ)類型、查詢的存儲(chǔ)和/或提供視圖。應(yīng)該明白并理解,數(shù)據(jù)庫(kù)引擎能夠向系統(tǒng)500提供關(guān)系型存儲(chǔ)和關(guān)系型查詢。
系統(tǒng)500還包括智能組件508。智能組件508可以被類型存儲(chǔ)系統(tǒng)504用來便于存儲(chǔ)和/或查詢系統(tǒng)500。例如,智能組件508可以用來便于確定要存儲(chǔ)的用戶定義類型。結(jié)合用戶概況,歷史數(shù)據(jù)可以允許智能組件508確定存儲(chǔ)該類型和/或以特定準(zhǔn)則進(jìn)行查詢。
應(yīng)該理解,智能組件508能夠從通過事件和/或數(shù)據(jù)所捕捉的一組觀察結(jié)果中推斷或推理系統(tǒng)、環(huán)境和/或用戶的狀態(tài)。例如,可以使用推理來標(biāo)識(shí)特定上下文或動(dòng)作,或者可以產(chǎn)生狀態(tài)的概率分布。推理可以是概率性的,即,所關(guān)心的狀態(tài)的概率分布的計(jì)算以對(duì)數(shù)據(jù)和事件的考慮為基礎(chǔ)。推理也可以是用于從一組事件和/或數(shù)據(jù)構(gòu)成更高級(jí)事件的技術(shù)。這類推理導(dǎo)致從一組所觀察的事件和/或所存儲(chǔ)的事件數(shù)據(jù)中構(gòu)造新事件,而無(wú)論諸事件是否有在時(shí)間上密切相關(guān),也無(wú)論事件和數(shù)據(jù)是來自一個(gè)還是多個(gè)事件和數(shù)據(jù)源。各種分類(顯式和/或隱式地訓(xùn)練的)方案和/或系統(tǒng)(例如,支持矢量機(jī)、神經(jīng)網(wǎng)絡(luò)、專家系統(tǒng)、貝斯信任網(wǎng)絡(luò)、模糊邏輯、數(shù)據(jù)融合引擎……)能結(jié)合本發(fā)明用于執(zhí)行自動(dòng)和/或推理的動(dòng)作。
分類器是將輸入屬性矢量x=(x1,x2,x3,x4,xn)映射到其輸入屬于一類的置信度的函數(shù),即,f(x)=confidence(class)。這樣的分類可以應(yīng)用基于概率和/或基于統(tǒng)計(jì)的分析(例如,包括分析效用和成本)來預(yù)測(cè)或推理用戶想要自動(dòng)執(zhí)行的動(dòng)作。支持矢量機(jī)(SVM)是可以應(yīng)用的分類器的一個(gè)例子。SVM通過在可能輸入的空間查找超曲面來進(jìn)行工作,該超曲面嘗試將觸發(fā)準(zhǔn)則從非觸發(fā)事件分離開來。直觀上,這使得分類對(duì)于接近但不相同的測(cè)試數(shù)據(jù)是正確的??刹捎闷渌邢蚝蜔o(wú)向模型分類方法,包括,例如,單純貝葉斯、貝葉斯網(wǎng)絡(luò)、決策樹、神經(jīng)網(wǎng)絡(luò)、模糊邏輯模型和提供不同的獨(dú)立性模式的概率分類模型。此處使用的分類也包括用來開發(fā)優(yōu)先級(jí)模型的統(tǒng)計(jì)回歸。
此外,智能組件508能利用數(shù)據(jù)存儲(chǔ)510存儲(chǔ)用戶概況和/或歷史數(shù)據(jù)。數(shù)據(jù)存儲(chǔ)510可以是,例如,易失性存儲(chǔ)器或非易失性存儲(chǔ)器,或者可以包括易失性存儲(chǔ)器或非易失性存儲(chǔ)器兩者。作為例示而非限制,易失性存儲(chǔ)器可以包括只讀存儲(chǔ)器(ROM)、可編程只讀存儲(chǔ)器(PROM)、電可編程只讀存儲(chǔ)器(EPROM)、電可擦寫可編程只讀存儲(chǔ)器(EEPROM)或閃存。易失性存儲(chǔ)器包括擔(dān)任外部緩沖存儲(chǔ)器的隨機(jī)存取存儲(chǔ)器(RAM)。作為例示而非限制,隨機(jī)存取存儲(chǔ)器以許多形式獲得,例如靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)、動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)、同步DRAM(SDRAM)、雙倍數(shù)據(jù)速率SDRAM(DDR SDRAM)、增強(qiáng)型SDRAM(ESDRAM)、同步鏈路DRAM(SLDRAM)、Rambus直接隨機(jī)存儲(chǔ)器(RDRAM)、直接Rambus動(dòng)態(tài)隨機(jī)存儲(chǔ)器(DRDRAM)以及Rambus動(dòng)態(tài)隨機(jī)存儲(chǔ)器(RDRAM)。本發(fā)明的系統(tǒng)和方法的數(shù)據(jù)存儲(chǔ)510旨在包括但不限于這些和任何其他適當(dāng)類型的存儲(chǔ)器。另外,應(yīng)該明白,數(shù)據(jù)存儲(chǔ)510可以是服務(wù)器和/或數(shù)據(jù)庫(kù)。
圖6示出存儲(chǔ)的高層結(jié)構(gòu)??梢蕴峁┮环N模式,其中類型的各種實(shí)例可以取決于其類型而存儲(chǔ)在表中。類型可以是,但不限于,項(xiàng)目、項(xiàng)目擴(kuò)展、項(xiàng)目片段和鏈接。每個(gè)類型都可以有一個(gè)相應(yīng)的表,該表可以包括在其中有對(duì)象實(shí)例的列。例如,項(xiàng)目表中的一列可以包含存儲(chǔ)器中的所有項(xiàng)目的實(shí)例。對(duì)每一行,該列可以包含表示項(xiàng)目類型實(shí)例的CLR類實(shí)例的串行化表示。應(yīng)該明白,對(duì)于項(xiàng)目擴(kuò)展、項(xiàng)目片段和鏈接,類型實(shí)例可以用類似的結(jié)構(gòu)表示。內(nèi)聯(lián)類型實(shí)例可以存儲(chǔ)在父對(duì)象實(shí)例中而不是存儲(chǔ)在獨(dú)立的表和/或列中。對(duì)于項(xiàng)目、項(xiàng)目擴(kuò)展、項(xiàng)目片段和鏈接,可以創(chuàng)建展示該類型的所有實(shí)例的視圖。每個(gè)類型都是類型層次的一部分。例如,項(xiàng)目視圖投影存儲(chǔ)中的所有項(xiàng)目。
簡(jiǎn)短地轉(zhuǎn)到圖7,描述項(xiàng)目702。項(xiàng)目702的表704可以包含存儲(chǔ)中所有項(xiàng)目的實(shí)例(未示出)。該表704可以包含對(duì)象實(shí)例706(“文檔”)和對(duì)象實(shí)例708(“聯(lián)系人”)。應(yīng)該明白,模式中的每個(gè)類型都映射到存儲(chǔ)中的一個(gè)CLR類。對(duì)象實(shí)例706可以包括名稱、摘要、打印、作者和與對(duì)象實(shí)例706相關(guān)聯(lián)的其他各種元數(shù)據(jù)。同樣,對(duì)象實(shí)例708可以包括各種元數(shù)據(jù),如名字、地址、電子郵件等等。
圖8示出類型層次800和相應(yīng)的視圖投影820。類型層次800可以包括項(xiàng)目802、聯(lián)系人804、文檔806、消息808、個(gè)人810、組織812、電子郵件814、傳真816和語(yǔ)音818。應(yīng)該明白,類型層次800是一個(gè)例子,可以根據(jù)本發(fā)明利用任何適當(dāng)?shù)膶哟魏?或類型。正如所示的那樣,項(xiàng)目802被認(rèn)為是其中所包括的每個(gè)類型的父節(jié)點(diǎn)。因此,聯(lián)系人804是個(gè)人810和組織812的父節(jié)點(diǎn),消息808是電子郵件814、傳真816的父節(jié)點(diǎn)以及語(yǔ)音818的父節(jié)點(diǎn)。此外,相應(yīng)的視圖投影820可以反映類型層次800。與給定類型相關(guān)聯(lián)的視圖可以投影與其基本類型相關(guān)聯(lián)的視圖的項(xiàng)目的一個(gè)子集。例如,項(xiàng)目視圖投影存儲(chǔ)中的所有項(xiàng)目。聯(lián)系人視圖只投影類型聯(lián)系人(Contact)的項(xiàng)目。個(gè)人視圖只投影把個(gè)人(person)作為最底層派生類型的聯(lián)系人。
返回到圖6,可以提供類型映射,該類型映射利用一種算法來將該類型映射到用于描述存儲(chǔ)中相應(yīng)存儲(chǔ)結(jié)構(gòu)的類型。應(yīng)該明白,該映射可以關(guān)聯(lián)到任何文件存儲(chǔ)系統(tǒng)(例如,基于系統(tǒng)的數(shù)據(jù)模型,其利用類型的復(fù)雜實(shí)例來描述和/或表示信息單元)。在模式中所聲明的每個(gè)類型被映射到一支持SQL UDT契約的CLR類。應(yīng)該明白,盡管在下列例子中使用SQL,但是可以使用任何適當(dāng)?shù)臄?shù)據(jù)庫(kù)管理系統(tǒng)。類型屬于一名字空間,其名字對(duì)應(yīng)于附加有“.Store(存儲(chǔ))”后綴的模式的名字空間。給定名字空間中的類型被編譯為用作該模式的部署單元的單個(gè)程序集。CLR類型的名字等同于模式中所聲明的名字。對(duì)于該類型的所聲明的每一特性,以下被添加到相應(yīng)的CLR類型1)具有等同于模式中所指定名字的名字的私有字段,前綴為“m_”。該字段用UDT專用屬性System.Data.SqlTypes.SqlUdtField來設(shè)置屬性;2)具有等同于模式中所指定名字的名字的公有屬性以及相應(yīng)的get(獲取)/set(設(shè)置)語(yǔ)句。該屬性用UDT專用屬性System.Data.SqlTypes.SqlUdtProperty來設(shè)置屬性;以及3)該字段的類型和屬性是對(duì)應(yīng)于模式中所聲明類型的CLR類型。如果該類型是標(biāo)量類型的其中之一,就將其映射到標(biāo)量SQL類型的其中之一(在下面討論)。
下表描述將文件存儲(chǔ)系統(tǒng)標(biāo)量類型映射到相應(yīng)的SQL受管類型表1
在文件存儲(chǔ)系統(tǒng)存儲(chǔ)中所創(chuàng)建的數(shù)據(jù)庫(kù)對(duì)象可以按SQL模式名字存儲(chǔ),該SQL模式名字由該文件存儲(chǔ)系統(tǒng)模式名字派生而來。后綴“.Store”被附加到文件存儲(chǔ)系統(tǒng)模式名字來生成該SQL模式名字。例如,文件存儲(chǔ)system.storage模式生成“[System.Storage.Store]”SQL模式中的對(duì)象,如“[System.Storage.Store].Item”。
能夠通過視圖來訪問文件存儲(chǔ)系統(tǒng)內(nèi)的內(nèi)容。下面所描述的視圖是只讀的,但由于該視圖可以允許寫,本發(fā)明沒有這樣的限制。每個(gè)項(xiàng)目類型可以被映射到一個(gè)類型化視圖。在文件存儲(chǔ)系統(tǒng)存儲(chǔ)器中可以使用命名約定[<模式名>.Store].[<項(xiàng)目類型名>]來標(biāo)識(shí)每個(gè)類型化項(xiàng)目視圖。類型T的類型視圖可以返回類型為T以及從T派生的所有類型的所有項(xiàng)目。對(duì)應(yīng)于System.Storage.Item類型的視圖是[System.Storage.Store].[Item]。這一視圖能夠返回文件存儲(chǔ)系統(tǒng)存儲(chǔ)器中的所有項(xiàng)目。下表描述的一個(gè)項(xiàng)目類型視圖的列表2
每一鏈接類型被映射到一個(gè)類型化視圖。在文件存儲(chǔ)系統(tǒng)存儲(chǔ)中使用命名約定[<模式名>.Store].[<鏈接類型名>])來標(biāo)識(shí)每一類型化鏈接視圖。對(duì)應(yīng)于System.Storage.Link類型的視圖是[System.Storage.Store].[Link]。這一視圖可以包含文件存儲(chǔ)系統(tǒng)存儲(chǔ)中的所有鏈接。下表描述鏈接類型視圖的諸列表3
所有項(xiàng)目片段可以通過單個(gè)視圖[System.Storage.Store].[ItemFragment]來訪問。下表描述全局項(xiàng)目片段視圖的諸列表4
每個(gè)存儲(chǔ)器提供一個(gè)稱為[System.Storage.Store].[ItemExtension]的全局?jǐn)U展視圖。所有擴(kuò)展類型的實(shí)例可以通過這一視圖來訪問。下表描述全局?jǐn)U展視圖中的諸列表5
每個(gè)擴(kuò)展類型被映射到一個(gè)類型化視圖。文件存儲(chǔ)系統(tǒng)存儲(chǔ)中使用命名約定[<模式名>.Store].[<擴(kuò)展類型名>])來標(biāo)識(shí)每個(gè)類型化擴(kuò)展視圖。下表描述擴(kuò)展類型視圖的諸列表6
在文件存儲(chǔ)系統(tǒng)中,內(nèi)聯(lián)類型實(shí)例可以被存儲(chǔ)在實(shí)體類型實(shí)例中。應(yīng)該明白并理解,它們是通過查詢適當(dāng)?shù)乃阉饕晥D來訪問的。
所有項(xiàng)目被存儲(chǔ)在稱為[System.Storage.Store].[Table!Item]的單個(gè)項(xiàng)目表中。下表中的唯一關(guān)鍵字是ItemId表7
在下表中描述項(xiàng)目表的索引
表8
所有鏈接將被存儲(chǔ)在被命名為[System.Storage.Store].[Table!Link]的鏈接表中。下表中唯一關(guān)鍵字是ItemId、LinkId表9
鏈接表的索引在下表中描述表10
所有EntityExtension被存儲(chǔ)在被稱為[System.Storage.Store].[Table!ItemExtension]的單個(gè)表中。下表描述項(xiàng)目擴(kuò)展表表11
下表中描述ItemExtension表的索引表12
所有ItemFragment類型實(shí)例被存儲(chǔ)在一個(gè)名為[System.Storage.Store].[Table!ItemFragment]的單個(gè)表中。下表描述ItemFragment類型表13
下表中描述ItemFragment表的索引表14
圖9-10例示根據(jù)本發(fā)明主題的方法。出于簡(jiǎn)化解釋的目的,這些方法被描寫和描述為一系列的動(dòng)作。應(yīng)該理解并明白,本發(fā)明主題不受所示的動(dòng)作和/或動(dòng)作順序所限制,例如動(dòng)作可以按各種順序發(fā)生和/或與此處未呈現(xiàn)和描述的其它動(dòng)作同時(shí)發(fā)生。此外,并非需要所有示出的動(dòng)作來實(shí)現(xiàn)根據(jù)本發(fā)明主題的方法。另外,本領(lǐng)域的技術(shù)人員可以理解并明白,這些方法可以替換地通過狀態(tài)圖表示為一系列相互聯(lián)系的狀態(tài)或事件。
圖9示出便于存儲(chǔ)映射到數(shù)據(jù)模型和/或提供查詢的類型實(shí)例的方法900。該數(shù)據(jù)模型可以是允許存儲(chǔ)、查找以及相關(guān)信息的文件存儲(chǔ)數(shù)據(jù)模型。信息類型可以是,但不限于,文件、圖像、視頻、聯(lián)系人、消息、電子郵件、音頻剪輯等等。這些信息類型(例如,信息單元)可以被表示為復(fù)雜類型的實(shí)例,這些復(fù)雜類型是支持繼承的類型系統(tǒng)的一部分,其中繼承允許對(duì)象從其他對(duì)象繼承屬性和/或行為。應(yīng)該明白,繼承可以被認(rèn)為是分層結(jié)構(gòu)和/或格式。
在參考標(biāo)號(hào)902,可以接收數(shù)據(jù),其中數(shù)據(jù)可以包括類型、準(zhǔn)則、模式、查詢準(zhǔn)則……。在參考標(biāo)號(hào)904,可以存儲(chǔ)類型實(shí)例以便映射到數(shù)據(jù)模型(例如,文件存儲(chǔ)數(shù)據(jù)模型)。例如,該模型能將模式中所描述的類型映射到用戶定義的類型和數(shù)據(jù)庫(kù)對(duì)象。存儲(chǔ)器映射可以描述基于模式定義所創(chuàng)建的數(shù)據(jù)庫(kù)對(duì)象,以及模式中所描述的類型實(shí)例如何被存儲(chǔ)和/或訪問。在一個(gè)例子中,可以設(shè)計(jì)數(shù)據(jù)庫(kù)結(jié)構(gòu)以使得可以提供類型實(shí)例以及將類型聲明映射到數(shù)據(jù)庫(kù)對(duì)象中的規(guī)則。
在參考標(biāo)號(hào)906,可以調(diào)用滿足至少一個(gè)準(zhǔn)則的查詢以便高效地且有效地查找項(xiàng)目、文檔和聯(lián)系人。例如,存儲(chǔ)與諸信息類型有關(guān)的類型實(shí)例可以利用該查詢來提供以下的至少其中之一1)查找文件存儲(chǔ)數(shù)據(jù)模型102中滿足特定準(zhǔn)則的至少一個(gè)項(xiàng)目;2)查找文件存儲(chǔ)數(shù)據(jù)模型102中滿足特定準(zhǔn)則的至少一個(gè)文檔;以及3)查找滿足特定準(zhǔn)則的至少一個(gè)聯(lián)系人(例如,包括個(gè)人、組織和群)。
圖10示出便于存儲(chǔ)類型實(shí)例和/或提供查詢的方法1000。在參考標(biāo)號(hào)1002,獲得和/或接收數(shù)據(jù)。該數(shù)據(jù)可以包括類型、準(zhǔn)則、模式、查詢準(zhǔn)則等等。在1004,可以利用數(shù)據(jù)庫(kù)引擎來提供用于存儲(chǔ)類型實(shí)例和/用于查詢的至少一個(gè)機(jī)制。例如,可以利用關(guān)系型數(shù)據(jù)庫(kù)引擎來提供關(guān)系型存儲(chǔ)和關(guān)系型查詢性能。該關(guān)系型數(shù)據(jù)庫(kù)引擎可以利用被組織為一組規(guī)范描述的表的數(shù)據(jù)項(xiàng)目的集合。表中的數(shù)據(jù)不需要重新組織數(shù)據(jù)庫(kù)表就能以各種方式訪問和/或重新匯編。此外,關(guān)系型數(shù)據(jù)庫(kù)可被容易地?cái)U(kuò)展,如增加新的類別而無(wú)須修改現(xiàn)有的應(yīng)用程序和/或數(shù)據(jù)。
在參考標(biāo)號(hào)1006,存儲(chǔ)類型實(shí)例以便映射到數(shù)據(jù)模型,其中該數(shù)據(jù)模型可以是文件存儲(chǔ)系統(tǒng)。存儲(chǔ)器映射描述基于模式所創(chuàng)建的數(shù)據(jù)庫(kù)對(duì)象以及模式中所描述的類型實(shí)例如何被存儲(chǔ)和/或訪問。映射可以是模式中所描述的類型,其中這樣的映射是映射到用戶定義的類型和數(shù)據(jù)庫(kù)對(duì)象。在參考標(biāo)號(hào)1008,可以提供查詢以便查找項(xiàng)目、文件和聯(lián)系人的至少其中之一。該查詢可以被用來至少部分地基于準(zhǔn)則來搜索。而且,在參考標(biāo)號(hào)1010,可以使用視圖來展示類型的實(shí)例。例如,該類型系統(tǒng)可以是分層結(jié)構(gòu)的,其中可以創(chuàng)建視圖來展示任何特定的類型實(shí)例。換言之,由于分層結(jié)構(gòu),該視圖與一給定類型相關(guān)聯(lián),其中該視圖投影與其基本類型相關(guān)聯(lián)的視圖的特定類型的一個(gè)子集。
為了提供用于實(shí)現(xiàn)本發(fā)明各方面的附加的環(huán)境,圖11-12以及下面的討論提供可以在其中實(shí)現(xiàn)本發(fā)明各方面的合適計(jì)算環(huán)境的簡(jiǎn)要概括描述。盡管前面已經(jīng)在運(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)。一般地,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對(duì)象、數(shù)據(jù)結(jié)構(gòu)等等。
而且,本領(lǐng)域內(nèi)的技術(shù)人員將會(huì)明白,本發(fā)明的方法可以與其他計(jì)算機(jī)系統(tǒng)配置一起實(shí)施,這些其他計(jì)算機(jī)系統(tǒng)配置包括單處理器或多處理器計(jì)算機(jī)系統(tǒng)、小型計(jì)算機(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í)施,在分布式計(jì)算環(huán)境中,特定任務(wù)由通過通信網(wǎng)絡(luò)連接的遠(yuǎn)程處理設(shè)備執(zhí)行。然而,本發(fā)明一些方面(如果不是全部方面)可以在獨(dú)立計(jì)算機(jī)上實(shí)施。在分布式計(jì)算環(huán)境中,程序模塊可以置于本地和/或遠(yuǎn)程的存儲(chǔ)器設(shè)備。
圖11是可以與本發(fā)明交互的示例計(jì)算環(huán)境1100的示意性框圖。系統(tǒng)1100包括一個(gè)或多個(gè)客戶機(jī)1110。客戶機(jī)1110可以是硬件和/或軟件(例如,線程、進(jìn)程、計(jì)算設(shè)備)。系統(tǒng)1100也包括一個(gè)或多個(gè)服務(wù)器1120。服務(wù)器1120可以是硬件和/或軟件(例如,線程、進(jìn)程、計(jì)算設(shè)備)。服務(wù)器1120可以主存線程用于例如通過使用本發(fā)明來執(zhí)行轉(zhuǎn)換。
在客戶機(jī)1110和服務(wù)器1120之間的一種可能的通信能夠以適合在兩個(gè)或多個(gè)計(jì)算機(jī)進(jìn)程之間傳輸?shù)臄?shù)據(jù)包形式進(jìn)行。系統(tǒng)1100包括可以用來幫助客戶即1140和服務(wù)器1110之間通信的通信框架1120??蛻魴C(jī)1110可在操作上耦合到一個(gè)或多個(gè)可以用來存儲(chǔ)客戶機(jī)1110的本地信息的客戶機(jī)存儲(chǔ)1150。同樣地,服務(wù)器1120可在操作上耦合到一個(gè)或多個(gè)可以用來存儲(chǔ)服務(wù)器1140的本地信息的服務(wù)器存儲(chǔ)1130。
參照?qǐng)D12,實(shí)施本發(fā)明的各個(gè)方面的示例性系統(tǒng)包括計(jì)算機(jī)1212。計(jì)算機(jī)1212包括處理單元1214、系統(tǒng)存儲(chǔ)器1216和系統(tǒng)總線1218。系統(tǒng)總線1218將包括但不限于系統(tǒng)存儲(chǔ)器1216在內(nèi)的系統(tǒng)組件耦合到處理單元1214。處理單元1214可以是各種可用處理器中的任意幾種。雙微處理機(jī)和其他多處理器結(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)(MCA)、增強(qiáng)型ISA(EISA)、智能驅(qū)動(dòng)器電路(IDE)、VESA局部總線(VLB)、外圍組件互連(PCI)、插件總線、通用串行總線(USB)、加速圖形接口(AGP)、個(gè)人計(jì)算機(jī)存儲(chǔ)卡國(guó)際協(xié)會(huì)總線(PCMCIA)、火線(IEEE 1394)以及小型計(jì)算機(jī)系統(tǒng)接口(SCSI)。
系統(tǒng)存儲(chǔ)器1216包括易失性存儲(chǔ)器1220和非易失性存儲(chǔ)器1222?;据斎?輸出系統(tǒng)(BIOS)1226存儲(chǔ)在非易失性存儲(chǔ)器1222中,它包含比如在啟動(dòng)過程中幫助在計(jì)算機(jī)1212內(nèi)的元件之間傳輸信息的基本例程。作為例示而非限制,非易失性存儲(chǔ)器1222可以包括只讀存儲(chǔ)器(ROM)、可編程只讀存儲(chǔ)器(PROM)、電可編程只讀存儲(chǔ)器(EPROM)、電可擦寫可編程只讀存儲(chǔ)器(EEPROM)或閃存。易失性存儲(chǔ)器1220包括擔(dān)任外部高速緩沖存儲(chǔ)的隨機(jī)存取存儲(chǔ)器(ROM)。作為例示而非限制,RAM以許多形式獲得,例如靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)、動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)、同步DRAM(SDRAM)、雙倍數(shù)據(jù)速率SDRAM(DDR SDRAM)、增強(qiáng)型SDRAM(ESDRAM)、同步鏈路DRAM(SLDRAM)、Rambus直接隨機(jī)存儲(chǔ)器(RDRAM)、直接Rambus動(dòng)態(tài)隨機(jī)存儲(chǔ)器(DRDRAM)以及Rambus動(dòng)態(tài)隨機(jī)存儲(chǔ)器(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ì),包括但不限于光盤驅(qū)動(dòng)器,如只讀光盤設(shè)備(CD-ROM)、可記錄CD驅(qū)動(dòng)器(CD-R驅(qū)動(dòng)器)、可重復(fù)刻錄CD驅(qū)動(dòng)器(CD-RW驅(qū)動(dòng)器)或只讀數(shù)字多功能盤驅(qū)動(dòng)器(DVD-ROM)。為了便于將磁盤存儲(chǔ)設(shè)備1224連接到系統(tǒng)總線1218,通常使用可移動(dòng)或不可移動(dòng)的接口,如接口1226。
應(yīng)該明白,圖12描述擔(dān)當(dāng)在用戶和在適當(dāng)?shù)牟僮鳝h(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的資源管理。應(yīng)該明白,本發(fā)明可以與各種操作系統(tǒng)或操作系統(tǒng)的組合一起實(shí)現(xiàn)。
用戶通過輸入設(shè)備1236將命令或信息輸入到計(jì)算機(jī)1212中。輸入設(shè)備1236包括但不限于,如鼠標(biāo)、跟蹤球、指示筆、觸摸板等定位設(shè)備、鍵盤、話筒、操縱桿、游戲墊、圓盤式衛(wèi)星天線、掃描儀、電視調(diào)諧器、數(shù)碼相機(jī)、數(shù)碼攝像機(jī)、網(wǎng)絡(luò)攝像頭等等。這些和其他的輸入設(shè)備經(jīng)由接口端口1238通過系統(tǒng)總線1218連接到處理單元1214。接口端口1238包括,例如,串行端口、并行端口、游戲端口和通用串行總線(USB)。輸出設(shè)備1240使用一些與輸入設(shè)備1236相同類型的端口。因此,例如,USB端口可以用來提供到計(jì)算機(jī)1212的輸入,以及從計(jì)算機(jī)1212到輸出設(shè)備1240的輸出信息。提供輸出適配器1242,以示出在其他輸出設(shè)備1240中有某些輸出設(shè)備1240,如監(jiān)視器、揚(yáng)聲器和打印機(jī)需要特殊的適配器。輸出適配器1242包括,作為例示而非限制,提供輸出設(shè)備1240和系統(tǒng)總線1218之間的連接手段的顯卡和聲卡。應(yīng)該注意,其他設(shè)備和/或系統(tǒng)設(shè)備信息也提供輸入和輸出性能,如遠(yuǎn)程計(jì)算機(jī)1244。
計(jì)算機(jī)1212可以使用到一個(gè)或多個(gè)遠(yuǎn)程計(jì)算機(jī),如遠(yuǎn)程計(jì)算設(shè)備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)單起見,只與遠(yuǎn)程計(jì)算機(jī)1244一起示出存儲(chǔ)器存儲(chǔ)設(shè)備1246。遠(yuǎn)程計(jì)算機(jī)1244在邏輯上通過網(wǎng)絡(luò)接口1248被連接到計(jì)算機(jī)1212,然后在物理上經(jīng)由通信連接1250被連接。網(wǎng)絡(luò)接口1248包括有線和/或無(wú)線通信網(wǎng)絡(luò),如局域網(wǎng)(LAN)和廣域網(wǎng)(WAN)。LAN包括光纖分布式數(shù)據(jù)接口(FDDI)、銅纜分布式數(shù)據(jù)接口(FDDI)、以太網(wǎng)、令牌環(huán)等等。WAN技術(shù)包括但不限于,點(diǎn)對(duì)點(diǎn)鏈路、如綜合業(yè)務(wù)數(shù)字網(wǎng)(ISDN)及其變種等電路交換網(wǎng)、分組交換網(wǎng)和數(shù)字用戶線(DSL)。
通信連接1250是指用于將網(wǎng)絡(luò)接口1248連接到總線1218的硬件/軟件。盡管為了清楚例示而示出通信連接1250在計(jì)算機(jī)1212內(nèi)部,但它也可以在計(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)器、ISDN適配器器的調(diào)制解調(diào)器和以太網(wǎng)卡。
上面已經(jīng)描述的內(nèi)容包括本發(fā)明的例子。當(dāng)然,不可能為了描述本發(fā)明而描述組件或方法的每一個(gè)可以想到的組合,但本領(lǐng)域內(nèi)的普通技術(shù)人員應(yīng)該認(rèn)識(shí)到,本發(fā)明的許多進(jìn)一步的組合和排列都是可能的。因此,本發(fā)明包括所有這些落入所附權(quán)利要求書的精神和范圍內(nèi)的改變、修改和變動(dòng)。
尤其關(guān)于由上面所描述的組件、設(shè)備、電路、系統(tǒng)等等所執(zhí)行的各種功能,除非另外指出,否則用于描述這些組件的術(shù)語(yǔ)(包括對(duì)“裝置”的引用)旨在對(duì)應(yīng)于執(zhí)行所描述組件(例如,功能等效)的指定功能的任何組件,即使在結(jié)構(gòu)上不等同于所公開的、執(zhí)行在此所示的本發(fā)明示例性方面的功能的結(jié)構(gòu)。在這方面,也應(yīng)該認(rèn)識(shí)到,本發(fā)明包括系統(tǒng)和計(jì)算機(jī)可讀介質(zhì),該計(jì)算機(jī)可讀介質(zhì)具有用于執(zhí)行本發(fā)明各種方法的動(dòng)作和/或事件的計(jì)算機(jī)可執(zhí)行指令。
另外,盡管只參考若干實(shí)現(xiàn)中的一種公開本發(fā)明的具體特征,但在需要及有利于任何給定或特定應(yīng)用時(shí),這樣的特征可以和其他實(shí)現(xiàn)的一種或多種特征結(jié)合。此外,在具體實(shí)施方式
或權(quán)利要求書中使用術(shù)語(yǔ)“包含”的意義上,這樣的術(shù)語(yǔ)是指以類似于術(shù)語(yǔ)“包括”的方式為包括性的。
權(quán)利要求
1.一種便于映射數(shù)據(jù)模型的系統(tǒng),包括用于定義映射模式的文件存儲(chǔ)數(shù)據(jù)模型;以及類型存儲(chǔ)組件,它基于所述相關(guān)聯(lián)的映射模式將模式對(duì)象映射到數(shù)據(jù)庫(kù)對(duì)象,其中存儲(chǔ)所述映射模式中的類型的實(shí)例。
2.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述類型的實(shí)例是以下的至少其中之一文檔;圖像;音樂;視頻;聯(lián)系人;消息;個(gè)人;組織;電子郵件;傳真;語(yǔ)音;以及音頻剪輯。
3.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述類型存儲(chǔ)組件還提供查詢以便查找以下的至少其中之一所述系統(tǒng)中滿足相應(yīng)準(zhǔn)則的至少一個(gè)項(xiàng)目;所述系統(tǒng)中滿足相應(yīng)準(zhǔn)則的至少一個(gè)文檔;以及滿足相應(yīng)準(zhǔn)則的至少一個(gè)聯(lián)系人。
4.如權(quán)利要求3所述的系統(tǒng),其特征在于,所述聯(lián)系人可以包括以下的至少其中之一個(gè)人;組織;以及群。
5.如權(quán)利要求1所述的系統(tǒng),其特征在于,還包括利用關(guān)系型存儲(chǔ)和關(guān)系型查詢性能的至少其中之一的關(guān)系組件。
6.如權(quán)利要求5所述的系統(tǒng),其特征在于,所述關(guān)系型組件利用關(guān)系型數(shù)據(jù)庫(kù)技術(shù),所述關(guān)系型數(shù)據(jù)庫(kù)技術(shù)是被組織為一組規(guī)范描述的表的數(shù)據(jù)項(xiàng)目的集合,其中數(shù)據(jù)是以下的至少其中之一不需要重新組織就可以訪問,以及不需要重新組織就可以重新匯編。
7.如權(quán)利要求5所述的系統(tǒng),其特征在于,所述映射描述以下的至少其中之一基于所述模式創(chuàng)建的數(shù)據(jù)庫(kù)對(duì)象,以及所述模式中描述的類型的實(shí)例如何被存儲(chǔ)和訪問。
8.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述模式中的類型映射到所述文件存儲(chǔ)數(shù)據(jù)模型的存儲(chǔ)中的公共語(yǔ)言運(yùn)行庫(kù)(CLR)類。
9.如權(quán)利要求8所述的系統(tǒng),其特征在于,所述類型是以下的至少其中之一項(xiàng)目;項(xiàng)目擴(kuò)展;項(xiàng)目片段;以及鏈接。
10.如權(quán)利要求1所述的系統(tǒng),其特征在于,還包括具有以下的至少其中之一的表1)包含相應(yīng)類型的至少一個(gè)實(shí)例的列;以及2)包含表示所述類型實(shí)例的CLR類實(shí)例的串行化表示的行。
11.如權(quán)利要求1所述的系統(tǒng),其特征在于,還包括創(chuàng)建展示所述類型的至少一個(gè)實(shí)例的視圖的視圖組件,其中所述視圖投影與基本類型相關(guān)聯(lián)的視圖的相應(yīng)類型的一個(gè)子集。
12.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述類型包括以下的至少其中之一類型層次和繼承。
13.一種存儲(chǔ)有如權(quán)利要求1所述的系統(tǒng)的組件的計(jì)算機(jī)可讀介質(zhì)。
14.一種便于映射數(shù)據(jù)模型的計(jì)算機(jī)實(shí)現(xiàn)的方法,包括獲得文件存儲(chǔ)數(shù)據(jù)模型;接收模式、類型、準(zhǔn)則和查詢信息的至少其中之一;基于與所述文件存儲(chǔ)數(shù)據(jù)模型相關(guān)聯(lián)的模式將模式對(duì)象映射到數(shù)據(jù)庫(kù)對(duì)象;以及存儲(chǔ)來自所述模式的類型的實(shí)例。
15.如權(quán)利要求14所述的方法,其特征在于,還包括查詢以便查找以下的至少其中之一所述系統(tǒng)中滿足相應(yīng)準(zhǔn)則的至少一個(gè)項(xiàng)目;所述系統(tǒng)中滿足相應(yīng)準(zhǔn)則的至少一個(gè)文檔;以及滿足相應(yīng)準(zhǔn)則的至少一個(gè)聯(lián)系人。
16.如權(quán)利要求14所述的方法,其特征在于,還包括利用關(guān)系型數(shù)據(jù)庫(kù)引擎提供關(guān)系型存儲(chǔ)和關(guān)系型查詢性能。
17.如權(quán)利要求14所述的方法,其特征在于,還包括創(chuàng)建展示所述類型的至少一個(gè)實(shí)例的視圖,其中所述視圖投影與基本類型相關(guān)聯(lián)的視圖的相應(yīng)類型的一個(gè)子集。
18.一種在文件存儲(chǔ)數(shù)據(jù)模型和類型存儲(chǔ)組件之間通信的數(shù)據(jù)包,所述數(shù)據(jù)包促進(jìn)如權(quán)利要求14所述的方法。
19.一種便于映射數(shù)據(jù)模型的計(jì)算機(jī)實(shí)現(xiàn)的系統(tǒng),包括用于接收以下的至少其中之一的裝置模式、類型、準(zhǔn)則和查詢準(zhǔn)則;以及用于基于與文件存儲(chǔ)數(shù)據(jù)模型相關(guān)聯(lián)的模式將模式對(duì)象映射到數(shù)據(jù)庫(kù)對(duì)象的裝置,其中存儲(chǔ)所述模式的類型的實(shí)例。
20.如權(quán)利要求11所述的系統(tǒng),所述視圖組件調(diào)用用戶界面以便在用戶和所述類型存儲(chǔ)組件之間交互。
全文摘要
本發(fā)明提供便于數(shù)據(jù)庫(kù)模型映射到數(shù)據(jù)庫(kù)對(duì)象的系統(tǒng)和/或方法。類型存儲(chǔ)系統(tǒng)可以利用文件存儲(chǔ)數(shù)據(jù)模型的存儲(chǔ)映射。該映射可以描述至少部分地基于模式所創(chuàng)建的數(shù)據(jù)庫(kù)對(duì)象以及該模式中所描述的類型實(shí)例如何被存儲(chǔ)和/或訪問。此外,可以提供查詢以便查找滿足至少一個(gè)準(zhǔn)則的項(xiàng)目、文檔和/或聯(lián)系人的至少其中之一。該類型存儲(chǔ)系統(tǒng)可以經(jīng)由接口接收數(shù)據(jù)以提供存儲(chǔ)和查詢,其中數(shù)據(jù)是模式、數(shù)據(jù)模型、類型、查詢和查詢準(zhǔn)則的至少其中之一。另外,該類型存儲(chǔ)系統(tǒng)可以創(chuàng)建展示類型的至少一個(gè)實(shí)例的視圖。
文檔編號(hào)G06F17/30GK1841379SQ20061005156
公開日2006年10月4日 申請(qǐng)日期2006年2月28日 優(yōu)先權(quán)日2005年3月28日
發(fā)明者A·舒克拉, A·K·諾里, B·德米羅司基, G·S·弗雷德曼, J·T·亨特, J·T·皮爾斯, M·J·紐曼, N·R·艾利斯, S·P·阿查里雅 申請(qǐng)人:微軟公司