欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

用于企業(yè)軟件系統(tǒng)的高速緩存的制作方法

文檔序號:6553198閱讀:462來源:國知局
專利名稱:用于企業(yè)軟件系統(tǒng)的高速緩存的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及軟件系統(tǒng),具體而言涉及用于從企業(yè)軟件系統(tǒng)高速緩存數(shù)據(jù)的技術(shù)。
背景技術(shù)
企業(yè)軟件系統(tǒng)通常很復(fù)雜,并且是能夠支持,例如,幾百或幾千個并發(fā)用戶的大規(guī)模系統(tǒng)。企業(yè)軟件系統(tǒng)的例子包括財務(wù)規(guī)劃系統(tǒng)、預(yù)算規(guī)劃系統(tǒng)、訂單管理系統(tǒng)、庫存管理系統(tǒng)、銷售人員管理系統(tǒng)、商業(yè)智能工具、企業(yè)報表工具、項目和資源管理系統(tǒng)以及其他企業(yè)軟件系統(tǒng)。
可以將用戶通過網(wǎng)絡(luò)連接至企業(yè)軟件系統(tǒng)。典型地,用戶裝置包括至少一個高速緩存,以存儲用戶請求的數(shù)據(jù)。以這種方法,能夠提高系統(tǒng)性能,因為能夠在本地從高速緩存滿足未來的數(shù)據(jù)請求,而不必從企業(yè)軟件系統(tǒng)反復(fù)檢索相同的數(shù)據(jù)。很多常規(guī)的高速緩存方案都比較復(fù)雜,并且要采用數(shù)據(jù)庫應(yīng)用,例如,來自華盛頓雷德蒙的Microsoft Corporation的AccessTM。
就企業(yè)規(guī)劃系統(tǒng)而言,在某些環(huán)境下,用戶可能并行運行幾個軟件應(yīng)用,例如建模工具和報表工具。在這種情況下,高速緩存必須能夠處理來自多個軟件模塊的并發(fā)數(shù)據(jù)請求。但是,常規(guī)高速緩存技術(shù)通常在處理軟件模塊爭用方面存在困難,或者根本不允許對高速緩存并行訪問。此外,由于高速緩存繼續(xù)存儲檢索到的數(shù)據(jù),因而高速緩存所需的大量的存儲空間可能破壞用戶裝置的操作,通常需要用戶介入以減小高速緩存的容量。

發(fā)明內(nèi)容
總體來講,本發(fā)明涉及從諸如企業(yè)軟件系統(tǒng)的軟件系統(tǒng)高速緩存數(shù)據(jù)的技術(shù)。例如,所述技術(shù)提供了對簡明的、基于文件的高速緩存中的數(shù)據(jù)的有效存儲和檢索。所述高速緩存包括存儲被高速緩存的數(shù)據(jù)的對象存儲器和管理所述對象存儲器內(nèi)的空間的分配的分配表。所述技術(shù)提供了魯棒的存儲系統(tǒng),其保存所述分配表的前一拷貝,同時更新當前表格。此外,所述技術(shù)包括自動壓縮,從而使所述高速緩存文件大小保持最小。
例如,可以將所述技術(shù)應(yīng)用于通過網(wǎng)絡(luò)連接至企業(yè)軟件系統(tǒng)的計算裝置。當在所述計算裝置上執(zhí)行的軟件模塊請求來自所述軟件系統(tǒng)的數(shù)據(jù)時,如本文所述,將數(shù)據(jù)本地存儲在高速緩存內(nèi)。通過這種方式,高速緩存能夠允許計算系統(tǒng)在本地滿足對先前請求的數(shù)據(jù)的未來請求,而不必從遠程企業(yè)軟件系統(tǒng)中重復(fù)檢索相同的數(shù)據(jù),由此能夠提高系統(tǒng)性能。
可以在計算裝置上執(zhí)行多個軟件應(yīng)用。所述技術(shù)允許通過多個軟件應(yīng)用對所述高速緩存并行訪問,同時保持所存儲的數(shù)據(jù)的完整性。例如,所述高速緩存提供了互斥對象(mutex),以確保每一軟件應(yīng)用從所述高速緩存檢索到最新數(shù)據(jù)。
在一個實施例中,通過計算機實現(xiàn)的系統(tǒng)包括高速緩存和多個軟件應(yīng)用。所述高速緩存包括用于存儲數(shù)據(jù)的對象存儲器和多個用于管理所述對象存儲器中的存儲空間的分配的分配表;所述分配表包括激活分配表和至少一個非激活分配表。所述在計算機的操作環(huán)境內(nèi)執(zhí)行的多個軟件應(yīng)用利用所述激活分配表訪問所述對象存儲器內(nèi)的被高速緩存的數(shù)據(jù)。
在另一個實施例中,一種方法包括將數(shù)據(jù)存儲在位于計算裝置上的高速緩存的對象存儲器內(nèi),并采用多個分配表管理所述對象存儲器內(nèi)的存儲空間的分配。所述分配表包括激活分配表和至少一個非激活分配表。所述方法還包括在所述計算裝置上執(zhí)行多個軟件應(yīng)用,其中,所述多個軟件應(yīng)用利用所述激活分配表訪問所述對象存儲器中被高速緩存的數(shù)據(jù)。所述方法還包括在所述多個軟件應(yīng)用中的一個完成高速緩存操作之后,將所述激活分配表切換至所述分配表中的下一個。
在另一實施例中,一種計算機可讀介質(zhì)包括使計算裝置的可編程處理器執(zhí)行下述操作的指令將數(shù)據(jù)存儲在位于計算裝置上的高速緩存的對象存儲器內(nèi),并采用多個分配表管理所述對象存儲器內(nèi)的空間的分配,其中,所述分配表包括激活分配表和至少一個非激活分配表。所述指令還使所述可編程處理器在所述計算裝置上執(zhí)行多個軟件應(yīng)用,其中,所述多個軟件應(yīng)用利用所述激活分配表訪問所述對象存儲器中的被高速緩存的數(shù)據(jù),以及在所述多個軟件應(yīng)用中的一個執(zhí)行高速緩存操作之后,將所述激活分配表切換至所述分配表中的下一個。
在另一個實施例中,通過計算機實現(xiàn)的系統(tǒng)包括高速緩存和多個軟件應(yīng)用。所述高速緩存包括對象存儲器和分配表。所述對象存儲器存儲元數(shù)據(jù)分配和關(guān)鍵字分配,所述的每一關(guān)鍵字分配包括使所述關(guān)鍵字分配與所述數(shù)據(jù)分配中的一個相關(guān)的鏈接表。所述多個軟件應(yīng)用利用所述分配表訪問被高速緩存到所述對象存儲器內(nèi)的數(shù)據(jù)。
在其他實施例中,一種方法包括將數(shù)據(jù)存儲到位于計算裝置上的高速緩存的對象存儲器內(nèi),以及將關(guān)鍵字存儲到所述高速緩存的對象存儲器內(nèi)。所述對象存儲器將數(shù)據(jù)和關(guān)鍵字作為獨立的分配加以存儲,所述關(guān)鍵字分配包括使所述關(guān)鍵字分配與所述數(shù)據(jù)分配相關(guān)的鏈接表。所述方法還包括采用所述高速緩存的分配表管理所述對象存儲器內(nèi)的分配,并在所述計算裝置上執(zhí)行多個軟件應(yīng)用。所述軟件應(yīng)用利用所述分配表訪問被高速緩存到所述對象存儲器內(nèi)的數(shù)據(jù)。
在另一實施例中,一種計算機可讀介質(zhì)包括使計算裝置的可編程處理器執(zhí)行下述操作的指令將數(shù)據(jù)存儲在位于計算裝置上的高速緩存的對象存儲器內(nèi),以及將關(guān)鍵字存儲在所述高速緩存的所述對象存儲器內(nèi),其中,所述對象存儲器將數(shù)據(jù)和關(guān)鍵字存儲為單獨的分配,所述關(guān)鍵字分配包括使所述關(guān)鍵字分配與所述數(shù)據(jù)分配相關(guān)的鏈接表。所述指令還使所述可編程處理器執(zhí)行下述操作采用所述高速緩存的分配表管理所述對象存儲器內(nèi)的分配,以及在所述計算裝置上執(zhí)行多個軟件應(yīng)用,其中,所述軟件應(yīng)用利用分配表訪問所述對象存儲器內(nèi)的被高速緩存的數(shù)據(jù)。
在另一個實施例中,一種企業(yè)規(guī)劃系統(tǒng)包括遠程數(shù)據(jù)庫系統(tǒng)和計算裝置。所述數(shù)據(jù)庫系統(tǒng)存儲定義多個節(jié)點的建模數(shù)據(jù)和與每一所述節(jié)點相關(guān)的企業(yè)規(guī)劃數(shù)據(jù)。所述計算裝置包括多個企業(yè)規(guī)劃軟件應(yīng)用以及包括對象存儲器和分配表的高速緩存。所述企業(yè)規(guī)劃軟件應(yīng)用訪問所述企業(yè)規(guī)劃數(shù)據(jù)并執(zhí)行企業(yè)規(guī)劃對話。所述高速緩存存儲從所述遠程數(shù)據(jù)庫系統(tǒng)檢索的企業(yè)規(guī)劃數(shù)據(jù),以供所述企業(yè)規(guī)劃軟件應(yīng)用使用。
在附圖和下面的說明中給出了本發(fā)明的一個或多個實施例的細節(jié)。顯然,可以通過說明書和附圖,以及通過權(quán)利要求發(fā)現(xiàn)本發(fā)明的其他特征、目的和優(yōu)點。


