亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

用于在公共預(yù)訂網(wǎng)絡(luò)中可靠并且高效地進(jìn)行基于內(nèi)容的路由、查詢以及響應(yīng)的方法和設(shè)備的制作方法

文檔序號(hào):7854798閱讀:274來源:國知局
專利名稱:用于在公共預(yù)訂網(wǎng)絡(luò)中可靠并且高效地進(jìn)行基于內(nèi)容的路由、查詢以及響應(yīng)的方法和設(shè)備的制作方法
相關(guān)申請(qǐng)的引用本申請(qǐng)要求了以下申請(qǐng)的優(yōu)先權(quán),并且將它們的內(nèi)容并入本申請(qǐng),以供參考,所述申請(qǐng)為2002年3月28日申請(qǐng)的題目為“ReliablePublish/Subscribe System Architecture over Unreliable Networks”的美國臨時(shí)申請(qǐng)?zhí)枮?0/368,833的申請(qǐng);2002年3月28日申請(qǐng)的題目為“Methods for Propagating Content Filters for a Publish/SubscribeNetwork”的美國臨時(shí)申請(qǐng)?zhí)枮?0/369,105的申請(qǐng);2002年3月28日申請(qǐng)的題目為“Practical Method for Content-Based Packet Routingin a Publish/Subscribe Network”的美國臨時(shí)申請(qǐng)?zhí)枮?0/368,831的申請(qǐng);2002年3月28日申請(qǐng)的題目為“Implementing Query-ResponseInteractions On a Publish-Subscribe Infrastructure By Mapping DataAdvertisements as Subscriptions and Queries as Notifications”的美國臨時(shí)申請(qǐng)?zhí)枮?0/368,870的申請(qǐng);2002年4月3日申請(qǐng)的題目為“Method and Apparatus for Implementing Persistent and ReliableMessage Delivery”的美國臨時(shí)申請(qǐng)?zhí)枮?0/369,832的申請(qǐng);以及2003年2月19日申請(qǐng)的,題目為“Propagating Content Filters,Content-Based Packet Routing Using Compact Filter Storage and Off-Line Pre-computation,Reliable Publishing and Subscribing ImplementingPersistent and Reliable Message Delivery,and Implementing Query-Response Interactions By Mapping Data Advertisements asSubscriptions and Queries as Notifications in a Publish-SubscribeNetwork”的美國臨時(shí)申請(qǐng)?zhí)枮?0/447,782的申請(qǐng)。
本申請(qǐng)還引入以下內(nèi)容,以供參考,所述內(nèi)容為題為“PacketRouting ViaPayload Inspection”的第10/199,356號(hào)美國專利申請(qǐng);題為“Method And Apparatus For Content-Based Routing And FilteringAt Routers Using Channels”的第10/199,368號(hào)美國專利申請(qǐng);題為“Method For Sending And Receiving A Boolean Function Over ANetwork”的第10/199,439號(hào)美國專利申請(qǐng);題為“Method For StoringBoolean Functions To Enable Evaluation,Modification,Reuse,AndDelivery Over A Network”的第10/199,369號(hào)美國專利申請(qǐng);以及題為“Efficient Implementation of Wildcard Matching On Variable-SizedFields In Connect-Based Routing”的第10/199,388號(hào)美國專利申請(qǐng),這些申請(qǐng)均于2002年7月19日申請(qǐng)。
背景技術(shù)
網(wǎng)絡(luò)帶寬是按指數(shù)規(guī)律地增加的。然而,網(wǎng)絡(luò)基礎(chǔ)結(jié)構(gòu)(包括路由器、服務(wù)器、守護(hù)程序、協(xié)議等)仍使用相對(duì)舊的技術(shù)。因此,因特網(wǎng)應(yīng)用以及網(wǎng)絡(luò)路由器無法跟上帶寬增加的速度。同時(shí),越來越多的裝置以及應(yīng)用都變的能夠使用網(wǎng)絡(luò)。置于網(wǎng)絡(luò)節(jié)點(diǎn)上的這些裝置以及應(yīng)用的負(fù)載已經(jīng)極大地增加。網(wǎng)絡(luò)負(fù)載以及應(yīng)用數(shù)目的增加還使實(shí)現(xiàn)以及維護(hù)網(wǎng)絡(luò)應(yīng)用的復(fù)雜性大大的增高。因此,網(wǎng)絡(luò)帶寬的增加和網(wǎng)絡(luò)裝置以及應(yīng)用的前所未有的使用,在舊的網(wǎng)絡(luò)基礎(chǔ)結(jié)構(gòu)中產(chǎn)生了路由和數(shù)據(jù)傳輸?shù)膯栴},當(dāng)向預(yù)訂者發(fā)行內(nèi)容時(shí)尤為突出。
使網(wǎng)絡(luò)將信息從服務(wù)器推送給客戶端的模型是發(fā)行-預(yù)訂類型。依照此模型,所述服務(wù)器成為其信息的簡化的發(fā)行者,而不考慮哪些客戶端對(duì)所述信息感興趣或者他們位于網(wǎng)絡(luò)的什么地方。所述客戶端成為信息的預(yù)訂者,當(dāng)信息變得有效時(shí)被遞送,潛在地不考慮有關(guān)它在網(wǎng)絡(luò)的什么地方被發(fā)行的細(xì)節(jié)。然后,所述網(wǎng)絡(luò)負(fù)責(zé)高效地向預(yù)訂者路由發(fā)行的信息,將信息與有效預(yù)訂相匹配,并且以對(duì)于發(fā)行者和預(yù)訂者來說是透明的方式來執(zhí)行上述這些操作。
因?yàn)樵诎l(fā)行-預(yù)訂模型中極大地降低了服務(wù)器的復(fù)雜性,因此,重量級(jí)服務(wù)器和輕量級(jí)客戶端之間的區(qū)別開始消失,確切地說,合并成一個(gè)對(duì)等體的概念,該對(duì)等體可以是發(fā)行者、或者預(yù)訂者、或者兩者都是。很多種類的應(yīng)用對(duì)于對(duì)等體設(shè)備之間的發(fā)行-預(yù)訂類型交互來說具有天然的親和性(affinity)。成為許多這些應(yīng)用的基礎(chǔ)的通用課題是被發(fā)行和預(yù)訂的信息是以事件的形式出現(xiàn)。例如,投資者購買或者銷售股票,令股票的價(jià)格改變。在高速公路上發(fā)生交通事故,令高速公路上的交通堵塞。軟件系統(tǒng)中的安全漏洞被發(fā)現(xiàn),引起為軟件的用戶開發(fā)補(bǔ)丁。游戲者在因特網(wǎng)游戲中使用武器射擊,令另一游戲者的化身死亡。所有這些示例性的現(xiàn)象都是事件,這些事件潛在地是大量預(yù)訂者所感興趣的,并且可以經(jīng)由網(wǎng)絡(luò)傳播以便通知那些預(yù)訂者事件的發(fā)生。由此,事件是只是自含的,簡短的信息單元,它們涉及在網(wǎng)絡(luò)上某一地方并在某一時(shí)間點(diǎn)發(fā)生的可能感興趣的一些事情。
其它例子涉及安排了時(shí)間的廣播,其具有不同于只涉及異步事件的應(yīng)用的特性,在所述異步事件中,事件的時(shí)間是不可預(yù)知并且是隨機(jī)的。首先,所述事件被安排在已知時(shí)間發(fā)生。第二,一個(gè)事件不需要是簡短的信息單元。相反,它可以是量非常巨大的數(shù)據(jù)。將此巨大的數(shù)據(jù)負(fù)載定向到預(yù)訂者找到興趣的網(wǎng)絡(luò)部分要求相當(dāng)大的服務(wù)器處理。
通常,服務(wù)器或者發(fā)行者執(zhí)行對(duì)網(wǎng)絡(luò)的路由決定,以便命令在發(fā)行-預(yù)訂模型要在其上發(fā)送發(fā)行的內(nèi)容的網(wǎng)絡(luò)。所述發(fā)行者存儲(chǔ)對(duì)它發(fā)行的內(nèi)容的預(yù)訂。當(dāng)接收或者生成新的內(nèi)容時(shí),發(fā)行者將所述內(nèi)容與每個(gè)預(yù)訂進(jìn)行比較以便識(shí)別任一匹配。如果所述內(nèi)容(事件)滿足任一預(yù)訂,那么發(fā)行者將經(jīng)由網(wǎng)絡(luò)把所述內(nèi)容推送給相應(yīng)的預(yù)訂者。此常規(guī)的發(fā)行-預(yù)訂模型給發(fā)行者增添了巨大的負(fù)擔(dān),這一點(diǎn)在更多裝置變?yōu)槟軌蚓W(wǎng)絡(luò)以及當(dāng)預(yù)訂數(shù)目增加時(shí)尤為突出。補(bǔ)償?shù)姆椒赡苁亲屓擞憛挼摹A(yù)訂者對(duì)所有發(fā)行的事件評(píng)價(jià)其所擁有的預(yù)訂。
隨著跨越因特網(wǎng)的數(shù)不清數(shù)量的應(yīng)用的更大覆蓋,采用事件通知的可能性就會(huì)變得無休止。然而,那些可能性要求更加高效的方法做出路由決定并且確定何時(shí)事件滿足預(yù)訂,由此減輕發(fā)行者的負(fù)擔(dān)。因此,普遍的、持久的事件通知服務(wù)可以為因特網(wǎng)應(yīng)用以及其他應(yīng)用和實(shí)現(xiàn)提供巨大的增值效益。

發(fā)明內(nèi)容
提供了一種用于在發(fā)行-預(yù)訂網(wǎng)絡(luò)中傳播過濾的方法和設(shè)備。接收涉及網(wǎng)絡(luò)中內(nèi)容預(yù)訂的多個(gè)過濾?;谔囟ǖ臉?biāo)準(zhǔn)減少過濾的數(shù)目,并且傳播數(shù)目減少的過濾以便滿足所述預(yù)訂。
提供了一種用于在發(fā)行-預(yù)訂網(wǎng)絡(luò)上實(shí)現(xiàn)查詢-響應(yīng)交互的方法和設(shè)備。接收涉及數(shù)據(jù)集的廣告和代表邏輯表達(dá)式的查詢。將所述廣告映射到相應(yīng)的預(yù)訂。將所述查詢映射到相應(yīng)的通知。預(yù)訂以及通知被用于在網(wǎng)絡(luò)中實(shí)現(xiàn)廣告以及查詢。
提供了一種用于提供經(jīng)由網(wǎng)絡(luò)發(fā)送的消息的持久性的方法以及設(shè)備。經(jīng)由所述網(wǎng)絡(luò)接收消息。存儲(chǔ)所述消息以便稍后檢索。響應(yīng)涉及網(wǎng)絡(luò)的故障來提供持久的并且可靠的消息遞送。
附圖簡述將附圖并入并且構(gòu)成此說明書的一部分,并且連同所述描述一起來解釋本發(fā)明的優(yōu)勢和原理。


圖1是舉例說明在網(wǎng)絡(luò)核心中智能路由的圖。
圖2是舉例說明用于發(fā)行者和預(yù)訂者的智能路由器的網(wǎng)絡(luò)圖。
圖3是舉例說明用于智能路由器和骨干路由器的網(wǎng)絡(luò)基礎(chǔ)結(jié)構(gòu)的圖。
圖4是智能路由器的硬件部件的圖。
圖5是發(fā)行者和預(yù)訂者機(jī)器的圖。
圖6是智能路由器的通道管理器的圖。
圖7是在用戶機(jī)器中用于連接所述機(jī)器和智能路由器的軟件組件的圖。
圖8是智能路由器的軟件組件的圖。
圖9是消息的分組結(jié)構(gòu)的圖。
圖10是發(fā)行者方法的流程圖。
圖11是預(yù)訂者方法的流程圖。
圖12是通道和預(yù)訂者屏幕的圖。
圖13是基于內(nèi)容的路由方法的流程圖。
圖14是高速緩存方法的流程圖。
圖15是舉例說明高速緩存索引的圖。
圖16是用于出去的消息的代理方法的流程圖。
圖17是用于進(jìn)來的消息的代理方法的流程圖。
圖18是舉例說明消息編碼的例子的圖。
圖19是用于存儲(chǔ)預(yù)訂的數(shù)據(jù)庫結(jié)構(gòu)的圖。
圖20是通配符方法的流程圖。
圖21是用于在發(fā)行-預(yù)訂網(wǎng)絡(luò)中可靠傳輸通知的方法的流程圖。
圖22A是過濾傳播方法的流程圖。
圖22B是過濾減少方法的流程圖。
圖22C是另一過濾傳播方法的流程圖。
圖22D是發(fā)行-預(yù)訂網(wǎng)絡(luò)拓?fù)涞膱D。
圖23A-23B是使用預(yù)先計(jì)算的基于內(nèi)容的路由方法的流程圖。
圖24A是使用發(fā)行-預(yù)訂的查詢-響應(yīng)方法的流程圖。
圖24B是進(jìn)一步舉例說明圖24A的方法的順序圖。
圖24C是使用發(fā)行-預(yù)訂的另一查詢-響應(yīng)方法的流程圖。
圖24D是進(jìn)一步舉例說明圖24C的方法的順序圖。
圖24E是使用發(fā)行-預(yù)訂的另一查詢-響應(yīng)方法的流程圖。
圖24F是進(jìn)一步舉例說明圖24E的方法的順序圖。
圖24G和24H是使用發(fā)行-預(yù)訂的另一查詢-響應(yīng)方法的流程圖。
圖24I是進(jìn)一步舉例說明圖24G和24H的方法的順序圖。
圖25A是舉例說明持久性發(fā)行-預(yù)訂網(wǎng)絡(luò)的部件的框圖。
圖25B是舉例說明高速緩存管理器例程的實(shí)施例的圖。
圖25C是持久高速緩存方法的流程圖。
圖25D是持久信息檢索方法的流程圖。
詳細(xì)說明概述一種因特網(wǎng)-規(guī)模的或者其他分布式網(wǎng)絡(luò)-規(guī)模的事件通知系統(tǒng)為應(yīng)用提供大功率且靈活的發(fā)行-預(yù)訂聯(lián)網(wǎng)的實(shí)現(xiàn)。在此系統(tǒng)中,應(yīng)用程序使用事件通知應(yīng)用程序接口(API)來發(fā)行通知和/或預(yù)訂和接收關(guān)于網(wǎng)絡(luò)內(nèi)部發(fā)生事件的通知。
向系統(tǒng)中的通知給予一個(gè)主題,所述主題是字符串或者其他結(jié)構(gòu),其對(duì)通知所封裝的信息的類型進(jìn)行分類。此外,利用包含專用于所述通知的信息的一組屬性完成通知。例如,應(yīng)用可能使用主題quotes.nyse以及屬性符號(hào)(symbol)和價(jià)格(price)來發(fā)行關(guān)于紐約證券交易所的交易的通知。所述應(yīng)用例如利用等于SNE(Sony公司的證券報(bào)價(jià)機(jī)符號(hào))以及等于85.25的價(jià)格來發(fā)行具有特定屬性值的單個(gè)通知。從屬性在對(duì)于相同系列的主題的所有通知中都能夠被找到的意義上講,在一個(gè)通知中的屬性的大多數(shù),要不然就是在一個(gè)通知中的屬性的全部都被預(yù)先定義了。然而,發(fā)行者可以根據(jù)預(yù)先通知或者其他方式添加任意的屬性,以便提供附加的事件專用信息。因此,不是所有的乃至任何屬性都需要被預(yù)先定義。
在此系統(tǒng)中,預(yù)訂者不局限于只預(yù)訂主題或者整個(gè)通道。下文將進(jìn)一步解釋和定義通道。它們可以包括例如規(guī)定主題字段以及相關(guān)子領(lǐng)域(子主題)的一個(gè)或多個(gè)級(jí)別的分級(jí)結(jié)構(gòu)。由此,預(yù)訂者可以通過在通知屬性上規(guī)定基于內(nèi)容的過濾來提供興趣的好的多得多的可以微調(diào)的表達(dá)式。例如,預(yù)訂者可能預(yù)訂具有符號(hào)等于SNE并且價(jià)格大于90.00的主題quotes.nyse的所有通知(表明預(yù)訂者擁有的股票的大概銷售時(shí)機(jī))。與所述預(yù)訂相匹配的所有通知可以經(jīng)由回調(diào)函數(shù)或者其他類型函數(shù)遞送給預(yù)訂者,所述其他類型的函數(shù)是預(yù)訂者在注冊其預(yù)訂之時(shí)或者在其他時(shí)間所提供的。可以將一個(gè)預(yù)訂分解為多個(gè)過濾。
所述回調(diào)函數(shù)可以執(zhí)行多種計(jì)算,包括象將消息寫入終端或者發(fā)送電子郵件那么簡單的事情,諸如啟動(dòng)出售股票的更復(fù)雜的事情,以及啟動(dòng)新的發(fā)行-預(yù)訂活動(dòng)的越發(fā)復(fù)雜的事情(例如,對(duì)于75.00價(jià)格的購買時(shí)機(jī)來說以新的預(yù)訂代替現(xiàn)有的預(yù)訂,或者發(fā)行已經(jīng)修改了預(yù)訂者的有價(jià)證券的新通知)。
例如應(yīng)用在它們的發(fā)行和預(yù)訂活動(dòng)中由代理(angent)加以幫助。所述代理可能使用代理機(jī)(proxy),或者利用代理機(jī)來實(shí)現(xiàn)。當(dāng)使用代理時(shí),所述代理提供網(wǎng)絡(luò)連通性,以便發(fā)出通知和預(yù)訂,并且向預(yù)訂者遞送進(jìn)來的匹配通知。一旦通知進(jìn)入所述網(wǎng)絡(luò),路由器的系統(tǒng)網(wǎng)絡(luò)向其預(yù)訂與所述通知匹配的所有預(yù)訂者傳播所述通知。實(shí)現(xiàn)此操作的一個(gè)方式往往是向網(wǎng)絡(luò)的所有點(diǎn)廣播所述通知,然后讓應(yīng)用代理判斷所述通知是否與它們的預(yù)訂者有關(guān)。然而,這未必是可擴(kuò)縮的途徑-網(wǎng)絡(luò)往往因消息通信量的負(fù)載而被很快地傾覆,在存在大量有效并且冗長的發(fā)行者時(shí)尤為突出。并且即便有足夠的帶寬時(shí)不存在問題,預(yù)訂者也會(huì)因必須處理那么多通知而被傾覆。
系統(tǒng)的示例性網(wǎng)絡(luò)依照其路由通知的方式是更加有效的。首先,它可以使用多播路由來確保通知例如經(jīng)由網(wǎng)絡(luò)中任何鏈路最多被傳播一次。第二,它可以對(duì)過濾采用大量的高級(jí)優(yōu)化來盡可能地減少通知的傳播。
圖1是概念上舉例說明在網(wǎng)絡(luò)核心中此智能路由的圖。發(fā)行者14經(jīng)由邊緣路由器16采用消息把內(nèi)容發(fā)送到網(wǎng)絡(luò)核心10,其用在發(fā)行-預(yù)訂網(wǎng)絡(luò)中。發(fā)行-預(yù)訂網(wǎng)絡(luò)包括用于將數(shù)據(jù)或者內(nèi)容從發(fā)行者路由到預(yù)訂者的任何類型的網(wǎng)絡(luò)。將所述內(nèi)容經(jīng)由一個(gè)或多個(gè)通道18發(fā)送,所述通道表示路由器或者其他裝置之間的邏輯連接。網(wǎng)絡(luò)核心10中的智能路由器12確定是路由還是轉(zhuǎn)發(fā)消息。具體來講,智能路由器12可以確定所述消息是否包括預(yù)訂者24預(yù)訂的內(nèi)容。
每個(gè)預(yù)訂封裝主題過濾以及屬性過濾。路由器可能將主題過濾擴(kuò)展到匹配主題集合,并且以每個(gè)主題為基礎(chǔ)來合并屬性過濾。智能路由器相對(duì)于通知的主題來評(píng)估主題過濾,并且相對(duì)于通知中的屬性值評(píng)估屬性過濾。主題過濾的語法可能使用通配符,而屬性過濾的語法可以使用布爾表達(dá)式,下文將進(jìn)一步解釋它們兩者。使用術(shù)語“過濾”來描述一組事件,所述事件是預(yù)訂者感興趣從發(fā)行者接收的事件。根據(jù)所述過濾將生成路由規(guī)則,并且由智能路由器使用所述路由規(guī)則來做出路由決定。
因此,例如如果整個(gè)過濾組不滿足消息26,那么智能路由器12丟掉(丟棄)消息26,這意味著不轉(zhuǎn)發(fā)所述消息。例如,如果整個(gè)組的任何過濾依照主題和屬性過濾的評(píng)估滿足于消息20,那么依照所有路由和/或?yàn)闉槠ヅ溥^濾所規(guī)定的動(dòng)作規(guī)則,智能路由器12經(jīng)由邊緣路由器22以及其他可能的裝置向預(yù)訂者24路由(轉(zhuǎn)發(fā))消息20,或者利用消息20執(zhí)行路由器12內(nèi)的其他功能。所述搜索將繼續(xù),直到過濾的整個(gè)組已經(jīng)取盡、或者已經(jīng)獲得對(duì)所有規(guī)則的決定的任何一個(gè)首先到來為止。
在網(wǎng)絡(luò)核心中的這類智能的基于內(nèi)容的路由提供例如警報(bào)以及更新的實(shí)時(shí)數(shù)據(jù)遞送。用于警報(bào)的實(shí)時(shí)數(shù)據(jù)遞送的例子包括、但是不局限于以下內(nèi)容股票行情、交通、新聞、旅游、天氣、欺騙檢測、安全、電信息通信、工廠自動(dòng)化、供應(yīng)鏈管理以及網(wǎng)絡(luò)管理。用于更新的實(shí)時(shí)數(shù)據(jù)遞送的例子包括、但是不局限于以下內(nèi)容軟件更新、反病毒更新、電影以及音樂遞送、工作流程、存儲(chǔ)管理以及高速緩存一致性。多種其他應(yīng)用也能夠用于遞送預(yù)訂的信息。
表1舉例說明了利用主題以及謂詞(predicate)來存儲(chǔ)預(yù)訂以供過濾。根據(jù)期望或者需求,可以依照任何類型的數(shù)據(jù)結(jié)構(gòu)將它們存儲(chǔ)在網(wǎng)絡(luò)中的任何地方。正如下面解釋的那樣,所述謂詞是預(yù)訂的分量。所述預(yù)訂可以用任何方式表示,下面提供了其例子。

表2提供了開盤服務(wù)器的發(fā)行以及預(yù)訂的例子。此例子只為舉例說明而提供,并且所述預(yù)訂可以包括用于任何類型的數(shù)據(jù)或者內(nèi)容的任何數(shù)目和類型的參數(shù)。

所述謂詞為預(yù)訂提供布爾表達(dá)式,并且主題為所述預(yù)訂提供通道指示。預(yù)訂可以用多種不同的方式表示。使用布爾表達(dá)式是這種例子之一,并且為基于內(nèi)容的路由提供了將所述預(yù)訂容易地轉(zhuǎn)換為主題過濾以及屬性過濾的能力。作為選擇,預(yù)訂可以不參考主題來表示;但是,使用主題或者通道(下面進(jìn)一步解釋)提供用于解釋并且對(duì)屬性應(yīng)用過濾的環(huán)境。
所述路由決定可以在網(wǎng)絡(luò)核心中實(shí)現(xiàn),并且遍及所述網(wǎng)絡(luò)分發(fā),由此減輕對(duì)發(fā)行者以及預(yù)訂者機(jī)器的處理負(fù)擔(dān),并且顯著地增強(qiáng)了網(wǎng)絡(luò)效率。圖1舉例說明了一個(gè)發(fā)行者、一個(gè)預(yù)訂者以及一個(gè)智能路由器,這僅僅是為了舉例說明;其實(shí)現(xiàn)可以包括許多發(fā)行者、預(yù)訂者以及智能路由器。術(shù)語智能路由器指的是具有通過檢查網(wǎng)絡(luò)核心或者其他位置中分組或者消息的有效負(fù)載來做出路由決定的能力的路由器或者其他實(shí)體。
網(wǎng)絡(luò)基礎(chǔ)結(jié)構(gòu)圖2是舉例說明發(fā)行者和預(yù)訂者的智能路由器的網(wǎng)絡(luò)圖。提供通道服務(wù)的路由實(shí)體30例如在網(wǎng)絡(luò)基礎(chǔ)結(jié)構(gòu)上被有效地分層,如下文將解釋的,以便在智能路由器之間路由消息。發(fā)行者32概念上例如包括應(yīng)用34,用于接收發(fā)行內(nèi)容的指示,諸如用于檢索所述內(nèi)容的指針;以及代理36,用于編碼經(jīng)由通道服務(wù)30進(jìn)行網(wǎng)絡(luò)傳輸?shù)膬?nèi)容。邏輯上互連的智能路由器38,40,42,44,46和48的集合使用根據(jù)對(duì)預(yù)訂的主題過濾和屬性過濾生成的路由規(guī)則、路由來自于發(fā)行者的內(nèi)容。多個(gè)鏈路39,41,43和45提供智能路由器38,40,42,44,46和48之間的邏輯連接。其他鏈路37和47分別提供發(fā)行者32和智能路由器38之間、預(yù)訂者54和智能路由器46之間的邏輯連接。預(yù)訂者54包括代理50,用于檢測并且接受預(yù)訂內(nèi)容,并且包括應(yīng)用52,用于展示內(nèi)容。
通道例如可以包括依照分布式的方式實(shí)現(xiàn)的邏輯多播連接的相關(guān)集合。在此示例性實(shí)施例中的通道是用于服務(wù)交換內(nèi)容的發(fā)行者和預(yù)訂者團(tuán)體的網(wǎng)絡(luò)資源的邏輯相關(guān)集合。所述內(nèi)容依照通道主題名字空間來分類,并且所述資源通過通道管理器提供的通道服務(wù)來管理、控制和供應(yīng)。多個(gè)通道可以共享同一資源。通道可以提供高度可擴(kuò)縮的目錄服務(wù),諸如但不局限于以下例子發(fā)行者和預(yù)訂者信息、認(rèn)證和授權(quán)信息、消息類型、管理信息和賬戶和計(jì)費(fèi)信息。通道例如還可以通過高速緩存、快速的數(shù)據(jù)遞送機(jī)制、安全、和用戶和網(wǎng)絡(luò)管理提供持久性。通道也可以用于任何其他目的。
由智能路由器所進(jìn)行的過濾能夠發(fā)生在網(wǎng)絡(luò)核心中,以便分發(fā)路由決定。此外,智能路由器還可以起邊緣路由器的作用,所述邊緣路由器將用戶裝置、諸如發(fā)行者或者預(yù)訂者與網(wǎng)絡(luò)核心連接。此外,與網(wǎng)絡(luò)相連的相同裝置可以起發(fā)行者和預(yù)訂者兩者的作用,發(fā)行者用于在網(wǎng)絡(luò)中將內(nèi)容經(jīng)由路由決定推送給預(yù)訂者,預(yù)訂者用于接收所推送的內(nèi)容。所述智能路由器和通道可以根據(jù)需求或者特定實(shí)現(xiàn)的要求、采用任何配置加以連接,并且圖2中所示的配置僅僅是為了舉例說明而提供的。
圖3是用于智能路由器和常規(guī)的骨干路由器的示例性網(wǎng)絡(luò)基礎(chǔ)結(jié)構(gòu)的圖,此外還舉例說明了通道的邏輯連接。在此例子中,所述智能路由器使用諸如因特網(wǎng)或者其他分布式網(wǎng)絡(luò)的網(wǎng)絡(luò)中現(xiàn)有的骨干路由器,并且所述智能路由器由此有效地在骨干路由器上分層。在此例子中,因特網(wǎng)服務(wù)供應(yīng)商(ISP)網(wǎng)絡(luò)58,59和60均包括多個(gè)骨干路由器,用于消息或者分組的常規(guī)路由。多個(gè)智能路由器61-70與ISP網(wǎng)絡(luò)58、59和60中的一個(gè)或多個(gè)骨干路由器連接。智能路由器61-70還通過多個(gè)鏈路73-85互連,所述多個(gè)鏈路73-85表示鏈路的例子,并且也可以通過所述鏈路與最終用戶裝置相連。智能路由器61-70可以由一個(gè)或多個(gè)管理員機(jī)器加以控制,諸如實(shí)體71,并且一個(gè)或多個(gè)虛擬專用網(wǎng)絡(luò)(VPN)控制器諸如實(shí)體72。ISP網(wǎng)絡(luò)58,59和60往往還與發(fā)行者和預(yù)訂者機(jī)器(圖3中未示出)相連。在ISP 58,59和60之中和之間的骨干路由器在現(xiàn)有的網(wǎng)絡(luò)基礎(chǔ)結(jié)構(gòu)內(nèi)、依照常規(guī)的方式互連。
如圖所示,所述智能路由器61-70和鏈路73-85可以使用現(xiàn)有的網(wǎng)絡(luò)基礎(chǔ)結(jié)構(gòu)實(shí)現(xiàn),并且它們提供在網(wǎng)絡(luò)核心中基于內(nèi)容的路由。鏈路73-85表示智能路由器61-70之間的邏輯連接,并且例如可以使用現(xiàn)有的網(wǎng)絡(luò)基礎(chǔ)結(jié)構(gòu)或者其他裝置來實(shí)現(xiàn)。例如,可以使用稱為隧道(tunnel)的邏輯連接來實(shí)現(xiàn)。隧道包括硬件,并且可能包括軟件、用于實(shí)現(xiàn)鏈接的網(wǎng)絡(luò)基礎(chǔ)結(jié)構(gòu),并且一個(gè)隧道可以是多個(gè)通道的一部分。所述通道通過為特殊類型內(nèi)容提供邏輯配置而易于在智能路由器中進(jìn)行基于內(nèi)容的路由,并且由此為經(jīng)由通道發(fā)送的屬性提供環(huán)境。盡管智能路由器可以在沒有通道的情況下執(zhí)行路由決定,但是所述通道增強(qiáng)網(wǎng)絡(luò)核心中智能路由器進(jìn)行的的基于內(nèi)容的路由的效率。
此示例性實(shí)施例包括使用通道和鏈路。鏈路是兩個(gè)路由器之間的連接——雖然是智能路由器。通道是包含路由器集合(通常較大)的網(wǎng)絡(luò)實(shí)體,其通過互連的鏈路來靜態(tài)地或者動(dòng)態(tài)地配置以便實(shí)現(xiàn)一對(duì)多或者多對(duì)多的邏輯連接。具體來講,通道是描述通道基本特征的最高層邏輯實(shí)體。在一個(gè)通道下,可以存在許多主題。每個(gè)主題將形成子網(wǎng)絡(luò)(諸如多播樹),所述子網(wǎng)絡(luò)涉及互連路由器的集合。這些基于主題的子網(wǎng)絡(luò)可以采用不同的方式分配、定向和配置。例如,為其下主題形成的所有子網(wǎng)絡(luò)的集合的通道可能類似網(wǎng)絡(luò)的網(wǎng)格。
圖4是智能路由器92的示例性硬件部件的圖,其相應(yīng)于任何其他提及的智能路由器。網(wǎng)絡(luò)節(jié)點(diǎn)90可以包括與常規(guī)骨干路由器95相連接的智能路由器92。智能路由器92包括與(例如可能利用可拆卸機(jī)器實(shí)現(xiàn)的)存儲(chǔ)器94和次級(jí)存儲(chǔ)器97相連的處理器93,兩者中的人一個(gè)都可以存儲(chǔ)數(shù)據(jù),并且可以高速緩存數(shù)據(jù),以及存儲(chǔ)處理器93執(zhí)行的應(yīng)用。次級(jí)存儲(chǔ)器97提供數(shù)據(jù)的非易失性存儲(chǔ)。在如下所述的軟件控制下,處理器93向骨干路由器95提供指令,以便所述骨干路由器95基于根據(jù)對(duì)預(yù)訂的主題過濾以及屬性過濾生成的路由規(guī)則路由(轉(zhuǎn)發(fā))或不路由(丟棄)消息或者分組。盡管采用獨(dú)立的處理器控制的裝置的實(shí)現(xiàn)方式示出,但是作為選擇,智能路由器92可以采用骨干路由器95中的專用集成電路(ASIC)來實(shí)現(xiàn),以便采用可能具有嵌入軟件的硬件來提供智能路由功能。作為選擇,所述智能路由功能還可以采用一個(gè)或者多個(gè)路由裝置中的軟件以及硬件組合來實(shí)現(xiàn)。
圖5是示例性的發(fā)行者和預(yù)訂者機(jī)器的圖。發(fā)行者機(jī)器100或者118可以包括以下部件存儲(chǔ)器102,存儲(chǔ)一個(gè)或多個(gè)發(fā)行者應(yīng)用104以及代理應(yīng)用105;次級(jí)存儲(chǔ)裝置112,提供數(shù)據(jù)的非易失性存儲(chǔ);輸入裝置108,用于輸入信息或者命令;處理器114,用于執(zhí)行存儲(chǔ)在存儲(chǔ)器102中的應(yīng)用或者從其他存儲(chǔ)設(shè)備接收的應(yīng)用;輸出裝置110,用于輸出信息;以及顯示裝置116,用于提供信息的可視顯示。
預(yù)訂者機(jī)器122或者140可以包括以下部件存儲(chǔ)器124,存儲(chǔ)一個(gè)或多個(gè)應(yīng)用126以及代理應(yīng)用128;次級(jí)存儲(chǔ)裝置130,提供數(shù)據(jù)的非易失性存儲(chǔ);輸入裝置132,用于輸入信息或者命令;處理器134,用于執(zhí)行存儲(chǔ)在存儲(chǔ)器124中的應(yīng)用或者從其他存儲(chǔ)設(shè)備接收的應(yīng)用;輸出裝置136,用于輸出信息;以及顯示裝置116,用于提供信息的可視顯示。作為選擇,發(fā)行者和預(yù)訂者機(jī)器可以采用任意配置包括或多或少的部件,或者不同的部件。
發(fā)行者機(jī)器100以及118經(jīng)由網(wǎng)絡(luò)120與預(yù)訂者機(jī)器122以及140連接,所述網(wǎng)絡(luò)諸如如上所述的網(wǎng)絡(luò)。網(wǎng)絡(luò)120包括智能路由器,用于經(jīng)由分組或者消息提供在網(wǎng)絡(luò)核心中的數(shù)據(jù)或者內(nèi)容的分布式路由。盡管只示出了兩個(gè)發(fā)行者和預(yù)訂者機(jī)器,但是網(wǎng)絡(luò)120可以擴(kuò)展到包括更多發(fā)行者和預(yù)訂者機(jī)器。所述發(fā)行者和預(yù)訂者機(jī)器可以利用任何處理器控制裝置實(shí)現(xiàn),諸如但不局限于以下例子服務(wù)器、個(gè)人計(jì)算機(jī);筆記本計(jì)算機(jī);個(gè)人數(shù)字助理;電話;蜂窩電話;傳呼機(jī);或者其他裝置。帶有智能路由器的網(wǎng)絡(luò)120可以包括任意的有線或者無線分布式網(wǎng)絡(luò)、有線連接裝置、無線裝置或者兩者。網(wǎng)絡(luò)120還可能使用現(xiàn)有的或者常規(guī)的網(wǎng)絡(luò)基礎(chǔ)結(jié)構(gòu)。
圖6是舉例說明了智能路由器的通道管理器150的圖。在此例子中,通道管理器150利用多個(gè)服務(wù)器152,154以及156實(shí)現(xiàn)。每個(gè)服務(wù)器均包括其自身的本地存儲(chǔ)器158,160以及162。智能路由器164,166以及168與通道管理器就有關(guān)特定通道的信息進(jìn)行聯(lián)系。所述通道管理器還可以提供數(shù)據(jù)持久性、故障轉(zhuǎn)移功能或者其他功能。所述通道管理器由此提供通道服務(wù),其包括在網(wǎng)絡(luò)中任何地方的、用于規(guī)定涉及通道的信息、數(shù)據(jù)持久性屬性、發(fā)行者和預(yù)訂者的用戶信息以及基礎(chǔ)結(jié)構(gòu)信息的數(shù)據(jù)庫或者數(shù)據(jù)庫集。所述基礎(chǔ)結(jié)構(gòu)信息例如可以包括智能路由器和連接它們的相應(yīng)的隧道的標(biāo)識(shí)、通道的主題以及通道的屬性(每個(gè)屬性的名稱以及類型)。分組或者消息還可以攜帶涉及通道的信息,包括固定屬性以及可變屬性的標(biāo)識(shí)。
當(dāng)用戶在線時(shí)可以下載通道信息。例如,用戶能夠通過使用用戶名以及密碼來注冊。當(dāng)身份驗(yàn)證用戶的登錄時(shí),用戶可以打開(啟用)通道,并且從通道管理器檢索關(guān)于所述通道的信息。發(fā)行者可以使用發(fā)行內(nèi)容中的該信息,并且預(yù)訂者可以使用該信息來輸入并且注冊預(yù)訂。
在此例子中,每個(gè)通道管理器152,154和156對(duì)于每個(gè)智能路由器的充當(dāng)主通道管理器。具體來講,在此例子中,每個(gè)智能路由器被提供有兩個(gè)網(wǎng)際協(xié)議(IP)地址,一個(gè)用于主通道管理器而另一個(gè)用于備份通道管理器。所述智能路由器使用那些IP地址來聯(lián)系通道管理器并且檢索通道信息。如果所述主通道管理器故障,那么智能路由器可以聯(lián)系備份通道管理器。所述通道管理器152,154和156由此共享涉及通道屬性的數(shù)據(jù)和其他信息的數(shù)據(jù),如連接它們的線所表示的。每個(gè)通道管理器還具有指定的備份,以致如果該通道管理器故障,那么另一個(gè)可以接管它來進(jìn)行處理。網(wǎng)絡(luò)中的裝置例如可以使用命令來檢索通道信息,表3中提供了其例子。作為選擇,智能路由器可以只具有一個(gè)主通道管理器或兩個(gè)以上的通道管理器。
圖7是在用戶機(jī)器或用于將其與具有智能路由器的網(wǎng)絡(luò)連接的裝置的堆棧180中的示例性軟件組件的圖。所述用戶機(jī)器可以用作發(fā)行者、預(yù)訂者或者兩者,并且它可以包括上文所標(biāo)識(shí)的示例性裝置。堆棧180可以包括一個(gè)或多個(gè)用戶應(yīng)用182,其可以提供從用戶接收預(yù)訂、從發(fā)行者接收通道信息,或者接收待發(fā)行的內(nèi)容或者數(shù)據(jù)。用戶應(yīng)用182還可以包括任何其他類型的應(yīng)用,用于由用戶機(jī)器或裝置執(zhí)行。
堆棧180例如還可以包括代理184、事件庫186、高速緩存庫188、通道庫190、消息傳送庫192、以及調(diào)度器庫194。代理184提供建立網(wǎng)絡(luò)連接或者其他功能,并且表3提供了由代理184實(shí)現(xiàn)的命令的例子,其可以使用代理機(jī)命令或者其他類型的命令。事件庫186把涉及用戶機(jī)器的事件或者其他事件或者信息作為日志記錄下來。高速緩存庫188提供數(shù)據(jù)的本地高速緩存。通道庫190存儲(chǔ)通道的標(biāo)識(shí)以及關(guān)于它們的信息。調(diào)度器庫194提供與控制通路196、通道管理器198以及一個(gè)或多個(gè)智能路由器200的連接,并且它可以包括表4中標(biāo)識(shí)的示例性功能。消息傳送庫192提供與數(shù)據(jù)通路204的連接。
表5-9提供了采用C程序設(shè)計(jì)語言的消息傳送API的例子。表5和6提供了用于發(fā)送和檢索消息的API的例子。表7和8提供了用于發(fā)送和檢索通知的API的例子。表9提供了用于發(fā)送和檢索控制消息的API的例子。這些API與其他API、程序和數(shù)據(jù)結(jié)構(gòu)在此說明中僅僅作為提供了,用于實(shí)現(xiàn)特定功能或特征,但是實(shí)現(xiàn)方式可以包括任何類型的API或者采用任何程序設(shè)計(jì)語言編制的其他軟件實(shí)體。








