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

用于管理Feed數(shù)據(jù)的系統(tǒng)和方法

文檔序號(hào):7692407閱讀:485來(lái)源:國(guó)知局
專利名稱:用于管理Feed數(shù)據(jù)的系統(tǒng)和方法
技術(shù)領(lǐng)域
本發(fā)明一般地涉及Web Feed (也可以稱為Web訂閱源,以下簡(jiǎn)稱為 Feed)數(shù)據(jù)的存儲(chǔ)和檢索,并且具體而言涉及一種用于管理Feed數(shù)據(jù)的 系統(tǒng)和方法。
背景技術(shù)
隨著萬(wàn)維網(wǎng)(World Wide Web, WWW)的蓬勃發(fā)展,Web的內(nèi)容 變得越來(lái)越豐富。在進(jìn)入Web 2.0時(shí)代之后,估計(jì)Web —共具有大約 150-300億個(gè)網(wǎng)頁(yè)。因此,對(duì)于用戶來(lái)說(shuō),手動(dòng)地逐個(gè)訪問(wèn)感興趣的網(wǎng)頁(yè)以 及在其中定位感興趣的內(nèi)容正在變成一項(xiàng)繁重的勞動(dòng)。由此,許多網(wǎng)站提 供REST、 SOAP、 WSDL、 FEED以及其它用于機(jī)器訪問(wèn)的Web服務(wù)。
Feed數(shù)據(jù)是一種數(shù)據(jù)格式,其用于向用戶提供頻繁更新的內(nèi)容。內(nèi)容 分發(fā)者將Feed聯(lián)合(syndicate),從而允許用戶訂閱它。收集可訪問(wèn)的 Feed的集合被稱為聚合(aggregation),其通過(guò)因特網(wǎng)聚合器來(lái)實(shí)現(xiàn)。
對(duì)于Feed的應(yīng)用可以理解為是一種信息傳輸方式,與我們所熟悉的電 子郵件、萬(wàn)維網(wǎng)(WWW)、即時(shí)消息傳送(IM)并列。這種新的信息傳 輸方式主要解決了以下幾個(gè)問(wèn)題
1. 信息源的更新監(jiān)測(cè);
2. 多個(gè)信息源的集中處理;
3. 所有信息按照信息源的自動(dòng)分類。
從它主要解決的幾個(gè)問(wèn)題可以看出,通過(guò)Feed的這種信息傳輸方式將 信息獲取(處理)的效率提升到了一個(gè)新的高度,它節(jié)省了用戶瀏覽信息 所需要的時(shí)間,或者在同樣的時(shí)間內(nèi)能夠讓用戶瀏覽更大量的信息。例如RDF、 RSS、 ATOM都是信息源的格式標(biāo)準(zhǔn)。Feed之所以出現(xiàn)并且流行, 是因?yàn)橐蛱鼐W(wǎng)上的信息源越來(lái)越多,而且信息源的更新越來(lái)越頻繁,而用 戶的瀏覽效率越來(lái)越低,從而需要一種工具來(lái)幫助用戶查找感興趣信息的 更新并向用戶通知。
在應(yīng)用Feed的典型場(chǎng)景中,內(nèi)容提供者在其網(wǎng)站上發(fā)布Feed鏈接, 終端用戶可以通過(guò)在其自己的機(jī)器上運(yùn)行的聚合器程序(也可以被稱為 Feed閱讀器或新聞閱讀器)在網(wǎng)站上進(jìn)行注冊(cè)。終端用戶可以簡(jiǎn)單地將 Feed鏈接從Web瀏覽器拖拽到聚合器。當(dāng)聚合器運(yùn)行時(shí),它向它的Feed 列表中的所有服務(wù)器詢問(wèn)其是否具有新內(nèi)容。如果有新內(nèi)容,則聚合器或 者對(duì)該新內(nèi)容進(jìn)行注釋,或者下載該內(nèi)容。聚合器還可以被調(diào)度為周期性 地檢查新內(nèi)容。
由Feed所傳送的數(shù)據(jù)的種類典型地為HTML (超文本標(biāo)記語(yǔ)言)的 網(wǎng)頁(yè)內(nèi)容或者指向網(wǎng)頁(yè)的鏈接以及其它類型的數(shù)字媒體。通常,當(dāng)網(wǎng)站提 供Feed來(lái)向用戶通知內(nèi)容更新時(shí),該通知通常包括Feed的摘要而不是其
整個(gè)內(nèi)容。
相對(duì)于經(jīng)由電子郵件或者其它方式接收頻繁發(fā)布的內(nèi)容,F(xiàn)eed具有很 多優(yōu)點(diǎn)。當(dāng)訂閱Feed時(shí),用戶不必公開(kāi)他們的電子郵件地址,從而不會(huì)增 加與暴露電子郵件相關(guān)的風(fēng)險(xiǎn),諸如垃圾郵件、病毒、身份盜竊等等。當(dāng) 用戶想停止接收Feed數(shù)據(jù)的更新時(shí),他們不必非要發(fā)送"取消訂閱"請(qǐng)求, 而是他們可以簡(jiǎn)單地從其聚合器中移除Feed鏈接。
通過(guò)上述對(duì)Feed的介紹可以看出,隨著越來(lái)越多的傳統(tǒng)網(wǎng)站正在采用 Web2.0的特征,并提供支持Feed的Web服務(wù),以及隨著用戶對(duì)Feed的 需求和訂閱行為的增加,F(xiàn)eed數(shù)據(jù)將是海量的,且在不停更新和增加,并 且Feed數(shù)據(jù)的內(nèi)容是多種多樣的。例如,博客(blog)網(wǎng)站所提供的博客 內(nèi)容每天都在不斷增加。因此,這些海量的Feed數(shù)據(jù)需要一種簡(jiǎn)單的、成 本合算的存儲(chǔ)系統(tǒng),其具有高度的可擴(kuò)展性和可恢復(fù)性,以便支持對(duì)Feed 數(shù)據(jù)的各種操作(例如存儲(chǔ)、爬取(crawling)、查詢、搜索和維護(hù))。
出于此目的,例如可以使用現(xiàn)有技術(shù)中的RAID(獨(dú)立磁 冗余陣列)、SAN (存儲(chǔ)區(qū)域網(wǎng)絡(luò))、分布式RDB (關(guān)系數(shù)據(jù)庫(kù))、文件系統(tǒng)、RDB 群集等等。但是,由于Feed數(shù)據(jù)的固有特點(diǎn)(海量、不斷增加、多種多樣), 這些現(xiàn)有技術(shù)對(duì)于Feed數(shù)據(jù)的存儲(chǔ)來(lái)說(shuō)并非最佳選擇。例如,這些現(xiàn)有系 統(tǒng)的特征有專注于一般數(shù)據(jù)存儲(chǔ),而缺乏對(duì)Feed數(shù)據(jù)的原生(native) 存儲(chǔ)支持;難于進(jìn)行擴(kuò)展;安裝和管理十分復(fù)雜;以及對(duì)于海量的Feed 數(shù)據(jù)的存儲(chǔ)和操作來(lái)說(shuō)是昂貴的。
因此,為了在Web 2.0時(shí)代中更好地處理海量的Feed數(shù)據(jù),提高對(duì) Feed數(shù)據(jù)的各種操作(例如存儲(chǔ)、爬取、查詢、搜索、維護(hù))的運(yùn)行效率, 同時(shí)兼顧可擴(kuò)展性、簡(jiǎn)單性和健壯性,存在對(duì)于一種用于管理Feed數(shù)據(jù)的 改進(jìn)的系統(tǒng)和方法的需要。

發(fā)明內(nèi)容
為了針對(duì)Feed數(shù)據(jù)的特性來(lái)管理Feed數(shù)據(jù),而提出了本發(fā)明。在本 發(fā)明中,通過(guò)將Feed數(shù)據(jù)存儲(chǔ)為Feed數(shù)據(jù)表,實(shí)現(xiàn)對(duì)Feed數(shù)據(jù)的原生 存儲(chǔ)支持,基于多個(gè)維度將Feed數(shù)據(jù)表劃分到不同的分區(qū),建立數(shù)據(jù)表級(jí) 別的復(fù)制機(jī)制,并且以對(duì)等方式將Feed設(shè)備架構(gòu)成群集,且提供簡(jiǎn)單的面 向資源的訪問(wèn)接口。
在本發(fā)明的第一方面中,提出了一種用于管理Feed數(shù)據(jù)的系統(tǒng),所述 系統(tǒng)包括
網(wǎng)關(guān),用于向多個(gè)Feed設(shè)備之一轉(zhuǎn)發(fā)對(duì)所述Feed數(shù)據(jù)的操作請(qǐng)求;
以及
多個(gè)Feed設(shè)備,所述多個(gè)Feed設(shè)備之間采用對(duì)等方式相互連接和通 信,其中接收到所述操作請(qǐng)求的主Feed設(shè)備和其它從屬Feed設(shè)備協(xié)同工 作,用于存儲(chǔ)所述Feed數(shù)據(jù),并根據(jù)所述操作請(qǐng)求來(lái)執(zhí)行對(duì)Feed數(shù)據(jù)的 操作。
在本發(fā)明的第二方面中,提出了一種用于管理Feed數(shù)據(jù)的方法,所述 方法包才舌
由網(wǎng)關(guān)向采用對(duì)等方式相互連接和通信的多個(gè)Feed設(shè)備之一轉(zhuǎn)發(fā)對(duì)所述Feed數(shù)據(jù)的操作請(qǐng)求;以及
由所述多個(gè)Feed設(shè)備中接收到所述操作請(qǐng)求的主Feed設(shè)備與所述多 個(gè)Feed設(shè)備中的其它從屬Feed設(shè)備協(xié)同工作,用于存儲(chǔ)所述Feed數(shù)據(jù), 并根據(jù)所述操作請(qǐng)求來(lái)執(zhí)行對(duì)Feed數(shù)據(jù)的操作。
利用本發(fā)明的系統(tǒng)和方法,可以獲得高效的Feed數(shù)據(jù)表的多維度分 區(qū),充分的健壯性,即插即用的高擴(kuò)展性,簡(jiǎn)單的應(yīng)用編程接口 (API) 以及對(duì)Feed數(shù)據(jù)的原生存儲(chǔ)支持。


