[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP2005532748A - Caching including packet inspection for payload inspection, alert service, digital content delivery, and quality of service management, and selective multicasting in publish-subscribe networks - Google Patents

Caching including packet inspection for payload inspection, alert service, digital content delivery, and quality of service management, and selective multicasting in publish-subscribe networks Download PDF

Info

Publication number
JP2005532748A
JP2005532748A JP2004520021A JP2004520021A JP2005532748A JP 2005532748 A JP2005532748 A JP 2005532748A JP 2004520021 A JP2004520021 A JP 2004520021A JP 2004520021 A JP2004520021 A JP 2004520021A JP 2005532748 A JP2005532748 A JP 2005532748A
Authority
JP
Japan
Prior art keywords
routing
network
packet
module
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
JP2004520021A
Other languages
Japanese (ja)
Inventor
ファン、イェナン
ファン、アレックス、ダブリュー.ピー.
ローゼンブラム、デビッド、エス.
ヤジニーク、シャリニ
テオドレスク、ラドゥ
チェン、ツ−ウェイ
リン、チー−メイ
ワン、チャン−イー
ヤン、ピン−ファイ
レン、ロジャー、シー.
Original Assignee
プリキャッシュ インコーポレイテッド
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 プリキャッシュ インコーポレイテッド filed Critical プリキャッシュ インコーポレイテッド
Publication of JP2005532748A publication Critical patent/JP2005532748A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/16Multipoint routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/52Multiprotocol routers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • 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/61Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources taking into account QoS or priority requirements
    • 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
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/185Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with management of multicast group membership
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1895Arrangements for providing special services to substations for broadcast or conference, e.g. multicast for short real-time information, e.g. alarms, notifications, alerts, updates
    • 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
    • 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)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

分散型ネットワーク(10)のコア内のルータ(12)において、例えばビデオ、音楽、ソフトウェア等のデジタルコンテンツを配信し、及びサービス品質保証に基づいて、アラートサービスを提供するためのペイロード検査を用いたパケットのルーティングを提供する。パケットは、ルーティング情報に加えて、サブジェクトと属性を含んでいる。サブジェクトは、特定の種類のコンテンツに対する購読予約に対応し、属性は、データ又はコンテンツをカプセル化する。購読予約は、特定のサービス品質保証又はサービスのレベルに関連付けてもよい。ルータ(12)は、コンテンツの購読予約に対応するフィルタを保存する。ルータ(12)は、パケットを受け取ると、属性を含むパケットのペイロードセクションを検査し、カメラからのコンテンツの購読予約のためのフィルタをこれらの属性に適用する。属性がフィルタを満たす場合、パケットは、次のリンクにルーティングされる。属性がフィルタを満たさない場合、ルータは、パケットを削除する。これらの経路決定は、ネットワークコア(10)において、ルータ(12)間に配信される。ルータ(12)は、データをネットワークコア(12)においてローカルにキャッシングする。At the router (12) in the core of the distributed network (10), for example, digital content such as video, music, software, etc. is delivered and payload inspection is used to provide alert service based on quality of service guarantee Provides packet routing. A packet includes a subject and attributes in addition to routing information. A subject corresponds to a subscription for a particular type of content, and an attribute encapsulates data or content. A subscription may be associated with a specific quality of service guarantee or level of service. The router (12) stores a filter corresponding to the content subscription. When the router (12) receives the packet, it examines the payload section of the packet including the attributes and applies a filter for subscriptions to the content from the camera to these attributes. If the attribute satisfies the filter, the packet is routed to the next link. If the attribute does not satisfy the filter, the router deletes the packet. These route decisions are distributed between the routers (12) in the network core (10). The router (12) caches data locally in the network core (12).

Description

関連出願Related applications

本発明は、引用により本願に援用される、2002年7月8日に出願された、米国仮出願番号60/394,631号、発明の名称「サービス品質管理のためのペイロード検査を介したパケットルーティング(Packet Routing Via Payload Inspection for Quality of Service Management)」に対する優先権を主張する。また、本出願は、2002年7月19日に出願され、引用により本願に援用される、米国特許出願番号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)」の一部継続出願である。   The present invention is a US Provisional Application No. 60 / 394,631, filed July 8, 2002, incorporated herein by reference, entitled “Packets via Payload Inspection for Quality of Service Control”. Claims priority over “Routing” (Packet Routing Via Payload Inspection for Quality of Service Management). This application is also filed on Jul. 19, 2002, which is incorporated herein by reference, US patent application Ser. No. 10 / 199,356, entitled “Packet Routing Via Payload Inspection”. Payload Inspection ”, US patent application Ser. No. 10 / 199,368, title of invention“ Method And Apparatus For Content-Based Routing And Filtering At ” Routers Using Channels ”, US Patent Application No. 10 / 199,439, title of invention“ Method for Sending And Receiving A Boolean Function Over A Network ”, US Patent Application No. 10 / 199,369, title of invention “evaluation, modification, reuse and distribution via network” Method for Storing Boolean Functions To Enable Evaluation, Modification, Reuse, And Delivery Over A Network ”, US Patent Application No. 10 / 199,388, entitled“ Connection-Based This is a continuation-in-part of “Efficient Implementation of Wildcard Matching On Variable-Sized Fields In Connect-Based Routing” in routing.

また、上述した出願の一部継続出願である、2003年3月28日に出願された、米国特許出願番号10/400,671号、発明の名称「信頼性が低いネットワークにおける信頼性が高い発行/購読システムアーキテクチャ(Reliable Publish/Subscribe System Architecture over Unreliable Networks)」、米国特許出願番号10/400,465号、発明の名称「コンパクトなフィルタ及びオフラインプリコンピュテーションを用いた、コンテンツベースのパケットルーティングのための方法及び装置(Method and Apparatus for Content-Based Packet Routing Using Compact Filter Storage and Off-Line Pre-computation)」、米国特許出願番号10/400,453号、発明の名称「発行−購読ネットワークにおいて、クエリ応答インタラクションを実現するための方法及び装置(Method and Apparatus for Implementing Query-Response Interactions in a Publish-Subscribe Network)」、米国特許出願番号10/400,462号、発明の名称「持続的で信頼できるメッセージ配信を実現するための方法及び装置(Method and Apparatus for Implementing Persistent and Reliable Message DELIVERY)」、米国特許出願番号10/400,444号、発明の名称「発行−購読ネットワークにおいて、コンテンツベースを伝播するための方法及び装置(Method and Apparatus for Propagating Content Filters for a Publish-Subscribe Network)」も引用により本願に援用されるものとする。   In addition, US Patent Application No. 10 / 400,671, filed on March 28, 2003, which is a continuation-in-part of the above-mentioned application, is entitled “Highly reliable issuance in networks with low reliability”. Reliable Publish / Subscribe System Architecture over Unreliable Networks, US Patent Application No. 10 / 400,465, Title of Invention “Content-based packet routing using compact filters and offline precomputation” Method and Apparatus for Content-Based Packet Routing Using Compact Filter Storage and Off-Line Pre-computation ”, US Patent Application No. 10 / 400,453, entitled“ Issuance-Subscription Network, Method and Appara for realizing query response interaction (Method and Appara tus for Implementing Query-Response Interactions in a Publish-Subscribe Network), US Patent Application No. 10 / 400,462, Title of Invention “Method and Apparatus for Realizing Sustainable and Reliable Message Delivery (Method and Apparatus) for Implementing Persistent and Reliable Message DELIVERY ", US Patent Application No. 10 / 400,444, Title of Invention" Method and Apparatus for Propagating Content Filters for Issue-Subscription Network " a Publish-Subscribe Network) is also incorporated herein by reference.

本発明は、ネットワークコアにおいて、アラートサービスを提供するためのパケット内のペイロードの検査(inspection)に基づいて、パケットをルーティングする方法及び装置に関する。   The present invention relates to a method and apparatus for routing a packet based on an inspection of a payload in the packet for providing an alert service in a network core.