圖8是智能路由器的示例性軟件組件210的圖,諸如上面標(biāo)識(shí)的那些和圖4中所示的智能路由器92。軟件組件210例如可以存儲(chǔ)在存儲(chǔ)器94中,以便由智能路由器92中的處理器93執(zhí)行。組件210例如包括過濾守護(hù)程序212、調(diào)度器214、路由守護(hù)程序216和高速緩存管理器218。過濾守護(hù)程序212為基于內(nèi)容的路由提供過濾,以便依照路由規(guī)則處理預(yù)訂的內(nèi)容,如下面將解釋的那樣。調(diào)度器214提供控制消息的通信,諸如經(jīng)由通路220傳播過濾所要求的那些消息,并且所述調(diào)度器還可以為用戶提供單個(gè)輸入點(diǎn)以及帶有通道管理器的一個(gè)安全套接字,由此增強(qiáng)網(wǎng)絡(luò)的安全性。換言之,在此例子中,用戶不直接聯(lián)系通道管理器,不過在替代的實(shí)現(xiàn)方式中是可能的。調(diào)度器214使用控制消息來從通道管理器獲得屬性(名稱值的對(duì))。
路由守護(hù)程序216提供與數(shù)據(jù)通路222的通信,其可以經(jīng)由如圖4中所示的常規(guī)骨干路由器或者其他路由裝置進(jìn)行。高速緩存管理器218提供處于包括相應(yīng)智能路由器的網(wǎng)絡(luò)節(jié)點(diǎn)的數(shù)據(jù)的本地高速緩存。下面進(jìn)一步解釋高速緩存管理器218的操作,并且它提供遍及網(wǎng)絡(luò)核心的數(shù)據(jù)的分布式高速緩存。
基于內(nèi)容的路由可以在內(nèi)核級(jí)別實(shí)現(xiàn),作為對(duì)應(yīng)用級(jí)別的替代。核心可訪問的存儲(chǔ)器獨(dú)立于應(yīng)用層中的存儲(chǔ)器。在應(yīng)用中運(yùn)行基于內(nèi)容的路由,例如要求將消息數(shù)據(jù)從內(nèi)核存儲(chǔ)區(qū)復(fù)制到應(yīng)用區(qū),并且將應(yīng)用的環(huán)境從內(nèi)核環(huán)境切換到路由應(yīng)用的環(huán)境。兩者可以導(dǎo)致相當(dāng)?shù)拈_銷。如果代之以修改所述內(nèi)核以便支持基于內(nèi)容的路由,那么所述路由可以更快的進(jìn)行,由此減少如上所述的開銷。
使用內(nèi)核中的基于內(nèi)容的路由的這一特征,路由守護(hù)程序216可以直接或者可以不直接經(jīng)由數(shù)據(jù)通路222發(fā)送或者接收數(shù)據(jù),這要取決于實(shí)現(xiàn)方式。所述守護(hù)程序是這樣的進(jìn)程,在應(yīng)用層中運(yùn)行,預(yù)先計(jì)算待注入到內(nèi)核中的基于內(nèi)容的路由表。然而,一旦注入,所述路由表可以由內(nèi)核使用來做出路由決定。同樣地,過濾守護(hù)程序預(yù)先計(jì)算過濾表并且將其注入內(nèi)核中。在此內(nèi)核實(shí)現(xiàn)方式中,路由守護(hù)程序和過濾守護(hù)程序兩者往往都不直接與數(shù)據(jù)通路交互。
圖9是可能包括預(yù)訂內(nèi)容的消息的分組結(jié)構(gòu)230的例子的圖。供基于內(nèi)容的路由之用的分組或者消息例如包括首部部分以及有效負(fù)載部分。所述首部部分規(guī)定路由或者其他信息。所述有效負(fù)載部分規(guī)定數(shù)據(jù)或者內(nèi)容,或者數(shù)據(jù)或者內(nèi)容的指示。分組結(jié)構(gòu)230包括IP首部232、用戶數(shù)據(jù)報(bào)協(xié)議(UDP)、傳輸控制協(xié)議(TCP)首部234、長度值238、一個(gè)或多個(gè)主題字段240以及一個(gè)或多個(gè)屬性242。分組結(jié)構(gòu)230舉例說明了長度值以及主題和屬性的基本結(jié)構(gòu)。用于基于內(nèi)容的路由的分組還可以包括其他或者不同單元,諸如下面解釋的圖18的例子中所示的那些,并且用于基于內(nèi)容的路由的分組可以采用任何方式配置。此外,所述屬性例如可以包括追加到消息末尾的任意的屬性。這些任意的屬性是例如由發(fā)行者(乃至路由器)添加的ad-hoc信息,其未必要使用為通道規(guī)定的消息格式傳達(dá)。
發(fā)行者和預(yù)訂者方法圖10是由發(fā)行者使用以便設(shè)置通道和發(fā)行內(nèi)容的示例性發(fā)行者方法250的流程圖。方法250例如可以采用軟件模塊實(shí)現(xiàn),所述軟件模塊包括由發(fā)行者機(jī)器100中的處理器114執(zhí)行的代理106。在方法150中,發(fā)行者機(jī)器中的代理106接收用于通道的代理機(jī)的發(fā)行者創(chuàng)建(步驟252)。所述代理機(jī)提供與所述網(wǎng)絡(luò)的通信。代理106通過接口確定通道的消息格式(步驟253),并且所述格式信息例如可以從通道管理器或者網(wǎng)絡(luò)中的其他實(shí)體中獲得。代理106使用所接收的通道信息來設(shè)置通道的代理機(jī)(步驟254),其包括接收通道的屬性(步驟256)并且在通道上創(chuàng)建通知(步驟258)。所述通知為“偵聽”通道上的內(nèi)容的裝置提供內(nèi)容。所述屬性定義通知的參數(shù)和特征。
代理106向網(wǎng)絡(luò)核心中或者別處的智能路由器發(fā)送通道和內(nèi)容信息的標(biāo)識(shí)符(ID),供處理預(yù)訂之用(步驟260)。所述發(fā)行者利用適當(dāng)?shù)闹堤畛渫ㄖ獙傩?步驟261),并且發(fā)行者因此能依照通道屬性在通知上發(fā)行內(nèi)容(步驟262)。在此例子中,步驟260-262實(shí)現(xiàn)發(fā)行所述通知,作為選擇,取決于特定的實(shí)現(xiàn)方式其可以涉及不同的或者附加的步驟。因此,在此例子中,將與通知相關(guān)聯(lián)的信息劃分為屬性的排序的序列,每個(gè)屬性均具有名稱、通知中的位置(起始于1)、類型及值。作為選擇,取決于特定的實(shí)現(xiàn)方式,屬性可以具有不同的特征。屬性例如可以包括預(yù)先定義的屬性、任意的屬性或者兩者。
所述智能路由器可以使用分組的通道ID來獲得相應(yīng)通道的屬性,其確定經(jīng)由通道發(fā)送的分組的結(jié)構(gòu)或者格式。具體來講,每個(gè)分組例如可以包含與通道ID相關(guān)聯(lián)的標(biāo)記以及其他首部信息,諸如發(fā)行者ID和主題。所述標(biāo)記可用于把主題映射到消息格式中的編號(hào),圖18中示出了其例子??梢允褂美缡恢档男≌麛?shù)值來編號(hào)。作為選擇,可以使用任何其他類型的編號(hào)或者信息來映射主題。將主題映射到編號(hào)可以提供特別的優(yōu)勢;例如,它可以節(jié)省消息格式節(jié)的空間,并且提供統(tǒng)一的或者標(biāo)準(zhǔn)方式來規(guī)定消息中的主題的指示,以致它們可以很快地被定位和識(shí)別。智能路由器可以本地存儲(chǔ)所述映射,或者作為選擇,通過命令使用編號(hào)來遠(yuǎn)程獲得相應(yīng)主題。
表10舉例說明了將編號(hào)映射到主題的結(jié)構(gòu),在此例子中使用了整數(shù)值。表中的主題樹參數(shù)表明主題可以依照層次關(guān)系包括一個(gè)或多個(gè)主題字段;例如,主題樹可以包括由特定符號(hào)分界的主題字段的字符串。表2中提供了主題樹的例子。作為一個(gè)例子,主題樹quotes.nyse包括主題“quotes”和子字段“nyse”,兩項(xiàng)由在URL或者其他網(wǎng)絡(luò)地址中所找到的“.”分界。除了使用周期并且規(guī)定URL類型字符串以外,主題樹可以使用任意字符和用于分界的符號(hào)采用任意方式來規(guī)定。

由此,知道特定通道的分組格式或者結(jié)構(gòu),所述智能路由器可以很快地定位分組中的主題和屬性,或者其他信息,以便進(jìn)行在基于內(nèi)容的路由。例如,通道可以規(guī)定經(jīng)由所述通道發(fā)送的主題和屬性的字節(jié)位置,通過計(jì)算分組中的字節(jié)使它們便于定位。作為選擇,智能路由器可以分析分組以便定位主題和屬性,或者其他信息。
表11提供了采用C++程序設(shè)計(jì)語言的發(fā)行者程序的例子。表12提供了用于創(chuàng)建通道的API的例子。表13提供了通過通道管理器(參見圖6)維護(hù)的通道配置文件并且提供涉及通道的信息的例子,如圖所示。作為選擇,所述系統(tǒng)可以具有全局的通道管理器,用于提供地理位置上分散的服務(wù)器的IP地址,所述服務(wù)器起本地通道管理器的作用,以便分配所述處理負(fù)載。






圖11是供接收和處理預(yù)訂之用的預(yù)訂者方法264的流程圖。方法266例如可以采用軟件模塊實(shí)現(xiàn),所述軟件模塊包括代理128,由預(yù)訂者機(jī)器122中的處理器134加以執(zhí)行。在方法264中,例如圖形用戶界面(GUI)向用戶展示有效通道的指示(步驟266),這可以利用應(yīng)用126實(shí)現(xiàn)。標(biāo)識(shí)所述通道的信息例如可以從提供涉及通道的信息的通道管理器接收。任何類型的應(yīng)用126可以采用任何特殊方式或格式來展示通道標(biāo)識(shí)。所述應(yīng)用接收用戶對(duì)通道的選擇(步驟268),并且為所選通道調(diào)用API或者其他程序(步驟270)。所述API針對(duì)對(duì)應(yīng)于所選選項(xiàng)的通道向用戶展示預(yù)訂選項(xiàng)(步驟272)。所述API接收來自于用戶的預(yù)訂的值(步驟274),并且向代理128發(fā)送所述預(yù)訂以便處理,如下面將解釋的(步驟276)。
用于預(yù)訂的參數(shù)例如可以包括如表1中所示的謂詞。例如,每個(gè)通道可以使用其自身的API,以便依照相應(yīng)通道的特定需求或者參數(shù)處理預(yù)訂。這些API例如可以包括用于接收預(yù)訂的基于網(wǎng)頁或者基于Java的API,并且可以使用任何類型的用戶界面和處理來接收預(yù)訂信息,并且將其傳遞到代理應(yīng)用。
圖12是概念上舉例說明通道和預(yù)訂者屏幕即GUI 278和284的圖,其可用于結(jié)合方法264來接收預(yù)訂。屏幕278包括多個(gè)部分(section)282,用于標(biāo)識(shí)有效通道以供用戶進(jìn)行選擇。當(dāng)選擇特定的通道時(shí),可以顯示屏幕284,以便接收在部分286中的用戶的預(yù)訂值。用戶可以選擇部分288來提交預(yù)訂或者選擇部分290來取消預(yù)訂。屏幕278和284例如可以被格式化為超文本標(biāo)記語言(HTML)網(wǎng)頁,或者具有任意其他格式。此外,所述屏幕可以包括部分和內(nèi)容的任何配置,例如可能包括文本、圖形、圖片、各種色彩或者多媒體信息,以便隨心所欲地向預(yù)訂者提供用戶友好的并且視覺上吸引人的預(yù)訂界面。所述屏幕還可以包括工具欄280,用于例如提供常規(guī)的瀏覽器功能。
表14提供了采用C++程序設(shè)計(jì)語言的預(yù)訂者程序的例子。



經(jīng)由有效負(fù)載檢查和通道的基于內(nèi)容的路由圖13是經(jīng)由有效負(fù)載檢查方法300的基于內(nèi)容的路由的流程圖。方法300例如可以采用軟件模塊實(shí)現(xiàn),所述軟件模塊由智能路由器92中的處理器93執(zhí)行,如由過濾守護(hù)程序212表示的那樣。作為選擇,它可以采用ASIC或者硬件和軟件的組合來實(shí)現(xiàn)。如方法300所示那樣,基于內(nèi)容的路由可以在網(wǎng)絡(luò)任何地方的智能路由器中執(zhí)行,諸如在網(wǎng)絡(luò)核心中或者在邊緣路由器中執(zhí)行。
依照一般含義,基于內(nèi)容的路由涉及檢查分組的有效負(fù)載部分,以便確定如何處理分組。此基于內(nèi)容的路由方法例如可以包括依照任意次序(例如使用過濾)處理預(yù)訂列表,將消息逐個(gè)主題并且逐個(gè)屬性地與路由規(guī)則比較,以便確定消息的路由,并且執(zhí)行網(wǎng)絡(luò)核心中的處理。所述規(guī)則可以包括控制路由器內(nèi)處理的規(guī)則或者與過濾相關(guān)聯(lián)的任何規(guī)則。這些路由決定因此能遍及網(wǎng)絡(luò)核心分配。使用由通道表示的主題來確定消息格式,由此向智能路由器提供在消息內(nèi)很快定位屬性的方式,例如通過獲悉它們在特定通道的消息或者分組中的字節(jié)位置來提供。
在方法300中,智能路由器92接收消息的分組(步驟302)。它從分組確定用于相應(yīng)消息的通道ID(步驟304),并且使用通道ID檢索通道的屬性(步驟306)。在此例子中,(從通道ID確定的)通道類型確定分組中屬性的位置和數(shù)據(jù)類型。通道的屬性可以本地存儲(chǔ)或者諸如經(jīng)由通道管理器遠(yuǎn)程檢索。智能路由器92檢索過濾,其對(duì)應(yīng)于預(yù)訂(步驟308)。所述過濾包括一個(gè)或多個(gè)屬性測試,通常是一組對(duì)預(yù)訂的屬性測試。智能路由器92將分組中的屬性應(yīng)用于過濾描述中的相應(yīng)的屬性測試(步驟310)。
如果過濾描述中的所有屬性測試產(chǎn)生正結(jié)果(步驟312),意思是說所述屬性滿足所有屬性測試,那么智能路由器執(zhí)行由與所述過濾相關(guān)聯(lián)的規(guī)則規(guī)定的一組功能(步驟314)。這些功能例如可以包括路由所述分組到下一鏈路,和/或按照規(guī)則規(guī)定的那樣,利用本地路由器的分組內(nèi)容來執(zhí)行一些動(dòng)作或者計(jì)算。所述動(dòng)作或者下一鏈路例如可以在規(guī)定相應(yīng)預(yù)訂的數(shù)據(jù)結(jié)構(gòu)中被標(biāo)識(shí)。當(dāng)所述規(guī)則是鏈路時(shí),它通常標(biāo)識(shí)下一網(wǎng)絡(luò)節(jié)點(diǎn)以便接收所述分組,所述下一個(gè)節(jié)點(diǎn)可以包括智能路由器、骨干路由器、網(wǎng)絡(luò)連接的裝置或者其他實(shí)體。作為選擇,下一鏈路可以采用其他方式來規(guī)定或者與所述預(yù)訂相關(guān)聯(lián)。
如果過濾描述中的所有屬性測試都沒有產(chǎn)生正結(jié)果(步驟312),意思是說所述屬性沒有滿足所有屬性測試,那么聲明所述過濾失配(步驟315)。所述智能路由器遞歸地遵循上述過程,直到過濾描述中的所有屬性測試取盡或者遇到第一負(fù)結(jié)果為止,而不管哪一個(gè)先出現(xiàn)。
一旦已經(jīng)為此過濾處理了所有屬性測試,智能路由器就確定是否存在更多過濾(步驟316),倘若如此,它返回到步驟308以便為下一過濾檢索屬性測試以處理它的屬性。繼續(xù)匹配過程(步驟308,310,312,314,315和316),直到取盡整個(gè)過濾組、或者可以確定所有動(dòng)作或者路由規(guī)則的結(jié)果為止,而不管哪一個(gè)先出現(xiàn)。如果所述分組不滿足任何過濾,那么將它略去(丟棄)而不轉(zhuǎn)發(fā)。
智能路由器92可以采用任何特定順序通過過濾來定序。例如,如表15中所示,智能路由器可以將預(yù)訂的過濾存儲(chǔ)在文件或者路由表中,并且通過它們線性地定序以便將屬性應(yīng)用于過濾(屬性測試)。作為選擇,所述路由表可以包括到過濾的鏈路或者指針。
根據(jù)應(yīng)用和性能增強(qiáng)的啟發(fā)、諸如基于通信量條件之類的算法的切換,基于內(nèi)容的路由可以選擇性地同時(shí)使用一個(gè)以上的方法。用于處理的過濾可以選擇性地在網(wǎng)絡(luò)的路由器處被編碼、解碼、變換以及合并,供執(zhí)行檢查基于內(nèi)容的路由的有效負(fù)載部分之用。例如,諸如價(jià)格>$3.54122的預(yù)訂可能被截?cái)酁閮r(jià)格>$3.54,因?yàn)閼?yīng)用中的發(fā)行不包含超出第二小數(shù)點(diǎn)的貨幣屬性是已知的。此外,當(dāng)從海外發(fā)送的發(fā)行內(nèi)容到達(dá)例如位于美國的第一路由器時(shí),可以將外幣轉(zhuǎn)換為美國貨幣。
作為線性方法的替代,智能路由器9 2可以選擇過濾以便采用其他順序或者依照各種算法處理,所述算法可能增強(qiáng)處理的速度以及效率。表16提供了預(yù)訂以及它們相應(yīng)鏈路的例子;在這些例子中,涉及特定通道的主題以及主題的預(yù)訂可以通過過濾的路由規(guī)則表示。所述主題例如可以包括網(wǎng)絡(luò)地址,諸如用于標(biāo)識(shí)內(nèi)容源的統(tǒng)一資源定位器(URL)。

10Cac

hingatNetworkNodes
圖14是高速緩存方法320的流程圖。方法320例如可以采用軟件模塊實(shí)現(xiàn),所述軟件模塊由智能路由器92中的處理器93執(zhí)行,如由高速緩存管理器218表示的。作為選擇,它可以采用ASIC或者硬件和軟件的組合來實(shí)現(xiàn),采用與相應(yīng)智能路由器相同或者不同的物理設(shè)備實(shí)現(xiàn)。在方法320中,智能路由器92接收具有數(shù)據(jù)或者內(nèi)容、通道ID以及主題的消息(步驟322)。智能路由器92給所述數(shù)據(jù)加時(shí)間標(biāo)記(步驟324),并且將其本地高速緩存于存儲(chǔ)器94或者次級(jí)存儲(chǔ)器97中(步驟326)。它例如按照通道ID、主題和時(shí)間戳來索引高速緩存的數(shù)據(jù)(步驟328)。
如果智能路由器92接收數(shù)據(jù)請(qǐng)求(步驟330),那么它依照所述請(qǐng)求使用索引檢索高速緩存的數(shù)據(jù)(步驟332)。智能路由器92將高速緩存的數(shù)據(jù)轉(zhuǎn)送到骨干路由器95,或者其他路由實(shí)體,以便最終發(fā)送到請(qǐng)求者或者其他人。方法320可以重復(fù)地執(zhí)行,以便響應(yīng)請(qǐng)求不斷地高速緩存數(shù)據(jù)并且檢索高速緩存數(shù)據(jù)。
圖15是舉例說明了供方法使用的高速緩存索引(336)的圖。高速緩存索引(336)接收數(shù)據(jù)(338)并且將其與時(shí)間戳存儲(chǔ)在一起(340)。當(dāng)收集數(shù)據(jù)時(shí),在每個(gè)Δt的時(shí)間時(shí),就給數(shù)據(jù)加標(biāo)記,其中Δt表示標(biāo)記之間的時(shí)間,例如t2-t1。作為選擇,可以使用依照任何方式的時(shí)間標(biāo)記的其他類型索引。
表17概念上舉例說明了高速緩存的數(shù)據(jù)索引。表18概念上舉例說明了用于存儲(chǔ)連接歷史以便高速緩存的數(shù)據(jù)結(jié)構(gòu)。表19提供了用于本地高速緩存具有智能路由器的網(wǎng)絡(luò)節(jié)點(diǎn)中的數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)的例子。
加時(shí)間標(biāo)記可以按照任何固定或者可變得間隔發(fā)生。例如,可以每五分鐘高速緩存并且索引數(shù)據(jù)。當(dāng)接收命令以檢索高速緩存的數(shù)據(jù)(諸如#_.getCache)時(shí),其中所述數(shù)據(jù)用于規(guī)定時(shí)間和主題,那么通道管理器218使用高速緩存索引來確定它是否可以檢索對(duì)應(yīng)于步驟332請(qǐng)求的高速緩存數(shù)據(jù)。
每個(gè)主題或者通道例如可以包括其在多播樹中的自身IP地址以及一組智能路由器。因此,表18表示這種可以被本地存儲(chǔ)在用戶機(jī)器的路由器之間的連接歷史;如果邊緣路由器故障,那么所述機(jī)器可以訪問連接歷史來確定在邊緣路由器恢復(fù)在線時(shí)、如何為所述通道重新連接上游路由器。例如它還可以執(zhí)行獲取斷開它的持續(xù)時(shí)間的高速緩存命令,以便獲得預(yù)訂的所有未決內(nèi)容。




這些示例性數(shù)據(jù)結(jié)構(gòu)包括以下信息。主題節(jié)點(diǎn)包含主題標(biāo)識(shí)符、主題級(jí)別、指向親代通道或者主題節(jié)點(diǎn)的指針、其自身目錄的文件描述符、指向包含其下一級(jí)別主題節(jié)點(diǎn)的散列表的指針以及指向數(shù)據(jù)節(jié)點(diǎn)的指針。數(shù)據(jù)節(jié)點(diǎn)包含指向其主題親代節(jié)點(diǎn)的指針,數(shù)據(jù)目錄的文件描述符、包含存儲(chǔ)在每個(gè)存儲(chǔ)裝置上的數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)的環(huán)形緩沖器、緩沖器的首部和尾部、用于在檢索和存儲(chǔ)期間鎖定數(shù)據(jù)節(jié)點(diǎn)的鎖。存儲(chǔ)的時(shí)間粒度節(jié)點(diǎn)是表示實(shí)際數(shù)據(jù)文件的節(jié)點(diǎn),并且最后的時(shí)間粒度節(jié)點(diǎn)表示還沒有存儲(chǔ)到存儲(chǔ)裝置但是卻被維護(hù)在存儲(chǔ)器中的最后的緩沖器。在此例子中的高速緩存和數(shù)據(jù)存儲(chǔ)線程使用最后的事件粒度節(jié)點(diǎn)的互斥信號(hào)來防止對(duì)最后時(shí)間粒度節(jié)點(diǎn)的并發(fā)訪問。
代理處理圖16是用于出去的預(yù)訂消息的代理方法350的流程圖。方法350例如可以采用如由代理128表示的軟件模塊加以實(shí)現(xiàn),所述軟件模塊由用戶(預(yù)訂者)機(jī)器122中的處理器134加以執(zhí)行。在方法350中,代理128諸如通過如圖11和12中所述方法來接收預(yù)訂(步驟352)。代理128創(chuàng)建規(guī)定所述預(yù)訂的布爾表達(dá)式的字符串(步驟354),并且分析所述字符串以便檢測所述預(yù)訂中的任何錯(cuò)誤(步驟356)。如果存在錯(cuò)誤,那么代理128可以向用戶展示錯(cuò)誤消息(步驟360),以便用戶可以糾正錯(cuò)誤并且再輸入所述預(yù)訂。如果所述預(yù)訂不包含錯(cuò)誤(步驟358),那么代理128在數(shù)據(jù)結(jié)構(gòu)中存儲(chǔ)所述表達(dá)式,下面提供了它的例子(步驟362)。代理128將數(shù)據(jù)結(jié)構(gòu)中作為組成部分的不等表達(dá)式轉(zhuǎn)換為正則形式(form)(步驟364),并且將所述數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換為相應(yīng)的析取范式(DNF)結(jié)構(gòu)(步驟366)。代理128還簡化DNF結(jié)構(gòu)的AND表達(dá)式,以便只包含范圍過濾以及成員資格測試(步驟368)。
所述DNF是眾所周知的正則形式,其中將布爾表達(dá)式表示為稱為析取項(xiàng)的一個(gè)或多個(gè)子表達(dá)式的OR,每個(gè)子表達(dá)式是一個(gè)或多個(gè)屬性測試的AND。例如,所述布爾表達(dá)式(price>=10AND(Symbol==“LU”O(jiān)R Symbol==“T”))具有等效DNF表示((price>=10AND Symbol==“LU”)OR(price>=10AND Symbol==“T”))。
在步驟364的變換涉及將具有“不等”運(yùn)算符(依照示例性語法表示為?。?的表達(dá)式變換為等效“正則”形式,其用于規(guī)定所有容許值而不是一個(gè)不容許值。此變換在創(chuàng)建DNF之前執(zhí)行,并且因?yàn)樵诖死又械穆酚善餍枰齽t形式的公式,所以需要它。例如,表達(dá)式(price?。?0)可以轉(zhuǎn)換為等效正則表達(dá)式(price<=79 OR price>==81)。
在步驟368的變換在創(chuàng)建DNF之后執(zhí)行,并且包含額外簡化作為結(jié)果的AND表達(dá)式,并且還執(zhí)行它以便簡化在此例子中路由器的工作。具體來講,可以將對(duì)相同屬性的多個(gè)屬性測試的AND簡化為正則“范圍過濾”,其具有一個(gè)下界、一個(gè)上界、具有下界和上界兩者,或者在等效測試情況下是單個(gè)值。然后依照表22編碼特定類別的范圍過濾。
例如,表達(dá)式(price>=10AND price<=80 AND price>=20AND price<=100)可以簡化為表達(dá)式(price>=20AND price<=80),這是具有下界和上界兩者的范圍過濾的例子。以下是簡單化之后的其他類別的例子(price>=20)(只有下界);(price<=80)(只有上界);以及(price==50)(單值)。在創(chuàng)建這些范圍過濾中,一些子表達(dá)式可能會(huì)簡化成真的或者假的,在這樣的情況下,可以依照布爾代數(shù)的法則刪去某個(gè)子表達(dá)式,由此進(jìn)一步地最佳化消息中的表達(dá)式的編碼。例如,表達(dá)式(price>=50AND price<=20)簡化為假的,因?yàn)闆]有對(duì)應(yīng)于“price”的價(jià)格可以滿足所述表達(dá)式。在整個(gè)過濾表達(dá)式簡化為假的特殊情況下,所述代理根本無須創(chuàng)建消息,由此減輕了路由器不必要的工作。
如果主題過濾包含通配符,那么代理128可以選擇性地轉(zhuǎn)換它們,如下面將解釋的(步驟370)。否則,可以在網(wǎng)絡(luò)中轉(zhuǎn)換任何通配符,而不是在用戶機(jī)器或者其他裝置上。在此示例性實(shí)施例中,主題過濾對(duì)語法是只使用通配符的語法,而屬性過濾的語法是只使用布爾表達(dá)式的語法。作為選擇,對(duì)于主題過濾以及屬性過濾,實(shí)現(xiàn)方式可以將不同的或者變化類型的語法。
代理128將作為結(jié)果的DNF表達(dá)式編碼為消息(步驟372),并且將所述消息轉(zhuǎn)送到智能路由器(步驟374)。所述編碼可以涉及將所述預(yù)訂轉(zhuǎn)換為扁平(flat)消息格式,意思是說它構(gòu)成數(shù)據(jù)字符串。此轉(zhuǎn)送可以包含將根據(jù)所述預(yù)訂的主題過濾以及屬性過濾生成的路由規(guī)則傳播到一個(gè)或多個(gè)智能路由器或者網(wǎng)絡(luò)中其他路由實(shí)體。對(duì)于所述傳播來說,例如可以將預(yù)訂表達(dá)式映射到常規(guī)的分組結(jié)構(gòu)。
步驟372的編碼包含將通道的預(yù)訂編排(marshall)為消息傳送AP I的消息傳送格式,以便遍及通道傳播。將預(yù)訂進(jìn)行內(nèi)部消息傳送,例如作為具有主題#.SUBSCRIPTION的通知傳播。因?yàn)榇嬖跀?shù)量可變的主題過濾字段和屬性測試,所以在此例子中,使用一對(duì)字節(jié)存儲(chǔ)主題過濾字段的數(shù)目,并且使用另一對(duì)字節(jié)存儲(chǔ)屬性測試的數(shù)目。將主題過濾的個(gè)別字段順序地編排,例如依照它們在原始預(yù)訂中規(guī)定的順序,并且均被編排到消息的兩個(gè)字節(jié)的部分中。通配符字段可以如下所述的進(jìn)行編排。
在編排所述屬性測試的過程中,在消息結(jié)尾以類似于編排通知的屬性值的方式來編排測試的操作數(shù)。在編排所述屬性測試和操作數(shù)之前,將它們按照DNF的每個(gè)析取項(xiàng)內(nèi)的屬性次序進(jìn)行排序,并且依照位置次序?qū)︻A(yù)訂屬性進(jìn)行測試,隨后按照名稱次序?qū)θ我獾膶傩赃M(jìn)行測試。此外,將每個(gè)析取項(xiàng)內(nèi)對(duì)標(biāo)量值屬性的關(guān)系測試集簡化為正則形式,諸如具有一個(gè)界限(對(duì)于左或右開范圍或者等效測試而言)或者兩個(gè)界限(對(duì)于截然不同的界限之間的閉合范圍而言)的范圍過濾。關(guān)于測試的剩余信息例如按與操作數(shù)相同的次序被編碼為兩字節(jié)對(duì);將兩個(gè)字節(jié)對(duì)的此序列緊跟主題過濾字段的兩字節(jié)編碼的序列之后地置于消息中。所述兩字節(jié)對(duì)可以構(gòu)成屬性測試的位串編碼的一個(gè)序列形式,其還可以用于表示除了兩字節(jié)對(duì)以外的其他類型編碼。下文中提供了屬性測試的例子。
在表20中描述了屬性測試的編碼方案。表21舉例說明了兩字節(jié)對(duì)的編碼,并且表22舉例說明了依照兩字節(jié)對(duì)的運(yùn)算符ID的編碼。



