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

用于移動應(yīng)用緩存的方法和系統(tǒng)的制作方法

文檔序號:6518903閱讀:407來源:國知局
用于移動應(yīng)用緩存的方法和系統(tǒng)的制作方法
【專利摘要】本公開涉及用于移動應(yīng)用緩存的方法和系統(tǒng)。存儲來自移動設(shè)備的數(shù)據(jù)可以包括:通過無線網(wǎng)絡(luò)從移動設(shè)備接收通知數(shù)據(jù)已被投放在同步文件夾中的異步通信;計(jì)算與所述數(shù)據(jù)相關(guān)聯(lián)的散列值;基于所計(jì)算的散列值確定包括多個(gè)虛擬機(jī)的對象網(wǎng)格的分區(qū);以及在所述分區(qū)上存儲所述數(shù)據(jù)。
【專利說明】用于移動應(yīng)用緩存的方法和系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本申請一般地涉及計(jì)算機(jī)、計(jì)算機(jī)系統(tǒng)和數(shù)據(jù)存儲,特別是基于大規(guī)模技術(shù)的移動應(yīng)用緩存。
【背景技術(shù)】
[0002]—種已知的方法在具有Java?虛擬機(jī)(JVM)的多個(gè)計(jì)算節(jié)點(diǎn)之間交換數(shù)據(jù)。每個(gè)JVM包括能夠執(zhí)行分布式Java?應(yīng)用的一組計(jì)算機(jī)程序指令,每個(gè)計(jì)算節(jié)點(diǎn)包括無線網(wǎng)絡(luò)適配器以在計(jì)算節(jié)點(diǎn)之間以無線方式交換數(shù)據(jù)。另一種已知的方法提供用于無線設(shè)備的外部存儲系統(tǒng),其中外部存儲系統(tǒng)包括用于存儲數(shù)據(jù)的可控的分布式、可擴(kuò)展虛擬機(jī)系統(tǒng)。
[0003]又一種已知的方法提供在移動設(shè)備與分布式數(shù)據(jù)庫之間下載和更新數(shù)據(jù)。校驗(yàn)和被用來確定文件是否已經(jīng)改變。
[0004]通常,無線設(shè)備可以將數(shù)據(jù)存儲到一個(gè)或多個(gè)虛擬機(jī)。此外,web應(yīng)用可以與存儲設(shè)備遠(yuǎn)程通信。

【發(fā)明內(nèi)容】

[0005]一種用于移動應(yīng)用緩存的方法,在一個(gè)方面,其可以包括通過無線網(wǎng)絡(luò)從移動設(shè)備接收異步通信,該異步通信通知數(shù)據(jù)已被投放在同步文件夾中。所述方法可以進(jìn)一步包括計(jì)算與所述數(shù)據(jù)相關(guān)聯(lián)的散列(hash)值。所述方法還可以包括基于計(jì)算的散列值確定包括多個(gè)虛擬機(jī)的對象網(wǎng)格的分區(qū)(partition)。所述方法還可以包括在所述分區(qū)上存儲數(shù)據(jù)。在一個(gè)方面,接收異步通信包括在隊(duì)列中接收名稱-值對。
[0006]一種用于存儲來自移動設(shè)備的數(shù)據(jù)的系統(tǒng),在一個(gè)方面,其可以包括存儲器和存儲在存儲器中的名稱-值對的列表。所述系統(tǒng)還可以包括同步模塊,其可操作以在處理器上執(zhí)行,并從移動設(shè)備接收通知數(shù)據(jù)已被投放在移動設(shè)備上的同步文件夾中的事件。同步模塊可以進(jìn)一步地可操作以將來自移動設(shè)備的事件的載荷數(shù)據(jù)拷貝到名稱-值對的列表中。所述系統(tǒng)還可以包括對象網(wǎng)格模塊,其可操作以計(jì)算載荷數(shù)據(jù)已被拷貝至其的名稱-值對的散列值。對象網(wǎng)格模塊可以進(jìn)一步地可操作以基于計(jì)算的散列值確定包括多個(gè)虛擬機(jī)的對象網(wǎng)格的分區(qū)以及在所確定的分區(qū)上存儲載荷數(shù)據(jù)。所述系統(tǒng)還可以包括可操作以檢測名稱-值對是否已經(jīng)變化的隊(duì)列模塊。隊(duì)列模塊可以進(jìn)一步地可操作以向移動設(shè)備傳送檢測到的變化。
[0007]也可以提供一種計(jì)算機(jī)可讀存儲介質(zhì),其存儲有可由機(jī)器執(zhí)行以執(zhí)行這里描述的一個(gè)或多個(gè)方法的指令的程序。
[0008]各種實(shí)施例的進(jìn)一步的特征以及結(jié)構(gòu)和操作在下面參照附圖詳細(xì)描述。在附圖中,相同的標(biāo)號指示相同或功能相似的元件。
【專利附圖】

