JP2009163753A - Method and device for routing, query and response based on reliable and efficient content in publish-subscribe network - Google Patents

Method and device for routing, query and response based on reliable and efficient content in publish-subscribe network Download PDF

Info

Publication number
JP2009163753A
JP2009163753A JP2009031766A JP2009031766A JP2009163753A JP 2009163753 A JP2009163753 A JP 2009163753A JP 2009031766 A JP2009031766 A JP 2009031766A JP 2009031766 A JP2009031766 A JP 2009031766A JP 2009163753 A JP2009163753 A JP 2009163753A
Authority
JP
Japan
Prior art keywords
communication method
filter
network
notification
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2009031766A
Other languages
Japanese (ja)
Inventor
Ping-Fai Yang
ヤン、ピン−ファイ
Tsu Wei Chen
ウェイ チェン、ツ
Alex W P Fung
ファン、アレックス、ダブリュー.ピー.
David S Rosenblum
ローゼンブラム、デビッド、エス.
Shalini Yajnik
ヤジニーク、シャリニ
Chung-Yih Wang
ワン、チャン−イー
Chih-Mei Lin
リン、チー−メイ
Yennun Huang
ファン、イェナン
Radu Teodorescu
テオドレスク、ラドゥ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
PreCache Inc
Original Assignee
PreCache Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by PreCache Inc filed Critical PreCache Inc
Publication of JP2009163753A publication Critical patent/JP2009163753A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/306User profiles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/565Conversion or adaptation of application format or content
    • H04L67/5651Reducing the amount or size of exchanged application data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/566Grouping or aggregating service requests, e.g. for unified processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/561Adding application-functional data or data for application control, e.g. adding metadata
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To achieve persistent caching of messages delivered via a publish-subscribe network. <P>SOLUTION: A publisher device 118 and a subscriber device 140 receive the messages containing data via the publish-subscribe network by an intelligent router, add a mark indicating time to the received data, cache the data to a cache memory, determine whether or not a time grain period has passed since caching of the data, transfer the cached data from the cache memory to a disk if determined that the time grain period having passed, determine whether or not a persistent time frame period has passed since caching of the data, and delete the cached data if determined that the persistent time frame period having passed. <P>COPYRIGHT: (C)2009,JPO&INPIT

Description

本出願は、2002年3月28日に出願された、米国仮出願番号60/368,833号、発明の名称「信頼性が低いネットワークにおける信頼性が高い発行/購読システムアーキテクチャ(Reliable Publish/Subscribe System Architecture over Unreliable Networks)」、2002年3月28日に出願された、米国仮出願番号60/369,105号、発明の名称「発行/購読ネットワークのためのコンテンツフィルタの伝播方法(Methods for Propagating Content Filters for a Publish/Subscribe Network)」、2002年3月28日に出願された、米国仮出願番号60/368,831号、発明の名称「発行/購読ネットワークにおけるコンテンツに基づくパケットルーティングの実際的な方法(Practical Method for Content-Based Packet Routing in a Publish/Subscribe Network)」、2002年3月28日に出願された、米国仮出願番号60/368,870号、発明の名称「データ広告を購読としてマッピングし、クエリを通知としてマッピングすることにより、発行−購読インフラストラクチャにおいてクエリ−応答インタラクションを実現する方法(Implementing Query-Response Interactions On a Publish- Subscribe Infrastructure By Mapping Data Advertisements as Subscriptions and Queries as notifications)」、2002年4月3日に出願された、米国仮出願番号60/369,832号、発明の名称「持続的で信頼性が高いメッセージ配信を実現するための方法及び装置(Method and Apparatus for Implementing Persistent and Reliable Message Delivery)」、2003年2月19日に出願された、米国仮出願番号60/447,782号、発明の名称「コンテンツフィルタの伝播、コンパクトフィルタストレージ及びオフラインプリコンピュテーション、信頼性が高い発行及び購読、持続的で信頼性が高いメッセージ配信の実現、データ広告を購読としてマッピングし、クエリを通知としてマッピングすることにより、発行−購読インフラストラクチャにおいてクエリ−応答インタラクションを実現する方法(Propagating Content Filters, Content-Based Packet Routing Using Compact Filter Storage and Off-Line Pre-computation, Reliable Publishing and Subscribing, Implementing Persistent and Reliable Message Delivery, and Implementing Query- Response Interactions By Mapping Data Advertisements as Subscriptions and Queries as Notifications in a Publish-Subscribe Network)」に対する優先権を主張し、これらの特許文献は、参照により本願に援用されるものとする。   This application is filed on March 28, 2002, US Provisional Application No. 60 / 368,833, entitled "Reliable Publish / Subscribe System Architecture in Reliable Networks". System Architecture over Unreliable Networks), US Provisional Application No. 60 / 369,105, filed March 28, 2002, entitled “Methods for Propagating Content Filters for Issuing / Subscribing Networks” Content Filters for a Publish / Subscribe Network), filed March 28, 2002, US Provisional Application No. 60 / 368,831, entitled “Practical Content-Based Packet Routing in a Publish / Subscribe Network” Practical Method for Content-Based Packet Routing in a Publish / Subscribe Network ”, March 2, 2002 US Provisional Application No. 60 / 368,870, filed on the same day as the title of the invention "Mapping query data as a subscription and mapping a query as a notification, enabling query-response interaction in the publish-subscribe infrastructure (Implementing Query-Response Interactions On a Publish-Subscribe Infrastructure By Mapping Data Advertisements as Subscriptions and Queries as notifications), US Provisional Application No. 60 / 369,832, filed April 3, 2002, invention “Method and Apparatus for Implementing Persistent and Reliable Message Delivery”, US Provisional Application No. 60, filed on Feb. 19, 2003. / 447,782, title of invention "Propagation of content filter, compact file Publish-subscribe infrastructure by filter storage and offline pre-computation, reliable publishing and subscription, enabling sustained and reliable message delivery, mapping data advertisements as subscriptions, and mapping queries as notifications Propagating Content Filters, Content-Based Packet Routing Using Compact Filter Storage and Off-Line Pre-computation, Reliable Publishing and Subscribing, Implementing Persistent and Reliable Message Delivery, and Implementing Query- Response Interactions By "Mapping Data Advertisements as Subscriptions and Queries as Notifications in a Publish-Subscribe Network" ", and these patent documents are hereby incorporated by reference.

更に、米国特許出願第10/199,356号、発明の名称「ペイロード検査によるパケットのルーティング(Packet Routing Via Payload Inspection)」、米国特許出願第10/199,368号、発明の名称「ルータにおけるチャンネルを用いたコンテンツに基づくルーティング及びフィルタリングのための方法及び装置(Method And Apparatus For Content-Based Routing And Filtering At Routers Using Channels)」、米国特許出願第10/199,439号、発明の名称「ネットワークを介してブール関数を送信及び受信する方法(Method For Sending And Receiving A Boolean Function Over A Network)」、米国特許出願第10/199,369号、発明の名称「ネットワークを介する評価、修正、再使用及び配信のためにブール関数を保存する方法(Method For Storing Boolean Functions To Enable Evaluation, Modification, Reuse, And Delivery Over A Network)」、米国特許出願第10/199,388号、発明の名称「コンテンツに基づくルーティングにおける可変長フィールドにおけるワイルドカード照合を効率的に実現する方法(Efficient Implementation of Wildcard Matching On Variable-Sized Fields In Connect-Based Routing)」も参照により本願に援用されるものとする。   Further, US patent application Ser. No. 10 / 199,356, title of invention “Packet Routing Via Payload Inspection”, US patent application Ser. No. 10 / 199,368, title of invention “Channel in Router”. Method and Apparatus for Content-Based Routing And Filtering At Routers Using Channels ", US Patent Application No. 10 / 199,439, entitled" Network and Networking " Method For Sending And Receiving A Boolean Function Over A Network ”, US Patent Application No. 10 / 199,369, entitled“ Evaluation, Modification, Reuse and Reuse Through Network ” Method For Storing Boolean Functions To Enable Evaluati on, Modification, Reuse, And Delivery Over A Network), US patent application Ser. No. 10 / 199,388, title of invention “Efficient implementation of wildcard matching in variable length fields in content-based routing (Efficient Implementation of Wildcard Matching On Variable-Sized Fields In Connect-Based Routing) is also incorporated herein by reference.

ネットワーク帯域幅は、指数関数的に拡大している。しかしながら、ネットワークインフラストラクチャ(ルータ、サーバ、デーモン、プロトコル等を含む。)は、未だに比較的古い技術を用いている。この結果、インターネットアプリケーション及びネットワークルータは、帯域幅の拡大の速度に対応することができない。同時に、ネットワークに対応する機器及びアプリケーションも増加している。これらの機器及びアプリケーションによるネットワークノードへの負荷は、著しく大きくなっている。また、ネットワーク負荷及びアプリケーションの増加のために、ネットワークアプリケーションを実現し、維持するための複雑性がより高まっている。ネットワーク帯域幅の増加、及びネットワーク機器及びアプリケーションの偏在的な(ubiquitous)使用により、古いネットワークインフラストラクチャにおけるデータのルーティング及び送信、特に、購読者(subscriber)へのコンテンツを発行(publishing)に関する問題が生じている。   Network bandwidth is growing exponentially. However, the network infrastructure (including routers, servers, daemons, protocols, etc.) still uses relatively old technology. As a result, Internet applications and network routers cannot cope with the speed of bandwidth expansion. At the same time, devices and applications corresponding to the network are increasing. The load on the network node by these devices and applications is significantly increased. Also, the complexity of implementing and maintaining network applications is increasing due to the increase in network load and applications. Increased network bandwidth and ubiquitous use of network equipment and applications has led to issues related to routing and transmission of data in older network infrastructures, particularly publishing content to subscribers. Has occurred.

ネットワークにおいてサーバからクライアントに情報をプッシュするモデルは、発行−購読型(publish-subscribe style)と呼ばれる。このモデルでは、サーバは、どのクライアントが情報に興味を持ち、又はクライアントがネットワーク内のどこに位置するかに関わらず、その情報の単純化された発行者(publisher)として機能する。クライアントは、情報の購読者(subscriber)となり、潜在的には、その情報がネットワークのどこで利用可能となったかに関する詳細に関わらず、その情報が利用可能になると、その情報が配信される。ネットワークは、発行された情報を購読者に効率的にルーティングし、アクティブな購読のための情報を照合し、これらの処理を発行者及び購読者についてトランスペアレントな方法で実行する責務を負う。   The model of pushing information from a server to a client in a network is called a publish-subscribe style. In this model, the server acts as a simplified publisher of that information regardless of which clients are interested in the information or where the client is located in the network. Clients become subscribers of information, potentially delivering that information as it becomes available, regardless of the details about where the information was made available on the network. The network is responsible for efficiently routing published information to subscribers, collating information for active subscriptions, and performing these processes in a transparent manner for publishers and subscribers.

発行−購読モデルにおいては、サーバの構成が著しく簡略化されるので、大型のサーバ(heavyweight server)と小型のクライアント(lightweight client)といった区別はなくなり、これらは、発行者、購読者又はその両方にもなり得るピアという呼称に統合される。様々な種類のアプリケーションがピア間の発行−購読型のインタラクションに近い性質を兼ね備えている。これらの多くのアプリケーションの基底に存在する課題では、発行及び購読される情報は、イベントの形式で提供される。例えば、投資家が株を購入又は売却することにより、株価が変動する。また、高速道路上で交通事故が発生すると、交通渋滞が発生する。ソフトウェアシステムのセキュリティホールが発見されると、ソフトウェアのユーザのためにパッチを開発する必要が生じる。インターネットゲームのプレーヤが武器を使用すると、他のプレーヤのアバターが死ぬ。これらの例示的な現象は、全て、多数の購読者が潜在的に興味を有するイベントであり、このようなイベントが生じたことをこれらの購読者に通知するために、ネットワーク内で伝播(propagate)させることができる。すなわち、イベントは、ある時刻に、ネットワーク上のある場所で発生した、潜在的に興味が持たれる何かに関する、自己充足的(self-contained)で簡潔な情報片(succinct piece of information)である。   In the publish-subscribe model, the server configuration is greatly simplified, so there is no distinction between a heavyweight server and a lightweight client, which can be issued to issuers, subscribers, or both. Can be integrated into the designation of peers. Various types of applications have characteristics close to publish-subscribe interaction between peers. In the issues that exist at the base of many of these applications, published and subscribed information is provided in the form of events. For example, the stock price fluctuates as an investor purchases or sells stock. In addition, when a traffic accident occurs on a highway, traffic congestion occurs. When security holes in software systems are discovered, patches need to be developed for software users. When an internet game player uses a weapon, the other player's avatar dies. These exemplary phenomena are all events that are potentially of interest to a large number of subscribers and are propagated within the network to inform these subscribers that such events have occurred. ). That is, an event is a self-contained and succinct piece of information about something of potential interest that occurred at some point on the network at a certain time. .

他の具体例として、スケジューリングされた同報通信があり、これは、イベント発生の時刻が予測不可能であり、ランダムである非同期イベントのみを含むアプリケーションとは異なる性質を有している。この場合、まず、イベントは、既知の時刻発生するようスケジューリングされる。次に、イベントは、必ずしも簡潔な情報片ではなくてもよい。これに代えて、イベントは、大量のデータであってもよい。興味を有する購読者が検出されたネットワークの一部に、このような大量のデータを送信するには、かなりのサーバ処理が必要となる。   Another example is scheduled broadcast, which has a different nature than an application that includes only asynchronous events that are unpredictable at the time of event occurrence. In this case, the event is first scheduled to occur at a known time. Second, an event need not necessarily be a brief piece of information. Alternatively, the event may be a large amount of data. Substantial server processing is required to send such a large amount of data to the part of the network where the interested subscribers are detected.

発行−購読モデルにおいて、発行されたコンテンツをどこに送信するかをネットワークに指示するための経路決定(routing decision)は、通常、サーバ又は発行者が行う。発行者は、自らが発行するコンテンツに関する購読予約(subscription)を保存する。発行者は、新たなコンテンツを受信又は生成すると、そのコンテンツと各購読予約とを比較し、何らかの一致がないかを調べる。コンテンツ(イベント)がいずれかの購読予約を満たす場合、発行者は、ネットワークを介して、対応する購読者にコンテンツをプッシュする。この従来の発行−購読モデルでは、特に、より多くの機器がネットワークに対応し、購読予約の数が増加すると、発行者に大きな負担がかかる。これに代えて、購読者が、発行された全てのイベントに対して自らの購読予約を評価する手法もあるが、これも同じくらい煩雑である。   In the publish-subscribe model, a routing decision is usually made by the server or issuer to instruct the network where to send the published content. The issuer stores a subscription related to the content that the issuer issues. When the issuer receives or generates new content, the issuer compares the content with each subscription and checks for any matches. If the content (event) satisfies any subscription, the publisher pushes the content to the corresponding subscriber over the network. In this conventional publish-subscribe model, especially when more devices are compatible with the network and the number of subscriptions is increased, the issuer is heavily burdened. Alternatively, there is a way for subscribers to evaluate their subscriptions for all published events, but this is equally cumbersome.

インターネットにおける無数のアプリケーションの集中度が高まることにより、イベント通知を利用する可能性も無限になる。ここで、これらの可能性のために、経路決定を効率的に行い、イベントがいつ購読予約を充足するかを効率的に判定して、発行者の負担を軽減する手法を実現することが必要である。したがって、普遍的で持続的なイベント通知サービス(event notification service)が実現すれば、インターネットアプリケーション並びに他のアプリケーション及びインプリメンテーションに大きな付加価値が与えられる。   As the concentration of countless applications on the Internet increases, the possibilities for using event notifications are infinite. Now, because of these possibilities, it is necessary to implement a method to reduce the issuer's burden by efficiently determining the route and efficiently determining when the event satisfies the subscription. It is. Thus, the realization of a universal and persistent event notification service adds significant value to Internet applications and other applications and implementations.

特開2001−285287号公報JP 2001-285287 A 特開2001−291044号公報JP 2001-291044 A Bill Segall, David Arnold, Julian Boot, Micheal Henderson, Ted Phelps 「Content Based Routing with Elvin4」In Proc. AUUG2K(June 2000)Bill Segall, David Arnold, Julian Boot, Micheal Henderson, Ted Phelps “Content Based Routing with Elvin4” In Proc. AUUG2K (June 2000) Guruduth Banavar 外5名 「An Efficient Multicast Protocol for Content-Based Publish-Subscribe Systems」 INTERNATIONAL CONFERENCE ON DISTRIBUTED COMPUTING SYSTEMS, 1999Guruduth Banavar and five others "An Efficient Multicast Protocol for Content-Based Publish-Subscribe Systems" INTERNATIONAL CONFERENCE ON DISTRIBUTED COMPUTING SYSTEMS, 1999

発行−購読ネットワークにおいて、フィルタを伝播するための通信方法及び通信装置を提供する。まず、ネットワークにおけるコンテンツの購読予約に関連する複数のフィルタを受信する。特定の基準に基づいて、フィルタの数を減少させ、ネットワークにおいて、コンテンツの購読予約を照合するために数が削減されたフィルタを伝播する。   A communication method and apparatus for propagating a filter in an publish-subscribe network is provided. First, a plurality of filters related to content subscription in the network are received. Based on certain criteria, reduce the number of filters and propagate the reduced filters in the network to match content subscriptions.

また、発行−購読ネットワークにおいて、クエリ−応答インタラクションを実現する通信方法及び通信装置を提供する。まず、データセットに関連する広告と、論理式を表すクエリとを受信する。次に、広告を対応する購読予約にマッピングする。次に、クエリを対応する通知にマッピングする。これらの対応する購読予約及び通知を用いて、広告と、ネットワークにおけるクエリとを実現する。   In addition, a communication method and a communication device for realizing query-response interaction in an issue-subscription network are provided. First, an advertisement associated with a data set and a query representing a logical expression are received. The advertisement is then mapped to the corresponding subscription reservation. The query is then mapped to the corresponding notification. These corresponding subscriptions and notifications are used to implement advertisements and queries in the network.

また、ネットワークを介して配信されたメッセージの持続性を実現する通信方法及び通信装置を提供する。まず、ネットワークを介してメッセージを受信する。次に、メッセージを後の読出のために保存する。ネットワークに関連する障害に応じて、メッセージの持続的で信頼できる配信を提供する。   Also provided are a communication method and a communication device that realize the sustainability of messages distributed via a network. First, a message is received via the network. The message is then saved for later retrieval. Provide persistent and reliable delivery of messages in response to network-related failures.

本発明のさらに他の目的、本発明によって得られる具体的な利点は、以下において図面を参照して説明される実施に形態から一層明らかにされる。   Other objects of the present invention and specific advantages obtained by the present invention will become more apparent from the embodiments described below with reference to the drawings.

また、本発明は、信頼性の低いネットワーク上で発行−購読処理を実行するための通信方法であって、上記ネットワークを介して、コンテンツの購読予約を受信するステップと、上記コンテンツの購読予約に基づいて、上記ネットワークを介して上記コンテンツを発行するステップと、上記ネットワークにおけるノードにおいて、上記コンテンツに関する通知を受信するステップと、上記通知を隣接しているノードに転送すべきか否かを判定するステップと、上記判定に基づいて、信頼できる伝送プロトコルを用いて、上記隣接しているノードに通知を選択的に転送するステップとを有することを特徴とする。   The present invention is also a communication method for executing issue-subscribe processing on a low-reliability network, the step of receiving a content subscription via the network, and the content subscription A step of issuing the content via the network; a step of receiving a notification regarding the content at a node in the network; and a step of determining whether the notification should be transferred to an adjacent node. And selectively transferring a notification to the adjacent nodes using a reliable transmission protocol based on the determination.

また、本発明は、信頼性の低いネットワーク上で発行−購読処理を実行するルータであって、上記通信方法を実現するモジュールを備えることを特徴とする。   In addition, the present invention is a router that executes issue-subscribe processing on a low-reliability network, and includes a module that realizes the communication method.

また、本発明は、発行−購読処理を実行するため広域ネットワークであって、1つ以上の購読者装置と、複数のルータとを備え、上記複数のルータのそれぞれは、上記広域ネットワークを介して、上記購読者装置の1つ以上に対応しているコンテンツの購読予約を受信する購読予約受信モジュールと、上記ネットワーク内のノードにおいて、コンテンツに関する通知を受信する通知受信モジュールと、上記通知を隣接しているノードに転送するべきか否かを判定するコンテンツベースルーティングモジュールと、上記判定に基づいて、信頼できる伝送プロトコルを用いて、上記隣接しているノードに通知を選択的に転送する高信頼性転送モジュールとを有する発行モジュールとを備え、上記複数のルータは、上記購読予約に対応している1又は複数の購読者に通知が配信されるまで、上記通知を高い信頼性で選択的に転送することを特徴とする。   The present invention is also a wide area network for executing issue-subscribe processing, comprising one or more subscriber devices and a plurality of routers, each of the plurality of routers being connected via the wide area network. A subscription reservation receiving module for receiving a subscription reservation for content corresponding to one or more of the subscriber devices, a notification receiving module for receiving a notification regarding the content at a node in the network, and the notification adjacent to each other. A content-based routing module that determines whether or not to forward to a certain node, and a reliable transmission that selectively forwards notifications to the adjacent nodes using a reliable transmission protocol based on the determination And a issuing module having a forwarding module, wherein the plurality of routers are one or two corresponding to the subscription reservation. Until notification to a plurality of subscribers are delivered, characterized by selectively transferring reliably the notification.

また、本発明は、信頼性の低いネットワーク上で発行−購読処理を実行するための通信方法であって、上記ネットワーク内の第1のノードにおいて、上記ネットワークを介して、コンテンツの購読予約を受信するステップと、上記ネットワーク内の上記第1のノードにおいて、上記コンテンツに関する通知を受信するステップと、コンテンツベースのルーティング(content-based routing:CBR)に基づいて、上記コンテンツの購読予約を用いて、上記通知を隣接している第2のノードに転送するべきか否かを判定するステップと、上記判定に基づいて、信頼できる伝送プロトコルを用いて、上記隣接しているノードに通知を選択的に転送するステップとを有することを特徴とする。   The present invention is also a communication method for executing issue-subscribe processing on an unreliable network, wherein a first node in the network receives a content subscription via the network. Using the content subscription reservation based on content-based routing (CBR) at the first node in the network, receiving a notification about the content, Determining whether or not to forward the notification to an adjacent second node, and selectively transmitting the notification to the adjacent node using a reliable transmission protocol based on the determination. And a transferring step.

また、本発明は、信頼性の低いネットワーク上で発行−購読処理を実行するルータであって、上記通信方法を実現するモジュールを備えることを特徴とする。   In addition, the present invention is a router that executes issue-subscribe processing on a low-reliability network, and includes a module that realizes the communication method.

また、本発明は、発行−購読処理を実行するため広域ネットワーク(WAN)であって、1つ以上の購読者装置と、複数のルータとを備え、上記複数のルータのそれぞれは、上記WAN内の第1のノードにおいて、上記WANを介して、上記購読者装置の1つ以上に対応しているコンテンツの購読予約を受信する購読予約受信モジュールと、上記WAN内の第1のノードにおいて、コンテンツに関する通知を受信する通知受信モジュールと、上記通知を上記WAN内の第2のノードに転送するべきか否かを判定するコンテンツベースルーティングモジュールと、上記判定に基づいて、信頼できる伝送プロトコルを用いて、上記第2のノードに通知を選択的に転送する高信頼性転送モジュールとを有する発行モジュールとを備え、上記複数のルータは、上記購読予約に対応している1又は複数の購読者に通知が配信されるまで、上記通知を高い信頼性で選択的に転送することを特徴とする。   The present invention is also a wide area network (WAN) for executing issue-subscribe processing, comprising one or more subscriber devices and a plurality of routers, each of the plurality of routers being in the WAN. A subscription subscription receiving module for receiving subscription subscriptions of content corresponding to one or more of the subscriber devices via the WAN, and content subscription at the first node in the WAN. Using a notification receiving module for receiving notifications, a content-based routing module for determining whether the notification should be forwarded to a second node in the WAN, and using a reliable transmission protocol based on the determination And an issuance module having a reliable transfer module for selectively transferring a notification to the second node. Data, until notification to one or more subscribers correspond to the subscription is delivered, wherein the selectively transferring reliably the notification.

また、本発明は、信頼性の低いネットワーク上で発行−購読処理を実行するための通信方法であって、信頼できる伝送プロトコルを用いて、2つの隣接しているノード間に信頼できるトンネルを確立するステップと、上記隣接するノードのうちの第1のノードにおいて、上記ネットワークを介して、コンテンツの購読予約を受信するステップと、上記ネットワーク内の上記第1のノードにおいて、上記コンテンツに関する通知を受信するステップと、コンテンツベースのルーティング(content-based routing:CBR)に基づいて、上記コンテンツの購読予約を用いて、上記通知を隣接している第2のノードに転送するべきか否かを判定するステップと、上記判定に基づいて、上記信頼できるトンネルを用いて、上記隣接している第2のノードに通知を転送するステップとを有することを特徴とする。   The present invention is also a communication method for executing issue-subscribe processing on an unreliable network, and establishes a reliable tunnel between two adjacent nodes using a reliable transmission protocol. Receiving a subscription to the content via the network at a first of the adjacent nodes, and receiving a notification regarding the content at the first node in the network And determining whether or not to forward the notification to the adjacent second node using the content subscription based on content-based routing (CBR) Based on the step and the determination, the trusted tunnel is used to communicate with the adjacent second node. Characterized by a step of transferring.

また、本発明は、信頼性の低いネットワーク上で発行−購読処理を実行するルータであって、上記通信方法を実現するモジュールを備えることを特徴とする。   In addition, the present invention is a router that executes issue-subscribe processing on a low-reliability network, and includes a module that realizes the communication method.

また、本発明は、発行−購読処理を実現するネットワークであって、上記ルータを複数備えることを特徴とする。   In addition, the present invention is a network that realizes issue-subscribe processing, and includes a plurality of the routers.

また、本発明は、発行−購読ネットワークにおいてフィルタを伝播するための通信方法であって、ネットワークにおけるコンテンツの購読予約に関連する複数のフィルタを受信するステップと、特定の基準に基づいて、上記フィルタの数を減少させるステップと、上記ネットワークにおいて、上記コンテンツの購読予約を照合するために上記数が削減されたフィルタを伝播するステップとを有することを特徴とする。   The present invention is also a communication method for propagating a filter in an publish-subscribe network, the method comprising: receiving a plurality of filters related to subscription subscription of content in the network; and the filter based on a specific criterion. And a step of propagating the reduced number of filters in the network to match subscriptions of the content.

また、本発明は、発行−購読ネットワークに置いて、フィルタを伝播するルータであって、上記通信方法を実現するモジュールを備えることを特徴とする。   Further, the present invention is a router that propagates a filter in an publish-subscribe network and includes a module that realizes the communication method.

また、本発明は、発行−購読ネットワークであって、上記通信方法を実現するモジュールを備える複数個のルータを備えることを特徴とする。   In addition, the present invention is an issue-subscribe network, and includes a plurality of routers including modules for realizing the communication method.

また、本発明は、発行−購読ネットワークであって、上記通信方法を実現するモジュールを備えるユーザ装置を備えることを特徴とする。   According to another aspect of the present invention, there is provided an issue-subscription network including a user device including a module for realizing the communication method.

また、本発明は、発行−購読ネットワークにおいてフィルタを伝播するための通信装置であって、ネットワークにおけるコンテンツの購読予約に関連する複数のフィルタを受信するフィルタ受信モジュールと、特定の基準に基づいて、上記フィルタの数を減少させるフィルタ削減モジュールと、上記ネットワークにおいて、上記コンテンツの購読予約を照合するために上記数が削減されたフィルタを伝播するフィルタ伝播モジュールとを備えることを特徴とする。   The present invention also provides a communication device for propagating a filter in an publish-subscribe network, wherein the filter receiving module receives a plurality of filters related to content subscription in the network, based on a specific criterion, A filter reduction module for reducing the number of filters, and a filter propagation module for propagating the filter with the reduced number in order to check the subscription of the content in the network.

また、本発明は、発行−購読ネットワークにおいてフィルタを伝播するための通信方法であって、(a)ネットワークのノードにおいて、複数のフィルタを受信するステップと、(b)上記受け取った1つ以上のフィルタを処理し、フィルタの数を削減するステップと、(c)受信者の振る舞いの規則に基づいて、フィルタを伝播するか否かを決定するステップと、(d)ネットワーク内の次のノードに、上記処理されたフィルタを伝播するステップとを有することを特徴とする。   The present invention is also a communication method for propagating a filter in an issue-subscribe network, comprising: (a) receiving a plurality of filters at a node of the network; and (b) one or more of the received ones Processing the filter and reducing the number of filters; (c) deciding whether to propagate the filter based on the rules of behavior of the receiver; and (d) to the next node in the network And propagating the processed filter.

また、本発明は、発行−購読ネットワークにおいてフィルタを伝播するためのルータであって、上記通信方法を実現するモジュールを備えることを特徴とする。   According to another aspect of the present invention, there is provided a router for propagating a filter in an publish-subscribe network, comprising a module for realizing the communication method.

また、本発明は、発行−購読ネットワークであって、上記通信方法を実現するモジュールを備える複数のルータを備えることを特徴とする。   In addition, the present invention is an issue-subscribe network, and includes a plurality of routers including modules for realizing the communication method.

また、本発明は、発行−購読ネットワークであって、上記通信方法を実現するユーザ装置を備える複数のルータを備えることを特徴とする。   In addition, the present invention is an issue-subscription network, and includes a plurality of routers including user devices for realizing the communication method.

また、本発明は、発行−購読ネットワークにおいてフィルタを伝播するための通信装置であって、ネットワーク内ノードにおいて、複数のフィルタを受信するフィルタ受信モジュールと、上記フィルタの数を減少させるフィルタ削減モジュールと、受信者の振る舞いの規則に基づいて、フィルタを伝播するか否かを決定し、フィルタを伝播すると決定した場合、数が削減されたフィルタを上記ネットワークにおける次のノードに伝播するフィルタ伝播モジュールとを備えることを特徴とする。   The present invention is also a communication device for propagating a filter in an issue-subscription network, a filter receiving module that receives a plurality of filters at a node in the network, and a filter reduction module that reduces the number of filters. A filter propagation module for deciding whether or not to propagate a filter based on the rules of behavior of the receiver and propagating the reduced number of filters to the next node in the network It is characterized by providing.

また、本発明は、発行−購読ネットワークにおいてフィルタを伝播させる通信方法であって、ルータからフィルタを要求する通知を送信するステップと、1つ以上のダウンストリームのルータによって通知を受信するステップと、上記フィルタ要求を更にダウンストリーム側に伝播するステップと、上記フィルタ要求が伝播されたダウンストリームのルータからの応答を待機するステップと、上記フィルタ要求が伝播されたダウンストリームのルータからフィルタを収集するステップと、上記伝播されたフィルタを処理し、上記フィルタの数を削減するステップと、上記数が削減されたフィルタを上記フィルタを要求したアップストリーム側のルータに送信するステップとを有することを特徴とする。   The present invention is also a communication method for propagating a filter in an publish-subscribe network, the step of transmitting a notification requesting a filter from a router, the step of receiving a notification by one or more downstream routers, Propagating the filter request further downstream, waiting for a response from the downstream router to which the filter request was propagated, and collecting a filter from the downstream router to which the filter request was propagated Processing the propagated filter to reduce the number of filters, and transmitting the reduced filter to the upstream router that requested the filter. And

また、本発明は、発行−購読ネットワークであって、複数のルータと、上記通信方法を実現するモジュールを備える発行者装置とを備えることを特徴とする。   In addition, the present invention is an issue-subscription network, and includes a plurality of routers and an issuer apparatus including a module that realizes the communication method.

また、本発明は、発行−購読ネットワークにおいてパケットのコンテンツベースのルーティングを行う通信方法であって、上記ネットワークにおいてパケットを受信するステップと、属性空間におけるフィルタ適用範囲を指定するマップにアクセスするステップと、上記パケットの経路決定のために、該パケットのコンテンツを検査するステップと、上記マップを用いて、上記パケットの経路決定を補助するステップと、上記検査されたパケットのコンテンツ及びマップに基づいて、経路決定を行うステップと、上記経路決定に基づいて、パケットをルーティングするステップとを有することを特徴とする。   The present invention is also a communication method for performing content-based routing of packets in an publish-subscribe network, the step of receiving packets in the network, and the step of accessing a map that specifies a filter application range in an attribute space. Inspecting the contents of the packet for route determination of the packet, using the map to assist in route determination of the packet, and based on the content and map of the inspected packet, The method includes a step of determining a route and a step of routing a packet based on the route determination.

また、本発明は、発行−購読ネットワークにおいてパケットのコンテンツベースのルーティングを行うルータであって、上記通信方法を実現するモジュールを備えることを特徴とする。   In addition, the present invention is a router that performs content-based routing of packets in an issue-subscribe network, and includes a module that realizes the communication method.

また、本発明は、ネットワークであって、上記複数のルータを備えることを特徴とする。   According to another aspect of the present invention, there is provided a network including the plurality of routers.

また、本発明は、コンピュータにより読取可能な媒体であって、上記通信方法を実現する命令を有することを特徴とする。   In addition, the present invention is a computer-readable medium having an instruction for realizing the communication method.

また、本発明は、パケットのコンテンツベースのルーティングを行う通信方法であって、(a)属性空間を空間量子化するステップと、(b)それぞれが少なくとも1つの記述された属性を有する複数のフィルタで覆われたグリッドセルを特定するステップと、(c)ステップ(b)において特定されたグリッドセルをカバーする複数個のフィルタによって記述される処理規則によって、コンテンツベースのルーティング(CBR)テーブルを更新するステップとを有することを特徴とする。   The present invention is also a communication method for performing content-based routing of packets, comprising: (a) spatial quantization of an attribute space; (b) a plurality of filters each having at least one described attribute The content-based routing (CBR) table is updated according to processing rules described by a plurality of filters covering the grid cells identified in step (b) and (c) step (b). And a step of performing.

また、本発明は、発行−購読ネットワークにおいてパケットのコンテンツベースのルーティングを行う通信装置であって、上記通信方法を実現するモジュールを備えることを特徴とする。   In addition, the present invention is a communication device that performs content-based routing of packets in an issue-subscription network, and includes a module that realizes the communication method.

また、本発明は、ネットワークであって、上記通信方法を実現するモジュールを備える複数のルータを備えることを特徴とする。   In addition, the present invention is a network, and includes a plurality of routers including modules that implement the communication method.

また、本発明は、コンピュータにより読取可能な媒体であって、上記通信方法を実現する命令を有することを特徴とする。   In addition, the present invention is a computer-readable medium having an instruction for realizing the communication method.

また、本発明は、発行−購読ネットワークにおいてクエリ−応答インタラクションを実現する通信方法であって、データセットに関連する広告を受信するステップと、論理式を表すクエリを受信するステップと、上記広告を対応する購読予約にマッピングするステップと、上記クエリを対応する通知にマッピングするステップと、上記対応する購読予約を用いて、広告を実現するステップと、上記対応する通知を用いて、ネットワークにおける、クエリを実現するステップとを有することを特徴とする。   The present invention is also a communication method for realizing query-response interaction in an publish-subscribe network, the method comprising: receiving an advertisement related to a data set; receiving a query representing a logical expression; Mapping to a corresponding subscription, mapping the query to a corresponding notification, implementing an advertisement using the corresponding subscription, and querying in the network using the corresponding notification And a step of realizing.

また、本発明は、発行−購読ネットワークにおいてクエリ−応答インタラクションを実現する通信方法であって、広告を登録するための購読予約を作成するステップと、通知を発行し、クエリを配信するステップと、購読予約を用いてコンテンツベースのルーティング(CBR)を実行し、広告主に通知をプッシュするステップと、要求者に応答データを返すステップとを有することを特徴とする。   The present invention also provides a communication method for realizing query-response interaction in an publish-subscribe network, the step of creating a subscription for registering an advertisement, the step of issuing a notification and distributing the query, Performing content-based routing (CBR) using the subscription and pushing notifications to the advertiser and returning response data to the requester.

また、本発明は、クエリ−応答インタラクションを実現する発行−購読ネットワークであって、上記通信方法を実現するモジュールを備えるルータと、発行者装置と、購読者装置を備えることを特徴とする。   In addition, the present invention is an issue-subscribe network that realizes query-response interaction, and includes a router including a module that realizes the communication method, an issuer device, and a subscriber device.

また、本発明は、発行−購読ネットワークにおいてクエリ−応答インタラクションを実現する通信方法であって、広告を登録する購読予約を受信するステップと、クエリを配信する通知を受信するステップと、購読予約を用いて、コンテンツベースのルーティングを実行し、隣接しているノードに通知を転送するか否かを判定するステップと、上記判定に基づいて、通知を選択的に転送するステップとを有することを特徴とする。   The present invention is also a communication method for realizing query-response interaction in an issue-subscription network, the method comprising: receiving a subscription reservation for registering an advertisement; receiving a notification for distributing a query; And performing content-based routing to determine whether or not to forward notifications to adjacent nodes and selectively forwarding notifications based on the determination. And

また、本発明は、発行−購読ネットワークにおいてクエリ−応答インタラクションを実現する通信装置であって、上記通信方法を実現するモジュールを備えることを特徴とする。   In addition, the present invention is a communication device that realizes query-response interaction in an issue-subscribe network, and includes a module that realizes the communication method.

また、本発明は、発行−購読ネットワークにおいてクエリ−応答インタラクションを実現する通信方法であって、初期サブジェクトを含む通知を発行するステップと、以前に発行された広告に関する過去サブジェクトを含む通知を発行するステップと、以前に発行された広告へのクエリである過去サブジェクトに対する購読予約を提出するステップと、過去サブジェクトに購読予約を用いてコンテンツベースのルーティングを実行し、以前に発行された広告を消費者にプッシュするステップとを有することを特徴とする。   The present invention is also a communication method for realizing query-response interaction in an publish-subscribe network, issuing a notification including an initial subject, and issuing a notification including a past subject related to a previously issued advertisement. Submitting a subscription reservation for a past subject that is a query to a previously published ad, and performing content-based routing on the past subject using the subscription reservation to the previously published advertisement to the consumer And a step of pushing to

また、本発明は、クエリ−応答インタラクションを実現する発行−購読ネットワークであって、上記通信方法を実現するモジュールを備えるルータと、発行者装置と、購読者装置とを備えることを特徴とする。   In addition, the present invention is an issue-subscribe network that realizes query-response interaction, and includes a router including a module that realizes the communication method, an issuer device, and a subscriber device.

また、本発明は、発行−購読ネットワークにおいてクエリ−応答インタラクションを実現する通信方法であって、初期サブジェクトを含む通知と、以前に発行された広告に関する過去サブジェクトを含む通知とを受信するステップと、初期サブジェクトに関する購読予約と、以前に発行された広告へのクエリである過去サブジェクトに関する購読予約とを受信するステップと、上記過去サブジェクトに購読予約を用いて、コンテンツベースのルーティングを実行し、上記以前に発行された広告を隣接しているノードに転送するか否か決定するステップと、上記判定に基づいて、上記以前に発行された広告を選択的に転送するステップとを有することを特徴とする。   The present invention is also a communication method for realizing query-response interaction in an issue-subscribe network, receiving a notification including an initial subject and a notification including a past subject related to a previously issued advertisement; Receiving a subscription reservation for an initial subject and a subscription reservation for a past subject that is a query to a previously published advertisement, and performing content-based routing using the subscription reservation for the past subject, Determining whether or not to forward an advertisement issued to a neighboring node, and selectively forwarding the previously issued advertisement based on the determination. .

また、本発明は、発行−購読ネットワークにおいてクエリ−応答インタラクションを実現する通信装置であって、上記通信方法を実現するモジュールを備えることを特徴とする。   In addition, the present invention is a communication device that realizes query-response interaction in an issue-subscribe network, and includes a module that realizes the communication method.

また、本発明は、発行−購読ネットワークにおいてクエリ−応答インタラクションを実現する通信方法であって、発行された通知をキャッシングするステップと、上記キャッシングされた、発行された通知内のコンテンツを広告する通知を発行するステップと、上記発行された通知へのクエリである購読予約を提出するステップと、上記キャッシュから、上記キャッシングされた、発行された通知を再生するステップと、上記購読予約に基づいて、コンテンツベースのルーティング(CBR)を実行し、上記再生された、発行された通知を消費者にプッシュするステップとを有することを特徴とする。   The present invention is also a communication method for realizing query-response interaction in an publish-subscribe network, the step of caching issued notifications, and the notification for advertising the contents in the cached issued notifications. , Submitting a subscription that is a query to the published notification, replaying the cached published notification from the cache, and based on the subscription Performing content-based routing (CBR) and pushing the replayed published notification to a consumer.

また、本発明は、クエリ−応答インタラクションを実現する発行−購読ネットワークであって、上記通信方法を実現するモジュールを備えるルータと、発行者装置と、購読者装置を備えることを特徴とする。   In addition, the present invention is an issue-subscribe network that realizes query-response interaction, and includes a router including a module that realizes the communication method, an issuer device, and a subscriber device.

また、本発明は、発行−購読ネットワークにおいてクエリ−応答インタラクションを実現する通信方法であって、発行された通知をキャッシングするステップと、上記発行された通知を要求する購読予約を受信するステップと、上記キャッシュから、上記キャッシングされた、発行された通知を再生するステップと、上記発行された通知へのクエリである購読予約を用いてコンテンツベースのルーティング(CBR)を実行し、上記キャッシングされた、発行された通知を隣接しているノードに転送するか否かを判定するステップと、上記判定に基づいて、信頼できる伝送プロトコルを用いて、上記隣接しているノードに通知を選択的に転送するステップとを有することを特徴とする。   The present invention also provides a communication method for realizing query-response interaction in an publish-subscribe network, the step of caching issued notifications, and the step of receiving a subscription reservation requesting the issued notifications; Replaying the cached issued notification from the cache, and performing content-based routing (CBR) using a subscription reservation that is a query to the issued notification, the cached, Determining whether to forward an issued notification to an adjacent node, and selectively transferring the notification to the adjacent node using a reliable transmission protocol based on the determination And a step.

また、本発明は、発行−購読ネットワークにおいてクエリ−応答インタラクションを実現する通信装置であって、上記通信方法を実現するモジュールを備えることを特徴とする。   In addition, the present invention is a communication device that realizes query-response interaction in an issue-subscribe network, and includes a module that realizes the communication method.

また、本発明は、発行−購読ネットワークにおいてクエリ−応答インタラクションを実現する通信方法であって、データ広告を受信するステップと、上記データ広告を購読予約に変換するステップと、クエリを受信するステップと、上記クエリを通知に変換するステップと、上記購読予約に基づいてコンテンツベースのルーティング(CBR)を実行し、広告主に通知をプッシュするステップと、上記通知に基づいて、要求者に応答データを返すステップとを有することを特徴とする。   The present invention also provides a communication method for realizing query-response interaction in an publish-subscribe network, the step of receiving a data advertisement, the step of converting the data advertisement into a subscription reservation, and the step of receiving a query. , Converting the query into a notification, performing content-based routing (CBR) based on the subscription, pushing the notification to the advertiser, and sending response data to the requester based on the notification And a step of returning.

また、本発明は、クエリ−応答インタラクションを実現する発行−購読ネットワークであって、上記通信方法を実現するモジュールを備えるルータと、発行者装置と、購読者装置を備えることを特徴とする。   In addition, the present invention is an issue-subscribe network that realizes query-response interaction, and includes a router including a module that realizes the communication method, an issuer device, and a subscriber device.

また、本発明は、発行−購読ネットワークにおいてクエリ−応答インタラクションを実現する通信方法であって、クエリを受信するステップと、上記クエリを通知に変換するステップと、上記通知及び購読予約に変換されたデータ広告に対して実行されるコンテンツベースのルーティングに基づいて、応答データを受信するステップとを有することを特徴とする。   The present invention is also a communication method for realizing query-response interaction in an publish-subscribe network, wherein the method receives a query, converts the query into a notification, and converts the query into a notification and subscription. Receiving response data based on content-based routing performed on the data advertisement.

また、本発明は、発行−購読ネットワークにおいてクエリ−応答インタラクションを実現する通信装置であって、上記通信方法を実現するモジュールを備えることを特徴とする。   In addition, the present invention is a communication device that realizes query-response interaction in an issue-subscribe network, and includes a module that realizes the communication method.

また、本発明は、発行−購読ネットワークにおいてクエリ−応答インタラクションを実現する通信方法であって、データ広告を受信するステップと、上記データ広告を購読予約に変換するステップと、購読予約と通知に実行されたコンテンツベースのルーティングに基づいて通知に変形されたクエリを受信するステップと、上記通知に基づいて、応答データを要求者に転送するステップとを有することを特徴とする。   The present invention is also a communication method for realizing query-response interaction in an publish-subscribe network, which is performed for receiving a data advertisement, converting the data advertisement into a subscription reservation, and performing subscription reservation and notification. Receiving a query transformed into a notification based on the content-based routing, and transferring response data to the requester based on the notification.

また、本発明は、発行−購読ネットワークにおいてクエリ−応答インタラクションを実現する通信装置であって、上記通信方法を実現するモジュールを備えることを特徴とする。   In addition, the present invention is a communication device that realizes query-response interaction in an issue-subscribe network, and includes a module that realizes the communication method.

また、本発明は、発行−購読ネットワークにおいてクエリ−応答インタラクションを実現する通信方法であって、クエリから変化されてた通知を受信するステップと、コンテンツベースのルーティング(CBR)し、隣接しているノードに通知を転送するか否かを判定するステップと、上記判定に基づいて、上記通知を選択的に転送するステップとを有することを特徴とする。   The present invention is also a communication method for realizing query-response interaction in an publish-subscribe network, receiving a notification changed from a query, content-based routing (CBR), and adjacent. The method includes a step of determining whether or not to transfer a notification to a node, and a step of selectively transferring the notification based on the determination.

また、本発明は、発行−購読ネットワークにおいてクエリ−応答インタラクションを実現する通信装置であって、上記通信方法を実現するモジュールを備えることを特徴とする。   In addition, the present invention is a communication device that realizes query-response interaction in an issue-subscribe network, and includes a module that realizes the communication method.

また、本発明は、発行−購読ネットワークを介して提供されるメッセージの持続的なキャッシングを実現する通信方法であって、(a)第1のノードにおいて、ネットワークを介して、データを含むメッセージを受信するステップと、(b)上記データに時刻を示すマークを付与するステップと、(c)第1のノードのキャッシュメモリに、上記データをキャッシングするステップと、(d)コンテンツベースのルーティングを用いて、第2のノードに上記メッセージをルーティングするステップとを有することを特徴とする。   The present invention also provides a communication method for realizing persistent caching of a message provided via an publish-subscribe network, wherein (a) a message including data is transmitted via the network at a first node. Receiving, (b) attaching a mark indicating time to the data, (c) caching the data in the cache memory of the first node, and (d) using content-based routing. And routing the message to the second node.

また、本発明は、発行−購読ネットワークを介して配信されたメッセージの持続的なキャッシングを実現するルータであって、上記通信方法を実現するモジュールを備えることを特徴とする。   In addition, the present invention is a router that realizes continuous caching of a message distributed via an issue-subscription network, and includes a module that realizes the communication method.

また、本発明は、メッセージの持続的なキャッシングを実現する発行−購読ネットワークであって、上記通信方法を実現するモジュールを備えるノードを備えることを特徴とする。   In addition, the present invention is an publish-subscribe network that realizes persistent caching of messages, and includes a node that includes a module that implements the communication method.

また、本発明は、コンピュータにより読取可能な媒体であって、上記通信方法を実現する命令を有することを特徴とする。   In addition, the present invention is a computer-readable medium having an instruction for realizing the communication method.

また、本発明は、発行−購読ネットワークを介して配信されたメッセージの持続的なキャッシングを実現する通信方法であって、発行−購読ネットワークを介して、データを含むメッセージを受信するステップと、上記データに時刻を示すマークを付与するステップと、キャッシュメモリに、上記データをキャッシングするステップと、上記データをキャッシングするステップからタイムグレイン期間Gが経過したか否かを判定するステップと、上記タイムグレイン期間Gが経過したと判定した場合、上記キャッシングしたデータをキャッシュメモリからディスクに移管するステップと、上記キャッシングされたデータの最後のブロックについて、上記データをキャッシングするステップから持続タイムフレーム期間Tが経過した否かを判定するステップと、上記持続タイムフレーム期間Tが経過したと判定した場合、上記キャッシングされたデータを消去するステップとを有することを特徴とする。   The present invention also provides a communication method for realizing continuous caching of a message delivered via an publish-subscribe network, the method comprising: receiving a message including data via the publish-subscribe network; Adding a mark indicating time to the data; caching the data in the cache memory; determining whether a time grain period G has elapsed from the step of caching the data; and the time grain If it is determined that the period G has elapsed, the sustained time frame period T has elapsed from the step of transferring the cached data from the cache memory to the disk and the step of caching the data for the last block of the cached data. Determine whether or not A step that, if it is determined that the duration time frame period T has elapsed, characterized in that a step of erasing the cached data.

また、本発明は、発行−購読ネットワークを介して配信されたメッセージの持続的なキャッシングを実現するルータであって、上記通信方法を実現するモジュールを備えることを特徴とする。   In addition, the present invention is a router that realizes continuous caching of a message distributed via an issue-subscription network, and includes a module that realizes the communication method.

また、本発明は、メッセージの持続的なキャッシングを実現する発行−購読ネットワークであって、それぞれ、上記通信方法を実行するモジュールを備える第1のノード及び該第1のノードのダウンストリーム側の第2のノードを備えることを特徴とする。   The present invention is also an publish-subscribe network that realizes persistent caching of messages, each comprising a first node comprising a module for executing the communication method and a downstream side of the first node. 2 nodes.

また、本発明は、コンピュータにより読取可能な媒体であって、上記通信方法を実現する命令を有することを特徴とする。   In addition, the present invention is a computer-readable medium having an instruction for realizing the communication method.

また、本発明は、発行−購読ネットワークを介して配信されたメッセージの持続的なキャッシングを実現する通信方法であって、(a)複数のアップストリームノードにおいて、ネットワークを介して、データを有する複数のメッセージを受け取るステップと、(b)上記データに時刻情報を付与するステップと、(c)上記複数のアップストリームノードのうちの1つのアップストリームノードにおいて、キャッシュに上記データをキャッシングするステップと、(d)コンテンツベースのルーティングを用いて、エッジノードにメッセージをルーティングするステップと、(e)上記エッジノードのキャッシュメモリにデータをキャッシングする点を除いて、上記エッジノードにおいてステップ(a)〜(c)を繰り返すステップとを有することを特徴とする。   The present invention is also a communication method for realizing continuous caching of a message delivered via an publish-subscribe network, wherein (a) a plurality of upstream nodes have data via the network. (B) giving time information to the data; (c) caching the data in a cache at one upstream node of the plurality of upstream nodes; (D) routing the message to the edge node using content-based routing; and (e) steps (a) through (a) at the edge node, except that the data is cached in the edge node cache memory. c) repeating step And wherein the Rukoto.

さらに、本発明は、メッセージの持続的なキャッシングを実現する発行−購読ネットワークであって、上記通信方法を実現するモジュールを備える複数のアップストリームノード及びエッジノードを備えることを特徴とする。   Furthermore, the present invention is a publish-subscribe network that realizes persistent caching of messages, and is characterized by comprising a plurality of upstream nodes and edge nodes that comprise modules that implement the communication method.

本発明によれば、発行−購読ネットワークにおいて、フィルタを伝播するための通信方法及び通信装置を提供することができる。   According to the present invention, it is possible to provide a communication method and a communication apparatus for propagating a filter in an publish-subscribe network.

また、本発明によれば、発行−購読ネットワークにおいて、クエリ−応答インタラクションを実現する通信方法及び通信装置を提供することができる。   In addition, according to the present invention, it is possible to provide a communication method and a communication apparatus that realize query-response interaction in an issue-subscription network.

また、本発明によれば、ネットワークを介して配信されたメッセージの持続性を実現する通信方法及び通信装置を提供することができる。   In addition, according to the present invention, it is possible to provide a communication method and a communication device that realize the sustainability of a message distributed via a network.

さらに、本発明によれば、ネットワークに関連する障害に応じて、メッセージの持続的で信頼できる配信を提供することができる。   Furthermore, the present invention can provide a persistent and reliable delivery of messages in response to network related failures.

ネットワークコアにおけるこのインテリジェントルーティングを概念的に示すブロック図である。It is a block diagram which shows notionally this intelligent routing in a network core. 発行者及び購読者のためのインテリジェントルータを示すネットワーク図である。1 is a network diagram illustrating an intelligent router for issuers and subscribers. FIG. インテリジェントルータとバックボーンルータのための例示的なネットワークインフラストラクチャの構成を示す図である。FIG. 2 illustrates an example network infrastructure configuration for intelligent routers and backbone routers. インテリジェントルータのハードウェア構成を示す図である。It is a figure which shows the hardware constitutions of an intelligent router. 発行者装置及び購読者装置の構成を示す図である。It is a figure which shows the structure of an issuer apparatus and a subscriber apparatus. インテリジェントルータのチャンネルマネージャの構成を示す図である。It is a figure which shows the structure of the channel manager of an intelligent router. インテリジェントルータを有するネットワークに接続するためのユーザ装置のソフトウェアコンポーネントの構成を示す図である。It is a figure which shows the structure of the software component of the user apparatus for connecting to the network which has an intelligent router. インテリジェントルータのためのソフトウェアコンポーネントの構成を示す図である。It is a figure which shows the structure of the software component for intelligent routers. メッセージのためのパケット構造を示す図である。FIG. 3 shows a packet structure for a message. 発行処理のフローチャートである。It is a flowchart of an issuing process. 購読処理のフローチャートである。It is a flowchart of a subscription process. チャンネル及び購読者画面を示す図である。It is a figure which shows a channel and a subscriber screen. コンテンツベースのルーティング処理のフローチャートである。It is a flowchart of a content-based routing process. キャッシング処理のフローチャートである。It is a flowchart of a caching process. キャッシュインデクスを示す図である。It is a figure which shows a cache index. 送信メッセージのためのエージェント処理のフローチャートである。It is a flowchart of the agent process for a transmission message. 受信メッセージのためのエージェント処理のフローチャートである。It is a flowchart of the agent process for a received message. メッセージの符号化の具体例を説明する図である。It is a figure explaining the specific example of encoding of a message. 購読予約を保存するためのデータベース構造を示す図である。It is a figure which shows the database structure for preserve | saving a subscription reservation. ワイルドカード処理のフローチャートである。It is a flowchart of a wild card process. 発行−購読ネットワークにおける通知の信頼性を高める処理のフローチャートである。It is a flowchart of the process which improves the reliability of the notification in an issue-subscription network. フィルタ伝播処理のフローチャートである。It is a flowchart of a filter propagation process. フィルタ削減処理のフローチャートである。It is a flowchart of a filter reduction process. 他のフィルタ伝播処理のフローチャートである。It is a flowchart of another filter propagation process. 発行−購読ネットワークトポロジを示す図である。FIG. 2 is a diagram illustrating an issue-subscribe network topology. プリコンピュテーションを用いるコンテンツベースのルーティング処理のフローチャートである。It is a flowchart of a content-based routing process using pre-computation. プリコンピュテーションを用いるコンテンツベースのルーティング処理のフローチャートである。It is a flowchart of a content-based routing process using pre-computation. 発行−購読ネットワークを用いたクエリ応答処理のフローチャートである。It is a flowchart of the query response process using issue-subscription network. 図24Aの処理を更に説明するシーケンス図である。FIG. 24B is a sequence diagram for further explaining the processing of FIG. 24A. 発行−購読ネットワークを用いた他のクエリ応答処理のフローチャートである。It is a flowchart of the other query response processing using issue-subscription network. 図24Cの処理を更に説明するシーケンス図である。FIG. 24D is a sequence diagram for further explaining the processing in FIG. 24C. 発行−購読ネットワークを用いた他のクエリ応答処理のフローチャートである。It is a flowchart of the other query response processing using issue-subscription network. 図24Eの処理を更に説明するシーケンス図である。It is a sequence diagram which further demonstrates the process of FIG. 24E. 発行−購読ネットワークを用いた他のクエリ応答処理のフローチャートである。It is a flowchart of the other query response processing using issue-subscription network. 発行−購読ネットワークを用いた他のクエリ応答処理のフローチャートである。It is a flowchart of the other query response processing using issue-subscription network. 図24G及び図24Hの処理を更に説明するシーケンス図である。FIG. 25 is a sequence diagram for further explaining the processes in FIGS. 24G and 24H. キャッシングによって持続性を実現する発行−購読ネットワークの一部を示すブロック図である。1 is a block diagram illustrating a portion of a publish-subscribe network that provides persistence by caching. FIG. キャッシュマネージャルーチンの具体例を示す図である。It is a figure which shows the specific example of a cache manager routine. 持続的なキャッシング処理のフローチャートである。It is a flowchart of a continuous caching process. 持続的なメッセージ検索処理のフローチャートである。It is a flowchart of a continuous message search process.

以下、本発明を実施するための最良の形態について図面を参照して詳細に説明する。   Hereinafter, the best mode for carrying out the present invention will be described in detail with reference to the drawings.

インターネット規模又は他の分散型ネットワーク規模のイベント通知システムにより、アプリケーションにおいて、強力で柔軟な発行−購読ネットワーキング(publish-subscribe networking)が実現される。このシステムでは、アプリケーションプログラムは、イベント通知アプリケーションプログラムインタフェース(application program interface:以下、APIという。)を用いて、ネットワーク内部で発生するイベントに関する通知を発行し及び/又は通知を購読又は受信する。   Internet-wide or other distributed network-wide event notification systems provide powerful and flexible publish-subscribe networking in applications. In this system, an application program uses an event notification application program interface (hereinafter referred to as API) to issue and / or subscribe to or receive notifications regarding events occurring within the network.

このシステムにおける通知には、サブジェクトが与えられ、サブジェクトは、通知がカプセル化している情報の種類を分類するための文字列又はこの他のデータ構造として示される。また、通知は、その通知に特有の情報を含む属性の組によって完結されている。例えば、アプリケーションは、サブジェクトクォート.nyse(subject quotes.nyse)と、属性シンボル及び価格とを用いて、ニューヨーク証券取引所における取引に関する通知を発行してもよい。例えば、アプリケーションは、SNE(ソニー株式会社の相場受信機のシンボル)及び85.25ドルの株価を含む特定の属性値を有する個々の通知を発行する。全てではなくとも、殆どの通知の属性は、同じサブジェクトのファミリーに関する全ての通知において見出されるという意味で、予め定められている。なお、発行者は、イベント固有の情報を追加するために、通知毎に又は他の単位で、通知に任意の属性を加えることができる。したがって、一部又は全ての属性は、予め定義されたものではなくてもよい。   Notifications in this system are given a subject, which is represented as a string or other data structure for classifying the type of information that the notification encapsulates. The notification is completed by a set of attributes including information specific to the notification. For example, the application is subject quote. You may issue the notification regarding the transaction in the New York Stock Exchange using nyse (subject quotes.nyse), an attribute symbol, and a price. For example, the application issues individual notifications with specific attribute values including SNE (Sony Corporation quote receiver symbol) and $ 85.25 stock price. Most, if not all, notification attributes are predetermined in the sense that they are found in all notifications for the same subject family. Note that the issuer can add any attribute to the notification for each notification or in other units to add event specific information. Accordingly, some or all of the attributes may not be predefined.

このシステムでは、購読者は、サブジェクト又はチャンネル全体の購読のみに制限されるわけではない。チャンネルついては、後に説明し、定義する。チャンネルは、例えばサブジェクトフィールド及び関連するサブフィールド(サブサブジェクト)の1つ以上のレベルを指定する階層構造を含むことができる。したがって、購読者は、通知の属性に対して、コンテンツ毎のフィルタを指定することによって、興味に応じてより精密に調整された表現を特定することができる。例えば、購読者は、SNEのシンボルを有し、価格が90.00ドル以上であるサブジェクトクォート.nyse(例えば、購読者が所有している株の売りの好機を示している)について、全ての通知を購読予約してもよい。購読予約に一致する全ての通知は、コールバック又は購読者が購読予約を登録したとき、又は他の時点で特定した他の種類の機能を介して、購読者に配信される。1つの購読予約は、複数のフィルタに分割することもできる。   In this system, subscribers are not limited to subscribing to subjects or entire channels. Channels will be explained and defined later. A channel can include, for example, a hierarchical structure that specifies one or more levels of subject fields and associated sub-fields (sub-subjects). Therefore, the subscriber can specify the expression adjusted more precisely according to the interest by specifying the filter for each content with respect to the attribute of the notification. For example, a subscriber has a subject quote .. with a SNE symbol and a price of $ 90.00 or more. All notifications may be subscribed to nyse (eg, indicating an opportunity to sell stock owned by the subscriber). All notifications that match the subscription are delivered to the subscriber when the callback or subscriber subscribes to the subscription, or through other types of features identified at other times. A single subscription can be divided into multiple filters.

コールバックは、多くの処理を実行することができ、これらには、例えば、端末機器にメッセージを送信し又は電子メールを送信する等の単純な処理から、株の一部を売却する等のより複雑な処理や、新たな発行−購読アクティビティを開始する(例えば、既存の購読予約を75.00ドルの株価を買いの好機とする新たな購読予約に置き換え、又は購読者のポートフォリオが修正された新たな通知を発行する等)等の更に複雑な処理が含まれる。   Callbacks can perform a lot of processing, for example, from simple processing such as sending a message to a terminal device or sending an email, to selling a portion of a stock, etc. Start complex publishing and new publish-subscribe activities (eg, replace existing subscriptions with new subscriptions with a $ 75.00 share opportunity, or modify subscriber portfolio) A more complicated process such as issuing a new notification).

アプリケーションにおける発行及び購読アクティビティは、例えば、エージェントによって支援してもよい。エージェントは、プロキシを利用してもよく又はプロキシとして実現してもよい。エージェントは、送信される通知及び購読予約、及び購読者に受信される照合通知の配信のための接続を提供する。通知がネットワークに出されると、このシステムのルータのネットワークは、その通知に購読予約が一致する全ての購読者に通知を伝播(propagate)する。この処理を実現する一手法は、ネットワーク内の全ての点の通知を同報通信し、アプリケーションエージェントにより、対応する購読者にその通知が関連するか否かを判断させる手法がある。しかしながら、これは必ずしもスケーラブルな手法であるというわけではない。通常、ネットワークは、特に膨大な数のアクティブな購読者がいる場合、メッセージトラヒックの負荷によって正常に機能できなくなる。更に、帯域幅が十分に確保された場合でも、購読者は、膨大な量の通知を処理しきれなくなると考えられる。   Publishing and subscription activities in the application may be supported by an agent, for example. The agent may use a proxy or may be implemented as a proxy. The agent provides a connection for delivery of sent notifications and subscriptions, and matching notifications received by subscribers. When a notification is sent to the network, the router's network of this system propagates the notification to all subscribers whose subscription matches the notification. One technique for realizing this process is a technique in which notifications of all points in the network are broadcast and an application agent determines whether or not the notification is relevant to the corresponding subscriber. However, this is not necessarily a scalable technique. Typically, a network cannot function properly due to message traffic load, especially if there are a large number of active subscribers. Furthermore, even if the bandwidth is sufficiently secured, it is considered that the subscriber cannot process a huge amount of notifications.

本発明に基づくシステムの一例として示すネットワークは、非常に効率的に通知をルーティングする。まず、このネットワークは、マルチキャストルーティングを用いて、例えば、ネットワーク内の全てのリンクにおいて最大で1回、通知を伝播させることができる。次に、このネットワークは、フィルタに対する多数の高度な最適化処理を採用でき、これにより、通知の伝播の回数を可能な限り削減することができる。   The network shown as an example of a system according to the present invention routes notifications very efficiently. First, the network can use multicast routing to propagate notifications, for example, at most once on all links in the network. The network can then employ a number of advanced optimization processes for filters, thereby reducing the number of notification propagations as much as possible.

図1は、ネットワークコアにおけるこのインテリジェントルーティングを概念的に示す図である。発行者14は、エッジルータ16を介して、発行−購読ネットワークにおいて用いられているネットワークコア10にメッセージのコンテンツを送信する。発行−購読ネットワークは、発行者から購読者にデータ又はコンテンツをルーティングするための如何なる種類のネットワークであってもよい。コンテンツは、ルータ間又は他の機器間の論理的接続を表す1個以上のチャンネル18を介して伝送される。ネットワークコア10におけるインテリジェントルータ12は、メッセージをルーティング又は転送するか否かを決定する。具体的には、インテリジェントルータ12は、メッセージが購読者24によって購読予約されているコンテンツを含んでいるか否かを判定することができる。   FIG. 1 is a diagram conceptually showing this intelligent routing in the network core. The issuer 14 transmits the content of the message via the edge router 16 to the network core 10 used in the issue-subscribe network. The publish-subscribe network may be any type of network for routing data or content from the publisher to the subscriber. Content is transmitted over one or more channels 18 that represent logical connections between routers or other devices. The intelligent router 12 in the network core 10 determines whether to route or forward the message. Specifically, the intelligent router 12 can determine whether the message includes content that is subscribed to by the subscriber 24.

各購読予約は、サブジェクトフィルタと属性フィルタとをカプセル化している。ルータは、サブジェクトフィルタを一致するサブジェクトの組に拡張し、又はサブジェクト毎に属性フィルタを併合することができる。インテリジェントルータは、通知のサブジェクトに対してサブジェクトフィルタを評価し、及び通知における属性値に対して属性フィルタを評価する。サブジェクトフィルタのための構文では、ワイルドカードを用いることができ、属性フィルタのための構文では、論理式(Boolean expression)を用いることができ、これらについては、後に更に詳細に説明する。「フィルタ」という用語は、購読者が発行者から受信を望んでいる1組のイベントを意味する。ルーティング規則は、フィルタから生成され、インテリジェントルータは、この規則を用いて経路決定を行う。   Each subscription reservation encapsulates a subject filter and an attribute filter. The router can extend the subject filter to a matching set of subjects, or merge attribute filters for each subject. The intelligent router evaluates the subject filter for the notification subject and the attribute filter for the attribute value in the notification. In the syntax for the subject filter, wildcards can be used, and in the syntax for the attribute filter, Boolean expressions can be used, which will be described in more detail later. The term “filter” means a set of events that a subscriber wants to receive from an publisher. The routing rule is generated from the filter, and the intelligent router performs route determination using this rule.

したがって、メッセージ26が全体のフィルタセットを充足していない場合、例えばインテリジェントルータ12は、メッセージ26を除外(削除)し、これは、メッセージが転送されないことを意味する。サブジェクトと属性フィルタの評価に基づき、メッセージ20がフィルタの組の一部又は全体を充足していると判定された場合、例えばインテリジェントルータ12は、エッジルータ22及び可能であれば他の機器を介して、購読者にメッセージ20をルーティング(転送)し、又は、一致したフィルタについて規定されている全てのルーティング及び/又は動作規則に基づいて、インテリジェントルータ12内部でメッセージ20に対する他の機能を実行する。検索は、フィルタの組全体に対する処理が完了するまで、又は全ての規則に関する判定が得られるまで続けられ、この2つの条件のいずれかが満たされると終了する。   Thus, if the message 26 does not satisfy the entire filter set, for example, the intelligent router 12 excludes (deletes) the message 26, which means that the message is not forwarded. If it is determined, based on the subject and attribute filter evaluation, that the message 20 satisfies part or all of the filter set, for example, the intelligent router 12 passes through the edge router 22 and possibly other devices. To route (forward) the message 20 to the subscriber or perform other functions on the message 20 within the intelligent router 12 based on all routing and / or operating rules defined for the matched filter. . The search continues until the processing on the entire set of filters is complete or until a decision on all rules is obtained, and ends when either of these two conditions is met.

ネットワークコアにおける、このようなインテリジェントなコンテンツベースのルーティングは、例えば、警告及び更新のための実時間データ配信を実現する。警告のための実時間データ配信の具体例としては、以下に限定されるものではないが、例えば、株価、交通情報、ニュース、旅行、天気、不正検出、セキュリティ、テレマティックス、ファクトリオートメーション、サプライチェーン管理及びネットワークマネージメント等がある。更新のための実時間データ配信の具体例としては、以下に限定されるものではないが、例えば、ソフトウェア更新、アンチウイルス更新、映画及び音楽配信、ワークフロー、ストレージ管理及びキャッシュ一貫性(cache consistency)等がある。購読予約された情報を配信するシステムは、他の様々な分野に応用することができる。   Such intelligent content-based routing at the network core provides real-time data delivery for alerts and updates, for example. Specific examples of real-time data distribution for warnings are not limited to the following, but include, for example, stock prices, traffic information, news, travel, weather, fraud detection, security, telematics, factory automation, and supply. There are chain management and network management. Specific examples of real-time data delivery for updates include, but are not limited to, software updates, antivirus updates, movie and music delivery, workflow, storage management and cache consistency. Etc. The system for distributing subscribed information can be applied to various other fields.

表1は、フィルタリングのために保存される購読予約をサブジェクト及び述語(predicate)とともに示している。これらは、希望されれば、又は必要に応じて、ネットワークの如何なる部分に、如何なる種類のデータ構造を用いて保存してもよい。後述するように、述語は、購読予約の要素である。購読予約は、如何なる形式で表現してもよく、その具体例を以下に示す。   Table 1 shows the subscription reservations saved for filtering, along with the subject and predicate. These may be stored in any part of the network using any kind of data structure if desired or required. As will be described later, the predicate is an element of a subscription reservation. The subscription reservation may be expressed in any format, and a specific example is shown below.

Figure 2009163753
Figure 2009163753

表2は、クォートサーバ(quote server)のための発行及び購読予約の具体例を示している。これらは、説明を目的とする例示的な具体例に過ぎず、購読予約は、如何なる種類のデータ又はコンテンツについて、如何なる数及び種類のパラメータも含んでいてもよい。   Table 2 shows specific examples of issuance and subscription reservations for a quote server. These are merely illustrative examples for purposes of illustration, and subscriptions may include any number and type of parameters for any type of data or content.

Figure 2009163753
Figure 2009163753

述語は、購読予約のための論理式を提供し、サブジェクトは、購読予約に関するチャンネルを示す。購読予約は、この他の様々な手法で表現することができる。論理式は、このような手法の一例であり、これを用いることにより、コンテンツベースのルーティングのために、購読予約をサブジェクトフィルタと属性フィルタに変換するための機能を容易に実現することができる。これに代えて、サブジェクトを参照することなく購読予約を表現することもできるが、サブジェクト又はチャンネル(後に詳細に説明する。)を用いることにより、属性を解釈し、フィルタを属性に適用するためのコンテキストが実現される。   The predicate provides a logical expression for subscription reservation, and the subject indicates a channel related to subscription reservation. Subscription reservations can be expressed in various other ways. A logical expression is an example of such a technique, and by using this, a function for converting a subscription reservation into a subject filter and an attribute filter can be easily realized for content-based routing. Alternatively, a subscription can be expressed without referring to the subject, but by using the subject or channel (discussed in detail later), the attribute can be interpreted and the filter applied to the attribute. Context is realized.

ネットワークコアにおいて、経路決定を実行し、これをネットワークを介して配信することができ、これにより、発行者と購読者の装置における処理負担を軽減し、ネットワーク効率を著しく高めることができる。図1では、説明を目的として、単一の発行者、単一の購読者及び単一のインテリジェントルータのみを示しているが、実際には、発行者、購読者及びインテリジェントルータをそれぞれ複数設けてもよい。インテリジェントルータという用語は、ネットワークコア又はこの他の位置において、パケット又はメッセージのペイロードを検査することによって経路を決定する能力を有するルータ又は他のエンティティを意味する。   In the network core, route determination can be performed and distributed via the network, thereby reducing the processing burden on the issuer and subscriber devices and significantly increasing network efficiency. In FIG. 1, only a single issuer, a single subscriber, and a single intelligent router are shown for the purpose of explanation. Also good. The term intelligent router refers to a router or other entity that has the ability to determine a route by examining the payload of a packet or message at the network core or other location.

ネットワークインフラストラクチャ
図2は、発行者及び購読者のためのインテリジェントルータを示すネットワーク図である。例えば、サービスをチャンネルに供給するルーティングエンティティ30は、後述するように、インテリジェントルータ間でメッセージをルーティングするために、ネットワークインフラストラクチャ内に効果的に階層化される。例えば、発行者32は、概念的に、発行されたコンテンツの指示情報、例えばコンテンツを検索するためのポインタを受け取るためのアプリケーション34と、チャンネルサービス30を介したネットワーク伝送のためにコンテンツを符号化するためのエージェント36とを含む。論理的に相互接続された一群のインテリジェントルータ38、40、42、44、46、48は、購読予約のためのサブジェクトフィルタ及び属性フィルタから生成されたルーティング規則を用いて、発行者からのコンテンツをルーティングする。複数のリンク39、41、43、45は、インテリジェントルータ38、40、42、44、46、48間を論理的に接続する。他のリンク37、47は、それぞれ、発行者32とインテリジェントルータ38の間及び購読者54とインテリジェントルータ46の間を論理的に接続する。購読者54は、購読されたコンテンツを検出し、受け取るためのエージェント50と、コンテンツを表現するためのアプリケーション52とを備えている。
Network Infrastructure FIG. 2 is a network diagram showing an intelligent router for issuers and subscribers. For example, a routing entity 30 that provides services to a channel is effectively layered within the network infrastructure to route messages between intelligent routers, as described below. For example, publisher 32 conceptually encodes content for network transmission via channel service 30 and application 34 for receiving published content indication information, eg, a pointer to search for content. And an agent 36 for A group of logically interconnected intelligent routers 38, 40, 42, 44, 46, 48 uses the routing rules generated from the subject filters and attribute filters for subscription reservations to route content from the publisher. Route. The plurality of links 39, 41, 43, 45 logically connect the intelligent routers 38, 40, 42, 44, 46, 48. The other links 37 and 47 logically connect between the issuer 32 and the intelligent router 38 and between the subscriber 54 and the intelligent router 46, respectively. The subscriber 54 includes an agent 50 for detecting and receiving the subscribed content and an application 52 for expressing the content.

チャンネルは、例えば、分散型方式によって実現された論理的なマルチキャスト接続の関連する組を含むことができる。この例示的な実施例におけるチャンネルとは、コンテンツを交換するために発行者と購読者に共用される論理的に関連するネットワーク資源の集合である。コンテンツは、チャンネルサブジェクトネームスペースに従って分類され、リソースは、チャンネルマネージャが提供するチャンネルサービスを介して管理され、制御され、供給される。複数のチャンネルが同じリソースを共有してもよい。チャンネルは、スケーラビリティが高いディレクトリサービスを提供でき、このサービスは、以下に限定されるものではないが、発行者及び購読者情報、認証及び認可情報メッセージの種類、管理情報、課金処理と支払い情報等が含まれる。また、例えば、チャンネルは、提供できる持続的なスルーキャッシング(persistence through caching)、高速データ配信メカニズム、セキュリティ、ユーザ及びネットワーク管理等を提供できる。また、チャンネルは、他の如何なる目的にも利用できる。   A channel can include, for example, an associated set of logical multicast connections implemented in a distributed manner. A channel in this illustrative embodiment is a collection of logically related network resources shared by publishers and subscribers to exchange content. The content is classified according to the channel subject namespace, and the resources are managed, controlled, and supplied through channel services provided by the channel manager. Multiple channels may share the same resource. Channels can provide highly scalable directory services, including but not limited to publisher and subscriber information, authentication and authorization information message types, management information, billing and payment information, etc. Is included. Also, for example, a channel can provide persistent through caching, high speed data delivery mechanisms, security, user and network management, etc. that can be provided. The channel can also be used for any other purpose.

インテリジェントルータによるフィルタリングをネットワークコアで行い、経路決定をネットワーク内に配信してもよい。更に、インテリジェントルータは、発行者又は購読者等のユーザ機器をネットワークコアに接続するエッジルータとして機能できる。また、ネットワークに接続された同じ機器が、ネットワークにおける経路決定に基づいて購読者にコンテンツをプッシュする発行者及びプッシュされたコンテンツを受信する購読者の両方として機能することができる。インテリジェントルータ及びチャンネルは、特定の実施例における必要又は要望に応じて、如何なる構成で接続してもよく、図2の構成は例示的に示しているに過ぎない。   Filtering by an intelligent router may be performed at the network core, and route determination may be distributed within the network. Furthermore, the intelligent router can function as an edge router that connects user equipment such as an issuer or a subscriber to the network core. Also, the same device connected to the network can function as both an issuer that pushes content to subscribers and a subscriber that receives pushed content based on routing decisions in the network. The intelligent routers and channels may be connected in any configuration as needed or desired in a particular embodiment, and the configuration of FIG. 2 is merely shown as an example.

図3は、インテリジェントルータと従来のバックボーンルータのための例示的なネットワークインフラストラクチャの構成を示しており、この図面は、チャンネルの論理的接続も示している。この実施例におけるインテリジェントルータは、インターネットや他の分散型ネットワーク等のネットワークにおいて、既存のバックボーンルータを用いており、インテリジェントルータは、これにより、バックボーンルータ上に効果的に階層化されている。この実施例では、インターネットサービスプロバイダ(Internet Service Provider:以下、ISPという。)ネットワーク58、59、60は、メッセージ又はパケットの従来型のルーティングを行うために、それぞれ幾つかのバックボーンルータを備えている。ISPネットワーク58、59、60においては、複数のインテリジェントルータ61〜70が1つ以上のバックボーンルータに接続されている。また、インテリジェントルータ61〜70は、実際のリンクを例示的に示す複数のリンク73〜85によって相互接続され、またこれらのリンクを介して、エンドユーザ機器にも接続することができる。インテリジェントルータ61〜70は、例えばエンティティ71等の1つ以上の管理者装置(administrator machines)及び例えばエンティティ72等の1つ以上の仮想プライベートネットワーク(virtual private network:以下、VPNという。)コントローラによって制御される。ISPネットワーク58、59、60は、発行者装置及び購読者装置(図3には示していない。)に接続してもよい。ISP58、59、60内及びこれらの間のバックボーンルータは、既存のネットワークインフラストラクチャにおいて、従来の如何なる手法で相互接続してもよい。   FIG. 3 shows an exemplary network infrastructure configuration for intelligent routers and conventional backbone routers, which also shows channel logical connections. The intelligent router in this embodiment uses an existing backbone router in a network such as the Internet or another distributed network, and the intelligent router is effectively layered on the backbone router. In this embodiment, Internet Service Provider (ISP) networks 58, 59, 60 each include several backbone routers for conventional routing of messages or packets. . In the ISP networks 58, 59 and 60, a plurality of intelligent routers 61 to 70 are connected to one or more backbone routers. In addition, the intelligent routers 61 to 70 are interconnected by a plurality of links 73 to 85 exemplarily showing actual links, and can also be connected to end user equipment via these links. The intelligent routers 61 to 70 are controlled by one or more administrator machines such as an entity 71 and one or more virtual private network (hereinafter referred to as VPN) controllers such as an entity 72, for example. Is done. The ISP networks 58, 59, 60 may be connected to issuer devices and subscriber devices (not shown in FIG. 3). The backbone routers within and between ISPs 58, 59, 60 may be interconnected in any conventional manner within the existing network infrastructure.

図3に示すように、既存のネットワークインフラストラクチャを用いて、インテリジェントルータ61〜70とリンク73〜85を実現することができ、これらは、ネットワークコアにおけるコンテンツベースのルーティングを提供する。リンク73〜85は、インテリジェントルータ61〜70の間の論理的接続を表し、例えば、既存のネットワークインフラストラクチャ又は他の機器を用いて実現することができる。リンクは、例えば、トンネル(tunnel)と呼ばれる論理的接続を用いて実現してもよい。トンネルは、ハードウェアと、可能であればソフトウェアと、リンクを実現するためのネットワークインフラストラクチャとを含み、トンネルは、複数のチャンネルの一要素であってもよい。チャンネルは、特定の種類のコンテンツのための論理的な構成を提供することによって、インテリジェントルータにおけるコンテンツベースのルーティングを容易にし、これにより、チャンネルを介して送信される属性のためのコンテキストを提供する。インテリジェントルータは、チャンネルを用いることなく経路決定を行うこともできるが、チャンネルは、ネットワークコアにおけるインテリジェントルータによるコンテンツベースのルーティングの効率を向上させる。   As shown in FIG. 3, the existing network infrastructure can be used to implement intelligent routers 61-70 and links 73-85, which provide content-based routing in the network core. Links 73-85 represent logical connections between intelligent routers 61-70 and can be implemented using, for example, existing network infrastructure or other equipment. The link may be realized by using a logical connection called a tunnel, for example. The tunnel includes hardware, possibly software, and network infrastructure to implement the link, and the tunnel may be an element of multiple channels. Channels facilitate content-based routing in intelligent routers by providing a logical configuration for specific types of content, thereby providing context for attributes transmitted over the channel . Intelligent routers can also make routing decisions without using channels, but channels improve the efficiency of content-based routing by intelligent routers in the network core.

この例示的な実施例は、チャンネルとリンクの使用を含んでいる。リンクは、例えばインテリジェントルータである2つのルータ間の接続を表す。チャンネルは、相互接続リンクによって静的又は動的に構成され、1対多又は多対多の論理的接続を実現する一群の(通常多数の)ルータを含むネットワークエンティティである。特に、チャンネルは、チャンネルの本質的な特徴を記述する最上位レベルの論理的エンティティである。1個のチャンネルには、多くのサブジェクトが存在していてもよい。各サブジェクトは、相互接続された一群のルータを含む(マルチキャストツリー等の)サブネットワークを形成する。これらのサブジェクトベースのサブネットワークは、様々な手法で、割当、適応化、構成を行うことができる。全てのサブネットワークの集合体であり、その下にサブジェクトを形成するチャンネルは、例えば、網状組織(mesh of networks)に例えることもできる。   This exemplary embodiment includes the use of channels and links. A link represents a connection between two routers, for example intelligent routers. A channel is a network entity that includes a group (usually a number) of routers that are statically or dynamically configured by interconnecting links to implement a one-to-many or many-to-many logical connection. In particular, a channel is the highest level logical entity that describes the essential characteristics of a channel. Many subjects may exist in one channel. Each subject forms a subnetwork (such as a multicast tree) that includes a group of interconnected routers. These subject-based sub-networks can be allocated, adapted and configured in various ways. A channel that is a collection of all sub-networks and under which a subject is formed can be compared, for example, to a mesh of networks.

図4は、インテリジェントルータ92の具体的な構成例を示しており、インテリジェントルータ92は、符号が付された他の如何なるインテリジェントルータに対応していてもよい。ネットワークノード90は、従来のバックボーンルータ95に接続されたインテリジェントルータ92を備えている。インテリジェントルータ92は、メモリ94と補助記憶装置97(例えば、独立した装置として実現してもよい。)とに接続されたプロセッサ93を備え、メモリ94及び補助記憶装置97は、いずれも、キャッシュデータを含むデータを保存し、及びプロセッサ93によって実行されるアプリケーションプログラムを保存する。補助記憶装置97は、不揮発性のデータ記憶装置である。後述するように、プロセッサ93は、ソフトウェアに制御されて、バックボーンルータ95に対して命令を発し、この命令に応じて、バックボーンルータ95は、購読予約に対するサブジェクトフィルタ及び属性フィルタから生成されたルーティング規則に基づいて、メッセージ又はパケットをルーティング(転送)し又はルーティングしない(削除する)。ここでは、インテリジェントルータ92をプロセッサに制御される独立した装置として示しているが、インテリジェントルータ92は、バックボーンルータ95内の特定用途向け集積回路(application specific integrated circuit:ASIC)として実現し、ハードウェアにおいて、インテリジェントルーティング機能を提供してもよく、また、このハードウェアにソフトウェアを組み込んでもよい。また、これに代えて、インテリジェントルーティング機能は、1つ又は複数のルーティング装置において、ソフトウェアとハードウェアの組合せとして実現してもよい。   FIG. 4 shows a specific configuration example of the intelligent router 92, and the intelligent router 92 may correspond to any other intelligent router having a reference numeral. The network node 90 includes an intelligent router 92 connected to a conventional backbone router 95. The intelligent router 92 includes a processor 93 connected to a memory 94 and an auxiliary storage device 97 (for example, may be realized as an independent device). Both the memory 94 and the auxiliary storage device 97 are cache data. And the application program executed by the processor 93 is saved. The auxiliary storage device 97 is a nonvolatile data storage device. As will be described later, the processor 93 is controlled by software and issues a command to the backbone router 95. In response to this command, the backbone router 95 generates a routing rule generated from the subject filter and the attribute filter for the subscription reservation. The message or packet is routed (forwarded) or not routed (deleted). Here, although the intelligent router 92 is shown as an independent device controlled by the processor, the intelligent router 92 is realized as an application specific integrated circuit (ASIC) in the backbone router 95, and the hardware is realized. , An intelligent routing function may be provided, and software may be incorporated in this hardware. Alternatively, the intelligent routing function may be realized as a combination of software and hardware in one or a plurality of routing devices.

図5は、発行者装置及び購読者装置の具体的構成例を示している。発行者装置100又は118は、例えば、1つ以上の発行者アプリケーション104とエージェントアプリケーション106を保存するメモリ102と、不揮発性記憶装置である補助記憶装置機器112と、情報又はコマンドを入力するための入力装置108と、メモリ102に保存されている又は他のストレージ装置から受け取ったアプリケーションを実行するためのプロセッサ114と、情報を出力するための出力装置110と、情報を視覚的に表示する表示装置116とを備えている。   FIG. 5 shows a specific configuration example of the issuer device and the subscriber device. The issuer device 100 or 118 is, for example, a memory 102 that stores one or more issuer applications 104 and an agent application 106, an auxiliary storage device 112 that is a non-volatile storage device, and for inputting information or commands. An input device 108, a processor 114 for executing an application stored in the memory 102 or received from another storage device, an output device 110 for outputting information, and a display device for visually displaying information 116.

購読者装置122又は購読者装置140は、例えば、1つ以上のアプリケーション126とエージェントアプリケーション128を保存するメモリ124と、不揮発性記憶装置である補助記憶装置機器130と、情報又はコマンドを入力するための入力装置132と、メモリ124に保存されている又は他のストレージ装置から受け取ったアプリケーションを実行するためのプロセッサ134と、情報を出力するための出力装置136と、情報を視覚的に表示するための表示装置138とを備えている。発行者装置及び購読者装置は、如何なる構成であってもよく、上述したものとは異なる構成要素を備えていてもよく、構成要素は、上述したものより多くても少なくてもよい。   The subscriber device 122 or the subscriber device 140, for example, inputs information or commands to a memory 124 that stores one or more applications 126 and an agent application 128, an auxiliary storage device 130 that is a non-volatile storage device, and so on. An input device 132, a processor 134 for executing an application stored in the memory 124 or received from another storage device, an output device 136 for outputting information, and a visual display of the information The display device 138 is provided. The issuer device and the subscriber device may have any configuration, may include components different from those described above, and may include more or less components than those described above.

発行者装置100、118は、上述したネットワーク120等のネットワークを介して購読者装置122、140に接続されるネットワーク120は、ネットワークコアにおいて、パケット又はメッセージを介して、データ又はコンテンツの分配型ルーティングを実現するためのインテリジェントルータを含んでいる。ここでは、それぞれ2つの発行者装置及び購読者装置のみを示しているが、より多くの発行者装置及び購読者装置を含むようにネットワーク120をスケーリングできる。発行者装置及び購読者装置は、プロセッサにより制御される如何なる装置として実現してもよく、これらの装置としては、以下に限定されるものではないが、例えば、サーバ、パーソナルコンピュータ、ノートブックコンピュータ、携帯情報端末、電話、携帯電話、ページャ、又はこの他の機器が含まれる。インテリジェントルータを含むネットワーク120は、有線機器、無線機器又はその両方を接続する如何なる有線又は無線の分散型ネットワークであってもよい。また、ネットワーク120としては、潜在的に既存の又は従来のネットワークインフラストラクチャを用いることができる。   The publisher device 100, 118 is connected to the subscriber device 122, 140 via a network, such as the network 120 described above, and the network 120 is a distributed routing of data or content via packets or messages at the network core. Includes an intelligent router to realize. Although only two issuer devices and subscriber devices are shown here, the network 120 can be scaled to include more issuer devices and subscriber devices. The issuer device and the subscriber device may be realized as any device controlled by a processor, and these devices include, but are not limited to, for example, a server, a personal computer, a notebook computer, A personal digital assistant, telephone, mobile phone, pager, or other device is included. The network 120 including the intelligent router may be any wired or wireless distributed network that connects wired devices, wireless devices, or both. The network 120 can also be a potentially existing or conventional network infrastructure.

図6は、インテリジェントルータのためのチャンネルマネージャ150の構成を示している。この実施例では、チャンネルマネージャ150は、複数のサーバ152、154、156によって実現されている。各サーバは、それぞれローカルのストレージ装置158、160、162を備えている。インテリジェントルータ164、166、168は、チャンネルマネージャから特定のチャンネルに関する情報を得る。また、チャンネルマネージャは、データ持続(data persistence)、障害迂回機能(fail over functions)及び他の機能を提供することができる。これにより、チャンネル管理プログラムは、ネットワークの任意の場所において、例えばチャンネル関連情報、データ持続のためのプロパティ、発行者及び購読者のためのユーザ情報、インフラストラクチャ情報等を特定するデータベース又はデータベースの組を含むチャンネルサービスを提供するインフラストラクチャ情報は、例えばインテリジェントルータ及びこれらを接続するトンネルの識別情報、チャンネルのサブジェクト、チャンネルの属性(各属性の名称と種類)等を含むことができる。また、パケット又はメッセージは、固定的な属性及び可変の属性の識別情報を含むチャンネル関連情報を伝送することができる。   FIG. 6 shows the configuration of the channel manager 150 for the intelligent router. In this embodiment, the channel manager 150 is realized by a plurality of servers 152, 154 and 156. Each server includes local storage devices 158, 160, and 162, respectively. The intelligent routers 164, 166, 168 obtain information about a specific channel from the channel manager. The channel manager can also provide data persistence, fail over functions, and other functions. This allows the channel management program to establish a database or set of databases that specify, for example, channel related information, properties for data persistence, user information for publishers and subscribers, infrastructure information, etc., at any location in the network. The infrastructure information for providing the channel service including, for example, can include identification information of intelligent routers and tunnels connecting them, channel subjects, channel attributes (name and type of each attribute), and the like. Also, the packet or message can carry channel related information including identification information of fixed attributes and variable attributes.

ユーザは、オンライン状態で、チャンネル情報をダウンロードすることができる。例えば、ユーザは、ユーザ名とパスワードを用いて、自らを登録することができる。ユーザのログオンが認証されると、ユーザは、チャンネルを開き(呼び出し)、チャンネルマネージャからチャンネルに関する情報を検索できる。発行者は、コンテンツを発行する際にこの情報を用いることができ、購読者は、購読予約を入力及び登録する際にこの情報を用いることができる。   The user can download the channel information while online. For example, a user can register himself using a user name and password. Once the user's logon is authenticated, the user can open (call) the channel and retrieve information about the channel from the channel manager. Publishers can use this information when publishing content, and subscribers can use this information when entering and registering subscriptions.

この実施例では、各チャンネルマネージャ152、154、156は、各インテリジェントルータのためのプライマリとして機能する。具体的には、この実施例では、各インテリジェントルータは、2つのインターネットプロトコル(IP)アドレスを有しており、一方のIPアドレスは、プライマリチャンネルマネージャ用であり、他方のIPアドレスは、バックアップチャンネルマネージャ用である。インテリジェントルータは、チャンネルマネージャと通信し、チャンネル情報を検索するためにこれらのIPアドレスを用いる。プライマリチャンネルマネージャに障害が発生すると、インテリジェントルータは、バックアップチャンネルマネージャと通信を行うことができる。これにより、チャンネルマネージャ152、154、156は、これらを繋ぐ線によって示すように、チャンネルプロパティ及び他の情報に関するデータを共有する。また、各チャンネルマネージャは、指定されたバックアップチャンネルマネージャを有し、チャンネルマネージャの動作に障害が生じた場合、他のバックアップチャンネルマネージャに処理を引き継がせることができる。ネットワーク内の機器は、コマンドを用いて、例えばチャンネル情報を検索することができ、表3は、この情報の具体例を示している。これに代えて、インテリジェントルータは、プライマリチャンネルマネージャのみを備えていてもよく、或いは3つ以上のチャンネルマネージャを備えていてもよい。   In this embodiment, each channel manager 152, 154, 156 functions as a primary for each intelligent router. Specifically, in this embodiment, each intelligent router has two Internet Protocol (IP) addresses, one for the primary channel manager and the other for the backup channel. For managers. The intelligent router communicates with the channel manager and uses these IP addresses to retrieve channel information. If the primary channel manager fails, the intelligent router can communicate with the backup channel manager. As a result, the channel managers 152, 154, and 156 share data relating to channel properties and other information, as indicated by the lines connecting them. Each channel manager has a designated backup channel manager, and when a failure occurs in the operation of the channel manager, other backup channel managers can take over the processing. Devices in the network can search for channel information, for example, using commands, and Table 3 shows a specific example of this information. Alternatively, the intelligent router may have only a primary channel manager or may have more than two channel managers.

図7は、インテリジェントルータを有するネットワークに接続するためのユーザ装置又は機器におけるソフトウェアコンポーネントのスタック180の具体例を示している。ユーザ装置は、発行者、購読者又はこれらの両方として用いることができ、ユーザ装置は、具体例として先に例示した様々な機器を含むことができる。スタック180は、1つ以上のユーザアプリケーション182を含むことができ、ユーザアプリケーション182は、ユーザからの購読予約の受信、発行者からのチャンネル情報の受信又は発行すべきコンテンツ又はデータの受信に用いることができる。また、ユーザアプリケーション182は、ユーザ装置又は機器によって実行される他の如何なる種類のアプリケーションを含んでいてもよい。   FIG. 7 illustrates a specific example of a stack 180 of software components in a user device or device for connecting to a network having an intelligent router. The user device can be used as an issuer, a subscriber, or both, and the user device can include various devices illustrated above as specific examples. The stack 180 can include one or more user applications 182 that are used to receive subscriptions from users, receive channel information from publishers, or receive content or data to be published. Can do. Also, the user application 182 may include any other type of application that is executed by a user device or device.

またスタック180は、エージェント184、イベントライブラリ186、キャッシュライブラリ188、チャンネルライブラリ190、メッセージングライブラリ192、ディスパッチャライブラリ194を含んでいてもよい。エージェント184は、ネットワーク接続の確立又はこの他の機能を提供し、表3は、エージェント184によって実現されるコマンドの具体例を示しており、これらは、プロキシコマンド又は他の種類のコマンドとして用いることができる。イベントライブラリ186は、ユーザ装置に関するイベント又はこの他のイベント又は情報のログを記録する。キャッシュライブラリ188は、データのローカルなキャッシング機能を提供する。チャンネルライブラリ190は、チャンネルの識別情報と、そのチャンネルに関する情報とを保存する。ディスパッチャライブラリ194は、制御パス196、チャンネルマネージャ198、1つ以上のインテリジェントルータ200への接続を提供し、及び表4に例示的に示す機能を含むことができる。メッセージングライブラリ192は、データパス204への接続を提供する。   The stack 180 may include an agent 184, an event library 186, a cache library 188, a channel library 190, a messaging library 192, and a dispatcher library 194. Agent 184 provides network connection establishment or other functions, and Table 3 shows specific examples of commands implemented by agent 184 that may be used as proxy commands or other types of commands. Can do. The event library 186 records a log of events relating to user equipment or other events or information. The cache library 188 provides a local data caching function. The channel library 190 stores channel identification information and information related to the channel. The dispatcher library 194 provides a connection to the control path 196, the channel manager 198, one or more intelligent routers 200, and can include the functions illustrated in Table 4. Messaging library 192 provides a connection to data path 204.

Cプログラミング言語で書かれたメッセージングAPIの具体例を表5〜表9に示す。表5及び表6は、メッセージの送信及び検索のためのAPIの具体例を示している。表7及び表8は、通知の送信及び検索のためのAPIの具体例を示している。表9は、制御メッセージの送信及び検索のためのAPIの具体例を示している。ここに示す特定の機能又は特徴を実現するAPI及び他のAPI、プログラム及びデータ構造は、例示的に示しているに過ぎず、これらの機能は、如何なるプログラミング言語で書かれた如何なる種類のAPI又はこの他のソフトウェアエンティティとして実現してもよい。   Specific examples of the messaging API written in the C programming language are shown in Tables 5 to 9. Tables 5 and 6 show specific examples of APIs for message transmission and retrieval. Tables 7 and 8 show specific examples of APIs for notification transmission and retrieval. Table 9 shows specific examples of APIs for transmitting and searching for control messages. The APIs and other APIs, programs, and data structures that implement the particular functions or features shown here are merely exemplary, and these functions can be any type of API or programming language written in any programming language. You may implement | achieve as another software entity.

Figure 2009163753
Figure 2009163753

Figure 2009163753
Figure 2009163753

Figure 2009163753
Figure 2009163753

Figure 2009163753
Figure 2009163753

Figure 2009163753
Figure 2009163753

Figure 2009163753
Figure 2009163753

Figure 2009163753
Figure 2009163753

図8は、上述したようなインテリジェントルータ及び図4に示すインテリジェントルータ92等のインテリジェントルータのための例示的なソフトウェアコンポーネント210を示している。ソフトウェアコンポーネント210は、例えば、メモリ94に格納され、インテリジェントルータ92のプロセッサ93によって実行することができる。コンポーネント210は、例えばフィルタリングデーモン212、ディスパッチャ214、ルーティングデーモン216、キャッシュマネージャ218を備える。フィルタリングデーモン212は、後述するように、購読予約のためのコンテンツを処理するための、コンテンツベースのルーティングにおけるルーティング規則に基づくフィルタリング機能を提供する。ディスパッチャ214は、パス220を介してフィルタを伝播するために必要である制御メッセージの通信を担い、また、ディスパッチャ214は、ユーザのためのエントリの単一のポイント及びチャンネルマネージャを有する1個の安全なソケットを提供し、ネットワークのセキュリティを向上させる。換言すればこの具体例では、ユーザは、チャンネルマネージャと直接通信を行うことがない。但し、変形例として、ユーザは、チャンネルマネージャと直接通信を行ってもよい。ディスパッチャ214は、制御メッセージを用いて、チャンネルマネージャから属性(名称−値の組)を得る。   FIG. 8 illustrates an exemplary software component 210 for an intelligent router, such as the intelligent router described above and the intelligent router 92 shown in FIG. The software component 210 is stored in, for example, the memory 94 and can be executed by the processor 93 of the intelligent router 92. The component 210 includes, for example, a filtering daemon 212, a dispatcher 214, a routing daemon 216, and a cache manager 218. The filtering daemon 212 provides a filtering function based on routing rules in content-based routing for processing content for subscription reservation, as will be described later. The dispatcher 214 is responsible for communicating control messages that are needed to propagate the filter over the path 220, and the dispatcher 214 has a single point of entry and channel manager for the user. Provide secure sockets and improve network security. In other words, in this example, the user does not communicate directly with the channel manager. However, as a modification, the user may communicate directly with the channel manager. The dispatcher 214 obtains attributes (name-value pairs) from the channel manager using control messages.

ルーティングデーモン216は、図4に示すような従来のバックボーンルータ又は他のルーティング機器を介して行われるデータパス222を経由する通信機能を提供する。キャッシュマネージャ218は、対応するインテリジェントルータを含むネットワークノードにおけるデータのローカルなキャッシング機能を提供する。キャッシュマネージャ218の動作は、後に詳細に説明するが、キャッシュマネージャ218は、ネットワークコアを介したデータの分散型キャッシング機能を提供する。   The routing daemon 216 provides a communication function via a data path 222 performed via a conventional backbone router or other routing device as shown in FIG. The cache manager 218 provides local caching of data at the network node that includes the corresponding intelligent router. The operation of the cache manager 218 will be described in detail later. The cache manager 218 provides a distributed caching function of data via the network core.

コンテンツベースのルーティングは、アプリケーションレベルではなく、カーネルレベルで実現してもよい。カーネルによってアクセス可能なメモリは、アプリケーション層におけるメモリから独立している。アプリケーションにおいて、コンテンツベースのルーティングを実行するためには、例えば、メッセージデータをカーネル記憶領域からアプリケーション領域にコピーし、アプリケーションのコンテキストをカーネルのコンテキストから、ルーティングアプリケーションのコンテキストに切り換える必要がある。これらの処理は、いずれもかなりのオーバーヘッドを引き起こす。ここで、コンテンツベースのルーティングをサポートするようにカーネルを変更すれば、上述したオーバーヘッドが取り除かれ、ルーティングをより高速に行うことができるようになる。   Content-based routing may be implemented at the kernel level rather than the application level. The memory accessible by the kernel is independent of the memory in the application layer. In order to execute content-based routing in an application, for example, it is necessary to copy message data from the kernel storage area to the application area and switch the application context from the kernel context to the routing application context. Both of these processes cause considerable overhead. Here, if the kernel is changed to support content-based routing, the overhead described above is eliminated, and routing can be performed at higher speed.

このようなカーネルにおけるコンテンツベースのルーティング機能により、ルーティングデーモン216は、具体例に応じて、データパス222を介してデータを直接又は間接的に送信又は受信することができる。デーモンは、アプリケーション層において実行され、カーネルに挿入すべきコンテンツベースのルーティングテーブルを予め算出する処理である。但し、カーネルは、ルーティングテーブルが挿入された後は、ルーティングテーブルを用いて経路決定を行うことができる。同様に、フィルタリングデーモンは、フィルタリングテーブルを予め算出し、算出したフィルタリングテーブルをカーネルに挿入する。この具体例におけるカーネルでは、ルーティングデーモンもフィルタリングデーモンもデータパスとは直接インタラクトしない。   Such a content-based routing function in the kernel allows the routing daemon 216 to send or receive data directly or indirectly via the data path 222, depending on the specific example. The daemon is a process that is executed in the application layer and calculates in advance a content-based routing table to be inserted into the kernel. However, the kernel can determine a route using the routing table after the routing table is inserted. Similarly, the filtering daemon calculates a filtering table in advance and inserts the calculated filtering table into the kernel. In the kernel in this example, neither the routing daemon nor the filtering daemon interacts directly with the data path.

図9は、購読予約のコンテンツを含むことができるメッセージのためのパケット構造230の具体例を示している。コンテンツベースのルーティングに用いられるパケット又はメッセージは、例えば、ヘッダセクションとペイロードセクションを含んでいる。ヘッダセクションは、ルーティング又は他の情報を特定する。ペイロードセクションは、データ又はコンテンツを特定し、又は、データ又はコンテンツを指示する。パケット構造230は、IPヘッダ232、ユーザデータグラムプロトコル(User Datagram Protocol:以下、UDPという。)伝送制御プロトコル(Transmission Control Protocol:以下、TCPという。)ヘッダ234、レングス値238、1つ以上のサブジェクトフィールド240及び1つ以上の属性242を含んでいる。パケット構造230は、レングス値、サブジェクト及び属性のための基本構造を示している。また、コンテンツベースのルーティングで用いられるパケットは、例えば、後述する図18の実施例に示すように、他の又は異なる要素を含むことができ、コンテンツベースのルーティングのためのパケットは、如何なる手法で構成してもよい。また、属性は、例えば、メッセージの最後に追加される任意の属性を含むことができる。これらの任意の属性は、例えば発行者(又はルータ)によって追加される臨時の情報であり、必ずしもチャンネルについて定められているメッセージフォーマットを用いて伝送する必要はない情報である。   FIG. 9 shows an example of a packet structure 230 for a message that can include subscription content. A packet or message used for content-based routing includes, for example, a header section and a payload section. The header section specifies routing or other information. The payload section identifies data or content or indicates data or content. The packet structure 230 includes an IP header 232, a user datagram protocol (hereinafter referred to as UDP) transmission control protocol (hereinafter referred to as TCP) header 234, a length value 238, one or more subjects. It includes a field 240 and one or more attributes 242. The packet structure 230 shows the basic structure for length values, subjects and attributes. Further, the packet used in the content-based routing can include other or different elements as shown in the embodiment of FIG. 18 to be described later, and the packet for the content-based routing can be used in any manner. It may be configured. The attribute can include, for example, an arbitrary attribute added to the end of the message. These arbitrary attributes are temporary information added by, for example, the issuer (or router), and are information that does not necessarily need to be transmitted using the message format defined for the channel.

発行者と購読者における処理(Publisher and Subscriber Methodologies )
図10は、発行者によって、チャンネルをセットアップし、コンテンツを発行するための例示的な発行処理250のフローチャートである。処理250は、例えば、発行者装置100におけるプロセッサ114によって実行されるエージェント106を含むソフトウェアモジュールによって実現することができる。処理250において、発行者装置のエージェント106は、発行者が作成したチャンネルのプロキシを受け取る(ステップ252)。プロキシは、ネットワークとの通信に用いられる。エージェント106は、インタフェースを介してチャンネルにおいて用いるメッセージフォーマットを判定する(ステップ253)。フォーマット情報は、例えば、チャンネルマネージャ又はネットワークにおける他のエンティティから得ることができる。エージェント106は、受け取ったチャンネル情報を用いてチャンネルのプロキシをセットアップし(ステップ254)、この処理は、チャンネルの属性を受け取るステップ(ステップ256)と、チャンネルへの通知を作成するステップ(ステップ258)とを含む。この通知は、チャンネル上でコンテンツを「待機(listening)」している機器にコンテンツを提供する。属性は、通知のパラメータ及び特性を定義する。
Publisher and Subscriber Methodologies
FIG. 10 is a flowchart of an exemplary publishing process 250 for setting up channels and publishing content by publishers. The process 250 can be realized by a software module including the agent 106 executed by the processor 114 in the issuer apparatus 100, for example. In process 250, the issuer device agent 106 receives a proxy for the channel created by the issuer (step 252). The proxy is used for communication with the network. Agent 106 determines the message format to use on the channel via the interface (step 253). Format information can be obtained, for example, from a channel manager or other entity in the network. The agent 106 sets up a proxy for the channel using the received channel information (step 254), which includes receiving a channel attribute (step 256) and creating a notification for the channel (step 258). Including. This notification provides content to devices that are “listening” for content on the channel. Attributes define notification parameters and characteristics.

エージェント106は、ネットワークコアにおいて又は他の場所において、購読予約を処理するためにチャンネル及びコンテンツ情報の識別子(ID)をインテリジェントルータに送信する(ステップ260)。発行者は、通知属性に適切な値を設定し(ステップ261)、これにより、発行者は、チャンネル属性に基づいて、通知に関するコンテンツを発行できる(ステップ262)。この実施例におけるステップ260〜262により、通知の発行が完了する。この処理は、実際の個々の実施例に応じて、この他の又は更なるステップを含んでいてもよい。ここで、この実施例における通知に関連する情報は、所定の順序に基づく一連の属性に区切られ、各属性は、名称と、通知内の位置(1から始まる)と、種類と、値とを有する。これに代えて、属性は、個々の実施例に応じて、異なる特徴を有していてもよい。例えば、属性は、予め定められた属性、任意の属性又はこれらの両方を含むことができる。   The agent 106 sends the channel and content information identifier (ID) to the intelligent router to process the subscription at the network core or elsewhere (step 260). The issuer sets an appropriate value for the notification attribute (step 261), so that the issuer can issue content related to the notification based on the channel attribute (step 262). In step 260 to 262 in this embodiment, the notification issuance is completed. This process may include other or further steps depending on the actual individual embodiment. Here, the information related to the notification in this embodiment is divided into a series of attributes based on a predetermined order. Each attribute has a name, a position (starting from 1) in the notification, a type, and a value. Have. Alternatively, the attributes may have different characteristics depending on the particular embodiment. For example, the attributes can include predetermined attributes, optional attributes, or both.

インテリジェントルータは、パケット内のチャンネルIDに基づいて、対応するチャンネルの属性を知ることができ、この属性により、チャンネルを介して送信されるパケットの構造又はフォーマットが決定されている。具体的には、各パケットは、例えば、チャンネルID及び発行者IDやサブジェクト等の他のヘッダ情報に関連するタグを含むことができる。このタグは、例えば図18に具体例を示すように、サブジェクトをメッセージフォーマットの番号にマッピングするために用いることができる。この番号には、小さい整数値、例えば、16ビット値を用いることができる。これに代えて、他の如何なる種類の番号又は情報を用いてサブジェクトをマッピングしてもよい。サブジェクトを番号にマッピングすることにより、例えば次のような利点が得られる。すなわち、これにより、メッセージフォーマットにおける空間を節約でき、メッセージにおいてサブジェクトを指定するための均一又は標準化された手法を提供でき、これにより、サブジェクトを速やかに特定し、識別できるようになる。インテリジェントルータは、マッピングをローカルに保存してもよく、これに代えて、番号を用いて、コマンドにより、リモートから対応するサブジェクトを入手してもよい。   The intelligent router can know the attribute of the corresponding channel based on the channel ID in the packet, and this attribute determines the structure or format of the packet transmitted through the channel. Specifically, each packet can include, for example, a tag associated with other header information such as a channel ID, issuer ID, and subject. This tag can be used to map a subject to a message format number, for example, as shown in FIG. This number can be a small integer value, for example a 16-bit value. Alternatively, the subject may be mapped using any other type of number or information. By mapping the subject to the number, for example, the following advantages can be obtained. That is, this can save space in the message format and provide a uniform or standardized way to specify subjects in the message, which allows for quick identification and identification of subjects. The intelligent router may store the mapping locally, or alternatively may obtain the corresponding subject remotely by command using a number.

表10は、サブジェクトを番号にマッピングするための構造を示しており、この具体例では、番号に整数値を用いている。表10におけるサブジェクトツリーパラメータは、サブジェクトが階層関係内に1つ以上のサブジェクトフィールドを含むことができることを示しており、例えばサブジェクトツリーは、特定のシンボルによって仕切られる一連のサブジェクトフィールドを含むことができる。サブジェクトツリーの具体例は、表2に示されている。例えば、サブジェクトツリーquotes.nyseは、サブジェクト「quote」とサブフィールド「nyse」を含んでおり、これらの2つの項は、URL又は他のネットワークアドレスと同様に、「.」(ピリオド)によって区切られている。ピリオド及びURL型の文字列を用いる代わりに、如何なる文字及び区切りのためのシンボルを用いて、如何なる手法でサブジェクトツリーを特定してもよい。   Table 10 shows a structure for mapping subjects to numbers. In this specific example, integer values are used for the numbers. The subject tree parameter in Table 10 indicates that a subject can include one or more subject fields in a hierarchical relationship, for example, a subject tree can include a series of subject fields that are partitioned by a particular symbol. . Specific examples of the subject tree are shown in Table 2. For example, subject tree quotes. The nyse includes a subject “quote” and a subfield “nyse”, and these two terms are separated by a “.” (period), like a URL or other network address. Instead of using a period and URL type character string, the subject tree may be specified by any method using any character and a symbol for delimiter.

Figure 2009163753
Figure 2009163753

特定のチャンネルのパケットフォーマット又は構造を知ることにより、インテリジェントルータは、パケット内におけるサブジェクトと属性又はコンテンツベースのルーティングのための他の情報の位置を速やかに特定することができる。例えば、チャンネルは、パケット内のバイトを数えることによって、チャンネルを介して伝送されたサブジェクト及び属性のバイト位置を容易に特定できる。これに代えて、インテリジェントルータは、パケットを解析してサブジェクト及び属性又は他の情報の位置を検出することもできる。表11は、C++プログラミング言語で書かれた発行者プログラムの具体例を示している。表12は、チャンネルを作成するためのAPIの具体例を示している。表13は、チャンネルマネージャによって維持されるチャンネル設定ファイルの具体例と(図6参照)、チャンネル関連情報を示している。これに代えて、システムは、処理負荷を分散させるために、ローカルチャンネルマネージャとして機能する地理的に分散しているサーバのIPアドレスを提供する包括的チャンネルマネージャを備えていてもよい。   Knowing the packet format or structure of a particular channel allows the intelligent router to quickly locate the subject and attributes in the packet or other information for content-based routing. For example, a channel can easily identify the byte positions of subjects and attributes transmitted over the channel by counting bytes in the packet. Alternatively, the intelligent router can analyze the packet to detect the location of subjects and attributes or other information. Table 11 shows a specific example of an issuer program written in the C ++ programming language. Table 12 shows a specific example of an API for creating a channel. Table 13 shows a specific example of the channel setting file maintained by the channel manager (see FIG. 6) and channel related information. Alternatively, the system may include a comprehensive channel manager that provides the IP addresses of geographically distributed servers that act as local channel managers to distribute the processing load.

Figure 2009163753
Figure 2009163753

Figure 2009163753
Figure 2009163753

Figure 2009163753
Figure 2009163753

図11は、購読予約の受信及び処理のための購読処理264のフローチャートである。処理264は、例えば、購読者装置122におけるプロセッサ134によって実行されるエージェント128を含むソフトウェアモジュールによって実現することができる。処理264において、例えば、グラフィカルユーザインタフェース(graphical user interface;以下、GUIという。)は、利用可能なチャンネルを示す情報をユーザに表示する(ステップ266)。この処理は、アプリケーション126によって実現される。チャンネルを特定する情報は、例えば、チャンネル関連の情報を提供するチャンネルマネージャから受け取ることができる。如何なる種類のアプリケーション126を用いて、如何なる特定の手法又はフォーマットに基づいて、チャンネルを示す情報を表示してもよい。アプリケーションは、ユーザが選択したチャンネルを受信し(ステップ268)、選択されたチャンネルのためのAPI又は他のプログラムを呼び出す(ステップ270)。APIは、選択されたオプションに対するチャンネルの購読予約オプションをユーザに表示する(ステップ272)。APIは、購読予約に関する値をユーザから値を受け取り(ステップ274)、後述する処理のために、エージェント128に購読予約を供給する(ステップ276)。   FIG. 11 is a flowchart of a subscription process 264 for receiving and processing subscription reservations. Process 264 may be implemented, for example, by a software module that includes agent 128 executed by processor 134 at subscriber device 122. In the process 264, for example, a graphical user interface (hereinafter referred to as GUI) displays information indicating available channels to the user (step 266). This process is realized by the application 126. Information identifying a channel can be received, for example, from a channel manager that provides channel-related information. Any type of application 126 may be used to display information indicating the channel based on any particular technique or format. The application receives the channel selected by the user (step 268) and calls an API or other program for the selected channel (step 270). The API displays the channel subscription options for the selected option to the user (step 272). The API receives a value for the subscription from the user (step 274) and provides the subscription to the agent 128 for processing described below (step 276).

購読予約のためのパラメータは、例えば表1に示すような述語を含むことができる。各チャンネルは、例えば、対応するチャンネルに関する特定の要求又はパラメータに従って購読予約を処理するために自らのAPIを用いることができる。これらのAPIは、例えば、購読予約を受け取るためのウェブベースの又はJava(登録商標)ベースのAPIを含んでいてもよく、如何なる種類のユーザインタフェース及び処理を用いて購読予約に関する情報を受け取り、この情報をエージェントアプリケーションに転送してもよい。   The parameters for subscription reservation may include predicates as shown in Table 1, for example. Each channel can use its own API to process subscriptions according to specific requirements or parameters for the corresponding channel, for example. These APIs may include, for example, web-based or Java-based APIs for receiving subscriptions, receive information about subscriptions using any type of user interface and process, and Information may be transferred to the agent application.

図12は、チャンネル及び購読者画面又はGUI278、284を概念的に示す図であり、これらは、購読予約を受け取るための処理264に関連して用いられる。画面278は、ユーザによって選択される利用可能なチャンネルを示す複数のセクション282を含んでいる。特定のチャンネルが選択されると、画面284に示すように、購読予約のためのユーザの値を受け取るためのセクション286が表示される。ユーザがセクション288を選択すると、購読予約が確定し、又は、ユーザがセクション290を選択すると、購読予約が中止される。例えば、画面278、284は、ハイパーテキストマークアップランゲージ(HyperText Markup Language:以下、HTMLという。)ウェブページとしてフォーマットしてもよく、又は他の如何なる他のフォーマットを用いてもよい。また、画面は、セクションとコンテンツの如何なる構成を含んでいてもよく、可能であれば、必要に応じて、例えばテキスト、図形、ピクチャ、様々な色又はマルチメディア情報を含み、購読者のために、ユーザフレンドリで視覚的に魅力的なインタフェースを提供する。また、画面は、例えば、従来と同様のブラウザ機能を提供するツールバー280を含んでいてもよい。   FIG. 12 conceptually illustrates channel and subscriber screens or GUIs 278, 284, which are used in connection with process 264 for receiving a subscription. Screen 278 includes a plurality of sections 282 showing available channels selected by the user. When a particular channel is selected, a section 286 for receiving user values for subscription is displayed, as shown on screen 284. If the user selects section 288, the subscription is confirmed, or if the user selects section 290, the subscription is canceled. For example, the screens 278, 284 may be formatted as a hypertext markup language (HTML) web page, or any other format may be used. The screen may also contain any configuration of sections and content, including text, graphics, pictures, various colors or multimedia information, if necessary, for subscribers, if necessary. Provide a user-friendly and visually attractive interface. Further, the screen may include, for example, a toolbar 280 that provides a browser function similar to the conventional one.

表14は、C++プログラミング言語で書かれた購読者プログラムの具体例を示している。   Table 14 shows a specific example of a subscriber program written in the C ++ programming language.

Figure 2009163753
Figure 2009163753

Figure 2009163753
Figure 2009163753

ペイロード検査及びチャンネルを介したコンテンツベースのルーティング
図13は、コンテンツベースのルーティングのためのペイロード検査処理300のフローチャートである。処理300は、例えば、フィルタリングデーモン212として表される、インテリジェントルータ92におけるプロセッサ93によって実行されるソフトウェアモジュールにおいて実現される。これに代えて、この処理をASICで実現してもよく、或いはハードウェアとソフトウェアの組合せによって実現してもよい。処理300として示すコンテンツベースのルーティングは、例えば、ネットワークコアやエッジルータ等ネットワーク内の任意の部分におけるインテリジェントルータにおいて実行できる。
Payload Inspection and Content-Based Routing Through Channels FIG. 13 is a flowchart of a payload inspection process 300 for content-based routing. Process 300 is implemented in a software module that is executed by processor 93 in intelligent router 92, for example, represented as filtering daemon 212. Alternatively, this processing may be realized by an ASIC, or may be realized by a combination of hardware and software. The content-based routing shown as process 300 can be performed in an intelligent router in any part of the network, such as a network core or edge router, for example.

包括的に言えば、コンテンツベースのルーティングは、パケットをどのように処理するかを決定するためにパケットのペイロードセクションを検査する処理を含む。このコンテンツベースのルーティング処理は、例えば、購読予約のリストを任意の順序で(例えば、フィルタを用いて)処理し、ルーティング規則に基づいて、メッセージをサブジェクト毎及び属性毎に比較し、メッセージのルーティングを決定し、ネットワークコアにおける処理を実行するステップを有する。この規則は、ルータにおける処理を支配する規則又はフィルタに関連する如何なる規則を含んでいてもよい。これにより、ネットワークコア内にこれらの経路決定を伝えることができる。サブジェクトをチャンネルとして表すことにより、メッセージフォーマットが決定され、これにより、インテリジェントルータは、例えば、特定のチャンネルのメッセージ又はパケットにおいて、属性のバイト位置を知ることによって、メッセージにおける属性の位置を速やかに検出できるようになる。   In general, content-based routing involves examining the payload section of a packet to determine how to process the packet. This content-based routing process, for example, processes a list of subscriptions in any order (eg, using a filter), compares messages by subject and attribute based on routing rules, and routes messages. And executing processing in the network core. This rule may include any rule relating to a rule or filter that governs processing at the router. As a result, these route decisions can be conveyed within the network core. By representing the subject as a channel, the message format is determined so that the intelligent router can quickly detect the position of the attribute in the message, for example, by knowing the byte position of the attribute in a message or packet on a particular channel. become able to.

処理300において、インテリジェントルータ92は、メッセージに関するパケットを受け取る(ステップ302)。インテリジェントルータ92は、パケットから、対応するメッセージのチャンネルIDを判定し(ステップ304)、チャンネルIDを用いて、チャンネルの属性を読み出す(ステップ306)。この実施例では、チャンネル(チャンネルIDから判定される。)の種類は、パケットにおける属性の位置とデータタイプを決定する。チャンネルの属性は、ローカルに保存してもよく、例えばチャンネルマネージャを介してリモートから読み出してもよい。インテリジェントルータ92は、購読予約に対応するフィルタを検索する(ステップ308)。フィルタは、1つ以上の属性検査、多くの場合、購読予約のための属性検査のグループを含んでいる。インテリジェントルータ92は、フィルタ記述内の対応する属性検査をパケット内の属性に適用する(ステップ310)。   In process 300, intelligent router 92 receives a packet for a message (step 302). The intelligent router 92 determines the channel ID of the corresponding message from the packet (step 304), and reads the channel attribute using the channel ID (step 306). In this embodiment, the type of channel (determined from the channel ID) determines the attribute position and data type in the packet. Channel attributes may be stored locally, for example, remotely read via a channel manager. The intelligent router 92 searches for a filter corresponding to the subscription reservation (step 308). The filter includes one or more attribute checks, often a group of attribute checks for subscription reservations. Intelligent router 92 applies the corresponding attribute check in the filter description to the attribute in the packet (step 310).

フィルタ記述における全ての属性検査の結果が肯定的である場合(ステップ312)、すなわち、属性が全ての属性検査の条件を満たしていれば、インテリジェントルータ92は、フィルタに関連する規則によって予め定められている一組の処理を実行する(ステップ314)。これらの処理としては、例えば、次のリンクにパケットをルーティングする処理及び/又は規則に基づき、ローカルルータにおいて、パケットのコンテンツに対して何らかの操作又は演算を実行する処理等が含まれる。この操作又は次のリンクは、例えば、対応する購読予約を指定するデータ構造において特定される。規則がリンクである場合、規則は、通常、パケットを受け取るための次のネットワークノードを指定し、このネットワークノードとしては、インテリジェントルータ、バックボーンルータ、ネットワークに接続された機器又は他のエンティティが含まれる。これに代えて、この他の手法で、次のリンクを特定し又は購読予約に関連付けてもよい。   If the result of all attribute checks in the filter description is affirmative (step 312), that is, if the attribute meets the conditions of all attribute checks, the intelligent router 92 is predetermined by the rules associated with the filter. A set of processes is executed (step 314). These processes include, for example, a process of routing a packet to the next link and / or a process of executing some operation or operation on the contents of the packet in the local router based on a rule. This operation or next link is specified, for example, in a data structure that specifies the corresponding subscription. If the rule is a link, the rule typically specifies the next network node to receive the packet, which includes intelligent routers, backbone routers, devices connected to the network, or other entities . Alternatively, the next link may be identified or associated with a subscription reservation in other ways.

フィルタ記述における全ての属性検査の結果が肯定的ではなかった場合(ステップ312)、すなわち、属性が全ての属性検査の条件を満たしていなければ、フィルタの不一致が宣言される(ステップ315)。インテリジェントルータは、フィルタ記述における全ての属性検査が完了するまで又は、最初の否定的結果が得られるまで上述した処理を繰り返し、この2つの条件のいずれかが満たされると処理を終了する。   If the results of all attribute checks in the filter description are not positive (step 312), that is, if the attributes do not satisfy all attribute check conditions, a filter mismatch is declared (step 315). The intelligent router repeats the above processing until all attribute checks in the filter description are completed or until the first negative result is obtained, and ends when either of these two conditions is satisfied.

インテリジェントルータは、このフィルタについて、全ての属性検査を行った後、更なるフィルタが存在するか否かを判定し(ステップ316)、更なるフィルタが存在する場合、処理は、ステップ308に戻り、次のフィルタに関する属性検査が読み出され、そのフィルタに関する検査を実行する。照合処理(ステップ308、310、312、314、315、316)は、フィルタの組全体に対する処理が完了するまで、又は全ての規則に関する判定が得られるまで続けられ、この2つの条件のいずれかが満たされると終了する。パケットがフィルタの条件を満たさない場合、そのフィルタは除外(削除)され、転送されない。   The intelligent router performs all attribute checks on this filter and then determines whether there are more filters (step 316). If there are more filters, processing returns to step 308; The attribute check for the next filter is read and the check for that filter is performed. The matching process (steps 308, 310, 312, 314, 315, 316) continues until the process on the entire set of filters is completed or until all rules are determined, and either of these two conditions is met. When satisfied, it ends. If the packet does not meet the filter criteria, the filter is excluded (deleted) and not forwarded.

インテリジェントルータ92は、如何なる特定の順序でフィルタを用いた一連の処理を行ってもよい。例えば表15に示すように、インテリジェントルータ92は、ファイル又はルーティングテーブル内に購読予約のためのフィルタを保存でき、これらを順次読み出して、属性にフィルタを適用する(属性検査を行う)ことができる。これに代えて、ルーティングテーブルは、フィルタへのリンク又はポインタを含んでいてもよい。   The intelligent router 92 may perform a series of processes using filters in any specific order. For example, as shown in Table 15, the intelligent router 92 can store filters for subscription reservations in a file or routing table, and can sequentially read these and apply filters to attributes (perform attribute checking). . Alternatively, the routing table may include a link or pointer to the filter.

コンテンツベースのルーティングでは、アプリケーション及び例えばトラヒック条件に基づくアルゴリズムの切換等性能向上ヒューリスティックスに基づいて、任意に2つ以上の手法を同時に用いてもよい。コンテンツベースのルーティングに関するペイロードセクションの検査において用いるために、処理に用いるフィルタは、ネットワーク内のルータにおいて任意に暗号化し、復号し、変形し、併合してもよい。例えば、アプリケーションにおける発行情報が小数点以下2桁より小さい通貨情報を含まない場合、>3.54122ドルの購読情報の端数を丸めて>3.54ドルにしてもよい。また、海外からの発行情報が米国内に存在する最初のルータに到達した時点で、外国通貨を米国の通貨に換算してもよい。   In content-based routing, two or more techniques may optionally be used simultaneously based on application and heuristics such as switching algorithms based on traffic conditions, for example. For use in examining payload sections for content-based routing, the filters used for processing may optionally be encrypted, decrypted, transformed, and merged at routers in the network. For example, if the issue information in the application does not include currency information that is less than two digits after the decimal point, the fraction of subscription information of> 3.54122 may be rounded to> 3.54 dollars. Alternatively, foreign currency may be converted into US currency when overseas issue information reaches the first router existing in the United States.

インテリジェントルータ92は、線形的な手法に代えて、処理の速度と効率を向上させることができる他の順序で又は様々なアルゴリズムに基づいて、処理に用いるフィルタを選択してもよい。表16は、購読予約と対応するリンクの具体例を示す。これらの具体例において、サブジェクトは、特定のチャンネルに関連し、サブジェクトに関する購読予約は、フィルタに関するルーティング規則によって表すことができる。サブジェクトは、例えば、ユニフォームリソースロケータ(Uniform Resource Locator:URL)等、コンテンツのソースを特定するためのネットワークアドレスを含むことができる。   Instead of a linear approach, the intelligent router 92 may select filters for processing in other orders that can improve the speed and efficiency of processing or based on various algorithms. Table 16 shows a specific example of the link corresponding to the subscription reservation. In these examples, the subject is associated with a particular channel, and the subscription for the subject can be represented by a routing rule for the filter. The subject can include a network address for identifying the source of the content, such as a uniform resource locator (URL).

Figure 2009163753
Figure 2009163753

Figure 2009163753
Figure 2009163753

図14は、キャッシング処理320のフローチャートである。処理320は、例えば、キャッシュマネージャ218として表される、インテリジェントルータ92におけるプロセッサ93によって実行されるソフトウェアモジュールにおいて実現される。これに代えて、この処理をASICで実現してもよく、或いはハードウェアとソフトウェアの組合せによって実現してもよい。これらは、対応するインテリジェントルータと同じ物理機器であっても異なる物理機器であってもよい。処理320において、インテリジェントルータ92は、データ又はコンテンツと、チャンネルIDと、サブジェクトとを含むメッセージを受け取る(ステップ322)。インテリジェントルータ92は、データに時刻を表すマークを付し(ステップ324)、メモリ94や補助記憶装置97等のローカルメモリにキャッシングする(ステップ326)。インテリジェントルータ92は、キャッシングされたデータにチャンネルID、サブジェクト及びタイムスタンプによりインデクスを付す(ステップ328)。   FIG. 14 is a flowchart of the caching process 320. The process 320 is implemented in a software module executed by the processor 93 in the intelligent router 92, for example, represented as a cache manager 218. Alternatively, this processing may be realized by an ASIC, or may be realized by a combination of hardware and software. These may be the same physical device as the corresponding intelligent router or a different physical device. In process 320, intelligent router 92 receives a message containing data or content, a channel ID, and a subject (step 322). The intelligent router 92 adds a mark indicating the time to the data (step 324) and caches the data in a local memory such as the memory 94 or the auxiliary storage device 97 (step 326). The intelligent router 92 indexes the cached data using the channel ID, subject, and time stamp (step 328).

インテリジェントルータ92がデータの要求を受け取った場合、(ステップ330)インテリジェントルータ92は、その要求に基づき、インデクスを用いて、キャッシングされたデータを検索する(ステップ332)。インテリジェントルータ92は、バックボーンルータ95又は他のルーティングエンティティにキャッシングされたデータを転送し、このデータは最終的に要求者又は他のエンティティに送信される。処理320は、継続的にデータをキャッシングし、キャッシングされたデータを要求に応じて検索できるように、繰り返し実行してもよい。   When intelligent router 92 receives a request for data (step 330), intelligent router 92 retrieves the cached data using the index based on the request (step 332). Intelligent router 92 forwards the cached data to backbone router 95 or other routing entity, which is ultimately transmitted to the requester or other entity. The process 320 may be repeated so that data is continuously cached and the cached data can be retrieved on demand.

図15は、処理320に用いられるキャッシュインデクス(336)の具体例を示している。キャッシュインデクス(336)は、データ(338)を受け取り、これをタイムスタンプ(340)とともに保存する。データを収集する際、各データにはΔtの各期間毎にマークが付される。ここで、Δtは、マーク間の時間、例えばt2〜t1間の期間を表す。時刻を表すマークのために他の如何なる種類のインデクスを用いてもよい。   FIG. 15 shows a specific example of the cache index (336) used in the process 320. The cache index (336) receives the data (338) and stores it along with the time stamp (340). When collecting data, each data is marked for each period of Δt. Here, Δt represents a time between marks, for example, a period between t2 and t1. Any other type of index may be used for the time mark.

表17は、キャッシングされたデータに用いられるインデクスを概念的に示している。表18は、キャッシングのための接続履歴を保存するためのデータを概念的に示している。表19は、インテリジェントルータを有するネットワークノードにおいて、ローカルにキャッシングされるデータに用いられるデータ構造の具体例を示している。   Table 17 conceptually shows the indexes used for the cached data. Table 18 conceptually shows data for storing a connection history for caching. Table 19 shows a specific example of a data structure used for locally cached data in a network node having an intelligent router.

時刻を表すマークの付与は、固定された如何なる間隔で行ってもよく、可変の時間間隔で行ってもよい。例えば、データを5分毎にキャッシングしてインデクスを付してもよい。チャンネルマネージャ218は、時刻及びサブジェクトを指定した、キャッシングされたデータを読み出すコマンドを受け取ると(例えば、#.getCache)キャッシュインデクスを用いて、ステップ332における要求に対応するキャッシングされたデータを読み出すことができるか否かを判定する。   The mark indicating the time may be given at any fixed interval or at a variable time interval. For example, data may be cached every 5 minutes and indexed. When the channel manager 218 receives a command to read cached data specifying a time and subject (eg, # .getCache), it can read the cached data corresponding to the request in step 332 using a cache index. Determine if you can.

各サブジェクト又はチャンネルは、例えば、マルチキャストツリーにおけるそれ自身のIPアドレスと、1組のインテリジェントルータとを含むことができる。表18は、ユーザ装置にローカルに保存することができるこのようなルータ間の接続履歴を示している。エッジルータに障害が発生した場合、装置は、接続履歴にアクセスし、エッジルータがオンラインに戻った際にチャンネルのアップストリームのルータにどのように再接続できるかを調べる。また、装置は、自らが接続されていなかった期間について、キャッシュデータを取得するためのコマンド(get cache command)を実行して、購読予約に関するペンディング中のコンテンツを得ることができる。   Each subject or channel can include, for example, its own IP address in the multicast tree and a set of intelligent routers. Table 18 shows the connection history between such routers that can be stored locally on the user equipment. If an edge router fails, the device accesses the connection history to see how the edge router can reconnect to the upstream router of the channel when it comes back online. In addition, the device can execute a command (get cache command) for acquiring cache data during a period in which the device is not connected to obtain pending content related to the subscription.

Figure 2009163753
Figure 2009163753

Figure 2009163753
Figure 2009163753

Figure 2009163753
Figure 2009163753

Figure 2009163753
Figure 2009163753

これらの例示的なデータ構造は、以下の情報を含んでいる。サブジェクトノードは、サブジェクト識別子と、サブジェクトレベルと、親チャンネル又はサブジェクトノードへのポインタと、自らのディレクトリのためのファイル記述子と、次のレベルのサブジェクトノードを含むハッシュテーブルへのポインタと、データノードへのポインタとを含んでいる。データノードは、サブジェクト親ノードへのポインタと、データディレクトリのためのファイル記述子と、各ストレージデバイスに保存されたデータのためのデータ構造を含む循環型のバッファと、バッファのヘッド及びテールと、読出及びストレージの間にデータノードをロックするためのロックとを含んでいる。保存されたタイムグレインノード(time grain node)は、実際のデータファイルを表すノードであり、最後のグレインノードは、ストレージデバイスにはまだ保存されていないがメモリに保持されているバッファを表す。この実施例におけるキャッシング及びデータ格納スレッドは、最後のタイムグレインノードのミューテックスを用いて、最後のタイムグレインノードが同時にアクセスされることを防いでいる。   These exemplary data structures include the following information: A subject node includes a subject identifier, a subject level, a pointer to a parent channel or subject node, a file descriptor for its own directory, a pointer to a hash table containing subject nodes of the next level, and a data node And a pointer to The data node has a pointer to the subject parent node, a file descriptor for the data directory, a circular buffer containing data structures for the data stored in each storage device, a head and tail of the buffer, And a lock to lock the data node during reading and storage. A saved time grain node is a node that represents an actual data file, and the last grain node represents a buffer that is not yet saved in the storage device but is held in memory. The caching and data storage thread in this embodiment uses the mutex of the last time grain node to prevent the last time grain node from being accessed simultaneously.

エージェントにおける処理
図16は、送信される購読予約メッセージのためのエージェント処理350のフローチャートである。処理350は、例えば、ユーザ(購読者)装置122におけるプロセッサ134によって実行されるエージェント128を含むソフトウェアモジュールによって実現することができる。処理350において、エージェント128は、例えば、図11及び図12を用いて上述した処理(ステップ352)によって生成された購読予約を受け取る。エージェント128は、購読予約のための論理式を特定するストリングを作成し(ステップ354)、ストリングを解析して、購読予約におけるエラーを検出する(ステップ356)。エラーが存在している場合、エージェント128は、ユーザにエラーメッセージを示し(ステップ360)、ユーザがエラーを修正し、購読予約を再入力するように促す。購読予約がエラーを全く含んでいない場合(ステップ358)、エージェント128は、後述するように、データ構造内の表現を保存する(ステップ362)。エージェント128は、データ構造に含まれる不等価演算子を正の形式に変換し(ステップ364)、更にデータ構造を対応する選言標準形(disjunctive normal form:以下、DNFという。)に変換する(ステップ366)。また、エージェント128は、範囲フィルタ及びメンバーシップ検査のみが含まれるように、DNF構造のAND式を簡約する(ステップ368)。
Processing at Agent FIG. 16 is a flowchart of agent processing 350 for a transmitted subscription message. The process 350 can be implemented, for example, by a software module that includes an agent 128 that is executed by the processor 134 in the user (subscriber) device 122. In the process 350, the agent 128 receives the subscription reservation generated by the process (step 352) described above with reference to FIGS. 11 and 12, for example. Agent 128 creates a string that identifies the logical expression for the subscription reservation (step 354) and parses the string to detect errors in the subscription reservation (step 356). If an error exists, agent 128 displays an error message to the user (step 360) and prompts the user to correct the error and re-enter the subscription. If the subscription does not contain any errors (step 358), agent 128 saves the representation in the data structure (step 362), as described below. The agent 128 converts the inequality operator included in the data structure into a positive form (step 364), and further converts the data structure into a corresponding disjunctive normal form (hereinafter referred to as DNF) ( Step 366). Agent 128 also simplifies the AND expression of the DNF structure so that only range filters and membership checks are included (step 368).

DNFは、論理式が1つ以上の部分式のOR(選言と呼ばれる)として表され、各部分式が1つ以上の属性検査のANDで表されるよく知られている標準形である。例えば、論理式(price >= 10 AND (symbol ="LU" OR symbol ="T"))に同等なDNF表現は、((price >= 10 AND symbol ="LU") OR (price >= 10 AND SYMBOL ="T"))である。   DNF is a well-known standard form where a logical expression is represented as an OR (called disjunction) of one or more subexpressions, and each subexpression is represented by an AND of one or more attribute checks. For example, the equivalent DNF expression to the logical expression (price> = 10 AND (symbol = "LU" OR symbol = "T")) is ((price> = 10 AND symbol = "LU") OR (price> = 10 AND SYMBOL = "T")).

ステップ364における変換は、「不等価」演算子(例示的な構文では、!=と表す。)を有する表現を、許可されていない1つの値に代えて、許可されている全ての値を特定する同等な「正」の形式に変換する処理を含む。この実施例に用いるルータは、正の形式の式を要求するため、この変換は、DNFを生成する前に行われる。例えば、表現(price != 80)は、同等な正の表現(price<= 79 OR price >=81)に変換される。   The transformation in step 364 identifies all allowed values, replacing an expression with an “inequality” operator (represented as! = In the exemplary syntax) with one value that is not allowed. To the equivalent “positive” format. Since the router used in this example requires an expression in the positive form, this conversion is done before generating the DNF. For example, the expression (price! = 80) is converted to an equivalent positive expression (price <= 79 OR price> = 81).

ステップ368における変換は、DNFが作成された後に実行され、ここで生成されたAND式を更に簡約する処理を含み、これにより、この実施例におけるルータの処理が簡約される。具体的には、特に、同じ属性に関する複数の属性検査のANDは、1つの下限、1つの上限、下限及び上限の両方及び等価検査の場合、単一の値のいずれかを含む正準な「範囲フィルタ」に簡約できる。特定の種類の範囲フィルタは、例えば表22に基づいて符号化される。   The transformation in step 368 is performed after the DNF is created and includes a process that further simplifies the AND expression generated here, thereby simplifying the processing of the router in this embodiment. Specifically, in particular, the AND of multiple attribute checks for the same attribute is a canonical “includes one lower limit, one upper limit, both lower and upper limits, and, in the case of equivalence checks, any single value. It can be simplified to “range filter”. A particular type of range filter is encoded based on, for example, Table 22.

例えば、表現(price >= 10 AND price <= 80 AND price >=20 AND price <= 100)は、表現(price >= 20 AND price <= 80)に簡約でき、これは、下限と上限の両方を有する範囲フィルタの具体例である。簡約後の値の他の種類の具体例としては、(price >= 20)(下限のみ)、(price <= 80)(上限のみ)、(price = 50)(単一値)等がある。これらの範囲フィルタを作成する際、何らかの部分式を真又は偽に簡約することができ、その場合部分式は、ブール代数の法則に基づいて消去でき、これにより、メッセージにおける、表現の符号化が更に最適化される。例えば、表現(price >= 50 AND price <= 20)は、表現を満足させる「price」の値がないので、偽に簡約することができる。フィルタ表現全体が偽に簡約される特別な場合、エージェントは、メッセージを作成する必要がなく、これによりルータを不要な作業から解放することができる。   For example, the expression (price> = 10 AND price <= 80 AND price> = 20 AND price <= 100) can be reduced to the expression (price> = 20 AND price <= 80), which has both lower and upper limits. It is a specific example of a range filter having Specific examples of other types of values after reduction include (price> = 20) (lower limit only), (price <= 80) (upper limit only), (price = 50) (single value), and the like. In creating these range filters, any subexpression can be reduced to true or false, in which case the subexpression can be eliminated based on the laws of Boolean algebra, so that the encoding of the expression in the message is reduced. Further optimization. For example, the expression (price> = 50 AND price <= 20) can be simplified to false because there is no “price” value that satisfies the expression. In the special case where the entire filter representation is simplified to false, the agent does not need to create a message, thereby freeing the router from unnecessary work.

サブジェクトフィルタがワイルドカードを含んでいる場合、エージェント128は、後述するように、それらを任意に変換することができる(ステップ370)。これに代えて、如何なるワイルドカードもユーザ装置又は他の機器ではなく、ネットワークにおいて変換してもよい。この例示的な実施例では、サブジェクトフィルタのための構文は、ワイルドカードを用いる唯一の構文であり、属性フィルタのための構文は、論理式を用いる唯一の構文である。これに代えて、サブジェクトフィルタと属性フィルタについて、異なる又は可変の種類の構文を用いてもよい。   If the subject filter contains wildcards, agent 128 can optionally convert them (step 370), as described below. Alternatively, any wildcard may be converted in the network rather than the user device or other device. In this illustrative example, the syntax for the subject filter is the only syntax that uses wildcards, and the syntax for the attribute filter is the only syntax that uses logical expressions. Alternatively, different or variable types of syntax may be used for the subject filter and the attribute filter.

エージェント128は、生成されたDNF表現をメッセージに符号化し(ステップ372)、メッセージをインテリジェントルータに転送する(ステップ374)。この符号化は、購読予約のフラットなメッセージフォーマットへの変換処理を含み、これは、フラットなメッセージフォーマットとは、データのストリングから構成されるフォーマットを意味する。また、この転送の処理は、購読予約に関してサブジェクトフィルタと属性フィルタによって生成されたルーティング規則をネットワークにおける1つ以上のインテリジェントルータ又は他のルーティングエンティティに伝播させる処理を含む。この伝播のために、例えば、購読予約の表現を従来のパケット構造にマッピングすることができる。   Agent 128 encodes the generated DNF representation into a message (step 372) and forwards the message to the intelligent router (step 374). This encoding includes a process of converting a subscription reservation into a flat message format, which means a format composed of a string of data. The forwarding process also includes the process of propagating the routing rules generated by the subject filter and attribute filter for the subscription reservation to one or more intelligent routers or other routing entities in the network. For this propagation, for example, a subscription representation can be mapped to a conventional packet structure.

ステップ372における符号化は、チャンネルを介した伝播のために、チャンネルに対応する購読予約をメッセージングAPIのメッセージングフォーマットに変換する処理を含む。例えば、購読予約は、サブジェクト#.SUBSCRIPTIONを含む通知として内部的にメッセージングされる。任意の個数のサブジェクトフィルタフィールドと任意の個数の属性検査の両方があるので、この実施例では、1組のバイトを用いてサブジェクトフィルタフィールドの個数を保存し、もう1組のバイトを用いて属性検査の個数を保存する。サブジェクトフィルタの個々のフィールドは、例えば元の購読予約で指定された順序に並べ替えられ、それぞれメッセージの2バイトの部分に格納される。ワイルドカードフィールドの整理については後述する。   The encoding in step 372 includes converting the subscription corresponding to the channel to the messaging API messaging format for propagation through the channel. For example, the subscription reservation is subject #. Messaged internally as a notification including SUBSCRIPTION. Since there are both an arbitrary number of subject filter fields and an arbitrary number of attribute checks, in this embodiment, one set of bytes is used to store the number of subject filter fields, and another set of bytes is used to attribute. Save the number of examinations. The individual fields of the subject filter are rearranged in the order specified in the original subscription, for example, and stored in the 2-byte part of the message. The arrangement of the wild card field will be described later.

属性検査の配列においては、検査のオペランドは、通知における属性値の配置と同様、メッセージの最後に配置される。属性検査とオペランドを配置する前に、これらは、所定の属性に対する位置順の検査と、これに続く任意の属性に対する名称順の検査によって、DNFの各選言肢内で属性順にソートされる。更に、各選言肢内のスカラ的に評価された属性に対する関係検査の組は、1つの極限を有する範囲フィルタ(右又は左が開いている範囲又は等価検査)又は、2つの極限(別個の極限の間の閉じられた範囲)として、標準形に簡約される。検査に関する残りの情報は、オペランドと同じ順序で例えば、2つのバイトの対に符号化される。この2つのバイトの対のシーケンスは、メッセージ内において、サブジェクトフィルタフィールドの2バイトの符号化データのシーケンスの直後に配置される。2つのバイトの対は、属性検査のビットストリング符号化データのシーケンスの1つの形式を構成でき、これは、2つのバイトの対とは別に、他の種類の符号化データを表すためにも用いることができる。属性検査の具体例については、後述する。   In the attribute check array, the check operand is placed at the end of the message, similar to the placement of attribute values in the notification. Prior to placing attribute checks and operands, they are sorted in attribute order within each DNF choice by a positional order check for a given attribute followed by a name order check for any attribute. In addition, the set of relational checks for scalarally evaluated attributes within each choice can be a range filter with one limit (range open or right or left or equivalent test) or two limits (separate The closed range between the limits) is simplified to the standard form. The remaining information about the check is encoded in the same order as the operands, for example, into two byte pairs. This sequence of two byte pairs is placed in the message immediately after the sequence of 2-byte encoded data in the subject filter field. Two byte pairs can constitute one form of attribute check bit string encoded data sequence, which, apart from the two byte pairs, is also used to represent other types of encoded data. be able to. A specific example of attribute inspection will be described later.

表20は、属性検査の符号化のための手法を示している。表21は、2つのバイトの対による符号化を示し表22は、2つのバイトの対における演算子IDの符号化を示している。   Table 20 shows a method for encoding the attribute check. Table 21 shows the encoding by two byte pairs and Table 22 shows the encoding of the operator ID in two byte pairs.

Figure 2009163753
Figure 2009163753

Figure 2009163753
Figure 2009163753

Figure 2009163753
Figure 2009163753

検査のための2つのバイトの対が既に検査のオペランドの両方の種類を示しているので、検査が所定の属性に適用されるか任意の属性に適用されるか否かに関わらず、任意の属性又はそれらの種類に対して実行される複数の検査を個別に整理する必要はない。この手法では、通知における所定の属性の数が127個以下であると仮定している。これに代えて、この設計において、より多くのビットを用いて属性検査を符号化してもよい。   Since the two byte pairs for the test already indicate both types of operands for the test, regardless of whether the test is applied to a given attribute or to any attribute, any There is no need to organize multiple tests performed on attributes or their types individually. This method assumes that the number of predetermined attributes in the notification is 127 or less. Alternatively, the attribute check may be encoded with more bits in this design.

この配列の取り決めでは、属性フィルタのDNFに基づいて、属性検査の順序を決定し及びこれらをグループ化するが、インフラストラクチャ要素(例えば、ルータ)は、属性フィルタの包括的な評価をより効率的に行うために、検査を別の順序で(例えば、異なる検査の成功又は失敗の確率に関するローカルデータから動的に導出される順序で)選択して評価してもよい。メッセージの購読予約IDフィールドは、後続する要求において、エージェントのエッジルータへの購読予約を固有に識別し、購読予約を変更又は取り消すためにエージェントによって生成される値である。具体的には、購読予約の属性フィルタへの動的な変更は、サブジェクトが#.RESUBSCRIPTIONである点及び購読予約IDが事前に登録され、現在変更されている購読予約のIDである点を除いて、図18の実施例に示されるメッセージフォーマットを用いて伝播される。購読停止(unsubscription)は、例えば、サブジェクトを#.UNSUBSCRIPTIONとし、購読予約IDを先に登録され、購読停止処理が行われている購読予約のIDとして、購読予約IDフィールドを介して、図18に示すメッセージフォーマットを用いて伝播される。   This arrangement convention determines the order of attribute checking and groups them based on the attribute filter's DNF, but infrastructure elements (eg, routers) can make a comprehensive evaluation of attribute filters more efficient. The tests may be selected and evaluated in another order (eg, in an order dynamically derived from local data regarding the probability of success or failure of different tests). The subscription ID field of the message is a value generated by the agent to uniquely identify the subscription to the agent's edge router in subsequent requests and to change or cancel the subscription. Specifically, the dynamic change to the subscription reservation attribute filter is subject to #. The message format shown in the embodiment of FIG. 18 is propagated except that it is RESUBSCRIPTION and the subscription reservation ID is registered in advance and is the ID of the subscription reservation that is currently being changed. The unsubscription is, for example, that the subject is #. UNSUBSCRIPTION is used, and the subscription reservation ID is registered first, and the subscription reservation ID for which subscription stop processing is performed is propagated through the subscription reservation ID field using the message format shown in FIG.

以下、上述したエージェントによる変換及び符号化の具体例を説明する。まず、次のような属性フィルタ表現の具体例について考察する。すなわち、price>=10及び(symbol == "LU" 又は(volume >= 1000且つvolume <= 10000))。図19は、ステップ362において、表現を保存するためにエージェントによって用いられるオブジェクトを統一モデリング言語(UML)によって表したダイアグラム390を示している。このダイアグラム390は、変数、定数又はその両方を含むことができる購読予約を特定するための階層関係を示している。ダイアグラム390内のオブジェクトは、個々の実施例に応じて、フィルタクラスのインスタンスであってもよい。各SimpleFilterオブジェクトは、フィルタ表現の対応する属性検査に関する情報を保存するために用いられる属性の値を表している。図19に示す表現では、ORフィルタ396は、2つのANDフィルタ392、400を結合している。ANDフィルタ392は、購読予約のための属性を有するシンプルフィルタ(simple filter)394を含んでいる。同様に、ORフィルタ396は、シンプルフィルタ398を含み、ANDフィルタ400は、シンプルフィルタ402と404を含んでいる。   Hereinafter, a specific example of the conversion and encoding by the agent described above will be described. First, a specific example of the following attribute filter expression will be considered. That is, price> = 10 and (symbol == “LU” or (volume> = 1000 and volume <= 10000)). FIG. 19 shows a diagram 390 representing, in step 362, the object used by the agent to store the representation in unified modeling language (UML). The diagram 390 illustrates a hierarchical relationship for identifying subscriptions that can include variables, constants, or both. Objects in diagram 390 may be instances of filter classes, depending on the particular implementation. Each SimpleFilter object represents an attribute value used to store information about the corresponding attribute check of the filter expression. In the expression shown in FIG. 19, the OR filter 396 combines two AND filters 392 and 400. The AND filter 392 includes a simple filter 394 having an attribute for subscription reservation. Similarly, the OR filter 396 includes a simple filter 398, and the AND filter 400 includes simple filters 402 and 404.

この実施例においては、関連するチャンネルの属性として、属性価格(price)、シンボル(symbol)及びボリューム(volume)が予め定義されているとし、これらの属性について、それぞれ位置0、1、2が定義されているものとする。更に、各属性の種類をそれぞれ、符号なし整数(タイプコード6)、文字アレー(タイプコード12)、符号なし整数(タイプコード6)とする。   In this embodiment, attribute price (price), symbol (symbol), and volume (volume) are defined in advance as attributes of related channels, and positions 0, 1, and 2 are defined for these attributes, respectively. It is assumed that Furthermore, the type of each attribute is an unsigned integer (type code 6), a character array (type code 12), and an unsigned integer (type code 6).

次に、属性フィルタとして上述した属性フィルタ表現を含む購読予約について考察する。図18は、購読予約をメッセージに配列した具体例を示している。図18の左側のデータ構造386は、実際のメッセージのコンテンツを示しており、図18の右側のデータ構造388は、メッセージの各部分の説明を示している。この図面における各データ構造の幅は、4バイトに対応している。配列を行う前に、フィルタは、(price >= 10 and symbol == "LU")又は、(price >= 10 and volume >= 1000 and volume <= 10000)のような同等なDNFに変換される。   Next, a subscription reservation including the attribute filter expression described above as an attribute filter will be considered. FIG. 18 shows a specific example in which subscription reservations are arranged in a message. The data structure 386 on the left side of FIG. 18 shows the actual message content, and the data structure 388 on the right side of FIG. 18 shows a description of each part of the message. The width of each data structure in this drawing corresponds to 4 bytes. Before doing the array, the filter is converted to an equivalent DNF like (price> = 10 and symbol == "LU") or (price> = 10 and volume> = 1000 and volume <= 10000) .

16ビットの属性検査符号化データは、異なる部分を分離するギャップを有するビットシーケンスとして示される。なお、この実施例においては、価格に対する2つの検査は、それぞれ別々の選言肢内に存在するので、結合することができず、したがって、これらは、右側の境界を有さない範囲(右側が開いた範囲)として個別に配列される。一方、ボリュームに対する2つの検査は、同じ選言肢内に存在するので、結合することができ、したがって、これらは、単一の「閉じた範囲」の検査として整理される。   The 16-bit attribute check encoded data is shown as a bit sequence having a gap separating different parts. Note that in this example, the two tests for the price are in separate discourses and cannot be combined, so they are in a range that does not have a right boundary (the right side is As an open range). On the other hand, the two exams for the volume can be combined because they are in the same discourse, so they are organized as a single “closed range” exam.

また、あるフィールドは「仮定(assumed)」として特徴付けられ、これは、この具体例においては、これらのフィールドの値が、任意に選択され、通常、配列された購読予約から独立していることを意味する。更に、購読予約のためのサブジェクトフィルタは、「>」として任意に選択され、これは、関連するチャンネルによって定義された如何なるサブジェクトにも一致する。上述し、図18及び図19に示した具体例は例示的なものであり、この整理は、他の如何なる種類の購読予約とともに用いてもよい。また、処理350は、購読予約の整理の一例に過ぎず、購読予約は、他の如何なる方法によって整理してもよい。   Also, certain fields are characterized as “assumed”, which means that in this example, the values of these fields are arbitrarily chosen and are usually independent of the arranged subscriptions. Means. In addition, the subject filter for the subscription is arbitrarily selected as “>”, which matches any subject defined by the associated channel. The specific examples described above and shown in FIGS. 18 and 19 are exemplary, and this arrangement may be used with any other type of subscription. Further, the process 350 is merely an example of the arrangement of subscription reservations, and the subscription reservations may be arranged by any other method.

図17は、送信されてきたメッセージのためのエージェント処理376のフローチャートである。処理376は、例えばユーザ装置122内のエージェント128及びアプリケーション126によって実現することができる。処理376において、エージェント128は、インテリジェントルータから購読予約に対応するメッセージを受け取る(ステップ378)。128エージェントは、例えば、メッセージのチャンネルIDによって購読予約に対応するチャンネルを判定し(ステップ380)、チャンネルのAPIを呼び出す(ステップ382)。APIは、ユーザ装置において、購読予約のためのデータをGUI又は他のフォーマットで表示する(ステップ384)。入力メッセージに対する処理としては、上述 した符号化処理の逆のデータ復号処理を用いることができ、この復号(逆符号化)は、ルータ又は他のネットワークエンティティにおいて実行することができる。   FIG. 17 is a flowchart of an agent process 376 for a transmitted message. The process 376 can be realized by the agent 128 and the application 126 in the user device 122, for example. In process 376, agent 128 receives a message corresponding to the subscription from the intelligent router (step 378). For example, the 128 agent determines the channel corresponding to the subscription reservation by the channel ID of the message (step 380), and calls the API of the channel (step 382). The API displays the data for subscription reservation in the GUI or other format at the user device (step 384). As processing for the input message, data decoding processing that is the reverse of the encoding processing described above can be used, and this decoding (decoding) can be performed in the router or other network entity.

ワイルドカード処理
図20は、ワイルドカード処理410のフローチャートである。処理410は、フィルタのルーティング規則の組を用いて、ワイルドカードを購読予約のための表現に変換する処理の一例である。処理410は、例えば、ユーザ装置122内のプロセッサ134によって実行されるエージェント128によって表されるソフトウェアモジュールとして実現してもよい。これに代えて、ネットワークにおいて、ソフトウェア制御の下で、インテリジェントルータ92又は対応する機能を有するASIC91内のプロセッサ93によりワイルドカードを処理してもよい。ワイルドカードは、開かれたフィールド又は可変長フィールドを含んでおり、表21はこのようなフィールドの具体例を示している。
Wildcard Processing FIG. 20 is a flowchart of wildcard processing 410. The process 410 is an example of a process for converting a wild card into an expression for subscription reservation using a set of routing rules of the filter. Process 410 may be implemented, for example, as a software module represented by agent 128 executed by processor 134 in user device 122. Alternatively, the wild card may be processed by the intelligent router 92 or the processor 93 in the ASIC 91 having a corresponding function under software control in the network. Wildcards contain open fields or variable length fields, and Table 21 shows examples of such fields.

処理410において、エージェント128又は他のエンティティは、ワイルドカードを含む購読予約を受け取る(ステップ412)。購読予約のサブジェクト長は、発行者がコンテンツを発行する際に指定でき、サブジェクトは、発行者装置において前処理してもよく、例えばサブジェクトのフィールドを数え、これによりフィールドカウント(長さ)を算出してもよい。128エージェントは、フィルタオペランド内のフィールドの数を数える(ステップ414)新たな規則(フィルタ)をフィールド長=Nとして初期化する(ステップ416)。エージェント128は、購読予約のサブフィールドを読み出し(ステップ418)、フィルタオペランドサブフィールド0[i]がワイルドカードであるか否かを判定する(ステップ420)。フィルタオペランドサブフィールドがワイルドカードでない場合、エージェント128は、連言項(conjunctive clause)を規則に追加し、フィールド[i]=0[i]とする(ステップ422)。フィルタオペランドが更なるサブフィールドを有している場合(ステップ424)、エージェント128は、ステップ418に戻り、この更なるサブフィールドを処理する。パラメータ「i」は、フィールドを表し、iは、この実施例においては、フィールド番号を表す整数である。   In process 410, agent 128 or other entity receives a subscription that includes a wildcard (step 412). The subject length of the subscription can be specified when the issuer publishes the content, and the subject may be pre-processed in the issuer device. For example, the subject field is counted to calculate the field count (length). May be. The 128 agent counts the number of fields in the filter operand (step 414) and initializes a new rule (filter) with field length = N (step 416). The agent 128 reads the subscription reservation subfield (step 418) and determines whether the filter operand subfield 0 [i] is a wildcard (step 420). If the filter operand subfield is not a wildcard, the agent 128 adds a conjunctive clause to the rule, setting field [i] = 0 [i] (step 422). If the filter operand has additional subfields (step 424), agent 128 returns to step 418 to process this additional subfield. The parameter “i” represents a field, and i is an integer representing a field number in this embodiment.

サブフィールドを処理した後にエージェント128は、最後のフィルタオペランドサブフィールドが「>」であるか否かを判定し(ステップ426)、最後のフィルタオペランドサブフィールドが「>」である場合、長さの制約条件をフィールド長>N−1に変更する(ステップ428)。ワイルドカード処理は、如何なる種類のシンボルを用いてもよく「>」は、その一例に過ぎない。この具体例においては、「a.>」により、a.b、a.c、a.d等及び全てのレベルにおけるこれらの全てのサブサブジェクト(例えば、a.b.x、a.c.x、a.b.x.y等)を表すことができる。また、他のシンボルをワイルドカードとして用いてもよい。   After processing the subfield, agent 128 determines whether the last filter operand subfield is ">" (step 426) and if the last filter operand subfield is ">", the length of The constraint condition is changed to field length> N−1 (step 428). Wildcard processing may use any kind of symbol, and “>” is just one example. In this specific example, “a.>” Causes a. b, a. c, a. d, etc. and all these sub-subjects at all levels (eg abx, acx, abxy, etc.) can be represented. Other symbols may be used as wild cards.

必要であれば、エージェント128は、変形した規則をインテリジェントルータ又はネットワークにおける他のエンティティに伝播する(ステップ430)。処理は、全てのサブフィールドについて繰り返され、これにより、ワイルドカードが非ワイルドカード規則に変換される。非ワイルドカード規則とは、ワイルドカードを含まない規則を意味する。ワイルドカードの変換は、ネットワーク内のどこで行ってもよく、例えば、購読者装置又はインテリジェントルータにおいて行ってもよい。したがって、この変換は、変形規則によって1つのエンティティで行い、他のエンティティに伝播させてもよく、又はこの変換を動的に行ってもよい。   If necessary, agent 128 propagates the modified rule to the intelligent router or other entity in the network (step 430). The process is repeated for all subfields, which converts wildcards into non-wildcard rules. Non-wildcard rules mean rules that do not contain wildcards. Wildcard conversion may occur anywhere in the network, for example, at a subscriber device or an intelligent router. Thus, this transformation may be performed on one entity by a transformation rule and propagated to other entities, or this transformation may be performed dynamically.

表23は、ワイルドカードの処理のためのこれらの例示的なルーティング規則の概要をその具体例とともに示している。これらのルーティング規則は、例えば、インテリジェントルータで生成してもよく、又は他のネットワークエンティティで生成し、インテリジェントルータに伝播させてもよい。更に、表23のルーティング規則は、説明のために例示的に示しているに過ぎず、他のルーティング規則を用いてワイルドカードを変換してもよい。   Table 23 provides an overview of these exemplary routing rules for wildcard processing, along with specific examples. These routing rules may be generated by an intelligent router, for example, or may be generated by other network entities and propagated to the intelligent router. Furthermore, the routing rules in Table 23 are shown for illustrative purposes only, and wildcards may be converted using other routing rules.

Figure 2009163753
Figure 2009163753

信頼性の低いネットワークにおける信頼性が高い発行−購読システム
ここに説明する発行−購読ネットワーク(例えば、図1〜図3に示す。)等の発行−購読ネットワークの主な目的は、購読者に対し効率的且つタイムリーに、購読予約に一致する通知を配信することである。発行−購読ネットワークを実現するためには、ネットワークパケットの形式で発行者から購読者に通知を伝送する必要がある。信頼性の低いネットワークとは、例えば、これらの幾つかのネットワークパケットが伝送中に失われる可能性があるネットワークを含んでいる。この実施例において克服すべき主要な技術的課題は、通知(すなわち,ネットワークパケット)が伝送エラーのために失われたのか、アップストリームのルータにおけるフィルタリングメカニズムによって除外されたのかを判定することである。
Reliable publishing-subscription system in unreliable networks The main purpose of the publishing-subscription network, such as the publishing-subscription network described herein (e.g., shown in FIGS. 1-3), is for subscribers Deliver notifications that match subscriptions efficiently and in a timely manner. In order to implement an issue-subscribe network, it is necessary to transmit a notification from the issuer to the subscriber in the form of a network packet. Unreliable networks include, for example, networks in which some of these network packets can be lost during transmission. The main technical challenge to be overcome in this embodiment is to determine if the notification (ie network packet) was lost due to a transmission error or was excluded by the filtering mechanism in the upstream router. .

図21は、発行−購読ネットワークの信頼性を高める処理520のフローチャートである。この処理520では、信頼性が高い伝送プロトコルを使用している。具体的には、信頼性は、隣接する一対のルータ間で(又はルータとユーザ装置の間で)信頼できる伝達メカニズム(信頼できるトンネル)を用いることによって実現される。ルータが、送信されてきた通知を隣接するルータに転送する必要があると判断した場合、このルータは、信頼できる伝送プロトコル、望ましくはTCPを用いてメッセージを転送する。各ルータは、ダウンストリーム側に隣接するエンティティ(ホップ距離=1)への通知の配信のみを行う。したがって、発行者から購読者までの信頼できる通知の送達は、ホップバイホップ式に行われる。処理520は、ソフトウェア制御の下で、インテリジェントルータ92又は対応する機能を有するASIC91内のプロセッサ93により実行される。また、処理520は、例えば、ユーザ装置100のプロセッサ114によって実行されるエージェント105によって表されるようなソフトウェアモジュールにより実現してもよい。
TCPを用いることにより、ここに説明する発行−購読システムのコンテンツベースのルーティングに信頼できる伝送プロトコルを組み込むことができ、好ましいことが見出された。発行−購読システムにおいて用いることができる他の技術として、前方誤り訂正がある。前方誤り訂正では、複数の通知パケットを受信機に送信し、このうちの1つが良好に受信されることを期待する。これにより、使用される帯域幅を犠牲にして、パケットが受信される確率が高くなるが、配信が確実に保証されるわけではない。第3の技術として、高信頼性マルチキャストがあり、ここでは、一組のマルチキャスト受信機がマルチキャスト送信側から「同じ」パケットの組を受け取ることが約束される。この手法は、異なる受信機が、異なる購読予約に基づいて、異なる通知を受け取る必要があるCBR発行−購読システムでは用いることができない。
FIG. 21 is a flowchart of a process 520 for increasing the reliability of the issue-subscribe network. In this process 520, a highly reliable transmission protocol is used. Specifically, reliability is achieved by using a reliable transmission mechanism (reliable tunnel) between a pair of adjacent routers (or between a router and user equipment). If the router determines that the sent notification needs to be forwarded to an adjacent router, it forwards the message using a reliable transmission protocol, preferably TCP. Each router only distributes notifications to entities (hop distance = 1) adjacent to the downstream side. Thus, reliable delivery of notifications from issuers to subscribers takes place hop-by-hop. The process 520 is executed by the intelligent router 92 or the processor 93 in the ASIC 91 having a corresponding function under software control. Further, the process 520 may be realized by a software module represented by the agent 105 executed by the processor 114 of the user device 100, for example.
It has been found that using TCP allows a reliable transmission protocol to be incorporated into the content-based routing of the publish-subscribe system described herein. Another technique that can be used in a publish-subscribe system is forward error correction. In forward error correction, a plurality of notification packets are transmitted to the receiver, and one of them is expected to be received well. This increases the probability that a packet will be received at the expense of the bandwidth used, but does not guarantee delivery. A third technique is reliable multicast, where a set of multicast receivers is promised to receive the “same” set of packets from the multicast sender. This approach cannot be used in CBR issue-subscribe systems where different receivers need to receive different notifications based on different subscription reservations.

発行−購読ネットワークにおけるノードは、ネットワークを介して、コンテンツの購読予約を受け取る(ステップ522)。発行者から受け取られたコンテンツは、ネットワーク内のノードにおいて、コンテンツに関する通知を受け取ることによって、購読予約に基づくCBRを用いて、ネットワークを介して発行され(ステップ524)、この通知を隣接するノードに送信するべきか否かが判定され(ステップ526)、この判定に基づいて、信頼できる伝送プロトコルを用いて、この通知が隣接するノードに選択的に転送される(ステップ528)。これらのステップは、好ましくは、上述したCBR処理のいずれかに従って実行される。   A node in the publish-subscribe network receives a subscription for content over the network (step 522). The content received from the issuer is published over the network using a CBR based on subscription by receiving a notification about the content at a node in the network (step 524), and the notification is sent to the adjacent node. It is determined whether to send (step 526), and based on this determination, the notification is selectively forwarded to neighboring nodes using a reliable transmission protocol (step 528). These steps are preferably performed according to any of the CBR processes described above.

ステップ528において用いられる信頼できる伝送プロトコルは、好ましくは、TCPである。TCPは、OSIモデルのトランスポート層の通信規約である。TCPは、送られたバイトの総量がもう一方の端末において正しく受け取られることを約束する転送機能を提供する。したがって、転送ステップ528は、単一のノードから単一のノードに対して実行され、伝送エラーが生じた場合、転送ステップ528は、通知の伝送における失敗を示す指示情報を受け取る処理(ステップ5281)及びこの指示情報に応じて通知を再送する処理(ステップ5282)を含む。このような伝送の失敗を示す情報の要求は、好ましくは、通知のパケット内にカプセル化される。   The reliable transmission protocol used in step 528 is preferably TCP. TCP is a communication protocol for the transport layer of the OSI model. TCP provides a transfer function that promises that the total amount of bytes sent is received correctly at the other terminal. Accordingly, the transfer step 528 is executed from a single node to a single node, and when a transmission error occurs, the transfer step 528 receives the instruction information indicating the failure in transmission of the notification (step 5281). And processing for retransmitting the notification in accordance with the instruction information (step 5282). The request for information indicating such a transmission failure is preferably encapsulated in a notification packet.

通知パケットは、再送する必要が生じた場合に備えて、好ましくは、バッファ内にバッファリングされる。特定の隣接するノードのためのバッファが一杯になった場合、そのノードへのデータの供給を停止してもよく、先入れ先出し式にパケットを削除してもよく、又は、補助記憶装置にパケットを保存してもよい。これに代えて、所定の発行者又は購読者に対してあるサービス品質(QoS)が保証されている場合、QoSに基づいて、バッファからパケットを選択的に削除してもよい(例えば、QoSによる制約に関係しないパケットから先に削除する)。   The notification packet is preferably buffered in a buffer in case it becomes necessary to retransmit. When the buffer for a particular adjacent node is full, the supply of data to that node may be stopped, the packet may be deleted on a first-in first-out basis, or the packet is stored in auxiliary storage May be. Alternatively, if a certain quality of service (QoS) is guaranteed for a given issuer or subscriber, packets may be selectively deleted from the buffer based on QoS (eg, by QoS Delete packets that are not related to constraints first).

図21に示すように、隣接しているノードに対して更なるルーティングが必要である場合、隣接しているノードのための処理が繰り返される(ステップ530)。このように、処理520により、発行者から購読者にホップバイホップ方式で信頼できる通知の送達を実現できる。   As shown in FIG. 21, if further routing is required for an adjacent node, the process for the adjacent node is repeated (step 530). In this manner, the process 520 can realize delivery of reliable notification from the issuer to the subscriber in a hop-by-hop manner.

フィルタ伝播
コンテンツベースのルーティング(Content-based routing:CBR)は、制約に基づくルーティング(constraint-driven routing)の一種である。上述した発行−購読ネットワーク等CBRの機能によって性能が向上された発行−購読ネットワーク(例えば、図1〜図3参)では、望ましくは、特定のコンテンツ(すなわち、購読予約)の発行における購読者の興味は、フィルタと呼ばれるエンティティ内にカプセル化される。ネットワークにおけるルータは、好ましくは、フィルタを用いて、経路決定を行う。エッジ又はユーザ端末においてのみ実行できる従来のフィルタリング法とは異なり、ネットワークコアで動作できるこのCBR法は、これらのフィルタの伝播を伴う。購読者が受け取るパケットのコンテンツに関して制約条件を課す能力を購読者に与える場合、及びこれらのコンテンツ制約条件がパケットをルーティングするためにネットワークのコアで用いられる場合、効率とネットワークの機能性の両方がCBRの恩恵を受ける。
Filter propagation Content-based routing (CBR) is a type of constraint-driven routing. In the publish-subscribe network (for example, see FIGS. 1 to 3) whose performance has been improved by the function of the CBR such as the publish-subscribe network described above, it is desirable that the subscribers in the issuance of specific contents (ie, subscription reservation) are desirable. Interest is encapsulated in an entity called a filter. Routers in the network preferably use a filter to determine the path. Unlike conventional filtering methods that can only be performed at the edge or user terminal, this CBR method that can operate at the network core involves the propagation of these filters. If the subscriber is given the ability to impose constraints on the content of the packet received by the subscriber, and if these content constraints are used at the core of the network to route the packet, both efficiency and network functionality are Benefit from CBR.

この実施例では、スケーラビリティが高い幾つかのフィルタ伝播法を提供し、これにより、(1)発行者と購読者の間のデータパスに沿って、コアルータに、コアルータから及び/又はコアルータ間でフィルタを伝播でき、及び(2)必要であれば、ネットワークのエッジだけではなく、ネットワークコア内で、CBRをアップストリーム側に対して実行することができる。CBRを(例えば、ネットワークコア内、又は発行者装置までを含む)アップストリーム側に行うことにより、ダウンストリーム側に頻繁にルーティングする必要があるデータパケットの数を大幅に削減することができる。この結果、ネットワークのトラヒック負荷が削減される。   This embodiment provides several highly scalable filter propagation methods that allow (1) filtering along the data path between the issuer and subscriber to the core router, from the core router, and / or between core routers. And (2) if necessary, CBR can be performed on the upstream side within the network core, not just at the edge of the network. By performing CBR on the upstream side (eg, within the network core or up to the issuer device), the number of data packets that need to be frequently routed to the downstream side can be significantly reduced. As a result, the traffic load on the network is reduced.

ここに説明するフィルタ伝搬処理は、如何なる名称及び如何なる形式コンテンツフィルタをネットワークのコアに、コアから及びコア間で伝播する側面も含む。フィルタの伝播は、多くの側面を有し、多くの問題を含んでいる。ここに説明するフィルタ伝播法によって解決すべき重要な課題は、フィルタが伝播ストリームの「上流(up)」、すなわち、膨大な数のフィルタソースから(例えば、購読者)少数のフィルタデスティネーション(例えばコアルータ、エッジルータ又は発行者)に移行する際、多数のフィルタが構築されることを回避することである。この問題は、「累算(accumulation)」問題とも呼ばれ、例えば、ツリー型のトポロジに縦列に接続されたノードから構成されるネットワークに発生する問題である。   The filter propagation process described herein includes aspects of propagating any name and any form content filter to, and from, the core of the network. Filter propagation has many aspects and involves many problems. An important issue to be solved by the filter propagation method described here is that the filter is “up” the propagation stream, ie, from a large number of filter sources (eg, subscribers) to a small number of filter destinations (eg, When migrating to a core router, edge router or issuer, it is to avoid building a large number of filters. This problem is also referred to as an “accumulation” problem, and occurs, for example, in a network composed of nodes connected in a tree topology.

この問題及び他の問題を解決するために設計されたソリューションは、規則、手続き、ポリシ、処理、メカニズム、プロトコル、メッセージフォーマット、データ構造及び/又はアルゴリズムのうちの1つ以上からなる組を含む。これらのソリューションにより、速やかで(例えば、簡素化、併合処理、効率的な整理等による。)、スケーラブルで(例えば、併合処理、概算処理等による。)、動的で(例えば、新規購読予約、購読停止、修復等による。)、安全で(例えば、認証による。)、個人的で(例えば、暗号化による。)、信頼性が高く(例えば、TCP接続、信頼できるトンネル、符号化、回復プロトコル等による)、柔軟で(例えば、消極的伝播(後述する)、様々なマルチキャストトポロジ又はプロトコルによる。)、ユーザの要求に適合した(例えば、購読者/発行者振る舞い符号化による。)フィルタ伝播を実現できる。ここに説明する伝播処理は、これらのソリューションを利用して、これらの及びこれらの利点を実現する。   Solutions designed to solve this and other problems include a set of one or more of rules, procedures, policies, processes, mechanisms, protocols, message formats, data structures and / or algorithms. These solutions allow for quick (eg, simplification, merging, efficient organization, etc.), scalable (eg, merging, estimation, etc.), dynamic (eg, new subscriptions, Unsubscribing, remediation, etc.), secure (eg, by authentication), personal (eg, by encryption), and reliable (eg, TCP connection, reliable tunnel, encoding, recovery protocol) Etc.), flexible (eg, passive propagation (discussed below), various multicast topologies or protocols), and adapted to user requirements (eg, by subscriber / issuer behavior encoding). realizable. The propagation process described herein utilizes these solutions to achieve these and these benefits.

A.ネットワークトポロジフィルタ伝播ストラテジ
発行−購読システムは、マルチキャスト、同報通信又はモバイル発行−購読ストラテジによって実現することができる。フィルタ伝播は、ネットワークトポロジに埋め込んでもよく、又は発行者及び購読者をリンクするために選択されているストラテジによって強制されるネットワークトポロジの「上位に」又はネットワークトポロジに加えて実行してもよい。また、これに代えて、フィルタ伝播ストラテジは、フィルタが埋め込まれた購読予約を広告のデスティネーションに直接配信できる発行の広告を含む発行−購読スキーム等の発行者と購読者とをリンクするためのストラテジそのものであってもよい。
A. Network Topology Filter Propagation Strategy The publish-subscribe system can be implemented by multicast, broadcast or mobile publish-subscribe strategies. Filter propagation may be embedded in the network topology or may be performed “above” or in addition to the network topology that is enforced by the strategy selected to link the publisher and subscriber. Alternatively, the filter propagation strategy can be used to link publishers and subscribers, such as publish-subscribe schemes, that include published advertisements that can deliver subscription subscriptions with embedded filters directly to the advertising destination. It may be a strategy itself.

マルチキャストのカテゴリにおいて、フィルタ伝播は、マルチキャストに用いられるプロトコルに一致するプロトコル(例えば、プロトコル独立マルチキャスト−スパースモード(protocol independent multicast-sparse mode:PIMSM)、プロトコル独立マルチキャスト−デンスモード(protocol independent multicast-dense mode:PIMDM)、コアベースのツリー(Core-Based Tree:CBT)、距離ベクトルマルチキャスト経路選定プロトコル(distance vector multicast routing protocol:DVMRP)、マルチキャストオープン最短経路ファースト(multicast open shortest path first:MOSPF)等)を用いることができる。用いられるプロトコルに応じて、フィルタ伝播は、双方向であっても又は単方向であってもよく、多くのフィルタ伝播ストラテジが可能である。ストラテジとしては、1)フィルタが受け取られると、全てのフィルタが全ての可能なアップストリームのリンクに伝播される(積極的伝播スキーム)ストラテジ、2)受け取られた発行者のパケットに応じてフィルタ伝播を開始する(消極的伝播スキーム)ストラテジ、3)発行者による同報通信広告に応じて伝播を行うストラテジ、4)ネットワークトポロジ(例えば、MOSPF)の算出の後に伝播を行うストラテジ、5)周期的にフィルタ伝播を行う(例えば、フィルタタイムアウトをサポートするシステムにおけるリフレッシュ要求を満たす)ストラテジ、6)ネットワークにおける障害の修復の間にフィルタ再伝播を要求するストラテジ、7)ネットワークの再構築の間にフィルタ再伝播を要求するストラテジ、及び/又は8)これらの組合せがある。ストラテジは、好ましくは、ここに説明するフィルタ伝播法及び規則に従う。   In the multicast category, filter propagation is a protocol that matches the protocol used for multicast (eg, protocol independent multicast-sparse mode (PIMSM), protocol independent multicast-dense mode). mode: PIMDM), core-based tree (CBT), distance vector multicast routing protocol (DVMRP), multicast open shortest path first (MOSPF), etc.) Can be used. Depending on the protocol used, the filter propagation may be bidirectional or unidirectional, and many filter propagation strategies are possible. The strategies are: 1) When a filter is received, all filters are propagated to all possible upstream links (aggressive propagation scheme), 2) Filter propagation depending on the received issuer packet (Passive propagation scheme) strategy, 3) strategy to propagate according to the broadcast advertisement by the publisher, 4) strategy to propagate after calculation of network topology (eg MOSPF), 5) periodic Strategy to filter propagation (e.g., satisfying a refresh request in a system that supports filter timeout), 6) Strategy requiring filter re-propagation during fault repair in the network, 7) Filter during network restructuring Strategies that require repropagation and / or 8) There are these combinations. The strategy preferably follows the filter propagation methods and rules described herein.

B.フィルタ伝播のためのリンク−レベル接続メカニズム
フィルタ伝播処理にかかわるソースとデスティネーションを接続する手法としては様々な手法がある。例えば、フィルタ伝播処理に関わるソースとデスティネーションは、1)ホップバイホップ方式で(例えば、ルータからルータへ)、2)エンドツーエンド方式で(例えば、オフラインデータ検索においてユーザ装置からキャッシュへ)、3)トンネルを用いて、4)伝送制御プロトコル(TCP)を用いて、5)ユーザデータグラムプロトコル(UDP)(例えば、信頼できるデータ回復メカニズムに代わる)を用いて、6)セキュリティプロトコルを用いて、7)他のプロトコルを用いて、8)ルータ及び/又はユーザ装置のカーネル内のみにおいて、9)ルータ及び/又はユーザ装置において、ユーザレベルの処理だけに関して、10)ルータ及び/又はユーザ装置においてカーネルとユーザレベル処理の両方の全ての可能な組合せに関して(例えば、カーネルからアプリケーションへ、アプリケーションからカーネルを経てアプリケーションへ、等)、及び/又は11)上述の任意の組合せによって接続することができる。
C.フィルタ伝播のデスティネーション
以下に示すように、フィルタは、発行−購読ネットワーク内のどこに挿入してもよく、1)発行者と購読者の間でエンドツーエンド接続を形成する全てのルータとユーザ装置、2)エッジルータを含むネットワークにおけるあらゆるルータ、3)コアルータのみ、4)エッジルータのみ、5)購読者装置、6)発行者装置、7)管理者装置、キャッシュ、9)バックアップルータ、10)パケットを取り扱う任意のルータ、11)ネットワーク修復又は障害回復に関わる新しいルータ、及び/又は12)これらの如何なる組合せのうちのいずれに挿入してもよい。フィルタは、好ましくは、概算、併合処理及び他の処理で変更される。上述したデスティネーションの各カテゴリについて、伝播されるフィルタの形式を異ならせてもよい。
D.フィルタ伝播のソース
フィルタ伝播のソースは、発行−購読ネットワーク内のどの部分であってもよい。
フィルタソースの具体例としては、セクションCに列挙した部分がある。同様に、フィルタは、好ましくは、伝播の間に、概算、併合処理及び他の処理で変更され、したがって、異なるソースからのフィルタは異なる形式を有していることが多い。
B. Link-level connection mechanism for filter propagation There are various methods for connecting a source and a destination related to filter propagation processing. For example, the sources and destinations involved in filter propagation processing are 1) hop-by-hop (eg, from router to router), 2) end-to-end (eg, from user device to cache for offline data retrieval), 3) using a tunnel, 4) using a transmission control protocol (TCP), 5) using a user datagram protocol (UDP) (eg, instead of a reliable data recovery mechanism), 6) using a security protocol 7) using other protocols, 8) only in the kernel of the router and / or user equipment, 9) at the router and / or user equipment, only for user level processing, 10) at the router and / or user equipment For all possible combinations of both kernel and user level processing To (e.g., to the application from the kernel, the application to through kernel application, etc.), and / or 11) can be connected by any combination of the above.
C. Filter Propagation Destination As shown below, filters may be inserted anywhere in the publish-subscribe network: 1) All routers and user equipment that form an end-to-end connection between the issuer and the subscriber 2) Any router in the network including the edge router, 3) Core router only, 4) Edge router only, 5) Subscriber device, 6) Issuer device, 7) Administrator device, cache, 9) Backup router, 10) It may be inserted into any router that handles packets, 11) new routers involved in network repair or disaster recovery, and / or 12) any combination thereof. The filter is preferably changed in the approximation, merging process and other processes. The form of the propagated filter may be different for each category of the destination described above.
D. Source of filter propagation The source of filter propagation can be any part in the publish-subscribe network.
Specific examples of filter sources include the parts listed in Section C. Similarly, filters are preferably modified during propagation with approximations, merging and other processes, and therefore filters from different sources often have different forms.

E.潜在的フィルタ受信者の振る舞いの規則
また、フィルタ伝播は、潜在的受信者の振る舞いとニーズによっても異なるものとすることができる。例えば、1)永久的又は半永久的な位置に位置する発行者は、その位置にフィルタが伝播されることを望み、2)移動する発行者は、現在の位置からすぐに離れてしまうので、その位置にフィルタが伝播されることを望まず、3)ログオフする前に僅かなコンテンツのみ発行する予定の小規模な発行者は、フィルタを必要とせず、4)大規模の発行者は、ネットワーク帯域幅を節約するために最初のコンテンツの組を発行する前にフィルタが伝播されることを望む場合があり、5)アクセス許可を制限している発行者は、そのアプリケーションにおいて購読者のプライバシと機密性を保護するために、フィルタの伝播を拒否することがあり、6)フィルタタイムアウトストラテジを実装するコアルータは、ダウンストリームのルータから周期的更新を必要とし、及び/又は7)購読者装置に常時接続されないエッジルータは、購読予約又は興味のフィルタが定期的に更新されることを望む場合がある。これらの全ての振る舞いの性質と他の性質は、例えば、発行者広告を用いること、第1の発行における発行者の振る舞いを符号化すること、フィルタ更新を周期的に送信すること、及びフィルタ受信者のニーズを伝える他の技術によって弁別することができる。
E. Rules for Potential Filter Recipient Behavior Also, filter propagation can vary depending on potential recipient behavior and needs. For example, 1) an issuer located in a permanent or semi-permanent location wants the filter to be propagated to that location, and 2) a moving issuer will immediately leave the current location, so that Do not want the filter to be propagated to the location, 3) small publishers that will only publish a small amount of content before logging off, do not need filters, and 4) large publishers are You may want the filter to be propagated before publishing the first set of content to save breadth 5) Publishers that restrict access permissions will have subscriber privacy and confidentiality in their applications 6) The core router that implements the filter time-out strategy may start from the downstream router periodically. Require updating, and / or 7) edge router which is not always connected to the subscriber device may subscribe or interested filters desires to be updated regularly. All these behavioral properties and other properties include, for example, using issuer advertisements, encoding issuer behavior in the first issue, sending filter updates periodically, and receiving filters. Can be discriminated by other techniques that convey the needs of the elderly.

F.フィルタ送信者の振る舞いの規則
また、同様に、フィルタ伝播は、例えば以下のように、フィルタ送信者の振る舞いとニーズによって異なるものとすることもできる。1)購読者は、発行されたコンテンツのサンプリングを希望する場合、(システムにより定義された、又はユーザにより定義された)制限時間を有する一時的なフィルタのみを使用することを望む場合がある。2)購読者が移動可能であり、購読者が移動した後にフィルタを期限切れにする。3)エッジルータに常時接続されていない購読者は、CBRシステムにおいて、自動フィルタタイムアウトをサポートする定期的なフィルタ更新の送信を望む場合がある。4)幾つかのポリシでは、購読者は、フィルタを伝播する前に認証されることが必要であると定めることができる。5)自動フィルタタイムアウトをサポートするCBRシステムのルータは、定期的にフィルタ更新を送信する必要がある。6)所定の組のデータのみのための特定のクエリは、フィルタを含み又はフィルタによって実現することができる(例えば、クエリ又は購読予約に応答してキャッシュから読み出されたデータ、持続的なバックアップデータ、障害回復時に復元されたデータ等)。7)伝播のためにフィルタを変更したルータは、送信者のニーズに基づき、伝播されたフィルタがどう変更されているかをアップストリームのルータに示すことができる。これらの全ての振る舞いの性質及び他の性質は、例えば、フィルタ伝播メッセージの振る舞いを符号化することによって又は特別なプロトコル(例えば、認証のためのプロトコル)を用いることによってサポートすることができる。
F. Rules for Filter Sender Behavior Similarly, filter propagation can also vary depending on filter sender behavior and needs, for example, as follows. 1) If a subscriber wishes to sample published content, he may want to use only temporary filters with a time limit (defined by the system or defined by the user). 2) Subscriber can move and expire filter after subscriber moves. 3) Subscribers who are not always connected to the edge router may wish to send periodic filter updates that support automatic filter timeout in the CBR system. 4) In some policies, a subscriber can be defined as needing to be authenticated before propagating the filter. 5) CBR system routers that support automatic filter timeout need to send filter updates periodically. 6) A specific query for only a predetermined set of data can include or be implemented by a filter (eg, data read from a cache in response to a query or subscription, persistent backups) Data, data restored during disaster recovery, etc.). 7) A router that has changed the filter for propagation can indicate to the upstream router how the propagated filter has been changed based on the needs of the sender. All these behavioral properties and other properties can be supported, for example, by encoding the behavior of the filter propagation message or by using a special protocol (eg, a protocol for authentication).

G.伝播されるフィルタの処理
フィルタの処理は、フィルタのコンテンツ又は表現及び/又は単にフィルタを組織化する管理機能を変更する変換処理を含んでいてもよい。購読予約における元のフィルタ表現は、データ配信通路の異なる部分における、異なる処理手順の組を引き継ぐことができ、受けることができ、これらには、次のような経路セクションが含まれる。1)購読者装置からエッジルータまで。2)エッジルータからコアルータまで。3)2つのコアルータの間。4)コアルータから発行者側のエッジルータまで。5)エッジルータから発行者装置まで。これらの変換処理の幾つかの具体例は、上述した通りである(例えば、エージェント処理及びワイルドカード処理参照)。これらの処理は、購読者装置、発行者装置、エッジルータ又はコアルータ等、発行−購読ネットワーク中のどこで実行してもよい。エージェント(購読者装置及び発行者装置上のエージェント)及びデーモン(ルータ上のデーモン)等のコンポーネントによってこれらの処理を実行してもよい。
G. Propagated Filter Processing Filter processing may include transformation processing that changes the content or representation of the filter and / or management functions that simply organize the filter. The original filter representation in the subscription can be taken over and accepted by different sets of processing procedures in different parts of the data delivery path, including the following path sections: 1) From subscriber device to edge router. 2) From edge router to core router. 3) Between two core routers. 4) From the core router to the issuer edge router. 5) From the edge router to the issuer device. Some specific examples of these conversion processes are as described above (see, for example, agent process and wildcard process). These processes may be performed anywhere in the publish-subscribe network, such as a subscriber device, issuer device, edge router or core router. These processes may be performed by components such as agents (agents on subscriber and issuer devices) and daemons (daemons on routers).

処理の具体例としては、以下のような処理がある。   Specific examples of processing include the following processing.

1)属性コンテンツの変換(例えば、サブジェクト名からサブジェクトIDへの変換、ストリングからそれらの辞書的値への変換、ある通貨から他の通貨への変換等)。   1) Conversion of attribute content (for example, conversion from subject name to subject ID, conversion from strings to their lexicographic values, conversion from one currency to another, etc.).

2)表現の拡張(例えば、ワイルドカードからそれらの成分への拡張)。   2) Expression expansion (eg, expansion from wildcards to their components).

3)表現の変換(例えば、>演算子から>=演算子への変換、!=演算子から>及び<演算子への変換等)。   3) Expression conversion (for example, conversion from> operator to> = operator, conversion from! = Operator to> and <operator, etc.).

4)表示の変換(例えば、ストリング表現から数値の又はポーランド記法や括弧を含む記法等のシンボリックな表現への変換、又はツリー、基数トライ等のフィルタの保存又は照合のために用いられる特定のデータ構造に適切な表示への変換等)。   4) Display conversion (for example, conversion from string representations to symbolic representations such as numeric or Polish notation or parenthesis notation, or specific data used to store or match filters such as tree, radix trie, etc.) Conversion to a display suitable for the structure).

5)符号化/復号(例えば、チェックサム)。   5) Encoding / decoding (eg checksum).

6)暗号化/平文化。   6) Encryption / Plain culture.

7)装置レベルの並べ替え及び逆並べ替え。   7) Device level sorting and reverse sorting.

8)プロトコルレベルの、所定のフィルタ伝播メッセージフォーマットへの及び所定の伝播メッセージからの並べ替え。   8) Reordering protocol level to and from a given filter propagation message format.

9)分解(例えば選言標準形(DNF)への分解)。   9) Decomposition (for example, disassembly into disjunctive standard form (DNF)).

10)冗長な述語表現(例えば、$1>5&&$2>3&&$1>3)の簡約。   10) Simplification of redundant predicate expressions (eg, $ 1> 5 && $ 2> 3 && $ 1> 3).

11)2個以上のフィルタの包摂。   11) Inclusion of two or more filters.

12)併合処理の前及び併合処理の後のフィルタの概算。   12) Approximate filter before and after the merge process.

13)2個以上の異なるフィルタの併合処理(例えば、概算に基づく)。   13) Merge processing of two or more different filters (eg based on approximation).

14)2個以上の別個のフィルタのグループ化(例えば、異なるアップリンクへの伝播のための)。   14) Grouping of two or more separate filters (eg, for propagation to different uplinks).

15)フィルタの購読停止又は除去。   15) Unsubscribe or remove the filter.

16)フィルタの期限終了。   16) The filter expires.

17)フィルタの差分更新(例えば、古いフィルタの組を何らかの表現でブックキーピングし、これから新しいフィルタの組を減算して、フィルタ構成における変更を得る、すなわち、差分更新する)。   17) Update filter differences (eg, bookkeeping an old set of filters with some representation and subtracting a new set of filters from it to get a change in the filter configuration, ie, update the difference).

18)フィルタパターンの構成(例えば、フィルタ1が一致した場合、フィルタ2も一致するといったパターン)。上述した又は上述していないフィルタ伝播に関する如何なる処理もここに説明するフィルタ伝搬法において利用できる。   18) Configuration of filter pattern (for example, a pattern in which when filter 1 matches, filter 2 also matches). Any processing related to filter propagation described above or not described above can be used in the filter propagation method described herein.

H.フィルタ伝播メッセージのコンテンツ及びフォーマット
フィルタの送信又は伝播のためにメッセージを用いることができる。伝播されるフィルタを含んでいるメッセージのコンテンツとフォーマットは、フィルタに施される変換処理及び、伝播の間に、フィルタ伝播をトリガする状況の影響を受けることがある。フォーマットの具体例を以下に示す。1)装置又はユーザレベルにおけるあらゆるメッセージレイアウト。2)フィルタは、固定された又はランダムの位置に属性を含むことがある(例えば、発行された情報の任意の部分に一致するストリング)。3)フィルタは、固定サイズ(例えば、整数、ブール等)を有していてもよく、又は可変サイズ属性(例えば、アレー、ストリング、c構造等)を有していてもよい。4)フィルタのデータ種類は、単純(例えば、整数、ブール等)であってもよく、又は複雑(例えば、アレー、ストリング、範囲変数等)であってもよい。5)フィルタは、単純な検査(例えば>、==、<=等)又は複雑な検査、又は演算子(例えばメンバーシップ検査、正規表現、ストリング照合、インターセクションクエリ、エンクロージャクエリ、コンテインメントクエリ等の範囲演算子を含んでいてもよい。6)分解されたDNFフォーマット。7)フィルタの簡約された又は元の表現。8)コンパクトな又は拡張されたフォーマット(例えば、一方向のフィルタを2つの極限を用いて表現することができ、又は双方向のフィルタを2つの一方向のフィルタに書き換えることもできる)。9)フィルタの部分的な表現(例えば、ストリング述語の切捨て、データタイプ分解能の低減、属性数の低減)。10)フィルタの表現の変換(ポーランド記法、括弧、ツリー、トライ等)。11)サブジェクトフィールドの包含/除外(例えば、サブジェクトフィルタリングは、フィルタが伝播されるマルチキャストバックボーンによって既に実現されていてもよい)。12)ワイルドカードサブジェクト又は属性述語の拡張。13)コンテンツ又は表現の変換。14)符号化情報(例えば、エラー訂正チェックサム等)。15)暗号化。16)フィルタの完全な組(例えば、障害回復の間、システム内のフィルタ制限時間によって更新情報をリフレッシュする)。17)フィルタの部分的な組(例えば、包摂されたフィルタの組に新たなフィルタのみが挿入され、又は古いフィルタが除外される)。18)フィルタの変更された組(併合されたフィルタ、概算されたフィルタ)。19)フィルタに類さないフィルタ表現における差分の変更(例えば、フィルタの挿入及び削除の間の基数ツリーにおける変化)。20)座標に代わるフィルタの識別ラベル(例えば、購読停止の間)。21)フィルタの期限切れパラメータ。22)フィルタパターン化情報。23)セクションFに示したような、フィルタ送信側の振る舞いと要求を符号化する情報。これらは、ここに説明する処理において用いることができる、伝播されたフィルタの可能なコンテンツ及びフォーマットを例示的に示しているに過ぎない。
H. Filter Propagation Message Content and Format Messages can be used for transmission or propagation of filters. The content and format of the message containing the propagated filter may be affected by the transformation process applied to the filter and the conditions that trigger the filter propagation during propagation. A specific example of the format is shown below. 1) Any message layout at the device or user level. 2) The filter may include attributes at fixed or random locations (eg, strings that match any part of the published information). 3) The filter may have a fixed size (eg, integer, Boolean, etc.) or may have a variable size attribute (eg, array, string, c structure, etc.). 4) The data type of the filter may be simple (eg, integer, Boolean, etc.) or complex (eg, array, string, range variable, etc.). 5) Filters can be simple checks (eg>, ==, <= etc.) or complex checks, or operators (eg membership checks, regular expressions, string matching, intersection queries, enclosure queries, containment queries, etc. 6) The decomposed DNF format. 7) A simplified or original representation of the filter. 8) A compact or expanded format (eg, a one-way filter can be expressed using two limits, or a bidirectional filter can be rewritten as two one-way filters). 9) Partial representation of the filter (eg truncating string predicates, reducing data type resolution, reducing the number of attributes). 10) Conversion of filter expression (Polish notation, parentheses, tree, trie, etc.). 11) Inclusion / exclusion of subject fields (eg, subject filtering may already be implemented by the multicast backbone through which the filter is propagated). 12) Extension of wildcard subject or attribute predicate. 13) Conversion of content or expression. 14) Encoding information (for example, error correction checksum). 15) Encryption. 16) A complete set of filters (e.g., refresh information is updated with filter time limits in the system during failure recovery). 17) A partial set of filters (eg, only new filters are inserted into the included filter set or old filters are excluded). 18) Modified set of filters (merged filter, estimated filter). 19) Changes in differences in filter representations that are not similar to filters (eg, changes in the radix tree during filter insertion and deletion). 20) Filter identification label instead of coordinates (eg, during unsubscribing). 21) Filter expiration parameter. 22) Filter patterning information. 23) Information for encoding the behavior and request of the filter sender as shown in section F. These are merely illustrative of the possible content and format of the propagated filter that can be used in the processes described herein.

I.フィルタ伝播のための手続き及びポリシ
システムレベルにおいて、フィルタ伝播の側面の一部又は全てを支配するポリシ及び手続きを確立してもよい。これらの側面には、例えば、以下のような側面が含まれる。1)管理(例えば、全体的なシャットダウン及び再起動リスタート)。2)メインテナンス(例えば、障害回復)。3)フィルタ持続性(例えば、期限切れ、キャッシングされたデータに対する一回のフィルタリング)。4)性能向上ポリシ(例えば、平均化、エッジ選択、積極的伝播対消極的伝播等)。5)監視(例えば、故障報告)。6)会計(例えば、統計的なブックキーピング)。7)課金。8)規制(例えば、フィルタを伝播させるための認証、ネットワークにおいて許可されたフィルタの種類等)。9)ユーザ認証。10)ユーザ支援(例えば、サブジェクトフィルタリングのためのディレクトリサービス)。10)購読者プライバシ(例えば、他の購読者からフィルタを隠す)。11)同期(例えばエッジルータでフィルタを受け取った際の購読者への承認、フィルタ伝播が終了した際の購読者への承認、回復等の間、ルータを修理することへの承認等)。12)優先順位付け。13)自動的なフィルタ挿入を決定及び規制する任意のポリシ(例えば消費者自身が挿入したフィルタの組において示されたで示された興味に基づき、この消費者の興味合ったフィルタを自動的に挿入する消費者に関連する管理)。
I. Procedures and policies for filter propagation At the system level, policies and procedures that govern some or all aspects of filter propagation may be established. For example, the following aspects are included in these aspects. 1) Management (eg, global shutdown and restart restart). 2) Maintenance (eg, failure recovery). 3) Filter persistence (eg, one-time filtering on expired, cached data). 4) Performance improvement policies (eg, averaging, edge selection, positive propagation versus passive propagation, etc.). 5) Monitoring (eg failure reporting). 6) Accounting (eg, statistical bookkeeping). 7) Billing. 8) Regulations (eg authentication for propagating filters, types of filters allowed in the network, etc.). 9) User authentication. 10) User assistance (eg, directory service for subject filtering). 10) Subscriber privacy (eg, hide filters from other subscribers). 11) Synchronization (e.g., approval to the subscriber when receiving the filter at the edge router, approval to the subscriber when filter propagation ends, approval to repair the router during recovery, etc.). 12) Prioritization. 13) Any policy that determines and regulates automatic filter insertion (e.g. based on the interest shown in the set of filters inserted by the consumer himself) Management related to the consumer to insert).

フィルタ伝播の多くの側面及び可能な特徴については、セクションのAからIにおいて上述した通りである。しかしながら、フィルタ伝播を現実的にするためには、上述した「累算」問題を解決するスケーラブルなソリューションを見出す必要がある。そこで、以下、スケーラブルなフィルタの伝播を実現する方法及び装置について説明する。   Many aspects and possible features of filter propagation are as described above in sections A through I. However, to make filter propagation realistic, it is necessary to find a scalable solution that solves the “accumulation” problem described above. Accordingly, a method and apparatus for realizing scalable filter propagation will be described below.

上述のように、フィルタ伝播における重要な課題は、フィルタが伝播ストリームの「上流(up)」、すなわち、膨大な数のフィルタソースから(例えば、購読者)少数のフィルタデスティネーション(例えばコアルータ、エッジルータ又は発行者)に移行する際、多数のフィルタが構築されることを回避することである。この問題は、「累算(accumulation)」問題とも呼ばれ、例えば、ツリー型のトポロジに縦列に接続されたノードから構成されるネットワークに発生する問題である。図22Aは、このようなフィルタ累算問題を解決するフィルタ伝搬処理450を示している。処理450は、上述したセクションA〜Iに示したソリューションの組を用いて、発行−購読ネットワークでフィルタを伝播する処理の具体例を示している。処理450は、例えば、購読者装置122におけるプロセッサ134によって実行されるエージェント128を含むソフトウェアモジュールによって実現することができる。これに代えて、処理450は、ソフトウェア制御の下で、インテリジェントルータ92又は対応する機能を有するASIC91内のプロセッサ93により実行してもよい。更に、処理450は、これらの組合せによって実行してもよい。   As noted above, an important issue in filter propagation is that the filter is “up” the propagation stream, ie, from a large number of filter sources (eg, subscribers) to a small number of filter destinations (eg, core routers, edges). When migrating to a router or issuer, it is to avoid building a large number of filters. This problem is also referred to as an “accumulation” problem, and occurs, for example, in a network composed of nodes connected in a tree topology. FIG. 22A shows a filter propagation process 450 that solves such a filter accumulation problem. Process 450 illustrates a specific example of a process for propagating a filter in a publish-subscribe network using the set of solutions shown in Sections A-I above. Process 450 may be implemented, for example, by a software module that includes agent 128 executed by processor 134 at subscriber device 122. Alternatively, the process 450 may be executed by the intelligent router 92 or the processor 93 in the ASIC 91 having a corresponding function under software control. Further, the process 450 may be executed by a combination of these.

図22Aに示すように、まず、複数のフィルタが受け取られる(ステップ452)。セクションCにおいて説明したように、フィルタは、発行−購読ネットワーク内のどこに挿入してもよい。受け取られたフィルタは、フィルタの総数を削減するよう処理される(ステップ454)。この削減ステップでは、フィルタ累算問題を回避し、又は軽減するために伝播されるフィルタの数を減少させる。現在のノードに隣接する多数のダウンリンクノードがある場合や、現在のノードがフィルタ伝搬パスのかなりの後段にある場合等、この発行−購読ネットワーク内の1つのノードにあまりに多くのフィルタが累積すると、全てのフィルタを処理し、照合するための演算負荷が膨大になるため、発行者及びルータの正常な動作が困難になり、ネットワークの効率が低下する。   As shown in FIG. 22A, first, a plurality of filters are received (step 452). As described in Section C, the filter may be inserted anywhere in the publish-subscribe network. The received filters are processed to reduce the total number of filters (step 454). This reduction step reduces the number of propagated filters to avoid or mitigate filter accumulation problems. Too many filters accumulate on a single node in this publish-subscribe network, such as when there are a large number of downlink nodes adjacent to the current node, or when the current node is quite late in the filter propagation path. Since the calculation load for processing and collating all the filters is enormous, normal operation of the issuer and the router becomes difficult, and the efficiency of the network decreases.

以下、フィルタ削減ステップ454の効果について更に説明する。伝搬パスの各段では、ダウンストリームノードは多くあるが、アップストリームノードは、1つ又は少数しかない。特定の段の各ダウンストリームノードがその段のダウンストリームノードの数に近い係数又はこれより大幅に小さくはない係数を用いて、アップストリームのノードに伝播されるフィルタの数を減少させると、アップストリームノードにおいて累算されるフィルタの総数は、それぞれのダウンストリームノードのフィルタの数と同規模の数となる。帰納法に基づき、この削減係数により、フィルタ伝播の各デスティネーションのフィルタの数が、伝播パスにおける段の数以上に急速に増加することはなく、この結果、累算問題が解決される。   Hereinafter, the effect of the filter reduction step 454 will be further described. At each stage of the propagation path, there are many downstream nodes, but there are only one or a few upstream nodes. When each downstream node in a particular stage uses a factor close to or not significantly less than the number of downstream nodes in that stage, reducing the number of filters that are propagated to the upstream node will increase the The total number of filters accumulated in the stream nodes is the same as the number of filters in each downstream node. Based on induction, this reduction factor does not increase the number of filters at each destination of the filter propagation more rapidly than the number of stages in the propagation path, thus solving the accumulation problem.

図22Bは、削減ステップにおける好適なサブステップを示している。これらのサブステップは、好ましくは、フィルタを簡約し、冗長な述語表現を削除するステップ(ステップ4542)と、サブジェクトに関連するダウンリンクのみからのフィルタをグループ化するステップ(ステップ4544)と、このフィルタのグループ内でフィルタを概算するステップ(併合処理の前又は後に)(ステップ4546)と、フィルタの相対的な距離に基づいてフィルタをクラスタ化するステップ(ステップ4548)と、フィルタを包摂するステップ(ステップ4550)と、2個以上のフィルタを併合するステップ(ステップ4552)とを含む。これらのステップは、ここで説明した順序とは異なる順序で実行してもよく、これらのステップの幾つかを省略してもよい。簡約処理については、図16を用いて、エージェントの処理に関連して先に説明した通りである。   FIG. 22B shows preferred substeps in the reduction step. These sub-steps preferably include simplifying the filter and removing redundant predicate expressions (step 4542), grouping filters from only the downlink associated with the subject (step 4544), Estimating filters within a group of filters (before or after merging) (step 4546), clustering the filters based on the relative distance of the filters (step 4548), and including the filters (Step 4550) and merging two or more filters (step 4552). These steps may be performed in an order different from the order described here, and some of these steps may be omitted. The reduction process is as described above in relation to the agent process with reference to FIG.

フィルタのグループ化ステップ4544は、正しいフィルタ情報をアップストリームに送るために重要である。以下、この重要性の幾つかの例について説明する。例えば、ルータは、多くのダウンリンクを有することができる(例えば、ダウンストリームのルータとのリンク)。全てのダウンリンクが購読予約又はフィルタをそれらに送る購読者を有するわけではない。他の具体例として、双方向のマルチキャストスキームにおいては、発行者と購読者が如何なる任意方向からもネットワーク参加できるため、ルータとの各リンクは、アップリンクとダウンリンクの両方として機能できる。リンクからフィルタ要求を受け取った際、このリンクは、現在のアップリンクと見なされ、このアップリンクにかかわらず、これらのダウンリンクから挿入された同じサブジェクトに属するフィルタのみを後の概算、クラスタリング、包摂及び併合演算のためにグループ化する必要がある。   The filter grouping step 4544 is important to send the correct filter information upstream. In the following, some examples of this importance will be described. For example, a router can have many downlinks (eg, links with downstream routers). Not all downlinks have subscribers who send subscriptions or filters to them. As another example, in a bidirectional multicast scheme, each link to the router can function as both an uplink and a downlink because the issuer and subscriber can join the network from any arbitrary direction. When a filter request is received from a link, this link is considered the current uplink and only filters belonging to the same subject inserted from these downlinks will be later estimated, clustered, included, regardless of this uplink. And need to be grouped for merge operations.

また、グループ化4544は、課金処理やネットワークトラヒック制御等の他の目的でも必要とされる場合がある。この処理は、例えば、全てのリンクに由来するフィルタの包括的マップが何らかの理由で必要とされる場合等、幾つかの状況では、全体を行わなくてもよい。   Grouping 4544 may also be required for other purposes such as billing and network traffic control. This process may not be performed entirely in some situations, for example when a comprehensive map of filters from all links is needed for some reason.

概算ステップ4546は、フィルタが、より多くの購読予約を捕捉するようにフィルタを変更する。例えば、概算は、伝播されるフィルタの表現における述語の数を減少させ、又はフィルタ座標の分解能を低減させ、又は長いストリングを最初の12文字に縮減する等の処理を含む。更に、概算には、フィルタのフォーマットを揃える効果もあり、これにより、フィルタは、包摂と併合処理のための候補になりやすくなる(ステップ4550、4552)。また、概算ステップにより、フィルタを伝播するメッセージのサイズを小さくすることもできる。   Estimate step 4546 modifies the filter so that it captures more subscriptions. For example, the approximation includes processing such as reducing the number of predicates in the propagated filter representation, reducing the resolution of the filter coordinates, or reducing a long string to the first 12 characters. Furthermore, the approximation also has the effect of aligning the format of the filter, which makes the filter more likely to be a candidate for inclusion and merging (steps 4550, 4552). It is also possible to reduce the size of the message propagating through the filter by the estimation step.

包摂ステップ4550は、他のフィルタのサブセットであるフィルタを排除する処理である。例えば第1のフィルタが、敷地が1000平方フィート以上、1300平方フィート以下で、価格が20万ドル以上、30万ドル以下の全ての分譲住宅に関するフィルタであり、第2のフィルタが、敷地が1100平方フィート以上、1200平方フィート以下で、価格が22万5千ドル以上、37万5千ドル以下の全ての分譲住宅に関するフィルタである場合、第2のフィルタは第1のフィルタの部分集合であり、したがって、包摂によって排除される。   The inclusion step 4550 is a process of eliminating filters that are a subset of other filters. For example, the first filter is a filter for all condominiums whose land is 1000 square feet or more and 1300 square feet or less and whose price is 200,000 dollars or more and 300,000 dollars or less, and the second filter is 1100 square feet. The second filter is a subset of the first filter if it is a filter for all condominiums that are greater than or equal to square feet and less than or equal to 1200 square feet and whose price is greater than or equal to $ 225,000 and less than or equal to $ 375,000 Therefore, it is eliminated by inclusion.

ステップ4542、4544、4546、4548、4550、4552は、選択された特定のフィルタ削減スキーム及び/又はアルゴリズムに応じて、如何なる順序で実行してもよい。例えば、ステップ4546及びステップ4550の位置は交換可能である。概算は、包摂の後に行ってもよい。更に、ステップ4550及びステップ4552を統合して、単一のステップとして実行してもよい。例えば、併合処理は、以下のグラフに示すように、包摂処理を含むことができる。   Steps 4542, 4544, 4546, 4548, 4550, 4552 may be performed in any order, depending on the particular filter reduction scheme and / or algorithm selected. For example, the positions of step 4546 and step 4550 are interchangeable. An estimate may be made after inclusion. Further, step 4550 and step 4552 may be integrated and executed as a single step. For example, the merge process can include an inclusion process as shown in the following graph.

更に図22Bを参照して説明すると、併合ステップ4552は、2個以上のフィルタを結合するという点において包摂と同様である。但し、併合処理では、2個以上の部分的又は完全に異なるフィルタを結合するのに概算を用いることができる。   Still referring to FIG. 22B, merge step 4552 is similar to inclusion in that it combines two or more filters. However, in the merge process, an approximation can be used to combine two or more partially or completely different filters.

様々なフィルタを幾何学的に示してこの処理を説明する。例えば、以下にグラフ1〜4を示す。   Various processes are shown geometrically to illustrate this process. For example, graphs 1 to 4 are shown below.

Figure 2009163753
Figure 2009163753

グラフ1は、2個のフィルタsl及びs2を幾何学的に示しており、フィルタs2は、上述したように、フィルタs1の部分集合であり、包摂処理によって消去できる。グラフ2では、フィルタs3もフィルタs4も互いの部分集合ではない。但し、フィルタのs3とフィルタs4は、互いに部分的に重複している。併合処理ステップ4552では、s3とs4の両方を含む最小のフィルタsAによる概算処理によってs3とs4を併合する。ここでは、s3とs4は、いずれもsAの部分集合であるので、s3とs4は、sAに包摂される。グラフ3は、併合処理の別の具体例を示している。グラフ3では、フィルタs5、s6は、完全に別個のフィルタである。併合処理ステップ4552では、これらのフィルタs5、s6及びこれらの間の領域を含むフィルタsAを概算する。これにより、フィルタのs5とs6は、sAに包摂される。グラフ4は、併合処理の更に他の具体例について示している。ここでは、フィルタs7、s8は、1つの属性についてのみ、部分的に異なる。s7とs8は、他の属性については重複し、同じ値を有するため、併合処理ステップ4552では、2つのフィルタをsAに併合し、重複する部分を包摂する。   Graph 1 shows two filters sl and s2 geometrically, and filter s2 is a subset of filter s1, as described above, and can be eliminated by inclusion processing. In graph 2, neither filter s3 nor filter s4 is a subset of each other. However, the filter s3 and the filter s4 partially overlap each other. In a merge processing step 4552, s3 and s4 are merged by an approximate process with a minimum filter sA including both s3 and s4. Here, since s3 and s4 are both subsets of sA, s3 and s4 are included in sA. Graph 3 shows another specific example of the merge process. In graph 3, filters s5 and s6 are completely separate filters. In the merge processing step 4552, the filter sA including these filters s5 and s6 and the region between them is estimated. Thereby, s5 and s6 of the filter are included in sA. Graph 4 shows still another specific example of the merging process. Here, the filters s7 and s8 are partially different only for one attribute. Since s7 and s8 overlap with each other and have the same value, in the merge processing step 4552, the two filters are merged into sA to include the overlapping portion.

このように、包摂(ステップ4550)及び併合(4552)は、フィルタが互いに近い場合に行われる。フィルタのリスト全体に対する線型探索の効率を向上させるために、オプションのステップとして、互いに近い又は重なる境界を有するフィルタを統合するクラスタリングアルゴリズムを用いることができる(ステップ4548)。クラスタリングアルゴリズムは、フィルタが追加又は削除されるのに応じて、実時間でインクリメンタルに実行することができる。また、フィルタ属性の属性空間において、任意の精度の固定サイズ又は可変サイズグリッドを用いて、グリッド座標に基づき、フィルタをグループ化してもよい。   Thus, inclusion (step 4550) and merging (4552) are performed when the filters are close to each other. In order to improve the efficiency of the linear search over the entire list of filters, an optional step may be to use a clustering algorithm that integrates filters with boundaries that are close to or overlapping each other (step 4548). The clustering algorithm can be executed incrementally in real time as filters are added or removed. In addition, in the attribute space of the filter attribute, filters may be grouped based on grid coordinates using a fixed-size or variable-size grid having an arbitrary accuracy.

s3又はs4又はs5及びs6のいずれにも含まれないsAの部分は、この部分がs3又はs4若しくはs5又はs6によって要求されていない発行情報を通過させるため、漏れ領域(又は、緩和領域、冗長領域)とも呼ばれる。したがって、併合処理ステップ4552は、フィルタ削減のために、トレードオフとしてこのような漏れを発生させる。ここで、大きな概算を行うと、漏れ領域が大きくなり過ぎ、フィルタ削減の利益が相殺されてしまう。そこで、処理450が実行される発行−購読ネットワークは、漏れ領域に関する閾値を定義し、併合処理ステップ4552において用いられる各概算に関する漏れ領域が大き過ぎるか否かを判定するようにする。併合処理ステップ4552は、統計的解析を実行し、漏れ領域に関して概算のために受け取られる余分なパケット(すなわち,漏れ領域に含まれるパケット)の割合を判定する。この統計的解析は、パケット分布プロファイルに基づき、(例えば処理450を実行するルータにおける)受け取られるパケット又は送り出されるパケットに関する履歴を用いて構築される。予期された割合が漏れ領域の閾値を超える場合、概算は、実行されない。   The portion of sA that is not included in either s3 or s4 or s5 and s6 allows the issue information that is not required by s3 or s4 or s5 or s6 to pass through, so the leakage region (or mitigation region, redundancy Also called area. Therefore, the merge processing step 4552 generates such a leak as a trade-off for filter reduction. Here, if a large rough estimate is made, the leakage area becomes too large, and the benefit of filter reduction is offset. Thus, the publish-subscribe network in which the process 450 is performed defines a threshold for the leaked area and determines whether the leaked area for each approximation used in the merge process step 4552 is too large. Merge processing step 4552 performs a statistical analysis to determine the percentage of extra packets (ie, packets included in the leaked area) that are received for approximation with respect to the leaked area. This statistical analysis is constructed based on the packet distribution profile and using the history of received or sent packets (eg, at the router performing process 450). If the expected rate exceeds the leakage area threshold, no approximation is performed.

通常、漏れ領域の閾値は、多くの場合、割合を示す数値であり、併合処理の評価基準として2つ以上の閾値を用いてもよい。漏れ領域に関する閾値の具体例として、例えば、グラフ3において、漏れ領域の閾値#1が実際のフィルタs5、s6によって受け入れられるパケット数の10%と指定されている場合、併合処理ステップ4552に関するフィルタs5、s6を通過する漏れ領域が総パケットの20%を含むと推定されれば、併合演算を行わないようにすることができる。漏れ閾値の別の具体例として、同グラフにおいて、漏れ領域の閾値#2がルータを通過するパケットの総数の2%であり、フィルタs5、s6の間のギャップがルータを通過するパケットの総数の1%を構成するかもしれないと見積もられている場合、フィルタリングなしでルーティングを行った場合にダウンストリームの帯域幅を消費する漏れ領域に属するパケットの割合は僅かであるので、第1の漏れ領域の閾値(#1)を超えていても、併合演算を行うことができる。多数の及び様々に交錯する漏れ領域に関する閾値を設計し、指定することができる。   Usually, the threshold value of the leak region is a numerical value indicating a ratio in many cases, and two or more threshold values may be used as an evaluation criterion for the merge process. As a specific example of the threshold value related to the leakage region, for example, in graph 3, when the threshold value # 1 of the leakage region is designated as 10% of the number of packets accepted by the actual filters s5 and s6, the filter s5 related to the merge processing step 4552 , S6 is estimated to include 20% of the total packets, the merging operation can be avoided. As another specific example of the leakage threshold, in the graph, the leakage area threshold # 2 is 2% of the total number of packets passing through the router, and the gap between the filters s5 and s6 is the total number of packets passing through the router. If it is estimated that it may constitute 1%, the percentage of packets belonging to the leaky area that consumes downstream bandwidth when routing without filtering is small, so the first leak Even if the threshold (# 1) of the region is exceeded, the merge operation can be performed. Thresholds can be designed and specified for a large number of differently intersecting leak regions.

漏れ領域の閾値は、併合されるフィルタの数、フィルタ適用範囲の領域、又はフィルタ分布の任意の特性に基づいて決定することができる。例えばフィルタの総数が僅かである場合、累算問題は逼迫した問題とはならいので、フィルタの併合に関する制約条件を緩めてもよい。   The leak region threshold can be determined based on the number of filters being merged, the region of filter coverage, or any characteristic of the filter distribution. For example, if the total number of filters is small, the accumulation problem is not a tight problem, so the constraints on merging filters may be relaxed.

グラフ4を用いて上述したように、全ての併合演算が概算を行うわけではない。例えば、2個以上の別個のフィルタで構成された併合されたフィルタsAは、ある状況では、漏れ領域を全く有さず、したがって、正確なフィルタである。例えば、二次元フィルタ(すなわち、グラフ4のs7、s8)について、フィルタを表す2つの長方形がその間に隙間を作ることなく互いに並べられ、隣接する場合、フィルタsAをもたらす併合ステップ4552は、正確な処理である。包括的に言えば、多次元において、2個以上のフィルタにおいて、1つの属性に関する断言された範囲及び他の属性に関する同じ断言された範囲が重複部分又は交差部分を有する場合にこのような状況が生じる可能性がある。同様に、フィルタについて断言された範囲が(例えば、整数のみの属性について)、別のフィルタのための断言された範囲が終わった後に、次の可能な値で始まる場合、これらのフィルタの他の任意の属性について同じ断言された範囲を仮定することにより、漏れ領域がない併合されたフィルタsAによってこれらのフィルタを概算できる。   As described above using graph 4, not all merge operations are approximate. For example, a merged filter sA composed of two or more separate filters has no leakage area in some situations and is therefore an accurate filter. For example, for a two-dimensional filter (ie, s7, s8 in graph 4), if two rectangles representing the filter are aligned with each other without a gap between them and are adjacent, the merging step 4552 resulting in filter sA is an exact It is processing. In general, in multi-dimensions, in two or more filters, this situation occurs when the asserted range for one attribute and the same asserted range for another attribute have overlapping or intersecting portions. It can happen. Similarly, if an asserted range for a filter (eg, for an integer-only attribute) starts with the next possible value after the asserted range for another filter ends, By assuming the same asserted range for any attribute, these filters can be approximated by a merged filter sA with no leakage region.

図22Aに戻って説明を続けると、処理450は、(ステップ454に加えて)上のセクションGで説明したフィルタ処理等の更なるフィルタ処理を含むことができる。ここに示すように、処理450は、受信者の振る舞いの規則に基づき、フィルタを伝播するか否かを決定する(ステップ456)。この具体例は、先のセクションEで説明した通りである。判定ステップ456では、フィルタが(及び/又はどのフィルタが)潜在的受信者に伝播されることになっているかを判定する。例えば、潜在的受信者は、自らが接続しているノード(例えば、エッジルータ)にフィルタを伝播しないという要求を送った移動可能な発行者であってもよい。これに代えて、潜在的受信者は、膨大な量のコンテンツの発行を開始する前に、自らが接続しているノードに全てのフィルタを伝播するという要求を送った新たな発行者であってもよい。セクションEに示したこの他の潜在的受信者に関する振る舞いの規則を用いてもよい。ステップ458及びステップ456の順序は入替可能である。更に、例えば、購読予約(すなわち、フィルタ)の数が限られている場合又はネットワークが含む伝播の段の数が少ない場合、フィルタの累算が深刻な問題とはならないので、ステップ454(詳しくは、併合サブステップ4552)やステップ456等の幾つかのステップは行わなくてもよい。   Returning to FIG. 22A and continuing the description, process 450 may include additional filtering, such as the filtering described in Section G above (in addition to step 454). As shown here, process 450 determines whether to propagate the filter based on the rules of behavior of the recipient (step 456). A specific example is as described in section E above. In decision step 456, it is determined which filters (and / or which filters) are to be propagated to potential recipients. For example, a potential recipient may be a mobile issuer that has sent a request not to propagate the filter to the node (eg, edge router) to which it is connected. Instead, a potential recipient is a new issuer who has sent a request to propagate all filters to the node to which he is connected before starting to publish a huge amount of content. Also good. Other potential recipient behavior rules shown in Section E may be used. The order of step 458 and step 456 can be interchanged. Further, for example, if the number of subscriptions (ie, filters) is limited or if the network contains a small number of propagation stages, the accumulation of filters is not a serious problem, so step 454 (more details , Some steps such as merging sub-step 4552) and step 456 may not be performed.

セクションFにおいて例示的に示したように、送信側の振る舞いの規則に基づく、フィルタを伝播するか否かに関する判定(ステップ458)を行ってもよい。例えば、フィルタの送信側は、フィルタに有効期限を設けてもよい。この場合、判定ステップ458では、フィルタが期限切れであるか否かを検査する。また、フィルタ送信側がフィルタを次のノードに伝播するために、認証が必要である場合もある。この場合、判定ステップ458では、フィルタの供給元が認証されない場合、フィルタを拒絶できる。セクションFに示した他の規則等のフィルタ送信側の振る舞いに関する規則を用いてもよい。   As exemplarily shown in section F, a determination may be made regarding whether to propagate the filter (step 458) based on the rules of the sender's behavior. For example, the transmission side of the filter may provide an expiration date for the filter. In this case, a decision step 458 tests whether the filter has expired. Also, authentication may be required for the filter sender to propagate the filter to the next node. In this case, the decision step 458 can reject the filter if the source of the filter is not authenticated. Rules relating to the behavior of the filter transmission side, such as other rules shown in section F, may be used.

セクションDで説明したように、このフィルタ伝播手続き450は、ネットワーク管理者を含む発行−購読ネットワークでどこからでも開始できる。次のノードには、全てのフィルタ又は削減されたフィルタの組が伝播される(ステップ460)。また、セクションCで説明したように、次のノード(フィルタ受信者)は、発行−購読ネットワークの如何なる部分であってもよい。フィルタの数は、ステップ454〜458のそれぞれによって削減することができる。実際には、フィルタの数は、ステップ456又はステップ458によって、(例えば、如何なるフィルタも伝播しないことを示す潜在的な受信者の規則に基づき)ゼロにできる場合もある。また、処理450は、セクションAにおいて説明したような、発行−購読ネットワークにおけるフィルタ伝播ストラテジの1つに基づいて、フィルタの伝播460を行うことができる。したがって、伝播ステップは、含むことができるフィルタ伝播ストラテジを決定するステップと、決定されたフィルタ伝播ストラテジの要求を満たすフィルタを伝播するステップとを含むことができる。例えば、伝播ステップ460は、フィルタの受信に応じて常に実行してもよく、又は発行者による同報通信の広告があった場合にのみ実行してもよい。同様に処理450は、セクションIに示したポリシと手続きのいずれに従って実行してもよい。また、処理450は、セクションHに基づいて、フィルタ伝播メッセージをフォーマットできる。伝播ステップ460に関するソースとデスティネーションを接続する手法は、セクションBで説明したように、様々な手法を用いることができる。   As described in Section D, this filter propagation procedure 450 can be initiated from anywhere in a publish-subscribe network that includes a network administrator. The next node is propagated with all filters or the reduced set of filters (step 460). Also, as described in Section C, the next node (filter recipient) may be any part of the publish-subscribe network. The number of filters can be reduced by each of steps 454-458. In practice, the number of filters may be reduced to zero by step 456 or step 458 (eg, based on potential recipient rules indicating that no filter propagates). Process 450 may also perform filter propagation 460 based on one of the filter propagation strategies in the publish-subscribe network, as described in Section A. Thus, the propagation step can include determining a filter propagation strategy that can be included and propagating a filter that satisfies the requirements of the determined filter propagation strategy. For example, the propagation step 460 may always be performed in response to receiving the filter, or only when there is a broadcast advertisement by the issuer. Similarly, process 450 may be performed according to any of the policies and procedures shown in Section I. Process 450 can also format the filter propagation message based on section H. As described in section B, various methods can be used for connecting the source and the destination regarding the propagation step 460.

伝播ステップ460の後、処理450は、別の潜在的受信者(別のノード)が存在するか否かを判定してもよい(ステップ462)。別の潜在的受信者がいる場合、処理450は、この潜在的受信者のために手続きを繰り返す必要があるか否かを判定する。幾つかの発行−購読ネットワークストラテジ(例えばCBT)においては、フィルタが期限を全く有さず、一旦1つのノードに伝播されると、このフィルタに対する何らかの変更(例えばフィルタの追加、フィルタの除去等)が設定されるまで、このフィルタがリンク上に持続的なままで残る場合がある。このような場合、そのリンクへのフィルタ伝播は、不必要となる。このような例は、後述する消極的な伝播法にも見出すことができる。   After propagation step 460, process 450 may determine whether there is another potential recipient (another node) (step 462). If there is another potential recipient, process 450 determines whether the procedure needs to be repeated for this potential recipient. In some publish-subscribe network strategies (eg, CBT), the filter has no deadline and once it is propagated to one node, any changes to this filter (eg, adding a filter, removing a filter, etc.) This filter may remain persistent on the link until is set. In such cases, filter propagation to that link is unnecessary. Such an example can also be found in the passive propagation method described below.

フィルタを伝播する必要がある場合、処理450は、振る舞いの規則に基づいてフィルタを伝播するか否かを決定することができる(ステップ456、458)。処理450は、削減されたフィルタの潜在的な更なる受信者がいなくなるまで繰り返し実行してもよい。   If a filter needs to be propagated, process 450 can determine whether to propagate the filter based on behavioral rules (steps 456, 458). Process 450 may be repeated until there are no potential additional recipients of the reduced filter.

図22Cは、他のフィルタ伝搬法470を示している。この処理は、セクションA〜Iで説明した発行−購読ネットワークでフィルタを伝播するためのソリューションの組を用いた他の実施例である。処理470は、ソフトウェア制御の下で、インテリジェントルータ92又は対応する機能を有するASIC91内のプロセッサ93により実行してもよい。これに代えて、処理470は、例えば、購読者装置122又は発行者装置100におけるプロセッサ134又はプロセッサ114によって実行されるエージェント128又はエージェント105を含むソフトウェアモジュールによって実現することができる。   FIG. 22C shows another filter propagation method 470. This process is another embodiment using a set of solutions for propagating filters in the publish-subscribe network described in Sections A-I. The process 470 may be executed by the intelligent router 92 or the processor 93 in the ASIC 91 having a corresponding function under software control. Alternatively, the process 470 can be implemented by a software module including the agent 128 or the agent 105 executed by the processor 134 or the processor 114 in the subscriber device 122 or the issuer device 100, for example.

この実施例におけるネットワークトポロジは、図22Dに示すように、一連の発行者Pがあらゆる任意の方向から、インテリジェントルータCのネットワークへのあらゆる任意のパスを介して接続される、双方向のトポロジである。このようなネットワークは、例えば、コアベースのツリーマルチキャストスキーム(Core-Based Tree multicast scheme)によって実現される。この実施例では、新たな発行者PN及び新たなルータCNは、ルータCを介してネットワークに接続されている。新たな発行者PNが特定の発行−購読ネットワークに接続する際、そのネットワークの拡張を形成する一連の新たなルータを介してコアに接続する必要がある場合があり、及び/又は既にそのネットワークの一部であるルータを介してネットワークに接続できる場合もある。説明のために、図22Dでは、新たなルータCNを1つのみ示している。   The network topology in this example is a bi-directional topology in which a series of issuers P are connected via any arbitrary path from any arbitrary direction to the network of intelligent router C, as shown in FIG. 22D. is there. Such a network is realized by, for example, a core-based tree multicast scheme. In this embodiment, the new issuer PN and the new router CN are connected to the network via the router C. When a new issuer PN connects to a particular issue-subscribe network, it may need to connect to the core through a series of new routers that form an extension of that network and / or already In some cases, it is possible to connect to a network via a router that is a part. For illustration, only one new router CN is shown in FIG. 22D.

フィルタ伝播処理は、2段階で行われる。図22Dに示す双方向ネットワークでは、如何なるリンクも、同時にアップリンク及びダウンリンクであることができる。ここでは、説明のため、アップリンク(1つのみ)を現在フィルタ要求を受け取っているリンクと定義し、ダウンリンク(多数)をアップリンクとは異なる、フィルタ要求の受信者のすぐ隣のダウンストリームへのリンクと定義する。ダウンストリーム及びアップストリームの方向は、アップリンクとダウンリンクと同様に定義される。   The filter propagation process is performed in two stages. In the bidirectional network shown in FIG. 22D, any link can be uplink and downlink at the same time. Here, for purposes of illustration, the uplink (only one) is defined as the link that is currently receiving the filter request, and the downlink (many) is different from the uplink and is immediately downstream of the recipient of the filter request. Define a link to Downstream and upstream directions are defined similar to uplink and downlink.

図22Cを参照して説明すると、最初の段階において、新たな発行者PNは、ダウンストリームのルータC(又は、全てのダウンストリームノード)に対し、フィルタを要求する通知を同報通信又はマルチキャストする(ステップ472)。ルータCがフィルタ要求を受け取った後(ステップ474)、ルータCは、同じフィルタの組が同じアップリンクに再度送信されないことを確実にするために、好ましくは、参照カウンタによってブックキーピングを更新する(ステップ476)。次に、ルータCは、好ましくは、このアップリンクのための参照カウンタを調べることにより、このアップリンクからのフィルタ要求が以前に処理されているものであるか否かを判定する(ステップ478)。これが、例えば、このアップリンクからネットワークに参加する最初の発行者の場合等、それまで一度も処理されていない新たなアップリンクである場合、ルータCは、要求を中継し(ステップ480)、ルータのダウンリンク(すなわち、ダウンストリームのルータ)からの応答を待つ(ステップ482)。続いて、これらのダウンストリームのルータは、更なるダウンストリームのルータに要求を送信し、これらのルータからの応答を待つ。この処理は、受信ノードによる応答の決定がなされるまで繰り返される。これにより、第1の段階が終了する。   Referring to FIG. 22C, in the first stage, the new issuer PN broadcasts or multicasts a notification requesting a filter to the downstream router C (or all downstream nodes). (Step 472). After Router C receives the filter request (step 474), Router C preferably updates the bookkeeping with a reference counter to ensure that the same set of filters is not sent again on the same uplink ( Step 476). Router C then determines whether the filter request from this uplink has been previously processed, preferably by examining a reference counter for this uplink (step 478). . If this is a new uplink that has never been processed before, for example, this is the first issuer joining the network from this uplink, router C relays the request (step 480) and router Wait for a response from the other downlink (ie downstream router) (step 482). Subsequently, these downstream routers send requests to further downstream routers and wait for responses from these routers. This process is repeated until a response is determined by the receiving node. This completes the first stage.

第2の段階は、フィルタ要求を受け取ったいずれかのノードがそのノードのダウンストリームの全てのルータからの応答を得た場合、又は、そのノードがネットワークの最後のノードであり、ダウンストリームからの応答が期待されない場合に開始される(ステップ484)。送信するフィルタが全くなければ、否定応答(又は任意に表現されたフィルタの空集合)がアップストリームに送信される。全てのノードのダウンストリームのルータから全ての新たなフィルタを受け取った場合、任意の処理であるフィルタの削減(ステップ454)の後に、フィルタの組の全体又は一部(例えば、変更の差分)がアップストリームに送られる(ステップ486)。現在のアップリンクについて、ダウンリンクから集められたフィルタのみが処理450に従ってグループ化され、併合され、削減される。この応答収集−フィルタ伝播処理は、発行者又はフィルタ要求を送った最初のルータがその発行者又は初期のルータのダウンストリームの全てのルータからフィルタ又は否定応答を受け取るまで、アップストリーム側で繰り返される。上述したフィルタの実際の伝播又は空集合(否定応答)の伝播は、第2の段階を構成する。これら2つの段階は、伝播されるコンテンツと、これらの伝搬方向について異なっており、フィルタ要求は、ネットワークの幾つかのブランチのダウンストリーム側に、他のフィルタ要求より遠くに送られることがあるので、これらの2つの段階は、時間的に重複して実行してもよい。   The second stage is when either node that receives the filter request gets a response from all of its downstream routers, or that node is the last node in the network and It begins when no response is expected (step 484). If there are no filters to send, a negative response (or an arbitrarily expressed empty set of filters) is sent upstream. When all new filters have been received from downstream routers of all nodes, after the optional filter reduction (step 454), all or part of the filter set (eg, change differences) It is sent upstream (step 486). For the current uplink, only the filters collected from the downlink are grouped, merged and reduced according to process 450. This response collection-filter propagation process is repeated on the upstream side until the issuer or the first router that sent the filter request receives a filter or negative response from all routers downstream of that issuer or initial router. . The actual propagation of the filter described above or the propagation of the empty set (negative response) constitutes the second stage. These two stages differ in the content being propagated and in their propagation direction, since filter requests may be sent farther than other filter requests to the downstream side of some branches of the network. These two stages may be performed overlapping in time.

このフィルタ伝播スキームは、アップリンクからのフィルタ要求を受け取った場合にのみフィルタ伝播処理を開始するため、すなわち、全てのアップリンクにフィルタを積極的に送るのではなく、フィルタの要求があった時に、フィルタを要求したアップストリームのルータだけにフィルタを供給するため、消極的な伝播スキームと呼ばれる。なお、フィルタ要求は、特別にフォーマットされた通知である必要はない。如何なる発行者からの最初の通知もその存在の広告と見なすことができ、データ通知に符号化され、埋め込まれたフィルタ受信者の振る舞いの規則を用いて、セクションEに基づき、フィルタが要求されているか否かを判定することができる。   This filter propagation scheme starts the filter propagation process only when it receives a filter request from the uplink, i.e., when there is a filter request, rather than actively sending the filter to all uplinks. This is referred to as a passive propagation scheme because the filter is supplied only to the upstream router that requested it. Note that the filter request need not be a specially formatted notification. The initial notification from any publisher can be considered as an advertisement of its presence, and the filter is requested based on section E, using the rules of the filter receiver behavior encoded and embedded in the data notification. It can be determined whether or not.

各発行者Pのフィルタは、発行者ユーザ装置100又は発行者Pが接続しているルータCに保存してもよい。上述した処理450と同様に、処理470は、セクションA〜Iで説明したような、追加的なソリューションを用いることができる。   The filter of each issuer P may be stored in the issuer user device 100 or the router C to which the issuer P is connected. Similar to process 450 described above, process 470 can use additional solutions, such as those described in Sections A-I.

コンパクトなフィルタストレージとオフラインプリコンピュテーションを用いるCBRこのセクションで説明するCBRの実施例は、発行/購読ネットワークのコアにおいて、深いパケット検査及びフィルタ照合に基づいて、データパケットをルーティングする処理を含む。このCBR処理は、フィルタをよりコンパクトな形式に変換し、属性空間において、フィルタ適用範囲を予め計算(pre-computing:以下、プリコンピュート/プリコンピュテーションともいう。)することによって、属性空間座標の有限集合から命令(instructions)をルーティングするためのマップをオフラインで作成し、このマップを実時間で利用して経路決定を行う。このCBR処理は、非常に速く、従来のインターネットプロトコル(IP)ルーティングと同程度のデータ伝送速度が実現される。したがって、このCBR処理は、ネットワークのコアにおける、実際の商業的なコンテンツベースのルーティングの好適な候補となる。   CBR with compact filter storage and off-line pre-computation The CBR embodiment described in this section includes the process of routing data packets based on deep packet inspection and filter matching at the core of the publish / subscribe network. In this CBR process, the filter is converted into a more compact form, and the filter application range is pre-calculated in the attribute space (pre-computing: hereinafter also referred to as precompute / precomputation). Create a map for routing instructions from a finite set offline and use this map in real time to make routing decisions. This CBR process is very fast and achieves a data transmission rate comparable to that of conventional Internet protocol (IP) routing. This CBR process is therefore a good candidate for actual commercial content-based routing at the core of the network.

上述したように、購読者は、ある範囲の属性値に対して述語を指定することによって、発行−購読ネットワークにおいて、1以上の発行者から送信されたパケットを選択する。各述語は、関係検査又はメンバーシップ検査において、パケット内のある位置における属性に1つ又は2つのオペランド(オペランドは、正規表現等の複合オブジェクトであってもよい。)を関連付ける属性検査(また、属性検査は、サブジェクト検査を含んでいてもよい。)である。例えば、10<$1<20は、$1によって示された第1の属性位置の値が10より大で20より小であるか否かを調べる検査である(述語の定義は、検査を1つのオペランドだけ関係づけるように制限することによって、単純化でき、例えば、2方向の範囲を有する検査は、2つの一方向の検査の論理積として表すことができる)。購読者は、これらの検査の集合を提示し、1つ以上の購読予約において、各購読予約は、購読者の興味を表すサブジェクトフィールドを含むことができる。   As described above, a subscriber selects a packet sent from one or more issuers in an issue-subscribe network by specifying a predicate for a range of attribute values. Each predicate is an attribute test that associates one or two operands (operands may be a complex object such as a regular expression) with an attribute at a position in the packet in a relationship check or membership check (also The attribute check may include a subject check.) For example, 10 <$ 1 <20 is a test that checks whether the value of the first attribute position indicated by $ 1 is greater than 10 and less than 20 (the definition of the predicate is 1 It can be simplified by limiting it to relate only one operand, for example, a test with a two-way range can be expressed as the conjunction of two one-way tests). The subscriber presents a collection of these tests, and in one or more subscription reservations, each subscription reservation may include a subject field that represents the subscriber's interest.

ここに説明する実施例は、フィルタを用いたコンテンツベースのルーティングに関連し、これらのフィルタは、購読予約から得られたオブジェクトであり、その表現が購読予約と異なっているのみである。フィルタの1つのとして、後述する連言フィルタがある。購読予約は、指定され、パケットをフィルタリングするのに用いられ、及び/又は購読者がネットワークに直接送信した元のフィルタであるとも言える。ネットワーク内のルータにおける伝播とパケット照合を容易にするために、購読予約は、フィルタと呼ばれる他のフォーマットのオブジェクトに変換される。例えば、幾つかの実施例では、各サブジェクトは、マルチキャストネットワークを用いて実現される。同じサブジェクトを有し、特定のサブジェクトについて、マルチキャストネットワークの各ノードに挿入されるフィルタは、同じサブジェクトフィールドのみを有するパケットをフィルタリングし、事実上、サブジェクトフィールドフィルタリングを実行する。したがって、フィルタは、このネットワーク内の各ノードにおいて、それらのサブジェクトフィールドを設けることなく、そのサブジェクトヘッディングの下に保存できる。サブジェクトフィールドのないフィルタは、属性フィルタとも呼ばれる。以下の説明では、購読予約、フィルタ及び属性フィルタは、交換可能に用いられ、これらの意味は、文脈によってのみ明らかになる。   The embodiments described herein relate to content-based routing using filters, which are objects derived from subscription subscriptions, the representation of which differs only from subscription subscriptions. One of the filters is a conjunction filter described later. A subscription can also be said to be the original filter that was specified, used to filter the packets, and / or the subscriber sent directly to the network. To facilitate propagation and packet matching at routers in the network, subscriptions are converted into other formats of objects called filters. For example, in some embodiments, each subject is implemented using a multicast network. A filter that has the same subject and is inserted into each node of the multicast network for a particular subject filters packets that have only the same subject field, effectively performing subject field filtering. Thus, filters can be stored under their subject heading without providing their subject field at each node in the network. A filter without a subject field is also called an attribute filter. In the following description, subscriptions, filters and attribute filters are used interchangeably, and their meanings are only apparent by context.

これらの購読予約を有する受信データパケットの照合を容易にするために、上述のように、各購読予約は、エッジルータに供給される前に、プロキシにより、同等な選言標準形(DNF)に処理され、分割される。DNFは、連言フィルタ呼ばれる1個以上のサブフィルタの論理和である。各連言フィルタは、同じ検査演算子を有する表現内で各属性が最大1回現れる1つ以上の属性検査の論理積である。例えば、連言フィルタは、以下のような表現(以下に示す例では、$1以外の属性も含まれている、)において、属性の一致を制約できる。   To facilitate matching of received data packets with these subscriptions, as described above, each subscription is sent to the equivalent disjunction standard form (DNF) by the proxy before being supplied to the edge router. Processed and split. DNF is the logical sum of one or more sub-filters called conjunction filters. Each conjunction filter is the logical product of one or more attribute checks where each attribute appears at most once in an expression with the same check operator. For example, the conjunction filter can restrict matching of attributes in the following expressions (in the example shown below, attributes other than $ 1 are also included).

$1>10and$1<20and$2<4and$3==5and・・・
ルータに関する限り、プロキシ動作のため、属性フィルタは、全て連言フィルタである。連言フィルタは、均一なフォーマットを有するという利点のみではなく、ネットワークのコアにおいて、これらのフィルタの伝播を容易にするという利点を有し、また、フィルタ表現において、それぞれの属性の出現を一回に限定することにより、これらのフィルタを多次元の幾何学的オブジェクトとして解釈することができるようになり、ここで説明するCBRにおいて有利である。したがって、以下の実施例では、連言フィルタのみを用いる。
$ 1> 10and $ 1 <20and $ 2 <4and $ 3 == 5and ...
As far as routers are concerned, all attribute filters are conjunctive filters for proxy operations. Conjunctive filters have the advantage of facilitating the propagation of these filters at the core of the network, as well as the advantage of having a uniform format, and each occurrence of each attribute in the filter representation. By limiting to, these filters can be interpreted as multidimensional geometric objects, which is advantageous in the CBR described here. Therefore, in the following embodiment, only the conjunction filter is used.

多数のフィルタを含む膨大な集合について、フィルタ毎に及び述語毎に照合するといった煩雑な処理を行うと、必要な演算量が膨大になり、DNFの使用にもかかわらず、CBRを用いることによって得られたダウンストリームの帯域幅利得の利益は、容易に相殺されてしまう。クリティカルなデータ転送パスにおけるこの膨大な量の演算は、発行−購読ネットワーク効率に関する深刻な障害となることがある。ここに説明するCBRの実施例では、この膨大な演算量を低減し、及び演算処理の大部分を、クリティカルなデータ転送パスから除外する。   When complicated processing such as collation for each filter and for each predicate is performed on a huge set including a large number of filters, the required amount of calculation becomes enormous, and it is obtained by using CBR regardless of the use of DNF. The benefit of the downstream bandwidth gain that is made is easily offset. This enormous amount of operations in critical data transfer paths can be a serious obstacle to publish-subscribe network efficiency. In the CBR embodiment described herein, this enormous amount of computation is reduced and most of the computation processing is excluded from the critical data transfer path.

具体的には、ここに説明する実施例では、フィルタ表現をよりコンパクトな形式に概算し、及びフィルタ適用範囲情報を予めオフラインで計算することによって、CBRにおいて、非常に効率的な処理を実現する。このCBR処理では、属性空間のあらゆる点の上のフィルタ適用範囲は、フィルタが挿入され又は削除された際に、オフラインで予め決定される。属性値がその点に含まれるパケットに対する正しい処理は、その点をカバーする全てのフィルタによって示される処理の統合である。これらの処理は、パケットに対する処理を含み、例えば、物理的なインタフェース又はカプセル化されたインタフェースへのパケット転送、ユーザレベル処理へのパケット転換、並列する装置(例えば、キャッシュ、バックアップルータ等)へのパケットの転送が含まれる。幾つかの処理は、パケットに関する処理を含まず、このような処理としては、例えば、特別に設計されたパケットの到着に応じて、ルータ上で動作する汎用アプリケーションをトリガする処理、アクティブな発行情報がフィルタに関連する領域にまだ残っているために、幾つかのフィルタの寿命を延長する処理、発行のコンテンツに基づき、新たなフィルタを自動的に挿入する処理等がある。実際には、各フィルタによって示された処理は、例えば、各ビット位置が個別の(転送)処理を表している処理ビットマスク(action bit mask:以下、ABMという。)又は処理の数がビットマスクとして表現するには多くなり過ぎた場合(例えば、エッジルータが膨大な数の購読者に接続している場合)は、個別の処理のリスト(個別処理リスト:Distinct Action List:以下、DALという。)等のデータ構造によって実現できる。以下の説明において、ABM又はDALを単独で明示している場合であっても、その文脈は、データ構造を具現化する処理の全ての形式を含むものとする。   Specifically, in the embodiment described herein, very efficient processing is achieved in CBR by approximating the filter representation to a more compact format and pre-calculating filter coverage information offline. . In this CBR process, the filter coverage above every point in the attribute space is predetermined offline when a filter is inserted or deleted. The correct processing for a packet whose attribute value is contained at that point is the integration of the processing indicated by all the filters covering that point. These processes include processing on packets, for example, packet forwarding to physical or encapsulated interfaces, packet conversion to user level processing, parallel devices (eg, cache, backup router, etc.) Includes packet forwarding. Some processes do not include packet-related processes, such as a process that triggers a general purpose application running on the router in response to the arrival of a specially designed packet, active issue information Are still present in the area associated with the filter, so there are processes to extend the life of some filters, automatically insert new filters based on published content, etc. In practice, the processing indicated by each filter is, for example, a processing bit mask (hereinafter referred to as ABM) in which each bit position represents an individual (transfer) processing, or the number of processing is a bit mask. If there are too many (for example, when the edge router is connected to a huge number of subscribers), an individual processing list (Distinct Action List: hereinafter referred to as DAL). ) Or the like. In the following description, even when ABM or DAL is explicitly specified, the context includes all forms of processing for realizing the data structure.

したがって、プリコンピュテーションにより、属性空間内の所定数の座標から、同数の統合された処理又は処理のリストへのCBRマップが生成される。この簡単なマップは、サブジェクトグループマルチキャストで用いられたマルチキャストルーティングテーブルと同じであるので、これはCBRテーブルとして理解される。このように、重い演算負荷をクリティカルなデータ転送パスから、バックグラウンドで実行されるクリティカルではないフィルタのプリコンピュテーション処理に移すことにより、データは、クリティカルなデータ転送パスを介して非常に高速に伝送され、元のフィルタ表現を照合するために必要な処理の影響を殆ど受けない。   Thus, precomputation generates a CBR map from a predetermined number of coordinates in the attribute space to the same number of integrated processes or lists of processes. Since this simple map is the same as the multicast routing table used in subject group multicast, this is understood as a CBR table. In this way, data is moved very quickly through the critical data transfer path by moving the heavy computational load from the critical data transfer path to the non-critical filter pre-computation process that runs in the background. Transmitted and is hardly affected by the processing required to match the original filter representation.

また、このCBR処理は、好ましくは、例えば、空間量子化及び述語削減によって、フィルタ表現をよりコンパクトな形式に概算する処理を含む。それぞれの属性次元において、膨大な数の座標があるので、属性空間を量子化し、グリッドを生成する必要がある。個々の座標の代わりに量子化された領域だけがCBRテーブルの構築に用いられる。空間量子化は、実際の属性空間内の個々の点を量子化された属性空間内の単一の点にグループ化する効果を有しているので、元の実際の属性空間のあらゆる点がCBRテーブルにおいて間接的に考慮され、同じ座標に量子化された隣接する点とともにこれらの量子化された座標について示された処理のリストを共有する。   The CBR processing also preferably includes processing that approximates the filter representation to a more compact form, for example, by spatial quantization and predicate reduction. Since there are a huge number of coordinates in each attribute dimension, it is necessary to quantize the attribute space and generate a grid. Only the quantized regions instead of the individual coordinates are used to build the CBR table. Spatial quantization has the effect of grouping individual points in the actual attribute space into a single point in the quantized attribute space so that every point in the original actual attribute space is CBR. Shares the list of treatments shown for these quantized coordinates with adjacent points that are considered indirectly in the table and quantized to the same coordinates.

この処理では、様々な空間量子化スキームを用いることができる。更に、フィルタ表現が多くの述語を含んでいる場合、この表現は、CBRテーブルに表されたサブセットのみに概算してもよい。   Various spatial quantization schemes can be used in this process. Furthermore, if the filter expression contains many predicates, this expression may be approximated only to the subset represented in the CBR table.

属性のための属性空間は、潜在的に無限である。したがって、属性空間は、グリッドを設けても、大き過ぎて扱いづらい場合がある。したがって、ここで説明するCBRの処理では、好ましくは、量子化される属性空間の領域を削減する。具体的には、一致するデータパケットが受け取られると予想される属性空間の領域だけを量子化することが好ましい。後述するように、一致するデータが受け取られる可能性があるこの領域は、発行者から受け取った情報及び/又は過去の(すなわち、以前に受信した)パケット及び/又はフィルタ分布の統計的解析から得られた情報に基づいて判定される。例えば、属性がある値より上のデータパケットは決して発行しないとの情報を発行者が提供した場合、そのある値を超える属性空間は、量子化しないことが望ましい。同様に、統計的解析により、属性値がある値より下のフィルタが受け取られることはないことがわかっている場合、そのある値を下回る属性空間は、量子化しないことが望ましい。   The attribute space for attributes is potentially infinite. Therefore, the attribute space may be too large to handle even if a grid is provided. Therefore, in the CBR processing described here, the region of the attribute space to be quantized is preferably reduced. Specifically, it is preferable to quantize only those regions of the attribute space where matching data packets are expected to be received. As will be discussed below, this area where matching data may be received is obtained from statistical analysis of information received from the issuer and / or past (ie, previously received) packets and / or filter distributions. It is determined based on the obtained information. For example, if the issuer provides information that the attribute never exceeds data packets above a certain value, it is desirable not to quantize the attribute space beyond that certain value. Similarly, if statistical analysis indicates that no attribute values below a certain value will be received, it is desirable not to quantize attribute spaces below that value.

図23Aは、フィルタ表現をよりコンパクトな形式に概算し、フィルタ適用範囲情報をオフラインで予め算出するここに説明する実施例に基づくCBR処理480を示している。CBRのこの処理は、実時間における述語毎の照合を最少にする。処理480は、ソフトウェア制御の下で、インテリジェントルータ92又は対応する機能を有するASIC91内のプロセッサ93により実行してもよい。多くの場合、フィルタ管理機能を含むプリコンピュテーションステップは、演算的に高負荷であるので、ソフトウェアにおいてこれを実行することが望ましい。しかしながら、例えば、基数表現等の幾つかのフィルタ表現では、フィルタをハードウェアで実現することもできる。処理480は、例えば、ユーザ装置100のプロセッサ114によって実行されるエージェント106として表現されたソフトウェアモジュールにより実現してもよい。   FIG. 23A illustrates a CBR process 480 based on the embodiment described herein that approximates the filter representation to a more compact format and pre-calculates filter coverage information offline. This processing of the CBR minimizes collation for each predicate in real time. The process 480 may be executed by the intelligent router 92 or the processor 93 in the ASIC 91 having a corresponding function under software control. In many cases, pre-computation steps including filter management functions are computationally expensive and it is desirable to do this in software. However, for example, in some filter expressions such as a radix expression, the filter can be realized by hardware. The process 480 may be realized by a software module expressed as the agent 106 executed by the processor 114 of the user device 100, for example.

図23Aに示すように処理480では、まず、空間(再)量子化を実行すべきであるか否かを判定する(ステップ482)。空間量子化は、定期的な又は不定期の期限によってトリガしてもよく、又は例えば、現在の量子化された属性空間におけるパケットが過度に不均一になったことが観察された場合等にトリガしてもよい。空間量子化は、必要に応じて、ルータの処理が比較的空いているときにオフラインで実行される(ステップ484)。空間量子化は、好ましくは、形成される量子化された属性空間に亘って均一なパケット分布又はフィルタ分布のいずれか(又はこれらの両方)をレンダリングする性質を有する新たなグリッドの算出を含む。空間量子化について、この他の処理及び評価基準を用いてもよい。   As shown in FIG. 23A, in process 480, it is first determined whether or not spatial (re) quantization should be performed (step 482). Spatial quantization may be triggered by periodic or irregular deadlines, or if, for example, it is observed that a packet in the current quantized attribute space is overly uneven May be. Spatial quantization is performed off-line when necessary, when the processing of the router is relatively free (step 484). Spatial quantization preferably involves the calculation of a new grid that has the property of rendering either a uniform packet distribution or a filter distribution (or both) over the quantized attribute space that is formed. Other processing and evaluation criteria may be used for spatial quantization.

グリッド領域は、一致するパケットが受け取られると予想される属性空間の削減された領域のみをカバーするように構築することができる。例えば、第1の属性$1が米国のある工業部門における、株の数を表している場合、空間量子化は、0から米国証券取引所の株の総数までの範囲のみで行えばよい。収集されたパケット統計データからこの属性の統計的分布に関する情報を得た後、後述するような適応量子化を用いて、初期的には、全ての部門に関する株の数の最大値である非常に小さな数値に、及び将来的には、市場の成長に応じてより大きな数値に、動的にこの範囲を調整することができる。   The grid area can be constructed to cover only the reduced area of the attribute space where matching packets are expected to be received. For example, if the first attribute $ 1 represents the number of shares in an industrial sector in the United States, spatial quantization need only be performed in the range from 0 to the total number of shares on the US Stock Exchange. After obtaining information about the statistical distribution of this attribute from the collected packet statistics data, using adaptive quantization as described below, the initial maximum number of shares for all sectors is very high. This range can be adjusted dynamically to smaller numbers and in the future to larger numbers as the market grows.

ルータは、処理480が実行されているネットワーク位置(例えば、コア又はエッジインテリジェントルータ92、又は発行者装置100)に何らかのフィルタが挿入され、又は何らかのフィルタが削除されているか否かを判定する(ステップ486)。参照カウント処理は、新たに挿入されたフィルタが、既に挿入されているフィルタと同一の情報(例えば属性、一致する属性値及びフィルタ処理)を有しているか否かを監視する(ステップ488、ステップ494)。処理する必要があるのは、異なるフィルタだけである。説明のため、ネットワークにおける位置をインテリジェントルータ92と仮定する。例えば、新たなフィルタがアップストリーム側のインテリジェントルータ92に伝播される場合もあり、又は、古いフィルタについて設定されている有効期限が切れる場合もある。   The router determines whether any filters have been inserted or removed from the network location (eg, core or edge intelligent router 92, or issuer device 100) where the process 480 is being performed (steps). 486). The reference count process monitors whether or not the newly inserted filter has the same information (for example, attribute, matching attribute value and filter process) as the already inserted filter (step 488, step 494). Only different filters need to be processed. For the sake of explanation, it is assumed that the position in the network is the intelligent router 92. For example, a new filter may be propagated to the intelligent router 92 on the upstream side, or the expiration date set for the old filter may expire.

フィルタを挿入する又は削除する要求が受け取られた場合(ステップ486)、(1)実際の属性空間内の正しいフィルタのための参照カウントを更新し(ステップ488)、及び(2)挿入/削除するべきフィルタが新規のフィルタであるか、以前に既に受け取ったことがあるフィルタであるかを判定する(ステップ490)ために、まず、実際の座標を用いて、フィルタと、ルータによって既に受け取られ、保存されている他のフィルタとを比較する。フィルタが新規のフィルタでない場合、実行フローは、パケット照合ルーチンに戻される。この他の場合、属性値の量子化された座標を得るために、パケットの属性値を量子化された空間にマッピングする(ステップ492)。そして、量子化された座標を用いて、同様のフィルタ識別手続きを実行して、(1)量子化された属性空間における正しいフィルタのための参照カウントを更新し(ステップ494)、(2)このフィルタがフィルタの量子化された座標における新規なフィルタであるか否かを判定する(ステップ496)。ステップ488とステップ494については、好ましくは、フィルタ座標からフィルタ参照値への2つのマップを用いるとよい。   If a request to insert or delete a filter is received (step 486), (1) update the reference count for the correct filter in the actual attribute space (step 488), and (2) insert / delete To determine whether the power filter is a new filter or a filter that has already been received (step 490), first, using the actual coordinates, the filter and the router have already received, Compare with other saved filters. If the filter is not a new filter, the execution flow is returned to the packet matching routine. In other cases, to obtain the quantized coordinates of the attribute value, the attribute value of the packet is mapped to the quantized space (step 492). Then, using the quantized coordinates, a similar filter identification procedure is performed to (1) update the reference count for the correct filter in the quantized attribute space (step 494), (2) this It is determined whether the filter is a new filter at the quantized coordinates of the filter (step 496). For step 488 and step 494, two maps from filter coordinates to filter reference values are preferably used.

フィルタが実際の属性空間と量子化された空間の両方において新規なものである場合、そのフィルタを概算し、削減することができる(ステップ498)。例えば、述語が過多であるフィルタの属性のサブセットのみを選択して、量子化及びマッピングを行ってもよい。同様に、より複雑な性質の述語を有する属性(例えば、ストリングの一致を要求する述語、正規表現、非ストリング(in-string)、非アレー(in-array)、範囲演算子等)又はより高い分解能を要求する属性は、個別に取り扱ってもよい。   If the filter is new in both the actual attribute space and the quantized space, the filter can be approximated and reduced (step 498). For example, only a subset of filter attributes that have too many predicates may be selected for quantization and mapping. Similarly, attributes with more complex nature predicates (eg, predicates that require string matching, regular expressions, non-strings, in-arrays, range operators, etc.) or higher Attributes that require resolution may be handled individually.

本発明の実施例の主要な利点の1つとして、フィルタをコンパクトにできれば、パケットの照合と転送をスケーラブルな手法で効率的に行うことができるという点である。フィルタのコンパクト化は、フィルタを量子化された属性空間にマッピングする処理(ステップ492)と、フィルタ表現の概算及び削減(例えばステップ498)の処理の両方を含む。図23Aに示すように、圧縮ステップは、属性空間を空間的に量子化する処理を含んでいる(ステップ484)。このステップでは、上述し及び以下に示すように、属性空間においてグリッドを生成する。   One of the main advantages of the embodiment of the present invention is that if the filter can be made compact, packet matching and transfer can be efficiently performed in a scalable manner. Filter compaction includes both the process of mapping the filter to the quantized attribute space (step 492) and the process of estimating and reducing the filter representation (eg, step 498). As shown in FIG. 23A, the compression step includes a process of spatially quantizing the attribute space (step 484). In this step, a grid is generated in the attribute space as described above and below.

Figure 2009163753
Figure 2009163753

これにより、CBRテーブルを更新できる(ステップ500)。各フィルタは、そのフィルタに一致する発行情報に関する1以上の(ルーティング)処理を示す規則に関連付けられている。フィルタによって示される(ルーティング)処理は、以下のような手法によって、このCBRテーブル内のグリッドセルに挿入される。ステップ500では、フィルタ適用範囲情報の属性空間に生成されたグリッドを用いて、まず、フィルタの量子化された座標がカバーされ又は重複する全てのグリッドセル(すなわち量子化された領域)を特定する。次に、ステップ500は、このフィルタより示された(ルーティング)処理をこれらのグリッドセル内に挿入する。例えば、5個の可能なデスティネーションノードがあるとすると、それぞれノード2とノード3に接続されているユーザ装置にルーティングする必要がある2つのフィルタは、グリッドセル又は量子化された領域Xをカバーする(上述の説明参照)。この結果、ステップ500は、グリッドセル又は量子化された領域Xに対し、それぞれノード2とノード3へのルーティングを要求する規則を挿入又は宣言する。この処理は、フィルタの量子化された座標をカバーし又は重なる各グリッドセルについて繰り返される。好ましくは、ステップ500は、各グリッドセル又は量子化された領域対して、ABMを生成又は更新することによってマッピングを表す。この実施例では、グリッドセル又は量子化された領域Xに対するABMは、ノードの番号を0〜4として、以下のように表される。   As a result, the CBR table can be updated (step 500). Each filter is associated with a rule that indicates one or more (routing) processes for the issuance information that matches the filter. The (routing) process indicated by the filter is inserted into the grid cell in the CBR table by the following method. In step 500, the grid generated in the attribute space of the filter coverage information is used to first identify all grid cells (ie, quantized regions) that cover or overlap the quantized coordinates of the filter. . Next, step 500 inserts the (routing) process indicated by this filter into these grid cells. For example, if there are five possible destination nodes, the two filters that need to be routed to the user equipment connected to node 2 and node 3, respectively, cover the grid cell or quantized region X. (Refer to the above description). As a result, step 500 inserts or declares rules that require routing to node 2 and node 3, respectively, for the grid cell or quantized region X. This process is repeated for each grid cell that covers or overlaps the quantized coordinates of the filter. Preferably, step 500 represents a mapping by generating or updating an ABM for each grid cell or quantized region. In this embodiment, the ABM for the grid cell or the quantized region X is expressed as follows, with node numbers 0-4.

Figure 2009163753
Figure 2009163753

なお、フィルタ除去のために、好ましくは、ブックキーピングを行うとよい。例えば、2個のフィルタがグリッドセルをカバーしており、フィルタの1つを除外する処理を説明する。ABM内の対応するビットは、0にリセットするべきではない。各グリッドセルについて、セル領域をカバーするフィルタの参照カウントをブックキーピングすることによって、混乱を避けることができる。続いて、更新後の参照カウンタからFBMを生成する。これらの参照カウンタは、処理参照カウンタとも呼ばれる。このように、マッピングステップ500は、ブックキーピングステップを含んでいてもよい。   In order to remove the filter, bookkeeping is preferably performed. For example, a process in which two filters cover a grid cell and one of the filters is excluded will be described. The corresponding bit in the ABM should not be reset to zero. For each grid cell, confusion can be avoided by bookkeeping the reference count of the filter covering the cell area. Subsequently, an FBM is generated from the updated reference counter. These reference counters are also called process reference counters. Thus, the mapping step 500 may include a bookkeeping step.

CBRテーブルは、各グリッドセル又は量子化領域から生成されたABMに基づいて構築/更新される(ステップ500)。この処理は、好ましくは、直接又は間接的に、空間的な再量子化及びCBRテーブルの更新と、全ての追加的なステップ482〜500とを含む。ステップ482〜500は、好ましくはオフラインで(すなわち、インテリジェントルータ92が発行されたパケットを受け取っていないときに)又は実時間のルーティング処理のバックグラウンドとして、実行され、フィルタが挿入され、保留され、停止され、又は削除される。したがって、発行された如何なるパケットも受け取られていない場合、又はステップ482〜500がバックグラウンドで実行されている場合、処理480は、再び、まず、属性空間を再量子化するべきか否かを判定し(ステップ482)、続いて、何らかのフィルタが挿入又は削除されているか否かを判定する(ステップ486)。そして、図23Bに示すように、データ転送パスにおいて、CBRテーブルを用いて、実時間のルーティング処理が実行される。   The CBR table is constructed / updated based on the ABM generated from each grid cell or quantization region (step 500). This process preferably includes, directly or indirectly, spatial requantization and CBR table update and all additional steps 482-500. Steps 482-500 are preferably performed offline (ie, when intelligent router 92 is not receiving issued packets) or as the background of real-time routing processing, filters are inserted, suspended, Stopped or deleted. Thus, if no issued packet has been received, or if steps 482-500 are being performed in the background, process 480 again first determines whether the attribute space should be requantized. Then, it is determined whether or not any filter has been inserted or deleted (step 486). Then, as shown in FIG. 23B, real-time routing processing is executed in the data transfer path using the CBR table.

CBRテーブルのサイズは、属性の数が多い場合、又は各属性に関するグリッドの分割数が多い場合、大きくなる。原則として、CBRテーブルにおいて、処理規則を含む(すなわち、フィルタによってカバーされている)グリッドセルのみを保存すればよい。CBRテーブルは、如何なる技術を用いて圧縮してもよい。   The size of the CBR table increases when the number of attributes is large or when the number of grid divisions related to each attribute is large. In principle, in the CBR table, only the grid cells that contain the processing rules (ie covered by the filter) need be stored. The CBR table may be compressed using any technique.

図23Aは、処理480のCBR管理の側面を示し、図23Bは、処理480のCBRによるデータ転送の側面を示している。処理480において、発行されたパケットが受信されたと判定された場合(ステップ502)、インテリジェントルータ92は、図23Bに示すように、発行されたパケットを受け取る(ステップ504)。受信されたパケットは、ポイントツーポイント接続(例えば、エッジルータへの無線接続)を介してネットワークに挿入することができる。受信されたパケットは、グリッドにマッピングされる(ステップ506)。ステップ506では、パケットの量子化された座標を判定し、これにより、CBRテーブルの正しいグリッドセルを参照し、そのグリッドセルに含まれている処理規則を抽出し、パケットを処理できる(ステップ508)。これらの処理は、ネットワーク内のどのノード又は他の位置にパケットをルーティングし、又はパケットを削除するかを判定する処理を含んでいてもよい。   FIG. 23A shows an aspect of CBR management of the process 480, and FIG. 23B shows an aspect of data transfer by the CBR of the process 480. If it is determined in process 480 that the issued packet has been received (step 502), the intelligent router 92 receives the issued packet (step 504) as shown in FIG. 23B. Received packets can be inserted into the network via a point-to-point connection (eg, a wireless connection to an edge router). The received packet is mapped to the grid (step 506). In step 506, the quantized coordinates of the packet are determined, thereby referring to the correct grid cell in the CBR table, extracting the processing rules contained in the grid cell, and processing the packet (step 508). . These processes may include determining which node or other location in the network will route the packet or delete the packet.

漏れの削減
フィルタ概算の結果、これまで説明してきたCBR処理480では、パケット漏れのエラーが発生する虞がある(ステップ492参照)。元のフィルタ境界に代えてグリッドセルの境界を用いてパケットを照合するため、照合に用いられる実際の領域(例えば、2次元における面積と3次元における体積)は、拡大し、緩和領域とも呼ばれる実際のフィルタ境界とグリッドセル境界との間の領域に存在する属性値を有するパケットが誤ってフィルタを通過することがある。上述のように、フィルタ分解能の削減は、処理の高速性能とスケーラビリティが実現又は向上し、受信パケットの総数に比べて、漏れエラーが小さい場合に許容できる犠牲であると考えられる。
Leakage Reduction As a result of the filter approximation, the CBR processing 480 described so far may cause a packet leakage error (see step 492). Since the packet is matched using the grid cell boundary instead of the original filter boundary, the actual region used for matching (eg, the area in two dimensions and the volume in three dimensions) is expanded and actually called a relaxation region. A packet having an attribute value existing in a region between the filter boundary and the grid cell boundary may pass through the filter by mistake. As described above, the reduction in filter resolution is considered to be an acceptable sacrifice when the high-speed performance and scalability of the process is realized or improved and the leakage error is small compared to the total number of received packets.

しかしながら、漏れエラーが小さくない場合もある。例えば、システムが、等価検査又は不等価検査(例えば、$1=4&$2=100&$3<30、又は$1=4&$2>3)であるCBRに対応する少なくとも1つの属性述語を有するフィルタを有する場合がある。これらの等価検査又は不等価検査された属性の次元において、フィルタは、点に類似する。グリッド境界がこれらの点を包摂するように課される場合(上述のステップ490)、緩和領域(例えば、面積、体積、超体積)は、実際のフィルタ自体の領域よりはるかに大きく拡大されてしまう場合がある。   However, there are cases where the leakage error is not small. For example, the system has at least one attribute predicate corresponding to a CBR that is an equivalence check or inequality check (eg, $ 1 = 4 & $ 2 = 100 & $ 3 <30, or $ 1 = 4 & $ 2> 3). May have a filter. In these equivalence-check or inequality-checked attribute dimensions, the filter resembles a point. If the grid boundary is imposed to encompass these points (step 490 above), the relaxation region (eg, area, volume, supervolume) will be expanded much larger than the region of the actual filter itself. There is a case.

この問題は、以下の図によって示される。この図は、2次元属性空間を表しており、各次元における等価検査によってそれぞれ定義された2つの点フィルタF1、F2を示している。数字は、グリッドセル座標を表し、アルファベットは、実際の座標を表している。属性がグリッドセル(4、1)内のどこに含まれるパケットも、FI及びF2の両方に一致するパケットとして受け入れられる。   This problem is illustrated by the following figure. This figure represents a two-dimensional attribute space and shows two point filters F1 and F2 respectively defined by an equivalence check in each dimension. Numbers represent grid cell coordinates, and alphabetic characters represent actual coordinates. Packets whose attributes are contained anywhere within the grid cell (4, 1) are accepted as packets that match both FI and F2.

Figure 2009163753
Figure 2009163753

漏れ削減ステップ516において実行できる様々な処理によって、CBR処理480のこのような望ましくない性質を抑制することができ、このような処理の一具体例を以下に示す。   Various processes that can be performed in the leakage reduction step 516 can suppress such undesirable properties of the CBR process 480, and a specific example of such a process is shown below.

漏れ削減ステップ516のための手法の1つとして、一次元(1D)において正確な照合を行う手法がある。全ての属性について、同時に、パケットをフィルタに照合する処理は、スケーラブルなソリューションを有さない多次元問題である。一方、一次元での正確な照合は、効率的でスケーラブルな多くのソリューションを有することが知られている。これらのソリューションとしては、以下に限定されるものではないが、例えば、(1)フィルタ境界のアレーに対する関する2分探索、(2)全てのフィルタ境界を介したバイナリツリー探索、(3)フィルタ境界情報が埋め込まれたツリーの下方への基数検索、及び(4)インターバル2分探索ツリー等のより複雑なデータ構造を有する検索等がある。   As one of the techniques for the leakage reduction step 516, there is a technique of performing accurate matching in one dimension (1D). For all attributes, the process of matching packets against a filter at the same time is a multidimensional problem that does not have a scalable solution. On the other hand, accurate matching in one dimension is known to have many efficient and scalable solutions. These solutions include, but are not limited to, for example: (1) a binary search for an array of filter boundaries, (2) a binary tree search through all filter boundaries, and (3) a filter boundary. There are a radix search below a tree in which information is embedded, and (4) a search having a more complicated data structure such as an interval binary search tree.

漏れ削減ステップ516においては、何らかの一次元検索法を用いた一次元の正確な照合を全ての属性について行うことが望ましい。一次元の正確な照合による漏れ削減ステップ516の幾つかの具体例を以下に示す。   In the leakage reduction step 516, it is desirable to perform one-dimensional accurate matching using some one-dimensional search method for all attributes. Some specific examples of the leakage reduction step 516 by one-dimensional accurate matching are shown below.

a.上述のように、漏れ削減のないCBR照合ステップ508を行う(一致が全くなければ、パケットを削除する)。   a. As described above, the CBR verification step 508 without leakage reduction is performed (if there is no match, the packet is deleted).

b.一致するパケットについて(ステップ508が上であることを見る)、1つの属性次元を選択し、何らかの一次元の正確な照合法及び対応するデータ構造を用いて、パケットのその属性値をその属性軸上の全てのフィルタ境界の射影に照合する。これにより、一致したフィルタが検出された全ての転送ノードのリストを得る。   b. For matching packets (see step 508 above), select one attribute dimension and use some one-dimensional exact matching method and the corresponding data structure to change the attribute value of the packet to its attribute axis Match the projections of all the filter boundaries above. As a result, a list of all forwarding nodes where a matched filter is detected is obtained.

c.一次元一致が全くなければ、その全ての属性検査において、そのパケットに一致するフィルタがないことが保証されるので、そのパケットを除外できる。   c. If there is no one-dimensional match, all the attribute checks guarantee that there is no filter that matches the packet, so the packet can be excluded.

d.一致があった場合、他の次元を選択し、次のいずれかの条件が満たされるまで、ステップbを繰り返す。(1)いずれかの次元で不一致が検出された場合。(2)先に実行された全ての一次元探索によって生成された転送ノードのリストが共通のインタフェースを含んでいない場合(すなわち、一次元の一致が異なるインタフェースからのフィルタから生成された場合)。又は、(3)正確な照合検査がCBRについてディスエーブルにされた属性次元を含む全ての属性次元について実行された場合。   d. If there is a match, another dimension is selected and step b is repeated until one of the following conditions is met. (1) When a mismatch is detected in any dimension. (2) When the list of forwarding nodes generated by all previously executed one-dimensional searches does not include a common interface (that is, when a one-dimensional match is generated from filters from different interfaces). Or (3) If correct match checking is performed for all attribute dimensions, including attribute dimensions disabled for CBR.

e.ステップdで説明した除外の条件がいずれも成立せず、及び全ての属性の検査において不一致が検出されない場合、パケットを除外しないという決定を下すことができる。
f.2つ以上のインタフェースが含まれている場合、パケットが除外されていないインタフェースのリストと、ステップaから得られたインタフェースのリストとを比較する必要がある。パケットは、これらの2つのリストにおいて重複するインタフェースにのみルーティングされる。
e. If none of the exclusion conditions described in step d is met and no mismatch is detected in the inspection of all attributes, a decision can be made not to exclude the packet.
f. If more than one interface is included, it is necessary to compare the list of interfaces from which packets are not excluded with the list of interfaces obtained from step a. Packets are routed only to interfaces that overlap in these two lists.

サブステップa〜fの順序は入れ替えてもよい。例えば、一次元漏れ削減ステップ(サブステップb〜e)を実行した後に、サブステップaを実行してもよい。幾つかのサブステップを1つのサブステップに統合してもよい。   The order of the sub-steps a to f may be changed. For example, sub-step a may be executed after executing the one-dimensional leakage reduction step (sub-steps b to e). Several substeps may be combined into one substep.

なお、上述した一次元漏れ削減ステップ516は、全ての次元を考慮した場合、正確ではない。最後の実施例を用いて説明すると、属性値$1=a及び$2=dを有するパケットは、いずれの次元における正確な照合検査も通過するが、各次元における検査は、実際には異なるフィルタを照合する。正しい多次元の分析を行えば、このパケットは、除外されるべきものである。したがって、この漏れ削除処理は、パケットの除外については効果的であるが、パケットの受け入れについては正確ではない。このため、この処理は概算的であり、漏れエラーが残る可能性はある。但し、この漏れ削減ステップ516は、不正確ではあるが、フィルタリングにグリッドセル(4,1)の全体の領域を用いることによって生じてしまう漏れエラーを大幅に減少させることができる。   Note that the one-dimensional leakage reduction step 516 described above is not accurate when all dimensions are considered. Using the last example, a packet with attribute values $ 1 = a and $ 2 = d passes an exact match check in any dimension, but the check in each dimension is actually a different filter. Is matched. With correct multidimensional analysis, this packet should be excluded. Therefore, this leak removal process is effective for packet exclusion, but is not accurate for packet acceptance. For this reason, this process is approximate, and a leakage error may remain. However, although this leakage reduction step 516 is inaccurate, leakage errors caused by using the entire area of the grid cell (4, 1) for filtering can be greatly reduced.

処理480が実行されるインテリジェントルータ92を介したデータ転送パストラヒックは、所定の閾値を超えているか否かを判定される(ステップ510)(例えば、インテリジェントルータ92は、パケットを転送するためのクリティカルなタスクに占有されている場合、「ビジー状態」となる)。インテリジェントルータ92がビジー状態である場合、カバーされたグリッドセルにマッピングされたパケットがルーティングされ(ステップ508)、ステップ508によって判定されたルーティング処理に基づき(ステップ512)、対応するパケット統計情報が更新される(ステップ514)。したがって、インテリジェントルータ92がビジー状態である場合、部分的にカバーされているグリッドセルにマッピングされるがそのグリッドセルの実際のフィルタ適用範囲の外側にあるパケットのルーティングによって生じる「漏れ」が、ルーティング速度を向上するための犠牲として受け入れられる。   It is determined whether the data transfer path traffic through the intelligent router 92 on which the process 480 is performed exceeds a predetermined threshold (step 510) (eg, the intelligent router 92 is critical for forwarding packets). If it is occupied by a busy task, it will be “busy”). If intelligent router 92 is busy, the packet mapped to the covered grid cell is routed (step 508) and the corresponding packet statistics are updated based on the routing process determined by step 508 (step 512). (Step 514). Thus, when the intelligent router 92 is busy, a “leak” caused by routing of packets that are mapped to a partially covered grid cell but outside the actual filter coverage of that grid cell is Accepted as a sacrifice to increase speed.

一方、ステップ510において、インテリジェントルータ92がビジー状態ではないと判定された場合(すなわち、トラヒックが閾値を超えていない場合)、好ましくは漏れ削減処理を行う(ステップ503)。漏れ削減ステップ516は、先のパラグラフで説明した漏れを削減する。漏れ削減処理は、例えば、以下に説明する手法で実現できる。   On the other hand, if it is determined in step 510 that the intelligent router 92 is not busy (that is, if the traffic does not exceed the threshold), preferably leakage reduction processing is performed (step 503). Leak reduction step 516 reduces the leakage described in the previous paragraph. The leakage reduction process can be realized by a method described below, for example.

ここでは、正確でない、述語毎のフィルタ照合を実時間で実行している。但し、処理480においては、最低レベルの正確なフィルタ照合は、トラヒックが閾値を超えていない場合にのみ許可される。このCBR処理は、本質的に、グリッドに対する位置に基づいて、フィルタをグループ化する。グリッドセルは、それらの幾何学的な位置に基づいてフィルタをグループ化するツールである。フィルタの如何なるグループ(或いは、フィルタバケツ(filter bucket)とも呼ばれる。)内においても、幾つかの状況では、より精度が高い詳細なフィルタリングを行うことができる場合がある。このような付加的な照合の要求は、フィルタバケツ内に保存できる。   Here, inaccurate filter matching for each predicate is executed in real time. However, in process 480, the lowest level of accurate filter matching is allowed only if the traffic does not exceed the threshold. This CBR process essentially groups the filters based on their position relative to the grid. Grid cells are tools that group filters based on their geometric location. Within any group of filters (also referred to as a filter bucket), in some situations, more precise and detailed filtering may be possible. Such additional verification requests can be stored in a filter bucket.

幾つかの具体例を以下に示す。   Some specific examples are shown below.

1.CBRマップより高い分解能を必要とする属性検査は、CBRの第1のグリッド照合ステップからフィルタバケツが導出された後に行うことができる(ステップ508)。   1. An attribute check that requires a higher resolution than the CBR map can be performed after the filter bucket is derived from the first grid matching step of the CBR (step 508).

2.より複雑な性質の述語を有する属性(例えば、ストリング照合、正規表現、非ストリング、非アレー、範囲演算子等)は、フィルタバケツ法(filter bucketing method)
によって処理することができる。
2. Attributes with more complex nature of predicates (eg string matching, regular expressions, non-strings, non-arrays, range operators, etc.) filter bucketing method
Can be processed by.

3.多くの属性検査を含むフィルタについては、属性を2つのグループに分け、一方のグループをCBRマップに含め、他方のグループをフィルタバケツに含めてもよい。   3. For filters that include many attribute checks, the attributes may be divided into two groups, one group included in the CBR map and the other group included in the filter bucket.

1〜3に説明した属性のためのフィルタ述語は、上述したステップ498によって削減できる。更にインテリジェントルータ92がビジー状態ではない場合(ステップ520参照)、述語毎の又はこの他の正確なフィルタ照合を用いて、CBRテーブルに基づいて、部分的にカバーされたグリッドセルによって判定されたフィルタバケツにこのようなパケットを照合する。そのグリッドセル又は量子化された領域に関するフィルタバケツは、(ステップ482〜500における)プリコンピュテーションによって(フィルタの総数から)既に削減されているので、この処理は、単純な述語毎のCBRを行うだけのより効率的な処理である。   The filter predicates for the attributes described in 1-3 can be reduced by step 498 described above. Furthermore, if the intelligent router 92 is not busy (see step 520), the filter determined by the partially covered grid cell based on the CBR table using per-predicate or other exact filter matching. Match such packets to the bucket. Since the filter bucket for that grid cell or quantized region has already been reduced (from the total number of filters) by precomputation (in steps 482-500), this process performs a simple per-predicate CBR. It's just a more efficient process.

(ステップ508で判定された)CBRテーブルに基づくパケットをルーティングする前に(ステップ512)処理は、グリッドセルへのマッピングによって判定されたフィルタバケツについて、部分的にカバーされたグリッドセルにマッピングされた削減されたフィルタ述語又はパケットがあるか否かを判定する(ステップ522)。このような削減されたフィルタ述語がある場合、(例えば、上述の具体例1〜3)又はこのようなマッピングされたパケットがある場合、述語毎の又はこの他の正確なフィルタ照合が実行される(ステップ524)。そして、照合されたパケットは、CBRテーブルと正確な照合によって、例えば、2つの処理から得られたインタフェースリストを照合することによって、決定されたルーティング処理に基づいて、ルーティングされ(ステップ512)、パケット統計情報が更新される(ステップ514)。   Prior to routing the packet based on the CBR table (determined in step 508) (step 512), the process was mapped to the partially covered grid cell for the filter bucket determined by mapping to the grid cell. It is determined whether there is a reduced filter predicate or packet (step 522). If there are such reduced filter predicates (eg, Examples 1-3 above) or if there are such mapped packets, a per-predicate or other exact filter match is performed. (Step 524). The matched packet is then routed based on the routing process determined by checking the CBR table with an exact match, for example, by matching the interface list obtained from the two processes (step 512). The statistical information is updated (step 514).

処理480の変形例では、トラヒック閾値検査ステップ510は、例えば、ステップ518及びステップ524等の演算的負荷が大きい幾つかのステップのみに先行して行われ、処理の無駄と演算負荷とのバランスが考慮される。更に、処理480は、完全にカバーされたグリッドセルにマッピングされたパケットと、部分的にカバーされたグリッドセルにマッピングされたパケットとについて、別々のパスを有していてもよい。この場合、トラヒックの閾値ステップ510は、部分的にカバーされたグリッドセルのパスのみにおいて実行してもよい。   In a variation of the process 480, the traffic threshold check step 510 is performed prior to only some steps with a large computational load, such as step 518 and step 524, and the balance between processing waste and computational load is balanced. Be considered. Further, process 480 may have separate paths for packets mapped to fully covered grid cells and packets mapped to partially covered grid cells. In this case, the traffic threshold step 510 may be performed only on the path of the partially covered grid cell.

処理480における漏れ削減ステップ516は、ここに説明するより高度な漏れ削減手続きに置き換えることができる。高度な漏れ削減手続きはとは、漏れエラーを更に削減できる処理である。例えば、グリッドテーブルの探索の後に外積を求めることによって、グリッドセル内で正確な多次元の照合を実行できる。外積演算は、以下のような処理を含む。   The leak reduction step 516 in process 480 can be replaced with a more sophisticated leak reduction procedure described herein. Advanced leak reduction procedures are processes that can further reduce leak errors. For example, by obtaining the outer product after searching the grid table, accurate multidimensional matching can be performed in the grid cell. The cross product operation includes the following processing.

a.上述のように、何らかの一次元の正確な照合法を用いて、一次元の正確な照合を行う。この代替的のステップの主な特徴は、転送ノードのリストではなく、フィルタラベルのリストが作成されるという点である。   a. As described above, one-dimensional accurate matching is performed using any one-dimensional accurate matching method. The main feature of this alternative step is that a list of filter labels is created rather than a list of forwarding nodes.

b.リストが空であるなら(すなわち一致がない)場合、パケットは、除外されている。   b. If the list is empty (ie there is no match), the packet is excluded.

c.少なくとも1つの一致があれば、探索処理は、他の属性に進む。以下の短絡条件(short-circuiting conditions)のいずれかが満たされるまで、ステップa〜cを繰り返す。(1)いずれかの次元において、不一致が検出される。(2)先の一次元検査によって生成された全てのフィルタラベルリスト内において、共通のフィルタラベルが全くない。(3)全ての次元が検査された。   c. If there is at least one match, the search process proceeds to another attribute. Steps a through c are repeated until any of the following short-circuiting conditions are met. (1) A mismatch is detected in any dimension. (2) There is no common filter label in all the filter label lists generated by the previous one-dimensional inspection. (3) All dimensions were examined.

d.ステップcに示した除外条件のいずれも成立せず、及び全ての属性の検査において不一致がなかった場合、パケットを受け入れる決定が下される。   d. If none of the exclusion conditions shown in step c is met and there is no mismatch in all attribute checks, a decision is made to accept the packet.

例えば上の図において、属性値(a,d)を有するパケットは、$1の検査についてF2を生成し、$2の検査についてF1を生成する。2つのフィルタラベルリストの間には、重複する部分が全くないので、パケットは、除外される。一方、属性値(a,c)を有するパケットは、$1及び$2の検査の両方でF2を生成し、このため、パケットは受け入れられる。この手続きは、最終的な多次元の分析においても略々正確であるので、これは、単にパケットを除外するための検査ではなく、パケットを受け入れるための検査であるとも言える。概算が行われるのは、フィルタの属性検査における切捨てのみである。この問題は、解決できない問題ではない。例えば、この問題は、以下の手続きによって回避できる。   For example, in the above diagram, a packet having attribute values (a, d) generates F2 for the $ 1 check and F1 for the $ 2 check. Since there is no overlap between the two filter label lists, the packet is excluded. On the other hand, packets with attribute values (a, c) generate F2 in both $ 1 and $ 2 checks, so the packet is accepted. Since this procedure is substantially accurate in the final multidimensional analysis, it can be said that this is not just a test to exclude packets, but a test to accept packets. An approximation is only made for truncation in the filter attribute check. This problem is not an unsolvable problem. For example, this problem can be avoided by the following procedure.

1.完全なセットのサブセット順列に対応している属性のサブセットを含む複数のグリッド表を作成する(例えば、($1、$2、$3)を一方の組とし、($2、$4、$5)を他方の組として選択する)。述語に関する長いリストを有するフィルタは、少なくとも1個のこのようなグリッドテーブルによってカバーされる。   1. Create multiple grid tables containing subsets of attributes corresponding to a complete set of subset permutations (eg, ($ 1, $ 2, $ 3) as one set, ($ 2, $ 4, $ 5) is selected as the other set). A filter with a long list of predicates is covered by at least one such grid table.

2.全ての属性について、外積検査を実行する多くの述語を有するフィルタは、本質的に選択的であり、ステップcに概説したパケット除外する条件(例えば、フィルタラベルリスト論理積)のいずれも、全ての属性が検査される前に生じる可能性があるので、短絡の確率(probability of short-circuiting)は、非常に高い。   2. For all attributes, filters with many predicates that perform cross product checking are inherently selective, and any of the packet exclusion conditions outlined in step c (eg, filter label list AND) The probability of short-circuiting is very high because it can occur before the attribute is examined.

多くの述語を含むフィルタは、非実用的であり、希であるので、フィルタ表現の切捨ては、必要ではあるが、実際には頻繁には行われない。   Filters containing many predicates are impractical and rare, so truncation of the filter expression is necessary but not frequently done in practice.

空間量子化及び外積を複合したハイブリッドな手法及びマルチテーブル探索法は、上述のように、本発明の更なる主要な要素を構成し、これらの処理は、後述するように、いずれも外積法を用いた従来の手法におけるスケーラビリティの欠如の問題を解決する。   As described above, the hybrid method and the multi-table search method combining spatial quantization and outer product constitute further main elements of the present invention, and as described later, these processes are all performed by the outer product method. Solve the problem of lack of scalability in the traditional method used.

点フィルタの場合、外積法は、正確である。しかしながら、範囲フィルタの場合、隣接するフィルタ境界の任意の対間で保存すべきフィルタラベルのリストとして外積を行う処理において、従来より2つの問題がある。第1の問題として、システムに、重複の度合いが高い範囲フィルタが挿入された場合保存される情報は、フィルタの数をNとして、N2のオーダとなる。第2に、リスト論理積ステップは、Nのオーダとなり、この処理は、Nが大きな場合、非常に遅い処理となる。グリッド検索と外積処理とを複合したハイブリッドな手法では、同じグリッドセルに含まれるフィルタのみを保存し、そのグリッドセルの境界に含まれるパケットを照合すればよいため、この問題を妥当なサイズに削減できる。グリッドセルは、ある意味、隣接しているフィルタ境界の間からのフィルタラベルリストを保存する役割を引き継いでおり、グリッドセルの数も削減されているので、フィルタラベルリストを保存する必要がある。   For point filters, the outer product method is accurate. However, in the case of a range filter, there are two problems in the process of performing an outer product as a list of filter labels to be stored between any pair of adjacent filter boundaries. As a first problem, information stored when a range filter having a high degree of overlap is inserted into the system is on the order of N2, where N is the number of filters. Second, the list AND step is on the order of N, and this process is very slow when N is large. In a hybrid method that combines grid search and cross product processing, only the filters contained in the same grid cell need be stored, and the packets contained in the boundary of the grid cell need only be matched, reducing this problem to a reasonable size. it can. In a sense, the grid cell takes over the role of storing the filter label list from between adjacent filter boundaries, and the number of grid cells is reduced, so the filter label list needs to be stored.

グリッドがフィルタ境界分布に基づいて構成される場合、偶数個のフィルタの偶数は、如何なる属性次元にも全ての属性次元における各グリッドセル間隔を生じる。Nが小さい場合、ストレージ問題(storage problem)N2は、大きな問題とはならない。例えば、32個の間隔を有するグリッドでは、(N/32)2*=N/32によって、ストレージ問題が軽減される。また、リスト論理積処理の速度の問題についても同様に軽減される。   If the grid is constructed based on the filter boundary distribution, an even number of filters will result in each grid cell spacing in all attribute dimensions in any attribute dimension. If N is small, the storage problem N2 is not a big problem. For example, in a grid with 32 intervals, the storage problem is mitigated by (N / 32) 2 * = N / 32. Further, the problem of the speed of the list logical product processing is similarly reduced.

残りのグリッドセルの数が実際に小さければ、上述した外積処理は、良好に作用する。様々な順列の組に属性を分割し、各組につき1つのCBRテーブルを割り当てる処理により、各テーブル内のグリッドセルの数を妥当な数に制限できる。例えば、それぞれの属性軸の部門の数をLとすると、k個の属性のためのグリッドセルの総数は、LKとなる。マルチプルテーブル(サイズ=4)法を用いることによって、サイズは、ML4まで削減される。ここで、Mは、順列K!/(K4!)4!の総数より小さい数である。なお、幾つかの順列は、大きく重なり合い、そのうちの1つを代表として選択してもよい(例えば、{$1,$2,$3}、{$1,$2,$4}、{$1,$2,$5})。   If the number of remaining grid cells is actually small, the cross product process described above works well. By dividing the attributes into various permutation pairs and assigning one CBR table for each pair, the number of grid cells in each table can be limited to a reasonable number. For example, if the number of departments on each attribute axis is L, the total number of grid cells for k attributes is LK. By using the multiple table (size = 4) method, the size is reduced to ML4. Where M is the permutation K! / (K4!) 4! The number is smaller than the total number. Note that some permutations overlap greatly, and one of them may be selected as a representative (for example, {$ 1, $ 2, $ 3}, {$ 1, $ 2, $ 4}, {$ 1, $ 2, $ 5}).

この実施例によるCBR処理(例えば処理480)(正確な述語毎のフィルタ照合ステップ516、524を除く。)は、少なくとも以下のような特徴を有している。1)パケット転送速度は、非常に速く、IPルーティングに匹敵し、O[k log(L)]回のステップのみを必要とする。ここで、Lは、何らかの属性軸における部門の数であり、kは、量子化され、マッピングされる属性の数である。4個の属性があり、各属性が32の領域に分割される場合、必要となるステップは、約22ステップである。2)パケット転送速度は、実時間において一定である。すなわち、これは、フィルタの数(N)に依存しない。この性質により、このCBR処理によって、維持可能な最大の帯域幅を見積もることができる。3)また、動的な更新も同様に早い。例えば、フィルタの挿入は、実施例に応じて、O(Lk)ステップで実現される。4)ストレージ要求は、小さくて、限定的であり、およそk(L−1)SA+NrLK/8である。ここで、SAは、バイトで表現される属性データタイプのサイズであり、Nrは、ルータにおいて転送されるインタフェースの数である。第1の項は、データ構造におけるk個のインデクス成分の総サイズであり、第2の項は、インデクスが付された実際の転送コンポーネント(すなわち、CBRテーブル)を表している。例えば、8個のインタフェースを備えるルータにおいて、4個の整数の属性と、32分割CBRを用いる場合、ストレージの量は、1MBに過ぎない。5)インデクス付与データ構造は、はるかに大きい転送成分から分離され、非常にキャッシングしやすい。例えば、上述の実施例では、インデクス構造のサイズは、4×31×4=496バイトのみである。6)また、グリッドは、フィルタをグループ化し、組織化するためのツールでもある。これは、特に、フィルタを伝播する前のフィルタの併合に有用であり、これにより、この処理は、多数の購読者を含むシステムにおいて非常にスケーラブルなものとなる。このように、CBR処理480は、高速で、予測可能で、動的で、スケーラブルで、大きなメモリを必要とせず、柔軟であり、したがって、発行−購読ネットワークのコアにおいて実用的に活用できる手法である。   The CBR processing (for example, processing 480) according to this embodiment (excluding the accurate filter matching steps 516 and 524 for each predicate) has at least the following characteristics. 1) The packet transfer rate is very fast, comparable to IP routing and requires only O [k log (L)] steps. Here, L is the number of departments on some attribute axis, and k is the number of attributes that are quantized and mapped. If there are 4 attributes and each attribute is divided into 32 regions, the required steps are about 22 steps. 2) The packet transfer rate is constant in real time. That is, it does not depend on the number of filters (N). This property makes it possible to estimate the maximum bandwidth that can be maintained by this CBR process. 3) Also, dynamic updates are fast as well. For example, filter insertion is realized in O (Lk) steps, depending on the embodiment. 4) Storage requirements are small and limited, approximately k (L-1) SA + NrLK / 8. Here, SA is the size of the attribute data type expressed in bytes, and Nr is the number of interfaces transferred in the router. The first term is the total size of k index components in the data structure, and the second term represents the actual transfer component (ie, CBR table) to which the index is attached. For example, when a router having 8 interfaces uses 4 integer attributes and 32-divided CBR, the amount of storage is only 1 MB. 5) The indexed data structure is separated from much larger transfer components and is very easy to cache. For example, in the above-described embodiment, the size of the index structure is only 4 × 31 × 4 = 496 bytes. 6) The grid is also a tool for grouping and organizing filters. This is particularly useful for merging filters before propagating the filters, which makes the process very scalable in systems with a large number of subscribers. Thus, the CBR process 480 is fast, predictable, dynamic, scalable, does not require a large amount of memory, is flexible, and thus can be used practically in the core of a publish-subscribe network. is there.

適応グリッド
上述のように、グリッドは、属性空間を空間的に量子化することによって、形成される。属性空間は、通常は、均一に量子化される。ここで、属性空間に対し、例えば、過去のパケット分布に基づいて、適応的な空間量子化を行えば、グリッドの分解能と、したがって、CBR処理480の効率を高めることができる。適応型の量子化では、一致するパケットが最も多く受け取られると予想される属性空間の領域を判定する。例えば、適応型の量子化では、過去のパケット分布が最も集中している属性空間の領域を判定できる。そして、判定された1又は複数の領域は、属性空間内の他の量子化領域より高い精度で量子化される。換言すれば、判定された領域では、属性空間の他の量子化領域に比べて、グリッドセルの数がより大きくなり、グリッドセルのサイズがより小さくなる。これを以下の適応グリッドの2つの図に示す。
Adaptive Grid As described above, the grid is formed by spatially quantizing the attribute space. The attribute space is usually quantized uniformly. Here, by performing adaptive spatial quantization on the attribute space, for example, based on the past packet distribution, the resolution of the grid and, therefore, the efficiency of the CBR processing 480 can be improved. With adaptive quantization, the region of the attribute space where the most matching packets are expected to be received is determined. For example, in adaptive quantization, it is possible to determine an attribute space region where past packet distributions are most concentrated. The determined region or regions are quantized with higher accuracy than other quantization regions in the attribute space. In other words, in the determined area, the number of grid cells is larger and the size of the grid cells is smaller than in other quantization areas of the attribute space. This is shown in the two diagrams of the adaptive grid below.

Figure 2009163753
Figure 2009163753

Figure 2009163753
Figure 2009163753

第1の図では、パケットトラヒックが混んでいる領域には、より高精度なグリッドが重ね合わされている。代替えとなる手法を示す第2の図では、例えば、量子化された座標(3,2)(4,2)(3,3)(4,3)によって取り囲まれている領域においては、グリッドセルがより高精度になり、集中するように、属性軸におけるグリッド間隔を変更している。   In FIG. 1, a grid with higher accuracy is overlaid in an area where packet traffic is crowded. In the second diagram showing an alternative approach, for example, in a region surrounded by quantized coordinates (3, 2) (4, 2) (3, 3) (4, 3), grid cells The grid spacing on the attribute axis has been changed to be more accurate and focused.

このような適応グリッドの利点は、非常に多い。この図からわかるように、領域Zは、適応的に量子化されている。領域Zでは、適応化を行わなければ4(4)グリッドセルの領域に、64(64)グリッドセルが設けられている。この図に示すように、フィルタ適用範囲情報sSは、処理前には部分的にカバーされた3つのグリッドセルを含むが、これが適応グリッドによって、1(1)個の部分的にカバーされたグリッドセルYのみになる。したがって、潜在的な漏れの可能性が著しく低減される。更に、領域Z内の64個のグリッドセルの1つ以上が部分的に覆われる場合、これらの各グリッドセルにおける潜在的な漏れの可能性は、部分的にカバーされたグリッドセルYより更に大幅に小さくなる。これは、領域Zにおいて、部分的にカバーされた各グリッドセルにおける緩和領域が、部分的にカバーされたグリッドセルYにおける緩和領域より大幅に小さくなるためである。したがって、適応グリッドを用いることによって、CBR処理480の効率を高めることができる。   The advantages of such an adaptive grid are numerous. As can be seen from this figure, the region Z is adaptively quantized. In the region Z, 64 (64) grid cells are provided in the region of 4 (4) grid cells unless adaptation is performed. As shown in this figure, the filter coverage information sS includes three grid cells partially covered before processing, which are 1 (1) partially covered grids by the adaptive grid. Only cell Y is present. Thus, the potential leakage potential is significantly reduced. Furthermore, if one or more of the 64 grid cells in region Z are partially covered, the potential leakage potential in each of these grid cells is even greater than the partially covered grid cell Y. Becomes smaller. This is because, in the region Z, the relaxation region in each partially covered grid cell is significantly smaller than the relaxation region in the partially covered grid cell Y. Therefore, the efficiency of the CBR process 480 can be increased by using an adaptive grid.

第2の手法では、同数のグリッドセルを生成するので、第1の手法に比べて、ストレージ要求が高まらないという利点がある。但し、第2の手法は、第1の手法に比べて、精度の点で劣る。   In the second method, since the same number of grid cells are generated, there is an advantage that the storage requirement does not increase as compared with the first method. However, the second method is inferior in accuracy compared to the first method.

発行−購読アーキテクチャを有するクエリ応答の実現
ここでは、クエリ応答型のインタラクションをサポートする発行−購読ネットワークを用いた一連の手法を説明する。この処理は、発行−購読スタイル、すなわち、発行(通知とも呼ばれる)及び購読予約の基本的な抽象概念とは異なるクエリ応答スタイル、すなわち、広告(オファーとも呼ばれる)、クエリ及び応答のマッピングを含む。更なる変更点として、ここでは、広告とクエリの単集合(単一のコンテンツアイテムを特徴付ける)と広告とクエリの集合(複数のコンテンツアイテムを特徴付ける)とを区別する。
Implementing Query Response with Issue-Subscribe Architecture Here, a series of approaches using an issue-subscribe network that supports query-response type interaction is described. This process includes a query response style, ie, advertisement (also called offer), query and response mapping, that is different from the basic abstraction of publish-subscribe style, ie publish (also called notification) and subscription. As a further change, here we distinguish between a single set of advertisements and queries (characterizing a single content item) and a set of advertisements and queries (characterizing multiple content items).

上述のように、発行−購読ネットワークでは、発行者は、発行又は通知と呼ばれるコンテンツアイテムを作成し、配信する。多くのシステムにおいて、この情報は、種別化された属性のタプルとして構造化され、幾つかのシステムでは、サブジェクトと呼ばれる区別される属性を用いて、通知を初期的に分類する。購読者は、自らが興味を有する通知を特徴付ける購読予約を作成し、送信する。通知は、多くの場合、単集合のコンテンツアイテムであり、購読予約は、複雑な表現を用いて、興味ある通知の集合を特徴付ける。同じエンティティは、発行者と購読者の両方として機能できる。インタラクションは、発行者がコンテンツアイテムを購読者に発行することによって開始される。このプッシュ型配信は、購読予約及び通知間で、ある種の時間的順序を尊重する。具体的には、通知は、通知があった時点で有効な購読予約のみに対して照合され、将来の購読予約に対しては照合されない。   As described above, in a publish-subscribe network, publishers create and distribute content items called publishing or notifications. In many systems, this information is structured as a tuple of categorized attributes, and in some systems, notifications are initially classified using a distinct attribute called a subject. Subscribers create and send subscriptions that characterize the notifications they are interested in. Notifications are often a single set of content items, and subscription subscriptions use a complex representation to characterize a collection of interesting notifications. The same entity can function as both an issuer and a subscriber. The interaction is initiated by the publisher publishing the content item to the subscriber. This push distribution respects some sort of temporal order between subscription reservations and notifications. Specifically, notifications are only verified against subscription subscriptions that are valid at the time of notification and not against future subscriptions.

インタラクションの異なる形式であるクエリ応答スタイルは、インターネット検索エンジンやピアツーピアコンテンツコンテンツ共有システムを含む多くの一般的な分散アプリケーションの基礎となる。クエリ応答ソフトウェアアプリケーションでは、広告作成者(advertiser producer)と呼ばれるエンティティは、コンテンツを他のエンティティに提供し、広告作成者は、広告を介してコンテンツの存在を告知し、又は、提供できる単集合コンテンツアイテム又はコンテンツアイテムの集合を特徴付ける情報を提供する。要求者又は消費者と呼ばれる他方のエンティティは、興味がある単集合コンテンツアイテム又はコンテンツアイテムの集合を特徴付けるクエリ又は要求を同報通信する。アプリケーションは、消費者への応答として、一致する広告を特定し、これを消費者に配信する。このように、インタラクションは、消費者が広告及びコンテンツアイテム自体を作成者に求める(プルする)ことによって開始される。このプル型の送信は、広告とクエリの中で、ある種の時間的な順序を尊重する。具体的には、クエリは、クエリが発せられた時点において有効である広告だけに関して応答を得るが、将来の広告に関しては応答を得ない。   Query response style, a different form of interaction, is the basis for many common distributed applications, including Internet search engines and peer-to-peer content content sharing systems. In a query response software application, an entity called an advertiser producer provides content to other entities, and the ad creator can announce or provide the presence of content via advertisements. Provides information characterizing an item or collection of content items. The other entity, called the requester or consumer, broadcasts queries or requests that characterize the single set of content items or sets of content items that are of interest. In response to the consumer, the application identifies a matching advertisement and delivers it to the consumer. Thus, the interaction is initiated by the consumer asking (pulling) the advertisement and the content item itself from the creator. This pull-type transmission respects some sort of temporal order in advertisements and queries. Specifically, the query gets a response only for advertisements that are valid at the time the query is issued, but does not get a response for future advertisements.

ここでは、発行−購読のプッシュ型インタラクションを用いて、クエリ−応答のプル型インタラクションをサポートするための一連の処理について説明する。以下では、これを実現するための5つの例示的な処理について説明する。   Here, a series of processes for supporting query-response pull-type interaction using issue-subscribe push-type interaction will be described. In the following, five exemplary processes for realizing this will be described.

1.図24Aは、発行−購読システムを用いた第1のクエリ応答処理600を示すフローチャートである。処理600は、様々な発行−購読システムで実行できる。例えば、処理600は、ソフトウェア制御の下で、インテリジェントルータ92(又は対応する機能を有するASIC91)内のプロセッサ93により実行してもよく、例えば、ユーザ装置122、100内のプロセッサ134、114によって実行されるエージェント128、105として表現されるソフトウェアモジュールにおいて実現してもよい。   1. FIG. 24A is a flowchart illustrating a first query response process 600 using an issue-subscribe system. Process 600 may be performed with various publish-subscribe systems. For example, the process 600 may be performed by the processor 93 in the intelligent router 92 (or ASIC 91 with corresponding functionality) under software control, eg, performed by the processors 134, 114 in the user devices 122, 100. May be implemented in software modules represented as agents 128, 105.

処理600では、発行−購読ネットワークを用いてクエリと広告とを照合し、広告主は、購読予約を用いて広告の単集合又は集合を登録し(ステップ602)、要求者は、発行/通知を用いて、単集合クエリを発行する(ステップ604)。換言すれば、広告の単集合又は集合は、購読予約にマッピングされ、単集合クエリは、通知にマッピングされるCBRを実行する発行−購読システムによって、購読予約(広告)を通知のためのフィルタ(クエリ)として用いて、一致する全ての通知が広告主にプッシュされる(ステップ606)。CBRは、上述したインフラストラクチャを用いて、上述した処理のいずれに従って実行してもよい。広告主は、何らかの非発行−購読手段(例えば要求者へのユニキャスト接続)を介して、又は発行−購読ネットワークを用いた同意に基づく取り決めを介して(例えば、通知として配信される要求を受け取るために、要求者に対し、個別の購読予約(要求者の通に対応している)を登録することを求める。)、通知を受け取り、要求者に応答を返す(ステップ608)。   In process 600, the publish-subscribe network is used to match the query with the advertisement, the advertiser registers a single set or set of advertisements using the subscription reservation (step 602), and the requester issues the issue / notify. Use to issue a single set query (step 604). In other words, a single set or set of advertisements is mapped to a subscription reservation, and a single set query is a filter for notification of subscription reservations (advertisements) by a publish-subscribe system that performs CBR mapped to notifications ( Query), all matching notifications are pushed to the advertiser (step 606). The CBR may be executed according to any of the processes described above using the infrastructure described above. The advertiser receives the request delivered via some non-issue-subscription means (eg unicast connection to the requestor) or via an agreement-based arrangement using the issue-subscribe network (eg notification) Therefore, the requester is requested to register an individual subscription reservation (corresponding to the requester's communication).), A notification is received and a response is returned to the requester (step 608).

図24Bは、処理600を更に説明するシーケンス図である。図24Bは、広告主(例えば、発行者装置100を使用する)と、CBRインフラストラクチャ(例えば、インテリジェントルータ92のネットワーク)と、要求者(例えば、購読者装置122を使用する)との間のインタラクションを表している。このシーケンス図は、好ましくは、処理600を実行する複数のプロセッサ(例えば、プロセッサ93、プロセッサ114及びプロセッサ132)の動作を示している。   FIG. 24B is a sequence diagram further illustrating the process 600. FIG. 24B shows the relationship between an advertiser (eg, using publisher device 100), a CBR infrastructure (eg, network of intelligent routers 92), and a requester (eg, using subscriber device 122). Represents an interaction. This sequence diagram preferably illustrates the operation of multiple processors (eg, processor 93, processor 114, and processor 132) that perform process 600.

2.図24Cは、発行−購読システムを用いる第2のクエリ応答処理610を示すフローチャートである。処理610は、様々な発行−購読システムで実行できる。例えば、処理610は、ソフトウェア制御の下で、インテリジェントルータ92(又は対応する機能を有するASIC91)内のプロセッサ93により実行してもよく、例えば、ユーザ装置122、100内のプロセッサ134、114によって実行されるエージェント128、105として表現されるソフトウェアモジュールにおいて実現してもよい。   2. FIG. 24C is a flowchart illustrating a second query response process 610 using the issue-subscribe system. Process 610 can be performed by various publish-subscribe systems. For example, the process 610 may be performed by the processor 93 in the intelligent router 92 (or ASIC 91 having a corresponding function) under software control, for example, by the processors 134, 114 in the user devices 122, 100. May be implemented in software modules represented as agents 128, 105.

処理610では、作成者は、関連する一対のサブジェクトを用いて、コンテンツアイテムを二重に配信する。作成者は、単集合コンテンツアイテムの初期の広告のために、初期サブジェクトと呼ばれる、この対の一方のサブジェクトを用いて、通知を発行する(ステップ616)。更に、作成者は、通知を発行する過去サブジェクト(past subject)と呼ばれる、対の他方のサブジェクトを用いて、先に初期サブジェクトによって発行された広告を定期的に再発行する(ステップ618)。消費者は、初期サブジェクトに関する1つの購読予約を提出して、新たな広告を受け取り(ステップ612)、及び過去サブジェクトに関する別の購読予約を提出して、以前に発行された広告を受け取る(ステップ614)。これに代えて、消費者は、以前に発行された広告のみ購読してもよい。これに一致する以前に発行された広告(及び、購読予約されている場合、新たな広告)は、CBRを用いて消費者にプッシュされる(ステップ620)。何らかの時点で、消費者は、過去サブジェクトのための購読を停止する(ステップ622)。   In process 610, the author delivers the content item twice using a pair of related subjects. The author issues a notification with one subject of this pair, called the initial subject, for the initial advertisement of the single set content item (step 616). In addition, the creator periodically reissues the advertisement previously issued by the initial subject using the other subject of the pair, called the past subject issuing the notification (step 618). The consumer submits one subscription reservation for the initial subject and receives a new advertisement (step 612), and submits another subscription reservation for the past subject to receive a previously published advertisement (step 614). ). Alternatively, the consumer may subscribe only to previously published advertisements. A previously published advertisement that matches this (and a new advertisement if subscribed) is pushed to the consumer using the CBR (step 620). At some point, the consumer stops subscribing for the past subject (step 622).

図24Dは、処理600を更に説明するシーケンス図である。図24Dは、広告主(例えば、発行者装置100を使用する)と、CBRインフラストラクチャ(例えば、インテリジェントルータ92のネットワーク)と、要求者(例えば、購読者装置122を使用する)との間のインタラクションを表している。このシーケンス図は、好ましくは、処理610を実行する複数のプロセッサ(例えば、プロセッサ93、プロセッサ114及びプロセッサ132)の動作を示している。   FIG. 24D is a sequence diagram that further describes process 600. FIG. 24D shows the relationship between an advertiser (eg, using publisher device 100), a CBR infrastructure (eg, network of intelligent routers 92), and a requester (eg, using subscriber device 122). Represents an interaction. This sequence diagram preferably illustrates the operation of multiple processors (eg, processor 93, processor 114, and processor 132) that perform process 610.

3.図24Eは、発行−購読システムを用いる第3のクエリ応答処理630を示すフローチャートである。処理630は、様々な発行−購読システムで実行できる。例えば、処理630は、ソフトウェア制御の下で、インテリジェントルータ92(又は対応する機能を有するASIC91)内のプロセッサ93により実行してもよく、例えば、ユーザ装置122、100内のプロセッサ134、114によって実行されるエージェント128、105として表現されるソフトウェアモジュールにおいて実現してもよい。   3. FIG. 24E is a flowchart illustrating a third query response process 630 using the publish-subscribe system. Process 630 can be performed by various publish-subscribe systems. For example, the process 630 may be performed by the processor 93 in the intelligent router 92 (or ASIC 91 having a corresponding function) under software control, for example, performed by the processors 134, 114 in the user devices 122, 100. May be implemented in software modules represented as agents 128, 105.

発行−購読ネットワークには、例えば上述したようなキャッシング機能が追加され、これにより、過去に発行された通知がキャッシングされ(ステップ632)将来の購読者がこれを利用することができる。作成者は、単集合コンテンツアイテムを広告するための通知を発行する(ステップ634)。消費者は、興味がある以前に広告されたコンテンツアイテムを要求するため(キャッシュから関連する通知を再生することによって提供される。)及び興味があるコンテンツアイテムの将来の広告を得るための両方の目的で単一の購読予約を提出する(ステップ636)。従来の発行−購読ネットワークと同様に、購読予約は、興味があるコンテンツアイテムの集合を特徴付ける。これに一致する、以前に発行された通知は、キャッシュから再生され(ステップ638)、CBRを用いて消費者にプッシュされる(ステップ640)。   The publish-subscribe network is added with a caching function as described above, for example, so that previously issued notifications are cached (step 632) and can be used by future subscribers. The creator issues a notification to advertise the single set content item (step 634). Consumers both to request previously advertised content items of interest (provided by playing relevant notifications from the cache) and to obtain future advertisements of interested content items A single subscription is submitted for purposes (step 636). Similar to traditional publish-subscribe networks, subscription subscriptions characterize a collection of content items of interest. A previously issued notification that matches this is replayed from the cache (step 638) and pushed to the consumer using the CBR (step 640).

図24Fは、処理630を更に説明するシーケンス図である。図24Fは、広告主(例えば、発行者装置100を使用する)と、CBRインフラストラクチャ(例えば、インテリジェントルータ92のネットワーク)と、要求者(例えば、購読者装置122を使用する)との間のインタラクションを表している。このシーケンス図は、好ましくは、処理630を実行する複数のプロセッサ(例えば、プロセッサ93、プロセッサ114及びプロセッサ132)の動作を示している。   FIG. 24F is a sequence diagram for further explaining the process 630. FIG. 24F shows between an advertiser (eg, using publisher device 100), a CBR infrastructure (eg, network of intelligent routers 92), and a requester (eg, using subscriber device 122). Represents an interaction. This sequence diagram preferably illustrates the operation of multiple processors (eg, processor 93, processor 114, and processor 132) that perform process 630.

4.図24G及び図24Hは、発行−購読システムを用いる第4のクエリ応答処理650を示すフローチャートである。処理650は、様々な発行−購読システムで実行できる。例えば、処理650は、ソフトウェア制御の下で、インテリジェントルータ92(又は対応する機能を有するASIC91)内のプロセッサ93により実行してもよく、例えば、ユーザ装置122、100内のプロセッサ134、114によって実行されるエージェント128、105として表現されるソフトウェアモジュールにおいて実現してもよい。   4). 24G and 24H are flowcharts illustrating a fourth query response process 650 using the issue-subscribe system. Process 650 can be performed by various publish-subscribe systems. For example, the process 650 may be performed by the processor 93 in the intelligent router 92 (or ASIC 91 having a corresponding function) under software control, for example, by the processors 134, 114 in the user equipment 122, 100. May be implemented in software modules represented as agents 128, 105.

図24Gは、処理650のデータ広告フェーズを示している。まず、データ広告が受け取られる(ステップ652)。消費者が購読予約を用いて、クエリの組を特定し、作成者が通知を用いて、単集合コンテンツアイテムを広告できるようにするために、及び購読予約と通知のこのような用途に必要となる時間的な順序の逆転を実現するために、データ広告を同等な購読予約に変換する存在論的変換(ontology transformation)を実行する(ステップ654)。購読予約(変換の対象となるデータ広告)は、CBRネットワークに登録される(例えば、購読予約は、インテリジェントルータ92に保存される)(ステップ656)。   FIG. 24G shows the data advertisement phase of process 650. First, a data advertisement is received (step 652). Necessary for consumers to use subscriptions to identify query sets, authors to use notifications to advertise single-set content items, and for such uses for subscriptions and notifications In order to achieve a temporal order reversal, an ontology transformation is performed that transforms the data advertisement into an equivalent subscription (step 654). Subscription subscriptions (data advertisements to be converted) are registered in the CBR network (eg, subscription subscriptions are stored in the intelligent router 92) (step 656).

図24Hは、処理650のクエリ応答フェーズを示している。まず、クエリが受け取られる(ステップ658)。上述したデータ広告と同様に、クエリは、存在論的変換によって、同等な通知に変換される(ステップ660)。ステップ654及びステップ660による古い空間(例えば、データ広告)から新たな空間(例えば、同等な購読予約)への変換は、まず、新たな空間において、古い空間からの属性と表現演算子の組合せを表す属性を定義する処理を含む。更にこの変換は、新たな空間において、古い空間におけるクエリと広告にそれぞれ等しい通知と購読予約を作成する処理を含む。変換は、変換されていないデータ広告が変換されていないクエリに一致する場合に且つこの場合のみに通知が購読予約に一致するという要求を満たさなければならない。   FIG. 24H shows the query response phase of process 650. First, a query is received (step 658). Similar to the data advertisement described above, the query is converted into an equivalent notification by ontological conversion (step 660). The conversion from the old space (eg, data advertisement) to the new space (eg, equivalent subscription) in step 654 and step 660 begins with the combination of attributes and expression operators from the old space in the new space. Includes processing to define attributes to represent. This transformation further includes creating notifications and subscriptions in the new space that are equivalent to queries and advertisements in the old space, respectively. The conversion must meet the requirement that the notification matches the subscription if and only if the unconverted data advertisement matches the unconverted query.

通知(変換されたクエリ)は、CBRを実行する発行−購読システムによって、通知に対するフィルタとして購読予約(変換されたデータ広告)を用いて、広告主にプッシュされる(ステップ662)。CBRは、上述したインフラストラクチャを用いて、上述した処理のいずれに従って実行してもよい。広告主は、何らかの非発行−購読手段(例えば要求者へのユニキャスト接続)を介して、又は発行−購読ネットワークを用いた同意に基づく取り決めを介して変換された通知を受け取り、要求者に応答データを返す(ステップ664)。   The notification (converted query) is pushed to the advertiser by the publish-subscribe system that executes the CBR, using the subscription (converted data advertisement) as a filter for the notification (step 662). The CBR may be executed according to any of the processes described above using the infrastructure described above. The advertiser receives the transformed notification via some non-issue-subscription means (eg unicast connection to the requester) or via an agreement-based arrangement using the issue-subscribe network and responds to the requester Data is returned (step 664).

図24Iは、処理600を更に説明するシーケンス図である。図24Iは、広告主(例えば、発行者装置100を使用する)と、CBRインフラストラクチャ(例えば、インテリジェントルータ92のネットワーク)と、要求者(例えば、購読者装置122を使用する)との間のインタラクションを表している。このシーケンス図は、好ましくは、処理650を実行する複数のプロセッサ(例えば、プロセッサ93、プロセッサ114及びプロセッサ132)の動作を示している。   FIG. 24I is a sequence diagram that further describes process 600. FIG. 24I illustrates between an advertiser (eg, using publisher device 100), a CBR infrastructure (eg, network of intelligent routers 92), and a requester (eg, using subscriber device 122). Represents an interaction. This sequence diagram preferably illustrates the operation of multiple processors (eg, processor 93, processor 114, and processor 132) that perform process 650.

Figure 2009163753
Figure 2009163753

Figure 2009163753
Figure 2009163753

Figure 2009163753
Figure 2009163753

Figure 2009163753
Figure 2009163753

Figure 2009163753
Figure 2009163753

Figure 2009163753
Figure 2009163753

Figure 2009163753
Figure 2009163753

5.第5の処理では、更なるインタフェース点及び/又はメッセージフォーマットにより、発行−購読ネットワークの機能が拡張され、これにより、作成者は、通知、広告及び応答を区別でき、消費者は、購読予約とクエリを区別できる。ネットワークにおいて、様々な基本的要素(primitives)を分離することにより、データ構造、アルゴリズム及びプロトコルの均一の組を用いると同時に、両方のスタイルのインタラクションが実現できる。
持続的で信頼性が高いメッセージ配信
以下、発行−購読ネットワークにおける、ネットワーク、リンク及び/又はノード故障に関連するメッセージの持続的な保存と再生、メッセージフローの再開及び/又は継続のための装置及び方法について説明する。メッセージの持続性とは、メッセージを保存し、後にこの保存されたメッセージを読み出すことができる性質を指す。例えば電子メールを始めとする多くの特定の用途では、通常、ネットワークを介して通信されるメッセージについて、長いメッセージ持続性が必要とされる。ネットワーク障害が発生しない理想的な条件では、常時接続された購読者は、これらの特定の用途において必要とされる以上の如何なる持続も求めない。しかしながら、現実には、メッセージは、ネットワークを介して伝送されている間に様々な理由のために「失われる」ことがある。この理由としては、例えば、(1)ネットワーク又はユーザ側における故障又はバッファオーバフローや(2)ユーザが自らネットワーク接続を切断した後、所定の期間経過後に再び接続する場合等がある。
5. In the fifth process, additional interface points and / or message formats extend the functionality of the publish-subscribe network so that authors can distinguish between notifications, advertisements and responses, and consumers can Can distinguish queries. By separating the various primitives in the network, both styles of interaction can be achieved while using a uniform set of data structures, algorithms and protocols.
Persistent and reliable message delivery In the following, in an publish-subscribe network, an apparatus for the persistent storage and playback of messages related to network, link and / or node failures, the resumption and / or continuation of message flows and A method will be described. Message persistence refers to the property that a message can be stored and the stored message can be retrieved later. Many specific applications, such as e-mail, typically require long message persistence for messages communicated over a network. In ideal conditions where no network failure occurs, always-connected subscribers do not require any persistence beyond what is required in these particular applications. In reality, however, messages may be “lost” for various reasons while being transmitted over the network. The reason for this is, for example, (1) a failure or buffer overflow on the network or user side, or (2) a case where the user disconnects the network and then reconnects after a predetermined period.

この実施例におけるイベント通知プラットフォームの持続モデルは、短期持続と長期持続の2つのレベルに分割される。短期持続は、ネットワーク輻輳又は短期的なリンク障害のために失われたパケットを復元する。長期持続は、例えば、ユーザ接続の障害、ユーザ装置の障害、アプリケーションの障害及び/又はより長い期間ネットワーク内の障害等を含む他の障害に起因して失われたパケットを復元する。   The event notification platform persistence model in this example is divided into two levels: short-term persistence and long-term persistence. Short duration restores packets lost due to network congestion or short term link failures. Long-lasting recovers lost packets due to other failures, including, for example, user connection failures, user device failures, application failures and / or failures in the network for longer periods of time.

チャンネル(例えば、上述のように、)は、持続的である場合もあり、実時間である場合もある。実時間チャンネルは、通常、実時間のみにおいて有用なデータを送信し、アプリケーション固有の如何なる持続要求も有さない。持続的なチャンネルは、持続タイムフレームTの間、ネットワークを伝送されるデータを保存する。換言すれば、持続的なチャンネルにおいては、持続性は、タイムフレームTの間保証されている。データのこの持続は、例えば次のように実現される。チャンネルの持続的な所要時間の間、各エッジノードでデータをキャッシングする。障害が発生した条件下で、ユーザにとってトランスペアレントなキャッシュからデータを読み出す。ユーザがキャッシュからデータを検索できるようにする。ルータ障害を防ぎ、ルータの間の信頼できるトンネルを設立することによってネットワークを介したデータのフローを持続的にする。そして、複製によって、チャンネル成分を障害から保護する。
A.キャッシングによる持続
時限式の持続(タイムフレームTによる)は、発行−購読ネットワークから、直前のタイムフレームTにおけるデータを検索する能力である。例えば、購読者がネットワーク接続を切断した場合、購読者が不在の間に受け取られる、持続的なチャンネルに関する如何なるデータも(データの受信から)タイムフレームTが経過するまでの間、ネットワークで保持される。ユーザがタイムフレームT内に戻れば、如何なるデータも失われない。
The channel (eg, as described above) may be persistent or real time. Real-time channels typically transmit useful data only in real time and do not have any application-specific persistence requirements. A persistent channel stores data transmitted over the network for a sustained time frame T. In other words, in a persistent channel, persistence is guaranteed for the time frame T. This persistence of data is realized, for example, as follows. Data is cached at each edge node for the duration of the channel. Data is read from a cache that is transparent to the user under conditions of failure. Allow users to retrieve data from the cache. Prevents router failures and establishes a reliable tunnel between routers to make the flow of data through the network persistent. Duplication protects the channel components from failure.
A. Persistence by caching Timed persistence (by time frame T) is the ability to retrieve data in the previous time frame T from the publish-subscribe network. For example, if a subscriber disconnects from the network, any data about the persistent channel that is received while the subscriber is absent is retained on the network until the time frame T elapses (from receipt of the data). The If the user returns within time frame T, no data is lost.

図25Aは、キャッシングによって持続性を実現する発行−購読ネットワークの一部を示すブロック図である。図25Aに示すように、ネットワークは、コアルーティングノードとエッジルーティングノードとを備える。各ルーティングノードは、図4を用いて上述したように、好ましくは、インテリジェントルータ92(エッジルーティングノードと共に示す)と、従来のバックボーンルータ(図示せず)とを備える。持続的なチャンネルのためのキャッシングを行う必要がある各インテリジェントルータ92は、図25Aに示すように、好ましくは同じ場所にキャッシュマネージャ218を備える。キャッシュマネージャ218については、図8を用いて上述した通りである。インテリジェントルータ92は、好ましくは、失われたデータを読み出し又はルータ故障から復元するための短期的な持続性を実現する。キャッシュマネージャ218は、チャンネルにおける長期的な持続を実現するために、データをキャッシングする。キャッシュマネージャ218は、好ましくは、キャッシュ540内にこのデータをキャッシングする。キャッシュ540は、好ましくは、メモリとディスク(図示せず)を含んでいる。また、図25Aに示すエージェント128は、図5を用いて上述したように、好ましくは、購読者装置122(図25Aでは示していない)内に設けられる。エージェント128は、キャッシュマネージャ218と通信し、キャッシュ540からデータを検索し、検索したデータを受け取り、検索したデータを組織化する。   FIG. 25A is a block diagram illustrating a portion of a publish-subscribe network that provides persistence through caching. As shown in FIG. 25A, the network includes a core routing node and an edge routing node. Each routing node preferably comprises an intelligent router 92 (shown with an edge routing node) and a conventional backbone router (not shown), as described above with reference to FIG. Each intelligent router 92 that needs to perform caching for persistent channels comprises a cache manager 218, preferably in the same location, as shown in FIG. 25A. The cache manager 218 is as described above with reference to FIG. Intelligent router 92 preferably provides short-term persistence for retrieving lost data or recovering from a router failure. The cache manager 218 caches data to achieve long-term persistence in the channel. Cache manager 218 preferably caches this data in cache 540. Cache 540 preferably includes memory and disk (not shown). The agent 128 shown in FIG. 25A is preferably provided in the subscriber device 122 (not shown in FIG. 25A), as described above with reference to FIG. Agent 128 communicates with cache manager 218 to retrieve data from cache 540, receive the retrieved data, and organize the retrieved data.

図25Aに示していないが、エッジルーティングノードよりアップストリーム側の第1のレベルの各コアルーティングノードは、好ましくは、キャッシュマネージャ218を備える。第1のレベルのアップストリームコアルーティングノードとは、エッジルーティングノードよりアップストリーム側に隣接するルーティングノードを意味する。発行−購読ネットワークは、多くの場合、複数の第1のレベルのコアルーティングノードを含んでいるが、図25Aでは、1つの第1のレベルのコアルーティングノード、すなわちコアルーティングノード548のみを示している。上述のように、キャッシュマネージャ218は、自らが存在するネットワークノードにおいて、データのローカルなキャッシングを実現する。したがって、例えば、コアルーティングノード548を含む様々なコアルーティングノードに存在するキャッシュマネージャ218の動作は、ネットワークコア内のデータの分散型のキャッシングを実現する。この分配型のキャッシングは、エッジルーティングノードのキャッシングにバックアップを提供する。   Although not shown in FIG. 25A, each core routing node at the first level upstream from the edge routing node preferably comprises a cache manager 218. The first level upstream core routing node means a routing node adjacent to the upstream side of the edge routing node. Although the publish-subscribe network often includes multiple first level core routing nodes, FIG. 25A shows only one first level core routing node, ie, core routing node 548. Yes. As described above, the cache manager 218 realizes local caching of data in the network node where the cache manager 218 exists. Thus, for example, the operation of the cache manager 218 present at various core routing nodes, including the core routing node 548, provides distributed caching of data within the network core. This distributed caching provides a backup for edge routing node caching.

キャッシュマネージャ218は、好ましくは、キャッシュ546を管理するルーチン又はサブルーチンを含む。これらのルーチンは、図25Bに示すように、好ましくはデータキャッシングルーチン545と、キャッシュデータ検索ルーチン547と、キャッシュデータパージルーチン549とを含んでいる。これらのルーチンは、それぞれ別々に動作でき、又は図25Bに示すように、互いに通信し及び/又は制御を渡すことができる。   Cache manager 218 preferably includes routines or subroutines that manage cache 546. These routines preferably include a data caching routine 545, a cache data search routine 547, and a cache data purge routine 549, as shown in FIG. 25B. These routines can each operate separately, or can communicate with each other and / or pass control, as shown in FIG. 25B.

図25Cは、単一のメッセージに含まれたデータのための持続的なキャッシング処理550のフローチャートである。図25Cに示すように、処理550は、図25Bに示す各ルーチンによって実行されるステップの具体例を示している。実際の動作では、これらのルーチンは、互いに独立して実行される。処理550は、キャッシングを提供するインテリジェントルータ92、エッジルーティングノード又はコアルーティングノードで実行できる。   FIG. 25C is a flowchart of a persistent caching process 550 for data contained in a single message. As shown in FIG. 25C, the process 550 shows a specific example of steps executed by each routine shown in FIG. 25B. In actual operation, these routines are executed independently of each other. Process 550 may be performed at intelligent router 92, edge routing node, or core routing node that provides caching.

処理550は、例えば、インテリジェントルータ92におけるプロセッサ93によって実行されるソフトウェアモジュール(例えば、キャッシュマネージャ218)によって実現できる。これに代えて、この処理をASICで実現してもよく、或いはハードウェアとソフトウェアの組合せによって実現してもよい。これらは、対応するインテリジェントルータ92と同じ物理機器であっても異なる物理機器であってもよい。インテリジェントルータ92は、キャッシュマネージャ218にキャッシングする必要があるメッセージを転送する。キャッシュマネージャ218は、データを含むメッセージを受け取り(ステップ552)、メッセージ内のデータに時刻を表すマークを付し(ステップ554)、キャッシュ546にデータをキャッシングする(ステップ556)(図14おけるステップ322〜326と同様(上述参照))。キャッシュマネージャ218は、上述のように、例えば、チャンネル識別子、サブジェクト、発行者識別子、タイムスタンプ等を含む様々な手法でキャッシングされたデータにインデクスを付す(ステップ558)。インデクス付与ステップは、キャッシングステップ556より先に行ってもよく、これと同時に行ってもよく、これの後に行ってもよい。キャッシングされたデータには、インデクスが付され、階層的なディレクトリ構造内に保存される(例えば、図15参照)。また、表17〜19もこの処理に関連する。   The process 550 can be realized by, for example, a software module (for example, the cache manager 218) executed by the processor 93 in the intelligent router 92. Alternatively, this processing may be realized by an ASIC, or may be realized by a combination of hardware and software. These may be the same physical device as the corresponding intelligent router 92 or a different physical device. Intelligent router 92 forwards messages that need to be cached to cache manager 218. The cache manager 218 receives the message containing the data (step 552), puts a mark indicating the time on the data in the message (step 554), and caches the data in the cache 546 (step 556) (step 322 in FIG. 14). To 326 (see above)). As described above, the cache manager 218 indexes data cached by various methods including, for example, a channel identifier, a subject, an issuer identifier, a time stamp, and the like (step 558). The index assigning step may be performed before the caching step 556, may be performed at the same time, or may be performed after this. The cached data is indexed and stored in a hierarchical directory structure (see, for example, FIG. 15). Tables 17-19 also relate to this process.

データは、メモリ(キャッシュ546)にキャッシングされ、定期的にディスクに移される(ステップ560)。特定のチャンネルのための持続タイムフレーム「T」は、それぞれがサイズGを有するN個のタイムグレイン(time grains)に分割される。メモリにおけるキャッシング(ステップ556)は、Gの期間だけ行われる。キャッシュマネージャが、期間Gが経過したと判定すると(ステップ559)、データは、ディスクに移される(ステップ560)。キャッシュマネージャ218は、持続タイムアウト期間Tの間、ディスク上にデータを保存する。   Data is cached in memory (cache 546) and periodically transferred to disk (step 560). The sustained time frame “T” for a particular channel is divided into N time grains, each having a size G. Caching in the memory (step 556) is performed only for the period G. If the cache manager determines that period G has elapsed (step 559), the data is moved to disk (step 560). The cache manager 218 stores data on the disk for a sustained timeout period T.

時間が持続タイムアウト(T)+期間の上限以上に経過すると(ステップ562)、期間Gに対応するデータは、ディスクから削除される(ステップ564)。説明のために、あるチャンネルについて、Tが2時間であるとする。更に、キャッシュマネージャ218は、15分のタイムグレインGを用いるとする。ディスクからデータを削除するために、好ましくは、期間G(15分)の間にキャッシングされた最後のデータがT(2時間)の間保存された場合、その15分の期間にキャッシングされた全体のデータを破棄するといったポリシを用いる。したがってその15分の期間の最初にキャッシングされたデータは、破棄されるまでに、2時間以上保存される。この実施例では、各15分間にキャッシングされるデータは、データのブロックである。持続タイムフレームTがN個の期間に分割される場合、如何なる時刻においても、各サブジェクトのためのキャッシュ540内にN+1個のデータブロック(ディスクにN個とメモリに1個)が存在する。   When the time exceeds the duration timeout (T) + the upper limit of the period (step 562), the data corresponding to the period G is deleted from the disk (step 564). For the sake of explanation, assume that T is 2 hours for a certain channel. Furthermore, it is assumed that the cache manager 218 uses a time grain G of 15 minutes. To delete data from the disk, preferably if the last data cached during period G (15 minutes) is stored for T (2 hours), the entire cached data for that 15 minute period Use a policy that discards the data. Therefore, the data cached at the beginning of the 15 minute period is stored for more than 2 hours before being discarded. In this embodiment, the data cached every 15 minutes is a block of data. If the duration time frame T is divided into N periods, there will be N + 1 data blocks (N on disk and 1 in memory) in the cache 540 for each subject at any time.

キャッシュマネージャ218がデータに関する要求を受け取ると(ステップ566)、キャッシュマネージャ218は、インデクスを用いて、その要求されたキャッシングされた(期間Tが経過していない)データを検索し(ステップ568)、要求した購読者装置122へのルーティングのために、検索されたデータをバックボーンルータに転送する(ステップ570)。図25Dを用いて後述するように、エッジルーティングノードにおいて、データがキャッシュ540にない場合、キャッシュマネージャ218は、アップストリームの第1のレベルのコアルーティングノード(例えば、コアルーティングノード548)におけるキャッシュを呼び出し、データを検索してもよい。キャッシュマネージャ218が要求を受け取らない場合、処理550は、ステップ552に戻る。   When cache manager 218 receives a request for data (step 566), cache manager 218 uses the index to retrieve the requested cached data (time period T has not elapsed) (step 568); The retrieved data is forwarded to the backbone router for routing to the requested subscriber device 122 (step 570). As will be described later with reference to FIG. 25D, in the edge routing node, if the data is not in the cache 540, the cache manager 218 may clear the cache in the upstream first level core routing node (eg, core routing node 548). Call and retrieve data. If cache manager 218 does not receive the request, process 550 returns to step 552.

インテリジェントルータ92のキャッシュマネージャ218における障害の発生に備えて、キャッシュ546へのデータの保存に加えて、データは、第1のレベルのアップストリームコアルーティングノード(例えば、コアルーティングノード548)のキャッシュにも保存される。したがって、ステップ552〜564は、好ましくは、メッセージをルーティングする前に及びエッジルーティングノードで処理550を実行する前に第1のレベルのアップストリームコアルーティングノードにおいて実行される。   In addition to storing data in cache 546, in the event of a failure in cache manager 218 of intelligent router 92, the data is cached in a first level upstream core routing node (eg, core routing node 548). Is also saved. Accordingly, steps 552-564 are preferably performed at the first level upstream core routing node before routing the message and before performing the process 550 at the edge routing node.

(例えば、エッジルーティングノード内の)キャッシュ546及び第1のレベルのアップストリームコアルーティングノード(例えば、第1のアップストリームのコアルータ548)におけるキャッシュの位置は、エージェント128にローカルに保存される。したがって購読者装置122が移動した場合(例えば、購読者が、異なるエッジルーティングノードを介してネットワークに再接続する携帯電話の契約者である場合)、エージェント128は、新たなエッジルーティングノードに対し、購読者装置122が移動する前に接続されていたエッジルーティングノードと第1のレベルのアップストリームコアルーティングノードのキャッシュの位置を知らせる。これにより、購読者装置122が移動しても、データの持続性を維持することができる。   The location of the cache in cache 546 (eg, within the edge routing node) and the first level upstream core routing node (eg, first upstream core router 548) is stored locally at agent 128. Thus, if the subscriber device 122 has moved (eg, if the subscriber is a mobile phone subscriber reconnecting to the network via a different edge routing node), the agent 128 can The subscriber device 122 informs the cache location of the edge routing node and the first level upstream core routing node that were connected before moving. Thereby, even if the subscriber device 122 moves, the data persistence can be maintained.

持続的なメッセージ検索処理580のフローチャートである図25Dに示すように、購読者装置122のユーザアプリケーション182は、好ましくは、キャッシュからデータを要求するためにエージェント128を呼び出す(ステップ582)。エージェント128は、保存されたキャッシュ位置を用いて、適切なエッジルーティングノードにおけるキャッシュ546を呼び出し(例えばgetcacheコマンドを用いる)、データを取得する(ステップ584)。エージェント128により、どのタイムフレームのデータを読み出すかを指定してもよい。これに代えて、キャッシュマネージャ218は、購読者装置122に関する接続履歴を検査して(上述の表18参照)、キャッシングされたどのデータを読み出すかを判定してもよい。接続履歴により、購読者装置122が期間Xの間オフラインであったことがわかった場合、キャッシュマネージャ218は、期間Xについてキャッシングされている全てのデータを検索してもよい。更に、キャッシュマネージャ218は、単に持続タイムフレームT間にキャッシングされた全てのデータを検索してもよい。エッジルーティングノードのキャッシュ546にデータがある場合(ステップ585)、エージェント128は、キャッシュ546からのデータを読み出す(ステップ586)。   As shown in FIG. 25D, which is a flowchart of the persistent message retrieval process 580, the user application 182 of the subscriber device 122 preferably calls the agent 128 to request data from the cache (step 582). Agent 128 uses the saved cache location to invoke cache 546 at the appropriate edge routing node (eg, using a getcache command) to obtain data (step 584). The agent 128 may specify which time frame of data to read. Alternatively, the cache manager 218 may examine the connection history for the subscriber device 122 (see Table 18 above) to determine which cached data to read. If the connection history reveals that the subscriber device 122 has been offline for period X, the cache manager 218 may retrieve all data that has been cached for period X. Further, the cache manager 218 may simply retrieve all the data cached during the sustained time frame T. If there is data in the cache 546 of the edge routing node (step 585), the agent 128 reads the data from the cache 546 (step 586).

キャッシュ546がデータを有していない場合、キャッシュマネージャ218は、エージェント128によって提供される、第1のレベルのアップストリームルーティングノード(例えば、コアルーティングノード548)におけるキャッシュのリストを用いて、これらのアップストリームのキャッシュを呼び出し、データを検索する(ステップ588)。キャッシュマネージャ218がアップストリームのキャッシュ又はキャッシュ内のデータの位置を検出すると、キャッシュマネージャ218は、そのアップストリームのキャッシュからデータを読み出す(ステップ590)。キャッシュマネージャ218は、重複抑制処理(すなわち、重複データを排除する処理)を実行した後に(ステップ592)、エージェント128にデータを転送(ステップ594)してもよい。
B.障害保護による持続
本発明に基づくインフラストラクチャは、チャンネルマネージャと、イベントエージェントと、ルーティングノード及びキャッシュ、又はこれらと同等の構成要素を含んでいる。障害が発生している条件の間にメッセージが失われてしまうことを防ぐためには。これらの各構成要素を保護する必要がある。
If the cache 546 has no data, the cache manager 218 uses these lists of caches at the first level upstream routing node (eg, core routing node 548) provided by the agent 128 to The upstream cache is called to retrieve data (step 588). When cache manager 218 detects the upstream cache or the location of the data in the cache, cache manager 218 reads the data from the upstream cache (step 590). The cache manager 218 may transfer the data to the agent 128 (step 594) after executing the duplication suppression processing (that is, processing for eliminating duplicate data) (step 592).
B. Persistence with Fault Protection The infrastructure according to the present invention includes a channel manager, event agents, routing nodes and caches, or equivalent components. To prevent messages from being lost during a failing condition. Each of these components needs to be protected.

1.チャンネルマネージャ障害の保護
チャンネルマネージャについては、図6を用いて上述した。チャンネルマネージャは、複製によって障害から保護される。チャンネルマネージャは、1つのプライマリモジュールと他のバックアップモジュールを含むプライマリバックアップグループ内で動作する。プライマリモジュールは、データに関する全ての更新を行い、及びクエリに応答する機能を担っている。バックアップモジュールは、クエリに応答するのみで、更新を実行する機能は有していない、すなわち、バックアップモジュールは、全ての更新をプライマリに送る。
1. Channel Manager Failure Protection The channel manager has been described above with reference to FIG. The channel manager is protected from failure by duplication. The channel manager operates in a primary backup group that includes one primary module and another backup module. The primary module is responsible for performing all updates related to data and responding to queries. The backup module only responds to the query and does not have the ability to perform updates, i.e. the backup module sends all updates to the primary.

チャンネルマネージャからチャンネル情報を検索する必要がある発行−購読ネットワークのコンポーネントは、チャンネルマネージャクライアントと呼ばれ、チャンネルマネージャクライアントには、チャンネルマネージャが割り当てられる。これらのクライアントには、インテリジェントルータ92及びそのキャッシュマネージャ218、購読者装置122及びそのエージェント128等が含まれる。クライアントに割り当てられたチャンネルマネージャに障害が発生すると、クライアントは、別のチャンネルマネージャにアクセスし、これに接続する。   The component of the publish-subscribe network that needs to retrieve channel information from the channel manager is called the channel manager client, and the channel manager client is assigned a channel manager. These clients include intelligent router 92 and its cache manager 218, subscriber device 122 and its agent 128, and the like. When a channel manager assigned to a client fails, the client accesses and connects to another channel manager.

2.ルータ及びキャッシュ障害の保護
ルーティングインフラストラクチャコンポーネントのための回復には、幾つかのレベル(レベル0、レベル1〜レベル3)がある。レベル0は、障害の影響をローカルに(すなわち、障害が発生したルータ内部で)制御し、回復は、障害が発生したルーティングノードに制限される。レベル0回復は、ハードウェア冗長性に依存して、ハードウェア障害からの回復を行う。すなわち、ルータのハードウェア資源は、複製される。レベルの0回復の主な利点は、短い回復時間とトランスペアレント性である。レベル1は、LAN内の障害の影響を制御する。レベル1回復は、クラスタ技術を用いたIP障害迂回によって実現される。しかしながら、障害が発生したルータから、これに隣接するルータへのトンネルは、回復の後に再構築する必要がある。したがって、レベル1回復は、レベル0回復に比べてトランスペアレント性が低く、実行に時間がかかる。
2. Router and cache fault protection There are several levels of recovery for routing infrastructure components (level 0, level 1 to level 3). Level 0 controls the impact of the failure locally (ie, within the failed router) and recovery is limited to the failed routing node. Level 0 recovery relies on hardware redundancy to recover from a hardware failure. That is, the router hardware resources are duplicated. The main benefits of level 0 recovery are short recovery time and transparency. Level 1 controls the impact of failures within the LAN. Level 1 recovery is realized by IP failure bypass using cluster technology. However, the tunnel from the failed router to the neighboring router needs to be rebuilt after recovery. Therefore, level 1 recovery is less transparent than level 0 recovery and takes time to execute.

レベル2回復の目的は、複雑な再構成とデータ損失を引き起こすようなネットワークトポロジへの影響を生じることなくWANの上のリモートバックアップルータによって、ルータ障害を回復することである。レベル2回復は、ルータをグループ化することによって(例えば、プライマリとバックアップルータ)、一組の回復を実現する。1つのルータが1つのグループにおけるプライマリルータとして機能すると共に、別のグループにおけるバックアップルータとして機能することもできる。プライマリルータは、ルーティングとネットワーク構成に関する情報をバックアップルータと交換し、バックアップルータがプライマリルータにおける障害を検出した場合、バックアップルータは、プライマリルータの機能を引き継ぐ。バックアップは、障害が発生したと考えられるプライマリルータに隣接するプライマリルータの大多数に接続できることを確認することにより、障害が発生したのがプライマリルータとのリンクではなく、プライマリルータであることを確認する。障害が発生したと考えられるプライマリルータに隣接するプライマリルータの大多数に接続することができない場合、レベル3回復がトリガされる。   The purpose of Level 2 recovery is to recover the router failure by the remote backup router on the WAN without impacting the network topology causing complex reconfiguration and data loss. Level 2 recovery implements a set of recovery by grouping routers (eg, primary and backup routers). One router can function as a primary router in one group and can also function as a backup router in another group. The primary router exchanges information about routing and network configuration with the backup router, and when the backup router detects a failure in the primary router, the backup router takes over the function of the primary router. Make sure that the failure is the primary router, not the link to the primary router, by making sure that the backup can connect to the majority of the primary routers adjacent to the primary router that you suspect has failed To do. Level 3 recovery is triggered when it is not possible to connect to the majority of the primary routers adjacent to the primary router suspected of having failed.

レベル回復3では、システム全体に亘る連携された回復を行う。レベル3回復は、他の全てに障害が発生している場合に実行される。このような障害を検出したルータは、ダウンストリームの全てのルータに再開通知(restart notice)を送信する。通知を受け取ったルータは、他の全ての回復を中断させ、全てのネットワークサービスを停止し、再開メッセージにおける全てのマルチキャスティング情報を削除する。全てのネットワークサービスが終了すると、ルータは、マルチキャスティングのためのツリー構築処理を含む全てのサービスを再開する。ネットワークにおける如何なる失敗もより低いレベルの回復手続きによって処理される。低いレベルの回復が適用できない場合、回復は、より高い次のレベルの回復を順次実行してもよい。低いレベルの回復のいずれも動作しない場合、レベル3回復が用いられる。   Level recovery 3 performs coordinated recovery across the entire system. Level 3 recovery is performed when everything else has failed. A router that detects such a failure sends a restart notice to all downstream routers. The router that received the notification suspends all other recovery, stops all network services, and deletes all multicasting information in the resume message. When all network services are finished, the router resumes all services including the tree building process for multicasting. Any failure in the network is handled by a lower level recovery procedure. If a lower level recovery is not applicable, the recovery may perform a higher next level recovery sequentially. If none of the low level recovery works, level 3 recovery is used.

3.信頼できるトンネル
ネットワークに障害が発生している間、メッセージの損失を防ぐために、ルーティングノード間のトラヒックを伝送する信頼できるトンネルを用いる。トンネルは、図3を用いて上述した通りである。伝送期間中の如何なるメッセージ損失も受信端末によって検出され、受信端末は、失われたメッセージを再送処理するように送信側に依頼する。
3. Reliable tunnels Use reliable tunnels that carry traffic between routing nodes to prevent message loss during network failures. The tunnel is as described above with reference to FIG. Any message loss during the transmission period is detected by the receiving terminal, and the receiving terminal asks the transmitting side to retransmit the lost message.

以上、例示的な実施例を用いて本発明を説明してきたが、これらの実施例を様々に変形できることは当業者にとって明らかであり、本発明は、これらの如何なる適応化又は変形をも含む。例えば、本発明の範囲から逸脱することなく、様々な種類の発行者装置、ユーザ又は購読者装置、これらのチャンネル及び構成、コンテンツベースのルーティング及び他の機能のハードウェア及びソフトウェアによる実現が可能である。この発明は、特許請求の範囲及びその均等物によってのみ制限される。   Although the present invention has been described using exemplary embodiments, it will be apparent to those skilled in the art that these embodiments can be variously modified and the present invention includes any adaptations or variations thereof. For example, various types of issuer devices, user or subscriber devices, their channels and configurations, content-based routing and other functions can be implemented in hardware and software without departing from the scope of the present invention. is there. The invention is limited only by the claims and the equivalents thereof.

10 ネットワークコア、14、32 発行者、16、22 エッジルータ、18 チャンネル、12、38、40、42、44、46、48、61〜70、92、164、166、168、200 インテリジェントルータ、24、54 購読者、20、26 メッセージ、30 ルーティングエンティティ、34、52、126 アプリケーション、30 チャンネルサービス、36、50、184、エージェント、39、41、43、45、37、47、73〜85 リンク、58、59、60、120 ネットワーク、71、72 エンティティ、90 ネットワークノード、93、114、134、プロセッサ、94、102、124 メモリ、95 バックボーンルータ、97 補助記憶装置、112、130 補助記憶装置機器、100、118発行者装置、104 発行者アプリケーション、106、128 エージェントアプリケーション、108、132 入力装置、110、136 出力装置、116、138 表示装置、122、140 購読者装置、150、198 チャンネルマネージャ、152、154、156 サーバ、158、160、162 ストレージ装置、180 スタック、182 ユーザアプリケーション、186 イベントライブラリ、188 キャッシュライブラリ、190 チャンネルライブラリ、192 メッセージングライブラリ、194ディスパッチャライブラリ、196 制御パス、210 ソフトウェアコンポーネント、212 フィルタリングデーモン、214 ディスパッチャ、216 ルーティングデーモン、218 キャッシュマネージャ、204、222 データパス   10 Network core, 14, 32 Issuer, 16, 22 Edge router, 18 channels, 12, 38, 40, 42, 44, 46, 48, 61-70, 92, 164, 166, 168, 200 Intelligent router, 24 , 54 subscribers, 20, 26 messages, 30 routing entities, 34, 52, 126 applications, 30 channel services, 36, 50, 184, agents, 39, 41, 43, 45, 37, 47, 73-85 links, 58, 59, 60, 120 network, 71, 72 entity, 90 network node, 93, 114, 134, processor, 94, 102, 124 memory, 95 backbone router, 97 auxiliary storage device, 112, 130 auxiliary storage device, 100, 18 issuer device, 104 issuer application, 106, 128 agent application, 108, 132 input device, 110, 136 output device, 116, 138 display device, 122, 140 subscriber device, 150, 198 channel manager, 152, 154 156 server, 158, 160, 162 storage device, 180 stack, 182 user application, 186 event library, 188 cache library, 190 channel library, 192 messaging library, 194 dispatcher library, 196 control path, 210 software component, 212 filtering daemon 214 dispatcher, 216 routing daemon, 218 cash money Turbocharger, 204, 222 data path

Claims (193)

信頼性の低いネットワーク上で発行−購読処理を実行するための通信方法であって、
上記ネットワークを介して、コンテンツの購読予約を受信するステップと、
上記コンテンツの購読予約に基づいて、上記ネットワークを介して上記コンテンツを発行するステップと、
上記ネットワークにおけるノードにおいて、上記コンテンツに関する通知を受信するステップと、
上記通知を隣接しているノードに転送すべきか否かを判定するステップと、
上記判定に基づいて、信頼できる伝送プロトコルを用いて、上記隣接しているノードに通知を選択的に転送するステップとを有する通信方法。
A communication method for performing publish-subscribe processing on an unreliable network, comprising:
Receiving a subscription subscription for content via the network;
Publishing the content via the network based on a subscription to the content;
Receiving a notification regarding the content at a node in the network;
Determining whether the notification should be forwarded to an adjacent node;
Selectively forwarding notifications to the adjacent nodes using a reliable transmission protocol based on the determination.
上記通知を選択的に転送するステップは、該通知の転送の失敗を示す情報を示す指示情報を受け取り、該指示情報に応じて上記通知を再転送するステップを有することを特徴とする請求項1記載の通信方法。   The step of selectively transferring the notification includes the step of receiving instruction information indicating information indicating failure of transfer of the notification, and retransmitting the notification according to the instruction information. The communication method described. 上記転送するステップは、通知をカプセル化したパケットを転送するステップを有することを特徴とする請求項1記載の通信方法。   2. The communication method according to claim 1, wherein the transferring step includes a step of transferring a packet encapsulating the notification. 上記転送するステップは、通知の転送にインターネットプロトコルを用いることを特徴とする請求項1記載の通信方法。   The communication method according to claim 1, wherein the transferring step uses an Internet protocol for transferring the notification. 上記転送するステップは、単一のノード毎に通知を転送するステップを有することを特徴とする請求項1記載の通信方法。   The communication method according to claim 1, wherein the transferring step includes a step of transferring a notification for each single node. 上記判定するステップは、コンテンツが上記コンテンツの購読予約における1つ以上の条件を満たすか否かを判定するステップを有することを特徴とする請求項1記載の通信方法。   The communication method according to claim 1, wherein the determining step includes a step of determining whether or not the content satisfies one or more conditions in a subscription for the content. 上記転送するステップは、ルータを用いて、上記隣接しているノードに通知を転送するステップを有することを特徴とする請求項1記載の通信方法。   The communication method according to claim 1, wherein the transferring step includes a step of transferring a notification to the adjacent node using a router. 上記購読予約に対応している1又は複数の購読者に通知が配信されるまで、ネットワーク内のノード毎に上記発行ステップを繰り返すステップを更に有する請求項1記載の通信方法。   The communication method according to claim 1, further comprising the step of repeating the issuing step for each node in the network until a notification is distributed to one or a plurality of subscribers corresponding to the subscription. 上記通知を選択的に転送するステップは、伝送制御プロトコルを用いることを特徴とする請求項1記載の通信方法。   The communication method according to claim 1, wherein the step of selectively transferring the notification uses a transmission control protocol. 信頼性の低いネットワーク上で発行−購読処理を実行するルータにおいて、請求項1記載の通信方法を実現するモジュールを備えるルータ。   The router for executing the issue-subscribe process on a low-reliability network, comprising a module that implements the communication method according to claim 1. 発行−購読処理を実行するため広域ネットワークであって、
1つ以上の購読者装置と、
複数のルータとを備え、
上記複数のルータのそれぞれは、
上記広域ネットワークを介して、上記購読者装置の1つ以上に対応しているコンテンツの購読予約を受信する購読予約受信モジュールと、上記ネットワーク内のノードにおいて、コンテンツに関する通知を受信する通知受信モジュールと、上記通知を隣接しているノードに転送するべきか否かを判定するコンテンツベースルーティングモジュールと、上記判定に基づいて、信頼できる伝送プロトコルを用いて、上記隣接しているノードに通知を選択的に転送する高信頼性転送モジュールとを有する発行モジュールとを備え、
上記複数のルータは、上記購読予約に対応している1又は複数の購読者に通知が配信されるまで、上記通知を高い信頼性で選択的に転送することを特徴とする広域ネットワーク。
A wide area network to perform publish-subscribe processing,
One or more subscriber devices;
With multiple routers,
Each of the plurality of routers
A subscription reservation receiving module for receiving a subscription for content corresponding to one or more of the subscriber devices via the wide area network; and a notification receiving module for receiving a notification regarding the content at a node in the network; A content-based routing module that determines whether the notification should be forwarded to an adjacent node, and a selective transmission of the notification to the adjacent node using a reliable transmission protocol based on the determination And an issuance module having a reliable transfer module for transferring to
The wide-area network, wherein the plurality of routers selectively transfer the notification with high reliability until the notification is distributed to one or a plurality of subscribers corresponding to the subscription reservation.
信頼性の低いネットワーク上で発行−購読処理を実行するための通信方法であって、
上記ネットワーク内の第1のノードにおいて、上記ネットワークを介して、コンテンツの購読予約を受信するステップと、
上記ネットワーク内の上記第1のノードにおいて、上記コンテンツに関する通知を受信するステップと、
コンテンツベースのルーティング(content-based routing:CBR)に基づいて、上記コンテンツの購読予約を用いて、上記通知を隣接している第2のノードに転送するべきか否かを判定するステップと、
上記判定に基づいて、信頼できる伝送プロトコルを用いて、上記隣接しているノードに通知を選択的に転送するステップとを有する通信方法。
A communication method for performing publish-subscribe processing on an unreliable network, comprising:
Receiving a subscription for content at a first node in the network via the network;
Receiving a notification regarding the content at the first node in the network;
Determining whether to forward the notification to an adjacent second node using content subscription based on content-based routing (CBR);
Selectively forwarding notifications to the adjacent nodes using a reliable transmission protocol based on the determination.
上記第1のノードと上記第2のノードとの間の転送に失敗したとき、転送エラーを示す指示情報を受信するステップと、
上記指示情報に応じて、上記第2のノードに上記通知を再転送するステップを有することを特徴とする請求項12記載の通信方法。
Receiving instruction information indicating a transfer error when transfer between the first node and the second node fails;
13. The communication method according to claim 12, further comprising a step of retransmitting the notification to the second node in accordance with the instruction information.
上記選択的な転送を行う前に、上記通知をバッファにバッファリングするステップを有する請求項12記載の通信方法。   The communication method according to claim 12, further comprising a step of buffering the notification in a buffer before performing the selective transfer. 所定の期間経過後に、上記バッファリングされた通知を補助記憶装置に移すステップを有する請求項14記載の通信方法。   The communication method according to claim 14, further comprising the step of transferring the buffered notification to an auxiliary storage device after a predetermined period of time has elapsed. 上記バッファリングされた通知を先入れ先出し方式で削除するステップを有する請求項14記載の通信方法。   The communication method according to claim 14, further comprising a step of deleting the buffered notification in a first-in first-out manner. 上記バッファリングされた通知をサービス品質基づいて削除するステップを有する請求項14記載の通信方法。   The communication method according to claim 14, further comprising the step of deleting the buffered notification based on quality of service. 上記通知を上記第1のノードのキャッシュにキャッシングするステップを有する請求項12記載の通信方法。   The communication method according to claim 12, further comprising a step of caching the notification in the cache of the first node. 上記高い信頼性で転送するステップは、伝送制御プロトコルを用いることを特徴とする請求項12記載の通信方法。   13. The communication method according to claim 12, wherein the step of transferring with high reliability uses a transmission control protocol. 信頼性の低いネットワーク上で発行−購読処理を実行するルータであって、請求項12記載の通信方法を実現するモジュールを備えるルータ。   13. A router that executes issue-subscribe processing on a low-reliability network, comprising a module that implements the communication method according to claim 12. 発行−購読処理を実行するため広域ネットワーク(WAN)であって、
1つ以上の購読者装置と、
複数のルータとを備え、
上記複数のルータのそれぞれは、
上記WAN内の第1のノードにおいて、上記WANを介して、上記購読者装置の1つ以上に対応しているコンテンツの購読予約を受信する購読予約受信モジュールと、上記WAN内の第1のノードにおいて、コンテンツに関する通知を受信する通知受信モジュールと、上記通知を上記WAN内の第2のノードに転送するべきか否かを判定するコンテンツベースルーティングモジュールと、上記判定に基づいて、信頼できる伝送プロトコルを用いて、上記第2のノードに通知を選択的に転送する高信頼性転送モジュールとを有する発行モジュールとを備え、
上記複数のルータは、上記購読予約に対応している1又は複数の購読者に通知が配信されるまで、上記通知を高い信頼性で選択的に転送することを特徴とする広域ネットワーク。
A wide area network (WAN) for performing publish-subscribe processing,
One or more subscriber devices;
With multiple routers,
Each of the plurality of routers
A subscription receiving module for receiving subscriptions for content corresponding to one or more of the subscriber devices via the WAN at a first node in the WAN; and a first node in the WAN. A notification receiving module for receiving a notification about the content, a content-based routing module for determining whether the notification should be transferred to the second node in the WAN, and a reliable transmission protocol based on the determination Using an issuance module having a reliable transfer module for selectively transferring notifications to the second node,
The wide-area network, wherein the plurality of routers selectively transfer the notification with high reliability until the notification is distributed to one or a plurality of subscribers corresponding to the subscription reservation.
上記高信頼性転送モジュールは、伝送制御プロトコルを用いることを特徴とする請求項21記載の広域ネットワーク。   The wide area network according to claim 21, wherein the reliable transfer module uses a transmission control protocol. 信頼性の低いネットワーク上で発行−購読処理を実行するための通信方法であって、
信頼できる伝送プロトコルを用いて、2つの隣接しているノード間に信頼できるトンネルを確立するステップと、
上記隣接するノードのうちの第1のノードにおいて、上記ネットワークを介して、コンテンツの購読予約を受信するステップと、
上記ネットワーク内の上記第1のノードにおいて、上記コンテンツに関する通知を受信するステップと、
コンテンツベースのルーティング(content-based routing:CBR)に基づいて、上記コンテンツの購読予約を用いて、上記通知を隣接している第2のノードに転送するべきか否かを判定するステップと、
上記判定に基づいて、上記信頼できるトンネルを用いて、上記隣接している第2のノードに通知を転送するステップとを有する通信方法。
A communication method for performing publish-subscribe processing on an unreliable network, comprising:
Establishing a reliable tunnel between two adjacent nodes using a reliable transmission protocol;
Receiving a subscription for content at the first of the adjacent nodes via the network;
Receiving a notification regarding the content at the first node in the network;
Determining whether to forward the notification to an adjacent second node using content subscription based on content-based routing (CBR);
And forwarding the notification to the adjacent second node using the reliable tunnel based on the determination.
信頼性の低いネットワーク上で発行−購読処理を実行するルータであって、請求項23記載の通信方法を実現するモジュールを備えるルータ。   24. A router that executes issue-subscribe processing on a low-reliability network, comprising a module that implements the communication method according to claim 23. 請求項24記載のルータを複数備え、発行−購読処理を実現するネットワーク。   25. A network comprising a plurality of routers according to claim 24 and realizing issue-subscribe processing. 発行−購読ネットワークにおいてフィルタを伝播するための通信方法であって、
ネットワークにおけるコンテンツの購読予約に関連する複数のフィルタを受信するステップと、
特定の基準に基づいて、上記フィルタの数を減少させるステップと、
上記ネットワークにおいて、上記コンテンツの購読予約を照合するために上記数が削減されたフィルタを伝播するステップとを有する通信方法。
A communication method for propagating a filter in a publish-subscribe network, comprising:
Receiving a plurality of filters related to subscription subscriptions of content in the network;
Reducing the number of filters based on certain criteria;
Propagating the reduced-number filter to match the content subscription in the network.
上記削減するステップは、
上記複数のフィルタの1つ以上に対する概算処理を実行するステップと、
上記複数のフィルタの1つ以上に対する併合処理を実行するステップとのうちの少なくとも1つ以上を含んでいることを特徴とする請求項26記載の通信方法。
The above reduction step is
Performing an approximate process for one or more of the plurality of filters;
27. The communication method according to claim 26, further comprising at least one of a step of executing a merging process on one or more of the plurality of filters.
上記併合処理を実行するステップは、併合されたフィルタがパケット漏れ閾値を超えるか否かを決定するステップを有することを特徴とする請求項27記載の通信方法。   28. The communication method according to claim 27, wherein the step of executing the merging process includes a step of determining whether or not the merged filter exceeds a packet leakage threshold. 上記受信するステップは、コンテンツベースのルーティングネットワークを介して複数個のフィルタを受信するステップを有することを特徴とする請求項26記載の通信方法。   27. The communication method according to claim 26, wherein the receiving step comprises receiving a plurality of filters via a content-based routing network. 上記伝播するステップは、積極的伝播スキーム、消極的伝播スキーム、同報通信広告への応答スキーム、アフターネットワークトポロジ演算スキーム、定期的伝播スキーム、障害回復時にフィルタを再伝播するスキーム、ネットワーク再構成の間にフィルタを再伝播するスキームを含む複数の特定の手続きの1つ以上を用いることでフィルタを伝播するステップを有することを特徴とする請求項26記載の通信方法。   The propagation steps include: active propagation schemes, passive propagation schemes, broadcast advertisement response schemes, after-network topology computation schemes, periodic propagation schemes, schemes for repropagating filters upon failure recovery, network reconfiguration schemes 27. The communication method of claim 26, comprising the step of propagating the filter using one or more of a plurality of specific procedures including a scheme for repropagating the filter in between. 上記フィルタを伝播するためのソースノード及びデスティネーションノードは、ホップバイホップ方式、エンドツーエンド方式、トンネルを用いた方式、伝送制御プロトコルを用いた方式を含む複数の特定のメカニズムの1つ以上を用いて接続されている請求項26記載の通信方法。   The source node and the destination node for propagating the filter may have at least one of a plurality of specific mechanisms including a hop-by-hop scheme, an end-to-end scheme, a tunnel scheme, and a transmission control protocol scheme. 27. The communication method according to claim 26, wherein the communication method is connected by using. 上記ネットワーク内の複数の特定の位置のうちの1つ以上の位置にネットワークでフィルタを挿入するステップを有する請求項26記載の通信方法。   27. The communication method according to claim 26, further comprising the step of inserting a filter in the network at one or more of a plurality of specific locations in the network. 上記フィルタを伝播するステップは、移動する、持続的な及び一時的な振る舞いから選択される、意図する受信者の特定の振る舞いのうちの少なくとも1つに基づいてフィルタを伝播するステップを有することを特徴とする請求項26記載の通信方法。   Propagating the filter comprises propagating the filter based on at least one of the specific behaviors of the intended recipient selected from moving, persistent and temporary behavior. 27. A communication method according to claim 26, wherein: 上記フィルタを伝播するステップは、移動する、持続的な及び一時的な振る舞いから選択される、上記1以上のフィルタの送信者の特定の振る舞いのうちの少なくとも1つに基づいてフィルタを伝播するステップを有することを特徴とする請求項26記載の通信方法。   Propagating the filter comprises propagating the filter based on at least one of the one or more filter sender specific behaviors selected from moving, persistent and temporary behaviors The communication method according to claim 26, further comprising: 属性コンテンツの変換、表現の拡張、表現の変換、表示の変形、符号化/復号、暗号化/平文化を含む複数の特定の処理ステップのうちの1つ以上を実行するステップを有する請求項26記載の通信方法。   27. Performing one or more of a plurality of specific processing steps including attribute content conversion, expression expansion, expression conversion, display transformation, encoding / decoding, encryption / plain culture. The communication method described. 複数の特定のフォーマットのうちの1つ以上に基づいて、上記1つ以上のフィルタを含むメッセージをフォーマットするステップを有する請求項26記載の通信方法。   27. The communication method of claim 26, comprising formatting a message including the one or more filters based on one or more of a plurality of specific formats. 上記フィルタを伝播するステップは、管理、メインテナンス、フィルタ持続、ポリシを強調する性能、監視、課金を含む複数の特定のポリシ又は手続きのうちの1つ以上に従ってフィルタを伝播するステップを有することを特徴とする請求項26記載の通信方法。   Propagating the filter comprises propagating the filter according to one or more of a plurality of specific policies or procedures including management, maintenance, filter persistence, policy highlighting performance, monitoring, and billing. The communication method according to claim 26. 上記フィルタを伝播ステップは、
フィルタを伝播するために満たされなければならないフィルタ伝播のための複数の要求のうちの1つ以上を含む、フィルタ伝播ストラテジの基礎となるネットワークトポロジを判定するステップと、
上記判定されたフィルタ伝播ストラテジの要求の満足に基づいて、フィルタの数を削減するステップとを有する請求項26記載の通信方法。
The step of propagating the filter is:
Determining a network topology underlying the filter propagation strategy, including one or more of a plurality of requests for filter propagation that must be satisfied to propagate the filter;
27. The communication method according to claim 26, further comprising the step of reducing the number of filters based on satisfaction of the determined filter propagation strategy requirement.
上記判定されるフィルタ伝播ストラテジは、積極的伝播スキーム、消極的伝播スキーム、同報通信広告への応答スキーム、アフターネットワークトポロジ演算スキーム、定期的伝播スキーム、障害回復時にフィルタを再伝播するスキーム、ネットワーク再構成の間にフィルタを再伝播するスキームのうちの1つであることを特徴とする請求項38記載の通信方法。   The determined filter propagation strategies are: active propagation scheme, passive propagation scheme, broadcast advertisement response scheme, after-network topology calculation scheme, periodic propagation scheme, scheme for re-propagating filters upon failure recovery, network 39. The communication method of claim 38, wherein the communication method is one of a scheme for repropagating a filter during reconfiguration. 上記受信するステップは、ネットワーク内のコアルータにおいて、複数個のフィルタを受信するステップを有することを特徴とする請求項26記載の通信方法。   27. The communication method according to claim 26, wherein the receiving step includes a step of receiving a plurality of filters at a core router in the network. 上記受信するステップは、ネットワーク内のエッジルータにおいて、複数個のフィルタを受信するステップを有することを特徴とする請求項26記載の通信方法。   27. The communication method according to claim 26, wherein the receiving step includes a step of receiving a plurality of filters at an edge router in the network. 上記受信するステップは、ネットワーク内の発行者装置において、複数個のフィルタを受信するステップを有することを特徴とする請求項26記載の通信方法。   27. The communication method according to claim 26, wherein the receiving step includes a step of receiving a plurality of filters at an issuer device in the network. 発行−購読ネットワークにおいてフィルタを伝播するルータであって、請求項26記載の通信方法を実現するモジュールを備えるルータ。   27. A router that propagates a filter in an publish-subscribe network, comprising a module that implements the communication method according to claim 26. 請求項26記載の通信方法を実現するモジュールを備える複数個のルータを備える発行−購読ネットワーク。   An issue-subscribe network comprising a plurality of routers comprising modules for implementing the communication method of claim 26. 請求項26記載の通信方法を実現するモジュールを備えるユーザ装置を備える発行−購読ネットワーク。   An issue-subscribe network comprising a user device comprising a module for implementing the communication method according to claim 26. 発行−購読ネットワークにおいてフィルタを伝播するための通信装置であって、
ネットワークにおけるコンテンツの購読予約に関連する複数のフィルタを受信するフィルタ受信モジュールと、
特定の基準に基づいて、上記フィルタの数を減少させるフィルタ削減モジュールと、
上記ネットワークにおいて、上記コンテンツの購読予約を照合するために上記数が削減されたフィルタを伝播するフィルタ伝播モジュールとを備える通信装置。
A communication device for propagating a filter in a publish-subscribe network,
A filter receiving module for receiving a plurality of filters related to content subscriptions in the network;
A filter reduction module that reduces the number of the filters based on specific criteria;
A communication device comprising: a filter propagation module for propagating a filter with a reduced number in order to match a subscription to the content in the network.
上記複数のフィルタの1つ以上に対する概算処理を実行するフィルタ概算モジュールと、
上記複数のフィルタの1つ以上に対する併合処理を実行するフィルタ併合モジュールとを備える請求項46記載の通信装置。
A filter estimation module that performs an estimation process on one or more of the plurality of filters;
The communication apparatus according to claim 46, further comprising: a filter merging module that performs a merging process on one or more of the plurality of filters.
上記1つ以上のフィルタを変形するフィルタ処理モジュールと、
上記フィルタの相互の類似性に基づいて、フィルタをグループ化するフィルタグループ化モジュールとを備える請求項46記載の通信装置。
A filter processing module that transforms the one or more filters;
The communication apparatus according to claim 46, further comprising: a filter grouping module that groups filters based on mutual similarity of the filters.
発行−購読ネットワークにおいてフィルタを伝播するための通信方法であって、
(a)ネットワークのノードにおいて、複数のフィルタを受信するステップと、
(b)上記受け取った1つ以上のフィルタを処理し、フィルタの数を削減するステップと、
(c)受信者の振る舞いの規則に基づいて、フィルタを伝播するか否かを決定するステップと、
(d)ネットワーク内の次のノードに、上記処理されたフィルタを伝播するステップとを有する通信方法。
A communication method for propagating a filter in a publish-subscribe network, comprising:
(A) receiving a plurality of filters at a node of the network;
(B) processing the received one or more filters to reduce the number of filters;
(C) determining whether to propagate the filter based on the rules of behavior of the recipient;
(D) Propagating the processed filter to the next node in the network.
送信者の振る舞いの規則に基づいて、フィルタを伝播するか否かを決定するステップを有する請求項49記載の通信方法。   50. The communication method according to claim 49, further comprising the step of determining whether or not to propagate the filter based on rules of behavior of the sender. ネットワークにおいて、次のノードの後段に更なるノードがあるか否かを判定するステップを有する請求項49記載の通信方法。   50. The communication method according to claim 49, further comprising the step of determining whether or not there is an additional node after the next node in the network. 上記次のノードの後段に更なるノードがあると判定された場合、上記ステップ(b)〜(d)を繰り返すステップを有する請求項49記載の通信方法。   50. The communication method according to claim 49, further comprising the step of repeating the steps (b) to (d) when it is determined that there is a further node after the next node. 上記ネットワークにおける次のノードに、受信すべき更なるフィルタがあるか否かを判定するステップを更に有する請求項49記載の通信方法。   50. The communication method of claim 49, further comprising the step of determining whether a next node in the network has additional filters to receive. 上記ネットワークにおける次のノードに、受信すべき更なるフィルタがあると判定された場合、新たなノードにおいて、上記ステップ(a)〜(d)を繰り返すステップを更に有する請求項53記載の通信方法。   54. The communication method according to claim 53, further comprising the step of repeating the steps (a) to (d) at a new node when it is determined that there is a further filter to be received at a next node in the network. 上記フィルタを処理するステップは、冗長な述語表現を取り除いてフィルタを簡約するステップ、フィルタを概算するステップ、フィルタをクラスタ化するステップ、フィルタを包摂するステップ、2個以上のフィルタを併合するステップのうちの1つ以上を含むことを特徴とする請求項49記載の通信方法。   The step of processing the filter includes the steps of simplifying the filter by removing redundant predicate expressions, estimating the filter, clustering the filter, including the filter, and merging two or more filters. 50. The communication method according to claim 49, comprising one or more of them. 上記フィルタを処理するステップは、フィルタをグループ化するステップを含み、
上記フィルタを概算するステップは、上記グループ内のフィルタを概算し、上記フィルタをクラスタ化するステップは、フィルタの類似性に基づいて、上記グループ内のフィルタを特定及び収集し、上記フィルタを包摂するステップは、上記グループ内のフィルタを包摂し、上記フィルタを併合するステップは、上記グループ内のフィルタを併合することを特徴とする請求項55記載の通信方法。
Processing the filter includes grouping the filters;
The step of approximating the filter estimates the filters in the group, and the step of clustering the filters identifies and collects the filters in the group and includes the filters based on the similarity of the filters. 56. The communication method according to claim 55, wherein the step includes a filter in the group, and the step of merging the filter merges the filter in the group.
上記フィルタをグループ化するステップは、サブジェクトに関連しているダウンリンクからのフィルタのみをグループ化するステップを有することを特徴とする請求項56記載の通信方法。   57. The communication method according to claim 56, wherein the step of grouping the filters comprises the step of grouping only the filters from the downlink associated with the subject. 上記フィルタを併合するステップは、併合されたフィルタがパケット漏れ閾値を超えるか否かを判定するステップを有することを特徴とする請求項55記載の通信方法。   56. The communication method according to claim 55, wherein the step of merging the filters includes the step of determining whether or not the merged filters exceed a packet leakage threshold. 上記フィルタを処理するステップは、フィルタを概算するステップと、該概算されたフィルタを包摂及び併合するステップとを有することを特徴とする請求項49記載の通信方法。   50. The communication method of claim 49, wherein the step of processing the filter comprises the steps of estimating a filter and including and merging the estimated filter. 上記ネットワーク内のノードは、保存されたフィルタを有し、上記フィルタを処理するステップは、受信したフィルタと保存されているフィルタとを処理して、これらのフィルタの数を削減することを特徴とする請求項49記載の通信方法。   The nodes in the network have stored filters, and the step of processing the filters processes the received filters and the stored filters to reduce the number of these filters. The communication method according to claim 49. 上記保存されたフィルタは、以前に受け取られ、処理されたフィルタであることを特徴とする請求項60記載の通信方法。   61. The communication method of claim 60, wherein the saved filter is a previously received and processed filter. 上記受信ステップ(a)は、ネットワークのコア内のノードにおいて複数個のフィルタを受信することを特徴とする請求項49記載の通信方法。   50. The communication method according to claim 49, wherein said receiving step (a) receives a plurality of filters at a node in the core of the network. 発行−購読ネットワークにおいてフィルタを伝播するためのルータであって、請求項49記載通信方法を実現するモジュールを備えるルータ。   50. A router for propagating a filter in an publish-subscribe network, comprising a module for implementing the communication method. 請求項49記載の通信方法を実現するモジュールを備える複数のルータを備える発行−購読ネットワーク。   50. An issue-subscribe network comprising a plurality of routers comprising modules for implementing the communication method of claim 49. 請求項49記載の通信方法を実現するユーザ装置を備える複数のルータを備える発行−購読ネットワーク。   50. An issuance-subscription network comprising a plurality of routers comprising user equipment for implementing the communication method according to claim 49. 発行−購読ネットワークにおいてフィルタを伝播するための通信装置であって、
ネットワーク内ノードにおいて、複数のフィルタを受信するフィルタ受信モジュールと、
上記フィルタの数を減少させるフィルタ削減モジュールと、
受信者の振る舞いの規則に基づいて、フィルタを伝播するか否かを決定し、フィルタを伝播すると決定した場合、数が削減されたフィルタを上記ネットワークにおける次のノードに伝播するフィルタ伝播モジュールとを備える通信装置。
A communication device for propagating a filter in a publish-subscribe network,
A filter receiving module for receiving a plurality of filters at a node in the network;
A filter reduction module that reduces the number of filters;
Based on the rules of the behavior of the receiver, decide whether to propagate the filter, and if it decides to propagate the filter, a filter propagation module that propagates the reduced number of filters to the next node in the network A communication device provided.
冗長な述語表現を取り除くようフィルタを簡約する簡約モジュールを備える請求項66記載の通信装置。   68. The communication device of claim 66, further comprising a reduction module that reduces the filter to remove redundant predicate expressions. 上記フィルタ処理モジュールは、ダウンリンクの選択に基づいてフィルタをグループ化するグループ化モジュールを備えることを特徴とする請求項66記載の通信装置。   The communication apparatus according to claim 66, wherein the filter processing module includes a grouping module that groups filters based on selection of a downlink. 上記フィルタ処理モジュールは、フィルタを概算する概算モジュールを備えることを特徴とする請求項66記載の通信装置。   67. The communication device according to claim 66, wherein the filter processing module includes a rough estimation module for roughening a filter. 上記フィルタ処理モジュールは、フィルタを包摂する包摂モジュールを備えることを特徴とする請求項66記載の通信装置。   The communication apparatus according to claim 66, wherein the filter processing module includes an inclusion module that includes a filter. 上記フィルタ処理モジュールは、フィルタの相互の類似性に基づき、フィルタを互いにクラスタ化するクラスタ化モジュールを備えることを特徴とする請求項66記載の通信装置。   The communication device according to claim 66, wherein the filter processing module includes a clustering module that clusters the filters based on the similarity of the filters. 上記フィルタ処理モジュールは、フィルタを併合する併合処理モジュールを備えることを特徴とする請求項66記載の通信装置。   The communication device according to claim 66, wherein the filter processing module includes a merge processing module for merging filters. 発行−購読ネットワークにおいてフィルタを伝播させる通信方法であって、
ルータからフィルタを要求する通知を送信するステップと、
1つ以上のダウンストリームのルータによって通知を受信するステップと、
上記フィルタ要求を更にダウンストリーム側に伝播するステップと、
上記フィルタ要求が伝播されたダウンストリームのルータからの応答を待機するステップと、
上記フィルタ要求が伝播されたダウンストリームのルータからフィルタを収集するステップと、
上記伝播されたフィルタを処理し、上記フィルタの数を削減するステップと、
上記数が削減されたフィルタを上記フィルタを要求したアップストリーム側のルータに送信するステップとを有する通信方法。
A communication method for propagating a filter in a publish-subscribe network, comprising:
Sending a notification requesting a filter from the router;
Receiving a notification by one or more downstream routers;
Further propagating the filter request further downstream;
Waiting for a response from a downstream router to which the filter request has been propagated;
Collecting a filter from a downstream router through which the filter request has been propagated;
Processing the propagated filters to reduce the number of filters;
Transmitting the reduced filter to the upstream router that requested the filter.
各ダウンストリームのルータにおいて、上記フィルタ要求がルータから受け取られたことを反映するようにブックキーピングデータベースを更新するステップと、
上記フィルタ要求が受け取られたルータが動作していたか否かを判定するステップとを有する請求項73記載の通信方法。
Updating the bookkeeping database at each downstream router to reflect that the filter request has been received from the router;
74. The communication method according to claim 73, further comprising a step of determining whether or not the router that has received the filter request is operating.
複数のルータと、請求項73記載の通信方法を実現するモジュールを備える発行者装置とを備える発行−購読ネットワーク。   An issue-subscribe network comprising a plurality of routers and an issuer device comprising a module for realizing the communication method according to claim 73. 発行−購読ネットワークにおいてパケットのコンテンツベースのルーティングを行う通信方法であって、
上記ネットワークにおいてパケットを受信するステップと、
属性空間におけるフィルタ適用範囲を指定するマップにアクセスするステップと、
上記パケットの経路決定のために、該パケットのコンテンツを検査するステップと、
上記マップを用いて、上記パケットの経路決定を補助するステップと、
上記検査されたパケットのコンテンツ及びマップに基づいて、経路決定を行うステップと、
上記経路決定に基づいて、パケットをルーティングするステップとを有する通信方法。
A communication method for content-based routing of packets in an issue-subscribe network,
Receiving a packet in the network;
Accessing a map specifying filter coverage in attribute space;
Inspecting the contents of the packet for route determination of the packet;
Using the map to assist in routing the packet;
Determining a route based on the content and map of the inspected packet;
Routing a packet based on the route determination.
上記経路決定を行うステップは、対応する購読予約にコンテンツを照合するステップを更に有することを特徴とする請求項76記載の通信方法。   77. The communication method according to claim 76, wherein the step of determining a route further comprises a step of collating content with a corresponding subscription reservation. 上記照合するステップは、複数の連言フィルタを用いて、一致を特定するステップを有することを特徴とする請求項77記載の通信方法。   78. The communication method according to claim 77, wherein the collating step includes a step of identifying a match using a plurality of conjunction filters. 上記照合するステップは、属性検査を実行するステップを有することを特徴とする請求項77記載の通信方法。   78. The communication method according to claim 77, wherein the collating step includes a step of performing an attribute check. 上記経路決定を行うステップは、上記マップをオンラインで利用するステップを有することを特徴とする請求項76記載の通信方法。   77. The communication method according to claim 76, wherein the step of determining the route includes a step of using the map online. オフライン又はバックグラウンド処理で、上記フィルタ適用範囲を予め算出するステップを有する請求項76記載の通信方法。   77. The communication method according to claim 76, further comprising a step of calculating the filter application range in advance by offline or background processing. フィルタ適用範囲を予め算出するステップを有し、該予め算出するステップは、フィルタ表現を概算し、削減するステップを有することを特徴とする請求項76記載の通信方法。   77. The communication method according to claim 76, further comprising a step of calculating a filter application range in advance, and the step of calculating in advance includes a step of approximating and reducing the filter expression. フィルタ適用範囲を予め算出するステップを有し、該予め算出するステップは、属性空間をグリッドセルを含むグリッドに空間的に量子化するステップを有することを特徴とする請求項76記載の通信方法。   77. The communication method according to claim 76, further comprising a step of calculating a filter application range in advance, and the step of calculating in advance includes a step of spatially quantizing the attribute space into a grid including grid cells. 上記フィルタ適用範囲を予め算出するステップは、
フィルタ適用範囲情報とグリッドとを結合するステップと、
それぞれのグリッドセル内においてフィルタ適用範囲情報によって記述された処理の統合に基づくマップを生成するステップとを有するステップとを有することを特徴とする請求項83記載の通信方法。
The step of calculating the filter application range in advance includes
Combining the filter coverage information and the grid;
84. The communication method according to claim 83, further comprising the step of: generating a map based on integration of processing described by the filter application range information in each grid cell.
発行−購読ネットワークにおいてパケットのコンテンツベースのルーティングを行うルータであって、請求項76記載の通信方法を実現するモジュールを備えるルータ。   77. A router that performs content-based routing of packets in an publish-subscribe network, comprising a module that implements the communication method of claim 76. 請求項85記載の複数のルータを備えるネットワーク。   86. A network comprising a plurality of routers according to claim 85. 請求項76記載の通信方法を実現する命令を有するコンピュータにより読取可能な媒体。   77. A computer readable medium having instructions for implementing the communication method of claim 76. パケットのコンテンツベースのルーティングを行う通信方法であって、
(a)属性空間を空間量子化するステップと、
(b)それぞれが少なくとも1つの記述された属性を有する複数のフィルタで覆われたグリッドセルを特定するステップと、
(c)ステップ(b)において特定されたグリッドセルをカバーする複数個のフィルタによって記述される処理規則によって、コンテンツベースのルーティング(CBR)テーブルを更新するステップとを有する通信方法。
A communication method for content-based routing of packets,
(A) spatially quantizing the attribute space;
(B) identifying grid cells covered by a plurality of filters each having at least one described attribute;
(C) updating the content-based routing (CBR) table with processing rules described by a plurality of filters covering the grid cells identified in step (b).
1つ以上の新たなフィルタがノードに挿入され又はノードから削除されたか否かを判定するステップと、
1つ以上の新たなフィルタがノードに挿入され又はノードから削除されたと判定された場合に、上記ノードにおいてステップ(b)及び(c)を実行するステップとを有する請求項88記載の通信方法。
Determining whether one or more new filters have been inserted into or removed from the node;
90. The communication method according to claim 88, further comprising: executing steps (b) and (c) at the node when it is determined that one or more new filters have been inserted into or deleted from the node.
発行されたパケットを受信するステップと、
上記受信したパケットを上記グリッドにプロットするステップとを有する請求項88記載の通信方法。
Receiving issued packets; and
The communication method according to claim 88, further comprising the step of plotting the received packet on the grid.
上記算出されたフィルタ適用範囲情報によって完全にカバーされているグリッドセルにプロットされたパケットついて、CBRテーブルを検査し、上記完全にカバーされているグリッドセルにプロットされたパケットに対する処理を判定するステップを有する請求項90記載の通信方法。   Inspecting a CBR table for a packet plotted in a grid cell completely covered by the calculated filter coverage information, and determining processing for the packet plotted in the fully covered grid cell The communication method according to claim 90, comprising: ネットワークトラヒックが設定された閾値を超えているか否かを判定するステップと、
上記ネットワークトラヒックが設定された閾値を超えている場合、上記発行されたパケットをルーティングするステップとを有する請求項91記載の通信方法。
Determining whether network traffic exceeds a set threshold;
92. The communication method according to claim 91, further comprising the step of routing the issued packet when the network traffic exceeds a set threshold value.
上記ネットワークトラヒックが設定された閾値以下である場合、漏れ削減処理を実行するステップを有する請求項92記載の通信方法。   The communication method according to claim 92, further comprising a step of executing leakage reduction processing when the network traffic is equal to or less than a set threshold value. 上記漏れ削減処理を実行するステップは、一次元の正確な照合を行うステップを有することを特徴とする請求項93記載の通信方法。   94. The communication method according to claim 93, wherein the step of executing the leakage reduction process includes a step of performing one-dimensional accurate matching. 上記漏れ削減処理を実行するステップは、外積を算出する処理を含むことを特徴とする請求項93記載の通信方法。   94. The communication method according to claim 93, wherein the step of executing the leakage reduction process includes a process of calculating an outer product. 上記漏れ削減処理を実行するステップは、制限された数の及び様々な属性の順列のサブセットの完全な組に基づく複数のグリッドとCBRテーブルの構成を含むことを特徴とする請求項93記載の通信方法。   94. The communication of claim 93, wherein performing the leakage reduction process comprises constructing a plurality of grids and CBR tables based on a complete set of permuted subsets of a limited number and various attributes. Method. ネットワークトラヒックが設定された閾値以下である場合、部分的にカバーされたグリッドセルにプロットされた削減されたフィルタ述語又はパケットがあるか否かを判定するステップと、
上記部分的にカバーされたグリッドセルにプロットされた削減されたフィルタ述語又はパケットがある場合、述語毎のフィルタ照合を実行し、部分的にカバーされたグリッドセルにプロットされたあらゆる削減されたフィルタ述語及びあらゆるパケットに関するルーティング処理を決定するステップと、
上記決定されたルーティング処理に基づいて上記パケットをルーティングするステップとを有する請求項92記載の通信方法。
Determining if there is a reduced filter predicate or packet plotted in a partially covered grid cell if the network traffic is below a set threshold;
If there is a reduced filter predicate or packet plotted in the partially covered grid cell, perform a filter match for each predicate and any reduced filter plotted in the partially covered grid cell Determining a predicate and a routing process for every packet;
94. The communication method according to claim 92, further comprising the step of routing the packet based on the determined routing process.
フィルタ表現を削減するステップを有する請求項88記載の通信方法。   The communication method according to claim 88, further comprising the step of reducing the filter expression. 上記ステップ(a)は、属性空間を適応量子化するステップを有することを特徴とする請求項88記載の通信方法。   The communication method according to claim 88, wherein said step (a) includes a step of adaptively quantizing the attribute space. 上記適応量子化するステップは、パケット分布情報に基づいて、上記属性空間を適応的に量子化するステップを有することを特徴とする請求項99記載の通信方法。   The communication method according to claim 99, wherein the step of adaptive quantization includes a step of adaptively quantizing the attribute space based on packet distribution information. 上記空間量子化するステップは、パケット分布情報に基づいて、上記属性空間を空間的に量子化するステップを有することを特徴とする請求項88記載の通信方法。   The communication method according to claim 88, wherein the spatial quantization step includes a step of spatially quantizing the attribute space based on packet distribution information. 上記空間量子化するステップは、パケット分布情報に基づいて、グリッドを更新するステップを有することを特徴とする請求項88記載の通信方法。   The communication method according to claim 88, wherein the spatial quantization step includes a step of updating a grid based on packet distribution information. 上記ステップ(c)は、上記算出されたフィルタ適用範囲情報によってカバーされているグリッドセルについて、操作ビットマスクを生成又は更新するステップを有することを特徴とする請求項88記載の通信方法。   The communication method according to claim 88, wherein the step (c) includes a step of generating or updating an operation bit mask for the grid cell covered by the calculated filter application range information. 上記ステップ(c)は、上記算出されたフィルタ適用範囲情報によってカバーされているグリッドセルについて、リンクされた処理のリストを生成又は更新するステップを有することを特徴とする請求項88記載の通信方法。   The communication method according to claim 88, wherein the step (c) includes a step of generating or updating a list of linked processes for the grid cells covered by the calculated filter coverage information. . 上記CBRテーブルにおいてカバーされたセルの、フィルタ分布に関する統計情報を含んでいるパラメータを更新するステップを有する請求項88記載の通信方法。   90. The communication method according to claim 88, further comprising the step of updating a parameter including statistical information regarding a filter distribution of a cell covered in the CBR table. 上記ステップ(a)において用いられるパケット分布に関する統計情報を集めるステップを有する請求項88記載の通信方法。   The communication method according to claim 88, further comprising the step of collecting statistical information relating to the packet distribution used in step (a). 上記ステップ(a)〜(c)は、オフラインで実行されることを特徴とする請求項88記載の通信方法。   The communication method according to claim 88, wherein the steps (a) to (c) are performed offline. CBRテーブルと、CBRテーブルにおける規則のみを用いて、コンテンツベースのルーティング(CBR)を実行するステップを有する請求項88記載の通信方法。   The communication method according to claim 88, further comprising performing content-based routing (CBR) using only the CBR table and the rules in the CBR table. 発行−購読ネットワークにおいてパケットのコンテンツベースのルーティングを行う通信装置であって、請求項88記載の通信方法を実現するモジュールを備える通信装置。   90. A communication device that performs content-based routing of packets in an issue-subscribe network, comprising a module that implements the communication method of claim 88. 当該通信装置は、ルータであることを特徴とする請求項109記載の通信装置。   The communication apparatus according to claim 109, wherein the communication apparatus is a router. 請求項88記載の通信方法を実現するモジュールを備える複数のルータを備えるネットワーク。   90. A network comprising a plurality of routers comprising modules for realizing the communication method according to claim 88. 請求項88記載の通信方法を実現する命令を有するコンピュータにより読取可能な媒体。   90. A computer readable medium having instructions for implementing the communication method of claim 88. 発行−購読ネットワークにおいてクエリ−応答インタラクションを実現する通信方法であって、
データセットに関連する広告を受信するステップと、
論理式を表すクエリを受信するステップと、
上記広告を対応する購読予約にマッピングするステップと、
上記クエリを対応する通知にマッピングするステップと、
上記対応する購読予約を用いて、広告を実現するステップと、
上記対応する通知を用いて、ネットワークにおける、クエリを実現するステップとを有する通信方法。
A communication method for realizing query-response interaction in an issue-subscribe network, comprising:
Receiving an advertisement associated with the dataset;
Receiving a query representing a logical expression;
Mapping the advertisement to a corresponding subscription reservation;
Mapping the query to a corresponding notification;
Using the corresponding subscription above to realize the advertisement;
Using the corresponding notification to implement a query in the network.
上記広告をマッピングするステップは、該広告に対し、一般的マッピングを実行するステップを有することを特徴とする請求項113記載の通信方法。   114. The communication method according to claim 113, wherein the step of mapping the advertisement comprises performing general mapping on the advertisement. 上記クエリをマッピングするステップは、クエリに対し、選言的クエリマッピングを実行するステップを有することを特徴とする請求項113記載の通信方法。   114. The communication method according to claim 113, wherein the step of mapping the query includes the step of performing disjunctive query mapping for the query. 発行−購読ネットワークにおいてクエリ−応答インタラクションを実現する通信方法であって、
広告を登録するための購読予約を作成するステップと、
通知を発行し、クエリを配信するステップと、
購読予約を用いてコンテンツベースのルーティング(CBR)を実行し、広告主に通知をプッシュするステップと、
要求者に応答データを返すステップとを有する通信方法。
A communication method for realizing query-response interaction in an issue-subscribe network, comprising:
Creating a subscription to register an ad;
Issuing a notification and delivering a query;
Performing content-based routing (CBR) using a subscription and pushing a notification to the advertiser;
Returning the response data to the requester.
上記応答データを返すステップは、上記広告主と上記要求者の間のユニキャスト接続を用いて行われることを特徴とする請求項116記載の通信方法。   117. The communication method according to claim 116, wherein the step of returning the response data is performed using a unicast connection between the advertiser and the requester. 上記応答データを返すステップは、上記要求者により、上記応答データのための新たな購読予約を作成し、該新たな購読予約を用いてCBRを実行し、該応答データを該要求者にプッシュするステップを有することを特徴とする請求項116記載の通信方法。   In the step of returning the response data, the requester creates a new subscription reservation for the response data, executes CBR using the new subscription reservation, and pushes the response data to the requester. 117. The communication method according to claim 116, further comprising a step. 上記作成するステップは、1組のデータに関する広告を登録するための購読予約を作成するステップを有することを特徴とする請求項116記載の通信方法。   117. The communication method according to claim 116, wherein the creating step comprises creating a subscription for registering an advertisement related to a set of data. クエリ−応答インタラクションを実現する発行−購読ネットワークであって、請求項116記載の通信方法を実現するモジュールを備えるルータと、発行者装置と、購読者装置を備える発行−購読ネットワーク。   119. An publish-subscribe network that implements a query-response interaction, the router comprising a module that implements the communication method of claim 116, an issuer device, and a subscriber device. 発行−購読ネットワークにおいてクエリ−応答インタラクションを実現する通信方法であって、
広告を登録する購読予約を受信するステップと、
クエリを配信する通知を受信するステップと、
購読予約を用いて、コンテンツベースのルーティングを実行し、隣接しているノードに通知を転送するか否かを判定するステップと、
上記判定に基づいて、通知を選択的に転送するステップとを有する通信方法。
A communication method for realizing query-response interaction in an issue-subscribe network, comprising:
Receiving a subscription to register an advertisement;
Receiving a notification to deliver the query;
Using a subscription to perform content-based routing and determining whether to forward notifications to adjacent nodes;
And a step of selectively transferring the notification based on the determination.
発行−購読ネットワークにおいてクエリ−応答インタラクションを実現する通信装置であって、請求項121記載通信方法を実現するモジュールを備える通信装置。   122. A communication device that implements query-response interaction in an issue-subscribe network, comprising a module that implements the communication method according to claim 121. 上記通信装置は、ルータを含むことを特徴とする請求項122記載の通信装置。   The communication device according to claim 122, wherein the communication device includes a router. 発行−購読ネットワークにおいてクエリ−応答インタラクションを実現する通信方法であって、
初期サブジェクトを含む通知を発行するステップと、
以前に発行された広告に関する過去サブジェクトを含む通知を発行するステップと、
以前に発行された広告へのクエリである過去サブジェクトに対する購読予約を提出するステップと、
過去サブジェクトに購読予約を用いてコンテンツベースのルーティングを実行し、以前に発行された広告を消費者にプッシュするステップとを有する通信方法。
A communication method for realizing query-response interaction in an issue-subscribe network, comprising:
Issuing a notification including an initial subject;
Issuing a notification containing past subjects about previously published ads;
Submitting a subscription to a past subject that is a query for a previously published ad;
Performing a content-based routing using a subscription reservation for a past subject and pushing previously published advertisements to a consumer.
過去サブジェクトに対する購読停止を提出するステップを有する請求項124記載の通信方法。   129. The communication method according to claim 124, further comprising the step of submitting a subscription stop for the past subject. 初期サブジェクトの購読予約を提出するステップを有する請求項124記載の通信方法。   129. The communication method of claim 124, further comprising the step of submitting a subscription subscription for the initial subject. クエリ−応答インタラクションを実現する発行−購読ネットワークであって、請求項124記載の通信方法を実現するモジュールを備えるルータと、発行者装置と、購読者装置とを備える発行−購読ネットワーク。   129. An publish-subscribe network that implements query-response interaction, comprising a router comprising a module that implements the communication method of claim 124, an issuer device, and a subscriber device. 発行−購読ネットワークにおいてクエリ−応答インタラクションを実現する通信方法であって、
初期サブジェクトを含む通知と、以前に発行された広告に関する過去サブジェクトを含む通知とを受信するステップと、
初期サブジェクトに関する購読予約と、以前に発行された広告へのクエリである過去サブジェクトに関する購読予約とを受信するステップと、
上記過去サブジェクトに購読予約を用いて、コンテンツベースのルーティングを実行し、上記以前に発行された広告を隣接しているノードに転送するか否か決定するステップと、
上記判定に基づいて、上記以前に発行された広告を選択的に転送するステップとを有する通信方法。
A communication method for realizing query-response interaction in an issue-subscribe network, comprising:
Receiving a notification including an initial subject and a notification including a past subject for a previously published advertisement;
Receiving a subscription reservation for an initial subject and a subscription reservation for a past subject that is a query for a previously published ad;
Performing a content-based routing using a subscription reservation for the past subject and determining whether to forward the previously published advertisement to an adjacent node;
Selectively transferring the previously issued advertisement based on the determination.
発行−購読ネットワークにおいてクエリ−応答インタラクションを実現する通信装置であって、請求項128記載の通信方法を実現するモジュールを備える通信装置。   129. A communication device that implements query-response interaction in an issue-subscribe network, comprising a module that implements the communication method of claim 128. 上記通信装置は、ルータを備えることを特徴とする請求項129記載の通信装置。   131. The communication device according to claim 129, wherein the communication device comprises a router. 発行−購読ネットワークにおいてクエリ−応答インタラクションを実現する通信方法であって、
発行された通知をキャッシングするステップと、
上記キャッシングされた、発行された通知内のコンテンツを広告する通知を発行するステップと、
上記発行された通知へのクエリである購読予約を提出するステップと、
上記キャッシュから、上記キャッシングされた、発行された通知を再生するステップと、
上記購読予約に基づいて、コンテンツベースのルーティング(CBR)を実行し、上記再生された、発行された通知を消費者にプッシュするステップとを有する通信方法。
A communication method for realizing query-response interaction in an issue-subscribe network, comprising:
Caching issued notifications;
Issuing a notification advertising the cached content in the issued notification;
Submitting a subscription that is a query to the issued notification;
Replaying the cached issued notification from the cache;
Performing a content-based routing (CBR) based on the subscription and pushing the reproduced issued notification to a consumer.
クエリ−応答インタラクションを実現する発行−購読ネットワークであって、請求項131記載の通信方法を実現するモジュールを備えるルータと、発行者装置と、購読者装置を備える発行−購読ネットワーク。   132. An publish-subscribe network that implements a query-response interaction, the router comprising a module that implements the communication method of claim 131, an issuer device, and a subscriber device. 発行−購読ネットワークにおいてクエリ−応答インタラクションを実現する通信方法であって、
発行された通知をキャッシングするステップと、
上記発行された通知を要求する購読予約を受信するステップと、
上記キャッシュから、上記キャッシングされた、発行された通知を再生するステップと、
上記発行された通知へのクエリである購読予約を用いてコンテンツベースのルーティング(CBR)を実行し、上記キャッシングされた、発行された通知を隣接しているノードに転送するか否かを判定するステップと、
上記判定に基づいて、信頼できる伝送プロトコルを用いて、上記隣接しているノードに通知を選択的に転送するステップとを有する通信方法。
A communication method for realizing query-response interaction in an issue-subscribe network, comprising:
Caching issued notifications;
Receiving a subscription requesting the issued notification;
Replaying the cached issued notification from the cache;
Performs content-based routing (CBR) using a subscription that is a query to the issued notification to determine whether to forward the cached issued notification to an adjacent node Steps,
Selectively forwarding notifications to the adjacent nodes using a reliable transmission protocol based on the determination.
発行−購読ネットワークにおいてクエリ−応答インタラクションを実現する通信装置であって、請求項133記載の通信方法を実現するモジュールを備える通信装置。   134. A communication device that implements query-response interaction in an issue-subscribe network, comprising a module that implements the communication method of claim 133. 上記通信装置は、ルータを備えることを特徴とする請求項134記載の通信装置。   135. The communication device according to claim 134, wherein the communication device comprises a router. 発行−購読ネットワークにおいてクエリ−応答インタラクションを実現する通信方法であって、
データ広告を受信するステップと、
上記データ広告を購読予約に変換するステップと、
クエリを受信するステップと、
上記クエリを通知に変換するステップと、
上記購読予約に基づいてコンテンツベースのルーティング(CBR)を実行し、広告主に通知をプッシュするステップと、
上記通知に基づいて、要求者に応答データを返すステップとを有する通信方法。
A communication method for realizing query-response interaction in an issue-subscribe network, comprising:
Receiving a data ad;
Converting the data ad into a subscription,
Receiving a query;
Converting the above query into a notification;
Performing content-based routing (CBR) based on the subscription and pushing a notification to the advertiser;
Returning a response data to the requester based on the notification.
変換するステップは、存在論的変換を実行するステップを有することを特徴とする請求項136記載の通信方法。   The communication method according to claim 136, wherein the step of converting comprises the step of performing ontological conversion. 上記応答データを返すステップは、上記広告主と上記要求者の間のユニキャスト接続を用いて行われることを特徴とする請求項136記載の通信方法。   The communication method according to claim 136, wherein the step of returning the response data is performed using a unicast connection between the advertiser and the requester. 上記応答データを返すステップは、上記要求者により、上記応答データのための新たな購読予約を作成し、該新たな購読予約を用いてCBRを実行し、該応答データを該要求者にプッシュするステップを有することを特徴とする請求項136記載の通信方法。   In the step of returning the response data, the requester creates a new subscription reservation for the response data, executes CBR using the new subscription reservation, and pushes the response data to the requester. The communication method according to claim 136, comprising steps. 上記クエリを受信するステップは、データの組に関するクエリを受信することを特徴とする請求項136記載の通信方法。   The communication method according to claim 136, wherein the step of receiving a query receives a query related to a data set. 上記データ広告を受信するステップは、データの組に関するデータ広告を受信することを特徴とする請求項136記載の通信方法。   The communication method according to claim 136, wherein the step of receiving the data advertisement includes receiving a data advertisement related to a data set. 上記データ広告を変換するステップは、該広告に対し、一般的マッピングを実行するステップを有することを特徴とする請求項136記載の通信方法。   The communication method of claim 136, wherein the step of converting the data advertisement comprises performing general mapping on the advertisement. 上記データ広告を変換するステップは、該広告に対し、選言的クエリマッピングを実行するステップを有することを特徴とする請求項136記載の通信方法。   The communication method according to claim 136, wherein the step of converting the data advertisement comprises performing disjunctive query mapping for the advertisement. 上記データ広告を変換するステップは、上記購読予約において、上記データ広告における属性と表現演算子の組合せを表す属性を定義するステップを有することを特徴とする請求項136記載の通信方法。   The communication method according to claim 136, wherein the step of converting the data advertisement includes the step of defining an attribute representing a combination of an attribute and an expression operator in the data advertisement in the subscription. 上記クエリを変換するステップは、上記クエリにおける属性及び表現演算子の組合せを表す通知において、属性を定義するステップを有することを特徴とする請求項136記載の通信方法。   The communication method according to claim 136, wherein the step of converting the query includes a step of defining an attribute in a notification representing a combination of an attribute and an expression operator in the query. クエリ−応答インタラクションを実現する発行−購読ネットワークであって、請求項136記載の通信方法を実現するモジュールを備えるルータと、発行者装置と、購読者装置を備える発行−購読ネットワーク。   137. An publish-subscribe network that implements a query-response interaction, the router comprising a module that implements the communication method of claim 136, an issuer device, and a subscriber device. 発行−購読ネットワークにおいてクエリ−応答インタラクションを実現する通信方法であって、
クエリを受信するステップと、
上記クエリを通知に変換するステップと、
上記通知及び購読予約に変換されたデータ広告に対して実行されるコンテンツベースのルーティングに基づいて、応答データを受信するステップとを有する通信方法。
A communication method for realizing query-response interaction in an issue-subscribe network, comprising:
Receiving a query;
Converting the above query into a notification;
Receiving response data based on content-based routing performed on the data advertisement converted into the notification and subscription.
発行−購読ネットワークにおいてクエリ−応答インタラクションを実現する通信装置であって、請求項147記載の通信方法を実現するモジュールを備える通信装置。   148. A communication device that implements query-response interaction in an issue-subscribe network, comprising a module that implements the communication method of claim 147. 上記通信装置は、購読者装置を含むことを特徴とする請求項148記載の通信装置。   149. The communication device of claim 148, wherein the communication device includes a subscriber device. 発行−購読ネットワークにおいてクエリ−応答インタラクションを実現する通信方法であって、
データ広告を受信するステップと、
上記データ広告を購読予約に変換するステップと、
購読予約と通知に実行されたコンテンツベースのルーティングに基づいて通知に変形されたクエリを受信するステップと、
上記通知に基づいて、応答データを要求者に転送するステップとを有する通信方法。
A communication method for realizing query-response interaction in an issue-subscribe network, comprising:
Receiving a data ad;
Converting the data ad into a subscription,
Receiving a query transformed into a notification based on content-based routing performed on the subscription and notification;
Transferring the response data to the requester based on the notification.
発行−購読ネットワークにおいてクエリ−応答インタラクションを実現する通信装置であって、請求項150記載の通信方法を実現するモジュールを備える通信装置。   161. A communication device that implements query-response interaction in an issue-subscribe network, comprising a module that implements the communication method of claim 150. 上記通信装置は、発行者装置を含むことを特徴とする請求項151記載の通信装置。   The communication apparatus according to claim 151, wherein the communication apparatus includes an issuer apparatus. 発行−購読ネットワークにおいてクエリ−応答インタラクションを実現する通信方法であって、
クエリから変化されてた通知を受信するステップと、
コンテンツベースのルーティング(CBR)し、隣接しているノードに通知を転送するか否かを判定するステップと、
上記判定に基づいて、上記通知を選択的に転送するステップとを有する通信方法。
A communication method for realizing query-response interaction in an issue-subscribe network, comprising:
Receiving a changed notification from the query;
Content-based routing (CBR) and determining whether to forward notifications to adjacent nodes;
And selectively transferring the notification based on the determination.
データ広告から変換された購読予約を受信するステップを有し、
上記CBRを実行するステップは、上記購読予約に基づいてCBRを実行することを特徴とする請求項153記載の通信方法。
Receiving a converted subscription from a data advertisement;
154. The communication method according to claim 153, wherein the step of executing CBR executes CBR based on the subscription.
発行−購読ネットワークにおいてクエリ−応答インタラクションを実現する通信装置であって、請求項153記載の通信方法を実現するモジュールを備える通信装置。   154. A communication device that implements query-response interaction in an issue-subscribe network, comprising a module that implements the communication method of claim 153. 上記通信装置は、ルータを含むことを特徴とする請求項155記載の通信装置。   The communication apparatus according to claim 155, wherein the communication apparatus includes a router. 発行−購読ネットワークを介して提供されるメッセージの持続的なキャッシングを実現する通信方法であって、
(a)第1のノードにおいて、ネットワークを介して、データを含むメッセージを受信するステップと、
(b)上記データに時刻を示すマークを付与するステップと、
(c)第1のノードのキャッシュメモリに、上記データをキャッシングするステップと、
(d)コンテンツベースのルーティングを用いて、第2のノードに上記メッセージをルーティングするステップとを有する通信方法。
A communication method for realizing persistent caching of messages provided via a publish-subscribe network, comprising:
(A) receiving a message including data via a network at a first node;
(B) adding a mark indicating time to the data;
(C) caching the data in the cache memory of the first node;
And (d) routing the message to the second node using content-based routing.
(e)上記第2のノードのキャッシュメモリにデータをキャッシングする点を除いて、上記第2のノードでステップ(a)〜(d)を繰り返すステップを更に有する請求項157記載の通信方法。   158. The communication method according to claim 157, further comprising: (e) repeating steps (a) to (d) at the second node except that data is cached in the cache memory of the second node. 上記データをキャッシングするステップ(c)からタイムグレイン期間Gが経過したか否かを判定するステップと、
上記タイムグレイン期間Gが経過したと判定した場合、上記キャッシングしたデータをキャッシュメモリからディスクに移管するステップとを有する請求項157記載の通信方法。
Determining whether a time grain period G has elapsed since step (c) of caching the data;
159. The communication method according to claim 157, further comprising a step of transferring the cached data from a cache memory to a disk when it is determined that the time grain period G has elapsed.
上記キャッシングされたデータの最後のブロックについて、上記データをキャッシングするステップ(c)から持続タイムフレーム期間Tが経過した否かを判定するステップと、
上記持続タイムフレーム期間Tが経過したと判定した場合、上記キャッシングされたデータを消去するステップとを有する請求項157記載の通信方法。
Determining whether the last time frame period T has elapsed since step (c) of caching the data for the last block of the cached data;
158. The communication method according to claim 157, further comprising: erasing the cached data when it is determined that the continuous time frame period T has elapsed.
上記持続タイムフレーム期間Tは、データに関連するチャンネルに基づいて決定されることを特徴とする請求項160記載の通信方法。   The communication method according to claim 160, wherein the duration time frame period T is determined based on a channel associated with data. 上記第1のノードは、インテリジェントルータを含み上記受信するステップ(a)は、上記インテリジェントルータにおいてメッセージを受信するステップを有することを特徴とする請求項157記載の通信方法。   158. The communication method according to claim 157, wherein said first node includes an intelligent router and said receiving step (a) comprises receiving a message at said intelligent router. 上記インテリジェントルータは、キャッシュマネージャを備え、上記キャッシュマネージャは、ステップ(b)及び(c)を実行することを特徴とする請求項162記載の通信方法。   The communication method according to claim 162, wherein the intelligent router includes a cache manager, and the cache manager executes steps (b) and (c). 上記第2のノードは、購読者装置を含むことを特徴とする請求項157記載の通信方法。   The communication method according to claim 157, wherein the second node includes a subscriber device. 発行−購読ネットワークを介して配信されたメッセージの持続的なキャッシングを実現するルータであって、請求項157記載の通信方法を実現するモジュールを備えるルータ。   158. A router that implements persistent caching of messages delivered over an publish-subscribe network, comprising a module that implements the communication method of claim 157. メッセージの持続的なキャッシングを実現する発行−購読ネットワークであって、請求項158記載の通信方法を実現するモジュールを備えるノードを備える発行−購読ネットワーク。   158. An publish-subscribe network that implements persistent caching of messages, comprising a node comprising a module that implements the communication method of claim 158. 請求項157記載の通信方法を実現する命令を有するコンピュータにより読取可能な媒体。   158. A computer readable medium having instructions for implementing the communication method of claim 157. 発行−購読ネットワークを介して配信されたメッセージの持続的なキャッシングを実現する通信方法であって、
発行−購読ネットワークを介して、データを含むメッセージを受信するステップと、
上記データに時刻を示すマークを付与するステップと、
キャッシュメモリに、上記データをキャッシングするステップと、
上記データをキャッシングするステップからタイムグレイン期間Gが経過したか否かを判定するステップと、
上記タイムグレイン期間Gが経過したと判定した場合、上記キャッシングしたデータをキャッシュメモリからディスクに移管するステップと、
上記キャッシングされたデータの最後のブロックについて、上記データをキャッシングするステップから持続タイムフレーム期間Tが経過した否かを判定するステップと、
上記持続タイムフレーム期間Tが経過したと判定した場合、上記キャッシングされたデータを消去するステップとを有する通信方法。
A communication method that enables persistent caching of messages delivered over a publish-subscribe network, comprising:
Receiving a message containing data via a publish-subscribe network;
Adding a mark indicating time to the data;
Caching the data in a cache memory;
Determining whether a time grain period G has elapsed from the step of caching the data;
If it is determined that the time grain period G has elapsed, the step of transferring the cached data from the cache memory to a disk;
Determining whether a last time frame period T has elapsed from the step of caching the data for the last block of the cached data;
And erasing the cached data when it is determined that the duration time frame period T has elapsed.
上記キャッシングされたデータに関する要求が受信されたか否かを判定するステップを有する請求項168記載の通信方法。   169. The communication method of claim 168, comprising determining whether a request for the cached data has been received. 上記キャッシングされたデータに関する要求は、ユーザ装置から受信されることを特徴とする請求項169記載の通信方法。   169. The communication method of claim 169, wherein the request for cached data is received from a user device. 上記キャッシングされたデータに関する要求が受信された場合、上記キャッシングされたデータを読み出すステップを有する請求項169記載の通信方法。   169. The communication method of claim 169, comprising the step of reading the cached data when a request for the cached data is received. 上記キャッシングされたデータを読み出すステップは、アップストリームのキャッシュを呼び出すステップと、上記アップストリームのキャッシュから、上記キャッシングされたデータを読み出すステップとを有することを特徴とする請求項171記載の通信方法。   The communication method according to claim 171, wherein the step of reading the cached data includes a step of calling an upstream cache and a step of reading the cached data from the upstream cache. 上記アップストリームのキャッシュから読み出されたキャッシングされたデータに対し、重複抑制処理を実行するステップを有する請求項172記載の通信方法。   173. The communication method according to claim 172, further comprising a step of executing a duplication suppression process on the cached data read from the upstream cache. 上記キャッシングされたデータを読み出すステップは、ユーザ装置のエージェントからアップストリームのキャッシュのリストを取得するステップを有することを特徴とする請求項172記載の通信方法。   173. The communication method of claim 172, wherein the step of reading the cached data comprises the step of obtaining a list of upstream caches from an agent of a user device. ユーザ装置へのルーティングのために、上記キャッシングされたデータをバックボーンルータに転送するステップを有する請求項171記載の通信方法。   The communication method according to claim 171, further comprising the step of transferring the cached data to a backbone router for routing to a user equipment. 上記キャッシングされたデータにインデクスを付すステップを有する請求項168記載の通信方法。   169. The communication method according to claim 168, further comprising the step of attaching an index to the cached data. 上記キャッシングされたデータにインデクスを付すステップは、ID、サブジェクト及び/又はタイムスタンプによってデータにインデクスを付すステップを有することを特徴とする請求項176記載の通信方法。   177. The communication method according to claim 176, wherein the step of indexing the cached data includes the step of indexing the data by ID, subject and / or time stamp. 上記受信、時刻情報の付与及びキャッシングのステップは、アップストリームのルーティングノードにおいて実行されることを特徴とする請求項168記載の通信方法。   168. The communication method according to claim 168, wherein the steps of receiving, adding time information, and caching are executed in an upstream routing node. 上記受信のステップを繰り返すことを特徴とする請求項168記載の通信方法。   168. The communication method according to claim 168, wherein the receiving step is repeated. 発行−購読ネットワークを介して配信されたメッセージの持続的なキャッシングを実現するルータであって、請求項168記載の通信方法を実現するモジュールを備えるルータ。   169. A router that implements persistent caching of messages delivered over an publish-subscribe network, comprising a module that implements the communication method of claim 168. メッセージの持続的なキャッシングを実現する発行−購読ネットワークであって、それぞれ、請求項168記載の通信方法を実行するモジュールを備える第1のノード及び該第1のノードのダウンストリーム側の第2のノードを備える発行−購読ネットワーク。   170. A publish-subscribe network that implements persistent caching of messages, each comprising a first node comprising a module for performing the communication method of claim 168 and a second downstream side of the first node. Publish-subscribe network with nodes. 請求項168記載の通信方法を実現する命令を有するコンピュータにより読取可能な媒体。   170. A computer readable medium having instructions for implementing the communication method of claim 168. 発行−購読ネットワークを介して配信されたメッセージの持続的なキャッシングを実現する通信方法であって、
(a)複数のアップストリームノードにおいて、ネットワークを介して、データを有する複数のメッセージを受け取るステップと、
(b)上記データに時刻情報を付与するステップと、
(c)上記複数のアップストリームノードのうちの1つのアップストリームノードにおいて、キャッシュに上記データをキャッシングするステップと、
(d)コンテンツベースのルーティングを用いて、エッジノードにメッセージをルーティングするステップと、
(e)上記エッジノードのキャッシュメモリにデータをキャッシングする点を除いて、上記エッジノードにおいてステップ(a)〜(c)を繰り返すステップとを有するデータ通信方法。
A communication method that enables persistent caching of messages delivered over a publish-subscribe network, comprising:
(A) receiving a plurality of messages having data via a network at a plurality of upstream nodes;
(B) adding time information to the data;
(C) caching the data in a cache at one upstream node of the plurality of upstream nodes;
(D) routing the message to the edge node using content-based routing;
(E) A data communication method comprising the steps of repeating steps (a) to (c) at the edge node except that data is cached in the cache memory of the edge node.
コンテンツベースのルーティングを用いて、エッジノードから購読者装置に上記メッセージの少なくとも1つをルーティングするステップを有する請求項183記載の通信方法。   184. The communication method of claim 183, comprising routing at least one of the messages from an edge node to a subscriber device using content-based routing. 上記エッジノードにおいて、上記購読者装置から、上記キャッシングされたデータの要求を受信するステップを有する請求項184記載の通信方法。   185. The communication method according to claim 184, further comprising the step of receiving the cached data request from the subscriber device at the edge node. 上記要求に応じて、上記キャッシングされたデータの時間量を判定するステップと、
上記キャッシングされたデータに付された時刻情報に基づいて、上記判定された時間量に対応する上記キャッシングされたデータを読み出すステップとを有する請求項185記載の通信方法。
Determining the amount of time for the cached data in response to the request;
186. The communication method according to claim 185, further comprising: reading the cached data corresponding to the determined amount of time based on time information attached to the cached data.
上記時間量は、読み出すべきキャッシングされたデータの時間量を含む要求に基づいて判定されることを特徴とする請求項186記載の通信方法。   187. The communication method of claim 186, wherein the amount of time is determined based on a request that includes a time amount of cached data to be read. 上記時間量は、上記購読者装置が発行−購読ネットワークから切断している時間である購読者装置の切断時間に基づいて判定されることを特徴とする請求項186記載の通信方法。   187. The communication method of claim 186, wherein the amount of time is determined based on a subscriber device disconnect time, which is a time that the subscriber device disconnects from the issue-subscribe network. 上記要求されたデータの少なくとも幾つかが上記複数アップストリームノードのうちの1つ以上のアップストリームに保存されていることを判定するステップを有する請求項185記載の通信方法。   186. The communication method of claim 185, comprising determining that at least some of the requested data is stored in one or more of the plurality of upstream nodes. 上記エッジノードにおいて、上記購読者装置からアップストリームノードのリストを受け取るステップを有する請求項189記載の通信方法。   189. The communication method of claim 189, comprising the step of receiving at the edge node a list of upstream nodes from the subscriber device. 上記複数のアップストリームノードのうちの1つ以上のアップストリームノードに、上記キャッシングされたデータに関する要求を送信するステップと、
上記複数のアップストリームノードのうちの1つ以上のアップストリームノードから、上記要求された、キャッシングされたデータを読み出すステップと、
上記読み出したデータを上記購読者装置にルーティングするステップとを有する請求項189記載の通信方法。
Sending a request for the cached data to one or more upstream nodes of the plurality of upstream nodes;
Reading the requested cached data from one or more upstream nodes of the plurality of upstream nodes;
190. The communication method according to claim 189, further comprising the step of routing the read data to the subscriber device.
上記読み出されたキャッシングされたデータに対し、重複抑制処理を実行するステップを有する請求項191記載の通信方法。   191. The communication method according to claim 191, further comprising a step of executing a duplication suppression process on the read cached data. メッセージの持続的なキャッシングを実現する発行−購読ネットワークであって、請求項183記載の通信方法を実現するモジュールを備える複数のアップストリームノード及びエッジノードを備える発行−購読ネットワーク。   184. A publish-subscribe network that implements persistent caching of messages, comprising a plurality of upstream nodes and edge nodes comprising modules that implement the communication method of claim 183.
JP2009031766A 2002-03-28 2009-02-13 Method and device for routing, query and response based on reliable and efficient content in publish-subscribe network Pending JP2009163753A (en)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US36910502P 2002-03-28 2002-03-28
US36883302P 2002-03-28 2002-03-28
US36887002P 2002-03-28 2002-03-28
US36883102P 2002-03-28 2002-03-28
US36983202P 2002-04-03 2002-04-03
US44778203P 2003-02-19 2003-02-19

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2003581058A Division JP2005521950A (en) 2002-03-28 2003-03-28 Method and apparatus for reliable, efficient content-based routing, queries and responses in publish-subscribe networks

Publications (1)

Publication Number Publication Date
JP2009163753A true JP2009163753A (en) 2009-07-23

Family

ID=28679208

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2003581058A Pending JP2005521950A (en) 2002-03-28 2003-03-28 Method and apparatus for reliable, efficient content-based routing, queries and responses in publish-subscribe networks
JP2009031766A Pending JP2009163753A (en) 2002-03-28 2009-02-13 Method and device for routing, query and response based on reliable and efficient content in publish-subscribe network

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2003581058A Pending JP2005521950A (en) 2002-03-28 2003-03-28 Method and apparatus for reliable, efficient content-based routing, queries and responses in publish-subscribe networks

Country Status (6)

Country Link
EP (1) EP1969480A4 (en)
JP (2) JP2005521950A (en)
KR (1) KR100971506B1 (en)
CN (1) CN100458767C (en)
AU (1) AU2003218455A1 (en)
WO (1) WO2003083703A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9842481B1 (en) 2016-06-09 2017-12-12 Fujitsu Limited Apparatus and method to collect device information published in past times via a network of gateways
US9911304B2 (en) 2015-10-20 2018-03-06 Fujitsu Limited Distributed control method, distributed control system, and non-transitory computer-readable storage medium

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7574408B2 (en) * 2006-05-05 2009-08-11 Microsoft Corporation Publisher unions
CN101668031B (en) * 2008-09-02 2013-10-16 阿里巴巴集团控股有限公司 Message processing method and message processing system
JPWO2010090027A1 (en) * 2009-02-05 2012-08-09 日本電気株式会社 Broker node and event topic control method in distributed event delivery system
EP2471242B1 (en) * 2009-08-25 2015-06-10 Telefonaktiebolaget L M Ericsson (PUBL) Method and apparatus for handling subscriptions to changes in user data in a telecommunications system
US9720681B2 (en) * 2011-07-20 2017-08-01 Data I/O Corporation Device programming system with data broadcast and method of operation thereof
US8750309B2 (en) * 2012-02-29 2014-06-10 Telefonaktiebolaget L M Ericsson (Publ) Compound masking and entropy for data packet classification using tree-based binary pattern matching
US9886210B2 (en) * 2015-06-09 2018-02-06 Ultrata, Llc Infinite memory fabric hardware implementation with router
US9602455B2 (en) * 2015-08-07 2017-03-21 Machine Zone, Inc. Scalable, real-time messaging system
JP6525102B2 (en) * 2016-02-18 2019-06-05 日本電気株式会社 Communication system, edge server, method and program
US10129360B2 (en) 2016-03-28 2018-11-13 The Boeing Company Unified data networking across heterogeneous networks
US9608928B1 (en) * 2016-07-06 2017-03-28 Machine Zone, Inc. Multiple-speed message channel of messaging system
KR102031726B1 (en) * 2017-11-16 2019-10-14 경북대학교 산학협력단 OPERATING METHOD FOR INTERNET OF THINGS SYSTEM BASED ON CoAP USING DISTRIBUTED PUBLISH-SUBSCRIBE TECHNIQUE
KR102033500B1 (en) * 2017-12-26 2019-11-08 경희대학교 산학협력단 Packing Routing method by Edge Cloud in Distributed Cloud System
JP6750646B2 (en) 2018-06-07 2020-09-02 トヨタ自動車株式会社 In-vehicle device, information processing method, and information processing program
KR102339661B1 (en) * 2018-09-28 2021-12-14 (주)구름네트웍스 Gateway Devices For DDS
KR102279601B1 (en) * 2018-09-28 2021-07-19 (주)구름네트웍스 Method Of Gateway For DDS
US20200364552A1 (en) * 2019-05-13 2020-11-19 Baidu Usa Llc Quantization method of improving the model inference accuracy
US11580165B2 (en) * 2019-08-06 2023-02-14 Twitter, Inc. Event producer system of a messaging platform for delivering real-time messages
US11714694B2 (en) * 2019-11-08 2023-08-01 Salesforce, Inc. Error notification mechanism for streaming events
KR102527601B1 (en) * 2021-04-02 2023-05-02 이상규 Method for chatting messages by topic based on subscription channel reference in server and user device
CN113783838B (en) * 2021-08-05 2024-02-06 山东有人物联网股份有限公司 Subscription method, subscription control device and computer readable storage medium

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08153054A (en) * 1994-11-28 1996-06-11 Mitsubishi Electric Corp File transfer system
JPH117407A (en) * 1997-05-09 1999-01-12 Internatl Business Mach Corp <Ibm> Dynamic push filtering method accompanied by staging/ buffering in proxy hierarchy
JP2000357113A (en) * 1999-06-14 2000-12-26 Just Syst Corp Device and method for information processing, and computer-readable recording medium where program allowing computer to implement the method is recorded
JP2001168921A (en) * 1999-12-06 2001-06-22 Hitachi Ltd Data relay method by gateway device
JP2001256098A (en) * 2000-03-09 2001-09-21 Hitachi Ltd Method for controlling cache in proxy server
JP2001285287A (en) * 2000-02-18 2001-10-12 Agilent Technol Inc Public/subscribe unit utilizing pre-filtering and post- filtering and its method
JP2001291044A (en) * 2000-03-08 2001-10-19 Internatl Business Mach Corp <Ibm> Publishing/subscribing data processing using subscription based on change of business concept

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3307587B2 (en) * 1998-05-08 2002-07-24 日本電気株式会社 Middleware stored data updating method and server system executing the method
US20010052015A1 (en) * 1998-06-24 2001-12-13 Chueng-Hsien Lin Push-pull sevices for the internet
US6415027B1 (en) * 1998-08-12 2002-07-02 Bellsouth Intellectual Property Corporation Networks, systems and methods for intelligently routing traffic within a telephone network
WO2000019680A2 (en) * 1998-09-17 2000-04-06 Tod Mcnamara System and method for network flow optimization using traffic classes
FI108195B (en) * 1998-10-19 2001-11-30 Nokia Networks Oy Mechanism for network initiated information transfer
US6252862B1 (en) * 1999-05-20 2001-06-26 Motorola, Inc. Method and apparatus for routing packet data in a communications system
US6539396B1 (en) * 1999-08-31 2003-03-25 Accenture Llp Multi-object identifier system and method for information service pattern environment
DE10000223A1 (en) * 2000-01-05 2001-07-12 Basf Ag Microcapsules which are useful in, e.g. detergent or skin care compositions, can release a fragrance from a hydrophobic core when the polymer coating of the capsule is broken down
KR20010107151A (en) * 2000-05-25 2001-12-07 반창모 Multi-purpose multi-media kiosk with computer network and its service method
US7216179B2 (en) * 2000-08-16 2007-05-08 Semandex Networks Inc. High-performance addressing and routing of data packets with semantically descriptive labels in a computer network

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08153054A (en) * 1994-11-28 1996-06-11 Mitsubishi Electric Corp File transfer system
JPH117407A (en) * 1997-05-09 1999-01-12 Internatl Business Mach Corp <Ibm> Dynamic push filtering method accompanied by staging/ buffering in proxy hierarchy
JP2000357113A (en) * 1999-06-14 2000-12-26 Just Syst Corp Device and method for information processing, and computer-readable recording medium where program allowing computer to implement the method is recorded
JP2001168921A (en) * 1999-12-06 2001-06-22 Hitachi Ltd Data relay method by gateway device
JP2001285287A (en) * 2000-02-18 2001-10-12 Agilent Technol Inc Public/subscribe unit utilizing pre-filtering and post- filtering and its method
JP2001291044A (en) * 2000-03-08 2001-10-19 Internatl Business Mach Corp <Ibm> Publishing/subscribing data processing using subscription based on change of business concept
JP2001256098A (en) * 2000-03-09 2001-09-21 Hitachi Ltd Method for controlling cache in proxy server

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9911304B2 (en) 2015-10-20 2018-03-06 Fujitsu Limited Distributed control method, distributed control system, and non-transitory computer-readable storage medium
US9842481B1 (en) 2016-06-09 2017-12-12 Fujitsu Limited Apparatus and method to collect device information published in past times via a network of gateways

Also Published As

Publication number Publication date
KR100971506B1 (en) 2010-07-21
EP1969480A1 (en) 2008-09-17
EP1969480A4 (en) 2008-12-03
CN1656474A (en) 2005-08-17
KR20040102061A (en) 2004-12-03
AU2003218455A1 (en) 2003-10-13
JP2005521950A (en) 2005-07-21
CN100458767C (en) 2009-02-04
WO2003083703A1 (en) 2003-10-09

Similar Documents

Publication Publication Date Title
JP2009163753A (en) Method and device for routing, query and response based on reliable and efficient content in publish-subscribe network
US7551629B2 (en) Method and apparatus for propagating content filters for a publish-subscribe network
US7672275B2 (en) Caching with selective multicasting in a publish-subscribe network
US7627603B2 (en) Method and apparatus for implementing query-response interactions in a publish-subscribe network
US8386633B2 (en) Method and system for processing raw financial data streams to produce and distribute structured and validated product offering data to subscribing clients
US7139844B2 (en) Method and system for processing financial data objects carried on broadcast data streams and delivering information to subscribing clients
US7653753B2 (en) Method and apparatus for content-based packet routing using compact filter storage and off-line pre-computation
US7958025B2 (en) Method and system for processing raw financial data streams to produce and distribute structured and validated product offering objects
KR100985237B1 (en) Packet routing via payload inspection for alert services, for digital content delivery and for quality of service management and caching with selective multicasting in a publish-subscribe network
US20030195946A1 (en) Method and apparatus for reliable publishing and subscribing in an unreliable network
US6910033B2 (en) Method for storing Boolean functions to enable evaluation, modification, reuse, and delivery over a network
JP2008211835A (en) Packet routing via payload inspection and subscription processing in publish-subscribe network
US20040083305A1 (en) Packet routing via payload inspection for alert services
CN101312457A (en) Method, router, apparatus and the network used in a publish-subscribe network
JP2004506272A (en) A system that processes raw financial data and generates validated product guidance information for subscribers
US7117270B2 (en) Method for sending and receiving a Boolean function over a network
Tarkoma et al. Filter merging for efficient information dissemination
KR20040039288A (en) Packet routing via payload inspection and subscription processing in a publish-subscribe network

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110412

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110913