因?yàn)橛糜跍y試的兩字節(jié)對(duì)早已表明測試的操作數(shù)的類型以及測試是否適用于預(yù)訂義或者任意的屬性,所以不必獨(dú)立地編排對(duì)任意屬性或者它們的類型執(zhí)行測試的數(shù)目。此方案假定在通知中只有127個(gè)預(yù)先定義的屬性。作為選擇,此設(shè)計(jì)可以使用更多位來編碼屬性測試。
雖然此編排慣例依照屬性過濾的DNF對(duì)屬性測試排定了次序并且分了組,但是可以選擇基礎(chǔ)結(jié)構(gòu)元件(諸如路由器)來依照其它次序評(píng)估測試(也許依照動(dòng)態(tài)推導(dǎo)的關(guān)于不同測試的成功或者失敗的概率的本地?cái)?shù)據(jù)),以便使屬性過濾的總體評(píng)估更加有效。消息的所述預(yù)訂ID字段是由代理生成的值,用于唯一地在隨后請(qǐng)求中向代理的邊緣路由器標(biāo)識(shí)預(yù)訂,以便修改或者取消對(duì)所述預(yù)訂的預(yù)定。具體來講,使用圖18的例子中所示的消息格式來傳播對(duì)預(yù)訂的屬性過濾的動(dòng)態(tài)修改,除了主題是#_.RESUBSCRIPTION,并且預(yù)訂ID是被修改的先前注冊的預(yù)訂的ID。并且例如使用圖18的消息格式通過預(yù)訂ID字段向上游傳播取消預(yù)訂,同時(shí)主題是#_.UNSUBSCRIPTION并且預(yù)訂ID是被取消預(yù)訂的先前注冊的預(yù)訂的ID。
以下提供了舉例說明通過如上所述的代理轉(zhuǎn)換并且編碼的例子??紤]以下屬性過濾表達(dá)式的例子price>=10and(symbol==“LU”或者(volume>=1000 and volume<=10000))。圖19展示了統(tǒng)一建模語言(UML)圖390,用于描述代理在步驟362使用的對(duì)象,用于存儲(chǔ)表達(dá)式。此圖舉例說明了用于規(guī)定所述預(yù)訂的層次關(guān)系,其可以包括變量、恒定值或者它們兩者。圖中的對(duì)象根據(jù)特定的實(shí)現(xiàn)方式可以是過濾類的實(shí)例。每個(gè)SimpleFilter(簡單過濾)對(duì)象描述了用于存儲(chǔ)與相應(yīng)過濾表達(dá)式的屬性測試有關(guān)的信息的屬性值。在圖19的表達(dá)式中,OR過濾396連接兩個(gè)AND過濾392和400。AND過濾392包含具有預(yù)訂屬性的簡單過濾394。同樣,OR過濾396包含簡單過濾398,并且AND過濾400包含簡單過濾402和404。
對(duì)于此例子來說,將屬性價(jià)格、符號(hào)和數(shù)量假定為相關(guān)聯(lián)通道的預(yù)先定義的屬性,并且假定為分別定義在位置0,1和2。此外,將屬性類型分別假定為無符號(hào)整數(shù)(typecode 6)、字符數(shù)組(typecode 12)和無符號(hào)整數(shù)(typecode 6)。
接下來,將包含上述示例性屬性過濾表達(dá)式的預(yù)訂視為其屬性過濾。圖18展示將所述預(yù)訂編排為消息。圖18左側(cè)的簡圖386示出了實(shí)際消息內(nèi)容,而右側(cè)的簡圖388提供了消息的不同部分的圖例。在此例子中,每個(gè)簡圖的寬度是四個(gè)字節(jié)。在編排之前,已經(jīng)將所述過濾轉(zhuǎn)換為它的等效DNF(price>=10 and symbol==“LU”)or(price>=10 and volume>=1000 and volume<=10000)。
將十六位屬性測試編碼顯示為位序列,其中間隙示出了不同部分的間隔。注意,在此例子中,對(duì)價(jià)格的兩個(gè)測試無法組合,因?yàn)樗鼈儾捎锚?dú)立的析取項(xiàng),并且由此獨(dú)立地將它們編排為沒有右邊界的范圍(“右開范圍”)。另一方面,對(duì)數(shù)量的兩個(gè)測試可以組合,因?yàn)樗鼈兲幱谙嗤奈鋈№?xiàng),并且由此將它們編排到一起作為單個(gè)“閉合范圍”測試。
最后,還需注意的是,將確定的字段作為“假定”的特征來描述;這意味著對(duì)于此例子來說,可以任意地選擇這些字段的值,并且通常獨(dú)立于被編排的預(yù)訂。此外,任意地選擇用于所述預(yù)訂的主題過濾以作為“>,”其與由關(guān)聯(lián)的通道定義的任何主題匹配。如上所述并且圖18和19中所示的例子只是為了舉例說明而提供,所述編排可以用于任何其他類型的預(yù)訂。此外,方法350只提供了編排預(yù)訂的一個(gè)例子,而可以依照任何其他方式來編排它們。
圖17是用于進(jìn)來的消息的代理方法376的流程圖。方法376例如可以通過用戶機(jī)器122中的代理128和應(yīng)用126來實(shí)現(xiàn)。在方法376中,代理128接收來自于智能路由器對(duì)應(yīng)于預(yù)訂的消息(步驟378)。代理128例如通過消息中的通道ID確定對(duì)應(yīng)于所述預(yù)訂的通道(步驟380),并且為所述通道調(diào)用API(步驟382)。所述API在用戶機(jī)器上依照GUI或者其他格式展示預(yù)訂數(shù)據(jù)(步驟384)。進(jìn)來的消息的處理可以使用與如上所述的編碼過程相反的解碼數(shù)據(jù)的過程,并且此解碼過程(反向編碼)可以在路由器中或者在其他網(wǎng)絡(luò)實(shí)體中執(zhí)行。
通配符處理圖20是通配符方法410的流程圖。此方法舉例說明了使用用于過濾的一組路由規(guī)則來轉(zhuǎn)換用于預(yù)訂的表達(dá)式中的通配符的例子。方法410例如可以采用如代理128所代表的軟件模塊加以實(shí)現(xiàn),所述軟件模塊由用戶機(jī)器122中的處理器134加以執(zhí)行。作為選擇,通配符可以在智能路由器92中或者ASIC 91中包含的相應(yīng)功能的軟件控制下由處理器93在網(wǎng)絡(luò)中加以處理。通配符包括開放字段或者可變長字段,在表21中提供了其例子。
在方法410中,代理128或者其他實(shí)體接收具有通配符的預(yù)訂(步驟412)。用于預(yù)訂的主題長度可以在發(fā)行內(nèi)容時(shí)由發(fā)行者規(guī)定,并且主題可以在發(fā)行者機(jī)器上預(yù)先處理,例如對(duì)主題的字段計(jì)數(shù)并且由此獲得它的字段計(jì)數(shù)(長度)。代理128計(jì)數(shù)過濾操作數(shù)中的字段數(shù)目(步驟414),并且初始化字段長度=N的新規(guī)則(過濾)(步驟416)。代理128檢索預(yù)訂的子字段(步驟418),并且確定過濾操作數(shù)子字段0[i]是否是通配符(步驟420)。如果所述過濾操作數(shù)子字段不是通配符,那么代理128將合取子句添加到規(guī)則,字段[i]=0[i](步驟422)。如果所述過濾操作數(shù)具有更多子字段(步驟424),那么代理128返回到步驟418,以便處理附加的子字段。參數(shù)“i”表示這種字段,其中i是表示此例中字段數(shù)目的整數(shù)。
處理所述子字段之后,代理128確定最后的過濾操作數(shù)子字段是否是“>”(步驟426),并且倘若如此,它將長度約束改變?yōu)樽侄伍L度>N-1(步驟428)。通配符處理可以使用任何類型的符號(hào),而“>”只是這種例子之一。在此例子中,“a.>”可以指的是a.b、a.c、a.d等,以及它們各級(jí)的所有子主題(例如,a.b.x,a.c.x,a.b.x.y等)。其他符號(hào)也可以用于通配符的其他實(shí)現(xiàn)方式。
必要時(shí),代理128向智能路由器或者網(wǎng)絡(luò)中的其他實(shí)體傳播變換的規(guī)則(步驟430)。據(jù)此,通過所述子字段迭代所述方法,以便處理它們來將通配符轉(zhuǎn)換為非通配符規(guī)則,意味著不包含通配符的規(guī)則。通配符的轉(zhuǎn)換可以發(fā)生在網(wǎng)絡(luò)的任何地方,例如發(fā)生在預(yù)訂者機(jī)器或者智能路由器中。由此可以在具有傳播到其他實(shí)體的變換的規(guī)則的一個(gè)實(shí)體中發(fā)生轉(zhuǎn)換,或者該轉(zhuǎn)換可以動(dòng)態(tài)地發(fā)生。
表23提供了用于處理通配符的這些示例性路由規(guī)則的概要以及例子。這些路由規(guī)則例如可以在智能路由器中生成,或者在其他網(wǎng)絡(luò)實(shí)體中生成,并且傳播到所述智能路由器。此外,表23中的路由規(guī)則只為舉例說明而提供,而其他路由規(guī)則也能用于轉(zhuǎn)換通配符。