【附圖說明】
[0009]圖1是示出了本公開的一個(gè)實(shí)施例中的對象網(wǎng)格架構(gòu)的圖。[0010]圖2是示出了本公開的一個(gè)實(shí)施例中的系統(tǒng)組件的另一個(gè)架構(gòu)圖。
[0011]圖3是示出了在本公開的一個(gè)實(shí)施例中提供應(yīng)用到在OG的碎片(shard)中保存的數(shù)據(jù)的關(guān)聯(lián)的系統(tǒng)組件的架構(gòu)圖。
[0012]圖4是示出了本公開的一個(gè)實(shí)施例中的方法的流程圖。
[0013]圖5示出了可以實(shí)施本公開的一個(gè)實(shí)施例中的系統(tǒng)的示例計(jì)算機(jī)或處理系統(tǒng)的示意圖。
【具體實(shí)施方式】
[0014]本公開的一個(gè)實(shí)施例中的方法構(gòu)建了在其中大量的移動設(shè)備可以在被稱為對象網(wǎng)格(Object Grid,0G)的計(jì)算機(jī)集合內(nèi)可靠地緩存數(shù)據(jù)的系統(tǒng)。圖1是示出了 OG架構(gòu)的圖。0G100是復(fù)雜的數(shù)據(jù)緩存。OG通過其可用性和高度可擴(kuò)展性而與其他緩存相區(qū)別。移動設(shè)備上的應(yīng)用使用0G100以可靠地保存和檢索數(shù)據(jù)。數(shù)據(jù)經(jīng)由事件的載荷被發(fā)送到0G。OG在網(wǎng)格的碎片中存儲該載荷。
[0015]網(wǎng)格是碎片的集合;碎片是用于存儲數(shù)據(jù)的容器。碎片有兩種類型:主碎片和副本。副本是主碎片的拷貝。主碎片及其一個(gè)或多個(gè)副本被稱為分區(qū)(例如102)。當(dāng)OG初始化時(shí),其確定擬創(chuàng)建的分區(qū)數(shù)目。一經(jīng)創(chuàng)建,分區(qū)數(shù)目即被固定。數(shù)據(jù)被存儲在被分配給這些分區(qū)的碎片中。數(shù)據(jù)被映射到分區(qū)。所述映射是對數(shù)據(jù)名稱的散列(例如104所示的)。所述散列選擇使用哪個(gè)分區(qū)。最常見的散列是以定義的分區(qū)的數(shù)目為種子的“模運(yùn)算”。OG將相應(yīng)的數(shù)據(jù)拷貝到所選擇的分區(qū)的主碎片和二級碎片(基于所述散列)。碎片駐留在容器Java虛擬機(jī)(JVM)中,例如106所示的。
[0016]OG將其分區(qū)映射到一組容器JVM上。容器JVM是作為網(wǎng)格中的數(shù)據(jù)存儲庫的JVM。為了提高可用性,OG將分區(qū)的主碎片和副本碎片放到不同的JVM上,并且如果可能,放到不同的物理機(jī)器(例如,如不同的計(jì)算機(jī)108、110所示的)上。這樣,如果一個(gè)JVM失效,則其碎片可以被恢復(fù)。例如,如果副本碎片丟失,則使用主碎片創(chuàng)建另一副本。如果主碎片丟失,則其副本被提升為主碎片并由其創(chuàng)建另一副本。和之前一樣,主碎片和副本碎片一直被放置在分離的容器JVM上。例如,為了實(shí)現(xiàn)失效備援(failover),主碎片和副本碎片位于分離的JVM上,并且更可能是分開的節(jié)點(diǎn)(例如服務(wù)器)上。
[0017]分區(qū)將“碎片到JVM”的映射與“數(shù)據(jù)到碎片”的映射分離。這種分離使得JVM能夠被添加或移除而不會干擾“數(shù)據(jù)到碎片”映射或者分區(qū)的數(shù)目。
[0018]容器JVM由目錄服務(wù)(Catalog Service, CS)管理。CS在與容器JVM分離的JVM上運(yùn)行。在最低程度上,OG有一個(gè)CS和一個(gè)網(wǎng)格。當(dāng)JVM被添加到OG時(shí),其經(jīng)由“公知的靜態(tài)地址”向CS注冊。JVM向CS提供到其容器的引用以用于存儲和檢索碎片。
[0019]本公開的一個(gè)實(shí)施例中的OG概念被延伸以包括作為名稱-值對列表的對象,從移動設(shè)備接收事件的邏輯,將來自移動設(shè)備的事件的載荷拷貝到名稱-值對列表中的代碼,檢測列表中的名稱-值對是否已經(jīng)變化的機(jī)制,通過在事件消息的載荷中將變化的數(shù)據(jù)發(fā)送回設(shè)備而將變化傳送回到起始移動設(shè)備的設(shè)施,以及出于允許應(yīng)用訪問和修改列表中的數(shù)據(jù)的目的的、與每個(gè)列表相關(guān)聯(lián)的API。
[0020]名稱-值對包括諸如名字=john和姓氏=doe的鍵名和取值,其中,在該例子中“名字”是名稱、“ john”是取值,在該名稱-值對例子中,“姓氏”是名稱、“doe”是取值。[0021]在一個(gè)實(shí)施例中,從移動設(shè)備接收事件的邏輯(例如模塊)可以以諸如那些在Dropbox?中使用的數(shù)據(jù)同步機(jī)制來實(shí)施。本公開的一個(gè)實(shí)施例中的這樣的機(jī)制提供一種用于存儲名稱-值對(也稱為鍵名-取值或鍵名/取值)的客戶端設(shè)備機(jī)制。這樣的機(jī)制也可以具有在云或者類似的計(jì)算設(shè)施中運(yùn)行的實(shí)例,其中服務(wù)器取得客戶端設(shè)備中的數(shù)據(jù)條目并將其放入隊(duì)列中?;诜謪^(qū)(鍵名的散列),數(shù)據(jù)被分配到特定的分區(qū)。
[0022]將載荷從移動設(shè)備的事件拷貝到名稱-值對列表中的代碼或邏輯可以利用Dropbox?或者類似的同步機(jī)制。也可以利用允許在兩個(gè)或者更多個(gè)端點(diǎn)之間存儲和同步內(nèi)容的其他技術(shù)。
[0023]設(shè)施通過在事件消息的載荷中將變化的數(shù)據(jù)發(fā)送回設(shè)備而將變化傳送回到起始移動設(shè)備。在本公開的一個(gè)實(shí)施例中,該設(shè)施被實(shí)施為隊(duì)列。所述隊(duì)列可以包括主動輪詢同步機(jī)制以確定是否已經(jīng)有變化的機(jī)制。如果已經(jīng)有變化,則本公開的方法確定變化了的鍵名并開始將變化發(fā)送回移動設(shè)備的過程。
[0024]出于允許應(yīng)用訪問和修改列表中的數(shù)據(jù)的目的,API可以與每個(gè)列表相關(guān)聯(lián)。這樣的API可以被實(shí)施為提供同步機(jī)制的云實(shí)例的部分。
[0025]在本公開的一個(gè)實(shí)施例中,可利用一個(gè)或多個(gè)隊(duì)列或者類似的數(shù)據(jù)結(jié)構(gòu)。當(dāng)OG中的名稱-值對列表被修改時(shí),變化被發(fā)送到隊(duì)列以用于傳送回到與列表相關(guān)聯(lián)的應(yīng)用(例如移動應(yīng)用)。每個(gè)隊(duì)列具有告知OG如何處理該隊(duì)列的簡檔。例如,隊(duì)列中的消息可以具有被分配的優(yōu)先級、或計(jì)費(fèi)指令、或分析觸發(fā)等等。進(jìn)一步地,當(dāng)消息被處理時(shí)其被發(fā)送回到移動設(shè)備,或者其保持在隊(duì)列中直到被對應(yīng)的應(yīng)用請求為止,或者其僅僅是被從隊(duì)列清除。
[0026]圖2是示出了本公開的一個(gè)實(shí)施例中的系統(tǒng)組件的另一個(gè)架構(gòu)圖。在本公開的方法的一個(gè)實(shí)施例中,數(shù)據(jù)經(jīng)由文件托管(hosting)、存儲和同步工具204的概念或者諸如Dropbox之類的機(jī)制的方法等等來在移動客戶端202與OG之間傳播。一般而言,Dropbox是已知為由Dropbox?公司運(yùn)營的基于Web的文件托管服務(wù),Dropbox?公司使用云計(jì)算以使得用戶能夠使用文件同步通過互聯(lián)網(wǎng)存儲以及與他人共享文件和文件夾。該同步是單向的,從客戶端Dropbox到存儲所投放(drop)的數(shù)據(jù)的文件系統(tǒng)。本公開的方法將該概念延伸以包括具有到諸如Dropbox的相應(yīng)文件夾或容器204的“回叫(call back)”的雙向數(shù)據(jù)流。在本公開中,客戶端或移動設(shè)備上的這樣的Dropbox之類的元件或文件夾被稱為同步文件夾204,例如文件或數(shù)據(jù)文件夾。當(dāng)數(shù)據(jù)被返回到同步文件夾204時(shí),同步文件夾204轉(zhuǎn)而將數(shù)據(jù)發(fā)送到最初將相應(yīng)的數(shù)據(jù)投放到同步文件夾204上的應(yīng)用。在一個(gè)實(shí)施例中,該關(guān)聯(lián)是通過回叫或其他異步方式,諸如通知應(yīng)用關(guān)于數(shù)據(jù)的可用性的SMS。
[0027]本發(fā)明的一個(gè)實(shí)施例中的方法提供了高度可用的移動設(shè)備緩存,其可以將緩存的變化留存回到例如位于云基礎(chǔ)設(shè)施上的企業(yè)應(yīng)用服務(wù)器。在一個(gè)方面,客戶端在驅(qū)動所有的功能。客戶端使用對象網(wǎng)格來緩存內(nèi)容,并接著經(jīng)由對象網(wǎng)格的功能,其在例如云實(shí)例的服務(wù)器實(shí)例上被監(jiān)聽。接著,該事件被接收并放到隊(duì)列上用于進(jìn)一步處理。在一個(gè)實(shí)施例中,不需要將緩存從服務(wù)器實(shí)例(例如云)推送回到設(shè)備。
[0028]當(dāng)移動設(shè)備202上的對象已被投放到同步文件夾204上時(shí),該同步文件夾204內(nèi)的邏輯使用自省(introspection)來確定其是否包括將數(shù)據(jù)返回到移動設(shè)備202上的相關(guān)應(yīng)用的回叫方法。回叫可以是遠(yuǎn)程過程調(diào)用(RPC)或可復(fù)位的命令或短消息服務(wù)(SMS)地址,服務(wù)器用其來通知客戶端應(yīng)用,數(shù)據(jù)可以從同步文件夾204被拾取。[0029]本公開的方法延伸了 OG的概念以包括移動設(shè)備202上的同步文件夾204、至少一個(gè)OG接收隊(duì)列208、至少一個(gè)OG發(fā)送隊(duì)列212、以及用于管理這些隊(duì)列的簡檔(例如206、210)。同步文件夾204將移動設(shè)備202上的應(yīng)用與連接到無線網(wǎng)絡(luò)220的OG緩存整合,目的在于在高度可用的數(shù)據(jù)存儲庫中可靠地存儲和檢索數(shù)據(jù)。同步文件夾204是移動設(shè)備202上的軟件實(shí)體,數(shù)據(jù)可以被邏輯地投放在其上并通過無線網(wǎng)絡(luò)220發(fā)送到0G218,其中數(shù)據(jù)被緩存在OG的分區(qū)212、214和216中。OG隊(duì)列208從同步文件夾204接收數(shù)據(jù),使用賦予該數(shù)據(jù)的名稱來計(jì)算相關(guān)聯(lián)的散列碼和對應(yīng)的分區(qū)地址,并在用于該分區(qū)(例如216)的主碎片和副本碎片中保存該數(shù)據(jù)。簡檔216被用來確定隊(duì)列中的條目被保存的順序、計(jì)費(fèi)規(guī)則對每個(gè)條目的應(yīng)用、相關(guān)聯(lián)的數(shù)據(jù)的“存活時(shí)間”、以及確定保存的數(shù)據(jù)是否以及何時(shí)將被返回到同步文件夾204的規(guī)則。典型的規(guī)則是當(dāng)數(shù)據(jù)已經(jīng)變化的時(shí)候返回?cái)?shù)據(jù)。另一個(gè)規(guī)則可以是分批處理數(shù)據(jù)變化并將其作為組返回到合適的同步文件夾,或者是在給定時(shí)間段之后將數(shù)據(jù)返回。也可以應(yīng)用另外的或者不同的規(guī)則。
[0030]當(dāng)數(shù)據(jù)已被返回到同步文件夾204時(shí),同步文件夾204(與同步文件夾相關(guān)聯(lián)的邏輯)轉(zhuǎn)而將數(shù)據(jù)發(fā)送到最初將相應(yīng)的數(shù)據(jù)投放到同步文件夾204上的應(yīng)用。關(guān)聯(lián)是通過回叫或其他異步方式,諸如通知應(yīng)用關(guān)于數(shù)據(jù)的可用性的SMS。
[0031]增強(qiáng)型Dropbox概念將移動設(shè)備應(yīng)用與OG連接,其中OG作為用于移動設(shè)備的可擴(kuò)展數(shù)據(jù)緩存。本公開的一個(gè)實(shí)施例中的方法提供了構(gòu)建用于從由連接到無線網(wǎng)絡(luò)的OG創(chuàng)建的高度可用的存儲設(shè)備可靠地保存和檢索數(shù)據(jù)的簡單架構(gòu)。在一個(gè)實(shí)施例中,經(jīng)由異步事件,數(shù)據(jù)被發(fā)送到0G218以及從0G218被接收。因此,其對于服務(wù)可能頻繁地漸強(qiáng)漸弱的移動環(huán)境是理想的。其也毫無困難地?cái)U(kuò)展到數(shù)以百萬計(jì)的移動設(shè)備,并提供在外部源中存儲數(shù)據(jù)并與外部源同步的手段。用來從在移動設(shè)備中運(yùn)行的應(yīng)用接收事件和向其發(fā)送事件的隊(duì)列提供了緩沖和靈活性。
[0032]在另一個(gè)方面,本公開的方法可以提供應(yīng)用到保存在對象網(wǎng)格(OG)的碎片中的數(shù)據(jù)的關(guān)聯(lián)。圖3是示出了在本公開的一個(gè)實(shí)施例中,提供應(yīng)用到在OG的碎片中保存的數(shù)據(jù)的關(guān)聯(lián)的系統(tǒng)組件的架構(gòu)圖。在本公開中,在一個(gè)實(shí)施例中,碎片(例如302、304、306、308、310、312)被映射到JVM (例如314、316、318、320),并且JVM內(nèi)的應(yīng)用(例如322、324、326和328 )訂閱碎片中的數(shù)據(jù)。Java虛擬機(jī)(JVM)可以容納一個(gè)或多個(gè)容器,每個(gè)容器可以容納多個(gè)碎片。因此,JVM包含與JVM碎片中的數(shù)據(jù)相關(guān)聯(lián)的應(yīng)用。
[0033]JVM內(nèi)的應(yīng)用可以接收和修改碎片數(shù)據(jù),或者其可以將數(shù)據(jù)傳遞給外部服務(wù)用于進(jìn)一步處理。典型的外部服務(wù)是SAP?、Twitter?、Amazon?、Facebook?等等。例如,考慮類似Twitter?的服務(wù)。移動客戶端330可以在碎片(例如310)中保存數(shù)據(jù),碎片中存在連接到Twitter?的應(yīng)用。該應(yīng)用彌補(bǔ)了碎片中的數(shù)據(jù)與將該數(shù)據(jù)傳送到Twitter?所需的協(xié)議之間的缺口。如果Twitter?生成了響應(yīng),或者如果從Twitter?接收到了未經(jīng)請求的數(shù)據(jù),則該數(shù)據(jù)填充碎片,并且通過這樣做,使得碎片中變化的數(shù)據(jù)被返回到相關(guān)聯(lián)的移動客戶端 330 中的應(yīng)用。在 https://www.1bm.com/developerworks/wikis/display/objectgridprog/Object Grid+architecture中進(jìn)一步描述了 OG架構(gòu),其所公開的通過引用并入于此。
[0034]在一個(gè)方面,本公開的方法可以將OG中緩存的數(shù)據(jù)連接到外部服務(wù)所必需的“腳手架”添加到上述將移動設(shè)備應(yīng)用連接到OG的增強(qiáng)型Dropbox?之類的概念。0G332的JVM(例如314、316、318、320)中的應(yīng)用(例如322、324、326、328)可以:1)訂閱碎片中的數(shù)據(jù);2)從碎片獲取所訂閱的數(shù)據(jù);3)處理所獲取的數(shù)據(jù);4)將數(shù)據(jù)傳送到外部服務(wù);5)從服務(wù)接收回?cái)?shù)據(jù);6)在碎片內(nèi)更新訂閱的數(shù)據(jù);以及7)將碎片中變化的數(shù)據(jù)發(fā)送回到起始的移
動應(yīng)用。
[0035]在一個(gè)實(shí)施例中,移動應(yīng)用與其碎片數(shù)據(jù)之間的連接總是異步的,而根據(jù)外部服務(wù)的需求,碎片數(shù)據(jù)與外部服務(wù)之間的連接可以是同步的或者異步的。本發(fā)明的一個(gè)實(shí)施例中的方法允許應(yīng)用的提供者以來自外部源的內(nèi)容豐富網(wǎng)格內(nèi)的數(shù)據(jù)。其結(jié)果是用于應(yīng)用的高度可擴(kuò)展且高度可用的移動應(yīng)用平臺(MAP),以向移動設(shè)備提供服務(wù)。
[0036]圖4是示出了本公開的一個(gè)實(shí)施例中的存儲來自移動設(shè)備的數(shù)據(jù)的方法的流程圖。在402處,通過無線網(wǎng)絡(luò),來自移動設(shè)備的、通知數(shù)據(jù)已被投放到本公開的一個(gè)實(shí)施例中的同步文件夾中的異步通信被接收。所述異步通信可以是包括名稱-值對的事件通知。名稱-值對可以在對象網(wǎng)格隊(duì)列上被接收,并且與名稱-值對相關(guān)聯(lián)的簡檔信息可以被接收。簡檔信息規(guī)定可應(yīng)用到名稱-值對的存儲和管理的一個(gè)或多個(gè)規(guī)則。在404處,與數(shù)據(jù)相關(guān)聯(lián)的散列值或者類似的可以被計(jì)算。在406處,基于計(jì)算的散列值,包括多個(gè)虛擬機(jī)的對象網(wǎng)格的分區(qū)被確定。在408處,數(shù)據(jù)在分區(qū)上被存儲。在一個(gè)實(shí)施例中,數(shù)據(jù)的主版本被存儲在分區(qū)的主碎片上,數(shù)據(jù)的副本版本被存儲在分區(qū)的副本碎片上。在一個(gè)方面,如在410示出的,基于一個(gè)或多個(gè)規(guī)則,數(shù)據(jù)可以被返回到移動設(shè)備。在又一個(gè)實(shí)施例中,可以使得運(yùn)行在移動設(shè)備上的應(yīng)用以外的一個(gè)或多個(gè)應(yīng)用能夠訪問所存儲的數(shù)據(jù),如在412示出的。
[0037]盡管上面的描述參照了 Dropbox?,但應(yīng)當(dāng)注意,在本公開的方法的實(shí)施中并不需要Dropbox?產(chǎn)品。而是,類似的同步方法或者其他的文件托管、數(shù)據(jù)存儲和同步方法可以被利用,例如用于在設(shè)備(例如移動設(shè)備)與服務(wù)器(例如云實(shí)例)之間無縫地同步數(shù)據(jù)的,以及數(shù)據(jù)、文件或文檔的分布式存儲機(jī)制。在本公開中,這樣的機(jī)制的概念被延伸以包括能夠監(jiān)聽事件(例如緩存條目修改)并接著對這些事件作出反應(yīng)以向?qū)ο缶W(wǎng)格發(fā)布鍵名/取值(名稱-值)對的隊(duì)列,其中對象網(wǎng)格負(fù)責(zé)通過分區(qū)和碎片設(shè)計(jì)模型使這些緩存條目高度可用。
[0038]圖5示出了可以實(shí)施本公開的一個(gè)實(shí)施例中的一個(gè)或多個(gè)方法的示例計(jì)算機(jī)或處理系統(tǒng)的示意圖。計(jì)算機(jī)系統(tǒng)僅是合適的處理系統(tǒng)的一個(gè)示例,其并不旨在暗示對這里描述的方法的實(shí)施例的使用或功能的范圍的任何限制。示出的處理系統(tǒng)可以以多種其他的通用或?qū)S糜?jì)算系統(tǒng)環(huán)境或配置來操作。適于與圖5中示出的處理系統(tǒng)一起使用的公知的計(jì)算系統(tǒng)、環(huán)境和/或配置的示例可以包括但不限于,個(gè)人計(jì)算機(jī)系統(tǒng)、服務(wù)器計(jì)算系統(tǒng)、瘦客戶端、胖客戶端、手持式或膝上型設(shè)備、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、機(jī)頂盒、可編程消費(fèi)電子產(chǎn)品、網(wǎng)絡(luò)PC、小型計(jì)算機(jī)系統(tǒng)、大型計(jì)算機(jī)系統(tǒng)、以及包括任何上述的系統(tǒng)或設(shè)備的分布式云計(jì)算環(huán)境等等。
[0039]計(jì)算機(jī)系統(tǒng)可以在計(jì)算機(jī)系統(tǒng)可執(zhí)行的指令(諸如由計(jì)算機(jī)系統(tǒng)執(zhí)行的程序模塊)的一般情境中被描述。一般地,程序模塊可以包括執(zhí)行特定任務(wù)或者實(shí)現(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對象、組件、邏輯、數(shù)據(jù)結(jié)構(gòu)等。計(jì)算機(jī)系統(tǒng)可以在分布式云計(jì)算環(huán)境中實(shí)施,其中任務(wù)由通過通信網(wǎng)絡(luò)鏈接的多個(gè)遠(yuǎn)程處理設(shè)備執(zhí)行。在分布式云計(jì)算環(huán)境中,程序模塊可以位于包括存儲器存儲設(shè)備的本地和遠(yuǎn)程計(jì)算機(jī)系統(tǒng)存儲介質(zhì)二者中。[0040]計(jì)算機(jī)系統(tǒng)的組件可以包括但不限于一個(gè)或多個(gè)處理器或處理單元12,系統(tǒng)存儲器16,以及將包括系統(tǒng)存儲器16在內(nèi)的各種系統(tǒng)組件耦合到處理器12的總線14。處理器12可以包括執(zhí)行這里描述的方法的OG模塊10。模塊10可以被編程到處理器12的集成電路中,或者從存儲器16、存儲設(shè)備18、或者網(wǎng)絡(luò)24及其組合裝入。
[0041]總線14可以表示幾種總線結(jié)構(gòu)中任何的一種或多種,這些總線包括存儲器總線或存儲器控制器、外圍總線、加速圖形端口以及使用多種總線結(jié)構(gòu)中的任何總線結(jié)構(gòu)的處理器或本地總線。舉例而言而并不作為限制,這樣的架構(gòu)包括工業(yè)標(biāo)準(zhǔn)架構(gòu)(ISA)總線、微通道架構(gòu)(MCA)總線、增強(qiáng)ISA(EISA)總線、視頻電子設(shè)備標(biāo)準(zhǔn)協(xié)會(VESA)局部總線、和外圍組件互連(PCI)總線。
[0042]計(jì)算機(jī)系統(tǒng)可以包括各種計(jì)算機(jī)系統(tǒng)可讀介質(zhì)。這樣的介質(zhì)可以是可由計(jì)算機(jī)系統(tǒng)訪問的任何可獲得的介質(zhì),其可以包括易失性和非易失性介質(zhì)、可移動和固定的介質(zhì)。
[0043]系統(tǒng)存儲器16可以包括易失性存儲器形式的計(jì)算機(jī)系統(tǒng)可讀介質(zhì),諸如隨機(jī)存取存儲器(RAM)和/或緩存存儲器或者其他的。計(jì)算機(jī)系統(tǒng)可以進(jìn)一步包括其他的可移動/固定的、易失性/非易失性的計(jì)算機(jī)系統(tǒng)存儲介質(zhì)。僅僅舉例來說,可以提供存儲系統(tǒng)18用于從固定的、非易失性的磁性介質(zhì)(例如“硬盤”)讀取以及向其寫入。盡管未示出,但是可以提供用于從可移動的、非易失性的磁盤(例如“軟盤”)讀取以及向其寫入的磁盤驅(qū)動器、用于從諸如CD-ROM、DVD-ROM或其他光學(xué)介質(zhì)的可移動的、非易失性的光盤讀取以及向其寫入的光盤驅(qū)動器。在這樣的實(shí)例中,通過一個(gè)或多個(gè)數(shù)據(jù)介質(zhì)接口,每個(gè)可以被連接到總線14。
[0044]計(jì)算機(jī)系統(tǒng)也可以與以下設(shè)備通信:諸如鍵盤、指點(diǎn)設(shè)備、顯示器28等的一個(gè)或多個(gè)外部設(shè)備26 ;使得用戶能夠與計(jì)算機(jī)系統(tǒng)交互的一個(gè)或多個(gè)設(shè)備;以及/或者使得計(jì)算機(jī)系統(tǒng)能夠與一個(gè)或多個(gè)其他計(jì)算設(shè)備通信的任何設(shè)備(例如網(wǎng)卡、調(diào)制解調(diào)器等)。這樣的通信可以經(jīng)由輸入/輸出(I/O)接口 20發(fā)生。
[0045]然而,計(jì)算機(jī)系統(tǒng)可以經(jīng)由網(wǎng)絡(luò)適配器22與諸如局域網(wǎng)(LAN)、通用廣域網(wǎng)(WAN)和/或公共網(wǎng)絡(luò)(例如因特網(wǎng))的一個(gè)或多個(gè)網(wǎng)絡(luò)24通信。如所描繪的,網(wǎng)絡(luò)適配器22經(jīng)由總線14與計(jì)算機(jī)系統(tǒng)的其他組件通信。應(yīng)當(dāng)理解,盡管未示出,其他硬件和/或軟件組件可以與計(jì)算機(jī)系統(tǒng)結(jié)合使用。示例包括但不限于:微代碼、設(shè)備驅(qū)動器、冗余處理單元、夕卜部盤驅(qū)動器陣列、RAID系統(tǒng)、磁帶驅(qū)動器、數(shù)據(jù)歸檔存儲系統(tǒng)等。
[0046]所屬【技術(shù)領(lǐng)域】的技術(shù)人員知道,本公開的各個(gè)方面可以實(shí)現(xiàn)為系統(tǒng)、方法或計(jì)算機(jī)程序產(chǎn)品。因此,本公開的各個(gè)方面可以具體實(shí)現(xiàn)為以下形式,即:完全的硬件實(shí)施方式、完全的軟件實(shí)施方式(包括固件、駐留軟件、微代碼等),或硬件和軟件方面結(jié)合的實(shí)施方式,這里可以統(tǒng)稱為“電路”、“模塊”或“系統(tǒng)”。此外,在一些實(shí)施例中,本公開的各個(gè)方面還可以實(shí)現(xiàn)為在一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)中的計(jì)算機(jī)程序產(chǎn)品的形式,該計(jì)算機(jī)可讀介質(zhì)中包含計(jì)算機(jī)可讀的程序代碼。
[0047]可以采用一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)的任意組合。計(jì)算機(jī)可讀介質(zhì)可以是計(jì)算機(jī)可讀信號介質(zhì)或者計(jì)算機(jī)可讀存儲介質(zhì)。計(jì)算機(jī)可讀存儲介質(zhì)例如可以是一但不限于——電、磁、光、電磁、紅外線、或半導(dǎo)體的系統(tǒng)、裝置或器件,或者任意以上的組合。計(jì)算機(jī)可讀存儲介質(zhì)的更具體的例子(非窮舉的列表)包括:具有一個(gè)或多個(gè)導(dǎo)線的電連接、便攜式計(jì)算機(jī)盤、硬盤、隨機(jī)存取存儲器(RAM)、只讀存儲器(ROM)、可擦式可編程只讀存儲器(EPROM或閃存)、光纖、便攜式緊湊盤只讀存儲器(CD-ROM)、光存儲器件、磁存儲器件、或者上述的任意合適的組合。在本文件中,計(jì)算機(jī)可讀存儲介質(zhì)可以是任何包含或存儲程序的有形介質(zhì),該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用。
[0048]計(jì)算機(jī)可讀的信號介質(zhì)可以包括在基帶中或者作為載波一部分傳播的數(shù)據(jù)信號,其中承載了計(jì)算機(jī)可讀的程序代碼。這種傳播的數(shù)據(jù)信號可以采用多種形式,包括——但不限于——電磁信號、光信號或上述的任意合適的組合。計(jì)算機(jī)可讀的信號介質(zhì)還可以是計(jì)算機(jī)可讀存儲介質(zhì)以外的任何計(jì)算機(jī)可讀介質(zhì),該計(jì)算機(jī)可讀介質(zhì)可以發(fā)送、傳播或者傳輸用于由指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用的程序。
[0049]計(jì)算機(jī)可讀介質(zhì)上包含的程序代碼可以用任何適當(dāng)?shù)慕橘|(zhì)傳輸,包括一但不限于一無線、有線、光纜、RF等等,或者上述的任意合適的組合。
[0050]可以以一種或多種程序設(shè)計(jì)語言的任意組合來編寫用于執(zhí)行本發(fā)明操作的計(jì)算機(jī)程序代碼,所述程序設(shè)計(jì)語言包括面向?qū)ο蟮某绦蛟O(shè)計(jì)語言一諸如Java、Smalltalk、C++等,還包括常規(guī)的過程式程序設(shè)計(jì)語言一諸如“C”語言或類似的程序設(shè)計(jì)語言。程序代碼可以完全地在用戶計(jì)算機(jī)上執(zhí)行、部分地在用戶計(jì)算機(jī)上執(zhí)行、作為一個(gè)獨(dú)立的軟件包執(zhí)行、部分在用戶計(jì)算機(jī)上部分在遠(yuǎn)程計(jì)算機(jī)上執(zhí)行、或者完全在遠(yuǎn)程計(jì)算機(jī)或服務(wù)器上執(zhí)行。在涉及遠(yuǎn)程計(jì)算機(jī)的情形中,遠(yuǎn)程計(jì)算機(jī)可以通過任意種類的網(wǎng)絡(luò)一包括局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)—連接到用戶計(jì)算機(jī),或者,可以連接到外部計(jì)算機(jī)(例如利用因特網(wǎng)服務(wù)提供商來通過因特網(wǎng)連接)。
[0051]下面將參照根據(jù)本發(fā)明實(shí)施例的方法、裝置(系統(tǒng))和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或框圖描述本發(fā)明。應(yīng)當(dāng)理解,流程圖和/或框圖的每個(gè)方框以及流程圖和/或框圖中各方框的組合,都可以由計(jì)算機(jī)程序指令實(shí)現(xiàn)。這些計(jì)算機(jī)程序指令可以提供給通用計(jì)算機(jī)、專用計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器,從而生產(chǎn)出一種機(jī)器,使得這些計(jì)算機(jī)程序指令在通過計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器執(zhí)行時(shí),產(chǎn)生了實(shí)現(xiàn)流程圖和/或框圖中的一個(gè)或多個(gè)方框中規(guī)定的功能/動作的裝置。
[0052]也可以把這些計(jì)算機(jī)程序指令存儲在計(jì)算機(jī)可讀介質(zhì)中,這些指令使得計(jì)算機(jī)、其它可編程數(shù)據(jù)處理裝置、或其他設(shè)備以特定方式工作,從而,存儲在計(jì)算機(jī)可讀介質(zhì)中的指令就產(chǎn)生出包括實(shí)現(xiàn)流程圖和/或框圖中的一個(gè)或多個(gè)方框中規(guī)定的功能/動作的指令的制造品(article of manufacture)0
[0053]計(jì)算機(jī)程序指令也可以被裝入以下設(shè)備和裝置上:計(jì)算機(jī)、其他可編程數(shù)據(jù)處理裝置、或者使得一系列操作步驟在計(jì)算機(jī)上執(zhí)行的其他設(shè)備、產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理以使得在計(jì)算機(jī)或其他可編程裝置上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖和/或框圖的一個(gè)或多個(gè)圖框中規(guī)定的功能/動作的其他可編程裝置或其他設(shè)備。
[0054]附圖中的流程圖和框圖顯示了根據(jù)本發(fā)明的多個(gè)實(shí)施例的系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn)品的可能實(shí)現(xiàn)的體系架構(gòu)、功能和操作。在這點(diǎn)上,流程圖或框圖中的每個(gè)方框可以代表一個(gè)模塊、程序段或代碼的一部分,所述模塊、程序段或代碼的一部分包含一個(gè)或多個(gè)用于實(shí)現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應(yīng)當(dāng)注意,在有些作為替換的實(shí)現(xiàn)中,方框中所標(biāo)注的功能也可以以不同于附圖中所標(biāo)注的順序發(fā)生。例如,兩個(gè)連續(xù)的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時(shí)也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個(gè)方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或動作的專用的基于硬件的系統(tǒng)來實(shí)現(xiàn),或者可以用專用硬件與計(jì)算機(jī)指令的組合來實(shí)現(xiàn)。
[0055]計(jì)算機(jī)程序產(chǎn)品可以包括使得這里描述的方法能夠?qū)崿F(xiàn)的所有相應(yīng)的特征,當(dāng)這些特征被裝入計(jì)算機(jī)系統(tǒng)時(shí),其能夠執(zhí)行所述方法。在當(dāng)前的上下文中,計(jì)算機(jī)程序、軟件程序、程序或軟件意指旨在使得具有信息處理能力的系統(tǒng)直接地或者在以下兩者之一或全部之后執(zhí)行特定功能的一組指令的以任何語言、代碼或符號的任何表達(dá):(a)轉(zhuǎn)換到另一語言、代碼或符號;和/或(b)以不同的材料形式再現(xiàn)。
[0056]這里使用的術(shù)語只是出于描述特定實(shí)施例的目的,而不是旨在限制本發(fā)明。如這里使用的,單數(shù)形式“一”、“一個(gè)”、“該”旨在同樣包括復(fù)數(shù)形式,除非上下文明顯地有其他指示。應(yīng)當(dāng)進(jìn)一步地理解,當(dāng)在說明書中使用術(shù)語“包括”和/或“包含”時(shí),其規(guī)定所提及的特征、整數(shù)、步驟、操作、元素和/或組件的存在,但不排除出現(xiàn)或添加一個(gè)或多個(gè)其他特征、整數(shù)、步驟、操作、元素、組件和/或其組合。
[0057]權(quán)利要求中如果有相應(yīng)的結(jié)構(gòu)、材料、動作以及所有裝置或步驟加功能元素的等同形式,其旨在包括用于與具體要求保護(hù)的其他要素結(jié)合而執(zhí)行功能的任何結(jié)構(gòu)、材料或動作。給出對本發(fā)明的描述目的在于說明和描述,而非旨在窮舉或?qū)⒈景l(fā)明限制為公開的形式。對于具備所屬領(lǐng)域普通技能的人員而言,不偏離本發(fā)明的范圍和精神的許多修改和變型將是明顯的。選擇并描述這些實(shí)施例是為了最好地解釋本發(fā)明的原理和實(shí)際應(yīng)用,并使得具備所屬領(lǐng)域普通技能的其他人員能夠理解本發(fā)明的具有適用于特定預(yù)期用途的各種修改的各種實(shí)施例。
[0058]本公開的各種方面可以被具體實(shí)現(xiàn)為程序、軟件或計(jì)算機(jī)指令,其具體實(shí)現(xiàn)在計(jì)算機(jī)或機(jī)器可用或可讀介質(zhì)中,當(dāng)其在計(jì)算機(jī)、處理器和/或機(jī)器上執(zhí)行時(shí),使得計(jì)算機(jī)或機(jī)器執(zhí)行所述方法的步驟。有形實(shí)施可由機(jī)器執(zhí)行的指令的程序以執(zhí)行本公開中描述的各種功能和方法的機(jī)器可讀的程序存儲設(shè)備也被提供。
[0059]本公開的系統(tǒng)和方法可以在通用計(jì)算機(jī)或?qū)S糜?jì)算機(jī)系統(tǒng)上實(shí)現(xiàn)和運(yùn)行。本申請中使用的術(shù)語“計(jì)算機(jī)系統(tǒng)”和“計(jì)算機(jī)網(wǎng)絡(luò)”可以包括固定和/或便攜式計(jì)算機(jī)硬件、軟件、外圍和存儲設(shè)備的各種組合。計(jì)算機(jī)系統(tǒng)可以包括網(wǎng)絡(luò)互連或以其他方式連接以協(xié)同工作的多個(gè)單獨(dú)的組件,或者可以包括一個(gè)或多個(gè)獨(dú)立的組件。本申請的計(jì)算機(jī)系統(tǒng)的硬件和軟件組件可以包括諸如桌上型計(jì)算機(jī)、膝上型計(jì)算機(jī)和/或服務(wù)器的固定式以及便攜式設(shè)備,也可以被包括于其中。模塊可以是實(shí)現(xiàn)一些“功能”的設(shè)備、軟件、程序或系統(tǒng)的組件,所述組件可以被具體實(shí)施為軟件、硬件、固件、電子電路等等。
[0060]上面描述的實(shí)施例是說明性的例子,其不應(yīng)被解釋為將本發(fā)明限制成這些特定的實(shí)施例。因此,各種變型和修改可以由本領(lǐng)域的技術(shù)人員在不脫離如權(quán)利要求所定義的范圍和精神的情況下完成。
【權(quán)利要求】
1.一種用于移動應(yīng)用緩存的方法,包括: 通過無線網(wǎng)絡(luò)從移動設(shè)備接收通知數(shù)據(jù)已被投放在同步文件夾中的異步通信; 計(jì)算與所述數(shù)據(jù)相關(guān)聯(lián)的散列值; 基于所計(jì)算的散列值確定包括多個(gè)虛擬機(jī)的對象網(wǎng)格的分區(qū);以及 在所述分區(qū)上存儲所述數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的方法,其中在所述分區(qū)上存儲所述數(shù)據(jù)包括:在所述分區(qū)的主碎片上存儲所述數(shù)據(jù)的主版本,在所述分區(qū)的副本碎片上存儲所述數(shù)據(jù)的副本版本。
3.根據(jù)權(quán)利要求2所述的方法,其中所述異步通信包括包含名稱-值對的事件通知。
4.根據(jù)權(quán)利要求3所述的方法,其中接收所述異步通信包括:在對象網(wǎng)格隊(duì)列上接收所述名稱-值對和與所述名稱-值對相關(guān)聯(lián)的簡檔信息。
5.根據(jù)權(quán)利要求4所述的方法,其中所述簡檔信息規(guī)定要應(yīng)用到所述名稱-值對的存儲和管理的一個(gè)或多個(gè)規(guī)則。
6.根據(jù)權(quán)利要求5所述的方法,進(jìn)一步包括: 基于所述一個(gè)或多個(gè)規(guī)則,將所述數(shù)據(jù)返回到所述移動設(shè)備。
7.根據(jù)權(quán)利要求3所述的方法,進(jìn)一步包括:使得在所述多個(gè)虛擬機(jī)中的一個(gè)或多個(gè)上運(yùn)行的應(yīng)用能夠訪問所存儲的數(shù)據(jù)。
8.根據(jù)權(quán)利要求1所述的方法,其中接收所述異步通信包括:在隊(duì)列中接收名稱-值對。
9.一種用于移動應(yīng)用緩存的系統(tǒng),包括用于實(shí)現(xiàn)權(quán)利要求1-8中的任一方法的任一步驟的部件。
10.一種用于移動應(yīng)用緩存的系統(tǒng),包括: 處理器; 存儲器; 存儲在存儲器上的名稱-值對的列表; 同步模塊,其可操作以在處理器上執(zhí)行,并接收來自移動設(shè)備的、通知數(shù)據(jù)已被投放在所述移動設(shè)備上的同步文件夾中的事件,所述同步模塊進(jìn)一步可操作以將來自所述移動設(shè)備的事件的載荷數(shù)據(jù)拷貝到所述名稱-值對的列表中; 對象網(wǎng)格模塊,其可操作以計(jì)算所述載荷數(shù)據(jù)已被拷貝至其的名稱-值對的散列值,對象網(wǎng)格模塊進(jìn)一步可操作以基于計(jì)算的散列值確定包括多個(gè)虛擬機(jī)的對象網(wǎng)格的分區(qū),并將所述載荷數(shù)據(jù)存儲在所確定的分區(qū)上;以及 隊(duì)列模塊,其可操作以檢測所述名稱-值對是否已經(jīng)變化,所述隊(duì)列模塊進(jìn)一步可操作以向所述移動設(shè)備傳送檢測到的變化。
11.根據(jù)權(quán)利要求10所述的系統(tǒng),進(jìn)一步包括與所述名稱-值對的列表相關(guān)聯(lián)的應(yīng)用編程接口,其中一個(gè)或多個(gè)應(yīng)用通過所述應(yīng)用編程接口訪問所述名稱-值對的數(shù)據(jù)。
12.根據(jù)權(quán)利要求10所述的系統(tǒng),進(jìn)一步包括簡檔,其中所述對象網(wǎng)格模塊訪問所述簡檔以確定如何處理所述名稱-值對。
13.根據(jù)權(quán)利要求10所述的系統(tǒng),其中所述名稱-值對在所述存儲器中被存儲為隊(duì)列數(shù)據(jù)結(jié)構(gòu)。
【文檔編號】G06F12/08GK103823764SQ201310565947
【公開日】2014年5月28日 申請日期:2013年11月15日 優(yōu)先權(quán)日:2012年11月15日
【發(fā)明者】J·D·加拉特, D·約瑟夫, T·E·卡普林格, C·A·拉澤恩, V·S·穆爾, G·L·特魯?shù)? 申請人:國際商業(yè)機(jī)器公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
长子县| 平湖市| 当涂县| 皋兰县| 永川市| 梅河口市| 龙门县| 南通市| 松桃| 石楼县| 辽中县| 应城市| 贺州市| 扶风县| 手游| 顺昌县| 密山市| 杭锦旗| 那坡县| 应用必备| 华蓥市| 武强县| 阳信县| 石林| 库车县| 瑞安市| 上饶市| 扬州市| 南阳市| 峨眉山市| 塔河县| 南靖县| 唐河县| 齐齐哈尔市| 松江区| 南溪县| 巴彦县| 通山县| 清新县| 娄烦县| 敖汉旗|