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 PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/16—Multipoint routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/52—Multiprotocol routers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling 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/61—Scheduling 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling 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/63—Routing a service request depending on the request content or context
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/185—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with management of multicast group membership
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/1895—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast for short real-time information, e.g. alarms, notifications, alerts, updates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/565—Conversion or adaptation of application format or content
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/329—Intralayer 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
本発明は、引用により本願に援用される、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
各購読予約は、サブジェクトフィルタと属性フィルタとをカプセル化している。ルータは、サブジェクトフィルタを一致するサブジェクトの組に拡張し、又はサブジェクト毎に属性フィルタを併合することができる。インテリジェントルータは、通知のサブジェクトに対してサブジェクトフィルタを評価し、及び通知における属性値に対して属性フィルタを評価する。サブジェクトフィルタのための構文では、ワイルドカードを用いることができ、属性フィルタのための構文では、論理式(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
ネットワークコアにおける、このようなインテリジェントなコンテンツベースのルーティングは、例えば、警告及び更新のための実時間データ配信を実現する。警告のための実時間データ配信の具体例としては、以下に限定されるものではないが、例えば、株価、交通情報、ニュース、旅行、天気、不正検出、セキュリティ、テレマティックス、ファクトリオートメーション、サプライチェーン管理及びネットワークマネージメント等がある。更新のための実時間データ配信の具体例としては、以下に限定されるものではないが、例えば、ソフトウェア更新、アンチウィルス更新、映画及び音楽配信、ワークフロー、ストレージ管理及びキャッシュ一貫性(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.
表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.
述語は、購読予約のための論理式を提供し、サブジェクトは、購読予約に関するチャンネルを示す。購読予約は、この他の様々な手法で表現することができる。論理式は、このような手法の一例であり、これを用いることにより、コンテンツベースのルーティングのために、購読予約をサブジェクトフィルタと属性フィルタに変換するための機能を容易に実現することができる。これに代えて、サブジェクトを参照することなく購読予約を表現することもできるが、サブジェクト又はチャンネル(後に詳細に説明する。)を用いることにより、属性を解釈し、フィルタを属性に適用するためのコンテキストが実現される。 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
チャンネルは、例えば、分散型方式によって実現された論理的なマルチキャスト接続の関連する組を含むことができる。この例示的な実施例におけるチャンネルとは、コンテンツを交換するために発行者と購読者に共用される論理的に関連するネットワーク資源の集合である。コンテンツは、チャンネルサブジェクトネームスペースに従って分類され、リソースは、チャンネルマネージャが提供するチャンネルサービスを介して管理され、制御され、供給される。複数のチャンネルが同じリソースを共有してもよい。チャンネルは、スケーラビリティが高いディレクトリサービスを提供でき、このサービスは、以下に限定されるものではないが、発行者及び購読者情報、認証及び認可情報メッセージの種類、管理情報、課金処理と支払い情報等が含まれる。また、例えば、チャンネルは、提供できる持続的なスルーキャッシング(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)
図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
図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
購読者装置122又は購読者装置140は、例えば、1つ以上のアプリケーション126とエージェントアプリケーション128を保存するメモリ124と、不揮発性記憶装置である補助記憶装置機器130と、情報又はコマンドを入力するための入力装置132と、メモリ124に保存されている又は他のストレージ装置から受け取ったアプリケーションを実行するためのプロセッサ134と、情報を出力するための出力装置136と、情報を視覚的に表示するための表示装置138とを備えている。発行者装置及び購読者装置は、如何なる構成であってもよく、上述したものとは異なる構成要素を備えていてもよく、構成要素は、上述したものより多くても少なくてもよい。
The
発行者装置100、118は、上述したネットワーク120等のネットワークを介して購読者装置122、140に接続されるネットワーク120は、ネットワークコアにおいて、パケット又はメッセージを介して、データ又はコンテンツの分配型ルーティングを実現するためのインテリジェントルータを含んでいる。ここでは、それぞれ2つの発行者装置及び購読者装置のみを示しているが、より多くの発行者装置及び購読者装置を含むようにネットワーク120をスケーリングできる。発行者装置及び購読者装置は、プロセッサにより制御される如何なる装置として実現してもよく、これらの装置としては、以下に限定されるものではないが、例えば、サーバ、パーソナルコンピュータ、ノートブックコンピュータ、携帯情報端末、電話、携帯電話、ページャ、又はこの他の機器が含まれる。インテリジェントルータを含むネットワーク120は、有線機器、無線機器又はその両方を接続する如何なる有線又は無線の分散型ネットワークであってもよい。また、ネットワーク120としては、潜在的に既存の又は従来のネットワークインフラストラクチャを用いることができる。
The
図6は、インテリジェントルータのためのチャンネルマネージャ150の構成を示している。この実施例では、チャンネルマネージャ150は、複数のサーバ152、154、156によって実現されている。各サーバは、それぞれローカルのストレジ装置158、160、162を備えている。インテリジェントルータ164、166、168は、チャンネルマネージャから特定のチャンネルに関する情報を得る。また、チャンネルマネージャは、データ持続(data persistence)、障害迂回機能(fail over functions)及び他の機能を提供することができる。これにより、チャンネル管理プログラムは、ネットワークの任意の場所において、例えばチャンネル関連情報、データ持続のためのプロパティ、発行者及び購読者のためのユーザ情報、インフラストラクチャ情報等を特定するデータベース又はデータベースの組を含むチャンネルサービスを提供するインフラストラクチャ情報は、例えばインテリジェントルータ及びこれらを接続するトンネルの識別情報、チャンネルのサブジェクト、チャンネルの属性(各属性の名称と種類)等を含むことができる。また、パケット又はメッセージは、固定的な属性及び可変の属性の識別情報を含むチャンネル関連情報を伝送することができる。
FIG. 6 shows the configuration of the
ユーザは、オンライン状態で、チャンネル情報をダウンロードすることができる。例えば、ユーザは、ユーザ名とパスワードを用いて、自らを登録することができる。ユーザのログオンが認証されると、ユーザは、チャンネルを開き(呼び出し)、チャンネルマネージャからチャンネルに関する情報を検索できる。発行者は、コンテンツを発行する際にこの情報を用いることができ、購読者は、購読予約を入力及び登録する際にこの情報を用いることができる。 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
図7は、インテリジェントルータを有するネットワークに接続するためのユーザ装置又は機器におけるソフトウェアコンポーネントのスタック180の具体例を示している。ユーザ装置は、発行者、購読者又はこれらの両方として用いることができ、ユーザ装置は、具体例として先に例示した様々な機器を含むことができる。スタック180は、1つ以上のユーザアプリケーション182を含むことができ、ユーザアプリケーション182は、ユーザからの購読予約の受信、発行者からのチャンネル情報の受信又は発行すべきコンテンツ又はデータの受信に用いることができる。また、ユーザアプリケーション182は、ユーザ装置又は機器によって実行される他の如何なる種類のアプリケーションを含んでいてもよい。
FIG. 7 illustrates a specific example of a
またスタック180は、エージェント184、イベントライブラリ186、キャッシュライブラリ188、チャンネルライブラリ190、メッセージングライブラリ192、ディスパッチャライブラリ194を含んでいてもよい。エージェント184は、ネットワーク接続の確立又はこの他の機能を提供し、表3は、エージェント184によって実現されるコマンドの具体例を示しており、これらは、プロキシコマンド又は他の種類のコマンドとして用いることができる。イベントライブラリ186は、ユーザ装置に関するイベント又はこの他のイベント又は情報のログを記録する。キャッシュライブラリ188は、データのローカルなキャッシング機能を提供する。チャンネルライブラリ190は、チャンネルの識別情報と、そのチャンネルに関する情報とを保存する。ディスパッチャライブラリ194は、制御パス196、チャンネルマネージャ198、1つ以上のインテリジェントルータ200への接続を提供し、及び表4に例示的に示す機能を含むことができる。メッセージングライブラリ192は、データパス204への接続を提供する。
The
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.
図8は、上述したようなインテリジェントルータ及び図4に示すインテリジェントルータ92等のインテリジェントルータのための例示的なソフトウェアコンポーネント210を示している。ソフトウェアコンポーネント210は、例えば、メモリ94に格納され、インテリジェントルータ92のプロセッサ93によって実行することができる。コンポーネント210は、例えばフィルタリングデーモン212、ディスパッチャ214、ルーティングデーモン216、キャッシュマネージャ218を備える。フィルタリングデーモン212は、後述するように、購読予約のためのコンテンツを処理するための、コンテンツベースのルーティングにおけるルーティング規則に基づくフィルタリング機能を提供する。ディスパッチャ214は、パス220を介してフィルタを伝播するために必要である制御メッセージの通信を担い、また、ディスパッチャ214は、ユーザのためのエントリの単一のポイント及びチャンネルマネージャを有する1個の安全なソケットを提供し、ネットワークのセキュリティを向上させる。換言すればこの具体例では、ユーザは、チャンネルマネージャと直接通信を行うことがない。但し、変形例として、ユーザは、チャンネルマネージャと直接通信を行ってもよい。ディスパッチャ214は、制御メッセージを用いて、チャンネルマネージャから属性(名称−値の組)を得る。
FIG. 8 illustrates an
ルーティングデーモン216は、図4に示すような従来のバックボーンルータ又は他のルーティング機器を介して行われるデータパス222を経由する通信機能を提供する。キャッシュマネージャ218は、対応するインテリジェントルータを含むネットワークノードにおけるデータのローカルなキャッシング機能を提供する。キャッシュマネージャ218の動作は、後に詳細に説明するが、キャッシュマネージャ218は、ネットワークコアを介したデータの分散型キャッシング機能を提供する。
The
コンテンツベースのルーティングは、アプリケーションレベルではなく、カーネルレベルで実現してもよい。カーネルによってアクセス可能なメモリは、アプリケーション層におけるメモリから独立している。アプリケーションにおいて、コンテンツベースのルーティングを実行するためには、例えば、メッセージデータをカーネル記憶領域からアプリケーション領域にコピーし、アプリケーションのコンテキストをカーネルのコンテキストから、ルーティングアプリケーションのコンテキストに切り換える必要がある。これらの処理は、いずれもかなりのオーバーヘッドを引き起こす。ここで、コンテンツベースのルーティングをサポートするようにカーネルを変更すれば、上述したオーバヘッドが取り除かれ、ルーティングをより高速に行うことができるようになる。 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
図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
発行者と購読者における処理(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
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
インテリジェントルータは、パケット内のチャンネル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.
特定のチャンネルのパケットフォーマット又は構造を知ることにより、インテリジェントルータは、パケット内におけるサブジェクトと属性又はコンテンツベースのルーティングのための他の情報の位置を速やかに特定することができる。例えば、チャンネルは、パケット内のバイトを数えることによって、チャンネルを介して伝送されたサブジェクト及び属性のバイト位置を容易に特定できる。これに代えて、インテリジェントルータは、パケットを解析してサブジェクト及び属性又は他の情報の位置を検出することもできる。 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.
図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
購読予約のためのパラメータは、例えば表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
表14は、C++プログラミング言語で書かれた購読者プログラムの具体例を示している。 Table 14 shows a specific example of a subscriber program written in the C ++ programming language.
ペイロード検査及びチャンネルを介したコンテンツベースのルーティング
図13は、コンテンツベースのルーティングのためのペイロード検査処理300のフローチャートである。処理300は、例えば、フィルタリングデーモン212として表される、インテリジェントルータ92におけるプロセッサ93によって実行されるソフトウェアモジュールにおいて実現される。これに代えて、この処理をASICで実現してもよく、或いはハードウェアとソフトウェアの組合せによって実現してもよい。処理300として示すコンテンツベースのルーティングは、例えば、ネットワークコアやエッジルータ等ネットワーク内の任意の部分におけるインテリジェントルータにおいて実行できる。
Payload Inspection and Content-Based Routing Through Channels FIG. 13 is a flowchart of a
包括的に言えば、コンテンツベースのルーティングは、パケットをどのように処理するかを決定するためにパケットのペイロードセクションを検査する処理を含む。このコンテンツベースのルーティング処理は、例えば、購読予約のリストを任意の順序で(例えば、フィルタを用いて)処理し、ルーティング規則に基づいて、メッセージをサブジェクト毎及び属性毎に比較し、メッセージのルーティングを決定し、ネットワークコアにおける処理を実行するステップを有する。この規則は、ルータにおける処理を支配する規則又はフィルタに関連する如何なる規則を含んでいてもよい。これにより、ネットワークコア内にこれらの経路決定を伝えることができる。サブジェクトをチャンネルとして表すことにより、メッセージフォーマットが決定され、これにより、インテリジェントルータは、例えば、特定のチャンネルのメッセージ又はパケットにおいて、属性のバイト位置を知ることによって、メッセージにおける属性の位置を速やかに検出できるようになる。 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
フィルタ記述における全ての属性検査の結果が肯定的である場合(ステップ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
フィルタ記述における全ての属性検査の結果が肯定的ではなかった場合(ステップ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 (
インテリジェントルータ92は、如何なる特定の順序でフィルタを用いた一連の処理を行ってもよい。例えば表15に示すように、インテリジェントルータ92は、ファイル又はルーティングテーブル内に購読予約のためのフィルタを保存でき、これらを順次読み出して、属性にフィルタを適用する(属性検査を行う)ことができる。これに代えて、ルーティングテーブルは、フィルタへのリンク又はポインタを含んでいてもよい。
The
コンテンツベースのルーティングでは、アプリケーション及び例えばトラヒック条件に基づくアルゴリズムの切換等性能向上ヒューリスティックスに基づいて、任意に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
図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
インテリジェントルータ92がデータの要求を受け取った場合、(ステップ330)インテリジェントルータ92は、その要求に基づき、インデクスを用いて、キャッシングされたデータを検索する(ステップ332)。インテリジェントルータ92は、バックボーンルータ95又は他のルーティングエンティティにキャッシングされたデータを転送し、このデータは最終的に要求者又は他のエンティティに送信される。処理320は、継続的にデータをキャッシングし、キャッシングされたデータを要求に応じて検索できるように、繰り返し実行してもよい。
When the
図15は、処理320に用いられるキャッシュインデクス(336)の具体例を示している。キャッシュインデクス(336)は、データ(338)を受け取り、これをタイムスタンプ(340)とともに保存する。データを収集する際、各データにはΔtの各期間毎にマークが付される。ここで、Δtは、マーク間の時間、例えばt2〜t1間の期間を表す。時刻を表すマークのために他の如何なる種類のインデクスを用いてもよい。
FIG. 15 shows a specific example of the cache index (336) used in the
表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
各サブジェクト又はチャンネルは、例えば、マルチキャストツリーにおけるそれ自身の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.
これらの例示的なデータ構造は、以下の情報を含んでいる。サブジェクトノードは、サブジェクト識別子と、サブジェクトレベルと、親チャンネル又はサブジェクトノードへのポインタと、自らのディレクトリのためのファイル記述子と、次のレベルのサブジェクトノードを含むハッシュテーブルへのポインタと、データノードへのポインタとを含んでいる。データノードは、サブジェクト親ノードへのポインタと、データディレクトリのためのファイル記述子と、各ストレージデバイスに保存されたデータのためのデータ構造を含む循環型のバッファと、バッファのヘッド及びテールと、読出及びストレージの間にデータノードをロックするためのロックとを含んでいる。保存されたタイムグレインノード(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
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
ステップ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,
エージェント128は、生成されたDNF表現をメッセージに符号化し(ステップ372)、メッセージをインテリジェントルータに転送する(ステップ374)。この符号化は、購読予約をフラットなメッセージフォーマットに変換処理を含み、これは、フラットなメッセージフォーマットとは、データのストリングから構成されるフォーマットを意味する。また、この転送の処理は、購読予約に関してサブジェクトフィルタと属性フィルタによって生成されたルーティング規則をネットワークにおける1つ以上のインテリジェントルータ又は他のルーティングエンティティに伝播させる処理を含む。この伝播のために、例えば、購読予約の表現を従来のパケット構造にマッピングすることができる。
ステップ372における符号化は、チャンネルを介した伝播のために、チャンネルに対応する購読予約をメッセージングAPIのメッセージングフォーマットに変換する処理を含む。例えば、購読予約は、サブジェクト#.SUBSCRIPTIONを含む通知として内部的にメッセージングされる。任意の個数のサブジェクトフィルタフィールドと任意の個数の属性検査の両方があるので、この実施例では、1組のバイトを用いてサブジェクトフィルタフィールドの個数を保存し、もう1組のバイトを用いて属性検査の個数を保存する。サブジェクトフィルタの個々のフィールドは、例えば元の購読予約で指定された順序に並べ替えられ、それぞれメッセージの2バイトの部分に格納される。ワイルドカードフィールドの整理については後述する。
The encoding in
属性検査の配列においては、検査のオペランドは、通知における属性値の配置と同様、メッセージの最後に配置される。属性検査とオペランドを配置する前に、これらは、所定の属性に対する位置順の検査と、これに続く任意の属性に対する名称順の検査によって、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.
検査のための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
この実施例においては、関連するチャンネルの属性として、属性価格(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
次に、属性フィルタとして上述した属性フィルタ表現を含む購読予約について考察する。図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
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
図17は、送信されてきたメッセージのためのエージェント処理376のフローチャートである。処理376は、例えばユーザ装置122内のエージェント128及びアプリケーション126によって実現することができる。処理376において、エージェント128は、インテリジェントルータから購読予約に対応するメッセージを受け取る(ステップ378)。128エージェントは、例えば、メッセージのチャンネルIDによって購読予約に対応するチャンネルを判定し(ステップ380)、チャンネルのAPIを呼び出す(ステップ382)。APIは、ユーザ装置において、購読予約のためのデータをGUI又は他のフォーマットで表示する(ステップ384)。入力メッセージに対する処理としては、上述した符号化処理の逆のデータ復号処理を用いることができ、この復号(逆符号化)は、ルータ又は他のネットワークエンティティにおいて実行することができる。
FIG. 17 is a flowchart of an
ワイルドカード処理
図20は、ワイルドカード処理410のフローチャートである。処理410は、フィルタのルーティング規則の組を用いて、ワイルドカードを購読予約のための表現に変換する処理の一例である。処理410は、例えば、ユーザ装置122内のプロセッサ134によって実行されるエージェント128によって表されるソフトウェアモジュールとして実現してもよい。これに代えて、ネットワークにおいて、ソフトウェア制御の下で、インテリジェントルータ92又は対応する機能を有するASIC91内のプロセッサ93によりワイルドカードを処理してもよい。ワイルドカードは、開かれたフィールド又は可変長フィールドを含んでおり、表21はこのようなフィールドの具体例を示している。
Wildcard Processing FIG. 20 is a flowchart of
処理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
サブフィールドを処理した後にエージェント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,
必要であれば、エージェント128は、変形した規則をインテリジェントルータ又はネットワークにおける他のエンティティに伝播する(ステップ430)。処理は、全てのサブフィールドについて繰り返され、これにより、ワイルドカードが非ワイルドカード規則に変換される。非ワイルドカード規則とは、ワイルドカードを含まない規則を意味する。ワイルドカードの変換は、ネットワーク内のどこで行ってもよく、例えば、購読者装置又はインテリジェントルータにおいて行ってもよい。したがって、この変換は、変形規則によって1つのエンティティで行い、他のエンティティに伝播させてもよく、又はこの変換を動的に行ってもよい。
If necessary,
表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.
アラートサービス
上述したインテリジェントなコンテンツベースのルーティングは、様々な用途に用いることができ、その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
ステージ1により、LAN側において、トラヒックを大幅に削減することができるが、特に幾つかの国において、典型的な非対称デジタル加入者線(ADSL)が64のキロビット/秒(kbps)のアップリンク速度しか有していないような場合、送信リンクにおけるトラヒックの問題が残る。
更に図22を用いて説明すると、ステージ2では、好ましくは、サービスプロバイダの機械室(machine room)を借り受け又は他の手法で確保し、ここに第2のzボックス機器、例えばzボックス2を配設する。例えば、zボックス機器は、ハイネットバックボーン上に配設してもよい。この機器から顧客の敷地内において、zボックス2への単一の接続(トンネル)を確立できる。
Further referring to FIG. 22, in
この場合顧客の敷地内の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-
デジタルコンテンツ配信
上述したインテリジェントなコンテンツベースのルーティングは、購読予約を介したビデオや音楽の配信、ソフトウェアの更新等、様々な用途に用いることができる。例えば、ユーザは、例えば、ウィルス除去ソフト等のソフトウェアの更新を購読予約することにより、アップデートされたソフトウェアを自動的に受け取ることができる。他の実施例としてユーザは、特定のビデオ及び音楽コンテンツを購読予約し、その購読されたコンテンツを自動的に受け取るようにしてもよい。ビデオ及び音楽コンテンツは、例えば、ストリーミングされたデジタルコンテンツとして受け取ることができる。更に、ネットワークコアにおける分散処理により、ソフトウェア、ビデオ及び音楽コンテンツを提供するためのサーバの処理負担を実質的に軽減することができる。したがって、他の様々な利点とともに、コンテンツを提供するための同じネットワークインフラストラクチャにおいて、ネットワーク帯域幅を有効に活用することができる。
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
ルーティングボックスを用いる利点:
ルーティングボックス470は、好ましくは、上述したようなコンテンツベースのルーティングを実現するためのモジュール(例えば、上述したインテリジェントルータ92)を備える。上述したコンテンツベースのルーティングを実現するルーティングボックス470を用いる主な利点は2つある。これらのルーティングボックス470を用いた高速ルーティング及びファイル転送ソリューションにより、FTPやRCP等の従来のファイル転送プロトコルに比べて5倍程度ファイル転送を加速できる。また、広域ネットワーク(WAN)を介した効率的なマルチキャストを実現できる。中央から受信機のグループにデータを送信する場合、このルーティングソリューションでは、ネットワークマルチキャストトポロジーを利用し、WANの上でマルチキャスティングトンネルを構築することによってコンテンツ配信速度が加速され、サーバ負荷とネットワーク帯域幅要求を軽減することができる。
Advantages of using a routing box:
The
アーキテクチャ:
メディアコンテンツは、セントラルディストリビュータからキャッシュサーバ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
ユーザとC2キャッシュの間のファイル転送:
ユーザ460が購読予約を発行することによってメディアファイルを要求すると、C2キャッシュサーバの1つによって処理される要求されたメディアファイルがC2サーバに既にキャッシングされている場合、ファイルは、直ちに提供される。これ以外の場合、購読予約は、キャッシュサーバC1に送信され、要求されたファイルは、キャッシュサーバC1からキャッシュサーバC2に転送される。
File transfer between user and C2 cache:
When a
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
導入フェーズ:
第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
なお、図24において、ディストリビュータ450は、上述したインテリジェントなコンテンツベースのルーティング技術に基づき、ルーティングボックス470に新たなメディアファイルを一回だけ送信する。したがって、ディストリビュータ450の負担が軽減される。ルーティングボックス470は、高速ファイル転送メカニズムを用いて、各キャッシュサーバC1にファイルを出力する。この場合、受信機460の側では、更なるルーティングボックスは不要である。これに代えてキャッシュサーバC1のために他の種類のサーバを用いてもよい。
In FIG. 24, the
図25は、フェーズ2の実施例のアーキテクチャを示している。この実施例に示すフェーズ2では、好ましくは、カーネルを実装するルーティングボックス470を用いて、データをルーティング及び送信している。カーネルレイヤソリューションは、バッファコピーを低減し、コンテキスト切換時間を短縮するため、ファイルを送る際のオーバーヘッドを更に減少させる。更に、フェーズ2のソリューションでは、図25に示すように、キャッシュサーバC2をアーキテクチャに追加する。また、図25に示すように、好ましくは、C2側において、サービスプロバイダネットワーク内の同じ位置に、ルーティングボックス470が追加されている。これにより、帯域幅要件が大幅に軽減され、帯域幅を数百分の一にできる可能性もある。
FIG. 25 shows the architecture of the
図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
サービス品質の管理
上述したインテリジェントなコンテンツベースのルーティングは、例えば、特定の配信を保証するコンテンツのルーティングのために用いることができる。例えば、サービス品質保証制度(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
図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,
技術:
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
長期持続のためにデータをキャッシングするために、インテリジェントルータ92に対して、キャッシュマネージャ218を設けることには、例えば次のような利点がある。キャッシングされたデータにインデクスを付すための負荷が大きい演算は、独立したプロセッサによって実行でき、したがって、ルーティング及びフィルタリングプロセッサの性能には影響がなく、及びキャッシングされたデータを定期的にディスクに移動するためのディスクI/O動作も他のプロセッサによって実行でき、これにより、ルーティングとフィルタリングからサイクルが奪われることを防ぎ、エッジルータが定期的な入出力動作を行う必要を無くすことができる。
Providing the
また、図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.
障害が発生しない条件下では、エッジルータノード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
図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
図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.
キャッシュマネージャ−キャッシュ管理:
図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
キャッシュマネージャ−キャッシュデータ入力:
キャッシュマネージャ218は、好ましくは、以下に示すような様々な手法によって、インテリジェントルータ92に入るデータにアクセスすることができる。すなわち、インテリジェントルータ92の入力リンク上の全てデータをキャッシュマネージャ218にも送るIPと同様のソリューションを用いてもよい。また、スニフィングメカニズムを用いてもよい(この場合、キャッシュマネージャ218は、インテリジェントルータ92のネットワークを介して伝送される全てのパケットを待機する。また、フィルタリングの後に、インテリジェントルータ92が、1つ以上のリンクに伝播させる必要がある各メッセージをキャッシュ546に供給してもよい。また、キャッシュマネージャ218は、全てのインテリジェントルータ92に供給されるデータに関する購読者として機能してもよい。
Cache Manager-Cache data input:
The
キャッシュマネージャ−キャッシュデータストレージ:
図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
図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.
キャッシュマネージャ:ガーベージコレクション:
チャンネルが持続的でない場合、キャッシュ546は、データを保存せず、直ちにデータを消去する。チャンネルが持続的である場合、キャッシュ546は、データを保存する。特定のチャンネルの持続タイムフレーム「T」は、それぞれサイズがGであるN個のタイムグレインに分割される。メモリへのキャッシングは、Gに対応する期間のみ行われる。キャッシュマネージャが、期間Gが経過したと判定すると、データは、ディスクに移動される。キャッシュマネージャ218は、持続タイムフレーム期間Tの間、データをディスクに保存する。
Cache Manager: Garbage Collection:
If the channel is not persistent, the
期間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
キャッシュマネージャ−キャッシュデータ検索:
図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
キャッシュマネージャ218は、好ましくは、タイムグレインGのデータのブロックのみを検索する。したがって、エージェント128には、予期又は要求したデータより多くのデータが提供されることもある。更に複数のキャッシュから検索を行うと、キャッシュ間において、幾つかの期間が重複し、エージェント128は、データが重複して供給されることもあり、このため、エージェント128は、キャッシュによって提供されるデータストリームにおける重複を削除する必要がある。
The
キャッシュマネージャの他のモジュールとのインタラクション:
キャッシュマネージャ218は、好ましくは、図35に示すように、イベント通知システムインフラストラクチャにおいて、幾つかのモジュールとインタラクトする。キャッシュマネージャ218が(キャッシュ作成時に)新たなチャンネルに遭遇すると、キャッシュマネージャ218は、好ましくは、そのチャンネルのチャンネルマネージャ150を得るために情報サーバ550を呼び出す。一旦、キャッシュマネージャ218がチャンネルマネージャ150のアドレスを得ると、キャッシュマネージャ218は、好ましくは、チャンネルマネージャ150からチャンネル特性に関する情報を得る。アドミニストレータモジュール552は、好ましくは、キャッシングの分割の度合い等の幾つかの特性を設定/変更することができる。また、アドミニストレータモジュール552は、好ましくは、マニュアルでチャンネルキャッシュを作成/削除することもできる。
Interaction with other modules of the cache manager:
The
エージェントキャッシュAPI−アプリケーションエージェントインタラクション:
アプリケーション(例えば、アプリケーション126)は、好ましくは、エージェントキャッシュAPI554を呼び出し、所定のサブジェクトとフィルタとともにキャッシュ546を得る。好ましくは、アプリケーションは、既にそのデータを購読予約している場合、キャッシュ546からそのデータのみを検索することができる。エージェントキャッシュAPI554は、実際には、好ましくは2つのAPIを提供する。
Agent Cache API-Application Agent Interaction:
An application (eg, application 126) preferably calls the
第1のAPIにより、購読予約していないアプリケーションは、キャッシュ546の購読予約と検索を同時に行うことができる。「FIFO」フラグが設定されている場合、購読予約が作成され、エッジルータノード545に送信される。エージェント128がキャッシングされた全てのデータを受け取った後に、エージェント128は、まず、キャッシングされた全てのデータを配信し、そのデータにおいて、全ての発行者が確認できなかった最後のシーケンスを監視し、この各発行者が確認できなかった最後のシーケンスから、中断されたデータを配信する。
The first API allows an application that has not subscribed to subscribe to and search the
第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
エージェント128は、好ましくは、1つの大きなデータのブロック内の全てのイベントを読み出す。エージェント128は、キャッシュAPI554からデータを読み出した後、好ましくは、コールバック動作を呼び出す前に(上述参照)、データに対して以下のような動作を行う。この動作とは、通知のリストからの通知の生成、各発行者について、最後のシーケンス番号の監視、及びフィルタリングである。エージェント128によって全てのイベントをコールバックに渡す処理が完了すると、エージェント128は、キャッシュ完了イベント(DoneCache event)をコールバックに渡し、キャッシングされた全てのデータが配信されたことを示す。このとき、購読予約がFIFOであり、通常のデータが中断されている場合、エージェント128は、好ましくは、中断された全ての通知を配信する。このとき、エージェント128は、シーケンス番号がキャッシングされたデータにおける最後のシーケンス番号より大きい通知のみを配信する。
エージェントキャッシュ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
キャッシュマネージャ218がデータをローカルで検出できない場合、キャッシュマネージャ218は、エージェント128によって提供される「ルータのリスト」を用いて、必要なデータを検索する。キャッシュマネージャ218が必要な全てのデータを集めると、キャッシュマネージャ218は、必要なデータを照合し、重複削除を行った後に、このデータをエージェント128に供給する。
If the
キャッシュ接続履歴:
キャッシュ546からのデータの検索を可能にするために、好ましくは、エージェント128において、アップストリームのキャッシュと同様に両方の側のキャッシュに関するキャッシュ接続履歴が維持される。この情報は、エージェント128がシャットダウン及びクラッシュした場合に必要であるので、この情報は、ファイルに持続的に保存する必要がある。キャッシュ接続履歴は、好ましくは、以下のようなファイル及びフォーマットによってディスクに保存される。
Cache connection history:
In order to allow retrieval of data from
エッジキャッシュ位置:
エッジキャッシュの位置(例えば、エッジルーティングノード546のキャッシュ546)は、好ましくは、チャンネルマネージャ/チャンネルライブラリから得られる。これは、起動時及びこれに続く、例えば、接続の切断/再接続、接続の変更等によってエッジキャッシュが変化した、如何なる時点でも発生する。ディスパッチャは、エッジキャッシュ接続の全ての変化をエージェント128に通知し、これらの変化は、エージェント128のキャッシュライブラリに伝えられる。変化が起こるたび、その情報は持続される。
Edge cache location:
The location of the edge cache (eg,
持続的なストレージ: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
エッジキャッシュエントリは、エントリ内の全ての期間が無効になった場合、無効になる。なお、「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_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
データ検索の間のキャッシュ妥当性:
エージェント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
このアルゴリズムによりキャッシュのリスト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
ルータキャッシュAPI:
インテリジェントルータ92側のルータキャッシュAPI552は、特定のサブジェクトのためのキャッシングを作成し、消去し、停止し、再開するためにキャッシュマネージャ218を呼び出す。また、ルータキャッシュAPI552は、初期の構成を処理する。すなわち、ルータキャッシュAPI552は、インテリジェントルータ92からチャンネルマネージャ150にキャッシュアドレスをアップロードし、これにより、エージェント128側(エージェントキャッシュAPI554)は、必要なときにこの情報を得ることができる。更に、ルータキャッシュAPI552は、他のルータのキャッシュ546の位置を読み出す(この位置は例えば、購読予約に対する応答において及びサブジェクトツリーの変更の後にインテリジェントルータ92が所定のサブジェクトのためのアップストリームキャッシュをエージェント128に通知する際に用いられる)。
Router cache API:
The
プルのためのキャッシュの使用:
上述の説明では、持続的なチャンネルを実現し、購読者がネットワークからデータをプルすることによって情報を返すためのキャッシュの使用に焦点をあてた。変形例では、如何なる購読者(新たな購読者又は復帰した購読者)もキャッシュ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
最新データプル:
他の実施例では、購読者アプリケーション(例えば、アプリケーション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
データ構造:
キャッシングのためのデータ構造の具体例は、表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
データ検索:
キャッシュ546からのデータ検索は、データのストレージを妨げないように、及びキャッシュ546がホールドアップしないように、効率的に行う必要がある。このデータ検索では、ディスクとメモリの両方からデータを読み出す。データ検索においては、好ましくは以下のようなステップを実行する。(1)データノードの位置を検出する。(2)データノードをロックする。(3)呼び出す必要があるデータのタイムスタンプを検出する。(4)データを読み出し、メモリに保存する。(5)データノードをロック解除する。(6)メモリに保存され、読み出されたデータをフィルタリングし、並べ替えた後、エージェント128クライアントにプッシュする。
data search:
Data retrieval from the
以上、例示的な実施例を用いて本発明を説明してきたが、これらの実施例を様々に変形できることは当業者にとって明らかであり、本発明は、これらの如何なる適応化又は変形をも含む。例えば、本発明の範囲から逸脱することなく、様々な種類の発行者装置、ユーザ又は購読者装置、これらのチャンネル及び構成、コンテンツベースのルーティング及び他の機能のハードウェア及びソフトウェアによる実現が可能である。この発明は、特許請求の範囲及びその均等物によってのみ制限される。 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.
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つのサブジェクトと、特定のカメラからのビデオクリップに関連する少なくとも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記載のルーティング方法。 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.
ヘッダセクションと、特定のアラートサービスのイベントに関する情報を含むペイロードセクションとを有するパケットを受け取る受信ステップと、
ネットワークコアにおいて、上記アラートサービスの情報を含むパケットを購読者にどのようにルーティングするかを決定するために上記パケットのペイロードセクションを検査する検査ステップと、
上記検査に基づいて、上記パケットを選択的にルーティングするルーティングステップとを有するルーティング方法。 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.
ヘッダセクションと、少なくとも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記載のルーティング装置。 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.
デジタルビデオ出力を生成する複数のデジタルビデオカメラと、
上記デジタルビデオカメラに接続されたローカルエリアネットワーク(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.
ヘッダセクションと、複数のデジタルビデオカメラの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のレベルのキャッシュサーバに上記パケットを選択的にルーティングするルーティングモジュールとを有する請求項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.
ヘッダセクションと、デジタルコンテンツファイルに関連する情報を含むペイロードセクションとを有するパケットを受け取る受信モジュールと、
上記パケットをどのようにルーティングするかを決定するために上記パケットのペイロードセクションを検査する検査モジュールと、
上記検査に基づいて、上記セントラルディストリビュータからから上記複数のキャッシュサーバに上記パケットを選択的にルーティングするルーティングモジュールとを有する請求項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.
上記デジタルコンテンツをセントラルディストリビュータから配信する配信ステップと、
上記配信されたデジタルコンテンツを複数のキャッシュサーバにコンテンツベースでルーティングするコンテンツルーティングステップと、
上記コンテンツベースでルーティングされたデジタルコンテンツを上記複数のキャッシュサーバにキャッシングするキャッシングステップと、
要求されたキャッシングされたデジタルコンテンツに対するユーザ購読予約を受け取る受信ステップと、
上記受信されたユーザ購読予約に基づいて、上記複数のキャッシュサーバからユーザに上記要求されたデジタルコンテンツを転送する転送ステップとを有する配信方法。 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.
ヘッダセクションと、ペイロードセクションとを有するパケットを受け取る受信ステップと、
ネットワークコアにおいて、上記パケットをどのようにルーティングするかを決定するために上記パケットのペイロードセクションを検査する検査ステップと、
上記パケットのためのサービス品質保証を判定する判定ステップと、
上記検査及び上記サービス品質保証に基づいて、上記パケットを選択的にルーティングするルーティングステップとを有するルーティング方法。 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.
ヘッダセクションと、少なくとも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記載のルーティング方法。 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.
ヘッダセクションと、ペイロードセクションとを有するパケットを受け取る受信モジュールと、
ネットワークコアにおいて、上記パケットをどのようにルーティングするかを決定するために上記パケットのペイロードセクションを検査する少なくとも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.
ヘッダセクションと、少なくとも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記載のルーティング装置。 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.
ヘッダセクションと、ペイロードセクションとを有するパケットを受け取る受信ステップと、
ネットワークコアにおいて、上記パケットを購読者にどのようにルーティングするかを決定するために上記パケットのペイロードセクションを検査する検査ステップと、
上記検査に基づいて、上記パケットを選択的にルーティングするルーティングステップと、
上記ネットワークコアにおいて、上記パケットからのデータをローカルにキャッシングするステップとを有するルーティング/キャッシング方法。 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記載のルーティング/キャッシング方法。 Receiving a data request;
95. The routing / caching method of claim 94, further comprising: determining whether the cached data satisfies the data request.
ヘッダセクションと、ペイロードセクションとを有するパケットを受け取るエッジルーティングノードを備え、該エッジルーティングノードは、
ネットワークコアにおいて、上記パケットを購読者にどのようにルーティングするかを決定するために上記パケットのペイロードセクションを検査するための命令と、上記検査に基づいて、上記パケットを選択的にルーティングするための命令とを有し、上記受け取ったパケットをルーティングするインテリジェントルータと、
上記インテリジェントルータに動作可能に接続され、上記パケットからデータをローカルキャッシュにローカルにキャッシングするための命令を有するキャッシュマネージャと、
上記パケットを受け取り、ルーティングする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記載のネットワーク。 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記載のネットワーク。 The above cache manager
106. The network of claim 105, further comprising instructions for marking the cached data temporally.
データ要求を受信するための命令と、
上記キャッシングされたデータが上記データ要求を満たすか否かを判定するための命令とを更に有することを特徴とする請求項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.
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)
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)
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)
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 |
-
2003
- 2003-07-08 EP EP03763348A patent/EP1535157A4/en not_active Withdrawn
- 2003-07-08 CN CN038212064A patent/CN1701304B/en not_active Expired - Lifetime
- 2003-07-08 AU AU2003256463A patent/AU2003256463A1/en not_active Abandoned
- 2003-07-08 KR KR1020057000385A patent/KR100985237B1/en active IP Right Grant
- 2003-07-08 WO PCT/US2003/021338 patent/WO2004006486A2/en active Application Filing
- 2003-07-08 JP JP2004520021A patent/JP2005532748A/en active Pending
-
2009
- 2009-12-25 JP JP2009296288A patent/JP2010148118A/en active Pending
Cited By (5)
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 |