不可靠網(wǎng)絡(luò)中的可靠發(fā)行-預(yù)訂系統(tǒng)發(fā)行-預(yù)訂網(wǎng)絡(luò)-諸如此處所述的發(fā)行-預(yù)訂網(wǎng)絡(luò)(例如參見圖1-3)的主要功能在于將依照有效并且及時(shí)的方式向預(yù)訂者遞送匹配的通知。發(fā)行-預(yù)訂網(wǎng)絡(luò)的實(shí)現(xiàn)方式需要以網(wǎng)絡(luò)分組的形式將通知從發(fā)行者發(fā)送到預(yù)訂者。不可靠網(wǎng)絡(luò)暗指一些網(wǎng)絡(luò)分組在運(yùn)送過程中可能會(huì)被丟掉。由本實(shí)施例克服的主要技術(shù)困難是確定所述通知(即,網(wǎng)絡(luò)分組)是否因?yàn)閭鬏斿e(cuò)誤或者因?yàn)樯嫌温酚善鲀?nèi)部的過濾機(jī)制被丟掉。
圖21舉例說明了用于提供發(fā)行-預(yù)訂網(wǎng)絡(luò)中的可靠性的方法520。在此方法520中,使用了可靠的傳輸協(xié)議。具體來講,所述可靠性通過實(shí)現(xiàn)相鄰路由器對(duì)之間(或者路由器-用戶機(jī)器對(duì)之間)可靠的傳輸機(jī)制(可靠的隧道)來實(shí)現(xiàn)。如果路由器確定進(jìn)來的通知需要發(fā)送到鄰近路由器,那么它使用可靠的傳輸協(xié)議-優(yōu)選的是TCP來轉(zhuǎn)發(fā)所述消息.每個(gè)路由器只負(fù)責(zé)將通知遞送到其下游鄰近(跳數(shù)=1)路由器。因此,依照逐跳方式實(shí)現(xiàn)從發(fā)行者到預(yù)訂者的可靠的通知遞送。方法520可以在智能路由器92中或者ASIC 91中包含的相應(yīng)功能的軟件控制下由處理器93執(zhí)行。方法520例如還可以采用例如由代理105表示的軟件模塊加以實(shí)現(xiàn),所述軟件模塊由用戶機(jī)器100中的處理器114加以執(zhí)行。
已經(jīng)發(fā)現(xiàn)使用TCP克服與將可靠傳輸協(xié)議與在此描述的發(fā)行-預(yù)訂系統(tǒng)的基于內(nèi)容的路由相關(guān)聯(lián)的問題,并且此方法是優(yōu)選的。可能用于發(fā)行-預(yù)訂系統(tǒng)的另一技術(shù)是前向糾錯(cuò)。前向糾錯(cuò)向接收者發(fā)送多個(gè)通知分組,以期待他們中之一將通過。這樣做增加了接收分組的概率,其以增加帶寬使用為代價(jià),但是不保證遞送??煽慷嗖ナ堑谌N技術(shù),它確保一組多播接收者接收來自于多播發(fā)送者的“相同”分組集。因?yàn)椴煌慕邮照吒鶕?jù)不同的預(yù)訂必然接收不同的通知集,所以采用CBR發(fā)行-預(yù)訂系統(tǒng)必然無法很好的工作。
發(fā)行-預(yù)訂網(wǎng)絡(luò)中的節(jié)點(diǎn)經(jīng)由所述網(wǎng)絡(luò)接收對(duì)內(nèi)容的預(yù)訂(步驟522)。從發(fā)行者接收的內(nèi)容根據(jù)預(yù)訂使用CBR經(jīng)由網(wǎng)絡(luò)并通過以下步驟來發(fā)行,所述步驟為接收涉及網(wǎng)絡(luò)中節(jié)點(diǎn)的內(nèi)容的通知(步驟524),確定是否將所述通知轉(zhuǎn)發(fā)到鄰近節(jié)點(diǎn)(步驟526),并且基于所述確定、使用可靠的傳輸協(xié)議有選擇地將所述通知轉(zhuǎn)發(fā)到鄰近節(jié)點(diǎn)(步驟528)。優(yōu)選的是,依照如上所述的任一種CBR方法來執(zhí)行這些步驟。
用于步驟528的可靠傳輸協(xié)議優(yōu)選的是TCP。TCP是在OSI模型的傳輸層上的通信協(xié)議。TCP提供了傳輸功能,其確保發(fā)送的字節(jié)總數(shù)在另一端正確地被接收。據(jù)此,以單個(gè)節(jié)點(diǎn)到單個(gè)節(jié)點(diǎn)為基礎(chǔ)來執(zhí)行轉(zhuǎn)發(fā)步驟528,并且如果存在傳輸故障,那么轉(zhuǎn)發(fā)步驟528包括接收在通知傳輸中的故障指示(步驟5281),并且響應(yīng)所述指示傳輸所述通知(步驟5282)。優(yōu)選的是,將對(duì)這種故障指示的請(qǐng)求封裝在通知分組中。
優(yōu)選的是,如果需要重新傳輸通知分組的話,就將通知分組保存在緩沖器中。如果用于特定鄰近節(jié)點(diǎn)的緩沖器已滿,那么可以停止對(duì)該節(jié)點(diǎn)進(jìn)行的遞送,所述分組可以基于先進(jìn)先出來被丟棄,或者所述分組可以存儲(chǔ)在次級(jí)存儲(chǔ)器中。作為選擇,如果已經(jīng)向一定的發(fā)行者或者預(yù)訂者擔(dān)保一定的服務(wù)質(zhì)量(QoS),那么可以基于QoS從緩沖器中有選擇地丟棄所述分組(例如,QoS不管理的那些分組將首先被丟棄)。
如圖21所示,如果在鄰近節(jié)點(diǎn)需要進(jìn)一步的路由,那么為下一鄰近節(jié)點(diǎn)重復(fù)所述方法(步驟530)。此舉例說明了方法520依照逐級(jí)跳過方式實(shí)現(xiàn)從發(fā)行者到預(yù)訂者的可靠通知遞送。
過濾傳播基于內(nèi)容的路由(CBR)是一種形式的約束-驅(qū)動(dòng)的路由。在具有CBR功能的增強(qiáng)的發(fā)行-預(yù)訂網(wǎng)絡(luò)中,諸如如上所述的發(fā)行-預(yù)訂網(wǎng)絡(luò)(例如參見圖1-3),優(yōu)選的是,將預(yù)訂者對(duì)發(fā)行的特殊內(nèi)容的興趣(即預(yù)訂)封裝在稱為過濾的實(shí)體中。優(yōu)選的是,由網(wǎng)絡(luò)中的路由器使用所述過濾來做出路由決定。不同于在前的只得在邊緣或者用戶端執(zhí)行的過濾方案,能夠在網(wǎng)絡(luò)核心中操作的當(dāng)前CBR方案涉及這些過濾的傳播。如果賦予預(yù)訂者對(duì)它們接收的分組內(nèi)容設(shè)置約束的能力,并且如果這些內(nèi)容約束用于網(wǎng)絡(luò)核心以便路由分組,那么網(wǎng)絡(luò)的效率和功能將極大地受益于CBR。
此處所述的實(shí)施例提供了一系列高度可擴(kuò)縮的過濾傳播方法,以致(i)所述過濾可以沿發(fā)行者和預(yù)訂者之間的數(shù)據(jù)通路傳播到核心路由器中、或者從中輸出、和/或遍及所述核心路由器,并且(ii)如果需要的話,在網(wǎng)絡(luò)核心內(nèi)而非僅僅在網(wǎng)絡(luò)邊緣向上游執(zhí)行CBR。通過進(jìn)行更向上游(例如,在網(wǎng)絡(luò)核心中,或者在遠(yuǎn)到發(fā)行者機(jī)器中)的CBR,需要向下路由的數(shù)據(jù)分組數(shù)目經(jīng)??梢约眲p少。因此,可以減少網(wǎng)絡(luò)上的通信量負(fù)載。
此處所述的過濾傳播方法涵蓋依照任何名稱以及任何形式將內(nèi)容過濾傳播到網(wǎng)絡(luò)核心中、或從中傳出以及遍及網(wǎng)絡(luò)核心傳播。所述過濾傳播具有許多方面并且包含許多問題。所描述的過濾傳播方法解決的重要問題之一是當(dāng)過濾將傳播流從大量過濾源(例如預(yù)訂者)移動(dòng)到“前往”幾個(gè)過濾目的地(例如核心路由器、邊緣路由器或者發(fā)行者)時(shí),能夠避免集結(jié)大量的過濾。此問題還稱為“累積”問題,并且它例如發(fā)生在樹形拓?fù)浣Y(jié)構(gòu)中由所連接的級(jí)聯(lián)節(jié)點(diǎn)組成的網(wǎng)絡(luò)中。
被設(shè)計(jì)以便解決這些以及其他問題的方案包括規(guī)則、過程、策略、進(jìn)程、機(jī)制、協(xié)議、消息格式、數(shù)據(jù)結(jié)構(gòu)和/或算法的一個(gè)或多個(gè)集合。通過這些解決方案,可以使得過濾傳播快速的(例如,通過簡化、合并、有效編排等);可擴(kuò)縮的(例如,通過合并、求近似等);動(dòng)態(tài)的(例如,新的預(yù)訂、取消預(yù)訂、修補(bǔ)等);安全的(例如,認(rèn)證);私人的(例如,加密);可靠的(例如,TCP連接、可靠隧道、編碼、恢復(fù)協(xié)議等);靈活的(例如,惰性傳播(見下文)、各種多播拓?fù)浣Y(jié)構(gòu)或者協(xié)議);并且適應(yīng)用戶需求(例如,出版者/訂閱者行為-編碼)。此處所述的所述過濾傳播方法使用這些解決方案來實(shí)現(xiàn)這些益處以及其他益處。
A.網(wǎng)絡(luò)拓?fù)洹^濾傳播策略發(fā)行-預(yù)訂系統(tǒng)可以依照多播、廣播或者移動(dòng)式發(fā)行-預(yù)訂策略來實(shí)現(xiàn)。可以將過濾傳播嵌入網(wǎng)絡(luò)拓?fù)?,或者在網(wǎng)絡(luò)拓?fù)洹吧厦妗被虺W(wǎng)絡(luò)拓?fù)湟酝鈦韴?zhí)行,其中所述網(wǎng)絡(luò)拓?fù)渫ㄟ^為鏈接發(fā)行者和預(yù)訂者而挑選的策略進(jìn)行強(qiáng)加。作為選擇,所述過濾傳播策略還可以是用于鏈接發(fā)行者和預(yù)訂者的策略,諸如依照涉及發(fā)行廣告的發(fā)行-預(yù)訂方案,其中可以將嵌入過濾的預(yù)訂直接朝向登廣告目的地遞送。
在多播種類中,過濾傳播可以使用與用于多播(例如,協(xié)議獨(dú)立的多播-分散模型(PIMSM)以及-密集模型(PIMDM)、基于核心的樹(CBT)、距離向量多播路由協(xié)議(DVMRP)、多播開放式最短路徑優(yōu)先(MOSPF)等)一致的協(xié)議。根據(jù)所使用的協(xié)議,過濾傳播可以是雙向的或者單向的,并且許多過濾傳播策略都是可能的。這些策略包括一個(gè)或多個(gè)以下例子1)當(dāng)接收到所有過濾時(shí),將它們傳播到所有可能的上游鏈路(積極的傳播方案);2)響應(yīng)輸入的發(fā)行者分組來啟動(dòng)過濾傳播(惰性傳播方案);3)響應(yīng)發(fā)行者的廣播廣告進(jìn)行傳播;4)在計(jì)算網(wǎng)絡(luò)拓?fù)?例如MOSPF)之后進(jìn)行傳播;5)周期性的過濾傳播(例如,為了滿足支持過濾超時(shí)的系統(tǒng)中的重新刷新需求);6)在修補(bǔ)網(wǎng)絡(luò)中的故障期間要求過濾重新傳播;7)在網(wǎng)絡(luò)重新配置期間要求過濾重新傳播;和/或上述例子的任何組合。優(yōu)選的是,將所述策略以此處所述的過濾傳播方法和規(guī)則為條件。
B.用于過濾傳播的鏈路級(jí)連接機(jī)制連接在過濾傳播過程中涉及的源和目的地的方式可以改變。例如,過濾傳播過程中涉及的源和目的地可以依照以下方式連接1)逐級(jí)跳過(例如路由器到路由器);2)端到端(例如,在離線數(shù)據(jù)檢索中從用戶機(jī)器到高速緩存);3)使用隧道;4)使用傳輸控制協(xié)議(TCP);5)使用用戶數(shù)據(jù)報(bào)協(xié)議(TCP)(例如,利用可靠的數(shù)據(jù)恢復(fù)機(jī)制代替);6)使用安全協(xié)議;7)使用其他協(xié)議;8)只在路由器和/或用戶機(jī)器的內(nèi)核中進(jìn)行;9)只涉及路由器和/或用戶機(jī)器處的用戶級(jí)處理;10)涉及所有可能組合的路由器和/或用戶機(jī)器處的內(nèi)核和用戶級(jí)進(jìn)程(例如,內(nèi)核到應(yīng)用、應(yīng)用到內(nèi)核到應(yīng)用等);和/或11)上述任何組合。
C.過濾傳播的目的地可以將過濾注入發(fā)行-預(yù)訂網(wǎng)絡(luò)中的任何地方,如以下所給出的例子1)形成發(fā)行者和預(yù)訂者之間的端到端連接的所有路由器以及用戶機(jī)器;2)包括邊緣路由器的網(wǎng)絡(luò)中的每個(gè)路由器;3)只有核心路由器;4)只有邊緣路由器;5)預(yù)訂者機(jī)器;6)發(fā)行者機(jī)器;7)管理員機(jī)器;8)高速緩存;9)備份路由器;10)其中可以轉(zhuǎn)移分組的任何路由器;11)涉及網(wǎng)絡(luò)修補(bǔ)或者故障恢復(fù)的新的路由器;和/或12)上述任何組合。優(yōu)選的是,所述過濾通過求近似、合并以及其他進(jìn)程來修改。對(duì)于上面每個(gè)目的地種類來說,被傳播的過濾形式可能不同。
D.過濾傳播的源過濾傳播源可以是發(fā)行-預(yù)訂網(wǎng)絡(luò)中的任何地方??梢栽谏衔牡腃部分中找到例子。同樣,優(yōu)選的是,在傳播期間、通過求近似、合并以及其他進(jìn)程來修改過濾,因此它們經(jīng)常對(duì)不同的源采取不同的形式。
E.潛在的過濾收件人行為規(guī)則過濾傳播還可能根據(jù)潛在收件人的行為和需求而有所不同。例如1)位于持久的或者半持久位置的發(fā)行者希望過濾朝向他們傳播;2)移動(dòng)式發(fā)行者未必希望過濾朝向他們的位置傳播,因?yàn)樗麄儾痪镁鸵x開;3)在注銷以前只發(fā)行少許發(fā)行物的少量發(fā)行者不需要過濾;4)大量的發(fā)行者可能希望在發(fā)送第一組發(fā)行物之前傳播過濾以便節(jié)省網(wǎng)絡(luò)帶寬;5)具有有限訪問權(quán)的發(fā)行者可能被拒絕過濾傳播,以保護(hù)預(yù)訂者在該應(yīng)用中的隱私和機(jī)密性;6)實(shí)現(xiàn)過濾超時(shí)策略的核心路由器需要從下游路由器周期更新;和/或7)沒有與預(yù)訂者機(jī)器固定連接的邊緣路由器可能請(qǐng)求周期更新預(yù)訂或者過濾興趣。所有這些行為屬性及其他例如可以通過使用發(fā)行者廣告、在其首次發(fā)行時(shí)編碼發(fā)行者行為、周期發(fā)送過濾更新以及其他技術(shù)來加以區(qū)分,以便傳達(dá)過濾收件人的需求。
F.過濾發(fā)件人行為規(guī)則同樣,過濾傳播還可能根據(jù)過濾發(fā)件人的行為和需求而有所不同。例如1)預(yù)訂者可能只希望提交具有(系統(tǒng)定義或者用戶定義的)超時(shí)的臨時(shí)過濾;例如,如果他/她對(duì)采樣發(fā)行物感興趣的話;2)預(yù)訂者是移動(dòng)的,并且過濾應(yīng)該在預(yù)訂者移動(dòng)之后期滿;3)在支持自動(dòng)過濾超時(shí)的CBR系統(tǒng)中,不與他們的邊緣路由器固定連接的預(yù)訂者可能被請(qǐng)求發(fā)送周期過濾更新;4)一些策略可能規(guī)定預(yù)訂者在傳播他們的過濾以前需要進(jìn)行身份驗(yàn)證;5)在支持自動(dòng)過濾超時(shí)的CBR系統(tǒng)中的路由器往往需要發(fā)送周期過濾更新;6)只對(duì)數(shù)據(jù)固定集的特定查詢可能涉及過濾或者可能由過濾實(shí)現(xiàn)(例如,響應(yīng)查詢或者預(yù)訂來自于高速緩存的數(shù)據(jù)、持久性備份數(shù)據(jù)、在故障恢復(fù)期間恢復(fù)的數(shù)據(jù)等);和/或7)為傳播修改了過濾的路由器可以向上游路由器表明怎樣根據(jù)發(fā)件人需求需要來修改所傳播的過濾。所有這些行為屬性及其他可以例如通過編碼過濾傳播消息中的行為或者通過使用特殊協(xié)議(例如用于身份驗(yàn)證的協(xié)議)來得以支持。
G.被傳播的過濾處理所述過濾處理可以涉及用于修改過濾的內(nèi)容或者表示的變換,和/或涉及僅用于組織所述過濾的管理功能。預(yù)訂中的原始過濾表達(dá)式可能在數(shù)據(jù)遞送通路的不同部分中經(jīng)歷不同的處理過程集,其包括以下通路部分1)從預(yù)訂者機(jī)器至邊緣路由器;2)從邊緣路由器至核心路由器;3)在兩個(gè)核心路由器之間;4)從核心路由器至發(fā)行者端上的邊緣路由器;和5)從邊緣路由器到發(fā)行者機(jī)器。這些變換過程的一些例子如上所述(例如,參見代理處理和通配符處理)。這些過程可以遍及發(fā)行-預(yù)訂網(wǎng)絡(luò)上-例如在預(yù)訂者機(jī)器上、發(fā)行者機(jī)器上、邊緣路由器或者核心路由器上執(zhí)行。諸如(預(yù)訂者和發(fā)行者機(jī)器上的)代理和(路由器上的)守護(hù)程序的組件可以執(zhí)行這些過程。
所述過程可以包括以下例子1)屬性內(nèi)容轉(zhuǎn)換(例如,從主題名稱到主題ID,從字符串到它們的字典式的值,從一種貨幣到另一種);2)表達(dá)式擴(kuò)展(例如,從通配符到它們的組成);3)表達(dá)式轉(zhuǎn)換(例如,>運(yùn)算符到>=運(yùn)算符,?。竭\(yùn)算符到>和<運(yùn)算符);4)表示變換(例如,從字符串表示到數(shù)字或者符號(hào)表示,諸如波蘭式表示法、涉及括號(hào)的表示法,或者到與用于存儲(chǔ)或者匹配過濾的具體數(shù)據(jù)結(jié)構(gòu)有關(guān)的表示,諸如樹、基數(shù)線索(Rdix trie)等);5)編碼/解碼(例如,校驗(yàn)和);6)加密/解密;7)機(jī)器級(jí)編排和取消編排;8)協(xié)議級(jí)編排為預(yù)訂過濾傳播消息格式,并且從預(yù)訂過濾傳播消息格式取消編排;9)分解(例如,分解為析取范式(DNF));10)簡化以便去除冗余謂詞表達(dá)式(例如,$1>5&&$2>3&&$1>3);11)兩個(gè)或多個(gè)過濾的歸類;12)在合并之前和/或之后對(duì)過濾求近似;13)合并兩個(gè)或多個(gè)不同過濾(例如,基于近似);14)對(duì)兩個(gè)或多個(gè)不同過濾進(jìn)行分組(例如,用于傳播至不同上行鏈路);15)取消預(yù)訂或者除去過濾;16)過濾期滿;17)過濾的Δ更新(例如,依照任何表示簿記舊的過濾集并且從其中減去新的過濾以便獲得過濾配置方面的改變,即Δ更新);和/或18)過濾模型的形成(例如,如果過濾1匹配,那么過濾2也就匹配)。涉及上面列出或未列出的過濾傳播的任何過程可以由此處所述的過濾傳播方法使用。
H.過濾傳播消息的內(nèi)容和格式消息可用來發(fā)送或者傳播過濾。包含被傳播的過濾消息的內(nèi)容和格式可能受到所述過濾經(jīng)歷的變換過程和在其傳播期間觸發(fā)過濾傳播的環(huán)境的影響。以下是示例性格式1)任何消息在機(jī)器或者用戶級(jí)的布置;2)過濾可能涉及固定或者隨機(jī)位置的屬性(例如,與發(fā)行物部分匹配的字符串);3)過濾可能涉及固定大小(例如,整數(shù)、布爾符號(hào)等)或者可變大小屬性(例如,數(shù)組、字符串、c結(jié)構(gòu)等);4)過濾可能包含簡單(例如,整數(shù)、布爾符號(hào)等)或者復(fù)雜的數(shù)據(jù)類型(例如,數(shù)組、字符串、范圍變量等);5)過濾可能包含簡單(例如,>,==,<=,等)或者復(fù)雜的測試或算符(例如,成員資格測試、正則表達(dá)式、字符串匹配、范圍運(yùn)算,諸如交集查詢、閉包查詢、包含查詢等);6)分解DNF格式;7)過濾的簡化的或者原始表示;8)緊湊的或者擴(kuò)展的格式(例如,一側(cè)過濾可以使用二界限表達(dá)式來表示,或者可以將兩側(cè)過濾重寫為兩個(gè)一側(cè)過濾);9)過濾的部分表示(例如,字符串謂詞的截?cái)?、?shù)據(jù)類型消解(resolution)的歸結(jié)(reduction)以及數(shù)目屬性的減少);10)過濾的轉(zhuǎn)換表示(例如,波蘭表示法、分類、樹、線索(trie)等);11)主題字段的包含/排除(例如,可以通過過濾傳播在其上發(fā)生的多播骨干來實(shí)現(xiàn)主題過濾);12)通配符主題或者屬性謂詞的擴(kuò)展;13)內(nèi)容或者表達(dá)式的轉(zhuǎn)換;14)編碼信息(例如,糾錯(cuò)校驗(yàn)和等);15)加密;16)過濾的全集(例如,在故障恢復(fù)期間,在具有過濾超時(shí)的系統(tǒng)中重新刷新更新);17)過濾的部分集(例如,對(duì)過濾進(jìn)行歸類、只有新的過濾將被插入或者舊的過濾將被去除);18)過濾的修改集(合并過濾、求近似的過濾);19)沒有相似于過濾的過濾表示方面的Δ改變(例如,在插入和去除過濾期間基數(shù)線索上的改變);20)標(biāo)識(shí)過濾標(biāo)簽而不是其坐標(biāo)(例如,在取消預(yù)訂期間);21)過濾的超時(shí)參數(shù);22)過濾模型信息;和/或23)編碼如部分F中所述的過濾發(fā)件人的行為和請(qǐng)求的信息。此列表只表示可以用于此處所述的方法的傳播的過濾的可能的內(nèi)容和格式的采樣。
I.過濾傳播的過程和策略在系統(tǒng)級(jí),可以制定策略和過程以便控制過濾傳播所有方面的一些。這些方面例如可以包括1)管理(例如,全局的關(guān)機(jī)和重新啟動(dòng));2)維護(hù)(例如,故障恢復(fù));3)過濾持久性(例如,期滿超時(shí)、高速緩存數(shù)據(jù)的以前的過濾);4)性能增強(qiáng)策略(例如,負(fù)載均衡、邊緣選擇、積極對(duì)惰性的傳播);5)監(jiān)控(例如,故障報(bào)告);6)計(jì)帳(例如,統(tǒng)計(jì)簿記);7)計(jì)費(fèi);8)調(diào)節(jié)(例如,授權(quán)傳播過濾、網(wǎng)絡(luò)中允許的過濾類型等);9)用戶身份驗(yàn)證;10)用戶幫助(例如,主題過濾的目錄服務(wù));10)預(yù)訂者隱私(例如,過濾應(yīng)該對(duì)他人隱瞞);11)同步(例如,當(dāng)邊緣路由器接收到過濾時(shí)向預(yù)訂者確認(rèn)、當(dāng)完成過濾傳播向預(yù)訂者確認(rèn)、在恢復(fù)期間確認(rèn)修補(bǔ)路由器等);12)優(yōu)先化,和/或13)確定和調(diào)節(jié)自動(dòng)過濾注入的任何策略(例如,基于他們已經(jīng)注入本身的過濾集中所示的興趣、自動(dòng)地注入對(duì)許可消費(fèi)者是感興趣的過濾的消費(fèi)者關(guān)系管理)。
在部分A到I中已經(jīng)徹底地討論了過濾傳播的許多方面和可能的特征。然而,過濾傳播的可行性依靠找到如上所述的“累積”問題的可擴(kuò)縮解決方案。以下提供了用于實(shí)現(xiàn)可擴(kuò)縮的過濾傳播的方法和設(shè)備。
如上所述,在過濾傳播中重要的問題是當(dāng)過濾將傳播流從大量過濾源(例如預(yù)訂者)移動(dòng)到“前往”幾個(gè)過濾目的地(例如核心路由器、邊緣路由器或者發(fā)行者)時(shí),避免集結(jié)大量的過濾。此問題還稱為“累積”問題,并且它例如發(fā)生在樹形拓?fù)浣Y(jié)構(gòu)中由所連接的級(jí)聯(lián)節(jié)點(diǎn)組成的網(wǎng)絡(luò)中。圖22A舉例說明了過濾傳播方法450,其致力于解決過濾累積問題。方法450舉例說明了使用上文在部分A-I描述的一組解決方案的例子,用于在發(fā)行-預(yù)訂網(wǎng)絡(luò)中傳播過濾。所述方法450例如還可以采用由代理128所表示的軟件模塊加以實(shí)現(xiàn),所述軟件模塊由預(yù)訂者機(jī)器122中的處理器134加以執(zhí)行。作為選擇,所述方法450可以在智能路由器92中或者在ASIC 91中包含的相應(yīng)功能的軟件控制下由處理器93執(zhí)行。此外,方法450可以通過這些模塊的組合來執(zhí)行。
如圖22A所示,接收多個(gè)過濾(步驟452)。如上所述,在部分C,可以將所述過濾注入發(fā)行-預(yù)訂網(wǎng)絡(luò)中的任何地方。處理所接收的過濾以便減少過濾數(shù)目(步驟454)。所述減少步驟減少了被傳播的過濾數(shù)目,以便避免或者減少過濾累積問題。如果在此發(fā)行-預(yù)訂網(wǎng)絡(luò)的一個(gè)節(jié)點(diǎn)處累積太多過濾,就像在存在至當(dāng)前節(jié)點(diǎn)的大量直接的下行鏈路節(jié)點(diǎn)時(shí),或者在前節(jié)點(diǎn)處于過濾傳播通路的很靠后的級(jí)的情況,那么發(fā)行者和路由器可能被傾覆,并且網(wǎng)絡(luò)效率將遭受因?yàn)樘幚砗推ヅ渌羞^濾所需的巨大計(jì)算負(fù)擔(dān)而帶來的困擾。
以下進(jìn)一步地舉例說明過濾減少步驟454的作用。在傳播路徑的每個(gè)級(jí)中存在許多下游節(jié)點(diǎn)并且只存在有一個(gè)或者幾個(gè)上游節(jié)點(diǎn)。如果處于特定級(jí)的每個(gè)下游節(jié)點(diǎn)減少過濾數(shù)目,那么按照接近于或者不是非常小于該級(jí)的下游節(jié)點(diǎn)的數(shù)目的因數(shù)將其傳播至上游節(jié)點(diǎn),在上游節(jié)點(diǎn)累積的過濾總數(shù)將具有與每個(gè)其下游節(jié)點(diǎn)的過濾數(shù)目相同的數(shù)量級(jí)。通過歸納,能夠看出,此減少因素確保在過濾傳播的每個(gè)目的地的過濾的數(shù)目決不會(huì)比傳播通路中的級(jí)的數(shù)增長速度快,由此有效地解決了累積問題。
圖22B舉例說明了優(yōu)選的減少步驟的子步驟。優(yōu)選的是,這些子步驟包括簡化過濾以便去除冗余謂詞表達(dá)式(步驟4542),對(duì)只來自于與主題有關(guān)的下行鏈路的過濾進(jìn)行分組(步驟4544),并且在這一過濾的組中,(在合并前或者后)對(duì)過濾求近似(步驟4546),依照它們的相對(duì)距離聚類過濾(步驟4548),對(duì)過濾進(jìn)行歸類(步驟4550),并且合并兩個(gè)或多個(gè)過濾(步驟4552)??梢砸勒詹煌谒境龅捻樞騺韴?zhí)行這些步驟,并且可以省略一些步驟。在代理處理中描述了簡化,參照?qǐng)D16。
過濾組合步驟4544對(duì)于向上游發(fā)送校正過濾信息是十分重要的。以下給出其重要性的一些例子。例如,路由器可以具有許多下行鏈路(例如,至下游路由器的鏈路)。不是所有下行鏈路都讓預(yù)訂者向它們發(fā)送預(yù)訂或者過濾。對(duì)于另一個(gè)例子,在雙向的多播方案中,至路由器的每個(gè)鏈路可以充當(dāng)上行鏈路和下行鏈路兩者,這是因?yàn)樵试S發(fā)行者和預(yù)訂者根據(jù)任意的方向連接所述網(wǎng)絡(luò)。當(dāng)從鏈路接收了過濾請(qǐng)求時(shí),此鏈路應(yīng)該被認(rèn)為是當(dāng)前上行鏈路,并且只有從屬于同一主題的那些下行鏈路注入的過濾和當(dāng)前上行鏈路之外的過濾被組合,以便隨后用于求近似、聚類、包含以及合并操作。
分組4544還因其它目的而需要,諸如記帳以及網(wǎng)絡(luò)通信量控制。在一些情況下,例如當(dāng)因?yàn)槿我庠蛐枰獜乃墟溌愤M(jìn)來的過濾的全局映射時(shí),甚至可以將其一起省略。
步驟4546,求近似修改過濾以便獲取更多、而不是少數(shù)發(fā)行物。例如,求近似可以減少被傳播的過濾的表示中的謂詞數(shù)目,減少過濾坐標(biāo)的分辯率,或者將長字符串截?cái)酁樽畛醯?2個(gè)字符。求近似具有對(duì)準(zhǔn)過濾格式的作用,以致它們可以成為歸類以及合并的最佳候選(步驟4550,4552)。所述求近似步驟還減少傳播所述過濾的消息的大小。
步驟4550,歸類刪去作為另一過濾的子集的過濾。例如,如果第一過濾用于具有面積大于或等于1000平方英尺并且小于或等于1300平方英尺以及價(jià)格幅度大于等于$200K并且小于或等于$300k的所有公寓,而第二過濾用于具有面積大于或等于1100平方英尺并且小于或等于1200平方英尺以及價(jià)格幅度大于等于$225k并且小于或等于$275k的所有公寓,那么第二過濾是第一過濾的子集,因此通過歸類將其刪去。
步驟4542,4544,4546,4548,4550和4552可以根據(jù)具體過濾減少方案和/或選擇的算法、采用任何次序執(zhí)行。例如,步驟4546和4550可以交換。求近似可以在歸類之后進(jìn)行。此外,步驟4550和4552可以被集成并且作為單步執(zhí)行。例如,合并可以包括歸類,如下面圖所示。
繼續(xù)參照?qǐng)D22B,步驟4552,因?yàn)楹喜⒂脕斫M合兩個(gè)或多個(gè)過濾過濾,因此與歸類相似。然而,合并可以使用求近似來組合部分或者完全不同的兩個(gè)或多個(gè)過濾。瀏覽各種過濾幾何地舉例說明此過程。例如,參見下面圖1-4 圖1幾何地舉例說明了兩個(gè)過濾s1和s2,如上所述,因?yàn)檫^濾s2是過濾s1的子集,所以其可以通過歸類而減少。然而,在圖2中,過濾s3或者過濾s4兩者都不是其他過濾的子集。但是過濾s3和s4部分重疊。合并步驟4552通過求近似一個(gè)包含s3和s4兩者的最小過濾sA來合并s3和s4。因?yàn)閟3和s4兩個(gè)都是sA的子集,所以s3和s4被歸類到sA中。圖3舉例說明了合并的另一個(gè)例子;在圖3中,過濾s5和s6完全不同。所述合并步驟4552求近似一個(gè)包括s5、s6和這些過濾之間的面積的過濾sA。過濾s5和s6然后被歸類到sA中。圖4舉例說明了合并的又一個(gè)例子,其中過濾s7和s8只因一個(gè)屬性而部分不同。因?yàn)閟7和s8重疊一個(gè)屬性,并且具有相同的其他屬性值,所以合并步驟4552將兩個(gè)過濾簡單地一起合并到sA,歸類了重疊部分。
正如可以看到的那樣,歸類(步驟4550)以及合并(4552)取決于彼此接近的定位的過濾。為了通過整個(gè)過濾列表經(jīng)由線性搜索獲得效率,可以使用聚類算法作為可選的步驟(步驟4548)以便收集具有彼此接近或者重疊的邊界的過濾。當(dāng)添加或去除過濾時(shí),可以實(shí)時(shí)逐增地執(zhí)行聚類算法。在過濾屬性的屬性空間上的任何粒度的固定大小或者可變大小的網(wǎng)格還可以被用來基于它們的各自網(wǎng)格坐標(biāo)對(duì)過濾進(jìn)行分組。
沒有由s3、s4、s5以及s6中的任一個(gè)覆蓋的sA部分被稱為泄漏(leakage)面積(或者松弛(relaxation)面積、冗余面積等),原因在于這些部分將獲取沒有由s3或者s4或者由s5或者s6請(qǐng)求的發(fā)行物。因此,所述合并步驟4552損失過濾減少或者以泄漏來換取過濾減少。然而,隨著進(jìn)行更大的求近似,泄漏面積可能達(dá)到一個(gè)點(diǎn),在該點(diǎn),它非常大以至于無法彌補(bǔ)過濾減少的益處。因此優(yōu)選的是,在其中正在執(zhí)行方法450的發(fā)行-預(yù)訂網(wǎng)絡(luò)具有已經(jīng)定義的泄漏面積閾值,該閾值用于合并步驟4552來確定每個(gè)求近似的泄漏面積是否過大。優(yōu)選的是,所述合并步驟4552對(duì)泄漏面積執(zhí)行統(tǒng)計(jì)分析,以便確定因?yàn)樗銮蠼贫鴮⒔邮艿母郊臃纸M的預(yù)期百分比是多少(即,落入所述泄漏面積的分組)。此統(tǒng)計(jì)分析可以基于分組分布圖,該分組分布圖使用進(jìn)來的分組或者出去的分組的歷史(例如,在執(zhí)行所述方法450的路由器處)構(gòu)建。如果預(yù)期百分比超出所述泄漏面積閾值,那么不使用求近似。
所述泄漏閾值通常是百分比圖,并且一個(gè)以上閾值可以用作合并標(biāo)準(zhǔn)。作為泄漏閾值的其中一個(gè)例子,在圖3中,如果泄漏閾值#_1被規(guī)定為分組數(shù)目的10%,這往往是合并步驟4552中涉及的實(shí)際過濾s5和s6所接受的,并且如果估計(jì)泄漏面積可能包含落在過濾s5和s6中的分組總數(shù)的20%,那么可不準(zhǔn)許合并操作。對(duì)于泄漏閾值的另一個(gè)例子,在同一圖中,如果泄漏閾值#_2是通過路由器的分組總數(shù)的2%,并且如果估計(jì)過濾s5和s6之間的間隙可能構(gòu)成通過路由器的分組總數(shù)的1%,那么即便第一泄漏閾值(#_1)超出,也可以允許合并操作,這是因?yàn)榭傮w泄漏仍是分組的小的百分比,如果在不過濾的情況下路由它們,往往消耗下游帶寬。可以設(shè)計(jì)和規(guī)定各種泄漏閾值之間的大量的和多樣性的相互影響。
所述泄漏面積閾值可以取決于合并的過濾數(shù)目、過濾覆蓋的面積、或者過濾分布的任何特征。例如,當(dāng)過濾的總數(shù)較少時(shí),由于累積問題還沒有馬上來臨,故而可以使用更緊密的約束來合并過濾。
如上面圖4所示出的那樣,應(yīng)該注意的是,不是所有合并操作都是近似的。由兩個(gè)或多個(gè)不同的過濾組成的合并的過濾sA,在一定的情況下也許具有零泄漏面積,并且因此是確切的。例如,假定二維過濾(即圖4的s7和s8),當(dāng)表示過濾的兩個(gè)矩形相互對(duì)齊并且彼此接近時(shí),他們之間沒有留下間隙,產(chǎn)生過濾sA的合并步驟4552將是確切的。通常,在多維情況下,如果兩個(gè)或多個(gè)過濾對(duì)于一個(gè)屬性具有重疊或者相交的謂詞范圍并且對(duì)于任何其他屬性都具有相同的謂詞范圍,那么可能會(huì)發(fā)生此情況。同樣,如果對(duì)一個(gè)過濾的謂詞范圍以在另一個(gè)過濾的謂詞范圍結(jié)束后的下一可能的值(例如,對(duì)于只有整數(shù)的屬性)開始,那么這些過濾可能用具有零泄漏面積的合并的過濾sA來近似,在這里假定對(duì)于這些過濾的任何其他屬性都有相同的謂詞范圍。
返回參考圖22A,作為選擇,方法450可以包括附加過濾處理(除在步驟454的處理以外),諸如在上面部分G描述的過濾處理。如圖所示,方法450基于收件人行為規(guī)則確定是否傳播所述過濾(步驟456),其例子在上面部分E給出。優(yōu)選的是,所述確定步驟456檢查是否將過濾(和/或?qū)⑹裁催^濾)傳播至潛在的收件人。例如,潛在的收件人可能是一個(gè)移動(dòng)發(fā)行者,所述發(fā)行者已經(jīng)發(fā)送了不向它所附于其上的節(jié)點(diǎn)(例如邊緣路由器)傳播過濾的請(qǐng)求。作為選擇,潛在的收件人可以是新的發(fā)行者,所述發(fā)行者已經(jīng)發(fā)送了一請(qǐng)求,以便在它開始發(fā)行大量內(nèi)容之前,將所有過濾傳播至它所附于其上的節(jié)點(diǎn)。還可以使用其他潛在的收件人行為規(guī)則,諸如在部分E上列出的那些。步驟458和456的次序是可互換的。另外,因?yàn)檫^濾累積還不是一個(gè)嚴(yán)重的問題,故而例如對(duì)于數(shù)目有限的預(yù)訂(即過濾)或者只包括幾個(gè)傳播級(jí)的網(wǎng)絡(luò)來說,諸如步驟454(具體來講,合并子步驟4552)和步驟456的一些步驟是可選的。
還可以基于發(fā)件人行為規(guī)則確定是否傳播所述過濾(步驟458),其例子在上面部分F給出。例如,過濾發(fā)件人可能已經(jīng)包括過濾超時(shí)。在該情況下,確定步驟458檢查所述過濾以便查看所述過濾是否已經(jīng)期滿。同時(shí),對(duì)于待傳播至下一節(jié)點(diǎn)的過濾來說,過濾發(fā)件人可能需要進(jìn)行身份驗(yàn)證。在該情況下,如果其起源無法通過身份驗(yàn)證,那么確定步驟458可能拒絕所述過濾。還可以使用其他過濾發(fā)件人行為規(guī)則,諸如在部分F上列出的那些。
如部分D中所述,此過濾傳播過程450可以從發(fā)行-預(yù)訂網(wǎng)絡(luò)中的任何地方啟動(dòng),包括網(wǎng)絡(luò)管理員。將減少數(shù)目的過濾或者過濾的全集傳播至下一節(jié)點(diǎn)(步驟460)。如以上在部分C所述,所述下一節(jié)點(diǎn)(所述過濾收件人)可以位于發(fā)行-預(yù)訂網(wǎng)絡(luò)中的任何地方。可以通過步驟454至458的每個(gè)步驟來減少過濾的數(shù)目。實(shí)際上,通過步驟456或者458(例如,基于沒有傳播任何過濾的潛在的收件人規(guī)則)可以將過濾的數(shù)目減少為零。所述方法450還可以基于發(fā)行-預(yù)訂網(wǎng)絡(luò)的過濾傳播策略之一來傳播460,如上面部分A中所述。因此,所述傳播步驟可以包括確定過濾傳播策略,并且基于所確定的過濾傳播策略的需求的滿足來傳播過濾。例如,傳播460可以在接收到過濾時(shí)進(jìn)行,或者只響應(yīng)發(fā)行者進(jìn)行的廣播廣告而進(jìn)行。同樣,方法450可以依照上面部分I中列出的任何策略和過程來執(zhí)行。方法450還可以依照上面部分H來格式化過濾傳播消息。用于連接在傳播步驟460中涉及的源和目的地的方式可以改變,如上面部分B中所述。
在傳播460之后,所述方法450可以確定是否存在另一個(gè)潛在的收件人(另一個(gè)節(jié)點(diǎn))(步驟462)。如果存在另一個(gè)潛在的收件人,那么所述方法450確定是否存在為此潛在的收件人重復(fù)所述過程的需要。在某一發(fā)行-預(yù)訂網(wǎng)絡(luò)策略中(例如CBT)存在這樣的情況,其中過濾沒有任何期滿超時(shí),并且一旦將它們傳播至一個(gè)節(jié)點(diǎn),它們將在該鏈路上保持持久,直到發(fā)生了對(duì)過濾集的一些改變(例如,過濾附加、過濾去除等)。在那些情況下,過濾傳播對(duì)于該鏈路變得不必要。在如下所述的惰性傳播方法中可以找到一個(gè)例子。
如果需要過濾傳播,那么方法450可以基于行為規(guī)則確定是否傳播,步驟456和458。所述方法450可以重復(fù),直到不再有減少的過濾的潛在的收件人為止。
圖22C舉例說明了另一個(gè)過濾傳播方法470。此方法舉例說明了使用上文在部分A-I中描述的一組解決方案的另一個(gè)例子,用于在發(fā)行-預(yù)訂網(wǎng)絡(luò)中傳播過濾。所述方法470可以在智能路由器92中或者在ASIC 91中包含的相應(yīng)功能的軟件控制下由處理器93執(zhí)行。作為選擇,所述方法470例如可以采用如代理128或者105所表示的軟件模塊加以實(shí)現(xiàn),所述軟件模塊由預(yù)訂者或者發(fā)行者機(jī)器122或者100中的處理器134或者114加以執(zhí)行。
在此例子中,網(wǎng)絡(luò)拓?fù)涫请p向的拓?fù)浣Y(jié)構(gòu),其中一系列發(fā)行者P從任意的方向并且經(jīng)由至智能路由器C的網(wǎng)絡(luò)的任何任意的通路連接到其上,如圖2 2D所示。這種網(wǎng)絡(luò)例如可以通過基于核心的樹的多播方案來實(shí)現(xiàn)。在所述例子中,將新的發(fā)行者PN以及新的路由器CN連接到路由器C處的網(wǎng)絡(luò)。一個(gè)努力與特定發(fā)行-預(yù)訂網(wǎng)絡(luò)連接的新的發(fā)行者PN,可能需要通過一系列新的路由器與所述核心連接,其中所述新的路由器將形成該網(wǎng)絡(luò)的擴(kuò)展,和/或該新的發(fā)行者PN可以通過已經(jīng)作為該網(wǎng)絡(luò)一部分的路由器連接。為了舉例說明的目的,圖22D中只示出來1個(gè)新的路由器CN。
所述過濾傳播過程在2個(gè)級(jí)中進(jìn)行。在圖22D中所示的雙向網(wǎng)絡(luò)中,任何鏈路可以同時(shí)是上行鏈路或者下行鏈路。為了當(dāng)前論述的目的,將所述上行鏈路(只有一個(gè))定義為從其接收當(dāng)前過濾請(qǐng)求的鏈路,將下行鏈路(許多當(dāng)中)定義為到從所述上行鏈路離開的過濾請(qǐng)求的直接的下游收件人的鏈路。上游和下游是依照與上行鏈路以及下行鏈路相同意義定義的方向。
參照?qǐng)D22C,在第一級(jí)中,新的發(fā)行者PN將請(qǐng)求過濾的通知廣播或者多播至下游路由器C(或者所有下游節(jié)點(diǎn))(步驟472)。在路由器C接收到過濾請(qǐng)求之后(步驟474),路由器C更新其簿記以便確保不會(huì)將相同的過濾集向同一上行鏈路發(fā)送兩次,優(yōu)選的是,借助于引用計(jì)數(shù)來實(shí)現(xiàn)(步驟476)。然后路由器C確定來自于此上行鏈路的過濾請(qǐng)求是否之前已經(jīng)被服務(wù)過了,優(yōu)選的是,借助于檢查對(duì)此上行鏈路的引用計(jì)數(shù)器來實(shí)現(xiàn)(步驟478)。如果其是之前從來沒有得到過服務(wù)的新的上行鏈路,就象第一發(fā)行者由此上行鏈路連接所述網(wǎng)絡(luò)的情況,那么路由器C將所述請(qǐng)求中繼至(步驟480)路由器的下行鏈路(即下游路由器),并且等待來自于所述路由器下行鏈路的響應(yīng)(步驟482)。那些下游路由器又發(fā)送所述請(qǐng)求至它們的下游路由器并且等待它們的響應(yīng)。重復(fù)此過程,直到所述接收節(jié)點(diǎn)可以作出一個(gè)應(yīng)答響應(yīng)為止。這樣就完成了第一級(jí)。
當(dāng)用于接收過濾請(qǐng)求的任何節(jié)點(diǎn)都已經(jīng)收集到了來自于那個(gè)節(jié)點(diǎn)的下游路由器的所有的響應(yīng)時(shí),或者當(dāng)該節(jié)點(diǎn)是網(wǎng)絡(luò)中最后的節(jié)點(diǎn)并且不期待來自于下游的響應(yīng)時(shí),開始第二級(jí)(步驟484)。如果沒有過濾要發(fā)送,那么將向上游發(fā)送否定確認(rèn)(或者在任意表示中都是空過濾集)。如果已經(jīng)從所述節(jié)點(diǎn)的下游路由器的全部都接收了所有新的過濾,那么整個(gè)或者部分過濾集(例如,Δ改變)將在可選的過濾減少之后(步驟454)向上游發(fā)送(步驟486)。依照方法450,只有從相對(duì)于當(dāng)前上行鏈路的下行鏈路收集的過濾將被分組、合并以及減少。然后,將此收集然后傳播過程向上游重復(fù),直到發(fā)送過濾請(qǐng)求的發(fā)行者或者初始路由器接收來自于所有所述發(fā)行者或者初始路由器的下游路由器的否定確認(rèn)為止。過濾的實(shí)際傳播或者如上所述的空集(否定確認(rèn))構(gòu)成第二級(jí)。所述二個(gè)級(jí)在它們的傳播方向以及傳播內(nèi)容方面不同,并且由于過濾請(qǐng)求可以比其它請(qǐng)求前進(jìn)到更下游的一些網(wǎng)絡(luò)分支,故而它們在時(shí)間上可能會(huì)重疊。
因?yàn)榇诉^濾傳播方案只有當(dāng)接收來自于上行鏈路的過濾請(qǐng)求時(shí)才啟動(dòng)過濾傳播過程,而不是急切地將過濾泵送到每個(gè)上行鏈路,所以它作為惰性傳播方案可能是已知的,它只將過濾泵送到請(qǐng)求過濾的上游路由器并且只有當(dāng)它請(qǐng)求它們時(shí)才這樣做。這里應(yīng)該注意的是,過濾請(qǐng)求未必需要是特殊格式的通知。依照部分E,來自于任何發(fā)行者的第一通知可以被認(rèn)為是其存在的廣告,并且已編碼并且被嵌入數(shù)據(jù)通知的過濾收件人行為規(guī)則可被用于確定過濾是否正被請(qǐng)求。
每個(gè)發(fā)行者P的過濾可能存儲(chǔ)在發(fā)行者用戶機(jī)器100,或者存儲(chǔ)在與發(fā)行者P相連接的路由器C中。與采用上文方法450一樣,方法470還可以使用附加解決方案,諸如在上文部分A-I中描述的那些。
使用緊湊的過濾存儲(chǔ)器以及離線預(yù)先計(jì)算的CBR在此部分中描述的CBR的實(shí)施例涉及一種用于基于深度分組檢查以及過濾匹配、在發(fā)布/訂閱網(wǎng)絡(luò)核心中路由數(shù)據(jù)分組的方法。通過將過濾變換為更加緊湊的形式,并且通過預(yù)先計(jì)算所述過濾在屬性空間中的覆蓋范圍,此CBR方法形成從屬性空間座標(biāo)的有限集至離線路由指令的映射,然后實(shí)時(shí)地使用所述映射來做出路由決定。此CBR方法非???,實(shí)現(xiàn)了與傳統(tǒng)的網(wǎng)際協(xié)議(IP)路由相同數(shù)量級(jí)的數(shù)據(jù)轉(zhuǎn)發(fā)速率。因此,此CBR方法是用于在網(wǎng)絡(luò)核心中基于內(nèi)容的路由的實(shí)用商業(yè)部署的適合的候選。
如上所述,預(yù)訂者通過在屬性值范圍上規(guī)定謂詞來精煉如下分組的選擇性,所述分組是從發(fā)行-預(yù)訂網(wǎng)絡(luò)中的一個(gè)或者多個(gè)發(fā)行者發(fā)送的。每個(gè)謂詞是一屬性測試(屬性測試也可以包括主題測試),該屬性測試將分組中一定位置的屬性與關(guān)系或者成員資格測試中的1個(gè)或者2個(gè)操作數(shù)相關(guān)(操作數(shù)可以是諸如正則表達(dá)式的復(fù)雜對(duì)象)。例如,10<$1<20是一個(gè)用于檢查由$1表示的第一屬性位置中的數(shù)據(jù)值是否大于10并且小于20的測試(可以將謂詞的定義通過將測試限制為只包含1個(gè)操作數(shù)來簡化,例如,可以將2側(cè)范圍測試分開為兩個(gè)單側(cè)測試的連接)。所述預(yù)訂者在一個(gè)或者多個(gè)預(yù)訂中提交這些測試的一個(gè)集合,每個(gè)預(yù)訂均可以包括預(yù)訂者感興趣的主題字段。
此處所述的實(shí)施例涉及使用過濾的基于內(nèi)容的路由,所述過濾是從預(yù)訂導(dǎo)出的對(duì)象并且只在它們的表示上不同于預(yù)訂。過濾的一個(gè)例子是如下所述的合取過濾。在某種意義上,一個(gè)預(yù)訂是原始過濾,一個(gè)被規(guī)定并用于過濾分組和/或由預(yù)訂者直接發(fā)送到網(wǎng)絡(luò)的原始過濾。為了易于傳播以及在網(wǎng)絡(luò)中的路由器處進(jìn)行分組匹配,可以將預(yù)訂轉(zhuǎn)換為稱為過濾的其他格式的對(duì)象。例如,在一些實(shí)現(xiàn)方式中,每個(gè)主題使用多播網(wǎng)絡(luò)實(shí)現(xiàn)。屬于相同主題并且為特定主題而注入到多播網(wǎng)絡(luò)的每個(gè)節(jié)點(diǎn)的過濾只過濾具有相同主題字段的分組,實(shí)際上隱式地執(zhí)行主題字段過濾。因此,可以將過濾存儲(chǔ)在此網(wǎng)絡(luò)中每個(gè)節(jié)點(diǎn)處的它們的主題標(biāo)題下,而不用它們的主題字段。沒有主題字段的過濾通常稱為屬性過濾。對(duì)于以下論述來說,術(shù)語預(yù)訂、過濾以及屬性過濾可互換使用,并且其意思僅僅由它們的環(huán)境清楚表明。
為了易于進(jìn)入的數(shù)據(jù)分組與這些預(yù)訂進(jìn)行匹配,在把每個(gè)預(yù)訂發(fā)送到邊緣路由器之前,可以由代理機(jī)來處理每個(gè)預(yù)訂并且將其分解為其等效析取范式(DNF),如上所述。DNF是稱為合取過濾的一個(gè)或多個(gè)子過濾的析取式。每個(gè)合取過濾是一個(gè)或多個(gè)屬性測試的合取式,其中每個(gè)屬性在表達(dá)式中利用相同測試運(yùn)算符最多表示一次。例如,合取過濾可以約束在位置1的屬性與表達(dá)式(不同于$1的屬性被歸入以下例子)的匹配$1>10 and$1<20 and$2<4 and $3==5 and...
就路由器而言,屬性過濾因?yàn)榇頇C(jī)的動(dòng)作而全部是合取過濾。合取過濾不僅具有統(tǒng)一格式的有益性質(zhì),這種統(tǒng)一的格式易于在網(wǎng)絡(luò)核心中傳播這些過濾,而且每個(gè)屬性在過濾表達(dá)式中的單次出現(xiàn)也允許將這些過濾解釋為多維的幾何對(duì)象,這對(duì)于描述此中CBR實(shí)施例十分有用。因此,在下文中,只將合取過濾用作例子。
不管是否使用DNF,如果使用一種單純的方法來一個(gè)一個(gè)地并且一個(gè)謂詞一個(gè)謂詞地來匹配過濾的較大集合,那么所需要的巨大計(jì)算量可能很容易使通過使用CBR獲得的下游帶寬增益的益處受損。在關(guān)鍵性數(shù)據(jù)轉(zhuǎn)發(fā)通路中的此巨大的計(jì)算量可能嚴(yán)重拖延發(fā)行-預(yù)訂網(wǎng)絡(luò)的效率。此處所述的CBR實(shí)施例設(shè)法減少此巨大的計(jì)算量,并且設(shè)法將大部分計(jì)算從關(guān)鍵性數(shù)據(jù)轉(zhuǎn)發(fā)通路中移去。
實(shí)際上,此處所述的實(shí)施例為CBR提供了一種非常有效的方法,通過將過濾表達(dá)式近似為更加緊湊的形式并且離線預(yù)先計(jì)算過濾覆蓋范圍信息來實(shí)現(xiàn)。在此CBR方法中,當(dāng)插入或者去除過濾時(shí),屬性空間中每一個(gè)單點(diǎn)上的過濾覆蓋范圍被離線預(yù)先確定。對(duì)具有落在該點(diǎn)上的屬性值的所述分組的正確動(dòng)作將是覆蓋該點(diǎn)的全部過濾所斷言的動(dòng)作的合一。這些動(dòng)作可以涉及以下分組,例如包括轉(zhuǎn)發(fā)至物理或者封裝的接口的分組、轉(zhuǎn)移至用戶級(jí)進(jìn)程的分組、或者管道式傳送至并行機(jī)(例如高速緩存、備份路由器等)的分組。一些動(dòng)作可能根本不涉及分組,例如包括觸發(fā)在路由器上運(yùn)行的一般應(yīng)用以便響應(yīng)特殊指定的分組的到達(dá),由于在所述過濾的相關(guān)區(qū)域中仍存在活動(dòng)的發(fā)行物而延長一些過濾的壽命,基于發(fā)行物的內(nèi)容自動(dòng)地注入新的過濾等。實(shí)際上,每個(gè)過濾所斷言的動(dòng)作可以通過數(shù)據(jù)結(jié)構(gòu)具體實(shí)現(xiàn),所述數(shù)據(jù)結(jié)構(gòu)諸如動(dòng)作位屏蔽(ABM),每個(gè)位的位置代表不同的(轉(zhuǎn)發(fā)的)動(dòng)作,或者在動(dòng)作數(shù)目變得過于難控制以致于無法放置在一個(gè)位屏蔽中(例如一個(gè)邊緣路由器連接數(shù)目巨大的預(yù)訂者)時(shí),所述數(shù)據(jù)結(jié)構(gòu)是一個(gè)不同動(dòng)作的列表(不同動(dòng)作列表-DAL)。在隨后的論述中,當(dāng)單獨(dú)提及ABM或者DAL時(shí),應(yīng)該理解的是,所述環(huán)境涵蓋體現(xiàn)動(dòng)作的數(shù)據(jù)結(jié)構(gòu)的所有形式。
由此,預(yù)先計(jì)算生成從屬性空間中多個(gè)坐標(biāo)到相同數(shù)目的合一或者動(dòng)作列表的CBR映射。因?yàn)榇撕唵斡成渑c用于主題組多播中的多播路由表相似,所以可以將其通稱為CBR表。正如可以看到的那樣,通過將沉重的計(jì)算負(fù)擔(dān)從關(guān)鍵性數(shù)據(jù)轉(zhuǎn)發(fā)通路轉(zhuǎn)移到在后臺(tái)運(yùn)行的非關(guān)鍵性過濾預(yù)先計(jì)算進(jìn)程,數(shù)據(jù)幾乎免于匹配原始過濾表達(dá)式所需的處理而快速地通過關(guān)鍵性數(shù)據(jù)轉(zhuǎn)發(fā)通路。
優(yōu)選的是,此CBR方法還包括將過濾表達(dá)式近似為更加緊湊的形式,例如借助于空間量化和謂詞歸結(jié)來實(shí)現(xiàn)。因?yàn)樵诿總€(gè)屬性維數(shù)中存在巨大的坐標(biāo)數(shù)目,所以必須量化屬性空間,由此形成網(wǎng)格。只使用量化的區(qū)域而不是個(gè)體坐標(biāo)來構(gòu)造CBR表。因?yàn)榭臻g量化具有將實(shí)際屬性空間中的個(gè)體點(diǎn)分組到量化屬性空間中的單個(gè)點(diǎn)的作用,所以原始實(shí)際屬性空間中的每個(gè)點(diǎn)仍間接地在CBR表中說明,與其鄰近的具有相同量化坐標(biāo)的點(diǎn)共享對(duì)那些量化坐標(biāo)所斷言的動(dòng)作的列表。
在此方法中允許各種空間量化方案。此外,當(dāng)過濾表達(dá)式包含太多謂詞時(shí),其可以被近似為只在CBR表中表示的子集。
屬性的屬性空間潛在地是無限的。因此,即使使用網(wǎng)格,屬性空間也可能太過使用不便。因此,此處所述的CBR方法優(yōu)選的是減少被量化的屬性空間的面積。具體來講,優(yōu)選的是,只量化屬性空間的如下那樣的面積,對(duì)于該面積可預(yù)期接收到匹配的數(shù)據(jù)分組。如下所述,對(duì)于其將可能接收到匹配的數(shù)據(jù)的面積是基于從發(fā)行者接收的信息和/或基于過去的(即預(yù)先接收)的分組和/或過濾的分布的統(tǒng)計(jì)分析來確定的。例如,如果發(fā)行者提供信息將永不發(fā)行大于一個(gè)屬性的一定屬性值的匹配的數(shù)據(jù)分組,那么優(yōu)選的是不量化大于所述一定的值的屬性空間。同樣,如果統(tǒng)計(jì)分析表明從來沒有接收小于一個(gè)屬性的一定值的過濾,那么優(yōu)選的是不量化小于所述一定值的屬性空間。
圖23A依照此處所述的實(shí)施例、舉例說明了通過將過濾表達(dá)式近似為更加緊湊的形式并且離線預(yù)先計(jì)算過濾覆蓋范圍信息的CBR方法480。此CBR方法最小化了實(shí)時(shí)的逐謂詞的過濾匹配。方法480可以由處理器93在智能路由器92中或者ASIC 91中包含的相應(yīng)功能的軟件控制下執(zhí)行。通常,因?yàn)樯婕斑^濾管理功能的預(yù)先計(jì)算步驟是集中計(jì)算的,故而優(yōu)選的是,采用軟件來執(zhí)行它。然而,在諸如基數(shù)(radix)表示的一些過濾表示中,它還能夠采用硬件來維護(hù)過濾。方法480例如還可以采用軟件模塊來實(shí)現(xiàn),所述軟件模塊例如由代理106所代表的,由用戶機(jī)器100中的處理器114執(zhí)行。
如圖23A所示,方法480首先確定是否是時(shí)候執(zhí)行空間(重新)量化(步驟482),其可以通過周期的或者非周期的超時(shí)來觸發(fā),或者通過預(yù)先定義的事件觸發(fā),所述預(yù)先定義的事件諸如觀察到分組統(tǒng)計(jì)量在當(dāng)前量化的屬性空間上已經(jīng)變成極度地不規(guī)則。如果需要并且當(dāng)路由器相對(duì)空閑時(shí),離線地執(zhí)行空間量化(步驟484)??臻g量化涉及新網(wǎng)格的計(jì)算,優(yōu)選的是,所述新網(wǎng)格具有使分組分布或者過濾分布(或者這兩者的一些相關(guān))在作為結(jié)果的量化屬性空間上變得一致的性質(zhì)??梢允褂每臻g量化的其他方法和標(biāo)準(zhǔn)。
可以將網(wǎng)格區(qū)域構(gòu)造為只覆蓋屬性空間的減少的面積,在所述屬性空間的減少的面積中,預(yù)期可以接收到匹配分組。例如,如果第一屬性$1表示US某一工業(yè)部門中的股票數(shù)目,空間量化只需要在從0到組合的所有美國證券交易所中股票總數(shù)的數(shù)目范圍中進(jìn)行。在此屬性的統(tǒng)計(jì)分布由所收集的分組統(tǒng)計(jì)量形成之后,如下面將論述的,自適應(yīng)量化可用于動(dòng)態(tài)地調(diào)節(jié)此范圍,最初調(diào)節(jié)到一個(gè)小得多的數(shù)目,該數(shù)目是全部部門股票數(shù)目中最大的數(shù)目,并且以后在最大值增加時(shí),調(diào)節(jié)到更高的數(shù)目。
然后,路由器確定是否有任意過濾已經(jīng)被插入到網(wǎng)絡(luò)位置(例如核心或者邊緣智能路由器92、或者發(fā)行者機(jī)器100)或從該網(wǎng)絡(luò)位置將其去除(步驟486),在所述位置處正在執(zhí)行方法480。引用計(jì)數(shù)法可以記錄一個(gè)新注入的過濾與先前注入的另一個(gè)過濾是否具有完全相同的信息(例如,屬性、匹配的屬性值以及過濾動(dòng)作)(步驟488、步驟494)。只有完全不同的過濾才需要加以處理。為此描述的目的,將所述位置假定為智能路由器92。例如,一個(gè)新的過濾也許已被向上游傳播至智能路由器92,或者一個(gè)舊的過濾也許已因?yàn)獒槍?duì)舊的過濾所設(shè)置的超時(shí)期滿而超時(shí)。
當(dāng)接收了插入或者去除一個(gè)過濾的請(qǐng)求時(shí)(步驟486),首先使用該過濾的實(shí)際坐標(biāo),將所述過濾與由路由器早已接收并且存儲(chǔ)的其他過濾相比較,目的在于能夠(1)在實(shí)際屬性空間中更新對(duì)正確的過濾的引用計(jì)數(shù)(步驟488),并且(2)確定待插入/去除的過濾是一個(gè)不同的過濾還是一個(gè)以前已經(jīng)接收的過濾(步驟490)。如果所述過濾不是一個(gè)完全不同的過濾,那么執(zhí)行流向回傳遞到匹配分組的例程。否則,將分組的屬性值映射到量化空間,以便獲得屬性值的量化坐標(biāo)(步驟492)。執(zhí)行一個(gè)類似的過濾標(biāo)識(shí)過程,這次是使用量化坐標(biāo)來進(jìn)行的,以便(1)在量化屬性空間中更新對(duì)正確的過濾的引用計(jì)數(shù)(步驟494),并且(2)確定在過濾的量化坐標(biāo)中此過濾是否是一個(gè)完全不同的過濾(步驟496)。對(duì)于步驟488和步驟494來說,優(yōu)選的是,使用從過濾坐標(biāo)到過濾引用的兩個(gè)映射。
如果在實(shí)際屬性空間和量化空間中所述過濾是完全不同的,那么因此能對(duì)過濾求近似和減少過濾(步驟498)。例如,對(duì)于量化和映射來說,只可以選擇具有太多謂詞的過濾屬性子集。同樣,具有更加復(fù)雜的性質(zhì)的謂詞(例如,要求字符串匹配、正則表達(dá)式、字符串內(nèi)、數(shù)組內(nèi)、范圍運(yùn)算等的謂詞)或者要求更高消解的屬性可以被獨(dú)立地處理。
本發(fā)明實(shí)施例的關(guān)鍵貢獻(xiàn)之一在于這樣的思想如果將過濾做成緊湊的,那么就能夠采用可擴(kuò)縮的方式高效地執(zhí)行分組的匹配和轉(zhuǎn)發(fā)。過濾的壓縮可以涉及過濾到量化屬性空間的映射(步驟492)以及過濾表達(dá)式的求近似和減少(例如步驟498)這兩種情況。如圖所示,壓縮步驟包括在空間上量化所述屬性空間(步驟484)。此步驟在屬性空間中形成網(wǎng)格,如上所述并且顯示如下

