結構化的數據存儲的製作方法
2023-09-16 15:45:25 2
專利名稱:結構化的數據存儲的製作方法
結構化的數據存儲
背景
計算機系統通常包括短期存儲器和長期存儲器。短期存儲器通常使用動態
RAM,它通常提供對存儲在RAM內數據的快速訪問。諸如由硬碟提供的長期 存儲器,提供對存儲數據的相對較慢的訪問,但是正常情況下即使在斷電之後 仍能保有數據。因此,計算機使用存儲在短期存儲器內的數據來操控和處理數 據,而在數據未被處理時使用長期存儲器存儲數據。
用戶(包括各個計算機過程)通常在處理完程序和數據後將數據保存在磁 盤內。同樣地,用戶還將存儲的數據從磁碟載入短期存儲器使得數據能夠被查 看和/或操控。然而,隨著數據量變得愈加龐大和複雜,這次操作可能會要求大 量的時間來進行保存和裝載。
發明內容
提供本概述來引入簡化形式的一組概念,這些概念將在詳細描述部分中進 一步描述。本概述並不旨在標識所聲明主題的關鍵特徵或本質特徵,也不是旨 在用於輔助確定所聲明主題的範圍。
根據所述實施例的各個方面,提供一種用於實現結構化的數據存儲的方法 的實現。後端數據是通常對用戶努力完成的任務頗為重要的"核心"或"骨幹" 信息。後端數據可以從諸如硬碟或其他長期數據存儲的電腦程式產品中接 收。後端數據是使用與諸如GUID的唯一標識符相關聯的節點而結構化的。節 點可使用唯一標識符來尋址,並且後端數據項與相應的可尋址節點相關聯,使 得後端節點能夠被快速訪問。前端數據通常與如何獲得、使用和呈現後端數據 更為相關。前端數據可以從諸如硬碟或其他長期數據存儲的電腦程式產品中 接收。前端數據是使用與諸如GUID的唯一標識符相關聯的節點而結構化的。 節點可使用唯一標識符來尋址,並且前端數據項與相應的可尋址節點相關聯, 使得前端節點能夠被快速訪問。
根據另一方面, 一種實現結構化的數據存儲的系統包括文件編寫器,用
以將來自電腦程式的後端數據保存到電腦程式產品內;後端數據裝載器,
用以接收來自電腦程式產品的後端數據;前端數據裝載器,用以接收來自計 算機程序產品的前端數據;以及顯示模塊,響應於所接收到的用於顯示特定後 端數據項的前端數據來顯示該特定數據項。
參考附圖描述了非限制性和非詳盡的實施例,其中除非另外指定,否則在 各個視圖中類似的參考編號指示類似的部分。
圖1示出了可根據一實施例使用的示例性計算設備;
圖2示出了用於結構化的數據存儲的一個示例性數據存儲格式;以及
圖3示出了用於結構化的數據存儲的一個實例操作流程300。
具體實施例方式
以下將結合作為本發明一部分並示出用於實踐本發明的特定實施例的附 圖來更詳盡地描述各個實施例。然而各實施例被實現為許多不同的形式並且不 應將其解釋為被限制在此處描述的實施例;相反地,提供這些實施例以使得本
公開變得透徹和完整,並且將本發明的範圍完全傳達給本領域普通技術人員。 這些實施例可被實踐為方法、系統或設備。因此,這些實施例可採用硬體實現 形式、整個的軟體實現形式或者結合軟體和硬體方面的實現形式。因此,以下 詳細描述並非是局限性的。
這種實施例可被實現為計算機進程、計算機系統(包括移動手持式計算設 備)或者諸如電腦程式產品這樣的製品。電腦程式產品可以是計算機系統 可讀並且編碼指令電腦程式以執行計算機進程的計算機存儲介質。計算機程 序產品也可以是計算系統可讀的且對指令電腦程式進行編碼以執行計算機 過程的載波傳播信號。
不同實施例的邏輯操作被實現為(l)在計算系統上運行的計算機實現的步 驟的序列和/或(2)計算系統內部的互連機器模塊。具體實現的選擇取決於實現 實施例的計算系統的性能需求。因此,在此描述的組成這些實施例的邏輯操作 另外還可被稱為操作、步驟或模塊。
圖1示出了可根據一個示例性實施例使用的示例性計算設備。用於實現本
發明的示例性系統包括計算設備,諸如計算設備100。計算設備100可被配置
為客戶機、伺服器、行動裝置、或者是能夠在基於網絡的協作系統中與數據進
行交互的任何其他計算設備。在一個非常基本的配置中,計算設備1oo通常包
括至少一個處理單元102和系統存儲器104。取決於計算設備的確切配置和類 型,系統存儲器104可以是易失性的(諸如RAM)、非易失性的(諸如ROM、 快閃記憶體等)或是兩者的某種組合。系統存儲器104通常包括作業系統105、 一個 或多個應用程式106,並且可以包括程序數據107。根據該實施例,如下將詳 述的伺服器排隊系統108通常在應用程式106中實現。
計算設備100也可具有其它特徵或功能。例如,計算設備100也可含有附
加的數據存儲設備(可移動和/或不可移動),諸如磁碟、光碟或磁帶。這樣的 額外存儲在圖1中由可移動存儲109和不可移動存儲110示出。計算機存儲介 質可包括易失性和非易失性、可移動和不可移動介質,它們以用於存儲諸如計 算機可讀指令、數據結構、程序模塊或其它數據這樣的信息的任意方法或技術 來實現。系統存儲器104、可移動存儲109和不可移動存儲IIO都是計算機存 儲介質的示例。計算機存儲介質包括,但不限於,RAM、 ROM、 EEPROM、 快閃記憶體或其它存儲器技術、CD-ROM、數字多功能盤(DVD)或其它光存儲、磁 帶盒、磁帶、磁碟存儲或其它磁性存儲設備、或能用於存儲所需信息且可以由 計算設備IOO使用文件編寫器和裝載器訪問的任何其它介質。任何這樣的計算
'機存儲介質都可以是設備100的一部分。計算設備100也可以具有諸如鍵盤、 滑鼠、筆、語音輸入設備、觸摸輸入設備等輸入設備112。也可以包括諸如顯 示器、揚聲器、印表機等的輸出設備114。
計算設備100也可以包括使設備能夠諸如通過網絡來與其他計算設備118 通信的通信連接116。網絡包括區域網和廣域網,以及其他大範圍網絡。包括 但不限於內聯網和外聯網。通信連接116是通信介質的一個示例。通信介質通 常可具體化為諸如載波或其它傳輸機制等已調製數據信號中的計算機可讀指 令、數據結構、程序模塊或其它數據,並且包括任何信息傳遞介質。術語"已 調製數據信號"是指以在該信號中編碼信息的方式來設置或改變其一個或多個 特性的信號。作為示例,而非限制,通信介質包括有線介質,諸如有線網絡或
直接線連接,以及無線介質,諸如聲學、RF、紅外線和其它無線介質。如此處 所用的術語計算機可讀介質既包括存儲介質又包括通信介質。
圖2示出了用於結構化的數據存儲的一個示例性數據存儲格式。窗口 200 包括在結構化的數據存儲中使用的示例性文件結構。節點210是根節點,通常 包括樹狀結構中的下級節點。例如,節點210包括節點220 (用於存儲"後端" 數據)和節點250 (用於存儲"前端"數據)。額外的下級(或"子")節點
可用於存儲與上級(或"父")節點相關的屬性和其他信息。
每個節點通常與允許對該結點進行唯一地指定和尋址的GUID (例如,唯 一標識符)相關聯。作為一個示例,用於一節點的GUID可以被"散列"來為 唯一密鑰提供地址,從而能夠快速定位該節點的物理地址。子節點可以通過將 任何子節點GUID與父節點相關聯(使得所得的結構例如可以通過跟隨相關聯 的連結而被遍歷)來與父節點相關。節點可以包含用於訪問固定長度和可變長 度結構內元素的信息。因此,所得結構可以被快速訪問以實現有效的數據搜索 和裝載。
向磁碟保存信息和從其檢索信息通常很耗時,至少對時常需要等待信息裝 載的用戶而言很不方便。以結構化的格式存儲數據使數據能夠被程序有效地接 收並且相對快捷地呈現給通過程序界面請求數據的用戶。
如窗口 200中所示,由一應用程式用戶操控的數據被組織成後端數據和前 端數據。該應用程式可以是諸如項目管理工具的程序。由此,用戶可以通過使 用後端數據和前端數據兩者來管理項目,而這些數據通常由用戶輸入,通過使 用該程序來操控和組織,並被存儲在磁碟上以供後續檢索。數據被結構化以使 得訪問該數據的程序通常首先裝載後端信息,隨後裝載前端信息(通常用於與 後端數據相接口)。
後端數據(諸如由節點250所表示的)是通常對用戶努力完成的任務頗為 重要的"核心"或"骨幹"信息。(相比而言,如下討論,前端數據通常與如 何獲得、使用和呈現後端數據更為相關。)例如,項目管理程序的後端數據包 括諸如任務名、資源日程表、分配、查找表、約束等的信息(通常作為父節點 220的子節點222存儲)。
任務名可以包括與一項目相關聯的任務的名稱(或編號)。資源可以包括
與該任務相關聯的人(或其他資源)。日程表可用於指定任務的日期和/或時間, 分配可用於將資源與任務相關聯。査找表可用於存儲例如與完成任務相關的試 探性或其他類型的經組織的知識。約束可用於限制例如某些資源何時可用。
節點224的內容(與"任務"相關)已被展開以示出深一層的子節點。子 ;節點可用於表示給定屬性的固定數據、表索引、實際數據(諸如,任務名)、 基於GUID的散列位置、以及對數據的索引(來自散列的位置或其他索引)。 GUID散列和對後端數據的子節點的索引兩者都可被預先計算並且隨後被存 儲,使得預先計算的散列和索引能夠被用作由程序裝載的數據(而無需實質上 的計算,諸如計算GUID的散列函數)。 > 前端數據(諸如由節點250所表示的)通常與如何獲得、使用和呈現後端
數據更為相關。例如,由項目管理程序使用的前端數據信息包括諸如外部數據 連結、導入/導出映射信息、表單、宏語言程序、前端表格、視圖、以及過濾器、 項目報告、組、工具欄、定製欄位信息之類的信息(通常作為父節點250的子 節點252存儲)。
; 例如,外部數據連結、導入映射信息(例如,來自電子數據表)和表單可
用於獲取後端數據。宏語言程序、過濾器、和組可用於操控所獲得的後端數據。 表單、表格、過濾器、項目報告、組、工具欄、以及自定製欄位信息可用於控
制如何顯示後端數據。(可以實現上述功能的組合,諸如通過過濾來操控和顯 示數據。)
I 可以在節點254內存儲各種視圖(例如,用於顯示後端數據的前端信息)。
可以在節點256中存儲哪些視圖可見(例如,在程序關閉時)。存儲在節點254 和256中的信息由程序用來確定哪一視圖是最近使用的,使得程序能夠快速搜 索並定位由用戶最近使用的特定後端數據。於是程序就能夠快速恢復該視圖, 因為(例如)後端數據已經被載入存儲器,並且GUID的相關散列和相關索引
;已經被預先計算以供快速引用。
圖3示出了用於結構化的數據存儲的一個實例操作流程300。在操作302, 接收後端數據。後端數據可以從諸如硬碟或其他長期數據存儲的電腦程式產 品中接收。後端數據通過使用與諸如GUID的唯一標識符相關聯的節點來結構 化。節點可通過使用唯一標識符來尋址,並且後端數據項與相應的可尋址節點
相關聯,使得後端節點能夠被快速訪問。
後端數據項可以通過使用針對該數據項的預先計算的散列值來定位。預先 計算的散列值可以用其他後端數據來定位。另外,後端數據項可以通過使用針 對該數據項的預先計算和預先確定的索引來定位。預先計算的索引可以用其他 ;後端數據來定位。
在操作304,接收前端數據。前端數據可以從電腦程式產品中接收並且
通常關聯於後端數據而被存儲。後端數據和前端數據也可以是兄弟節點。前端
數據通過使用與諸如GUID的唯一標識符相關聯的節點來結構化。節點可通過
使用唯一標識符來尋址,並且前端數據項與相應的可尋址節點相關聯,使得前 I端節點能夠被快速訪問。
前端數據還包括用於顯示接收到的後端數據的特定後端數據項的信息。顯
示信息可以包括諸如與最近一次用戶所查看的特定後端數據項的視圖有關的
顯示信息之類的信息。
前端數據項可以通過使用針對該數據項的預先計算的散列來定位。預先計 :算的散列可以用其他後端數據來定位。另外,前端數據項可以通過使用針對該
數據項的預先計算和預先確定的索引來定位。預先計算的索引可以用其他前端
數據來定位。
在操作306,使用來自前端數據的信息來顯示後端數據。 一般而言,前端 信息描述後端信息能夠如何被顯示。例如,前端信息可以存儲與用戶最近查看 '的後端數據視圖相關的信息。同樣地,在各實施例中,可以在全部前端數據裝 載之前顯示後端數據。另外,前端數據的接收次序可通過試探來設置,諸如"按 最近査看的次序裝載"以及"裝載可由最後一次保存的視圖所導航到的前端數 據"。
本說明書通篇引述的"一個實施例"、"一實施例"或"一示例性實施例" ;意指特定的說明特徵、結構或特性是涵蓋在本發明至少一個實施例中的。於是, 這樣短語的使用可引用到不止一個實施例中。進一步,在一個或多個實施例中, 所述特徵、結構或特性能以任何合適的方式組合。
然而,本領域熟練的技術人員會認識到本發明也可不用一個或多個特定細 節,或者採用其它方法、資源、材料等來實現。僅僅為了避免模糊本發明的方
面,這裡未示出和詳述其它情況下我們熟知的結構、資源或操作。
雖然已經示出並描述了本發明的示例性實施例和應用形式,但是應當認識 到本發明不局限於上述的精確配置和資源。對本領域的技術人員顯而易見的是 可以對在此公開的本方面的方法和系統的安排、操作以及細節作出各種修改、 改變和變更,而不背離所作權利要求的發明的範圍。
權利要求
1.一種用於接收結構化數據的計算機實現的方法,包括從電腦程式產品接收後端數據,其中所述後端數據是用節點來結構化的,其中所述節點與唯一標識符相關聯並且所述節點可用所述唯一標識符來尋址,並且其中特定的後端數據項與相應的可尋址節點相關聯;從電腦程式產品接收前端數據;其中所述前端數據是用節點來結構化的,其中所述節點與唯一標識符相關聯並且所述節點可用所述唯一標識符來尋址,並且其中所述前端數據包括用於顯示所接收到的後端數據的特定後端數據項的信息;以及響應於所接收到的用於顯示所述特定後端數據項的前端數據,顯示所述特定數據項。
2. 如權利要求1所述的方法,其特徵在於,所接收到的用於顯示所述特 定後端數據項的前端數據用唯一標識符來尋址,所述唯一標識符與所接收到的 用於顯示所述特定後端數據項的前端數據相關聯。
3. 如權利要求1所述的方法,其特徵在於,所顯示的特定後端數據項用 針對所述數據項的預先計算的散列來定位,其中所述預先計算的散列定位在所 接收到的後端數據內。
4. 如權利要求1所述的方法,其特徵在於,所接收到的特定後端數據項 可用預先計算的散列函數結果來尋址,其中所述預先計算的散列函數結果被存 儲在所接收到的後端數據內。
5. 如權利要求1所述的方法,其特徵在於,所接收到的特定後端數據項 可用預先計算的索引來尋址,其中所述預先計算的索引被存儲在所接收到的後 端數據內。
6. 如權利要求1所述的方法,其特徵在於,所述後端數據在所述前端數 據被接收之前被接收。
7. 如權利要求1所述的方法,其特徵在於,所述用於顯示特定後端信息 項的信息包括與最後一次使用的後端信息視圖相關的信息。
8. —種用於接收結構化數據的系統,包括 文件編寫器,用以將來自電腦程式的後端數據和前端數據保存到計算機 程序產品內;其中所述後端數據是用節點來結構化的,其中所述節點與唯一標識符相關聯並且所述節點可用所述唯一標識符來尋址,並且其中特定的後端數據項與相應的可尋址節點相關聯;其中所述前端數據是用節點來結構化的,其 ;中所述節點與唯一標識符相關聯並且所述節點可用所述唯一標識符來尋址,並 且其中所述前端數據包括用於顯示所接收到的後端數據的特定後端數據項的 f曰息;後端數據裝載器,用以接收來自電腦程式產品的後端數據; 前端數據裝載器,用以接收來自電腦程式產品的前端數據;以及 > 顯示模塊,響應於所接收到的用於顯示所述特定後端數據項的前端數據來顯示所述特定數據項。
9.如權利要求8所述的系統,其特徵在於,所接收到的用於顯示所述特定後端數據項的前端數據用唯一標識符來尋址,所述唯一標識符與所接收到的用於顯示所述特定後端數據項的前端數據相關聯。 ;
10.如權利要求8所述的系統,其特徵在於,所顯示的特定後端數據項通過使用針對所述數據項的預先計算的散列來定位,其中所述預先計算的散列定位在所接收到的後端數據內。
11. 如權利要求8所述的系統,其特徵在於,所接收到的特定後端數據項 可用預先計算的散列函數結果來尋址,其中所述預先計算的散列函數結果被存I儲在所接收到的後端數據內。
12. 如權利要求8所述的系統,其特徵在於,所接收到的特定後端數據項 可用預先計算的索引來尋址,其中所述預先計算的索引被存儲在所接收到的後 端數據內。
13. 如權利要求8所述的系統,其特徵在於,所述後端數據在所述前端數 ; 據被接收之前被接收。
14. 如權利要求8所述的系統,其特徵在於,所述用於顯示特定後端信息 項的信息包括與最後一次使用的後端信息視圖相關的信息。
15. —種用於接收結構化數據的系統,包括用於從電腦程式產品接收後端數據的裝置,其中所述後端數據是用節點 來結構化的,其中所述節點與唯一標識符相關聯並且所述節點可用所述唯一標 識符來尋址,並且其中特定的後端數據項與相應的可尋址節點相關聯;用於從電腦程式產品接收前端數據的裝置;其中所述前端數據是用節點 來結構化的,其中所述節點與唯一標識符相關聯並且所述節點可用所述唯一標 ;識符來尋址,並且其中所述前端數據包括用於顯示所接收到的後端數據的特定 後端數據項的信息;以及響應於所接收到的用於顯示所述特定後端數據項的前端數據來顯示所述 特定數據項的裝置。
16. 如權利要求15所述的系統,其特徵在於,所接收到的用於顯示所述 >特定後端數據項的前端數據用唯一標識符來尋址,所述唯一標識符與所接收到的用於顯示所述特定後端數據項的前端數據相關聯。
17. 如權利要求15所述的系統,其特徵在於,所接收到的特定後端數據 項可用預先計算的散列函數結果來尋址,其中所述預先計算的散列函數結果被 存儲在所接收到的後端數據內。
18. 如權利要求15所述的系統,其特徵在於,所接收到的特定後端數據 項可用預先計算的索引來尋址,其中所述預先計算的索引被存儲在所接收到的 後端數據內。
19. 如權利要求15所述的系統,其特徵在於,所述後端數據在所述前端 數據被接收之前被接收。
20. 如權利要求15所述的系統,其特徵在於,所述用於顯示特定後端信 息項的信息包括與最後一次使用的後端信息視圖相關的信息。
全文摘要
結構化的數據存儲允許高效的數據搜索和裝載。結構化格式使數據能夠由程序高效地接收並且相對快捷地呈現給通過程序界面請求該數據的用戶。
文檔編號G06F17/30GK101366030SQ200780001833
公開日2009年2月11日 申請日期2007年1月3日 優先權日2006年1月4日
發明者R·H·維舍納莫提, R·R·埃耶, S·巴特 申請人:微軟公司