在附帶的權(quán)利要求中闡明了被認(rèn)為是本發(fā)明新穎特性的特征。然而, 通過(guò)參考以下結(jié)合附圖的說(shuō)明性實(shí)施例的詳細(xì)描述,將最好地理解本發(fā)明 本身以及其優(yōu)選使用模式、另外的目的和優(yōu)點(diǎn),在附圖中
圖1示出了才艮據(jù)本發(fā)明 一個(gè)實(shí)施例的用于管理Feed數(shù)據(jù)的系統(tǒng)的簡(jiǎn)單 示意圖2A和2B具體描述根據(jù)本發(fā)明實(shí)施例的用于管理Feed數(shù)據(jù)的系統(tǒng) 的體系結(jié)構(gòu)和運(yùn)行模式;
圖3詳細(xì)描述了圖2A和2B示出的系統(tǒng)中的Feedi殳備(活動(dòng)節(jié)點(diǎn)) 的內(nèi)部結(jié)構(gòu)的示意圖4示出了對(duì)于Feed數(shù)據(jù)表的存儲(chǔ)策略的示例性示圖; 圖5示出了分區(qū)在活動(dòng)節(jié)點(diǎn)上的示例性分布,所述分區(qū)各自包括若干 Feed表;
圖6詳細(xì)描述了圖2A和2B示出的系統(tǒng)中的監(jiān)視節(jié)點(diǎn)的內(nèi)部結(jié)構(gòu)的示 意圖;以及
圖7示出了才艮據(jù)本發(fā)明 一 個(gè)實(shí)施例的用于管理Feed #史據(jù)的方法的流程圖。
需要注意,在全體附圖中,相同或相似的標(biāo)號(hào)指代的是相同或相似的 單元或組件。
具體實(shí)施例方式
在下文中將結(jié)合附圖對(duì)本發(fā)明的示范性實(shí)施例進(jìn)行描述。為了清楚和 簡(jiǎn)明起見(jiàn),在說(shuō)明書(shū)中并未描述實(shí)際實(shí)現(xiàn)方式的所有特征。然而,應(yīng)該了 解,在開(kāi)發(fā)任何這種實(shí)際實(shí)施例的過(guò)程中必須做出很多實(shí)現(xiàn)方式所特定的 決定,以便實(shí)現(xiàn)開(kāi)發(fā)人員的具體目標(biāo),例如符合與系統(tǒng)及業(yè)務(wù)相關(guān)的那些 限制條件,其中,這些限制條件會(huì)隨著實(shí)施方式的不同而改變。此外,還 應(yīng)該了解,雖然開(kāi)發(fā)工作有可能是非常復(fù)雜和費(fèi)時(shí)的,但對(duì)得益于這個(gè)公 開(kāi)內(nèi)容的本領(lǐng)域技術(shù)人員來(lái)說(shuō),這種開(kāi)發(fā)工作僅僅是例行的任務(wù)。
此外,還需要說(shuō)明的一點(diǎn)是,為了避免因不必要的細(xì)節(jié)而混淆了本發(fā) 明,在附圖中僅僅示出了與根據(jù)本發(fā)明的方案密切相關(guān)的裝置結(jié)構(gòu)和/或處 理步驟,而省略了與本發(fā)明關(guān)系不大的其它細(xì)節(jié)。
為了幫助對(duì)本發(fā)明的理解,在本發(fā)明的上下文中, 一個(gè)Feed數(shù)據(jù)指的 是來(lái)自于同一個(gè)鏈接的所有數(shù)據(jù),該Feed數(shù)據(jù)可以隨時(shí)被更新。 一個(gè)Feed 數(shù)據(jù)可以被存儲(chǔ)在一張F(tuán)eed數(shù)據(jù)表中。對(duì)Feed數(shù)據(jù)的每次更新,都會(huì)被 添加到該Feed數(shù)據(jù)表中作為一個(gè)條目。
在根據(jù)本發(fā)明實(shí)施例的用于管理Feed數(shù)據(jù)的改進(jìn)的系統(tǒng)和方法中, Feed設(shè)備是一種基本的以及必要的組件。需要?jiǎng)?chuàng)建在內(nèi)部綁定了 Web應(yīng) 用服務(wù)器和數(shù)據(jù)庫(kù)的Feed設(shè)備,使得該Feed設(shè)備具有對(duì)Feed數(shù)據(jù)的各 種操作(例如爬取、查詢、搜索、維護(hù))的功能。每個(gè)Feed設(shè)備都在系統(tǒng) 中充當(dāng)一個(gè)節(jié)點(diǎn)。在整個(gè)系統(tǒng)中包括多個(gè)節(jié)點(diǎn),其中每個(gè)Feed設(shè)備都可以 是即插即用的(plug & play)。各個(gè)Feed設(shè)備以對(duì)等(Peer-to-Peer, P2P) 方式相互通信,從而該系統(tǒng)可以容易地進(jìn)行擴(kuò)展以便在必要時(shí)提高系統(tǒng)的 工作性能,并且有利于系統(tǒng)中的節(jié)點(diǎn)之間的相互通信。
為了更好地理解本發(fā)明及其特征和優(yōu)點(diǎn),以下對(duì)Feed設(shè)備進(jìn)行詳細(xì)介 紹。Feed設(shè)備是一種硬件設(shè)備,其具有基本的系統(tǒng)環(huán)境。系統(tǒng)環(huán)境可以具 有操作系統(tǒng)、其它應(yīng)用以及特定的配置,其中,所述應(yīng)用可以用于實(shí)現(xiàn)對(duì) 節(jié)點(diǎn)自身的各種操作(例如,加入系統(tǒng)、建立連接等)以及由用戶用于對(duì) 節(jié)點(diǎn)進(jìn)行訪問(wèn)和各種操作,所述特定配置例如可以提供對(duì)于應(yīng)用服務(wù)器和數(shù)據(jù)庫(kù)的支持。Feed設(shè)備還具有在該系統(tǒng)環(huán)境下運(yùn)行的Web應(yīng)用服務(wù)器 和數(shù)據(jù)庫(kù),其中Web應(yīng)用服務(wù)器包括用于對(duì)Feed數(shù)據(jù)進(jìn)行操作的各種功 能(諸如Feed數(shù)據(jù)的創(chuàng)建、查詢和移除等),以及用于存儲(chǔ)節(jié)點(diǎn)自身的狀 態(tài),以及數(shù)據(jù)庫(kù)用于存儲(chǔ)Feed數(shù)據(jù)。在實(shí)踐中,F(xiàn)eed設(shè)備可以是通用的 臺(tái)式計(jì)算機(jī)、筆記本計(jì)算機(jī)、或者具有上述功能的專用硬件設(shè)備。例如, 一個(gè)Feed設(shè)備可以具有大于400 GB的硬盤,以及大于2 GB的存儲(chǔ)器。
在簡(jiǎn)要介紹了 Feed設(shè)備的結(jié)構(gòu)和功能之后,以下是對(duì)本發(fā)明及其實(shí)施 例的詳細(xì)介紹。首先參見(jiàn)圖1,圖1示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的用于 管理Feed數(shù)據(jù)的系統(tǒng)的簡(jiǎn)單示意圖。如圖所示,所述系統(tǒng)包括網(wǎng)關(guān)節(jié)點(diǎn) 130、監(jiān)視節(jié)點(diǎn)140、以及多個(gè)Feed設(shè)備110 (下文中也可以被稱為活動(dòng)節(jié) 點(diǎn))。在圖1中,多個(gè)Feed設(shè)備110與網(wǎng)關(guān)節(jié)點(diǎn)130、監(jiān)視節(jié)點(diǎn)140通過(guò) 總線120彼此互連,從而可以實(shí)現(xiàn)對(duì)等連接,以便確保系統(tǒng)的可擴(kuò)展性。
連接到系統(tǒng)中的每個(gè)Feed設(shè)備(活動(dòng)節(jié)點(diǎn))都具有相同的功能,并可 以執(zhí)行相同的操作,例如對(duì)于Feed設(shè)備自身的操作和對(duì)于Feed數(shù)據(jù)的操 作。每個(gè)Feed設(shè)備存儲(chǔ)一部分的Feed數(shù)據(jù)。Feed數(shù)據(jù)的存儲(chǔ)方式是基于 Feed表的。Feed表提供對(duì)Feed數(shù)據(jù)的原生存儲(chǔ)支持。并且可以將所有的 Feed表劃分到多個(gè)多維度分區(qū),每個(gè)分區(qū)中包括具有相同或相似特征的 Feed表。該存儲(chǔ)方式將在下文中進(jìn)行詳細(xì)介紹。每個(gè)Feed設(shè)備只有在連 接到系統(tǒng)中的時(shí)候才被稱為活動(dòng)節(jié)點(diǎn)。盡管在圖1中將Feed設(shè)備示出為臺(tái) 式計(jì)算機(jī),但是這僅是一種示例,并不意味著對(duì)Feed設(shè)備的種類的限制。
網(wǎng)關(guān)節(jié)點(diǎn)130可以是服務(wù)器或交換機(jī),用于執(zhí)行負(fù)載均衡操作,因此 網(wǎng)關(guān)節(jié)點(diǎn)130自身的負(fù)載很低。例如,網(wǎng)關(guān)節(jié)點(diǎn)130可以負(fù)責(zé)接^^戶機(jī) 對(duì)Feed數(shù)據(jù)的操作請(qǐng)求,并將該請(qǐng)求轉(zhuǎn)發(fā)到一個(gè)負(fù)載較輕的活動(dòng)節(jié)點(diǎn)作為 臨時(shí)主節(jié)點(diǎn),而忽略負(fù)載較重的活動(dòng)節(jié)點(diǎn)。由主節(jié)點(diǎn)負(fù)責(zé)協(xié)調(diào)其它節(jié)點(diǎn)進(jìn) 行Feed數(shù)據(jù)的創(chuàng)建、查詢等操作,
監(jiān)^L節(jié)點(diǎn)140也可以是通用的計(jì)算機(jī),例如紐約Armonk的國(guó)際商業(yè) 機(jī)器公司(IBM)的低端的X-series服務(wù)器,用于監(jiān)視所有活動(dòng)節(jié)點(diǎn)110 的狀態(tài)并存儲(chǔ)這些狀態(tài),定期對(duì)活動(dòng)節(jié)點(diǎn)IIO進(jìn)行檢查,將諸如加入節(jié)點(diǎn)或移除節(jié)點(diǎn)這樣的事件通知網(wǎng)關(guān)節(jié)點(diǎn)130和所有的活動(dòng)節(jié)點(diǎn)110,以及存 儲(chǔ)Feed數(shù)據(jù)(以及Feed表、分區(qū))在各個(gè)節(jié)點(diǎn)上的分布狀況。
通過(guò)上述這樣組成的系統(tǒng),可以將Feed數(shù)據(jù)分布到多個(gè)活動(dòng)的Feed 設(shè)備(活動(dòng)節(jié)點(diǎn))110上,這些數(shù)據(jù)可以在需要時(shí)被檢索。在本發(fā)明的一 個(gè)實(shí)施例中,這些Feed數(shù)據(jù)被復(fù)制若干份并存儲(chǔ)在不同的活動(dòng)節(jié)點(diǎn)110 上,從而確保了系統(tǒng)的健壯性。并且這些Feed設(shè)備的狀態(tài)被監(jiān)視,以確保 及時(shí)發(fā)現(xiàn)發(fā)生故障或被移除的設(shè)備或新加入的設(shè)備。
下面將結(jié)合圖2A和2B具體描述根據(jù)本發(fā)明實(shí)施例的用于管理Feed 數(shù)據(jù)的系統(tǒng)的體系結(jié)構(gòu)和運(yùn)行模式。如圖2A所示,客戶機(jī)150向網(wǎng)關(guān)節(jié) 點(diǎn)(以下簡(jiǎn)稱為網(wǎng)關(guān))130提交對(duì)Feed數(shù)據(jù)的操作請(qǐng)求,該請(qǐng)求可以是 Feed數(shù)據(jù)的創(chuàng)建請(qǐng)求、查詢請(qǐng)求或移除請(qǐng)求等。在接收到操作請(qǐng)求后,網(wǎng) 關(guān)130從多個(gè)活動(dòng)節(jié)點(diǎn)110中確定一個(gè)臨時(shí)主節(jié)點(diǎn)115,此時(shí)所有其它節(jié) 點(diǎn)成為從屬節(jié)點(diǎn)。這些活動(dòng)節(jié)點(diǎn)IIO在功能上都是相同的,用于執(zhí)行Feed 數(shù)據(jù)的創(chuàng)建和查詢等任務(wù)。例如,網(wǎng)關(guān)130可以根據(jù)各個(gè)活動(dòng)節(jié)點(diǎn)IIO上 的負(fù)載來(lái)確定臨時(shí)主節(jié)點(diǎn)115,該臨時(shí)主節(jié)點(diǎn)115上的負(fù)載相對(duì)較輕,而 其它的活動(dòng)節(jié)點(diǎn)IIO成為從屬節(jié)點(diǎn)。各個(gè)活動(dòng)節(jié)點(diǎn)IIO上的負(fù)載可以通過(guò) 訪問(wèn)監(jiān)視節(jié)點(diǎn)140上所存儲(chǔ)的活動(dòng)節(jié)點(diǎn)110的狀態(tài)而獲得。如果存在多個(gè) 負(fù)栽較輕的活動(dòng)節(jié)點(diǎn)110,則網(wǎng)關(guān)130可以按照某種策略或者隨機(jī)地從中 選捧一個(gè)作為臨時(shí)主節(jié)點(diǎn)115。在確定了臨時(shí)主節(jié)點(diǎn)115之后,網(wǎng)關(guān)130 將操作請(qǐng)求轉(zhuǎn)發(fā)到該臨時(shí)主節(jié)點(diǎn)115。
如果所述請(qǐng)求是對(duì)于Feed數(shù)據(jù)的創(chuàng)建請(qǐng)求,則由所確定的臨時(shí)主節(jié)點(diǎn) 115將新的Feed數(shù)據(jù)傳送給具有可用存儲(chǔ)空間的活動(dòng)節(jié)點(diǎn)110。臨時(shí)主節(jié) 點(diǎn)115可以通過(guò)訪問(wèn)監(jiān)視節(jié)點(diǎn)140而獲得關(guān)于哪個(gè)/哪些活動(dòng)節(jié)點(diǎn)110具有 可用存儲(chǔ)空間的信息。在圖2A中,F(xiàn)eed數(shù)據(jù)被示出為在除了臨時(shí)主節(jié)點(diǎn) 115之外的3個(gè)其它從屬的活動(dòng)節(jié)點(diǎn)110上創(chuàng)建??梢岳斫?,可替換地, Feed數(shù)據(jù)也可能在臨時(shí)主節(jié)點(diǎn)115自身之上創(chuàng)建。由收到Feed數(shù)據(jù)的活 動(dòng)節(jié)點(diǎn)110調(diào)用自身的Feed數(shù)據(jù)創(chuàng)建功能來(lái)創(chuàng)建用以存儲(chǔ)Feed數(shù)據(jù)的 Feed數(shù)據(jù)表。在創(chuàng)建了 Feed數(shù)據(jù)之后,所述活動(dòng)節(jié)點(diǎn)110向臨時(shí)主節(jié)點(diǎn)115傳送創(chuàng)建成功的消息,該消息作為對(duì)創(chuàng)建請(qǐng)求的響應(yīng)被臨時(shí)主節(jié)點(diǎn)115 傳送給客戶4幾150。
如果所述請(qǐng)求是查詢請(qǐng)求或移除請(qǐng)求,則由所確定的臨時(shí)主節(jié)點(diǎn)115 訪問(wèn)存儲(chǔ)了所需的Feed數(shù)據(jù)的一個(gè)或更多其它從屬的活動(dòng)節(jié)點(diǎn)110 (在圖 中示出3個(gè))。臨時(shí)主節(jié)點(diǎn)115可以通過(guò)訪問(wèn)監(jiān)視節(jié)點(diǎn)140而獲得關(guān)于所 需的Feed數(shù)據(jù)被存儲(chǔ)在哪個(gè)/哪些活動(dòng)節(jié)點(diǎn)110上的信息。在圖2A中, Feed數(shù)據(jù)被示出為存儲(chǔ)在除了臨時(shí)主節(jié)點(diǎn)115之外的3個(gè)其它從屬的活動(dòng) 節(jié)點(diǎn)110上??梢岳斫猓商鎿Q地,F(xiàn)eed數(shù)據(jù)也可能被存儲(chǔ)在臨時(shí)主節(jié)點(diǎn) 115自身之上。如果所述請(qǐng)求是查詢請(qǐng)求,則存儲(chǔ)了 Feed數(shù)據(jù)的活動(dòng)節(jié)點(diǎn) 110調(diào)用自身的Feed數(shù)據(jù)查詢功能而獲得相應(yīng)的Feed數(shù)據(jù)并返回給臨時(shí) 主節(jié)點(diǎn)115。在獲得所需的Feed數(shù)據(jù)之后,臨時(shí)主節(jié)點(diǎn)115將所獲得的 Feed數(shù)據(jù)作為對(duì)查詢請(qǐng)求的響應(yīng)返回到客戶機(jī)150。如果所述請(qǐng)求是移除 請(qǐng)求,則存儲(chǔ)了 Feed數(shù)據(jù)的活動(dòng)節(jié)點(diǎn)IIO調(diào)用自身的Feed數(shù)據(jù)移除功能 而將相應(yīng)的Feed數(shù)據(jù)移除。在移除了 Feed數(shù)據(jù)之后,所述活動(dòng)節(jié)點(diǎn)110 向臨時(shí)主節(jié)點(diǎn)115傳送移除成功的消息,該消息作為對(duì)移除請(qǐng)求的響應(yīng)被 臨時(shí)主節(jié)點(diǎn)115傳送給客戶機(jī)150。
在本發(fā)明的一個(gè)實(shí)施例中,對(duì)于Feed數(shù)據(jù)的更新是通過(guò)系統(tǒng)自動(dòng)完成 的。系統(tǒng)可以定期地查詢所存儲(chǔ)的所有Feed數(shù)據(jù)的來(lái)源鏈接,如果發(fā)現(xiàn)了 已經(jīng)被更新的Feed數(shù)據(jù),則根據(jù)所述更新的Feed數(shù)據(jù)來(lái)更新系統(tǒng)中相應(yīng) 節(jié)點(diǎn)上所存儲(chǔ)的Feed數(shù)據(jù)。由于Feed數(shù)據(jù)可以被存儲(chǔ)在Feed數(shù)據(jù)表中, 因此所述更新可以被添加到該Feed數(shù)據(jù)表中作為一個(gè)條目。本領(lǐng)域技術(shù)人 員可以理解,客戶才幾115也可以向網(wǎng)關(guān)130提交更新請(qǐng)求,則網(wǎng)關(guān)130響 應(yīng)于該更新請(qǐng)求來(lái)執(zhí)行對(duì)于Feed數(shù)據(jù)的更新過(guò)程。本領(lǐng)域技術(shù)人員可以理 解,活動(dòng)節(jié)點(diǎn)110對(duì)于Feed數(shù)據(jù)的更新操作過(guò)程與處理查詢請(qǐng)求、創(chuàng)建請(qǐng) 求的處理過(guò)程相類似,在此不再具體描述。
在圖2A所示的系統(tǒng)中,監(jiān)視節(jié)點(diǎn)140持續(xù)執(zhí)行系統(tǒng)監(jiān)視和管理的功 能,并向網(wǎng)關(guān)130和活動(dòng)節(jié)點(diǎn)IIO提供所需的關(guān)于活動(dòng)節(jié)點(diǎn)的負(fù)載情況和 存儲(chǔ)數(shù)據(jù)分布的信息。監(jiān)視節(jié)點(diǎn)140可以為一輕量級(jí)機(jī)器,從而節(jié)約系統(tǒng)圖2B與圖2A相類似,當(dāng)客戶機(jī)150再次向網(wǎng)關(guān)130提交另一操作請(qǐng) 求時(shí),網(wǎng)關(guān)150從多個(gè)活動(dòng)節(jié)點(diǎn)110中確定一個(gè)臨時(shí)主節(jié)點(diǎn)115并將該操 作請(qǐng)求轉(zhuǎn)發(fā)到該臨時(shí)主節(jié)點(diǎn)115。由于系統(tǒng)中的任一活動(dòng)節(jié)點(diǎn)110均有可 能成為臨時(shí)主節(jié)點(diǎn)115,只要該節(jié)點(diǎn)上的負(fù)載相對(duì)較低。因此,圖2B示出 了網(wǎng)關(guān)150將另一個(gè)活動(dòng)節(jié)點(diǎn)確定為臨時(shí)主節(jié)點(diǎn)115。根據(jù)請(qǐng)求的類型不 同,臨時(shí)主節(jié)點(diǎn)115通過(guò)查詢監(jiān)4見(jiàn)節(jié)點(diǎn)140而確定相應(yīng)的活動(dòng)節(jié)點(diǎn)110來(lái) 執(zhí)行對(duì)于Feed數(shù)據(jù)的創(chuàng)建、查詢和移除等過(guò)程。這些都與圖2A所述內(nèi)容 相同。
在本發(fā)明的一個(gè)實(shí)施例中,如圖2A與圖2B所示的通過(guò)Feed設(shè)備來(lái) 管理Feed數(shù)據(jù)的系統(tǒng)可以向客戶機(jī)150提供支持REST (RESTful)的應(yīng) 用編程接口 (API) 。 REST (Representational State Transfer,表述性狀 態(tài)轉(zhuǎn)移)是一種基于Web的體系結(jié)構(gòu),其核心特征是組件之間有一個(gè)統(tǒng)一 的接口。通過(guò)在接口上應(yīng)用通用性的軟件工程原則,整體的系統(tǒng)體系結(jié)構(gòu) 得到了簡(jiǎn)化,交互的可見(jiàn)性也得到了改善。關(guān)于REST體系結(jié)構(gòu)的具體細(xì) 節(jié),請(qǐng)參見(jiàn)Roy Thomas Fielding博士的論文"Architectural Styles and the Design of Network-based Software Architectures",該文檔可以在因特網(wǎng) URL: http:〃www.ics.uci.edu/ fielding/pubs/dissertation/top.htm找至l]。
在本發(fā)明的實(shí)施例中,支持REST的API可以包括以下語(yǔ)法。
1) Feed創(chuàng)建
POST http:〃[hostl/feeds;
其參數(shù)包4舌isScratch, feedContent, feedURL, scratchURL, interval, snapshot,并且返回人類可讀的URL (統(tǒng)一資源定位符) http:〃[hostI/feeds/url=someUrl。 2 ) Feed更新
PUT http:〃[host]/feeds/url=.";
其可以定期自動(dòng)執(zhí)行。 3) Feed移除DELETE http:〃[host/feeds/url=".;
DELETE http:〃hostI/feeds conl=vl&con2=v2。
4) Feed查詢
GET http:〃[host
/feeds/url=someUrl; GET http:〃hostI/feeds conl=vl&con2=v2;
其^t包括url (對(duì)應(yīng)于Feed的URL) 、 author (對(duì)應(yīng)于〈author〉元 素)、updated (對(duì)應(yīng)于〈updated〉元素)等等,并返回XML (可擴(kuò)展標(biāo)記 語(yǔ)言)格式的數(shù)據(jù)。
5) Feed搜索獲取
http:〃[host
/feeds searchCon=someExpression; 其返回XML格式的lt據(jù)。
根據(jù)本發(fā)明的支持REST的API,可以向客戶機(jī)150的用戶提供簡(jiǎn)明直
觀的結(jié)果。
在描述了根據(jù)本發(fā)明實(shí)施例的用于管理Feed數(shù)據(jù)的系統(tǒng)的體系結(jié)構(gòu) 和運(yùn)行模式之后,圖3詳細(xì)描述圖2A和2B示出的系統(tǒng)中的Feed設(shè)備(活 動(dòng)節(jié)點(diǎn))110的內(nèi)部結(jié)構(gòu)的示意圖,所述活動(dòng)節(jié)點(diǎn)IIO可以是系統(tǒng)中的任 意一個(gè)活動(dòng)節(jié)點(diǎn)。如圖3所示,圖3左邊的縮略圖表示活動(dòng)節(jié)點(diǎn)110在所 述系統(tǒng)中的位置?;顒?dòng)節(jié)點(diǎn)110包括應(yīng)用服務(wù)器300、數(shù)據(jù)庫(kù)360和系統(tǒng) 環(huán)境370。每個(gè)活動(dòng)節(jié)點(diǎn)110的應(yīng)用服務(wù)器300可以是本領(lǐng)域已知的任意 應(yīng)用服務(wù)器,例如紐約Armonk的國(guó)際商業(yè)才幾器乂^司(IBM)的Project Zero。應(yīng)用服務(wù)器300包括主(master)功能310和從屬(slave )功能320。 主功能310和從屬功能320分別具有Feed創(chuàng)建、Feed查詢和Feed移除的 功能,這些功能都支持REST。當(dāng)活動(dòng)節(jié)點(diǎn)110被網(wǎng)關(guān)130確定為臨時(shí)主 節(jié)點(diǎn)115時(shí),其主功能310開(kāi)始起作用,主功能310主要用于協(xié)調(diào)其它從 屬節(jié)點(diǎn)的操作。如果活動(dòng)節(jié)點(diǎn)110是從屬節(jié)點(diǎn),且從臨時(shí)主節(jié)點(diǎn)115接收 到對(duì)于Feed數(shù)據(jù)的創(chuàng)建、查詢、移除的命令,則它的從屬功能320開(kāi)始起 作用。從屬功能320在此節(jié)點(diǎn)110上執(zhí)行對(duì)于Feed數(shù)據(jù)的創(chuàng)建、查詢和移 除等具體操作,并在所述操作完成之后將結(jié)果傳送給臨時(shí)主節(jié)點(diǎn)115。應(yīng)用服務(wù)器300還可以包括節(jié)點(diǎn)狀態(tài)330、節(jié)點(diǎn)注冊(cè)表340、以及本地 高速緩存350。節(jié)點(diǎn)狀態(tài)330表示節(jié)點(diǎn)當(dāng)前的狀態(tài),例如可以是活動(dòng)、故 障等,并且可以包括該節(jié)點(diǎn)的存儲(chǔ)空間狀況、負(fù)載情況等等。監(jiān)視節(jié)點(diǎn)140 可以存儲(chǔ)該節(jié)點(diǎn)狀態(tài)330,從而使得網(wǎng)關(guān)150或臨時(shí)主節(jié)點(diǎn)115可以確定 該節(jié)點(diǎn)目前在系統(tǒng)中的運(yùn)行情形,從而確定是否能夠向該節(jié)點(diǎn)分配任務(wù)。 節(jié)點(diǎn)注冊(cè)表340用于將該節(jié)點(diǎn)登記到系統(tǒng),從而系統(tǒng)知道該節(jié)點(diǎn)的存在, 例如,節(jié)點(diǎn)注冊(cè)表340可以是對(duì)于每個(gè)節(jié)點(diǎn)唯一的標(biāo)識(shí)符(ID)。本地高 速緩存350用于臨時(shí)存儲(chǔ)Feed數(shù)據(jù)。
每個(gè)活動(dòng)節(jié)點(diǎn)110的數(shù)據(jù)庫(kù)360包括用于存儲(chǔ)Feed數(shù)據(jù)的Feed數(shù)據(jù) 表。所述數(shù)據(jù)庫(kù)可以是本領(lǐng)域已知的任意數(shù)據(jù)庫(kù),例如紐約Armonk的國(guó) 際商業(yè)機(jī)器公司(IBM )的DB2數(shù)據(jù)庫(kù)。數(shù)據(jù)庫(kù)360對(duì)于Feed數(shù)據(jù)的存 儲(chǔ)方式將在以下進(jìn)行介紹,其具有對(duì)Feed數(shù)據(jù)的原生存儲(chǔ)支持。
根據(jù)本發(fā)明的一個(gè)實(shí)施例,在創(chuàng)建Feed數(shù)據(jù),也就是將Feed數(shù)據(jù)存 儲(chǔ)到活動(dòng)節(jié)點(diǎn)110的數(shù)據(jù)庫(kù)360中的時(shí)候,將Feed數(shù)據(jù)存儲(chǔ)在一個(gè)Feed 數(shù)據(jù)表(簡(jiǎn)稱為Feed表)中。Feed表是用于存儲(chǔ)實(shí)際的Feed數(shù)據(jù)的一個(gè) 表。在Feed數(shù)據(jù)被存儲(chǔ)到Feed表之前,F(xiàn)eed數(shù)據(jù)被遍歷和解析,以便從 中提取某些預(yù)定的屬性數(shù)據(jù),從而將所提取的屬性數(shù)據(jù)存儲(chǔ)在Feed表中的 相應(yīng)的字段中,而將Feed數(shù)據(jù)的其余部分存儲(chǔ)在該Feed表中的特定一個(gè) 字段中。圖4示出了對(duì)于Feed數(shù)據(jù)表的存儲(chǔ)策略的示例性示圖。
如圖4所示,根據(jù)存儲(chǔ)策略, 一個(gè)Feed數(shù)據(jù)表的每一條目具有若干字 段(如400所示),其中字段410為標(biāo)識(shí)符(ID),字段420為統(tǒng)一資源 定位符(url),字段430為作者(author),字段440為更新時(shí)間(updated ), 字段450為Feed數(shù)據(jù)的其余部分。除了字段450之外,這些字段中的每一 字段都用于存儲(chǔ)從Feed數(shù)據(jù)中提取的特定屬性,其遵從針對(duì)該列的已定義 的格式,如400的第二行所示。字段450為Feed數(shù)據(jù)的其余部分,其可以 是純粹XML格式的一段代碼。字段450的詳細(xì)內(nèi)容例如可以如框460所 示。在Feed數(shù)據(jù)表中,字段450的空間將被保留足夠大,以便存儲(chǔ)整個(gè)的 XML代碼。在絕大多數(shù)情況下,字段450的空間將足以存儲(chǔ)整個(gè)Feed數(shù)據(jù)的條目。例如,對(duì)于該字段中的每個(gè)單元,可以保留1M字節(jié)的空間。 如果在極端情況下,字段450中要存儲(chǔ)的XML代碼超過(guò)1M字節(jié),則節(jié) 點(diǎn)上的Feed創(chuàng)建功能可以將該Feed數(shù)據(jù)的條目拆分為幾行,其中每行中 存儲(chǔ)的XML代碼不超過(guò)1M字節(jié)。注意,圖4中示出的若干字段僅是作 為示例,在實(shí)際應(yīng)用本發(fā)明時(shí),可以根據(jù)需要對(duì)于圖4中示出的字段的種 類進(jìn)行添加、修改或刪除。
如圖4所示的對(duì)于Feed數(shù)據(jù)的存儲(chǔ)策略具有對(duì)Feed數(shù)據(jù)的原生存儲(chǔ) 支持,從而便于對(duì)Feed數(shù)據(jù)進(jìn)行存儲(chǔ)和搜索,并且沒(méi)有冗余。注意,在一 個(gè)活動(dòng)節(jié)點(diǎn)110中可以具有多個(gè)以這樣的方式存儲(chǔ)Feed數(shù)據(jù)的Feed表。
由于Feed數(shù)據(jù)的數(shù)量極大,并且不斷增加,因此Feed表的數(shù)量也極 大,從而在活動(dòng)節(jié)點(diǎn)110中查詢Feed表仍然是一項(xiàng)繁重的工作。在本發(fā)明 的一個(gè)實(shí)施例中,提供了一種分區(qū)機(jī)制,其通過(guò)將大量的Feed表劃分為分 區(qū)而提高對(duì)于Feed數(shù)據(jù)的查詢效率。通過(guò)所述分區(qū)機(jī)制,可以將具有相同 或相似屬性特征的Feed表劃分到一個(gè)分區(qū)中,從而使得每個(gè)分區(qū)包括一個(gè) 或更多Feed表。這樣,當(dāng)查找某個(gè)Feed表時(shí),只需要先按照屬性特征確 定該Feed表所屬的分區(qū),就可以在該分區(qū)中找到該表,而不用查詢所有的 Feed表。這樣,對(duì)于Feed表的查詢速度可以大大提高。
進(jìn)一步地,在本發(fā)明的一個(gè)實(shí)施例中,所述分區(qū)機(jī)制可以進(jìn)一步基于 多個(gè)維度來(lái)將Feed表劃分為分區(qū)。仍然采用圖4所示的示例,通過(guò)所述多 維度分區(qū),將每一查詢條件(圖4的400中除了字段450之外的字段)看 成是一個(gè)維度。用戶可以根據(jù)需要來(lái)確定查詢條件。例如,在針對(duì)Feed 數(shù)據(jù)中的〈autho1^、 <url>、 〈updated〉三個(gè)維度來(lái)進(jìn)行分區(qū)的情形中,其 中〈authoi^代表作者維度,<111"1>代表URL維度,〈updated〉代表更新時(shí) 間維度,提取Feed數(shù)據(jù)中的字段值,經(jīng)過(guò)哈希算法后產(chǎn)生維度碼,再將所 得的維度碼聯(lián)合進(jìn)行進(jìn)一 步的哈希算法而得到分區(qū)碼。
例如,在一個(gè)Feed數(shù)據(jù)中所包含的字段為<author>: Torn, <url>: www.sina.com.cn/blogs, <updated>: 2008.4.26。
author的哈希值也就是維度碼是12434332B;url的哈希值也就是維度碼是1233435333;
updated的哈希值也就是維度碼是3112345453。
接著將1243433223、 1233435333、 3112345453進(jìn)行進(jìn)一步的哈希算法 而得到一個(gè)數(shù)值,該數(shù)值對(duì)應(yīng)的是該Feed數(shù)據(jù)的分區(qū)碼,例如1。通過(guò)這 樣的計(jì)算方式,可以將所有的表劃分為若干個(gè)分區(qū),并使得每一分區(qū)具有 多個(gè)維度。例如,如以下表l所示。
作者維度URL維度更新時(shí)間維度分區(qū)碼
124343322312334353333112345453
1243433224123343533431123454542
1243433225123343533531123454553
1243433226123343533631123454564
表l
以下通過(guò)示例來(lái)簡(jiǎn)要說(shuō)明Feed表的多維度分區(qū)機(jī)制的效果。圖5示出 了分區(qū)在活動(dòng)節(jié)點(diǎn)上的示例性分布,所述分區(qū)各自包括若干Feed表。例如, 如圖5所示,分區(qū)l包4舌表l-3,分區(qū)2包括表4-7,分區(qū)3包4舌表8-10, 而分區(qū)4包括表11。表1-11被離散地分布在節(jié)點(diǎn)1-3上。從而,當(dāng)查詢特 定Feed表(Feed數(shù)據(jù))的時(shí)候,可以通過(guò)已知的維度(查詢條件)首先 確定該Feed表所屬的分區(qū),然后從所確定的分區(qū)中繼續(xù)查詢?cè)摫恚瑥亩@ 著提高了查詢的效率。同一個(gè)分區(qū)可以跨多個(gè)活動(dòng)節(jié)點(diǎn)存儲(chǔ),也就是說(shuō), 該分區(qū)中的多個(gè)Feed表可以被存儲(chǔ)在不同的活動(dòng)節(jié)點(diǎn)上。
應(yīng)當(dāng)注意,理論上,分區(qū)的數(shù)量可以從l直到等同于Feed表的數(shù)量。 分區(qū)的數(shù)量越多,則屬于每個(gè)分區(qū)中的Feed表的數(shù)量就越少,這樣可能會(huì) 影響查詢分區(qū)的速度;而分區(qū)的數(shù)量越少,則屬于每個(gè)分區(qū)中的Feed表的 數(shù)量就越多,這樣可能會(huì)影響在每個(gè)分區(qū)中查詢Feed表的速度。因此,分 區(qū)的數(shù)量應(yīng)該保持為一個(gè)適當(dāng)?shù)闹?,從而可以使得分區(qū)數(shù)量和每個(gè)分區(qū)中 的Feed表的數(shù)量保持均衡,其中分區(qū)的數(shù)量可以是可配置的。這可以通過(guò) 對(duì)維度的精確性控制來(lái)實(shí)現(xiàn),也即,控制對(duì)于維度碼進(jìn)行計(jì)算的哈希算法。 例如,為了適當(dāng)減少分區(qū)的數(shù)量,可以將作者維度中的Tom和Thomas計(jì)算為同樣的維度碼,或者可以將更新日期維度中在同一周(而并非同一
天)更新的Feed數(shù)據(jù)都計(jì)算為同樣的維度碼。
此外,為了確保根據(jù)本發(fā)明實(shí)施例的用于管理Feed數(shù)據(jù)的系統(tǒng)的健壯 性,還提供了 一種對(duì)于Feed數(shù)據(jù)的復(fù)制機(jī)制,其將所有的Feed表(Feed 數(shù)據(jù))復(fù)制若干份,并存儲(chǔ)在不同的活動(dòng)節(jié)點(diǎn)110上,從而當(dāng)某一節(jié)點(diǎn)發(fā) 生故障或者被移除時(shí),仍然可以查詢到所需的Feed表。根據(jù)所述復(fù)制機(jī)制, 基于預(yù)先定義的復(fù)制系數(shù)(例如為2),將所有的Feed數(shù)據(jù)復(fù)制兩遍,其 中Feed數(shù)據(jù)被復(fù)制的次數(shù)等于復(fù)制系數(shù),從而得到另外兩份備份。例如, 某一Feed表l可以被復(fù)制為表l,和表l",它們具有與表l完全相同的 內(nèi)容,但是這三個(gè)表將被分布在不同的活動(dòng)節(jié)點(diǎn)110上。當(dāng)這三個(gè)表中之 一的內(nèi)容被創(chuàng)建、更新或刪除時(shí),這三個(gè)表均保持為一致。因此當(dāng)查詢?cè)?Feed表時(shí),通過(guò)查詢?nèi)我槐砭梢缘玫剿璧臄?shù)據(jù)。當(dāng)存儲(chǔ)了一個(gè)表(例 如表1)的活動(dòng)節(jié)點(diǎn)發(fā)生故障或被移除時(shí),對(duì)于其它活動(dòng)節(jié)點(diǎn)上的另外兩 個(gè)表(表1,和表1")的CRUD (創(chuàng)建、讀取、更新、刪除)操作將不 會(huì)受到影響。而當(dāng)該活動(dòng)節(jié)點(diǎn)被修復(fù)或者被重新加入系統(tǒng)時(shí),將再次將最 新的表l,或表l"復(fù)制到該節(jié)點(diǎn)作為表l,從而這三個(gè)表仍然保持為一致。
注意,所述復(fù)制系數(shù)是預(yù)先定義的。復(fù)制系數(shù)越大,每個(gè)Feed表被復(fù) 制的次數(shù)就越多,從而整個(gè)系統(tǒng)的健壯性就會(huì)越高。但是,復(fù)制系數(shù)過(guò)大 會(huì)導(dǎo)致大量重復(fù)的Feed表的備份占用大量的存儲(chǔ)空間,從而增加了系統(tǒng)的 成本。因此,對(duì)該復(fù)制系數(shù)的定義需要兼顧系統(tǒng)成本和對(duì)系統(tǒng)健壯性的要求。
回到圖3,每個(gè)活動(dòng)節(jié)點(diǎn)110還包括系統(tǒng)環(huán)境370。系統(tǒng)環(huán)境370可以 包括使活動(dòng)節(jié)點(diǎn)IIO可以正常運(yùn)行的操作系統(tǒng)、其它應(yīng)用程序以及特定的 配置(諸如對(duì)應(yīng)用服務(wù)器300和數(shù)據(jù)庫(kù)360的支持)。用戶可以通過(guò)系統(tǒng) 環(huán)境370對(duì)活動(dòng)節(jié)點(diǎn)IIO進(jìn)行訪問(wèn)和操作??蛇x地,用戶可以通過(guò)系統(tǒng)環(huán) 境370進(jìn)行用戶控制,諸如安全級(jí)別控制、用戶登錄等。系統(tǒng)環(huán)境370還 可以包括顯示器(未示出)。
在詳細(xì)描述了該系統(tǒng)中的活動(dòng)節(jié)點(diǎn)110的內(nèi)部結(jié)構(gòu)之后,圖6詳細(xì)描述了圖2A和2B示出的系統(tǒng)中的監(jiān)視節(jié)點(diǎn)140的內(nèi)部結(jié)構(gòu)的示意圖。圖6 左邊的縮略圖表示監(jiān)視節(jié)點(diǎn)140在所述系統(tǒng)中的位置。監(jiān)視節(jié)點(diǎn)140包括 應(yīng)用服務(wù)器600、以及數(shù)據(jù)庫(kù)660。應(yīng)用服務(wù)器600可以是本領(lǐng)域已知的任 意應(yīng)用服務(wù)器,例如IBM的Project Zero。應(yīng)用服務(wù)器600包括監(jiān)一見(jiàn)才莫塊 610、通知模塊620、節(jié)點(diǎn)注冊(cè)表630以及重新均衡模塊640。監(jiān)視模塊610 負(fù)責(zé)持續(xù)地監(jiān)視和接收系統(tǒng)內(nèi)的所有活動(dòng)節(jié)點(diǎn)110的狀態(tài),以便及時(shí)地發(fā) 現(xiàn)節(jié)點(diǎn)狀態(tài)發(fā)生變化的情形。例如,在一個(gè)實(shí)施例中,當(dāng)系統(tǒng)內(nèi)加入新的 活動(dòng)節(jié)點(diǎn)時(shí),該活動(dòng)節(jié)點(diǎn)可以將其狀態(tài)傳送到監(jiān)視模塊610,從而監(jiān)視模 塊610可以相應(yīng)地增加數(shù)據(jù)庫(kù)660中與所述新節(jié)點(diǎn)有關(guān)的信息,并通過(guò)通 知模塊620將此情形通知網(wǎng)關(guān)130和其它活動(dòng)節(jié)點(diǎn)110,以便網(wǎng)關(guān)130 (以 及所確定的臨時(shí)主節(jié)點(diǎn)115 )可以確定是否要向新節(jié)點(diǎn)分配Feed數(shù)據(jù)的創(chuàng) 建和查詢等任務(wù)。在另一個(gè)實(shí)施例中,監(jiān)視模塊610可以定期地向所有活 動(dòng)節(jié)點(diǎn)IIO發(fā)送詢問(wèn)消息,并將在預(yù)定時(shí)限內(nèi)沒(méi)有從其收到相應(yīng)響應(yīng)的一 個(gè)或更多活動(dòng)節(jié)點(diǎn)IIO確定為故障節(jié)點(diǎn),其中監(jiān)禍4莫塊610發(fā)送詢問(wèn)消息 的時(shí)間間隔可以是可配置的。如果監(jiān)視模塊610確定出一個(gè)或更多故障節(jié) 點(diǎn),則通知模塊620將此情形通知網(wǎng)關(guān)130和其它活動(dòng)節(jié)點(diǎn)110,以便網(wǎng) 關(guān)130 (以及所確定的臨時(shí)主節(jié)點(diǎn)115 )不會(huì)再向故障節(jié)點(diǎn)分配Feed數(shù)據(jù) 的創(chuàng)建和查詢等任務(wù)。節(jié)點(diǎn)注冊(cè)表630用于將該節(jié)點(diǎn)登記到系統(tǒng),從而系 統(tǒng)知道該節(jié)點(diǎn)的存在,例如,節(jié)點(diǎn)注冊(cè)表630可以是對(duì)于每個(gè)節(jié)點(diǎn)唯一的 標(biāo)識(shí)符(ID)。重新平衡才莫塊640在系統(tǒng)內(nèi)的節(jié)點(diǎn)狀態(tài)出現(xiàn)變化(例如, 加入新節(jié)點(diǎn)、已有節(jié)點(diǎn)發(fā)生故障或被移除等)時(shí)對(duì)系統(tǒng)內(nèi)的所有節(jié)點(diǎn)的負(fù) 載進(jìn)行重新平衡。例如,當(dāng)系統(tǒng)內(nèi)加入新節(jié)點(diǎn)時(shí),可以將對(duì)于Feed數(shù)據(jù)的 存儲(chǔ)任務(wù)優(yōu)先分配給該新節(jié)點(diǎn)。當(dāng)系統(tǒng)內(nèi)出現(xiàn)發(fā)生故障的節(jié)點(diǎn)時(shí),可以在 其它節(jié)點(diǎn)中尋找該故障節(jié)點(diǎn)上存儲(chǔ)的數(shù)據(jù)的備份,并復(fù)制到另一個(gè)活動(dòng)節(jié) 點(diǎn)上。當(dāng)系統(tǒng)內(nèi)的多個(gè)節(jié)點(diǎn)的負(fù)載都比較高的情況下,可以協(xié)調(diào)這些節(jié)點(diǎn) 協(xié)同工作,以便減少每個(gè)節(jié)點(diǎn)上的負(fù)載。
監(jiān)視節(jié)點(diǎn)140的數(shù)據(jù)庫(kù)660可以是本領(lǐng)域已知的任意數(shù)據(jù)庫(kù),例如 IBM的DB2數(shù)據(jù)庫(kù)。數(shù)據(jù)庫(kù)660包括Feed分區(qū)映射模塊661、表-節(jié)點(diǎn)映射模塊662、分區(qū)-表映射模塊663以及節(jié)點(diǎn)狀態(tài)表664。 Feed分區(qū)映射模 塊661存儲(chǔ)了每個(gè)Feed分區(qū)在各個(gè)活動(dòng)節(jié)點(diǎn)110中的分布情形。表-節(jié)點(diǎn) 映射模塊662存儲(chǔ)了 Feed數(shù)據(jù)表在各個(gè)活動(dòng)節(jié)點(diǎn)110中的分布情形。分區(qū) -表映射模塊663存儲(chǔ)了 Feed數(shù)據(jù)表與其所屬的分區(qū)之間的對(duì)應(yīng)關(guān)系。當(dāng) 客戶機(jī)150 (圖2A、 2B)提交查詢請(qǐng)求時(shí),臨時(shí)主節(jié)點(diǎn)115可以通過(guò)查詢 這三個(gè)模塊上存儲(chǔ)的信息來(lái)獲知所需的Feed數(shù)據(jù)位于哪個(gè)/哪些活動(dòng)節(jié)點(diǎn) 110上。當(dāng)任一節(jié)點(diǎn)上出現(xiàn)新事件時(shí),所述事件可以是加入新節(jié)點(diǎn)、移除 已有節(jié)點(diǎn)、已有節(jié)點(diǎn)上的Feed數(shù)據(jù)存儲(chǔ)發(fā)生變化(創(chuàng)建、刪除等等),監(jiān) 視節(jié)點(diǎn)140都要相應(yīng)地更新上述模塊中存儲(chǔ)的內(nèi)容,以便保持與實(shí)際狀況 相一致。節(jié)點(diǎn)狀態(tài)表664存儲(chǔ)了系統(tǒng)中的所有活動(dòng)節(jié)點(diǎn)110的狀態(tài)、例如 負(fù)載情況、可用存儲(chǔ)空間等等。當(dāng)節(jié)點(diǎn)狀態(tài)接收模塊650收到與節(jié)點(diǎn)狀態(tài) 有關(guān)的變化或者監(jiān)視;漠塊610查詢到與節(jié)點(diǎn)狀態(tài)有關(guān)的變化時(shí),監(jiān)視節(jié)點(diǎn) 140都要相應(yīng)地更新節(jié)點(diǎn)狀態(tài)表664。
當(dāng)一個(gè)新的Feed設(shè)備110被加入系統(tǒng)時(shí),它向監(jiān)視節(jié)點(diǎn)140報(bào)告它的 狀態(tài)(負(fù)載情況、存儲(chǔ)狀況等),從而監(jiān)視節(jié)點(diǎn)140將此節(jié)點(diǎn)的節(jié)點(diǎn)狀態(tài) 存儲(chǔ)到節(jié)點(diǎn)狀態(tài)表664中,并通過(guò)通知模塊620向其它所有的活動(dòng)節(jié)點(diǎn)110 和網(wǎng)關(guān)130通知有新節(jié)點(diǎn)加入的事件,從而該新節(jié)點(diǎn)被系統(tǒng)中的所有節(jié)點(diǎn) 所知并可以被分配任務(wù)。
網(wǎng)關(guān)130根據(jù)對(duì)于監(jiān)視節(jié)點(diǎn)140的查詢來(lái)確定每個(gè)活動(dòng)節(jié)點(diǎn)110的狀 態(tài)、負(fù)載情況,從而確定臨時(shí)主節(jié)點(diǎn)115。當(dāng)網(wǎng)關(guān)130從客戶機(jī)150接收 的請(qǐng)求是創(chuàng)建請(qǐng)求時(shí),所確定的臨時(shí)主節(jié)點(diǎn)115根據(jù)對(duì)于監(jiān)視節(jié)點(diǎn)140的 查詢來(lái)確定具有可用存儲(chǔ)空間的活動(dòng)節(jié)點(diǎn)110,并且在該活動(dòng)節(jié)點(diǎn)110創(chuàng) 建Feed數(shù)據(jù)(多維分區(qū)計(jì)算、Feed表復(fù)制)之后通知監(jiān)^L節(jié)點(diǎn)140更新 數(shù)據(jù)庫(kù)660中的相應(yīng)的模塊。當(dāng)所述請(qǐng)求是查詢請(qǐng)求或移除請(qǐng)求時(shí),所確 定的臨時(shí)主節(jié)點(diǎn)115根據(jù)對(duì)于監(jiān)視節(jié)點(diǎn)140的查詢來(lái)確定Feed表所屬的分 區(qū),并且進(jìn)而確定該Feed表所在的活動(dòng)節(jié)點(diǎn)110,從而該活動(dòng)節(jié)點(diǎn)110可 以查詢或移除所需的Feed數(shù)據(jù),并且如果Feed數(shù)據(jù)被移除則在該活動(dòng)節(jié) 點(diǎn)110移除Feed數(shù)據(jù)之后通知監(jiān)視節(jié)點(diǎn)140更新數(shù)據(jù)庫(kù)660中的相應(yīng)的模塊。
以上是對(duì)于根據(jù)本發(fā)明一個(gè)實(shí)施例的用于管理Feed數(shù)據(jù)的系統(tǒng)的詳 細(xì)介紹。在同一發(fā)明構(gòu)思下,下面結(jié)合圖7對(duì)根據(jù)本發(fā)明一個(gè)實(shí)施例的用 于管理Feed數(shù)據(jù)的方法的流程圖進(jìn)行介紹。
如圖7所示,所述方法的過(guò)程開(kāi)始于步驟705,在步驟705,客戶機(jī)向 網(wǎng)關(guān)提交請(qǐng)求,該請(qǐng)求可以是Feed數(shù)據(jù)的查詢請(qǐng)求、移除請(qǐng)求或者創(chuàng)建請(qǐng) 求。在步驟710,網(wǎng)關(guān)接收該請(qǐng)求,并執(zhí)行負(fù)載均衡計(jì)算。網(wǎng)關(guān)通過(guò)向監(jiān) 視節(jié)點(diǎn)查詢各個(gè)活動(dòng)節(jié)點(diǎn)的狀態(tài)和負(fù)載情況來(lái)執(zhí)行負(fù)載均衡計(jì)算。在步驟 715,網(wǎng)關(guān)從多個(gè)活動(dòng)節(jié)點(diǎn)中將負(fù)載相對(duì)較低的一個(gè)活動(dòng)節(jié)點(diǎn)確定為臨時(shí)主 節(jié)點(diǎn),此時(shí)所有其它節(jié)點(diǎn)成為從屬節(jié)點(diǎn)。在步驟720,網(wǎng)關(guān)將所述請(qǐng)求轉(zhuǎn) 發(fā)到該臨時(shí)主節(jié)點(diǎn)。在步驟725,每個(gè)活動(dòng)節(jié)點(diǎn)確定其自身是臨時(shí)主節(jié)點(diǎn) 還是從屬節(jié)點(diǎn)。如果該活動(dòng)節(jié)點(diǎn)是臨時(shí)主節(jié)點(diǎn),則在步驟730調(diào)用通過(guò)查 詢監(jiān)視節(jié)點(diǎn)來(lái)確定需要進(jìn)行Feed數(shù)據(jù)操作的從屬節(jié)點(diǎn),并通過(guò)其主功能來(lái) 協(xié)調(diào)所述從屬節(jié)點(diǎn)的相應(yīng)操作。否則如果該活動(dòng)節(jié)點(diǎn)是從屬節(jié)點(diǎn),則在步 驟735調(diào)用其從屬功能來(lái)執(zhí)行Feed數(shù)據(jù)的創(chuàng)建、查詢和移除等操作,并在 所述操作完成之后將結(jié)果報(bào)告給臨時(shí)主節(jié)點(diǎn)。在步驟740,確定所述請(qǐng)求 是否是創(chuàng)建請(qǐng)求。
如果所述請(qǐng)求是創(chuàng)建請(qǐng)求,則所涉及的活動(dòng)節(jié)點(diǎn)在步驟745進(jìn)行分區(qū) 計(jì)算,其可以是基于多維度的分區(qū)計(jì)算,即,基于多個(gè)維度將Feed表劃分 到分區(qū)中。如果該Feed表所屬的分區(qū)不存在,則創(chuàng)建一個(gè)新分區(qū)。接著在 步驟750創(chuàng)建Feed表。4艮據(jù)本發(fā)明的一個(gè)實(shí)施例,可以基于預(yù)先定義的復(fù) 制系數(shù),將要?jiǎng)?chuàng)建的Feed表復(fù)制若干次,并存儲(chǔ)到不同的活動(dòng)節(jié)點(diǎn)上,其 中復(fù)制次數(shù)等于復(fù)制系數(shù)。然后在步驟760,該節(jié)點(diǎn)將創(chuàng)建成功的消息傳 送到臨時(shí)主節(jié)點(diǎn),并由臨時(shí)主節(jié)點(diǎn)將該消息作為創(chuàng)建請(qǐng)求的響應(yīng)傳送到客戶機(jī)。
如果在步驟740,確定所述請(qǐng)求不是創(chuàng)建請(qǐng)求,則該請(qǐng)求是查詢請(qǐng)求 或者其它請(qǐng)求,諸如移除請(qǐng)求。則所述方法進(jìn)行到步驟"5,所涉及的活 動(dòng)節(jié)點(diǎn)在其上執(zhí)行查詢請(qǐng)求或移除請(qǐng)求。然后在步驟MO,將所查詢的結(jié)果或者移除成功的消息傳送到臨時(shí)主節(jié)點(diǎn),并由臨時(shí)主節(jié)點(diǎn)將所查詢的結(jié) 果或者移除成功的消息作為查詢請(qǐng)求或移除請(qǐng)求的響應(yīng)傳送到客戶機(jī)。
任一活動(dòng)節(jié)點(diǎn)對(duì)于Feed數(shù)據(jù)的創(chuàng)建、更新和移除都需要相應(yīng)地通知監(jiān) 視節(jié)點(diǎn),并由監(jiān)視節(jié)點(diǎn)更新其中的數(shù)據(jù)庫(kù)中的相應(yīng)內(nèi)容。
以上詳細(xì)描述了才艮據(jù)本發(fā)明一個(gè)實(shí)施例的用于管理Feed數(shù)據(jù)的系統(tǒng) 和方法。如本領(lǐng)域普通技術(shù)人員可以了解的,本發(fā)明可以體現(xiàn)為方法、系 統(tǒng)和/或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明可以呈現(xiàn)為完全硬件實(shí)施形式、完 全軟件實(shí)施形式或者軟件和硬件組合實(shí)施形式。此外,本發(fā)明可以被呈現(xiàn) 為在機(jī)器可讀媒體上包括的計(jì)算機(jī)程序產(chǎn)品,機(jī)器可讀媒體上存儲(chǔ)了用于 對(duì)計(jì)算機(jī)系統(tǒng)進(jìn)行編程以執(zhí)行根據(jù)本發(fā)明的過(guò)程的機(jī)器可執(zhí)行程序指令。 這里所使用的術(shù)語(yǔ)"機(jī)器可讀媒體"包括向計(jì)算機(jī)系統(tǒng)提供用于執(zhí)行的指 令的任意媒體。這種媒體可以采用多種形式,包括但是不局限于非易失 性媒體、易失性媒體和傳輸媒體。非易失性媒體的常見(jiàn)形式例如包括軟盤、 軟磁盤、硬盤、磁帶或者任何其它磁媒體、光盤ROM (CD-ROM)或者 任何其它光媒體、打孔卡或者任何其它帶有孔圖案的物理媒體、可編程 ROM ( PROM)、可擦寫(xiě)PROM ( EPROM)、電EPROM ( EEPROM)、 閃速存儲(chǔ)器、任何其它存儲(chǔ)芯片或者盒式磁帶(cartridge)、或者計(jì)算機(jī) 系統(tǒng)可以讀取并適合存儲(chǔ)指令的任何其它媒體。
適于存儲(chǔ)和/或執(zhí)行程序代碼的數(shù)據(jù)處理系統(tǒng)將包括直接地或通過(guò)系 統(tǒng)總線間接地耦合于存儲(chǔ)器單元的至少一個(gè)處理器。存儲(chǔ)器單元可以包括 在程序代碼的實(shí)際執(zhí)行期間使用的局部存儲(chǔ)器、海量存儲(chǔ)裝置、以及高速 緩沖存儲(chǔ)器,該高速緩沖存儲(chǔ)器提供了至少某種程序代碼的臨時(shí)存儲(chǔ)以便 減少在執(zhí)行期間必須從海量存儲(chǔ)裝置檢索代碼的次數(shù)。
此外,可以理解,方框圖和/或流程圖中的每個(gè)方框以及方框圖和流程 圖中的一些方框的組合可以用一些計(jì)算機(jī)程序指令實(shí)現(xiàn)。這些計(jì)算機(jī)程序 指令可以提供給一通用計(jì)算機(jī)、專用計(jì)算機(jī)或其它可編程數(shù)據(jù)處理設(shè)備的 處理器以產(chǎn)生一機(jī)器,使得這些指令通過(guò)計(jì)算機(jī)或其它可編程數(shù)據(jù)處理設(shè) 備的處理器的執(zhí)行創(chuàng)建用于實(shí)現(xiàn)在方框圖和/或流程圖內(nèi)或者方框內(nèi)所指定的功能的裝置。
盡管已經(jīng)參考優(yōu)選實(shí)施例具體地示出并描述了本發(fā)明,但其不是為了 以公開(kāi)的形式窮舉或限制本發(fā)明。對(duì)于本領(lǐng)域的普通技術(shù)人員,可以在形 式上和細(xì)節(jié)上進(jìn)行各種改變而不會(huì)背離本發(fā)明的精神和范圍。選擇并描述 了實(shí)施例是為了最好地解釋本發(fā)明的原理和實(shí)際的應(yīng)用,以及為了使本領(lǐng) 域的其它普通技術(shù)人員能夠理解對(duì)于各種實(shí)施例的本發(fā)明,所述實(shí)施例具 有適合于預(yù)期的具體使用的各種修改。
權(quán)利要求
1.一種用于管理Feed數(shù)據(jù)的系統(tǒng),所述系統(tǒng)包括網(wǎng)關(guān),用于向多個(gè)Feed設(shè)備之一轉(zhuǎn)發(fā)對(duì)所述Feed數(shù)據(jù)的操作請(qǐng)求;以及多個(gè)Feed設(shè)備,所述多個(gè)Feed設(shè)備之間采用對(duì)等方式相互連接和通信,其中接收到所述操作請(qǐng)求的主Feed設(shè)備和其它從屬Feed設(shè)備協(xié)同工作,用于存儲(chǔ)所述Feed數(shù)據(jù),并根據(jù)所述操作請(qǐng)求來(lái)執(zhí)行對(duì)Feed數(shù)據(jù)的操作。
2. 根據(jù)權(quán)利要求l所述的系統(tǒng),其中每一個(gè)所述Feed設(shè)備包括應(yīng)用服務(wù)器,用于執(zhí)行對(duì)Feed數(shù)據(jù)的操作,其中所述操作包括對(duì)Feed 數(shù)據(jù)的創(chuàng)建、更新、查詢、移除操作;數(shù)據(jù)庫(kù),用于存儲(chǔ)所述Feed數(shù)據(jù);以及系統(tǒng)環(huán)境,用于為所述應(yīng)用服務(wù)器和數(shù)據(jù)庫(kù)提供系統(tǒng)支持。
3. 根據(jù)權(quán)利要求2所述的系統(tǒng),其中在所述數(shù)據(jù)庫(kù)中,每一個(gè)所述 Feed數(shù)據(jù)存儲(chǔ)在一個(gè)Feed數(shù)據(jù)表中,其中將從所述Feed數(shù)據(jù)中所提取的 特定屬性數(shù)據(jù)存儲(chǔ)在所述Feed數(shù)據(jù)表中的相應(yīng)的字段中,而將所述Feed 數(shù)據(jù)的其余部分存儲(chǔ)在所述Feed表中的特定一個(gè)字段中。
4. 根據(jù)權(quán)利要求3所述的系統(tǒng),其中在所述數(shù)據(jù)庫(kù)中,所述Feed數(shù) 據(jù)表被劃分到各個(gè)分區(qū)中,其中將具有相同或相似屬性特征的Feed數(shù)據(jù)表 劃分到一個(gè)分區(qū)中。
5. 根據(jù)權(quán)利要求4所述的系統(tǒng),其中在所述數(shù)據(jù)庫(kù)中,所述Feed數(shù) 據(jù)表基于多個(gè)維度被劃分到各個(gè)分區(qū)中,其中將所述Feed數(shù)據(jù)表中除了存 儲(chǔ)所述Feed數(shù)據(jù)的所述其余部分的字段之外的各個(gè)字段分別作為一個(gè)維 度,而將所有的所述Feed數(shù)據(jù)表劃分到多個(gè)多維度分區(qū)中。
6. 根據(jù)權(quán)利要求3所述的系統(tǒng),其中在不同的Feed設(shè)備的數(shù)據(jù)庫(kù)中 存儲(chǔ)了所述Feed數(shù)據(jù)表的備份,所述Feed數(shù)據(jù)表的備份的數(shù)量等于一個(gè) 預(yù)先定義的復(fù)制系數(shù)。
7. 根據(jù)權(quán)利要求l所述的系統(tǒng),進(jìn)一步包括監(jiān)視節(jié)點(diǎn),所述監(jiān)視節(jié)點(diǎn) 包括監(jiān)視模塊,用于監(jiān)視和接收系統(tǒng)內(nèi)的所有Feed設(shè)備的狀態(tài); 通知模塊,用于將加入新的Feed設(shè)備、Feed設(shè)備的狀態(tài)改變、以及Feed設(shè)備發(fā)生故障的情形通知所述網(wǎng)關(guān)和其它Feed i殳備;重新平衡模塊,用于在系統(tǒng)內(nèi)加入新的Feed設(shè)備、Feed設(shè)備的狀態(tài)改變、以及Feed設(shè)備發(fā)生故障時(shí)對(duì)系統(tǒng)內(nèi)的所有Feed設(shè)備的負(fù)栽進(jìn)行重新平衡;以及數(shù)據(jù)庫(kù),用于存儲(chǔ)每個(gè)分區(qū)在各個(gè)Feed設(shè)備中的分布情形,每個(gè)Feed 數(shù)據(jù)表在各個(gè)Feed設(shè)備中的分布情形,F(xiàn)eed數(shù)據(jù)表與其所屬的分區(qū)之間 的對(duì)應(yīng)關(guān)系,以及所述系統(tǒng)中的所有Feed設(shè)備的狀態(tài)。
8. 根據(jù)權(quán)利要求l所述的系統(tǒng),其中所述系統(tǒng)支持所述Feed設(shè)備的 即插即用。
9. 根據(jù)權(quán)利要求8所述的系統(tǒng),其中當(dāng)一個(gè)新的Feed設(shè)備被加入所 述系統(tǒng)時(shí),該Feed設(shè)備向所述監(jiān)視節(jié)點(diǎn)報(bào)告它的狀態(tài),從而所述監(jiān)視節(jié)點(diǎn) 存儲(chǔ)此Feed設(shè)備的節(jié)點(diǎn)狀態(tài),并向所述系統(tǒng)中的其它Feed設(shè)備和網(wǎng)關(guān)通 知有新的Feed設(shè)備加入的事件。
10. 根據(jù)權(quán)利要求1所述的系統(tǒng),其中所述系統(tǒng)提供支持表述性狀態(tài) 轉(zhuǎn)移的應(yīng)用編程接口。
11. 一種用于管理Feed數(shù)據(jù)的方法,所迷方法包括 由網(wǎng)關(guān)向采用對(duì)等方式相互連接和通信的多個(gè)Feed設(shè)備之一轉(zhuǎn)發(fā)對(duì)所述Feed數(shù)據(jù)的操作請(qǐng)求;以及由所述多個(gè)Feed設(shè)備中接收到所述操作請(qǐng)求的主Feed設(shè)備與所述多 個(gè)Feed設(shè)備中的其它從屬Feed設(shè)備協(xié)同工作,用于存儲(chǔ)所述Feed數(shù)據(jù), 并根據(jù)所述操作請(qǐng)求來(lái)執(zhí)行對(duì)Feed數(shù)據(jù)的操作。
12. 根據(jù)權(quán)利要求ll所述的方法,其中存儲(chǔ)所述Feed數(shù)據(jù)的所述步 驟進(jìn)一步包括將每一個(gè)所述Feed數(shù)據(jù)存儲(chǔ)在一個(gè)Feed數(shù)據(jù)表中,其中 在所述Feed數(shù)據(jù)被存儲(chǔ)到所述Feed數(shù)據(jù)表之前,所述Feed數(shù)據(jù)被遍歷和解析,以便從中提取特定屬性數(shù)據(jù),并將所提取的屬性數(shù)據(jù)存儲(chǔ)在所述Feed數(shù)據(jù)表中的相應(yīng)的字段中,而將所述Feed數(shù)據(jù)的其余部分存儲(chǔ)在所 述Feed表中的特定一個(gè)字段中。
13. 根據(jù)權(quán)利要求12所述的方法,其中存儲(chǔ)所述Feed數(shù)據(jù)的所述步 驟進(jìn)一步包括將所有的所述Feed數(shù)據(jù)表劃分到各個(gè)分區(qū)中,其中將具有 相同或相似邏輯特征的Feed數(shù)據(jù)表劃分到 一個(gè)分區(qū)中。
14. 根據(jù)權(quán)利要求13所述的方法,其中將所述Feed數(shù)據(jù)表劃分到各 個(gè)分區(qū)中的所述步驟進(jìn)一步包括將所述Feed數(shù)據(jù)表基于多個(gè)維度劃分到各個(gè)分區(qū)中,其中將所述Feed 數(shù)據(jù)表中除了存儲(chǔ)所述Feed數(shù)據(jù)的其余部分的字段之外的各個(gè)字段分貝 作為一個(gè)維度,而將所有的所述Feed數(shù)據(jù)表劃分到多個(gè)多維度分區(qū)中;以 及當(dāng)所劃分的分區(qū)不存在的時(shí)候,創(chuàng)建一個(gè)新的分區(qū)。
15. 根據(jù)權(quán)利要求12所述的方法,其中存儲(chǔ)所述Feed數(shù)據(jù)的所述步 驟進(jìn)一步包括將所述Feed數(shù)據(jù)表的備份存儲(chǔ)在不同的Feed設(shè)備的數(shù)據(jù)庫(kù)中,所述 Feed數(shù)據(jù)表的備份的數(shù)量等于一個(gè)預(yù)先定義的復(fù)制系數(shù)。
16. 根據(jù)權(quán)利要求ll所述的方法,其中所述方法進(jìn)一步包括 監(jiān)視和接收所有Feed設(shè)備的狀態(tài);將加入新的Feed設(shè)備、Feed設(shè)備的狀態(tài)改變、以及Feed設(shè)備發(fā)生故 障的情形通知網(wǎng)關(guān)和其它Feedi殳備;在加入新的Feed設(shè)備、Feed設(shè)備的狀態(tài)改變、以及Feed設(shè)備發(fā)生故 障時(shí)對(duì)所有Feed設(shè)備的負(fù)載進(jìn)行重新平衡;以及存儲(chǔ)每個(gè)分區(qū)在各個(gè)Feed設(shè)備中的分布情形,每個(gè)Feed數(shù)據(jù)表在各 個(gè)Feed設(shè)備中的分布情形,F(xiàn)eed數(shù)據(jù)表與其所屬的分區(qū)之間的對(duì)應(yīng)關(guān)系, 以及所有Feed設(shè)備的狀態(tài)。
17. 根據(jù)權(quán)利要求ll所述的方法,其中所述方法進(jìn)一步包括 提供對(duì)所述Feed設(shè)備的即插即用的支持。
18. 根據(jù)權(quán)利要求ll所述的方法,其中所述方法進(jìn)一步包括 當(dāng)一個(gè)新的Feed設(shè)備被加入所述系統(tǒng)時(shí),由該Feed設(shè)備報(bào)告它的狀態(tài),從而新的Feed設(shè)備加入的事件被通知給其它Feed設(shè)備和網(wǎng)關(guān)。
19. 根據(jù)權(quán)利要求ll所述的方法,其中所述方法進(jìn)一步包括 提供支持表述性狀態(tài)轉(zhuǎn)移的應(yīng)用編程接口 。
20. 根據(jù)權(quán)利要求ll所述的方法,其中所述對(duì)Feed數(shù)據(jù)的操作包括 對(duì)Feed數(shù)據(jù)的創(chuàng)建、更新、查詢、移除操作。
全文摘要
一種用于管理Feed數(shù)據(jù)的系統(tǒng)和方法。所述系統(tǒng)包括網(wǎng)關(guān),用于向多個(gè)Feed設(shè)備之一轉(zhuǎn)發(fā)對(duì)所述Feed數(shù)據(jù)的操作請(qǐng)求;以及多個(gè)Feed設(shè)備,所述多個(gè)Feed設(shè)備之間采用對(duì)等方式相互連接和通信,其中接收到所述操作請(qǐng)求的主Feed設(shè)備和其它從屬Feed設(shè)備協(xié)同工作,用于存儲(chǔ)所述Feed數(shù)據(jù),并根據(jù)所述操作請(qǐng)求來(lái)執(zhí)行對(duì)Feed數(shù)據(jù)的操作。利用本發(fā)明的系統(tǒng)和方法,可以獲得高效的Feed數(shù)據(jù)表的多維度分區(qū),充分的健壯性,即插即用的高擴(kuò)展性,簡(jiǎn)單的應(yīng)用編程接口(API)以及對(duì)Feed數(shù)據(jù)的原生存儲(chǔ)支持。
文檔編號(hào)H04L29/08GK101594377SQ200810098478
公開(kāi)日2009年12月2日 申請(qǐng)日期2008年5月28日 優(yōu)先權(quán)日2008年5月28日
發(fā)明者波 劉, 寧 呂, 徐兆偉, 弘 戴, 毛新生, 王慶法, 王曉昱 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
洞头县| 杂多县| 岚皋县| 雷山县| 澄迈县| 新兴县| 武鸣县| 诸城市| 右玉县| 察哈| 苍梧县| 长葛市| 伊春市| 体育| 桑日县| 永修县| 三江| 博爱县| 承德市| 德兴市| 深州市| 五河县| 绥宁县| 紫云| 兖州市| 读书| 河间市| 清涧县| 湟中县| 沾益县| 高陵县| 水城县| 万州区| 扬中市| 濉溪县| 阳城县| 凤城市| 平阴县| 仪陇县| 绍兴县| 日土县|