現(xiàn)在可以更新CBR表(步驟500)。每個(gè)過濾與表明對(duì)匹配該過濾的發(fā)行物的一個(gè)或多個(gè)(路由)動(dòng)作的規(guī)則相關(guān)聯(lián)。將過濾所斷言的動(dòng)作(路由)采用以下方式插入到此CBR表中的網(wǎng)格單元中。使用在過濾覆蓋范圍信息的屬性空間中形成的網(wǎng)格,步驟500首先標(biāo)識(shí)所述過濾的量化坐標(biāo)覆蓋或者重疊的全部網(wǎng)格單元(即,量化的區(qū)域)。然后步驟500將所斷言的(路由)動(dòng)作插入到這些網(wǎng)格單元中。例如,假定五個(gè)可能的目的節(jié)點(diǎn),要求路由至與節(jié)點(diǎn)2和3相連接的用戶機(jī)器的兩個(gè)過濾分別可以覆蓋所述網(wǎng)格單元或者量化的區(qū)域X(參見上文)。因此,步驟500將分別要求路由至節(jié)點(diǎn)2和3的規(guī)則插入或者確認(rèn)到網(wǎng)格單元或者量化的區(qū)域X。對(duì)于被標(biāo)識(shí)為要由過濾的量化坐標(biāo)加以覆蓋或者重疊的每個(gè)網(wǎng)格單元來說,重復(fù)此過程。優(yōu)選的是,步驟500表示通過為每個(gè)網(wǎng)格單元或者量化的區(qū)域生成或者更新ABM而獲得的映射。在此例子中,假定節(jié)點(diǎn)被編號(hào)為0-4的網(wǎng)格單元或者量化區(qū)域X的ABM是

