專利名稱:用于分布式計(jì)算的電子表格模型的制作方法
技術(shù)領(lǐng)域:
本申請(qǐng)涉及分布式計(jì)算,特別是用于分布式計(jì)算的電子表格模型。
背景技術(shù):
數(shù)據(jù)模型描述了可如何存儲(chǔ)和訪問(wèn)數(shù)據(jù)。更正式地,數(shù)據(jù)模型定義數(shù)據(jù)實(shí)體以及各數(shù)據(jù)實(shí)體間的關(guān)系。數(shù)據(jù)模型的主要目的是提供數(shù)據(jù)的定義和格式,以便于管理和處理大量的數(shù)據(jù)。數(shù)據(jù)模型的一種應(yīng)用是定義如何結(jié)構(gòu)化和利用數(shù)據(jù)庫(kù)或其他存儲(chǔ)的數(shù)據(jù)庫(kù)模型。數(shù)據(jù)庫(kù)模型可以是關(guān)系型的或非關(guān)系型的。在關(guān)系型模型中,或更具體地在關(guān)系型數(shù)據(jù)庫(kù)中,根據(jù)一個(gè)或多個(gè)表來(lái)結(jié)構(gòu)化數(shù)據(jù)。表是包括多個(gè)行和列的關(guān)系,其中所命名的列被稱為屬性,且行捕捉具體的實(shí)體實(shí)例的數(shù)據(jù)。例如,表可捕捉與諸如行(也稱為元組)和列中的書(shū)籍等特定實(shí)體有關(guān)的信息。列標(biāo)識(shí)實(shí)體的各種屬性,諸如書(shū)籍的標(biāo)題、作者、和出版年份等。行捕捉實(shí)體的實(shí)例,諸如特定的書(shū)籍。換言之,表中的每一行表示特定書(shū)籍的各屬性。此外,表可包括使得兩個(gè)或更多表能被鏈接在一起的主鍵和外鍵。在非關(guān)系型模型的許多實(shí)現(xiàn)中,鍵值模型是最受歡迎中的一種。鍵值數(shù)據(jù)庫(kù)或存儲(chǔ)表示將唯一鍵映射成一個(gè)或多個(gè)值的集合的簡(jiǎn)單數(shù)據(jù)模型。更具體地,鍵值存儲(chǔ)用于存儲(chǔ)值和便于基于鍵來(lái)定位所存儲(chǔ)的值的索引。例如,可以定位標(biāo)識(shí)書(shū)籍的數(shù)據(jù)的標(biāo)題、作者或出版中的一個(gè)的鍵。關(guān)系型數(shù)據(jù)庫(kù)通常被稱為SQL數(shù)據(jù)庫(kù),而一些非關(guān)系型數(shù)據(jù)庫(kù)則被稱為NoSQL數(shù)據(jù)庫(kù)或存儲(chǔ)。SQL代表結(jié)構(gòu)化查詢語(yǔ)言,該結(jié)構(gòu)化查詢語(yǔ)言是被利用來(lái)查詢和或者與關(guān)系型數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行交互的主要語(yǔ)言。當(dāng)結(jié)合關(guān)系型數(shù)據(jù)庫(kù)來(lái)利用SQL時(shí),該數(shù)據(jù)庫(kù)可被稱為基于SQL的關(guān)系型數(shù)據(jù)庫(kù)。然而,基于SQL的關(guān)系數(shù)據(jù)庫(kù)更經(jīng)常地被簡(jiǎn)稱為SQL數(shù)據(jù)庫(kù),并且用作關(guān)系型數(shù)據(jù)庫(kù)的同義詞。NoSQL是用來(lái)指代與基于SQL的關(guān)系型數(shù)據(jù)庫(kù)不同的數(shù)據(jù)庫(kù)的一個(gè)術(shù)語(yǔ)。換言之,術(shù)語(yǔ)NoSQL被用作非關(guān)系型數(shù)據(jù)庫(kù)或諸如但不限于鍵值存儲(chǔ)的存儲(chǔ)的同義詞。
發(fā)明內(nèi)容
下面呈現(xiàn)了簡(jiǎn)化的發(fā)明內(nèi)容,以便提供對(duì)所公開(kāi)主題的某些方面的基本概念。本發(fā)明內(nèi)容不是廣泛性的概觀。它并不旨在標(biāo)識(shí)關(guān)鍵/重要元素,也不旨在劃定所要求保護(hù)
主題的范圍。其唯一目的是以簡(jiǎn)化形式呈現(xiàn)一些概念,作為稍后呈現(xiàn)的更具體實(shí)施例的序 、
曰ο簡(jiǎn)言之,本發(fā)明一般涉及用于分布式計(jì)算的電子表格模型。具體而言,通過(guò)用任意的數(shù)據(jù)源(例如SQL、NoSQL、基于推的交互、基于拉的交互……)來(lái)取代單元格以一般化電子表格范例(paradigm),所述任意的數(shù)據(jù)源可以是分布式的或彼此遠(yuǎn)離的。另外,可以相對(duì)于這樣的任意數(shù)據(jù)源指定函數(shù)以產(chǎn)生組合的數(shù)據(jù)或混搭(mashup),并且改變可以啟動(dòng)相對(duì)于依賴數(shù)據(jù)源的重新計(jì)算。
為實(shí)現(xiàn)上述及相關(guān)目的,在此結(jié)合以下描述和附圖描述了所要求保護(hù)主題的某些說(shuō)明性方面。這些方面指示可實(shí)踐本主題的各種方式,它們均落在所要求保護(hù)主題的范圍之內(nèi)。當(dāng)結(jié)合附圖閱讀以下詳細(xì)描述時(shí),本發(fā)明的其他優(yōu)點(diǎn)和新穎特征將變得顯而易見(jiàn)。
圖1是方便分布式計(jì)算的系統(tǒng)的框圖。圖2是代表性數(shù)據(jù)源的框圖。圖3A示出了基于推的數(shù)據(jù)的示例。圖;3B描繪了基于拉的數(shù)據(jù)的示例。圖4A是代表性推拉適配器的框圖。圖4B是代表性推拉適配器的框圖。圖5是示出數(shù)據(jù)源合成的框圖。圖6是分布式處理的方法的流程圖。圖7是方便跨數(shù)據(jù)源的數(shù)據(jù)交換的方法的流程圖。圖8是方便跨數(shù)據(jù)源的數(shù)據(jù)交換的方法的流程圖。圖9是提供異步性和最終一致性的方法的流程圖。圖10是示出用于本公開(kāi)各方面的合適操作環(huán)境的示意性框圖。
具體實(shí)施例方式下面的詳述通常針對(duì)用于分布式計(jì)算的電子表格模型。構(gòu)建使用異步性且最終一致性的分布式應(yīng)用是困難的,且對(duì)于大多數(shù)程序開(kāi)發(fā)者來(lái)說(shuō)是困難且不自然的,因?yàn)樾枰斫馑蟹N類的低層細(xì)節(jié)和機(jī)制來(lái)組合數(shù)據(jù)源。然而,大多數(shù)開(kāi)發(fā)者對(duì)于用于異步性和最終一致性計(jì)算的計(jì)算化范例,也即電子表格,都已經(jīng)很熟悉。在電子表格中,可以依據(jù)用戶輸入異步地改變單元格,這會(huì)觸發(fā)函數(shù)的重新計(jì)算,因而導(dǎo)致其它單元格的改變。盡管如此,電子表格將最終聚合為一穩(wěn)定狀態(tài)。如在此所述,將電子表格的范例概括并應(yīng)用于任意且分布式數(shù)據(jù)源,所述數(shù)據(jù)源包括關(guān)系型(例如SQL)和非關(guān)系型(例如NoSQL、coSQL)以及基于推和拉的數(shù)據(jù)交互。可以相對(duì)于這樣的任意數(shù)據(jù)源指定函數(shù)以產(chǎn)生數(shù)據(jù)組合或混搭,例如通過(guò)全局異步且最終一致的計(jì)算。因此,用于分布式計(jì)算的電子表格模型實(shí)質(zhì)性地減少了與分布式應(yīng)用的開(kāi)發(fā)相關(guān)聯(lián)的負(fù)擔(dān),這些負(fù)擔(dān)尤其包括異步性和最終一致性?,F(xiàn)在參考附圖更詳細(xì)地描述本公開(kāi)的各個(gè)方面,在全部附圖中用相似的標(biāo)記來(lái)指示相似或相應(yīng)的元素。然而應(yīng)該理解,附圖及其相關(guān)詳細(xì)描述不旨在將所要求保護(hù)的主題限于所公開(kāi)的具體形式。相反,其意圖是覆蓋落在所要求保護(hù)主題的精神和范圍之內(nèi)的所有修改、等價(jià)物和替換的方案。首先參考圖1,示出了分布式計(jì)算系統(tǒng)100。系統(tǒng)100包括第一數(shù)據(jù)源110和第二數(shù)據(jù)源120以及適配器組件130。第一數(shù)據(jù)源110和第二數(shù)據(jù)源120可以是功能上耦合的分布式數(shù)據(jù)源或換句話說(shuō)是流。這樣,第一數(shù)據(jù)源110和第二數(shù)據(jù)源120可以形成簡(jiǎn)單的混搭,其中,跨數(shù)據(jù)源組合數(shù)據(jù)以產(chǎn)生新的數(shù)據(jù)。在此,第二數(shù)據(jù)源120功能上依賴于第一數(shù)據(jù)源110,如從第一數(shù)據(jù)源110到第二數(shù)據(jù)源120的箭頭所示。換句話說(shuō),第二數(shù)據(jù)源120的一個(gè)或多個(gè)值或元素可以作為來(lái)自第一數(shù)據(jù)源110的數(shù)據(jù)的函數(shù)被生成。例如,如果函數(shù)是簡(jiǎn)單的加1(例如f(X) = X+1),在第二數(shù)據(jù)源120中封裝的值將是第一數(shù)據(jù)源110遞增1的值。而且,第一數(shù)據(jù)源110的值可以異步地改變,并且因此,可以重新計(jì)算第二數(shù)據(jù)源120的值以反映這樣的改變。簡(jiǎn)要地參考圖2,更詳細(xì)地示出示例性的數(shù)據(jù)源210,包括輸入組件212、計(jì)算組件 214以及輸出組件216。輸入組件212能夠接收、檢索或以其它方式獲得或取得數(shù)據(jù),所述數(shù)據(jù)包括如在此后將描述的由適配器提供的數(shù)據(jù)。計(jì)算組件214可以作為至少輸入數(shù)據(jù)的函數(shù)來(lái)計(jì)算某個(gè)結(jié)果或產(chǎn)生新的數(shù)據(jù)(例如單個(gè)值、值的流……)。輸出組件216被配置為提供(例如推)數(shù)據(jù)或以其它方式使得數(shù)據(jù)可用(例如拉),所述數(shù)據(jù)包括輸入數(shù)據(jù)或在涉及計(jì)算時(shí)的計(jì)算的結(jié)果。當(dāng)然,示例性數(shù)據(jù)源210的值不需要被全部計(jì)算,并且如果它是一個(gè)經(jīng)計(jì)算的值,這樣的計(jì)算也不需要在數(shù)據(jù)源210本身之內(nèi)發(fā)生。換言之,示例性數(shù)據(jù)源可以按類似于電子表格單元格的方式操作,所述方式包括接受輸入、基于相關(guān)聯(lián)的函數(shù)計(jì)算值以及可選地?fù)?dān)當(dāng)?shù)揭粋€(gè)或多個(gè)其它單元格的輸入。然而,在此,如同電子表格單元格的情況,示例性數(shù)據(jù)源210不需要被限制為數(shù)字或本地計(jì)笪弁。返回圖1,第一數(shù)據(jù)源110和第二數(shù)據(jù)源120可以是任意數(shù)據(jù)源。換句話說(shuō),源可以支持各種數(shù)據(jù)模型(例如關(guān)系型的、非關(guān)系型的……)以及基于如何獲取數(shù)據(jù)(例如基于推的、基于拉的)的數(shù)據(jù)分類。這樣,分布式計(jì)算系統(tǒng)100—般化常規(guī)電子表格模型,其中, 單元格可以是任意的數(shù)據(jù)源。而且,可以在任意的數(shù)據(jù)模型之間發(fā)生交互。例如,可以在關(guān)系型數(shù)據(jù)庫(kù)上實(shí)現(xiàn)第一數(shù)據(jù)源110,同時(shí)在非關(guān)系型數(shù)據(jù)庫(kù)(例如鍵值存儲(chǔ)、NoSQL、SQL)上實(shí)現(xiàn)第二數(shù)據(jù)源120。適配器組件130可以被配置為方便在第一數(shù)據(jù)源110和第二數(shù)據(jù)源 120之間供應(yīng)數(shù)據(jù),其中,所述源不同地與數(shù)據(jù)交互。圖3A和;3B分別圖形化地描述了數(shù)據(jù)的兩個(gè)分類,即基于推的數(shù)據(jù)和基于拉的數(shù)據(jù),以幫助對(duì)本主題公開(kāi)的方面的清楚理解。圖3A示出了隨時(shí)間改變的連續(xù)的數(shù)據(jù)流300。 例如,連續(xù)的數(shù)據(jù)流300可以表示溫度或潮位。為了取得數(shù)據(jù),可以以系統(tǒng)的頻率來(lái)采樣連續(xù)的數(shù)據(jù)流300,換句話說(shuō),可以在不同的時(shí)間從連續(xù)的數(shù)據(jù)流300中拉取數(shù)據(jù)。所拉取的數(shù)據(jù)310被表示為各種大小的圓圈,圓圈的大小指示了在特定時(shí)間點(diǎn)處數(shù)據(jù)的值(從左向右流)。圖3B描述了從一個(gè)或多個(gè)源230拉取的、流傳送的、或以其它方式提供的一系列異步事件220。例如,可以以這種方式來(lái)提供股票價(jià)格信息或操作系統(tǒng)警報(bào)。當(dāng)然,一些數(shù)據(jù)源可以被配置為處理基于推或基于拉的數(shù)據(jù)交互之一而不是兩個(gè)都處理。因此,相對(duì)于組合數(shù)據(jù)源會(huì)產(chǎn)生問(wèn)題。圖1的適配器組件130可以用于在基于推和基于拉的數(shù)據(jù)源之間進(jìn)行轉(zhuǎn)換。具體而言,適配器組件130可以被具體化為圖4A的推-拉適配器410或圖4B的拉-推適配器 420。如名字所暗示的,推-拉適配器410可以獲取或以其它方式接收推數(shù)據(jù),并且允許數(shù)據(jù)依靠拉機(jī)制被主動(dòng)檢索。特別地,推-拉適配器允許數(shù)據(jù)排成隊(duì)列并隨后從隊(duì)列中拉出, 例如基于“GetNext”或類似指令。例如,SMS(短消息服務(wù))消息的流可以被訂閱,并且,可以緩沖結(jié)果直到一個(gè)實(shí)體請(qǐng)求下一值。相對(duì)地,拉-推適配器420可以周期性地(例如每十分鐘)從一個(gè)源拉取(換句話說(shuō)是主動(dòng)檢索)數(shù)據(jù),并將該數(shù)據(jù)推送(或換言之發(fā)送) 到另一源。例如,可以周期性地采樣RSS(真正簡(jiǎn)單聚合)訂閱源,并且,當(dāng)檢測(cè)到改變時(shí),可以將結(jié)果發(fā)布到基于推的流。與傳統(tǒng)的電子表格不同的是,根據(jù)在此公開(kāi)的主題的實(shí)施例,數(shù)據(jù)源可以是完整合成的。出于有助于對(duì)這個(gè)方面的清楚理解的目的,在圖5中示出了示例性數(shù)據(jù)源500,該數(shù)據(jù)源由多個(gè)其它數(shù)據(jù)源510、512、514和520構(gòu)成。如所示,數(shù)據(jù)源500是兩個(gè)嵌入或嵌套的數(shù)據(jù)源510和520。在電子表格的上下文中,這可以對(duì)應(yīng)于將電子表格封裝為其它電子表格。數(shù)據(jù)源510和520被鏈接在一起,使得數(shù)據(jù)源520可以接收來(lái)自數(shù)據(jù)源510的輸入,類似于將一個(gè)電子表格鏈接到另一個(gè)電子表格。而且,數(shù)據(jù)源510由也被鏈接在一起的數(shù)據(jù)源512和數(shù)據(jù)源514構(gòu)成,然而,在此,鏈接是雙向的,這指示了數(shù)據(jù)源514使用了由數(shù)據(jù)源 512提供的數(shù)據(jù),而數(shù)據(jù)源512使用由數(shù)據(jù)源514提供的數(shù)據(jù)。換句話說(shuō),存在循環(huán)。而且, 在特定數(shù)據(jù)源不具有合適形式的情況下,它可以被導(dǎo)入或改編并饋送給該基于電子表格的數(shù)據(jù)源世界。類似地,來(lái)自數(shù)據(jù)源的數(shù)據(jù)可以被導(dǎo)出到替換形式以便利于在該世界之外使用。從全局層次來(lái)說(shuō),數(shù)據(jù)源(例如由圖5所提供的那些數(shù)據(jù)源)的組合是異步的(例如獨(dú)立于程序控制流)且最終是一致性的。這是電子表格模型的一般化,它是異步地(例如用戶的單元格修改,依賴單元格更新)改變,但在傳播改變之后,該電子表格從整體上看是最終一致性的。例如,用戶可以改變對(duì)應(yīng)于產(chǎn)品的零件的價(jià)格的單元格的值,所述改變隨后可以被傳播以借助于相關(guān)聯(lián)的函數(shù)來(lái)改變通過(guò)將所有的零件的費(fèi)用加起來(lái)表示產(chǎn)品的總費(fèi)用的單元格。另外,如果存在循環(huán),可以通過(guò)將循環(huán)的數(shù)目限制在某個(gè)限定數(shù)目(例如 100個(gè)循環(huán))來(lái)人為造就數(shù)據(jù)源或數(shù)據(jù)源集的一致性。而且,可以使用明確的重新計(jì)算指令來(lái)強(qiáng)迫更新并移動(dòng)到新的一致性狀態(tài)。在本地層次上,計(jì)算可以是同步且事務(wù)性的。為了便于清楚理解,考慮一個(gè)場(chǎng)景, 在其中,數(shù)據(jù)源“C”作為數(shù)據(jù)源“A”和“B”的總和被計(jì)算,并且,初始數(shù)據(jù)源“A”具有值“2”, 而數(shù)據(jù)源“B”具有值“1”,并且這樣,數(shù)據(jù)源“C”具有計(jì)算的值“3”。當(dāng)數(shù)據(jù)源“A”從“2” 改變到“3”時(shí),數(shù)據(jù)源“C”被重新計(jì)算為“4”。然而,在完成對(duì)應(yīng)于相對(duì)于數(shù)據(jù)源“A”的改變的第一計(jì)算之前,數(shù)據(jù)源“B”可以例如從“ 1,,改變到“4”。在這種情況下,改變可以被同步執(zhí)行,或換句話說(shuō),以它們發(fā)生的順序執(zhí)行。而且,改變可以作為事務(wù)執(zhí)行,并且這樣維護(hù) “原子性”、“一致性”、“隔離性”和“持久性”的ACID屬性。換言之,修改是完全起作用的或完全不起作用的,事務(wù)將數(shù)據(jù)源從一種一致?tīng)顟B(tài)成為另一種一致?tīng)顟B(tài),其它操作直到已經(jīng)完成事務(wù)后才能訪問(wèn)已經(jīng)由事務(wù)修改的數(shù)據(jù),并且,提交的事務(wù)在存在系統(tǒng)故障時(shí)是可以恢復(fù)的。這樣,在數(shù)據(jù)源“A”中的改變的影響首先被傳播并且隨后傳播在數(shù)據(jù)源“B”中的改變的影響。換句話說(shuō),數(shù)據(jù)源“C”最初是“3”,當(dāng)數(shù)據(jù)源“A”從“2”變?yōu)椤?”時(shí),它變成 “ 4 ”,并且當(dāng)數(shù)據(jù)源“B ”從“ 1 ”變?yōu)椤?4 ”時(shí),它變成“ 7 ”。暫時(shí)再次回到全局層面,注意,使用如所述的異步且最終一致性的模型具有下述益處異步返回,但讀取操作可以返回舊的或失時(shí)效的值。如果這是個(gè)問(wèn)題,作為替換,可以使用阻塞寫(xiě),其中,只有當(dāng)寫(xiě)已經(jīng)被傳播到整個(gè)數(shù)據(jù)源的網(wǎng)絡(luò)中時(shí)所述寫(xiě)才成功,這樣,后續(xù)的讀將返回最新或當(dāng)前的值。作為電子表格模型的概括化的一部分,可以將單元格提升為或想成更高的抽象層處的數(shù)據(jù)流,而不是特定的數(shù)字值。而且,這些數(shù)據(jù)流可以是看得見(jiàn)的。換句話說(shuō),不是將單元格作為“整數(shù)”類型,所述單元格可以是“ IObservableanteger〉”類型,如在例如C# 和Visual Basic 的編程語(yǔ)言所定義的,例如,這樣,無(wú)論何時(shí)出現(xiàn)相對(duì)于一個(gè)流的改變,可以基于所述改變自動(dòng)重新計(jì)算依賴流(例如“10<int> = 10<int>+10<int>”)。更進(jìn)一步, 語(yǔ)言集成查詢(LINQ)系統(tǒng)或基礎(chǔ)架構(gòu)支持使用看得見(jiàn)的或類似類型或界面,語(yǔ)言集成查詢可以被用于指定函數(shù),所述函數(shù)在某種意義上將數(shù)據(jù)源粘合在一起。LINQ系統(tǒng)能夠允許程序員使用方便且聲明性的簡(jiǎn)寫(xiě)查詢句法(例如象SQL)來(lái)指定語(yǔ)言集成查詢或查詢表達(dá)式,以便于在編程語(yǔ)言(例如,C# 、Visual Basic ...)內(nèi)部的查詢說(shuō)明。更具體而言,可以提供查詢運(yùn)算符,它們映射到較低層語(yǔ)言構(gòu)造或原語(yǔ),例如可以通過(guò)例如編譯器被注入程序的方法和拉姆達(dá)表達(dá)式。提供用于各種運(yùn)算(例如,過(guò)濾、投影、連接、分組、排序……)族的查詢運(yùn)算符,并且查詢運(yùn)算符可包括但不限于映射到實(shí)現(xiàn)這些名稱所表示的運(yùn)算符的方法的“where”和“select”運(yùn)算符。作為示例,用戶可以以諸如 "from η in numbers where η < IOselect η” 的形式指定查詢,其中 “numbers” 是數(shù)據(jù)源并且查詢從數(shù)據(jù)源返回小于10的整數(shù)。此外,可以以各種方式組合查詢運(yùn)算符以生成任意復(fù)雜度的查詢。而且,LINQ系統(tǒng)可以允許指定這樣的查詢,并且隨后便利于在任意數(shù)據(jù)源上執(zhí)行,所述任意數(shù)據(jù)源包括例如但不局限于關(guān)系型存儲(chǔ),例如SQL數(shù)據(jù)庫(kù)和非關(guān)系型存儲(chǔ), 例如NoSQL數(shù)據(jù)庫(kù)(諸如鍵值存儲(chǔ))或coSQLHf^n SQL關(guān)系型數(shù)據(jù)庫(kù)模型的數(shù)學(xué)對(duì)偶)。 因此,生成組合不同種類的數(shù)據(jù)源或換句話說(shuō)產(chǎn)生混搭的應(yīng)用是非常容易的,因?yàn)槌绦騿T不需要理解所有種類的低層細(xì)節(jié)和機(jī)制。參考若干組件之間的交互已經(jīng)描述了上述系統(tǒng)、體系結(jié)構(gòu)、環(huán)境等。應(yīng)該理解,這樣的系統(tǒng)和組件可以包括這些組件或其中指定的子組件,某些指定的組件或子組件,和/ 或附加的組件。子組件也可以被實(shí)現(xiàn)為在通信上被耦合到其他組件而不是被包括在父組件中的組件。此外,一個(gè)或多個(gè)組件和/或子組件可以結(jié)合成提供聚集功能的單個(gè)組件。系統(tǒng)、組件、和/或子組件之間的通信可以根據(jù)推送(push)和/或拉取(pull)模型來(lái)實(shí)現(xiàn)。 各組件也可以與一個(gè)或多個(gè)其他組件進(jìn)行交互,出于簡(jiǎn)要考慮在此未具體描述該組件但本領(lǐng)域的技術(shù)人員均已知。此外,以上公開(kāi)系統(tǒng)以及以下方法的各個(gè)部分可以包括或包含基于人工智能、機(jī)器學(xué)習(xí)或知識(shí)或規(guī)則的組件、子組件、進(jìn)程、裝置、方法或機(jī)制(例如,支持向量機(jī)、神經(jīng)網(wǎng)絡(luò)、專家系統(tǒng)、貝葉斯信任網(wǎng)絡(luò)、模糊邏輯、數(shù)據(jù)融合引擎、分類器等)。這樣的組件和其它組件可以自動(dòng)化執(zhí)行某些機(jī)制或進(jìn)程,由此使得系統(tǒng)和方法的各部分更為自適應(yīng)、高效及智能。作為示例而不是限制,相對(duì)于數(shù)據(jù)存儲(chǔ)和計(jì)算組件214指定的函數(shù)可以使用這樣的機(jī)制。考慮到以上描述的示例性系統(tǒng),參考圖6-9的流程圖將可以更好地理解依照所公開(kāi)的主題實(shí)現(xiàn)的方法。盡管為了說(shuō)明簡(jiǎn)潔起見(jiàn),作為一系列框示出和描述了方法,但是,應(yīng)該理解,所要求保護(hù)的主題不僅限于所描述框的順序,一些框可以按與此處所描繪和描述的不同的順序進(jìn)行和/或與其它框并發(fā)地進(jìn)行。此外,并非全部所示出的框都是實(shí)現(xiàn)下面所描述的方法所必需的。參考圖6,示出了分布式計(jì)算的方法600。在附圖標(biāo)記610處,獲取來(lái)自至少第一數(shù)據(jù)源的數(shù)據(jù)。例如,第一數(shù)據(jù)源可以對(duì)應(yīng)于數(shù)據(jù)流,其中所獲取的數(shù)據(jù)對(duì)應(yīng)于最新或最當(dāng)前的數(shù)據(jù),例如當(dāng)前的溫度或最新的股票價(jià)格。在標(biāo)號(hào)620處,至少基于第一數(shù)據(jù)源觸發(fā)相對(duì)于第二數(shù)據(jù)源的計(jì)算。換句話說(shuō),第二數(shù)據(jù)源依賴于第一數(shù)據(jù)源且作為所述至少第一數(shù)據(jù)源的函數(shù)變化。而且,所述計(jì)算可以作為事務(wù)同步執(zhí)行,從而保留ACID屬性。在附圖標(biāo)記630處,展示第二數(shù)據(jù)源以例如供其它依賴數(shù)據(jù)源使用。圖7說(shuō)明了便于跨數(shù)據(jù)源的數(shù)據(jù)交換的方法700。在附圖標(biāo)記710處,例如從第一數(shù)據(jù)源接收數(shù)據(jù)。在720,將所接收的數(shù)據(jù)存儲(chǔ)在例如隊(duì)列中。在參考730處,作出是否有對(duì)例如來(lái)自第二數(shù)據(jù)源的數(shù)據(jù)的請(qǐng)求的確定。如果在730處不存在對(duì)數(shù)據(jù)的當(dāng)前請(qǐng)求 (“否”),則方法700循環(huán)回附圖標(biāo)記710,在那方法繼續(xù)接收數(shù)據(jù)并在720隨后保存數(shù)據(jù)。 然而,如果存在對(duì)數(shù)據(jù)的請(qǐng)求(“是”),在標(biāo)號(hào)740處將數(shù)據(jù)提供給作出請(qǐng)求的源,并且方法循環(huán)回附圖標(biāo)記710。換句話說(shuō),從第一源推出的數(shù)據(jù)排成隊(duì)列,并且隨后由第二數(shù)據(jù)源 (即請(qǐng)求源)將其從隊(duì)列中拉出。根據(jù)一個(gè)實(shí)施例,所述請(qǐng)求和提供數(shù)據(jù)的動(dòng)作可以是遞增的,這樣,例如從先進(jìn)先出(FIFO)隊(duì)列的前部提供單個(gè)值。圖8是便于跨數(shù)據(jù)源的數(shù)據(jù)交換的方法800的流程圖。在附圖標(biāo)記810處,請(qǐng)求來(lái)自第一數(shù)據(jù)源的數(shù)據(jù)。在820,作出是否有任何數(shù)據(jù)可用的確定。例如,所述確定可以注意自上次請(qǐng)求以來(lái)是否有任何新的數(shù)據(jù)可用。如果不存在可用的數(shù)據(jù)(“否”),方法800在 840繼續(xù),在那方法等待一時(shí)間段。然而,如果數(shù)據(jù)可用(“是”),方法800前進(jìn)到附圖標(biāo)記 830,在那,將可用的數(shù)據(jù)提供給第二源。換句話說(shuō),以周期性間隔從第一源拉取數(shù)據(jù),并將其推送到第二源。在等待一個(gè)時(shí)間段之后,在840,方法800在附圖標(biāo)記810繼續(xù),在那,再次請(qǐng)求來(lái)自第一源的數(shù)據(jù)。圖900是提供最終一致性的方法的流程圖。在附圖標(biāo)記910,例如基于對(duì)依賴數(shù)據(jù)源的改變重新計(jì)算與兩個(gè)或更多數(shù)據(jù)源相關(guān)聯(lián)的數(shù)據(jù)。在一些情況下,存在循環(huán),這樣的重新計(jì)算可以在運(yùn)轉(zhuǎn)中設(shè)定無(wú)盡(non-terminating)的重新計(jì)算。例如,如果“A”依賴于 “B”且“B”依賴于“A”,那么,對(duì)“A”的改變將引起連續(xù)的重新計(jì)算,因?yàn)?,?duì)“A”的改變引起“B”也改變,而對(duì)“B”的改變隨后再次引起“A”改變。在附圖標(biāo)記920,作出是否出現(xiàn)循環(huán)的最大數(shù)目的檢查。如果還沒(méi)有達(dá)到循環(huán)的最大數(shù)目(“否”),方法900可以返回附圖標(biāo)記910?;蛘?,方法900可以在達(dá)到循環(huán)的最大數(shù)目(“是”)時(shí)終止。在這種方式中,可以人為確保最終的一致性。而且,可以明確啟動(dòng)方法900來(lái)提供進(jìn)一步的更新和后續(xù)一致性。此處使用的術(shù)語(yǔ)“組件”和“系統(tǒng)”及其各種形式旨在表示與計(jì)算機(jī)相關(guān)的實(shí)體,其可以是硬件、硬件和軟件的組合、軟件、或執(zhí)行中的軟件。例如,組件可以是但不限于是,在處理器上運(yùn)行的進(jìn)程、處理器、對(duì)象、實(shí)例、可執(zhí)行程序、執(zhí)行的線程、程序和/或計(jì)算機(jī)。作為說(shuō)明,在計(jì)算機(jī)上運(yùn)行的應(yīng)用和計(jì)算機(jī)都可以是組件。一個(gè)或多個(gè)組件可駐留在進(jìn)程和 /或執(zhí)行的線程內(nèi),并且組件可位于一個(gè)計(jì)算機(jī)上和/或分布在兩個(gè)或更多的計(jì)算機(jī)之間。在本文中使用的詞語(yǔ)“示例性”或其各種形式意味著用作示例、實(shí)例或說(shuō)明。在此被描述為“示例性”的任何方面或設(shè)計(jì)并不一定要被解釋為相比其它方面或設(shè)計(jì)更優(yōu)選或有利。此外,各示例只是出于清楚和理解的目的來(lái)提供的并且并不意味著以任何方式限制或約束所要求保護(hù)主題或本發(fā)明的相關(guān)部分??梢岳斫?,本來(lái)可呈現(xiàn)不同范圍的多個(gè)附加或替換示例,但出于簡(jiǎn)明的目的已被省略。術(shù)語(yǔ)“coSQL”旨在意指特定的非關(guān)系型、鍵值數(shù)據(jù)模型,它是關(guān)系型的或SQL數(shù)據(jù)模型的數(shù)學(xué)對(duì)偶。更具體地,“coSQL”對(duì)應(yīng)于特定的“NoSQL”數(shù)據(jù)模型,當(dāng)向其應(yīng)用數(shù)學(xué)對(duì)偶時(shí),導(dǎo)出關(guān)系型或SQL數(shù)據(jù)模型。
如此處所使用,術(shù)語(yǔ)“推論”或“推斷”通常指的是從經(jīng)由事件和/或數(shù)據(jù)捕捉的一組觀察結(jié)果來(lái)推理或推斷系統(tǒng)、環(huán)境、和/或用戶的狀態(tài)的過(guò)程??梢允褂猛茢鄟?lái)標(biāo)識(shí)特定上下文或動(dòng)作,也可以生成例如狀態(tài)上的概率分布。推斷可以是概率性的,即,基于對(duì)數(shù)據(jù)和事件的考慮,計(jì)算在感興趣狀態(tài)上的概率分布。推斷也可以是指用于從一組事件和/或數(shù)據(jù)構(gòu)成較高級(jí)別的事件的技術(shù)。這樣的推斷導(dǎo)致從一組觀察到的事件和/或存儲(chǔ)的事件數(shù)據(jù)構(gòu)建新的事件或動(dòng)作,不管事件在時(shí)間上是否緊密相關(guān),以及事件和數(shù)據(jù)是來(lái)自一個(gè)還是多個(gè)事件和數(shù)據(jù)源??刹捎酶鞣N分類方案和/或系統(tǒng)(例如,支持向量機(jī)、神經(jīng)網(wǎng)絡(luò)、 專家系統(tǒng)、貝葉斯信任網(wǎng)絡(luò)、模糊邏輯、數(shù)據(jù)融合引擎……)來(lái)執(zhí)行關(guān)于所要求保護(hù)主題的自動(dòng)化和/或推斷的動(dòng)作。
而且,對(duì)于在詳細(xì)描述或權(quán)利要求書(shū)中使用術(shù)語(yǔ)“包括”、“包含”、“具有”、“含有” 或其它形式的變型而言,這樣的術(shù)語(yǔ)旨在以類似于術(shù)語(yǔ)“包括”的方式體現(xiàn)包含性,如同“包括”在用作權(quán)利要求書(shū)中的過(guò)渡詞時(shí)所解釋的那樣。
為了為所要求保護(hù)主題提供上下文,圖10以及以下討論旨在提供對(duì)其中可以實(shí)現(xiàn)本主題的各方面的合適環(huán)境的簡(jiǎn)要、概括描述。然而,合適的環(huán)境只是示例并且并非旨在對(duì)使用范圍或功能提出任何限制。
盡管能夠在可以在一臺(tái)或多臺(tái)計(jì)算機(jī)上運(yùn)行的程序的計(jì)算機(jī)可執(zhí)行指令的一般上下文中描述以上公開(kāi)的系統(tǒng)和方法,但是,本領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到,各方面也可以與其他程序模塊等相結(jié)合地實(shí)現(xiàn)。一般而言,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、組件和數(shù)據(jù)結(jié)構(gòu)等。此外,本領(lǐng)域技術(shù)人員可以理解,上述系統(tǒng)和方法可用各種計(jì)算機(jī)系統(tǒng)配置實(shí)現(xiàn),包括單處理器、多處理器或多核處理器計(jì)算機(jī)系統(tǒng)、小型計(jì)算設(shè)備、大型計(jì)算機(jī)、以及個(gè)人計(jì)算機(jī)、手持式計(jì)算設(shè)備(例如,個(gè)人數(shù)字助理(PDA)、電話、 手表……)、基于微處理器或可編程消費(fèi)者或工業(yè)電子設(shè)備等。各方面也可以在其中任務(wù)由通過(guò)通信網(wǎng)絡(luò)鏈接的遠(yuǎn)程處理設(shè)備執(zhí)行的分布式計(jì)算環(huán)境中實(shí)現(xiàn)。然而,所要求保護(hù)主題的某些方面,如果不是所有方面的話,可以在獨(dú)立計(jì)算機(jī)上實(shí)施。在分布式計(jì)算環(huán)境中,程序模塊可以位于本地和遠(yuǎn)程存儲(chǔ)器存儲(chǔ)設(shè)備中的一個(gè)或兩者中。
參考圖10,示出了示例通用計(jì)算機(jī)1010或計(jì)算設(shè)備(例如,臺(tái)式機(jī)、膝上型計(jì)算機(jī)、服務(wù)器、手持式設(shè)備、可編程消費(fèi)或工業(yè)電子產(chǎn)品、機(jī)頂盒、游戲系統(tǒng)……)。計(jì)算機(jī)1010 包括一個(gè)或多個(gè)處理器1020、存儲(chǔ)器1030、系統(tǒng)總線1040、大容量存儲(chǔ)1050、以及一個(gè)或多個(gè)接口組件1070。系統(tǒng)總線1040與至少上述系統(tǒng)組件通信地耦合。然而,可以理解,在其最簡(jiǎn)單的形式中,計(jì)算機(jī)1010可包括耦合到存儲(chǔ)器1030的一個(gè)或多個(gè)處理器1020,該一個(gè)或多個(gè)處理器1020執(zhí)行存儲(chǔ)在存儲(chǔ)器1030中的各種計(jì)算機(jī)可執(zhí)行動(dòng)作、指令和或組件。
處理器1020可以用通用處理器、數(shù)字信號(hào)處理器(DSP)、應(yīng)用程序?qū)S眉呻娐?(ASIC)、現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA)或其它可編程邏輯設(shè)備、分立門(mén)或晶體管邏輯、分立硬件組件或被設(shè)計(jì)為執(zhí)行此處描述的功能的其任意組合來(lái)實(shí)現(xiàn)。通用處理器可以是微處理器,但在替換方案中,處理器可以是任何處理器、控制器、微控制器、或狀態(tài)機(jī)。處理器1020 還可被實(shí)現(xiàn)為計(jì)算設(shè)備的組合,例如DSP和微處理器的組合、多個(gè)微處理器、多核處理器、 結(jié)合一個(gè)DSP核的一個(gè)或多個(gè)微處理器、或任何其它這種配置。
計(jì)算機(jī)1010可包括各種計(jì)算機(jī)可讀介質(zhì)或以其他方式與各種計(jì)算機(jī)可讀介質(zhì)交互以便于控制計(jì)算機(jī)1010來(lái)實(shí)現(xiàn)所要求保護(hù)主題的一個(gè)或多個(gè)方面。計(jì)算機(jī)可讀介質(zhì)可以是能由計(jì)算機(jī)1010訪問(wèn)的任何可用介質(zhì),并包含易失性和非易失性介質(zhì)以及可移動(dòng)、不可移動(dòng)介質(zhì)。作為示例而非限制,計(jì)算機(jī)可讀介質(zhì)可包括計(jì)算機(jī)存儲(chǔ)介質(zhì)和通信介質(zhì)。
計(jì)算機(jī)存儲(chǔ)介質(zhì)包括以用于存儲(chǔ)諸如計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù)這樣的信息的任意方法或技術(shù)來(lái)實(shí)現(xiàn)的易失性和非易失性、可移動(dòng)和不可移動(dòng)介質(zhì)。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括但不限于,存儲(chǔ)器設(shè)備(例如,隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、電可擦除可編程只讀存儲(chǔ)器(EEPROM)……)、磁存儲(chǔ)設(shè)備(例如,硬盤(pán)、軟盤(pán)、磁帶盒、磁帶……)、光盤(pán)(例如,緊致盤(pán)(CD)、數(shù)字多功能盤(pán)(DVD)……)、以及固態(tài)設(shè)備(例如, 固態(tài)驅(qū)動(dòng)器(SSD)、閃存驅(qū)動(dòng)器(例如,卡、棒、鍵驅(qū)動(dòng)器……)……)、或者可用于存儲(chǔ)所需信息并且可由計(jì)算機(jī)1010訪問(wèn)的任何其它介質(zhì)。
通信介質(zhì)通常以諸如載波或其他傳輸機(jī)制等已調(diào)制數(shù)據(jù)信號(hào)來(lái)體現(xiàn)計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其他數(shù)據(jù),并包括任何信息傳送介質(zhì)。術(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ì)。上面各項(xiàng)中的任何項(xiàng)的組合也應(yīng)該包括在計(jì)算機(jī)可讀介質(zhì)的范圍內(nèi)。
存儲(chǔ)器1030和大容量存儲(chǔ)1050是計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的示例。取決于計(jì)算設(shè)備的確切配置和類型,存儲(chǔ)器1030可以是易失性的(例如RAM)、非易失性的(例如ROM、閃存……)或是兩者的某種組合。作為示例,基本輸入/輸出系統(tǒng)(BIOS),包括諸如在啟動(dòng)期間在計(jì)算機(jī)1010內(nèi)的元件之間傳輸信息的基本例程,可被存儲(chǔ)在非易失性存儲(chǔ)器中,而易失性存儲(chǔ)器可擔(dān)當(dāng)外部高速緩存存儲(chǔ)器以便于處理器1020的處理等。
大容量存儲(chǔ)1050包括相對(duì)于存儲(chǔ)器1030用于存儲(chǔ)大量數(shù)據(jù)的可移動(dòng)/不可移動(dòng)、易失性/非易失性計(jì)算機(jī)存儲(chǔ)介質(zhì)。例如,大容量存儲(chǔ)1050包括但不限于,諸如磁盤(pán)或光盤(pán)驅(qū)動(dòng)器、軟盤(pán)驅(qū)動(dòng)器、閃存存儲(chǔ)器、固態(tài)驅(qū)動(dòng)器、或記憶棒的一個(gè)或多個(gè)設(shè)備。
存儲(chǔ)器1030和大容量存儲(chǔ)1050可包括或其中存儲(chǔ)有操作系統(tǒng)1060、一個(gè)或多個(gè)應(yīng)用1062、一個(gè)或多個(gè)程序模塊1064和數(shù)據(jù)1066。操作系統(tǒng)1060用于控制和分配計(jì)算機(jī) 1010的資源。應(yīng)用1062包括系統(tǒng)和應(yīng)用軟件中的一個(gè)或兩個(gè),并且可通過(guò)存儲(chǔ)在存儲(chǔ)器 1030和/或大容量存儲(chǔ)1050中的程序模塊1064和數(shù)據(jù)1066來(lái)利用操作系統(tǒng)1060對(duì)資源的管理以執(zhí)行一個(gè)或多個(gè)動(dòng)作。因此,應(yīng)用1062可根據(jù)由此提供的邏輯來(lái)將通用計(jì)算機(jī) 1010變成專用機(jī)器。
所要求保護(hù)主題的全部或各部分可以使用產(chǎn)生控制計(jì)算機(jī)以實(shí)現(xiàn)所公開(kāi)功能的軟件、固件、硬件或其任意組合的標(biāo)準(zhǔn)編程和/或工程技術(shù)來(lái)實(shí)現(xiàn)。作為示例而非限制,分布式計(jì)算系統(tǒng)100或其一部分可以是應(yīng)用1062或形成應(yīng)用1062的一部分,并且包括一個(gè)或多個(gè)模塊1064以及存儲(chǔ)在存儲(chǔ)器和/或大容量存儲(chǔ)1050中的數(shù)據(jù)1066,在由一個(gè)或多個(gè)處理器1020執(zhí)行所述數(shù)據(jù)時(shí)可實(shí)現(xiàn)其功能性。
根據(jù)一個(gè)特定實(shí)施例,處理器1020可與片上系統(tǒng)(SOC)或在單個(gè)集成電路基座上包括或換言之集成硬件和軟件的類似體系結(jié)構(gòu)相對(duì)應(yīng)。此處,處理器1020可包括至少與處理器1020和存儲(chǔ)器1030相似的一個(gè)或多個(gè)處理器以及存儲(chǔ)器等。常規(guī)處理器包括最少量的硬件和軟件并且廣泛依賴于外部硬件和軟件。作為對(duì)比,處理器的SOC實(shí)現(xiàn)更強(qiáng)大,因?yàn)樗鼘⒂布蛙浖度肫渲幸阅軌蛴米钌俚挠布蛙浖虿灰蕾囉谕獠坑布蛙浖?lái)啟用特定功能。例如,分布式計(jì)算系統(tǒng)100和/或相關(guān)聯(lián)的功能可被嵌入到SOC體系結(jié)構(gòu)中的硬件內(nèi)。
計(jì)算機(jī)1010還包括通信地耦合到系統(tǒng)總線1040并方便與計(jì)算機(jī)1010的交互的一個(gè)或多個(gè)接口組件1070。作為示例,接口組件1070可以是端口(例如,串行、并行、 PCMCIA、USB、火線……)或接口卡(例如,聲音、視頻……)等等。在一個(gè)示例實(shí)現(xiàn)中,接口組件1070可被具體化為用戶輸入/輸出接口,該用戶輸入/輸出接口使得用戶能夠通過(guò)一個(gè)或多個(gè)輸入設(shè)備(例如,諸如鼠標(biāo)的指向設(shè)備、跟蹤球、指示筆、觸摸墊、鍵盤(pán)、話筒、操縱桿、游戲墊、圓盤(pán)式衛(wèi)星天線、掃描儀、相機(jī)、其他計(jì)算機(jī)……)來(lái)將命令和信息輸入到計(jì)算機(jī)1010中。在另一示例實(shí)現(xiàn)中,接口組件1070可被具體化為輸出外圍接口,該輸出外圍接口向顯示器(例如,CRT、LCD、等離子……)、揚(yáng)聲器、打印機(jī)和/或其它計(jì)算機(jī)等提供輸出。 此外,接口組件1070可被具體化為網(wǎng)絡(luò)接口,該網(wǎng)絡(luò)接口使得能夠諸如通過(guò)有線或無(wú)線通信鏈路與其他計(jì)算設(shè)備(未示出)通信。
以上所已經(jīng)描述的內(nèi)容包括所要求保護(hù)主題的各方面的示例。當(dāng)然,出于描繪所要求保護(hù)主題的目的而描述每一個(gè)可以想到的組件或方法的組合是不可能的,但本領(lǐng)域內(nèi)的普通技術(shù)人員應(yīng)該認(rèn)識(shí)到,所要求保護(hù)主題的許多進(jìn)一步的組合和排列都是可能的。從而,所公開(kāi)的主題旨在涵蓋落入所附權(quán)利要求書(shū)的精神和范圍內(nèi)的所有這樣的變更、修改和變化。
權(quán)利要求
1.一種分布式計(jì)算的方法,包括采用被配置來(lái)執(zhí)行存儲(chǔ)在存儲(chǔ)器(1030)中的計(jì)算機(jī)可執(zhí)行指令以執(zhí)行以下動(dòng)作的至少一個(gè)處理器(1020)觸發(fā)作為第二數(shù)據(jù)源的函數(shù)的相對(duì)于第一數(shù)據(jù)源的計(jì)算,所述第一數(shù)據(jù)源和第二數(shù)據(jù)源是分布式數(shù)據(jù)源。
2.如權(quán)利要求1所述的方法,其特征在于,進(jìn)一步包括觸發(fā)作為所述第一數(shù)據(jù)源的函數(shù)的所述第二數(shù)據(jù)源的計(jì)算。
3.如權(quán)利要求2所述的方法,其特征在于,進(jìn)一步包括將相對(duì)于所述第一數(shù)據(jù)源和第二數(shù)據(jù)源的計(jì)算限于有限數(shù)量的循環(huán)。
4.如權(quán)利要求1所述的方法,其特征在于,進(jìn)一步包括從所述第二數(shù)據(jù)源拉取數(shù)據(jù), 并將所述數(shù)據(jù)推送到所述第一數(shù)據(jù)源。
5.如權(quán)利要求1所述的方法,其特征在于,進(jìn)一步包括捕捉由所述第二數(shù)據(jù)源推送的數(shù)據(jù),并且使得所述數(shù)據(jù)由所述第一數(shù)據(jù)源檢索。
6.一種分布式計(jì)算的系統(tǒng),包括耦合到存儲(chǔ)器(1030)的處理器(1020),所述處理器(1020)被配置來(lái)執(zhí)行存儲(chǔ)在所述存儲(chǔ)器(1030)中的以下計(jì)算機(jī)可執(zhí)行組件第一組件014),被配置成作為對(duì)第二數(shù)據(jù)源的值的改變的函數(shù)來(lái)計(jì)算第一數(shù)據(jù)源的值,其中,所述第一數(shù)據(jù)源和第二數(shù)據(jù)源是分布式數(shù)據(jù)源。
7.如權(quán)利要求6所述的系統(tǒng),其特征在于,所述第一組件被配置成作為所述改變的函數(shù)來(lái)事務(wù)性地計(jì)算所述第一數(shù)據(jù)源的值。
8.如權(quán)利要求6所述的系統(tǒng),其特征在于,所述第一數(shù)據(jù)源或所述第二數(shù)據(jù)源中的至少一個(gè)被鍵值數(shù)據(jù)模型所支持。
9.如權(quán)利要求6所述的系統(tǒng),其特征在于,進(jìn)一步包括適配器組件,被配置成從所述第二數(shù)據(jù)源接收值并基于請(qǐng)求將該值提供給所述第一數(shù)據(jù)源。
10.如權(quán)利要求6所述的系統(tǒng),其特征在于,進(jìn)一步包括適配器組件,被配置成從所述第二數(shù)據(jù)源檢索值并將該值提供給所述第一數(shù)據(jù)源。
全文摘要
本申請(qǐng)是用于分布式計(jì)算的電子表格模型。使用電子表格模型來(lái)方便分布式計(jì)算。一般化電子表格和單元格以對(duì)應(yīng)尤其可以彼此遠(yuǎn)離的任意數(shù)據(jù)源??梢韵鄬?duì)于這些任意數(shù)據(jù)源指定函數(shù)以產(chǎn)生數(shù)據(jù)組合或混搭,并且改變啟動(dòng)相對(duì)于依賴數(shù)據(jù)源的重新計(jì)算。
文檔編號(hào)G06F17/30GK102541993SQ20111036441
公開(kāi)日2012年7月4日 申請(qǐng)日期2011年11月2日 優(yōu)先權(quán)日2010年11月3日
發(fā)明者H·J·M·梅杰 申請(qǐng)人:微軟公司