專(zhuān)利名稱(chēng):在發(fā)布預(yù)訂數(shù)據(jù)處理系統(tǒng)中發(fā)布文檔的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及在發(fā)布預(yù)訂數(shù)據(jù)處理系統(tǒng)中發(fā)布文檔。特別地,本發(fā)明涉及在定義的時(shí)間間隔后發(fā)布文檔。
背景技術(shù):
計(jì)算機(jī)系統(tǒng)和軟件應(yīng)用程序可通過(guò)已知為發(fā)布/預(yù)訂的通信模型來(lái)交互。在發(fā)布/預(yù)訂系統(tǒng)中,信息被中間人(broker)發(fā)布為文檔。中間人可以是軟件應(yīng)用程序或者中間人計(jì)算機(jī)系統(tǒng)。每個(gè)發(fā)布的文檔分類(lèi)為主題。文檔的主題可反映文檔的內(nèi)容或者環(huán)境。預(yù)訂人,如預(yù)訂人軟件應(yīng)用程序或者預(yù)訂人計(jì)算機(jī)系統(tǒng),可創(chuàng)建與中間人的預(yù)訂,以接收發(fā)布到特定的預(yù)訂的主題的一個(gè)文檔的拷貝。一旦預(yù)訂人具有對(duì)一個(gè)主題的預(yù)訂,對(duì)該主題發(fā)布的所有文檔的一個(gè)拷貝就發(fā)送給該預(yù)訂人。
圖1是現(xiàn)有技術(shù)中的典型發(fā)布/預(yù)訂系統(tǒng)的框圖。預(yù)訂人102產(chǎn)生與中間人108的預(yù)訂104用于特定的主題106。中間人108包括文檔發(fā)送器110,其將對(duì)預(yù)訂的主題106的發(fā)布的文檔112的一個(gè)拷貝發(fā)送到預(yù)訂人102。對(duì)預(yù)訂人102的一典型偽碼設(shè)計(jì)可以是對(duì)主題106的預(yù)訂循環(huán){等待文檔112發(fā)布到主題106處理發(fā)布的文檔112}因此,一旦預(yù)訂人102具有與中間人108的、對(duì)主題102的預(yù)訂,對(duì)該主題106發(fā)布的所有文檔的一個(gè)拷貝就發(fā)送給該預(yù)訂人。預(yù)訂人102使用該模式發(fā)布文檔時(shí),只接收各發(fā)布的文檔,并且所有發(fā)布的文檔被發(fā)送給該預(yù)訂人。在發(fā)布各文檔間存在長(zhǎng)時(shí)間間隔時(shí),對(duì)整個(gè)時(shí)間間隔,預(yù)訂人102將不接收任何新發(fā)布的文檔。在一些預(yù)訂人應(yīng)用程序中,如滾動(dòng)新聞標(biāo)題(newsheadline ticker)應(yīng)用程序,希望有規(guī)則更新最近發(fā)布的文檔,而不管各新文檔是否已發(fā)布。反之,在大量文檔在短期時(shí)間發(fā)布時(shí),預(yù)訂人將接收所有發(fā)布的文檔。例如,在股票價(jià)格信息的中間人中,可每秒發(fā)布大量更新的股票價(jià)格文檔。這樣大量發(fā)布的文檔使預(yù)訂人102負(fù)擔(dān)過(guò)多的信息。在本領(lǐng)域中公知,預(yù)訂人102創(chuàng)建預(yù)訂104但預(yù)訂人102不接收各發(fā)布的文檔。然而,這導(dǎo)致完全或無(wú)的方法(all-or-nothing approach),其中預(yù)訂人不是接收所有發(fā)布的文檔,就是根本不接收發(fā)布的文檔。
因此,提供用于在發(fā)布/預(yù)訂系統(tǒng)中將文檔發(fā)布給預(yù)訂人的機(jī)制將是有利的,這里當(dāng)缺乏進(jìn)一步發(fā)布的文檔時(shí),預(yù)訂人接收最近發(fā)布的文檔,并且在指定時(shí)間后,預(yù)訂人可接收最近發(fā)布的文檔而不必接收所有中間發(fā)布的文檔。
發(fā)明內(nèi)容
因此本發(fā)明在第一方面提供一種用于在發(fā)布預(yù)訂數(shù)據(jù)處理系統(tǒng)中發(fā)布各文檔的一種方法,該方法包括以下步驟接收要發(fā)布的第一文檔,第一文檔具有關(guān)聯(lián)的主題;保留要發(fā)布的第一文檔作為保留文檔;在預(yù)定時(shí)間間隔經(jīng)過(guò)前,響應(yīng)接收要發(fā)布的第二文檔,保留要發(fā)布的第二文檔作為保留的文檔,并且發(fā)送要發(fā)布的第二文檔的一個(gè)拷貝到對(duì)該主題的預(yù)訂人;以及響應(yīng)確定預(yù)定時(shí)間間隔已經(jīng)經(jīng)過(guò),發(fā)送保留的文檔的一個(gè)拷貝到對(duì)該主題的預(yù)訂人。
因此本發(fā)明在第二方面提供用于在發(fā)布預(yù)訂數(shù)據(jù)處理系統(tǒng)中發(fā)布各文檔的設(shè)備,該設(shè)備包括用于接收要發(fā)布的第一文檔的裝置,第一文檔具有關(guān)聯(lián)的主題;用于保留要發(fā)布的第一文檔作為保留的文檔的裝置;用于響應(yīng)在預(yù)定時(shí)間間隔經(jīng)過(guò)前,接收要發(fā)布的第二文檔,保留要發(fā)布的第二文檔作為保留的文檔,并且發(fā)送要發(fā)布的第二文檔的一個(gè)拷貝到對(duì)該主題的預(yù)訂人的裝置;以及用于響應(yīng)預(yù)定時(shí)間間隔已經(jīng)經(jīng)過(guò)的確定,發(fā)送保留的文檔的一個(gè)拷貝到對(duì)該主題的預(yù)訂人的裝置。
因此本發(fā)明在第三方面提供一種計(jì)算機(jī)程序產(chǎn)品,包括存儲(chǔ)在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)上的計(jì)算機(jī)程序代碼,當(dāng)在數(shù)據(jù)處理系統(tǒng)上執(zhí)行時(shí),其指令數(shù)據(jù)處理系統(tǒng)執(zhí)行如上所述的方法。
因此本發(fā)明在第四方面提供一種計(jì)算機(jī)系統(tǒng),包括中央處理單元;存儲(chǔ)器;輸入/輸出接口;以及如上所述的用于在發(fā)布預(yù)訂數(shù)據(jù)處理系統(tǒng)中發(fā)布文檔的設(shè)備。
現(xiàn)在,將參照附圖,僅僅通過(guò)例子來(lái)描述本發(fā)明的優(yōu)選實(shí)施例,附圖中圖1是現(xiàn)有技術(shù)中的典型發(fā)布/預(yù)訂系統(tǒng)的框圖;圖2是適用于本發(fā)明的各實(shí)施例的操作的計(jì)算機(jī)系統(tǒng)的框圖;圖3是根據(jù)本發(fā)明的一優(yōu)選實(shí)施例的發(fā)布/預(yù)訂系統(tǒng)的框圖;圖4是說(shuō)明在本發(fā)明的一優(yōu)選實(shí)施例中用于將對(duì)一主題發(fā)布的文檔發(fā)送給預(yù)訂人的方法的流程圖;圖5根據(jù)本發(fā)明的一優(yōu)選實(shí)施例說(shuō)明對(duì)應(yīng)于對(duì)用于第一示例預(yù)訂的圖3的主題發(fā)布新文檔的時(shí)間線;以及圖6根據(jù)本發(fā)明的一優(yōu)選實(shí)施例說(shuō)明對(duì)應(yīng)于對(duì)用于第二示例預(yù)訂的圖3的主題發(fā)布新文檔的時(shí)間線。
具體實(shí)施例方式
圖2是適用于本發(fā)明的各實(shí)施例的操作的計(jì)算機(jī)系統(tǒng)的框圖。中央處理器單元(CPU)202經(jīng)由數(shù)據(jù)總線208通信地連接存儲(chǔ)器204和輸入/輸出(I/O)接口206。存儲(chǔ)器204可是任何讀/寫(xiě)存儲(chǔ)設(shè)備,如隨機(jī)存取存儲(chǔ)器(RAM)或非易失性存儲(chǔ)設(shè)備。非易失性存儲(chǔ)設(shè)備的一示例包括盤(pán)或磁帶存儲(chǔ)設(shè)備。I/O接口206是到各設(shè)備的接口,該設(shè)備用于輸入或輸出數(shù)據(jù),或用于輸入和輸出數(shù)據(jù)。可連接I/O接口206的各I/O設(shè)備的示例包括鍵盤(pán)、鼠標(biāo)、顯示器(如監(jiān)視器)和網(wǎng)絡(luò)連接。
圖3是根據(jù)本發(fā)明的一優(yōu)選實(shí)施例的發(fā)布/預(yù)訂系統(tǒng)的框圖。預(yù)訂人302對(duì)于特定的主題306產(chǎn)生與中間人308的預(yù)訂304。該預(yù)訂包括發(fā)布間隔316和不發(fā)布標(biāo)志318,其存儲(chǔ)在中間人308處并且以下相對(duì)中間人308描述。中間人308包括時(shí)間間隔文檔發(fā)送器310,其包括保留的發(fā)布320。保留的發(fā)布320是對(duì)于主題306最近發(fā)布的文檔的一個(gè)拷貝。時(shí)間間隔文檔發(fā)送器310也存儲(chǔ)從預(yù)訂人302在預(yù)訂304中接收的發(fā)布間隔316以及不發(fā)布標(biāo)志318。
發(fā)布間隔316是用于預(yù)訂人302的時(shí)間間隔,其后保留的發(fā)布320的一個(gè)拷貝作為發(fā)布的文檔312將發(fā)送到預(yù)訂人302。保留的發(fā)布320發(fā)送到預(yù)訂人320,即使其先前已被發(fā)送。因此時(shí)間間隔文檔發(fā)送器310將在由發(fā)布間隔316定義的間隔,有規(guī)律地將保留的發(fā)布320發(fā)送到預(yù)訂人302。不發(fā)布標(biāo)志318是指示符,其確定發(fā)布到主題306的文檔是否還應(yīng)該作為發(fā)布的文檔312發(fā)送到預(yù)訂人302。例如,如果不發(fā)布標(biāo)志318設(shè)置為T(mén)RUE,則發(fā)布到主題306的新文檔不發(fā)送到預(yù)訂人302。相反,如果不發(fā)布標(biāo)志318設(shè)置為FALSE,則這樣的文檔發(fā)送到預(yù)訂人302。無(wú)論如何,發(fā)布到主題306的新文檔將導(dǎo)致總是存儲(chǔ)最近發(fā)布的文檔的一個(gè)拷貝的保留的發(fā)布320的改變。進(jìn)而,不管是否設(shè)置不發(fā)布標(biāo)志318,在發(fā)布間隔316期滿(mǎn)時(shí),保留的發(fā)布320總是作為發(fā)布的文檔312發(fā)送到預(yù)訂人302。這樣,對(duì)主題306的最近發(fā)布的文檔(保留的發(fā)布320)的一個(gè)拷貝,在由發(fā)布間隔316定義的規(guī)則間隔被發(fā)送到預(yù)訂人302。用這種方式,當(dāng)沒(méi)有進(jìn)一步發(fā)布的文檔時(shí),預(yù)訂人將接收保留的發(fā)布320的一個(gè)拷貝。進(jìn)而,發(fā)布到主題306的所有新文檔的一個(gè)拷貝將依靠不發(fā)布標(biāo)志318的值而發(fā)送到預(yù)訂人302。因此,預(yù)訂人可在規(guī)則的間隔接收保留的發(fā)布320,而不必接收所有中間發(fā)布的文檔。
可選地,在新文檔發(fā)布到主題306,并且不發(fā)布標(biāo)志318設(shè)置為FALSE,使得該新文檔發(fā)送到預(yù)訂人302時(shí),時(shí)間間隔文檔發(fā)送器310可重新開(kāi)始等待發(fā)布間隔,也就是在新文檔發(fā)布到主題306時(shí),時(shí)間間隔可選地重置。
圖4是說(shuō)明在本發(fā)明的一優(yōu)選實(shí)施例中用于將對(duì)一主題306發(fā)布的文檔發(fā)送給預(yù)訂人302的方法的流程圖。在步驟402,對(duì)主題306發(fā)布的最近文檔作為保留的發(fā)布320保存。假定存在最近發(fā)布的文檔,以及如果這樣的文檔不存在,則有一空的保留的發(fā)布320是可行的,直到對(duì)主題306發(fā)布文檔。在步驟404,該方法等待要發(fā)布到主題306的一新文檔,或可選地等待發(fā)布間隔316經(jīng)過(guò)。使用開(kāi)始時(shí)間記錄并且有規(guī)律地計(jì)算從開(kāi)始時(shí)間直到已經(jīng)到達(dá)希望的發(fā)布間隔316的增加的偏移,確定何時(shí)發(fā)布間隔316已經(jīng)過(guò)可容易地實(shí)現(xiàn),如在本領(lǐng)域公知的。在步驟406,該方法確定是否新文檔已發(fā)布到主題306,并且如果這樣的話,就進(jìn)入更新保留的發(fā)布320以反映新文檔的步驟408。在步驟410,該方法檢查不發(fā)布標(biāo)志410是否對(duì)于預(yù)訂人302設(shè)置,并且如果這樣的話,該方法就回到步驟404。如果在步驟410未設(shè)置不發(fā)布標(biāo)志318,則新文檔的一個(gè)拷貝作為發(fā)布的文檔312發(fā)送到預(yù)訂人302。隨后和可選地,在步驟416,該方法開(kāi)始等待發(fā)布間隔316完全過(guò)去再回到步驟404。
回到步驟406,如果該方法確定新文檔未發(fā)布到主題306,則該方法進(jìn)入步驟418。在步驟418,該方法確定發(fā)布間隔316是否已經(jīng)經(jīng)過(guò),并且如果這樣的話,該方法將保留的發(fā)布320的一個(gè)拷貝作為發(fā)布的文檔312發(fā)送到預(yù)訂人302。隨后地和可選擇地,在步驟416,該方法開(kāi)始等待發(fā)布間隔316完全過(guò)去再回到步驟404。如果可替代地,在步驟418發(fā)布間隔316還未經(jīng)過(guò),該方法回到步驟404。
現(xiàn)在參照?qǐng)D5和圖6,將在使用中考慮圖4的方法用于兩示例性的預(yù)訂。圖5根據(jù)本發(fā)明的一優(yōu)選實(shí)施例說(shuō)明對(duì)應(yīng)于對(duì)用于第一示例預(yù)訂304的圖3的主題306發(fā)布新文檔的時(shí)間線500。第一示例預(yù)訂304具有1800s(秒)的發(fā)布間隔316,以及設(shè)置為FALSE的不發(fā)布標(biāo)志312。這里特定時(shí)間點(diǎn)在圖5的時(shí)間線500上指示,時(shí)間相對(duì)于任意時(shí)間′t′。圖5包括發(fā)布到主題306的三個(gè)文檔。這些是文檔“A”510,被發(fā)布在時(shí)間t+0s;文檔“B”512,被發(fā)布在時(shí)間t+2000s;文檔“C”514,被發(fā)布在時(shí)間t+3000s。重要的是注意這些文檔在這些時(shí)間發(fā)布到主題306,并且圖5無(wú)意說(shuō)明這些文檔的拷貝在這些時(shí)間發(fā)送到預(yù)訂人302。而是,圖4的方法將用于確定哪些文檔被發(fā)送到預(yù)訂人302以及什么時(shí)間發(fā)送這些文檔。
在步驟402,考慮用于時(shí)間線500的圖4的方法和第一示例預(yù)訂304,并且還不存在最近的發(fā)布,因此保留的發(fā)布320是空文檔。在步驟404,該方法等待新文檔發(fā)布到主題306,或可替代地等待發(fā)布間隔316經(jīng)過(guò)。參照時(shí)間線500,在時(shí)間t+0s發(fā)布文檔“A”510并且該方法確定其在步驟406是新發(fā)布的文檔。因此,在步驟408,修改保留的發(fā)布320以對(duì)應(yīng)新發(fā)布的文檔“A”510。在步驟410,該方法確定不設(shè)置不發(fā)布標(biāo)志(它是FALSE),所以該方法將新發(fā)布的文檔文檔“A”510的一個(gè)拷貝作為發(fā)布的文檔312發(fā)送到預(yù)訂人302。對(duì)預(yù)訂人302的發(fā)布作為粗箭頭502在時(shí)間線上指示。隨后,該方法進(jìn)入步驟416,在此該方法開(kāi)始等待發(fā)布間隔316完全過(guò)去再回到步驟404。因此,發(fā)布間隔316下次在t+0s后1800s的t+1800s期滿(mǎn)。
在步驟404,該方法等待新文檔發(fā)布到主題306,或可替代地等待發(fā)布間隔316經(jīng)過(guò)。1800s的發(fā)布間隔316經(jīng)過(guò)到t+1800s,沒(méi)有新文檔發(fā)布,因此在t+1800s時(shí),該方法進(jìn)入步驟406。在步驟406,該方法確定未發(fā)布新文檔,并且在步驟318,該方法確定發(fā)布間隔316已經(jīng)經(jīng)過(guò)。在步驟420,保留的發(fā)布320的一個(gè)拷貝作為發(fā)布的文檔312發(fā)送到預(yù)訂人302。目前保留的發(fā)布320是文檔“A”510的一個(gè)拷貝,因此文檔“A”510的一個(gè)拷貝被發(fā)送到預(yù)訂人302。對(duì)預(yù)訂人302的該發(fā)布作為粗箭頭504在時(shí)間線500上指示。隨后,該方法進(jìn)入步驟416,這里該方法開(kāi)始等待發(fā)布間隔316完全過(guò)去再回到步驟404。因此,發(fā)布間隔316下次在t+1800s后1800s的t+3600s期滿(mǎn)。
在步驟404,該方法等待新文檔發(fā)布到主題306,或可替代地等待發(fā)布間隔316經(jīng)過(guò)。參照時(shí)間線500,在時(shí)間t+2000s發(fā)布文檔“B”512以及該方法確定這是在步驟406新發(fā)布的文檔。因此,在步驟408,修改保留的發(fā)布320以對(duì)應(yīng)重新發(fā)布的文檔文檔“B”512。在步驟410,該方法確定不設(shè)置不發(fā)布標(biāo)志(它是FLASE),該方法將新發(fā)布的文檔“B”512的一個(gè)拷貝作為發(fā)布的文檔312發(fā)送到預(yù)訂人302。對(duì)預(yù)訂人302的該發(fā)布作為粗箭頭506在時(shí)間線500上指示。隨后,該方法進(jìn)入步驟416,這里該方法開(kāi)始等待發(fā)布間隔316完全過(guò)去再回到步驟404。因此,發(fā)布間隔316下次在t+2000s后1800s的t+3800s期滿(mǎn)。
在步驟404,該方法等待新文檔發(fā)布到主題306,或可替代地等待發(fā)布間隔316經(jīng)過(guò)。參照時(shí)間線500,在t+3000s發(fā)布文檔“C”514并且該方法確定這是在步驟406的新發(fā)布的文檔。因此,在步驟408修改保留的發(fā)布320以對(duì)應(yīng)新發(fā)布的文檔文檔“C”514。在步驟410,該方法確定不設(shè)置不發(fā)布標(biāo)志(它是FLASE),所以該方法將新發(fā)布的文檔“C”512的一個(gè)拷貝作為發(fā)布的文檔312發(fā)送到預(yù)訂人302。對(duì)預(yù)訂人302的該發(fā)布作為粗箭頭508在時(shí)間線500上指示。隨后,該方法進(jìn)入步驟416,這里該方法開(kāi)始等待發(fā)布間隔316完全過(guò)去再回到步驟404。因此,發(fā)布間隔316下次在t+3000s后1800s的t+4800s期滿(mǎn)。
在步驟404,該方法等待新文檔發(fā)布到主題306,或可替代地等待發(fā)布間隔316經(jīng)過(guò)。1800s的發(fā)布間隔316經(jīng)過(guò)到t+4800s,沒(méi)有新文檔發(fā)布,因此在t+4800s時(shí),該方法進(jìn)入步驟406。在步驟406,該方法確定未發(fā)布新文檔,并且在步驟318,該方法確定發(fā)布間隔316已經(jīng)經(jīng)過(guò)。在步驟420,保留的發(fā)布320的一個(gè)拷貝作為發(fā)布的文檔312發(fā)送到預(yù)訂人302。目前保留的發(fā)布320是文檔“C”514的一個(gè)拷貝,因此文檔“C”514的一個(gè)拷貝被發(fā)送到預(yù)訂人302。對(duì)預(yù)訂人302的該發(fā)布作為粗箭頭509在時(shí)間線500上指示。隨后,該方法進(jìn)入步驟416,這里該方法開(kāi)始等待發(fā)布間隔316完全過(guò)去再回到步驟404。因此,發(fā)布間隔316下次在t+4800s后1800s的t+6600s期滿(mǎn)。
總之,由預(yù)訂人302從中間人308接收的用于以上第一示例預(yù)訂304的文檔是
因此,最近發(fā)布的文檔的一個(gè)拷貝在規(guī)則的1800s間隔發(fā)送到預(yù)訂人302,盡管沒(méi)有新文檔對(duì)于主題306被發(fā)布(例如在t+1800s和t+4800s)。而且,一發(fā)布新文檔,就將新發(fā)布的文檔的一個(gè)拷貝發(fā)送到預(yù)訂人302(例如在t+0s、t+2000s和t+3000s)。
圖6根據(jù)本發(fā)明的一優(yōu)選實(shí)施例說(shuō)明對(duì)應(yīng)于對(duì)用于第二示例預(yù)訂304的圖3的主題306發(fā)布新文檔的時(shí)間線600。第二示例預(yù)訂304具有5s的發(fā)布間隔316以及設(shè)置為T(mén)RUE的不發(fā)布標(biāo)志312。圖6包括發(fā)布到主題306的22個(gè)文檔。這些是在t+0s和t+1s之間發(fā)布(PUB)的文檔(DOCS)“A”到“E”602(5個(gè)文檔);在t+1s和t+2s之間發(fā)布的文檔“F”到“G”604(2個(gè)文檔);在t+2s和t+3s之間發(fā)布的文檔“H”606(1個(gè)文檔);在t+3s和t+4s之間發(fā)布的文檔“I”到“K”608(3個(gè)文檔);在t+4s和t+5s之間發(fā)布的文檔“L”到“P”610(5個(gè)文檔);在t+5s和t+6s之間發(fā)布的文檔“Q”612(1個(gè)文檔);在t+7s和t+8s之間發(fā)布的文檔“R”614(1個(gè)文檔);以及在t+8s和t+9s之間發(fā)布的文檔“S”到“V”616(4個(gè)文檔)。重要的是注意這些文檔在這些時(shí)間發(fā)布到該主題306,并且圖6無(wú)意說(shuō)明在這些時(shí)間這些文檔的拷貝發(fā)送到預(yù)訂人302。而是,圖4的方法將用于確定哪些文檔被發(fā)送到預(yù)訂人302以及在什么時(shí)間被發(fā)送。
在步驟402,考慮用于時(shí)間線600的圖4的方法和第一示例預(yù)訂304,并且還不存在最近的發(fā)布,因此保留的發(fā)布320是空文檔。在步驟404,該方法等待新文檔發(fā)布到主題306,或可替代地等待發(fā)布間隔316經(jīng)過(guò)。參照時(shí)間線600,在時(shí)間t+0s對(duì)主題306沒(méi)有發(fā)布文檔,并且5s的發(fā)布間隔沒(méi)有經(jīng)過(guò)。在t+0s和t+1s之間的時(shí)間間隔期間,發(fā)布文檔“A”到“E”602,并且該方法確定這些是在步驟406新發(fā)布的文檔。因此,在步驟408修改保留的發(fā)布320以對(duì)應(yīng)最近新發(fā)布的文檔文檔“E”。該方法在步驟410確定設(shè)置不發(fā)布標(biāo)志(它是TRUE),所以該方法回到步驟404。
在步驟404,該方法等待新文檔發(fā)布到主題306,或可替代地等待發(fā)布間隔316經(jīng)過(guò)。參照時(shí)間線600,在t+1s和t+2s之間的時(shí)間間隔期間發(fā)布文檔“F”到“G”604,并且該方法確定這些是在步驟406新發(fā)布的文檔。因此,在步驟408修改保留的發(fā)布320以對(duì)應(yīng)最近新發(fā)布的文檔文檔“G”。該方法在步驟410確定不發(fā)布標(biāo)志被設(shè)置(它是TRUE),所以該方法回到步驟404。
在步驟404,該方法等待新文檔發(fā)布到主題306,或可替代地等待發(fā)布間隔316經(jīng)過(guò)。參照時(shí)間線600,在t+2s和t+3s間的時(shí)間間隔期間發(fā)布文檔“H”606,并且該方法確定這些是在步驟406新發(fā)布的文檔。因此,在步驟408修改保留的發(fā)布320以對(duì)應(yīng)最近新發(fā)布的文檔文檔“H”606。該方法在步驟410確定不發(fā)布標(biāo)志被設(shè)置(它是TRUE),所以該方法回到步驟404。
在步驟404,該方法等待新文檔發(fā)布到主題306,或可替代地等待發(fā)布間隔316經(jīng)過(guò)。參照時(shí)間線600,在t+3s和t+4s間的時(shí)間間隔期間發(fā)布文檔“I”至“K”608,并且該方法確定這些是在步驟406新發(fā)布的文檔。因此,在步驟408修改保留的發(fā)布320以對(duì)應(yīng)最近新發(fā)布的文檔文檔“K”。該方法在步驟410確定不發(fā)布標(biāo)志被設(shè)置(它是TRUE),所以該方法回到步驟404。
在步驟404,該方法等待新文檔發(fā)布到主題306,或可替代地等待發(fā)布間隔316經(jīng)過(guò)。參照時(shí)間線600,在t+4s和t+5s間的時(shí)間間隔期間發(fā)布文檔“L”至“P”610,并且該方法確定這些是在步驟406新發(fā)布的文檔。因此,在步驟408修改保留的發(fā)布320以對(duì)應(yīng)最近新發(fā)布的文檔文檔“P”。該方法在步驟410確定不發(fā)布標(biāo)志被設(shè)置(它是TRUE),所以該方法回到步驟404。
在步驟404,該方法等待新文檔發(fā)布到主題306,或可替代地等待發(fā)布間隔316經(jīng)過(guò)。在時(shí)間t+5s,5s的發(fā)布間隔316已經(jīng)經(jīng)過(guò),因此該方法在t+5s進(jìn)入步驟406。在步驟406,該方法確定自從處理上次發(fā)布的文檔(以上處理的文檔“P”)沒(méi)有新文檔發(fā)布,并且該方法在步驟318確定發(fā)布間隔316已經(jīng)經(jīng)過(guò)。在步驟420,保留的發(fā)布320的一個(gè)拷貝作為發(fā)布的文檔312發(fā)送到預(yù)訂人302。目前保留的發(fā)布320是文檔“P”的一個(gè)拷貝,因此文檔“P”的一個(gè)拷貝被發(fā)送到預(yù)訂人302。到預(yù)定人302的該發(fā)布作為粗箭頭618在時(shí)間線600上指示。隨后,該方法進(jìn)入步驟416,這里該方法開(kāi)始等待發(fā)布間隔316完全過(guò)去再回到步驟404。因此,發(fā)布間隔316下次在t+5s后5s的t+10s期滿(mǎn)。
在步驟404,該方法等待新文檔發(fā)布到主題306,或可替代地等待發(fā)布間隔316經(jīng)過(guò)。參照時(shí)間線600,在t+5s和t+6s間的時(shí)間間隔期間發(fā)布文檔“Q”612,并且該方法確定這些是在步驟406新發(fā)布的文檔。因此,在步驟408修改保留的發(fā)布320以對(duì)應(yīng)最近新發(fā)布的文檔文檔“Q”612。該方法在步驟410確定不發(fā)布標(biāo)志被設(shè)置(它是TRUE),所以該方法回到步驟404。
在步驟404,該方法等待新文檔發(fā)布到主題306,或可替代地等待發(fā)布間隔316經(jīng)過(guò)。參照時(shí)間線600,在t+7s和t+8s間的時(shí)間間隔期間發(fā)布文檔“R”614,并且該方法確定這些是在步驟406新發(fā)布的文檔。因此,在步驟408修改保留的發(fā)布320以對(duì)應(yīng)最近新發(fā)布的文檔文檔“R”614。該方法在步驟410確定不發(fā)布標(biāo)志被設(shè)置(它是TRUE),所以該方法回到步驟404。
在步驟404,該方法等待新文檔發(fā)布到主題306,或可替代地等待發(fā)布間隔316經(jīng)過(guò)。參照時(shí)間線600,在t+8s和t+9s間的時(shí)間間隔期間發(fā)布文檔“S”至“V”616,并且該方法確定這些是在步驟406新發(fā)布的文檔。因此,在步驟408修改保留的發(fā)布320以對(duì)應(yīng)最近新發(fā)布的文檔文檔“V”。該方法在步驟410確定不發(fā)布標(biāo)志被設(shè)置(它是TRUE),所以該方法回到步驟404。
在步驟404,該方法等待新文檔發(fā)布到主題306,或可替代地等待發(fā)布間隔316經(jīng)過(guò)。在時(shí)間t+10s,5s的發(fā)布間隔316已經(jīng)經(jīng)過(guò),因此該方法在t+10s進(jìn)入步驟406。在步驟406,該方法確定自從處理上次發(fā)布的文檔(以上處理的文檔“V”)沒(méi)有新文檔發(fā)布,并且該方法在步驟318確定發(fā)布間隔316已經(jīng)經(jīng)過(guò)。在步驟420,保留的發(fā)布320的一個(gè)拷貝作為發(fā)布的文檔312發(fā)送到預(yù)訂人302。目前保留的發(fā)布320是文檔“V”的一個(gè)拷貝,因此文檔“V”的一個(gè)拷貝被發(fā)送到預(yù)訂人302。到預(yù)定人302的該發(fā)布作為粗箭頭620在時(shí)間線600上指示。隨后,該方法進(jìn)入步驟416,這里該方法開(kāi)始等待發(fā)布間隔316完全過(guò)去再回到步驟404。因此,發(fā)布間隔316下次在t+10s后5s的t+15s期滿(mǎn)。
總之,由預(yù)訂人302從中間人308接收用于以上第二示例預(yù)訂304的文檔是
因此,雖然不發(fā)布標(biāo)志318對(duì)于預(yù)訂人302設(shè)置,但最近發(fā)布的文檔的一個(gè)拷貝在規(guī)則的5s間隔發(fā)送到預(yù)訂人302。這對(duì)如下的情形是特別有用的通過(guò)規(guī)則地接收最近發(fā)布的單一文檔,對(duì)于主題306發(fā)布大量的文檔,而預(yù)訂人302只需要所有發(fā)布的文檔的一子集。
權(quán)利要求
1.一種用于在發(fā)布預(yù)訂數(shù)據(jù)處理系統(tǒng)中發(fā)布各文檔的方法,該方法包括以下步驟接收要發(fā)布的第一文檔,第一文檔具有關(guān)聯(lián)的主題;保留要發(fā)布的第一文檔作為保留的文檔;在預(yù)定時(shí)間間隔經(jīng)過(guò)前,響應(yīng)接收要發(fā)布的第二文檔,保留要發(fā)布的第二文檔作為該保留的文檔,并且發(fā)送要發(fā)布的第二文檔的一個(gè)拷貝到對(duì)該主題的預(yù)訂人;以及響應(yīng)確定預(yù)定時(shí)間間隔已經(jīng)經(jīng)過(guò),發(fā)送保留的文檔的一個(gè)拷貝到對(duì)該主題的預(yù)訂人。
2.根據(jù)權(quán)利要求1所述的方法,其中確定預(yù)定的時(shí)間間隔已經(jīng)經(jīng)過(guò)包括確定從開(kāi)始時(shí)間的時(shí)間偏移是否已到達(dá)。
3.根據(jù)權(quán)利要求2所述的方法,其中所述在預(yù)定時(shí)間間隔經(jīng)過(guò)前響應(yīng)接收要發(fā)布的第二文檔的步驟還包括通過(guò)將開(kāi)始時(shí)間設(shè)置為目前時(shí)間來(lái)重置時(shí)間間隔。
4.根據(jù)權(quán)利要求1所述的方法,其中所述將要發(fā)布的第二文檔的一個(gè)拷貝發(fā)送到對(duì)該主題的預(yù)訂人的步驟還包括訪問(wèn)與預(yù)訂人關(guān)聯(lián)的標(biāo)志的值;響應(yīng)確定標(biāo)志沒(méi)有預(yù)定值,將要發(fā)布的第二文檔的一個(gè)拷貝發(fā)送到對(duì)該主題的預(yù)訂人。
5.用于在發(fā)布預(yù)訂數(shù)據(jù)處理系統(tǒng)中發(fā)布各文檔的設(shè)備,該設(shè)備包括用于接收要發(fā)布的第一文檔的裝置,第一文檔具有關(guān)聯(lián)的主題;用于保留要發(fā)布的第一文檔作為保留的文檔的裝置;用于響應(yīng)在預(yù)定時(shí)間間隔經(jīng)過(guò)前,接收要發(fā)布的第二文檔,保留要發(fā)布的第二文檔作為該保留的文檔,并且發(fā)送要發(fā)布的第二文檔的一個(gè)拷貝到對(duì)該主題的預(yù)訂人的裝置;以及用于響應(yīng)預(yù)定時(shí)間間隔已經(jīng)經(jīng)過(guò)的確定,發(fā)送保留的文檔的一個(gè)拷貝到對(duì)該主題的預(yù)訂人的裝置。
6.根據(jù)權(quán)利要求5所述的設(shè)備,其中預(yù)定時(shí)間間隔經(jīng)過(guò)的確定包括用于確定從開(kāi)始時(shí)間的時(shí)間偏移是否已到達(dá)的裝置。
7.根據(jù)權(quán)利要求6所述的設(shè)備,其中用于保留要發(fā)布的第二文檔作為保留的文檔的所述的裝置還包括用于通過(guò)將開(kāi)始時(shí)間設(shè)置為目前時(shí)間來(lái)重置時(shí)間間隔的裝置。
8.根據(jù)權(quán)利要求5所述的設(shè)備,其中用于保留要發(fā)布的第二文檔作為保留的文檔并且將要發(fā)布的第二文檔的一個(gè)拷貝發(fā)送到對(duì)該主題的預(yù)訂人的所述的裝置,還包括用于訪問(wèn)與預(yù)訂人關(guān)聯(lián)的標(biāo)志的值的裝置用于響應(yīng)標(biāo)志沒(méi)有預(yù)定值的確定,將要發(fā)布的第二文檔的一個(gè)拷貝發(fā)送到對(duì)該主題的預(yù)訂人的裝置。
9.一種計(jì)算機(jī)程序產(chǎn)品,包括存儲(chǔ)在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)上的計(jì)算機(jī)程序代碼,當(dāng)在數(shù)據(jù)處理系統(tǒng)上執(zhí)行時(shí),其指令數(shù)據(jù)處理系統(tǒng)執(zhí)行根據(jù)權(quán)利要求1所述的方法。
10.一種計(jì)算機(jī)系統(tǒng),包括中央處理單元;存儲(chǔ)器;輸入/輸出接口;以及根據(jù)權(quán)利要求5限定的用于在發(fā)布預(yù)訂數(shù)據(jù)處理系統(tǒng)中發(fā)布文檔的設(shè)備。
全文摘要
一種用于在發(fā)布預(yù)訂數(shù)據(jù)處理系統(tǒng)中發(fā)布各文檔的一種方法,該方法包括以下步驟接收要發(fā)布的第一文檔,第一文檔具有關(guān)聯(lián)的主題;保留要發(fā)布的第一文檔作為保留文檔;在預(yù)定時(shí)間間隔經(jīng)過(guò)前,響應(yīng)接收要發(fā)布的第二文檔,保留要發(fā)布的第二文檔作為保留的文檔,并且發(fā)送要發(fā)布的第二文檔的一個(gè)拷貝到對(duì)該主題的預(yù)訂人;以及響應(yīng)確定預(yù)定時(shí)間間隔已經(jīng)經(jīng)過(guò),發(fā)送保留的文檔的一個(gè)拷貝到對(duì)該主題的預(yù)訂人。
文檔編號(hào)G06F17/30GK1776723SQ200510070199
公開(kāi)日2006年5月24日 申請(qǐng)日期2005年5月10日 優(yōu)先權(quán)日2004年11月18日
發(fā)明者安德魯·S·M·愛(ài)德華茲, 安德魯·I·??松? 馬丁·R·霍爾德, 特雷沃爾·洛班 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司