注意,優(yōu)選的是,為過濾去除執(zhí)行簿記。例如,假定一個(gè)網(wǎng)格單元由兩個(gè)過濾覆蓋,并且所述過濾之一被去除。ABM中的相應(yīng)位不應(yīng)該被復(fù)位至0。通過為每個(gè)網(wǎng)格單元簿記覆蓋單元面積的過濾的引用計(jì)數(shù),就可以避免混淆。然后,根據(jù)更新的引用計(jì)數(shù)器生成FBM??梢詫⑦@些引用計(jì)數(shù)器稱為動(dòng)作引用計(jì)數(shù)器。因此,映射步驟500可以包括此處所述的簿記步驟。
CBR表從為每個(gè)網(wǎng)格單元或者量化的區(qū)域生成的ABM來構(gòu)造/更新(步驟500)。優(yōu)選的是,這要直接或者間接地涉及空間重新量化以及CBR表更新,以及所有補(bǔ)充的步驟482-500。優(yōu)選的是,離線(即,當(dāng)智能路由器92不在接收發(fā)行的分組時(shí))執(zhí)行步驟482-500,或者當(dāng)注入、掛起、暫?;蛘呷コ^濾時(shí),在實(shí)時(shí)路由進(jìn)程的后臺(tái)中執(zhí)行步驟482-500。據(jù)此,如果沒有接收發(fā)行的分組,或者如果在后臺(tái)正在執(zhí)行步驟482-500,那么方法480再次首先確定是否是重新量化屬性空間的時(shí)候(步驟482),并且隨后確定是否有任意過濾已經(jīng)被插入或者去除(步驟486)。然后,在數(shù)據(jù)轉(zhuǎn)發(fā)通路中將CBR表用于實(shí)時(shí)路由進(jìn)程,如圖23B所示。
CBR表的大小可能因?yàn)榇罅康膶傩曰蛘叽罅康膶?duì)每個(gè)屬性的網(wǎng)格劃分而非常龐大。原則上,只有包含動(dòng)作規(guī)則的在CBR表中的網(wǎng)格單元(即,由過濾覆蓋的那些單元)需要被存儲(chǔ)??梢允褂萌魏渭夹g(shù)來精簡CBR表。
而圖23A舉例說明了方法480的CBR管理方面,圖23B舉例說明了方法480的CBR數(shù)據(jù)轉(zhuǎn)發(fā)方面。如果方法480確定接收了發(fā)行的分組(步驟502),那么智能路由器92接收發(fā)行的分組(步驟504),如圖23B所示??梢詫⑺邮盏姆纸M使用點(diǎn)到點(diǎn)連接(例如,至邊緣路由器的無線連接)注入到網(wǎng)絡(luò)中。將所接收的分組映射至網(wǎng)格(步驟506)。步驟506確定分組的量化坐標(biāo),以致可以查找CBR表的正確的網(wǎng)格單元,并且可以提取該網(wǎng)格單元中包含的動(dòng)作規(guī)則并且,使用這些工作規(guī)則來處理所述分組(508)。這些動(dòng)作可以包括確定要把分組路由到網(wǎng)絡(luò)中的哪些節(jié)點(diǎn)或者哪些其他位置,或者包括丟棄所述分組。
泄漏減少至此所給出的CBR方法480可能存由于過濾近似而產(chǎn)生的分組泄漏形式的錯(cuò)誤(參見步驟492)。因?yàn)槭褂镁W(wǎng)格單元的邊界而不是原始過濾邊界來匹配分組,故而增大了用于匹配的實(shí)際區(qū)域(例如,2維面積以及3維體積),并且屬性值落入實(shí)際過濾邊界和網(wǎng)格單元邊界之間的不希望有的分組(此處通稱為松弛區(qū)域)將被錯(cuò)誤地接受。如上所述,當(dāng)速度性能和可擴(kuò)縮性在進(jìn)程中被獲得或者被改進(jìn)時(shí),并且當(dāng)泄漏錯(cuò)誤與進(jìn)入的分組的總數(shù)比較是較小時(shí),減少的過濾消解被認(rèn)為是可接受的損失。
然而,在一些情況下,泄漏錯(cuò)誤未必是小的。例如,當(dāng)所述系統(tǒng)包含具有至少一個(gè)其CBR啟用的屬性謂詞是相等或者不等測試的過濾(例如,$1=4 & $2=100 & S3<30,或者$1=4 & $2>3)。作為相等測試或者不等測試的那些屬性的維數(shù)中,所述過濾相似于一點(diǎn)。當(dāng)強(qiáng)加網(wǎng)格邊界以便歸類這些點(diǎn)時(shí)(在上面步驟490中),松弛區(qū)域的擴(kuò)張(例如面積、體積,超體積)就可以大于實(shí)際過濾自身的擴(kuò)張。
此問題在下面的圖中加以描述,該圖描繪了2個(gè)屬性的空間并且示出了兩個(gè)點(diǎn)過濾F1和F2,兩者均由任一維數(shù)中的相等測試加以定義。所述數(shù)字指示網(wǎng)格單元坐標(biāo)而所述字母是實(shí)際坐標(biāo)。其屬性落入網(wǎng)格單元中無論任何地方的那些分組(4,1)將被當(dāng)作匹配F1和F2這二者。
通過可以在泄漏減少步驟516中執(zhí)行的各種技術(shù)可以減輕CBR方法480的這種不合需要的特性,這部分內(nèi)容將在下面作為一個(gè)例子描述。
泄漏減少516的這種技術(shù)之一涉及在一個(gè)維數(shù)(1D)中的確切匹配。同時(shí)針對(duì)所有屬性確切地把分組匹配至過濾是多維的問題,其不具有可擴(kuò)縮的解決方案。然而,在1D中的確切匹配被獲知具有許多高效并且可擴(kuò)縮的解決方案,包括但不限于(1)對(duì)過濾邊界數(shù)組的對(duì)分檢索;(2)遍及全部過濾邊界的二叉樹搜索;(3)沿著嵌有過濾邊界信息的樹向下的基數(shù)搜索;以及(4)采用其他更加復(fù)雜的數(shù)據(jù)結(jié)構(gòu)-諸如間隔二叉搜索樹等的搜索。
在泄漏減少步驟516中,優(yōu)選的是,使用任何1D搜索技術(shù)1D進(jìn)行1D的確切匹配對(duì)所有屬性都要執(zhí)行。下面將描述依照1D確切匹配的示例性泄漏減少步驟516。
a.在沒有泄漏減少的情況下執(zhí)行CBR匹配步驟508,如上所述(如果沒有匹配,則丟掉分組);b.對(duì)于匹配的分組(參見上面步驟508),選擇一個(gè)屬性維數(shù),并且使用任何ID確切匹配技術(shù)及其相應(yīng)數(shù)據(jù)結(jié)構(gòu)來將所述分組的該屬性值與所有過濾邊界在該屬性軸上的投影匹配。獲得了為其找到了匹配的過濾的全部轉(zhuǎn)發(fā)節(jié)點(diǎn)的列表;c.如果沒有1D匹配,那么因?yàn)榇_保在所有的分組屬性測試上將沒有過濾匹配所述分組,所以可以丟掉所述分組;d.如果存在匹配,那么選出另一個(gè)屬性維數(shù)并且重復(fù)步驟b,直到(i)在任何維數(shù)中都發(fā)現(xiàn)是失配的;(ii)由所有先前執(zhí)行的1D搜索產(chǎn)生的轉(zhuǎn)發(fā)節(jié)點(diǎn)列表不包含公用接口(即,從來自于不同接口的過濾生成1D匹配);或者,(iii)對(duì)所有屬性維數(shù)都執(zhí)行確切的匹配測試,所述屬性維數(shù)可以包括對(duì)于CBR被禁止的那些屬性維數(shù)。
e.如果在步驟d中描述的任何一個(gè)丟掉條件沒有發(fā)生,并且測試所有屬性而沒有失配,那么可以做出一個(gè)不丟棄分組的判斷。
f.在涉及一個(gè)以上接口的情況下,沒有因其而丟掉分組的接口必須與從步驟a獲得的接口列表進(jìn)行比較。所述分組只被路由到將路由的兩個(gè)列表之間交集中的接口。
子步驟a-f的其他次序也是被允許的。例如,子步驟a可以在ID泄漏減少步驟(子步驟b-e)完成之后執(zhí)行??梢约梢恍┳硬襟E。
應(yīng)注意的是,上述ID泄漏減少步驟516在考慮全部維數(shù)時(shí)是不確切的。使用上個(gè)例子,具有屬性值$1=a & $2=d的分組在任一維數(shù)下都將通過確切匹配的測試,但是在每個(gè)維下的測試實(shí)際上一個(gè)匹配不同的過濾。在正確的多維分析中,往往往往要被丟掉。因此此泄漏減少只對(duì)丟掉分組很有用的,而對(duì)于接受分組卻是沒有用的。對(duì)于后者情況,它指示近似的,并且泄漏錯(cuò)誤仍是可能的。盡管其不準(zhǔn)確,泄漏減少步驟516還是極大地減少了通過使用對(duì)于過濾的網(wǎng)格單元(4,1)中的整個(gè)面積引起的泄漏錯(cuò)誤。
檢查經(jīng)由所述智能路由器92的所述數(shù)據(jù)轉(zhuǎn)發(fā)通路的信息量,以便確定其是否在一組閾值之上(步驟510)(即,智能路由器92例如是“繁忙”,被轉(zhuǎn)發(fā)分組的關(guān)鍵任務(wù)占據(jù)著),其中在所述智能路由器92處執(zhí)行方法480。如果所述智能路由器92繁忙,那么基于由步驟508確定的路由動(dòng)作來路由映射至覆蓋的網(wǎng)格單元(步驟508)的分組(步驟512),并且更新相應(yīng)的分組統(tǒng)計(jì)量(步驟514)。因此,如果智能路由器92繁忙,那么由于路由映射至部分覆蓋的網(wǎng)格單元的分組而不是路由在該網(wǎng)格單元中超出實(shí)際過濾覆蓋范圍以外的分組所導(dǎo)致的“泄漏”被當(dāng)作損失,以便提高路由速度。
如果步驟510確定智能路由器92不繁忙(即,通信量沒有超過閾值),那么優(yōu)選的是,執(zhí)行泄漏減少(步驟503)。所述泄漏減少步驟516減少在前段中描述的泄漏。所述泄漏減少例如可以依照下面描述的方法執(zhí)行。
到目前為止,還沒有實(shí)時(shí)地執(zhí)行任何確切的或者逐個(gè)謂詞的過濾匹配。然而,在方法480中,可以允許最小級(jí)的確切過濾匹配,優(yōu)選的是,只有當(dāng)通信量沒有超出閾值時(shí)才允許上述確切過濾匹配。此CBR方法依照它們相對(duì)于所述網(wǎng)格的位置內(nèi)部地對(duì)過濾進(jìn)行分組。所述網(wǎng)格單元是一種工具,用于依照它們的幾何位置對(duì)過濾進(jìn)行分組。在過濾的任何組內(nèi)(作為選擇通稱為過濾桶(filter bucket)),對(duì)于某些情況可以進(jìn)行更加準(zhǔn)確的詳細(xì)過濾。這種額外的匹配需求可以存儲(chǔ)在過濾桶中。一些例子包括1.要求比CBR映射提供的消解更高的消解的屬性測試可以在從CBR的第一網(wǎng)格匹配步驟中檢索出過濾桶(步驟508)之后加以處理。
2.通過所述過濾成組方法來處理更加復(fù)雜的性質(zhì)的屬性測試(例如,字符串匹配、正則表達(dá)式、字符串內(nèi)、數(shù)組內(nèi)、范圍運(yùn)算等)。
3.對(duì)于包含大量屬性測試的過濾來說,可以將所述屬性分成兩個(gè)組,一組被輸入到CBR映射,而另一組被輸入到過濾桶。
可以通過上面的步驟498來減少在1-3中描述的屬性的過濾謂詞。另外,如果智能路由器92不繁忙(參見步驟520),那么使用逐謂詞的或者其他確切的過濾匹配來將這種分組與由部分覆蓋的網(wǎng)格單元確定的過濾桶匹配,所述部分覆蓋的網(wǎng)格單元是根據(jù)CBR表所確定的。因?yàn)橛糜谠摼W(wǎng)格單元或者量化區(qū)域的過濾桶早已通過預(yù)先計(jì)算(在步驟482-500)中被(從過濾的總數(shù))減少,所以此過程簡單地執(zhí)行直接的逐個(gè)謂詞的CBR,故而更加有效。
在基于所述CBR表路由所述分組以前(步驟512)(由步驟508所確定的),所述方法確定對(duì)于由映射到的網(wǎng)格單元確定的過濾桶而言,是否存在任何減少的過濾謂詞或者是否存在映射至部分覆蓋的網(wǎng)格單元的分組(步驟522)。如果存在這種減少的過濾謂詞(例如,根據(jù)上面例子1-3)或者從存在這種映射的分組,那么執(zhí)行逐個(gè)謂詞的或者其他確切的過濾匹配(步驟524)。然后,根據(jù)例如通過求取通過這兩種方法獲得的接口列表之間的交集從CBR表和確切的匹配確定的路由動(dòng)作來路由匹配的分組,(步驟512),并且更新分組統(tǒng)計(jì)量(514)。
在方法480的替代性實(shí)施例中,通信量閾值檢查步驟510可以先于一些計(jì)算集中的步驟,諸如步驟518和524,通過平衡消耗對(duì)計(jì)算強(qiáng)度平衡消耗加以確定。此外,所述方法480可以具有獨(dú)立的通路,分別用于映射至完全覆蓋的網(wǎng)格單元的分組,以及用于映射至部分覆蓋的網(wǎng)格單元的分組。通信量閾值步驟510可能只在部分覆蓋的網(wǎng)格單元通路中執(zhí)行。
在方法480中的泄漏減少步驟516可以替換為此處所述的更加高級(jí)的泄漏減少過程。高極的泄漏減少過程進(jìn)一步減少泄漏錯(cuò)誤。例如,確切的多維匹配可以在網(wǎng)格表搜索之后通過交叉乘積(cross-producting)在網(wǎng)格單元內(nèi)執(zhí)行。交叉乘積涉及以下過程a.使用任何ID確切匹配技術(shù)執(zhí)行如上所述的ID確切匹配。此替代步驟中的主要區(qū)別在于產(chǎn)生過濾標(biāo)簽列表而不是轉(zhuǎn)發(fā)節(jié)點(diǎn)列表;b.如果所述列表是空的(即沒有匹配),那么丟掉所述分組;c.如果存在至少一個(gè)匹配,那么所述搜索進(jìn)行到另一個(gè)屬性。步驟ac被重復(fù),直到下面任一項(xiàng)走捷徑的條件滿足為止(i)在任一維數(shù)下都發(fā)現(xiàn)了失配;(ii)在由在前ID測試產(chǎn)生的所有過濾標(biāo)簽列表中沒有通用過濾標(biāo)簽;或者,(iii)已經(jīng)測試了所有維數(shù);并且d.如果在步驟c中描述的任意一個(gè)丟掉條件沒有發(fā)生,并且測試了所有屬性而沒有失配,那么可以做出一個(gè)接受分組的決定。
例如,在上述圖中,具有屬性值(a,d)的分組將對(duì)$1測試產(chǎn)生F2,對(duì)$2測試產(chǎn)生F1。因?yàn)閮蓚€(gè)過濾標(biāo)簽列表之間沒有交集,所以將丟掉所述分組。另一方面,具有屬性值(a,c)的分組將在$1和$2測試中都產(chǎn)生F2,由此令所述分組被接受。因?yàn)榇诉^程甚至在最后的多維分析中也幾乎是確切的,故而它是一個(gè)接受分組的測試,而不是一個(gè)僅僅將這些分組丟掉的測試。只有已經(jīng)進(jìn)行的求近似是過濾中的屬性測試的截?cái)唷4藛栴}不是不可解決的。例如可以通過以下過程防止它發(fā)生1.創(chuàng)建多個(gè)網(wǎng)格表,包含對(duì)應(yīng)于全集的子集置換的屬性子集(例如,選擇($1、$2、$3)作為一個(gè)集合,($S2、$4、$5)作為另一另一個(gè)集合)。具有長謂詞列表的過濾將由至少一個(gè)這種網(wǎng)格表加以覆蓋;或者2.對(duì)全部屬性執(zhí)行交叉乘積測試。因?yàn)榫哂写罅恐^詞的過濾在性質(zhì)上是可選擇的,所以走捷徑的概率是很高的,并且上面在步驟c略述的任一項(xiàng)丟掉分組條件(例如,過濾標(biāo)簽列表交集)可以在測試所有屬性之前發(fā)生。
因?yàn)樽屵^濾包含大量謂詞是不實(shí)用的并且稀少的,所以過濾表達(dá)式的某種截?cái)?,雖然是必需的,但是可以不頻繁地發(fā)生。
組合空間量化和交叉乘積的此混合過程以及如上所述的多表格查找方法構(gòu)成此專利的另一個(gè)關(guān)鍵的貢獻(xiàn)點(diǎn),這是因?yàn)樗M合的這兩種方法解決了任一種交叉乘積解決方案所經(jīng)常面對(duì)的不可擴(kuò)縮性的傳統(tǒng)問題,如下面將看到的那樣。
在點(diǎn)過濾的情況下,交叉乘積解決方案是確切的。然而在范圍過濾的情況下,由于在任意對(duì)相鄰過濾邊界之間需要存儲(chǔ)作為過濾標(biāo)簽列表的交叉乘積,故而存在傳統(tǒng)上的兩個(gè)問題。第一,當(dāng)向系統(tǒng)注入彼此高度重疊的范圍過濾時(shí),存儲(chǔ)具有N2階,其中N是過濾的數(shù)目。第二,交集步驟列表具有N階,當(dāng)N較大時(shí),這可能是一個(gè)非常慢的過程。組合網(wǎng)格搜索以及交叉乘積方法的混合處理方式將兩個(gè)問題歸結(jié)為合理的大小,因?yàn)橹挥心切┞淙胂嗤W(wǎng)格單元的過濾邊界需要加以存儲(chǔ),并且對(duì)于落入該網(wǎng)格單元的邊界的分組進(jìn)行匹配。在某種意義上,所述網(wǎng)格單元已經(jīng)接替了根據(jù)鄰近過濾邊界之間的間隔存儲(chǔ)過濾標(biāo)簽列表的角色,并且因?yàn)榇嬖谳^少數(shù)網(wǎng)格單元,所以需要存儲(chǔ)過濾標(biāo)簽列表。
如果基于過濾邊界分布來構(gòu)造所述網(wǎng)格,那么在任一屬性維數(shù)中在每個(gè)網(wǎng)格單元間隔中將產(chǎn)生偶數(shù)過濾。當(dāng)N變小時(shí),存儲(chǔ)問題N2就變得不那么難以對(duì)付。例如,32間隔的網(wǎng)格就有可能減少存儲(chǔ)問題為(N/32)2*32=N/32。列表交集速度問題同樣地得以減輕。
只要網(wǎng)格單元的數(shù)目在實(shí)際上保持一個(gè)小的數(shù)目,如上所述的交叉乘積方法就能很好地其作用。將屬性劃分為各種置換集并且為每個(gè)集分配一個(gè)CBR表的方法將每個(gè)表中的網(wǎng)絡(luò)單元數(shù)目限制為合理的數(shù)目。例如,如果L是每個(gè)屬性軸中的劃分?jǐn)?shù)目,k數(shù)目的屬性的網(wǎng)格單元的總數(shù)就會(huì)是Lk。通過使用多個(gè)表(大小=4)的方法,現(xiàn)在將大小減少為M L4,其中M小于置換的總數(shù)k!/(k-4)!4 !。應(yīng)注意的是,一些置換彼此高度重疊并且只有一個(gè)可以挑選來作為代表。(例如,{$1,$2,$3},{$1,$2,$4},{$1,$2,$5})。
依照本實(shí)施例的CBR方法(例如,方法480)(減去確切的逐謂詞的過濾匹配步驟516和524)具有至少以下性質(zhì)1)分組轉(zhuǎn)發(fā)速度飛快,并且可與IP路由相比較,只需要O[klog(L)]個(gè)步驟,其中L是所有屬性軸中的劃分?jǐn)?shù)目而k是被量化并且映射的屬性數(shù)目。使用4個(gè)屬性以及每屬性32個(gè)劃分,需要大約22步;2)分組轉(zhuǎn)發(fā)速度實(shí)時(shí)地是恒定的。它不取決于過濾的數(shù)目(N)。此性質(zhì)使得估計(jì)此CBR方法足可支撐的最大帶寬容量成為可能;3)對(duì)于動(dòng)態(tài)的更新它也是快速的。例如,插入過濾根據(jù)實(shí)現(xiàn)方式可以采用O(Lk)步;4)存儲(chǔ)需求很小并且有限,近似地是k(L-1)SA+NxLk/8,其中SA是采用字節(jié)的屬性數(shù)據(jù)類型的大小,而Nr是路由器處轉(zhuǎn)發(fā)接口的數(shù)目。第一項(xiàng)是數(shù)據(jù)結(jié)構(gòu)的所有k數(shù)目個(gè)索引部分的總體大小,并且后者是被索引的實(shí)際轉(zhuǎn)發(fā)部分(即,CBR表)。對(duì)于依照4整數(shù)屬性的32劃分的CBR來配置的具有8個(gè)接口的路由器而言,存儲(chǔ)量只有1 MB;5)與大得多的轉(zhuǎn)發(fā)部分相分離的索引數(shù)據(jù)結(jié)構(gòu)應(yīng)該要非常服從于高速緩存。例如,使用上面的例子,索引結(jié)構(gòu)的大小只有(4)(31)(4)=496字節(jié);并且6)所述網(wǎng)格也是對(duì)于分組和組織過濾的工具。它對(duì)于在傳播過濾以前合并過濾是尤為有用的,由此使得此方法在包括大量預(yù)訂者的系統(tǒng)中非常易于擴(kuò)縮。概括地說,CBR方法480是快速的、可斷言的、動(dòng)態(tài)的、可擴(kuò)縮的、沒有存儲(chǔ)需求的、靈活的,以及由此對(duì)于在發(fā)行-預(yù)訂網(wǎng)絡(luò)的核心中進(jìn)行部署是切實(shí)可行的。
自適應(yīng)網(wǎng)格如上所述,所述網(wǎng)格是通過在空間上量化屬性空間而形成的。一般說來,所述屬性空間是均勻地量化的。然而,如果將所述屬性空間自適應(yīng)地在空間上加以量化,例如,基于過去的分組分布加以量化,那么網(wǎng)格的分辯率以及因此的CBR方法480的效率可以得以改進(jìn)。自適應(yīng)的量化確定很可能要為其接收最匹配的分組的屬性空間的區(qū)域。例如,自適應(yīng)的量化可以確定在其中過去的分組分布大多集中的屬性空間的區(qū)域。然后依照比屬性空間其他量化區(qū)域更大的程度來量化所確定的一個(gè)或多個(gè)區(qū)域。換言之,在所確定的區(qū)域中,網(wǎng)格單元的數(shù)目將大于屬性空間中其它量化區(qū)域的,并且網(wǎng)格單元的大小要小于其它量化區(qū)域的。自適應(yīng)網(wǎng)格的以下2個(gè)圖舉例說明了此情況
在第一個(gè)圖中,將精細(xì)的網(wǎng)格疊加在繁重的分組通信量的區(qū)域上。在第二圖中,舉例說明了一種替代方法,在任一的屬性軸上改變網(wǎng)格間距,以致更多的網(wǎng)格單元更加精細(xì),并且更加集中于例如通過量化坐標(biāo)(3,2)、(4,2)、(3,3)以及(4,3)包圍的面積中。
這種自適應(yīng)網(wǎng)格的優(yōu)勢是很多的。正如在此圖中可以看到的那樣,已經(jīng)自適應(yīng)地量化了區(qū)域Z。在區(qū)域Z中大概是四個(gè)(4)網(wǎng)格單元沒有進(jìn)行自適應(yīng)的量化,目前存在64個(gè)(64)網(wǎng)格單元。正如此圖中所示那樣,盡管過濾覆蓋范圍信息sS預(yù)先可能會(huì)具有部分覆蓋的三個(gè)網(wǎng)格單元,依照自適應(yīng)網(wǎng)格只存在一個(gè)(1)部分覆蓋的網(wǎng)格單元Y。因此,潛在的泄漏量被顯著地減少。此外,如果區(qū)域Z中的六十四個(gè)網(wǎng)格單元的一個(gè)或多個(gè)被部分地覆蓋了,那么這些網(wǎng)格單元中的每一個(gè)的潛在泄漏量就會(huì)顯著地小于在部分覆蓋的網(wǎng)格單元Y中的泄漏量。這是因?yàn)閰^(qū)域Z中這種部分覆蓋的網(wǎng)格單元中的每一個(gè)的松弛區(qū)域會(huì)顯著地小于部分覆蓋的網(wǎng)格單元Y中的松弛區(qū)域。因此,可以通過使用自適應(yīng)網(wǎng)格來提高CBR方法480的效率。
第二種方法具有不像第一種方法那樣增加存儲(chǔ)需求的優(yōu)勢,這是因?yàn)樯a(chǎn)來相同數(shù)目的網(wǎng)格單元。然而,與前者方法相比,它也產(chǎn)生來稍欠的準(zhǔn)確性。
依照發(fā)行-預(yù)訂體系結(jié)構(gòu)實(shí)現(xiàn)查詢-響應(yīng)此處所述的是對(duì)于使用發(fā)行-預(yù)訂網(wǎng)絡(luò)來支持查詢-響應(yīng)類型交互的一系列方法。所述方法涉及從發(fā)行-預(yù)訂類型的原始抽象(也就是發(fā)行物(也稱為通知)以及預(yù)訂)到那些查詢-響應(yīng)類型(也就是廣告(也稱為提供)、查詢以及響應(yīng))的不同映射。附加變化區(qū)別單個(gè)(singleton)廣告和查詢(其表征單個(gè)內(nèi)容項(xiàng))與廣告以及查詢集(其表征多個(gè)內(nèi)容項(xiàng))的使用。
如上所述,在發(fā)行-預(yù)訂網(wǎng)絡(luò)中,發(fā)行者創(chuàng)建并且分送稱為發(fā)行物或者通知的內(nèi)容項(xiàng)。在許多系統(tǒng)中,將這些信息構(gòu)造為類型屬性的元組,并且在一些系統(tǒng)中,稱為主題的區(qū)別屬性用作所述通知的主分類器。預(yù)訂者創(chuàng)建并且分發(fā)預(yù)訂,這些預(yù)訂表征他們感興趣的通知。通知通常是單個(gè)內(nèi)容項(xiàng),而預(yù)訂通常使用復(fù)雜的表達(dá)式來表征一組感興趣的通知。相同實(shí)體可以充當(dāng)發(fā)行者和預(yù)訂者兩者。通過讓發(fā)行者將內(nèi)容項(xiàng)推送給預(yù)訂者來進(jìn)行交互。這種推式遞送在預(yù)訂和通知之間遵守一定的時(shí)間次序;具體來講,通知只相對(duì)于在通知時(shí)活動(dòng)的預(yù)訂匹配,而不相對(duì)于將來的預(yù)訂匹配。
不同形式的交互,查詢-響應(yīng)類型位于許多通用分布式應(yīng)用之下,所述應(yīng)用包括網(wǎng)頁搜索引擎和端-端的內(nèi)容共享系統(tǒng)。在查詢-響應(yīng)軟件應(yīng)用中,稱為廣告客戶或者生產(chǎn)者的實(shí)體向其他實(shí)體制造可用的內(nèi)容,并且所述實(shí)體使得這種內(nèi)容的存在通過如下廣告或者供應(yīng)使人們得知,所述廣告或者供應(yīng)表征所述實(shí)體所能夠提供的單個(gè)或者感興趣的內(nèi)容項(xiàng)集。稱為請(qǐng)求者或者消費(fèi)者的另一個(gè)實(shí)體廣播如下查詢或者請(qǐng)求,所述查詢或者請(qǐng)求表征單個(gè)內(nèi)容項(xiàng)或者感興趣的內(nèi)容項(xiàng)集。然后所述應(yīng)用負(fù)責(zé)定位匹配的廣告并且作為響應(yīng)將它們遞送至消費(fèi)者。通過讓消費(fèi)者將廣告和內(nèi)容項(xiàng)這兩者本身一起從生產(chǎn)者拉回來而進(jìn)行交互。這種拉回式遞送在廣告和查詢之間遵循一定的時(shí)間次序;具體來講,一個(gè)查詢只獲得關(guān)于在查詢的時(shí)候活動(dòng)的廣告的響應(yīng),而不獲得有關(guān)將來廣告的響應(yīng)。
此處所述的實(shí)施例是用于使用發(fā)行-訂閱的推送類型交互來支持查詢-響應(yīng)的拉回類型交互的一系列方法。以下描述用于實(shí)現(xiàn)它的五個(gè)示例性方法。
1.圖24A是舉例說明使用發(fā)行-預(yù)訂系統(tǒng)的第一查詢-響應(yīng)方法600的流程圖。方法600可以使用各種發(fā)行-預(yù)訂系統(tǒng)執(zhí)行。例如,方法600可以在智能路由器92中(或者在ASIC 91中包含的相應(yīng)功能中)的軟件控制下由處理器93加以執(zhí)行,并且例如采用如由代理128和105所代表的軟件模塊加以實(shí)現(xiàn),所述軟件模塊由用戶機(jī)器122和100中的處理器134和114加以執(zhí)行。
在方法600中,使用發(fā)行-預(yù)訂網(wǎng)絡(luò)來匹配廣告和查詢,借此廣告客戶使用預(yù)訂來注冊單個(gè)或者廣告集(步驟602),并且請(qǐng)求者使用發(fā)行物/通知來分發(fā)單個(gè)查詢(步驟604)。換言之,將單個(gè)或者廣告集映射至預(yù)訂,并且將單個(gè)查詢映射至通知。任何匹配的通知由發(fā)行-預(yù)訂系統(tǒng)推送給廣告客戶,所述發(fā)行-預(yù)訂系統(tǒng)使用所述預(yù)訂(廣告)作為對(duì)通知(查詢)的過濾來執(zhí)行CBR(步驟606)。所述CBR可以使用上述基礎(chǔ)結(jié)構(gòu)并依照任何上述方法來執(zhí)行。所述廣告客戶經(jīng)由一些非發(fā)行-預(yù)訂手段(例如,至所述請(qǐng)求者的單播連接)或者經(jīng)由使用發(fā)行-預(yù)訂網(wǎng)絡(luò)的協(xié)商一致的慣例(例如,要求請(qǐng)求者注冊獨(dú)立的預(yù)訂(對(duì)應(yīng)于請(qǐng)求者的通知),來接收所述響應(yīng),其作為通知被遞送),來接收所述通知并且向請(qǐng)求者返回響應(yīng)(步驟608)。
圖24B是進(jìn)一步舉例說明方法600的順序圖。圖24B描述了(例如使用發(fā)行者機(jī)器100的)廣告客戶、CBR基礎(chǔ)結(jié)構(gòu)(例如智能路由器92的網(wǎng)絡(luò))以及(例如,使用預(yù)訂者機(jī)器122的)請(qǐng)求者之間的交互。所述順序圖舉例說明了多個(gè)處理器(例如,處理器93、處理器114以及處理器132)優(yōu)選地執(zhí)行方法600。
2.圖24C是舉例說明使用發(fā)行-預(yù)訂系統(tǒng)的第二種查詢-響應(yīng)方法610的流程圖。方法610可以使用各種發(fā)行-預(yù)訂系統(tǒng)執(zhí)行。例如,方法610可以在智能路由器92中(或者在ASIC 91中包含的相應(yīng)功能中)的軟件控制下由處理器93加以執(zhí)行,并且例如如由代理128和105所代表的采用軟件模塊加以實(shí)現(xiàn),所述軟件模塊由用戶機(jī)器122和100中的處理器134和114加以執(zhí)行。
在方法610中,生產(chǎn)者使用相關(guān)的主題對(duì)將內(nèi)容項(xiàng)一式兩份進(jìn)行分發(fā)。生產(chǎn)者使用單個(gè)內(nèi)容項(xiàng)的初始廣告的一對(duì)主題的其中的一個(gè)(稱為初始主題)發(fā)行通知(步驟616)。生產(chǎn)者使用該對(duì)的另一個(gè)主題(稱為過去的主題)來發(fā)行通知,以便周期地再發(fā)行那些已經(jīng)用初始主題首次發(fā)行的廣告(步驟618)。消費(fèi)者提交對(duì)初始主題的一個(gè)預(yù)訂,以便接收新的廣告(步驟612),并且它提交對(duì)過去的主題的另一個(gè)預(yù)訂以便接收先前所發(fā)行的廣告(步驟614)。作為選擇,消費(fèi)者可以只預(yù)訂先前發(fā)行的廣告。匹配的先前發(fā)行的廣告(和在預(yù)訂情況下的新的廣告)被使用CBR推送給消費(fèi)者(步驟620)。在某個(gè)點(diǎn),消費(fèi)者決定取消對(duì)過去的主題的預(yù)訂的注冊(步驟622)。
圖24D是進(jìn)一步舉例說明方法610的順序圖。圖24D描述了(例如使用發(fā)行者機(jī)器100的)廣告客戶、CBR基礎(chǔ)結(jié)構(gòu)(例如智能路由器92的網(wǎng)絡(luò))以及(例如,使用預(yù)訂者機(jī)器122的)消費(fèi)者/請(qǐng)求者之間的交互。所述順序圖舉例說明了多個(gè)處理器(例如,處理器93、處理器114以及處理器132)優(yōu)選地執(zhí)行方法610。
3.圖24E是舉例說明使用發(fā)行-預(yù)訂系統(tǒng)的第三種查詢-響應(yīng)方法630的流程圖。方法630可以使用各種發(fā)行-預(yù)訂系統(tǒng)執(zhí)行。例如,方法630可以在智能路由器92中(或者在ASIC 91中包含的相應(yīng)功能中)的軟件控制下由處理器93執(zhí)行,并且例如采用如由代理128和105所代表的軟件模塊加以實(shí)現(xiàn),所述軟件模塊由用戶機(jī)器122和100中的處理器134和114加以執(zhí)行。
發(fā)行-預(yù)訂網(wǎng)絡(luò)被補(bǔ)充了高速緩存特征,諸如如上所述的那個(gè),借此高速緩存在過去發(fā)行的通知(步驟632)并且使其對(duì)于將來的預(yù)訂者可用。生產(chǎn)者發(fā)行通知以便為單個(gè)內(nèi)容項(xiàng)做廣告(步驟634)。消費(fèi)者提交單個(gè)預(yù)訂以便查詢感興趣的先前登廣告的內(nèi)容項(xiàng)(這些內(nèi)容項(xiàng)通過從高速緩存重放相關(guān)的通知來遞送),并且獲得感興趣的內(nèi)容項(xiàng)的將來廣告(步驟636)。如在傳統(tǒng)的發(fā)行-預(yù)訂網(wǎng)絡(luò)中那樣,所述預(yù)訂表征一組感興趣的內(nèi)容項(xiàng)。匹配的先前發(fā)行的通知被從高速緩存重放(步驟638),并且使用CBR將其推送給消費(fèi)者(步驟640)。
圖24F是進(jìn)一步舉例說明方法630的順序圖。圖24F描述了(例如使用發(fā)行者機(jī)器100的)廣告客戶、CBR基礎(chǔ)結(jié)構(gòu)(例如智能路由器92的網(wǎng)絡(luò))以及(例如,使用預(yù)訂者機(jī)器122的)消費(fèi)者/請(qǐng)求者之間的交互。所述順序圖舉例說明了多個(gè)處理器(例如,處理器93、處理器114以及處理器132)優(yōu)選地執(zhí)行方法630。
4.圖24G和24H是舉例說明使用發(fā)行-預(yù)訂系統(tǒng)的第四種查詢-響應(yīng)方法650的流程圖。方法650可以使用各種發(fā)行-預(yù)訂系統(tǒng)執(zhí)行。例如,方法650可以在智能路由器92中(或者在ASIC 91中包含的相應(yīng)功能中)的軟件控制下由處理器93執(zhí)行,并且例如采用如由代理128和105所代表的軟件模塊加以實(shí)現(xiàn),所述軟件模塊由用戶機(jī)器122和100中的處理器134和114加以執(zhí)行。
圖24G舉例說明了方法650的數(shù)據(jù)廣告階段。接收一個(gè)數(shù)據(jù)廣告(步驟652)。為了允許消費(fèi)者使用預(yù)訂來規(guī)定查詢集并且允許生產(chǎn)者使用通知來為單個(gè)內(nèi)容項(xiàng)做廣告,并且為了實(shí)現(xiàn)因預(yù)訂和通知的這種使用而要求的時(shí)間次序的反轉(zhuǎn),執(zhí)行本體(ontology)變換,借此將數(shù)據(jù)廣告轉(zhuǎn)換為等效預(yù)訂(步驟654)。將所述預(yù)訂(轉(zhuǎn)換的數(shù)據(jù)廣告)向CBR網(wǎng)絡(luò)注冊(例如,將所述預(yù)訂存儲(chǔ)在智能路由器92中)(步驟656)。
圖24H舉例說明了方法650的查詢-響應(yīng)階段。接收查詢(步驟658)。如同使用上面的數(shù)據(jù)廣告一樣,使用本體變換將所述查詢變換為等效通知(步驟660)。在步驟654和660中從舊的空間(例如數(shù)據(jù)廣告)向新空間(例如等效預(yù)訂)的變換首先包含在新空間中定義屬性,這些屬性代表來自于舊空間的屬性和表達(dá)式運(yùn)算符的組合。然后所述變換包含在新空間中創(chuàng)建通知和預(yù)訂,這些通知和預(yù)訂分別相當(dāng)于舊的空間的查詢和廣告。所述變換必須滿足這樣的要求當(dāng)且僅當(dāng)未變換的數(shù)據(jù)廣告與未變換的查詢匹配時(shí),所述通知才與所述預(yù)訂匹配。
通過發(fā)行-預(yù)訂系統(tǒng)來將所述通知(變換的查詢)推送給廣告客戶(步驟662),所述發(fā)行-預(yù)訂系統(tǒng)使用作為對(duì)通知的過濾的預(yù)訂(變換的數(shù)據(jù)廣告)執(zhí)行CBR。所述CBR可以使用上述基礎(chǔ)結(jié)構(gòu)并依照任何上述方法來執(zhí)行。所述廣告客戶經(jīng)由某種非發(fā)行-預(yù)訂手段、或者經(jīng)由使用發(fā)行-預(yù)訂網(wǎng)絡(luò)的協(xié)商一致的慣例接收變換的通知并且向請(qǐng)求者返回響應(yīng)的數(shù)據(jù)(步驟664)。
圖24I是進(jìn)一步舉例說明方法650的順序圖。圖24I描述了(例如使用發(fā)行者機(jī)器100的)廣告客戶、CBR基礎(chǔ)結(jié)構(gòu)(例如智能路由器92的網(wǎng)絡(luò))以及(例如,使用預(yù)訂者機(jī)器122的)請(qǐng)求者之間的交互。所述順序圖舉例說明了多個(gè)處理器(例如,處理器93、處理器114以及處理器132)可以執(zhí)行方法650。
以下是本體變換的詳細(xì)說明。以下假定是就下層結(jié)構(gòu)作出的一個(gè)廣告(advertisement)是一個(gè)元素A∈A,致使A=V1×V2×...×Vm,其中Vi是一個(gè)數(shù)據(jù)集(1≤i≤m)并且Aj被用來指第j個(gè)A元素(1≤j≤m);一個(gè)查詢(query)是一個(gè)邏輯表達(dá)式E∈Q,此處Q={E,EA→B|E=(F and G)or E=(F or G)or E=Aiαivi,F(xiàn),G∈Q,αiVi×Vi→B,vi∈Vi};并且,一般認(rèn)為當(dāng)且僅當(dāng)E(A)=真(true)時(shí),一個(gè)查詢E∈E才與廣告A∈A匹配。同樣,還作出以下假定一個(gè)通知(notification)是一個(gè)元素N∈N,致使N=V1×V2×...×Vn,其中Vi是一個(gè)數(shù)據(jù)集(1≤i≤n),并且Nj指的是第j個(gè)N元素(1≤j≤n);一個(gè)預(yù)訂(subscription)是一個(gè)邏輯表達(dá)式S∈S,其中S={S,SN→B|S=(F and G)or S=(F or G)orS=Niαivi,F(xiàn),G∈S,N∈N,αiVj×Vi→B,vi∈Vi};并且,一般認(rèn)為當(dāng)且僅當(dāng)S(A)=真時(shí),通知N∈N才與預(yù)訂S∈S匹配。將A和S之間、Q和N之間的映射定義為一對(duì)函數(shù)(MPAS,MPQN),MPASA→S,MPQNQ→N,致使對(duì)于任一A∈A并且Q∈Q來說S=MPAS(A)N=MPQN(Q)S(N)=Q(A)即(MPAS(A))(MPQN(Q))=Q(A)作為簡化假設(shè)條件,一個(gè)查詢表達(dá)式往往被考慮只包括單謂詞(諸如“Aiαivi”)和“and”運(yùn)算符任一查詢表達(dá)式都可以用DNF格式表達(dá)并且處理作為獨(dú)立的查詢的每個(gè)析取項(xiàng))。下一部分呈送示例性映射解決方案,首先對(duì)特別情況應(yīng)用然后對(duì)一般情況應(yīng)用。
單查詢映射給出基本方案,其中一個(gè)查詢包括一個(gè)單謂詞Q=Aαv,一個(gè)廣告元組只包含一個(gè)元素(即A=V),并且α是為V定義的唯一運(yùn)算符,所述映射問題成為N=MPQN(Aαv)and S=MPAS(A=a)。對(duì)于“A=a”廣告以及“Aαv”查詢來說的映射是S=“Aαα-1a”并且N=“Aα=v”,其中,α-1V×V→B,致使對(duì)于任意的x,y∈V來講,“xα-1y=y(tǒng)αx”。
對(duì)于當(dāng)存在多個(gè)運(yùn)算符α1,α2,...αn的情況,所述映射是S=MPAS(A=a)=“(Aα1α1-1a)and(Aα2α2-1a)and...and(Aαnαn-1a)”,并且N=MPQN(Aαka)=“Aα1=nullα1,Aα2=nullα2,...,Aαk=a,...,Aαn=nullan”,其中,對(duì)于任意x∈V和i=1,n,xαi-1nullai=真。
替代性的映射可以是S=MPAS(A=a)=“(Aα1α1-1a)or(Aα2α2-1a)or...or(Aαnαn-1a)”并且N=MPQN(Aαka)=“Aα1=nulla1,Aα2=nulla2,...,Aαk=a,...,Aαn=nullan”,其中,對(duì)于任意x∈V和i=1,n,xαi-1nullαi=假(false)。
析取的查詢映射對(duì)于一個(gè)單運(yùn)算符以及一個(gè)析取的查詢來說,所述映射看起來如下A=“A=a”,Q=“(Aαa1)and(Aαa2)...(Aαaq)”,S=“Aαα-1a”,并且 N=“Aα=SUPERα(a1,a2,...,an)”,其中SUPERα(a1,a2,...,an)V×V×...→V,“(xαa1)and(xαa2)...(xαaq)”<=>“xαSUPERα(a1,a2,...,an)”并且SUPERα(φ)=nulla。注意,對(duì)于任一運(yùn)算符來說不確保函數(shù)SUPERα(a1,a2,...,a)存在(實(shí)際上,人們可以容易地定義對(duì)其這種性質(zhì)無法定義的運(yùn)算符)。然而,對(duì)于大多數(shù)通用運(yùn)算符來說,這種函數(shù)是可用的(即,對(duì)于“<”,其是MAX(..),對(duì)于“in”U(...),對(duì)于“=”是a=a1/如果a1==a2...==an并且還可以為null等。
對(duì)于多個(gè)運(yùn)算符以及析取的查詢來說,映射看起來如下(我們假定每個(gè)運(yùn)算符使用不止一次——前一種情況顯示出有多少例子可以被減少到此情形)A=“A=a”,Q=(Aαxaαx)and(Aαyaαy)...(AαZaαz)”,S=“(Aα1α1-1a)and(Aα2α2-1a)and...and(Aαnαn-1a)”,and N=(...,Aαk=nullai,如果αi由Q使用,或者還可以是aαi,...)。
一般情況映射給出廣告A以及查詢Q,A=“A1=a1,A2=a2,...An=an”,并且Q=“...and(Aiαikai)and...”。所述映射如下所示S=“...and(Aikαik-1ai)and...”,其中i=1,n,其中n=來自于所述廣告的字段數(shù)目,并且k=1,mi,其中mi=對(duì)字段類型支持的運(yùn)算符數(shù)目,并且N=“...,Aαk=SUPERαk({aαk1,aαk2,...}),...”,其中aαki是出現(xiàn)在“Aikαik-1aαki”形式的查詢謂詞內(nèi)部的值,如果對(duì)于αik來說現(xiàn)在存在這種元素的話。
以下是此處所述的映射變換的一些例子。
例子1我們考慮一種簡單的股票行情信息系統(tǒng)。所述信息結(jié)構(gòu)通過2元組(Symbol(符號(hào)),Price(價(jià)格))來描述,其中Symbol屬于字符串類型,并且Price屬于浮點(diǎn)類型。查詢被公式化為原語謂詞的合取項(xiàng)和/或析取項(xiàng),其中所述謂詞具有如下的格式“Symbol==<stringvalue>”或者“Price==<float value>”。所述數(shù)據(jù)集是A1=(“IBM”,70.12),
A2=(“LU”,5.30),A3=(“KKD”,30.23),以及A4=(“ATT”,5.30)。
所述查詢是Q1=(Symbol==“IBM”),Q2=(Symbol==“LU”)AND(Price==5.30),以及Q3=(Symbol==“KKD”)OR(Price==5.30)。
因此,所述查詢匹配(即所述響應(yīng))是Q1{A1},Q2{A2},以及Q3{A2,A3,A4}。
對(duì)于上面的查詢-響應(yīng)的發(fā)行-預(yù)訂映射是通知方案(Symbol==,Price==)對(duì)數(shù)據(jù)廣告的預(yù)訂映射S1=MPAS(A1)=(Symbol==“IBM”)AND(Price==70.12),S2=MOAS(A2)=(Symbol==“LU”)AND(Price==5.30),S3=MPAS(A3)=(Symbol==“KKD”)AND(Price==30.23),以及S4=MOAS(A4)=(Symbol==“ATT”)AND(Price==5.30)。
對(duì)查詢的通知映射N1=MPQN(Q1)=(“IBM”,*),N2=MPQN(Q2)=(“LU”,5.30),以及N31,N32=MPQN(Q3)=(“KKD”,*),(*,5.30)。
因此,預(yù)訂匹配是S1{N1},S2{N2,N32},S3{N31},以及S4{N32}。
所述互逆通知匹配是N1 {S1} MPQN(Q1){MPAS(A1)},N2 {S2} MPQN(Q2){MPAS(A2)},以及N31,N32{S2,S3,S4)MPQN(Q3){MPAS(A2),MPAS(A3),MPAS(A4)}。
例子2
我們再次考慮一種簡單的股票行情信息系統(tǒng)。所述信息結(jié)構(gòu)通過2元組(Symbol(符號(hào)),Price(價(jià)格))來描述,其中Symbol屬于字符串類型,并且Price屬于浮點(diǎn)類型。查詢被公式化為原語謂詞的合取項(xiàng)和/或析取項(xiàng),其中所述謂詞屬于如下格式“Symbol==<stringvalue>”或者“Price==<float value>”或者“Price><floatvalue>”或者“Price<<float value>”。
所述數(shù)據(jù)集是A1=(“IBM”,70.12),A2=(“LU”,5.30),A3=(“KKD”,30.23),以及A4=(“ATT”,5.30)。
所述查詢是Q1=(Price>5.00),Q2=(symbol==“LU”)AND(Price<40.00),以及Q3=(Symbol==“KKD”)OR(Price=5.30)。
因此,所述查詢匹配(即所述響應(yīng))是Q1{A1,A2,A3,A4},Q2{A2},以及Q3{A2,A3,A4}。
對(duì)上述查詢-響應(yīng)的所述發(fā)行-預(yù)訂映射所述通知方案是(Symbol==,Price==,Price>,Price<)。
對(duì)數(shù)據(jù)廣告的所述預(yù)訂映射是S1=MPAS(A1)=(Symbol==″IBM″)AND(Price==70.12)AND(Price><=70.
12)AND(Price <>=70.12),S2=MPAS(A2)=(Symbol==″LU″)AND(Price==5.30)AND(Price><=5.30)AND(Price<>=5.30),S3=MPAS(A3)=(Symbol==″KKD″)AND(Price==30.23)AND(Price>
<=30.23)AND(Price <>=30.23),以及S4=MPAS(A4)=(Symbol==″ATT″)AND(Price==5.30)AND(Price><=5.30)AND(Price<>=5.30)。
查詢的所述通知映射是
N1=MPQN(Q1)=(*,*,5.00,∞),N2=MPQN(Q2)=(″LU″,*,-∞,40.00),以及N31,N32=MPQN(Q3)=(″KKD″,*,-∞,∞),(*,5.30,-∞,∞)。
因此,所述預(yù)訂匹配是S1{N1},S2{N1,N2,N32},S3{N1,N31},以及S4{N1,N32}。
所述互逆通知匹配是N1 {S1} MPQN(Q1){MPAS(A1)},N2 {S2} MPQN(Q2){MPAS(A2)},andN31,N32{S2,S3,S4}MPQN(Q3){MPAS(A2),MPAS(A3),MPAS(A4)}.
5.采用第五個(gè)方法,向所述發(fā)行-預(yù)訂網(wǎng)絡(luò)補(bǔ)充附加接口點(diǎn)和/或消息格式,所述消息格式使得生產(chǎn)者能夠區(qū)別通知、廣告以及響應(yīng),并且使得消費(fèi)者能夠區(qū)別預(yù)訂以及查詢。所述網(wǎng)絡(luò)遵循各種原語之間的差別,同時(shí)使用一致的數(shù)據(jù)結(jié)構(gòu)集、算法以及協(xié)議來同時(shí)實(shí)現(xiàn)兩種類型的交互。
持久的并且可靠的消息遞送此處所述的實(shí)施例提供了用于面對(duì)網(wǎng)絡(luò)、鏈路和/或發(fā)行-預(yù)訂網(wǎng)絡(luò)中的節(jié)點(diǎn)故障時(shí)持久性存儲(chǔ)消息以及恢復(fù)、重啟和/或繼續(xù)消息流動(dòng)的設(shè)備和方法。消息持久性是存儲(chǔ)消息并且在以后檢索它們的能力。大量專用應(yīng)用-例如電子郵件,對(duì)于經(jīng)由網(wǎng)絡(luò)的消息流動(dòng)通常要求持續(xù)很久的消息持久性。在理想條件下,在網(wǎng)絡(luò)中沒有故障的情況下,始終連接的預(yù)訂者除了這些專用應(yīng)用所要求的持久性之外,應(yīng)該不會(huì)需要任何持久性。然而,實(shí)際上,消息當(dāng)穿行通過網(wǎng)絡(luò)時(shí)會(huì)因?yàn)槿缦碌母鞣N原因而可能“丟失”,所述原因例如是(1)發(fā)生在網(wǎng)絡(luò)內(nèi)或者在用戶端的故障或者緩沖器上溢,或者(2)用戶明確地?cái)嚅_網(wǎng)絡(luò)連接并且在一定時(shí)間周期之后重新連接。
將本實(shí)施例的事件通知平臺(tái)的持久性模型分為兩級(jí),短期持久性以及長期持久性。短期持久性被設(shè)計(jì)成從因?yàn)榫W(wǎng)路擁塞或者短期鏈路故障造成的分組丟失中恢復(fù)過來。長期持久性被設(shè)計(jì)成從其他故障中恢復(fù),例所述其他故障包括用戶連接的丟失、用戶機(jī)器的故障、應(yīng)用故障和/或長期網(wǎng)絡(luò)故障。
通道(例如如上所述的)可以是持久的或者實(shí)時(shí)的。一個(gè)實(shí)時(shí)通道發(fā)送通常只用于實(shí)時(shí)的數(shù)據(jù),并且沒有任何專用應(yīng)用持久性需求。一個(gè)持久性通道存儲(chǔ)穿行網(wǎng)絡(luò)達(dá)一個(gè)持久性時(shí)間幀T的數(shù)據(jù)。換言之,一個(gè)持久性通道的持久性在一個(gè)時(shí)間幀T內(nèi)得以保證。這種數(shù)據(jù)的持久性是例如通過以下步驟實(shí)現(xiàn)的在通道的持久的持續(xù)期間內(nèi)在每個(gè)邊緣節(jié)點(diǎn)高速緩存數(shù)據(jù);在故障條件下從高速緩存器中從對(duì)用戶透明的高速緩存器中檢索數(shù)據(jù);使得用戶能夠顯式地從高速緩存器中檢索數(shù)據(jù);通過防止路由器故障并且在路由器之間設(shè)立可靠的隧道來經(jīng)由網(wǎng)絡(luò)持久的進(jìn)行數(shù)據(jù)流動(dòng);以及通過復(fù)制保護(hù)所述通道部分免于故障。
A.通過高速緩存的持久性時(shí)間持久性(具有時(shí)間幀T)是從所述發(fā)行-預(yù)訂網(wǎng)絡(luò)檢索數(shù)據(jù)的最后時(shí)間幀T的能力。例如,如果預(yù)訂者離開所述網(wǎng)絡(luò),那么在預(yù)訂者不在期間在持久性通道上所接收的任何數(shù)據(jù)在(從收到數(shù)據(jù)開始的)時(shí)間幀T內(nèi)在網(wǎng)絡(luò)中保持著。如果用戶在時(shí)間幀T內(nèi)返回,那么用戶就不會(huì)丟失任何數(shù)據(jù)。
圖25A是舉例說明提供通過高速緩存的持久性的發(fā)行-預(yù)訂網(wǎng)絡(luò)的某些部件的框圖。如圖所示,所述網(wǎng)絡(luò)包括核心路由節(jié)點(diǎn)以及邊緣路由節(jié)點(diǎn)。優(yōu)選的是,每個(gè)路由節(jié)點(diǎn)包括智能路由器92(與邊緣路由節(jié)點(diǎn)一起示出)以及常規(guī)的骨干路由器(未示出),如上文在圖4中所述的。需要對(duì)持久性通道執(zhí)行高速緩存的每個(gè)智能路由器92優(yōu)選地具有與其位于一起的高速緩存管理器218,如圖25A中所示。所述高速緩存管理器218如上參照?qǐng)D8所述。所述智能路由器92優(yōu)選地負(fù)責(zé)短期持久性,以便檢索丟失的數(shù)據(jù)或者從路由器故障中恢復(fù)。所述高速緩存管理器218負(fù)責(zé)高速緩存數(shù)據(jù)以便為通道提供長期持久性。高速緩存管理器218優(yōu)選地在高速緩存器540中高速緩存此數(shù)據(jù)。所述高速緩存器540優(yōu)選地包括存儲(chǔ)器以及盤(未示出)。圖25A中還示出了代理128,其優(yōu)選地駐留在預(yù)訂者機(jī)器122(圖25A中未示出)中,如圖5中所述。所述代理128負(fù)責(zé)與高速緩存管理器218通信,以便從高速緩存器540檢索數(shù)據(jù),接收所檢索的數(shù)據(jù)并且用于組織所述檢索的數(shù)據(jù)。
雖然圖25A中未示出,但是從所述邊緣路由節(jié)點(diǎn)向上游的每個(gè)一級(jí)核心路由節(jié)點(diǎn)優(yōu)選地都包括高速緩存管理器218。上游是遠(yuǎn)離所述代理128移動(dòng)的方向(即,遠(yuǎn)離所述預(yù)訂者機(jī)器122)。第一級(jí)的上游核心路由節(jié)點(diǎn)指的是從所述邊緣路由節(jié)點(diǎn)直接向上游的路由節(jié)點(diǎn)。雖然發(fā)行-預(yù)訂網(wǎng)絡(luò)經(jīng)常包括多個(gè)一級(jí)上游核心路由節(jié)點(diǎn),但是圖2 5A只描述了一個(gè)一級(jí)上游核心路由節(jié)點(diǎn),即核心路由節(jié)點(diǎn)548。如上所述,高速緩存管理器218為它所位于的網(wǎng)絡(luò)節(jié)點(diǎn)處的數(shù)據(jù)提供本地高速緩存。因此,位于各種核心路由節(jié)點(diǎn)-例如包括核心路由節(jié)點(diǎn)548的高速緩存管理器218的操作,為遍及網(wǎng)絡(luò)核心的數(shù)據(jù)提供分布式高速緩存。此分布式高速緩存為在邊緣路由節(jié)點(diǎn)的高速緩存提供了備份。
高速緩存管理器218優(yōu)選地包括負(fù)責(zé)管理高速緩存器546的例行程序或者子例行程序。這些例行程序優(yōu)選地包括高速緩存數(shù)據(jù)例行程序545、清除(purge)高速緩存數(shù)據(jù)例行程序547以及檢索高速緩存數(shù)據(jù)例行程序549,如圖25B中所示。這些例行程序中的每一個(gè)可以獨(dú)立地操作,或者如圖所示,也可以在彼此之間通信和/或傳遞控制權(quán)。
圖25C是舉例說明對(duì)在單個(gè)消息中包含的數(shù)據(jù)的持久性高速緩存550的示例方法的流程圖。如圖所示,所述方法550示出了圖25B中所示每個(gè)例行程序執(zhí)行的示例性的步驟執(zhí)行。,這些例行程序在操作中優(yōu)選地彼此獨(dú)立的操作。方法550可以在智能路由器92、在邊緣路由節(jié)點(diǎn)或者核心路由節(jié)點(diǎn)處執(zhí)行,其提供了高速緩存。
所述方法550例如可以采用軟件模塊(例如高速緩存管理器218)來加以實(shí)現(xiàn),所述軟件模塊由智能路由器92中的處理器93加以執(zhí)行。作為選擇,它可以采用ASIC或者硬件和軟件組合來加以實(shí)現(xiàn),或者在與相應(yīng)的智能路由器92相同或者不同的物理設(shè)備中加以實(shí)現(xiàn)。所述智能路由器92把需要被高速緩存的消息轉(zhuǎn)發(fā)至高速緩存管理器218。所述高速緩存管理器218接收包含數(shù)據(jù)的消息(步驟552),給消息中的數(shù)據(jù)加時(shí)間標(biāo)記(步驟554),并且在高速緩存器546中高速緩存所述數(shù)據(jù)(步驟556)(類似于圖14中的步驟322-326(參見上文))。所述高速緩存管理器218以多種方式索引高速緩存的數(shù)據(jù)(步驟558),例如通道標(biāo)識(shí)符、主題、發(fā)行者標(biāo)識(shí)符、時(shí)間戳等等,如上所述。所述索引步驟558可以在高速緩存步驟556之前、與其同時(shí)或者在其之后進(jìn)行??梢詫?duì)高速緩存的數(shù)據(jù)做索引并且將其存儲(chǔ)在分層目錄結(jié)構(gòu)中(例如參見圖15)。也參見表17-19。
將所述數(shù)據(jù)高速緩存在存儲(chǔ)器(所述高速緩存器546)中并且周期地將其移到盤中(步驟560)。將對(duì)于特定通道的持久時(shí)間幀“T”分為N個(gè)時(shí)間粒度,每個(gè)大小為G。在存儲(chǔ)器中進(jìn)行高速緩存只能達(dá)到持續(xù)時(shí)間G之久(步驟556)。在高速緩存管理器確定時(shí)間間隔G已經(jīng)過去之后(步驟559),將數(shù)據(jù)移到所述盤(步驟560)。高速緩存管理器218在所述盤上存儲(chǔ)數(shù)據(jù)達(dá)持久的超時(shí)時(shí)間間隔T的持續(xù)時(shí)間之久。
一旦時(shí)間間隔G變得大于所述通道的持久超時(shí)(T)+間隔上限(步驟562),就將對(duì)應(yīng)于所述時(shí)間的數(shù)據(jù)從所述盤上刪除(步驟564)。為了更好的理解這些,假定通道具有2小時(shí)的T。作為一個(gè)例子,所述高速緩存管理器218使用15分鐘的時(shí)間粒度G。對(duì)于從所述盤中刪除數(shù)據(jù)來說,優(yōu)選地使用的策略是當(dāng)在時(shí)間間隔G(15分鐘)期間高速緩存的最后數(shù)據(jù)已經(jīng)存儲(chǔ)了T(2小時(shí))之久,那么在15分鐘間隔期間高速緩存的整個(gè)數(shù)據(jù)將被丟棄。因此,在15分鐘間隔開始時(shí)的高速緩存的數(shù)據(jù)在將其刪除之前已經(jīng)被存儲(chǔ)來比2小時(shí)更長的時(shí)間。在此例子中,在每個(gè)15分鐘間隔期間高速緩存的數(shù)據(jù)是一數(shù)據(jù)塊。如果持久時(shí)間幀T分為N個(gè)間隔,那么在高速緩存器540中,任意時(shí)間點(diǎn)上每個(gè)主題將具有N+1個(gè)數(shù)據(jù)塊(盤上有N個(gè)并且存儲(chǔ)器中有1個(gè))。
如果所述高速緩存管理器218接收對(duì)數(shù)據(jù)的請(qǐng)求(步驟566),那么所述高速緩存管理器218使用所述索引(步驟568)檢索所請(qǐng)求的高速緩存的數(shù)據(jù)(時(shí)間T還沒有過去),并且向骨干路由器轉(zhuǎn)送所檢索的數(shù)據(jù),以便路由至請(qǐng)求的預(yù)訂者機(jī)器122(步驟570)。如下所述,參照?qǐng)D25D,如果所述數(shù)據(jù)不在邊緣路由節(jié)點(diǎn)處的高速緩存器540,那么高速緩存管理器218可以啟用第一級(jí)的上游核心路由節(jié)點(diǎn)(例如在核心路由節(jié)點(diǎn)548)處的高速緩存器來檢索數(shù)據(jù)。如果所述高速緩存管理器218沒有接收到一個(gè)請(qǐng)求,那么方法550循環(huán)返回至步驟552。
為了防止在給定智能路由器92處的高速緩存管理器218的故障,除在高速緩存器546中存儲(chǔ)數(shù)據(jù)以外,還將數(shù)據(jù)存儲(chǔ)在第一級(jí)的上游核心路由節(jié)點(diǎn)(例如,核心路由節(jié)點(diǎn)548)的高速緩存器中。因此,步驟552-564優(yōu)選地在所述消息被路由到邊緣路由節(jié)點(diǎn)并且在所述邊緣路由節(jié)點(diǎn)處執(zhí)行方法550之前,在第一級(jí)的上游核心路由節(jié)點(diǎn)加以執(zhí)行。
(例如在邊緣路由節(jié)點(diǎn)處的)高速緩存器546以及第一級(jí)的上游核心路由節(jié)點(diǎn)(例如在第一上游核心路由器548)處的高速緩存器的位置被本地存儲(chǔ)在代理128中。因此,如果所述預(yù)訂者機(jī)器122移動(dòng)(例如預(yù)訂者是在不同邊緣路由節(jié)點(diǎn)重新與網(wǎng)絡(luò)連接的移動(dòng)用戶),那么代理128將向新的邊緣路由節(jié)點(diǎn)提供所述邊緣路由節(jié)點(diǎn)以及預(yù)訂者機(jī)器122在移動(dòng)之前已連接到其上的第一級(jí)上游核心路由節(jié)點(diǎn)的高速緩存器的位置。這樣做即使預(yù)訂者機(jī)器122移動(dòng)也能夠維護(hù)持久性。
如圖25D所示,其示出了持久的消息檢索580的方法流程圖,處于預(yù)訂者機(jī)器122的用戶應(yīng)用182優(yōu)選地啟用代理128來從所述高速緩存器中請(qǐng)求數(shù)據(jù)(步驟582)。代理128使用存儲(chǔ)的高速緩存器位置來(例如使用getcache命令)啟用處于適當(dāng)?shù)倪吘壜酚晒?jié)點(diǎn)的高速緩存器546來獲得數(shù)據(jù)(步驟584)。代理128可以指示要檢索數(shù)據(jù)的什么時(shí)間幀。作為選擇,高速緩存管理器218可以檢查預(yù)訂者機(jī)器122的連接歷史(參見上面表18)以便確定將檢索什么樣的高速緩存的數(shù)據(jù)。如果所述連接歷史表明預(yù)訂者機(jī)器122已經(jīng)離線了X時(shí)間周期,那么高速緩存管理器218可以檢索對(duì)應(yīng)X的全部有效的高速緩存數(shù)據(jù)。另外,所述高速緩存管理器218可以只檢索持久時(shí)間幀T內(nèi)的全部高速緩存的數(shù)據(jù)。如果邊緣路由節(jié)點(diǎn)高速緩存器546具有所述數(shù)據(jù)(步驟585),那么代理128就從高速緩存器546檢索所述數(shù)據(jù)(步驟586)。
如果高速緩存器546沒有所述數(shù)據(jù),那么高速緩存管理器218使用代理128提供的第一級(jí)的上游路由節(jié)點(diǎn)(例如核心路由節(jié)點(diǎn)548)的高速緩存器列表來啟用這些上游高速緩存器來定位所述數(shù)據(jù)(步驟588)。一旦高速緩存管理器218在上游的一個(gè)或多個(gè)高速緩存器中定位所述數(shù)據(jù),所述高速緩存管理器218就從上游高速緩存器中檢索所述數(shù)據(jù)(步驟590)。在轉(zhuǎn)發(fā)數(shù)據(jù)至代理128(步驟594)以前,高速緩存管理器218可以執(zhí)行重復(fù)抑制(即刪重復(fù)的數(shù)據(jù))(步驟592)。
B.通過故障保護(hù)的持久性與本實(shí)施例一致的基礎(chǔ)結(jié)構(gòu)具有以下組件或等效組件通道管理器;事件代理;以及路由節(jié)點(diǎn)和高速緩存器。為了防止在故障條件期間丟失消息,這些組件中的每一個(gè)需要被保護(hù)。
1.通道管理器故障保護(hù)上文參照?qǐng)D6描述了通道管理器。通過復(fù)制來防止所述通道管理器故障。所述通道管理器在主備份組中操作,其中存在一個(gè)主模塊和另一個(gè)備份模塊。所述主模塊負(fù)責(zé)對(duì)數(shù)據(jù)的所有更新以及對(duì)查詢的響應(yīng)。所述備份可以只服務(wù)于查詢,而不執(zhí)行更新。它轉(zhuǎn)發(fā)所有更新至主模塊。
將需要從通道管理器檢索通道信息的發(fā)行-預(yù)訂網(wǎng)絡(luò)的組件稱為通道管理器客戶端,并且向其分配一通道管理器。這些客戶端包括智能路由器92以及它們的高速緩存管理器218,和預(yù)訂者機(jī)器122以及它們的代理128。如果分配給客戶端的通道管理器故障,那么所述客戶端訪問另一個(gè)通道管理器并且與其連接。
2.路由器和高速緩存器故障保護(hù)對(duì)于路由基礎(chǔ)結(jié)構(gòu)組件來說存在幾級(jí)恢復(fù)。(0級(jí)、1級(jí)、直到3級(jí))。0級(jí)控制本地故障影響(即故障的路由器內(nèi)),并且所述恢復(fù)也局限于故障的路由節(jié)點(diǎn)內(nèi)。0級(jí)恢復(fù)取決于硬件冗余以便從硬件故障恢復(fù)。將路由器中的硬件資源復(fù)制。0級(jí)恢復(fù)的主要優(yōu)勢是恢復(fù)時(shí)間短并且透明性。1級(jí)控制LAN內(nèi)的故障影響。1級(jí)恢復(fù)可以使用聚類技術(shù)依照IP故障轉(zhuǎn)移實(shí)現(xiàn)。然而,一個(gè)故障的路由器到其鄰點(diǎn)的隧道在恢復(fù)之后必須重建。因此,1級(jí)恢復(fù)透明度較低,并且比0級(jí)恢復(fù)花費(fèi)時(shí)間長。
2級(jí)恢復(fù)的范圍是在WAN之上通過遠(yuǎn)程備份路由器來恢復(fù)路由器故障,而沒有影響網(wǎng)絡(luò)拓?fù)?,這可能引起復(fù)雜的重新配置以及數(shù)據(jù)丟失。2級(jí)可以通過分路由器以形成一個(gè)恢復(fù)集(例如主和備份路由器)來實(shí)現(xiàn)。一個(gè)路由器可以是一個(gè)組中的主路由器,還可以是另一個(gè)組中的備份路由器。所述主路由器與備份路由器交換路由和網(wǎng)絡(luò)配置,并且當(dāng)所述備份路由器檢測到主路由器的故障時(shí),它接管主路由器的功能。所述備份路由器通過確保它能夠連接到所述故障的主路由器的大部分鄰近主路由器,從而確保了故障的主路由器,而不確保到主路由器的鏈路。如果它不能確保,就觸發(fā)3級(jí)恢復(fù)。
3級(jí)相反可以包含全系統(tǒng)范圍的坐標(biāo)恢復(fù)。當(dāng)其他一切故障時(shí)可以使用3級(jí)恢復(fù)。檢測到這種故障的路由器向所有下游路由器發(fā)送重啟通知。接收所述通知的路由器掛起所有其他的恢復(fù)并且停止所有網(wǎng)絡(luò)服務(wù),并且丟棄重啟消息中的所有多通道廣播信息。在已經(jīng)終止所有網(wǎng)絡(luò)服務(wù)之后,所述路由器重啟所有服務(wù),包括對(duì)于多通道廣播的構(gòu)造樹進(jìn)程。網(wǎng)絡(luò)中的任何故障通過較低級(jí)別的恢復(fù)過程加以處理。如果較低級(jí)別恢復(fù)無法應(yīng)用,那么逐步升高恢復(fù)到下一較高級(jí)別。如果沒有較低級(jí)別恢復(fù)工作,那么使用3級(jí)恢復(fù)。
3.可靠的隧道為了防止在網(wǎng)絡(luò)故障期間丟失消息,使用可靠的隧道來支撐路由節(jié)點(diǎn)之間的通信量。隧道在圖3的敘述中描述了。在發(fā)送期間丟失的所有消息通過接收端檢測,然后請(qǐng)發(fā)送者來重新發(fā)送丟失的消息。
雖然已經(jīng)結(jié)合示例性實(shí)施例描述了本發(fā)明,但是很清楚,許多修改對(duì)于本領(lǐng)域技術(shù)人員是顯而易見,并且這些應(yīng)用意圖是涵蓋所有適用范圍和其變化。例如,在不脫離本發(fā)明范圍的情況下,可以使用各種形式的發(fā)行者機(jī)器、用戶或者預(yù)訂者機(jī)器、通道及其結(jié)構(gòu),以及基于內(nèi)容的路由以及其他功能的硬件和軟件實(shí)現(xiàn)方式。本發(fā)明的范圍僅由權(quán)利要求書以及其等效限定。
權(quán)利要求
1.一種用于在不可靠的網(wǎng)絡(luò)之上執(zhí)行發(fā)行-預(yù)訂操作的方法,包括使用網(wǎng)絡(luò)接收對(duì)內(nèi)容的預(yù)訂;以及使用網(wǎng)絡(luò)基于對(duì)內(nèi)容的預(yù)訂來發(fā)行內(nèi)容,包括接收涉及在所述網(wǎng)絡(luò)中的一個(gè)節(jié)點(diǎn)的所述內(nèi)容的通知;確定是否要把所述通知轉(zhuǎn)發(fā)到鄰近節(jié)點(diǎn);以及基于所述確定,使用可靠的傳輸協(xié)議有選擇地把所述通知轉(zhuǎn)發(fā)到鄰近節(jié)點(diǎn)。
2.如權(quán)利要求1所述的方法,其中所述有選擇地轉(zhuǎn)發(fā)步驟包括在轉(zhuǎn)發(fā)所述通知過程中接收故障指示,以及響應(yīng)所述指示重新轉(zhuǎn)發(fā)所述通知。
3.如權(quán)利要求1所述的方法,其中所述轉(zhuǎn)發(fā)步驟包括轉(zhuǎn)發(fā)一個(gè)封裝所述通知的分組。
4.如權(quán)利要求1所述的方法,其中所述轉(zhuǎn)發(fā)步驟包括使用網(wǎng)際協(xié)議來轉(zhuǎn)發(fā)所述通知。
5.如權(quán)利要求1所述的方法,其中所述轉(zhuǎn)發(fā)步驟包括以單個(gè)節(jié)點(diǎn)到節(jié)點(diǎn)為基礎(chǔ)來轉(zhuǎn)發(fā)所述通知。
6.如權(quán)利要求1所述的方法,其中所述確定步驟包括確定所述內(nèi)容是否滿足內(nèi)容預(yù)訂的一個(gè)或多個(gè)標(biāo)準(zhǔn)。
7.如權(quán)利要求1所述的方法,其中所述轉(zhuǎn)發(fā)步驟包括使用路由器來把所述通知轉(zhuǎn)發(fā)到鄰近節(jié)點(diǎn)。
8.如權(quán)利要求1所述的方法,還包括在網(wǎng)絡(luò)中以節(jié)點(diǎn)到節(jié)點(diǎn)為基礎(chǔ)來重復(fù)所述發(fā)行步驟,直到將所述通知轉(zhuǎn)發(fā)到對(duì)應(yīng)于所述預(yù)訂的一個(gè)或多個(gè)預(yù)訂者為止。
9.如權(quán)利要求1所述的方法,其中所述有選擇地轉(zhuǎn)發(fā)步驟使用傳輸控制協(xié)議。
10.一種用于在不可靠的網(wǎng)絡(luò)之上執(zhí)行發(fā)行-預(yù)訂操作的路由器,包括用于執(zhí)行如權(quán)利要求1所述方法的模塊。
11.一種用于執(zhí)行發(fā)行-預(yù)訂操作的廣域網(wǎng),包括一個(gè)或多個(gè)預(yù)訂者機(jī)器;以及多個(gè)路由器,其中所述多個(gè)路由器的每個(gè)都包括預(yù)訂接收模塊,其中所述預(yù)訂接收模塊經(jīng)由所述廣域網(wǎng)接收對(duì)應(yīng)于一個(gè)或多個(gè)預(yù)訂者機(jī)器的內(nèi)容預(yù)訂;以及發(fā)行模塊,其中所述發(fā)行模塊包括通知接收模塊,其中所述通知接收模塊接收涉及網(wǎng)絡(luò)中節(jié)點(diǎn)處的內(nèi)容的通知;基于內(nèi)容的路由模塊,其中所述基于內(nèi)容的路由模塊確定是否要把所述通知轉(zhuǎn)發(fā)到鄰近節(jié)點(diǎn);以及可靠的轉(zhuǎn)發(fā)模塊,其中所述可靠的轉(zhuǎn)發(fā)模塊基于所述確定、使用可靠的傳輸協(xié)議有選擇地把所述通知轉(zhuǎn)發(fā)到鄰近節(jié)點(diǎn);其中所述多個(gè)路由器有選擇地并且可靠地轉(zhuǎn)發(fā)所述通知,直到將所述通知轉(zhuǎn)發(fā)到對(duì)應(yīng)于一個(gè)或多個(gè)預(yù)訂的預(yù)訂者機(jī)器為止。
12.一種用于在不可靠的網(wǎng)絡(luò)之上執(zhí)行發(fā)行-預(yù)訂操作的方法,包括經(jīng)由網(wǎng)絡(luò)接收對(duì)網(wǎng)絡(luò)中第一節(jié)點(diǎn)的內(nèi)容的預(yù)訂;接收涉及網(wǎng)絡(luò)中第一節(jié)點(diǎn)的內(nèi)容的通知;使用所述內(nèi)容預(yù)訂根據(jù)基于內(nèi)容的路由(CBR),確定是否要把所述通知轉(zhuǎn)發(fā)到第二鄰近節(jié)點(diǎn);并且,基于所述確定、使用可靠的傳輸協(xié)議有選擇地把所述通知轉(zhuǎn)發(fā)到第二節(jié)點(diǎn)。
13.如權(quán)利要求12所述的方法,進(jìn)一步包括步驟如果在第一節(jié)點(diǎn)和第二節(jié)點(diǎn)之間存在轉(zhuǎn)發(fā)故障,那么接收轉(zhuǎn)發(fā)故障的指示;并且,響應(yīng)所述指示重新把所述通知轉(zhuǎn)發(fā)到第二節(jié)點(diǎn)。
14.如權(quán)利要求12所述的方法,還包括在有選擇地轉(zhuǎn)發(fā)步驟之前、在緩沖器中緩沖所述通知的步驟。
15.如權(quán)利要求14所述的方法,還包括經(jīng)過一段時(shí)間以后、把所緩沖的通知移動(dòng)到次級(jí)存儲(chǔ)器的步驟。
16.如權(quán)利要求14所述的方法,還包括以先進(jìn)先出為基礎(chǔ)、刪除所緩沖的通知的步驟。
17.如權(quán)利要求14所述的方法,還包括以服務(wù)質(zhì)量為基礎(chǔ)、刪除所緩沖的通知的步驟。
18.如權(quán)利要求12所述的方法,還包括在第一節(jié)點(diǎn)處的高速緩存器中高速緩存所述通知的步驟。
19.如權(quán)利要求12所述的方法,其中所述可靠地轉(zhuǎn)發(fā)步驟使用傳輸控制協(xié)議。
20.一種用于在不可靠的網(wǎng)絡(luò)之上執(zhí)行發(fā)行-預(yù)訂操作的路由器,包括用于執(zhí)行如權(quán)利要求12所述方法的模塊。
21.一種用于執(zhí)行發(fā)行-預(yù)訂操作的廣域網(wǎng)(WAN),包括一個(gè)或多個(gè)預(yù)訂者機(jī)器;以及多個(gè)路由器,其中所述多個(gè)路由器的每個(gè)都包括預(yù)訂接收模塊,其中所述預(yù)訂接收模塊使用所述WAN來接收WAN中第一節(jié)點(diǎn)的對(duì)應(yīng)于一個(gè)或多個(gè)所述預(yù)訂者機(jī)器的內(nèi)容預(yù)訂;通知接收模塊,其中所述通知接收模塊接收涉及第一節(jié)點(diǎn)的內(nèi)容的通知;基于內(nèi)容的路由模塊,其中所述基于內(nèi)容的路由模塊確定是否要把所述通知轉(zhuǎn)發(fā)到WAN中的第二節(jié)點(diǎn);以及可靠的轉(zhuǎn)發(fā)模塊,其中所述可靠的轉(zhuǎn)發(fā)模塊基于所述確定、使用可靠的傳輸協(xié)議有選擇地把所述通知轉(zhuǎn)發(fā)到第二節(jié)點(diǎn);其中所述多個(gè)路由器有選擇地并且可靠地轉(zhuǎn)發(fā)所述通知,直到將所述通知轉(zhuǎn)發(fā)到對(duì)應(yīng)于內(nèi)容預(yù)訂的一個(gè)或多個(gè)預(yù)訂者機(jī)器為止。
22.如權(quán)利要求21所述的網(wǎng)絡(luò),其中所述可靠的轉(zhuǎn)發(fā)模塊使用傳輸控制協(xié)議。
23.一種用于在不可靠的網(wǎng)絡(luò)之上執(zhí)行發(fā)行-預(yù)訂操作的方法,包括使用可靠的傳輸協(xié)議在兩個(gè)鄰近節(jié)點(diǎn)之間建立可靠的隧道;經(jīng)由網(wǎng)絡(luò)接收網(wǎng)絡(luò)中第一鄰近節(jié)點(diǎn)的內(nèi)容預(yù)訂;接收涉及網(wǎng)絡(luò)中第一鄰近節(jié)點(diǎn)的內(nèi)容的通知;使用所述內(nèi)容預(yù)訂根據(jù)基于內(nèi)容的路由(CBR),確定是否要把所述通知轉(zhuǎn)發(fā)到網(wǎng)絡(luò)中第二鄰近節(jié)點(diǎn);并且,基于所述確定、使用所述可靠的隧道有選擇地把所述通知轉(zhuǎn)發(fā)到網(wǎng)絡(luò)中第二鄰近節(jié)點(diǎn)。
24.一種用于在不可靠的網(wǎng)絡(luò)之上執(zhí)行發(fā)行-預(yù)訂操作的路由器,包括用于執(zhí)行如權(quán)利要求23所述方法的模塊。
25.一種用于執(zhí)行發(fā)行-預(yù)訂操作的網(wǎng)絡(luò),包括多個(gè)如權(quán)利要求24所述的路由器。
26.一種用于在發(fā)行-預(yù)訂網(wǎng)絡(luò)中傳播過濾的方法,包括接收涉及網(wǎng)絡(luò)中內(nèi)容預(yù)訂的多個(gè)過濾;根據(jù)特定的標(biāo)準(zhǔn)減少過濾數(shù)目;并且在網(wǎng)絡(luò)中傳播數(shù)目減少的過濾,以供滿足內(nèi)容預(yù)訂之用。
27.如權(quán)利要求26所述的方法,其中所述減少步驟包括以下步驟的一個(gè)或多個(gè)對(duì)多個(gè)過濾的一個(gè)或多個(gè)執(zhí)行近似操作;并且對(duì)多個(gè)過濾的一個(gè)或多個(gè)執(zhí)行合并操作。
28.如權(quán)利要求27所述的方法,其中執(zhí)行所述合并操作步驟包括確定合并的過濾是否會(huì)超出一個(gè)分組泄漏閾值。
29.如權(quán)利要求26所述的方法,其中所述接收步驟包括經(jīng)由基于內(nèi)容的路由網(wǎng)絡(luò)接收多個(gè)過濾。
30.如權(quán)利要求26所述的方法,其中所述傳播步驟包括使用從包括以下內(nèi)容的列表中選出的多個(gè)特定過程的一個(gè)或多個(gè)過程來傳播所述過濾,所述列表包括的內(nèi)容如下積極的傳播方案;惰性傳播方案;響應(yīng)廣播廣告方案;在網(wǎng)絡(luò)拓?fù)溆?jì)算后的方案;定期傳播方案;故障修理期間過濾重新傳播方案;在網(wǎng)絡(luò)重新配置期間的過濾重新傳播方案。
31.如權(quán)利要求26所述的方法,其中使用從以下列表中選出的多個(gè)特定機(jī)制的一個(gè)或多個(gè)來連接用于傳播的源節(jié)點(diǎn)和目的地節(jié)點(diǎn),所述列表包括逐跳跳過、端到端、使用隧道以及使用傳輸控制協(xié)議。
32.如權(quán)利要求26所述的方法,還包括在網(wǎng)絡(luò)中多個(gè)特定位置的一個(gè)或多個(gè)位置注入所述過濾。
33.如權(quán)利要求26所述的方法,其中所述傳播步驟包括基于預(yù)定收件人的多個(gè)特定行為中的一個(gè)或多個(gè)行為來傳播所述過濾,所述行為從包括以下內(nèi)容的列表中選出,所述內(nèi)容包括移動(dòng)的、持久的以及臨時(shí)的。
34.如權(quán)利要求26所述的方法,其中所述傳播步驟包括基于一個(gè)或多個(gè)過濾的發(fā)件人的多個(gè)特定行為的一個(gè)或多個(gè)行為來傳播所述過濾,所述行為從包括以下內(nèi)容的列表中選出,所述內(nèi)容包括移動(dòng)的、持久的以及臨時(shí)的。
35.如權(quán)利要求26所述的方法,還包括對(duì)一個(gè)或多個(gè)過濾執(zhí)行多個(gè)特定處理步驟中的一個(gè)或多個(gè)步驟,所述處理步驟從包括以下內(nèi)容的列表中選出,所述內(nèi)容包括屬性內(nèi)容轉(zhuǎn)換、表達(dá)式擴(kuò)展、表達(dá)式轉(zhuǎn)換、表示變換、編碼/解碼以及加密/解密。
36.如權(quán)利要求26所述的方法,還包括按照多個(gè)特定格式中的一個(gè)或多個(gè)格式來格式化包含一個(gè)或多個(gè)過濾的消息。
37.如權(quán)利要求26所述的方法,其中所述傳播步驟包括按照從包含以下內(nèi)容的列表中選出的多個(gè)特定策略或過程中的一個(gè)或多個(gè)策略或過程來傳播所述過濾,所述內(nèi)容包括管理、維護(hù)、過濾持久性、性能增強(qiáng)策略、監(jiān)控以及計(jì)帳。
38.如權(quán)利要求26所述的方法,其中所述傳播步驟包括確定以過濾傳播策略為基礎(chǔ)的網(wǎng)絡(luò)拓?fù)?,其中所述基礎(chǔ)的網(wǎng)絡(luò)拓?fù)浒榱藗鞑ミ^濾必須滿足的用于過濾傳播的多個(gè)需求的一個(gè)或多個(gè);以及基于所確定的過濾傳播策略需求的滿足來傳播數(shù)目減少的過濾。
39.如權(quán)利要求38所述的方法,其中所述確定的過濾傳播策略是包括以下內(nèi)容的列表中的一個(gè),所述內(nèi)容包括積極的傳播方案;惰性傳播方案;響應(yīng)廣播廣告方案;在網(wǎng)絡(luò)拓?fù)溆?jì)算后的方案;定期傳播方案;故障修理期間過濾重新傳播方案;在網(wǎng)絡(luò)重新配置期間的過濾重新傳播方案。
40.如權(quán)利要求26所述的方法,其中所述接收步驟接收在網(wǎng)絡(luò)中的核心路由器的多個(gè)過濾。
41.如權(quán)利要求26所述的方法,其中所述接收步驟接收在網(wǎng)絡(luò)中的邊緣路由器的多個(gè)過濾。
42.如權(quán)利要求26所述的方法,其中所述接收步驟接收網(wǎng)絡(luò)中發(fā)行者機(jī)器的多個(gè)過濾。
43.一種用于在發(fā)行-預(yù)訂網(wǎng)絡(luò)中傳播過濾的路由器,包括用于執(zhí)行如權(quán)利要求26所述方法的模塊。
44.一種發(fā)行-預(yù)訂網(wǎng)絡(luò),包括多個(gè)路由器,所述路由器包括用于執(zhí)行如權(quán)利要求26所述方法的模塊。
45.一種發(fā)行-預(yù)訂網(wǎng)絡(luò),包括用戶機(jī)器,所述用戶機(jī)器包括用于執(zhí)行如權(quán)利要求26所述方法的模塊。
46.一種用于在發(fā)行-預(yù)訂網(wǎng)絡(luò)中傳播過濾的設(shè)備,包括過濾接收模塊,其中所述過濾接收模塊接收涉及網(wǎng)絡(luò)中的內(nèi)容預(yù)訂的多個(gè)過濾;過濾減少模塊,其中所述過濾減少模塊基于特定標(biāo)準(zhǔn)減少過濾的數(shù)目;以及過濾傳播模塊,其中所述過濾傳播模塊在發(fā)行-預(yù)訂網(wǎng)絡(luò)中傳播數(shù)目減少的過濾以供滿足預(yù)訂之用。
47.如權(quán)利要求46所述的設(shè)備,其中所述過濾減少模塊還包括過濾近似模塊,其中所述過濾近似模塊對(duì)多個(gè)過濾的一個(gè)或多個(gè)執(zhí)行近似操作;以及過濾合并模塊,其中所述過濾合并模塊合并多個(gè)過濾中的兩個(gè)或多個(gè)過濾。
48.如權(quán)利要求46所述的設(shè)備,還包括過濾處理模塊,其中所述過濾處理模塊變換一個(gè)或多個(gè)過濾;以及過濾分組模塊,其中所述過濾分組模塊基于所述過濾與其他過濾的接近度來對(duì)過濾進(jìn)行分組。
49.一種用于在發(fā)行-預(yù)訂網(wǎng)絡(luò)中傳播過濾的方法,包括以下步驟(a)接收網(wǎng)絡(luò)中節(jié)點(diǎn)的多個(gè)過濾;(b)處理一個(gè)或多個(gè)所接收的過濾,以便減少過濾的數(shù)目;(c)基于收件人行為規(guī)則確定是否傳播過濾;以及(d)傳播所處理的過濾到網(wǎng)絡(luò)中下一節(jié)點(diǎn)。
50.如權(quán)利要求49所述的方法,還包括基于發(fā)件人行為規(guī)則確定是否傳播過濾。
51.如權(quán)利要求49所述的方法,還包括確定在網(wǎng)絡(luò)中下一節(jié)點(diǎn)之后是否存在另一個(gè)節(jié)點(diǎn)的步驟。
52.如權(quán)利要求49所述的方法,如果確定存在另一個(gè)節(jié)點(diǎn),那么重復(fù)步驟(b)-(d)。
53.如權(quán)利要求49所述的方法,還包括確定在網(wǎng)絡(luò)中下一節(jié)點(diǎn)是否存在要接收的附加過濾的步驟。
54.如權(quán)利要求53所述的方法,如果確定在網(wǎng)絡(luò)中下一節(jié)點(diǎn)存在要接收的附加過濾,那么在新的節(jié)點(diǎn)重復(fù)步驟(a)-(d)。
55.如權(quán)利要求49所述的方法,其中所述處理步驟包括一個(gè)或多個(gè)以下步驟簡化所述過濾以便去除冗余謂詞表達(dá)式;對(duì)所述過濾求近似;聚類所述過濾;對(duì)所述過濾進(jìn)行歸類;并且合并兩個(gè)或多個(gè)過濾。
56.如權(quán)利要求55所述的方法,其中所述處理步驟還包括對(duì)過濾進(jìn)行分組;并且,其中所述求近似步驟對(duì)所述組中的過濾求近似,所述聚類步驟相對(duì)于過濾的接近度來定位并且收集所述組中的過濾,所述歸類步驟對(duì)所述組中的過濾進(jìn)行歸類,并且所述合并步驟合并所述組中的過濾。
57.如權(quán)利要求56所述的方法,其中所述分組步驟只對(duì)來自于與主題有關(guān)的下行鏈路的過濾進(jìn)行分組。
58.如權(quán)利要求55所述的方法,其中所述合并步驟包括確定合并的過濾是否將超出分組泄漏閾值。
59.如權(quán)利要求49所述的方法,其中所述處理步驟還包括對(duì)所述過濾求近似;并且,歸類并且合并求近似了的過濾。
60.如權(quán)利要求49所述的方法,其中網(wǎng)絡(luò)中的節(jié)點(diǎn)包括存儲(chǔ)的過濾,并且其中所述處理步驟處理所接收的過濾以及存儲(chǔ)的過濾,以便減少過濾的數(shù)目。
61.如權(quán)利要求60所述的方法,其中所存儲(chǔ)的過濾是預(yù)先接收并且處理的過濾。
62.如權(quán)利要求49所述的方法,其中所述接收步驟(a)接收網(wǎng)絡(luò)核心中節(jié)點(diǎn)的多個(gè)過濾。
63.一種用于在發(fā)行-預(yù)訂網(wǎng)絡(luò)中傳播過濾的路由器,包括用于執(zhí)行如權(quán)利要求49所述方法的模塊。
64.一種發(fā)行-預(yù)訂網(wǎng)絡(luò),包括多個(gè)路由器,所述路由器包括用于執(zhí)行如權(quán)利要求49所述方法的模塊。
65.一種發(fā)行-預(yù)訂網(wǎng)絡(luò),包括用戶機(jī)器,所述用戶機(jī)器包括用于執(zhí)行如權(quán)利要求49所述方法的模塊。
66.一種用于在發(fā)行-預(yù)訂網(wǎng)絡(luò)中傳播過濾的設(shè)備,包括過濾接收模塊,其中所述過濾接收模塊接收網(wǎng)絡(luò)中節(jié)點(diǎn)的多個(gè)過濾;過濾處理模塊,其中所述過濾處理模塊減少多個(gè)所接收的過濾的過濾數(shù)目;并且,過濾傳播模塊,其中所述過濾傳播模塊基于收件人行為規(guī)則確定是否傳播過濾,如果確定傳播,那么傳播數(shù)目減少的過濾到網(wǎng)絡(luò)中下一節(jié)點(diǎn)。
67.如權(quán)利要求66所述的設(shè)備,其中所述過濾處理模塊包括簡化模塊,其中所述簡化模塊簡化過濾以便去除冗余謂詞表達(dá)式。
68.如權(quán)利要求66所述的設(shè)備,其中所述過濾處理模塊包括分組模塊,其中所述分組模塊依照下行鏈路的選擇對(duì)過濾進(jìn)行分組。
69.如權(quán)利要求66所述的設(shè)備,其中所述過濾處理模塊包括近似模塊,其中所述近似模塊對(duì)所述過濾求近似。
70.如權(quán)利要求66所述的設(shè)備,其中所述過濾處理模塊包括歸類模塊,其中所述歸類模塊對(duì)過濾進(jìn)行歸類。
71.如權(quán)利要求66所述的設(shè)備,其中所述過濾處理模塊包括聚類模塊,其中所述聚類模塊依照過濾彼此的接近度來聚類過濾。
72.如權(quán)利要求66所述的設(shè)備,其中所述過濾處理模塊包括合并模塊,其中所述合并模塊合并過濾。
73.一種在發(fā)行-預(yù)訂網(wǎng)絡(luò)中的過濾傳播方法,包括以下步驟一個(gè)路由器發(fā)送請(qǐng)求過濾的通知;一個(gè)或多個(gè)下游路由器接收所述通知;向更下游傳播過濾請(qǐng)求;等待來自于向其傳播過濾請(qǐng)求的下游路由器的響應(yīng);從向其傳播過濾請(qǐng)求的下游路由器收集過濾;處理傳播的過濾以便減少過濾的數(shù)目;并且,將數(shù)目減少的過濾向上游發(fā)送到請(qǐng)求過濾的路由器。
74.如權(quán)利要求73所述的方法,還包括每個(gè)下游路由器更新簿記數(shù)據(jù)庫,以便反映出從路由器接收到過濾請(qǐng)求;并且確定從其接收過濾請(qǐng)求的路由器是否已經(jīng)得到服務(wù)。
75.一種發(fā)行-預(yù)訂網(wǎng)絡(luò),包括多個(gè)路由器以及發(fā)行者機(jī)器,其包括用于執(zhí)行如權(quán)利要求73所述方法的模塊。
76.一種在發(fā)行-預(yù)訂網(wǎng)絡(luò)中用于分組的基于內(nèi)容的路由的方法,包括接收網(wǎng)絡(luò)中的分組;訪問規(guī)定過濾在屬性空間中覆蓋范圍的映射;檢查分組內(nèi)容,以供對(duì)分組的路由決定之用;使用所述映射來幫助對(duì)分組的路由決定;基于檢查的分組內(nèi)容以及映射來做出路由決定;并且基于所述路由決定路由所述分組。
77.如權(quán)利要求76所述的方法,其中做出路由決定步驟還包括將所述內(nèi)容與相應(yīng)預(yù)訂相匹配。
78.如權(quán)利要求77所述的方法,其中所述匹配步驟包括使用多個(gè)合取過濾以便識(shí)別匹配。
79.如權(quán)利要求77所述的方法,其中所述匹配步驟包括執(zhí)行屬性測試。
80.如權(quán)利要求76所述的方法,其中做出路由決定步驟包括使用在線映射。
81.如權(quán)利要求76所述的方法,還包括離線或者利用后臺(tái)處理預(yù)先計(jì)算過濾覆蓋范圍。
82.如權(quán)利要求76所述的方法,還包括預(yù)先計(jì)算過濾覆蓋范圍,其中所述預(yù)先計(jì)算步驟包括對(duì)過濾表達(dá)式求近似并且減小過濾表達(dá)式。
83.如權(quán)利要求76所述的方法,還包括計(jì)算過濾覆蓋范圍,其中所述計(jì)算過濾覆蓋范圍包括在空間上把屬性空間量化為包括網(wǎng)格單元的網(wǎng)格。
84.如權(quán)利要求83所述的方法,其中所述計(jì)算過濾覆蓋范圍包括對(duì)過濾覆蓋范圍信息和網(wǎng)格進(jìn)行組合;并且基于每個(gè)網(wǎng)格單元中的過濾覆蓋范圍信息所斷言的動(dòng)作的合一來生成所述映射。
85.一種在發(fā)行-預(yù)訂網(wǎng)絡(luò)中用于分組的基于內(nèi)容的路由的路由器,包括用于執(zhí)行如權(quán)利要求76所述方法的模塊。
86.一種包括如權(quán)利要求85所述的多個(gè)路由器的網(wǎng)絡(luò)。
87.一種計(jì)算機(jī)可讀介質(zhì),包括用于執(zhí)行如權(quán)利要求76所述的方法的指令。
88.一種供分組的基于內(nèi)容的路由之用的方法,包括(a)在空間上量化屬性空間,其中所述在空間上量化步驟創(chuàng)建包括網(wǎng)格單元的網(wǎng)格;(b)標(biāo)識(shí)由多個(gè)過濾覆蓋的網(wǎng)格單元,其中每個(gè)過濾具有至少一個(gè)斷言的屬性;和(c)利用多個(gè)過濾所斷言的動(dòng)作規(guī)則來更新基于內(nèi)容的路由(CBR)表,所述過濾覆蓋在步驟(b)標(biāo)識(shí)的網(wǎng)格單元。
89.如權(quán)利要求88所述的方法,還包括以下步驟確定是否將一個(gè)或多個(gè)不同的過濾插入或者從節(jié)點(diǎn)中去除;以及基于是否將一個(gè)或多個(gè)不同的過濾插入或者從節(jié)點(diǎn)上去除的確定來在所述節(jié)點(diǎn)執(zhí)行步驟(b)和(c)。
90.如權(quán)利要求88所述的方法,還包括以下步驟接收發(fā)行的分組;并且將所接收的分組繪制到所述網(wǎng)格。
91.如權(quán)利要求90所述的方法,其中對(duì)于繪制到由計(jì)算的過濾覆蓋范圍信息完全覆蓋的網(wǎng)格單元的分組,所述方法還包括檢查所述CBR表以便為繪制到完全覆蓋的網(wǎng)格單元的分組確定路由動(dòng)作。
92.如權(quán)利要求91所述的方法,還包括確定所述網(wǎng)絡(luò)通信量是否在設(shè)置的閾值之上;并且如果確定所述網(wǎng)絡(luò)通信量在設(shè)置的閾值之上,那么基于確定的路由動(dòng)作來路由發(fā)行的分組。
93.如權(quán)利要求92所述的方法,還包括如果確定網(wǎng)絡(luò)通信量等于或低于設(shè)置的閾值,那么執(zhí)行泄漏減少。
94.如權(quán)利要求93所述的方法,其中所述執(zhí)行泄漏減少步驟包括一維的確切匹配。
95.如權(quán)利要求93所述的方法,其中所述執(zhí)行泄漏減少步驟包括交叉乘積。
96.如權(quán)利要求93所述的方法,其中執(zhí)行泄漏減少步驟包括依照有限數(shù)目和各種屬性的置換的子集的完全集來形成多個(gè)網(wǎng)格和CBR表。
97.如權(quán)利要求92所述的方法,還包括如果確定網(wǎng)絡(luò)通信量等于或低于所述設(shè)置的閾值,那么確定是否存在任意的減少的過濾謂詞或者繪制到部分覆蓋的網(wǎng)格單元的分組;如果確定存在減少的過濾謂詞或者繪制到部分覆蓋的網(wǎng)格單元的分組,那么逐個(gè)謂詞地執(zhí)行過濾匹配,以便為任何減少的過濾謂詞以及任何繪制到部分覆蓋的網(wǎng)格單元的分組確定路由動(dòng)作;并且基于所確定的路由動(dòng)作來路由所述分組。
98.如權(quán)利要求88所述的方法,還包括減小過濾表達(dá)式。
99.如權(quán)利要求88所述的方法,其中步驟(a)包括自適應(yīng)量化所述屬性空間。
100.如權(quán)利要求99所述的方法,其中所述自適應(yīng)量化步驟基于分組分布信息來自適應(yīng)地量化所述屬性空間。
101.如權(quán)利要求88所述的方法,其中所述空間量化步驟基于分組分布信息來空間地量化所述屬性空間。
102.如權(quán)利要求88所述的方法,其中所述空間量化步驟基于分組分布信息來更新所述網(wǎng)格。
103.如權(quán)利要求88所述的方法,其中步驟(c)生成或者更新網(wǎng)格單元的動(dòng)作位屏蔽,其中所述網(wǎng)格單元由計(jì)算機(jī)過濾覆蓋范圍信息覆蓋。
104.如權(quán)利要求88所述的方法,其中步驟(c)生成或者更新網(wǎng)格單元的動(dòng)作鏈接表,其中所述網(wǎng)格單元由計(jì)算機(jī)過濾覆蓋范圍信息覆蓋。
105.如權(quán)利要求88所述的方法,還包括在CBR表中更新覆蓋單元的參數(shù),其中所述參數(shù)包括關(guān)于過濾分布的統(tǒng)計(jì)信息。
106.如權(quán)利要求88所述的方法,還包括收集關(guān)于分組分布的統(tǒng)計(jì)信息,其中所述分組分布信息用于步驟(a)。
107.如權(quán)利要求88所述的方法,其中步驟(a)至(c)離線執(zhí)行。
108.如權(quán)利要求88所述的方法,還包括執(zhí)行基于內(nèi)容的路由(CBR),其中只有CBR表以及CBR表中的規(guī)則被用于執(zhí)行所述CBR。
109.一種用于在發(fā)行-預(yù)訂網(wǎng)絡(luò)中分組的基于內(nèi)容的路由的設(shè)備,包括用于執(zhí)行如權(quán)利要求88所述方法的模塊。
110.如權(quán)利要求109所述的設(shè)備,其中所述設(shè)備是路由器。
111.一種包括多個(gè)路由器的網(wǎng)絡(luò),所述路由器包括用于執(zhí)行如權(quán)利要求88所述方法的模塊。
112.一種計(jì)算機(jī)可讀介質(zhì),包括用于執(zhí)行如權(quán)利要求88所述方法的指令。
113.一種用于在發(fā)行-預(yù)訂網(wǎng)絡(luò)上實(shí)現(xiàn)查詢-響應(yīng)交互的方法,包括接收涉及數(shù)據(jù)集的廣告;接收代表邏輯表達(dá)式的查詢;將所述廣告映射到相應(yīng)的預(yù)訂;將所述查詢映射到相應(yīng)的通知;使用用于實(shí)現(xiàn)所述廣告的相應(yīng)預(yù)訂;以及使用用于實(shí)現(xiàn)網(wǎng)絡(luò)中的查詢的相應(yīng)通知。
114.如權(quán)利要求113所述的方法,其中所述映射廣告步驟包括為所述廣告執(zhí)行一般情況映射。
115.如權(quán)利要求113所述的方法,其中所述映射查詢步驟包括執(zhí)行對(duì)為所述查詢的析取查詢映射。
116.一種用于在發(fā)行-預(yù)訂網(wǎng)絡(luò)上實(shí)現(xiàn)查詢-響應(yīng)交互的方法,包括創(chuàng)建預(yù)訂以便注冊廣告;發(fā)行通知以便分發(fā)查詢;使用所述預(yù)訂來執(zhí)行基于內(nèi)容的路由(CBR)以便將所述通知推送給廣告客戶;以及,將響應(yīng)數(shù)據(jù)返回給請(qǐng)求者。
117.如權(quán)利要求116所述的方法,其中所述返回步驟使用廣告客戶和請(qǐng)求者之間的單播連接實(shí)現(xiàn)。
118.如權(quán)利要求116所述的方法,其中所述返回步驟包括請(qǐng)求者為響應(yīng)數(shù)據(jù)創(chuàng)建新的預(yù)訂,并且使用新的預(yù)訂執(zhí)行CBR以便將響應(yīng)數(shù)據(jù)推送給請(qǐng)求者。
119.如權(quán)利要求116所述的方法,其中所述創(chuàng)建步驟創(chuàng)建預(yù)訂以便注冊對(duì)一組數(shù)據(jù)的廣告。
120.一種用于實(shí)現(xiàn)查詢-響應(yīng)交互的發(fā)行-預(yù)訂網(wǎng)絡(luò),包括路由器、發(fā)行者機(jī)器以及預(yù)訂者機(jī)器,其包括用于執(zhí)行如權(quán)利要求116所述方法的模塊。
121.一種用于在發(fā)行-預(yù)訂網(wǎng)絡(luò)上實(shí)現(xiàn)查詢-響應(yīng)交互的方法,包括接收用于注冊廣告的預(yù)訂;接收用于分發(fā)查詢的通知;使用所述預(yù)訂執(zhí)行基于內(nèi)容的路由,以便確定是否將所述通知轉(zhuǎn)發(fā)到鄰近節(jié)點(diǎn);以及,基于所述確定有選擇地轉(zhuǎn)發(fā)所述通知。
122.一種用于在發(fā)行-預(yù)訂網(wǎng)絡(luò)上實(shí)現(xiàn)查詢-響應(yīng)交互的設(shè)備,包括用于執(zhí)行如權(quán)利要求121所述方法的模塊。
123.如權(quán)利要求122所述的設(shè)備,其中所述設(shè)備包括路由器。
124.一種用于在發(fā)行-預(yù)訂網(wǎng)絡(luò)上實(shí)現(xiàn)查詢-響應(yīng)交互的方法,包括發(fā)行具有初始主題的通知;發(fā)行具有過去主題的通知,其中具有過去主題的通知屬于以前發(fā)行的廣告;提交對(duì)過去主題的預(yù)訂,其中對(duì)過去主題的預(yù)訂是對(duì)以前發(fā)行的廣告的查詢;以及使用對(duì)過去主題的預(yù)訂執(zhí)行基于內(nèi)容的路由,以便將以前發(fā)行的廣告推送給消費(fèi)者。
125.如權(quán)利要求124所述的方法,還包括提交取消對(duì)過去主題的預(yù)訂的步驟。
126.如權(quán)利要求124所述的方法,還包括提交對(duì)初始主題的預(yù)訂的步驟。
127.一種用于實(shí)現(xiàn)查詢-響應(yīng)交互的發(fā)行-預(yù)訂網(wǎng)絡(luò),包括路由器、發(fā)行者機(jī)器以及預(yù)訂者機(jī)器,其包括用于執(zhí)行如權(quán)利要求124所述方法的模塊。
128.一種用于在發(fā)行-預(yù)訂網(wǎng)絡(luò)上實(shí)現(xiàn)查詢-響應(yīng)交互的方法,包括接收具有初始主題的通知以及具有過去主題的通知,其中具有過去主題的通知屬于以前發(fā)行的廣告;接收對(duì)初始主題以及對(duì)過去主題的預(yù)訂,其中對(duì)過去主題的預(yù)訂是對(duì)以前發(fā)行的廣告的查詢;使用對(duì)過去主題的預(yù)訂執(zhí)行基于內(nèi)容的路由,以便確定是否將以前發(fā)行的廣告轉(zhuǎn)發(fā)到鄰近節(jié)點(diǎn);以及,基于所述確定有選擇地轉(zhuǎn)發(fā)以前發(fā)行的廣告。
129.一種用于在發(fā)行-預(yù)訂網(wǎng)絡(luò)上實(shí)現(xiàn)查詢-響應(yīng)交互的設(shè)備,包括用于執(zhí)行如權(quán)利要求128所述方法的模塊。
130.如權(quán)利要求129所述的設(shè)備,其中所述設(shè)備包括路由器。
131.一種用于在發(fā)行-預(yù)訂網(wǎng)絡(luò)上實(shí)現(xiàn)查詢-響應(yīng)交互的方法,包括高速緩存所發(fā)行的通知;發(fā)行通知以便在高速緩存的發(fā)行通知中廣告內(nèi)容;提交預(yù)訂以便查詢發(fā)行的通知;重放來自于所述高速緩存器的高速緩存的發(fā)行通知;以及,基于所述預(yù)訂執(zhí)行基于內(nèi)容的路由(CBR),以便將重放的發(fā)行通知推送給消費(fèi)者。
132.一種用于實(shí)現(xiàn)查詢-響應(yīng)交互的發(fā)行-預(yù)訂網(wǎng)絡(luò),包括路由器、發(fā)行者機(jī)器以及預(yù)訂者機(jī)器,其包括用于執(zhí)行如權(quán)利要求131所述方法的模塊。
133.一種用于在發(fā)行-預(yù)訂網(wǎng)絡(luò)上實(shí)現(xiàn)查詢-響應(yīng)交互的方法,包括高速緩存發(fā)行的通知;接收用于查詢發(fā)行的通知的預(yù)訂;重放來自于所述高速緩存器的高速緩存的發(fā)行通知;以及,使用所述用于查詢發(fā)行的通知的預(yù)訂執(zhí)行基于內(nèi)容的路由(CBR),以便確定是否轉(zhuǎn)發(fā)高速緩存的發(fā)行通知到鄰近節(jié)點(diǎn);以及,基于所述確定有選擇地轉(zhuǎn)發(fā)高速緩存的發(fā)行通知。
134.一種用于在發(fā)行-預(yù)訂網(wǎng)絡(luò)上實(shí)現(xiàn)查詢-響應(yīng)交互的設(shè)備,包括用于執(zhí)行如權(quán)利要求133所述方法的模塊。
135.如權(quán)利要求134所述的設(shè)備,其中所述設(shè)備包括路由器。
136.一種用于在發(fā)行-預(yù)訂網(wǎng)絡(luò)上實(shí)現(xiàn)查詢-響應(yīng)交互的方法,包括接收數(shù)據(jù)廣告;將所述數(shù)據(jù)廣告變換為預(yù)訂;接收查詢;將所述查詢變換為通知;基于所述預(yù)訂執(zhí)行基于內(nèi)容的路由(CBR)以便將所述通知推送給廣告客戶;以及,基于所述通知將響應(yīng)數(shù)據(jù)返回給請(qǐng)求者。
137.如權(quán)利要求136所述的方法,其中所述變換步驟包括執(zhí)行本體變換。
138.如權(quán)利要求136所述的方法,其中所述返回步驟使用廣告客戶和請(qǐng)求者之間的單播連接實(shí)現(xiàn)。
139.如權(quán)利要求136所述的方法,其中所述返回步驟包括請(qǐng)求者為響應(yīng)數(shù)據(jù)創(chuàng)建新的預(yù)訂,并且使用新的預(yù)訂執(zhí)行CBR以便將響應(yīng)數(shù)據(jù)推送給請(qǐng)求者。
140.如權(quán)利要求136所述的方法,其中所述接收查詢步驟接收對(duì)數(shù)據(jù)集的查詢。
141.如權(quán)利要求136所述的方法,其中所述接收數(shù)據(jù)廣告步驟接收對(duì)數(shù)據(jù)集的數(shù)據(jù)廣告。
142.如權(quán)利要求136所述的方法,其中所述變換數(shù)據(jù)廣告步驟包括對(duì)所述數(shù)據(jù)廣告執(zhí)行一般情況映射。
143.如權(quán)利要求136所述的方法,其中所述轉(zhuǎn)換查詢步驟包括執(zhí)行對(duì)所述查詢的析取查詢映射。
144.如權(quán)利要求136所述的方法,其中變換所述數(shù)據(jù)廣告步驟包括在預(yù)訂中定義屬性,所述屬性代表數(shù)據(jù)廣告中屬性以及表達(dá)式運(yùn)算符的組合。
145.如權(quán)利要求136所述的方法,其中變換換所述查詢步驟包括在所述通知中定義屬性,所述屬性代表查詢中屬性以及表達(dá)式運(yùn)算符的組合。
146.一種用于實(shí)現(xiàn)查詢-響應(yīng)交互的發(fā)行-預(yù)訂網(wǎng)絡(luò),包括路由器、發(fā)行者機(jī)器以及預(yù)訂者機(jī)器,其包括用于執(zhí)行如權(quán)利要求136所述方法的模塊。
147.一種用于在發(fā)行-預(yù)訂網(wǎng)絡(luò)上實(shí)現(xiàn)查詢-響應(yīng)交互的方法,包括接收查詢;將所述查詢變換為通知;以及,基于對(duì)所述通知以及變換為預(yù)訂的數(shù)據(jù)廣告執(zhí)行的基于內(nèi)容的路由來接收響應(yīng)數(shù)據(jù)。
148.一種用于在發(fā)行-預(yù)訂網(wǎng)絡(luò)上實(shí)現(xiàn)查詢-響應(yīng)交互的設(shè)備,包括用于執(zhí)行如權(quán)利要求147所述方法的模塊。
149.如權(quán)利要求148所述的設(shè)備,其中所述設(shè)備包括預(yù)訂者機(jī)器。
150.一種用于在發(fā)行-預(yù)訂網(wǎng)絡(luò)上實(shí)現(xiàn)查詢-響應(yīng)交互的方法,包括接收數(shù)據(jù)廣告;將所述數(shù)據(jù)廣告變換為預(yù)訂;基于對(duì)所述預(yù)訂以及所述通知執(zhí)行的基于內(nèi)容的路由來接收變換為通知的查詢;以及基于所述通知將響應(yīng)數(shù)據(jù)轉(zhuǎn)發(fā)給請(qǐng)求者。
151.一種用于在發(fā)行-預(yù)訂網(wǎng)絡(luò)上實(shí)現(xiàn)查詢-響應(yīng)交互的設(shè)備,包括用于執(zhí)行如權(quán)利要求150所述方法的模塊。
152.如權(quán)利要求151所述的設(shè)備,其中所述設(shè)備包括發(fā)行者機(jī)器。
153.一種用于在發(fā)行-預(yù)訂網(wǎng)絡(luò)上實(shí)現(xiàn)查詢-響應(yīng)交互的方法,包括接收通知,其中所述通知是從查詢變換而來的;執(zhí)行基于內(nèi)容的路由(CBR),以便確定是否將所述通知轉(zhuǎn)發(fā)到鄰近節(jié)點(diǎn);以及基于所述確定有選擇地轉(zhuǎn)發(fā)所述通知。
145.如權(quán)利要求153所述的方法,還包括接收預(yù)訂,其中所述預(yù)訂是從數(shù)據(jù)廣告變換而來的,并且其中所述執(zhí)行CBR步驟基于所述預(yù)訂來執(zhí)行CBR。
155.一種用于在發(fā)行-預(yù)訂網(wǎng)絡(luò)上實(shí)現(xiàn)查詢-響應(yīng)交互的設(shè)備,包括用于執(zhí)行如權(quán)利要求153所述方法的模塊。
156.如權(quán)利要求155所述的設(shè)備,其中所述設(shè)備包括路由器。
157.一種用于為經(jīng)由發(fā)行-預(yù)訂網(wǎng)絡(luò)遞送的消息提供持久的高速緩存的方法,包括以下步驟(a)在第一節(jié)點(diǎn)經(jīng)由所述網(wǎng)絡(luò)接收具有數(shù)據(jù)的消息;(b)給所述數(shù)據(jù)加時(shí)間標(biāo)記;(c)將所述數(shù)據(jù)高速緩存在第一節(jié)點(diǎn)的高速緩存器中;以及(d)使用基于內(nèi)容的路由將所述消息路由至第二節(jié)點(diǎn)。
158.如權(quán)利要求157所述的方法,還包括以下步驟(e)在第二節(jié)點(diǎn)重復(fù)步驟(a)至(d),其中將所述數(shù)據(jù)高速緩存在第二節(jié)點(diǎn)的高速緩存器中。
159.如權(quán)利要求157所述的方法,還包括以下步驟確定自從高速緩存步驟(c)以來時(shí)間粒度G是否已經(jīng)過去;以及基于G已經(jīng)過去的確定、將高速緩存的數(shù)據(jù)從高速緩存器移動(dòng)到盤上。
160.如權(quán)利要求157所述的方法,還包括以下步驟確定自從對(duì)于最后的高速緩存數(shù)據(jù)塊的高速緩存步驟(c)以來持久的時(shí)間幀T是否已經(jīng)過去;以及基于對(duì)于最后的高速緩存數(shù)據(jù)塊T已經(jīng)過去的確定來刪除高速緩存的數(shù)據(jù)。
161.如權(quán)利要求160所述的方法,其中T是基于所述數(shù)據(jù)與其相關(guān)聯(lián)的通道而設(shè)置的。
162.如權(quán)利要求157所述的方法,其中所述第一節(jié)點(diǎn)包括智能路由器,并且接收步驟(a)接收智能路由器的消息。
163.如權(quán)利要求162所述的方法,其中所述智能路由器包括高速緩存管理器,并且所述高速緩存管理器執(zhí)行步驟(b)以及(c)。
164.如權(quán)利要求157所述的方法,其中所述第二節(jié)點(diǎn)包括預(yù)訂者機(jī)器。
165.一種用于為經(jīng)由發(fā)行-預(yù)訂網(wǎng)絡(luò)遞送的消息提供持久的高速緩存的路由器,包括用于執(zhí)行如權(quán)利要求157所述方法的模塊。
166.一種用于提供消息的持久高速緩存的發(fā)行-預(yù)訂網(wǎng)絡(luò),包括多個(gè)節(jié)點(diǎn),所述節(jié)點(diǎn)包括用于執(zhí)行如權(quán)利要求158所述方法的模塊。
167.一種計(jì)算機(jī)可讀介質(zhì),包括用于執(zhí)行如權(quán)利要求157所述方法的指令。
168.一種用于為經(jīng)由發(fā)行-預(yù)訂網(wǎng)絡(luò)遞送的消息提供持久的高速緩存的方法,包括以下步驟經(jīng)由所述發(fā)行-預(yù)訂網(wǎng)絡(luò)接收具有數(shù)據(jù)的消息;給所述數(shù)據(jù)加時(shí)間標(biāo)記;在高速緩存器中高速緩存所述數(shù)據(jù);確定自從高速緩存步驟以來時(shí)間粒度G是否已經(jīng)過去;基于G已經(jīng)過去的確定、將高速緩存的數(shù)據(jù)移動(dòng)到盤上;確定自從對(duì)于最后的高速緩存數(shù)據(jù)塊的高速緩存步驟以來持久的時(shí)間幀T是否已經(jīng)過去;以及基于對(duì)于最后的高速緩存數(shù)據(jù)塊T已經(jīng)過去的確定來從所述盤中刪除高速緩存的數(shù)據(jù)。
169.如權(quán)利要求168所述的方法,還包括確定是否已經(jīng)接收了對(duì)高速緩存數(shù)據(jù)的請(qǐng)求。
170.如權(quán)利要求169所述的方法,其中對(duì)高速緩存數(shù)據(jù)的請(qǐng)求是從用戶機(jī)器接收的。
171.如權(quán)利要求169所述的方法,還包括基于已經(jīng)接收了對(duì)高速緩存數(shù)據(jù)的請(qǐng)求的確定來檢索高速緩存的數(shù)據(jù)。
172.如權(quán)利要求171所述的方法,其中所述檢索步驟包括啟用上游高速緩存器,并且從上游高速緩存器檢索高速緩存的數(shù)據(jù)。
173.如權(quán)利要求172所述的方法,還包括對(duì)從上游高速緩存器檢索的高速緩存數(shù)據(jù)執(zhí)行重復(fù)抑制。
174.如權(quán)利要求172所述的方法,其中所述檢索步驟從用戶機(jī)器代理獲得上游高速緩存器的列表。
175.如權(quán)利要求171所述的方法,還包括將高速緩存數(shù)據(jù)轉(zhuǎn)送到骨干路由器以便路由到用戶機(jī)器的步驟。
176.如權(quán)利要求168所述的方法,還包括為高速緩存的數(shù)據(jù)做索引的步驟。
177.如權(quán)利要求176所述的方法,其中所述做索引步驟按照通道ID、主題和/或時(shí)間戳來為高速緩存的數(shù)據(jù)做索引。
178.如權(quán)利要求168所述的方法,還包括在上游路由節(jié)點(diǎn)執(zhí)行接收、做時(shí)間標(biāo)記以及高速緩存步驟的步驟。
179.如權(quán)利要求168所述的方法,還包括重復(fù)所述接收步驟的步驟。
180.一種用于為經(jīng)由發(fā)行-預(yù)訂網(wǎng)絡(luò)遞送的消息提供持久的高速緩存的路由器,包括用于執(zhí)行如權(quán)利要求168所述方法的模塊。
181.一種用于提供持久高速緩存消息的發(fā)行-預(yù)訂網(wǎng)絡(luò),包括第一節(jié)點(diǎn)以及第二節(jié)點(diǎn),其中第一節(jié)點(diǎn)位于第二節(jié)點(diǎn)上游,并且所述第一節(jié)點(diǎn)和第二節(jié)點(diǎn)均包括用于執(zhí)行如權(quán)利要求168所述方法的模塊。
182.一種計(jì)算機(jī)可讀介質(zhì),包括用于執(zhí)行如權(quán)利要求168所述方法的指令。
183.一種用于為經(jīng)由發(fā)行-預(yù)訂網(wǎng)絡(luò)遞送的消息提供持久的高速緩存的方法,包括以下步驟(a)經(jīng)由所述網(wǎng)絡(luò)在多個(gè)上游節(jié)點(diǎn)接收具有數(shù)據(jù)的多個(gè)消息;(b)給所述數(shù)據(jù)加時(shí)間標(biāo)記;(c)在多個(gè)上游節(jié)點(diǎn)的一個(gè)或多個(gè)節(jié)點(diǎn)的高速緩存器中高速緩存所述數(shù)據(jù);(d)使用基于內(nèi)容的路由將所述消息路由至邊緣節(jié)點(diǎn);以及,(e)在邊緣節(jié)點(diǎn)重復(fù)步驟(a)至(c),其中將所述數(shù)據(jù)高速緩存在第二節(jié)點(diǎn)的高速緩存器中。
184.如權(quán)利要求183所述的方法,還包括使用基于內(nèi)容的路由將至少一個(gè)消息從邊緣節(jié)點(diǎn)路由到預(yù)訂者機(jī)器的步驟。
185.如權(quán)利要求184所述的方法,還包括所述邊緣節(jié)點(diǎn)接收來自于預(yù)訂者機(jī)器的對(duì)高速緩存數(shù)據(jù)的請(qǐng)求的步驟。
186.如權(quán)利要求185所述的方法,還包括以下步驟響應(yīng)所述請(qǐng)求確定高速緩存數(shù)據(jù)的時(shí)間量以便檢索;以及,基于高速緩存數(shù)據(jù)的時(shí)間標(biāo)記檢索所確定的高速緩存數(shù)據(jù)的時(shí)間量。
187.如權(quán)利要求186所述的方法,其中根據(jù)所述請(qǐng)求確定所述時(shí)間量,其中所述請(qǐng)求包括將檢索的高速緩存數(shù)據(jù)的請(qǐng)求的時(shí)間量。
188.如權(quán)利要求186所述的方法,其中通過計(jì)算預(yù)訂者機(jī)器的斷開連接時(shí)間來確定所述時(shí)間量,其中所述斷開連接時(shí)間是預(yù)訂者機(jī)器與發(fā)行-預(yù)訂網(wǎng)絡(luò)斷開連接的時(shí)間量。
189.如權(quán)利要求185所述的方法,還包括確定步驟,用于確定在多個(gè)上游節(jié)點(diǎn)的一個(gè)或多個(gè)節(jié)點(diǎn)存儲(chǔ)至少一些所請(qǐng)求的高速緩存數(shù)據(jù)。
190.如權(quán)利要求189所述的方法,還包括所述邊緣節(jié)點(diǎn)接收來自于預(yù)訂者機(jī)器的上游節(jié)點(diǎn)列表的步驟。
191.如權(quán)利要求189所述的方法,還包括以下步驟將對(duì)高速緩存數(shù)據(jù)的請(qǐng)求發(fā)送到多個(gè)上游節(jié)點(diǎn)的一個(gè)或多個(gè);從多個(gè)上游節(jié)點(diǎn)的一個(gè)或多個(gè)檢索所請(qǐng)求的高速緩存數(shù)據(jù);以及,路由所檢索到的數(shù)據(jù)至預(yù)訂者機(jī)器。
192.如權(quán)利要求191所述的方法,還包括對(duì)所檢索到的數(shù)據(jù)執(zhí)行重復(fù)抑制。
193.一種用于提供持久高速緩存消息的發(fā)行-預(yù)訂網(wǎng)絡(luò),包括多個(gè)上游節(jié)點(diǎn)以及邊緣節(jié)點(diǎn),其中所述節(jié)點(diǎn)包括用于執(zhí)行如權(quán)利要求183所述方法的模塊。
全文摘要
提供了一種用于在不可靠的網(wǎng)絡(luò)(10)上執(zhí)行發(fā)行-預(yù)訂操作的方法和設(shè)備。提供了一種在發(fā)行-預(yù)訂網(wǎng)絡(luò)(118,140)中傳播過濾的方法和設(shè)備。提供了一種用于在發(fā)行-預(yù)訂網(wǎng)絡(luò)(118,140)中分組的基于內(nèi)容的路由的方法和設(shè)備。提供了一種用于在發(fā)行-預(yù)訂網(wǎng)絡(luò)(118,140)上實(shí)現(xiàn)查詢-響應(yīng)交互的方法和設(shè)備。提供了一種用于持久地高速緩存經(jīng)由發(fā)行-預(yù)訂網(wǎng)絡(luò)(118,140)遞送的消息的方法和設(shè)備。
文檔編號(hào)H04L29/08GK1656474SQ03812180
公開日2005年8月17日 申請(qǐng)日期2003年3月28日 優(yōu)先權(quán)日2002年3月28日
發(fā)明者P·-F·楊, T·W·陳, A·W·P·馮, D·S·羅森布盧姆, S·亞尼克, C·-Y·王, C·-M·林, Y·黃, R·特奧多雷斯庫 申請(qǐng)人:普里凱許公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1