圖1是示出了計算環(huán)境的例子的方框圖,在所述計算環(huán)境中,有多個用戶與企業(yè)規(guī)劃系統(tǒng)交互作用,所述企業(yè)規(guī)劃系統(tǒng)能夠?qū)崿F(xiàn)并自動執(zhí)行自頂向下的目標與詳細的自底向上的預(yù)測的協(xié)調(diào)。
圖2是示出了用于與圖1中的企業(yè)規(guī)劃系統(tǒng)交互作用的遠程計算裝置的一個實施例的方框圖。
圖3是更為詳細地示出了圖2所示的計算裝置的部分的方框圖。
圖4示出了由所述計算裝置維持的用于高速緩存數(shù)據(jù)的對象存儲器。
圖5更為詳細地示出了圖4所示的對象存儲器內(nèi)包括的鏈接表。
圖6是示出了圖3所示的部件的示范性操作的流程圖。
圖7示出了這里所述的高速緩存的示范性分配表,其用于分配對應(yīng)的對象存儲器上的空間。
圖8是示出了圖7所示的分配表的示范性操作的流程圖。
圖9示出了由三個分配表構(gòu)成的示范性系統(tǒng),其用于管理局部高速緩存,以提供魯棒的存儲。
圖10是示出了圖9所示的分配表系統(tǒng)的示范性操作的流程圖。
具體實施例方式
圖1是示出了示例企業(yè)4的方框圖,所述企業(yè)具有計算環(huán)境10,其中,有多個用戶12A-12N(總稱“用戶12”)與企業(yè)規(guī)劃系統(tǒng)14交互作用。在圖1所示的系統(tǒng)中,企業(yè)系統(tǒng)14通過網(wǎng)絡(luò)18以能夠通信的方式耦合至多個計算裝置16A-16N(總稱為“計算裝置16”)。用戶12與它們各自的計算裝置交互作用,以訪問企業(yè)規(guī)劃系統(tǒng)14。
出于示范性目的,將參考諸如企業(yè)財務(wù)或預(yù)算規(guī)劃系統(tǒng)的企業(yè)規(guī)劃系統(tǒng)描述本發(fā)明??梢詫⑦@里描述的技術(shù)容易地應(yīng)用到其他軟件系統(tǒng)當中,包括大規(guī)模企業(yè)軟件系統(tǒng)。企業(yè)軟件系統(tǒng)的例子包括訂單管理系統(tǒng)、庫存管理系統(tǒng)、銷售人員管理系統(tǒng)、商業(yè)智能工具、企業(yè)報表工具、項目和資源管理系統(tǒng)以及其他企業(yè)軟件系統(tǒng)。
一般而言,企業(yè)規(guī)劃系統(tǒng)14能夠為企業(yè)實現(xiàn)并自動執(zhí)行自頂向下的目標與自底向上的預(yù)測的協(xié)調(diào)。企業(yè)規(guī)劃系統(tǒng)14實現(xiàn)并管理企業(yè)規(guī)劃過程,其可以被分為三個功能(1)建模,(2)投稿和(3)協(xié)調(diào)。
最初,被稱為分析員的高級企業(yè)管理者或執(zhí)行官定義組織目標,并為企業(yè)建立規(guī)劃模型。例如,分析員可以包括財務(wù)分析師,例如,首席財務(wù)官、資深財務(wù)分析師或者產(chǎn)品和銷售分析員。更具體地說,分析員開發(fā)出模型,所述模型具有很多分級布置的、表示組織內(nèi)部的各種成本中心的節(jié)點,例如所述成本中心可以是業(yè)務(wù)單位或部門。分析員為組織階級的每一節(jié)點指定團體目標數(shù)據(jù)。團體目標數(shù)據(jù)可以包括財務(wù)數(shù)據(jù)、稅務(wù)數(shù)據(jù)、訂單數(shù)據(jù)、庫存數(shù)據(jù)等,其取決于企業(yè)正在執(zhí)行的特定企業(yè)規(guī)劃活動。之后,分析員向每一節(jié)點分配一個或多個企業(yè)用戶,例如管理者、監(jiān)察者、銷售代表、實驗室管理者等,他們負責對應(yīng)于所述節(jié)點的成本中心企業(yè)規(guī)劃??梢詫⒚恳黄髽I(yè)用戶指定為投稿者,其向企業(yè)規(guī)劃系統(tǒng)14提供規(guī)劃數(shù)據(jù),或者將其指定為審查者,其接受或駁回來自投稿者的投稿,或者將其同時指定為投稿者和審查者。投稿者和審查者可以是企業(yè)內(nèi)部或者耦合至網(wǎng)絡(luò)18的其他實體(例如供應(yīng)商或客戶)內(nèi)部的授權(quán)用戶。
接下來,被指定為投稿者的企業(yè)用戶12與企業(yè)規(guī)劃系統(tǒng)14交互作用,以輸入具有投稿數(shù)據(jù)的形式的詳細預(yù)測。如上所述,企業(yè)用戶12可以提供詳細的財務(wù)預(yù)測、稅務(wù)預(yù)測、訂單預(yù)測、庫存預(yù)測、估計的資源需求等,其取決于企業(yè)正在執(zhí)行的特定企業(yè)規(guī)劃活動。
企業(yè)規(guī)劃系統(tǒng)14使預(yù)測數(shù)據(jù)與分析員提供的團體目標數(shù)據(jù)的協(xié)調(diào)自動化。具體而言,企業(yè)規(guī)劃系統(tǒng)14根據(jù)所定義的模型,即根據(jù)由分析員創(chuàng)建的企業(yè)規(guī)劃模型操作,以提供具有多個協(xié)調(diào)級別的分級規(guī)劃過程。由于每一投稿者都提供他或她的投稿數(shù)據(jù),因而企業(yè)規(guī)劃系統(tǒng)14自動地實時收集整個企業(yè)的投稿數(shù)據(jù),并為被指定為與企業(yè)的較高級別相關(guān)的審查者的企業(yè)用戶12提供對所收集的數(shù)據(jù)的訪問。具體而言,在從投稿者接收到投稿數(shù)據(jù)的同時,企業(yè)規(guī)劃系統(tǒng)14確定受到最新接收的投稿數(shù)據(jù)影響的組織模型的所有較高級別,并實時計算每一級別的新的總和。
因而,審查者在企業(yè)規(guī)劃對話期內(nèi)實時審查整個企業(yè)的集合數(shù)據(jù)。在每一級別內(nèi),企業(yè)規(guī)劃系統(tǒng)14確保如企業(yè)模型的節(jié)點所定義的審查者能夠使預(yù)測數(shù)據(jù)與目標數(shù)據(jù)協(xié)調(diào)。例如,每一審查者可以考慮到分析員提供的團體目標而拒絕或接受投稿數(shù)據(jù)。這一過程一直持續(xù)到組織階層的最高級最終批準投稿數(shù)據(jù)為止,由此確保來自投稿者的投稿數(shù)據(jù)與分析員提供的團體目標協(xié)調(diào)。
通過這種方式,企業(yè)規(guī)劃系統(tǒng)14提供的企業(yè)規(guī)劃能夠比采用傳統(tǒng)方法得到的企業(yè)規(guī)劃更為精確。例如,企業(yè)規(guī)劃系統(tǒng)14可以使組織能夠利用詳細的預(yù)測協(xié)調(diào)團體模型和組織目標,由此提高企業(yè)規(guī)劃的準確性和預(yù)見性。所述技術(shù)可以提供一個平臺,所述平臺能夠提供協(xié)作的實時規(guī)劃能力,而不需要對預(yù)測進行離線整理和集合。由于企業(yè)規(guī)劃系統(tǒng)14能夠?qū)崟r集合投稿數(shù)據(jù),因此能夠向所有的用戶12提供對數(shù)字的準確的、最新的查看。此外,企業(yè)規(guī)劃系統(tǒng)14的架構(gòu)能夠容易地擴展至數(shù)千用戶,并且可以圍繞最佳規(guī)劃做法對其進行設(shè)計。此外,所述技術(shù)實現(xiàn)了企業(yè)用戶12,即投稿者和審查者的高度參與,從而減少了精確規(guī)劃周期。
企業(yè)用戶12可以采用各種計算裝置,經(jīng)由網(wǎng)絡(luò)18與企業(yè)規(guī)劃系統(tǒng)14交互作用。例如,企業(yè)用戶可以采用運行web瀏覽器的膝上型計算機、臺式計算機等與企業(yè)規(guī)劃系統(tǒng)14交互,例如,所述web瀏覽器可以是華盛頓雷德蒙的Microsoft Corporation的InternetExplorerTM?;蛘?,企業(yè)用戶可以采用個人數(shù)字助理(PDA)、能夠?qū)崿F(xiàn)web功能的移動電話或類似裝置,例如,所述PDA可以是加利福尼亞圣克拉拉的Palm Inc.的PalmTM管理器。
網(wǎng)絡(luò)18表示任何通信網(wǎng)絡(luò),例如,Internet等基于分組的數(shù)字網(wǎng)絡(luò)。通過這種方式,系統(tǒng)10能夠容易地擴展為適應(yīng)大型企業(yè)。企業(yè)用戶12可以通過局域網(wǎng)直接訪問企業(yè)規(guī)劃系統(tǒng)14,或者可以通過虛擬專用網(wǎng)絡(luò)、遠程撥號或類似的遠程訪問通信機制對企業(yè)規(guī)劃系統(tǒng)14遠程訪問。
企業(yè)規(guī)劃系統(tǒng)14可以利用“切削”過程,通過該過程根據(jù)所定義的企業(yè)模型將多維數(shù)據(jù)存儲器“切片”給每一用戶12。在這一過程中,企業(yè)規(guī)劃系統(tǒng)14確定分配作為投稿者或?qū)彶檎叩挠脩?2的、所定義的模型的區(qū)域,并根據(jù)所述分配“切削”數(shù)據(jù)存儲器。在指定用戶12登陸并進行企業(yè)規(guī)劃活動時,企業(yè)規(guī)劃系統(tǒng)14通過擴展的電子表格應(yīng)用將對應(yīng)的數(shù)據(jù)片傳遞給對應(yīng)的計算裝置16,進而顯示給用戶。在這種方式當中,企業(yè)規(guī)劃系統(tǒng)14不必向每一用戶12傳遞整個模型,由此降低了通信時間以及資源要求。相反,每一用戶只接收到了相關(guān)信息。用戶12與計算裝置16交互,以俘獲投稿數(shù)據(jù),并使投稿數(shù)據(jù)與組織目標協(xié)調(diào)。
如本文所述,每一計算裝置16可以保持至少一個高速緩存(圖1中未示出),從而對相應(yīng)的用戶12請求的來自企業(yè)規(guī)劃系統(tǒng)14的數(shù)據(jù)進行本地存儲。根據(jù)文中描述的技術(shù),每一計算裝置16為來自高速緩存的數(shù)據(jù)提供有效的存儲和檢索,在一個實施例中可以將所述高速緩存實現(xiàn)為基于文件的高速緩存。如進一步的說明所示,所述高速緩存包括用于存儲受到高速緩存的數(shù)據(jù)的對象存儲器。在一個實施例中,所述對象存儲器將所存儲的數(shù)據(jù)與關(guān)鍵字鏈接,所述對象存儲器還包括管理對象存儲器內(nèi)的空間分配的一個或多個分配表。在一些實施例中,企業(yè)規(guī)劃系統(tǒng)14還可以利用文中描述的技術(shù)實現(xiàn)有效高速緩存方案。
在下文中將予以更詳細說明的高速緩存技術(shù)提供了魯棒的存儲系統(tǒng),并且可以根據(jù)需要自動壓縮高速緩存,從而保持高速緩存的大小為最低。此外,在計算裝置16上實現(xiàn)的客戶端高速緩存通過可以在每一所述計算裝置上執(zhí)行的多個軟件應(yīng)用支持并行訪問,同時保持所存儲的數(shù)據(jù)的完整性。
圖2是示出了用于與企業(yè)規(guī)劃系統(tǒng)14交互作用的計算裝置16A的一個實施例的方框圖。在所述示范性實施例中,計算裝置16A包括web瀏覽器20、永久存儲器26、一個或多個規(guī)劃應(yīng)用28以及分配表管理器29。將計算引擎22和數(shù)據(jù)立方體24安裝在web瀏覽器20內(nèi),以備在企業(yè)規(guī)劃對話期內(nèi)使用。
永久存儲器26包括多個高速緩存27,因而能夠?qū)σ?guī)劃對話期內(nèi)所需的數(shù)據(jù)進行本地高速緩存。永久存儲器26可以包括永久計算機可讀介質(zhì)。通過這種方式,高速緩存27允許計算系統(tǒng)16A在本地滿足對高速緩存后的數(shù)據(jù)的未來請求,因而不必從企業(yè)規(guī)劃系統(tǒng)14或數(shù)據(jù)立方體24中反復(fù)檢索相同的數(shù)據(jù)。
在一個實施例中,計算引擎22包括嵌入在通過基于數(shù)組的語言建立的Active X內(nèi)的正向計算引擎22。在企業(yè)規(guī)劃實例中,用戶12A可以與web瀏覽器20交互作用,以輸入并操作預(yù)算或預(yù)測數(shù)據(jù)。數(shù)據(jù)立方體24含有可以包括自頂向下的目標和自底向上的投稿數(shù)據(jù)的規(guī)劃數(shù)據(jù),并允許計算裝置16A在本地執(zhí)行企業(yè)規(guī)劃對話期內(nèi)的所有計算。因此,在這一例子中,投稿者能夠修改其相應(yīng)的投稿數(shù)據(jù),并執(zhí)行企業(yè)規(guī)劃過程所需的計算,而不必訪問企業(yè)規(guī)劃系統(tǒng)14。換言之,可以通過計算裝置16A在本地維護(例如,作為ActiveX組件)計算引擎22和數(shù)據(jù)立方體24。用戶12A可以在本地存儲規(guī)劃數(shù)據(jù),并將所述規(guī)劃數(shù)據(jù)提交給企業(yè)規(guī)劃系統(tǒng)14,從而與其他用戶12提交的規(guī)劃數(shù)據(jù)集合。企業(yè)規(guī)劃系統(tǒng)14自動地實時集合整個企業(yè)4的投稿數(shù)據(jù),并向與企業(yè)的較高級別相關(guān)的審查者提供對集合數(shù)據(jù)的訪問。這一過程一直持續(xù)到與組織階層的最高級相關(guān)的審查者最終批準投稿數(shù)據(jù)為止,由此確保來自投稿者的投稿數(shù)據(jù)與分析員提供的共同目標協(xié)調(diào)。在其他實施例中,可以只在企業(yè)規(guī)劃系統(tǒng)14上維護計算引擎22和數(shù)據(jù)立方體24,并在計算裝置16上本地安裝計算引擎22和數(shù)據(jù)立方體24。
規(guī)劃應(yīng)用28表示可以在計算裝置16A上同時執(zhí)行的軟件應(yīng)用。例如,規(guī)劃應(yīng)用28可以包括報表工具、建模工具、電子表格應(yīng)用、數(shù)據(jù)收集模版、商業(yè)智能工具或其他類型的企業(yè)規(guī)劃應(yīng)用。
如圖2所示,計算裝置16A包括高速緩存27,其用于對規(guī)劃應(yīng)用28或用戶12A請求的數(shù)據(jù),例如從企業(yè)規(guī)劃系統(tǒng)14或數(shù)據(jù)立方體24請求的數(shù)據(jù)進行本地存儲。高速緩存27的例子包括用于存儲在線規(guī)劃應(yīng)用所采用的數(shù)據(jù)的在線高速緩存、用于存儲離線規(guī)劃應(yīng)用所采用的數(shù)據(jù)的離線高速緩存、用于存儲軟件擴展所采用的數(shù)據(jù)的擴展高速緩存以及用于存儲計算引擎22所采用的數(shù)據(jù)的“jce”高速緩存。
計算裝置16A為來自高速緩存27的數(shù)據(jù)提供了有效的存儲與檢索。例如,可以將高速緩存27實現(xiàn)為基于文件的高速緩存,其不依賴于諸如Microsoft Access的數(shù)據(jù)庫應(yīng)用。因此,高速緩存27可以實現(xiàn)更為簡明的高速緩存技術(shù),其包括的足印比常規(guī)高速緩存更小。
應(yīng)用于高速緩存27的高速緩存管理技術(shù)提供了魯棒的存儲系統(tǒng),并且可以根據(jù)需要自動壓縮高速緩存27,從而保持高速緩存文件大小最小化。當某一高速緩存27內(nèi)的文件的數(shù)量或所述高速緩存的總大小達到上限時,計算裝置16A可以啟動壓縮。用戶12A可以設(shè)置上限。在其他情況下,計算裝置16A可以基于計算裝置16A上可用的自由空間的量設(shè)置所述上限。用戶12A還可以隨時啟動對一個或多個高速緩存27的壓縮。對高速緩存27之一的壓縮實際上通過去除未使用的空間并重新組織文件結(jié)構(gòu)而使高速緩存的總大小最小化,由此“清理”了所述高速緩存。
高速緩存管理技術(shù)允許通過規(guī)劃應(yīng)用28并行訪問高速緩存27。為了使每一規(guī)劃應(yīng)用28并行訪問高速緩存27,每一高速緩存27可以包括互斥對象(mutex)。所述mutex允許某一規(guī)劃應(yīng)用在訪問高速緩存時將高速緩存27中的一個相對于其他規(guī)劃應(yīng)用鎖定。通過這種方式,所述高速緩存管理技術(shù)確保了每一規(guī)劃應(yīng)用28能夠從高速緩存27檢索當前數(shù)據(jù)。
計算裝置16A還包括分配表管理器29。如以下將要更詳細介紹的,每一高速緩存27包括用于存儲被高速緩存的數(shù)據(jù)并使被高速緩存的數(shù)據(jù)與關(guān)鍵字鏈接的對象存儲器。每一高速緩存27還包括管理對象存儲器內(nèi)的空間的分配的分配表。每一規(guī)劃應(yīng)用28可以利用分配表管理器29創(chuàng)建來自每一高速緩存27的分配表的實例。此外,分配表管理器29提供了應(yīng)用編程接口(API),其將高速緩存操作傳達給高速緩存27。規(guī)劃應(yīng)用28對每一高速緩存27內(nèi)的分配表執(zhí)行高速緩存操作。
在一些實施例中,永久存儲器26可以包括一個或多個插件程序(未示出),其應(yīng)用于高速緩存27,從而在將數(shù)據(jù)存留在磁盤上之前執(zhí)行數(shù)據(jù)變換。一個插件程序可以包括壓縮模塊,其用于自動壓縮被高速緩存的數(shù)據(jù),以及在用戶12A需要時對數(shù)據(jù)解壓縮。通過這種方式,可能產(chǎn)生額外的高速緩存,因為壓縮數(shù)據(jù)放棄了高速緩存27內(nèi)的存儲空間。因此,壓縮插件程序能夠使計算裝置16A不是那么頻繁地壓縮高速緩存27。另一插件程序包括加密模塊,其用于對被高速緩存的數(shù)據(jù)加密,以及在用戶12A需要時對數(shù)據(jù)解密。在某些情況下,永久存儲器26包括兩個或更多用于高速緩存27的插件程序。在這種情況下,與向高速緩存27內(nèi)存儲數(shù)據(jù)相比,在檢索數(shù)據(jù)時,所述兩個或更多插件程序按照相反順序執(zhí)行。
圖3是更為詳細地示出了計算裝置16A的部分的方框圖。出于舉例說明的目的,圖3示出了連接至單個高速緩存的規(guī)劃應(yīng)用28。在其他實施例中,每一規(guī)劃應(yīng)用28可以連接至多個高速緩存。如圖3所示,高速緩存27A(例如,圖2所示的高速緩存27之一)包括基于文件的高速緩存,其包括對象存儲器30和分配表32。對象存儲器30存儲被高速緩存的數(shù)據(jù),分配表32管理對象存儲器30中的空間的分配。在一個例子中,對象存儲器30內(nèi)的空間分配可以存儲關(guān)鍵字對象、數(shù)據(jù)對象或元數(shù)據(jù)對象。
分配表32中列舉的每一分配對應(yīng)于對象存儲器30內(nèi)的空間的分配,并且包括與所述分配相關(guān)的一組屬性。例如,分配表32可以包括距第一分配的分配偏移量、分配的大小、所述分配當中的自由空間的量以及表示所述分配是否激活的標志。存儲在對象存儲器30內(nèi)的每一關(guān)鍵字對象可以包括鏈接表或其他用于將所述關(guān)鍵字與存儲在對象存儲器30的其他位置的相應(yīng)的被高速緩存的數(shù)據(jù)對象相聯(lián)系的數(shù)據(jù)。在某些情況下,所述鏈接表還可以使關(guān)鍵字與一個或多個相應(yīng)元數(shù)據(jù)對象相聯(lián)系。所述鏈接表可以引用分配表32,以確定所需數(shù)據(jù)對象的偏移量。之后,可以采用所述偏移量在對象存儲器30內(nèi)對所述數(shù)據(jù)對象定位。通過這種方式,高速緩存27A利用了簡明、有效的、基于文件的高速緩存過程。
例如,分配表管理器29可以具有包括分配表管理器類別的動態(tài)鏈接庫(DLL)。每一規(guī)劃應(yīng)用28可以對具有所述分配表管理器類別的相應(yīng)分配表管理器對象36加以例示。分配表管理器對象36A-36N(總稱為“分配表管理器對象36”)中的每者均開放應(yīng)用編程接口(API),規(guī)劃應(yīng)用28通過所述API與高速緩存27A交互作用。
在所示的實施例中,API包括通信接口37A-37N(總稱為“通信接口37”)。通信接口37將連接和斷開請求以及高速緩存操作從對應(yīng)的規(guī)劃應(yīng)用28傳達給高速緩存27A??梢酝ㄟ^通信接口37實現(xiàn)的高速緩存操作的例子包括選擇、插入、更新、刪除和壓縮。分配表管理器對象36對分配表32執(zhí)行高速緩存操作。例如,選擇由某一規(guī)劃應(yīng)用28使用的分配、插入新的分配、更新現(xiàn)有的分配、刪除分配(即,將某一分配標記為非激活)或壓縮分配表32。
例如,要想將規(guī)劃應(yīng)用28A連接至高速緩存27,那么通信接口37A接收來自高速緩存27A的信息,并采用所述信息建立連接。即使在不訪問高速緩存27A時,規(guī)劃應(yīng)用28A也可以保持連接至高速緩存27A。因此,每一規(guī)劃應(yīng)用28可以同時連接至高速緩存27A。一旦將規(guī)劃應(yīng)用28連接至高速緩存27A,那么分配表管理器對象36就可以分別創(chuàng)建來自高速緩存27A的分配表的表格實例38A-38N(總稱為“表格實例38”)。每一分配表管理器對象36將分配表32的內(nèi)容讀到與對應(yīng)的規(guī)劃應(yīng)用28相關(guān)的存儲器內(nèi)。
在對分配表32執(zhí)行高速緩存操作之前,分配表管理器對象36A比較表格實例38A與分配表32的差異。分配表32可以包括位于首部內(nèi)的全局唯一標識符(guid),其在每次對分配表32進行修改時改變。如果與表格實例38A相關(guān)的guid和與分配表32相關(guān)的guid不匹配,那么分配表管理器對象36將更新表格實例38A。分配表32內(nèi)的每一分配也可以包括guid??梢詫⑴c特定分配相關(guān)的guid與表格實例38A內(nèi)的對應(yīng)分配的guid相比較。因此,分配表管理器對象36A可以只重新加載兩個文件之間不同的那些分配,即熱加載。但是,在某些情況下,分配表管理器對象36A可以將整個分配表32重新加載到表格實例38A中,即冷加載。
之后,分配表管理器對象36A可以基于表格實例38A執(zhí)行來自軟件應(yīng)用28A的高速緩存操作,以修改存儲在高速緩存27A中的對象存儲器30內(nèi)的數(shù)據(jù)。所述高速緩存操作可以包括最小單位操作,其針對對表格實例38A執(zhí)行的每一操作打開、修改和關(guān)閉分配表32。
為了允許規(guī)劃應(yīng)用28對高速緩存27A并行訪問,應(yīng)用表格管理器對象36利用了共享mutex,以控制對高速緩存的訪問。所述mutex允許某一規(guī)劃應(yīng)用28將高速緩存27A相對于其他規(guī)劃應(yīng)用鎖定,同時對高速緩存27A進行訪問。通過這種方式,所述高速緩存管理技術(shù)確保了每一規(guī)劃應(yīng)用28從高速緩存27A檢索當前數(shù)據(jù)。
圖4更為詳細地示出了圖3所示的對象存儲器30的一個實施例。在所示的實施例中,對象存儲器30包括存儲關(guān)鍵字對象40、元數(shù)據(jù)對象42和數(shù)據(jù)對象44的分配。關(guān)鍵字對象40包括用于定義將所述關(guān)鍵字與對應(yīng)的被高速緩存的數(shù)據(jù)對象44相聯(lián)系的鏈接表41的數(shù)據(jù)。鏈接表41還將關(guān)鍵字40與多達十四個對應(yīng)的元數(shù)據(jù)對象42鏈接。
圖5更為詳細地示出了圖4所示的鏈接表41的一個實施例。鏈接表41提供確定用于分配表32內(nèi)的每一對象的相應(yīng)分配條目的序數(shù),由此將關(guān)鍵字對象40與元數(shù)據(jù)對象42以及數(shù)據(jù)對象44鏈接。換言之,所述序數(shù)確認了分配表32內(nèi)的分配條目,所述條目確定對象存儲器30內(nèi)的每一對應(yīng)分配的屬性(例如,偏移量和大小)。通過這種方式,鏈接表41將關(guān)鍵字對象40與元數(shù)據(jù)對象42和數(shù)據(jù)對象44有效地“鏈接”。在這一例子中,鏈接表41包括關(guān)鍵字序數(shù)46、數(shù)據(jù)序數(shù)47和元數(shù)據(jù)序數(shù)48A-48N(總稱為“元數(shù)據(jù)序數(shù)48”)。在某些情況下,可能沒有元數(shù)據(jù)對象42鏈接至關(guān)鍵字對象40;因此,鏈接表41將含有針對元數(shù)據(jù)序數(shù)48的空值數(shù)據(jù)。在其他情況下,可以將多達十四個元數(shù)據(jù)對象鏈接至關(guān)鍵字對象40。在這種情況下,鏈接表41內(nèi)可以包括多達十四個元數(shù)據(jù)序數(shù)48。
將每一關(guān)鍵字對象40、元數(shù)據(jù)對象42和數(shù)據(jù)對象44作為單獨的分配而高速緩存在對象存儲器30內(nèi)。為了使規(guī)劃應(yīng)用28檢索數(shù)據(jù)對象44,分配表管理器對象36遍歷對象存儲器30內(nèi)的分配,以尋找關(guān)鍵字對象40。如果所述分配是激活的,并且包括關(guān)鍵字對象40,那么分配表管理器對象36將采用鏈接表41確定數(shù)據(jù)序數(shù)47。之后,分配表管理器對象36采用數(shù)據(jù)序數(shù)47對分配表32內(nèi)的對應(yīng)分配列表定位。所述分配列表可以包括所需數(shù)據(jù)對象44的偏移量。之后,分配表管理器對象36采用所述偏移量從對象存儲器30恢復(fù)數(shù)據(jù)對象44。
圖6是示出了圖3所示的部件的示范性操作的流程圖。最初,通過例示表格管理器對象36,并調(diào)用由對應(yīng)的通信接口37暴露的鏈接方法,將一個或多個規(guī)劃應(yīng)用28連接至高速緩存27A(50)。這時,分配表管理器對象36由高速緩存27A內(nèi)的分配表32在存儲器內(nèi)創(chuàng)建表格實例38,可以將其存儲在文件當中(52)。
接下來,任何分配表管理器對象36都可以從某一相應(yīng)規(guī)劃應(yīng)用28(例如規(guī)劃應(yīng)用28A)接收將對分配表32執(zhí)行的高速緩存操作(54)。所述高速緩存操作的例子包括選擇、插入、更新、刪除和壓縮。在執(zhí)行高速緩存操作之前,該例子中的分配表管理器對象36A打開分配表32,并讀取分配表32的首部。如上所述,分配表32可以包括位于首部內(nèi)的guid,其在每次修改分配表32時發(fā)生改變。之后,分配表管理器對象36A將表格實例38A的guid與分配表32的guid比較(56)。
如果所述表格實例guid等于所述分配表的guid(由“是”從58引出的分支),那么分配表管理器36A可以訪問高速緩存27A(72)。換言之,如果表格實例38A與分配表32是通用的,那么分配表管理器36A可以基于表格實例38A執(zhí)行高速緩存操作,以修改存儲在高速緩存27A中的對象存儲器30內(nèi)的數(shù)據(jù)。所述高速緩存操作可以包括最小單位操作,其針對對表格實例38A執(zhí)行的每一操作打開、修改和關(guān)閉分配表32。
如果所述表格實例guid不等于分配表guid(由“否”從58引出的分支),那么分配表管理器對象36A讀取分配表32內(nèi)的每一分配的首部。分配表32內(nèi)的每一分配也可以包括位于首部內(nèi)的guid,其在每次修改所述分配時發(fā)生改變。之后,分配表管理器對象36A將表格實例分配的guid與對應(yīng)的分配表分配的guid比較(60)。這使分配表管理器對象36A能夠只向表格實例38A重新加載修改過的分配。在某些情況下,分配表管理器對象36A可能無法向表格實例38A執(zhí)行分配表32的熱加載。相反,分配表管理器對象36A可以清空表格實例38A,并執(zhí)行分配表32的冷加載。
如果表格實例分配guid等于分配表分配guid(由“是”從62引出的分支),那么分配表管理器對象36A讀取分配表32中的下一分配的首部(由“是”從70引出的分支,60)。當分配表32內(nèi)的所有分配都和表格實例38A內(nèi)的分配比較過之后(由“否”從70引出的分支),分配表管理器對象36A訪問高速緩存27A(72)。
如果任何表格實例分配的首部與分配表分配首部都不相等(由“否”從62引出的分支),那么分配表管理器對象36A更新表格實例38A中的分配(64)。當在表格實例38A中更新激活的分配時(由“是”從66引出的分支),分配表管理器對象36A加載對應(yīng)于所述分配的對象(68)。所述對象可以包括關(guān)鍵字對象、數(shù)據(jù)對象和元數(shù)據(jù)對象。一旦將所述對象加載到表格實例38A中之后,或者如果更新的分配沒有激活(由“否”從66引出的分支),那么分配表管理器對象36A讀取分配表32中的下一分配的首部(由“是”從70引出的分支,60)。在比較完所有的分配之后(由“否”從70引出的分支),分配表管理器對象36A訪問高速緩存27A,并基于更新的表格實例38A執(zhí)行所請求的操作(72)。
通過這種方式,分配表管理器對象36確保了表格實例38含有當前分配,而不必將分配表32完全重新加載到表格實例38中。此外,規(guī)劃應(yīng)用28可以基于最新表格實例38,通過分配表管理器對象36執(zhí)行最小單元高速緩存操作,其修改高速緩存內(nèi)的對象存儲器30和分配表32。
圖7示出了這里所述的高速緩存的示范性分配表80,其管理對應(yīng)的對象存儲器的空間分配。圖8是示出了圖7所示的分配表80的示范性操作的流程圖。分配表80的操作基本類似于圖3所示的分配表32。在所示的實施例中,分配表80包括兩個分配,第一分配82和第二分配83。分配82和83每者可以包括關(guān)鍵字對象、數(shù)據(jù)對象或元數(shù)據(jù)對象中的任何一個。
分配82和83包括與所述分配相關(guān)的一組屬性。如圖7所示,所述一組屬性可以包括距第一分配82的偏移量、分配的大小、所述分配當中的自由空間的量以及表示所述分配是否激活的標志。在這一例子中,激活標志包括布爾邏輯標志。第一分配82是大小為100的非激活分配。第二分配83是大小為50的激活分配,并且距第一分配82的偏移量為100。
參考圖8,假設(shè)規(guī)劃應(yīng)用最初向分配表80添加了某一大小的分配(86)。如果在分配表80內(nèi)沒有大到足以容納新的分配的非激活分配(由“否”從87引出的分支),那么分配表80創(chuàng)建新的激活分配(88)。例如,如圖7所示,當規(guī)劃應(yīng)用在分配表80中插入大小為200的分配時,分配表80將創(chuàng)建新的分配84,因為非激活第一分配82沒有大到足以容納新的分配的大小。第三分配84為大小為200的激活分配,其距第一分配82的偏移量為150。
如果分配表80包括大到足以容納新的分配的非激活分配(由“是”從87引出的分支),那么分配表80將現(xiàn)有分配設(shè)置為激活態(tài)(90)。但是,現(xiàn)有分配的大小可能大于新的分配所需要的大小。在這種情況下,所述分配含有自由空間。當分配中的自由空間小于再分配門限時(由“否”從92引出的分支),那么分配表80將所述自由空間保留在所述分配中(94)。
例如,如圖7所示,規(guī)劃應(yīng)用可以插入大小為75的分配。在這一例子中,第一分配82大到足以處理新的分配。那么第一分配82變?yōu)榇笮?5的激活第一定位82A,并具有25的單位的自由空間。例如,分配表80可以包括再分配門限50。因此,分配表80將所述自由空間保留在第一分配82A內(nèi)。
當分配中的自由空間大于再分配門限時(由“是”從92引出的分支),那么分配表80為所述自由空間創(chuàng)建新的非激活分配(96)。例如,如圖7所示,規(guī)劃應(yīng)用可以插入大小為25的分配。第一分配82再次具有大到足以處理新的分配的大小。在這種情況下,第一分配82變成大小為25的激活第一分配82B,并具有75個單位的自由空間。由于分配表80包括再分配門限50,因而分配表80為來自第一分配82B的自由空間創(chuàng)建第四分配85。第四分配85是大小為75的非激活分配,其距第一分配82B的偏移量為25。之后,將所述激活的第一分配82B內(nèi)的自由空間設(shè)為零(98)。
如圖7所示,分配表80內(nèi)的分配未必處于以所述偏移量值為基礎(chǔ)的順序內(nèi)。相反,每一分配包括如上所述的序數(shù),僅當對所述高速緩存執(zhí)行作為清理機制的壓縮時,所述序數(shù)才發(fā)生改變。
上述分配過程提供了對高速緩存的空間的有效利用。采用所述再分配門限控制是否在現(xiàn)有分配內(nèi)創(chuàng)建針對自由空間的新的分配。由于高速緩存通常適于大的數(shù)據(jù)塊,因而使較小的分配,即處于再分配門限之下的分配保持在原始分配當中。文中描述的高速緩存管理技術(shù)的分配效率可以降低必須壓縮高速緩存的頻率。對高速緩存的壓縮可能傾向于擾亂與每一分配相關(guān)的序數(shù)。因此,由規(guī)劃應(yīng)用創(chuàng)建的任何表格實例在發(fā)生壓縮之后都可能需要來自分配表的冷加載。
圖9示出了采用多個(這一例子中為三個)分配表管理高速緩存,從而為高速緩存提供魯棒的存儲的示范性技術(shù)。圖10是示出了圖9所示的分配表系統(tǒng)的示范性操作的流程圖。在這一例子中,示出了第一分配表100、第二分配表102和第三分配表104,它們當中的每者基本類似于圖3所示的分配表32和圖7所示的分配表80。輪流采用所述三個分配表提供魯棒的存儲系統(tǒng),在下文中將對其進一步說明。具體而言,采用所述分配表的方式為自動保存先前采用的分配表的拷貝,同時更新當前分配表。
具體而言,在給定周期內(nèi),分配表100、102和104中只有一個是激活的。與所述分配表100、102和104中的每者相關(guān)的首部可以包括一字節(jié),通過轉(zhuǎn)換所述字節(jié)可以將相應(yīng)的分配表有選擇地設(shè)置為激活分配表。
在該實施例中,分配表管理器對象36采用這樣的高速緩存管理技術(shù),其在每次對當前表格執(zhí)行最小單元操作時自動選擇新的分配表。單個最小單元操作可以將不超過兩個分配追加到分配表上。就周期105而言,前一最小單元操作導(dǎo)致了將分配0和分配1追加到第一分配表100上。
在周期105內(nèi),例如,第一分配表100是激活的,規(guī)劃應(yīng)用可以對激活分配表執(zhí)行最小單元高速緩存操作(圖10中的110)。結(jié)果,分配表管理器對象36將當前激活的表格(即分配表100)拷貝到了下一分配表(即,分配表102)中(112)。在這種情況下,將第一分配表100內(nèi)的兩個當前分配拷貝到第二分配表102中。
之后,分配表管理器對象36可以將由對當前激活的分配表100執(zhí)行的最小單元高速緩存操作導(dǎo)致的任何變化保存到第二分配表102內(nèi)(113)。就周期105而言,最小單元操作導(dǎo)致了將分配2和分配3追加到第二分配表102上。通過這種方式,高速緩存管理技術(shù)確保了當前激活的分配表保持完好。接下來,將分配表102設(shè)置為激活分配表(114)。
在圖9所示的例子中,在周期106內(nèi),第二分配表102是激活表格。所述魯棒的存儲過程以循環(huán)的方式繼續(xù)。例如,在周期106內(nèi),訪問高速緩存,從而導(dǎo)致將當前激活的分配表102拷貝到下一分配表(即第三分配表104)中。高速緩存操作將分配4和分配5追加到第三分配表104上。在成功地完成了對高速緩存操作的執(zhí)行之后,第三分配表104變?yōu)橛糜谠谥芷?07中使用的激活分配表,并包含了所有來自第二分配表102的分配。為了繼續(xù)這一例子,將第三分配表104拷貝到第一分配表100中。在最小單元操作之后,可以在周期107內(nèi)將分配6和分配7追加到第一分配表100上。之后,在周期108內(nèi),分配表管理器對象36將第一分配表100設(shè)為激活分配表。
如圖9所示,可以在存儲器中將分配表100、102和104作為一個連續(xù)的數(shù)據(jù)塊加以維護,將第三分配表104拷貝到第一分配表100覆蓋了第一分配表100。此外,在周期107內(nèi),向第一分配表100追加分配6和分配7也覆蓋了第二分配表102。但是,由于對于每一最小單位操作只能追加兩個分配,因而不能覆蓋第三分配表104。通過這種方式,每次切換激活分配表,先前的分配表都能保持完好。當斷電或其他故障破壞了激活分配表時,可以在恢復(fù)過程中容易地采用前一分配表的備份。
已經(jīng)描述了本發(fā)明的各種實施例。盡管文中是參考諸如企業(yè)財務(wù)規(guī)劃系統(tǒng)或預(yù)算規(guī)劃系統(tǒng)的企業(yè)規(guī)劃系統(tǒng)而做的說明,但是也可以將所述高速緩存技術(shù)工程容易地應(yīng)用到其他軟件系統(tǒng)當中,包括其他大規(guī)模的企業(yè)軟件系統(tǒng)。企業(yè)軟件系統(tǒng)的例子包括訂單管理系統(tǒng)、庫存管理系統(tǒng)、銷售人員管理系統(tǒng)、商業(yè)智能工具、企業(yè)報表工具、項目和資源管理系統(tǒng)以及其他企業(yè)軟件系統(tǒng)。此外,可以在任何類型的計算裝置上,包括在服務(wù)器、用戶計算機、膝上型電腦和其他裝置上實施所述技術(shù)。這些和其他實施例均處于權(quán)利要求的范圍內(nèi)。
權(quán)利要求
1.一種計算機實現(xiàn)的系統(tǒng),包括高速緩存,其包括用于存儲數(shù)據(jù)的對象存儲器和用于管理所述對象存儲器中的存儲空間的分配的多個分配表,其中,所述分配表包括激活分配表和至少一個非激活分配表;以及在計算機操作環(huán)境內(nèi)執(zhí)行的多個軟件應(yīng)用,其中,所述軟件應(yīng)用利用所述激活分配表訪問所述對象存儲器內(nèi)的被高速緩存的數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的系統(tǒng),還包括至少一個在計算機的操作環(huán)境內(nèi)執(zhí)行的分配表管理器,其中,所述分配表管理器在所述多個軟件應(yīng)用執(zhí)行完每一高速緩存操作之后,指定所述分配表中不同的一個作為激活分配表。
3.根據(jù)權(quán)利要求2所述的系統(tǒng),其中,所述分配表管理器將當前激活的分配表拷貝到所述分配表中不同的一個當中,并在所述多個軟件應(yīng)用中的一個對當前激活的分配表執(zhí)行高速緩存操作時,將變化保存到所述分配表拷貝當中。
4.根據(jù)權(quán)利要求3所述的系統(tǒng),其中,將所述多個分配表作為連續(xù)的存儲塊存儲,使得在任何時候所述多個分配表中的至少一個存儲著先前激活的分配表的拷貝。
5.根據(jù)權(quán)利要求2所述的系統(tǒng),其中,所述多個分配表包括N個分配表,所述分配表管理器將不超過N-1個分配追加到所述分配表中的不同的一個上,之后將所述分配表中的所述不同的一個指定為激活分配表。
6.根據(jù)權(quán)利要求2所述的系統(tǒng),其中,所述高速緩存操作包括分配插入、分配刪除、分配更新、分配選擇或分配表壓縮之一。
7.根據(jù)權(quán)利要求2所述的系統(tǒng),其中,所述高速緩存操作包括最小單元操作。
8.根據(jù)權(quán)利要求1所述的系統(tǒng),其中,將所述對象存儲器存儲在永久計算機可讀介質(zhì)上。
9.根據(jù)權(quán)利要求1所述的系統(tǒng),其中,所述多個分配表包括由所述激活分配表和兩個非激活分配表構(gòu)成的三個分配表。
10.根據(jù)權(quán)利要求1所述的系統(tǒng),其中,所述對象存儲器包括多個分配,其中,每一分配存儲數(shù)據(jù)、元數(shù)據(jù)或關(guān)鍵字。
11.根據(jù)權(quán)利要求10所述的系統(tǒng),其中,每一關(guān)鍵字包括使所述關(guān)鍵字與所述數(shù)據(jù)分配中的相應(yīng)一個相關(guān)的鏈接表。
12.根據(jù)權(quán)利要求11所述的系統(tǒng),其中,所述每一關(guān)鍵字的鏈接表包括使所述關(guān)鍵字與一個或多個元數(shù)據(jù)分配相關(guān)的條目。
13.根據(jù)權(quán)利要求1所述的系統(tǒng),還包括分配表管理器類別,其中,所述多個軟件應(yīng)用中的每者例示具有所述分配表管理器類別的相應(yīng)分配表管理器對象,并且所述分配表管理器對象開放用于與所述高速緩存通信的應(yīng)用編程接口(API)。
14.根據(jù)權(quán)利要求13所述的系統(tǒng),其中,所述分配表管理器對象將對應(yīng)的軟件應(yīng)用連接至所述高速緩存,從所述高速緩存創(chuàng)建所述激活分配表的實例,并基于所述表格實例執(zhí)行來自所述對應(yīng)的軟件應(yīng)用的高速緩存操作。
15.根據(jù)權(quán)利要求1所述的系統(tǒng),還包括遠程數(shù)據(jù)庫系統(tǒng),其用于存儲定義多個節(jié)點的建模數(shù)據(jù)和與每一所述節(jié)點相關(guān)的企業(yè)規(guī)劃數(shù)據(jù),其中,所述軟件應(yīng)用包括企業(yè)規(guī)劃軟件應(yīng)用,其訪問所述企業(yè)規(guī)劃數(shù)據(jù)并執(zhí)行企業(yè)規(guī)劃對話,并且其中,所述高速緩存存儲從所述遠程數(shù)據(jù)庫系統(tǒng)檢索的企業(yè)規(guī)劃數(shù)據(jù),以供所述企業(yè)規(guī)劃軟件應(yīng)用使用。
16.一種方法,包括將數(shù)據(jù)存儲在位于計算裝置上的高速緩存的對象存儲器內(nèi);采用多個分配表管理所述對象存儲器內(nèi)的存儲空間的分配,其中,所述分配表包括激活分配表和至少一個非激活分配表;在所述計算裝置上執(zhí)行多個軟件應(yīng)用,其中,所述多個軟件應(yīng)用利用所述激活分配表訪問所述對象存儲器中被高速緩存的數(shù)據(jù);以及在所述多個軟件應(yīng)用中的一個完成高速緩存操作之后,將所述激活分配表切換至所述分配表中的下一個。
17.根據(jù)權(quán)利要求16所述的方法,其中,所述激活分配表的切換包括將所述激活分配表中列出的分配拷貝到所述分配表中的下一個當中;將來自所述高速緩存操作的變化保存到所述分配表中的下一個當中,以及將所述分配表中的下一個設(shè)為激活分配表。
18.根據(jù)權(quán)利要求16所述的方法,其中,執(zhí)行來自所述多個軟件應(yīng)用中的一個的高速緩存操作包括將最多兩個分配追加到所述分配表中的下一個上。
19.根據(jù)權(quán)利要求16所述的方法,其中,所述多個軟件應(yīng)用中的每者例示具有分配表管理器類別的相應(yīng)分配表管理器對象,所述方法還包括向所述分配表管理器對象發(fā)送連接消息,從而將對應(yīng)的軟件應(yīng)用連接至所述高速緩存;利用所述分配表管理器對象創(chuàng)建所述激活分配表的實例;以及基于所述表格實例執(zhí)行來自所述對應(yīng)的軟件應(yīng)用的高速緩存操作。
20.根據(jù)權(quán)利要求19所述的方法,其中,所述分配表包括全局唯一標識符(guid),所述方法還包括在更新所述激活分配表時改變所述激活分配表的所述guid;在執(zhí)行所述高速緩存操作之前,將與所述分配表相關(guān)的所述guid和與所述表格實例相關(guān)的guid相比較;以及在所述標識符不相等時更新所述表格實例。
21.根據(jù)權(quán)利要求20所述的方法,其中,所述分配表包括所述對象存儲器中的分配的列表,每一所述分配包括guid,所述方法還包括在修改對應(yīng)的分配時更新相應(yīng)的guid;將與每一所列出的分配相關(guān)的guid和與所述表格實例中對應(yīng)的分配相關(guān)的guid比較;以及當所述guid不相等時更新所述表格實例中的對應(yīng)分配。
22.根據(jù)權(quán)利要求16所述的方法,還包括存儲定義企業(yè)的多個節(jié)點的建模數(shù)據(jù);存儲與每一所述節(jié)點相關(guān)的企業(yè)規(guī)劃數(shù)據(jù);采用所述企業(yè)規(guī)劃數(shù)據(jù)通過所述軟件應(yīng)用執(zhí)行企業(yè)規(guī)劃對話;以及將從數(shù)據(jù)庫系統(tǒng)檢索到的企業(yè)規(guī)劃數(shù)據(jù)存儲到所述高速緩存中,以備所述軟件應(yīng)用將來之用。
23.一種計算機可讀介質(zhì),其包括使計算裝置的可編程處理器執(zhí)行下述操作的指令將數(shù)據(jù)存儲在位于計算裝置上的高速緩存的對象存儲器內(nèi);采用多個分配表管理所述對象存儲器內(nèi)的存儲空間的分配,其中,所述分配表包括激活分配表和至少一個非激活分配表;在所述計算裝置上執(zhí)行多個軟件應(yīng)用,其中,所述多個軟件應(yīng)用利用所述激活分配表訪問所述對象存儲器中被高速緩存的數(shù)據(jù);以及在所述多個軟件應(yīng)用中的一個完成高速緩存操作之后,將所述激活分配表切換至所述分配表中的下一個。
24.一種計算機實現(xiàn)的系統(tǒng),包括高速緩存,其包括對象存儲器和分配表,其中,所述對象存儲器存儲數(shù)據(jù)分配和關(guān)鍵字分配,每一所述關(guān)鍵字分配包括使相應(yīng)的關(guān)鍵字分配與所述數(shù)據(jù)分配之一相關(guān)的鏈接表;以及多個軟件應(yīng)用,其利用所述分配表訪問所述對象存儲器內(nèi)被高速緩存的數(shù)據(jù)。
25.根據(jù)權(quán)利要求24所述的系統(tǒng),其中,所述對象存儲器存儲元數(shù)據(jù)分配,所述每一關(guān)鍵字分配的鏈接表包括使所述相應(yīng)的關(guān)鍵字分配與一個或多個元數(shù)據(jù)分配相關(guān)的條目。
26.根據(jù)權(quán)利要求24所述的系統(tǒng),其中,將所述對象存儲器存儲在永久計算機可讀介質(zhì)上。
27.根據(jù)權(quán)利要求24所述的系統(tǒng),其中,每一所述關(guān)鍵字分配中的所述鏈接表包括針對所述關(guān)鍵字分配和數(shù)據(jù)分配的分配表序數(shù)。
28.根據(jù)權(quán)利要求24所述的系統(tǒng),其中,所述分配表包括所述高速緩存內(nèi)的多個分配表中的激活的一個。
29.根據(jù)權(quán)利要求28所述的系統(tǒng),還包括分配表管理器,其在所述多個軟件應(yīng)用完成每一高速緩存操作之后,循環(huán)指定所述分配表中的不同的一個作為所述激活分配表。
30.根據(jù)權(quán)利要求29所述的系統(tǒng),其中,所述分配表管理器將當前激活的分配表拷貝到所述多個分配表中的一個當中,并在所述多個軟件應(yīng)用中的一個對當前激活的分配表執(zhí)行高速緩存操作時,將變化保存到所述分配表拷貝當中。
31.根據(jù)權(quán)利要求24所述的系統(tǒng),還包括遠程數(shù)據(jù)庫系統(tǒng),其用于存儲定義多個節(jié)點的建模數(shù)據(jù)和與每一所述節(jié)點相關(guān)的企業(yè)規(guī)劃數(shù)據(jù)。其中,所述軟件應(yīng)用包括企業(yè)規(guī)劃軟件應(yīng)用,其訪問所述企業(yè)規(guī)劃數(shù)據(jù)并執(zhí)行企業(yè)規(guī)劃對話,并且其中,所述高速緩存存儲從所述遠程數(shù)據(jù)庫系統(tǒng)檢索的企業(yè)規(guī)劃數(shù)據(jù),以供所述企業(yè)規(guī)劃軟件應(yīng)用使用。
32.一種方法,包括將數(shù)據(jù)存儲在位于計算裝置上的高速緩存的對象存儲器內(nèi);將關(guān)鍵字存儲在所述高速緩存的所述對象存儲器內(nèi),其中,所述對象存儲器將數(shù)據(jù)和關(guān)鍵字存儲為獨立的分配,所述關(guān)鍵字分配包括使所述關(guān)鍵字分配與所述數(shù)據(jù)分配相關(guān)的鏈接表;利用所述高速緩存的分配表管理所述對象存儲器中的分配;以及在所述計算裝置上執(zhí)行多個軟件應(yīng)用,其中,所述軟件應(yīng)用利用所述分配表訪問所述對象存儲器中被高速緩存的數(shù)據(jù)。
33.根據(jù)權(quán)利要求32所述的方法,還包括將元數(shù)據(jù)作為獨立分配存儲在所述對象存儲器內(nèi),其中,所述鏈接表使所述關(guān)鍵字與一個或多個所述元數(shù)據(jù)分配相關(guān)。
34.根據(jù)權(quán)利要求32所述的方法,其中,訪問所述被高速緩存的數(shù)據(jù)包括遍歷所述對象存儲器,以查找所需的關(guān)鍵字分配;讀取所需的關(guān)鍵字分配的鏈接表,以確定對應(yīng)的數(shù)據(jù)分配的分配表序數(shù);基于所述序數(shù)在所述分配表中對對應(yīng)的數(shù)據(jù)分配列表定位;以及采用所述數(shù)據(jù)分配列表中包括的分配偏移量從所述對象存儲器中恢復(fù)數(shù)據(jù)。
35.根據(jù)權(quán)利要求32所述的方法,其中,所述多個軟件應(yīng)用中的每個例示具有分配表管理器類別的相應(yīng)分配表管理器對象,所述方法還包括向所述分配表管理器對象發(fā)送連接消息,從而將所述對應(yīng)的軟件應(yīng)用連接至所述高速緩存;利用所述分配表管理器對象創(chuàng)建所述激活分配表的實例;以及基于所述表格實例,訪問由所述對應(yīng)的軟件應(yīng)用請求的被高速緩存的數(shù)據(jù)。
36.根據(jù)權(quán)利要求32所述的方法,還包括存儲定義企業(yè)的多個節(jié)點的建模數(shù)據(jù);存儲與每一所述節(jié)點相關(guān)的企業(yè)規(guī)劃數(shù)據(jù);利用所述企業(yè)規(guī)劃數(shù)據(jù)通過所述軟件應(yīng)用執(zhí)行企業(yè)規(guī)劃對話;以及將從所述數(shù)據(jù)庫系統(tǒng)檢索到的企業(yè)規(guī)劃數(shù)據(jù)存儲到所述高速緩存中,以備所述軟件應(yīng)用將來之用。
37.一種計算機可讀介質(zhì),其包括使計算裝置的可編程處理器執(zhí)行下述操作的指令將數(shù)據(jù)存儲在位于計算裝置上的高速緩存的對象存儲器內(nèi);將關(guān)鍵字存儲在所述高速緩存的所述對象存儲器內(nèi),其中,所述對象存儲器將數(shù)據(jù)和關(guān)鍵字存儲為獨立的分配,所述關(guān)鍵字分配包括使所述關(guān)鍵字分配與所述數(shù)據(jù)分配相關(guān)的鏈接表;利用所述高速緩存的分配表管理所述對象存儲器中的分配;以及在所述計算裝置上執(zhí)行多個軟件應(yīng)用,其中,所述軟件應(yīng)用利用所述分配表訪問所述對象存儲器中被高速緩存的數(shù)據(jù)。
38.一種企業(yè)規(guī)劃系統(tǒng),包括遠程數(shù)據(jù)庫系統(tǒng),其用于存儲定義多個節(jié)點的建模數(shù)據(jù)和與每一所述節(jié)點相關(guān)的企業(yè)規(guī)劃數(shù)據(jù);以及計算裝置,其包括多個企業(yè)規(guī)劃軟件應(yīng)用以及包括對象存儲器和分配表的高速緩存,其中,所述企業(yè)規(guī)劃軟件應(yīng)用訪問所述企業(yè)規(guī)劃數(shù)據(jù),并執(zhí)行企業(yè)規(guī)劃對話,并且其中,所述高速緩存存儲從所述遠程數(shù)據(jù)庫系統(tǒng)檢索的企業(yè)規(guī)劃數(shù)據(jù),以供所述企業(yè)規(guī)劃軟件應(yīng)用使用。
全文摘要
描述了從諸如企業(yè)軟件系統(tǒng)的軟件系統(tǒng)高速緩存數(shù)據(jù)的技術(shù)。可以將所述技術(shù)應(yīng)用于通過網(wǎng)絡(luò)連接至所述軟件系統(tǒng)的計算裝置。在一個例子中,所述高速緩存包括簡明的、基于文件的高速緩存,其包括存儲被高速緩存的數(shù)據(jù)的對象存儲器和管理所述對象存儲器中的空間分配的分配表。所述高速緩存技術(shù)提供了魯棒的存儲系統(tǒng),其保存所述分配表的前一拷貝,同時更新當前表格。此外,所描述的高速緩存管理技術(shù)利用自動壓縮使高速緩存文件大小最小化。當在計算裝置上執(zhí)行多個軟件應(yīng)用時,所述技術(shù)允許多個軟件應(yīng)用對所述高速緩存并行訪問,同時保持所存儲的數(shù)據(jù)的完整性。
文檔編號G06F17/30GK101073069SQ200580041170
公開日2007年11月14日 申請日期2005年11月15日 優(yōu)先權(quán)日2004年11月30日
發(fā)明者P·L·克萊斯比 申請人:科格洛斯公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
图们市| 城固县| 和硕县| 当涂县| 建德市| 略阳县| 金华市| 屏边| 东阿县| 新密市| 叶城县| 元江| 遵义县| 清新县| 桦甸市| 秦安县| 沙洋县| 弋阳县| 阿坝| 彭泽县| 车险| 夹江县| 鄂托克前旗| 高邑县| 北宁市| 泰宁县| 汨罗市| 台山市| 洛扎县| 太白县| 宜兰市| 镇巴县| 上犹县| 长武县| 房产| 富裕县| 通山县| 绥芬河市| 文安县| 民和| 东安县|