專利名稱:在用戶設(shè)備上高速緩存和修改多維數(shù)據(jù)庫(kù)的部分的制作方法
在用戶設(shè)備上高速緩存和修改多維數(shù)據(jù)庫(kù)的部分
些旦冃眾
多維數(shù)據(jù)庫(kù)(也稱為立方或統(tǒng)一維度模型(UMD))在當(dāng)今商業(yè)界扮演越來(lái)越重要的角色,并且通常是聯(lián)機(jī)分析處理(OLAP)的關(guān)鍵組件。與只提供相對(duì)平坦的二維數(shù)據(jù)視圖的關(guān)系數(shù)據(jù)庫(kù)不同,多維數(shù)據(jù)庫(kù)通常提供更多的抽象維度。此外,多維數(shù)據(jù)庫(kù)通常對(duì)表示層次和層次組合提供全面支持。例如,由這種數(shù)據(jù)庫(kù)提供的多維視圖可表示產(chǎn)品線層次、商業(yè)組織層次、客戶層次、時(shí)間和其它維度的復(fù)雜組合。多維數(shù)據(jù)庫(kù)通常配置有基于數(shù)據(jù)的多個(gè)維度以及數(shù)據(jù)之間的關(guān)系來(lái)進(jìn)行復(fù)雜計(jì)算的功能性。OLAP系統(tǒng)(定義為使用多維數(shù)據(jù)庫(kù)系統(tǒng))的示例是可從華盛頓州雷德蒙市的微軟公司購(gòu)得的Microsoft Analysis Services (分析服務(wù))。
使用OLAP系統(tǒng)的報(bào)告工具(例如微軟Analysis Services)通常被配置成僅生成多維數(shù)據(jù)的靜態(tài)視圖。駐留在用戶設(shè)備(即客戶機(jī))上的報(bào)告工具(例如諸如Microsoft Excel的應(yīng)用程序)通過(guò)網(wǎng)絡(luò)向多維數(shù)據(jù)庫(kù)服務(wù)器發(fā)送查詢,且服務(wù)器生成視圖并將其發(fā)送回該用戶設(shè)備。該視圖是靜態(tài)的,因?yàn)樗⒉惶峁┦褂脩裟軌蛲ㄟ^(guò)與其交互以使用所報(bào)告的視圖數(shù)據(jù)進(jìn)行試驗(yàn)的有效機(jī)制,這種交互可通過(guò)諸如當(dāng)它們依賴的值發(fā)生變化時(shí)對(duì)這些值進(jìn)行重新計(jì)算來(lái)實(shí)現(xiàn)。即,不允許用戶使用視圖數(shù)據(jù)施行"如果...則..."場(chǎng)景。例如,應(yīng)用程序可在電子數(shù)據(jù)表或表格中提供報(bào)告(即視圖),其中一個(gè)或多個(gè)單元的值取決于(即相關(guān)于) 一個(gè)或多個(gè)其它單元中的值。
為了對(duì)數(shù)據(jù)片變化的影響進(jìn)行試驗(yàn),用戶必需在應(yīng)用程序中作出改變,并將其發(fā)送到服務(wù)器。然后,服務(wù)器在多維數(shù)據(jù)庫(kù)中執(zhí)行涉及數(shù)據(jù)片的服務(wù)器端計(jì)算,并將變化報(bào)告給用戶。該變化是永久的,因?yàn)樗A粼跀?shù)據(jù)庫(kù)中,因此該變化被強(qiáng)加于共享該數(shù)據(jù)庫(kù)的其它用戶。此外,該用戶需要等待用戶設(shè)備與服務(wù)器之間的通
信以及服務(wù)器的計(jì)算時(shí)間。而且,隨著OLAP系統(tǒng)的用戶數(shù)量增加,涉及該服務(wù)器的這種通信和計(jì)算的數(shù)量增大,這可導(dǎo)致網(wǎng)絡(luò)阻塞。該阻塞可進(jìn)一步導(dǎo)致例如對(duì)查詢響應(yīng)的延遲。
用于實(shí)現(xiàn)有關(guān)多維數(shù)據(jù)的"如果...則..."場(chǎng)景的另一選擇是將報(bào)告工具自身配置成在相關(guān)數(shù)據(jù)之間執(zhí)行必要計(jì)算。然而,報(bào)告工具本質(zhì)上相關(guān)其呈現(xiàn)數(shù)據(jù)的能力相當(dāng)簡(jiǎn)單。即,它們通常只能定義和表示相對(duì)平坦的二維數(shù)據(jù)視圖。因此,將多維數(shù)據(jù)庫(kù)的數(shù)據(jù)之間的復(fù)雜關(guān)系映射到由報(bào)告工具提供的數(shù)據(jù)視圖即使有可能也通常是非常艱巨的任務(wù)。此外,報(bào)告工具通常未被配置成執(zhí)行改變多維數(shù)據(jù)庫(kù)的數(shù)據(jù)所需的通常很復(fù)雜的多維計(jì)算。此外,這些復(fù)雜計(jì)算中的某些涉及訪問(wèn)未駐留在執(zhí)行該報(bào)告的用戶設(shè)備上的數(shù)據(jù)(因?yàn)檫@些數(shù)據(jù)未表示在報(bào)告中)。這種數(shù)據(jù)必需從服務(wù)器檢索,使得使用報(bào)告工具執(zhí)行多維計(jì)算更加困難和耗時(shí)。
因此,當(dāng)前可用的報(bào)告工具不適于使用戶對(duì)通過(guò)改變多維數(shù)據(jù)庫(kù)視圖上的數(shù)據(jù)而在該視圖上的影響進(jìn)行試驗(yàn)。
概述
本概述以簡(jiǎn)化形式提供本發(fā)明諸方面的說(shuō)明性上下文。這并不旨在用于確定要求保護(hù)的主題的范圍,也不旨在標(biāo)識(shí)要求保護(hù)主體的關(guān)鍵和/或本質(zhì)特征。本發(fā)明的這些和其它方面在以下詳細(xì)描述中有更全面的描述。
對(duì)于多維數(shù)據(jù)庫(kù)(例如作為OLAP系統(tǒng)的一部分)的用戶,可將多維數(shù)據(jù)庫(kù)的至少一部分的副本(即本地立方)高速緩存到用戶設(shè)備本地。例如,用戶設(shè)備可
以為該用戶向多維數(shù)據(jù)庫(kù)服務(wù)器(例如Microsoft Analysis Services服務(wù)器)發(fā)送對(duì)本地立方的請(qǐng)求?;谠撚脩舻陌踩舷挛?,由服務(wù)器為該用戶生成的立方可以是子立方,即包含少于多維數(shù)據(jù)庫(kù)全部的立方。服務(wù)器可以在服務(wù)器上存儲(chǔ)立方的安全副本,并且向用戶設(shè)備發(fā)送該立方,該立方可存儲(chǔ)在其本地。
然后,用戶可查詢本地立方而非多維數(shù)據(jù)庫(kù)服務(wù)器。此外,本地立方可不僅包括來(lái)自數(shù)據(jù)庫(kù)的數(shù)據(jù)而且包括表示數(shù)據(jù)片之間依賴關(guān)系的函數(shù)。用戶設(shè)備上的報(bào)告工具被配置成與本地立方通信。報(bào)告工具可查詢本地立方并執(zhí)行涉及來(lái)自本地立方和本地(例如易失性)存儲(chǔ)器的數(shù)據(jù)的操作。例如,對(duì)來(lái)自本地立方的數(shù)據(jù)進(jìn)行的操作(可以包括多維操作)可作為執(zhí)行報(bào)告工具的計(jì)算機(jī)進(jìn)程或從其產(chǎn)生的計(jì)算機(jī)進(jìn)程的一部分。這些操作還可從本地立方訪問(wèn)。因此,用戶可"離線"工作,即在不連接到數(shù)據(jù)庫(kù)服務(wù)器的情況下工作。用戶可使用該能力來(lái)在本地使用"如果...則..."場(chǎng)景進(jìn)行試驗(yàn),而無(wú)需訪問(wèn)遠(yuǎn)程服務(wù)器。
例如,可設(shè)置將所有查詢從諸如Microsoft Excel的前端報(bào)告工具引導(dǎo)到本地高速緩存數(shù)據(jù)的瘦客戶機(jī)端查詢層。因此,前端報(bào)告工具可滿足用戶需要而不連接到數(shù)據(jù)服務(wù)器。用戶能夠自由修改報(bào)告中出現(xiàn)的數(shù)據(jù),并且這種修改可被發(fā)送到本地立方。于是,所有這些相關(guān)數(shù)據(jù)修改(計(jì)算、聚集等)可如同客戶機(jī)端進(jìn)程中的存儲(chǔ)器內(nèi)操作一樣相對(duì)快速地計(jì)算,并向用戶傳遞(例如顯示)。例如,用戶可對(duì)
電子數(shù)據(jù)表應(yīng)用程序(例如Microsoft Excel)的第一單元進(jìn)行修改,所得數(shù)據(jù)庫(kù)操作可本地進(jìn)行,電子數(shù)據(jù)表中的受影響單元可在向用戶呈現(xiàn)的用戶界面顯示中得到更新。
向用戶設(shè)備提供本地立方的多維數(shù)據(jù)庫(kù)服務(wù)器可對(duì)本地立方加時(shí)間戳??稍谟脩粼O(shè)備上維護(hù)對(duì)本地立方作出的修改的列表,并可對(duì)這些修改的每一個(gè)加時(shí)間戳?;诒硎颈镜亓⒎綇亩嗑S數(shù)據(jù)庫(kù)服務(wù)器加載的時(shí)間的時(shí)間戳和/或在修改列表中列舉的修改的時(shí)間戳,本地立方中的數(shù)據(jù)可與來(lái)自其所拷貝的多維數(shù)據(jù)庫(kù)服務(wù)器的數(shù)據(jù)同步。同步更新可以是增量的或者可涉及本地立方的全部刷新,并且可以是用戶發(fā)起和/或在預(yù)定時(shí)間處進(jìn)行的。
在本發(fā)明的實(shí)施方式中,在通信網(wǎng)絡(luò)的用戶設(shè)備上提供一種使用存儲(chǔ)在作為通信網(wǎng)絡(luò)上與用戶設(shè)備分離的設(shè)備的網(wǎng)絡(luò)設(shè)備上的多維數(shù)據(jù)庫(kù)至少一部分的系統(tǒng)。該多維數(shù)據(jù)庫(kù)由通信網(wǎng)絡(luò)上多個(gè)用戶設(shè)備共享。該系統(tǒng)包括控制在用戶設(shè)備的非易失性存儲(chǔ)介質(zhì)上存儲(chǔ)多維數(shù)據(jù)庫(kù)的至少一部分的副本的存儲(chǔ)控制器。
在本實(shí)施方式的一個(gè)方面中,該系統(tǒng)還包括查詢控制器,它從在用戶設(shè)備上執(zhí)行的應(yīng)用程序接收對(duì)包含在多維數(shù)據(jù)庫(kù)的至少一部分中的信息片的請(qǐng)求,并控制從非易失性存儲(chǔ)介質(zhì)上的副本來(lái)檢索該信息片。
在本實(shí)施方式的另一方面中,多維數(shù)據(jù)庫(kù)的至少一部分包括作為該至少一部分中包含的至少第二信息片的函數(shù)的至少第一信息片,且存儲(chǔ)控制器用于控制在非易失性存儲(chǔ)介質(zhì)上的副本中存儲(chǔ)該函數(shù)。在本方面中,該系統(tǒng)還包括響應(yīng)于應(yīng)用程序修改用戶設(shè)備的易失性存儲(chǔ)器中第二信息片的值而對(duì)易失性存儲(chǔ)器中的第一信息片執(zhí)行該函數(shù)的函數(shù)控制器。
在本實(shí)施方式的另一方面中,函數(shù)控制器用于將函數(shù)的執(zhí)行結(jié)果傳遞到應(yīng)用程序的用戶界面顯示,使得從函數(shù)執(zhí)行得到的第一信息片的值得到顯示。
在本實(shí)施方式的另一方面,該修改是在易失性存儲(chǔ)器中對(duì)多維數(shù)據(jù)庫(kù)的至少一部分的副本中包含的一個(gè)或多個(gè)信息片做出的多個(gè)修改之一。在本方面,該系統(tǒng)還包括控制向表示多個(gè)修改的修改列表中添加修改的修改列表控制器,其中修改列表駐留在易失性存儲(chǔ)器中。
在本實(shí)施方式的又一方面中,存儲(chǔ)控制器用于控制通過(guò)應(yīng)用來(lái)自易失性存儲(chǔ)器的修改列表來(lái)更新非易失性存儲(chǔ)介質(zhì)上的多維數(shù)據(jù)庫(kù)的至少一部分的副本。在本實(shí)施方式的另一方面中,存儲(chǔ)控制器用于控制將修改列表存儲(chǔ)在非易失性存儲(chǔ)介質(zhì)上。
在本實(shí)施方式的另一方面中,該系統(tǒng)還包括控制將修改列表從用戶設(shè)備發(fā)送到網(wǎng)絡(luò)設(shè)備的服務(wù)器接口控制器。
在本實(shí)施方式的另一方面中,應(yīng)用程序用于從多維數(shù)據(jù)庫(kù)的至少一部分的副本生成報(bào)告。
在本實(shí)施方式的又一方面中,該系統(tǒng)還包括用于向網(wǎng)絡(luò)設(shè)備發(fā)送對(duì)多維數(shù)據(jù)庫(kù)的至少一部分的副本的請(qǐng)求并接收多維數(shù)據(jù)庫(kù)的至少一部分的服務(wù)器接口控制器。
在本實(shí)施方式的另一方面中,該系統(tǒng)還包括用于從網(wǎng)絡(luò)設(shè)備接收指示對(duì)多維數(shù)據(jù)庫(kù)的至少一部分的一個(gè)或多個(gè)修改的至少一個(gè)通信的服務(wù)器接口控制器。服務(wù)器接口控制器還用于控制響應(yīng)于至少一個(gè)通信而將多維數(shù)據(jù)庫(kù)的至少一部分的本地副本與多維數(shù)據(jù)庫(kù)的至少一部分進(jìn)行同步。
在本發(fā)明的另一實(shí)施方式中,存儲(chǔ)在網(wǎng)絡(luò)設(shè)備上的多維數(shù)據(jù)庫(kù)的至少一部分由作為和通信網(wǎng)絡(luò)上網(wǎng)絡(luò)設(shè)備分離的設(shè)備的用戶設(shè)備使用。多維數(shù)據(jù)庫(kù)由通信網(wǎng)絡(luò)上的多個(gè)用戶設(shè)備共享。多維數(shù)據(jù)庫(kù)的至少一部分的副本存儲(chǔ)在用戶設(shè)備的非易失性存儲(chǔ)介質(zhì)上。
在本實(shí)施方式的一個(gè)方面中,從在用戶設(shè)備上執(zhí)行的應(yīng)用程序接收對(duì)包括在多維數(shù)據(jù)庫(kù)的至少一部分內(nèi)的信息片的請(qǐng)求,并且從非易失性存儲(chǔ)介質(zhì)上的副本檢索該信息片。
在本實(shí)施方式的另一方面中,多維數(shù)據(jù)庫(kù)的至少一部分包括作為該至少一部分中包含的至少第二信息片的函數(shù)的至少第一信息片。在本方面中,該函數(shù)存儲(chǔ)在非易失性存儲(chǔ)介質(zhì)上的副本中,并且響應(yīng)于應(yīng)用程序修改用戶設(shè)備上易失性存儲(chǔ)器中第二信息片的值而在易失性存儲(chǔ)器中對(duì)第一信息片執(zhí)行該函數(shù)。
在本實(shí)施方式的另一方面中,該函數(shù)執(zhí)行的結(jié)果向用戶設(shè)備的用戶顯示。
在本實(shí)施方式的又一方面中,修改是在易失性存儲(chǔ)器中對(duì)多維數(shù)據(jù)庫(kù)的至少一部分的副本中包含的一個(gè)或多個(gè)信息片作出的多個(gè)修改之一。在本方面中,將修改添加到表示多個(gè)修改的修改列表,該修改列表駐留在易失性存儲(chǔ)器中。
在本實(shí)施方式的另一方面中,非易失性存儲(chǔ)介質(zhì)上的多維數(shù)據(jù)庫(kù)的至少一部分的副本通過(guò)應(yīng)用來(lái)自易失性存儲(chǔ)器的修改列表來(lái)更新。
在本實(shí)施方式的另一方面中,修改列表存儲(chǔ)在非易失性存儲(chǔ)介質(zhì)上。在本實(shí)施方式的另一方面中,修改列表從用戶設(shè)備發(fā)送到網(wǎng)絡(luò)設(shè)備。在本實(shí)施方式的又一方面中,從多維數(shù)據(jù)庫(kù)的至少一部分的副本生成報(bào)告。在本實(shí)施方式的另一方面中,從用戶設(shè)備向網(wǎng)絡(luò)設(shè)備發(fā)送對(duì)多維數(shù)據(jù)庫(kù)的至少一部分的副本的請(qǐng)求,并在用戶設(shè)備處接收多維數(shù)據(jù)庫(kù)的至少一部分的副本。
在本實(shí)施方式的另一方面中,從網(wǎng)絡(luò)設(shè)備接收指示對(duì)多維數(shù)據(jù)庫(kù)的至少一部分的一個(gè)或多個(gè)修改的至少一個(gè)通信。響應(yīng)于至少一個(gè)通信將多維數(shù)據(jù)庫(kù)的至少一部分的本地副本與多維數(shù)據(jù)庫(kù)的至少一部分同步。
在本發(fā)明的另一實(shí)施方式中,提供計(jì)算機(jī)程序產(chǎn)品。該產(chǎn)品包括計(jì)算機(jī)可讀介質(zhì)以及存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上的定義指令的計(jì)算機(jī)可讀信號(hào),作為由計(jì)算機(jī)執(zhí)行的結(jié)果,這些指令指示計(jì)算機(jī)執(zhí)行在以上各段描述的本發(fā)明的實(shí)施方式的方法和/或以下各段中描述的一個(gè)或多個(gè)方面。
結(jié)合附圖,從以下包括本方面的諸方面和實(shí)施方式的本發(fā)明的詳細(xì)描述,本方面的其它優(yōu)點(diǎn)、新穎特征和目的及其諸方面和實(shí)施方式將變得顯而易見(jiàn)。附圖是示意性的,不旨在按比例繪制。在附圖中,在不同附圖中的每個(gè)相同或近似相同的組件由單個(gè)附圖標(biāo)記來(lái)表示。為了清楚起見(jiàn),并未在每個(gè)附圖中標(biāo)出全部組件,也未標(biāo)出每個(gè)實(shí)施方式的每個(gè)組件以及本方面的每個(gè)方面,對(duì)其的說(shuō)明對(duì)本領(lǐng)域技術(shù)人員理解本發(fā)明是沒(méi)有必要的。
附圖簡(jiǎn)述
圖1是示出根據(jù)本方面某些實(shí)施方式的多維數(shù)據(jù)庫(kù)系統(tǒng)的示例的框圖2是示出根據(jù)本方面的某些實(shí)施方式的用于在用戶設(shè)備上使用存儲(chǔ)在和通
信網(wǎng)絡(luò)上用戶設(shè)備分離的網(wǎng)絡(luò)設(shè)備上的多維數(shù)據(jù)庫(kù)的系統(tǒng)的示例的框圖3是示出根據(jù)本方面某些實(shí)施方式的在用戶設(shè)備上使用存儲(chǔ)在遠(yuǎn)離通信網(wǎng)
絡(luò)上用戶設(shè)備設(shè)置的網(wǎng)絡(luò)設(shè)備上的多維數(shù)據(jù)庫(kù)至少一部分的方法示例的流程圖;圖4是示出實(shí)現(xiàn)本方面的某些實(shí)施方式的計(jì)算機(jī)系統(tǒng)示例的框圖;以及圖5是示出可作為實(shí)現(xiàn)本方面某些實(shí)施方式的計(jì)算機(jī)系統(tǒng)的一部分使用的存
儲(chǔ)系統(tǒng)示例的框圖。
詳細(xì)描述
雖然以下主要關(guān)于Microsoft Excel作為報(bào)告工具來(lái)描述本方面的某些實(shí)施方式,但是應(yīng)該意識(shí)到本方面并不限于此。可以使用各種其它報(bào)告工具中的任一種。此外,雖然關(guān)于Microsoft⑧Analysis Services來(lái)描述本發(fā)明的某些實(shí)施方式,但是 可以使用其它多維數(shù)據(jù)庫(kù)系統(tǒng)(即OLAP)或模仿OLAP的關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)(通常 稱為ROLAP),且這落在本方面的范圍內(nèi)。
本方面的這些和其它實(shí)施方式的功能和優(yōu)點(diǎn)可從以下描述的示例而得到更全 面的理解。以下示例旨在便于更好理解以及示出本方面的益處,但并不例示本方面 的全部范圍。
如本文所使用的,無(wú)論是在說(shuō)明書或權(quán)利要求術(shù)中,術(shù)語(yǔ)"包含"、"包括"、 "帶有"、"具有"、"含有"、"涉及"等應(yīng)被理解為開(kāi)放性的,即表示包括但并不限 于此。只有常規(guī)詞語(yǔ)"由...組成"和"主要由...組成"才是封閉式或半封閉式的常 規(guī)詞語(yǔ),如美國(guó)專利局專利審查程序手冊(cè)(英文版,修訂版2, 2004年5月)的 2111.03節(jié)中相對(duì)于權(quán)利要求書所闡述的。
示例
圖1是示出根據(jù)本發(fā)明某些實(shí)施方式的多維數(shù)據(jù)庫(kù)系統(tǒng)示例的框圖。系統(tǒng)100 只是多維數(shù)據(jù)庫(kù)系統(tǒng)的說(shuō)明性實(shí)施方式,并不旨在限制本發(fā)明的范圍。諸如系統(tǒng) 100的變型的這種系統(tǒng)的許多其它實(shí)現(xiàn)中的任一個(gè)都是可能的,并且旨在落在本發(fā) 明的范圍內(nèi)。
系統(tǒng)100可包括以下任何項(xiàng)用戶設(shè)備102、 104和106;通信網(wǎng)絡(luò)108;服
務(wù)器112;多維數(shù)據(jù)庫(kù)114;其它網(wǎng)絡(luò)元件;或上述的任何適當(dāng)組合。
如本文所使用的,"網(wǎng)絡(luò)"是由一段或多段傳輸介質(zhì)互連的兩個(gè)或更多網(wǎng)絡(luò)元 件的定義組??砂ňW(wǎng)絡(luò)設(shè)備的一個(gè)或多個(gè)網(wǎng)絡(luò)元件可被配置成在一段或多段傳輸 介質(zhì)上發(fā)送和/或接收對(duì)一個(gè)或多個(gè)網(wǎng)絡(luò)元件的通信。例如當(dāng)向網(wǎng)絡(luò)添加網(wǎng)絡(luò)元件 和/或用戶登陸到網(wǎng)絡(luò)時(shí),以及當(dāng)移除網(wǎng)絡(luò)元件和/或用戶注銷時(shí),作為網(wǎng)絡(luò)定義組 成員的網(wǎng)絡(luò)元件可隨時(shí)間變化。每段可以是各種類型的傳輸介質(zhì)中任一種,包括由 金屬和/或光纖、空氣(例如使用通過(guò)載波的無(wú)線通信)制成的一個(gè)或多個(gè)電學(xué)或 光學(xué)線或纜線或者這些通信介質(zhì)的任意組合。如本文所使用的,"多個(gè)"表示兩個(gè) 或更多。應(yīng)該意識(shí)到,網(wǎng)絡(luò)可以是由單線、總線、無(wú)線連接或其它類型的段連接的 可簡(jiǎn)單到兩個(gè)元素的網(wǎng)絡(luò)。此外,應(yīng)該意識(shí)到,當(dāng)在本申請(qǐng)的附圖中將網(wǎng)絡(luò)示為連 接到附圖中的元件時(shí),所連接的元件自身也被示為網(wǎng)絡(luò)的一部分。
如本文所使用的,"網(wǎng)絡(luò)設(shè)備"是用于在網(wǎng)絡(luò)上通信的設(shè)備,包括但不限于 工作站、個(gè)人計(jì)算機(jī)、終端、膝上型計(jì)算機(jī)、終端站、用戶設(shè)備、服務(wù)器、網(wǎng)關(guān)、寄存器、交換機(jī)、路由器、集線器、網(wǎng)橋、目錄、發(fā)送器、接收器、轉(zhuǎn)發(fā)器及其任 意組合。如本文所使用的,"用戶設(shè)備"是用戶可向其發(fā)送通信或從其接收通信并 可用作在通信網(wǎng)絡(luò)上通信的終點(diǎn)的網(wǎng)絡(luò)設(shè)備。應(yīng)該意識(shí)到,用戶設(shè)備并不總是網(wǎng)絡(luò) 的一部分。用戶設(shè)備包括但不限于工作站;個(gè)人計(jì)算機(jī)(例如PC);膝上型計(jì)算 機(jī)、筆記本計(jì)算機(jī);電話(例如座機(jī)或移動(dòng));尋呼機(jī);BlackberryTM牌設(shè)備、PCS 設(shè)備、個(gè)人數(shù)字助理(PDA)、雙向無(wú)線電(例如"對(duì)講機(jī)")、其它類型的用戶設(shè) 備以及以上的任意合適組合。
網(wǎng)絡(luò)108可以是和/或包括各種類型的網(wǎng)絡(luò)的任一種,包括但不限于,局域網(wǎng)
(LAN)、城域網(wǎng)(MAN)、廣域網(wǎng)(WAN)、無(wú)線網(wǎng)絡(luò)(例如上述那些中任一種)、 另一類型的網(wǎng)絡(luò)、上述的任意合適組合。
如圖1所示,服務(wù)器112和多維數(shù)據(jù)庫(kù)114可駐留在同一網(wǎng)絡(luò)設(shè)備110上。 然而,應(yīng)該意識(shí)到服務(wù)器112和多維數(shù)據(jù)庫(kù)114也可駐留在分離設(shè)備上。
服務(wù)器112可控制對(duì)多維數(shù)據(jù)庫(kù)114的訪問(wèn),該數(shù)據(jù)庫(kù)可由多個(gè)用戶設(shè)備共 享,包括用戶設(shè)備102、 104和106。應(yīng)該意識(shí)到雖然圖1只示出三個(gè)用戶設(shè)備, 但是系統(tǒng)IOO可包括幾十、幾百甚至幾千個(gè)用戶設(shè)備。此外,在網(wǎng)絡(luò)108上可能存 在多個(gè)服務(wù)器。每個(gè)用戶設(shè)備可通過(guò)經(jīng)由通信網(wǎng)絡(luò)108與服務(wù)器112交換通信來(lái)訪 問(wèn)和/或修改存儲(chǔ)在多維數(shù)據(jù)庫(kù)114中的數(shù)據(jù)。例如,用戶設(shè)備可配置有査詢控制 器(例如客戶機(jī)端查詢層),該査詢控制器被配置成與服務(wù)器112上的查詢控制器
(例如服務(wù)器端查詢層)通信以實(shí)現(xiàn)查詢。此外,用戶設(shè)備可配置有對(duì)數(shù)據(jù)實(shí)現(xiàn)修 改并將這些修改傳遞到服務(wù)器112的其它邏輯,該邏輯可對(duì)駐留在數(shù)據(jù)庫(kù)114上的 數(shù)據(jù)進(jìn)行修改。
此外,在本發(fā)明的某些實(shí)施方式中,服務(wù)器112可被配置成響應(yīng)于從用戶設(shè) 備102、 104和106之一收到的請(qǐng)求生成作為多維數(shù)據(jù)庫(kù)114的至少一部分的立方。 服務(wù)器112可將該立方傳遞到請(qǐng)求用戶設(shè)備。該傳遞也包括表示該立方生成時(shí)間的 時(shí)間戳。該時(shí)間戳可由請(qǐng)求用戶設(shè)備用于將立方與多維數(shù)據(jù)庫(kù)114同步,如以下更 詳細(xì)描述。服務(wù)器112可基于用戶或用戶組的安全上下文生成立方。例如,服務(wù)器 112可以只選擇數(shù)據(jù)庫(kù)114中用戶被授權(quán)的那些部分(即切片)。該選擇可涉及考 慮信息片之間的依賴性。此外,在某些實(shí)施方式中,請(qǐng)求可指定對(duì)待選擇的數(shù)據(jù)的 一個(gè)或多個(gè)其它限制,服務(wù)器112可在生成立方時(shí)考慮這些限制。
如以下更詳細(xì)描述,用戶設(shè)備(例如用戶設(shè)備102、 104或106)可被配置成 生成表示對(duì)存儲(chǔ)在本地立方中的一個(gè)或多個(gè)信息片進(jìn)行的修改的修改列表,并且可被配置成向服務(wù)器U2發(fā)送該修改列表。服務(wù)器112可被配置成將修改列表中的修
改應(yīng)用到多維數(shù)據(jù)庫(kù)114以及向共享多維數(shù)據(jù)庫(kù)的一個(gè)或多個(gè)用戶設(shè)備報(bào)告這些 修改。此外,服務(wù)器112可被配置成向共享數(shù)據(jù)庫(kù)的多個(gè)用戶設(shè)備周期性發(fā)送更新, 并且每次更新可包括時(shí)間戳。這些更新可指定對(duì)多維數(shù)據(jù)庫(kù)114的修改。此外,服 務(wù)器112可被配置成解決兩個(gè)不同用戶設(shè)備由于在這些用戶設(shè)備之一或兩者收到 周期性更新而對(duì)多維數(shù)據(jù)庫(kù)114中同一信息片進(jìn)行的修改之間的沖突。
圖2是示出根據(jù)本方面某些實(shí)施方式的在用戶設(shè)備上使用存儲(chǔ)在和通信網(wǎng)絡(luò) 上的用戶設(shè)備分離的網(wǎng)絡(luò)設(shè)備上的多維數(shù)據(jù)庫(kù)的系統(tǒng)200的示例的框圖。系統(tǒng)200 只是在用戶設(shè)備上使用存儲(chǔ)在和通信網(wǎng)絡(luò)上用戶設(shè)備分離的網(wǎng)絡(luò)設(shè)備上的多維數(shù) 據(jù)庫(kù)的系統(tǒng)的說(shuō)明性實(shí)施方式,并不旨在限制本方面的范圍。諸如系統(tǒng)200的變體 的這種系統(tǒng)的許多其它實(shí)現(xiàn)中任一個(gè)都是可能的,并落在本方面的范圍內(nèi)。
系統(tǒng)200可包括以下任何項(xiàng)用戶接口 208;應(yīng)用程序210;服務(wù)器接口控制 器212;修改列表控制器214;函數(shù)控制器216;查詢控制器218;存儲(chǔ)控制器220; 非易失性存儲(chǔ)介質(zhì)222;通信網(wǎng)絡(luò)230;其它組件;和以上的任何合適組合。如圖
2所示,在某些實(shí)施方式中,應(yīng)用程序210可以是和組件212-220分離的不同組件。 在其它實(shí)施方式中,這些組件的一個(gè)或多個(gè)可集成在應(yīng)用程序210中。例如,組件 212-220的一個(gè)或多個(gè)或者它們提供的功能可實(shí)現(xiàn)為應(yīng)用程序210(例如Microsoft Excel)的插件。此外,組件208-220中的一個(gè)或多個(gè)可在應(yīng)用程序210的執(zhí)行期 間(即運(yùn)行時(shí)期間)存儲(chǔ)在易失性存儲(chǔ)器206中。
非易失性存儲(chǔ)器介質(zhì)可在不同時(shí)間在其上存儲(chǔ)報(bào)告文件224、本地立方226、 修改列表228、其它組件或以上的任意合適組合,以下將詳細(xì)描述每一個(gè)。
組件206-228全部駐留在用戶設(shè)備204上(例如系統(tǒng)100的用戶設(shè)備102-106 中任一個(gè)),如圖2所示,但是在某些實(shí)施方式中,這些組件的一個(gè)或多個(gè)可駐留 在不同設(shè)備上。例如,非易失性存儲(chǔ)介質(zhì)222可駐留在和用戶設(shè)備204分離的設(shè)備 上。組件208-220的一個(gè)或多個(gè)可被視為客戶機(jī)/服務(wù)器系統(tǒng)的客戶機(jī)的一部分, 其中服務(wù)器可以是諸如服務(wù)器112的多維數(shù)據(jù)庫(kù)的服務(wù)器。
服務(wù)器接口控制器212可被配置成控制向服務(wù)器112發(fā)送對(duì)多維數(shù)據(jù)庫(kù)114 的至少一部分的請(qǐng)求。作為響應(yīng),控制器212可接收多維數(shù)據(jù)庫(kù)的一部分。存儲(chǔ)控 制器220可被配置成控制在諸如存儲(chǔ)介質(zhì)222的非易失性存儲(chǔ)介質(zhì)上存儲(chǔ)本地立方 226。如本文所使用的,"本地立方"是存儲(chǔ)在(將要存儲(chǔ)在)用戶設(shè)備的非易失性 介質(zhì)上的多維數(shù)據(jù)庫(kù)的至少一部分的副本。在本發(fā)明的某些實(shí)施方式中,本地立方226可針對(duì)用戶設(shè)備204的一個(gè)或多 個(gè)用戶。例如,本地立方226可包括用戶設(shè)備204的一個(gè)或多個(gè)用戶允許訪問(wèn)的多 維數(shù)據(jù)庫(kù)的一個(gè)或多個(gè)部分。在該實(shí)施方式中,根據(jù)對(duì)多維數(shù)據(jù)庫(kù)系統(tǒng)實(shí)現(xiàn)的安全 系統(tǒng)基于一個(gè)或多個(gè)用戶的安全上下文來(lái)確定要包括在本地立方中的一個(gè)或多個(gè) 部分。在該實(shí)施方式中,小心確保本地立方226中沒(méi)有包含多維數(shù)據(jù)庫(kù)中一個(gè)或多 個(gè)用戶未被授權(quán)訪問(wèn)的部分。如上所述,服務(wù)器112可在生成立方時(shí)實(shí)現(xiàn)這些安全 測(cè)量。如此限制這些部分可涉及考慮多維數(shù)據(jù)庫(kù)中包括的數(shù)據(jù)片之間的依賴關(guān)系。
如上所述,在用戶設(shè)備204上高速緩存本地立方226以及允許用戶訪問(wèn)和使 用存儲(chǔ)在本地立方226中的數(shù)據(jù)和函數(shù)可為用戶提供更快速的訪問(wèn)和計(jì)算時(shí)間。此 外,在本地立方226小于多維數(shù)據(jù)庫(kù)的全部的情形中,也可能是用戶被限制于只能 訪問(wèn)其中的某些數(shù)據(jù)的情形中,訪問(wèn)和處理速度可因數(shù)據(jù)量的減小而進(jìn)一步增大。
用戶接口 208可被配置成接收和輸出用戶輸入和輸出202,并用作用戶與應(yīng)用 程序210和/或用戶設(shè)備204上其它組件之間的接口 。如本文所使用的,"用戶接口 " 是使用戶能夠在應(yīng)用程序的執(zhí)行期間與該應(yīng)用程序進(jìn)行接口的應(yīng)用程序或應(yīng)用程 序的一部分(即計(jì)算機(jī)可讀指令的子集)。用戶接口可包括定義應(yīng)用程序在應(yīng)用程 序執(zhí)行期間如何向用戶輸出信息的代碼,例如通過(guò)計(jì)算機(jī)屏幕或其它裝置視覺(jué)輸 出,通過(guò)其它裝置的揚(yáng)聲器聽(tīng)覺(jué)輸出,以及通過(guò)游戲控制器或其它裝置手動(dòng)輸出。 這種用戶接口也可包括定義用戶在應(yīng)用程序執(zhí)行期間輸入信息的代碼,例如使用麥 克風(fēng)聽(tīng)覺(jué)輸入或使用鍵盤、鼠標(biāo)、游戲控制器、跟蹤球、觸摸屏或其它裝置手動(dòng)輸 入。
用戶接口可定義如何向用戶視覺(jué)呈現(xiàn)(即顯示)信息,以及定義用戶如何導(dǎo) 航信息的視覺(jué)表示(即顯示)并在視覺(jué)表示的上下文中輸入信息。在應(yīng)用程序執(zhí)行 期間,用戶接口可控制信息的視覺(jué)表示并使用戶能夠?qū)Ш揭曈X(jué)表示并在視覺(jué)表示的 上下文中輸入信息。用戶接口的類型的范圍從用戶鍵入命令的命令驅(qū)動(dòng)接口、用戶 從菜單選擇命令的菜單驅(qū)動(dòng)接口及其結(jié)合到GUI,其中GUI通常利用計(jì)算機(jī)圖形 能力的優(yōu)點(diǎn)、更加靈活、直觀和易于導(dǎo)航并且比命令驅(qū)動(dòng)和菜單驅(qū)動(dòng)的視覺(jué)用戶接 口具有更吸引人的"感觀"。如本文所使用的,由用戶接口或GUI呈現(xiàn)的信息的視 覺(jué)表示分別稱為"用戶界面顯示"或"GUI顯示"。
應(yīng)用程序210可以是使用戶能夠從存儲(chǔ)在多維數(shù)據(jù)庫(kù)114中的數(shù)據(jù)產(chǎn)生報(bào)告 的報(bào)告工具或其它類型的應(yīng)用程序。在本發(fā)明的某些實(shí)施方式中,應(yīng)用程序210 可被配置成與用戶設(shè)備204上的一個(gè)或多個(gè)組件交互(或包括它們)以從本地立方226而非多維數(shù)據(jù)庫(kù)114訪問(wèn)這些數(shù)據(jù)。例如,查詢控制器218可被配置成從應(yīng)用 程序210接收對(duì)本地立方226中(以及多維數(shù)據(jù)庫(kù)114自身中)包含的信息片的請(qǐng) 求,并控制從本地立方226而非數(shù)據(jù)庫(kù)114檢索信息片。
除了存儲(chǔ)從數(shù)據(jù)庫(kù)114和本地立方226拷貝的數(shù)據(jù)之外,存儲(chǔ)控制器220可 被配置成在本地立方226中存儲(chǔ)從數(shù)據(jù)庫(kù)114拷貝的函數(shù)。這些函數(shù)可定義存儲(chǔ)在 本地立方中的數(shù)據(jù)片之間的關(guān)系,并包括一個(gè)或多個(gè)操作,包括一個(gè)或多個(gè)多維操 作。例如,第一信息片可具有作為至少第二信息片的函數(shù)的值。響應(yīng)于用戶對(duì)應(yīng)用 程序210中的第二信息片作出的修改,函數(shù)控制器216可對(duì)第一數(shù)據(jù)片執(zhí)行該函數(shù) 以修改其值。函數(shù)控制器216可被配置成在易失性存儲(chǔ)器206中執(zhí)行該函數(shù),從而 提供比原本該函數(shù)在服務(wù)器112和/或多維數(shù)據(jù)庫(kù)114上遠(yuǎn)程執(zhí)行時(shí)可用的時(shí)間更 快的處理時(shí)間。因此,用戶可用不同信息片的不同值試驗(yàn)以確定這些值如何影響本 地存儲(chǔ)器中的其它信息片的值,而無(wú)需保留這些修改。這些函數(shù)的執(zhí)行結(jié)果例如可 響應(yīng)于用戶請(qǐng)求刷新由用戶接口呈現(xiàn)的數(shù)據(jù)而通過(guò)用戶接口 208向用戶顯示。
例如,用戶可修改在電子數(shù)據(jù)表應(yīng)用程序(例如Microsoft Excel)的第一單 元中出現(xiàn)的值。該值可表示來(lái)自存儲(chǔ)在本地立方226中的多維數(shù)據(jù)庫(kù)的信息片的 值。該信息片可與本地立方226中的一個(gè)或多個(gè)其它信息片相關(guān),且這些關(guān)系中的 每一個(gè)可由一個(gè)或多個(gè)多維操作定義。響應(yīng)于用戶修改單元中的值,函數(shù)控制器 216被配置成使用來(lái)自本地立方226的多維操作重新計(jì)算所有相關(guān)信息片的值。在 新的值被計(jì)算之后,函數(shù)控制器216可將這些新的值傳遞到應(yīng)用程序210和/或用 戶接口 208,使得表示作為重新計(jì)算的結(jié)果而修改的值的任何單元被更新以反映該 修改。
在本發(fā)明的某些實(shí)施方式中,對(duì)信息片的修改由修改列表控制器214記錄在 修改列表中。這種修改列表可在易失性存儲(chǔ)器206中維護(hù),并可作為修改列表228 保留在非易失性存儲(chǔ)介質(zhì)中和/或向服務(wù)器112發(fā)送使得這些修改被記錄在多維數(shù) 據(jù)庫(kù)114中。對(duì)于修改列表中的每個(gè)修改,時(shí)間戳可與修改一同記錄。這些時(shí)間戳 用于將本地立方226與多維數(shù)據(jù)庫(kù)114同步,如以下更詳細(xì)描述。
例如,應(yīng)用程序210的用戶可通過(guò)修改一個(gè)或多個(gè)信息片的值以查看這對(duì)其 它信息片的影響來(lái)試驗(yàn)。每次用戶修改信息片,該修改被記錄在易失性存儲(chǔ)器中的 修改列表中。在用戶完成試驗(yàn)之后,用戶就可將已更改的信息片修改回其原始值或 使一個(gè)或多個(gè)信息片保持修改。用戶可保存該報(bào)告或包括信息片的其它文檔作為報(bào) 告文件224,并且可將修改列表應(yīng)用到本地立方226。此外,修改列表自身可作為修改列表228存儲(chǔ)在存儲(chǔ)介質(zhì)222中。
服務(wù)器接口控制器212可被配置成向服務(wù)器112發(fā)送修改列表228,使得這些 修改應(yīng)用到多維數(shù)據(jù)庫(kù)114。例如服務(wù)器接口控制器212可被配置成向服務(wù)器112 周期性發(fā)送修改列表228和/或響應(yīng)于例如將修改列表228保存到存儲(chǔ)介質(zhì)222、關(guān) 閉應(yīng)用程序210、用戶命令等的事件而發(fā)送修改列表。修改列表228可在向服務(wù)器 112發(fā)送修改列表之后從存儲(chǔ)介質(zhì)222刪除以確保不再次對(duì)多維數(shù)據(jù)庫(kù)114進(jìn)行相 同的修改,以維護(hù)數(shù)據(jù)的完整性。而且,可使用其它同步技術(shù),這些技術(shù)在修改列 表中采用時(shí)間戳和/或在修改列表228中維護(hù)反映向服務(wù)器112發(fā)送的修改列表中 最后修改的指示。
服務(wù)器112可被配置成協(xié)調(diào)修改列表228內(nèi)的修改與多維數(shù)據(jù)庫(kù)114內(nèi)的數(shù)
據(jù)的同步。例如,服務(wù)器112可被配置成在用戶對(duì)用戶設(shè)備上的自從上次將該信息
片從數(shù)據(jù)庫(kù)114加載到用戶設(shè)備以來(lái)己修改過(guò)的信息片進(jìn)行修改的事件中對(duì)數(shù)據(jù)
進(jìn)行同步。此外,服務(wù)器112可被配置成將對(duì)多維數(shù)據(jù)庫(kù)114做出的修改推入(例
如周期性)共享數(shù)據(jù)庫(kù)114中數(shù)據(jù)的多個(gè)用戶設(shè)備(例如用戶設(shè)備102-106)。用戶
設(shè)備隨后可使用所推入的修改來(lái)更新其本地立方。
每個(gè)共享多維數(shù)據(jù)庫(kù)的用戶設(shè)備可被配置成自身使用同步技術(shù)。例如,用戶
設(shè)備204的服務(wù)器接口控制器212可用于將本地立方226與多維數(shù)據(jù)庫(kù)114同步。 如上所述,從服務(wù)器向包括該本地立方的用戶設(shè)備204的通信也可包括表示該本地 立方生成時(shí)間的時(shí)間戳。同樣如上所述,服務(wù)器可被配置成向用戶設(shè)備發(fā)送包括時(shí) 間戳的周期性更新。服務(wù)器接口控制器212可被配置成響應(yīng)于收到這些周期性通信 而例如基于與本地立方226通信的時(shí)間戳將本地立方226與多維數(shù)據(jù)庫(kù)114同步。 控制器212可被配置成將來(lái)自服務(wù)器112的與更新一起被包含的時(shí)間戳與最初與本 地立方226通信的時(shí)間戳進(jìn)行比較。如果更新的時(shí)間戳晚于本地立方的時(shí)間戳,則 本地立方過(guò)時(shí)并需要同步。
本地立方226和服務(wù)器接口控制器212可被配置成使本地立方226增量更新; 即僅僅是本地立方226中從上次更新以來(lái)已發(fā)生改變的信息片。此外,服務(wù)器接口 控制器212也可被配置成也執(zhí)行本地立方226的完全刷新。例如,控制器212可被 配置成如果它確定從服務(wù)器接收到的更新包括本地立方226中未包括的修改則向 服務(wù)器112請(qǐng)求當(dāng)前本地立方。
服務(wù)器接口控制器200可被配置成響應(yīng)于從服務(wù)器112接收更新來(lái)處理不同 的同步情況。例如,如果從上次增量更新或刷新本地立方226以來(lái)未對(duì)本地立方226進(jìn)行修改,則不對(duì)本地立方226進(jìn)行增量更新,也不對(duì)本地立方進(jìn)行完全刷新。 如果從上次增量更新或完全刷新以來(lái)已對(duì)本地立方226進(jìn)行了修改,則控制器212 可被配置成在本地立方226上執(zhí)行完全刷新,然后重新應(yīng)用這種修改。例如控制器 212可重新應(yīng)用在修改列表228中維護(hù)的在從服務(wù)器112接收更新與上次增量更新 或刷新之間發(fā)生的修改。
在某些實(shí)施方式中,當(dāng)控制器212處于將修改列表228向服務(wù)器112傳遞的 進(jìn)程中時(shí),控制器212可"預(yù)覽這些修改"。g卩,控制器212可將正在傳遞的修改 與多維數(shù)據(jù)庫(kù)114上還未向用戶設(shè)備204傳遞的修改進(jìn)行比較。例如,控制器212 可從服務(wù)器112請(qǐng)求更新(獨(dú)立于任何周期性更新),然后將在更新中指定的修改 與正在傳遞的修改列表中的修改進(jìn)行比較。控制器212可使用各種技術(shù)中的任一種 解決這些修改之間的沖突,這些技術(shù)例如基于更新中指定的修改對(duì)本地立方226 進(jìn)行增量修改,然后應(yīng)用來(lái)自修改列表的修改;或者通過(guò)在本地立方226上執(zhí)行完 全刷新,重新應(yīng)用修改列表228中的修改,然后將修改列表228發(fā)送到服務(wù)器112。
系統(tǒng)100和200及其組件可使用各種技術(shù)中的任一種實(shí)現(xiàn),這些技術(shù)包括軟 件(例如C、 C#、 C++、 Java或其組合)、硬件(例如一個(gè)或多個(gè)專用集成電路)、 固件(例如電可編程存儲(chǔ)器)或其任意組合。系統(tǒng)100和/或200的組件中的一個(gè) 或多個(gè)可駐留在單個(gè)設(shè)備(例如計(jì)算機(jī)),或者一個(gè)或多個(gè)組件可駐留在分離的離 散設(shè)備上。此外,每個(gè)組件可分布在不同設(shè)備上,并且設(shè)備的一個(gè)或多個(gè)可互連。
此外,在包括系統(tǒng)100和/或200的一個(gè)或多個(gè)組件的一個(gè)或多個(gè)設(shè)備的每一 個(gè)上,每個(gè)組件可駐留在系統(tǒng)的一個(gè)或多個(gè)位置內(nèi)。例如,這些系統(tǒng)的組件的不同 部分可駐留在設(shè)備上存儲(chǔ)器(例如RAM、 ROM、磁盤等)的不同區(qū)域中。這種一 個(gè)或多個(gè)設(shè)備的每一個(gè)可包括諸如多個(gè)已知組件,諸如一個(gè)或多個(gè)處理器、存儲(chǔ)器 系統(tǒng)、盤存儲(chǔ)系統(tǒng)、 一個(gè)或多個(gè)網(wǎng)絡(luò)接口和互連各種組件的一個(gè)或多個(gè)總線或其它 內(nèi)部通信鏈路。系統(tǒng)100和/或200及其組件可使用諸如以下相關(guān)于圖4和5描述 的計(jì)算機(jī)系統(tǒng)來(lái)實(shí)現(xiàn)。
圖3是示出根據(jù)本方面的某些實(shí)施方式在用戶設(shè)備上使用存儲(chǔ)在遠(yuǎn)離通信網(wǎng) 絡(luò)上用戶設(shè)備設(shè)置的網(wǎng)絡(luò)設(shè)備上的多維數(shù)據(jù)庫(kù)的至少一部分的方法300的示例的 流程圖。方法300只是在用戶設(shè)備上使用存儲(chǔ)在遠(yuǎn)離通信網(wǎng)絡(luò)上用戶設(shè)備設(shè)置的網(wǎng) 絡(luò)設(shè)備上的多維數(shù)據(jù)庫(kù)的至少一部分的方法的說(shuō)明性示例,并不旨在限制本方面的 范圍。諸如方法300的變型的這種方法的許多其它實(shí)現(xiàn)的任一種是可能的,并落在 本方面的范圍內(nèi)。最初,用戶設(shè)備可向多維數(shù)據(jù)庫(kù)的服務(wù)器(未示出)發(fā)送對(duì)多維數(shù)據(jù)庫(kù)的至 少一部分的請(qǐng)求,例如以上相關(guān)于圖1的系統(tǒng)200所述。作為響應(yīng),服務(wù)器可生成 該至少一部分的副本,并將該至少一部分發(fā)送到用戶設(shè)備(未示出),例如以上相
關(guān)于系統(tǒng)200所述。
在動(dòng)作302,多維數(shù)據(jù)庫(kù)的至少一部分的副本可存儲(chǔ)在例如以上相關(guān)于系統(tǒng) 200的存儲(chǔ)控制器220描述的用戶設(shè)備的非易失性存儲(chǔ)介質(zhì)上。在動(dòng)作304,響應(yīng) 于來(lái)自在用戶設(shè)備上執(zhí)行的應(yīng)用程序的對(duì)包括在多維數(shù)據(jù)庫(kù)的至少一部分(即本地 立方)中的信息片的請(qǐng)求,可從本地立方檢索信息片。在動(dòng)作304可如上相關(guān)于系 統(tǒng)200所述地執(zhí)行。
如上所述,在某些實(shí)施方式中,至少一個(gè)或多個(gè)第一信息片可以是本地立方 的第二信息片的值的函數(shù)(即取決于)。因此,在動(dòng)作306,響應(yīng)于應(yīng)用程序改變 用戶設(shè)備上易失性存儲(chǔ)器中的第二信息片的值,該函數(shù)(例如一個(gè)或多個(gè)操作)可 對(duì)易失性存儲(chǔ)器中第一信息片執(zhí)行。動(dòng)作306可由如以上相關(guān)于圖2所述的系統(tǒng) 200的函數(shù)控制器216執(zhí)行。
在動(dòng)作308,從函數(shù)執(zhí)行得到的第一信息片的值可在由應(yīng)用程序提供的用戶界 面顯示內(nèi)顯示,如相關(guān)于系統(tǒng)200所述。在動(dòng)作310,可將修改添加到表示多個(gè)修 改的修改列表中。例如,修改列表可駐留在易失性存儲(chǔ)器中。動(dòng)作310可由如上相 關(guān)于圖2所述的系統(tǒng)200的修改列表控制器214執(zhí)行。
在動(dòng)作312,本地立方的副本可通過(guò)將來(lái)自易失性存儲(chǔ)器的修改列表應(yīng)用到本 地立方來(lái)更新,例如以上相關(guān)于方法200所述。
在動(dòng)作314,可將修改列表存儲(chǔ)在非易失性存儲(chǔ)介質(zhì)中,例如以上相關(guān)于方法 200的修改列表控制器214所述。在動(dòng)作316,可將修改列表從用戶設(shè)備發(fā)送到網(wǎng) 絡(luò)設(shè)備,例如如以上相關(guān)于系統(tǒng)200的服務(wù)器接口控制器212所述。
雖然未在圖3中示出,但是方法300可包括從多維數(shù)據(jù)庫(kù)服務(wù)器接收可指定 對(duì)多維數(shù)據(jù)庫(kù)的更新的周期性通信。可響應(yīng)于接收這種更新而向本地立方和/或多 維數(shù)據(jù)庫(kù)施加各種同步技術(shù)的任一種,例如以上相關(guān)于系統(tǒng)200所述的那些中任一 種。
在動(dòng)作318,可從本地立方生成報(bào)告,例如以上相關(guān)于200所述。 方法300的一個(gè)或多個(gè)動(dòng)作可并行(至少部分并行)執(zhí)行或者以不同于圖3 所示的次序執(zhí)行。例如,生成報(bào)告的動(dòng)作318可在方法300的執(zhí)行期間任何時(shí)刻執(zhí) 行。此外,從用戶設(shè)備向網(wǎng)絡(luò)設(shè)備發(fā)送修改列表的動(dòng)作316可分別在更新立方和將
18修改列表存儲(chǔ)在存儲(chǔ)介質(zhì)的動(dòng)作312和314之前執(zhí)行。此外,方法300的動(dòng)作中的 一個(gè)或多個(gè)可例如響應(yīng)于事件而在動(dòng)作300的一個(gè)或多個(gè)其它動(dòng)作執(zhí)行之后重復(fù)。 動(dòng)作300可使用基于事件的編程和處理技術(shù),其中,各種動(dòng)作可響應(yīng)于特定事件執(zhí) 行,而無(wú)需以方法300所示的順序。
方法300及其動(dòng)作以及該方法和這些動(dòng)作的各種實(shí)施方式和變型可由實(shí)際上 嵌入到例如非易失性記錄介質(zhì)、集成電路存儲(chǔ)器元件或其組合的一個(gè)或多個(gè)計(jì)算機(jī) 可讀介質(zhì)上的計(jì)算機(jī)可讀信號(hào)獨(dú)立地或組合地定義。計(jì)算機(jī)可讀介質(zhì)可以是可由計(jì) 算機(jī)訪問(wèn)的任何可用介質(zhì)。作為示例而非限制,計(jì)算機(jī)可讀介質(zhì)可包括計(jì)算機(jī)存儲(chǔ) 介質(zhì)和通信介質(zhì)。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括以任何方法或技術(shù)實(shí)現(xiàn)用來(lái)存儲(chǔ)諸如計(jì)算機(jī) 可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù)的信息的易失性和非易失性、可移動(dòng)和 不可移動(dòng)介質(zhì)。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括,但不限于RAM、 ROM、 EEPROM、閃存或 其它存儲(chǔ)器技術(shù)、CD-ROM、數(shù)字多功能盤(DVD)或其它光學(xué)存儲(chǔ)、盒式磁帶、 磁帶、磁盤存儲(chǔ)或其它磁性存儲(chǔ)設(shè)備、其它類型的易失性和非易失性存儲(chǔ)器、可用 于存儲(chǔ)所需信息并且可由計(jì)算機(jī)訪問(wèn)的任何其它介質(zhì)、以及以上的任何合適組合。
通信介質(zhì)通常體現(xiàn)為在諸如載波或其它傳輸機(jī)制的調(diào)制數(shù)據(jù)信號(hào)中的計(jì)算機(jī) 可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù)。術(shù)語(yǔ)"調(diào)制數(shù)據(jù)信號(hào)"表示以在該信 號(hào)中編碼信息的方式設(shè)定或更改其特征的一個(gè)或多個(gè)的信號(hào)。作為示例而非限制, 通信介質(zhì)包括諸如接線網(wǎng)絡(luò)或直接接線連接的有線介質(zhì)、諸如聲學(xué)、RF、紅外的 無(wú)線介質(zhì)或其它無(wú)線介質(zhì)、其它類型的通信介質(zhì)、以及以上的任意適當(dāng)組合。
在一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)上具體化的計(jì)算機(jī)可讀信號(hào)可定義作為一個(gè)或 多個(gè)程序的一部分的指令,作為由計(jì)算機(jī)執(zhí)行的結(jié)果,這些指令指示計(jì)算機(jī)執(zhí)行本 文所述的功能中的一個(gè)或多個(gè)(例如方法300或其任何動(dòng)作)和/或各種實(shí)施方式、 變型及其組合。這種指令可以以各種編程語(yǔ)言中的任一種編寫,例如Java、 J#、 Visual Basic、 C、 C#、或C++、 Fortran、 Pascal、 Eiffd、 Basic、 COBOL等或其各 種組合中的任一種。這種指令所具體化的計(jì)算機(jī)可讀介質(zhì)可駐留在本文所述的系統(tǒng) 100、 200、 400和500中任一個(gè)的組件的一個(gè)或多個(gè)上,可在這種組件的一個(gè)或多 個(gè)上分布,并可在其間變換。
計(jì)算機(jī)可讀介質(zhì)可以是可運(yùn)輸?shù)?,使得可將存?chǔ)其上的指令加載到任何計(jì)算 機(jī)系統(tǒng)資源上以實(shí)現(xiàn)本文所述的本發(fā)明的諸方面。此外,應(yīng)該意識(shí)到,如上所述的 存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上的指令并不限于體現(xiàn)為作為在主機(jī)計(jì)算機(jī)上運(yùn)行的應(yīng)用
程序的一部分的指令。相反,這些指令可體現(xiàn)為可用于編程處理器以實(shí)現(xiàn)本發(fā)明的上述方面的任何類型的計(jì)算機(jī)代碼(例如軟件或微代碼)。
應(yīng)該意識(shí)到,執(zhí)行本文所述的功能的諸如相關(guān)于圖1、 2、 4和5描述的計(jì)算 機(jī)系統(tǒng)的計(jì)算機(jī)系統(tǒng)的多個(gè)組件的任何單個(gè)組件或組件集通常可被示為控制這些 功能的一個(gè)或多個(gè)控制器。一個(gè)或多個(gè)控制器可使用采用微代碼或軟件進(jìn)行編程以 實(shí)現(xiàn)上述功能或以上任意合適組合的處理器來(lái)以許多方法實(shí)現(xiàn),諸如使用專用軟件 和/或固件。
根據(jù)本發(fā)明的各種實(shí)施方式可在一個(gè)或多個(gè)計(jì)算機(jī)系統(tǒng)上實(shí)現(xiàn)。這些計(jì)算機(jī)
系統(tǒng)可以是例如基于Intel PENTIUM (因特爾奔騰)型處理器、摩托羅拉PowerPC、 Sun UltraSPARC^ Hewlett-Packard(惠普)PA-RISC處理器、可從超微半導(dǎo)體(AMD) 購(gòu)得的各種處理器中任一種或者任何其它類型的處理器的通用計(jì)算機(jī)。應(yīng)該意識(shí) 到,任何類型的計(jì)算機(jī)系統(tǒng)中的一個(gè)或多個(gè)可用于實(shí)現(xiàn)本發(fā)明的各個(gè)實(shí)施方式。
根據(jù)本發(fā)明的一實(shí)施方式的通用計(jì)算機(jī)系統(tǒng)被配置成執(zhí)行上述功能的一個(gè)或 多個(gè)。應(yīng)該意識(shí)到,該系統(tǒng)可執(zhí)行其它功能并且本發(fā)明并不限于具有任何特定功能 或功能集。
例如,本發(fā)明的各個(gè)方面可實(shí)現(xiàn)為在諸如圖4中所示的通用計(jì)算機(jī)系統(tǒng)400 上執(zhí)行的指定軟件。計(jì)算機(jī)系統(tǒng)400可包括連接到諸如磁盤驅(qū)動(dòng)器、存儲(chǔ)器或其它 用于存儲(chǔ)數(shù)據(jù)的設(shè)備的處理器403。存儲(chǔ)器404通常用于在計(jì)算機(jī)系統(tǒng)400的操作 期間存儲(chǔ)程序和數(shù)據(jù)。計(jì)算機(jī)系統(tǒng)400的組件可通過(guò)包括一個(gè)或多個(gè)總線(例如在 集成在同一機(jī)器中的組件之間)和/或網(wǎng)絡(luò)(例如駐留在分離離散機(jī)器上的組件之 間)的互連機(jī)制405來(lái)耦合?;ミB機(jī)制405可在系統(tǒng)400的系統(tǒng)組件之間實(shí)現(xiàn)通信
(例如數(shù)據(jù)、指令)。計(jì)算機(jī)系統(tǒng)400還包括一個(gè)或多個(gè)輸入設(shè)備402,諸如鍵盤、 鼠標(biāo)、跟蹤球、麥克風(fēng)、觸摸屏,以及一個(gè)或多個(gè)輸出設(shè)備401,諸如打印設(shè)備、 顯示屏、揚(yáng)聲器。此外,計(jì)算機(jī)系統(tǒng)400可包含將計(jì)算機(jī)系統(tǒng)400連接于通信網(wǎng)絡(luò)
(除了互連機(jī)制405之外,或者作為其替代)的一個(gè)或多個(gè)接口 (未示出)。
在圖5中更詳細(xì)示出的存儲(chǔ)系統(tǒng)406通常包括計(jì)算機(jī)可讀并且可寫的非易失 性記錄介質(zhì)501,在該介質(zhì)上存儲(chǔ)的信號(hào)定義了由處理器執(zhí)行的程序或者在介質(zhì) 501上或其中存儲(chǔ)的信息可由該程序處理。例如,該介質(zhì)可以是磁盤或閃存。通常 在操作中,處理器使數(shù)據(jù)從非易失性記錄介質(zhì)501讀取到允許由處理器比介質(zhì)501 更快速訪問(wèn)的另一存儲(chǔ)器502中。該存儲(chǔ)器502通常是諸如動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器
(DRAM)或靜態(tài)存儲(chǔ)器(SRAM)的易失性、隨機(jī)存取存儲(chǔ)器。它可如所示地位 于存儲(chǔ)系統(tǒng)406中或者位于存儲(chǔ)器系統(tǒng)404中(未示出)。處理器403通常操控集成電路存儲(chǔ)器404、 502中的數(shù)據(jù),然后在處理完成之后將數(shù)據(jù)拷貝到介質(zhì)501中。 用于在介質(zhì)501與集成電路存儲(chǔ)器單元404、 502之間管理數(shù)據(jù)移動(dòng)的各種機(jī)制是 已知的,并且本發(fā)明并不限于此。本發(fā)明并不限于特定存儲(chǔ)器系統(tǒng)404或存儲(chǔ)系統(tǒng) 406。
計(jì)算機(jī)系統(tǒng)可包括特定編程、專用硬件,諸如專用集成電路(ASIC)。本發(fā)明 的諸方面可在軟件、硬件或固件或其任意組合中實(shí)現(xiàn)。此外,這種方法、動(dòng)作、系 統(tǒng)、系統(tǒng)元素及其組件可實(shí)現(xiàn)為上述計(jì)算機(jī)系統(tǒng)的一部分或者實(shí)現(xiàn)為獨(dú)立組件。
雖然計(jì)算機(jī)系統(tǒng)400作為實(shí)踐本發(fā)明的不同方面的一種計(jì)算機(jī)系統(tǒng)而作為示 例示出,但是應(yīng)該意識(shí)到本方面的諸方面并不限于在圖4所示的計(jì)算機(jī)系統(tǒng)上實(shí) 現(xiàn)。本發(fā)明的不同方面可在具有與圖4所示不同的架構(gòu)和組件的一個(gè)或多個(gè)計(jì)算機(jī) 上實(shí)施。
計(jì)算機(jī)系統(tǒng)400可以是可使用高級(jí)計(jì)算機(jī)編程語(yǔ)言編程的通用計(jì)算機(jī)系統(tǒng)。 計(jì)算機(jī)系統(tǒng)400也可以用特定編程、專用硬件實(shí)現(xiàn)。在計(jì)算機(jī)系統(tǒng)400中,處理器 403通常是諸如可從因特爾公司購(gòu)買的公知的奔騰系列處理器的商用處理器。許多 其它處理器也可使用。這種處理器通常執(zhí)行操作系統(tǒng),諸如可從微軟公司購(gòu)買的 Windows 95、 Windows 98、 Windows NT 、 Windows 2000 (Windows ME)或 \^11(10 8@乂?操作系統(tǒng),可從蘋果計(jì)算機(jī)公司購(gòu)買的MAC OS System X,可從太 陽(yáng)微系統(tǒng)公司(Sun Microsystems)購(gòu)買的Solaris Operating System,可從各種來(lái)源 獲得的Linux或UNIX??梢允褂酶鞣N其它操作系統(tǒng)中的任一種。
處理器和操作系統(tǒng)一起定義了計(jì)算機(jī)平臺(tái),其中可以高級(jí)編程語(yǔ)言編寫應(yīng)用 程序。應(yīng)該理解,本發(fā)明并不限于特定計(jì)算機(jī)系統(tǒng)平臺(tái)、處理器、操作系統(tǒng)、或網(wǎng) 絡(luò)。而且,對(duì)本領(lǐng)域技術(shù)人員顯而易見(jiàn)的是本發(fā)明不限于特定編程語(yǔ)言或計(jì)算機(jī)系 統(tǒng),以及也可使用其它適當(dāng)編程語(yǔ)言和其它適當(dāng)計(jì)算機(jī)系統(tǒng)。
計(jì)算機(jī)系統(tǒng)的一個(gè)或多個(gè)部分可分布在耦合到通信網(wǎng)絡(luò)的一個(gè)或多個(gè)計(jì)算機(jī) 系統(tǒng)(未示出)。這些計(jì)算機(jī)系統(tǒng)也可以是通用計(jì)算機(jī)系統(tǒng)。例如,本發(fā)明的各個(gè) 方面可分布在配置成向一個(gè)或多個(gè)客戶端計(jì)算機(jī)提供服務(wù)(例如,服務(wù)器)或執(zhí)行 總的任務(wù)作為分布式系統(tǒng)一部分的一個(gè)或多個(gè)計(jì)算機(jī)系統(tǒng)上。,本發(fā)明的各個(gè)方面 可在包括分布在執(zhí)行根據(jù)本方面不同實(shí)施方式的各種功能的一個(gè)或多個(gè)服務(wù)器系 統(tǒng)上分布的組件的客戶機(jī)-服務(wù)器系統(tǒng)上執(zhí)行。這些組件可以是用通信協(xié)議(例如 TCP/IP)通過(guò)通信網(wǎng)絡(luò)(例如因特網(wǎng))傳遞的可執(zhí)行、中間(例如IL)或解釋(例 如Java)代碼。應(yīng)該意識(shí)到,本方面并不限于在任何系統(tǒng)或系統(tǒng)組上執(zhí)行,并且本發(fā)明不限 于任何特定分布的架構(gòu)、網(wǎng)絡(luò)或通信協(xié)議。
本發(fā)明的各個(gè)實(shí)施方式可用面向?qū)ο蟮木幊陶Z(yǔ)言來(lái)編程,諸如SmallTalk、 Java、 J#(J-Sharp)、 C++、 Ada或C# (C-Sharp)。也可以使用其它面向?qū)ο蟮木幊陶Z(yǔ) 言。或者,可以使用功能、腳本、和/或邏輯編程語(yǔ)言。本發(fā)明的各個(gè)方面可在非 編程環(huán)境中實(shí)現(xiàn)(例如在HTML、 XML或其它格式中創(chuàng)建的文檔,當(dāng)在瀏覽器程 序的窗口中瀏覽這些文檔時(shí)呈現(xiàn)圖形用戶界面(GUI)的諸方面或執(zhí)行其它功能)。 本發(fā)明的各個(gè)方面可被實(shí)現(xiàn)為已編程或未編程元件或其任意組合。此外,本發(fā)明的 各個(gè)實(shí)施方式可用可從微軟公司購(gòu)買的Microsoft⑧.NET技術(shù)來(lái)實(shí)現(xiàn)。
現(xiàn)在已經(jīng)描述了本發(fā)明的某些說(shuō)明性實(shí)施方式,對(duì)本領(lǐng)域技術(shù)人員顯而易見(jiàn) 的是以上僅為說(shuō)明性的而非限制,僅作為示例呈現(xiàn)。許多更改和其它說(shuō)明性實(shí)施方 式在本領(lǐng)域普通技術(shù)之一的范圍內(nèi),并且可以預(yù)期落在本發(fā)明的范圍內(nèi)。特別地, 雖然本文示出的許多示例涉及方法動(dòng)作或系統(tǒng)元件的具體組合,但是應(yīng)該理解這些
動(dòng)作和這些元件可以通過(guò)其它方式組合以實(shí)現(xiàn)同一目的。僅相關(guān)于一實(shí)施方式描述 的動(dòng)作、元件和特征并不旨在排除出其它實(shí)施方式中的類似角色。此外,對(duì)于所附 權(quán)利要求書中所述的一個(gè)或多個(gè)裝置加功能的描述,裝置不旨在限制于本文所述的 用于執(zhí)行所述功能的裝置,而是旨在涵蓋范圍內(nèi)的任何已知或以后開(kāi)發(fā)的用于執(zhí)行 所述功能的等效裝置。
權(quán)利要求中使用諸如"第一"、"第二"、"第三"等的序數(shù)詞來(lái)修飾權(quán)利要求 元素,其自身并不表示任何優(yōu)先級(jí)、先后次序、或一權(quán)利要求元素在另一個(gè)之前的 次序、或方法的動(dòng)作執(zhí)行的時(shí)間次序,而只是用作將具有特定名稱的一個(gè)權(quán)利要求 元件從具有相同名稱(但使用序數(shù)詞)的另一元件區(qū)分開(kāi)以區(qū)別權(quán)利要求元素。
權(quán)利要求
1. 一種在通信網(wǎng)絡(luò)的用戶設(shè)備上的系統(tǒng),用于使用存儲(chǔ)在作為所述通信網(wǎng)絡(luò)上與所述用戶設(shè)備分離的設(shè)備的網(wǎng)絡(luò)設(shè)備上的多維數(shù)據(jù)庫(kù)的至少一部分,所述多維數(shù)據(jù)庫(kù)由所述通信網(wǎng)絡(luò)上的多個(gè)用戶設(shè)備共享,所述系統(tǒng)包括存儲(chǔ)控制器,控制在所述用戶設(shè)備的非易失性存儲(chǔ)介質(zhì)上存儲(chǔ)所述多維數(shù)據(jù)庫(kù)的所述至少一部分的副本;以及查詢控制器,從在所述用戶設(shè)備上執(zhí)行的應(yīng)用程序接收對(duì)包含在所述多維數(shù)據(jù)庫(kù)的所述至少一部分中的信息片的請(qǐng)求,并控制從所述非易失性存儲(chǔ)介質(zhì)上的所述副本檢索所述信息片。
2. 如權(quán)利要求l所述的系統(tǒng),其特征在于,所述多維數(shù)據(jù)庫(kù)的所述至少一部 分包括作為所述至少一部分中包含的至少第二信息片的函數(shù)的至少第一信息片,以 及其中所述存儲(chǔ)控制器用于控制在所述非易失性存儲(chǔ)介質(zhì)上的所述副本中存儲(chǔ) 所述函數(shù),所述系統(tǒng)還包括函數(shù)控制器,響應(yīng)于所述應(yīng)用程序修改所述用戶設(shè)備的所述易失性存儲(chǔ)器中 所述第二信息片的值而對(duì)所述易失性存儲(chǔ)器中的所述第一信息片執(zhí)行所述函數(shù)。
3. 如權(quán)利要求2所述的系統(tǒng),其特征在于,所述函數(shù)控制器用于將所述函數(shù) 的執(zhí)行結(jié)果傳遞到所述應(yīng)用程序的用戶界面顯示,使得從所述函數(shù)執(zhí)行得到的所述 第一信息片的值得到顯示。
4. 如權(quán)利要求2所述的系統(tǒng),其特征在于,所述修改是在所述易失性存儲(chǔ)器 中對(duì)所述多維數(shù)據(jù)庫(kù)的所述至少一部分的副本中包含的一個(gè)或多個(gè)信息片進(jìn)行的 多個(gè)修改之一,所述系統(tǒng)還包括修改列表控制器,控制向表示所述多個(gè)修改的修改列表添加所述修改,所述 修改列表駐留在所述易失性存儲(chǔ)器中。
5. 如權(quán)利要求4所述的系統(tǒng),其特征在于,所述存儲(chǔ)控制器用于控制通過(guò)應(yīng) 用來(lái)自所述易失性存儲(chǔ)器的所述修改列表來(lái)更新所述非易失性存儲(chǔ)介質(zhì)上的所述 多維數(shù)據(jù)庫(kù)的所述至少一部分的副本。
6. 如權(quán)利要求4所述的系統(tǒng),其特征在于,所述存儲(chǔ)控制器用于控制將所述 修改列表存儲(chǔ)在所述非易失性存儲(chǔ)介質(zhì)上。
7. 如權(quán)利要求4所述的系統(tǒng),其特征在于,還包括服務(wù)器接口控制器,控制將所述修改列表從所述用戶設(shè)備發(fā)送到所述網(wǎng)絡(luò)設(shè)備。
8. 如權(quán)利要求l所述的系統(tǒng),其特征在于,還包括服務(wù)器接口控制器,用于從所述網(wǎng)絡(luò)設(shè)備接收指示對(duì)所述多維數(shù)據(jù)庫(kù)的所述 至少一部分的一個(gè)或多個(gè)修改的至少一個(gè)通信,以及用于控制響應(yīng)于所述至少一個(gè) 通信而將所述多維數(shù)據(jù)庫(kù)的所述至少一部分的本地副本與所述多維數(shù)據(jù)庫(kù)的所述 至少一部分的同步。
9. 一種使用駐留在通信網(wǎng)絡(luò)的網(wǎng)絡(luò)設(shè)備上的多維數(shù)據(jù)庫(kù)的至少一部分的方 法,所述多維數(shù)據(jù)庫(kù)由所述通信網(wǎng)絡(luò)上的多個(gè)用戶設(shè)備共享并且包括作為包含在所 述至少一部分中的至少第二信息片的函數(shù)的至少第一信息片,所述方法包括以下動(dòng) 作(A) 在作為與所述通信網(wǎng)絡(luò)上的所述網(wǎng)絡(luò)設(shè)備分離的設(shè)備的用戶設(shè)備的非易 失性存儲(chǔ)介質(zhì)上存儲(chǔ)所述多維數(shù)據(jù)庫(kù)的所述至少一部分的副本,包括在所述非易失 性存儲(chǔ)介質(zhì)上的所述副本中存儲(chǔ)所述函數(shù);以及(B) 響應(yīng)于應(yīng)用程序修改所述用戶設(shè)備上易失性存儲(chǔ)器中的所述第二信息片 的值,對(duì)所述易失性存儲(chǔ)器中的所述第一信息片執(zhí)行所述函數(shù)。
10. 如權(quán)利要求9所述的方法,其特征在于,所述修改是在所述易失性存儲(chǔ) 器中對(duì)所述多維數(shù)據(jù)庫(kù)的所述至少一部分的副本中包含的一個(gè)或多個(gè)信息片進(jìn)行 的多個(gè)修改之一,所述方法還包括以下動(dòng)作(E) 向表示所述多個(gè)修改的修改列表添加所述修改,所述修改列表駐留在所 述易失性存儲(chǔ)器中。
11. 如權(quán)利要求IO所述的方法,其特征在于,還包括以下動(dòng)作(F) 通過(guò)應(yīng)用來(lái)自所述易失性存儲(chǔ)器的所述修改列表來(lái)更新所述非易失性存 儲(chǔ)介質(zhì)上的所述多維數(shù)據(jù)庫(kù)的所述至少一部分的副本。
12. 如權(quán)利要求IO所述的方法,其特征在于,還包括以下動(dòng)作 (F)在所述非易失性存儲(chǔ)介質(zhì)上存儲(chǔ)所述修改列表。
13. 如權(quán)利要求IO所述的方法,其特征在于,還包括以下動(dòng)作(F) 將所述修改列表從所述用戶設(shè)備發(fā)送到所述網(wǎng)絡(luò)設(shè)備。
14. 如權(quán)利要求9所述的方法,其特征在于,還包括以下動(dòng)作(G) 從所述多維數(shù)據(jù)庫(kù)的所述至少一部分的副本生成報(bào)告。
15. 如權(quán)利要求9所述的方法,其特征在于,還包括(C) 從所述網(wǎng)絡(luò)設(shè)備接收指示對(duì)所述多維數(shù)據(jù)庫(kù)的所述至少一部分進(jìn)行的一 個(gè)或多個(gè)修改的至少一個(gè)通信;以及(D) 響應(yīng)于所述至少一個(gè)通信將所述多維數(shù)據(jù)庫(kù)的所述至少一部分的本地副 本與所述多維數(shù)據(jù)庫(kù)的所述至少一部分同步。
16. —種計(jì)算機(jī)程序產(chǎn)品,包括 計(jì)算機(jī)可讀介質(zhì);以及存儲(chǔ)在所述計(jì)算機(jī)可讀介質(zhì)上的定義指令的計(jì)算機(jī)可讀信號(hào),作為由計(jì)算機(jī) 執(zhí)行的結(jié)果,所述指令控制所述計(jì)算機(jī)執(zhí)行使用駐留在通信網(wǎng)絡(luò)的網(wǎng)絡(luò)設(shè)備上的多 維數(shù)據(jù)庫(kù)的至少一部分的進(jìn)程,所述多維數(shù)據(jù)庫(kù)由所述通信網(wǎng)絡(luò)上多個(gè)用戶設(shè)備共 享,所述進(jìn)程包括以下動(dòng)作(A) 從作為與所述通信網(wǎng)絡(luò)上的所述網(wǎng)絡(luò)設(shè)備分離的設(shè)備的用戶設(shè)備向所述 網(wǎng)絡(luò)設(shè)備發(fā)送對(duì)所述多維數(shù)據(jù)庫(kù)的至少一部分的副本的請(qǐng)求;(B) 在所述用戶設(shè)備處接收所述多維數(shù)據(jù)庫(kù)的所述至少一部分的副本;以及(C) 在所述用戶設(shè)備的非易失性存儲(chǔ)介質(zhì)上存儲(chǔ)所述多維數(shù)據(jù)庫(kù)的所述至少 一部分的副本。
17. 如權(quán)利要求16所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述方法還包括以下動(dòng)作(D) 響應(yīng)于來(lái)自在用戶設(shè)備上執(zhí)行的應(yīng)用程序的對(duì)包含在所述多維數(shù)據(jù)庫(kù)的 所述至少一部分中的信息片的請(qǐng)求,從所述非易失性存儲(chǔ)介質(zhì)上的所述副本檢索所 述信息片。
18. 如權(quán)利要求16所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述多維數(shù)據(jù)庫(kù)的所述至少一部分包括作為包含在所述至少一部分中的至少第二信息片的函數(shù)的至 少第一信息片,以及其中所述動(dòng)作(A)包括將所述函數(shù)存儲(chǔ)在所述非易失性存儲(chǔ)介質(zhì)上的所述副本中,所述計(jì)算機(jī)可讀介質(zhì)還包括以下動(dòng)作(c)響應(yīng)于所述應(yīng)用程序修改所述用戶設(shè)備上易失性存儲(chǔ)器中所述第二信息片的值,對(duì)所述易失性存儲(chǔ)器中的所述第一信息片執(zhí)行所述函數(shù)。
19. 如權(quán)利要求18所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述修改是在所述易失性存儲(chǔ)器中對(duì)所述多維數(shù)據(jù)庫(kù)的所述至少一部分的副本中包含的一個(gè)或多個(gè)信息片進(jìn)行的多個(gè)修改之一,所述進(jìn)程還包括以下動(dòng)作(E) 向表示所述多個(gè)修改的修改列表添加所述修改,所述修改列表駐留在所 述易失性存儲(chǔ)器中。
20.如權(quán)利要求19所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述進(jìn)程還包括以下動(dòng)作(F) 將所述修改列表從所述用戶設(shè)備發(fā)送到所述網(wǎng)絡(luò)設(shè)備。
全文摘要
對(duì)于多維數(shù)據(jù)庫(kù)(諸如作為OLAP系統(tǒng)的一部分)的用戶,可將多維數(shù)據(jù)庫(kù)的至少一部分的副本(即本地立方)高速緩存到用戶設(shè)備本地。然后,用戶可查詢本地立方而非多維數(shù)據(jù)庫(kù)服務(wù)器。此外,本地立方可不僅包括來(lái)自數(shù)據(jù)庫(kù)的數(shù)據(jù)還包括表示數(shù)據(jù)片之間依賴性的函數(shù)。用戶設(shè)備上的報(bào)告工具可被配置成與本地立方通信,使得用戶可使用報(bào)告工具以通過(guò)訪問(wèn)來(lái)自本地立方的數(shù)據(jù)和函數(shù)而在本地(例如易失性)存儲(chǔ)器中“如果…則…”的場(chǎng)景中試驗(yàn)。例如,可以設(shè)置將所有查詢從前端報(bào)告工具引導(dǎo)到本地高速緩存數(shù)據(jù)的瘦客戶機(jī)端查詢層。
文檔編號(hào)G06F17/30GK101523388SQ200680027186
公開(kāi)日2009年9月2日 申請(qǐng)日期2006年7月25日 優(yōu)先權(quán)日2005年7月25日
發(fā)明者H·黃, S·V·拉瑪納坦, X·M·楊 申請(qǐng)人:微軟公司