ネットワーク帯域幅は、指数関数的に拡大している。しかしながら、ネットワークインフラストラクチャ(ルータ、サーバ、デーモン、プロトコル等を含む。)は、未だに比較的古い技術を用いている。この結果、インターネットアプリケーション及びネットワークルータは、帯域幅の拡大の速度に対応することができない。同時に、ネットワークに対応する機器及びアプリケーションも増加している。これらの機器及びアプリケーションによるネットワークノードへの負荷は、著しく大きくなっている。また、ネットワーク負荷及びアプリケーションの増加のために、ネットワークアプリケーションを実現し、維持するための複雑性がより高まっている。ネットワーク帯域幅の増加、及びネットワーク機器及びアプリケーションの偏在的な(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 due to these devices and applications is significantly increased. Also, due to the increase in network load and applications, the complexity for realizing and maintaining network applications is increasing. Increased network bandwidth and the ubiquitous use of network equipment and applications has led to issues related to routing and transmission of data in older network infrastructures, especially 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. The client becomes a subscriber of information and potentially delivers that information as it becomes available, regardless of the details of 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, the 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, a traffic jam 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 in 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 some point in time. .

発行−購読モデルにおいて、発行されたコンテンツをどこに送信するかをネットワークに指示するための経路決定(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 reservation, the publisher pushes the content to the corresponding subscriber over the network. In this conventional publish-subscribe model, especially when more devices support the network and the number of subscriptions increases, the issuer is heavily burdened.

インターネットにおける無数のアプリケーションの集中度が高まることにより、イベント通知を利用する可能性も無限になる。ここで、これらの可能性のために、経路決定を効率的に行い、イベントがいつ購読予約を充足するかを効率的に判定して、発行者の負担を軽減する手法を実現することが必要である。したがって、普遍的で持続的なイベント通知サービス(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.

本発明は、上述した従来の技術の欠点を克服し、ネットワークにおいて、アラートサービスを提供するために、パケットをルーティングする方法及び装置を提供する。本発明に基づく方法及び装置により、例えば、ビデオクリップの処理及びルーティングのためのネットワークの負担を大幅に低減できる。更に、本発明により、ビデオクリップをルーティングするための帯域幅要件を削減することができる。また、本発明により、デジタルビデオレコーダのローカルエリアネットワークに関して、ローカルトラヒックを低減させることができる。   The present invention overcomes the drawbacks of the prior art described above and provides a method and apparatus for routing packets to provide alert services in a network. The method and apparatus according to the present invention can significantly reduce the network burden for processing and routing of video clips, for example. Furthermore, the present invention can reduce bandwidth requirements for routing video clips. Further, according to the present invention, local traffic can be reduced with respect to the local area network of the digital video recorder.

これらの利点を実現するために、本発明の一実施例では、ヘッダセクションと、特定のカメラからのビデオクリップに関連する情報を含むペイロードセクションとを有するパケットを受け取る。ネットワークコアにおいて、特定のカメラからの情報を含むパケットを購読者にどのようにルーティングするかを決定するためにパケットのペイロードセクションを検査し、検査に基づいて、パケットを選択的にルーティングする。また、これらのステップを実行するためのモジュールを備える装置によっても、上述の及びこの他の利点を実現できる。   To realize these advantages, one embodiment of the present invention receives a packet having a header section and a payload section that contains information related to a video clip from a particular camera. At the network core, the packet payload section is examined to determine how to route packets containing information from a particular camera to the subscriber, and packets are selectively routed based on the examination. The above and other advantages can also be realized by an apparatus comprising a module for performing these steps.

また、これらの及びこの他の利点を実現するために、本発明は、ネットワークにおいて、アラートサービスを提供するために、パケットをルーティングするルーティング方法を提供する。このルーティング方法は、ヘッダセクションと、少なくとも1つのサブジェクトと、特定のカメラからのビデオクリップに関連する少なくとも1つの属性とを含むメッセージを受け取る受信ステップと、メッセージからサブジェクトと属性を読み出すサブジェクト/属性読出ステップと、サブジェクトに基づいて購読予約を読み出す購読予約読出ステップと、ネットワークコアにおいて、購読予約に属性を適用し、メッセージを購読者にどのようにルーティングするかを決定する適用ステップとを有する。また、これらのステップを実行するためのモジュールを備える装置によっても、上述の及びこの他の利点を実現できる。   In order to achieve these and other advantages, the present invention also provides a routing method for routing packets to provide alert services in a network. The routing method includes a receiving step for receiving a message including a header section, at least one subject, and at least one attribute associated with a video clip from a particular camera, and subject / attribute reading for reading the subject and attribute from the message. A subscription subscription reading step for retrieving a subscription subscription based on the subject, and an application step for applying attributes to the subscription subscription and determining how to route the message to the subscriber at the network core. The above and other advantages can also be realized by an apparatus comprising a module for performing these steps.

また、これらの及びこの他の利点を実現するために、本発明は、ネットワークにおいて、アラートサービスを提供するために、パケットをルーティングするルーティング方法を提供する。このルーティング方法は、ヘッダセクションと、特定のアラートサービスのイベントに関する情報を含むペイロードセクションとを有するパケットを受け取る受信ステップと、ネットワークコアにおいて、アラートサービスの情報を含むパケットを購読者にどのようにルーティングするかを決定するためにパケットのペイロードセクションを検査する検査ステップと、検査に基づいて、パケットを選択的にルーティングするルーティングステップとを有する。また、これらのステップを実行するためのモジュールを備える装置によっても、上述の及びこの他の利点を実現できる。   In order to achieve these and other advantages, the present invention also provides a routing method for routing packets to provide alert services in a network. The routing method receives a packet having a header section and a payload section containing information about a particular alert service event, and how the network core routes a packet containing the alert service information to a subscriber. An inspection step that examines the payload section of the packet to determine whether to do so, and a routing step that selectively routes the packet based on the inspection. The above and other advantages can also be realized by an apparatus comprising a module for performing these steps.

概観
インターネット規模又は他の分散型ネットワーク規模のイベント通知システムにより、アプリケーションにおいて、強力で柔軟な発行−購読ネットワーキング(publish-subscribe networking)が実現される。このシステムでは、アプリケーションプログラムは、イベント通知アプリケーションプログラムインタフェース(application program interface:以下、APIという。)を用いて、ネットワーク内部で発生するイベントに関する通知を発行し及び/又は通知を購読又は受信する。
Overview 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. 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 shares owned by the subscriber). All notifications that match the subscription are delivered to the subscriber when the callback or the subscriber registers 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 or sending an email to a terminal device, rather than selling a portion of a stock, etc. Start complex publishing and new publish-subscribe activities (for example, replace existing subscriptions with new subscriptions with a $ 75.00 share opportunity, or modify the 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 network of routers in this system propagates the notification to all subscribers whose subscriptions match the notification. One method for realizing this processing is a method in which notifications of all points in the network are broadcast and an application agent determines whether or not the notification is related to a corresponding subscriber. However, this is not necessarily a scalable technique. Typically, the network cannot function normally 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 a 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 warning 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 2005532748
Figure 2005532748

表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 2005532748
Figure 2005532748

述語は、購読予約のための論理式を提供し、サブジェクトは、購読予約に関するチャンネルを示す。購読予約は、この他の様々な手法で表現することができる。論理式は、このような手法の一例であり、これを用いることにより、コンテンツベースのルーティングのために、購読予約をサブジェクトフィルタと属性フィルタに変換するための機能を容易に実現することができる。これに代えて、サブジェクトを参照することなく購読予約を表現することもできるが、サブジェクト又はチャンネル(後に詳細に説明する。)を用いることにより、属性を解釈し、フィルタを属性に適用するためのコンテキストが実現される。   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 that are 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 a channel service 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, fast data delivery mechanisms, security, user and network management, etc. that can be provided. Channels 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. 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 an end user device through 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 sent 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 multiple) 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. The channels that are a collection of all the sub-networks and under which the subject is formed can be, for example, 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とエージェントアプリケーション105を保存するメモリ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 105, an auxiliary storage device 112 that is a non-volatile storage device, and information or commands for inputting information or commands. An input device 108 for processing, 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 visual display of the information And a display device 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 issuer devices 100, 118 are connected to the subscriber devices 122, 140 via a network, such as the network 120 described above. The network 120 is a distributed routing of data or content via packets or messages at the network core. Including 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 be a database or set of databases that identifies, 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は、好ましくは、持続的で、信頼性が高いチャンネルディレクトリサービスを実行するためのグループを構成する。チャンネルマネージャの1つはプライマリマネージャであり、他のチャンネルマネージャは、バックアップ用チャンネルマネージャである。プライマリチャンネルマネージャに障害が発生すると、このプライマリチャンネルマネージャに隣接するチャンネルマネージャが新たなプライマリチャンネルマネージャとしての機能を引き受け、これにより、サービスの信頼度が維持される。各インテリジェントルータは、これらのチャンネルマネージャのアドレスを維持する。インテリジェントルータがアクセスできないチャンネルマネージャがある場合、インテリジェントルータは、情報を得るために他のチャンネルマネージャを検索する。ネットワーク機器は、例えば、表3に示すような、チャンネル情報を得るためのコマンドを用いることができる。これに代えて、インテリジェントルータは、プライマリチャンネルマネージャのみを有していてもよく、又は2以上のチャンネルマネージャを有していてもよい。   The channel managers 152, 154, 156 preferably constitute a group for performing a persistent and reliable channel directory service. One of the channel managers is a primary manager, and the other channel manager is a backup channel manager. When a failure occurs in the primary channel manager, the channel manager adjacent to the primary channel manager assumes the function of a new primary channel manager, thereby maintaining the reliability of the service. Each intelligent router maintains the address of these channel managers. If there are channel managers that the intelligent router cannot access, the intelligent router searches other channel managers for information. The network device can use a command for obtaining channel information as shown in Table 3, for example. Alternatively, the intelligent router may have only a primary channel manager or may have two or more 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. 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 sending and retrieving notifications. Table 9 shows specific examples of APIs for transmitting and retrieving 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 used for any kind of APIs written in any programming language or You may implement | achieve as another software entity.

Figure 2005532748
Figure 2005532748

Figure 2005532748
Figure 2005532748

Figure 2005532748
Figure 2005532748

Figure 2005532748
Figure 2005532748

Figure 2005532748
Figure 2005532748

Figure 2005532748
Figure 2005532748

Figure 2005532748
Figure 2005532748

図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 through 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 perform 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 removed, 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. 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 subjects to numbers, 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 2005532748
Figure 2005532748

特定のチャンネルのパケットフォーマット又は構造を知ることにより、インテリジェントルータは、パケット内におけるサブジェクトと属性又はコンテンツベースのルーティングのための他の情報の位置を速やかに特定することができる。例えば、チャンネルは、パケット内のバイトを数えることによって、チャンネルを介して伝送されたサブジェクト及び属性のバイト位置を容易に特定できる。これに代えて、インテリジェントルータは、パケットを解析してサブジェクト及び属性又は他の情報の位置を検出することもできる。   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.

表11は、C++プログラミング言語で書かれた発行者プログラムの具体例を示している。表12は、チャンネルを作成するためのAPIの具体例を示している。表13は、チャンネルマネージャによって維持されるチャンネル設定ファイルの具体例と(図6参照)、チャンネル関連情報を示している。これに代えて、システムは、処理負荷を分散させるために、ローカルチャンネルマネージャとして機能する地理的に分散しているサーバのIPアドレスを提供する包括的チャンネルマネージャを備えていてもよい。   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 2005532748
Figure 2005532748

Figure 2005532748
Figure 2005532748

Figure 2005532748
Figure 2005532748

図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. The process 264 can be implemented, for example, by a software module that includes an agent 128 that is executed by the processor 134 in the 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 processing, and use this information for agent applications. You may forward to.

図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 2005532748
Figure 2005532748

Figure 2005532748
Figure 2005532748

ペイロード検査及びチャンネルを介したコンテンツベースのルーティング
図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 determinations can be transmitted to 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 all attribute check conditions, 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 calculation on the content of the packet in the local router. 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, the process 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 2005532748
Figure 2005532748

Figure 2005532748
Figure 2005532748

図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 the intelligent router 92 receives a request for data (step 330), the 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 kind of index may be used for the mark representing the time.

表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 2005532748
Figure 2005532748

Figure 2005532748
Figure 2005532748

Figure 2005532748
Figure 2005532748

Figure 2005532748
Figure 2005532748

これらの例示的なデータ構造は、以下の情報を含んでいる。サブジェクトノードは、サブジェクト識別子と、サブジェクトレベルと、親チャンネル又はサブジェクトノードへのポインタと、自らのディレクトリのためのファイル記述子と、次のレベルのサブジェクトノードを含むハッシュテーブルへのポインタと、データノードへのポインタとを含んでいる。データノードは、サブジェクト親ノードへのポインタと、データディレクトリのためのファイル記述子と、各ストレージデバイスに保存されたデータのためのデータ構造を含む循環型のバッファと、バッファのヘッド及びテールと、読出及びストレージの間にデータノードをロックするためのロックとを含んでいる。保存されたタイムグレインノード(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 the next level subject node, 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 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 the 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 the expression with the “not equal” 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 Other examples 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 the 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 technique 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 2005532748
Figure 2005532748

Figure 2005532748
Figure 2005532748

Figure 2005532748
Figure 2005532748

検査のための2つのバイトの対が既に検査のオペランドの両方の種類を示しているので、検査が所定の属性に適用されるか任意の属性に適用されるか否かに関わらず、任意の属性又はそれらの種類に対して実行される複数の検査を個別に整理する必要はない。この手法では、通知における所定の属性の数が127個以下であると仮定している。これに代えて、この設計において、より多くのビットを用いて属性検査を符号化してもよい。   Since the two byte pairs for the test already indicate both kinds of test operands, it does not matter whether the test is applied to a given attribute or to any attribute. 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 that is 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 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 price are in separate choices 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 exist 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”, because in this example, the values of these fields are arbitrarily chosen and are usually independent of the ordered 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 a process for the input message, a data decoding process opposite to the above-described encoding process can be used, and this decoding (decoding) can be performed in a 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 and the field count (length) is calculated by this. 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 2005532748
Figure 2005532748

アラートサービス
上述したインテリジェントなコンテンツベースのルーティングは、様々な用途に用いることができ、その1つとして、デジタルビデオ監視システム(digital video surveillance system:以下、DVSSという。)がある。例えば、警察又は又は警備会社等のユーザは、特定の位置のカメラからのビデオクリップを購読予約することができる。カメラは、デジタルビデオクリップを撮像し、例えばインターネット等、コンテンツベースのルーティングを有するネットワークを介してこれらのクリップを送信し、ネットワークコアは、購読予約に基づいて、ビデオクリップを処理する。これにより、ユーザは、興味があるビデオクリップを受信し、これらのフィルタリングは、ネットワークを介して配信することができる。ビデオクリップに加えて例えば、機密保護違反、発火、不正検出等に対する如何なる種類の警告を提供するために、他の如何なる種類のコンテンツを配信してもよい。
Alert Service The intelligent content-based routing described above can be used in a variety of applications, one of which is a digital video surveillance system (hereinafter referred to as DVSS). For example, a user such as a police or security company can subscribe to a video clip from a camera at a particular location. The camera captures the digital video clips and transmits these clips over a network with content-based routing, such as the Internet, for example, and the network core processes the video clips based on the subscription. This allows the user to receive video clips of interest and these filtering can be distributed over the network. In addition to the video clip, any other type of content may be distributed, for example, to provide any type of warning for security breaches, fires, fraud detection, etc.

他の実施例としてカメラは、関連する動きセンサを備えていてもよい。この運動センサは、動きを検出すると、カメラをトリガし、撮像と同時にビデオクリップをネットワークに送信させ、ネットワークは、コンテンツベースのルーティングを用いて、購読者にビデオクリップをルーティングする。   As another example, the camera may have an associated motion sensor. When the motion sensor detects motion, it triggers the camera to send the video clip to the network upon imaging, and the network routes the video clip to the subscriber using content-based routing.

このように、上述したコンテンツベースのルーティングにより、ビデオクリップの処理及びルーティングに関するネットワークの負担を大幅に削減することができる。例えば、各電荷結合素子(charge coupled device:CCD)によって生成されたビデオ信号を、デジタルビデオレコーダ(DVR)によって、DVRによって管理されたローカルストレージ、ネットワークに付属するグローバルストレージ、DVSSシステム、及びIDSS管理サーバといった4つの異なる宛先に書き込む必要があるとする。このような巨大なデータ量を搬送するためのネットワーク帯域幅を考慮すると、IDSSによって管理されるCCD又はDVRの容量が顧客の能力要求を満たさない場合がある。したがって、例えば、媒体又は大口顧客のための技術を用いて、帯域幅を制限する必要がある。図21は、各DVRが、4個又は16個のCCDSを管理できる監視システムの包括的なアーキテクチャを示している。   In this way, the content-based routing described above can greatly reduce the network burden associated with video clip processing and routing. For example, a video signal generated by each charge coupled device (CCD) is converted by a digital video recorder (DVR) into local storage managed by DVR, global storage attached to a network, DVSS system, and IDSS management. Suppose we need to write to four different destinations, such as a server. Considering the network bandwidth for carrying such a large amount of data, the capacity of the CCD or DVR managed by the IDSS may not meet customer capability requirements. Thus, for example, bandwidth needs to be limited using technology for media or large customers. FIG. 21 shows a comprehensive architecture of a monitoring system in which each DVR can manage 4 or 16 CCDS.

アーキテクチャ概要:
図22は、主に上述した技術に基づいて、図21に示す監視システムの能力を向上させる2つの拡張例を示している。図22に示すように、第1の拡張は、DVRバックボーントラヒックを低減することを目的とし、第2の拡張は、上述したようなデータ配信効率を向上させるための機能と同様なコンテンツベースのルーティング機能を提供するzボックス(z-box)と呼ばれる機器を用いる。
Architecture overview:
FIG. 22 shows two examples of expansion that improve the capability of the monitoring system shown in FIG. 21 mainly based on the above-described technique. As shown in FIG. 22, the first extension aims to reduce the DVR backbone traffic, and the second extension is a content-based routing similar to the function for improving the data distribution efficiency as described above. A device called a z-box that provides a function is used.

DVRバックボーンのローカルトラヒックの低減:
データ配信スキームが非効率であると、重大なスケーラビリティ問題が生じることがある。すなわち、TCPベースのプロトコルを用いて、DVRによって生成される画像ファイルを他のボックスに供給する場合、使用される帯域幅は、ローカルエリアネットワーク(LAN)に接続されている機器の数に比例して大きくなる。例えば、IDSSについて言えば、同じストリーミングビデオデータは、ネットワークに接続されたストレージ(SAN又はNAS)、IDSSモニタ、及び遠隔モニタリングソフトウェアである各DVSSに送信する必要がある。
Reducing local traffic on the DVR backbone:
Inefficient data distribution schemes can cause significant scalability issues. That is, when an image file generated by DVR is supplied to another box using a TCP-based protocol, the bandwidth used is proportional to the number of devices connected to the local area network (LAN). Become bigger. For example, for IDSS, the same streaming video data needs to be sent to each DVSS, which is a networked storage (SAN or NAS), IDSS monitor, and remote monitoring software.

この問題を解決する1つの手法として、各DVRが1つのみのデータストリームをLANに発行し、ネットワークに接続された他の機器が購読予約の結果としてこのデータストリームを受け取るようにしてもよい。この場合、DVRの出力レートが10メガビット/秒(Mbps)であれば、例えば、ネットワーク上に3個の購読機器に情報を提供するために必要な出力レートは、30Mbpsではなく、10Mbpsで足りる。   As one approach to solve this problem, each DVR may issue only one data stream to the LAN, and other devices connected to the network may receive this data stream as a result of the subscription. In this case, if the output rate of the DVR is 10 megabits / second (Mbps), for example, the output rate required to provide information to three subscribed devices on the network is not 10 Mbps but 10 Mbps.

このような発行−購読構造を実現するために、DVRボックス又はDVRデータを利用する他の何らかの機器(例えば、IDSS、グローバルストレージ)において、上述したイベント通知APIを用いることができる。このAPIは、単純であるが有効であり、ここではIPマルチキャスティング及び回復プロトコルを用いることができる。また、このAPIは、上述の発行−購読モデルに基づいて実現でき、このため、他のインプリメンテーションはコードを変える必要はなく、単に、APIを提供するライブラリの完全なバージョンに再リンクさせればよい。   In order to realize such a publish-subscribe structure, the event notification API described above can be used in a DVR box or some other device (for example, IDSS, global storage) that uses DVR data. This API is simple but effective, where IP multicasting and recovery protocols can be used. This API can also be implemented based on the publish-subscribe model described above, so other implementations do not need to change the code and can simply be relinked to the full version of the library that provides the API. That's fine.

DVSSのためのプロキシ:
各DVSSは、(TCPベースで)DVRボックスへの1つの接続を確立し、ストリーミングビデオデータを受け取ることができる。
Proxy for DVSS:
Each DVSS can establish one connection to the DVR box (on a TCP basis) and receive streaming video data.

図22に示すように、この手法は、2つの段階によって説明することができる。第1の段階であるステージ1では、LAN側において、全てのDVSS発信データ(すなわちDVRからDVSSに供給されるデータ)を処理するためのプロキシサーバ(例えば、zボックス1)を準備する。このプロキシサーバは、LAN上の全てのDVRデータを購読し、外部のネットワーク(例えば、インターネット)にそのデータを発行する。DVSSは、このデータを購読する。したがって、プロキシサーバであるzボックス1は、購読者エージェント(例えば、エージェント128)と、DVRからデータを集める上述した発行−購読ネットワーク等の発行−購読ネットワークを介してこのデータを発行する発行者エージェント(例えば、エージェント36)とを提供する。   As shown in FIG. 22, this approach can be described in two stages. In stage 1, which is the first stage, a proxy server (for example, z box 1) for processing all DVSS transmission data (that is, data supplied from DVR to DVSS) is prepared on the LAN side. This proxy server subscribes to all DVR data on the LAN and publishes the data to an external network (eg, the Internet). DVSS subscribes to this data. Therefore, the z-box 1 that is the proxy server includes a subscriber agent (eg, agent 128) and an issuer agent that issues this data via the publish-subscribe network such as the publish-subscribe network described above that collects data from the DVR. (For example, the agent 36).

ステージ1により、LAN側において、トラヒックを大幅に削減することができるが、特に幾つかの国において、典型的な非対称デジタル加入者線(ADSL)が64のキロビット/秒(kbps)のアップリンク速度しか有していないような場合、送信リンクにおけるトラヒックの問題が残る。   Stage 1 can significantly reduce traffic on the LAN side, but in some countries, typically asymmetric digital subscriber line (ADSL) has an uplink rate of 64 kilobits per second (kbps). If this is the case, the problem of traffic on the transmission link remains.

更に図22を用いて説明すると、ステージ2では、好ましくは、サービスプロバイダの機械室(machine room)を借り受け又は他の手法で確保し、ここに第2のzボックス機器、例えばzボックス2を配設する。例えば、zボックス機器は、ハイネットバックボーン上に配設してもよい。この機器から顧客の敷地内において、zボックス2への単一の接続(トンネル)を確立できる。   Further referring to FIG. 22, in stage 2, the service provider's machine room is preferably borrowed or otherwise secured, and a second z-box device, eg, z-box 2 is placed there. Set up. For example, the z-box device may be disposed on a high net backbone. A single connection (tunnel) from this device to the z-box 2 can be established within the customer premises.

この場合顧客の敷地内のzボックス2は、購読者エージェント(例えば、エージェント128)として機能する。また、zボックス2は、ルーティングデーモン(例えば、ルーティングデーモン216)としても機能できる。zボックス2は、購読者エージェントとして(例えば、ハイネット機械室(Hi-Net machine room)内において)、好ましくは、DVRがzボックス1を介して発行する情報を購読する。zボックス1及びボックス2の間には、上述のような発行−購読ネットワークが構築される。したがって、zボックス1は、DVRからのビデオ情報を発行し、zボックス2は、DVSSによる要求に応じて、このビデオ情報を購読する。このように、ここに開示するイベント通知システムを用いることによって、アラートサービスのデータ配信効率が向上する。zボックス(例えば、zボックス1及びボックス2)は、好ましくは、上述のように、この発行−購読ネットワークを介して発行及び購読を行うためのモジュールを備えている。   In this case, the z-box 2 in the customer premises functions as a subscriber agent (eg, agent 128). The z box 2 can also function as a routing daemon (for example, the routing daemon 216). The z-box 2 subscribes to information that the DVR issues via the z-box 1 as a subscriber agent (eg, in a Hi-Net machine room). Between the z box 1 and the box 2, the publish-subscribe network as described above is constructed. Therefore, the z box 1 issues video information from the DVR, and the z box 2 subscribes to this video information in response to a request by the DVSS. As described above, the data delivery efficiency of the alert service is improved by using the event notification system disclosed herein. The z-box (eg, z-box 1 and box 2) preferably comprises a module for issuing and subscribing through this publish-subscribe network as described above.

デジタルコンテンツ配信
上述したインテリジェントなコンテンツベースのルーティングは、購読予約を介したビデオや音楽の配信、ソフトウェアの更新等、様々な用途に用いることができる。例えば、ユーザは、例えば、ウィルス除去ソフト等のソフトウェアの更新を購読予約することにより、アップデートされたソフトウェアを自動的に受け取ることができる。他の実施例としてユーザは、特定のビデオ及び音楽コンテンツを購読予約し、その購読されたコンテンツを自動的に受け取るようにしてもよい。ビデオ及び音楽コンテンツは、例えば、ストリーミングされたデジタルコンテンツとして受け取ることができる。更に、ネットワークコアにおける分散処理により、ソフトウェア、ビデオ及び音楽コンテンツを提供するためのサーバの処理負担を実質的に軽減することができる。したがって、他の様々な利点とともに、コンテンツを提供するための同じネットワークインフラストラクチャにおいて、ネットワーク帯域幅を有効に活用することができる。
Digital Content Delivery The intelligent content-based routing described above can be used for a variety of applications, such as video and music delivery via subscription, software updates, and the like. For example, a user can automatically receive updated software by, for example, subscribing to software updates such as virus removal software. As another example, a user may subscribe to specific video and music content and automatically receive the subscribed content. Video and music content can be received, for example, as streamed digital content. Furthermore, the processing load on the server for providing software, video, and music content can be substantially reduced by the distributed processing in the network core. Thus, network bandwidth can be effectively utilized in the same network infrastructure for providing content, along with various other advantages.

このルーティングを実現するためのアーキテクチャの一具体例を図23に示す。なお、このアーキテクチャは、好ましくは、ネットワークサービスプロバイダの同じ設備内に配設されている2つのレベルのキャッシュサーバCl、C2を想定する。但し、Clキャッシュサーバのみを用いても、本発明の利益を享受することができる。キャッシュサーバCl、C2とは、上述した(図14、図15及び対応する説明参照)分散型ネットワークキャッシングを提供するサーバである。このアーキテクチャは、例えば、2つのフェーズによって実現される。キャッシュサーバC2が存在しないと仮定する第1のフェーズでは、セントラルディストリビュータ450とキャッシュサーバClの間において、高速ファイル転送メカニズムを用いて、大きなメディアファイルを転送するために必要なサーバ負荷と時間を減少させる。この高速ファイル転送メカニズムは、好ましくは、セントラルディストリビュータ450とClキャッシュサーバの間にルーティングボックス(図23における470)設けることによって実現される。第2のフェーズでは、キャッシュサーバC2において、ルーティングボックスを設け、ユーザ(例えば、ユーザマシン460)とC2キャッシュサーバの間で上述した購読予約メカニズムを実現する。   A specific example of the architecture for realizing this routing is shown in FIG. Note that this architecture preferably assumes two levels of cache servers Cl, C2 that are located in the same facility of the network service provider. However, even if only the Cl cache server is used, the benefits of the present invention can be enjoyed. The cache servers Cl and C2 are servers that provide the distributed network caching described above (see FIGS. 14 and 15 and the corresponding description). This architecture is realized, for example, by two phases. In the first phase, assuming that no cache server C2 exists, a high-speed file transfer mechanism is used between the central distributor 450 and the cache server Cl to reduce the server load and time required to transfer large media files. Let This high-speed file transfer mechanism is preferably realized by providing a routing box (470 in FIG. 23) between the central distributor 450 and the Cl cache server. In the second phase, a routing box is provided in the cache server C2, and the above-described subscription reservation mechanism is realized between the user (for example, the user machine 460) and the C2 cache server.

ルーティングボックスを用いる利点:
ルーティングボックス470は、好ましくは、上述したようなコンテンツベースのルーティングを実現するためのモジュール(例えば、上述したインテリジェントルータ92)を備える。上述したコンテンツベースのルーティングを実現するルーティングボックス470を用いる主な利点は2つある。これらのルーティングボックス470を用いた高速ルーティング及びファイル転送ソリューションにより、FTPやRCP等の従来のファイル転送プロトコルに比べて5倍程度ファイル転送を加速できる。また、広域ネットワーク(WAN)を介した効率的なマルチキャストを実現できる。中央から受信機のグループにデータを送信する場合、このルーティングソリューションでは、ネットワークマルチキャストトポロジーを利用し、WANの上でマルチキャスティングトンネルを構築することによってコンテンツ配信速度が加速され、サーバ負荷とネットワーク帯域幅要求を軽減することができる。
Advantages of using a routing box:
The routing box 470 preferably includes a module (eg, the intelligent router 92 described above) for realizing content-based routing as described above. There are two main advantages of using the routing box 470 that implements the content-based routing described above. With these high-speed routing and file transfer solutions using the routing box 470, file transfer can be accelerated about 5 times compared to conventional file transfer protocols such as FTP and RCP. In addition, efficient multicast via a wide area network (WAN) can be realized. When sending data from a central location to a group of receivers, this routing solution uses a network multicast topology to accelerate the content delivery speed by building a multicasting tunnel over the WAN, and server load and network bandwidth. The demand can be reduced.

アーキテクチャ:
メディアコンテンツは、セントラルディストリビュータからキャッシュサーバC1に配信される。Clキャッシュサーバは、全てのコンテンツファイルを保存する。各Clキャッシュサーバは、全てのコンテンツを保存するために、例えば、数テトラバイトのディスク容量を必要とする。ユーザは(例えば、購読者マシン122等のユーザマシン460を用いて)、コンテンツの一部のみを保存するキャッシュサーバC2に対してコンテンツを要求する。キャッシュサーバC2は、例えば、数百ギガバイトものディスク容量を必要とする。
architecture:
Media content is distributed from the central distributor to the cache server C1. The Cl cache server stores all content files. Each Cl cache server requires a disk capacity of, for example, several tetrabytes in order to store all the contents. The user (for example, using a user machine 460 such as the subscriber machine 122) requests the content from the cache server C2 that stores only a part of the content. The cache server C2 requires a disk capacity of several hundred gigabytes, for example.

ユーザとC2キャッシュの間のファイル転送:
ユーザ460が購読予約を発行することによってメディアファイルを要求すると、C2キャッシュサーバの1つによって処理される要求されたメディアファイルがC2サーバに既にキャッシングされている場合、ファイルは、直ちに提供される。これ以外の場合、購読予約は、キャッシュサーバC1に送信され、要求されたファイルは、キャッシュサーバC1からキャッシュサーバC2に転送される。
File transfer between user and C2 cache:
When a user 460 requests a media file by issuing a subscription, the file is served immediately if the requested media file to be processed by one of the C2 cache servers is already cached on the C2 server. Otherwise, the subscription is sent to the cache server C1, and the requested file is transferred from the cache server C1 to the cache server C2.

ClキャッシュからC2キャッシュまでのメディアデータの予備的キャッシング(Pre-caching):
メディアファイルは、ユーザ購読予約又は購読予約のパターンに基づいて、キャッシュサーバC1からキャッシュサーバC2に予めキャッシングしてもよい。例えば、キャッシュサーバC2に接続するユーザ460が主にポップスに関心がある場合、キャッシュサーバC1は、ユーザ460がキャッシュサーバC2に曲を要求する以前に、ポップスの新たな曲をキャッシュサーバC2に自動的に供給してもよい。
Pre-caching of media data from Cl cache to C2 cache:
The media file may be cached in advance from the cache server C1 to the cache server C2 based on a user subscription reservation or a subscription reservation pattern. For example, if the user 460 connected to the cache server C2 is mainly interested in pop music, the cache server C1 automatically sends a new pop music to the cache server C2 before the user 460 requests the music from the cache server C2. May be supplied.

導入フェーズ:
第1のフェーズは、例えば、ディストリビュータ450と、全てのキャッシュサーバC1との間のコンテンツルーティングを行う高速ファイル転送メカニズムをインストールする処理を含む。ここでは、キャッシュサーバC2は、不要である。この場合全てのユーザ460は、キャッシュClに直接接続する。キャッシュサーバC1は、ディストリビュータ450から定期的に新たなメディアファイルを受け取る。図24は、フェーズ1アーキテクチャを示している。
Introduction phase:
The first phase includes, for example, processing for installing a high-speed file transfer mechanism that performs content routing between the distributor 450 and all the cache servers C1. Here, the cache server C2 is unnecessary. In this case, all users 460 connect directly to the cache Cl. The cache server C1 periodically receives new media files from the distributor 450. FIG. 24 illustrates the phase 1 architecture.

なお、図24において、ディストリビュータ450は、上述したインテリジェントなコンテンツベースのルーティング技術に基づき、ルーティングボックス470に新たなメディアファイルを一回だけ送信する。したがって、ディストリビュータ450の負担が軽減される。ルーティングボックス470は、高速ファイル転送メカニズムを用いて、各キャッシュサーバC1にファイルを出力する。この場合、受信機460の側では、更なるルーティングボックスは不要である。これに代えてキャッシュサーバC1のために他の種類のサーバを用いてもよい。   In FIG. 24, the distributor 450 transmits a new media file to the routing box 470 only once based on the intelligent content-based routing technique described above. Therefore, the burden on the distributor 450 is reduced. The routing box 470 outputs a file to each cache server C1 using a high-speed file transfer mechanism. In this case, no further routing box is required on the receiver 460 side. Alternatively, another type of server may be used for the cache server C1.

図25は、フェーズ2の実施例のアーキテクチャを示している。この実施例に示すフェーズ2では、好ましくは、カーネルを実装するルーティングボックス470を用いて、データをルーティング及び送信している。カーネルレイヤソリューションは、バッファコピーを低減し、コンテキスト切換時間を短縮するため、ファイルを送る際のオーバーヘッドを更に減少させる。更に、フェーズ2のソリューションでは、図25に示すように、キャッシュサーバC2をアーキテクチャに追加する。また、図25に示すように、好ましくは、C2側において、サービスプロバイダネットワーク内の同じ位置に、ルーティングボックス470が追加されている。これにより、帯域幅要件が大幅に軽減され、帯域幅を数百分の一にできる可能性もある。   FIG. 25 shows the architecture of the phase 2 embodiment. In phase 2 shown in this embodiment, data is preferably routed and transmitted using a routing box 470 that implements the kernel. The kernel layer solution further reduces the overhead when sending files to reduce buffer copy and reduce context switch time. Further, in the phase 2 solution, as shown in FIG. 25, a cache server C2 is added to the architecture. Also, as shown in FIG. 25, a routing box 470 is preferably added at the same position in the service provider network on the C2 side. This can significantly reduce bandwidth requirements and potentially reduce bandwidth to hundreds of times.

図25に示すように、キャッシュサーバC1とキャッシュサーバC2の間で転送されるファイルは、キャッシュサーバC1に関連付けられるルーティングボックス470と、キャッシュサーバC2に関連付けられるルーティングボックス470とを介して転送される。このように、これらのルーティングボックス470を用いて、キャッシュサーバC1、C2の間において、高速ルーティング及びファイル転送ソリューションが実現される。   As shown in FIG. 25, a file transferred between the cache server C1 and the cache server C2 is transferred via a routing box 470 associated with the cache server C1 and a routing box 470 associated with the cache server C2. . Thus, using these routing boxes 470, a high-speed routing and file transfer solution is realized between the cache servers C1 and C2.

サービス品質の管理
上述したインテリジェントなコンテンツベースのルーティングは、例えば、特定の配信を保証するコンテンツのルーティングのために用いることができる。例えば、サービス品質保証制度(service level agreement:以下、SLAという。)に基づいて、ISP又はコンテンツプロバイダは、サービス品質(quality of service:以下、QoSという。)を保証するために帯域幅を確保することができる。これは、上述したコンテンツベースのインテリジェントルーティングによって効率的に実現される。
Quality of Service Management The intelligent content-based routing described above can be used, for example, for the routing of content that guarantees a specific delivery. For example, based on a service level agreement (hereinafter referred to as SLA), an ISP or a content provider reserves bandwidth to guarantee quality of service (hereinafter referred to as QoS). be able to. This is efficiently achieved by the content-based intelligent routing described above.

アーキテクチャ:
コンテンツ配信におけるQoSを保証するために、少なくとも2つの可能な構成がある。第1の構成では、複数のリンクを1つ以上の電話会社(telephone company:以下、TELCOという。)のネットワークに接続する。第2の構成では、TELCOネットワークへの1つのネットワークリンクだけを用いる。図26に示す実施例では、2つのレイヤのルーティングボックス(以下、Rボックスともいう。)を設けている。Rボックス1は、データパケットのコンテンツに基づいて、Rボックス2とRボックス3にパケットをルーティングする。Rボックス2とRボックス3は、異なるネットワークリンク(例えば、L1−L4)にデータパケットをルーティングする。各リンクは、TELCOネットワークに接続されている。プレミアムユーザ(premium customers)のための帯域幅を確保するために、最も高いSLAに対応する顧客用に生成されたデータパケットは、最も高い帯域幅(最も高い優先順位)でリンクにルーティングされ、これにより、これらの顧客のための特定のQoSが保証される。
architecture:
There are at least two possible configurations to guarantee QoS in content distribution. In the first configuration, a plurality of links are connected to a network of one or more telephone companies (hereinafter referred to as TELCO). In the second configuration, only one network link to the TELCO network is used. In the embodiment shown in FIG. 26, two layers of routing boxes (hereinafter also referred to as R boxes) are provided. The R box 1 routes the packet to the R box 2 and the R box 3 based on the contents of the data packet. R box 2 and R box 3 route data packets to different network links (eg, L1-L4). Each link is connected to a TELCO network. To ensure bandwidth for premium customers, data packets generated for customers with the highest SLA are routed to the link with the highest bandwidth (highest priority). Guarantees a specific QoS for these customers.

図27に示す実施例では、Rボックス1は、Rボックス2及びRボックス3にデータパケットをルーティングする。Rボックス2とRボックス3は、更に異なる通信リンクにデータパケットをルーティングし、これらの通信リンクは、全てRボックス4に接続されている。Rボックス4は、4つのリンクからそれぞれのリンクのQoSレベルに基づいて、データパケットを受け取る。そして、Rボックス4は、ネットワークリンク(例えば、L5)を介して、インターネットISPにデータパケットを送信する。このシステムは、各リンクからデータを受け取るための様々なアルゴリズムを実装することによって、各リンクについて、帯域幅を動的に割り当てることができ、マルチリンク構成より優れたQoS管理を行うことができる。   In the embodiment shown in FIG. 27, R box 1 routes data packets to R box 2 and R box 3. The R box 2 and the R box 3 route data packets to further different communication links, and these communication links are all connected to the R box 4. The R box 4 receives data packets from the four links based on the QoS level of each link. The R box 4 transmits a data packet to the Internet ISP via a network link (for example, L5). By implementing various algorithms for receiving data from each link, the system can dynamically allocate bandwidth for each link and perform better QoS management than a multilink configuration.

技術:
QoS保証には、インテリジェントで分散型の上述したコンテンツベースのルーティング技術を利用することができる。ルーティングされる各パケットは、コンテンツベースのルーティングのためにタグが付される。このソリューションによって、他の様々な利点とともに、ASP/コンテンツプロバイダのためのQoSの展開が経済的に可能になる。
Technology:
For QoS guarantees, the intelligent and distributed content-based routing techniques described above can be used. Each packet that is routed is tagged for content-based routing. This solution economically enables QoS deployment for ASP / content providers, along with various other advantages.

利点:
このソリューションにより、インターネット接続サービス業者(例えば、IDC)又はコンテンツプロバイダ(例えば、メディアオンデマンドの(MOD)サービスプロバイダ)は、顧客毎に、それらのSLASに基づいて個別に帯域幅を確保できる。
advantage:
This solution allows Internet service providers (eg, IDCs) or content providers (eg, media on demand (MOD) service providers) to reserve bandwidth for each customer based on their SLAS.

リアルタイムのアラート:
アラートに異なる優先順位を付すことができる。例えば、セキュリティ及び火災警報に最も高い優先順位を与え、ニュースの告知には、低い優先順位を与えることができる。QoSルーティングを行わなければ、優先度が低いアラート及び通信によってASPのネットワーク帯域幅を占領され、最優先のアラートがリアルタイムで購読者に届かないこともある。このソリューションは、このような事態の発生を防ぐ。また、アラートは、それぞれのSLASに基づいて、各顧客に送信することもできる。プレミアムユーザがより多くの料金を支払うことにより、これらのユーザに対してより広い帯域幅を割り当てるようにしてもよい。
Real-time alerts:
Alerts can have different priorities. For example, security and fire alarms can be given the highest priority and news announcements can be given a lower priority. Without QoS routing, ASP network bandwidth may be occupied by low priority alerts and communications, and top priority alerts may not reach subscribers in real time. This solution prevents this from happening. Alerts can also be sent to each customer based on their respective SLAS. Premium users may pay more to allocate more bandwidth to these users.

実時間データ配信:
例えば、ビデオオンデマンド(VOD)、MOD、及びIPを介した音声送信(VoIP)等の幾つかの用途では、帯域幅の利用可能性は、サービスの品質に影響する。このソリューションでは、上述のように、パケットのコンテンツを検査することによって、メッセージの種類に基づいてデータパケットをルーティングできる。帯域幅に大きく影響される用途では、それらのデータパケットをより高い優先順位のリンクにルーティングするとよい。メッセージの種類に加えて、購読者のSLAレベルに基づいて、様々な購読者にデータパケットをルーティングしてもよい。このソリューションを用いることにより、SLAがより高い顧客に対しては、パケットをより高いレベルのリンクにルーティングできる。
Real-time data distribution:
For some applications, such as, for example, video on demand (VOD), MOD, and voice transmission over IP (VoIP), bandwidth availability affects quality of service. In this solution, as described above, data packets can be routed based on the type of message by examining the contents of the packet. In applications that are greatly affected by bandwidth, these data packets may be routed to higher priority links. In addition to the message type, data packets may be routed to various subscribers based on the subscriber's SLA level. Using this solution, packets can be routed to higher level links for customers with higher SLA.

また、このソリューションは、ソフトウェア又はウィルス対策のための更新にも利用できる。例えば、音声用ドライバファイルは、優先順位が低いリンクにルーティングし、アンチウィルスファイルは、優先順位が高いリンクにルーティングすることにより、ウィルス対策のための更新をリアルタイムで行うことができる。   This solution can also be used for software or anti-virus updates. For example, an audio driver file is routed to a link with a low priority, and an anti-virus file is routed to a link with a high priority, so that updates for anti-virus can be performed in real time.

コンテンツベースのフィルタリング:
図28に示すように、コロケーションサービスを用いることにより及びRボックスをTELCOネットワーク内部に配設することにより、システムは、ISPの外部でフィルタリング及び動的なキャッシングを実行することができる。TELCOネットワーク内部のRボックスを用いて、上述したコンテンツのフィルタリング技術に基づいて、データをフィルタリングすることにより、IDC/ISPネットワークにおけるトラヒックを減少させることができる。これにより、例えば、サービス妨害攻撃や不正なデータアクセス等のハッカーアタックを防止することができる。また、R−ボックスは、要求のコンテンツを検査する能力により、静的及び動的なウェブデータのためのキャッシングボックスとしても機能する。このソリューションは、例えば、機密保護を可能にし、TELCOとISPの間のネットワーク帯域幅を節約し、ISPサーバの負荷を軽減できる等の利点がある。
Content-based filtering:
As shown in FIG. 28, the system can perform filtering and dynamic caching outside the ISP by using a collocation service and by placing the R-box inside the TELCO network. By using the R box inside the TELCO network and filtering the data based on the content filtering technique described above, traffic in the IDC / ISP network can be reduced. As a result, for example, it is possible to prevent a hacker attack such as a denial of service attack or unauthorized data access. The R-box also functions as a caching box for static and dynamic web data due to its ability to inspect the requested content. This solution has advantages such as enabling security, saving network bandwidth between TELCO and ISP, and reducing the load on the ISP server.

選択的なマルチキャスティングによるキャッシング
メッセージの持続性とは、メッセージを保存し、後にこの保存されたメッセージを読み出すことができる性質を指す。例えば電子メールを始めとする多くの特定の用途では、通常、ネットワークを介して通信されるメッセージについて、長いメッセージ持続性が必要とされる。ネットワーク障害が発生しない理想的な条件では、常時接続された購読者は、これらの特定の用途において必要とされる以上の如何なる持続も求めない。しかしながら、現実には、メッセージは、ネットワークを介して伝送されている間に様々な理由のために「失われる」ことがある。この理由としては、例えば、(1)ネットワーク又はユーザ側における故障又はバッファオーバフローや(2)ユーザが自らネットワーク接続を切断した後、所定の期間経過後に再び接続する場合等がある。
Caching by selective multicasting 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つのレベルに分割される。短期持続は、ネットワーク輻輳又は短期的なリンク障害のために失われたパケットを復元する。長期持続は、例えば、ユーザ接続の障害、ユーザ装置の障害、アプリケーションの障害及び/又はより長い期間ネットワーク内の障害等を含む他の障害に起因して失われたパケットを復元する。以下では、これらの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. Hereinafter, specific examples of these two schemes will be described.

短期持続:データ再送及びフロー制御
データネットワークにおいては、データ損失の原因は、単に、リンク障害とバッファオーバーフローの2つに分類できる。イベント通知システムについて信頼できるチャンネルを提供するためには、これらの問題を解決する必要がある。リンク障害については、順方向誤り訂正(FEC)スキームを実行して、リンク障害によって引き起こされる幾つかのエラーを修正することができる。ここで、エラーが深刻であり、如何なるFECスキームでもエラーを修正できないような場合、パケットを復元するための更なるスキームを提供する必要がある。また、バッファオーバフローの発生を防止する必要もある。データネットワークにおいて、このような問題を避けるためには、通常、フロー制御スキームが用いられる。
Short-term persistence: data retransmission and flow control In data networks, the cause of data loss can simply be categorized into two: link failure and buffer overflow. In order to provide a reliable channel for the event notification system, these problems need to be solved. For link failures, a forward error correction (FEC) scheme can be performed to correct some errors caused by link failures. Here, if the error is severe and cannot be corrected by any FEC scheme, there is a need to provide a further scheme to recover the packet. It is also necessary to prevent the occurrence of buffer overflow. In order to avoid such problems in data networks, a flow control scheme is usually used.

短期持続スキームにおいては、好ましくは、伝送制御プロトコル(Transmission Control Protocol:以下、TCPという。)トンネルを用いて、ホップバイホップ方式でイベントルータ(例えば、インテリジェントルータ12)を接続する。信頼できる転送プロトコル(例えば、RMTP)を用いる代わりに、信頼できるレイヤ−2トンネルを用いる理由は複数ある。短期持続スキームでは、好ましくは、イベント通知システムにおいて、メッセージがフィルタ規則を満たさない場合、メッセージは、ルータにおいて、無視される。この結果、受信ルータは、多くの場合、ソースシーケンスナンバー(Source Sequence Number:SSN)等のスキームを用いても、パケットの損失を検出できない。また、全ての受信ルータが、受信した各パケットについて肯定応答を行うことも望ましくない。このような処理を行うと、肯定応答のオーバーロード(すなわち、ACKエクスプロージョン(ACK-explosion))が生じる。更にバッファオーバフローを避けるために短期持続モデルは、フロー制御スキームを実現し、これにより、ルータのバッファ容量が一杯になる前に、ルータは、自らにメッセージを送る隣接するルータに、メッセージの供給の速度を遅くするよう要求することができる。これらのスキームは、TCPによってカバーされている。   In the short-term persistence scheme, the event router (for example, intelligent router 12) is preferably connected in a hop-by-hop manner using a transmission control protocol (hereinafter referred to as TCP) tunnel. There are several reasons for using a reliable layer-2 tunnel instead of using a reliable transport protocol (eg, RMTP). In the short duration scheme, preferably in the event notification system, if the message does not satisfy the filter rules, the message is ignored at the router. As a result, in many cases, the receiving router cannot detect a packet loss even if a scheme such as a source sequence number (SSN) is used. It is also undesirable for all receiving routers to acknowledge each received packet. When such a process is performed, an overload of an acknowledgment (that is, ACK explosion) occurs. Furthermore, to avoid buffer overflow, the short-lived model implements a flow control scheme that allows a router to provide message delivery to neighboring routers that send messages to itself before the router's buffer capacity is full. You can request to slow down. These schemes are covered by TCP.

TCP伝送ポリシ:
短期持続スキームにおいて用いられるTCPにおいては、好ましくは、データの送信側で、ローカルに送信ウィンドウを用いて、再送処理されたデータを監視する。送信ウィンドウを用いる目的は、2つある。第1に、送信ウィンドウにより、送信側は、データが受信機によって正しく受信されたことを明示的に確認でき、第2に、送信ウィンドウにより、チャンネル容量をより有効に活用できる。TCPにおいては、送信側が送信した各バイトは、暗示的又は明示的に肯定応答を受ける必要がある。送信ウィンドウは、送信側が、送信され、肯定応答されたデータを監視するのに役立つ。送信側は、動作を止めて、先のパケットに関する肯定応答を待機する必要なく、送信ウィンドウ内でデータを送信できるので、また、送信ウィンドウにより、チャンネルの利用効率を向上させることができる。一旦、前のデータが肯定応答されると、ウィンドウは、自動的に進められる。
TCP transmission policy:
In TCP used in the short-term persistence scheme, it is preferable to monitor the retransmitted data locally using a transmission window on the data transmission side. There are two purposes for using the send window. First, the transmission window allows the transmission side to explicitly confirm that the data has been correctly received by the receiver, and second, the transmission window can more effectively utilize the channel capacity. In TCP, each byte sent by the sender needs to be implicitly or explicitly acknowledged. The transmission window helps the sender to monitor the transmitted and acknowledged data. Since the transmission side can transmit data within the transmission window without having to stop the operation and wait for an acknowledgment regarding the previous packet, the transmission window can improve the utilization efficiency of the channel. Once the previous data is acknowledged, the window is automatically advanced.

また、TCPでは、受信ウィンドウも維持される。受信ウィンドウは、好ましくは、データ受信端末において、使用可能なバッファ容量を示すために用いられる。使用可能なバッファ容量が送信側に送られ、これにより送信側は、受信側におけるバッファオーバフローをどのように回避できるかを知ることができる。   In TCP, the reception window is also maintained. The receive window is preferably used at the data receiving terminal to indicate the available buffer capacity. The available buffer capacity is sent to the sender, which allows the sender to know how to avoid buffer overflow at the receiver.

TCP輻輳制御:
TCPは、エンドツーエンドトランスポートプロトコルとして設計されているので、短期持続スキームで利用されたTCPは、発行−購読ネットワーク内におけるバッファオーバフローの問題も解決する。この問題を解決するために、短期間の持続モデルのために用いられるTCPは、好ましくは、第3のウィンドウである輻輳ウィンドウ(congestion window)を用いる。送信側は、輻輳ウィンドウを用いて、パスに沿ったルータにおける最大のバッファ容量を推定することができる。簡潔に言えば、送信側がパケットの損失を検出すると輻輳ウィンドウのサイズが縮小され、逆にパケットの損失が検出されないと、輻輳ウィンドウのサイズが拡大される。
TCP congestion control:
Since TCP is designed as an end-to-end transport protocol, TCP utilized in the short-lasting scheme also solves the problem of buffer overflow in publish-subscribe networks. To solve this problem, the TCP used for the short-term persistence model preferably uses a third window, the congestion window. The sender can use the congestion window to estimate the maximum buffer capacity at the router along the path. In short, the size of the congestion window is reduced when the transmission side detects a packet loss, and conversely, the size of the congestion window is increased when no packet loss is detected.

長期持続:持続的なチャンネルのキャッシング
チャンネルは、(例えば、上述のように)持続的であっても又はリアルタイムであってもよい。リアルタイムチャンネルは、実時間においてのみ有用であり、アプリケーション固有の如何なる持続要求も有さないデータを送信する。持続チャンネルは、持続タイムフレームTの間、ネットワークを介して送受されるデータを保存する。換言すれば持続チャンネルの持続性は、タイムフレームTの間、保証される。このデータの持続性は、例えば、チャンネルの持続期間の間、それぞれのエッジノードでデータをキャッシングすること、障害が生じた条件下で、ユーザにトランスペアレントなキャッシュからのデータを検索すること、ユーザがキャッシュから明示的にデータを読み出すことができるようにすること、ルータ障害に対する保護及びルータの間で信頼できるトンネルを確立することにより、ネットワークを介したデータのフローを持続的にすること、及び複製によって、障害に対してチャンネル成分を保護すること等によって実現される。
Long-lasting: persistent channel caching Channels may be persistent (eg, as described above) or real-time. Real-time channels are useful only in real time and transmit data without any application specific persistence requirements. The persistent channel stores data transmitted and received over the network for a sustained time frame T. In other words, the persistence of the persistent channel is guaranteed during the time frame T. This data persistence can be achieved, for example, by caching data at each edge node for the duration of the channel, retrieving data from a cache that is transparent to the user under fault conditions, Allows data to be explicitly read from the cache, protects against router failures and establishes a reliable tunnel between routers to make the flow of data through the network persistent and replicate This is realized by protecting the channel component against failure.

したがって、後述するように、長期持続スキームにより、購読者の端末に障害が生じ、持続的なチャンネルのためのタイムフレームT内に再び復帰すると、持続的なチャンネルに登録された購読者は、直前のタイムフレーム「X」(X<T)の間、ネットワークにおいてキャッシングされた古いデータを検索することができる。   Therefore, as described below, when a subscriber's terminal fails due to a long-lasting scheme and returns again within the time frame T for the persistent channel, the subscriber registered in the persistent channel During the time frame “X” (X <T), old data cached in the network can be retrieved.

長期持続スキームにおいては、購読者アプリケーション(例えば、アプリケーション126)は、関連する購読者エージェント(例えば、エージェント128)から好ましくは、明示的に、データ(例えば、メッセージ)をプルすることができる。上述のように、エージェントは、プロキシを利用でき又はプロキシによって実現することができる。エージェント又はプロキシがネットワーク内の障害から復帰した後、このエージェントは、キャッシュから、自らがエッジルータから切断されていた期間に対応するデータを好ましくはトランスペアレントに検索する。また購読者は、長期持続スキームにおいて、好ましくは、直前のTタイムフレームに含まれるデータのみにアクセスすることができる。このため、好ましくは、エージェント(又はプロキシ)が接続されているエッジルータに関して、時間が判定される。検索されたキャッシングされたデータは、好ましくは帯域外で配信され、実時間配信は保証されない。長期持続スキームの実施例は、クラッシュから復帰した、又はエッジルータ(例えば、エッジルータ16)から切断された既存の購読者を対象とするものである。新たな購読者は、キャッシングされた情報を得ることはできない。   In a long-lasting scheme, a subscriber application (eg, application 126) can preferably explicitly pull data (eg, a message) from an associated subscriber agent (eg, agent 128). As described above, the agent can use or be implemented by a proxy. After the agent or proxy recovers from a failure in the network, the agent preferably searches the cache for data corresponding to the period during which it was disconnected from the edge router. Also, the subscriber can access only the data contained in the immediately preceding T time frame in the long-lasting scheme. For this reason, the time is preferably determined for the edge router to which the agent (or proxy) is connected. The retrieved cached data is preferably delivered out-of-band and real-time delivery is not guaranteed. Examples of long-lasting schemes are for existing subscribers who have recovered from a crash or disconnected from an edge router (eg, edge router 16). New subscribers will not get the cached information.

持続性の定義:
購読者に対する(タイムフレームTによる)期限付きの持続性は、発行−購読ネットワークから直前のタイムフレームTに含まれるデータを読み出すことができる能力として定義される。購読者がネットワークから切断されると、購読者の不在の間に受け取られた持続的なチャンネル上の如何なるデータも、(データの受信から)タイムフレームTの間、ネットワーク内に保存される。購読者がタイムフレームT内に復帰した場合、購読者は、如何なるデータも失わない。但し、購読者がTから2Tの期間内に復帰した場合、購読者は、データを失う可能性がある。また、購読者が2Tを過ぎて復帰した場合、購読者に対しては、好ましくは、それまでの如何なるデータも保証されない。
Definition of persistence:
Timed persistence (by time frame T) for a subscriber is defined as the ability to retrieve the data contained in the previous time frame T from the publish-subscribe network. When a subscriber is disconnected from the network, any data on the persistent channel received during the absence of the subscriber is stored in the network during the time frame T (from receipt of the data). If the subscriber returns within the time frame T, the subscriber will not lose any data. However, if the subscriber returns within a period of 2T from T, the subscriber may lose data. Also, if the subscriber returns after 2T, the subscriber is preferably not guaranteed any previous data.

上述の定義により、購読者をリーフとする発行−購読ネットワークツリーは、購読者が切断された後、タイムフレームTの間保持され、その後に購読者を切り離す必要がある。これにより、購読者が切断された後、タイムフレームTの間に受信された新たなデータは、タイムフレームTが経過するまで保持される。   According to the above definition, the publish-subscribe network tree with the subscriber as a leaf is maintained for a time frame T after the subscriber is disconnected, after which the subscriber needs to be disconnected. Thus, after the subscriber is disconnected, new data received during the time frame T is retained until the time frame T elapses.

アーキテクチャ:
図29は、キャッシングによって持続性を実現する発行−購読ネットワークの一部を示すブロック図である。図29に示すように、ネットワークは、コアルーティングノード548とエッジルーティングノード545とを備える。各ルーティングノードは、図4を用いて上述したように、好ましくは、インテリジェントルータ92(エッジルーティングノードと共に示す)と、従来のバックボーンルータ(図示せず)とを備える。持続的なチャンネルのためのキャッシングを行う必要がある各インテリジェントルータ92は、図29に示すように、好ましくは同じ場所にキャッシュマネージャ218を備える。キャッシュマネージャ218については、図8を用いて上述した通りである。インテリジェントルータ92は、好ましくは、失われたデータを読み出し又はルータ故障から復元するための短期的な持続性を実現する。キャッシュマネージャ218は、チャンネルにおける長期的な持続を実現するために、データをキャッシングする。キャッシュマネージャ218は、好ましくは、キャッシュ540内にこのデータをキャッシングする。キャッシュ540は、好ましくは、メモリとディスク(図示せず)を含んでいる。
architecture:
FIG. 29 is a block diagram illustrating a portion of a publish-subscribe network that provides persistence through caching. As shown in FIG. 29, the network includes a core routing node 548 and an edge routing node 545. 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. 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).

長期持続のためにデータをキャッシングするために、インテリジェントルータ92に対して、キャッシュマネージャ218を設けることには、例えば次のような利点がある。キャッシングされたデータにインデクスを付すための負荷が大きい演算は、独立したプロセッサによって実行でき、したがって、ルーティング及びフィルタリングプロセッサの性能には影響がなく、及びキャッシングされたデータを定期的にディスクに移動するためのディスクI/O動作も他のプロセッサによって実行でき、これにより、ルーティングとフィルタリングからサイクルが奪われることを防ぎ、エッジルータが定期的な入出力動作を行う必要を無くすことができる。   Providing the cache manager 218 for the intelligent router 92 to cache data for long-lasting has the following advantages, for example. An expensive operation to index the cached data can be performed by an independent processor, thus not affecting the performance of the routing and filtering processor, and periodically moving the cached data to disk Disk I / O operations can be performed by other processors, thereby preventing the cycle from being lost from routing and filtering, and eliminating the need for the edge router to perform regular input / output operations.

また、図29に示すエージェント128は、図5を用いて上述したように、好ましくは、購読者装置122(図25Aでは示していない)内に設けられる。エージェント128は、キャッシュマネージャ218と通信し、キャッシュ540からデータを検索し、検索したデータを受け取り、検索したデータを組織化する。上述のように、エージェント128は、プロキシを利用でき又はプロキシによって実現することができる。   29 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. As described above, the agent 128 can utilize or be implemented by a proxy.

障害が発生しない条件下では、エッジルータノード545のみが関連するキャッシュマネージャ218を有していればよい。しかしながら、図29には示していないが、長期持続スキームでは、障害を予期しているので、好ましくは、エッジルーティングノード545よりアップストリーム側にある第1のレベルのコアルーティングノード548のそれぞれがデータを保存するためのキャッシュマネージャ218を備えている。アップストリームとは、エージェント128から遠ざかる(すなわち、購読者マシン122から遠ざかる)方向である。第1のレベルのアップストリームコアルーティングノードとは、エッジルーティングノード545よりアップストリーム側に隣接するルーティングノードを意味する。発行−購読ネットワークは、多くの場合、複数の第1のレベルのコアルーティングノードを含んでいるが、図29では、1つの第1のレベルのコアルーティングノード、すなわちコアルーティングノード548のみを示している。上述のように、キャッシュマネージャ218は、自らが存在するネットワークノードにおいて、データのローカルなキャッシングを実現する。したがって、例えば、コアルーティングノード548を含む様々なコアルーティングノードに存在するキャッシュマネージャ218の動作は、ネットワークコア内のデータの分散型のキャッシングを実現する。この分配型のキャッシングは、エッジルーティングノードのキャッシングにバックアップを提供する。   Under conditions where no failure occurs, only the edge router node 545 need have an associated cache manager 218. However, although not shown in FIG. 29, the long-lasting scheme expects a failure, and preferably each of the first level core routing nodes 548 upstream of the edge routing node 545 is the data. A cache manager 218 is stored. Upstream is the direction away from the agent 128 (ie away from the subscriber machine 122). The first level upstream core routing node means a routing node adjacent to the edge routing node 545 on the upstream side. Although the publish-subscribe network often includes multiple first level core routing nodes, FIG. 29 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 in 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.

図30は、アップストリームルータ(例えば、コアルーティングノード548)におけるバックアップキャッシングを説明する図である。各長期持続スキームにおいては、各キャッシュは、次のアップストリームルータのキャッシュによってバックアップされる。アップストリームのキャッシュは、全ての受信データを保存し、ダウンストリームの次のレベルの全てのエッジルータのキャッシュのバックアップとして機能する。アップストリームのキャッシュのデータは、好ましくは、エッジルータキャッシングと同じメカニズムを用いて保存される。   FIG. 30 is a diagram for explaining backup caching in the upstream router (for example, the core routing node 548). In each long-lasting scheme, each cache is backed up by the next upstream router cache. The upstream cache stores all received data and serves as a backup for the cache of all downstream edge routers. Upstream cache data is preferably stored using the same mechanism as edge router caching.

図31は、持続的なチャンネルのキャッシングのためのアーキテクチャを示しており、このアーキテクチャでは、好ましくは、以下のような4つの異なるモジュールに亘る機能を提供する。キャッシュマネージャ218は、好ましくは、インテリジェントルータ92を通過するデータを保存するサーバ処理を行う。ルータキャッシュAPI552は、好ましくは、インテリジェントルータ92からキャッシュマネージャ218への制御、例えば、キャッシュを作成及び消去する処理に関連する全てのアクセスのためのライブラリである。エージェント(又は、プロキシ)キャッシュAPI554は、好ましくは、エージェント128(又はエージェント128プロキシ)からキャッシュマネージャ218への制御、例えば、データの検索に関連する全てのアクセスのためのライブラリである。エージェント128(又はプロキシ)は、好ましくは、キャッシュ546から検索されたデータを収集し、このデータを組織化する。   FIG. 31 illustrates an architecture for persistent channel caching, which preferably provides functionality across four different modules as follows. The cache manager 218 preferably performs server processing for storing data passing through the intelligent router 92. The router cache API 552 is preferably a library for all access related to the control from the intelligent router 92 to the cache manager 218, eg, the process of creating and clearing the cache. The agent (or proxy) cache API 554 is preferably a library for all access related to control from the agent 128 (or agent 128 proxy) to the cache manager 218, eg, retrieval of data. Agent 128 (or proxy) preferably collects the retrieved data from cache 546 and organizes this data.

図31を用いて、これらの4つのモジュールのインタラクションを説明する。エージェント128とインテリジェントルータ92は、好ましくは、キャッシュAPIライブラリ552、554を介してキャッシュにアクセスする。キャッシュAPIライブラリ552、554は、キャッシュ546を初期化し、サブジェクトのためにキャッシュを作成及び消去し、キャッシュアドレスを検索し、及び最も重要な機能としてキャッシュ546からデータを検索するためのAPIを提供する。ルーティングデーモン216は、好ましくは、キャッシュAPI552を介さず、データパスを介して、キャッシュマネージャ218にデータを送信する。キャッシュAPI552、554は、データ検索を含む全ての制御メッセージについて、好ましくは制御パスを用いる。   The interaction of these four modules will be described with reference to FIG. Agent 128 and intelligent router 92 preferably access the cache via cache API libraries 552, 554. Cache API libraries 552, 554 provide APIs to initialize cache 546, create and delete caches for subjects, retrieve cache addresses, and retrieve data from cache 546 as the most important function. . The routing daemon 216 preferably sends data to the cache manager 218 via the data path, not via the cache API 552. The cache APIs 552, 554 preferably use the control path for all control messages including data retrieval.

キャッシュマネージャ−キャッシュ管理:
図32に示すように、キャッシュマネージャ218が新たなチャンネルに遭遇するとキャッシュマネージャ218は、好ましくは情報サーバ(例えば、上述したサーバ152、154及び/又は156)を呼び出し、そのチャンネルのためにチャンネルマネージャ150を獲得する。キャッシュマネージャ218がチャンネルマネージャの150アドレスを得ると、キャッシュマネージャ218は、好ましくは、チャンネルマネージャ150からチャンネル特性を検索する。チャンネル特性には、例えば、チャンネルサブジェクトツリー及び属性、チャンネルの持続特性、チャンネルの持続タイムフレーム(T)、及びキャッシングの精度等が含まれる。キャッシュマネージャ218が、所定のサブジェクトについて、チャンネルを介して伝送されるデータのキャッシングを開始する前に、キャッシュマネージャ218において、そのサブジェクトのキャッシュを作成する必要がある。キャッシュマネージャ218は、キャッシュ作成メッセージを待機し、そのメッセージに応じて、サブジェクトキャッシュを作成する。このサブジェクトキャッシュは、要求に応じて、消去され、中断され又は再開される。図32は、購読予約に対するキャッシュの作成を示している。
Cache Manager-Cache management:
As shown in FIG. 32, when the cache manager 218 encounters a new channel, the cache manager 218 preferably calls an information server (eg, the servers 152, 154 and / or 156 described above) and uses the channel manager for that channel. Get 150. When the cache manager 218 obtains the channel manager's 150 address, the cache manager 218 preferably retrieves channel characteristics from the channel manager 150. Channel characteristics include, for example, channel subject tree and attributes, channel persistence characteristics, channel persistence time frame (T), and caching accuracy. Before the cache manager 218 starts caching data transmitted over a channel for a given subject, the cache manager 218 needs to create a cache for that subject. The cache manager 218 waits for a cache creation message and creates a subject cache in response to the message. This subject cache is cleared, suspended or resumed on demand. FIG. 32 shows the creation of a cache for a subscription reservation.

キャッシュマネージャ−キャッシュデータ入力:
キャッシュマネージャ218は、好ましくは、以下に示すような様々な手法によって、インテリジェントルータ92に入るデータにアクセスすることができる。すなわち、インテリジェントルータ92の入力リンク上の全てデータをキャッシュマネージャ218にも送るIPと同様のソリューションを用いてもよい。また、スニフィングメカニズムを用いてもよい(この場合、キャッシュマネージャ218は、インテリジェントルータ92のネットワークを介して伝送される全てのパケットを待機する。また、フィルタリングの後に、インテリジェントルータ92が、1つ以上のリンクに伝播させる必要がある各メッセージをキャッシュ546に供給してもよい。また、キャッシュマネージャ218は、全てのインテリジェントルータ92に供給されるデータに関する購読者として機能してもよい。
Cache Manager-Cache data input:
The cache manager 218 is preferably able to access data entering the intelligent router 92 by various techniques as described below. That is, a solution similar to IP that sends all data on the input link of the intelligent router 92 to the cache manager 218 may be used. A sniffing mechanism may also be used (in this case, the cache manager 218 waits for all packets transmitted over the network of intelligent routers 92. After filtering, the intelligent router 92 has one Each message that needs to be propagated to these links may be provided to the cache 546. Also, the cache manager 218 may function as a subscriber for the data provided to all intelligent routers 92.

キャッシュマネージャ−キャッシュデータストレージ:
図33に示すように、好ましくは、キャッシュマネージャ218は、例えば、チャンネルID、サブジェクト、発行者ID、タイムスタンプ、タイムグレイン(G)、プライマリキャッシング属性、リンク(キャッシングが障害のために行われる特別な場合)及び他の様々な手法によって、キャッシュ546内のデータにインデクスを付す。データにインデクスを付し、ファイルシステム又はメモリ内の階層的ディレクトリ構造に保存してもよい。データは、好ましくは、メモリ内にキャッシングされ、定期的にディスクに移動される。メモリ内のキャッシングは、タイムグレイ「G」の期間のみ行われる。タイムグレインGが経過すると、ツリー内の特定のブランチに関連する全てのデータは、好ましくは、そのブランチの下のファイルに移動され、そのブランチの最も古いファイルに上書きされる(なお、各メッセージをディスクに個別に書き込むことは高価であり、G期間を一回の動作でディスクに書き込んだ方が効率的であるためタイムグレインGは、好ましくは、スライディングウィンドウとしてではなく、絶対ウィンドウとして実現する)。図33は、インデクスツリーの具体例を示している。持続性のためにデータをキャッシングする場合、好ましくは、図33に示す第1のインデックスツリーを用いる。
Cache Manager-Cache data storage:
As shown in FIG. 33, preferably, the cache manager 218 may include, for example, a channel ID, a subject, an issuer ID, a timestamp, a time grain (G), a primary caching attribute, a link (a special case where caching is performed due to a failure The data in the cache 546 is indexed by various other techniques. Data may be indexed and stored in a file system or hierarchical directory structure in memory. Data is preferably cached in memory and periodically moved to disk. Caching in the memory is performed only during the time gray “G” period. When time grain G elapses, all data associated with a particular branch in the tree is preferably moved to a file under that branch, overwriting the oldest file in that branch (note that each message Time grain G is preferably implemented as an absolute window, not as a sliding window, because writing to the disk individually is expensive and it is more efficient to write the G period to the disk in a single operation) . FIG. 33 shows a specific example of an index tree. When caching data for persistence, the first index tree shown in FIG. 33 is preferably used.

図33に示すように、サブジェクトは、好ましくは、階層構造内に保存され、ここで、「a」は、例えば「a.b」、「a.c」、「a.d」等のサブジェクトの親である。キャッシュマネージャ218は、キャッシュ546のために、全てのサブジェクトを対応するファイル位置にマッピングするハッシュテーブルを保管する。幾つかの具体例では、キャッシュ546は、アップストリームルータ(例えば、コアルーティングノード548)がそのリンク上のダウンストリームのルータ(例えば、エッジルーティングノード545)における障害を検出した場合、障害が発生した条件下で、データを保存する必要がある。回復のための1つの手法は、ダウンストリームのルータを再起動することである(この処理は、数分もかかることがある)。ダウンストリームのルータが再起動されている間、アップストリームルータは、そのリンクのダウンストリーム方向に供給するデータをキャッシングする必要がある。このキャッシュ(例えば、図33ではFMキャッシュと示す。)は、好ましくは、出力側のリンク上でインデクスが付される。   As shown in FIG. 33, the subjects are preferably stored in a hierarchical structure, where “a” is the subject's subject, eg, “ab”, “ac”, “ad”, etc. Parent. Cache manager 218 stores a hash table for cache 546 that maps all subjects to corresponding file locations. In some implementations, a cache 546 has failed if an upstream router (eg, core routing node 548) detects a failure in a downstream router (eg, edge routing node 545) on that link. Under certain conditions, data must be stored. One approach to recovery is to restart the downstream router (this process can take several minutes). While the downstream router is being restarted, the upstream router needs to cache the data supplied in the downstream direction of that link. This cache (for example, shown as FM cache in FIG. 33) is preferably indexed on the output side link.

キャッシュマネージャ:ガーベージコレクション:
チャンネルが持続的でない場合、キャッシュ546は、データを保存せず、直ちにデータを消去する。チャンネルが持続的である場合、キャッシュ546は、データを保存する。特定のチャンネルの持続タイムフレーム「T」は、それぞれサイズがGであるN個のタイムグレインに分割される。メモリへのキャッシングは、Gに対応する期間のみ行われる。キャッシュマネージャが、期間Gが経過したと判定すると、データは、ディスクに移動される。キャッシュマネージャ218は、持続タイムフレーム期間Tの間、データをディスクに保存する。
Cache Manager: Garbage Collection:
If the channel is not persistent, the cache 546 does not save the data and immediately erases the data. If the channel is persistent, the cache 546 stores the data. The duration time frame “T” of a particular channel is divided into N time grains each of size G. Caching to the memory is performed only for a period corresponding to G. If the cache manager determines that period G has elapsed, the data is moved to disk. The cache manager 218 stores the data on the disk for a sustained time frame period T.

期間Gに対応するデータは、時間が、そのチャンネル+期間の上限の持続タイムフレーム期間(T)を過ぎた場合、ディスクから削除される。具体的には、例えば、チャンネルの持続タイムフレーム期間Tが2時間であるとする。ここでは、例示的に、キャッシュマネージャ218は、15分のタイムグレインGを用いるとする。この場合、データをディスクから削除するための規則は、次の通りである。すなわち、期間G(15分)の間に最後にキャッシングされたデータが期間T(2時間)の間保存された場合、その15分の期間の間にキャッシングされた全てのデータが破棄される。したがって,その15分の期間の最初にキャッシングされたデータは、破棄されるまでに、2時間より長く保存されることとなる。この実施例では、各15分の期間にキャッシングされるデータは、データのブロックである。持続タイムフレームTがN個の期間に分割される場合、如何なる時刻においても、各サブジェクトのためのキャッシュ546において、N+1個(ディスクにN個とメモリに1個)のデータのブロックが保存される。   Data corresponding to period G is deleted from the disk when the time has passed the channel + period upper duration time frame period (T). Specifically, for example, it is assumed that the continuous time frame period T of the channel is 2 hours. Here, as an example, it is assumed that the cache manager 218 uses a time grain G of 15 minutes. In this case, the rules for deleting data from the disk are as follows. That is, when the data cached last during the period G (15 minutes) is stored for the period T (2 hours), all the data cached during the period of 15 minutes is discarded. 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 in each 15 minute period is a block of data. If the duration time frame T is divided into N periods, at any time, N + 1 blocks (N in disk and 1 in memory) of data are stored in the cache 546 for each subject. .

キャッシュマネージャ−キャッシュデータ検索:
図34に示すように、エージェント128(又はプロキシ)は、好ましくは、キャッシュ読出処理(GetCache operation)を呼び出し、現在の時間から期間T分遡ったデータを入手する。図34においては、キャッシュ読出処理を呼び出すためにエージェント128が接続するキャッシュマネージャ218には、ポータルキャッシュのラベルを付している。ルータ又はエージェント128の失敗/切断のため、ポータルキャッシュは、エージェント128によって要求されたデータの全てを有していない場合がある。この場合、ポータルキャッシュは、他の全てのキャッシュ(例えば、アップストリームのキャッシュ)からデータを検索し、データを照合し、このデータをエージェント128に返す。図34は、異なるタイムスタンプ(TS1、TS2、TS3)に対する、複数のキャッシュ(A、B、C)からの検索を示している。
Cache Manager-Cache data search:
As shown in FIG. 34, the agent 128 (or proxy) preferably calls a cache read process (GetCache operation), and obtains data that is back for a period T from the current time. In FIG. 34, the cache manager 218 to which the agent 128 is connected in order to call the cache read process is labeled with a portal cache. Due to a router / agent 128 failure / disconnection, the portal cache may not have all of the data requested by the agent 128. In this case, the portal cache retrieves data from all other caches (eg, upstream cache), collates the data, and returns this data to the agent 128. FIG. 34 shows a search from multiple caches (A, B, C) for different time stamps (TS1, TS2, TS3).

キャッシュマネージャ218は、好ましくは、タイムグレインGのデータのブロックのみを検索する。したがって、エージェント128には、予期又は要求したデータより多くのデータが提供されることもある。更に複数のキャッシュから検索を行うと、キャッシュ間において、幾つかの期間が重複し、エージェント128は、データが重複して供給されることもあり、このため、エージェント128は、キャッシュによって提供されるデータストリームにおける重複を削除する必要がある。   The cache manager 218 preferably retrieves only blocks of time grain G data. Thus, the agent 128 may be provided with more data than expected or requested data. Further, when searching from a plurality of caches, several periods are overlapped between the caches, and the agent 128 may be supplied with duplicate data, so that the agent 128 is provided by the cache. Duplicates in the data stream need to be removed.

キャッシュマネージャの他のモジュールとのインタラクション:
キャッシュマネージャ218は、好ましくは、図35に示すように、イベント通知システムインフラストラクチャにおいて、幾つかのモジュールとインタラクトする。キャッシュマネージャ218が(キャッシュ作成時に)新たなチャンネルに遭遇すると、キャッシュマネージャ218は、好ましくは、そのチャンネルのチャンネルマネージャ150を得るために情報サーバ550を呼び出す。一旦、キャッシュマネージャ218がチャンネルマネージャ150のアドレスを得ると、キャッシュマネージャ218は、好ましくは、チャンネルマネージャ150からチャンネル特性に関する情報を得る。アドミニストレータモジュール552は、好ましくは、キャッシングの分割の度合い等の幾つかの特性を設定/変更することができる。また、アドミニストレータモジュール552は、好ましくは、マニュアルでチャンネルキャッシュを作成/削除することもできる。
Interaction with other modules of the cache manager:
The cache manager 218 preferably interacts with several modules in the event notification system infrastructure, as shown in FIG. When cache manager 218 encounters a new channel (at cache creation time), cache manager 218 preferably calls information server 550 to obtain channel manager 150 for that channel. Once cache manager 218 obtains the address of channel manager 150, cache manager 218 preferably obtains information about channel characteristics from channel manager 150. The administrator module 552 is preferably capable of setting / changing several characteristics such as the degree of caching division. The administrator module 552 can also preferably create / delete channel caches manually.

エージェントキャッシュAPI−アプリケーションエージェントインタラクション:
アプリケーション(例えば、アプリケーション126)は、好ましくは、エージェントキャッシュAPI554を呼び出し、所定のサブジェクトとフィルタとともにキャッシュ546を得る。好ましくは、アプリケーションは、既にそのデータを購読予約している場合、キャッシュ546からそのデータのみを検索することができる。エージェントキャッシュAPI554は、実際には、好ましくは2つのAPIを提供する。
Agent Cache API-Application Agent Interaction:
An application (eg, application 126) preferably calls the agent cache API 554 to obtain a cache 546 with a predetermined subject and filter. Preferably, the application can retrieve only the data from the cache 546 if the application has already subscribed to the data. The agent cache API 554 actually provides two APIs preferably.

第1のAPIにより、購読予約していないアプリケーションは、キャッシュ546の購読予約と検索を同時に行うことができる。「FIFO」フラグが設定されている場合、購読予約が作成され、エッジルータノード545に送信される。エージェント128がキャッシングされた全てのデータを受け取った後に、エージェント128は、まず、キャッシングされた全てのデータを配信し、そのデータにおいて、全ての発行者が確認できなかった最後のシーケンスを監視し、この各発行者が確認できなかった最後のシーケンスから、中断されたデータを配信する。   The first API allows an application that has not subscribed to subscribe to and search the cache 546 at the same time. If the “FIFO” flag is set, a subscription is created and sent to the edge router node 545. After agent 128 has received all the cached data, agent 128 first delivers all the cached data and monitors that data for the last sequence that all issuers could not confirm, The interrupted data is distributed from the last sequence that cannot be confirmed by each issuer.

第2のAPIでは、アプリケーションが既にあるデータを購読予約し、キャッシングされたデータを要求していると仮定する。この場合、アプリケーションには、キャッシュデータに関して、連続的ではない幾つかのデータが既に配信されている。この具体例では、「FIFO」フラグは、単に、キャッシュ546から読み出されたデータが自ら順序を決定するが通常のデータストリームと同様の順序である必要はないことを示す。   The second API assumes that the application subscribes to existing data and requests cached data. In this case, some non-continuous data regarding the cache data is already distributed to the application. In this specific example, the “FIFO” flag simply indicates that the data read from the cache 546 determines its own order but need not be in the same order as a normal data stream.

エージェント128は、好ましくは、1つの大きなデータのブロック内の全てのイベントを読み出す。エージェント128は、キャッシュAPI554からデータを読み出した後、好ましくは、コールバック動作を呼び出す前に(上述参照)、データに対して以下のような動作を行う。この動作とは、通知のリストからの通知の生成、各発行者について、最後のシーケンス番号の監視、及びフィルタリングである。エージェント128によって全てのイベントをコールバックに渡す処理が完了すると、エージェント128は、キャッシュ完了イベント(DoneCache event)をコールバックに渡し、キャッシングされた全てのデータが配信されたことを示す。このとき、購読予約がFIFOであり、通常のデータが中断されている場合、エージェント128は、好ましくは、中断された全ての通知を配信する。このとき、エージェント128は、シーケンス番号がキャッシングされたデータにおける最後のシーケンス番号より大きい通知のみを配信する。   Agent 128 preferably reads all events within one large block of data. After reading the data from the cache API 554, the agent 128 preferably performs the following operation on the data before invoking a callback operation (see above). This operation is the generation of a notification from the list of notifications, monitoring the last sequence number for each issuer, and filtering. When the process of passing all events to the callback by the agent 128 is completed, the agent 128 passes a cache completion event (DoneCache event) to the callback, indicating that all cached data has been delivered. At this time, if the subscription is a FIFO and normal data is suspended, agent 128 preferably delivers all suspended notifications. At this time, the agent 128 delivers only a notification whose sequence number is greater than the last sequence number in the cached data.

エージェントキャッシュAPIとキャッシュのインタラクション:
購読者がキャッシングされたデータを供給した場合、エージェント128側のキャッシュAPI554は、好ましくは、まず、エージェント128が接続されているエッジルータに関する履歴を調べ、キャッシュ読出要求(GetCache request)によって定義されている期間を用いて、リストをフィルタリングする。API554は、キャッシュ読出(GetCache)(チャンネル、サブジェクト、フィルタ、local_pubs、time_period、FIFO、ルータのアレーメッセージをAPI554が接続されていた最後のエッジキャッシュに送信する。キャッシュマネージャ218は、好ましくは、チャンネルID、サブジェクト及びタイムスタンプに基づいてデータをプルし、このデータをエージェント128に戻す。キャッシュマネージャ218によるデータの供給が完了すると、キャッシュマネージャ218は、キャッシュ完了イベント(DoneCache event)をキャッシュAPIに渡し、データの転送がキャッシングされた全てのデータが配信されたことを示す。
Agent cache API and cache interaction:
When a subscriber provides cached data, the cache API 554 on the agent 128 side preferably first looks at the history of the edge router to which the agent 128 is connected and is defined by a cache read request (GetCache request). The list is filtered using a certain period. The API 554 sends a cache read (GetCache) (channel, subject, filter, local_pubs, time_period, FIFO, router array message to the last edge cache to which the API 554 was connected. The cache manager 218 preferably has a channel ID. Pull the data based on the subject and timestamp and return this data to the agent 128. When the supply of data by the cache manager 218 is complete, the cache manager 218 passes a cache completion event (DoneCache event) to the cache API, Indicates that all data for which data transfer has been cached has been distributed.

キャッシュマネージャ218がデータをローカルで検出できない場合、キャッシュマネージャ218は、エージェント128によって提供される「ルータのリスト」を用いて、必要なデータを検索する。キャッシュマネージャ218が必要な全てのデータを集めると、キャッシュマネージャ218は、必要なデータを照合し、重複削除を行った後に、このデータをエージェント128に供給する。   If the cache manager 218 cannot find the data locally, the cache manager 218 uses the “list of routers” provided by the agent 128 to retrieve the required data. When the cache manager 218 collects all the necessary data, the cache manager 218 collates the necessary data and performs deduplication and then supplies this data to the agent 128.

キャッシュ接続履歴:
キャッシュ546からのデータの検索を可能にするために、好ましくは、エージェント128において、アップストリームのキャッシュと同様に両方の側のキャッシュに関するキャッシュ接続履歴が維持される。この情報は、エージェント128がシャットダウン及びクラッシュした場合に必要であるので、この情報は、ファイルに持続的に保存する必要がある。キャッシュ接続履歴は、好ましくは、以下のようなファイル及びフォーマットによってディスクに保存される。
Cache connection history:
In order to allow retrieval of data from cache 546, cache connection history for both caches is preferably maintained at agent 128 as well as upstream caches. Since this information is needed if the agent 128 shuts down and crashes, this information needs to be stored persistently in a file. The cache connection history is preferably stored on the disk in the following file and format.

エッジキャッシュ位置:
エッジキャッシュの位置(例えば、エッジルーティングノード546のキャッシュ546)は、好ましくは、チャンネルマネージャ/チャンネルライブラリから得られる。これは、起動時及びこれに続く、例えば、接続の切断/再接続、接続の変更等によってエッジキャッシュが変化した、如何なる時点でも発生する。ディスパッチャは、エッジキャッシュ接続の全ての変化をエージェント128に通知し、これらの変化は、エージェント128のキャッシュライブラリに伝えられる。変化が起こるたび、その情報は持続される。
Edge cache location:
The location of the edge cache (eg, cache 546 of edge routing node 546) is preferably obtained from the channel manager / channel library. This occurs at startup and at any time following it, for example when the edge cache changes due to disconnection / reconnection, connection change, etc. The dispatcher notifies the agent 128 of all changes in the edge cache connection and these changes are communicated to the agent 128 cache library. Whenever a change occurs, that information is persisted.

持続的なストレージ:CACHE_ROOT/channel_id/Channel−キャッシングされたデータのためのパスの具体例
データは、好ましくは次のようなフォーマットで保存される。
エッジキャッシュの数;
エッジキャッシュ1:インターバルの数、StartTimel:EndTimel, StartTime2:EndTime2,...;
エッジキャッシュ2:インターバルの数、StartTimel:EndTimel, StartTime2:EndTime2,...;・・・
ここで、最後のタイムスタンプがリストの最初に設けられる。なお、2つの異なるエッジキャッシュが重複する期間を有することはない(エージェント128は、一度に1つのエッジキャッシュのみに接続されるため)。新たなエントリが追加される毎に、古いエントリは、それらがまだ有効であるか確認され、それらが無効である場合、このエントリは、削除される。期間は、時刻EndTime+チャンネルの持続期間<現在の時刻となった場合、無効となる。
Persistent storage: CACHE_ROOT / channel_id / Channel-path example for cached data The data is preferably stored in the following format:
Number of edge caches;
Edge cache 1: number of intervals, StartTime: EndTimeel, StartTime2: EndTime2,. . . ;
Edge cache 2: number of intervals, StartTime: EndTimeel, StartTime2: EndTime2,. . . ; ...
Here, the last time stamp is provided at the beginning of the list. Note that two different edge caches do not have overlapping periods (because agent 128 is connected to only one edge cache at a time). Each time a new entry is added, the old entries are checked to see if they are still valid, and if they are invalid, this entry is deleted. The period becomes invalid when time EndTime + channel duration <current time.

エッジキャッシュエントリは、エントリ内の全ての期間が無効になった場合、無効になる。なお、「EndTime」が0であるということは、その期間が現在有効であることを意味する。   An edge cache entry becomes invalid if all periods in the entry are invalid. Note that “EndTime” being 0 means that the period is currently valid.

アップストリームのキャッシュ位置:
アップストリームのキャッシュ(例えば、コアルーティングノード548のキャッシュ546)の位置は、サブジェクトに依存している。各サブジェクトは、それ自身のマルチキャストツリーを有し、したがって、第1のレベルのアップストリームのキャッシュの組は、サブジェクトの関数である。ユーザがサブジェクトを購読予約すると、インテリジェントルータ92は、必ずサブジェクトに関連しているアップストリームのキャッシュのリストを返す。同様に、障害又はマルチキャストツリーの再構成に起因するアップストリームのキャッシュ位置のあらゆる変化は、制御パスを介してエージェント128に伝えられる。これらの変化は、持続的なメモリ(ファイル)にローカルに記録される。
Upstream cache location:
The location of the upstream cache (eg, cache 546 of core routing node 548) depends on the subject. Each subject has its own multicast tree, so the first level upstream cache set is a function of the subject. When a user subscribes to a subject, the intelligent router 92 always returns a list of upstream caches associated with the subject. Similarly, any change in upstream cache location due to failure or multicast tree reconfiguration is communicated to agent 128 via the control path. These changes are recorded locally in persistent memory (files).

持続的なストレージ:CACHE_ROOT/channel_identifier/subject(階層ではなく、完全なサブジェクト)−キャッシングされたデータのためのパスの具体例
データは、好ましくは、以下のフォーマットで保存される。
アップストリームキャッシュの数;
アップストリームキャッシュ1:インターバルの数、StartTimel:EndTimel, StartTime2:EndTime2,...;
アップストリームキャッシュ2:インターバルの数、StartTimel:EndTimel, StartTime2:EndTime2,...;・・・
ここでも、最後のタイムスタンプがリストの最初に設けられる。エッジキャッシュ期間とは異なり、エージェント128は、所定のサブジェクトについて、複数のアップストリームのキャッシュを有することができるので、2つのアップストリームキャッシュが重複する期間を有することがある。また、アップストリームのキャッシュファイルのコンテンツは、エッジキャッシュの場合と同様なアルゴリズムを用いて集められたガーベージである。
Persistent storage: CACHE_ROOT / channel_identifier / subject (complete subject, not hierarchy)-path example for cached data The data is preferably stored in the following format:
Number of upstream caches;
Upstream cache 1: number of intervals, StartTime: EndTimel, StartTime2: EndTime2,. . . ;
Upstream cache 2: number of intervals, StartTime: EndTimeel, StartTime2: EndTime2,. . . ; ...
Again, the last time stamp is placed at the beginning of the list. Unlike the edge cache period, the agent 128 may have multiple upstream caches for a given subject, so the two upstream caches may have overlapping periods. Further, the contents of the upstream cache file are garbage collected using the same algorithm as in the edge cache.

データ検索の間のキャッシュ妥当性:
エージェント128が有効な間、エージェント128は、接続を介して、異なるエッジルータ及びアップストリームルータ間を移動する。エージェントキャッシュAPI554は、好ましくは、この接続履歴をローカルメモリに保存する。エージェント128が、キャッシュ546からデータの最後のT期間を読み出す必要がある場合、エージェントキャッシュAPI554は、好ましくは、接続履歴を調べ、そのデータにアクセスするためのキャッシュを判定する。これのために用いられるアルゴリズムは、好ましくは以下の通りである。(1)キャッシュライブラリは、全てのエッジキャッシュ期間を探検し、Tタイムフレーム内に含まれる期間を確認する。(2)リストLeは、期間開始時刻に基づいて、リストLeをソートする。(3)LE内のエッジキャッシュによってカバーされていない各期間について、アップストリームキャッシュを探索し、この期間をカバーできる全てのアップストリームキャッシュ期間に関する情報を得て、有効な期間をリストLuに加え、LeにLuを追加し、期間開始時刻を用いてLeをソートし、Lを作成する。
Cache validity during data retrieval:
While agent 128 is active, agent 128 moves between different edge routers and upstream routers over the connection. The agent cache API 554 preferably stores this connection history in local memory. When the agent 128 needs to read the last T period of data from the cache 546, the agent cache API 554 preferably examines the connection history to determine the cache for accessing the data. The algorithm used for this is preferably as follows. (1) The cache library explores all edge cache periods and checks the periods included in the T time frame. (2) The list Le sorts the list Le based on the period start time. (3) For each period not covered by the edge cache in the LE, search the upstream cache, get information about all upstream cache periods that can cover this period, add the valid period to the list Lu, Lu is added to Le, Le is sorted using the period start time, and L is created.

このアルゴリズムによりキャッシュのリストLが生成され、各キャッシュについて、データを読み出すための期間が得られる。次に、このキャッシュのリストLは、(4)キャッシュ読出メッセージに組み込まれ、キャッシュマネージャ218に送信される。キャッシュマネージャ218側では、キャッシュマネージャ218は、好ましくは、(5)ゲットキャッシュメッセージからキャッシュ期間を取り出し、開始時刻順にソートされたリストLを再構築する。リストLの各期間の間、キャッシュマネージャ218は、好ましくは、(6)前の期間と現在の期間の間に、隙間があるか否かを確認し、隙間があれば、そのデータのローカルキャッシュを要求する。このような隙間がなければ、キャッシュマネージャ218は、好ましくは(7)関連するキャッシュにデータを読み出すよう指示する。キャッシュマネージャ218は、好ましくは(8)全てのキャッシュからのデータを照合し、このデータをエージェント128に送信する。   A cache list L is generated by this algorithm, and a period for reading data is obtained for each cache. This cache list L is then incorporated into the (4) cache read message and sent to the cache manager 218. On the cache manager 218 side, the cache manager 218 preferably takes (5) the cache period from the get cache message and reconstructs the list L sorted in the order of the start time. During each period of the list L, the cache manager 218 preferably (6) checks whether there is a gap between the previous period and the current period, and if there is a gap, the local cache of the data Request. If there is no such gap, the cache manager 218 preferably (7) instructs the associated cache to read the data. The cache manager 218 preferably (8) collates data from all caches and sends this data to the agent 128.

ルータキャッシュAPI:
インテリジェントルータ92側のルータキャッシュAPI552は、特定のサブジェクトのためのキャッシングを作成し、消去し、停止し、再開するためにキャッシュマネージャ218を呼び出す。また、ルータキャッシュAPI552は、初期の構成を処理する。すなわち、ルータキャッシュAPI552は、インテリジェントルータ92からチャンネルマネージャ150にキャッシュアドレスをアップロードし、これにより、エージェント128側(エージェントキャッシュAPI554)は、必要なときにこの情報を得ることができる。更に、ルータキャッシュAPI552は、他のルータのキャッシュ546の位置を読み出す(この位置は例えば、購読予約に対する応答において及びサブジェクトツリーの変更の後にインテリジェントルータ92が所定のサブジェクトのためのアップストリームキャッシュをエージェント128に通知する際に用いられる)。
Router cache API:
The router cache API 552 on the intelligent router 92 side calls the cache manager 218 to create, delete, stop, and resume caching for a particular subject. The router cache API 552 also handles the initial configuration. That is, the router cache API 552 uploads the cache address from the intelligent router 92 to the channel manager 150, so that the agent 128 side (agent cache API 554) can obtain this information when necessary. In addition, the router cache API 552 reads the location of the other router's cache 546 (this location can be used, for example, in response to a subscription, and after the subject tree change, the intelligent router 92 agents the upstream cache for a given subject. 128).

プルのためのキャッシュの使用:
上述の説明では、持続的なチャンネルを実現し、購読者がネットワークからデータをプルすることによって情報を返すためのキャッシュの使用に焦点をあてた。変形例では、如何なる購読者(新たな購読者又は復帰した購読者)もキャッシュ546から(例えば、購読者が購読予約していないが、他の誰かの購読予約のためにキャッシュ546に保存されているデータを含む)あらゆる種類のデータをプルすることができる。この実施例と先の実施例との違いは、復帰した購読者については、データの存在が保証され、データの位置は、既知であるが、新たな購読者については、保存されているデータの位置が未知であるという点である。この変形例を実現する単純な手法は、チャンネルにおいて「キャッシュ検出(FindCache)」要求を発行することである。キャッシュ検出要求は、チャンネルID、サブジェクト、フィルタ、期間及び要求されたキャッシングされたデータを有するキャッシュ546を探すエージェント128の位置を含んでいる。全てのキャッシュ546がキャッシュ検出要求を待機している。各キャッシュ546が要求を受け取ると、キャッシュ546は、対応するデータが自らのデータストアにあるか否かを確認し、自らがそのデータを保存している場合、自らの位置をユニキャストメッセージとして返す。エージェント128は、キャッシュ546の1つを選択し、そのキャッシュ546をキャッシュ読出処理によって呼び出し、そのデータを得る。
Use of cache for pull:
The above discussion has focused on the use of a cache to implement persistent channels and return information by subscribers pulling data from the network. In a variant, any subscriber (new subscriber or reinstated subscriber) is saved from cache 546 (eg, the subscriber has not subscribed, but is saved in cache 546 for someone else's subscription reservation). You can pull any kind of data (including the data you have). The difference between this example and the previous example is that for restored subscribers the existence of data is guaranteed and the location of the data is known, but for new subscribers the stored data The position is unknown. A simple way to implement this variant is to issue a “FindCache” request on the channel. The cache detection request includes the channel ID, subject, filter, duration, and location of the agent 128 looking for the cache 546 with the requested cached data. All caches 546 are waiting for a cache detection request. When each cache 546 receives the request, the cache 546 checks whether the corresponding data is in its own data store, and if it stores the data, returns its location as a unicast message. . The agent 128 selects one of the caches 546 and invokes the cache 546 by a cache read process to obtain the data.

最新データプル:
他の実施例では、購読者アプリケーション(例えば、アプリケーション126)が所定のサブジェクトについて、最新のメッセージを得ることができる最新データプルを実現する。これは、例えば、株価アラート等のデータに有効であり、この場合、ユーザは、履歴ではなく、最新の株価に関する情報のみを希望する。
Latest data pull:
In another embodiment, a subscriber data application (eg, application 126) implements the latest data pull from which the latest message can be obtained for a given subject. This is effective, for example, for data such as stock price alerts. In this case, the user only wants information on the latest stock price, not a history.

キャッシュマネージャの実現:
キャッシュマネージャ218の実現においては、好ましくは、3種類のスレッドを用いる。データキャッシングスレッド−データキャッシングスレッドは、好ましくは、インテリジェントルータ92への接続からデータを取り出し、データにインデクスを付してメモリに保存する。データストレージスレッド−期間の最後に到達すると、データストレージスレッドは、メモリに保存されているデータをディスクに移動させ、及びこの処理において、期限切れのデータに関するガーベージコレクションを実行する。データ検索スレッド−データ検索スレッドは、好ましくは、キャッシングされたデータの要求を受け、キャッシュ546からデータを検索する。これらの3つの種類のスレッドは、単一のスレッドとして実現してもよく、スレッドのプールとして実現してもよい。好ましくは、データキャッシングスレッドとデータストレージスレッドは、データがディスクに移動される時刻に同期される。このようにデータストレージスレッドとデータ検索スレッドとを同期させることにより、データの検索中にデータが消去されることが防止される。
Realization of cache manager:
In implementing the cache manager 218, preferably three types of threads are used. Data caching thread—The data caching thread preferably retrieves data from the connection to the intelligent router 92 and indexes the data and stores it in memory. Data storage thread—When the end of the period is reached, the data storage thread moves data stored in memory to disk and performs garbage collection on the expired data in this process. Data retrieval thread—The data retrieval thread preferably retrieves data from the cache 546 upon receiving a request for cached data. These three types of threads may be implemented as a single thread or as a pool of threads. Preferably, the data caching thread and the data storage thread are synchronized to the time when the data is moved to disk. By synchronizing the data storage thread and the data retrieval thread in this way, data is prevented from being erased during data retrieval.

データ構造:
キャッシングのためのデータ構造の具体例は、表19及びこれに関連する説明に記した通りである。
data structure:
Specific examples of the data structure for caching are as described in Table 19 and the related description.

データストレージ:
図36は、「アクイラキャッシュ(Aquila Cache)」と呼ばれるキャッシュ546にデータファイルを保存するために用いられる好適なディレクトリ構造を示している。なお、各サブジェクトレベルのディレクトリは、好ましくは、そのサブジェクトについて発行されるデータを保存するデータディレクトリに加えて、1組の子サブジェクトディレクトリを有する。例えば、エンターテインメントチャンネルにおいて、FOXムービーから発行されたデータは、AquilaCache/エンターテインメント/FOX/ムービー/データ(AquilaCache/Entertainment/FOX/Movies/Data)のディレクトリのファイルに格納され、サブジェクトFOXについて発行されたデータは、AQUILACACHE/エンターテインメント/フォックス/データ(AquilaCache/Entertainment/FOX/Data)のディレクトリのファイルに格納される。データのストレージを高速に行うために、好ましくは、インテリジェントルータ92がキャッシュ546に対し、所定のチャンネルとサブジェクトに関するキャッシングを開始するよう要求した時点で、特定のサブジェクトのディレクトリ階層を構築する。
Data storage:
FIG. 36 illustrates a preferred directory structure used to store data files in a cache 546 called “Aquila Cache”. Each subject-level directory preferably has a set of child subject directories in addition to a data directory that stores data issued for that subject. For example, in the entertainment channel, data issued from a FOX movie is stored in a file in the directory of AquilaCache / Entertainment / FOX / Movies / Data (AquilaCache / Entertainment / FOX / Movies / Data) and is issued for the subject FOX. Is stored in a file in a directory of AQUILACACHE / entertainment / fox / data (AquilaCache / Entertainment / FOX / Data). In order to perform high-speed data storage, the directory hierarchy of a specific subject is preferably constructed when the intelligent router 92 requests the cache 546 to start caching for a predetermined channel and subject.

データ検索:
キャッシュ546からのデータ検索は、データのストレージを妨げないように、及びキャッシュ546がホールドアップしないように、効率的に行う必要がある。このデータ検索では、ディスクとメモリの両方からデータを読み出す。データ検索においては、好ましくは以下のようなステップを実行する。(1)データノードの位置を検出する。(2)データノードをロックする。(3)呼び出す必要があるデータのタイムスタンプを検出する。(4)データを読み出し、メモリに保存する。(5)データノードをロック解除する。(6)メモリに保存され、読み出されたデータをフィルタリングし、並べ替えた後、エージェント128クライアントにプッシュする。
data search:
Data retrieval from the cache 546 needs to be done efficiently so as not to interfere with data storage and to prevent the cache 546 from being held up. In this data search, data is read from both the disk and the memory. In data retrieval, the following steps are preferably performed. (1) The position of the data node is detected. (2) Lock the data node. (3) Detect the time stamp of the data that needs to be recalled. (4) Read data and save it in memory. (5) Unlock the data node. (6) The data stored in the memory and read out are filtered, rearranged, and then pushed to the agent 128 client.

以上、例示的な実施例を用いて本発明を説明してきたが、これらの実施例を様々に変形できることは当業者にとって明らかであり、本発明は、これらの如何なる適応化又は変形をも含む。例えば、本発明の範囲から逸脱することなく、様々な種類の発行者装置、ユーザ又は購読者装置、これらのチャンネル及び構成、コンテンツベースのルーティング及び他の機能のハードウェア及びソフトウェアによる実現が可能である。この発明は、特許請求の範囲及びその均等物によってのみ制限される。   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.

ネットワークコアにおけるこのインテリジェントルーティングを概念的に示すブロック図である。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 figure which shows the structure of a digital video surveillance system. 2段階法による、デジタルビデオ監視システムのためにプロキシを示す図である。FIG. 2 shows a proxy for a digital video surveillance system according to a two-stage method. デジタルコンテンツ配信のためのアーキテクチャを示す図である。1 is a diagram illustrating an architecture for digital content distribution. FIG. デジタルコンテンツ配信のためのフェーズ1アーキテクチャを示す図である。FIG. 2 illustrates a phase 1 architecture for digital content distribution. デジタルコンテンツ配信のためのフェーズ2アーキテクチャを示す図である。FIG. 2 illustrates a phase 2 architecture for digital content distribution. サービス品質管理のための複数のアウトリンクを示す図である。It is a figure which shows several outlinks for service quality management. サービス品質管理のための単一のアウトリンクを示す図である。FIG. 6 illustrates a single outlink for quality of service management. ISPの外部におけるフィルタリング及びキャッシングを説明する図である。It is a figure explaining the filtering and caching outside ISP. ネットワーク内のキャッシュを示す図である。It is a figure which shows the cache in a network. アップストリームルータにおけるバックアップキャッシングを説明する図である。It is a figure explaining the backup caching in an upstream router. プロキシを有するキャッシュとルータのとの間のインタラクションを示す図である。FIG. 3 illustrates an interaction between a cache having a proxy and a router. 購読予約に対するキャッシュの作成を説明する図である。It is a figure explaining creation of the cache to a subscription reservation. インデクスツリーを示す図である。It is a figure which shows an index tree. 複数のキャッシュからの検索を示す図である。It is a figure which shows the search from several caches. キャッシュマネージャと、システム内の他のモジュールとのインタラクションを示す図である。It is a figure which shows interaction with a cache manager and the other module in a system. キャッシュのためのファイルディレクトリ構造を示す図である。It is a figure which shows the file directory structure for a cache.

Claims (113)

ネットワークにおいて、アラートサービスを提供するために、パケットをルーティングするルーティング方法において、
ヘッダセクションと、特定のカメラからのビデオクリップに関連する情報を含むペイロードセクションとを有するパケットを受け取る受信ステップと、
ネットワークコアにおいて、上記特定のカメラからの情報を含むパケットを購読者にどのようにルーティングするかを決定するために上記パケットのペイロードセクションを検査する検査ステップと、
上記検査に基づいて、上記パケットを選択的にルーティングするルーティングステップとを有するルーティング方法。
In a routing method for routing packets to provide an alert service in a network,
Receiving a packet having a header section and a payload section containing information related to a video clip from a particular camera;
An inspection step inspecting a payload section of the packet to determine how to route a packet containing information from the particular camera to a subscriber at the network core;
And a routing step for selectively routing the packet based on the inspection.
上記検査ステップは、コンテンツ述語情報を対応するネットワークの宛先に関連付ける構造において、上記ペイロードセクションの情報が該コンテンツ述語情報に一致するか否かを判定するステップを含むことを特徴とする請求項1記載のルーティング方法。   2. The checking step according to claim 1, wherein, in the structure for associating the content predicate information with a corresponding network destination, the step of determining whether or not the information of the payload section matches the content predicate information. Routing method. 上記ネットワークコア内のルータで上記検査を実行するステップを更に有する請求項1記載のルーティング方法。   The routing method according to claim 1, further comprising the step of executing the inspection at a router in the network core. 上記検査ステップは、上記ペイロードセクション内の情報にフィルタを適用するステップを含むことを特徴とする請求項1記載のルーティング方法。   The routing method according to claim 1, wherein the checking step includes a step of applying a filter to the information in the payload section. 上記検査を実行するために用いられるフィルタを上記ネットワーク内のルータに伝播するステップを更に有する請求項4記載のルーティング方法。   5. The routing method according to claim 4, further comprising the step of propagating a filter used to perform said inspection to a router in said network. 上記受信ステップ、検査ステップ及びルーティングステップを実行するために上記ネットワーク内のルータをプログラミングするステップを更に有する請求項1記載のルーティング方法。   The routing method of claim 1, further comprising the step of programming a router in the network to perform the receiving step, the examining step and the routing step. 上記検査ステップは、上記パケットをどのようにルーティングするかを決定するために用いる属性を検査するステップを含むことを特徴とする請求項1記載のルーティング方法。   The routing method according to claim 1, wherein the checking step includes a step of checking an attribute used to determine how to route the packet. 上記ルーティングステップは、上記パケットをデジタルビデオ監視システムに選択的にルーティングするステップを含むことを特徴とする請求項1記載のルーティング方法。   2. The routing method according to claim 1, wherein the routing step includes a step of selectively routing the packet to a digital video surveillance system. 上記検査ステップをローカルエリアネットワークにおいて実行するステップを更に有する請求項1記載のルーティング方法。   The routing method according to claim 1, further comprising the step of executing the checking step in a local area network. 上記検査ステップをインターネットサービスプロバイダ位置で実行するステップを更に有する請求項1記載のルーティング方法。   The routing method according to claim 1, further comprising the step of performing the checking step at an Internet service provider location. 上記特定のカメラは、デジタルビデオレコーダ及び電荷結合素子を備えることを特徴とする請求項1記載のルーティング方法。   The routing method according to claim 1, wherein the specific camera includes a digital video recorder and a charge coupled device. 上記デジタルビデオレコーダは、上記ヘッダセクションと、上記特定のカメラからビデオクリップに関連する情報を含むペイロードセクションとを有する上記パケットを生成することを特徴とする請求項11記載のルーティング方法。   12. The routing method according to claim 11, wherein the digital video recorder generates the packet having the header section and a payload section including information related to a video clip from the specific camera. ネットワークにおいて、アラートサービスを提供するために、パケットをルーティングするルーティング方法において、
ヘッダセクションと、少なくとも1つのサブジェクトと、特定のカメラからのビデオクリップに関連する少なくとも1つの属性とを含むメッセージを受け取る受信ステップと、
上記メッセージから上記サブジェクトと上記属性を読み出すサブジェクト/属性読出ステップと、
上記サブジェクトに基づいて購読予約を読み出す購読予約読出ステップと、
ネットワークコアにおいて、上記購読予約に上記属性を適用し、上記メッセージを購読者にどのようにルーティングするかを決定する適用ステップとを有するルーティング方法。
In a routing method for routing packets to provide an alert service in a network,
Receiving a message including a header section, at least one subject, and at least one attribute associated with a video clip from a particular camera;
A subject / attribute read step for reading the subject and the attribute from the message;
A subscription reservation reading step for reading a subscription reservation based on the subject;
In the network core, an application step of applying the attribute to the subscription and determining how to route the message to a subscriber.
上記購読予約読出ステップは、上記購読予約に対応するフィルタを読み出すステップを含むことを特徴とする請求項13記載のルーティング方法。   14. The routing method according to claim 13, wherein the subscription reservation reading step includes a step of reading a filter corresponding to the subscription reservation. 上記属性が上記購読予約を満たす場合、上記メッセージをルーティングするステップを更に有する請求項13記載のルーティング方法。   The routing method according to claim 13, further comprising the step of routing the message when the attribute satisfies the subscription. 上記属性が上記購読予約を満たさない場合、上記メッセージを削除するステップを更に有する請求項13記載のルーティング方法。   The routing method according to claim 13, further comprising the step of deleting the message when the attribute does not satisfy the subscription. 複数の購読予約に対応する複数のフィルタを読み出すステップと、
上記メッセージから複数の属性を読み出すステップと、
上記各フィルタに上記各属性を適用し、対応する購読予約のいずれかが満たされているか否かを判定するステップと、
上記購読予約のいずれかが満たされているか否かに基づいて、上記メッセージを選択的にルーティングするステップとを有する請求項13記載のルーティング方法。
Retrieving a plurality of filters corresponding to a plurality of subscriptions;
Reading a plurality of attributes from the message;
Applying each of the attributes to each of the filters and determining whether any of the corresponding subscription reservations are satisfied;
14. The routing method of claim 13, further comprising the step of selectively routing the message based on whether any of the subscriptions are satisfied.
ネットワークコア内のルータにおいて、上記適用ステップを実行するステップを更に有する請求項13記載のルーティング方法。   14. The routing method according to claim 13, further comprising the step of executing the application step in a router in the network core. 上記特定のカメラは、デジタルビデオレコーダ及び電荷結合素子を備えることを特徴とする請求項13記載のルーティング方法。   14. The routing method according to claim 13, wherein the specific camera includes a digital video recorder and a charge coupled device. 上記デジタルビデオレコーダは、上記ヘッダセクションと、上記特定のカメラからビデオクリップに関連する情報を含むペイロードセクションとを有する上記メッセージを生成することを特徴とする請求項19記載のルーティング方法。   20. The routing method of claim 19, wherein the digital video recorder generates the message having the header section and a payload section containing information related to a video clip from the particular camera. ネットワークにおいて、アラートサービスを提供するために、パケットをルーティングするルーティング方法において、
ヘッダセクションと、特定のアラートサービスのイベントに関する情報を含むペイロードセクションとを有するパケットを受け取る受信ステップと、
ネットワークコアにおいて、上記アラートサービスの情報を含むパケットを購読者にどのようにルーティングするかを決定するために上記パケットのペイロードセクションを検査する検査ステップと、
上記検査に基づいて、上記パケットを選択的にルーティングするルーティングステップとを有するルーティング方法。
In a routing method for routing packets to provide an alert service in a network,
Receiving a packet having a header section and a payload section containing information about a particular alert service event;
An inspection step inspecting a payload section of the packet to determine how to route a packet containing the alert service information to a subscriber at the network core;
And a routing step for selectively routing the packet based on the inspection.
ネットワークにおいて、アラートサービスを提供するために、パケットをルーティングするパケットルーティング装置において、
ヘッダセクションと、特定のカメラからのビデオクリップに関連する情報を含むペイロードセクションとを有するパケットを受け取る受信モジュールと、
ネットワークコアにおいて、上記特定のカメラからの情報を含むパケットを購読者にどのようにルーティングするかを決定するために上記パケットのペイロードセクションを検査する検査モジュールと、
上記検査に基づいて、上記パケットを選択的にルーティングするルーティングモジュールとを有するルーティング装置。
In a packet routing device for routing packets to provide an alert service in a network,
A receiving module that receives a packet having a header section and a payload section containing information related to a video clip from a particular camera;
An inspection module that inspects the payload section of the packet to determine how to route a packet containing information from the particular camera to a subscriber at the network core;
And a routing module that selectively routes the packet based on the inspection.
上記検査モジュールは、コンテンツ述語情報を対応するネットワークの宛先に関連付ける構造において、上記ペイロードセクションの情報が該コンテンツ述語情報に一致するか否かを判定するモジュールを備えることを特徴とする請求項22記載のルーティング装置。   23. The module according to claim 22, wherein the inspection module includes a module that determines whether or not the information of the payload section matches the content predicate information in a structure that associates the content predicate information with a corresponding network destination. Routing equipment. 上記ネットワークコア内のルータで上記検査を実行するモジュールを更に有する請求項22記載のルーティング装置。   23. The routing device according to claim 22, further comprising a module for executing the inspection at a router in the network core. 上記検査モジュールは、上記ペイロードセクション内の情報にフィルタを適用するモジュールを含むことを特徴とする請求項22記載のルーティング装置。   23. The routing device according to claim 22, wherein the inspection module includes a module that applies a filter to information in the payload section. 上記検査を実行するために用いられるフィルタを上記ネットワーク内のルータに伝播するモジュールを更に備える請求項25記載のルーティング装置。   26. The routing device of claim 25, further comprising a module for propagating a filter used to perform the inspection to a router in the network. 上記受信、検査及びルーティングを実行するために上記ネットワーク内のルータをプログラミングするモジュールを更に備える請求項22記載のルーティング装置。   23. The routing device of claim 22, further comprising a module for programming a router in the network to perform the reception, inspection and routing. 上記検査モジュールは、上記パケットをどのようにルーティングするかを決定するために用いる属性を検査するモジュールを含むことを特徴とする請求項22記載のルーティング装置。   23. The routing device according to claim 22, wherein the inspection module includes a module that inspects an attribute used to determine how to route the packet. 当該ルーティング装置は、デジタルビデオレコーダを備えるネットワーク内に配設されていることを特徴とする請求項22記載のルーティング装置。   The routing device according to claim 22, wherein the routing device is arranged in a network including a digital video recorder. 上記特定のカメラは、デジタルビデオレコーダ及び電荷結合素子を備えることを特徴とする請求項22記載のルーティング装置。   The routing device according to claim 22, wherein the specific camera includes a digital video recorder and a charge coupled device. ネットワークにおいて、アラートサービスを提供するために、パケットをルーティングするルーティング装置において、
ヘッダセクションと、少なくとも1つのサブジェクトと、特定のカメラからのビデオクリップに関連する少なくとも1つの属性とを含むメッセージを受け取る受信モジュールと、
上記メッセージから上記サブジェクトと上記属性を読み出すサブジェクト/属性読出モジュールと、
上記サブジェクトに基づいて購読予約を読み出す購読予約読出モジュールと、
ネットワークコアにおいて、上記購読予約に上記属性を適用し、上記メッセージを購読者にどのようにルーティングするかを決定する適用モジュールとを備えるルーティング装置。
In a routing device that routes packets to provide an alert service in a network,
A receiving module that receives a message including a header section, at least one subject, and at least one attribute associated with a video clip from a particular camera;
A subject / attribute read module that reads the subject and the attribute from the message;
A subscription reading module that reads subscription subscriptions based on the subject;
In the network core, a routing device comprising: an application module that applies the attribute to the subscription reservation and determines how to route the message to a subscriber.
上記購読予約読出モジュールは、上記購読予約に対応するフィルタを読み出すモジュールを備えることを特徴とする請求項31記載のルーティング装置。   32. The routing device according to claim 31, wherein the subscription reservation reading module comprises a module for reading a filter corresponding to the subscription reservation. 上記属性が上記購読予約を満たす場合、サービス品質保証に基づいて、上記メッセージを選択的にルーティングするモジュールを更に有する請求項31記載のルーティング装置。   32. The routing device according to claim 31, further comprising a module that selectively routes the message based on a quality of service guarantee if the attribute satisfies the subscription. 上記属性が全ての購読予約を満たさない場合、上記メッセージを削除するモジュールを更に有する請求項31記載のルーティング装置。   32. The routing device according to claim 31, further comprising a module for deleting the message if the attribute does not satisfy all subscriptions. 複数の購読予約に対応する複数のフィルタを読み出すモジュールと、
上記メッセージから複数の属性を読み出すモジュールと、
上記各フィルタに上記各属性を適用し、対応する購読予約のいずれかが満たされているか否かを判定するモジュールと、
上記購読予約のいずれかが満たされているか否かに基づいて上記メッセージを選択的にルーティングするモジュールとを有する請求項31記載のルーティング装置。
A module that retrieves multiple filters for multiple subscriptions;
A module that reads multiple attributes from the message, and
A module that applies each attribute to each of the filters and determines whether any of the corresponding subscription reservations are satisfied;
32. The routing device of claim 31, further comprising a module that selectively routes the message based on whether any of the subscriptions are satisfied.
上記ネットワークコア内のルータにおいて、上記適用を実行するモジュールを有する請求項31記載のルーティング装置。   32. The routing device according to claim 31, further comprising a module that executes the application in a router in the network core. 当該ルーティング装置は、デジタルビデオレコーダを備えるネットワーク内に配設されていることを特徴とする請求項31記載のルーティング装置。   32. The routing device according to claim 31, wherein the routing device is arranged in a network including a digital video recorder. 上記特定のカメラは、デジタルビデオレコーダ及び電荷結合素子を備えることを特徴とする請求項31記載のルーティング装置。   32. The routing device according to claim 31, wherein the specific camera includes a digital video recorder and a charge coupled device. ネットワークにおいて、アラートサービスを提供するために、パケットをルーティングするルーティングシステムにおいて、
デジタルビデオ出力を生成する複数のデジタルビデオカメラと、
上記デジタルビデオカメラに接続されたローカルエリアネットワーク(LAN)と、
上記LANに接続され、上記デジタルビデオ出力を発行する発行者エージェントと、
上記発行者エージェントに接続された発行−購読ネットワークと、
上記発行−購読ネットワークを介して上記発行されたデジタルビデオ出力を受信するデジタルビデオ監視システム(DVSS)とを備えるルーティングシステム。
In a routing system that routes packets to provide alert services in a network,
Multiple digital video cameras that produce digital video output;
A local area network (LAN) connected to the digital video camera;
An issuer agent connected to the LAN and issuing the digital video output;
An issue-subscribe network connected to the issuer agent;
A routing system comprising a digital video surveillance system (DVSS) that receives the published digital video output via the publish-subscribe network.
上記発行−購読ネットワークに接続され、上記デジタルビデオ出力を購読予約し、該購読されたデジタルビデオ出力を上記DVSSにプッシュする購読者エージェントを更に備える請求項39記載のルーティングシステム。   40. The routing system of claim 39, further comprising: a subscriber agent connected to the publish-subscribe network, subscribes to the digital video output, and pushes the subscribed digital video output to the DVSS. 上記発行−購読ネットワークは、複数のインテリジェントルータを備えることを特徴とする請求項39記載のルーティングシステム。   40. The routing system of claim 39, wherein the publish-subscribe network comprises a plurality of intelligent routers. 上記インテリジェントルータは、
ヘッダセクションと、複数のデジタルビデオカメラの1つからのデジタルビデオコンテンツに関連する情報を含むペイロードセクションとを有するパケットを受け取る受信モジュールと、
ネットワークコアにおいて、上記デジタルビデオカメラからの情報を含むパケットを購読者にどのようにルーティングするかを決定するために上記パケットのペイロードセクションを検査する検査モジュールと、
上記検査に基づいて、上記パケットを選択的にルーティングするルーティングモジュールとを備えることを特徴とする請求項41記載のルーティングシステム。
The above intelligent router
A receiving module that receives a packet having a header section and a payload section that includes information related to digital video content from one of a plurality of digital video cameras;
An inspection module that inspects the payload section of the packet to determine how to route a packet containing information from the digital video camera to a subscriber at the network core;
42. The routing system according to claim 41, further comprising: a routing module that selectively routes the packet based on the inspection.
購読者にデジタルコンテンツを配信するためのネットワークにおいて、
複数のユーザマシンと、
デジタルコンテンツを定期的に配信するセントラルディストリビュータと、
上記配信されたデジタルコンテンツを受け取って、キャッシングし、該キャッシングされたいずれかのデジタルコンテンツについて、上記ユーザマシンからユーザ要求を定期的に受信し、該要求されたデジタルコンテンツを該ユーザマシンに送信する複数のキャッシュサーバと、
上記配信されたデジタルコンテンツをセントラルディストリビュータからのファイルとして受信し、上記デジタルコンテンツファイルを発行とし、上記ユーザ要求を購読予約として、発行−購読コンテンツベースのルーティングを用いて上記デジタルコンテンツファイルを複数のキャッシュサーバに移すルーティングボックスとを備えるネットワーク。
In a network for distributing digital content to subscribers,
Multiple user machines,
A central distributor that delivers digital content regularly;
Receiving and caching the distributed digital content, periodically receiving a user request from the user machine for any of the cached digital content, and transmitting the requested digital content to the user machine Multiple cache servers,
The distributed digital content is received as a file from a central distributor, the digital content file is issued, the user request is subscribed, and the digital content file is cached using issue-subscribe content based routing. A network with a routing box to be transferred to a server.
上記ルーティングボックスは、第1のルーティングボックスであり、当該ネットワークは、上記複数のキャッシュサーバと同じ場所に配設された第2のルーティングボックスを備え、上記第1のルーティングボックスは、上記複数のキャッシュサーバの少なくとも1つと同じ場所に配設された該第2のルーティングボックスに上記デジタルコンテンツファイルをルーティングすることを特徴とする請求項43記載のネットワーク。   The routing box is a first routing box, and the network includes a second routing box disposed at the same location as the plurality of cache servers, and the first routing box includes the plurality of caches. 44. The network of claim 43, wherein the digital content file is routed to the second routing box located at the same location as at least one of the servers. 上記複数のキャッシュサーバは、ネットワークサービスプロバイダに配設されていることを特徴とする請求項43記載のネットワーク。   44. The network according to claim 43, wherein the plurality of cache servers are arranged in a network service provider. 上記複数のキャッシュサーバは、上記セントラルディストリビュータによって配信された全てのデジタルコンテンツを保存する第1のレベルのキャッシュサーバであることを特徴とする請求項43記載のネットワーク。   44. The network of claim 43, wherein the plurality of cache servers are first level cache servers that store all digital content distributed by the central distributor. 上記セントラルディストリビュータによって配信された上記デジタルコンテンツの一部を保存する第2のレベルのキャッシュサーバを更に備える請求項46記載のネットワーク。   47. The network of claim 46, further comprising a second level cache server that stores a portion of the digital content distributed by the central distributor. 上記ルーティングボックスは、第1のルーティングボックスであり、当該ネットワークは、上記第2のレベルのキャッシュサーバと同じ場所に配設された第2のルーティングボックスを備え、上記第1のルーティングボックス及び上記第2のルーティングボックスは、発行−購読コンテンツベースのルーティングを用いて、上記第1のレベルのキャッシュサーバから第2のレベルのキャッシュサーバに上記デジタルコンテンツファイルを転送することを特徴とする請求項47記載のネットワーク。   The routing box is a first routing box, and the network includes a second routing box disposed at the same location as the second level cache server, the first routing box and the first routing box. 48. The second routing box transfers the digital content file from the first level cache server to the second level cache server using publish-subscribe content based routing. Network. 上記各ルーティングボックスは、
ヘッダセクションと、デジタルコンテンツファイルに関連する情報を含むペイロードセクションとを有するパケットを受け取る受信モジュールと、
上記パケットをどのようにルーティングするかを決定するために上記パケットのペイロードセクションを検査する検査モジュールと、
上記検査に基づいて、上記第1のレベルのキャッシュサーバから上記第2のレベルのキャッシュサーバに上記パケットを選択的にルーティングするルーティングモジュールとを有する請求項48記載のネットワーク。
Each of the above routing boxes
A receiving module for receiving a packet having a header section and a payload section containing information related to the digital content file;
An inspection module that inspects the payload section of the packet to determine how to route the packet;
49. The network of claim 48, further comprising: a routing module that selectively routes the packet from the first level cache server to the second level cache server based on the inspection.
上記第2のレベルのキャッシュサーバによって保存される上記デジタルコンテンツの部分は、受信されたユーザ要求に関する履歴に基づいて決定されることを特徴とする請求項47記載のネットワーク。   48. The network of claim 47, wherein the portion of the digital content stored by the second level cache server is determined based on a history of received user requests. 上記第2のレベルのキャッシュサーバは、上記ユーザ要求を直接受信し、該第2のレベルのキャッシュサーバに保存されていないデジタルコンテンツについて、該ユーザ要求を上記第1のレベルのキャッシュサーバに転送することを特徴とする請求項47記載のネットワーク。   The second level cache server receives the user request directly and forwards the user request to the first level cache server for digital content not stored in the second level cache server. 48. The network of claim 47. 上記ルーティングボックスは、
ヘッダセクションと、デジタルコンテンツファイルに関連する情報を含むペイロードセクションとを有するパケットを受け取る受信モジュールと、
上記パケットをどのようにルーティングするかを決定するために上記パケットのペイロードセクションを検査する検査モジュールと、
上記検査に基づいて、上記セントラルディストリビュータからから上記複数のキャッシュサーバに上記パケットを選択的にルーティングするルーティングモジュールとを有する請求項43記載のネットワーク。
The above routing box
A receiving module for receiving a packet having a header section and a payload section containing information related to the digital content file;
An inspection module that inspects the payload section of the packet to determine how to route the packet;
44. The network of claim 43, further comprising a routing module that selectively routes the packet from the central distributor to the plurality of cache servers based on the inspection.
上記セントラルディストリビュータは、1つ以上のサーバを備えることを特徴とする請求項43記載のネットワーク。   44. The network of claim 43, wherein the central distributor comprises one or more servers. 上記デジタルコンテンツは、ビデオ、音楽及びソフトウェアを含むことを特徴とする請求項43記載のネットワーク。   44. The network of claim 43, wherein the digital content includes video, music, and software. ネットワークの購読者にデジタルコンテンツを配信する配信方法において、
上記デジタルコンテンツをセントラルディストリビュータから配信する配信ステップと、
上記配信されたデジタルコンテンツを複数のキャッシュサーバにコンテンツベースでルーティングするコンテンツルーティングステップと、
上記コンテンツベースでルーティングされたデジタルコンテンツを上記複数のキャッシュサーバにキャッシングするキャッシングステップと、
要求されたキャッシングされたデジタルコンテンツに対するユーザ購読予約を受け取る受信ステップと、
上記受信されたユーザ購読予約に基づいて、上記複数のキャッシュサーバからユーザに上記要求されたデジタルコンテンツを転送する転送ステップとを有する配信方法。
In a distribution method for distributing digital content to network subscribers,
A distribution step of distributing the digital content from a central distributor;
A content routing step for routing the distributed digital content to a plurality of cache servers on a content basis;
A caching step of caching the content-based routed digital content to the plurality of cache servers;
Receiving a user subscription for the requested cached digital content; and
And a transfer step of transferring the requested digital content from the plurality of cache servers to the user based on the received user subscription reservation.
上記コンテンツルーティングステップは、
ヘッダセクションと、デジタルコンテンツファイルに関連する情報を含むペイロードセクションとを有するパケットを受け取るステップと、
上記パケットをどのようにルーティングするかを決定するために上記パケットのペイロードセクションを検査するステップと、
上記検査に基づいて、上記パケットを選択的にルーティングするルーティングステップとを有することを特徴とする請求項55記載の配信方法。
The content routing step
Receiving a packet having a header section and a payload section containing information related to the digital content file;
Examining the payload section of the packet to determine how to route the packet;
56. The distribution method according to claim 55, further comprising a routing step of selectively routing the packet based on the inspection.
上記検査ステップは、コンテンツ述語情報を対応するネットワークの宛先に関連付ける構造において、上記ペイロードセクションの情報が該コンテンツ述語情報に一致するか否かを判定するステップを含むことを特徴とする請求項56記載の配信方法。   57. The step of checking includes the step of determining whether the information in the payload section matches the content predicate information in a structure that associates the content predicate information with a corresponding network destination. Delivery method. 上記検査ステップは、上記ペイロードセクション内の情報にフィルタを適用するステップを含むことを特徴とする請求項56記載の配信方法。   57. The delivery method according to claim 56, wherein the checking step includes applying a filter to information in the payload section. 上記検査を実行するために用いられる上記フィルタを上記ネットワーク内のルーティングボックスに伝播するステップを更に有する請求項58記載の配信方法。   59. The delivery method of claim 58, further comprising the step of propagating the filter used to perform the inspection to a routing box in the network. 上記受信ステップ、検査ステップ及びルーティングステップを実行するために上記ネットワーク内のルーティングボックスをプログラミングするステップを更に有する請求項56記載の配信方法。   57. The delivery method of claim 56, further comprising programming a routing box in the network to perform the receiving step, the examining step, and the routing step. 上記検査ステップは、上記パケットをどのようにルーティングするかを決定するために用いる属性を検査するステップを含むことを特徴とする請求項56記載の配信方法。   57. The distribution method according to claim 56, wherein the checking step includes a step of checking an attribute used to determine how to route the packet. 上記検査ステップをルーティングボックスにおいて実行するステップを更に有する請求項56記載の配信方法。   57. The distribution method according to claim 56, further comprising the step of executing the inspection step in a routing box. 上記複数のキャッシュサーバは、第1のレベルのキャッシュサーバであり、当該配信方法は、コンテンツベースのルーティングを用いて、キャッシングされたデジタルコンテンツを第2のレベルのキャッシュサーバに転送するステップを更に有することを特徴とする請求項55記載の配信方法。   The plurality of cache servers are first-level cache servers, and the distribution method further includes transferring cached digital content to the second-level cache server using content-based routing. 56. The distribution method according to claim 55. 上記要求されたデジタルコンテンツが上記第2のレベルのキャッシュサーバに格納されているか否かを判定するステップを更に有する請求項63記載の配信方法。   64. The distribution method according to claim 63, further comprising the step of determining whether or not the requested digital content is stored in the second level cache server. 上記判定に基づいて、上記受信されたユーザ購読予約を上記第1のレベルのキャッシュサーバに転送するステップを更に有する請求項64記載の配信方法。   68. The distribution method according to claim 64, further comprising the step of transferring the received user subscription reservation to the first level cache server based on the determination. 上記転送するステップは、受信されたユーザ購読予約に関する履歴に基づいて、コンテンツベースのルーティングを用いて、上記キャッシングされたデジタルコンテンツを上記第2のレベルのキャッシュサーバに転送することを特徴とする請求項63記載の配信方法。   The forwarding step forwards the cached digital content to the second level cache server using content-based routing based on the received history of user subscriptions. The delivery method according to Item 63. ネットワークにおいて、サービス品質保証に基づいてパケットをルーティングするルーティング方法において、
ヘッダセクションと、ペイロードセクションとを有するパケットを受け取る受信ステップと、
ネットワークコアにおいて、上記パケットをどのようにルーティングするかを決定するために上記パケットのペイロードセクションを検査する検査ステップと、
上記パケットのためのサービス品質保証を判定する判定ステップと、
上記検査及び上記サービス品質保証に基づいて、上記パケットを選択的にルーティングするルーティングステップとを有するルーティング方法。
In a routing method for routing packets based on quality of service guarantees in a network,
Receiving a packet having a header section and a payload section;
An inspection step inspecting a payload section of the packet to determine how to route the packet at the network core;
A determination step of determining a quality of service guarantee for the packet;
And a routing step for selectively routing the packet based on the inspection and the quality of service guarantee.
上記検査ステップは、コンテンツ述語情報を対応するネットワークの宛先に関連付ける構造において、上記ペイロードセクションの情報が該コンテンツ述語情報に一致するか否かを判定するステップを含むことを特徴とする請求項67記載のルーティング方法。   68. The checking step comprises determining whether the information in the payload section matches the content predicate information in a structure associating the content predicate information with a corresponding network destination. Routing method. 上記ネットワークコア内のルータで上記検査を実行するステップを更に有する請求項67記載のルーティング方法。   68. A routing method according to claim 67, further comprising the step of performing said inspection at a router in said network core. 上記検査ステップは、上記ペイロードセクション内の情報にフィルタをかけるステップを含むことを特徴とする請求項67記載のルーティング方法。   68. A routing method according to claim 67, wherein said examining step includes filtering information in said payload section. 上記検査を実行するために用いられるフィルタを上記ネットワーク内のルータに伝播するステップを更に有する請求項70記載のルーティング方法。   The routing method according to claim 70, further comprising the step of propagating a filter used to perform said inspection to a router in said network. 上記受信ステップ、検査ステップ及びルーティングステップを実行するために上記ネットワーク内のルータをプログラミングするステップを更に有する請求項67記載のルーティング方法。   68. The routing method of claim 67, further comprising the step of programming a router in the network to perform the receiving step, the checking step and the routing step. 上記検査ステップは、上記パケットをどのようにルーティングするか又は上記パケットを削除するか否かを決定するために用いる属性を検査するステップを含むことを特徴とする請求項67記載のルーティング方法。   68. A routing method according to claim 67, wherein the checking step includes the step of checking attributes used to determine how to route the packet or whether to delete the packet. ネットワークにおいて、メッセージをルーティングするルーティング方法において、
ヘッダセクションと、少なくとも1つのサブジェクトと、少なくとも1つの属性とを含むメッセージを受け取る受信ステップと、
上記メッセージから上記サブジェクトと上記属性を読み出すサブジェクト/属性読出ステップと、
上記サブジェクトに基づいて購読予約を読み出す購読予約読出ステップと、
上記メッセージのサービス品質保証を判定するステップと、
ネットワークコアにおいて、上記購読予約に上記属性を適用し、上記メッセージをどのようにルーティングするかを決定する適用ステップと、
上記適用と上記サービス品質保証とに基づいて、上記メッセージを選択的にルーティングするステップとを有するルーティング方法。
In a routing method for routing messages in a network,
Receiving a message including a header section, at least one subject, and at least one attribute;
A subject / attribute read step for reading the subject and the attribute from the message;
A subscription reservation reading step for reading a subscription reservation based on the subject;
Determining a quality of service guarantee for the message;
In the network core, applying the attribute to the subscription reservation and determining how to route the message;
A routing method comprising: selectively routing the message based on the application and the quality of service guarantee.
上記購読予約読出ステップは、上記購読予約に対応するフィルタを読み出すステップを含むことを特徴とする請求項74記載のルーティング方法。   The routing method according to claim 74, wherein the subscription reservation reading step includes a step of reading a filter corresponding to the subscription reservation. 上記属性が上記購読予約を満たす場合、上記メッセージをルーティングするステップを更に有する請求項74記載のルーティング方法。   The routing method of claim 74, further comprising the step of routing the message if the attribute satisfies the subscription. 上記属性が上記購読予約を満たさない場合、上記メッセージを削除するステップを更に有する請求項74記載のルーティング方法。   The routing method of claim 74, further comprising the step of deleting the message if the attribute does not satisfy the subscription. 複数の購読予約に対応する複数のフィルタを読み出すステップと、
上記メッセージから複数の属性を読み出すステップと、
上記各フィルタに上記各属性を適用し、対応する購読予約のいずれかが満たされているか否かを判定するステップと、
上記購読予約のいずれかが満たされているか否かに基づいて、上記メッセージを選択的にルーティングするステップとを有する請求項74記載のルーティング方法。
Retrieving a plurality of filters corresponding to a plurality of subscriptions;
Reading a plurality of attributes from the message;
Applying each of the attributes to each of the filters and determining whether any of the corresponding subscription reservations are satisfied;
75. The routing method of claim 74, further comprising the step of selectively routing the message based on whether any of the subscriptions are satisfied.
ネットワークコア内のルータにおいて、上記検査ステップを実行するステップを有する請求項74記載のルーティング方法。   The routing method according to claim 74, further comprising a step of executing the checking step in a router in the network core. ネットワークにおいて、サービス品質保証に基づいてパケットをルーティングするルーティング装置において、
ヘッダセクションと、ペイロードセクションとを有するパケットを受け取る受信モジュールと、
ネットワークコアにおいて、上記パケットをどのようにルーティングするかを決定するために上記パケットのペイロードセクションを検査する少なくとも1つの検査モジュールと、
上記パケットのためのサービス品質保証を判定する判定モジュールと、
上記検査モジュール及び判定モジュールによる判定の結果得られた検査結果及びサービス品質保証に基づいて、上記パケットを選択的にルーティングするルーティングモジュールとを備えるルーティング装置。
In a routing device that routes packets based on service quality assurance in a network,
A receiving module for receiving a packet having a header section and a payload section;
At least one inspection module that inspects a payload section of the packet to determine how to route the packet at a network core;
A determination module for determining a quality of service guarantee for the packet;
A routing device comprising: a routing module that selectively routes the packet based on the inspection result and the service quality assurance obtained as a result of the determination by the inspection module and the determination module.
上記検査モジュールは、コンテンツ述語情報を対応するネットワークの宛先又は対応するルータ内処理を支配する規則に関連付ける構造において、上記ペイロードセクションの情報が該コンテンツ述語情報に一致するか否かを判定するモジュールを備えることを特徴とする請求項80記載のルーティング装置。   The inspection module is a module for determining whether or not the information of the payload section matches the content predicate information in a structure in which the content predicate information is associated with a corresponding network destination or a rule governing the corresponding in-router processing The routing device according to claim 80, comprising: 上記ネットワークコア内のルータで上記検査を実行するモジュールを更に備える請求項80記載のルーティング装置。   81. The routing device according to claim 80, further comprising a module that performs said inspection at a router in said network core. 上記検査モジュールは、上記ペイロードセクションの情報をフィルタにかけるモジュールを更に備えることを特徴とする請求項80記載のルーティング装置。   81. The routing device of claim 80, wherein the inspection module further comprises a module for filtering the payload section information. 上記検査を実行するために用いられる上記フィルタを上記ネットワーク内のルータに伝播するモジュールを更に備える請求項83記載のルーティング装置。   84. The routing device of claim 83, further comprising a module that propagates the filter used to perform the inspection to a router in the network. 上記受信、検査及びルーティングを実行するために上記ネットワーク内のルータをプログラミングするモジュールを更に備える請求項80記載のルーティング装置。   81. The routing device of claim 80, further comprising a module for programming a router in the network to perform the reception, inspection and routing. 当該ルーティング装置は、ルータであることを特徴とする請求項80記載のルーティング装置。   The routing device according to claim 80, wherein the routing device is a router. ネットワークにおいて、メッセージをルーティングするルーティング装置において、
ヘッダセクションと、少なくとも1つのサブジェクトと、少なくとも1つの属性とを有するメッセージを受け取るための受信モジュールと、
上記メッセージから上記サブジェクトと上記属性を読み出すサブジェクト/属性読出モジュールと、
上記サブジェクトに基づいて購読予約を読み出す購読予約読出モジュールと、
ネットワークコアにおいて、上記購読予約に上記属性を適用し、上記メッセージを購読者にどのようにルーティングするかを決定する適用モジュールと、
上記パケットのためのサービス品質保証を判定する判定モジュールとを備えるルーティング装置。
In a routing device for routing messages in a network,
A receiving module for receiving a message having a header section, at least one subject, and at least one attribute;
A subject / attribute reading module for reading the subject and the attribute from the message;
A subscription reading module that reads subscription subscriptions based on the subject;
In the network core, an application module that applies the attributes to the subscription and determines how to route the message to a subscriber;
A routing module comprising: a determination module for determining a quality of service guarantee for the packet.
上記購読予約読出モジュールは、上記購読予約に対応するフィルタを読み出すモジュールを備えることを特徴とする請求項87記載のルーティング装置。   88. The routing device according to claim 87, wherein the subscription reservation reading module comprises a module for reading a filter corresponding to the subscription reservation. 上記属性が上記購読予約を満たす場合、上記サービス品質保証に基づいて、上記メッセージを選択的にルーティングするモジュールを更に有する請求項87記載のルーティング装置。   90. The routing device of claim 87, further comprising a module that selectively routes the message based on the quality of service guarantee when the attribute satisfies the subscription reservation. 上記属性が全ての購読予約を満たさない場合、上記メッセージを削除するモジュールを更に有する請求項87記載のルーティング装置。   88. The routing device of claim 87, further comprising a module that deletes the message if the attribute does not satisfy all subscriptions. 複数の購読予約に対応する複数のフィルタを読み出すモジュールと、
上記メッセージから複数の属性を読み出すモジュールと、
上記各フィルタに上記各属性を適用し、対応する購読予約のいずれかが満たされているか否かを判定するモジュールと、
上記購読予約のいずれかが満たされているか否かに基づいて上記メッセージを選択的にルーティングするモジュールとを有する請求項87記載のルーティング装置。
A module that retrieves multiple filters for multiple subscriptions;
A module that reads multiple attributes from the message, and
A module that applies each attribute to each of the filters and determines whether any of the corresponding subscription reservations are satisfied;
88. The routing device of claim 87, further comprising a module for selectively routing the message based on whether any of the subscription reservations are satisfied.
上記ネットワークコア内のルータにおいて、上記フィルタリングを実行するための1つ以上のモジュールを更に備える請求項87記載のルーティング装置。   88. The routing device of claim 87, further comprising one or more modules for performing the filtering at a router in the network core. 当該装置は、ルータであることを特徴とする請求項87記載のルーティング装置。   88. A routing device according to claim 87, wherein the device is a router. マルチキャストネットワークにおいて、データのパケットをルーティング及びキャッシングするルーティング/キャッシング方法において、
ヘッダセクションと、ペイロードセクションとを有するパケットを受け取る受信ステップと、
ネットワークコアにおいて、上記パケットを購読者にどのようにルーティングするかを決定するために上記パケットのペイロードセクションを検査する検査ステップと、
上記検査に基づいて、上記パケットを選択的にルーティングするルーティングステップと、
上記ネットワークコアにおいて、上記パケットからのデータをローカルにキャッシングするステップとを有するルーティング/キャッシング方法。
In a routing / caching method for routing and caching packets of data in a multicast network,
Receiving a packet having a header section and a payload section;
An inspection step inspecting the payload section of the packet to determine how to route the packet to a subscriber at the network core;
A routing step for selectively routing the packet based on the inspection;
A routing / caching method comprising: locally caching data from the packet in the network core.
上記検査をルータで実行するステップを更に有する請求項94記載のルーティング/キャッシング方法。   95. The routing / caching method according to claim 94, further comprising the step of performing said inspection at a router. 上記検査ステップは、上記ペイロードセクション内の情報にフィルタを適用するステップを含むことを特徴とする請求項94記載のルーティング/キャッシング方法。   95. The routing / caching method according to claim 94, wherein said examining step includes applying a filter to information in said payload section. 上記検査を実行するために用いられるフィルタを上記ネットワーク内のルータに伝播するステップを更に有する請求項96記載のルーティング/キャッシング方法。   97. A routing / caching method according to claim 96, further comprising the step of propagating a filter used to perform said inspection to a router in said network. 上記受信ステップ、検査ステップ及びルーティングステップを実行するために上記ネットワーク内のルータをプログラミングするステップを更に有する請求項94記載のルーティング/キャッシング方法。   95. A routing / caching method according to claim 94, further comprising the step of programming a router in said network to perform said receiving step, examining step and routing step. 上記検査ステップは、上記パケットをどのようにルーティングするかを決定するために用いる属性を検査するステップを含むことを特徴とする請求項94記載のルーティング/キャッシング方法。   95. A routing / caching method according to claim 94, wherein said checking step includes the step of checking attributes used to determine how to route said packet. 上記キャッシングされたデータに時間的なマークを付すステップを更に有する請求項94記載のルーティング/キャッシング方法。   95. The routing / caching method according to claim 94, further comprising the step of marking the cached data temporally. 上記キャッシングされたデータにインデクスを付すステップを更に有する請求項94記載のルーティング/キャッシング方法。   95. The routing / caching method of claim 94, further comprising the step of indexing the cached data. データ要求を受信するステップと、
上記キャッシングされたデータが上記データ要求を満たすか否かを判定するステップとを更に有する請求項94記載のルーティング/キャッシング方法。
Receiving a data request;
95. The routing / caching method of claim 94, further comprising: determining whether the cached data satisfies the data request.
エッジルーティングノードにおいて、上記パケットからのデータをローカルにキャッシングするステップを更に有する請求項94記載のルーティング/キャッシング方法。   95. The routing / caching method according to claim 94, further comprising the step of locally caching data from said packet at an edge routing node. タイムフレームTの経過後に、上記キャッシングされたデータを削除するステップを更に有する請求項94記載のルーティング/キャッシング方法。   95. The routing / caching method according to claim 94, further comprising the step of deleting the cached data after elapse of time frame T. データのパケットをルーティング及びキャッシングするネットワークにおいて、
ヘッダセクションと、ペイロードセクションとを有するパケットを受け取るエッジルーティングノードを備え、該エッジルーティングノードは、
ネットワークコアにおいて、上記パケットを購読者にどのようにルーティングするかを決定するために上記パケットのペイロードセクションを検査するための命令と、上記検査に基づいて、上記パケットを選択的にルーティングするための命令とを有し、上記受け取ったパケットをルーティングするインテリジェントルータと、
上記インテリジェントルータに動作可能に接続され、上記パケットからデータをローカルキャッシュにローカルにキャッシングするための命令を有するキャッシュマネージャと、
上記パケットを受け取り、ルーティングする1つ以上のコアルーティングノードとを備えるネットワーク。
In a network that routes and caches packets of data,
An edge routing node that receives a packet having a header section and a payload section, the edge routing node comprising:
In the network core, instructions for examining the payload section of the packet to determine how to route the packet to a subscriber, and for selectively routing the packet based on the examination An intelligent router for routing the received packet;
A cache manager operatively connected to the intelligent router and having instructions for caching data from the packet locally to a local cache;
A network comprising one or more core routing nodes that receive and route the packets.
上記エッジルーティングノードに動作可能に接続され、上記キャッシングされたデータの位置を判定する命令と、上記ローカルキャッシュから上記キャッシングされたデータを読み出す命令と、上記読み出したキャッシングされたデータを処理するための命令とを有するエージェントを更に備える請求項105記載のネットワーク。   An instruction operatively connected to the edge routing node for determining the location of the cached data; an instruction for reading the cached data from the local cache; and processing the read cached data 106. The network of claim 105, further comprising an agent having instructions. 上記1つ以上のコアルーティングノードの1つは、上記エッジルーティングノードからアップストリームにあり、
上記アップストリームのコアルーティングノードは、
ネットワークコアにおいて、上記パケットを購読者にどのようにルーティングするかを決定するために上記パケットのペイロードセクションを検査する命令と、上記検査に基づいて、上記パケットを選択的にルーティングするための命令とを有し、上記受け取ったパケットをルーティングするインテリジェントルータと、
上記インテリジェントルータに動作可能に接続され、上記パケットからデータをローカルキャッシュにローカルにキャッシングするための命令を有するキャッシュマネージャとを備えることを特徴とする請求項105記載のネットワーク。
One of the one or more core routing nodes is upstream from the edge routing node;
The upstream core routing node is
In the network core, instructions to inspect the payload section of the packet to determine how to route the packet to a subscriber, and instructions to selectively route the packet based on the inspection An intelligent router for routing the received packet,
106. The network of claim 105, further comprising: a cache manager operably connected to the intelligent router and having instructions for locally caching data from the packets into a local cache.
複数のチャンネルのプロパティを提供する複数のチャンネルマネージャを更に備える請求項105記載のネットワーク。   106. The network of claim 105, further comprising a plurality of channel managers that provide a plurality of channel properties. 上記キャッシュマネージャは、
上記キャッシングされたデータに時間的なマークを付すための命令を更に有することを特徴とする請求項105記載のネットワーク。
The above cache manager
106. The network of claim 105, further comprising instructions for marking the cached data temporally.
上記キャッシュマネージャは、上記キャッシングされたデータにインデクスを付すための命令を更に有することを特徴とする請求項105記載のネットワーク。   106. The network of claim 105, wherein the cache manager further comprises instructions for indexing the cached data. 上記キャッシュマネージャは、
データ要求を受信するための命令と、
上記キャッシングされたデータが上記データ要求を満たすか否かを判定するための命令とを更に有することを特徴とする請求項105記載のネットワーク。
The above cache manager
Instructions for receiving the data request;
106. The network of claim 105, further comprising instructions for determining whether the cached data satisfies the data request.
マルチキャストネットワークにおいて、データのパケットをルーティング及びキャッシングするルーティング/キャッシング装置において、当該ルーティング/キャッシング装置は、
プロセッサと、
ヘッダセクションと、ペイロードセクションとを有するパケットを受け取るための命令と、
ネットワークコアにおいて、上記パケットを購読者にどのようにルーティングするかを決定するために上記パケットのペイロードセクションを検査するための命令と、
上記検査に基づいて、上記パケットを選択的にルーティングするための命令と、
上記ネットワークコアにおいて、上記パケットからのデータをローカルにキャッシングするための命令とを有するルーティング/キャッシング装置。
In a routing / caching device for routing and caching data packets in a multicast network, the routing / caching device includes:
A processor;
Instructions for receiving a packet having a header section and a payload section;
Instructions at the network core to examine the payload section of the packet to determine how to route the packet to a subscriber;
Instructions for selectively routing the packet based on the inspection;
A routing / caching device having instructions for locally caching data from the packet in the network core.
上記プロセッサは、
上記検査するための命令と、選択的にルーティングするための命令とを実行する第1のプロセッサと、
上記ローカルにキャッシングするための命令を実行する第2のプロセッサとを含むことを特徴とする請求項112記載のルーティング/キャッシング装置。
The processor
A first processor that executes instructions for checking and instructions for selectively routing;
113. The routing / caching apparatus of claim 112, further comprising a second processor that executes instructions for locally caching.
JP2004520021A 2002-07-08 2003-07-08 Caching including packet inspection for payload inspection, alert service, digital content delivery, and quality of service management, and selective multicasting in publish-subscribe networks Pending JP2005532748A (en)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US39463102P 2002-07-08 2002-07-08
US39464102P 2002-07-08 2002-07-08
US39456102P 2002-07-08 2002-07-08
US39471402P 2002-07-08 2002-07-08
PCT/US2003/021338 WO2004006486A2 (en) 2002-07-08 2003-07-08 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

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2009296288A Division JP2010148118A (en) 2002-07-08 2009-12-25 Routing method, routing apparatus, routing/caching method, routing/caching apparatus, and network

Publications (1)

Publication Number Publication Date
JP2005532748A true JP2005532748A (en) 2005-10-27

Family

ID=30119330

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2004520021A Pending JP2005532748A (en) 2002-07-08 2003-07-08 Caching including packet inspection for payload inspection, alert service, digital content delivery, and quality of service management, and selective multicasting in publish-subscribe networks
JP2009296288A Pending JP2010148118A (en) 2002-07-08 2009-12-25 Routing method, routing apparatus, routing/caching method, routing/caching apparatus, and network

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2009296288A Pending JP2010148118A (en) 2002-07-08 2009-12-25 Routing method, routing apparatus, routing/caching method, routing/caching apparatus, and network

Country Status (6)

Country Link
EP (1) EP1535157A4 (en)
JP (2) JP2005532748A (en)
KR (1) KR100985237B1 (en)
CN (1) CN1701304B (en)
AU (1) AU2003256463A1 (en)
WO (1) WO2004006486A2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007184724A (en) * 2006-01-05 2007-07-19 Fujitsu Ltd Communication control method, network, and network apparatus
JP2008526058A (en) * 2004-12-23 2008-07-17 テレフオンアクチーボラゲット エル エム エリクソン(パブル) How to notify an emergency to multiple mobile terminals
WO2022180690A1 (en) * 2021-02-24 2022-09-01 日本電信電話株式会社 Communication system, communication device, data distribution method, and program

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0629764A (en) * 1991-07-16 1994-02-04 Nec Ic Microcomput Syst Ltd Wind noise reduction microphone amplifier
JP4614128B2 (en) 2004-12-10 2011-01-19 日本電気株式会社 Packet delivery system, PAN registration device, PAN management device, and packet transfer device
US20070005725A1 (en) * 2005-06-30 2007-01-04 Morris Robert P Method and apparatus for browsing network resources using an asynchronous communications protocol
CN100456753C (en) * 2005-07-13 2009-01-28 华为技术有限公司 Message matching method and system
CN1925482B (en) * 2005-09-01 2013-03-27 中兴通讯股份有限公司 Transforming method and device for human-machine order format
US9686183B2 (en) 2005-12-06 2017-06-20 Zarbaña Digital Fund Llc Digital object routing based on a service request
US7894447B2 (en) * 2005-12-06 2011-02-22 Lippershy Celestial Llc Digital object routing
US8194701B2 (en) 2005-12-06 2012-06-05 Lippershy Celestial Llc System and/or method for downstream bidding
US8055897B2 (en) * 2005-12-06 2011-11-08 Lippershy Celestial Llc Digital object title and transmission information
US8014389B2 (en) 2005-12-06 2011-09-06 Lippershy Celestial Llc Bidding network
US9330190B2 (en) 2006-12-11 2016-05-03 Swift Creek Systems, Llc Method and system for providing data handling information for use by a publish/subscribe client
KR20120002424A (en) 2010-06-30 2012-01-05 한국전자통신연구원 Communication node and communication method
WO2012002726A2 (en) * 2010-06-30 2012-01-05 한국전자통신연구원 Communication node and communication method
CN101969469B (en) 2010-10-25 2013-11-06 华为技术有限公司 Callback processing method and device in telecom capability opening
IN2014KN01349A (en) * 2011-11-29 2015-10-16 Ericsson Telefon Ab L M
CN103166851B (en) * 2011-12-16 2016-06-15 中国电信股份有限公司 The transfer processing method of internet information and system
US9026410B2 (en) * 2012-03-16 2015-05-05 The Boeing Company System and method for rapid management of logic formulas
KR101487859B1 (en) 2014-01-15 2015-02-02 주식회사 이디엄 Method for Collecting UDP Packet When Java Program Is Being Executed
CN106455140A (en) * 2014-01-24 2017-02-22 北京奇虎科技有限公司 Attribute information display system and router
CN104811740B (en) * 2015-04-29 2019-01-08 北京奇艺世纪科技有限公司 A kind of distribution method of video file, system and device
JP6665697B2 (en) 2016-06-09 2020-03-13 富士通株式会社 Past information providing program, past information providing method, and past information providing device
US10824598B2 (en) * 2018-08-07 2020-11-03 Dell Products L.P. Handling file commit and commit-delete operations in an overlay optimizer
JP2020126283A (en) * 2019-01-31 2020-08-20 有二 菱沼 Corporate information transmission/reception system
CN112383582A (en) * 2020-10-09 2021-02-19 爱普(福建)科技有限公司 Management method and system for real-time data of edge layer
JP2022164421A (en) * 2021-04-16 2022-10-27 Jcc株式会社 Broadcast recording apparatus and program therefor
US20230093942A1 (en) * 2021-09-24 2023-03-30 Cisco Technology, Inc. Providing connection data to network devices for content inspection and replay attack mitigation
CN114900555A (en) * 2021-12-14 2022-08-12 合肥哈工轩辕智能科技有限公司 Data distribution method and device based on lossless compression algorithm

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1997023096A1 (en) * 1995-12-15 1997-06-26 Bell Communications Research, Inc. Systems and methods employing video combining for intelligent transportation applications
US5873084A (en) * 1996-01-18 1999-02-16 Sun Microsystems, Inc. Database network connectivity product
GB2350758A (en) * 1999-06-04 2000-12-06 Ibm Message broker providing a publish/subscribe sevice and method of processing messages in a publish/subscribe environment
JP3685651B2 (en) * 1999-06-04 2005-08-24 沖電気工業株式会社 Interconnect apparatus and active QoS mapping method
US6523068B1 (en) * 1999-08-27 2003-02-18 3Com Corporation Method for encapsulating and transmitting a message includes private and forwarding network addresses with payload to an end of a tunneling association
GB2354349A (en) * 1999-09-16 2001-03-21 Ibm Event notification data processing with command and command notification combined into a single event
US7283502B1 (en) * 2000-09-21 2007-10-16 Lucent Technologies Inc. Enhancement of framing protocol frame format to support quality of service
US7046680B1 (en) * 2000-11-28 2006-05-16 Mci, Inc. Network access system including a programmable access device having distributed service control
US20020087881A1 (en) * 2000-12-29 2002-07-04 Shlomi Harif System, method and program for identifying and binding a process in a heterogeneous network
US7325249B2 (en) * 2001-04-30 2008-01-29 Aol Llc Identifying unwanted electronic messages

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008526058A (en) * 2004-12-23 2008-07-17 テレフオンアクチーボラゲット エル エム エリクソン(パブル) How to notify an emergency to multiple mobile terminals
JP4787267B2 (en) * 2004-12-23 2011-10-05 テレフオンアクチーボラゲット エル エム エリクソン(パブル) How to notify an emergency to multiple mobile terminals
JP2007184724A (en) * 2006-01-05 2007-07-19 Fujitsu Ltd Communication control method, network, and network apparatus
JP4680068B2 (en) * 2006-01-05 2011-05-11 富士通株式会社 Communication control method, network and network device
WO2022180690A1 (en) * 2021-02-24 2022-09-01 日本電信電話株式会社 Communication system, communication device, data distribution method, and program

Also Published As

Publication number Publication date
WO2004006486A2 (en) 2004-01-15
KR20050017108A (en) 2005-02-21
CN1701304A (en) 2005-11-23
JP2010148118A (en) 2010-07-01
CN1701304B (en) 2010-05-05
WO2004006486A3 (en) 2004-05-27
EP1535157A2 (en) 2005-06-01
AU2003256463A8 (en) 2004-01-23
EP1535157A4 (en) 2010-09-08
AU2003256463A1 (en) 2004-01-23
KR100985237B1 (en) 2010-10-04

Similar Documents

Publication Publication Date Title
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
US7672275B2 (en) Caching with selective multicasting in a publish-subscribe network
US7376092B2 (en) Method and apparatus for implementing persistent and reliable message delivery
KR100971506B1 (en) Method and apparatus for reliable and efficient content-based routing and query and response in a publish-subscribe network
US7551629B2 (en) Method and apparatus for propagating content filters for a publish-subscribe network
US7631045B2 (en) Content router asynchronous exchange
US20040073701A1 (en) Packet routing via payload inspection for quality of service management
US20030195946A1 (en) Method and apparatus for reliable publishing and subscribing in an unreliable network
US20040083305A1 (en) Packet routing via payload inspection for alert services
US7653753B2 (en) Method and apparatus for content-based packet routing using compact filter storage and off-line pre-computation
CN105227341A (en) For the system and method by content center network management devices
US20040078450A1 (en) Packet routing via payload inspection for digital content delivery
EP3337103B1 (en) Scalable messaging system
EP2113150A2 (en) Improved distribution of content on a network
KR20120074300A (en) Hierarchical publish and subscribe system
WO2008016695A2 (en) Improved distribution of content and advertisement
JP2004511116A (en) System for network addressing
WO2007011482A1 (en) Content router forwarding
TW201013420A (en) Methods for collecting and analyzing network performance data
WO2007011483A2 (en) Content router repository
US6925488B2 (en) Distributed intelligent information technology operations automation
JP2008211835A (en) Packet routing via payload inspection and subscription processing in publish-subscribe network
JP4429173B2 (en) Method and computer system for triggering action based on digital communication data
US20170257444A1 (en) Method and system for collecting historical network information in a content centric network
US20030149771A1 (en) Remote services system back-channel multicasting

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060619

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080818

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081224

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090825

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091225