JP6016773B2 - Push-pull based content distribution system - Google Patents

Push-pull based content distribution system Download PDF

Info

Publication number
JP6016773B2
JP6016773B2 JP2013265868A JP2013265868A JP6016773B2 JP 6016773 B2 JP6016773 B2 JP 6016773B2 JP 2013265868 A JP2013265868 A JP 2013265868A JP 2013265868 A JP2013265868 A JP 2013265868A JP 6016773 B2 JP6016773 B2 JP 6016773B2
Authority
JP
Japan
Prior art keywords
vod
peer
content object
network
peers
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.)
Expired - Fee Related
Application number
JP2013265868A
Other languages
Japanese (ja)
Other versions
JP2014116949A (en
Inventor
バーグストロム マティアス
バーグストロム マティアス
デイヴィッドソン ハンズ
デイヴィッドソン ハンズ
ツォウ イダン
ツォウ イダン
Original Assignee
ヴォドラー グループ アーベー
ヴォドラー グループ アーベー
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ヴォドラー グループ アーベー, ヴォドラー グループ アーベー filed Critical ヴォドラー グループ アーベー
Priority to JP2013265868A priority Critical patent/JP6016773B2/en
Publication of JP2014116949A publication Critical patent/JP2014116949A/en
Application granted granted Critical
Publication of JP6016773B2 publication Critical patent/JP6016773B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Description

[01]本発明は、全般的にはディジタルコンテンツを配信する分散ネットワークに関する。より具体的には、「ビデオオンデマンド(video on demand)」を含むさまざまなコンテンツ配信アプリケーションに関するサービス品質を最適化する、動的なコンテンツパッケージング及び負荷平衡化のシステム及び方法を開示する。   [01] The present invention relates generally to distributed networks for distributing digital content. More specifically, a dynamic content packaging and load balancing system and method is disclosed that optimizes quality of service for a variety of content delivery applications, including “video on demand”.

[02]コンピュータネットワークは、進歩するにつれて、アプリケーションをそのネットワーク上で動作状態にし、ネットワークリソース(処理能力、データストレージ、及びネットワーク帯域幅を含む)のさらなる需要を生じさせた。これらのネットワークリソースの共有を可能にすることに加えて、インターネットなどのより大きくより多様なネットワークは、さまざまなアプリケーションを生み出した。これらのアプリケーションは、それらが使用可能なネットワークリソースに課す異なる需要を処理するために異なるアーキテクチャ的手法を必要とする。   [02] As computer networks have advanced, applications have become operational on that network, creating additional demand for network resources, including processing power, data storage, and network bandwidth. In addition to enabling sharing of these network resources, larger and more diverse networks such as the Internet have created a variety of applications. These applications require different architectural approaches to handle the different demands they place on available network resources.

[03]実質的にすべてのインターネットアプリケーションは、純粋に集中化された手法(サーバが大量のネットワークリソースを提供し、比較的「データ処理能力のない」クライアントがほとんど最小限のリソースを要求する)から純粋に分散化された「ピアツーピア」(P2P)手法(すべてのノードが、「データ処理能力のある」クライアント兼サーバであり、同等にネットワークリソースを共有する)までの範囲の、ある形のクライアント−サーバアーキテクチャを使用する。確かに、ほとんどのアプリケーションは、この2つの極端な手法の間のどこかに含まれるアーキテクチャを使用する。   [03] Virtually all Internet applications are purely centralized (servers provide a large amount of network resources, and relatively “uncapable” clients require almost minimal resources) To some form of client, ranging from purely decentralized “peer-to-peer” (P2P) approaches (all nodes are “data-capable” clients and servers and share network resources equally) Use a server architecture. Certainly, most applications use an architecture that is somewhere between the two extreme approaches.

[04]しかしながら、インターネット自体は、高分散式のネットワークに進化してきた。このネットワークでは、相互接続されたルータの膨大なアレイが、実質的にすべてのネットワークノードの間で情報をかなり迅速に転送することを可能にする。その結果、多くのアプリケーション(集中アーキテクチャによく適すると思われるものであっても)が、インターネットの固有の分散アーキテクチャを単純に活用して、そうでなければ高い、ネットワークリソースに対する需要を軽減する。   [04] However, the Internet itself has evolved into a highly distributed network. In this network, a vast array of interconnected routers allows information to be transferred fairly quickly between virtually all network nodes. As a result, many applications (even those that seem well suited to a centralized architecture) simply leverage the inherent distributed architecture of the Internet to reduce otherwise demanding network resources.

[05]例えば、ウェブブラウジングなどのアプリケーションは、第1の例であり、集中化された手法を必要とすると思われる。ウェブサーバは、すべてのコンテンツを供給し、要求を行う任意のウェブクライアントに、要求時にそのコンテンツの任意の部分を分配しなければならない。しかし、コンテンツをより小さいパケットに分割しIPベースのプロトコルを活用することによって、多数の比較的小さいファイルを多数の異なるルートにまたがって複数のクライアントにかなり迅速に転送することができる。ウェブサーバは、多数の要求を処理するために十分な「集中化された」帯域幅を依然として提供しなければならないが、インターネット自体の分散された性質は、解決策の多くを提供する。さらに、複数の戦略的に配置されたウェブサーバにまたがるコンテンツの複製、要求元クライアントに「より近い」「エッジサーバ」での頻繁に要求されるコンテンツのキャッシングなど、他の分散機構を使用して「負荷の平衡をとる」ことができる。   [05] Applications such as web browsing, for example, are a first example and may require a centralized approach. The web server must supply any content and distribute any portion of that content upon request to any web client making the request. However, by dividing the content into smaller packets and leveraging IP-based protocols, many relatively small files can be transferred to multiple clients across many different routes fairly quickly. Web servers still have to provide enough “centralized” bandwidth to handle a large number of requests, but the distributed nature of the Internet itself provides many of the solutions. In addition, using other distributed mechanisms such as replicating content across multiple strategically located web servers, caching frequently requested content “closer” or “edge servers” to requesting clients. Can “balance the load”.

[06]「インスタントメッセージング」(IM)及び音楽ファイル共有などの他の人気のあるアプリケーションは、その性質によってより分散式であり、大きいP2Pコミュニティを生成してきた。大量のネットワークリソースがそのエンドユーザクライアントから「離れた」中央サーバによって提供される集中化アーキテクチャと異なって、P2Pアーキテクチャは、ネットワークリソースを、まさにそのネットワークリソースを消費するクライアントの間で分散させる。これは、ネットワークリソースが、処理(例えば、SETIプロジェクト)、データストレージ(例えば、音楽ファイル共有)、又はネットワーク帯域幅(例えば、IM)を含むか否かによらない。   [06] Other popular applications, such as “instant messaging” (IM) and music file sharing, are more distributed by nature and have created large P2P communities. Unlike the centralized architecture where a large amount of network resources are provided by a central server “away from” its end-user clients, the P2P architecture distributes network resources among the clients that consume that network resource. This is independent of whether network resources include processing (eg, SETI project), data storage (eg, music file sharing), or network bandwidth (eg, IM).

[07]しかし、オーディオ及びビデオのリアルタイム配信、具体的には「ビデオオンデマンド」(VOD)など、所定のアプリケーションは、これまでに、主にその集中化された性質及び膨大なネットワークリソース要件に起因して、純粋に分散式のP2Pアーキテクチャ的解決策を許さなかった。例えば、VODは、その性質によって、インスタントメッセージング又は音楽ファイル共有よりもウェブブラウジングに似た集中化アプリケーションである。大量のコンテンツ(例えば、映画及びテレビジョン放送)を、要求時に、要求を行う任意のクライアントに配信しなければならない。   [07] However, certain applications, such as real-time delivery of audio and video, specifically “Video On Demand” (VOD), have so far been mainly due to their centralized nature and enormous network resource requirements. As a result, it did not allow a purely distributed P2P architectural solution. For example, VOD, by its nature, is a centralized application that resembles web browsing rather than instant messaging or music file sharing. Large amounts of content (eg movies and television broadcasts) must be delivered to any requesting client at the time of the request.

[08]VODは、累積的な基礎(多数のクライアントが異なるコンテンツを同時に要求するので)だけではなく、個々の要求に関してもネットワークリソースを大量に要求する。例えば、任意のクライアントへの「オンデマンド」の単一の映画の配信は、かなりの量のネットワーク帯域幅を必要とする。さらに、そのような配信は、安定し、なおかつ信頼できるものでなければならない。そのような配信は、迅速に開始され、経時的なオーディオ品質及び/又はビデオ品質の劣化なしに継続されなければならない。短く言うと、そのような配信は、十分に高い「サービス品質」(QoS)を維持しなければならない。   [08] VOD demands a large amount of network resources not only on a cumulative basis (since many clients request different content simultaneously) but also for individual requests. For example, the distribution of an “on-demand” single movie to any client requires a significant amount of network bandwidth. In addition, such delivery must be stable and reliable. Such distribution must be initiated quickly and continued without degradation of audio and / or video quality over time. In short, such delivery must maintain a sufficiently high “quality of service” (QoS).

[09]特にVODがネットワークストレージ及び帯域幅に課す大量の要求に起因して、既存の解決策は、高コストのエンタープライズレベルの専用サーバに頼ってきた。エンタープライズレベルの専用サーバは、多数のユーザにメディアコンテンツを配信するのを可能にするのに十分な大量のストレージ容量及びネットワーク帯域幅を有する。そのような解決策は、大量のネットワーク帯域幅需要を軽減するために、比較的複雑なストリーミングプロトコル及びマルチキャストプロトコルをも使用してきた。したがって、これらの解決策は、実際のところ比較的集中化されており、すなわち、大量のコンテンツを1点(中央サーバ)から複数の点(クライアント)に配信することを可能にすることを試みる。複数のサーバの負荷を平衡化するために複数のサーバを「分散させる」(すなわち、複製する)ことができる。しかし、これらのサーバのそれぞれは、大量のコンテンツを維持する必要があり、これらのサーバの間でこのコンテンツを同期化するために、大量の追加ネットワーク帯域幅を浪費する。これらの既存の解決策は、単純に、良好にスケーリングされない。なぜなら、これらの解決策が、インターネットの固有のネットワーク帯域幅制限を、軽減するのではなく悪化させる傾向にあるからである。   [09] Especially because of the large demands placed on network storage and bandwidth by VOD, existing solutions have relied on high-cost enterprise-level dedicated servers. Enterprise-level dedicated servers have a large amount of storage capacity and network bandwidth sufficient to enable delivery of media content to a large number of users. Such solutions have also used relatively complex streaming and multicast protocols to reduce large network bandwidth demands. Thus, these solutions are actually relatively centralized, i.e. they attempt to allow large amounts of content to be distributed from one point (central server) to multiple points (clients). Multiple servers can be “distributed” (ie replicated) to balance the load on multiple servers. However, each of these servers must maintain a large amount of content and waste a large amount of additional network bandwidth to synchronize this content among these servers. These existing solutions simply do not scale well. This is because these solutions tend to exacerbate rather than reduce the inherent network bandwidth limitations of the Internet.

[10]図1は、インターネットの既存のグローバル物理インフラストラクチャ(すなわち、相互接続されたルータ及びクライアント/サーバコンピュータ)のある態様を示す。例えば、通常のエンドユーザクライアントノード10は、ローカルインターネットサービスプロバイダ(ローカルISP)20を介してしばしば相互接続されている。ローカルISP20は、地域インターネットサービスプロバイダ(REG ISP)30及び互いへの相対的に高速な接続を有する。REG ISP30は、大きいバックボーン(BB)ルータ40及び互いへの高速(及びより安定した/信頼できる)接続を有する。BBルータ40は、通常は光ファイバ及び他の極端に高速な接続を介して相互接続され、相対的に安定し信頼できるインターネットのコアを形成する。図1には、ノードが、BBルータ40若しくはより大きいREG ISP 30のルータに「より近く」又はより直接に接続することによって、より高速でより安定し/信頼できる接続性(より高いコストにおいてではあるが)を入手できることも示されている。   [10] FIG. 1 illustrates certain aspects of the existing global physical infrastructure of the Internet (ie, interconnected routers and client / server computers). For example, a typical end user client node 10 is often interconnected via a local Internet service provider (local ISP) 20. The local ISP 20 has a relatively high speed connection to the regional Internet service provider (REG ISP) 30 and each other. The REG ISP 30 has a large backbone (BB) router 40 and high speed (and more stable / reliable) connections to each other. The BB router 40 is interconnected, usually via optical fiber and other extremely high speed connections, to form a relatively stable and reliable Internet core. FIG. 1 shows that a node can connect to a BB router 40 or a larger REG ISP 30 router “closer” or more directly, thereby providing faster, more stable / reliable connectivity (at higher costs). It is also shown that it is available.

[11]したがって、既存の専用VODサーバ100は、相対的に高速のREG ISP 30及びBBルータ40に接続されて図示されている。これは、多数のエンドユーザクライアントノード10からの要求にサービスするためのより多くより安定し/信頼できるネットワーク帯域幅容量を提供する。しかし、上でほのめかしたように、数百台のそのような専用VODサーバ100を用いても、異なるコンテンツに関する多数の同時要求にサービスするのに必要な大量のネットワーク帯域幅需要を処理しようとするのに、複雑なストリーミングプロトコル及びマルチキャストプロトコルが依然として必要である。   [11] Accordingly, the existing dedicated VOD server 100 is shown connected to the relatively fast REG ISP 30 and BB router 40. This provides more and more stable / reliable network bandwidth capacity to service requests from multiple end user client nodes 10. However, as alluded to above, even with hundreds of such dedicated VOD servers 100, they attempt to handle the large amount of network bandwidth demand needed to service a large number of simultaneous requests for different content. Nevertheless, complex streaming and multicast protocols are still needed.

[12]例えば、所与の地理的区域内の多数のクライアントが、「プライムタイム」中に同一の人気のある映画を要求する場合がある。しかし、そのような要求のそれぞれは、わずかに異なる時刻に発生する可能性が高く、全体的なネットワーク帯域幅を減らすのにこれらの「共通の」要求を活用することが、極端に難しくなる。VODアプリケーションのこのオンデマンドの性質は、ネットワーク帯域幅の問題を指数関数的に悪化させるだけではなく、一貫して高いレベルのQoSを維持することも、極端に難しくなる。   [12] For example, multiple clients within a given geographic area may request the same popular movie during “prime time”. However, each such request is likely to occur at slightly different times, making it extremely difficult to exploit these “common” requests to reduce overall network bandwidth. This on-demand nature of VOD applications not only exacerbates network bandwidth problems exponentially, but also makes it extremely difficult to maintain a consistently high level of QoS.

[13]一部のクライアントが、REG ISP 30及びBBルータ40のより近くに配置される可能性があるが、多数の他のクライアントは、相対的に低速で安定性/信頼性のより低い接続を有し、したがって、より低い有効QoSを経験する。これは、既存VODアーキテクチャが、実際のトラフィックを監視し管理することによってではなく、インターネットの物理インフラストラクチャに固有のかなりのネットワーク帯域幅の差を考慮に入れていない複雑なストリーミングプロトコル及びマルチキャストプロトコルを使用することによって、より高いQoSを提供しようとするという事実から生じる。   [13] Some clients may be located closer to the REG ISP 30 and BB router 40, but many other clients are relatively slow and less stable / reliable connections And therefore experience a lower effective QoS. This is because the existing VOD architecture does not involve monitoring and managing the actual traffic, but rather complex streaming and multicast protocols that do not take into account the significant network bandwidth differences inherent in the physical infrastructure of the Internet. The use stems from the fact that by trying to provide a higher QoS.

[14]さらに、上で注記したように、より多くの専用VODサーバ100の追加は、これらの追加サーバの間でコンテンツを同期化するために生成されるかなりの追加ネットワーク帯域幅に起因して、しばしば非効率的である。専用VODサーバ100の追加を継続することは、禁止的に高価ではない場合があるが、最終的にデータベース同期化トラフィックによってインターネットを氾濫させる可能性もある。   [14] Further, as noted above, the addition of more dedicated VOD servers 100 is due to the considerable additional network bandwidth generated to synchronize content between these additional servers. , Often inefficient. While continuing to add dedicated VOD server 100 may not be prohibitively expensive, it may eventually flood the Internet with database synchronization traffic.

[15]したがって、VODは、高いQoSを維持しながら大量のディジタルコンテンツへのアクセスをインターネットで提供するという問題の最良の例を提供する。この問題をVODアプリケーションに照らした観点におきかえるために、VODクライアントが任意の所与の時にオンデマンドでアクセスを望む可能性がある約50000本の「人気のある」映画(より人気の低い映画、テレビジョン放送及び再放送/アーカイブ、並びに非商用及び他の潜在的に望ましいコンテンツの無数の寄せ集めに加えて)を検討されたい。2時間の映画が、約4GBのストレージを必要とする(例えば、MPEG2圧縮を用いる480p標準品位解像度で、又はより新しいMPEG4圧縮技法を使用する720p高品位解像度で)と仮定すると、これらの50000本の映画の単一のコピーは、約200TBのストレージ容量を必要とするはずである(現在のデータストレージの下落率をもってしても高価な提案である)。現在のブロードバンドユーザの人数の推定値は、既に数億人(60億人の世界人口に対して測定)であり、近い期間の迅速な増加が見込まれている。最大の光ファイババックボーン(米国内だけでおおむね4ダース又は5ダース)の近くに戦略的に配置された数百台の専用サーバを用いても、各サーバは、10万人ではないとしても1万人のユーザからのオンデマンド要求をサポートしなければならないはずである。ピーク時間中に、そのようなユーザのかなりのパーセンテージ(例えば、数千人のユーザ)が、異なるコンテンツ(又はわずかに異なる時刻に同一のコンテンツ)を要求する可能性がある。これは、数千本のオーディオ/ビデオストリームを必要とし、そのそれぞれが、約20MB/分(すなわち、T1回線の速度の2倍)の一貫した信頼できるスループットを維持しなければならない。   [15] Thus, VOD provides the best example of the problem of providing access to large amounts of digital content over the Internet while maintaining high QoS. To replace this issue with a perspective in the context of VOD applications, approximately 50,000 "popular" movies (less popular movies, which a VOD client may want to access on demand at any given time) Consider television broadcasting and rebroadcasting / archiving, as well as a myriad of non-commercial and other potentially desirable content). Assuming a 2 hour movie requires about 4 GB of storage (eg, at 480p standard definition resolution using MPEG2 compression, or at 720p high definition resolution using newer MPEG4 compression techniques), these 50000 A single copy of the movie should require about 200 TB of storage capacity (an expensive proposal even with the current data storage decline rate). Current estimates of the number of broadband users are already hundreds of millions (measured against a global population of 6 billion) and are expected to increase rapidly in the near term. Even with hundreds of dedicated servers strategically placed near the largest fiber optic backbone (approximately 4 or 5 dozens in the US alone), each server is 10,000 if not 100,000 Should support on-demand requests from human users. During peak hours, a significant percentage of such users (eg, thousands of users) may require different content (or the same content at slightly different times). This requires thousands of audio / video streams, each of which must maintain a consistent and reliable throughput of about 20 MB / min (ie twice the speed of a T1 line).

[16]短く言うと、VODアプリケーションは、厄介な技術的課題を提示する。この課題によって、既存VOD「解決策」がかなりのレベルの商業的成功をまだ達成していない理由を説明することができる。実際に、多くの商業的努力は、この技術的問題の解決よりもこの問題をより御しやすいと思われるものにするために、VODアプリケーションの性質を定義し直すことに焦点を合わせてきたと思われる。一部の解決策は、単純にQoSを無視し、他の解決策は、使用可能なコンテンツの領域を大幅に削り、さらに他の解決策は、真のオンデマンド機能性ではなく「タイムスロット」を提供する。   [16] In short, VOD applications present a cumbersome technical challenge. This challenge can explain why existing VOD “solutions” have not yet achieved a significant level of commercial success. In fact, many commercial efforts appear to have focused on redefining the nature of VOD applications in order to make this problem seem more manageable than solving this technical problem. It is. Some solutions simply ignore QoS, others drastically reduce the area of available content, and other solutions are “time slots” rather than true on-demand functionality. I will provide a.

[17]それでも、高いQoSを維持しながらインターネットを介して大量のディジタルコンテンツへのアクセスを提供することは、手に負えない問題ではない。しかし、これは、VODなどのアプリケーションに対する集中化された解決策が単純に良好にはスケーリングされないという認識と、IP4などのIPベースのプロトコルが、固有にはQoSを提供しないという認識とを必要とする。必要なものは、インテリジェントな方法である。この方法は、インターネットの固有に分散式のアーキテクチャを活用することによって、VODなどのアプリケーションの「ネットワークベースの」QoSを提供するためにネットワークトラフィックを監視し、管理する。それを行うためには、真のオンデマンド機能性がインターネットの既存インフラストラクチャ内で実現されなければならない場合に、莫大な量のストレージリソース及びネットワーク帯域幅リソースを、それらを消費するエンドユーザクライアントの「より近く」に分散させなければならない。   [17] Nevertheless, providing access to large amounts of digital content over the Internet while maintaining high QoS is not an unmanageable problem. However, this requires the recognition that a centralized solution for applications such as VOD simply does not scale well and that IP-based protocols such as IP4 do not inherently provide QoS. To do. What is needed is an intelligent method. This method monitors and manages network traffic to provide “network-based” QoS for applications such as VOD by leveraging the inherently distributed architecture of the Internet. To do that, if true on-demand functionality must be realized within the existing infrastructure of the Internet, a huge amount of storage resources and network bandwidth resources will be consumed by the end-user client that consumes them. Must be distributed "closer".

[18]また、ケーブルテレビジョンネットワークは、両方向でIPプロトコルを使用するのではなく、コンテンツが搬送波周波数上でディジタル信号を変調する(例えば、QAM64変調を使用する)ことによってクライアントに配信され、戻り経路(例えば要求に関する)が「Real Time Streaming Protocol」(RTSP)などのプロトコルを使用する。しかしながら、インターネットなどのIPベースのネットワークに関するものと同一の問題の多くが、ケーブルテレビジョンネットワークにも同等にあてはまることに留意されたい。CATVネットワークは、インターネットと同一の、制限されたネットワーク帯域幅の問題及びスケーラビリティの問題に固有に直面する。いずれにせよ、CATVネットワークは、既存ネットワークインフラストラクチャの広範囲の変更がなければ、分散式の解決策を許すことがより難しい。   [18] Also, cable television networks do not use the IP protocol in both directions, but the content is delivered to the client by returning a digital signal on the carrier frequency (eg, using QAM64 modulation) and returning The path (eg, for requests) uses a protocol such as “Real Time Streaming Protocol” (RTSP). However, it should be noted that many of the same issues as for IP-based networks such as the Internet apply equally to cable television networks. CATV networks face the same limited network bandwidth and scalability issues as the Internet. In any case, CATV networks are more difficult to allow for distributed solutions without extensive changes to existing network infrastructure.

[19]本発明は、高いQoSを維持しながらもインターネットを介する大量のリニアディジタルコンテンツの配信を可能にするように設計された、複数の動的なコンテンツパッケージング及び負荷平衡化のシステム及び方法に関する。本発明のさまざまな実施形態を、VODアプリケーションに照らして開示するが、その基礎になる概念は、他のコンテンツ配信のシステム及びアプリケーションのホストに、特にディジタルコンテンツがそのようなコンテンツの最終的なユーザの「より近く」にあることから利益を得るホストに適用可能である。   [19] The present invention provides a plurality of dynamic content packaging and load balancing systems and methods designed to enable the delivery of large amounts of linear digital content over the Internet while maintaining high QoS. About. While various embodiments of the present invention are disclosed in the context of VOD applications, the underlying concept is that other content delivery systems and applications hosts, especially digital content, is the ultimate user of such content. Applicable to hosts that benefit from being “closer” to

[20]一実施形態で、ディジタルコンテンツの諸部分が、選択されたネットワークピアに分散され、そのようなコンテンツが後に取り出される時のQoSを高める。更なる一実施形態では、ディジタルコンテンツのそのような諸部分の位置のインデックスが、生成され、維持され、その後、そのようなコンテンツの取出中にQoSをさらに高めるのに利用される。もう1つの実施形態では、ネットワークピアの間の通信が、高いQoSを維持しながらそのようなディジタルコンテンツを分散させ、取り出すプロセスを容易にするために監視される。   [20] In one embodiment, portions of digital content are distributed to selected network peers to increase QoS when such content is later retrieved. In a further embodiment, an index of the location of such portions of digital content is generated and maintained, and then used to further enhance QoS during the retrieval of such content. In another embodiment, communications between network peers are monitored to facilitate the process of distributing and retrieving such digital content while maintaining high QoS.

[21]図2に、ネットワークプラットフォームとしてインターネットを利用する、本発明の概念的VODシステム実施形態を示す。図1に関して上で注記したように、インターネットの既存グローバル物理インフラストラクチャは、相互接続されたBBルータ40のコア、並びにREG ISP 30、ローカルISP 20、及びエンドユーザクライアントノード10を含む。専用VODサーバを展開するのではなく、本発明のこの実施形態は、「VODピア」15(例えば、セットトップボックス、PC、ゲーム機、携帯電話機、及びさまざまな他のクライアントデバイス)をエンドユーザクライアント位置(例えば、家庭並びに他の宛先)に展開する。この形で、VOD機能性を実施するのに必要なネットワークリソース(ストレージ、ネットワーク帯域幅、及び処理を含む)が、コンテンツにオンデマンドでアクセスし、これを見るために、そのネットワークリソースを消費するVODピア15の間で真に分散される。   [21] FIG. 2 illustrates a conceptual VOD system embodiment of the present invention that utilizes the Internet as a network platform. As noted above with respect to FIG. 1, the existing global physical infrastructure of the Internet includes a core of interconnected BB routers 40, and a REG ISP 30, a local ISP 20, and an end user client node 10. Rather than deploying a dedicated VOD server, this embodiment of the present invention allows a “VOD peer” 15 (eg, set-top box, PC, game console, mobile phone, and various other client devices) to end user clients. Expand to a location (eg, home as well as other destinations). In this way, the network resources (including storage, network bandwidth, and processing) necessary to implement the VOD functionality consume that network resource to access and view the content on demand. Really distributed among the VOD peers 15.

[22]図2にも示されるように、相対的に少数の「VODサポートサーバ」55が、必ずしもエンドユーザVODピア15へのコンテンツの分散及び配信の主要な機能のためではなく、補助的な目的(初期化及びクラッシュ回復、ソフトウェア更新、フォールバック通信、及びオプションの登録)のために設けられることに留意されたい。一実施形態(下でより詳細に述べる)では、4つ又は5つのVODサポートサーバ55が、グローバルインターネット全体を通じてVODピア15に「最も信頼性の高い」機能を与えるのに十分である。   [22] As also shown in FIG. 2, a relatively small number of “VOD support servers” 55 are not necessarily for the primary function of content distribution and distribution to end-user VOD peers 15, Note that it is provided for purposes (initialization and crash recovery, software updates, fallback communication, and optional registration). In one embodiment (described in more detail below), four or five VOD support servers 55 are sufficient to provide the “most reliable” function to VOD peers 15 throughout the global Internet.

[23]十分な台数のVODピア15が展開されるまで、VODサポートサーバ55を、特定の区域内のVODピア15のグループをシミュレートするための「シード」サーバとして使用することもできる。そのようなVODピア15が展開された時に、これらの「シード」サーバは、徐々に不必要になり、他の場所に再展開するか、他の目的に利用することができる。   [23] VOD support server 55 may also be used as a “seed” server to simulate a group of VOD peers 15 within a particular area until a sufficient number of VOD peers 15 are deployed. When such VOD peers 15 are deployed, these “seed” servers are gradually becoming unnecessary and can be redeployed elsewhere or utilized for other purposes.

[24]パブリケーションサーバ16も、オンデマンドでVODピア15から使用可能にされるコンテンツを公開する(すなわち、供給する)ことを望む任意の実体によって提供される。一実施形態で、これらのサーバは、VODシステム内での分配のためにコンテンツを準備するように設計されたVODパブリッシングソフトウェア(図示せず)を実行するパーソナルコンピュータを含む。   [24] The publication server 16 is also provided by any entity that wishes to publish (ie, serve) content that is made available from the VOD peer 15 on demand. In one embodiment, these servers include personal computers running VOD publishing software (not shown) designed to prepare content for distribution within the VOD system.

[25]VODピア15は、映画、テレビジョン番組エピソード、NFLフットボールゲームなどの再放送されるスポーツイベント、及び個人のホームビデオクリップさえ含むさまざまなディジタルメディア「コンテンツオブジェクト」をオンデマンドで表示する機能性を含む。下で述べるように、1つ以上のコンテンツオブジェクトのネットワークへの公開は、「イベント」を構成する。   [25] VOD peer 15 has the ability to display various digital media “content objects” on demand, including movies, television program episodes, rebroadcast sporting events such as NFL football games, and even personal home video clips Including sex. As described below, the release of one or more content objects to the network constitutes an “event”.

[26]本発明のVODシステムの一実施形態で、VODピア15は、コンテンツオブジェクトへの実質的に即時のアクセスを与えられる。どのシステムも、すべての潜在的なコンテンツオブジェクトへの即時アクセスを保証することはできないが、さまざまなQoSレベルが、確立され得る。一実施形態で、ほとんどのコンテンツオブジェクト(例えば、約50000本の最も人気のある映画を含む)に、ほぼ即時に(T0)アクセスでき、例えば、ユーザの要求から平均して短い秒数(例えば、1/2秒から12秒までの範囲)以内に開始される。一部のコンテンツオブジェクトは、特定のVODピア15からそれほどたやすく入手可能ではない(例えば、そのようなコンテンツオブジェクトへの「近接」に起因して)場合があり、数分又はそれ以上(T1)にわたって、例えば、30秒から5分までの範囲内に開始されない場合がある。さらに他のコンテンツオブジェクトは、要求された時にシステム上で使用可能ですらない(T2)場合があるが、そのような要求は、「プリオーダ(pre−order)」を起動することができる。プリオーダは、要求するユーザのVODピア15に配信され、そこで格納される前に24時間もの遅延をもたらす。   [26] In one embodiment of the VOD system of the present invention, the VOD peer 15 is given substantially immediate access to the content object. None of the systems can guarantee immediate access to all potential content objects, but various QoS levels can be established. In one embodiment, most content objects (eg, including about 50,000 most popular movies) can be accessed almost immediately (T0), eg, on average, a short number of seconds (eg, from a user request) Within a range from 1/2 second to 12 seconds). Some content objects may not be as readily available from a particular VOD peer 15 (eg, due to “proximity” to such content objects) and may be several minutes or more (T1) For example, it may not start within the range of 30 seconds to 5 minutes. Still other content objects may not be available on the system when requested (T2), but such a request may trigger a “pre-order”. The pre-order is delivered to the requesting user's VOD peer 15 and introduces a 24 hour delay before being stored there.

[27]一実施形態で、VODピア15は、10GBのストレージを有するクライアントデバイスである。このストレージの一部分(通常は約4GB)は、要求されたコンテンツオブジェクトの再生に割り振られ、残りの6GBは、他の「近くの」VODピア15の間でコンテンツオブジェクトを「共有する」のに使用可能である。上で注記したように、VODアプリケーションは、大量のストレージ容量を必要とするが、これは、さまざまなVODピア15の間でコンテンツオブジェクトのストレージを分散させることによって軽減できるネットワークリソース制約である。   [27] In one embodiment, the VOD peer 15 is a client device having 10 GB of storage. A portion of this storage (usually about 4 GB) is allocated for playback of the requested content object, and the remaining 6 GB is used to “share” the content object among other “near” VOD peers 15. Is possible. As noted above, VOD applications require a large amount of storage capacity, which is a network resource constraint that can be mitigated by distributing the storage of content objects among various VOD peers 15.

[28]したがって、コンテンツオブジェクトは、即時の配信のために最適化される構成要素「パッケージ」にフォーマットされる。下で述べるように、1つの目標は、コンテンツオブジェクトへのアクセスを「要求する」可能性が最も高いVODピア15のできる限り「近く」にそのようなコンテンツオブジェクトの「供給」を配置することである。パッケージのサイズ及び位置は、アクセス時間を最小にするために動的に調整される。例えば、一実施形態で、平均パッケージサイズは、ビデオの約30秒分であり、より小さいパッケージ(例えば、10秒分)が、コンテンツオブジェクトのより早期の部分のために予約され(すなわち、ユーザが、後続パッケージが取り出されている間に映画を開始することを可能にするために)、より大きいパッケージ(例えば、2分分)が、残りの部分のために利用される。パッケージのサイズ、位置、及びコピーの個数さえをも、例えば実際に測定された配信時間、要求のパターン、及び他の要因に応じて、動的に調整することができる。   [28] Thus, the content object is formatted into a component “package” that is optimized for immediate delivery. As described below, one goal is to place a “supply” of such content objects as “close” as possible to the VOD peer 15 that is most likely to “request” access to the content object. is there. Package size and location are dynamically adjusted to minimize access time. For example, in one embodiment, the average package size is about 30 seconds of video and a smaller package (eg, 10 seconds) is reserved for an earlier portion of the content object (ie, the user A larger package (e.g., 2 minutes) is utilized for the remainder, to allow the movie to start while subsequent packages are being removed. The package size, location, and even the number of copies can be dynamically adjusted, for example, depending on actual measured delivery times, request patterns, and other factors.

[29]数百テラバイトのストレージを集中化された専用サーバに展開するのではなく、そのようなストレージは、数万台又は数十万台(おそらくは数百万台)のVODピア15の間で効率的に分散される。パッケージをVODピア15の間でインテリジェントに分散させることによって、コンテンツオブジェクトに関する要求を、多数の異なる近くのVODピア15からの複数のパッケージに同時にアクセスすることによって、相対的に迅速に満足することができる。   [29] Rather than deploying hundreds of terabytes of storage to a centralized dedicated server, such storage is between tens of thousands or hundreds of thousands (possibly millions) of VOD peers 15. Distributed efficiently. By intelligently distributing packages among VOD peers 15, requests for content objects can be satisfied relatively quickly by accessing multiple packages from many different nearby VOD peers 15 simultaneously. it can.

[30]あるノードから別のノードへコンテンツオブジェクトを「ストリーミングする」(例えば、標準的なストリーミングプロトコル及びマルチキャストプロトコルを利用して)ではなく、個々のパッケージは、標準的なIPベースの転送プロトコルを介して多数の異なるVODピア15から同時にアクセスされる。したがって、ストリーミングプロトコル内でQoSを実施しようとするのではなく、さまざまなネットワークトラフィック統計(例えば、アクセス時間)を監視するのにVODピア15上の分散ソフトウェアを利用することによって、QoSをネットワーク自体の中に効果的に組み込むことができる。ネットワークトラフィック統計は、VODピア15要求の前にコンテンツオブジェクトのパッケージを分散させることとそのような要求に応答してこれらのパッケージにアクセスすることとの両方に使用できる。   [30] Rather than “streaming” content objects from one node to another (eg, using standard streaming and multicast protocols), individual packages must use standard IP-based transport protocols. Via a number of different VOD peers 15 simultaneously. Therefore, rather than trying to implement QoS within the streaming protocol, QoS is made to the network itself by utilizing distributed software on the VOD peer 15 to monitor various network traffic statistics (eg, access times). Can be effectively incorporated into. Network traffic statistics can be used both for distributing packages of content objects prior to VOD peer 15 requests and for accessing these packages in response to such requests.

[31]下でより詳細に述べるように、QoSは、効果的にネットワーク自体に組み込まれ、VODピアのこのネットワークの固有の一体の構成要素になる。この「ネットワークベースのQoS」又は「NQoS」は、VODアプリケーション及び他のアプリケーションをその上で構築できる基礎になる。   [31] As will be described in more detail below, QoS is effectively incorporated into the network itself and becomes a unique integral component of this network of VOD peers. This “network-based QoS” or “NQoS” is the basis upon which VOD applications and other applications can be built.

[32]ネットワークへのコンテンツオブジェクトの「パブリケーション」の際にそのコンテンツオブジェクトのパッケージを「プッシュする」(すなわち、それらをVODピア15の間で分散させる)ことによって、そのようなパッケージを、その後に、任意のVODピア15の要求時に「プルする」(すなわち、そのようなVODピア15から取り出す)ことができるようになる。複数の方法が、この「プッシュ−プル」概念を実施するのに使用され、後にパッケージをオンデマンドでプルする可能性が最も高いVODピア15の「近傍」内でそれらのパッケージをプッシュできるようにする。   [32] “Push” the content object's packages during the “publication” of the content object to the network (ie, distribute them among the VOD peers 15) , Can be “pulled” (ie, removed from such VOD peer 15) upon request of any VOD peer 15. Several methods are used to implement this “push-pull” concept so that the packages can be pushed within the “neighborhood” of the VOD peer 15 that is most likely to pull the packages on demand later. To do.

[33]コンテンツが要求を待っている「エッジサーバ」に格納される従来技術のVODシステムと異なって、本発明のコンテンツオブジェクトは、どのコンテンツが(及び何個のコピーが)どのVODピア15から使用可能にされるべきかを予測することを試みることによって、VODピア15の間でプッシュされる。次に、VODピア15は、どのコンテンツオブジェクトが使用可能でありそのコンテンツオブジェクトがどこに配置されているかに関する情報に基づいて、そのようなコンテンツをプルする要求を行うことができる。例えば、ユーザインターフェースは、十分な情報を有し、所望の映画が「即座に」使用可能であるか否か又はある遅延を必要とする可能性があるか否かを特定のユーザに示す。   [33] Unlike prior art VOD systems where content is stored on an “edge server” waiting for a request, the content object of the present invention is from which VOD peer 15 which content (and how many copies). Pushed between VOD peers 15 by trying to predict what should be enabled. The VOD peer 15 can then make a request to pull such content based on information regarding which content objects are available and where the content objects are located. For example, the user interface has sufficient information to indicate to a particular user whether the desired movie is available “instantly” or may require some delay.

[34]このプッシュ−プル機構を容易にする1つのそのような概念が、互いと相対的に高いQoSを共有する相対的に「近い」VODピア15のネットワーク「クラスタ」又はグループの概念である。例えば、インターネットの物理インフラストラクチャの多くは、常に変化してはいるが、公に入手可能な情報から入手することができる。そのような情報を、IPアドレス及び標準的なIPロケーションサービスから入手される地理的情報と共に利用して、VODピア15のそのようなクラスタを初期に確立することができる。これらのクラスタ内のVODピア15の間での情報の転送は、パケット消失の確率がより低い、より制限的でないボトルネックを与える(例えば、より長いパスと比較して)。特定のクラスタ内のVODピア15は、クラスタにまたがるVODピア15と比較して、「より近い」すなわち、互いからのより小さい「インターネット距離」内にあると考えることができる。   [34] One such concept that facilitates this push-pull mechanism is the concept of a network “cluster” or group of relatively “close” VOD peers 15 that share a relatively high QoS with each other. . For example, much of the physical infrastructure of the Internet is constantly changing, but can be obtained from publicly available information. Such information can be utilized along with the IP address and geographic information obtained from standard IP location services to initially establish such a cluster of VOD peers 15. Transfer of information between VOD peers 15 in these clusters provides a less restrictive bottleneck with a lower probability of packet loss (eg, compared to a longer path). VOD peers 15 within a particular cluster can be considered “closer”, ie, within a smaller “Internet distance” from each other, as compared to VOD peers 15 across clusters.

[35]各VODピア15上で分散「クラスタコントローラ」ソフトウェアを提供することによって、さまざまなネットワークトラフィック統計を経時的に動的に監視することができる。例えば、接続性の既知の帯域幅及び他の態様(例えば、ノード間のホップ数)に加えて、ping時間を周期的に測定することができ、長い時間間隔にわたる接続の信頼性も周期的に測定することができる。そのような情報を分散された形で(例えば、少数の隣接物だけについて知っているVODピア15を用いて)維持することによって、この情報を、実質的にすべてのVODピア15に伝搬させることができる。クラスタコントローラは、実質的に、コンテンツ平衡化分散サーバである。   [35] By providing distributed “cluster controller” software on each VOD peer 15, various network traffic statistics can be dynamically monitored over time. For example, in addition to the known bandwidth and other aspects of connectivity (eg, the number of hops between nodes), ping times can be measured periodically, and the reliability of connections over long time intervals is also periodically Can be measured. Propagating this information to virtually all VOD peers 15 by maintaining such information in a distributed fashion (eg, using VOD peers 15 that know only a few neighbors) Can do. The cluster controller is essentially a content balancing distributed server.

[36]さらに、「信頼」のレベルを規定することもでき、その接続性が経時的により高い信頼性を示すVODピア15を、「より信頼性の高い」ものとして指定することができるようになっている。次に、VODピア15は、等しいかより低い「信頼レベル」を有する隣接するノードだけではなく、少数のより信頼性の高いVODピア15とも通信することができる。   [36] In addition, a level of “trust” can be defined so that a VOD peer 15 whose connectivity is more reliable over time can be designated as “more reliable”. It has become. The VOD peer 15 can then communicate with a small number of more reliable VOD peers 15 as well as neighboring nodes having equal or lower “trust levels”.

[37]これらの信頼レベルは、クラスタメンバシップの維持並びに「インタークラスタ(inter−Cluster)」及び「スーパークラスタ(super−Cluster)」(すなわち、より大きいスーパーセットクラスタ)通信の管理など、より高いレベルの管理機能の責任を負う、クラスタ内の相対的により信頼性の高いVODピア15を指定するのに利用することができる。より信頼性の高いVODピア15は、例えば、他のノードが使用可能でない時に、これに頼ることができる。そのようなより信頼性の高いVODピア15内のクラスタコントローラは、それ自体のクラスタを越える問題を処理するという点で、仮想「スーパークラスタコントローラ」と考えることができる。   [37] These trust levels are higher, such as maintaining cluster membership and managing “inter-cluster” and “super-cluster” (ie, larger superset clusters) communications. It can be used to designate a relatively more reliable VOD peer 15 within the cluster that is responsible for the level management function. A more reliable VOD peer 15 can rely on this when, for example, no other node is available. A cluster controller in such a more reliable VOD peer 15 can be considered a virtual “super cluster controller” in that it handles problems beyond its own cluster.

[38]VODピア15は、デフォルトで(又はクラッシュ時に)非常に信頼性の高いノード(例えば、VODサポートサーバ55)に連絡することだけを知っているものとすることができ、その後、特定のクラスタに参加するために、わずかにより信頼性の低いVODピア15に向けられる(おそらくは最も適当なクラスタを決定するためにアクセス時間をテストした後に)ものとすることができる。VODピア15のさまざまなクラスタを確立し、維持した後に、これらのクラスタを、VODピア15の間でのパッケージのプッシュと、そのようなVODピア15からのパッケージのプルとの両方に利用することができる。   [38] The VOD peer 15 may only know to contact a very reliable node (eg, VOD support server 55) by default (or at the time of a crash), and then To join a cluster, it can be directed to a slightly less reliable VOD peer 15 (possibly after testing access time to determine the most appropriate cluster). After establishing and maintaining the various clusters of VOD peers 15, use these clusters for both pushing packages between VOD peers 15 and pulling packages from such VOD peers 15. Can do.

[39]例えば、パブリケーションサーバ16に、特定のクラスタ内の相対的に信頼性の高いVODピア15に連絡するように指示することができる(例えば、既知のVODサポートサーバ55によって)。公開されるコンテンツオブジェクトに関する情報には、そのジャンル又はカテゴリ(例えば、コメディ、スポーツなど)、パブリッシャの名前(例えば、Disneyなどの主要なパブリッシャの、おそらく人気を示す)、タイムゾーン、タイムサイクル(例えば、それが要求される可能性が最も高い可能性がある時)、及び全体的な人気だけではなくある地理的領域内での人気をも示す他の情報を含めることができる。   [39] For example, the publication server 16 may be instructed to contact a relatively reliable VOD peer 15 in a particular cluster (eg, by a known VOD support server 55). Information about the published content object includes its genre or category (eg, comedy, sports, etc.), publisher name (eg, indicating the popularity of a major publisher, such as Disney), time zone, time cycle (eg, , When it is most likely to be required), and other information indicating not only the overall popularity but also the popularity within a certain geographic region.

[40]第1の例では、パブリケーションサーバ16は、この情報を利用して、公開用コンテンツオブジェクトを準備することができる。パブリケーションサーバ16は、このコンテンツオブジェクトを、特定のサイズのパッケージにフォーマットすることができ、事前定義のルールに基づく特定の時間間隔の間に使用可能にすることができる。或いは、多数のクラスタの間で若しくは特定の地理的領域内のクラスタの間で伝搬されることを可能にすることができる。   [40] In the first example, the publication server 16 can use this information to prepare a public content object. The publication server 16 can format this content object into a specific size package and make it available for a specific time interval based on predefined rules. Alternatively, it can be allowed to propagate between multiple clusters or between clusters within a particular geographic region.

[41]特定のクラスタ内の相対的に信頼性の高いクラスタコントローラは、やはりこの情報に基づいて、クラスタ内の特定のVODピア15にこのコンテンツオブジェクトのパッケージのある個数のコピーをプッシュ又は伝搬させるようにパブリケーションサーバ16に指示することができる。例えば、クラスタコントローラは、特定のジャンルのコンテンツオブジェクトが、そのクラスタ又は地理的領域内で人気がより低いことを知る(包括的に又は経時的に測定された要求からのいずれかで)ことができ、したがって、そのコンテンツオブジェクトのパッケージのより少数のコピーをそのクラスタ内のVODピア15の間で伝搬させることができる。この分散は、動的情報が収集される時に経時的に変更することができる。パッケージは、特定のコンテンツオブジェクトの要求の頻度の変化に基づいて(例えば、より多くのコメディが要求される時に)より多くの回数(又はより少ない回数)だけ複製される。   [41] A relatively reliable cluster controller in a particular cluster also pushes or propagates a certain number of copies of this content object package to a particular VOD peer 15 in the cluster based on this information. The publication server 16 can be instructed as follows. For example, a cluster controller can know that a particular genre of content objects are less popular within that cluster or geographic region (either comprehensively or from requests measured over time). Thus, fewer copies of the content object's package can be propagated among the VOD peers 15 in the cluster. This distribution can change over time as dynamic information is collected. Packages are replicated more times (or fewer times) based on changes in the frequency of requests for a particular content object (eg, when more comedy is requested).

[42]所定の情報並びに動的に監視される情報を利用して、特定のコンテンツオブジェクトのパッケージのコピーの適当な位置、サイズ、及び個数を「予測する」ことによって、コンテンツオブジェクトを、それを要求する可能性がより高く、それらに相対的に迅速にアクセスできる可能性がより高いVODピア15にプッシュすることができる。パブリケーションサーバ16及びクラスタコントローラは、この情報を利用して、そのクラスタ内のVODピア15がパッケージを要求する場合のアクセス時間を最適化するために、そのクラスタ内でそのようなパッケージを分散させる。この形で、コンテンツオブジェクトは、後に要求される時の配信時間及び総合的QoSを最適化するために、さまざまなネットワーククラスタの間で分散される。   [42] Utilizing predetermined information as well as dynamically monitored information, the content object can be identified by "predicting" the appropriate location, size, and number of copies of a particular content object VOD peers 15 that are more likely to request and more likely to be able to access them relatively quickly can be pushed. The publication server 16 and cluster controller use this information to distribute such packages within the cluster in order to optimize access time when VOD peers 15 in the cluster request packages. In this way, content objects are distributed among various network clusters to optimize delivery time and overall QoS when later requested.

[43]さらに、コンテンツオブジェクトが公開されている間に、クラスタコントローラは、クラスタ内及びクラスタ間でのコンテンツオブジェクトのパッケージの位置を示す、「トラッキングインデックス」及び関連する「トラッキングファイル」をも生成し、伝搬させる。経時的に、このトラッキングインデックス及び関連するトラッキングファイルを、パッケージの人気が高まるか下がる時に(例えば、特定のクラスタ内の要求パターンに基づいて)更新することができる。人気のより低いコンテンツオブジェクトは、経時的にネットワークから消滅する場合さえあり、その後に要求された場合に再公開される必要がある。一実施形態では、「プライベート」パブリッシャからのコンテンツオブジェクトだけが、ネットワークから完全に消滅することを許可され、商業パブリッシャからのコンテンツオブジェクトは、少なくとも最小個数の複製されたコピーがネットワーク上のどこかに格納されたままであることを保証するために、監視される。   [43] In addition, while the content object is published, the cluster controller also generates a “tracking index” and an associated “tracking file” that indicate the location of the content object's package within and between clusters. Propagate. Over time, this tracking index and associated tracking files can be updated as package popularity increases or decreases (eg, based on request patterns within a particular cluster). Less popular content objects may even disappear from the network over time and need to be republished later if requested. In one embodiment, only content objects from “private” publishers are allowed to disappear completely from the network, and content objects from commercial publishers have at least a minimum number of replicated copies somewhere on the network. Monitored to ensure it remains stored.

[44]さまざまなネットワーククラスタにまたがってVODピア15の間でパッケージをプッシュすることによってコンテンツオブジェクトを公開し(また、そのようなパッケージの位置を識別するトラッキングインデックス及び関連するトラッキングファイルを生成し、分散させ)、動的ネットワークトラフィックを監視し、それに従って信頼レベル、パッケージのサイズ及び位置(並びに他の属性)を変更した後に、これらのコンテンツオブジェクトは、今や、VODピア15によって、それ自体のシステム上での表示のためにプル又は要求することができる。隣接するVODピア15に最初の要求を行う際に、そのような要求は、その要求されたコンテンツオブジェクトの関連するトラッキングインデックス又はトラッキングファイルにアクセスできる十分に信頼性の高いVODピア15に達するまで伝搬される。   [44] Publish content objects by pushing packages between VOD peers 15 across various network clusters (and generate tracking indexes and associated tracking files that identify the location of such packages; Distributed), after monitoring dynamic network traffic and changing the trust level, package size and location (and other attributes) accordingly, these content objects are now sent by the VOD peer 15 to its own system. Can be pulled or requested for display above. When making an initial request to an adjacent VOD peer 15, such request propagates until it reaches a sufficiently reliable VOD peer 15 that can access the associated tracking index or tracking file of the requested content object. Is done.

[45]パブリケーションプロセス及びプッシュプロセスの場合と同様に、分散クラスタコントローラは、プルプロセスにも多く用いられる。トラッキングインデックスを突き止めた(locating)時に、クラスタコントローラは、そのコンテンツオブジェクトのパッケージのグループの位置を含む最も適当な(すなわち、「最も近い」)トラッキングファイルを識別し、次に、パッケージのこれらのグループに関する「サブ要求」を監視し、管理する責任を負う。一実施形態で、要求元のVODピア15は、トラッキングファイルを利用し、コンテンツオブジェクトのパッケージを「共有」ストレージ空間に格納している近くのVODピア15に直接にそのようなパッケージのグループを順番に要求する。   [45] As with publication and push processes, distributed cluster controllers are often used for pull processes. When locating the tracking index, the cluster controller identifies the most appropriate (ie, “closest”) tracking file that contains the location of the group of packages for that content object, and then these groups of packages Responsible for monitoring and managing “sub-requests” for In one embodiment, the requesting VOD peer 15 uses a tracking file to direct a group of such packages directly to a nearby VOD peer 15 that stores the package of content objects in a “shared” storage space. To request.

[46]プッシュプロセス中とプルプロセス中との両方に、トラッキングインデックス及び関連するトラッキングファイルは、動的に更新され、関連するVODピア15の間で伝搬され、各パッケージ又はパッケージのグループを入手するのに必要なアクセス時間を減らす。優先順位は、コンテンツオブジェクト内のより早期のパッケージに与えられる。というのは、これらが、より早く要求されるからである。例えば、転送の成功確率を最大にするために、特殊なアルゴリズムが使用される。より後のパッケージに関して問題が発生した場合には、そのようなパッケージが「遅くなる」前に、より長い回復時間が使用可能である。これは、より多くの機会をもたらし、例えば、より信頼性の高いVODピア15に(又は、例えば緊急の場合に、VODサポートサーバ55にさえ)連絡する。   [46] During both the push process and the pull process, the tracking index and associated tracking file are dynamically updated and propagated between the associated VOD peers 15 to obtain each package or group of packages. Reduce the access time required. Priorities are given to earlier packages in the content object. This is because they are required sooner. For example, a special algorithm is used to maximize the transfer success probability. If problems occur with later packages, a longer recovery time can be used before such packages are “slowed down”. This provides more opportunities, for example, contacting the more reliable VOD peer 15 (or even the VOD support server 55, for example in case of an emergency).

[47]他のアルゴリズムは、より「高価な」ネットワークリソースを利用するコストを、障害の確率及び結果に対して平衡化する。例えば、より高価なVODサポートサーバ55は、早期のパッケージ及び/又は緊急時にのみ使用されるものとすることができる。   [47] Other algorithms balance the cost of using more “expensive” network resources against the probability and consequences of failure. For example, the more expensive VOD support server 55 may be used only for early packaging and / or emergencies.

[48]複数のサブ要求を並列に行うことができ、さまざまなネットワークパスが監視され、事前にテストされるので、VODピア15は、任意のコンテンツオブジェクトをオンデマンドで要求する時であっても、確実に高いQoSとすることができる。さらに、より多くのVODクライアントが追加のコンテンツオブジェクトを要求する時に、そのようなコンテンツオブジェクトのパッケージは、後続要求のQoSを最大にするために、さまざまなクラスタにまたがって適当なVODピア15に既に事前に分散され(すなわちプッシュされ)ている。ネットワーク条件、要求パターン、又は他の測定可能な要因が経時的に変化した場合には、オンデマンド要求に先立ってパッケージのサイズ、位置、及び個数の調整が行われ、高いQoSを提供する非常に拡張性のあるVODシステムがもたらされる。   [48] Since multiple sub-requests can be made in parallel, and various network paths are monitored and pre-tested, the VOD peer 15 can even request any content object on demand. It is possible to ensure a high QoS. In addition, as more VOD clients request additional content objects, the package of such content objects is already on the appropriate VOD peer 15 across various clusters to maximize the QoS of subsequent requests. Distributed (ie pushed) in advance. When network conditions, request patterns, or other measurable factors change over time, the size, location, and number of packages are adjusted prior to on-demand requests, providing very high QoS. A scalable VOD system is provided.

[49]コンテンツをそのエンドユーザクライアントに対して集中化された形で格納し、配信する専用エッジサーバに頼る従来技術のIPベースのVODトポロジを示す図である。[49] FIG. 4 illustrates a prior art IP-based VOD topology that relies on a dedicated edge server to store and distribute content in a centralized manner to its end-user clients. [50]QoSを最適化するために、動的負荷平衡化技法を利用してネットワークトラフィックを監視し、これに応答して、これに従ってコンテンツオブジェクトパッケージのサイズ、個数、及び位置(他の属性の中でも)を変更し、追跡する、コンテンツオブジェクトがエンドユーザクライアントの間で分散P2Pの基礎で格納され、配信される本発明のIPベースのVODトポロジの実施形態を示す図である。[50] To optimize QoS, network load is monitored using dynamic load balancing techniques, and in response, the size, number, and location of content object packages (of other attributes) FIG. 4 illustrates an embodiment of the IP-based VOD topology of the present invention in which content objects are modified and tracked (among others) stored and distributed on a distributed P2P basis among end-user clients. [51]例えばより高速の及び/又はより高く信頼できるコンテンツ配信が必要になるなど、問題が発生した場合に、より高い信頼レベルのVODピアへのアクセスを有する、類似する信頼レベル及び相対的に高いQoSを互いの間で共有するVODピアのクラスタ又はグループの実施形態を示す図である。[51] Similar trust levels and relatives with access to higher trust level VOD peers in the event of problems such as requiring faster and / or higher reliable content delivery FIG. 6 illustrates an embodiment of a cluster or group of VOD peers sharing high QoS between each other. [52]コンテンツオブジェクトのパッケージのグループが選択されたVODピアに動的にプッシュされ、高いQoSを維持しながらこれらのグループをその後にクラスタ内の任意のVODピアによってオンデマンドのビューイングのためにプルできるようになっている、VODピアの通常のクラスタの実施形態を示す図である。[52] A group of content object packages are dynamically pushed to the selected VOD peers, and these groups are subsequently viewed for on-demand viewing by any VOD peer in the cluster while maintaining high QoS. FIG. 6 illustrates an embodiment of a regular cluster of VOD peers that are enabled to be pulled. [53]一意識別子、ネット近接情報、及び現在の信頼レベルなどのさまざまな動的記述子を含むVODピアに関係する静的情報と動的情報との両方を追跡するのに使用されるノードIDデータ構造の実施形態を示す図である。[53] Node ID used to track both static and dynamic information related to VOD peers including various dynamic descriptors such as unique identifier, net proximity information, and current trust level FIG. 6 illustrates an embodiment of a data structure. [54]ネットワーク上で公開されるイベントを一意に識別するのに使用されるコンテンツ参照ID(CRID)データ構造の実施形態を示す図である。[54] Fig. 14 illustrates an embodiment of a content reference ID (CRID) data structure used to uniquely identify events published on the network. [55]特定のクラスタ内で公開されるコンテンツオブジェクトパッケージのグループの位置を追跡するのに使用されるトラッキングファイルデータ構造の実施形態を示す図である。[55] FIG. 5 illustrates an embodiment of a tracking file data structure used to track the location of a group of content object packages published within a particular cluster. [56]関連するトラッキングファイルのコピーを有するVODピアを突き止めるのに使用されるトラッキングインデックスデータ構造の実施形態を示す図である。[56] An illustration of an embodiment of a tracking index data structure used to locate a VOD peer with a copy of an associated tracking file. [57]VODピアの間で通信を確立する初期対称ハンドシェーキングプロトコルの実施形態を示す図である。[57] FIG. 5 illustrates an embodiment of an initial symmetric handshaking protocol that establishes communication between VOD peers. [58]新しいコンテンツオブジェクトをネットワーク上にアナウンスし、その後に公開する(すなわち、プッシュする)動的通信プロセスの実施形態を示す図である。[58] FIG. 6 illustrates an embodiment of a dynamic communication process in which a new content object is announced on the network and then published (ie, pushed). [58]新しいコンテンツオブジェクトをネットワーク上にアナウンスし、その後に公開する(すなわち、プッシュする)動的通信プロセスの実施形態を示す図である。[58] FIG. 6 illustrates an embodiment of a dynamic communication process in which a new content object is announced on the network and then published (ie, pushed). [59]本発明のVODシステムの「インスタントプレイ」機能を容易にするために、コンテンツオブジェクトを可変長パッケージにスライスすることと、それらを異なる個数のVODピアの間で分散させることとの実施形態を示す図である。[59] Embodiments of slicing content objects into variable length packages and distributing them among different numbers of VOD peers to facilitate the “instant play” functionality of the VOD system of the present invention FIG. [60]ネットワーク内のVODピアのクラスタ内とクラスタ間との両方でのVODピアの間の信頼レベルの実施形態を示す図である。[60] FIG. 6 illustrates an embodiment of a trust level between VOD peers both within and between clusters of VOD peers in a network. [61]VODピアでのビューイングのために選択されたコンテンツオブジェクトをダウンロードする(すなわち、プルする)のにその後に使用される、関連するトラッキングインデックス及びトラッキングファイルを突き止める動的通信プロセスの実施形態を示す図である。[61] An embodiment of a dynamic communication process that locates an associated tracking index and tracking file that is subsequently used to download (ie, pull) selected content objects for viewing at a VOD peer FIG. [61]VODピアでのビューイングのために選択されたコンテンツオブジェクトをダウンロードする(すなわち、プルする)のにその後に使用される、関連するトラッキングインデックス及びトラッキングファイルを突き止める動的通信プロセスの実施形態を示す図である。[61] An embodiment of a dynamic communication process that locates an associated tracking index and tracking file that is subsequently used to download (ie, pull) selected content objects for viewing at a VOD peer FIG. [62]コンテンツオブジェクトのビューイングを要求したVODピアにコンテンツオブジェクトパッケージを供給する複数のVODピアの実施形態を示す図である。[62] FIG. 6 illustrates an embodiment of multiple VOD peers that supply a content object package to a VOD peer that has requested viewing of a content object. [63]ネットワークベースのQoS(NQoS)を提供するために、ネットワークトラフィック及び挙動をVODピアの間で監視し、その結果としてあるVODピア及びネットワークの特性(信頼レベル及びコンテンツオブジェクトパッケージ分散など)を変更する動的通信プロセスの実施形態を示す図である。[63] In order to provide network-based QoS (NQoS), network traffic and behavior are monitored between VOD peers and the resulting VOD peer and network characteristics (such as trust level and content object package distribution) FIG. 6 illustrates an embodiment of a dynamic communication process to change. [64]ネットワーク使用量、コンテンツオブジェクト消費、及びシステム状態の他の特性の変化を動的に監視した結果としてその構成が経時的に変化するVODピアのクラスタのパターンの実施形態を示す図である。[64] An embodiment of a cluster pattern of VOD peers whose configuration changes over time as a result of dynamically monitoring changes in network usage, content object consumption, and other characteristics of the system state. . [64]ネットワーク使用量、コンテンツオブジェクト消費、及びシステム状態の他の特性の変化を動的に監視した結果としてその構成が経時的に変化するVODピアのクラスタのパターンの実施形態を示す図である。[64] An embodiment of a cluster pattern of VOD peers whose configuration changes over time as a result of dynamically monitoring changes in network usage, content object consumption, and other characteristics of the system state. . [64]ネットワーク使用量、コンテンツオブジェクト消費、及びシステム状態の他の特性の変化を動的に監視した結果としてその構成が経時的に変化するVODピアのクラスタのパターンの実施形態を示す図である。[64] An embodiment of a cluster pattern of VOD peers whose configuration changes over time as a result of dynamically monitoring changes in network usage, content object consumption, and other characteristics of the system state. . [64]ネットワーク使用量、コンテンツオブジェクト消費、及びシステム状態の他の特性の変化を動的に監視した結果としてその構成が経時的に変化するVODピアのクラスタのパターンの実施形態を示す図である。[64] An embodiment of a cluster pattern of VOD peers whose configuration changes over time as a result of dynamically monitoring changes in network usage, content object consumption, and other characteristics of the system state. . [65]宣伝コンテンツを他のコンテンツオブジェクトの中及び間に挿入するシステムのブロック図実施形態を示す図である。[65] FIG. 7 illustrates a block diagram embodiment of a system for inserting promotional content into and between other content objects.

I.主要な概念
A.クラスタ及び信頼レベル
I. Key concepts A. Cluster and trust level

[66]上で注記したように、インターネットの既存物理インフラストラクチャの所定の態様は、公に入手可能な情報から入手することができる。そのような情報を、図3に示された一実施形態で利用して、クラスタとして知られるVODピアのグループを作成することができる。標準的なIPアドレスロケーションサービスを、IP範囲及び他の既知の物理インフラストラクチャ情報と組み合わせて利用して、VODピアのIPアドレスを、「クラスタ識別子」すなわちクラスタIDに効果的に変換することができる。このクラスタIDも、図3に示されており、クラスタの階層を識別するように働く。この実施形態では、これらのクラスタは、動的に作成され、変更される。   [66] As noted above, certain aspects of the existing physical infrastructure of the Internet can be obtained from publicly available information. Such information can be utilized in one embodiment shown in FIG. 3 to create a group of VOD peers known as clusters. Standard IP address location services can be utilized in combination with IP ranges and other known physical infrastructure information to effectively translate the IP address of a VOD peer to a “cluster identifier” or cluster ID. . This cluster ID is also shown in FIG. 3 and serves to identify the cluster hierarchy. In this embodiment, these clusters are created and modified dynamically.

[67]これらのクラスタは、当初に、既知の物理インフラストラクチャ情報から作成され、包括的な及び実際のデータ転送の監視並びに関連するテストの実行から導出されるネットワークトラフィック統計に基づいて動的に更新されるので、VODピアのグループ以上のものを表す。具体的に言うと、クラスタは、互いの間で特定のQoSを概略的に共有するVODピアのグループを識別するように働く。   [67] These clusters are initially created from known physical infrastructure information and dynamically based on network traffic statistics derived from comprehensive and actual data transfer monitoring and related test runs. Since it is updated, it represents more than a group of VOD peers. Specifically, the cluster serves to identify a group of VOD peers that generally share a particular QoS between each other.

[68]下でより詳細に述べるように、VODピアは、特定の時間間隔内に互いの間である量のデータを一貫して確実に(経時的に)転送できる場合に、互いから特定のインターネット距離以内にあると考えることができる。互いに相対的に「近い」これらのVODピアが、クラスタを形成する。   [68] As described in more detail below, VOD peers are able to transfer specific amounts of data from each other when they can consistently and reliably transfer (over time) an amount of data between each other within a specific time interval. Think of it within the internet distance. These VOD peers that are “close” to each other form a cluster.

[69]VODピアのこれらのクラスタを識別するとともにデータ転送に利用することによって、ネットワークは、別のクラスタ内の「相対的に高帯域幅の」VODピアからよりもはるかに迅速かつ確実に、同一クラスタ内の「相対的に低帯域幅の」VODピアから要求元VODピアに情報を分散させることを可能にすることができる。言い換えると、「ローカル」イントラクラスタ(intra−Cluster)の性能及び信頼性は、後続のオンデマンド要求に関するQoSの優れた予測量になる。というのは、クラスタ情報が、コンテンツオブジェクトの公開中に、コンテンツオブジェクトパッケージが格納される(プッシュされる)適当なVODピアを識別するのに利用されるからである。   [69] By identifying these clusters of VOD peers and utilizing them for data transfer, the network is much quicker and more reliable than from a “relatively high bandwidth” VOD peer in another cluster, Information can be distributed from “relatively low bandwidth” VOD peers within the same cluster to requesting VOD peers. In other words, the performance and reliability of a “local” intra-cluster is a good estimate of QoS for subsequent on-demand requests. This is because, during the publication of the content object, the cluster information is used to identify the appropriate VOD peer where the content object package is stored (pushed).

[70]実用的な問題として、相対的に少数のVODピアだけが、大量のデータを長距離にわたって迅速かつ確実に転送する「グローバル」能力を示す高性能高信頼性バックボーンルータの「近く」にある可能性がある。しかしながら、大量のVODピアの間で相対的に高いQoSを維持しながらVOD機能性を達成するためには、互いの間で迅速かつ確実にデータを交換できる相対的に「近い」VODピアのクラスタによって共有される「ローカル」QoSを識別し、活用することが重要になる。   [70] As a practical matter, only a relatively small number of VOD peers are "near" high-performance and reliable backbone routers that exhibit a "global" ability to transfer large amounts of data quickly and reliably over long distances. There is a possibility. However, to achieve VOD functionality while maintaining a relatively high QoS among a large number of VOD peers, a cluster of relatively “close” VOD peers that can exchange data quickly and reliably between each other. It is important to identify and utilize the “local” QoS shared by.

[71]あるVODピアが、より迅速かつ確実に、より大量のデータをある他のVODピアに転送する能力を経時的に示すと、そのVODピアの信頼レベルが高められる。その信頼レベルは、そのクラスタ内のVODピアの間で相対的に高いQoSを維持する能力を反映することができる。この「ローカル」QoSの維持に加えて、より高い信頼レベルは、最終的に、より「グローバルな」QoSを表す。より「グローバルな」QoSは、インタークラスタ(例えば、交差しないクラスタ)及びスーパークラスタ(例えば、スーパーセットクラスタ)通信を管理するVODピアの能力を示す。   [71] When a VOD peer shows the ability to transfer a larger amount of data to one other VOD peer over time more quickly and reliably, the trust level of that VOD peer is increased. The trust level can reflect the ability to maintain a relatively high QoS among VOD peers in the cluster. In addition to maintaining this “local” QoS, a higher confidence level ultimately represents a more “global” QoS. More “global” QoS refers to the ability of VOD peers to manage intercluster (eg, non-intersecting clusters) and supercluster (eg, superset cluster) communications.

[72]そのような通信は、インターネットの遠隔部分へのデータ転送だけではなく、クラスタにまたがるVODピアの性能及び信頼性の管理及び監視、並びにクラスタメンバシップの変更及び「ローカル」クラスタ境界にまたがる信頼レベルの調整をも含む場合がある。さらに、下でより詳細に述べるように、これらの「非常に信頼性の高い」VODピアは、コンテンツオブジェクトのパブリケーション及びネットワークを介するそのパッケージのプッシュ、並びにコンテンツオブジェクトの表示のためのVODピアのオンデマンド要求を満足するためのそのようなパッケージの取出すなわちプルの、所定の高水準機能的態様を管理するのにも用いられる。   [72] Such communications span not only data transfer to remote parts of the Internet, but also management and monitoring of VOD peer performance and reliability across clusters, as well as cluster membership changes and "local" cluster boundaries May also include trust level adjustment. In addition, as described in more detail below, these “very reliable” VOD peers are responsible for publishing content objects and pushing their packages over the network, as well as turning on VOD peers for content object display. It can also be used to manage certain high-level functional aspects of the removal or pulling of such packages to meet demand requirements.

[73]クラスタ320などのクラスタ内のVODピアは、類似する信頼レベルを有するある隣接するVODピア並びにより高い(及びおそらくはより低い)信頼レベルを有するいくつかのVODピアについて知らされる。これは、情報をクラスタ内の(及び時々クラスタを越えて)相対的に非常に信頼性の高いVODピアに分散された形で「上に」伝搬させ、その後、クラスタ全体を通じてより低い信頼レベルのVODピアに「下に」戻って伝搬させることを可能にする。   [73] VOD peers in a cluster, such as cluster 320, are informed about some neighboring VOD peers with similar trust levels and some VOD peers with higher (and possibly lower) trust levels. This propagates information “up” in a distributed manner to relatively highly reliable VOD peers within the cluster (and sometimes across clusters) and then lower confidence levels throughout the cluster. Allows a VOD peer to propagate “down” back.

[74]個々のVODピア又は他のコンピュータ(例えば、VODサポートサーバ)が、特定のクラスタを構成する特定のVODピアについて知る必要はない(そのような情報は、分散された形で照会を伝搬させることによって生成することができるが)。あるいは、クラスタは、分散された形で生成され、ある相対的に非常に信頼性の高いVODピアが、他の類似して非常に信頼性の高いVODピアについて知らされる。経時的に、より信頼性の低いVODピアがネットワークに参加する時に、それらのVODピアは、特定のクラスタに割り当てられ、少数のより非常に信頼性の高いVODピア並びにそれら自体の信頼レベルを有するVODピア(このすべてが同一クラスタ内にある)について知らされる。   [74] Individual VOD peers or other computers (eg, VOD support servers) need not know about the particular VOD peers that make up a particular cluster (such information propagates queries in a distributed fashion) Can be generated by :) Alternatively, the clusters are created in a distributed manner and one relatively very reliable VOD peer is informed about other similar and very reliable VOD peers. Over time, when less reliable VOD peers join the network, they are assigned to a specific cluster and have a few more highly reliable VOD peers as well as their own trust level Informed about VOD peers (all of which are in the same cluster).

[75]図3を参照すると、相対的に少数の専用VODサポートサーバが、インターネット全体を通じて戦略的グローバル位置に位置決めされ、最高の信頼レベル301(例えば、1から16までのスケール上の1)を割り当てられる。一実施形態で、これらの専用VODサポートサーバは、高帯域幅光ファイバインターネットバックボーンルータに非常に「近く」、非常に迅速に互いの間で通信する(及びデータを転送する)ことが可能である。上で注記したように、これらのVODサポートサーバは、VODアプリケーション機能性(コンテンツオブジェクトの格納及び取出など)に直接に利用される必要があるのではなく、単に、VODピアがネットワークに追加される時のそれらのVODピアの初期化を含む、所定の補助的機能の実行を援助するものとすることができる。   [75] Referring to FIG. 3, a relatively small number of dedicated VOD support servers are positioned at strategic global locations throughout the Internet and have the highest confidence level 301 (eg, 1 on a scale from 1 to 16). Assigned. In one embodiment, these dedicated VOD support servers are very “close” to the high bandwidth fiber optic internet backbone router and are able to communicate (and transfer data) between each other very quickly. . As noted above, these VOD support servers do not need to be used directly for VOD application functionality (such as storage and retrieval of content objects), but simply VOD peers are added to the network. It may assist in performing certain auxiliary functions, including initialization of those VOD peers at times.

[76]一実施形態で、VODピアがネットワークに追加される時に、そのVODピアは、これらのVODサポートサーバのうちで、特定クラスタへのそのVODピアの割当を含むある初期化サービスを提供できる1つ以上のVODサポートサーバについて固有に知っている。「クラスタコントローラ」として知られる各VODピア内の分散ソフトウェアは、この初期化プロセスに参加するだけではなく、VODピアの代わりにイントラクラスタサービス(及び、いくつかの事例で、VODピアの信頼レベルが十分に高い場合に、インタークラスタサービス)をも管理する。   [76] In one embodiment, when a VOD peer is added to the network, the VOD peer can provide some initialization service among these VOD support servers that includes the assignment of that VOD peer to a particular cluster. Know specifically about one or more VOD support servers. The distributed software within each VOD peer, known as the “cluster controller”, not only participates in this initialization process, but instead of the VOD peer, the intra-cluster service (and in some cases the VOD peer's trust level is If it is high enough, it also manages intercluster services.

[77]各VODピアのクラスタコントローラによって分散された形で提供される(下でより詳細に述べる)これらのサービスは、主要なVOD機能性を含む。すなわち、コンテンツオブジェクトのパブリケーション及びプッシュ、各コンテンツオブジェクトのパッケージのグループの位置を維持するためのトラッキングインデックス及びトラッキングファイルの生成及び伝搬、要求元VODピアでのコンテンツオブジェクトのオンデマンド表示のためのこれらのコンテンツオブジェクトパッケージのプル、並びにNQoSを維持するためのネットワークトラフィックの動的監視(これは、VODピアの信頼レベルと、特定のクラスタ内のVODピアのメンバシップと、コンテンツオブジェクトのパッケージのグループのサイズ及び位置並びに関連するトラッキングインデックス及びトラッキングファイルの内容及び位置との動的な更新を伴う)などである。   [77] These services, provided in a distributed manner by the cluster controller of each VOD peer (described in more detail below), include the main VOD functionality. These include: publication and push of content objects, generation and propagation of tracking indexes and tracking files to maintain the location of each content object's package group, and on-demand display of content objects at the requesting VOD peer. Content object package pull, as well as dynamic monitoring of network traffic to maintain NQoS (this includes VOD peer trust level, VOD peer membership in a particular cluster, and size of content object package groups And dynamic location and location and associated tracking index and tracking file contents and location).

[78]一実施形態で、同一のクラスタコントローラソフトウェアが、すべてのVODピアに存在する。このソフトウェアは、特定のクラスタ内の各VODピアの信頼レベルを維持する責任を負う。例えば、特定のVODピアの信頼性が所定の閾値未満に低下しつつあることを検出した(ネットワークトラフィックの動的監視を介して)時に、クラスタコントローラは、そのVODピアの信頼レベルをそれ相応に下げることができる。もちろん、信頼レベルを、類似する形で高めることができる。   [78] In one embodiment, the same cluster controller software is present on all VOD peers. This software is responsible for maintaining the trust level of each VOD peer within a particular cluster. For example, when it detects that a particular VOD peer's reliability is dropping below a predetermined threshold (via dynamic monitoring of network traffic), the cluster controller will set the VOD peer's trust level accordingly. Can be lowered. Of course, the confidence level can be increased in a similar manner.

[79]十分に高い信頼レベルでは、このクラスタコントローラソフトウェアの諸部分は、インタークラスタ通信とスーパークラスタ通信との両方を含む、クラスタにまたがるVODピアの信頼レベルを維持する責任をも負う。例えば、あるVODピアの信頼レベルを単純に上げるか下げることに加えて、この仮想スーパークラスタコントローラ機能性には、あるクラスタから別のクラスタにVODピアのメンバシップを変更することをも含めることができる。あるVODピアの信頼レベルが経時的に上がる時に、そのVODピアは、以前のクラスタ(例えばクラスタ320)だけではなく他のクラスタをも含む、より大きいスーパークラスタ(例えば、スーパークラスタ310)の一部になることができる。   [79] At a sufficiently high trust level, portions of this cluster controller software are also responsible for maintaining the trust level of VOD peers across the cluster, including both inter-cluster and super-cluster communications. For example, in addition to simply raising or lowering the trust level of one VOD peer, this virtual super cluster controller functionality may also include changing the membership of a VOD peer from one cluster to another. it can. When the trust level of a VOD peer increases over time, that VOD peer is part of a larger supercluster (eg, supercluster 310) that includes other clusters as well as the previous cluster (eg, cluster 320). Can be.

[80]一実施形態では、16個の信頼レベルが、クラスタコントローラによって維持される。この実施形態では、最高のすなわち「最も信頼性の高い」信頼レベルが、信頼レベル1 301と考えられ、このレベルは、専用VODサポートサーバ用に予約される。VODピアのネットワークが経時的に増大する時に、信頼レベル2〜5 302が、VODピアの総数のうちの相対的に少ない数を表すはずである。言い換えると、相対的に少ない数を超える「最も信頼性の高い」ノードが存在することは、絶対にないはずである。   [80] In one embodiment, 16 trust levels are maintained by the cluster controller. In this embodiment, the highest or “most reliable” trust level is considered trust level 1 301 and this level is reserved for dedicated VOD support servers. As the network of VOD peers grows over time, trust levels 2-5 302 should represent a relatively small number of the total number of VOD peers. In other words, there should never be a “most reliable” node that exceeds a relatively small number.

[81]その一方で、信頼レベル6〜9 303は、大量のVODピアを表す。経時的に、VODピアは、その性能及び信頼性の動的に監視される変化に従って、これらの信頼レベルの間で定期的に上下に移動する可能性がある。信頼レベル10〜16(いずれも図示されていないが、ネットワーク全体にわたって分布するさまざまな信頼レベル305に含まれる)は、相対的に少数の「信頼できない」又は「異常に低帯域幅の」VODピアを表す。それでも、信頼レベル16は、30分の持続時間にわたる平均ネットワーク負荷時間中に100kbpsなど、VODピアの許容できる配信確率の「フロア」を表すことができる。   [81] On the other hand, trust levels 6-9 303 represent a large number of VOD peers. Over time, VOD peers may move up and down periodically between these trust levels according to dynamically monitored changes in their performance and reliability. Trust levels 10-16 (none of which are shown but included in various trust levels 305 distributed throughout the network) are relatively few "unreliable" or "abnormally low bandwidth" VOD peers. Represents. Nevertheless, confidence level 16 can represent a “floor” of acceptable delivery probability for a VOD peer, such as 100 kbps, during an average network load time over a 30 minute duration.

[82]例えば、信頼レベル12 304は、一実施形態で、VODピアが、当初にネットワークに接続される(又は、例えばハードウェア障害の後に、再接続される)時に割り当てられる「デフォルト」信頼レベルと考えることができる。そのクラスタコントローラが、ネットワークトラフィックを経時的に動的に監視することによって統計情報を入手する時に、その信頼レベルが、QoSに対するそのVODピアの影響をより正確に反映するために、その統計情報に従って調整される。実際には、ネットワーク接続性の持続時間自体が、VODピアの信頼レベルの判定に寄与する信頼性要因である。   [82] For example, trust level 12 304, in one embodiment, is a “default” trust level that is assigned when a VOD peer is initially connected to the network (or reconnected, eg, after a hardware failure). Can be considered. When the cluster controller obtains statistical information by dynamically monitoring network traffic over time, the trust level follows the statistical information to more accurately reflect the impact of the VOD peer on QoS. Adjusted. In practice, the duration of the network connectivity itself is a reliability factor that contributes to the determination of the trust level of the VOD peer.

[83]一実施形態では、信頼レベルは、それ自体がさまざまな「信頼レベル要因」を組み合わせることから判定される、4つの主要な「信頼レベルパラメータ」を反映する。この4つの信頼レベルパラメータは、さまざまな領域にまたがるQoSに対するVODピアの影響を表し、
(1)VODピアの「ローカル」クラスタ、
(2)そのより大きい「地域」クラスタ、
(3)国又は大陸など、より「遠隔の」より大きい領域、及び
(4)帯域幅及び相互接続性が制限される、コアインターネットの相対的に遠隔の部分
を含む。
[83] In one embodiment, the trust level reflects four main “trust level parameters” that are themselves determined from a combination of various “trust level factors”. These four trust level parameters represent the impact of VOD peers on QoS across different domains,
(1) “Local” cluster of VOD peers,
(2) the larger “region” cluster,
(3) includes more “remote” larger areas, such as countries or continents, and (4) relatively remote portions of the core Internet where bandwidth and interconnectivity are limited.

[84]下でより詳細に述べる信頼レベル要因は、ネットワークトラフィックを動的に監視することから導出されるさまざまな統計を含む。これらの信頼レベル要因が、各信頼レベルパラメータによって表される領域に関して組み合わされて、その領域内のQoSを反映する信頼レベルパラメータが生成される。次に、これらの信頼レベルパラメータが、ローカルQoSだけではなく、VODピアをインタークラスタ責任及びスーパークラスタ責任について信頼できる度合をも反映する「グローバル」信頼レベルを生成するために組み合わされる。一実施形態で、この信頼レベルは、信頼レベルパラメータの加重平均によって判定される。   [84] The confidence level factors described in more detail below include various statistics derived from dynamically monitoring network traffic. These confidence level factors are combined for the region represented by each confidence level parameter to generate a confidence level parameter that reflects the QoS within that region. These trust level parameters are then combined to generate a “global” trust level that reflects not only local QoS, but also the degree to which VOD peers can be trusted for inter-cluster and super-cluster responsibilities. In one embodiment, this confidence level is determined by a weighted average of confidence level parameters.

[85]もちろん、信頼レベル要因を経時的に補足し、置換し、微調整し、信頼レベルパラメータ領域にまたがってさまざまなQoSレベルをより正確に表すことを試みてることができる。一実施形態で、これらの信頼レベル要因は、
(i)ロード時間(例えば、夕方早くの「プライムタイム」時間中のより高いトラフィックを反映する)、
(ii)高負荷時間中の相対的にローカルなピアへの「高速」サービス配信の確率、
(iii)次の500時間の間にオンラインのままである確率、
(iv)「非常に遠隔の」VODピアへの「高速」サービス配信の確率(インターネットを介するよい接続性を反映する)、
(v)所与のISPへの最高速度、及び
(vi)所与のISPからの最高速度
を含む、経時的に動的に測定できる無数の属性を含む。
B.トラッキングファイル及びトラッキングインデックス
[85] Of course, confidence level factors can be supplemented, replaced, and fine tuned over time to attempt to more accurately represent the various QoS levels across the confidence level parameter domain. In one embodiment, these confidence level factors are:
(I) Load time (eg reflecting higher traffic during early prime “prime time” time),
(Ii) Probability of “fast” service delivery to relatively local peers during high load times,
(Iii) Probability of staying online for the next 500 hours,
(Iv) Probability of “fast” service delivery to “very remote” VOD peers (reflecting good connectivity over the Internet),
Contains a myriad of attributes that can be measured dynamically over time, including (v) the maximum speed to a given ISP, and (vi) the maximum speed from a given ISP.
B. Tracking file and tracking index

[86]コンテンツオブジェクトがVODピア全体に分散され、オンデマンドで取り出される、本発明の主要なプッシュプロセス及びプルプロセスを述べる前に、まず、主要なデータ構造の一部を説明することが役に立つ。主要なデータ構造は、これらのVODピアの間で分散されるコンテンツオブジェクトのパッケージのグループの位置を「追跡する(track)」のに使用される。一実施形態で、これらのデータ構造は、新たに公開されるコンテンツオブジェクトのパッケージのグループがさまざまなVODピアにプッシュされるパブリケーションプロセス中に作成され、更新され、その後、取出プロセス中に、コンテンツオブジェクトに関するVODピアのオンデマンド要求を満足するのに利用される。これらのデータ構造は、後続要求の相対的に高いQoSを維持するために、クラスタコントローラによるネットワークトラフィックの動的監視に応答して、経時的に更新もされる。   [86] Before describing the main push and pull processes of the present invention where content objects are distributed across VOD peers and retrieved on demand, it is helpful to first describe some of the main data structures. The primary data structure is used to “track” the location of a group of content object packages distributed among these VOD peers. In one embodiment, these data structures are created and updated during a publication process in which a group of newly published content object packages are pushed to various VOD peers, and then during the retrieval process Used to satisfy the on-demand requirements of VOD peers. These data structures are also updated over time in response to dynamic monitoring of network traffic by the cluster controller to maintain the relatively high QoS of subsequent requests.

[87]コンテンツオブジェクトが分割されるパッケージのさまざまなグループの位置を追跡するのに、2つの主要なデータ構造が使用される。すなわち、(1)トラッキングファイル及び(2)トラッキングインデックスである。これらのデータ構造を調査する前に、コンテンツオブジェクトを、1つ以上のコンテンツオブジェクトを公開することというイベントと区別することが重要である。例えば、ある映画が、1つのコンテンツオブジェクトを構成することができ、その予告編が、もう1つの別々のコンテンツオブジェクトを構成することができる。予告編のパブリケーションを、イベントとすることができ、映画のパブリケーションを、別々のイベントとすることができる。さらに、固定された地理的区域(例えば、ニューヨーク及びカリフォルニア)での映画の「早期封切り」のパブリケーションが、同一パブリッシャによるものであれ異なるパブリッシャによるものであれ、同一のコンテンツオブジェクト(映画)のより後の全世界のパブリケーションと区別可能な、別々のイベントを構成することもできる。   [87] Two main data structures are used to track the location of various groups of packages into which content objects are divided. That is, (1) tracking file and (2) tracking index. Before examining these data structures, it is important to distinguish content objects from events that expose one or more content objects. For example, a movie can constitute one content object, and its trailer can constitute another separate content object. The trailer publication can be an event and the movie publication can be a separate event. In addition, publications of “early release” of movies in fixed geographic areas (eg, New York and California) later than the same content object (movie), whether by the same publisher or by different publishers. It is also possible to configure separate events that are distinguishable from all the world's publications.

[88]したがって、これらのデータ構造は、コンテンツオブジェクトのパッケージのグループの位置の追跡を援助するが、その存在は、1つ以上のコンテンツオブジェクトを公開することを含むイベントに基づく。一実施形態では、複数のコンテンツオブジェクトを単一のイベントで公開することができるが、もう1つの実施形態では、各コンテンツオブジェクトのパブリケーションが別々のイベントを構成することができることに留意されたい。   [88] Thus, these data structures assist in tracking the location of a group of content object packages, but their presence is based on events that involve exposing one or more content objects. It should be noted that in one embodiment, multiple content objects can be published in a single event, but in another embodiment, each content object publication can constitute a separate event.

[89]さらに、これらのデータ構造自体を、これらのデータ構造の全体が必ずしも任意の単一の位置に存在する必要がないという点で、「分散させる」ことができることに留意されたい。これらのデータ構造は、例えば、個々のクラスタ内に「サブセット版」が存在するように階層化することができる。スーパークラスタは、そのスーパークラスタ内に含まれる追加クラスタを含む追加エントリを有する「スーパーセット版」を含むことができる。これらのデータ構造は、「隣接する」VODピアだけを含むエントリを含むように、より従来に近い方法で分散させることもでき、これは、エントリのより大きいセット(例えば、クラスタ全体を含む)を入手するための要求を伝えることが必要である。   [89] Furthermore, it should be noted that these data structures themselves can be “distributed” in that the entirety of these data structures need not necessarily be in any single location. These data structures can be layered, for example, so that there is a “subset version” within each cluster. A supercluster may include a “superset version” having additional entries that include additional clusters contained within the supercluster. These data structures can also be distributed in a more traditional way to include entries that contain only “neighboring” VOD peers, which can result in a larger set of entries (eg, including the entire cluster). It is necessary to communicate the request to obtain.

[90]第1の主要なデータ構造であるトラッキングファイルは、特定のクラスタ内で公開されたコンテンツオブジェクトのパッケージのグループの位置を追跡するのに使用される。一実施形態で、各「葉」クラスタ(すなわち、さらにサブクラスタに分割されることのないクラスタ)内の別々のトラッキングファイルは、コンテンツオブジェクトがそのクラスタ内で公開されるイベントのそれぞれを追跡する。上で注記したように、スーパーセットクラスタは、その「サブクラスタ」のそれぞれのエントリを含む「スーパーセット」トラッキングファイルを含むことができる。   [90] A first primary data structure, a tracking file, is used to track the location of a group of content object packages published within a particular cluster. In one embodiment, a separate tracking file within each “leaf” cluster (ie, a cluster that is not further divided into sub-clusters) tracks each of the events for which content objects are published within that cluster. As noted above, a superset cluster may include a “superset” tracking file that includes respective entries for that “subcluster”.

[91]1つのクラスタの中であっても、トラッキングファイルをさらに「分散させる」ことができる。言い換えると、トラッキングファイルは、コンテンツオブジェクトがそのクラスタ内で公開されるイベントのそれぞれのエントリを含むことができるが、下でさらに述べるように、あるVODピアにあるトラッキングファイルのコピーが、その代わりに、そのVODピアが含まれたイベントのエントリだけを含むことができる。   [91] Even within a cluster, tracking files can be further “distributed”. In other words, the tracking file can contain an entry for each event for which the content object is published in that cluster, but as described further below, a copy of the tracking file at one VOD peer is instead , It can only contain entries for events that include that VOD peer.

[92]どの場合でも、トラッキングファイルは、コンテンツオブジェクトのパッケージのグループを、パッケージのその特定のグループのコピーが格納されているVODピア(例えば、これらのVODピアのIPアドレス)に相互に関連させる。例えば、上で注記したように、映画などのコンテンツオブジェクトを、平均してそれぞれ約30秒の変化するサイズの1000個の異なるパッケージに分割することができ、この映画の早期の部分は、相対的により小さい、おそらくは10秒だけのパッケージを含み、他のパッケージは、2分もの大きさとすることができる。トラッキングファイルは、そのコンテンツオブジェクトの最初の6つのパッケージのグループのエントリを含むことができ、このグループは、クラスタ内の8つの異なるVODピアに相互に関連するものとすることができ、これらのVODピアのそれぞれは、一緒にその映画の最初の分を表す6つのパッケージのグループのコピーを含む(コンテンツオブジェクトの人気に応じて、冗長性並びに高いQoSのために)。   [92] In any case, the tracking file correlates a group of packages of content objects to the VOD peers (eg, the IP addresses of these VOD peers) where copies of that particular group of packages are stored. . For example, as noted above, a content object such as a movie can be divided into 1000 different packages, each averaging about 30 seconds of varying size, with the early part of the movie being relative Smaller packages, perhaps only 10 seconds, and other packages can be as large as 2 minutes. The tracking file can contain entries for the first six package groups for that content object, which can be related to eight different VOD peers in the cluster and these VODs. Each of the peers contains a copy of a group of six packages that together represent the first minute of the movie (for redundancy as well as high QoS, depending on the popularity of the content object).

[93]追加のエントリが、そのコンテンツオブジェクトのパッケージの残りのグループ及びおそらくはそのクラスタ内で公開された他のコンテンツオブジェクトのパッケージのグループを説明することができる。例えば、下でより詳細に述べるように、イベントが、コンテンツオブジェクトのパブリケーションをもたらす時に、ある「マスタ」VODピアが、そのコンテンツオブジェクトのパッケージのグループの伝搬を管理するために選択される。これらの「マスタ」VODピア(そのコンテンツオブジェクトのパッケージのグループのいずれかを格納してもしなくてもよい)に加えて、他のVODピアが、そのコンテンツオブジェクトのパッケージのあるグループを格納するために選択される。   [93] Additional entries may describe the remaining groups of the content object package and possibly other content object packages published in the cluster. For example, as described in more detail below, when an event results in the publication of a content object, a “master” VOD peer is selected to manage the propagation of the group of packages for that content object. In addition to these “master” VOD peers (which may or may not store any of the groups of packages of that content object), other VOD peers store a group of packages of that content object. Selected.

[94]一実施形態で、そのコンテンツオブジェクトのパブリケーションに用いられるVODピア(例えば、「マスタ」VODピア並びにそのコンテンツオブジェクトのパッケージのグループを格納するVODピア)のそれぞれは、そのコンテンツオブジェクトのパッケージの各グループを、パッケージのそのグループが格納されているそのクラスタ内のすべてのVODピアに相互に関連させるエントリを有するトラッキングファイルを有する。これによって、そのトラッキングファイルのコピーのどれであっても、要求のさらなる伝搬を伴わずにそのコンテンツオブジェクト全体を突き止めるのに使用できるようになる。   [94] In one embodiment, each of the VOD peers used to publish the content object (eg, a “master” VOD peer as well as a VOD peer that stores a group of the content object's packages) Each group has a tracking file with entries that correlate to all VOD peers in that cluster where that group of packages is stored. This allows any copy of the tracking file to be used to locate the entire content object without further propagation of the request.

[95]一実施形態で、トラッキングファイルは、1つ以上の「マスタ」VODピア自体がコンテンツオブジェクトのパッケージのグループを格納するか否かにかかわりなく、その1つ以上の「マスタ」VODピアを識別する情報をも含む。他の実施形態では、上で注記したように、トラッキングファイルを、さらに「分散させる」ことができる(例えば、パッケージの関連するグループを格納する「隣接する」VODピアだけのエントリを含めるために、コンテンツオブジェクトのパッケージのグループのすべてを格納するVODピアを突き止める要求のさらなる伝搬が必要になる)。   [95] In one embodiment, the tracking file includes one or more “master” VOD peers, regardless of whether or not the one or more “master” VOD peers themselves store groups of packages of content objects. Also includes identifying information. In other embodiments, as noted above, the tracking file can be further “distributed” (eg, to include entries for only “adjacent” VOD peers that store relevant groups of packages, Further propagation of the request to locate the VOD peer that stores all of the group of content object packages is required).

[96]あるVODピアが、別のイベント(例えば、ネットワークに公開される異なるコンテンツオブジェクトのパッケージのグループの格納)にも用いられる場合に、別々のトラッキングファイルを、上で説明したように生成することができる。もう1つの実施形態では、その別のコンテンツオブジェクトのパッケージのグループに関する追加エントリを有する、同一のトラッキングファイルを利用することができる。どの場合でも、下でより詳細に述べるように、イベントにまたがって(例えば、2つの異なるコンテンツオブジェクトにまたがって)パッケージのグループを識別する、ある手段が設けられるはずである。   [96] If a VOD peer is also used for another event (eg, storing a group of different content object packages exposed to the network), a separate tracking file is generated as described above. be able to. In another embodiment, the same tracking file can be utilized with an additional entry for the group of packages for that other content object. In any case, there should be some means of identifying a group of packages across events (eg, across two different content objects), as described in more detail below.

[97]一実施形態では、特定のコンテンツオブジェクトのパッケージのグループの効率的なルックアップを容易にするために、暗号ハッシュアルゴリズムが使用される。コンテンツオブジェクトの各パッケージは、比較的少ないメモリ(例えば、ファイルポインタ、ハンドルなどのための)を利用する小さいブロック内でパッケージを検証できるようにする(例えば、ターゲットVODピアに複製されるか配信される時に)ために、共通のハッシュ値を割り当てられる。このハッシュベースのデータ構造は、
(i)コンテンツオブジェクトの全パッケージの総データサイズ、コンテンツオブジェクトが分割されたパッケージの個数、及びパッケージへの分割の前のオリジナルのコンテンツオブジェクトデータストリームへのオフセットを含むヘッダと、
(ii)各パッケージの共通のハッシュ値の検証を可能にする、各パッケージの内部ハッシュツリーのルートハッシュ値を含むパッケージ間ハッシュテーブルツリーと、
(iii)そのようなパッケージが格納されるデータへのオフセットのルックアップを可能にする、パッケージ内ハッシュツリーテーブルと、
(iv)データ自体(すなわち、各パッケージの内容)
とを含む。このデータ保全性検査インフラストラクチャを公開鍵インフラストラクチャと組み合わせることによって、経時的な粒度を伴って所望のVODピアへのパッケージの複製及び配信に関するコンテンツオブジェクト妥当性を制御する(例えば、許可し、又は取り消す)ことが可能になる。
[97] In one embodiment, a cryptographic hash algorithm is used to facilitate an efficient lookup of a group of packages for a particular content object. Each package of content objects allows the package to be verified in a small block that utilizes relatively little memory (eg, for file pointers, handles, etc.) (eg, replicated or distributed to the target VOD peer) To be assigned a common hash value. This hash-based data structure is
(I) a header including the total data size of all the packages of the content object, the number of packages into which the content object has been divided, and an offset to the original content object data stream before the division into packages;
(Ii) an inter-package hash table tree that includes a root hash value of each package's internal hash tree that enables verification of a common hash value for each package;
(Iii) an in-package hash tree table that allows lookup of an offset into the data in which such a package is stored;
(Iv) Data itself (that is, the contents of each package)
Including. By combining this data integrity checking infrastructure with a public key infrastructure, the content object validity for the replication and delivery of packages to the desired VOD peers with granularity over time (eg, allow or (Cancel).

[98]したがって、トラッキングファイルは、コンテンツオブジェクトが公開され、各クラスタ内の選択されたVODピアにプッシュされる時に、生成され、変更される。しかし、コンテンツオブジェクトをオンデマンドで要求するVODピアにこれらのパッケージを取り出すかプルするのにこれらのトラッキングファイルを利用するためには、まず、これらのトラッキングファイルを突き止めなければならない。   [98] Accordingly, a tracking file is created and modified when the content object is published and pushed to the selected VOD peer in each cluster. However, in order to use these tracking files to retrieve or pull these packages to VOD peers that request content objects on demand, these tracking files must first be located.

[99]一実施形態で、トラッキングインデックスは、関連するトラッキングファイルを突き止める代替手段を容易にするために、トラッキングファイルが作成される時に生成され、更新される。したがって、下でより詳細に述べるように、特定のコンテンツオブジェクトに関するオンデマンド要求は、検索をもたらすことができ、この検索では、関連するトラッキングファイルを直接に突き止めることができるかトラッキングインデックスを介して間接的に突き止めることができる。通常、そのような検索は、トラッキングインデックスが突き止められるまで「上に」(すなわち、より高い信頼レベルを有するVODピアに)伝搬し、このトラッキングインデックスは、関連するトラッキングファイルのコピーを有するさまざまな「候補」VODピアを識別する。次に、要求が、そのような候補VODピアのうちで十分に「近い」VODピアが突き止められるまで「下に」伝搬し、その後には、パッケージのグループを突き止め、要求元VODピアに配信することができる。   [99] In one embodiment, the tracking index is generated and updated when the tracking file is created to facilitate an alternative means of locating the associated tracking file. Thus, as described in more detail below, an on-demand request for a particular content object can result in a search, in which the associated tracking file can be located directly or indirectly via a tracking index. Can be determined. Typically, such a search propagates “up” (ie, to a VOD peer with a higher confidence level) until the tracking index is located, and this tracking index has a variety of “ Identify "candidate" VOD peers. The request then propagates “down” until such candidate VOD peers are sufficiently “close” VOD peers, after which the group of packages is located and delivered to the requesting VOD peer. be able to.

[100]したがって、トラッキングインデックスは、イベントを、そのイベントに関して公開されたコンテンツオブジェクトに関連するトラッキングファイルのコピーを有するVODピアの位置に相互に関連させる。一実施形態で、トラッキングインデックス自体は、階層化されたファイルであり、より多数のエントリが、より高い信頼レベルを有するVODピア(例えば、スーパークラスタを包含するVODピア)に存在する。   [100] Thus, the tracking index correlates an event with the location of a VOD peer that has a copy of the tracking file associated with the content object published for that event. In one embodiment, the tracking index itself is a layered file, with a greater number of entries present in VOD peers with higher trust levels (eg, VOD peers that contain superclusters).

[101]トラッキングインデックスの各エントリは、「コンテンツ参照ID」すなわち「CRID」を含む。CRIDは、それに従って1つ以上のコンテンツオブジェクトが公開された関連するイベントを一意に識別する(及び/又は関連するコンテンツオブジェクト若しくはその構成要素を区別する)ように働く。一実施形態で、各イベントのエントリは、トラッキングインデックスの複数の行を占めることができる。   [101] Each entry of the tracking index includes a "content reference ID" or "CRID". The CRID serves to uniquely identify an associated event (and / or distinguish between related content objects or components thereof) according to which one or more content objects have been published. In one embodiment, each event entry may occupy multiple rows of the tracking index.

[102]例えば、各エントリの第1行には、「コアCRID」(下で述べる)を含めることができる。コアCRIDは、コンテンツオブジェクトの特定の版(例えば、Disneyによって公開された映画「Aladdin」)を、特定の「葉」クラスタ内の各VODピア(又は、一実施形態では、各「マスタ」VODピアのみ)のIPアドレスに相互に関連させる。特定の「葉」クラスタは、そのコンテンツオブジェクトに関連するトラッキングファイルのコピーを格納する。後続行には、同一のコアCRIDと、別の「葉」クラスタ内の類似するVODピアのIPアドレスが含まれるはずである。   [102] For example, the first row of each entry may include a “core CRID” (described below). The core CRID identifies a particular version of a content object (eg, the movie “Aladdin” published by Disney) for each VOD peer in a particular “leaf” cluster (or, in one embodiment, each “master” VOD peer). Only) with IP addresses. A particular “leaf” cluster stores a copy of the tracking file associated with that content object. The follow-up should include the same core CRID and the IP address of a similar VOD peer in another “leaf” cluster.

[103]したがって、スーパークラスタを含むより高い信頼レベルのVODピアは、トラッキングインデックスを格納することができる。トラッキングインデックスは、イベントがそこで公開された各サブクラスタに相互に関連する複数の行を有する。関連するトラッキングファイルのコピーを格納するVODピアを識別するこれらのコアCRID行に加えて、追加の行が、コアCRID自体の構成要素と共に、これから下で説明するCRIDの他の構成要素を含むはずである。   [103] Accordingly, higher confidence level VOD peers, including superclusters, can store the tracking index. The tracking index has a plurality of rows that correlate to each sub-cluster in which the event was published. In addition to these core CRID lines that identify the VOD peer that stores the copy of the associated tracking file, additional lines should include the other components of the CRID described below, along with the components of the core CRID itself. It is.

[104]一実施形態で、コアCRIDは、一緒にコンテンツオブジェクトの版を一意に識別する2つのフィールドからなる。第1のフィールドは、イベントに関連するパブリッシャを一意に識別する「パブリッシャID」である。第2のフィールドは、そのパブリッシャについて、公開されるコンテンツオブジェクトを一意に識別する「イベントセレクタ」である。例えば、Disneyが、ネットワーク上で映画「Aladdin」を公開する場合に、イベントセレクタは、Aladdinのその版を一意に識別するはずである。このレベルの粒度は、例えば、ユーザがオンデマンドで表示されるコンテンツオブジェクトを選択できるレベルに相互に関連するものとすることができる。   [104] In one embodiment, the core CRID consists of two fields that together uniquely identify the version of the content object. The first field is a “publisher ID” that uniquely identifies the publisher associated with the event. The second field is an “event selector” that uniquely identifies the published content object for the publisher. For example, if Disney publishes the movie “Aladdin” on the network, the event selector should uniquely identify that version of Aladdin. This level of granularity can be correlated to, for example, the level at which a user can select content objects to be displayed on demand.

[105]しかし、CRIDの他の構成要素は、そのコンテンツオブジェクトがそれに従って公開されたイベントをさらに識別するように働く。例えば、DisneyのAladdinの「予告編」を見ることを望むユーザに対処するために、他のフィールドが、同一のコアCRIDを共通して共有しながらも、映画を予告編から区別することができる。実施形態に応じて、映画及び予告編のパブリケーションは、単一のイベント又は複数の別々のイベントを構成することができる。   [105] However, other components of the CRID serve to further identify the events whose content objects have been published accordingly. For example, to deal with a user who wants to see Disney's Aladdin "Trailer", the movie can be distinguished from the trailer while other fields share the same core CRID in common. Depending on the embodiment, movie and trailer publications may constitute a single event or multiple separate events.

[106]一実施形態で、CRIDは、コアCRIDに加えて、イベントをさらに記述する3つの他の「記述子」を含む。第1の記述子は、パブリケーションがそこから発する区域を識別する「パブリケーションゾーン」フィールド(例えば、都市又は郵便番号)並びにコンテンツオブジェクトを公開できる場所を示す「パブリケーション権利」フィールドを含む「主記述子」(例えば、郵便番号の範囲)である。このパブリケーション権利フィールドは、もちろん、不連続な区域(例えば、ロサンゼルス及びニューヨーク)を包含する複数のエントリを含むことができる。   [106] In one embodiment, the CRID includes, in addition to the core CRID, three other “descriptors” that further describe the event. The first descriptor includes a “publication zone” field (eg, city or zip code) that identifies the area from which the publication originates, as well as a “publication rights” field that indicates where the content object can be published. (For example, a range of zip codes). This publication rights field can, of course, include multiple entries that include discontinuous areas (eg, Los Angeles and New York).

[107]第2の記述子は、特定のイベントの人気を予測する(例えば、公開されたコンテンツオブジェクトのより多くのコピーを一部又はすべてのクラスタにプッシュすることによって)システムの能力を容易にする、パブリッシャに関する情報を提供する「パブリッシャ記述子」である。パブリッシャ記述子は、例えばより小さくより人気の低いパブリッシャからDisneyを区別できる「パブリッシャ優先順位」フィールドと、そのパブリッシャによって公開されたコンテンツを全般的に分類することを試みる(例えば、プライベートコンテンツ、生放送、コマーシャル映画、ポルノグラフィなど)「パブリッシャカテゴリ」フィールドとを含む。   [107] The second descriptor facilitates the ability of the system to predict the popularity of a particular event (eg, by pushing more copies of published content objects to some or all clusters) It is a “publisher descriptor” that provides information about the publisher. Publisher descriptors attempt to generally classify content published by the publisher and the “publisher priority” field, which can distinguish Disney from smaller and less popular publishers (eg, private content, live broadcasts, Including "Publisher Category" field).

[108]最後に、「終了記述子」は、関連するコンテンツオブジェクトを含むイベントを区別し、補足情報を提供するように働く単一のフィールドを含む。例えば、このフィールドの値は、映画(「00」)をそのメタデータ(「01」、題名、カテゴリ、封切り日などの映画に関する情報を含むテキスト並びにテキスト形式、グラフィック形式、ビデオ形式、又は他の形式の他の関連情報に関する)、又は「追加資産」(「02」、予告編、ストーリーボード、監督の注釈などに関する)から区別することができる。   [108] Finally, an “end descriptor” includes a single field that serves to distinguish and provide supplemental information for events that include related content objects. For example, the value of this field may be a movie (“00”), its metadata (“01”, text containing information about the movie, such as title, category, release date, etc.) as well as text, graphic, video, or other It can be distinguished from other related information in the form), or “additional assets” (related to “02”, trailers, storyboards, director notes, etc.)

[109]実施形態に応じて、これらの関連する資産を、単一のコンテンツオブジェクトの一部又は別々のコンテンツオブジェクトと考えることができ、これらの関連する資産を、単一のイベントとして又は別々のイベントとして公開することができる。したがって、CRIDは、別々の関連するイベントを区別するように、或いは単純に関連するコンテンツオブジェクト(若しくはその構成要素)を異なるレベルの粒度で識別するように働くことができる。   [109] Depending on the embodiment, these related assets may be considered part of a single content object or separate content objects, and these related assets may be considered as a single event or as separate It can be published as an event. Thus, CRID can serve to distinguish different related events, or simply to identify related content objects (or their components) at different levels of granularity.

[110]一実施形態で、トラッキングインデックスは、相対的に高い信頼レベルの(例えば、スーパークラスタに関連する)VODピアのみによって維持される。下でより詳細に説明するように、コンテンツオブジェクトが公開される時に、そのイベントは、トラッキングインデックス(そのイベント及び他のイベントに関する)を維持する十分に非常に信頼性の高いVODピアへの「上への」並びにそのトラッキングインデックスのコピーをやはり維持する他の同様に非常に信頼性の高い(例えば、他のスーパークラスタを管理する)VODピアへの「横への」要求の伝搬を起動する。   [110] In one embodiment, the tracking index is maintained only by VOD peers with relatively high confidence levels (eg, associated with a super cluster). As described in more detail below, when a content object is published, the event is “up” to a VOD peer that is sufficiently reliable to maintain a tracking index (with respect to that event and other events). Initiate the propagation of "sideways" requests to other similarly highly reliable VOD peers that still maintain a copy of its tracking index (eg, managing other superclusters).

[111]上で注記したように、このトラッキングインデックスは、他のより信頼性の低い(例えば、「より低いレベルの」スーパークラスタを管理する)VODピアも、より少数のエントリ(そのサブクラスタだけを反映する)を有する、そのトラッキングインデックスのコピーを維持することができるという点で、階層化することができる。さらに、このトラッキングインデックスは、そのサブクラスタ内で公開されたコンテンツオブジェクトに関するエントリだけ及びおそらくは関連するトラッキングファイルを有する「隣接する」VODピアのIPアドレスだけを含むことができるという点で、さらに「分散させる」こともできる。   [111] As noted above, this tracking index is also used by other less reliable VOD peers (eg, managing “lower level” superclusters) and fewer entries (only its subclusters). Can be layered in that a copy of the tracking index can be maintained. In addition, this tracking index can also contain only “distributed” IP addresses of “adjacent” VOD peers with only entries related to content objects published within that sub-cluster and possibly associated tracking files. You can also

[112]例えば、トラッキングインデックス及びトラッキングファイルの検索(例えば、VODピアがコンテンツオブジェクトを表示するためにオンデマンド要求を行う時)を含むさまざまな機能に関するネットワーク通信を容易にするために、ビットストリング「Identities(アイデンティティ)」が、ネットワーク上のノード(例えば、VODピア、パブリケーションノード、又はVODサポートサーバのIPアドレス)並びにコンテンツオブジェクトを識別するのに使用される。例えば、関連するトラッキングファイルを有するさまざまなVODピアへの参照を用いてトラッキングインデックスを突き止める時に、十分に「近い」トラッキングファイルを突き止めることが、さらに望ましい(また、時々、十分に高いQoSを維持するために必要である)。或いは、パッケージのグループが、「遠」すぎるVODピアから入手され、指定されたQoSを維持するのに十分にタイムリーな形で受信されない可能性がある。   [112] To facilitate network communication for various functions including, for example, tracking index and tracking file search (eg, when a VOD peer makes an on-demand request to display a content object), a bit string “ “Identities” is used to identify nodes on the network (eg, IP addresses of VOD peers, publication nodes, or VOD support servers) as well as content objects. For example, when locating a tracking index using references to various VOD peers with associated tracking files, it is more desirable to locate a sufficiently “close” tracking file (and sometimes maintain a sufficiently high QoS) Is necessary for). Alternatively, a group of packages may be obtained from a VOD peer that is “too far” and not received in a timely manner sufficient to maintain the specified QoS.

[113]例えば、2つのVODピアノードの間でこれらのビットストリングIdentitiesを利用することによって、この2つのVODピアの間で期待できるQoSを本質的に表す仮想インターネット距離関数を計算することができる。一実施形態で、Identitiesは、第1の例で、IPアドレス及び標準的なIPロケーションサービスから入手される地理的情報と共に、既知のインターネットインフラストラクチャ情報に基づいて割り当てることができる。   [113] For example, by utilizing these bit string Identities between two VOD peer nodes, a virtual Internet distance function that essentially represents the QoS that can be expected between the two VOD peers can be calculated. In one embodiment, Identities can be assigned based on known Internet infrastructure information along with geographic information obtained from IP addresses and standard IP location services in the first example.

[114]2つのVODピアの間のインターネット距離を計算するために、まずそれらのVODピアのIdentitiesのXORをとり、その結果を2進数と解釈することができる。次に、この数を、クラスタID、信頼値、及び下でより詳細に述べる他の統計結果などのネットワークトラフィックの動的監視から以前に判定された情報に基づいて、調整することができる。結果のインターネット距離は、比較的迅速に計算することができるが、このより大きいリストから(例えば、トラッキングインデックスから)候補VODピアを選択し、適当な要求(例えば、要求されたコンテンツオブジェクトのパッケージのグループを突き止めるのに使用されるトラッキングファイルに関する)を伝搬させるのに使用することができる。
C.コンテンツオブジェクトのパブリケーション及びプッシュ
[114] To calculate the internet distance between two VOD peers, the XOR of the Identity of those VOD peers can first be taken and the result interpreted as a binary number. This number can then be adjusted based on information previously determined from dynamic monitoring of network traffic, such as cluster IDs, confidence values, and other statistical results described in more detail below. The resulting internet distance can be calculated relatively quickly, but a candidate VOD peer is selected from this larger list (eg, from the tracking index) and an appropriate request (eg, of the requested content object's package). Can be used to propagate the tracking file used to locate the group).
C. Publication and push of content objects

[115]上で注記したように、コンテンツオブジェクトは、VODピアのネットワーク上に存在できる前に、まず、図2のパブリケーションサーバ16などの公開するノードによって公開されなければならない。各公開するサーバは、VODピアに存在する分散クラスタコントローラと共にパブリケーションプロセスを実施するVODパブリッシングソフトウェアを含む。上で注記したように、このプロセスは、公開されるコンテンツオブジェクトの、パッケージのグループへの分割と、パッケージのこれらのグループのある個数のコピーの、ネットワーク全体を通じたさまざまなVODピアへの伝搬(関連するトラッキングファイル及びトラッキングインデックスの生成及び更新と共に)とをもたらす。   [115] As noted above, before a content object can exist on the network of VOD peers, it must first be published by a publishing node, such as the publication server 16 of FIG. Each published server includes VOD publishing software that performs a publication process with a distributed cluster controller residing at a VOD peer. As noted above, this process splits the published content objects into groups of packages and propagates a certain number of copies of these groups of packages to various VOD peers throughout the network ( Associated tracking file and tracking index generation and update).

[116]公開するサーバが、ネットワーク内のどこにでも存在することができる(例えば、そのパブリケーションゾーンをコロラド州内とすることができる)ため、コンテンツオブジェクトが公開される区域の「近く」にはない場合がある(例えば、公開権利がニューヨーク及びロサンゼルスを含む場合がある)ことに留意されたい。一実施形態で、パブリケーションサーバは、まず、CRID(上で説明した)を生成する。CRIDは、主記述子、パブリッシャ記述子、及び終了記述子を含む、パブリッシャ及び公開されるコンテンツオブジェクトに関する関連情報を含む。   [116] The publishing server can be anywhere in the network (eg, its publication zone can be in Colorado) so it is not “near” the area where the content object is published Note that there may be cases (eg, publishing rights may include New York and Los Angeles). In one embodiment, the publication server first generates a CRID (described above). The CRID includes relevant information about the publisher and published content objects, including a main descriptor, publisher descriptor, and end descriptor.

[117]次に、パブリケーションサーバは、パブリケーション権利に含まれる区域(例えば、ニューヨーク及びロサンゼルス)に相対的に「近い」(例えば、インターネット距離において)「パブリケーションアナウンサ」を見つけようとする。最初のパブリケーションアナウンサは、イベント(CRIDの転送を含む)を他のパブリケーションアナウンサに「アナウンスする」。他のパブリケーションアナウンサは、所定の「マスタ」VODピアを選択してパブリケーションプロセスを管理するようにし、公開されるコンテンツオブジェクトのパッケージのコピーを選択されたVODピアに最終的に分散させるようにする。   [117] Next, the publication server attempts to find a “publication announcer” that is relatively “close” (eg, at internet distance) to an area included in the publication right (eg, New York and Los Angeles). The first publication announcer “announces” the event (including the transfer of CRIDs) to other publication announcers. Other publication announcers will select a given “master” VOD peer to manage the publication process and ultimately distribute a copy of the published package of content objects to the selected VOD peers.

[118]例えば、パブリケーションサーバは、デフォルトで、少数のVODサポートサーバを知っており、これらのうちの1つに連絡することができる。このVODサポートサーバは、この「アナウンスメント」(CRIDを含む)を、ニューヨークにある既知の相対的に非常に信頼性の高いVODピアに転送することができる。そのニューヨークベースのVODピア(初期パブリケーションアナウンサ)は、そのアナウンスメントをロサンゼルスにある既知の同様に非常に信頼性の高いVODピア(副パブリケーションアナウンサ)に転送することができる。   [118] For example, the publication server knows a few VOD support servers by default and can contact one of these. The VOD support server can forward this “announcement” (including CRID) to a known relatively highly reliable VOD peer in New York. The New York-based VOD peer (initial publication announcer) can forward the announcement to a known and very reliable VOD peer (secondary publication announcer) in Los Angeles.

[119]パブリケーションアナウンサ(この例では2つ)のそれぞれは、パブリケーションプロセスを管理する1つ以上の「マスタ」VODピア(「パブリケーションマスタ」)を選択する。これらのパブリケーションアナウンサのそれぞれのクラスタコントローラは、既に所定の一般的なネットワークトラフィック情報(例えば、ネットワーク「負荷」)並びに潜在的な候補VODピアに関する情報(例えば、そのクラスタID、信頼レベルなど)を有する場合がある。これらの候補VODピアに照会して、追加情報(例えば、コンテンツオブジェクトのパッケージのグループを格納するのに使用できる「空き」ハードディスク空間の量)を入手することもできる。   [119] Each of the publication announcers (two in this example) selects one or more “master” VOD peers (“publication masters”) that manage the publication process. Each cluster controller of these publication announcers already has predetermined general network traffic information (eg, network “load”) as well as information about potential candidate VOD peers (eg, its cluster ID, trust level, etc.). There is a case. These candidate VOD peers can also be queried to obtain additional information (eg, the amount of “free” hard disk space that can be used to store a group of content object packages).

[120]この情報を利用して、各パブリケーションアナウンサ内のクラスタコントローラは、それぞれ、パブリケーションプロセスを管理する1つ以上のパブリケーションマスタを選択する(また、アナウンスメントを転送する)。通常、これらのパブリケーションマスタは、相対的に高い信頼レベル(例えば、16個のレベルのうちのレベル4)を有するが、信頼レベルは、クラスタによって変化する場合がある。例えば、そのめいめいのクラスタの推定されたサイズの相違に起因して、いくつかのパブリケーションマスタが信頼レベル3を有するが、他のパブリケーションマスタが信頼レベル4を有する場合がある。そのような情報は、類似する高い信頼レベルを有する既知のVODピアの個数並びに固有に既知のインターネットインフラストラクチャ情報(例えば、すべてのVODピアに既知の)に基づいてパブリケーションアナウンサによって推定することができる。   [120] Using this information, the cluster controller in each publication announcer each selects one or more publication masters that manage the publication process (and forward the announcement). Typically, these publication masters have a relatively high trust level (eg, level 4 of 16 levels), but the trust level may vary from cluster to cluster. For example, some publication masters may have a trust level 3 while others may have a trust level 4 due to differences in the estimated sizes of their respective clusters. Such information can be estimated by a publication announcer based on the number of known VOD peers with similar high trust levels as well as uniquely known Internet infrastructure information (eg, known to all VOD peers). .

[121]各パブリケーションマスタは、CRIDを受信した時に、その特定のドメイン(例えば、クラスタ、サブクラスタなど)内のパブリケーションを管理する責任を負う。当初に、各パブリケーションマスタは、CRIDから入手可能なさまざまな情報並びに経時的なネットワークトラフィックの動的監視から以前に入手された情報に基づいて、公開されるコンテンツオブジェクトの人気を「予測する」。例えば、ある挙動の仮定(例えば、類似する題名及びカテゴリに関するこのクラスタ内の以前の要求並びに累積的要求に基づく)を、所定の事実に基づく情報(例えば、パブリッシャ、コンテンツオブジェクトが公開された日付、並びにCRIDから入手可能な他の情報に基づく)と同様に、要因とすることができる。   [121] Each publication master is responsible for managing publications within its particular domain (eg, cluster, sub-cluster, etc.) upon receipt of the CRID. Initially, each publication master “predicts” the popularity of published content objects based on various information available from the CRID as well as information previously obtained from dynamic monitoring of network traffic over time. For example, certain behavior assumptions (e.g., based on previous requests in this cluster for similar titles and categories as well as cumulative requests), information based on certain facts (e.g., publisher, date the content object was published, As well as other information available from the CRID).

[122]この「予測された」人気に基づいて、各パブリケーションマスタ内のクラスタコントローラは、「関心要求」をパブリケーションサーバに(或いは、もう1つの実施形態では、パブリケーションアナウンサを介してパブリケーションサーバに間接的に)通信する。これらのさまざまな関心要求を蓄積した時に、パブリケーションサーバは、公開されるコンテンツオブジェクトを分割しなければならないパッケージの適当なサイズ及び個数を判定する。   [122] Based on this “predicted” popularity, the cluster controller in each publication master sends “requests of interest” to the publication server (or, in another embodiment, indirectly to the publication server via the publication announcer). Communicate). When accumulating these various interest requests, the publication server determines the appropriate size and number of packages that must divide the published content object.

[123]一実施形態で、パブリケーションマスタは、パブリケーションプロセスの残りの間にパッケージのグループが分散される時にそれらのグループを最終的に格納するVODピアの位置を追跡するトラッキングファイルを作成する。さらに、これらのパブリケーションマスタは、CRIDをそのCRIDに関連するトラッキングファイルのコピーを格納するVODピアに相互に関連させるトラッキングインデックスをも作成する。   [123] In one embodiment, the publication master creates a tracking file that tracks the location of the VOD peers that will ultimately store the groups of packages as they are distributed during the remainder of the publication process. In addition, these publication masters also create a tracking index that correlates the CRID to the VOD peer that stores a copy of the tracking file associated with that CRID.

[124]一実施形態で、各パブリケーションマスタは、「コレクション」要求を用いてそのパブリケーションアナウンサに連絡する。それに応答して、パブリケーションアナウンサは、互いと通信し、パブリケーションサーバと連絡してさらなる分散のためにトラッキングインデックス並びにコンテンツオブジェクトのパッケージを「集める」「コレクタ」を指定する。次に、コレクタが、トラッキングインデックス及びパッケージを他のパブリケーションアナウンサに分散させる。このプロセスは、通常、パブリケーションアナウンサの数が少ないことに起因して、最適化をほとんど必要としないが、ネットワークトラフィックを最小にするために必要な場合には、分散技法を使用することができる。   [124] In one embodiment, each publication master contacts its publication announcer using a “collection” request. In response, the publication announcer communicates with each other and contacts the publication server to specify a tracking index as well as a “collector” to “collect” a package of content objects for further distribution. The collector then distributes the tracking index and package to other publication announcers. This process usually requires little optimization due to the small number of publication announcers, but distributed techniques can be used if necessary to minimize network traffic.

[125]パブリケーションアナウンサは、そのパブリケーションマスタのために、パッケージの最初のグループ(すなわち、単一VODピア上のグループとしての格納のため)を判定し、パッケージのこれらのグループをパブリケーションマスタに分配する。例えば、一実施形態では、パッケージの4つのグループだけが、通常のクラスタ内で十分なQoSを実現するために必要である場合がある。このグループ化は、もちろん、特定のクラスタ内のクラスタコントローラによって経時的に動的に調整することができる。例えば、所与のコンテンツオブジェクトの人気が経時的に下がる(例えば、追跡されたオンデマンド要求パターンに基づいて)場合に、パッケージのグループを組み合わせることができ、コピーを減らす(例えば、経時的に他のコンテンツオブジェクトのパッケージのグループによって上書きする)ことができる。同様に、人気が高まる場合に、パッケージのグループをさらに分割することができ、より多くのコピーを生成し、分散させることができる。   [125] The publication announcer determines the first group of packages for that publication master (ie, for storage as a group on a single VOD peer) and distributes these groups of packages to the publication master . For example, in one embodiment, only four groups of packages may be necessary to achieve sufficient QoS in a regular cluster. This grouping can of course be adjusted dynamically over time by the cluster controller within a particular cluster. For example, if the popularity of a given content object decreases over time (eg, based on a tracked on-demand request pattern), groups of packages can be combined to reduce copying (eg, others over time) Can be overwritten by a group of content object packages). Similarly, when popularity increases, the group of packages can be further divided, and more copies can be generated and distributed.

[126]各パブリケーションマスタは、その判定された関心のレベルに基づいて、パッケージのそのグループのコピーを他のVODピア(通常は同一の又はより低い信頼レベルの)へ「下に」プッシュする(さらに伝搬させる)。さらに、パブリケーションマスタは、CRIDをパッケージのこのグループのコピーを格納するために選択されるVODピアに相互に関連させるトラッキングファイルを生成及び/又は更新する。   [126] Each publication master pushes "down" a copy of that group of packages to other VOD peers (usually of the same or lower confidence level) based on their determined level of interest ( Propagate further). In addition, the publication master creates and / or updates a tracking file that correlates the CRID with the VOD peers selected to store a copy of this group of packages.

[127]このプッシュプロセスの残りを、比較的集中化することができるが、効率的な通信を容易にするために必要なだけ分散させることができることに留意されたい。例えば、各パブリケーションマスタ内のクラスタコントローラは、分散されるパッケージのそのグループのコピーの個数を、その以前に判定された関心要求並びに他の情報(例えば、パッケージのグループがコンテンツオブジェクトの「早期に」発生する場合にはより多くのコピー)に基づいて判定することができる。パブリケーションマスタは、VODピアに直接に連絡して、どのVODピアがパッケージのグループを格納するための余分の容量を有するかを判定し、その後、パッケージのそのグループを、更新されたトラッキングファイルと共にそのようなVODピアのそれぞれに直接に転送することができる。或いは、もう1つの実施形態で、パブリケーションマスタは、標準的な分散伝搬技法を使用して(パッケージのグループの配信とおそらくはトラッキングファイルとの両方に)、それぞれがその「隣接」VODピアと通信する選択された少数の「隣接」VODピアだけと通信することができる。   [127] Note that the remainder of this push process can be relatively centralized, but can be distributed as much as necessary to facilitate efficient communication. For example, the cluster controller in each publication master can determine the number of copies of that group of packages to be distributed, its previously determined interest requests as well as other information (eg, a group of packages can be “early” of the content object. If it occurs, it can be determined on the basis of more copies). The publication master contacts the VOD peers directly to determine which VOD peers have extra capacity to store a group of packages, and then identifies that group of packages with its updated tracking file. Can be transferred directly to each such VOD peer. Alternatively, in another embodiment, the publication master communicates with its “neighboring” VOD peers using standard distributed propagation techniques (both distribution of packages and possibly tracking files). Only a few selected “neighboring” VOD peers can communicate.

[128]しかし、最終的に、パッケージの各グループの1つ以上のコピーが、各「葉」クラスタ(パブリケーション権利によって定義される区域内の)内のVODピア全体を通じて分散される(プッシュされる)。さらに、トラッキングファイル(クラスタごとにその全体が複製されるか、分散された形で階層化される)が、一実施形態では各パブリケーションマスタ上に並びに公開されたコンテンツオブジェクトのパッケージの1つ以上のグループを格納する各VODピア上に格納される。トラッキングインデックスは、パブリケーションアナウンサ上で維持され、おそらくはパブリケーションマスタ上でも維持される。   [128] However, ultimately, one or more copies of each group of packages are distributed (pushed) across the VOD peers in each "leaf" cluster (in the area defined by the publication rights). ). In addition, a tracking file (which is replicated in its entirety for each cluster or is layered in a distributed manner), in one embodiment, on each publication master as well as one or more of the published content object packages Stored on each VOD peer that stores the group. The tracking index is maintained on the publication announcer and possibly also on the publication master.

[129]パブリケーションノードは、パブリケーションプロセスが完了したならば、オフにすることができる。一実施形態で、24時間が、最初のパブリケーションについて許容されるが、通常のイベントは、20分だけを必要とする可能性がある。   [129] The publication node can be turned off once the publication process is complete. In one embodiment, 24 hours is allowed for the first publication, but a normal event may only require 20 minutes.

[130]パブリケーションイベントに関連する情報(例えば、CRID内に含まれるメタデータ)も、ネットワーク全体を通じて分散させることができ、例えば公開されたコンテンツオブジェクトの可用性を反映するために各VODピアがそのユーザインターフェースを更新することを可能にする。標準的な分散伝搬技法を使用することができる。しかし、実施形態に応じて、異なる情報を異なるVODピアから使用可能にすることができる。   [130] Information related to publication events (eg, metadata contained within a CRID) can also be distributed throughout the network, eg, each VOD peer has its users to reflect the availability of published content objects. Allows updating the interface. Standard distributed propagation techniques can be used. However, depending on the embodiment, different information can be made available from different VOD peers.

[131]例えば、パブリケーション権利によって定義される区域の外のVODピアは、イベントを知らされないものとすることができる(そのようなVODピアのユーザが、そのようなコンテンツオブジェクトにアクセスする権利を有しないので)。もう1つの実施形態で、それらのVODピアは、おそらくはコンテンツオブジェクトに対する権利を獲得する機構(例えば、「ペイパービュー」)を用いて、そのユーザインターフェース内でその事実を知らされるものとすることができる。   [131] For example, VOD peers outside the area defined by the publication rights may not be notified of the event (users of such VOD peers have the right to access such content objects. Because not) In another embodiment, those VOD peers may be informed of the fact within their user interface, possibly using a mechanism that acquires rights to the content object (eg, “pay per view”). .

[132]他のVODピアが、十分な権利を有するが、プッシュされるコンテンツオブジェクトを、相対的に高いQoSを維持しながら受信するのに十分にそのコンテンツオブジェクトに「近く」ない場合がある。その事実を、ユーザインターフェース内で(例えば、テキスト、色、又は他のビジュアル、若しくは他の識別子を使用して)反映することもできる。例えば、ほとんど即時に入手可能なコンテンツオブジェクト(T0 例えば、ユーザの要求から1/2秒から12秒までの範囲の、平均してわずかな秒数以内)を、「緑」でカラーコーディングすることができる。パッケージのそのグループを格納するVODピアに十分に「近い」インターネット距離内にあるのではない他のコンテンツオブジェクトは、それほどたやすく入手可能ではない場合があり(T1 1分以上、例えば30秒から5分の範囲内にわたって開始されない場合がある)、「黄色」でカラーコーディングすることができる。さらに別のコンテンツオブジェクトは、要求された時にネットワーク上で使用可能ですらない場合がある(T2)が、そのメタデータを検索目的に使用可能にすることができ、おそらくは「赤」でカラーコーディングされる。そのような要求は、要求するユーザのVODピアに配信され、そこで格納される前に24時間もの遅延をもたらす「プリオーダー」を起動することができる。   [132] Other VOD peers may have sufficient rights, but may not be “close” to the content object to receive the pushed content object while maintaining a relatively high QoS. That fact can also be reflected in the user interface (eg, using text, colors, or other visuals, or other identifiers). For example, an almost immediately available content object (T0, eg, within a few seconds on average ranging from 1/2 second to 12 seconds from the user's request) can be color-coded with “green”. it can. Other content objects that are not within an Internet distance sufficiently “close” to the VOD peer that stores that group of packages may not be as readily available (T1 over 1 minute, eg, 30 seconds to 5 May not start over a minute range), it can be color coded in “yellow”. Yet another content object may not be available on the network when requested (T2), but its metadata can be made available for search purposes and is probably color coded “red” The Such a request can be delivered to the requesting user's VOD peer and trigger a "pre-order" that results in a delay of as much as 24 hours before being stored there.

[133]宣伝など、他の補助的なタイプのコンテンツオブジェクトをも、類似する形でVODピアにプッシュできることに留意されたい。そのような宣伝(テキスト形式、グラフィック形式、ビデオ形式、又は他の形式の)を、変化する度合の粒度でコンテンツオブジェクトに関係付けることができる。例えば、宣伝を、個々のコンテンツオブジェクトに関係付けることができ、或いはコンテンツオブジェクトの特定のカテゴリ(例えば、Gレーティングの映画)にターゲティングすることができる。或いは、特定の地理的区域にさえターゲッティングすることができる。一実施形態で、そのようなターゲティング情報を、CRID内に含まれる情報(例えば、トラッキングインデックス内)と「照合する」ことができる。関連する宣伝は、そのようなターゲティングされたコンテンツオブジェクトを要求するVODピアに(或いは、もう1つの実施形態では、例えば周知の協力的フィルタリング技法を使用して、類似する又は「関係付けられた」コンテンツオブジェクトを要求するVODピアに)配信される。
D.コンテンツオブジェクトのプル
[133] Note that other ancillary types of content objects, such as advertisements, can be pushed to the VOD peer in a similar manner. Such advertisements (in text format, graphic format, video format, or other formats) can be related to content objects with varying degrees of granularity. For example, promotions can be associated with individual content objects, or targeted to specific categories of content objects (eg, movies with a G rating). Alternatively, even a specific geographic area can be targeted. In one embodiment, such targeting information can be “matched” with information contained in the CRID (eg, in a tracking index). Relevant promotions are similar or “related” to VOD peers requesting such targeted content objects (or, in another embodiment, for example using well-known collaborative filtering techniques). Delivered to the VOD peer requesting the content object).
D. Pull content object

[134]さまざまなコンテンツオブジェクトをネットワーク全体のクラスタ内のVODピアにプッシュし、関連するVODピアのユーザインターフェースを更新した後に、すべてのユーザが、そのVODピアのユーザインターフェースを介してコンテンツオブジェクトをオンデマンドで選択することができる。図4に、VODピアの通常のクラスタ450の実施形態を示す。この実施形態では、コンテンツオブジェクトが公開され、そのコンテンツオブジェクトの20個のパッケージの4つのグループが選択されたVODピアに動的にプッシュされ、これらのグループをその後にクラスタ内の任意のVODピアによって高いQoSを維持しながらオンデマンドで見るためにプッシュできるようになっている。   [134] After pushing various content objects to VOD peers in a cluster across the network and updating the associated VOD peer user interface, all users turn on the content objects via the VOD peer user interface. Can be selected on demand. FIG. 4 shows an embodiment of a regular cluster 450 of VOD peers. In this embodiment, a content object is published and four groups of 20 packages of that content object are dynamically pushed to the selected VOD peer, and these groups are then subsequently pushed by any VOD peer in the cluster. It can be pushed to watch on demand while maintaining high QoS.

[135]VODピア460など、クラスタ450内のVODピアの多くは、もちろん、そのコンテンツオブジェクトのパッケージのグループのいずれをも格納していない。VODピア470などの他のVODピアは、公開されたコンテンツオブジェクトの最初の4つのパッケージ1〜4(例えば、最初の分)を含む最初のグループ「A」410のコピーを格納している。同様に、他のVODピアは、交番する形でコンテンツオブジェクトの次の12個の多少より大きいパッケージ5〜16を含むグループ「B」420及び/又はグループ「C」430のコピーを格納している(この交番する形は、上で注記したように、連続するパッケージを複数のVODピアから並列にプルできるので、より高帯域幅の取出を可能にする)。   [135] Many of the VOD peers in cluster 450, such as VOD peer 460, of course, do not store any of the group of packages for that content object. Other VOD peers, such as VOD peer 470, store a copy of the first group “A” 410 that includes the first four packages 1-4 (eg, the first minute) of published content objects. Similarly, other VOD peers store a copy of group “B” 420 and / or group “C” 430 containing the next 12 somewhat larger packages 5-16 of the content object in an alternating fashion. (This alternating form allows higher bandwidth retrieval, as noted above, because successive packages can be pulled in parallel from multiple VOD peers).

[136]VODピアが、同一のコンテンツオブジェクトのパッケージの複数のグループを格納することができるが、パッケージをグループ化することの利益の1つが、より高速の(並列)取出のために複数のVODピアにまたがってそれらを分散させることが可能になることであることに留意されたい。したがって、クラスタ450内の他のVODピアは、残りの4つのより大きいパッケージ17〜20を含む最後のグループ「D」440のコピーを格納する可能性が高い。   [136] Although a VOD peer can store multiple groups of packages of the same content object, one benefit of grouping packages is that multiple VODs for faster (parallel) retrieval. Note that it will be possible to distribute them across peers. Thus, other VOD peers in cluster 450 are likely to store a copy of the last group “D” 440 that includes the remaining four larger packages 17-20.

[137]上で注記したように、グループ「A」410のパッケージ1〜4など、コンテンツオブジェクトのより早期のパッケージのサイズは、通常、より後のパッケージより小さい。これは、これらのパッケージをより迅速にプルすることの重要性(例えば、映画を即座に開始するため)に起因している。一実施形態で、これらの最初のパッケージのより多数のコピーも格納され、より高速のアクセス時間並びにより高い冗長性をもたらす。映画が再生され始め、パッケージがバッファリングされていると、要求されたコンテンツオブジェクトの後続パッケージの取り出し(プル)に、より長い時間が使用可能である。したがって、相対的により長い取出時間が許容される。   [137] As noted above, the size of earlier packages of content objects, such as packages 1-4 in group "A" 410, is typically smaller than later packages. This is due to the importance of pulling these packages more quickly (eg, to start a movie immediately). In one embodiment, a larger number of copies of these initial packages are also stored, resulting in faster access times as well as higher redundancy. If the movie begins to play and the package is buffered, a longer time is available to retrieve (pull) subsequent packages of the requested content object. Thus, a relatively longer extraction time is allowed.

[138]やはり上で注記したように、コンテンツオブジェクトのパッケージの適当なサイズ指定及びグループ化並びに特定のクラスタ内のVODピア全体を通じて格納されるそのようなパッケージのコピーの個数は、さまざまな情報に基づく。この情報は、CRIDからの静的情報並びにネットワークトラフィックを監視すること及び要求パターンを経時的に追跡することによって入手される動的情報を含む。そのような情報は、コンテンツオブジェクト(全般並びに特定のクラスタ内)の予測された人気並びに現在のネットワーク輻輳、相対アクセス時間、及び他の関連するネットワークトラフィック統計を反映するものとすることができる。   [138] As also noted above, the proper sizing and grouping of content object packages and the number of copies of such packages stored throughout the VOD peers in a particular cluster can vary in various information. Based. This information includes static information from the CRID and dynamic information obtained by monitoring network traffic and tracking request patterns over time. Such information can reflect the predicted popularity of content objects (generally and within a particular cluster) as well as current network congestion, relative access times, and other related network traffic statistics.

[139]要求元VODピア475が、おそらくはコンテンツオブジェクトの最初の部分を再生しながら、現在バッファリングされているグループ「A」410及び「B」420を有し、グループ「C」430及び「D」440を待っているものとして図示されている。VODピア475内のクラスタコントローラ(又は、プルプロセス内で援助するパブリケーションマスタ)が、例えば、グループ「C」430が遅延され、間に合って到着することができない(例えば、グループ「B」420のパッケージ5の再生が始まる前に)ことを検出する場合には、代替配置が必要になる可能性がある。   [139] The requesting VOD peer 475 has currently buffered groups “A” 410 and “B” 420, possibly playing the first part of the content object, and groups “C” 430 and “D” ”Is shown as waiting for 440. A cluster controller in VOD peer 475 (or a publication master assisting in the pull process) cannot arrive in time (eg, package 5 in group “B” 420, for example, group “C” 430 is delayed). If it is detected (before playback begins), an alternative arrangement may be necessary.

[140]一実施形態では、複数の要求が、ちょうどそのような場合に冗長性を提供するためにパッケージのグループごとに行われる。もう1つの実施形態では、問題が検出されたならば、パッケージの所望のグループの他のコピーを格納する代替VODピアへの要求を行うことができる。もう1つの実施形態では、問題が、そのような代替VODピアからの配信を可能にするのに十分な時間のうちに検出されない場合に、「緊急」要求を、より高い信頼レベルのVODピアに対して行うことができ、その後、別のクラスタからの代替VODピアが、その要求をより迅速に満足できる場合(例えば、より非常に信頼性の高いVODピアのより迅速な応答時間に起因する)がある。   [140] In one embodiment, multiple requests are made per group of packages just to provide redundancy in such cases. In another embodiment, if a problem is detected, a request can be made to an alternate VOD peer that stores other copies of the desired group of packages. In another embodiment, if an issue is not detected in sufficient time to allow delivery from such an alternate VOD peer, an “urgent” request is sent to the higher confidence level VOD peer. If an alternate VOD peer from another cluster can satisfy the request more quickly (eg due to a faster response time of a more reliable VOD peer) There is.

[141]ここで、プルプロセス自体に用いられるステップに移ると、VODピアのユーザは、ユーザインターフェースを介して、オンデマンドで使用可能なコンテンツオブジェクトのリストから、取出のために特定のコンテンツオブジェクトを選択することができる。要求元のVODピアは、一実施形態で、まずハッシュ値の一致について、その要求されたコンテンツオブジェクトに関連するCRIDをそれ自体のトラッキングファイルに対して検査することによって、そのようなコンテンツオブジェクトに関する要求を開始する。不成功の場合には(通常は不成功である)、要求(CRIDを含む)が、既知の「隣接」VODピアに伝搬され、次に、次に高い信頼レベルを有するVODピアに「上に」伝搬され、最終的に、すべての公開されたCRIDに関する一致を有するトラッキングインデックスを確かに有する(一実施形態で)「高レベル」(例えば、16個の信頼レベルのうちの信頼レベル2)VODピアに伝搬される。   [141] Now, moving on to the steps used in the pull process itself, the user of the VOD peer can select a particular content object for retrieval from the list of content objects available on demand via the user interface. You can choose. The requesting VOD peer, in one embodiment, first requests for such content objects by checking the CRID associated with the requested content object against its own tracking file for a hash value match. To start. If unsuccessful (usually unsuccessful), the request (including the CRID) is propagated to the known “neighboring” VOD peer and then “up” to the VOD peer with the next highest level of trust. "High level" (e.g., trust level 2 out of 16 trust levels) VOD that is propagated and ultimately has a tracking index that has a match for all published CRIDs (in one embodiment) Propagated to peer.

[142]この要求が、そのようなVODピアに伝搬される際に、この要求が、CRIDによって識別されるコンテンツオブジェクトのパッケージの1つ以上のグループを格納しているVODピアによってたまたま受信される場合において、そのCRIDが、トラッキングファイル内のハッシュ値と一致するときがある。その「幸運な」情況では、トラッキングファイルは、1つ以上のパブリケーションマスタを識別し、このパブリケーションマスタが、一実施形態で、より効率的なプルプロセスに利用される。   [142] When this request is propagated to such a VOD peer, this request happens to be received by a VOD peer that stores one or more groups of packages of content objects identified by the CRID. In some cases, the CRID may match the hash value in the tracking file. In that “lucky” situation, the tracking file identifies one or more publication masters, which in one embodiment are utilized for a more efficient pull process.

[143]より一般的な場合に、要求は、パブリケーションマスタ(「ハッシュ」一致を有する関連するトラッキングファイルのコピーをも有する)又は一致するCRIDに基づいて1つ以上のパブリケーションマスタを識別するトラッキングインデックスのコピーを有するVODピアのいずれかに達するまで、「上に」伝搬し続ける。所望のコンテンツオブジェクトが、要求元VODピアと同一のクラスタ内に存在しない場合には「ボトムアップ」検索とそれに続く「トップダウン」検索とが、「最も近い」トラッキングファイルを突き止めるために必要になる場合がある。十分に高い信頼レベルに達する場合のみにおいて、トラッキングインデックス又はトラッキングファイルが見つかる(「ボトムアップ」)。その点で、トラッキングファイルの階層化された性質は、要求元VODピアに「相対的に近い」(同一クラスタ内ではないが)VODピアを識別するトラッキングファイルを突き止めるための「トップダウン」検索を必要とする場合がある。   [143] In the more general case, the request is a tracking index that identifies one or more publication masters based on the publication master (also having a copy of the associated tracking file with a “hash” match) or matching CRID. Continue to propagate "up" until one of the VOD peers with a copy of is reached. If the desired content object does not exist in the same cluster as the requesting VOD peer, a “bottom-up” search followed by a “top-down” search is required to locate the “closest” tracking file. There is a case. Only when a sufficiently high confidence level is reached, a tracking index or tracking file is found ("bottom up"). In that regard, the layered nature of the tracking file allows a “top-down” search to locate a tracking file that identifies the VOD peer “relatively” (but not in the same cluster) to the requesting VOD peer. You may need it.

[144]どの場合でも、この実施形態では、1つ以上のパブリケーションマスタが、最終的に識別され、「最も近い」パブリケーションマスタが、例えばさまざまな候補に関してインターネット距離関数を利用することによって、判定される。もう1つの実施形態では、すべてのパブリケーションマスタが、少なくともコンテンツオブジェクトの最初の部分(例えば、最初の15秒)を表すパッケージのグループを格納し、このグループが、比較的即時の初期再生を可能にするために取り出される(パッケージの後続グループを散り出す追加の時間を与える)。   [144] In any case, in this embodiment, one or more publication masters are ultimately identified, and the “closest” publication master is determined, for example, by utilizing an internet distance function for various candidates. The In another embodiment, all publication masters store a group of packages that represent at least the first part of the content object (eg, the first 15 seconds), which allows a relatively immediate initial playback. To be removed (giving additional time to spill out subsequent groups of packages).

[145]「最も近い」パブリケーションマスタが判定されたならば、そのクラスタコントローラが、トラッキングファイルを利用して、そのトラッキングファイルによって識別される関連するVODピアへの、パッケージのさまざまなグループに関する要求を開始する。そのような要求は、並列に行うことができ、或いは、コンテンツオブジェクトの直線的進行に基づいて優先順位を付けることができる(例えば、パッケージのより早期のグループを最初に要求する)。標準的な分散伝搬技法を使用して、これらの要求を「隣接する」VODピアにオフロードすることができる。   [145] Once the “closest” publication master is determined, the cluster controller uses the tracking file to make requests for various groups of packages to the associated VOD peers identified by the tracking file. Start. Such requests can be made in parallel or can be prioritized based on the linear progression of the content objects (eg, requesting an earlier group of packages first). Standard distributed propagation techniques can be used to offload these requests to “adjacent” VOD peers.

[146]もう1つの実施形態では、トラッキングファイルを識別した、要求元VODピアは、パブリケーションマスタをプロキシとして使用するのではなく、単純に、そのトラッキングファイルのコピーを要求し(おそらくは再生を開始するためにパッケージの最初のグループを受信した後に)、それ自体でパッケージのさまざまなグループを要求することができる。この場合に、要求元VODピアは、トラッキングファイル内で識別されるVODピアに直接にパッケージのさまざまなグループを要求することができ、或いは、「隣接する」VODピアにこれらの要求をオフロードするために分散伝搬技法を利用することができる。   [146] In another embodiment, the requesting VOD peer that identified the tracking file simply requests a copy of the tracking file (possibly starting playback) rather than using the publication master as a proxy. In order to be able to request different groups of packages on their own (after receiving the first group of packages). In this case, the requesting VOD peer can request various groups of packages directly from the VOD peer identified in the tracking file, or offload these requests to “adjacent” VOD peers. Distributed propagation techniques can be used for this purpose.

[147]要求元VODピアと同一のクラスタ内のさまざまなVODピア(要求されたコンテンツオブジェクトのパッケージのグループを格納する)へのインターネット距離は、QoS要件を満足するために事前に判定されている(ネットワークトラフィックの以前の動的監視に基づいて)ので、パッケージのグループが、指定されたQoSを維持するのに要求元VODピアに時間内に到着する可能性が非常に高い。要求元VODピアは、その「空き」ストレージ空間を使用して、パッケージのグループをバッファリングし、これらをユーザに表示する。上で注記したように、一実施形態では、所定の量のストレージ容量(例えば、4GB)が、プルプロセスのこのバッファリング/再生態様専用であり、残りの容量(例えば、6GB)は、他の要求元VODピア用のコンテンツオブジェクトのパッケージのグループの共有ストレージに利用される。   [147] Internet distances to various VOD peers (which store a group of requested content object packages) in the same cluster as the requesting VOD peer are pre-determined to meet QoS requirements. Since (based on previous dynamic monitoring of network traffic), it is very likely that a group of packages will arrive at the requesting VOD peer in time to maintain the specified QoS. The requesting VOD peer uses its “free” storage space to buffer groups of packages and display them to the user. As noted above, in one embodiment, a predetermined amount of storage capacity (eg, 4 GB) is dedicated to this buffering / playback aspect of the pull process, and the remaining capacity (eg, 6 GB) Used for shared storage of a group of content object packages for requesting VOD peers.

[148]問題が「途中で」発生する場合に(例えば、トラッキングファイル内で指定されたVODピアのうちの1つでのソフトウェア又はハードウェアの障害に起因して)、そのような問題は、パブリケーションマスタ(例えば、所定の時間以内に応答を受信しない時、又は遅すぎる応答を受信する時)又は要求元VODピア(例えば、受信されたパッケージの「バッファ」が期待される閾値未満に減る時)のいずれかによって検出することができる。どちらの場合でも、パブリケーションマスタは、通知され、通常はパッケージのグループの複数のコピーが同一クラスタ内に格納される。そのため、パブリケーションマスタは、1つ以上の他の冗長VODピアへの要求を開始することができる(当然、そのような要求がまだ行われていない場合に)。「緊急」の場合に、パッケージのある指定されたグループのより高速の再ルーティングのために要求を別のクラスタにルーティングするために、相対的に高い信頼レベルを有するVODピア(おそらくは、VODサポートサーバさえ)に連絡することができる。問題が、十分に前に検出されるならば、要求元VODピアが、問題が発生したことを知りさえしない場合がある。   [148] If a problem occurs “on the way” (eg, due to a software or hardware failure at one of the VOD peers specified in the tracking file) Publication master (eg, when no response is received within a given time, or when receiving a response that is too late) or requesting VOD peer (eg, when the “buffer” of the received package falls below an expected threshold ). In either case, the publication master is notified and usually multiple copies of a group of packages are stored in the same cluster. As such, the publication master can initiate a request to one or more other redundant VOD peers (of course, if such a request has not yet been made). In the case of “emergency”, a VOD peer (possibly a VOD support server) that has a relatively high trust level to route requests to another cluster for faster rerouting of a given group of packages Even contact). If the problem is detected long enough, the requesting VOD peer may not even know that the problem has occurred.

[149]上で注記したように、いくつかの場合には、所望のコンテンツオブジェクトが、即時に入手可能でないだけではなく、ネットワーク上のどこからも入手可能ではない。この事実によれば、ユーザインターフェース内で反映することができる(例えば、検索に対する「見つかりません」結果として)。一実施形態では、コンテンツオブジェクトの自動化された(又は手動の)検索をもたらすことができる「プリオーダー」を要求することという可能なオプションを伴う。ネットワークへのその後続パブリケーションのイベントの際に、要求元ユーザは、所望のコンテンツオブジェクトが使用可能になった後に、通知を受けることができる(要求元VODピアでその全体が、又はそのクラスタ内の他のVODピアにプッシュされてのいずれであれ) 。
E.ネットワークベースのQoS(NQoS)及びネットワークトラフィックの動的監視
[149] As noted above, in some cases, the desired content object is not only available immediately, but is not available anywhere on the network. This fact can be reflected in the user interface (eg, as a “not found” result for a search). In one embodiment, with the possible option of requesting a “pre-order” that can result in an automated (or manual) search for content objects. Upon the event of its subsequent publication to the network, the requesting user can be notified after the desired content object is available (in its entirety at the requesting VOD peer or within the cluster). Either pushed to other VOD peers).
E. Network-based QoS (NQoS) and dynamic monitoring of network traffic

[150]経時的に、このプッシュプロセスは、新しいイベントが発生し、コンテンツオブジェクトがネットワークに追加される時に繰り返される。プルプロセスは、ユーザが使用可能コンテンツオブジェクトを表示するオンデマンド要求を開始する時に発生する(おそらくは、はるかにより高い頻度で)。しかし、プッシュプロセスとプルプロセスとの両方の基礎をなしているのは、高い度合の予測性を伴って相対的に高いQoSレベルを維持するために継続的に又は少なくとも周期的な基礎で実行されるネットワークトラフィックの動的監視である。   [150] Over time, this push process is repeated as new events occur and content objects are added to the network. The pull process occurs when the user initiates an on-demand request to display available content objects (perhaps much more frequently). However, the basis for both push and pull processes is performed continuously or at least on a periodic basis to maintain a relatively high QoS level with a high degree of predictability. Network traffic dynamic monitoring.

[151]上でほのめかしたように、オンデマンド要求を行うVODピアが経験するQoSは、多くの面で、事前に決定することができる。ネットワークトラフィックを動的に監視することによって(標準的な分散伝搬技法を使用して分散された基礎で)、隣接するVODピア(例えば、1クラスタ内の)からある所定の時間以内にあるサイズのファイルを受信するVODピアの能力を任意の要求の前に決定できるという点で、QoSをネットワークに効果的に組み込むことができる。   [151] As implied above, the QoS experienced by VOD peers making on-demand requests can be determined in advance in many respects. By dynamically monitoring network traffic (on a distributed basis using standard distributed propagation techniques), a certain size within a certain amount of time from neighboring VOD peers (eg within a cluster) QoS can be effectively incorporated into the network in that the ability of the VOD peer to receive the file can be determined before any request.

[152]次に、この動的ネットワーク監視の結果を使用して、QoSレベルを高めることができる(例えば、信頼レベルを変更し、コンテンツオブジェクトのパッケージを再展開することによって)。高められるQoSレベルは、1クラスタ内並びにインタークラスタ境界及びスーパークラスタ境界にまたがって(クラスタ及びスーパークラスタのメンバシップを再定義することを含む)の両方である。次に、後続のプルプロセス中(公開するサーバがネットワークに新しいコンテンツオブジェクトを追加する時)並びにプッシュプロセス中(個々のVODピアがコンテンツオブジェクトを表示するオンデマンド要求を行う時)に、この結果のNQoSを知らせ、これに頼ることができる。   [152] The results of this dynamic network monitoring can then be used to increase the QoS level (eg, by changing the trust level and redeploying the content object package). The raised QoS levels are both within one cluster and across intercluster and supercluster boundaries (including redefining cluster and supercluster membership). Then, during the subsequent pull process (when the publishing server adds a new content object to the network) and during the push process (when an individual VOD peer makes an on-demand request to display the content object) Inform NQoS and rely on it.

[153]VODピアの信頼レベルは、NQoSをネットワーク全体に知らせる1つの方法である。もう1つの方法は、経時的に知られるようになる隣接するVODピア(変化する信頼レベルの)による、また、クラスタIDを介する、VODピアのクラスタメンバシップである。さらに、コンテンツオブジェクトのパッケージが展開される時に(例えば、プッシュプロセス中並びにオンデマンド要求に対する応答での)、VODピアは、さまざまなQoSレベルでの(例えば、比較的即時に、又は1分以上の遅延を伴って)そのようなコンテンツオブジェクトの可用性について知らされる。   [153] The trust level of a VOD peer is one way to inform the entire network of NQoS. Another method is cluster membership of VOD peers, with neighboring VOD peers (of varying trust levels) becoming known over time, and via cluster ID. In addition, when a package of content objects is deployed (eg, during the push process as well as in response to on-demand requests), VOD peers can be at various QoS levels (eg, relatively immediately or more than 1 minute) Be informed about the availability of such content objects (with a delay).

[154]各VODピア内のクラスタコントローラは、一実施形態では継続的な基礎で、例えば他のVODピア(そのクラスタの中と外との両方)のクラスタコントローラ並びに標準的な分散伝搬技法を使用して既知のネットワークノード(例えば、周知のISP)と通信することによって、所定の通信は、もちろん、周期的とするか、他のイベントによって起動することができる。   [154] The cluster controller in each VOD peer uses, on an ongoing basis, in one embodiment, for example, the cluster controllers of other VOD peers (both inside and outside the cluster) as well as standard distributed propagation techniques. Thus, by communicating with a known network node (eg, a well-known ISP), a given communication can, of course, be periodic or triggered by other events.

[155]上で注記したように、一実施形態では、VODピアが初期化される(又は、例えばソフトウェア障害若しくはハードウェア障害の後など、再初期化される)時に、特定のクラスタ内でのそのVODピアのメンバシップは、IPアドレス及び標準的なIPロケーションサービスから入手される地理的情報と共に、インターネットの物理インフラストラクチャに関する公に入手可能な情報に基づいて判定される。その点で、VODピアは、少数の相対的に非常に信頼性の高いVODピア(おそらくは1つ以上のVODサポートサーバさえ)並びに類似する「デフォルト」信頼レベルのいくつかの隣接するVODピアについて知らされる。   [155] As noted above, in one embodiment, when a VOD peer is initialized (or re-initialized, eg, after a software or hardware failure), within a particular cluster Its VOD peer membership is determined based on publicly available information about the physical infrastructure of the Internet, along with geographic information obtained from IP addresses and standard IP location services. In that regard, VOD peers know about a few relatively very reliable VOD peers (possibly even one or more VOD support servers) as well as several neighboring VOD peers with similar “default” trust levels. Is done.

[156]その時以降、各VODピアのクラスタコントローラは、あるテストを実行して、ネットワークトラフィックパターンの変化を監視し、検出する(例えば、隣接するVODピアの間のパスが、ネットワーク輻輳に起因して又はVODピア及び他のインターネットノードの障害に起因して、経時的により高く又はより低く信頼できるようになる時)。さらに、このクラスタコントローラは、コンテンツオブジェクトのパッケージの展開の変化をも監視し、検出する(例えば、新しいコンテンツオブジェクトがさまざまな位置にプッシュされる時、又はオンデマンド要求が、特定のコンテンツオブジェクト及びそのカテゴリについて行われる時)。   [156] Since that time, the cluster controller of each VOD peer performs certain tests to monitor and detect changes in network traffic patterns (eg, the path between adjacent VOD peers is due to network congestion. Or when it becomes more reliable or less reliable over time due to VOD peers and other Internet node failures). In addition, the cluster controller also monitors and detects changes in the deployment of content object packages (eg, when a new content object is pushed to various locations or when an on-demand request is sent to a particular content object and its When done about categories).

[157]VODピアの間の全般的なネットワークトラフィックフローのそのような変化の結果並びにコンテンツオブジェクトのパッケージの展開を経時的に追跡し、蓄積することによって、クラスタコントローラは、そのような結果を利用して、一実施形態で、上で述べた信頼レベル要因を変更することができる。これらの信頼レベル要因の変更は、さまざまなVODピアの信頼レベルに対する経時的な変更をもたらす。その結果は、クラスタ境界及びスーパークラスタ境界にまたがって波紋のように伝わる。   [157] By tracking and accumulating the results of such changes in the overall network traffic flow between VOD peers as well as the deployment of content object packages over time, the cluster controller takes advantage of such results. Thus, in one embodiment, the confidence level factors described above can be changed. Changes in these trust level factors result in changes to the trust levels of various VOD peers over time. The result is transmitted like ripples across the cluster boundary and the super cluster boundary.

[158]例えば、1つの一般的なテストを、通常は高いレベルの安定し信頼できる帯域幅を示すはずのインターネットバックボーンルータの近くの周知のサーバへの周期的な「ping」とすることができる。クラスタコントローラは、1時間おきにYahoo又はVODサポートサーバにpingを打つことができる。もう1つのpingテストを、そのクラスタ内の少数の既知の隣接するVODピアに対して、又は「遠隔」クラスタ内のVODピアに対してさえ実行することができる。そのようなpingテストの結果(例えば、長い、短い、及び平均的なping時間並びに時折のping「障害」)を、経時的に蓄積して、信頼性のレベル並びに「ネットワーク負荷」に起因する差(例えば、夕方早くの「プライムタイム」時間中のより長いping時間)を判定することができる。   [158] For example, one common test can be a periodic “ping” to a well-known server near an Internet backbone router that should normally exhibit a high level of stable and reliable bandwidth. . The cluster controller can ping the Yahoo or VOD support server every hour. Another ping test can be performed for a few known adjacent VOD peers in that cluster, or even for VOD peers in a “remote” cluster. The results of such ping tests (eg, long, short, and average ping times and occasional ping “failures”) accumulate over time and differ due to the level of reliability as well as “network load” (E.g., a longer ping time during an early evening "prime time" time).

[159]他のテストでは、さまざまなインターネット距離の位置へのさまざまなサイズの実際のファイル転送を用いることができる。あるサイズのファイルを隣接物のうちの1つ以上に、ある時間間隔内に転送するVODピアの能力は、明らかに重要である。というのは、この能力が、プルプロセスの諸態様に直接に関係するからである。プルプロセスは、そのVODピアがその「共有」ハードディスク空間に格納しようとしているパッケージのグループを含むコンテンツオブジェクトに関するオンデマンド要求に応答して実行する必要がある可能性がある。   [159] In other tests, actual file transfers of various sizes to various Internet distance locations can be used. The ability of a VOD peer to transfer a certain size file to one or more of its neighbors within a certain time interval is clearly important. This is because this capability is directly related to aspects of the pull process. The pull process may need to be executed in response to an on-demand request for a content object that includes a group of packages that the VOD peer is trying to store in its “shared” hard disk space.

[160]次に、これらのテストの結果が、経時的に蓄積される。一実施形態では、高負荷時間中の比較的ローカルなVODピアへの「高速」配信の確率又はVODピアが次の500時間にわたってオンラインのままになる確率など、VODピアの信頼レベル要因を維持するのに使用される。上で注記したように、これらの信頼レベル要因は(例えばイントラクラスタ、スーパークラスタなど、さまざまな地域領域についてパラメータ化された後に)、各VODピアの信頼レベルを判定し、経時的に変更するのに利用される。   [160] The results of these tests are then accumulated over time. In one embodiment, maintain a confidence level factor for the VOD peer, such as the probability of “fast” delivery to a relatively local VOD peer during high load times or the probability that the VOD peer will remain online for the next 500 hours Used to. As noted above, these trust level factors (after being parameterized for various regional areas, eg intra-cluster, super-cluster, etc.) determine the trust level of each VOD peer and change over time. Used for

[161]一実施形態で、信頼レベルのこれらの変更は、コンテンツオブジェクトのパッケージのグループの再展開をももたらすことができる。例えば、あるVODピアの信頼レベルが、ある閾値未満に下がった場合に、そのVODピアに格納されたパッケージの1つ以上のグループを隣接するVODピアに移動し、関連するトラッキングファイルをそれに従って更新すると決定することができる。   [161] In one embodiment, these changes in trust level can also result in redeployment of a group of packages of content objects. For example, if the trust level of a VOD peer falls below a certain threshold, move one or more groups of packages stored in that VOD peer to neighboring VOD peers and update the associated tracking file accordingly Then you can decide.

[162]スーパークラスタレベルにおいて、クラスタコントローラは、一実施形態で、そのテストをクラスタ境界及びスーパークラスタ境界にまたがって拡張する。その結果、これらのクラスタコントローラは、あるVODピアをそのクラスタに追加することによって、或いはおそらくは2つのより小さいクラスタを一緒に単一のクラスタに組み合わせることによっても、クラスタのサイズを拡大することができる。これらのクラスタコントローラは、クラスタにまたがってVODピアの信頼レベルをも変更することができ、例えば、クラスタ境界にまたがるファイル転送でより高い信頼性を経時的に示したVODピアの信頼レベルを高める。   [162] At the supercluster level, the cluster controller, in one embodiment, extends its test across cluster boundaries and supercluster boundaries. As a result, these cluster controllers can expand the size of the cluster by adding a VOD peer to that cluster, or perhaps by combining two smaller clusters together into a single cluster. . These cluster controllers can also change the trust level of the VOD peer across the cluster, e.g., increasing the trust level of the VOD peer that has shown higher reliability over time in file transfers across cluster boundaries.

[163]ネットワークトラフィックパターンの動的変化を時的に検出するために「包括的」テストを実行すること並びに信頼レベル及びクラスタメンバシップに影響する(及びおそらくはコンテンツオブジェクトのパッケージのグループを再展開する)のにそのようなテストの結果を使用することに加えて、各VODピア内のクラスタコントローラは、コンテンツオブジェクトのパッケージの展開を含む「実際の」ネットワークトラフィックをも監視し、追跡する。例えば、上で注記したように、クラスタコントローラは、新しいコンテンツオブジェクトがネットワークに追加される時に、どのVODピアがパッケージのあるグループ及び関連するトラッキングファイルを格納しなければならないかを判定するために、プッシュプロセス中にこれらの更新された信頼レベル及びクラスタID(並びに「空き」ハードディスク容量)に頼る。オンデマンド要求が行われ、パッケージのグループが要求元VODピアへの配信のためにさまざまなVODピアからプルされる時に、この動的ネットワークトラフィックも監視される。   [163] Perform “global” tests to detect dynamic changes in network traffic patterns over time and affect trust levels and cluster membership (and possibly redeploy a group of content object packages In addition to using the results of such tests, the cluster controller in each VOD peer also monitors and tracks “actual” network traffic including deployment of content object packages. For example, as noted above, the cluster controller determines which VOD peers must store a group of packages and associated tracking files when a new content object is added to the network. Rely on these updated trust levels and cluster IDs (and “free” hard disk capacity) during the push process. This dynamic network traffic is also monitored when an on-demand request is made and a group of packages is pulled from various VOD peers for delivery to the requesting VOD peer.

[164]例えば、異常に多数の要求がある特定のコンテンツオブジェクトについて行われたと判定される場合に、特定のクラスタ内のQoSのレベルを維持するために、そのコンテンツオブジェクトのより多くのコピーが必要になる場合がある。一実施形態で、パブリケーションマスタ内のクラスタコントローラは、そのコンテンツオブジェクトのパッケージのグループの追加コピーをクラスタ内の他のVODピアに格納させ、関連するトラッキングファイルを更新させ、これらのVODピアの間で伝搬させることができる。その結果、より少数のそのような要求に出会う時に、パッケージのグループの既存コピーを、上書き「可能」と指定することができ、それと同時に、既存トラッキングファイルが、それに従って更新される。   [164] For example, if it is determined that an unusually large number of requests have been made for a particular content object, more copies of that content object are required to maintain the level of QoS within a particular cluster It may become. In one embodiment, the cluster controller in the publication master has an additional copy of the group of packages of its content objects stored on other VOD peers in the cluster, and the associated tracking file is updated between these VOD peers. Can be propagated. As a result, when a smaller number of such requests are encountered, the existing copy of the group of packages can be designated as “possible” to be overwritten, while the existing tracking file is updated accordingly.

[165]より微細な「調整」は、例えば、パッケージの改訂されたグループ化をもたらすこともできる。コンテンツオブジェクトの人気が下がる時に、そのパッケージの複数のグループを、単一のグループに合併することができる。逆に、コンテンツオブジェクトの人気が上がる時に、パッケージのグループを、追加のグループにさらに分割することができる。さらに、あるVODピアが、実質的に「弱いリンク」である(それらが、プルプロセス中に通常のQoSレベルを維持しないという点で)と判定される場合に、上で述べたように、それらのVODピアの信頼レベルを下げ、そこに格納されたパッケージのグループを再展開することができる。   [165] Finer “tuning” can also result in a revised grouping of packages, for example. As content objects become less popular, multiple groups of the package can be merged into a single group. Conversely, a group of packages can be further divided into additional groups when the popularity of content objects increases. In addition, if certain VOD peers are determined to be substantially “weak links” (in that they do not maintain normal QoS levels during the pull process), The VOD peer's trust level can be lowered and the group of packages stored there can be redeployed.

[166]一実施形態で、コンテンツオブジェクトの特定のカテゴリ(例えば、コメディ)の、あるクラスタ内での人気など、累積的情報も、実際のオンデマンド要求の監視から生じるものとすることができる。そのような情報は、例えば、新しいコメディコンテンツオブジェクトのパブリケーションに関連する後続プッシュプロセス中に使用することができる。そのコンテンツオブジェクトのパッケージの、そうでない場合にそうなる可能性がある個数より多くのコピーを、そのクラスタ内でプッシュすることができる。   [166] In one embodiment, cumulative information, such as the popularity of a particular category (eg, comedy) of content objects within a cluster, may also arise from monitoring actual on-demand requests. Such information can be used, for example, during a subsequent push process associated with the publication of a new comedy content object. More copies of the content object's package can be pushed into the cluster than would otherwise be.

[167]比較的ローカルな情報でさえ、帯域幅を、したがってQoSを高めるのに使用することができる。例えば、図4に関して上で示したように、パッケージの2つのグループを、複数の隣接するVODピアの間で「インターリーブする」ことができる。したがって、1つおきのパッケージ(例えば、P1、P3、P5)を一方のVODピアに格納することができ、他方のパッケージ(例えば、P2、P4、P6)は、隣接するVODピアに格納される。これは、要求元VODピアへの高められた帯域幅をもたらすことができる。したがって、少なくともその特定のコンテンツオブジェクトに関して、クラスタ内のQoSを効果的に高めることができる。   [167] Even relatively local information can be used to increase bandwidth and thus QoS. For example, as shown above with respect to FIG. 4, two groups of packages can be “interleaved” between multiple adjacent VOD peers. Thus, every other package (eg, P1, P3, P5) can be stored on one VOD peer and the other package (eg, P2, P4, P6) is stored on an adjacent VOD peer. . This can result in increased bandwidth to the requesting VOD peer. Therefore, QoS within the cluster can be effectively increased at least for that particular content object.

[168]上で述べたもの以外の、ネットワークノード及びネットワークトラフィックの多数の他の属性を、経時的に動的に監視し、追跡することができる。手動で又は自動化された形のどちらで実施されるものであれ、フィードバックループは、QoSに対するそのような属性の影響に基づいて、そのような属性を微調整することを可能にすることができる。いくつかの場合に、監視活動自体によって強要される追加のネットワークトラフィックが、所定の属性を追跡することによって達成される利益よりまさる場合がある。しかし、経時的に、システムは、ある形のホメオスタシスに達することができる。この状態では、属性の相対的に最適の組が、総合的なNQoSを最大にするために動的に監視され、追跡される。
II.実施態様の詳細
[168] Many other attributes of network nodes and network traffic other than those mentioned above can be dynamically monitored and tracked over time. Whether implemented manually or in an automated form, the feedback loop can allow such attributes to be fine-tuned based on the impact of such attributes on QoS. In some cases, the additional network traffic imposed by the monitoring activity itself may outweigh the benefits achieved by tracking certain attributes. However, over time, the system can reach some form of homeostasis. In this state, a relatively optimal set of attributes is dynamically monitored and tracked to maximize the overall NQoS.
II. Details of the embodiment

[169]上で述べた主要な概念をどのように実施できるかをよりよく理解するために、本発明のVODシステムでのコンテンツオブジェクトの公開、取出、及びアクセスの監視に用いられる動的プロセスの説明と共に、主なデータ構造を下で説明し、VODピアによって使用される通信プロトコルも説明する。   [169] In order to better understand how the key concepts described above can be implemented, the dynamic process used to monitor content object publishing, retrieval, and access in the VOD system of the present invention. Along with the description, the main data structure is described below and the communication protocol used by the VOD peer is also described.

[170]例えば、すべてのVODピアは、VODピアが、一般に互いを識別し、互いにアクセスし、より具体的には相対的に信頼性の高い隣接するVODピアを識別するためにその相対的な近接及び信頼性を判定することを可能にする、一意の「ノードID」を含む。そのような「信頼される隣接物」は、NQoSを維持しながら、分散された形でコンテンツオブジェクトにアクセスするために頼ることができる。   [170] For example, all VOD peers are relative to each other so that VOD peers generally identify each other, access each other, and more specifically identify relatively reliable neighboring VOD peers. Includes a unique “node ID” that allows to determine proximity and reliability. Such “trusted neighbors” can rely on accessing content objects in a distributed manner while maintaining NQoS.

[171]各VODピアが、ノードIDを介して一意に識別されるのと同様に、各コンテンツオブジェクト、又はより具体的にはコンテンツオブジェクトを公開する各イベントは、「CRID」(コンテンツ参照ID、上で述べた)を介して一意に識別される。CRIDは、そのコンテンツオブジェクトへのアクセスに対する地理的制約及び他の制約と、そのコンテンツオブジェクトを記述し、ユーザがそのコンテンツオブジェクトをブラウズし、検索することを可能にするメタデータと、をパブリッシャが指定できるようにする。   [171] Just as each VOD peer is uniquely identified via a node ID, each content object, or more specifically, each event that exposes a content object, has a "CRID" (content reference ID, Uniquely identified via). The CRID specifies the geographical and other restrictions on access to the content object and the metadata that describes the content object and metadata that allows the user to browse and search the content object. It can be so.

[172]上で注記したように、コンテンツオブジェクトが公開され(すなわち、イベントが発生し)、その構成要素パッケージがVODピアの間で分散される時に、さまざまなトラッキングファイルが、分散された形で生成されて、そのコンテンツオブジェクトを表すCRIDを、そのような構成要素パッケージの特定のグループを格納するVODピアに関連付ける。これらのトラッキングファイルは、例えばユーザのビューイング挙動又はネットワーク特性の変化に起因してコピーが上書きされるか追加コピーが生成される時に、各コンテンツオブジェクトの構成要素パッケージのさまざまなコピーの現在位置を反映するように更新もされる。これらのトラッキングファイルのデータ構造の実施形態を、それに対応するトラッキングインデックスデータ構造と共に下で述べる。   [172] As noted above, when a content object is published (ie, an event occurs) and its component packages are distributed among VOD peers, the various tracking files are distributed in a distributed fashion. Generated and associates a CRID representing that content object with a VOD peer that stores a particular group of such component packages. These tracking files indicate the current location of the various copies of each content object's component package, for example when a copy is overwritten or additional copies are generated due to changes in user viewing behavior or network characteristics. Also updated to reflect. Embodiments of these tracking file data structures are described below along with their corresponding tracking index data structures.

[173]トラッキングファイルが生成され、コンテンツオブジェクトの構成要素パッケージの位置を維持するようにするのと同様に、対応するトラッキングインデックスも生成され、これらのトラッキングファイルのコピーを格納するVODピアの位置を維持する(集中化された形又は分散された形のいずれであれ)。例えば、ユーザが、特定のコンテンツオブジェクトへのアクセスを要求する時に、そのコンテンツオブジェクトを表すCRIDが、要求元VODピアに相対的に近接するVODピアに格納されたトラッキングファイルを検索する(直接に又はトラッキングインデックスを介して間接的にのいずれかで)のに使用される。   [173] Just as tracking files are generated and maintained to maintain the location of the content object's component packages, corresponding tracking indexes are also generated to locate the VOD peers that store copies of these tracking files. Maintain (whether centralized or distributed). For example, when a user requests access to a particular content object, the CRID representing that content object retrieves a tracking file stored in a VOD peer that is relatively close to the requesting VOD peer (directly or Used either indirectly via tracking index).

[174]これらの主要なデータ構造に加えて、主要な動的ネットワークプロセスがどのように実施されるかを示すために、VODピアが互いの間で通信する形をも述べる。例えば、ネットワーク上でコンテンツオブジェクトを公開するために、所定の通信プロトコルが使用され、ネットワーク全体を通じたさまざまなVODピアの間で、イベントをアナウンスし、次に、構成要素パッケージ並びに対応するトラッキングファイル及びトラッキングインデックスを生成し、分配する(すなわち、プッシュする)。   [174] In addition to these key data structures, the manner in which VOD peers communicate with each other is also described to show how key dynamic network processes are implemented. For example, a predetermined communication protocol is used to publish content objects over the network, announce events between various VOD peers throughout the network, and then component packages and corresponding tracking files and Generate and distribute (ie, push) tracking indexes.

[175]ユーザが、コンテンツオブジェクトへのアクセスを要求する(例えば、映画を観るために)時に、他のプロトコルが、使用され、そのコンテンツオブジェクトの構成要素パッケージの検索及びダウンロード(すなわち、プル)を行うようにする。プロトコルは、トラッキングインデックス及びトラッキングファイルを検索することと、その後に、コンテンツオブジェクトの「オンデマンド」の比較的即座の継続的なビューイングを可能にするのに十分にタイムリーな形で異なる「フィーダ」VODピアから構成要素パッケージのダウンロードを開始することとを含む。   [175] When a user requests access to a content object (eg, to watch a movie), other protocols are used to search and download (ie, pull) the content object's component packages. To do. The protocol is different “feeders” in a timely manner enough to allow searching of tracking indexes and tracking files, followed by relatively immediate and continuous viewing of the content object “on demand”. Initiating component package downloads from VOD peers.

[176]さらに、これらの通信プロトコルは、システムのアーキテクチャ的構成要素と結合されて、VODピアの間の相対アクセス時間、実際のユーザ挙動(例えば、特定の時間間隔中の1つ以上の地理的区域でのあるコンテンツオブジェクトを見る需要の増加)、及び他のネットワーク特性(例えば、ネットワーク障害)を含む、ネットワークのさまざまな態様を監視することによって、NQoSを維持する。そのような要因を動的に監視することによって、ユーザに、特定のコンテンツオブジェクトへのアクセスを要求する前であっても、システムの状態について通告することができる。   [176] In addition, these communication protocols can be combined with system architectural components to provide relative access times between VOD peers, actual user behavior (eg, one or more geographical locations during a particular time interval). NQoS is maintained by monitoring various aspects of the network, including increased demand for viewing certain content objects in the area, and other network characteristics (eg, network failures). By dynamically monitoring such factors, the user can be informed about the state of the system even before requesting access to a particular content object.

[177]例えば、あるユーザが、コンテンツをブラウズしているか検索している時に、ユーザインターフェースは、一特定のコンテンツオブジェクトが実質的に即時に入手可能であるが、別のコンテンツオブジェクトが一晩のダウンロードを必要とする可能性があるという事実を反映することができる(例えば、めいめいの映画の題名を色付きの「緑」又は「赤」のテキストで表示することによって)。これが可能なのは、現在のシステム状態が、そのような監視の結果として既知であり、分散された形でVODピアの間で通信され得るからである。さらに、別のユーザ(例えば、異なるクラスタ内の)が、異なる表示に出会う場合がある。この表示は、おそらくは両方のコンテンツオブジェクトが即時に入手可能である(例えば、そのようなコンテンツオブジェクトの所定の構成要素パッケージのコピーの相対的近接、又は関連する隣接するVODピアの間のより迅速なネットワーク応答時間、又は上記及び他の要因の組合せに起因して)ことを示す。   [177] For example, when a user is browsing or searching for content, the user interface may allow one particular content object to be available substantially immediately while another content object It may reflect the fact that it may need to be downloaded (eg, by displaying the title of the respective movie with colored “green” or “red” text). This is possible because the current system state is known as a result of such monitoring and can be communicated between VOD peers in a distributed manner. In addition, another user (eg, in a different cluster) may encounter a different display. This indication is likely that both content objects are readily available (eg, relative proximity of a copy of a given component package of such content objects, or more rapid between related adjacent VOD peers. Network response time, or due to a combination of these and other factors).

[178]これらの通信プロトコルを実施するために、そのうちの多数が複数の異なる通信シナリオに用いられる、メッセージの基本的な組が使用される。例えば、ある基本メッセージは、通信が、コンテンツオブジェクトの公開、所望のコンテンツオブジェクトを見るためのトラッキングファイルの検索、ネットワーク挙動の監視、又はある他の目的のいずれを含む場合であっても、2つのVODピアがさらなるそのような通信を確立するために初期「ハンドシェーク」を実行する時に、必ず使用される。他の「拡張」メッセージは、下でより詳細に述べるように、ある特定の目的に使用される。
A.ノードデータ構造及びコンテンツデータ構造
1.ノードID
[178] To implement these communication protocols, a basic set of messages is used, many of which are used for multiple different communication scenarios. For example, a basic message may contain two messages, whether the communication involves publishing a content object, searching for a tracking file to view a desired content object, monitoring network behavior, or some other purpose. Used whenever a VOD peer performs an initial “handshake” to establish further such communication. Other “extended” messages are used for certain purposes, as described in more detail below.
A. Node data structure and content data structure Node ID

[179]図5に移ると、「ノードID」データ構造500の一実施形態が示されている。例示を簡単にするために、値が英数字の形でリストされていることに留意されたい。「位置」505は、連続するデータのバイトを表す。ノードID 501全体自体は、連続するバイトのストリングとして複数の行に示されており、その各構成要素が、後続行で分解されている。もちろん、実際のデータストレージ効率を、標準的な圧縮技法を含む、よりコンパクトな標準形式の表現を使用することによって高めることができる。   [179] Turning to FIG. 5, one embodiment of a "Node ID" data structure 500 is shown. Note that the values are listed in alphanumeric form for ease of illustration. “Position” 505 represents a byte of continuous data. The entire node ID 501 itself is shown in multiple lines as a string of consecutive bytes, each component of which is disassembled in a subsequent sequence. Of course, the actual data storage efficiency can be increased by using a more compact standard form of representation, including standard compression techniques.

[180]ノードID 501は、一意のVODピアを表し、一意識別子並びに他の静的構成要素及び動的構成要素など、そのVODピアのさまざまな属性を含む。ノードID 501のこれらの構成要素は、2つのカテゴリすなわち、変化するとしても頻繁に変化する可能性の低いVODピアの属性を含む「固定」部分510と、ネットワークの状態又はユーザ挙動が経時的に変化する時に動的に変化する可能性があるネットワーク間連続性を含む1組の「記述子」550とに分類することができる。   [180] Node ID 501 represents a unique VOD peer and includes various attributes of that VOD peer, such as a unique identifier and other static and dynamic components. These components of node ID 501 include two categories: a “fixed” portion 510 that includes attributes of VOD peers that are unlikely to change as often as they change, and network status or user behavior over time. It can be categorized into a set of “descriptors” 550 that include inter-network continuity that can change dynamically as it changes.

[181]ノードID 501の固定構成要素510の中に、一意の「ボックスID」512がある。この図示の実施形態では、ボックスID 512は、この物理VODピアハードウェアデバイスを他のすべてのハードウェアデバイスから区別する一意の9バイト識別子である。単一の一意識別子であるほかに、ボックスID 512の構成要素は、さらに、ハードウェアの製造業者、モデル、及びバージョン(図示せず)を識別することができる。さらに、一意であることによって、ボックスID 512は、例えば、他の属性が変化し得る間に、ある属性(ノードID 501の一部でない属性であっても)をこのVODピアに関連付けられたままにすることを可能にすることができる。これは、セキュリティ、ファームウェアアップグレード、モバイル応用例、及びさまざまな他の状況で有用である可能性がある。   [181] Among the fixed components 510 of the node ID 501 is a unique “box ID” 512. In the illustrated embodiment, box ID 512 is a unique 9-byte identifier that distinguishes this physical VOD peer hardware device from all other hardware devices. In addition to being a single unique identifier, the components of box ID 512 can further identify the hardware manufacturer, model, and version (not shown). In addition, by being unique, the box ID 512 remains associated with this VOD peer with an attribute (even if it is not part of the node ID 501), for example, while other attributes may change. Can be made possible. This can be useful in security, firmware upgrades, mobile applications, and various other situations.

[182]もう1つの固定構成要素が、ボックスが配置される「国」514である。一実施形態で、この値は、2バイトフィールドとして図示されているが、例えばボックスが最初に電源を入れられる時に判定される、ボックスが展開される国を表すことができる。この値は、デフォルトでは固定されたままにすることができる(例えば、後続の「電源投入」イベント時に)が、例えば、ボックスが別の位置に移送される場合に、変更可能とすることができる。   [182] Another fixed component is the "country" 514 where the box is located. In one embodiment, this value is illustrated as a 2-byte field, but can represent the country in which the box is deployed, as determined, for example, when the box is first powered on. This value can remain fixed by default (eg, during a subsequent “power on” event), but can be changeable, for example, if the box is transferred to another location. .

[183]もう1つの固定構成要素が、ボックスが配置される「地域」516である。一実施形態で、この地域516は、国514内の一意の地域を表す3バイト識別子である。さまざまな標準組織が、特定の国内の地域識別子の標準規格を開発してきた。例えば、米国内では、個々の州の識別子を使用することができる(国勢調査地域、例えばカリフォルニア、オレゴン、及びワシントンの「Pacific」など、のより大きい地域を使用することもできるが)。他の国は、カナダの州及び準州(例えば、アルバータのAB)など、州以外の異なる指定を有する場合がある。一実施形態で、異なる標準規格が、異なる国にまたがって使用されるが、地域516は国514内に含まれ、市520(下で述べる)は地域516内に含まれる。   [183] Another fixed component is the "region" 516 where the box is located. In one embodiment, this region 516 is a three-byte identifier that represents a unique region within country 514. Various standards organizations have developed standards for specific national regional identifiers. For example, within the United States, individual state identifiers can be used (although larger census territories, such as “Pacific” in California, Oregon, and Washington, can be used). Other countries may have different designations other than states, such as Canadian provinces and territories (eg, Alberta AB). In one embodiment, different standards are used across different countries, but region 516 is included in country 514 and city 520 (described below) is included in region 516.

[184]もう1つの固定構成要素が、ボックスがそれを介してインターネットアクセスを入手する「ISP」518すなわちインターネットサービスプロバイダである。一実施形態で、ISP 518は、使用されている現在のISPを表す4バイト識別子である。ユーザは、所与の位置でISPを頻繁に変更する可能性が低いが、別の位置へのボックスの移動(一時的に又は他の形での)は、おそらくはISP 518の変更をもたらす場合がある。この情報は、例えば、潜在的により高速の又はより信頼性の高い接続(例えば、共通のISP又は複数の明確に接続されたISPに起因して)を共有するVODピアのグループを識別するのに利用することができる。   [184] Another fixed component is the "ISP" 518 or Internet service provider through which the box obtains Internet access. In one embodiment, ISP 518 is a 4-byte identifier that represents the current ISP being used. Although the user is unlikely to change the ISP frequently at a given location, moving the box to another location (temporarily or otherwise) may likely result in a change of the ISP 518. is there. This information can be used, for example, to identify a group of VOD peers that share a potentially faster or more reliable connection (eg, due to a common ISP or multiple clearly connected ISPs). Can be used.

[185]上で注記したように、市520は、もう1つの固定構成要素であり、一実施形態で、地域516(国514内にある)内の1区域を識別する3バイト値である。市は、比較的一般的なので、市520は、通常は地域516内で一意であるが、他のフィールドが、この区域をさらに区別するように働く場合がある(例えば、下で述べる郵便番号522及び/又は経度/緯度524)。これらの地理的フィールド(国514、地域516、市520、郵便番号522、及び経度/緯度524)を、ISP 518と共に、さまざまな目的に使用できることに留意されたい。上で注記したように、これらは、より高速の又はより信頼性の高い接続を共有できる(したがって同一クラスタの一部とすることができる)VODピアのグループの識別を容易にする。さらに、そのようなフィールドを使用して、特定のコンテンツオブジェクトへのアクセスを制限する(例えば、米国内の特定の州に制約する)か、特定の地理的区域内のVODピアの間でのコンテンツオブジェクトの変更された分散をもたらし得る挙動使用パターンを識別する(例えば、特定の地理的区域でより流行しているコメディ)ことができる。監視される実質的にすべてのネットワーク特性、挙動特性、又は他の特性を、この地理情報と共に利用して、コンテンツオブジェクト(又はパッケージの個々のグループ)のコピーの再展開、信頼レベル又はクラスタメンバシップの調整などを決定することができる。   [185] As noted above, city 520 is another fixed component, which in one embodiment is a 3-byte value that identifies an area within region 516 (which is within country 514). Because the city is relatively common, the city 520 is usually unique within the region 516, but other fields may serve to further distinguish this region (eg, the zip code 522 described below). And / or longitude / latitude 524). Note that these geographic fields (country 514, region 516, city 520, zip code 522, and longitude / latitude 524) can be used with ISP 518 for a variety of purposes. As noted above, these facilitate the identification of groups of VOD peers that can share faster or more reliable connections (and thus can be part of the same cluster). In addition, such fields can be used to restrict access to specific content objects (eg, constrain to specific states within the United States) or content between VOD peers within a specific geographic area. Behavioral usage patterns that can result in altered distribution of objects can be identified (eg, comedies that are more prevalent in certain geographic areas). Virtually all network characteristics, behavioral characteristics, or other characteristics that are monitored can be used with this geographic information to re-deploy a copy of a content object (or individual group of packages), trust level, or cluster membership Adjustments can be determined.

[186]上で言及したように、郵便番号522(一実施形態では5バイト識別子として図示)は、さらに、ボックスが現在展開されている地理的区域を識別するように働く。標準郵便番号をこの目的に利用することができ、特定の国について必要な場合には、異なる標準規格が使用される。   [186] As mentioned above, the postal code 522 (shown as a 5-byte identifier in one embodiment) further serves to identify the geographic area in which the box is currently deployed. Standard zip codes can be used for this purpose, and different standards are used if required for a particular country.

[187]やはり上で言及したように、経度/緯度524(一実施形態では16バイト識別子として図示)は、さらに、ボックスが現在展開されている地理的区域をさらに高い限定性を伴って識別する。これらの地理的フィールドは、特定の地理的区域をより正確に識別するのに一緒に利用することができ、或いは、別個の目的に個別に利用することができる(例えば、非常に特定のコンテンツアクセス制限を実施するために)。上で注記したように、正味の近接は、これらの地理的識別子の一部又はすべてに異なる度合で頼る標準的なIPロケーションデータベースを使用することによって、さまざまな精度のレベルで判定することができる。   [187] As also mentioned above, longitude / latitude 524 (illustrated as a 16-byte identifier in one embodiment) further identifies the geographic area in which the box is currently deployed with greater specificity. . These geographic fields can be used together to more accurately identify specific geographic areas, or can be used individually for separate purposes (eg, very specific content access). To enforce restrictions). As noted above, net proximity can be determined at various levels of accuracy by using a standard IP location database that relies on some or all of these geographic identifiers to varying degrees. .

[188]最後の固定構成要素であるノードタイプ526は、この実施形態では、VODピアの異なるカテゴリの間で区別する単一バイト識別子として図示されている。例えば、パブリッシャを、専用VODサポートサーバ並びに「普通の」VODピアから区別することができる。これらの区別は、必ずしも相互に排他的である必要はないが、例えば、VODピアのあるカテゴリを迅速に含め、又は除外するのに有用であることがわかる可能性がある。例えば、ソフトウェアアップグレードの開始又はネットワーク「緊急時」の場合の所定のフォールバックサービスの提供など、所定の機能を、VODサポートサーバなど、VODピアの特定のカテゴリに制限することができる。そのような場合に、ノードタイプ526に頼って、その判断基準を満足するVODピアを迅速に識別することができる。   [188] The last fixed component, node type 526, is illustrated in this embodiment as a single byte identifier that distinguishes between different categories of VOD peers. For example, publishers can be distinguished from dedicated VOD support servers as well as “normal” VOD peers. These distinctions do not necessarily have to be mutually exclusive, but may prove useful, for example, to quickly include or exclude certain categories of VOD peers. For example, certain functions, such as initiating a software upgrade or providing a certain fallback service in the case of a network “emergency”, can be limited to a particular category of VOD peers, such as a VOD support server. In such a case, the node type 526 can be relied upon to quickly identify VOD peers that satisfy the criteria.

[189]記述子550に移ると、IPアドレス552は、一実施形態で、標準的なルーティング可能IPアドレスを表す12バイトフィールドとして図示されている。IPアドレス552は、静的又は動的のいずれかとすることができ、もちろん、相対的に頻繁に変更することができる。それでも、個々のセッション又は相対的に短い時間間隔の間に、メッセージの交換及び他の形の通信(下でより詳細に述べる)のためにVODピアを識別する便利な手段として、これに頼ることができる。   [189] Moving to descriptor 550, IP address 552 is illustrated in one embodiment as a 12-byte field that represents a standard routable IP address. The IP address 552 can be either static or dynamic and, of course, can change relatively frequently. Still, rely on this as a convenient means of identifying VOD peers for message exchange and other forms of communication (described in more detail below) during individual sessions or relatively short time intervals. Can do.

[190]他の記述子550は、より頻繁に変更される可能性さえある。というのは、これらが、ネットワークインフラストラクチャ、帯域幅、及び信頼性の動的変化を反映するからである。例えば、信頼レベル554は、VODピアの相対的な信頼性の尺度を示す。一実施形態で2バイト値として実施される信頼レベル554は、動的に経時的に監視される帯域幅及び信頼性などの特性を反映するさまざまな信頼レベル要因(上で述べた)に基づいて、16個の異なるレベルの「信頼」を区別することができる。信頼レベル554は、クラスタメンバシップ及びアクセス可能な隣接するVODピアを判定し、コンテンツオブジェクト及びその構成要素パッケージの分散及びアクセスの処理に影響するなど、さまざまな目的に使用することができる。   [190] Other descriptors 550 may even change more frequently. This is because they reflect dynamic changes in network infrastructure, bandwidth, and reliability. For example, trust level 554 indicates a measure of the relative reliability of the VOD peer. The trust level 554 implemented as a two-byte value in one embodiment is based on various trust level factors (described above) that reflect characteristics such as bandwidth and reliability that are dynamically monitored over time. 16 different levels of “trust” can be distinguished. The trust level 554 can be used for a variety of purposes, such as determining cluster membership and accessible neighboring VOD peers and affecting the distribution and access processing of content objects and their component packages.

[191]2つの追加の記述子550が、ローカルノードアクセシビリティ556及びグローバルノードアクセシビリティ558(それぞれが、一実施形態では単一バイト値)である。この2つのフィールドは、それぞれローカル(ルータ)ポート及びグローバル(クラスタ)ポート(例えば、VODピアボックスが展開されている家庭内のインターネットルータ上の)が開かれているのか閉じられているのかを示す。例えば、ローカルポートが閉じられている(例えば、ローカルノードアクセシビリティ556が「0」の値を有する)場合に、VODピアは、ファイヤウォール/NATルータに起因して直接にアクセス可能ではなく、VODネットワーク通信を確立するために特殊な間接通信技法(例えば、VODサポートサーバ又は隣接する「ローカル」VODピアを介して間接的に連絡する)を必要とする可能性がある。ローカルポートが閉じられていない場合には、そのような通信に関して、現在のルーティング可能なIPアドレス552に頼ることができる。グローバルポートが閉じられている(すなわち、グローバルノードアクセシビリティ558が「0」の値を有する)場合には、VODピアは、その「ローカル」クラスタの外側で直接にアクセス可能ではなく、やはり特殊な間接通信技法を必要とする可能性がある(例えば、ISPがクラスタ全体との接続性を失った時、これは、発生するとしても非常に希である可能性が高い)。これらのフィールドの両方が、他のVODピアが特定のVODピアと通信するのに必要である可能性がある通信の形を判定する(ターゲットVODピアのノードID 501内のこれらのフィールドの値に基づいて)ための相対的に迅速な機構を提供する。   [191] Two additional descriptors 550 are local node accessibility 556 and global node accessibility 558 (each in one embodiment a single byte value). These two fields indicate whether the local (router) port and the global (cluster) port (for example, on the Internet router in the home where the VOD peerbox is deployed) are open or closed, respectively. . For example, if the local port is closed (eg, the local node accessibility 556 has a value of “0”), the VOD peer is not directly accessible due to the firewall / NAT router and the VOD network Special indirect communication techniques (e.g., indirectly contacting via a VOD support server or adjacent "local" VOD peer) may be required to establish communication. If the local port is not closed, the current routable IP address 552 can be relied upon for such communications. If the global port is closed (ie, the global node accessibility 558 has a value of “0”), the VOD peer is not directly accessible outside its “local” cluster, but also with special indirection. Communication techniques may be required (eg, when an ISP loses connectivity with the entire cluster, this is likely to be very rare if it occurs). Both of these fields determine the form of communication that other VOD peers may need to communicate with a particular VOD peer (the value of these fields in the node ID 501 of the target VOD peer). Provide a relatively quick mechanism for

[192]最後に、残りの記述子すなわち「ネット測定値」560は、一実施形態では、ある動的に監視される要因の現在の結果を反映する2バイトフィールドとして実施される。上で述べたように(下でより詳細に述べるように)、各VODピアのクラスタコントローラは(一実施形態で)、ネットワークトラフィック全般並びにコンテンツオブジェクト及びその構成要素パッケージの展開及び使用に関連する「挙動」トラフィックのパターンの変化を監視し、検出するためにさまざまなテストを実行する。これらの値は、そのようなテストの結果を反映する。例えば、クラスタコントローラは、インターネットバックボーンルータに近い周知の安定したサーバ(例えば、VODサポートサーバ)への周期的な1時間ごとの「ping」の経時的な平均値を維持することができる。そのような平均値は、ネット測定値560値に反映される信頼性の1つの尺度として使用することができる。
2.CRID
[192] Finally, the remaining descriptors or “net measurements” 560 are implemented in one embodiment as a two-byte field reflecting the current results of certain dynamically monitored factors. As noted above (as described in more detail below), each VOD peer's cluster controller (in one embodiment) is responsible for the overall network traffic and the deployment and use of content objects and their component packages. Behavior "Various tests are performed to monitor and detect changes in traffic patterns. These values reflect the results of such tests. For example, the cluster controller can maintain an average over time of a periodic hourly “ping” to a known stable server (eg, a VOD support server) close to the Internet backbone router. Such an average value can be used as one measure of reliability reflected in the net measurement 560 value.
2. CRID

[193]上で述べたように、各VODピアがノードIDによって一意に識別されるのと同様に、コンテンツオブジェクトを公開する各イベントは、コンテンツ参照IDすなわちCRID 600によって一意に識別される。このCRID 600のデータ構造を、図6に示す。一実施形態で、CRID 600は、例えば、トラッキングファイル内で使用され、公開されたコンテンツオブジェクトを、そのコンテンツオブジェクトの構成要素パッケージのコピーを格納するあるVODピアに関連付けるようにする。CRID 600は、トラッキングインデックス内でも使用され、公開されたコンテンツオブジェクトを、そのようなトラッキングファイルのコピーを格納するあるVODピアに関連付けるようにする。   [193] As described above, each event that exposes a content object is uniquely identified by a content reference ID or CRID 600, just as each VOD peer is uniquely identified by a node ID. The data structure of this CRID 600 is shown in FIG. In one embodiment, CRID 600 is used, for example, in a tracking file to associate a published content object with a VOD peer that stores a copy of the component package of that content object. The CRID 600 is also used in the tracking index to associate a published content object with a certain VOD peer that stores a copy of such tracking file.

[194]図5に示されたノードIDデータ構造500と同様に、CRIDデータ構造600では、例示を簡単にするために英数字の形で値をリストするが、「位置」605は、連続するデータのバイトを表す(これは、もちろん、標準的な圧縮技法及び他のデータ表現技法を利用してより効率的に表すことができる)。ここでも、CRID 601全体が、連続するバイトのストリングとして複数の行に示されており、次に、その各構成要素が、後続行で分解されている。   [194] Similar to the node ID data structure 500 shown in FIG. 5, the CRID data structure 600 lists values in alphanumeric form for ease of illustration, but the “position” 605 is continuous. Represents a byte of data (which can, of course, be more efficiently represented using standard compression techniques and other data representation techniques). Again, the entire CRID 601 is shown in multiple rows as a string of consecutive bytes, and then each of its components is disassembled in a subsequent sequence.

[195]CRID 601は、一意の公開されたイベントを表し、例えば、ある映画を別の映画から区別するだけではなく、異なるパブリッシャからのその映画の特定の版をも区別し、同一パブリッシャからのその映画の異なる形さえ(例えば、予告編、又はおそらくは標準アスペクト比版に対してワイドスクリーン版さえ、或いは他の変形の中で字幕又は異なる第1言語を有する版)区別することができる。CRID 601の構成要素も、2つのカテゴリすなわち、パブリッシャ並びにイベントを一意に識別する「コア」CRID 610と、アクセス制約並びにパブリッシャ及び公開されたコンテンツオブジェクトに関するメタデータを含む1組の「記述子」620とに分類することができる。   [195] CRID 601 represents a unique published event, for example, not only distinguishing one movie from another, but also distinguishing specific versions of that movie from different publishers, from the same publisher Even different forms of the movie can be distinguished (eg, a trailer, or perhaps even a widescreen version relative to a standard aspect ratio version, or a version with subtitles or a different first language, among other variations). The CRID 601 components are also a "core" CRID 610 that uniquely identifies two categories: publisher and event, and a set of "descriptors" 620 that contain metadata about access constraints and publisher and published content objects. And can be classified.

[196]一実施形態で、コアCRID 610は、2つのフィールドすなわち、イベントのパブリッシャを一意に識別する「パブリッシャID」612(一実施形態では10バイト値として図示)と、そのパブリッシャからのイベントを一意に識別する「イベントセレクタ」614(一実施形態では6バイト値として図示)とを含む。もう1つの実施形態では、イベントセレクタ614自体を、パブリッシャにまたがってさえ一意とすることができる。このコアCRID 610は、ネットワーク上で公開されるイベントごとの相対的にコンパクトな一意識別子を提供する。   [196] In one embodiment, the core CRID 610 has two fields: a “Publisher ID” 612 (identified as a 10-byte value in one embodiment) that uniquely identifies the publisher of the event, and an event from that publisher. An “event selector” 614 (shown as a 6-byte value in one embodiment) that uniquely identifies it. In another embodiment, the event selector 614 itself can be unique even across publishers. This core CRID 610 provides a relatively compact unique identifier for each event published on the network.

[197]コアCRID 610に加えて、1組の記述子620が、イベントに関するさらなる情報を提供する。図6に示された一実施形態では、3つの記述子すなわち、イベントに関連するアクセス制限の概要を示す「主記述子」625と、イベントのパブリッシャに関連する属性をさらに提供する「パブリッシャ記述子」635と、そのイベントに関連して公開されたコンテンツオブジェクトに関する所定の属性を提供する「終了記述子」645とが示されている。   [197] In addition to the core CRID 610, a set of descriptors 620 provides further information about the event. In one embodiment shown in FIG. 6, there are three descriptors: a “primary descriptor” 625 that outlines access restrictions associated with an event, and a “publisher descriptor” that further provides attributes associated with the publisher of the event. 635 and an “Exit Descriptor” 645 that provides predetermined attributes for the published content object associated with the event.

[198]図示の実施形態では、主記述子625は、2つのフィールドすなわち、パブリケーションがそこから発する区域を識別する「パブリケーションゾーン」626(例えば、5バイトの郵便番号)と、公開されたコンテンツオブジェクトにアクセスできる場合を示す「パブリケーション権利」628(例えば、郵便番号の10バイトの範囲)とを含む。他の実施形態では、複数の郵便番号の範囲、或いは1つ以上の連続する若しくは不連続な地理的区域を指定する他の手段を使用することができる。さらに、ユーザのプロファイル、挙動、又は実質的にすべての他の静的属性若しくは動的属性に基づくアクセス制約など、地理的制限以外の追加の制限を利用することができる。   [198] In the illustrated embodiment, the main descriptor 625 includes two fields: a “publication zone” 626 (eg, a 5 byte zip code) that identifies the area from which the publication originates, and a published content object. And “publication right” 628 (for example, a 10-byte range of the postal code) indicating that the user can access the URL. In other embodiments, multiple zip code ranges or other means of specifying one or more contiguous or non-contiguous geographic areas may be used. In addition, additional restrictions other than geographical restrictions can be utilized, such as access restrictions based on the user's profile, behavior, or substantially all other static or dynamic attributes.

[199]図6に示されたこの実施形態では、パブリッシャ記述子635は、2つのフィールドを含む。そのうちの第1のフィールドが、パブリッシャの異なるタイプだけではなく各そのようなタイプ内の優先順位付けされた順序をも反映する単一バイトとして示された「パブリッシャ優先順位」636である。例えば、ほとんどの映画パブリッシャに、「2」のデフォルトレベルを割り当てることができ、「トップパブリッシャ」(例えば平均需要に基づく、最も人気のある映画の)に、「1」の値を割り当てることができる。また、より低い優先順位値を、「より低い優先順位の」映画パブリッシャだけではなく、完全に異なるタイプ又はクラスのパブリッシャに割り当てることができ、例えば、ストリーミングコンテンツのパブリッシャに「9」の値を割り当てることができる。一実施形態で、「プライベート」パブリッシャに、「0」の値を割り当てて(例えば、低くも高くもないが一意と考えられる)、パブリッシャカテゴリを相対的に迅速に区別する単純な手段を可能にすることすらできる。もう1つの実施形態では、これらの異なるタイプの優先順位付けを組み合わせることができる。パブリッシャ記述子635には、所与のパブリッシャに通常関連するコンテンツオブジェクトの主要なジャンルを識別するのに使用できる「パブリッシャカテゴリ」638(図6では2バイトフィールドとして図示)をも含めることができる。代替実施形態(図示せず)では、「イベントカテゴリ」フィールドを使用して(例えば、別々の「イベント記述子」内で)、パブリッシャを分類するのではなく、コンテンツオブジェクトジャンルをより別個の(例えば、「映画ごとの」)基礎で区別することができる。そのような情報は、下でより詳細に述べるように、別々の集中化された「メタデータDB」にも(又はこれに排他的に)格納し、CRID 601(又はコアCRID 610)を介して関連付けることができる。   [199] In this embodiment shown in FIG. 6, publisher descriptor 635 includes two fields. The first of these is “Publisher Priority” 636, shown as a single byte that reflects not only the different types of publishers, but also the prioritized order within each such type. For example, most movie publishers can be assigned a default level of “2”, and “top publishers” (eg, of the most popular movies based on average demand) can be assigned a value of “1”. . Also, lower priority values can be assigned not only to “lower priority” movie publishers, but also to completely different types or classes of publishers, eg assigning a value of “9” to streaming content publishers be able to. In one embodiment, a “private” publisher can be assigned a value of “0” (eg, not low but high but considered unique) to allow a simple means of relatively quickly distinguishing publisher categories. You can even do it. In another embodiment, these different types of prioritization can be combined. The publisher descriptor 635 may also include a “publisher category” 638 (shown as a 2-byte field in FIG. 6) that can be used to identify the main genre of the content object normally associated with a given publisher. In an alternative embodiment (not shown), rather than using a “event category” field (eg, in a separate “event descriptor”) to categorize publishers, the content object genre is more distinct (eg, , "Per movie") can be distinguished on a basis. Such information is also stored (or exclusively) in a separate centralized “metadata DB” as described in more detail below and via CRID 601 (or core CRID 610). Can be associated.

[200]最後に、「終了記述子」645は、一実施形態で、コンテンツオブジェクトの異なる形又はタイプの間で区別する単一のフィールドすなわち「コンテンツオブジェクトタイプ」646(例えば、2バイト値)を伴って図示されている。例えば、映画を、その予告編から、又は現在のDVDの多くで通常見られる他のタイプの「エクストラ」コンテンツから区別することができる。上で注記したように、アスペクト比(例えば、ワイドスクリーン)又は異なる第1言語も、区別する要因とすることができる。さらに、完全に異なるタイプのコンテンツ(例えば、ドキュメンタリ、トレーニングビデオ、教育ビデオ、ユーザ生成のストリーミングクリップなど)をコンテンツオブジェクトの区別可能なカテゴリの源とすることもできる。上で注記したように、追加の「イベント関連」情報を、「イベント記述子」内に含めるか、及び/又はネットワーク上のVODピアからアクセス可能な集中化された「メタデータDB」内で別々に維持することができる。
3.トラッキングファイル
[200] Finally, the “end descriptor” 645, in one embodiment, provides a single field or “content object type” 646 (eg, a 2-byte value) that distinguishes between different forms or types of content objects. It is accompanied by illustration. For example, a movie can be distinguished from its trailer or from other types of “extra” content normally found on many current DVDs. As noted above, the aspect ratio (eg, wide screen) or a different first language can also be a distinguishing factor. In addition, completely different types of content (eg, documentary, training video, educational video, user-generated streaming clips, etc.) can be the source of distinguishable categories of content objects. As noted above, additional “event related” information may be included in the “event descriptor” and / or separately in a centralized “metadata DB” accessible from VOD peers on the network. Can be maintained.
3. Tracking file

[201]図7に移ると、トラッキングファイルデータ構造700の一部の実施形態が示されている。このトラッキングファイルデータ構造700は、公開されたコンテンツオブジェクト(すなわちイベント)のパッケージの特定のグループを格納する所定のVODピアの位置を維持し、そのようなVODピア位置をそのイベントを表す対応するCRIDに関連付ける。一実施形態では、別々のトラッキングファイル700が、イベントを表すCRIDごとに生成されるが、他の実施形態(図示せず)では、1つのトラッキングファイルに複数のCRID(イベント)を含めることができる。各エントリは、特定のCRIDについて、そのCRIDに関連するコンテンツオブジェクトの構成要素パッケージを格納するさまざまなVODピアを識別することができる。   [201] Turning to FIG. 7, some embodiments of a tracking file data structure 700 are shown. This tracking file data structure 700 maintains the location of a given VOD peer that stores a particular group of packages of published content objects (ie events), and such VOD peer location is the corresponding CRID that represents the event. Associate with. In one embodiment, a separate tracking file 700 is generated for each CRID representing an event, but in other embodiments (not shown), a single tracking file can contain multiple CRIDs (events). . Each entry may identify various VOD peers that store the component package of the content object associated with that CRID for a particular CRID.

[202]上で注記したように、トラッキングファイル700は、分散された形で生成され、維持される。したがって、特定のVODピアに格納されたトラッキングファイル700のコピーは、公開されたコンテンツオブジェクト(対応するCRIDによって表される)のパッケージのグループを格納するVODピアのサブセット(例えば、「葉」クラスタ内の隣接するVODピア)だけに関するエントリを含むことができる。トラッキングファイル700の他のバージョン(例えば、より信頼性の高いVODピアに格納される)は、構成要素パッケージのそのようなグループを格納するVODピアのより大きいドメインを表すことができる。構成要素パッケージのグループは、例えば、「サブセット」葉クラスタ内のVODピアに加えて、より大きい「スーパーセット」クラスタ内のVODピアを含む。図7に示された一実施形態では、あるコンテンツオブジェクトの構成要素パッケージのすべてが、各トラッキングファイル内で説明される。その結果、特定のコンテンツオブジェクトへのアクセスを入手するために、複数のトラッキングファイルを突き止める必要がなくなる。   [202] As noted above, the tracking file 700 is generated and maintained in a distributed fashion. Thus, a copy of the tracking file 700 stored at a particular VOD peer is a subset of the VOD peer that stores a group of packages of published content objects (represented by the corresponding CRID) (eg, within a “leaf” cluster). , Only adjacent VOD peers). Other versions of tracking file 700 (eg, stored on a more reliable VOD peer) can represent a larger domain of VOD peers that store such groups of component packages. A group of component packages includes, for example, VOD peers in a larger “superset” cluster in addition to VOD peers in a “subset” leaf cluster. In one embodiment shown in FIG. 7, all of the component packages of a content object are described in each tracking file. As a result, there is no need to locate multiple tracking files in order to gain access to a particular content object.

[203]表形式で図示されているが、トラッキングファイル700内のデータを、圧縮されたハッシュテーブル、リンクリスト、並びに他の標準的な低水準のデータ構造及びフォーマットを含むより効率的なフォーマットで表すことができる。一実施形態で、トラッキングファイル700の最初のフィールドは、別々のVODピアに格納されている構成要素パッケージのグループ(「パッケージグループ」)の個数を識別する。例えば、あるコンテンツオブジェクトを、100個の別々の構成要素パッケージ(一実施形態では固定サイズの、他の実施形態では異なるサイズの)に分割し、なおかつ4つの別個のパッケージグループ(例えば、最初の10個のパッケージを含む「パッケージグループ1」、それぞれ20個のパッケージの後続グループを含む「パッケージグループ2」及び「パッケージグループ3」、並びに残りの50個のパッケージを含む「パッケージグループ4」)にグループ化することができる。   [203] Although shown in tabular form, the data in tracking file 700 is in a more efficient format including compressed hash tables, linked lists, and other standard low-level data structures and formats. Can be represented. In one embodiment, the first field of tracking file 700 identifies the number of groups of component packages (“package groups”) stored in separate VOD peers. For example, a content object may be divided into 100 separate component packages (fixed size in one embodiment, different sizes in other embodiments), and four separate package groups (eg, the first 10 "Package Group 1" containing one package, "Package Group 2" and "Package Group 3" each containing 20 subsequent packages, and "Package Group 4" containing the remaining 50 packages) Can be

[204]図7に示された実施形態では、このフィールド710に、トラッキングファイル700を識別するCRIDに関連するコンテンツオブジェクトが3つの別個のパッケージグループを含み、そのコピーが個々のVODピアに格納されることを示す「3」が含まれる。フィールド710に続くのが、そのようなVODピアごとの、そのVODピアのノードID(又は、一実施形態では、単純にIPアドレス)とそれに続くそのVODピアが各パッケージグループのコピーを含むかどうかの表示とを含むエントリである。例えば、フィールド710に続くのは、「ノード1」のIPアドレス720と、それに続く、ノード1がそのパッケージグループのコピーを格納するかどうかを示す3つのパッケージグループごとの値725である。これらのパッケージグループのうちの1つ以上を格納する残りのVODピアごとに、後続エントリが続く(「最終」エントリ730まで)。そのようなVODピアの個数は、別々のフィールド又はリンクリスト内のnull値など、さまざまな手段(図示せず)によって指定することができる。   [204] In the embodiment shown in FIG. 7, in this field 710, the content object associated with the CRID that identifies the tracking file 700 includes three separate package groups, copies of which are stored in individual VOD peers. “3” is included. Following field 710 is, for each such VOD peer, the node ID of the VOD peer (or simply an IP address in one embodiment) followed by whether the VOD peer contains a copy of each package group. Entry. For example, following field 710 is an IP address 720 for “Node 1” followed by a value 725 for each of the three package groups indicating whether Node 1 stores a copy of that package group. For each remaining VOD peer that stores one or more of these package groups, a subsequent entry follows (up to the “final” entry 730). The number of such VOD peers can be specified by various means (not shown), such as separate fields or null values in the linked list.

[205]上で注記したように、照会するVODピアは、当初に、所望の公開されたコンテンツオブジェクト(イベント)に対応するCRIDに基づく隣接するVODピアの検索を実行し、その所望のCRIDに関連するトラッキングファイルのコピーを格納するVODピアを直接に突き止めることに失敗する場合がある。下でより詳細に説明するように、そのような検索は、まず、そのようなトラッキングファイルのコピーを格納する1つ以上のVODピアを間接的に参照する「トラッキングインデックス」を含むVODピアをもたらす場合がある。さらに、関連するトラッキングファイルを見つけた時であっても、そのトラッキングファイル内で参照されるVODピアのうちの1つ以上がダウンロード要求を完了できない(例えば、デバイス障害、ネットワーク障害、過負荷帯域幅、又はなんらかの他の問題に起因して)場合に、追加の検索が必要になる場合がある。
4.トラッキングインデックス
[205] As noted above, the querying VOD peer initially performs a search for neighboring VOD peers based on the CRID corresponding to the desired published content object (event), and to that desired CRID. It may fail to locate the VOD peer that stores a copy of the associated tracking file directly. As described in more detail below, such a search first results in a VOD peer that includes a “tracking index” that indirectly references one or more VOD peers that store copies of such tracking files. There is a case. Furthermore, even when an associated tracking file is found, one or more of the VOD peers referenced in that tracking file cannot complete the download request (eg, device failure, network failure, overload bandwidth). Or due to some other problem), additional searches may be required.
4). Tracking index

[206]上で注記したように、トラッキングインデックスが、関連するトラッキングファイルが突き止められる前に識別される場合には、そのトラッキングインデックスが、利用され、1つ以上の関連するトラッキングファイルを突き止める。このトラッキングファイルは、要求元VODピアがダウンロードし見ることを望む公開されたコンテンツオブジェクト(イベント)に対応するCRIDに基づく。やはり上で注記したように、トラッキングインデックス及び対応するトラッキングファイルは、イベントが最初に発生する時(すなわち、関連するコンテンツオブジェクトが最初に公開される時)に生成される。これらのファイルは、分散された形で、例えば、クラスタにまたがって、「スーパーセット」から下に「サブセット」クラスタへ生成されるが、(効率のために)必ずしも各「葉」クラスタのレベルまで下に生成されるのではない。構成要素パッケージ(及びそのグループ)を含むコンテンツオブジェクトの展開での変更が行われる時に、対応する変更が、これらのファイルでも必要とされる場合がある(類似する分散された形で達成される)。そのような変更は、さまざまな異なるネットワーク関連の原因及び挙動の原因に由来する場合がある。例えば、そのような変更は、デバイス障害、ネットワーク障害、ネットワーク帯域幅の測定された変化、並びに全般的な又は特定のクラスタ内の特定のコンテンツオブジェクトに関する需要の増加及び/又は減少に由来する可能性がある。   [206] As noted above, if a tracking index is identified before the associated tracking file is located, that tracking index is utilized to locate one or more associated tracking files. This tracking file is based on the CRID corresponding to the published content object (event) that the requesting VOD peer wants to download and view. As also noted above, the tracking index and the corresponding tracking file are generated when the event first occurs (ie, when the associated content object is first published). These files are generated in a distributed fashion, for example across clusters, from a “superset” down to a “subset” cluster, but not necessarily (for efficiency) to the level of each “leaf” cluster. It is not generated below. When changes are made in the deployment of content objects that contain component packages (and their groups), corresponding changes may also be required in these files (achieved in a similar distributed manner). . Such changes may come from a variety of different network-related causes and behavioral causes. For example, such changes may result from device failures, network failures, measured changes in network bandwidth, and increased and / or decreased demand for specific content objects within a general or specific cluster. There is.

[207]トラッキングインデックスデータ構造800の一実施形態を、図8に示す。上で述べたトラッキングファイル700に似て、表フォーマットが使用されている。表フォーマットは、圧縮されたハッシュテーブル、リンクリスト、並びに他の標準的な低水準のデータ構造及びフォーマットを含むより効率的なフォーマットで表すこともできるデータを有する。上で注記したように、別々のトラッキングインデックスを、CRID(イベント)ごとに生成することができる。或いは、図8に示されているように、単一のトラッキングインデックスに、そのようなCRIDごとに(例えば、特定のクラスタ内で公開されたイベントごとに)エントリを含めることができる。   [207] One embodiment of a tracking index data structure 800 is shown in FIG. Similar to the tracking file 700 described above, a table format is used. The tabular format has data that can also be represented in a more efficient format including compressed hash tables, linked lists, and other standard low-level data structures and formats. As noted above, a separate tracking index can be generated for each CRID (event). Alternatively, as shown in FIG. 8, a single tracking index can include an entry for each such CRID (eg, for each event published within a particular cluster).

[208]図8では、各行が、特定のイベントを表し、「イベントA」を表す行810から開始する。各後続の行は、別のイベントを表す(「イベントN」を表す「最終」行820まで)。イベントごとに、最初のフィールドは、そのイベントに対応するCRID 815を識別する。このフィールドは、もちろん、例えば別々のトラッキングインデックスがCRIDごとに生成される場合には不要であり、その場合には、CRIDを、その別々のトラッキングインデックスファイルを突き止めるのに使用することができる(例えば、ハッシュテーブルを介して)。各CRIDエントリは、そのCRIDに対応するトラッキングファイルのコピーを格納するVODピアのIPアドレス(又はノードID)のリストを含む。最初にリストされるVODピアのIPアドレスは、列818によって示されており、これに、列819までの後続VODピアのIPアドレスが続き、列819は、「最終」VODピアのIPアドレスを表す。   [208] In FIG. 8, each row represents a particular event, starting with row 810 representing "Event A". Each subsequent row represents another event (up to a “final” row 820 representing “event N”). For each event, the first field identifies the CRID 815 corresponding to that event. This field is of course unnecessary if, for example, a separate tracking index is generated for each CRID, in which case the CRID can be used to locate that separate tracking index file (eg, Through a hash table). Each CRID entry includes a list of IP addresses (or node IDs) of VOD peers that store a copy of the tracking file corresponding to that CRID. The IP address of the VOD peer listed first is indicated by column 818, followed by the IP address of the subsequent VOD peer up to column 819, which represents the IP address of the “final” VOD peer. .

[209]特定のCRID(イベント)に対応するトラッキングファイルのコピーを格納するVODピアの個数が、CRIDごとに変化する場合があることに留意されたい。また、特定のVODピアが、おそらくは複数のCRIDに関連するトラッキングファイルのコピー(別々のトラッキングファイルとして格納されるか、複数のCRIDエントリを有する単一のトラッキングファイルとして格納される)を格納する場合がある。さらに、上で注記したように、一実施形態で、あるトラッキングインデックス内の異なるCRIDエントリの個数は、より信頼性の高いVODピアに格納されるトラッキングインデックスでより多くなる可能性がある(例えば、さまざまな「サブセット」クラスタ内の追加のVODピアを識別する)。
B.ノード間通信
[209] Note that the number of VOD peers storing copies of the tracking file corresponding to a particular CRID (event) may vary from CRID to CRID. Also, if a particular VOD peer stores a copy of a tracking file, possibly associated with multiple CRIDs (stored as separate tracking files or as a single tracking file with multiple CRID entries) There is. Further, as noted above, in one embodiment, the number of different CRID entries in a tracking index may be higher with tracking indexes stored at more reliable VOD peers (eg, Identify additional VOD peers in various “subset” clusters).
B. Inter-node communication

[210]VODピアのノードID、コンテンツオブジェクトが公開されるイベントのコンテンツ参照ID(CRID)、並びにそのようなコンテンツオブジェクトの構成要素パッケージのグループの分散位置を維持するために生成されるトラッキングインデックス及びトラッキングファイルを含む、所定の重要なデータ構造を説明した。これから、VODピアが互いと(並びにVODサポートサーバと)それよって通信する通信プロトコル及び他の手段に注意を向ける。
1.初期ハンドシェーク
[210] The node ID of the VOD peer, the content reference ID (CRID) of the event to which the content object is published, and a tracking index generated to maintain the distributed position of the group of component packages of such content object Described certain important data structures, including tracking files. Attention is now directed to the communication protocols and other means by which VOD peers communicate with each other (as well as with the VOD support server).
1. Initial handshake

[211]一実施形態で、2つのVODピアが互いと直接に通信する(例えば、アプリケーションレベルリレーとして働く介在物なしでTCPを介して)時には必ず、一方が「イニシエータ」として働き、他方が「レスポンダ」として働く。その後、初期接続が確立されたならば、残りの通信アーキテクチャの多くを対称とすることができる。   [211] In one embodiment, whenever two VOD peers communicate directly with each other (eg, via TCP without an intermediary acting as an application level relay), one acts as the “initiator” and the other as “ Work as a "responder". Then, if an initial connection is established, many of the remaining communication architectures can be symmetric.

[212]TCPストリーム接続のこの確立(TCP接続は、オーバーレイネットワークとして使用される)は、別個のフェーズに分割される。初期フェーズすなわち「フェーズA」は、初期TCP接続を確立するのに使用されるIPアドレス及びポートを発見するのに必要な予備活動を含む。これに「フェーズB」が続き、フェーズBでは、生TCP接続が、通常は公開された標準規格に従って確立される。   [212] This establishment of a TCP stream connection (TCP connection is used as an overlay network) is divided into separate phases. The initial phase or “Phase A” includes the preliminary activities necessary to discover the IP address and port used to establish the initial TCP connection. This is followed by “Phase B”, where a raw TCP connection is usually established according to published standards.

[213]例えば、「正常な」場合に、正確に3つのTCPプロトコルデータ単位(PDU又はパケット)が、接続をセットアップするために交換される。最初の交換されるパケットは、「SYN」フラグをセットされ、第2のパケットは、「SYN」フラグと「ACK」フラグとの両方をセットされ、第3のパケットは、「ACK」フラグだけをセットされる。この実施形態では、第1及び第3のパケットを送信するVODピアが、「イニシエータ」と考えられ、第2パケットを送信するVODピアは、「レスポンダ」と考えられる。   [213] For example, in the “normal” case, exactly three TCP protocol data units (PDUs or packets) are exchanged to set up a connection. The first exchanged packet has the “SYN” flag set, the second packet has both the “SYN” flag and the “ACK” flag set, and the third packet has only the “ACK” flag set. Set. In this embodiment, the VOD peers that transmit the first and third packets are considered “initiators” and the VOD peers that transmit the second packets are considered “responders”.

[214]「フェーズB」の完了時に、図9に示された対称ハンドシェーキングフェーズを開始することができる。初期ハンドシェークフェーズすなわち「フェーズH1」930では、イニシエータすなわち「ノードA」910及びレスポンダすなわち「ノードB」920のそれぞれが、VODピアとのTCP接続を確立した(意図された通りに)、又は別のタイプのインターネットベースの実体とのTCP接続を誤って確立したのいずれであるかを判定することを試みる。したがって、この初期ハンドシェークフェーズであるフェーズH1 930は、対称フェーズである。各VODピアは、単一オクテット(バイト)を送信し、タイマをセットし、タイマが満了する前に他方のVODピアからのもう1つのオクテット(バイト)を読み取ることを試みる。一実施形態で、ノードA 910すなわちイニシエータは、ASCII「6」(0x36)を含むメッセージ「H1」を送信する。ノードB 920すなわちレスポンダは、ASCII「9」(0x39)を含むメッセージ「H1」を送信する。いずれかの側が、他方の側からのオクテットの受信を待っている間にタイムアウトする場合(或いは、期待されない値を受信する場合)に、その側は、接続をクローズする。他方のVODピアとの着信ストリーム又は発信ストリームの同期化は、不要である。これらの送信ストリーム及び受信ストリームのシャットダウンは、実際には、暗黙である(例えば、アプリケーションが「close(...)」又は類似するAPI要素を使用して、それ自体を接続からデタッチする時)。そうではなく、すべてが計画通りに進む(すなわち、期待されたオクテットが間に合って受信される)場合には、このプロセスは、次のフェーズすなわち「フェーズH2」940に進む。 [214] Upon completion of “Phase B”, the symmetric handshaking phase shown in FIG. 9 may begin. In the initial handshake phase or “Phase H1” 930, each of the initiator or “Node A” 910 and the responder or “Node B” 920 has established a TCP connection (as intended) with the VOD peer, or another Attempts to determine whether a TCP connection with a type of Internet-based entity has been erroneously established. Accordingly, this initial handshake phase, phase H1 930, is a symmetric phase. Each VOD peer sends a single octet (byte), sets a timer, and attempts to read another octet (byte) from the other VOD peer before the timer expires. In one embodiment, node A 910 or initiator sends a message “H1 i ” that includes ASCII “6” (0x36). Node B 920 or responder sends a message “H1 r ” containing ASCII “9” (0x39). If either side times out waiting to receive an octet from the other side (or receives an unexpected value), that side closes the connection. Synchronization of the incoming or outgoing stream with the other VOD peer is not necessary. Shutting down these send and receive streams is actually implicit (eg, when an application uses “close (...)” or similar API elements to detach itself from the connection). . Otherwise, if everything goes as planned (ie, the expected octets are received in time), the process proceeds to the next phase, “Phase H2” 940.

[215]フェーズH2 940は、VODピアのそれぞれが、他方のVODピアに、それが合法的なVODピア(システムの「クラック」を試みているノードではなく)と実際に通信していると確信させることを試みるという点で、やはり対称である。一実施形態で、「H2X」メッセージが、このセキュア検証を実行するのに使用されるが、より単純な「H2B」メッセージを、開発目的及びデバック目的(例えば、デバッグ中の通信の暗号化を防ぐため)に使用可能にすることができる(及びおそらくは必要になる)。この開発/デバッグシナリオでは、フェーズH2 940は、ノードA 910とノードB 920との両方が、一実施形態で単一オクテット(例えば、ドット又はピリオドのASCIIコード)からなる「H2B」メッセージを交換することを含む。   [215] Phase H2 940 ensures that each of the VOD peers is actually communicating with the other VOD peer that it is a legitimate VOD peer (not the node attempting to "crack" the system) It is still symmetric in that it tries to do. In one embodiment, an “H2X” message is used to perform this secure verification, but a simpler “H2B” message is used for development and debugging purposes (eg preventing encryption of communications during debugging). In order to be usable (and possibly needed). In this development / debug scenario, phase H2 940 allows both Node A 910 and Node B 920 to exchange “H2B” messages that in one embodiment consist of a single octet (eg, dot or period ASCII code). Including that.

[216]通常の製品シナリオでは、ノードA 910とノードB 920との両方が、セキュア検証を実現するために「H2X」メッセージを交換する。これらの「H2X」メッセージは、一実施形態で、メッセージの終りを突き止めるために迅速に簡単に解析可能になるように符号化される(例えば、2オクテットと62オクテットとの間であり、最後のオクテットが、ピリオドのASCIIコードを符号化される唯一のオクテットである)。これらは、通常、セキュリティオプションのネゴシエーションに関するさまざまなパラメータと混合された、よい種を与えられた擬似ランダムデータを含む。一実施形態で、両側がフェーズH2 940メッセージとして「H2X」メッセージを送信する時に、追加のフェーズすなわち「H3」950が、初期セキュリティセットアップのハンドシェーキングを完了するのに必要である。   [216] In a normal product scenario, both Node A 910 and Node B 920 exchange “H2X” messages to achieve secure verification. These “H2X” messages, in one embodiment, are encoded so that they can be quickly and easily parsed to locate the end of the message (eg, between 2 and 62 octets, the last An octet is the only octet encoded with a period ASCII code). These usually include well-seeded pseudo-random data mixed with various parameters related to security option negotiation. In one embodiment, when both sides send an “H2X” message as a phase H2 940 message, an additional phase or “H3” 950 is required to complete the initial security setup handshaking.

[217]その一方で、開発/デバッグシナリオにおいて、一方の側が「H2X」メッセージを送信し、他方の側が「H2B」メッセージを送信する場合に、ハンドシェークフェーズH2 940は、接続にさらなるセキュリティを追加するためにフェーズH3 950を必要とせずに完了する。ハンドシェークが完了した後に、「H2B」メッセージを受信した側は、「H2B」メッセージを送信した側が、このプロトコルの古いバージョン又は製品以前のバージョンを使用しているか、デバッグモードで動作しているか、或いはこのシステムの「クラック」を試みている可能性があることを感知し、この接続に不安を感じる可能性がある。したがって、「H2B」メッセージを受信した側は、サービスを一切提供せずに単純に切断を開始してもよい(例えば、下で説明する、「DiscWithReason」メッセージを適当なペイロードと共に送信することによって)。あるVODピアが、なんらかの理由でフェーズH3 950をサポートしない場合には、そのフェーズH2 940は、単純に、「H2B」メッセージを送信することと、その後に、最後のASCII「ピリオド」に出会うまで入力ストリームから62個までのオクテットを読み取ることからなるものとすることができる。   [217] On the other hand, in a development / debug scenario, handshake phase H2 940 adds additional security to the connection when one side sends an "H2X" message and the other side sends an "H2B" message. Therefore, phase H3 950 is completed without requiring it. After the handshake is complete, the side that received the “H2B” message is that the side that sent the “H2B” message is using an older version of the protocol or an earlier version of the protocol, is operating in debug mode, or Sense that you may be trying to “crack” the system and feel anxious about this connection. Thus, the party receiving the “H2B” message may simply initiate a disconnect without providing any service (eg, by sending a “DiscWithReason” message with an appropriate payload, described below). . If a VOD peer does not support phase H3 950 for any reason, then phase H2 940 will simply send an “H2B” message and then enter until the last ASCII “period” is encountered. It may consist of reading up to 62 octets from the stream.

[218]フェーズH3 950交換の最初のメッセージは、一実施形態で、少なくとも、「H2X」メッセージともう1つの値(例えば暗号鍵)との両方に事前定義の順序で関数的に依存するある値を含む。各側は、まず、受信した「H2X」メッセージが、それが送信した「H2X」メッセージと異なることを検証する(及び、送信したものと同一のメッセージを受信した場合(システムを「クラックする」可能な試みのインジケータ)には、接続を断つ)こともできる。検証が達成されるまで、おそらくはノードIDの交換を含めて(このハンドシェークフェーズに続く「通常の」ノードID交換の前であっても)、複数のメッセージを追加セキュリティのために交換することができる。   [218] The initial message of the phase H3 950 exchange is, in one embodiment, a value that functionally depends at least in a predefined order on both the “H2X” message and another value (eg, encryption key). including. Each side first verifies that the received “H2X” message is different from the transmitted “H2X” message (and can “crack” the system if it receives the same message that it sent) You can also disconnect). Multiple messages can be exchanged for additional security, possibly including a node ID exchange (even before the “normal” node ID exchange following this handshake phase) until verification is achieved. .

[219]これらのハンドシェークフェーズの結果として、最大サイズの「H2X」メッセージ(例えば、62オクテット/バイト)を格納できる比較的小さいバッファを利用することと、ターミネータ値(例えば、ASCIIピリオド)が見つかるかバッファが満杯になるまで入力ストリームからそのバッファに単純に読み取ることとによって、「H2B」メッセージ及び「H2X」メッセージを受信することができる。最初のオクテットがターミネータ値である場合には、そのメッセージは「H2B」メッセージである。そうでない場合には、そのメッセージは「H2X」メッセージである。
2.メッセージ符号化
[219] As a result of these handshake phases, use a relatively small buffer that can store a maximum size "H2X" message (eg, 62 octets / byte) and find a terminator value (eg, an ASCII period) "H2B" and "H2X" messages can be received by simply reading into the buffer from the input stream until the buffer is full. If the first octet is a terminator value, the message is an “H2B” message. Otherwise, the message is an “H2X” message.
2. Message encoding

[220]図9に示された初期ハンドシェークが完了した後に、さまざまな他の「基本」メッセージ及び「拡張」メッセージを、情況に応じて交換することができる。例えば、一実施形態で、VODピアは、最初に、ノードID(一実施形態では単なるIPアドレスであるが、他の実施形態ではボックスID又はノードID全体である)及び信頼レベルを交換する。他のシナリオは、VODピアの最初の「ブートストラップ」プロセス又は後続のスタートアップ/ブートプロセス、更新及び他の管理サービス、プッシュ関連プロセス(アナウンスメント及びパブリケーションなど)、プル関連プロセス(ファイル検索及びダウンロードなど)、動的監視のテスト及びデータ交換、並びに下でより詳細に述べる他のシナリオを含む。   [220] After the initial handshake shown in FIG. 9 is completed, various other “basic” and “extended” messages can be exchanged depending on the situation. For example, in one embodiment, the VOD peer first exchanges the node ID (which is just an IP address in one embodiment, but in other embodiments is the box ID or the entire node ID) and trust level. Other scenarios include VOD peer's initial “bootstrap” process or subsequent startup / boot process, updates and other management services, push related processes (such as announcements and publications), pull related processes (such as file search and download) ), Dynamic monitoring testing and data exchange, and other scenarios described in more detail below.

[221]一実施形態で、メッセージは、6バイトヘッダから開始して符号化される。ストリングは、2バイト長を使用して値符号化される。追加の2バイトが、使用されるプロトコルバージョンのために割り当てられ、別の2バイトが、それぞれペイロードサイズ及びペイロードタイプのために割り当てられる。空のペイロードは、この実施形態では許容される。ペイロードタイプの例は、次を含む。
・ 01 検索インデックス(ペイロードは必ずCRIDである)
・ 02 要求トラッキング(ペイロードは必ずCRIDである)
・ 03 要求コンテンツパッケージ(ペイロードはCRID及びパッケージ番号である)
・ 66 ソケット接続が残っていない
[221] In one embodiment, the message is encoded starting with a 6-byte header. The string is value encoded using a 2-byte length. An additional 2 bytes are allocated for the protocol version used and another 2 bytes are allocated for the payload size and payload type, respectively. Empty payloads are allowed in this embodiment. Examples of payload types include:
・ 01 search index (payload is always CRID)
・ 02 Request Tracking (Payload is always CRID)
-03 Requested content package (payload is CRID and package number)
・ 66 No socket connection left

[222]一実施形態では、メッセージペイロードを、同一のタイプ(各要素が固定サイズを有するか、異なる要素が異なるサイズを有する)又は異なるタイプを有するn個の要素からなるものとすることができる。ペイロードが、すべてが既知の固定サイズの同一のタイプを有する複数の要素からなる時に、下に示すように、最初の2バイトが、要素数を定義し、その後に、各要素を構成する固定された個数のバイトが続く。
・例 このペイロードは、すべてが既知の固定サイズの同一のタイプを有する3つの要素(a、b、及びc)からなる。
[222] In one embodiment, the message payload may consist of n elements of the same type (each element has a fixed size or different elements have different sizes) or different types. . When the payload consists of multiple elements that all have the same type of known fixed size, the first two bytes define the number of elements, and then are fixed to make up each element, as shown below Followed by the number of bytes.
Example This payload consists of three elements (a, b, and c) that all have the same type of known fixed size.

[223]ペイロードが、すべてが同一のタイプを有するが異なるサイズのn個の要素からなる時には、下に示すように、最初の2バイトが、要素数を定義し、その後に、要素ごとにその要素のサイズを定義する2バイトと、その要素を構成するバイトとが続く。
・例 このペイロードは、すべてが同一のタイプを有するが異なるサイズ(それぞれ3バイト、4バイト、及び5バイト)の3つの要素(a、b、及びc)からなる。
[223] When the payload consists of n elements of the same type but of different sizes, the first two bytes define the number of elements, as shown below, and then for each element Two bytes that define the size of the element, followed by the bytes that make up the element.
Example This payload consists of three elements (a, b and c) all of the same type but of different sizes (3 bytes, 4 bytes and 5 bytes respectively).

[224]ペイロードが、異なるタイプのn個の要素からなる時には、要素タイプ及びサイズのさまざまな組合せが可能であり、下に示すように、各タイプの要素(同一の固定サイズ又は異なるサイズのいずれかを有する)が一緒に指定される。
・例 このペイロードは、さまざまな個数の3つのタイプの要素からなる。第1及び第2のタイプの要素(タイプA及びタイプB)は、固定サイズを有する。第3のタイプの要素(タイプC)は、可変サイズの要素を有する。

3.基本メッセージ
[224] When the payload consists of n elements of different types, various combinations of element types and sizes are possible, as shown below, each type of element (either the same fixed size or a different size) Are specified together.
Example This payload consists of various numbers of three types of elements. The first and second type elements (type A and type B) have a fixed size. The third type of element (type C) has variable size elements.

3. Basic message

[225]次は、本発明の主要なプッシュ、プル、及びネットワーク監視機能性(これらは、下で述べる「拡張メッセージ」によって呼び出される)などの特定の目的に必ずしも制約されないさまざまな一般的な目的にVODピアによって使用される「基本メッセージ」の実施形態の説明である。そのような一般的な目的は、下で述べるように、接続を確立し検証する初期ハンドシェーキングメッセージ及びログインメッセージ、「アイドル」時間の表示、並びに要求取消及び既存接続の切断を含む。   [225] The following are various general purposes that are not necessarily constrained to specific purposes, such as the main push, pull, and network monitoring functionality of the present invention (which are invoked by the "extended messages" described below) Is a description of an embodiment of a “basic message” used by a VOD peer. Such general objectives include initial handshaking and login messages to establish and verify a connection, display of “idle” time, and request cancellation and disconnection of an existing connection, as described below.

[226]一実施形態で、「基本メッセージ」は次を含む。   [226] In one embodiment, the "basic message" includes:

[227]初期ハンドシェーキング
[227] Initial handshaking

[228]第2ハンドシェーク
[228] Second handshake

[229]Login(LSTR) 別のノードに接続する(イニシエータのノードIDを含む)
[229] Login (LSTR) Connect to another node (including the node ID of the initiator)

[230]Login(ACK) ハンドシェーキング検証の確認(Loginを受け入れた後に送信される)
レスポンダのノードIDを含む
後続の切断は、ハンドシェークフェーズでのエラーではなく、「ハンドシェークされた」接続の期待されない切断と考えられる
[230] Confirmation of Login (ACK) handshaking verification (sent after accepting Login)
Subsequent disconnects that include the responder's node ID are not an error during the handshake phase, but are considered an unexpected disconnection of the “handshaked” connection

[231]Idle 実質的なメッセージが不要である時であってもメッセージを送信する必要がある場合がある
[231] Idle It may be necessary to send a message even when a substantive message is not needed

[232]CancelRequest 要求を取り消す
[232] Canceling a CancelRequest request

[233]RequestClosed この応答は、通常、要求が最終的に応答されるか取り消される時に必ず返される
[233] RequestClosed This response is usually returned whenever a request is finally responded or canceled.

[234]WTDiscRequest ソケットをクローズする前に接続の正しいシャットダウンを保証する
正しいシャットダウンが開始される前に、「WTDiscRspGranted」メッセージが、これに応答して送信される
[234] A "WTDiscRspGranted" message is sent in response before a proper shutdown is initiated to ensure a proper shutdown of the connection before closing the WTDiscRequest socket

[235]WTDiscRspGranted 正しいシャットダウンを開始するための、WTDiscRequestメッセージに対する応答
「WTDiscRequest」メッセージの送信側は、このメッセージを受信した後に、ソケットをクローズするために正しいシャットダウンを開始する
[235] WTDiscRspGranted Response to WTDiscRequest message to initiate a proper shutdown After receiving this message, the sender of the "WTDiscRequest" message initiates a proper shutdown to close the socket

[236]WTDiscRspDoNot 接続に関する意見の相違の場合に送信される
[236] Sent in case of disagreement regarding WTDiscRspDoNot connection

[237]Disconnecting まず「尋ねる」ことなく切断する代替の形
「WTDiscRequest」メッセージ及び「WTDiscRspGranted」メッセージを交換する(実質的に、ソケットをクローズするために「許可を求める」)のではなく、このメッセージを送信し、一方的にソケットをクローズするためにシャットダウンを実行することができる
[237] Disconnecting This message instead of exchanging the "WTDiscRequest" message and the "WTDiscRspGranted" message instead of first "disconnecting without asking" (essentially "requesting permission" to close the socket) Can be shut down to send and unilaterally close the socket

[238]DiscWithReason 「Disconnect」と同一であるが、ペイロードは、切断の理由を含む
ペイロードに、平文又は符号化された形で切断の理由を含めることができる

4.拡張メッセージ
[238] DiscWithReason Same as “Disconnect”, but the payload can include the reason for disconnection in plaintext or encoded form in the payload containing the reason for disconnection

4). Extended message

[239]上で注記したように、「拡張メッセージ」は、本発明の主要なプッシュ、プル、及びネットワーク監視機能性に関する、より実質的なメッセージを含む。一実施形態で、これらの拡張メッセージは、次を含む。   [239] As noted above, “extended messages” include more substantial messages regarding the primary push, pull, and network monitoring functionality of the present invention. In one embodiment, these extended messages include:

[240]Alive_List_Req 別のVODピアと「アライブリスト」を共有するために送信される
イニシエータの「アライブリスト」を含む
[240] Alive_List_Req Contains an “alive list” of initiators sent to share an “alive list” with another VOD peer

[241]Alive_List_Resp Alive_List_Reqに対する応答
レスポンダの「アライブリスト」を含む
[241] Alive_List_Resp Contains “responder's“ alive list ”to Alive_List_Req

[242]Buddy_Download_Request 「バディ」になることに合意したVODピアへのメッセージ
ペイロードは、CRID、ダウンロードされるパッケージグループ、及びパッケージグループがそこからダウンロードされるVODピアのノードIDを含む
[242] Buddy_Download_Request The message payload to the VOD peer that has agreed to become a “buddy” includes the CRID, the package group from which the package group is downloaded, and the node ID of the VOD peer from which the package group is downloaded

[243]Buddy_Download_Response Buddy_Download_Requestメッセージに対する1つ以上の応答として送信される
ペイロードは、現在ダウンロードの準備ができているパッケージグループを含む
空のペイロードは、現在「バディ」として働くことが不可能であることを示す(例えば、断たれた接続又は低速の接続などに起因して)
[243] Buddy_Download_Response A payload sent in response to one or more responses to a Buddy_Download_Request message indicates that an empty payload that currently contains a package group ready for download cannot act as a “buddy”. Indicate (eg due to broken or slow connection)

[244]Buddy_Function_Request VODピアへの、「バディ」として働くことの要求
受信側に、優先順位付きのダウンロード接続を準備する(及び、現在のダウンロード接続が断たれることを期待する)ように通知する
ペイロードは、現在ダウンロードしているVODピアのCRID及びノードIDを含む
[244] Buddy_Function_Request Notify VOD peers requesting to act as a “buddy” to prepare a prioritized download connection (and expect the current download connection to be broken) The payload contains the CRID and node ID of the currently downloaded VOD peer

[245]Buddy_Function_Response Buddy_Function_Requestメッセージに対する応答
VODピアが代替ダウンロードに「バディ」を使用する準備ができていることを確認する
空のペイロードは、VODピアが「バディ」からダウンロード要求を受け入れる準備ができていることを示す
[245] Buddy_Function_Response Response to Buddy_Function_Request message VOD peer confirms that it is ready to use “buddy” for alternate download An empty payload is ready for VOD peer to accept download requests from “buddy” Indicate that

[246]Buddy_Request ダウンロードを援助する「バディ」を必要とするVODピアによって送信される
ペイロードは、イベントのCRIDと、パッケージグループが最初にそこからダウンロードされたVODピアのノードIDとを含む
[246] The payload sent by the VOD peer that needs a “buddy” to assist with the Buddy_Request download includes the CRID of the event and the node ID of the VOD peer from which the package group was first downloaded.

[247]Buddy_Response Buddy_Requestメッセージに応答して送信される
ペイロードは、VODピアがその下で「バディ」として働くことができる条件を識別して、リクエスタが、この「バディ」機能を使用すること望むかどうかを判定できるようにする
空のペイロードは、VODピアが現在は「バディ」として働くことができないことを示す
[247] The payload sent in response to the Buddy_Response Buddy_Request message identifies the conditions under which the VOD peer can act as a “buddy” and whether the requester wishes to use this “buddy” function An empty payload that allows you to determine if the VOD peer is currently unable to act as a “buddy”

[248]Cluster_Download_Complete 「供給クラスタ」の一部であるVODピアが指定されたパッケージグループのすべてのダウンロードを完了した後に、そのVODピアから送信される
ペイロードは、イベントのCRIDを含む
空のペイロードは、ダウンロードが失敗し、パッケージグループが要求元VODピアに格納されていないことを示す
[248] Cluster_Download_Complete After a VOD peer that is part of the “Supplying Cluster” completes the download of the specified package group, the payload sent from that VOD peer is an empty payload containing the event's CRID: Indicates that the download failed and the package group is not stored on the requesting VOD peer

[249]Cluster_Download_Start クラスタ内でイベントを公開する責任を負うVODピアから送信される(受信するVODピアに、指定されたVODピアのノードIDから指定されたパッケージグループをダウンロードするように指示する)
[249] Sent from the VOD peer responsible for publishing events in the Cluster_Download_Start cluster (instructs the receiving VOD peer to download the specified package group from the node ID of the specified VOD peer)

[250]Content_Retrieval_Ready 供給クラスタの一部であるVODピアから送信され、パッケージグループを要求元VODピアにダウンロードする準備ができていることを示す
[250] Sent from a VOD peer that is part of the Content_Retrieval_Ready provisioning cluster to indicate that the package group is ready to be downloaded to the requesting VOD peer

[251]Content_Retrieval_Help_Downloaded 代替「フィーダ」ノードとして助けるように求められたVODピアから送信され、指定されたパッケージグループのダウンロードの準備ができていることを示す
[251] Content_Retrieval_Help_Downloaded Indicates that the specified package group is ready for download, sent from a VOD peer that was asked to help as an alternate “feeder” node

[252]Content_Retrieval_Help_Request パッケージグループのダウンロードを助けるように求める、VODピアからの要求
要求元VODピアへのよい接続を有するVODピアだけに送信される。助けは、オリジナルの「フィーダ」ノードへの劣悪な接続又は失われた接続に起因して要求される
ペイロードは、イベントのCRID、パッケージグループが現在そこからダウンロードされつつあるVODピアのノードID、及び要求元VODピアがダウンロードの援助を必要とするパッケージグループのIDからなる
Buddy_Requestメッセージに似ているが、このメッセージは、既存接続を置換するのではなく、完全に新しい接続を要求する。
[252] Content_Retrieval_Help_Request Sent only to VOD peers that have a good connection to the requesting VOD peer from the VOD peer seeking to help download the package group. The help is that the payload requested due to poor or lost connection to the original “feeder” node is the CRID of the event, the node ID of the VOD peer from which the package group is currently being downloaded, and Similar to a Buddy_Request message consisting of the ID of the package group for which the requesting VOD peer needs download assistance, but this message does not replace the existing connection, but requests a completely new connection.

[253]Content_Retrieval_Help_Response 要求されたパッケージグループの一部又はすべてをダウンロードすることを確認する、Content_Retrieval_Help_Requestに対する応答
ペイロードは、イベントのCRID及びダウンロードが合意されたパッケージグループのIDからなる
[253] Content_Retrieval_Help_Response Confirms downloading part or all of the requested package group. The response payload for the Content_Retrieval_Help_Request consists of the CRID of the event and the ID of the package group to which the download was agreed.

[254]Feed_Cluster_Start 他のVODピアが「供給クラスタ」コンテンツプッシュに参加するのを待っているVODピアから送信される
ペイロードは、イベントのCRID及びコンテンツがそこからダウンロードされる公開するサーバのノードIDからなる
[254] The payload sent from the VOD peer waiting for Feed_Cluster_Start and other VOD peers to participate in the “ Providing Cluster” content push is derived from the CRID of the event and the node ID of the server from which the content is published Become

[255]Feed_Cluster_Response 「供給クラスタ」に参加することを確認する、Feed_Cluster_Startメッセージに対する応答
ペイロードは、コンテンツがそこからダウンロードされる公開用サーバのノードIDからなる
[255] Feed_Cluster_Response The response payload for the Feed_Cluster_Start message that confirms participation in the “supply cluster” consists of the node ID of the public server from which the content is downloaded.

[256]File_Check_Request 別のVODピアに1つ以上のダウンロード接続を求める要求
ペイロードは、イベントのCRID及び所望のパッケージグループのIDからなる
[256] File_Check_Request The request payload for one or more download connections to another VOD peer consists of the CRID of the event and the ID of the desired package group.

[257]File_Check_Response File_Check_Requestに応答して、VODピアの状況を返す
すなわち、そのVODピアが受け入れることのできるダウンロード接続の個数、又は、そのVODピアが接続を受け入れることができるようになる前に必要な時間の長さ
ペイロードは、使用可能な接続の個数からなる(使用可能な接続がない場合には、接続が使用可能になるまでの推定時間をも含む)。空のペイロードは、要求を満足できないことを示す。
[257] File_Check_Response Returns the status of the VOD peer in response to the File_Check_Request, ie the number of download connections that the VOD peer can accept, or required before the VOD peer can accept the connection. The time length payload consists of the number of available connections (including the estimated time until a connection is available if no connection is available). An empty payload indicates that the request cannot be satisfied.

[258]Global_Message_Request 別のVODピアに「グローバルメッセージ」のすべてを要求する
[258] Global_Message_Request Requests all "global messages" from another VOD peer

[259]Global_Message_Response すべてのグローバルメッセージを返す、Global_Message_Requestに対する応答(グローバルメッセージがない場合には、ペイロードは空である)
[259] Global_Message_Response A response to Global_Message_Request that returns all global messages (if there is no global message, the payload is empty)

[260]Index_File_Keeping このVODピアが新しい/更新されたトラッキングインデックスを有することを、別のVODピアに通知する
[260] Index_File_Keeping Notifies another VOD peer that this VOD peer has a new / updated tracking index

[261]Index_File_Keeping_Response 新しい/更新されたトラッキングインデックスの知識を肯定応答する、Index_File_Keeping要求に対する応答
[261] Index_File_Keeping_Response Response to an Index_File_Keeping request that acknowledges the knowledge of the new / updated tracking index

[262]Index_Request 別のVODピアにトラッキングインデックスを求める要求
ペイロードは、所望のトラッキングインデックスに関連するイベントのCRIDからなる
[262] The request payload for seeking the tracking index from another VOD peer with Index_Request consists of the CRID of the event associated with the desired tracking index.

[263]Index_Response 要求されたトラッキングインデックスを返す、Index_Requestに対する応答
ペイロードは、要求されたトラッキングインデックスからなる(存在しない場合には空である)
[263] Index_Response The response payload for Index_Request that returns the requested tracking index consists of the requested tracking index (empty if not present).

[264]Peer_Casting_Client 別のVODピアに、そのVODピアが「ピアキャスティング」シナリオでクライアントとして働かなければならないことを知らせる
ペイロードは、サーバとして働かなければならないVODピアのノードIDからなる
[264] Peer_Casting_Client The payload that informs another VOD peer that it must act as a client in a “peer casting” scenario consists of the node ID of the VOD peer that must act as a server

[265]Peer_Casting_Client_Response Peer_Casting_Clientメッセージに対する応答
空のペイロードは、ピアキャスティングサーバが連絡を受け、「ピアキャスティング」シナリオが受け入れられたことを示す
[265] Peer_Casting_Client_Response Response to Peer_Casting_Client message An empty payload indicates that the peer casting server has been contacted and the “peer casting” scenario has been accepted.

[266]Peer_Casting_Download_Setup 「ピアキャスティング」シナリオで「クライアント」から「サーバ」に送信され、接続を正しくセットアップできることを確認する
[266] Peer_Casting_Download_Setup Sent from “Client” to “Server” in “Peer Casting” scenario to verify that the connection can be set up correctly

[267]Peer_Casting_Download_Setup_ResponsePeer_Casting_Download_Setupメッセージに対する応答
[267] Peer_Casting_Download_Setup_Response Response to Peer_Casting_Download_Setup message

[268]Published_List_Request パブリッシャが新しいイベント(すなわち、新たに公開されたコンテンツオブジェクト)をアナウンスすることを望むことを示す、パブリッシャからVODサポートサーバへのメッセージ
ペイロードは、公開されたコンテンツオブジェクトに関連するイベントのCRIDからなる
[268] The Published_List_Request message payload from the publisher to the VOD support server, indicating that the publisher wishes to announce a new event (ie, a newly published content object), is the event associated with the published content object. Consists of CRID

[269]Published_List_Response VODサポートサーバからパブリッシャへの、Published_List_Requestに応答するメッセージ
ペイロードは、パブリッシャが新しいイベントのアナウンスを連絡しなければならないノードIDのリストを含む
空のペイロードは、VODサポートサーバが、信頼レベル「2」(又はそれ未満)のVODピアがそのイベントの公開されたコンテンツオブジェクトにアクセスできてはならないと決定したことを示す
[269] The message payload in response to the Published_List_Request from the Published_List_Response VOD support server to the publisher is an empty payload containing a list of node IDs that the publisher must contact to announce new events. Indicates that the VOD peer of “2” (or less) has decided that it should not be able to access the published content object for that event

[270]Published_Announcement 新しいイベント(公開され、ダウンロードに使用可能なコンテンツオブジェクト)の、別のVODピアへのアナウンスメント
ペイロードは、新しいイベントのCRIDからなる
[270] Published_Announcement The announcement payload of a new event (a publicly available content object available for download) to another VOD peer consists of the CRID of the new event

[271]Published_Announcement_Response Published_Announcementの受信を肯定応答する応答
ペイロードは、新しいイベントのCRIDからなる
[271] Published_Announcement_Response The response payload acknowledging receipt of Published_Announcement consists of the CRID of the new event

[272]Publishing_Complete イベントに関連するコンテンツオブジェクト全体が特定のクラスタにダウンロードされた時に公開するサーバに送信される
[272] The entire content object associated with the Publishing_Complete event is sent to the publishing server when downloaded to a specific cluster

[273]Que_Request 使用可能なダウンロードスロットを有しないVODピアに送信される(要求されたパッケージグループに関する情報を含む)
空のペイロードは、そのVODピアに関するすべての保留中のキューを取り消す
[273] QUE_Request Sent to a VOD peer that does not have an available download slot (including information about the requested package group)
An empty payload cancels all pending queues for that VOD peer

[274]Que_Response Que_Requestに対する応答
[274] Que_Response Response to Que_Request

[275]Rescue_Preparation より信頼性の低いVODピアとのリクエスタの接続が障害を発生した場合に助けを要求できることを警告する、信頼レベル「2」を有するVODピアへのメッセージ
[275] Message to VOD peer with trust level “2” warning that requester connection with VOD peer less reliable than Rescue_Preparation can request help in case of failure

[276]Rescue_Preparation_Response Rescue_Preparationメッセージを肯定応答する応答
[276] Rescue_Preparation_Response Response that acknowledges Rescue_Preparement message

[277]Tracking_File_Request 別のVODピアにトラッキングファイルを要求する
ペイロードは、所望のトラッキングファイルに関連するイベントのCRIDからなる
[277] Tracking_File_Request The payload requesting a tracking file from another VOD peer consists of the CRID of the event associated with the desired tracking file.

[278]Tracking_File_Response Tracking_File_Requestに対する応答
ペイロードは、要求されたトラッキングファイルからなる

C.動的通信プロセス
[278] Tracking_File_Response The response payload for Tracking_File_Request consists of the requested tracking file.

C. Dynamic communication process

[279]VODピアの間の通信について一実施形態で使用される、ある基本メッセージ及び拡張メッセージを述べた。これから、そのようなメッセージを使用することによって実施される高水準の機能性に注意を向ける。そのような機能性は、VODピアの最初のスタートアップ(及びリスタート)、プッシュプロセス(新しいコンテンツオブジェクトのアナウンスメント及びパブリケーションを含む)、プルプロセス(トラッキングインデックス及びトラッキングファイルの検索並びにコンテンツオブジェクトパッケージのダウンロードを含む)、並びにネットワーク、挙動、及びシステムの他の属性の動的監視(信頼レベル、クラスタメンバシップ、及びコンテンツオブジェクトパッケージのコピーの分散に対する変更など、そのような動的監視の結果を含む)など、本発明の主要な動的プロセスを含む。
1.ノードのスタートアップ
[279] Certain basic and extended messages have been described that are used in one embodiment for communication between VOD peers. Attention is now directed to the high level of functionality implemented by using such messages. Such functionality includes initial startup (and restart) of VOD peers, push processes (including announcements and publications of new content objects), pull processes (tracking index and tracking file search, and content object package downloads). As well as network, behavior, and other attributes of the system (including changes to the trust level, cluster membership, and distribution of copies of content object packages, including the results of such dynamic monitoring) Including the main dynamic process of the present invention.
1. Node startup

[280]一実施形態で、VODピアは、最初にネットワークに加わる時に、ある初期ハウスキーピングタスクを実行する。当初に、VODピアは、そのデフォルトノードID並びに既知のVODサポートサーバのノードIDに頼って、他のネットワークデバイスと通信する。そのような情報は、VODピアデバイスが製造される時に格納される。例えば、その一意のボックスIDフィールドは、デバイスが製造される時に事前に決定されるが、他のフィールドは、ユーザによって書き込まれ(VODピアのユーザインターフェースを介して)、及び/又はVODサポートサーバ(又は他のVODピア)との通信によって入手される必要がある。   [280] In one embodiment, VOD peers perform certain initial housekeeping tasks when they first join the network. Initially, a VOD peer communicates with other network devices depending on its default node ID as well as the node ID of a known VOD support server. Such information is stored when the VOD peer device is manufactured. For example, the unique box ID field is predetermined when the device is manufactured, while other fields are written by the user (via the user interface of the VOD peer) and / or the VOD support server ( Or other VOD peers).

[281]VODピアの内部ソフトウェアは、当初に、ネットワーク接続がデフォルトで存在したかどうかを(例えば、ローカルDHCPサーバを介して)判定し、そうでない場合には、そのような接続を確立するネットワークセットアップルーチンを呼び出す。さらに、一実施形態では、直接のインターネット接続性は不要である。例えば、あるVODピアが、インターネットへのアクセスを有するVODピアとの直接接続(又は、さらなる間接的な接続若しくはおそらく「プロキシ」接続)を有する。その場合に、後者のVODピアは、直接インターネットアクセスを有しないVODピアへ及びそれからのメッセージを中継して、完全な又は部分的なネットワーク機能性及びVOD機能性を使用可能にする責任を負う。次のステップは、直接インターネット接続性を仮定して説明されるが、これらを、間接的に又は「プロキシ」VODピアを介して実行することができる。   [281] The internal software of the VOD peer initially determines whether a network connection existed by default (eg, via a local DHCP server), and if not, the network establishing such a connection Call the setup routine. Furthermore, in one embodiment, direct internet connectivity is not required. For example, a VOD peer has a direct connection (or a further indirect connection or possibly a “proxy” connection) with a VOD peer that has access to the Internet. In that case, the latter VOD peer is responsible for enabling full or partial network functionality and VOD functionality by relaying messages to and from VOD peers that do not have direct Internet access. The following steps are described assuming direct Internet connectivity, but these can be performed indirectly or via a “proxy” VOD peer.

[282]ネットワーク接続性及びインターネットアクセスをセットアップした時に、VODサーバは、次に、その内部メモリ(例えば、ROM)にアクセスして、既知のVODサポートサーバの1つのノードIDを入手し、そのVODサポートサーバとの通信に進んで、接続を確立し、これらの初期ハウスキーピングタスクを実行する。そのようなタスクには、ソフトウェア更新(最新のVODピアクライアントソフトウェア又はファームウェアを入手するため)及び時間同期化(一実施形態では、その後に周期的な基礎で維持することができる)を含むことができる。また、他の初期プロファイル情報と一緒に残りのノードIDフィールドを満たし、及び/又は更新するのに必要なデータを入手するように働く「作成プロセス」を含めることができる。   [282] When setting up network connectivity and Internet access, the VOD server then accesses its internal memory (eg, ROM) to obtain one node ID of a known VOD support server and the VOD server. Proceed to communication with the support server to establish a connection and perform these initial housekeeping tasks. Such tasks include software updates (to obtain the latest VOD peer client software or firmware) and time synchronization (in one embodiment, which can then be maintained on a periodic basis). it can. It may also include a “creation process” that serves to fill and / or update the remaining node ID fields along with other initial profile information.

[283]例えば、一実施形態で、VODピアのボックスIDを、VODサポートサーバによって利用して、新しいソフトウェア更新又はファームウェア更新について検査することができる。ボックスIDの検証時に、VODサポートサーバは、VODピアのデバイスモデル及びバージョン番号について指定された更新ソフトウェアを含むCRIDを返して応答することができる。次に、VODピアは、その更新ソフトウェアをダウンロードし、クライアント側更新プロセス又はインストールプロセスを呼び出すことができる。言い換えると、そのような更新ソフトウェアは、ネットワーク上のもう1つのコンテンツオブジェクトにすぎないと考えることができるが、この場合に、CRIDの「コンテンツオブジェクトタイプ」は、インストールを要求した更新ソフトウェアとして(例えば、VODビューイングについて指定された映画ではなく)そのコンテンツオブジェクトを識別する。   [283] For example, in one embodiment, the VOD peer's box ID may be utilized by the VOD support server to check for new software or firmware updates. Upon verification of the box ID, the VOD support server can respond by returning a CRID containing the updated software specified for the device model and version number of the VOD peer. The VOD peer can then download the updated software and invoke a client-side update process or installation process. In other words, such update software can be considered as just another content object on the network, in which case the CRID “content object type” is the update software that requested the installation (eg, , Identify that content object (not the movie specified for VOD viewing).

[284]さらに、VODサポートサーバは、標準的なIPロケーションデータベースにアクセスして(初期化されつつあるVODピアの代わりに)、ある地理的情報(上で述べたノードIDのISPフィールド、国フィールド、地域フィールド、及び他の関連するフィールドなど)を入手することができる。そのような情報は、VODピアに渡され、VODピアは、それ自体の内部メモリを更新する。   [284] In addition, the VOD support server accesses the standard IP location database (instead of the VOD peer being initialized) and has some geographic information (the ISP field of the node ID, the country field described above). , Regional fields, and other related fields). Such information is passed to the VOD peer, which updates its own internal memory.

[285]VODピアの完全なノードIDを生成するために、追加のノードIDフィールド(例えば、IPアドレス)からのデータを、VODピアから直接に入手することができ、他のデータを、追加の「テスト」通信を介して間接的に判定することができる。例えば、VODピアの「ローカルノードアクセシビリティ」フィールド値及び「グローバルノードアクセシビリティ」フィールド値は、そのVODピアへの直接アクセスが通常はファイヤウォール/NATルータによってブロックされるかどうか、又はより広いクラスタ(例えば、IPアドレスのより広い組)がアクセス可能であるかどうかを判定するために、あるメッセージを交換することによって(例えば、一実施形態で、特定のIPアドレスにpingを打ち、肯定応答を待つことによって)セットすることができる。「ネット測定値」フィールドなどの追加フィールドは、1組の標準的なネットワーク測定(例えば、pingテスト及びtracerouteテスト)を実行することによって、又は、単純にある値をデフォルトとし、そのような値の現在の状態を維持するために後続のテストに頼ることによって、決定することができる。他のフィールド(例えば、信頼レベル)は、この実施形態ではデフォルトによってセットされ、経時的に、追加のネットワーク測定値がVODピアのクラスタコントローラを介して入手される時に維持される。   [285] Data from an additional node ID field (eg, IP address) can be obtained directly from the VOD peer to generate the full node ID of the VOD peer, and other data can be It can be determined indirectly via “test” communication. For example, the “Local Node Accessibility” field value and the “Global Node Accessibility” field value for a VOD peer may indicate whether direct access to that VOD peer is normally blocked by a firewall / NAT router, or a wider cluster (eg, By exchanging certain messages to determine if a wider set of IP addresses is accessible (eg, in one embodiment, by pinging a specific IP address and waiting for an acknowledgment) ) Can be set. Additional fields, such as the “Net Measurement” field, can be obtained by performing a set of standard network measurements (eg, ping test and traceroute test), or simply by defaulting some value This can be determined by relying on subsequent tests to maintain the current state. Other fields (eg, trust level) are set by default in this embodiment and are maintained over time as additional network measurements are obtained via the cluster controller of the VOD peer.

[286]さらに、一実施形態では、ユーザ登録プロセスが、ユーザを登録し、任意選択でネットワークに関するユーザのパミッションを認証し、検証するために実行される。例えば、所定のユーザに、所定のコンテンツオブジェクト及び/又はネットワーク機能性への制約された又はフィルタリングされたアクセスを与えることができる。そのような制約は、この初期登録プロセスを介してスタートアップ時に実施する(及び、その後に、経時的に及び/又は後続リスタート時に検証する)ことができる。この登録プロセス中に、VODサポートサーバは、VODピア自体に格納された(製造の時に及び/又はソフトウェア更新若しくはファームウェア更新を介して)ユーザインターフェースソフトウェアを介して、あるユーザプロファイル及び関連情報を入手し、そのような情報をネットワーク上の中央からアクセス可能なデータベースに格納することができる。   [286] Further, in one embodiment, a user registration process is performed to register the user and optionally authenticate and verify the user's permissions for the network. For example, a given user can be given restricted or filtered access to a given content object and / or network functionality. Such constraints can be enforced at startup via this initial registration process (and subsequently verified over time and / or at subsequent restarts). During this registration process, the VOD support server obtains certain user profiles and related information via user interface software (at the time of manufacture and / or via software or firmware updates) stored on the VOD peer itself. , Such information can be stored in a database accessible from a central location on the network.

[287]一実施形態で、VODピアが初めてスタートアップしつつある又はリスタートしつつある(例えば、デバイス障害、ネットワーク障害、停電などに起因して)のいずれであれ、そのVODピアは、例えば更新された「アライブリスト」(「生きている(アライブ)」すなわち最近アクティブであることがわかっている既知の隣接するVODピアを判定するため)を含むある情報をVODサポートサーバ(及び/又はおそらくは間接的に他のVODピア)と交換する。最初のスタートアップ時に、VODピアは、VODサポートサーバ(例えば、標準的なIPロケーションデータベースから入手される情報に基づく、そのVODピアと同一のIP範囲内のVODサポートサーバ)などの非常に信頼性の高いVODピアを含む「高水準」アライブリストを入手する。さらに、これより信頼性の低いがそれでも相対的に非常に信頼性の高い(例えば、「クラスタレベル」)VODピアのノードIDを、この(又は別々の)アライブリストに含めることができる。   [287] In one embodiment, whether a VOD peer is starting up for the first time or restarting (eg, due to a device failure, network failure, power outage, etc.), the VOD peer is updated, for example VOD support server (and / or possibly indirect) with certain information, including a “live list” (to determine a known adjacent VOD peer known to be “alive”, ie, recently active) To other VOD peers). At initial startup, a VOD peer is very reliable, such as a VOD support server (eg, a VOD support server in the same IP range as the VOD peer based on information obtained from a standard IP location database). Obtain a “high standard” alive list that includes high VOD peers. Furthermore, the node IDs of VOD peers that are less reliable but still relatively highly reliable (eg, “cluster level”) can be included in this (or separate) alive list.

[288]アライブリストの後続の交換(例えば、下でより詳細に述べる、周期的なネットワーク監視プロセス中に実行される)は、一実施形態で、VODピアの信頼レベルによって決定されるレートで実行される。この実施形態では、より信頼性の低いVODピアは、より信頼性の高いVODピアより頻繁に「更新される」(すなわち、その隣接物とアライブリストを交換する)。例えば、デフォルト信頼レベルを有するVODピアを、1分ごとに更新することができ、VODサポートサーバ又は2の信頼レベルを有するVODピアを、1時間に1回だけ更新することができる。下でより詳細に述べるように、信頼レベル(他の要因と共に)を利用して、他のネットワーク監視テストの頻度をも決定することができる。   [288] Subsequent exchange of alive lists (eg, performed during a periodic network monitoring process, described in more detail below), in one embodiment, is performed at a rate determined by the trust level of the VOD peer. Is done. In this embodiment, less reliable VOD peers are “updated” more frequently (ie, exchange alive lists with their neighbors) than more reliable VOD peers. For example, a VOD peer with a default trust level can be updated every minute, and a VOD support server or a VOD peer with a trust level of 2 can be updated only once per hour. As described in more detail below, the confidence level (along with other factors) can also be used to determine the frequency of other network monitoring tests.

[289]VODピアがそのメンバである1つ以上のスーパーセットクラスタに固有の情報など、追加のメタデータを、VODピアの最初の又は後続のスタートアップ時に交換することもできる。例えば、更新されたトラッキングインデックス又はトラッキングファイルを交換することができる。これは、もちろん、その後に周期的な基礎で及び/又はそのようなファイルに対する変更によって起動されて交換することもできる。
2.コンテンツオブジェクトのパブリケーション及びプッシュ
[289] Additional metadata, such as information specific to one or more superset clusters of which the VOD peer is a member, may also be exchanged at the initial or subsequent startup of the VOD peer. For example, an updated tracking index or tracking file can be exchanged. This can of course also be triggered and exchanged thereafter on a periodic basis and / or by changes to such files.
2. Publication and push of content objects

[290]上で注記したように、新しいコンテンツオブジェクトがネットワーク上に公開される(すなわち、イベントが発生する)時には、2つの主要な機能すなわち(1)コンテンツオブジェクトのパブリケーションの「アナウンスメント」と、それに続く(2)コンテンツオブジェクト自体の実際の「パブリケーション」(すなわち、さまざまなVODピアへのコンテンツオブジェクトパッケージの分散プッシュ)が実行される。   [290] As noted above, when a new content object is published on the network (ie, an event occurs), there are two main functions: (1) a “announcement” of the publication of the content object; Subsequent (2) the actual “publication” of the content object itself (ie, distributed push of the content object package to the various VOD peers) is performed.

[291]やはり上で述べたように、一実施形態では、初期パブリケーションサーバが、イベントのCRIDを生成し、そのイベントをさらにアナウンスするためにパブリケーションアナウンサ(例えば、コンテンツオブジェクトを公開しなければならない区域により近い信頼性の高いVODピア)を探す。パブリケーションアナウンサのそれぞれは、コンテンツオブジェクトを公開するプロセスを管理する、1つ以上のパブリケーションマスタ(相対的に非常に信頼性の高いVODピア)を選択する。   [291] As also noted above, in one embodiment, the initial publication server generates a CRID for an event and a publication announcer (eg, a region where content objects must be published) to further announce the event. Look for a more reliable VOD peer). Each of the publication announcers selects one or more publication masters (relatively very reliable VOD peers) that manage the process of publishing content objects.

[292]パブリケーションマスタは、コンテンツオブジェクトの人気の「予測される」レベルを判定し(下でより詳細に述べるように)、関心要求をパブリケーションサーバに発行し(直接に又はパブリケーションアナウンサを介して間接的に)、パブリケーションサーバは、この関心要求を使用して、コンテンツオブジェクトがそれに分割されなければならないパッケージの適当なサイズ及び個数を判定する。パブリケーションマスタは、トラッキングインデックス(トラッキングファイルを格納するVODピアとCRIDとを相互に関連させる)及びトラッキングファイル(コンテンツオブジェクトのパッケージのグループがプッシュされ、格納されるVODピアとCRIDとを相互に関連させる)をも生成し、更新する。   [292] The publication master determines the “expected” level of popularity of the content object (as described in more detail below) and issues a request for interest to the publication server (directly or indirectly through a publication announcer). The publication server uses this interest request to determine the appropriate size and number of packages into which the content object should be divided. The publication master correlates the tracking index (correlating the VOD peer storing the tracking file with the CRID) and the tracking file (the group of content object packages are pushed and stored, correlating the VOD peer and the CRID. ) Is also generated and updated.

[293]一実施形態で、パブリケーションマスタは、次に、コレクション要求をパブリケーションアナウンサに発行し、パブリケーションアナウンサは、パブリケーションサーバからトラッキングインデックス及びパッケージのグループを入手するコレクタを(それ自体の間で)指定する。各パブリケーションマスタは、パッケージのグループがさらにプッシュされ、格納される候補VODピアを識別し(例えば、特定のクラスタ内又はサブクラスタ内のVODピアの間で)、そのようなパッケージをこれらのVODピアにダウンロードする責任を負う。   [293] In one embodiment, the publication master then issues a collection request to the publication announcer, which specifies (among itself) a collector that obtains the tracking index and group of packages from the publication server. To do. Each publication master identifies candidate VOD peers (eg, among VOD peers in a particular cluster or sub-cluster) where groups of packages are further pushed and stored, and makes such packages available to these VOD peers. Responsible for downloading.

[294]したがって、一実施形態で、パブリケーションサーバは、イベントを1つ以上のパブリケーションアナウンサ(そのイベントを1つ以上のパブリケーションマスタにさらにアナウンスする)に「アナウンス」する。これらのアナウンスメントを実施する通信プロトコル1000を図10aに示すが、図10aには、パブリケーションサーバ1005がイベントを1つ以上のパブリケーションアナウンサにアナウンスするプロセス(上で述べたさまざまな拡張メッセージを利用する)が示されている。   [294] Accordingly, in one embodiment, the publication server "announces" an event to one or more publication announcers (which further announce the event to one or more publication masters). A communication protocol 1000 that implements these announcements is shown in FIG. 10a, which illustrates the process by which the publication server 1005 announces events to one or more publication announcers (using the various extended messages described above). )It is shown.

[295]この実施形態では、パブリケーションサーバ1005は、まず、VODサポートサーバ1010に連絡して、非常に信頼性の高い(例えば、信頼レベル「2」)パブリケーションアナウンサのリストを入手する。最初の通信1032で、パブリケーションサーバは、published_list_requestメッセージ(イベントCRIDを含む)をVODサポートサーバ1010に送信する。VODサポートサーバ1010は、通信1033でpublished_list_responseメッセージ(候補パブリケーションアナウンサのノードIDを含む)によって応答する。   [295] In this embodiment, the publication server 1005 first contacts the VOD support server 1010 to obtain a list of publication announcers that are very reliable (eg, trust level “2”). In the first communication 1032, the publication server sends a published_list_request message (including the event CRID) to the VOD support server 1010. The VOD support server 1010 responds with a published_list_response message (including the node ID of the candidate publication announcer) via communication 1033.

[296]その応答メッセージで入手されたノードIDを利用して、パブリケーションサーバは、次に、この2つの有望なパブリケーションアナウンサ(それぞれが信頼レベル「2」のVODピアである「ノードF」1015及び「ノードA」1020)に連絡し、これらのそれぞれに、それぞれ通信1036及び1038でpublished_announcementメッセージ(やはりイベントCRIDを含む)を送信する。この例では、ノードF 1015は、CRIDで識別されるコンテンツオブジェクトがそのクラスタに存在してはならない(例えば、その地理的区域がCRIDのパブリケーション権利フィールドに基づいて除外されるので)と判定し、したがって、通信1036のpublished_announcementに応答しない。   [296] Using the node ID obtained in the response message, the publication server then makes these two promising publication announcers ("Node F" 1015, each of which is a VOD peer of trust level "2" and "Node A" 1020) and send a published_announcement message (again including the event CRID) to each of these via communications 1036 and 1038, respectively. In this example, node F 1015 determines that the content object identified by the CRID must not exist in the cluster (eg, because the geographic area is excluded based on the publication rights field of the CRID), Therefore, it does not respond to the published_announcement of the communication 1036.

[297]他の実施形態では、もちろん、否定的応答メッセージ又は他の肯定応答メッセージを利用して、例えば、応答の欠如の他の理由(デバイス障害又はネットワーク障害など)を区別することができる。さらに、上で注記したように、さまざまなハンドシェーキングプロトコルを使用して、信頼できる確実な接続を入手でき(適当な肯定応答と共に)、これは、そのような追加メッセージの必要をなくすことができる。   [297] In other embodiments, of course, negative response messages or other acknowledgment messages can be utilized to distinguish other reasons for lack of response, such as device failure or network failure, for example. In addition, as noted above, various handshaking protocols can be used to obtain reliable and reliable connections (with appropriate acknowledgments), which can eliminate the need for such additional messages. it can.

[298]しかし、ノードA 1020は、通信1039でpublished_announcement_responseによって応答し、イベントのパブリケーションをそのクラスタ内で進行できることを示す。上で注記したように、一実施形態では、類似するアナウンスメントフェーズ(図示せず)が、このイベントのパブリケーションフェーズの責任を負うパブリケーションマスタを識別するために発生する。   [298] However, Node A 1020 responds with a published_announcement_response in communication 1039, indicating that the publication of the event can proceed within the cluster. As noted above, in one embodiment, a similar announcement phase (not shown) occurs to identify the publication master responsible for the publication phase of this event.

[299]このアナウンスメントフェーズの後に、パブリケーションマスタは、候補VODピアへのコンテンツオブジェクトパッケージ(及び関連するトラッキングファイル)の実際のパブリケーション(プッシュ)の責任を負う。これは、一実施形態で、どのコンテンツオブジェクトパッケージがどのVODピアにプッシュされるかの判定を含む。他の実施形態では、パブリケーションサーバ(又は他の「ヘルパ」VODピア)が、このプロセスで援助する(又は排他的に取って代わる)ことができる。   [299] After this announcement phase, the publication master is responsible for the actual publication (push) of the content object package (and associated tracking file) to the candidate VOD peer. This includes, in one embodiment, determining which content object package is pushed to which VOD peer. In other embodiments, a publication server (or other “helper” VOD peer) can assist (or replace) exclusively in this process.

[300]このコンテンツオブジェクトパッケージの分散ダウンロードを実施する通信プロトコル1050の一実施形態を図10bに示す。図10bには、パブリケーションマスタが「フィーダノード」として働いて、他の(通常はわずかにより信頼性の低い、例えば信頼レベルXであり、Xは「4」と等しいものとすることができる)VODピアへのコンテンツオブジェクトパッケージのプッシュをもたらすプロセス(上で説明していない追加の拡張メッセージを利用する)が示されている。そのようなVODピアは、後続VOD要求に関する所望のNQoSのレベルを可能にするために、コンテンツオブジェクトパッケージが候補クラスタ間及び候補クラスタ内で十分に分散されるまで、この分散プロセスを継続する(図示せず)。   [300] One embodiment of a communication protocol 1050 that implements a distributed download of this content object package is shown in FIG. 10b. In FIG. 10b, the publication master acts as a “feeder node” and other (usually slightly less reliable, eg trust level X, where X can be equal to “4”) A process (using an additional extended message not described above) that results in pushing the content object package to the peer is shown. Such VOD peers continue this distribution process until the content object package is sufficiently distributed between and within the candidate clusters to allow the desired NQoS level for subsequent VOD requests (see FIG. Not shown).

[301]図10bに移ると、「ノードA」1060(パブリケーションマスタのうちの1つ)は、これらの候補VODピアのうちで、特定のコンテンツオブジェクトパッケージがプッシュされなければならない2つ(「ノードB」1065及び「ノードC」1070)を識別し、そのようなコンテンツオブジェクトパッケージのダウンロードをもたらすために通信を開始する。通信1071で、ノードA 1060は、feed_cluster_startメッセージをノードB 1065に送信し(「供給クラスタ」にノードA 1060を含める意図を示す)、ノードAの同意を確認する(例えば、ノードBが使用可能な空間を有することなど)ノードB 1065からのfeed_cluster_responseメッセージ(通信1072の)を待つ。同様に、ノードA 1060は、feed_cluster_startメッセージをノードC 1070に送信し(通信1074で)、ノードCからの確認するfeed_cluster_responseメッセージ(通信1075の)を待つ。   [301] Turning to FIG. 10b, "Node A" 1060 (one of the publication masters) is the two of these candidate VOD peers ("Node A" B ”1065 and“ Node C ”1070), and initiates communication to effect the download of such a content object package. In communication 1071, Node A 1060 sends a feed_cluster_start message to Node B 1065 (indicating the intention to include Node A 1060 in the “Supply Cluster”) and confirms Node A's consent (eg, Node B can use it). Wait for a feed_cluster_response message (communication 1072) from Node B 1065). Similarly, node A 1060 sends a feed_cluster_start message to node C 1070 (at communication 1074) and waits for a fed_cluster_response message (from communication 1075) to confirm from node C.

[302]この実施形態では、これらのメッセージに対する応答を受信した時に、パブリケーションマスタノードA 1060は、この「供給クラスタ」内の候補VODピア(すなわち、ノードB 1065及びノードC 1070)のリストについてパブリケーションサーバ1055に通知する。その結果、パブリケーションサーバ1055が、これらのVODピアへのコンテンツオブジェクトパッケージダウンロードを引き受けると決定した場合に、それ自体でその作業に優先順位を付け、スケジューリングすることができるようにするために、cluster_download_listメッセージをパブリケーションサーバ1055に送信する(通信1077で)。この実施形態では、応答は不要であるが、通信1078は、否定のcluster_download_list_responseメッセージを示す。   [302] In this embodiment, upon receiving responses to these messages, Publication Master Node A 1060 will publish for a list of candidate VOD peers (ie, Node B 1065 and Node C 1070) in this “serving cluster”. The server 1055 is notified. As a result, if the publication server 1055 decides to undertake content object package downloads to these VOD peers, the cluster_download_list message will be able to prioritize and schedule its work on its own. Is transmitted to the publication server 1055 (by communication 1077). In this embodiment, no response is required, but communication 1078 indicates a negative cluster_download_list_response message.

[303]次に、ノードA 1060は、ノードB 1065及びノードC 1070へのそのようなコンテンツオブジェクトパッケージのダウンロードをスケジューリングする(類似するfeed_cluster_startメッセージ及びfeed_cluster_responseメッセージを含む、めいめいの通信1082及び1086とめいめいの応答1083及び1087とを介して)。次に、コンテンツオブジェクトパッケージの実際のファイル転送ダウンロード(詳細には図示せず)が、開始される。図示されてはいないが、この分散プロセスは、関係するコンテンツオブジェクトパッケージがノードB 1065及びノードC 1070だけではなくターゲットクラスタ内の候補VODピアのすべてにプッシュされるまで、継続する。   [303] Node A 1060 then schedules the download of such a content object package to Node B 1065 and Node C 1070 (named communications 1082 and 1086, including similar feed_cluster_start and feed_cluster_response messages). Via responses 1083 and 1087). Next, the actual file transfer download (not shown in detail) of the content object package is initiated. Although not shown, this distribution process continues until the relevant content object packages are pushed to all of the candidate VOD peers in the target cluster, not just Node B 1065 and Node C 1070.

[304]ターゲットクラスタ内のすべての候補VODピアへのコンテンツオブジェクトパッケージのこの分散プッシュが完了したならば、ノードB 1065及びノードC 1070のそれぞれは、ノードA 1060にcluster_download_completeメッセージを送信する(めいめいの通信1091及び1092を介して)。ノードA 1060は、通信1094を介してpublishing_completeメッセージを送信することによって、この分散プッシュプロセスのノードA 1060の部分が完了したことをパブリケーションサーバ1055に通知する。
3.コンテンツオブジェクトの「インスタントプレイ」及びプル
[304] Once this distributed push of the content object package to all candidate VOD peers in the target cluster is complete, each of Node B 1065 and Node C 1070 sends a cluster_download_complete message to Node A 1060. Via communications 1091 and 1092). Node A 1060 notifies publication server 1055 that the portion of Node A 1060 of this distributed push process has been completed by sending a publishing_complete message via communication 1094.
3. "Instant play" and pull of content objects

[305]コンテンツオブジェクトが公開され、その構成要素パッケージがさまざまなクラスタ全体のVODピアにプッシュされたならば、ユーザは、本発明のVOD機能性を呼び出し、さまざまな特徴(その多くを上で詳細に述べた)によって使用可能にされる一貫したNQoSを伴ってそのようなコンテンツオブジェクトを(しばしば即時に)見るようにすることができる。   [305] Once a content object has been published and its component package has been pushed to various cluster-wide VOD peers, the user invokes the VOD functionality of the present invention and provides various features (many of which are detailed above). Such content objects can be viewed (often immediately) with a consistent NQoS enabled by

[306]本発明の「インスタントプレイ」態様を容易にする、そのような特徴の1つが、構成要素パッケージへのコンテンツオブジェクトの分割及びネットワーク全体を通じたVODピアのクラスタの間でのそのようなパッケージのグループの分散である。コンテンツオブジェクト1100のパッケージのこの分散を、図11に示す。   [306] One such feature that facilitates the "instant play" aspect of the present invention is the division of content objects into component packages and such packages between clusters of VOD peers throughout the network. Is the distribution of groups. This distribution of the content object 1100 packages is shown in FIG.

[307]上で述べたように、一実施形態で、コンテンツオブジェクト(例えば、映画)は、通常、始めから終りまでの直線的進行を有する。コンテンツオブジェクトパッケージを、コンテンツオブジェクト1100の始め1100に向かってより小さくなるグループ及びコンテンツオブジェクト1100の終り1120に向かって徐々により大きくなるグループにグループ化し、これらのより小さいより早期のグループを相対的により多数のVODピア1150に格納することによって、コンテンツオブジェクト1100のVODビューイングを要求するVODピアは、そのようなより早期のグループを相対的に迅速に入手することができる(すなわち、これらがより小さく、より多くの他のVODピアでの格納に起因して近くにある可能性がより高いので)。コンテンツオブジェクト1100のパッケージの後続グループは、そのようなグループのダウンロードに必要なより長い時間(パッケージのそのようなグループの相対的により少数のコピーが存在するという事実並びにそのより大きいサイズに起因して)を与えるのに、シーケンシャルな形でコンテンツオブジェクト1100を見るのに必要な追加の時間を利用することによって、並列にダウンロードすることができる。   [307] As noted above, in one embodiment, a content object (eg, a movie) typically has a linear progression from start to finish. Group content object packages into smaller groups toward the beginning 1100 of the content object 1100 and gradually larger groups toward the end 1120 of the content object 1100, with these smaller and earlier groups being relatively more numerous. VOD peers requesting VOD viewing of content object 1100 can obtain such earlier groups relatively quickly (i.e., they are smaller, Because it is more likely to be nearby due to storage at more other VOD peers). Subsequent groups of packages of content objects 1100 will have longer time required to download such groups (due to the fact that there are relatively fewer copies of such groups of packages and their larger size). ) Can be downloaded in parallel by taking advantage of the additional time required to view the content object 1100 in a sequential manner.

[308]一実施形態では、これが、コンテンツオブジェクト1100を可変長パッケージに分割することによって達成される(例えば、より早期のパッケージはより小さく、後続パッケージは徐々に大きくなる)。他の実施形態では、コンテンツオブジェクト1100のパッケージを固定サイズとすることができる。サイズの可変性は、VODピア1150での格納に関してより少数又はより多数のそのようなパッケージのグループ化によって達成される。徐々に大きくなる可変サイズパッケージ(又は徐々により多数になる固定サイズパッケージ)の使用は、もちろん、同一の基本原理の多数の異なる可能な実施態様の1つにすぎない。例えば、可変サイズパッケージのサイズ(又は固定サイズパッケージの個数)を、コンテンツオブジェクト1100の始め1110又は終り1120でのみ、或いは「インスタントプレイ」を容易にするという結果並びにVOD機能性と一貫するパッケージの一貫した信頼できるダウンロードを効果的にもたらす他のパターンで、変更することができる。   [308] In one embodiment, this is accomplished by dividing the content object 1100 into variable length packages (eg, earlier packages are smaller and subsequent packages are gradually larger). In other embodiments, the package of content object 1100 may be a fixed size. Size variability is achieved by grouping fewer or more such packages for storage at the VOD peer 1150. The use of gradually increasing variable size packages (or increasingly larger fixed size packages) is, of course, only one of many different possible implementations of the same basic principle. For example, the size of a variable-size package (or the number of fixed-size packages) at the beginning 1110 or end 1120 of the content object 1100 only, or as a result of facilitating “instant play” and package consistency consistent with VOD functionality Can be modified in other patterns that effectively result in reliable downloads.

[309]さらに、この特徴は、コンテンツオブジェクトパッケージの特定のグループの格納のために、クラスタ間とクラスタ内との両方で特定のVODピアを注意深く選択することによって、さらに容易にされる。図12は、単なるVODピアのクラスタではなく、主にインターネットの既存インフラストラクチャに起因して存在する信頼レベルの比較的自然な分布1200を示す。図12は、本発明の目的に利用し、その相対的な近接又は互いからのインターネット距離に基づいてコンテンツオブジェクトパッケージを格納できるVODピアのクラスタ(及びサブクラスタ)を形成する機構を提供することができる。   [309] Furthermore, this feature is further facilitated by careful selection of specific VOD peers both between and within the cluster for the storage of specific groups of content object packages. FIG. 12 shows a relatively natural distribution 1200 of trust levels that exists primarily due to the existing infrastructure of the Internet, rather than just a cluster of VOD peers. FIG. 12 is utilized for the purposes of the present invention to provide a mechanism for forming clusters (and sub-clusters) of VOD peers that can store content object packages based on their relative proximity or internet distance from each other. it can.

[310]図12に示された実施形態の最も信頼性の高い信頼レベル1270には、相対的に少数のVODサポートサーバ1260がある。最も信頼性の低い信頼レベル1280には、インターネットの「コア」にある高帯域幅ブロードバンドルータ及びISPからインターネット距離において相対的に遠い端に多数の「葉ノード」VODピアがある。この2つの端の間には、「中間」信頼レベル1250(例えば、1から16までのスケール上で6〜9)を有する相対的に適度な個数のVODピアがある。   [310] There are a relatively small number of VOD support servers 1260 in the most reliable trust level 1270 of the embodiment shown in FIG. The least reliable trust level 1280 has a high bandwidth broadband router in the “core” of the Internet and a number of “leaf node” VOD peers at the far end of the Internet distance from the ISP. Between these two ends, there is a relatively modest number of VOD peers with an “intermediate” confidence level 1250 (eg, 6-9 on a scale of 1 to 16).

[311]VODピアの個数の、そのようなVODピアの「信頼のレベル」とのこの逆相関が示すものは、インターネットの物理インフラストラクチャが、隣接するVODピアの相対的に均一な組を容易にするクラスタ(及びサブクラスタ)の形成の機構を提供することである。例えば、図12が通常のクラスタを表すならば、どの信頼レベル内にも、インターネットのバックボーン又は「コア」からの相対的に類似するインターネット距離を有するVODピアの組がある。最も信頼性の高い信頼レベル1270にあるVODサポートサーバ1260は、このインターネットコアの相対的に近くにある。このスペクトルの他方の端では、最も信頼性の低い信頼レベル1280の多数の「葉ノード」VODピアが、このインターネットコアから相対的に遠くにある。しかしながら、信頼レベル全体を見ると、互いに近接する(インターネット距離において)VODピアの相対的に均一な分布がある。   [311] This inverse correlation of the number of VOD peers with the “trust level” of such VOD peers indicates that the Internet's physical infrastructure facilitates a relatively uniform set of adjacent VOD peers. Providing a mechanism for forming clusters (and sub-clusters). For example, if FIG. 12 represents a regular cluster, within any trust level, there is a set of VOD peers with relatively similar Internet distances from the Internet backbone or “core”. The VOD support server 1260 at the most reliable trust level 1270 is relatively close to this Internet core. At the other end of the spectrum, a number of “leaf nodes” VOD peers with the least reliable trust level 1280 are relatively far from the Internet core. However, looking at the overall trust level, there is a relatively uniform distribution of VOD peers that are close to each other (at internet distance).

[312]言い換えると、インターネットコアから外向きに働くことによって、各信頼レベルのVODピアのこれらの組を効果的に「スライスする」ことができ、信頼レベルにまたがるVODピアのスライスを、互いへの相対的な近接(インターネット距離での)に基づいて組み合わせられるようになる。この「信頼レベル間」スライスの結果は、VODピアのクラスタであり、さまざまな信頼レベルを有するが、互いへの相対的に近接するインターネット距離を共有する。しかし、下でより詳細に述べるように、VODピアの「信頼のレベル」に対するそのようなVODピアの個数のこの逆相関は、挙動及び他のネットワークベースの考慮事項に起因して、経時的にさまざまな異なる構成に進化する可能性がある。   [312] In other words, by working outward from the Internet core, these sets of VOD peers at each trust level can be effectively "sliced" and slices of VOD peers across trust levels can be passed to each other. Will be combined based on their relative proximity (in internet distance). The result of this “inter-trust level” slice is a cluster of VOD peers that have various trust levels but share relatively close internet distances to each other. However, as will be discussed in more detail below, this inverse correlation of the number of such VOD peers to the “level of trust” of the VOD peers is due to behavior and other network-based considerations over time. It can evolve into a variety of different configurations.

[313]クラスタにまたがる及びクラスタ内のさまざまな信頼レベルのVODピアの間のコンテンツパッケージのこの静的な「プッシュ後」分散を述べたので、これから、本発明のプル態様を実施するある主要な動的通信プロトコルに注意を向ける。   [313] Having described this static “post-push” distribution of content packages across clusters and between VOD peers of various trust levels within the cluster, we now have some major implementations of the pull aspect of the present invention. Focus on dynamic communication protocols.

[314]その公開中のコンテンツオブジェクトのプッシュと同様に、VODピアによる「オンデマンドの」ビューイングのためのそのようなコンテンツオブジェクトのプルは、2つの主要な機能を含む。すなわち(1)関連するトラッキングインデックス及びトラッキングファイル(すなわち、選択されたCRIDを含むファイル)を格納するVODピアの検索、及び(2)これらのトラッキングファイルで識別されるVODピアからのコンテンツオブジェクトパッケージのダウンロードである。   [314] Similar to its public content object push, pulling such content objects for "on-demand" viewing by VOD peers includes two main functions. (1) search for VOD peers that store the associated tracking index and tracking file (ie, the file that contains the selected CRID), and (2) content object packages from the VOD peers identified in these tracking files. Download.

[315]一実施形態で、使用可能なコンテンツがVODピアに知らされる(分散された形で)時に必ず、そのような情報は、各公開されたコンテンツオブジェクト(イベント)のCRID並びにさまざまなメタデータ(例えば、題名、ジャンルなど)を含む。メタデータは、そのイベントに関し、VODピアのユーザインターフェースを介してユーザに使用可能にされる。VODピアのユーザが、そのVODピアのユーザインターフェースを介してVODビューイングのためにコンテンツオブジェクトを選択する時に、クライアントソフトウェアは、その内部メモリにアクセスし、そのコンテンツオブジェクトに相互に関連するCRIDを抽出するようにする。   [315] In one embodiment, whenever available content is informed (in a distributed manner) to VOD peers, such information is included in the CRID of each published content object (event) as well as various meta-data. Includes data (eg, title, genre, etc.). The metadata is made available to the user via the VOD peer user interface for the event. When a VOD peer user selects a content object for VOD viewing via the VOD peer's user interface, the client software accesses its internal memory and extracts the CRID associated with the content object. To do.

[316]図13aに、対応するトラッキングインデックス及びトラッキングファイルを突き止めるのにそのCRIDを利用する通信プロトコル1300の実施形態を示す。トラッキングインデックス及びトラッキングファイルは、所望のコンテンツオブジェクトの構成要素パッケージが格納されているさまざまなVODピアを識別し、そのコンテンツオブジェクトの「オンデマンド」ビューイングのためにこれらのVODピアからそのようなパッケージをダウンロードするのにその後に使用される。この実施形態では、要求元VODピアである「ノードA」1305(「4」の信頼レベルと仮定する)は、まず、同一の信頼レベルを有する既知の隣接するVODピア(例えば、そのアライブリストに含まれる)に連絡することと、index_requestメッセージ(上述)を送信することとによって、CRIDに対応するトラッキングインデックスを検索する。   [316] FIG. 13a shows an embodiment of a communication protocol 1300 that utilizes its CRID to locate a corresponding tracking index and tracking file. The tracking index and tracking file identify the various VOD peers where the component package of the desired content object is stored, and such packages from these VOD peers for “on-demand” viewing of that content object. Will be used later to download. In this embodiment, the requesting VOD peer “Node A” 1305 (assuming a trust level of “4”) first has a known neighbor VOD peer with the same trust level (eg, in its alive list). The tracking index corresponding to the CRID is retrieved by sending an index_request message (described above).

[317]同一信頼レベルのVODピアの間でトラッキングインデックスを見つけることに成功しない場合には、ノードAは、トラッキングインデックスが見つかるまで、より高い信頼レベルのVODピアの検索に進む。他の実施形態では、トラッキングインデックスが見つかる前にトラッキングファイルを識別することができる(例えば、対応するトラッキングインデックスとトラッキングファイルとの両方に関する要求を送信することによって)ことにも留意されたい。   [317] If the tracking index is not successfully found among VOD peers with the same trust level, Node A proceeds to search for a higher trust level VOD peer until a tracking index is found. It should also be noted that in other embodiments, a tracking file can be identified (eg, by sending a request for both the corresponding tracking index and the tracking file) before the tracking index is found.

[318]図13aに戻って、ノードA 1305は、通信1322を介して「ノードB」1310(やはり「4」の信頼レベルを有する)にindex_requestメッセージを送信する。また、ノードA 1305は、通信1323を介して、(この例では)関連するトラッキングインデックス(又は、もう1つの実施形態では、要求されたCRIDに対応するトラッキングインデックスの関連するエントリ)を含むindex_responseメッセージを受信する。ノードA 1305は、次に、対応するトラッキングファイルのコピー(要求されたCRIDに対応するコンテンツオブジェクトの構成要素パッケージを実際に格納しているVODピアを識別する)を有するVODピアのノードIDをこれらのエントリから抽出する。   [318] Returning to FIG. 13a, Node A 1305 sends an index_request message to "Node B" 1310 (also having a trust level of "4") via communication 1322. Node A 1305 may also send an index_response message via communication 1323 that includes an associated tracking index (in this example, or an associated entry in the tracking index corresponding to the requested CRID in another embodiment). Receive. Node A 1305 then sets the node ID of the VOD peer with the corresponding tracking file copy (identifying the VOD peer that actually stores the component package of the content object corresponding to the requested CRID). Extract from entries.

[319]このシナリオに従えば、トラッキングファイルを格納するエントリの1つが、「ノードC」1315である(ノードCは、もちろん、ノードA 1305又はノードB 1310のいずれとも異なる信頼レベル「X」を有することができる)。次に、ノードA 1305は、通信1325を介するノードC 1315へのtracking_file_request(やはり上で述べた)の送信に進み、通信1326を介して、要求されたCRIDに対応するトラッキングファイルを含むtracking_file_responseを受信する。次に、ノードA 1305は、そのトラッキングファイルから、要求されたCRIDに対応するコンテンツオブジェクトの構成要素パッケージを実際に格納しているさまざまなVODピアのノードIDを抽出する。これらのノードIDは、VODビューイングのためのコンテンツオブジェクトパッケージのダウンロードの次のフェーズを開始するのに必要な情報を与える。   [319] According to this scenario, one of the entries storing the tracking file is “Node C” 1315 (Node C of course has a trust level “X” different from either Node A 1305 or Node B 1310). Can have). Node A 1305 then proceeds to send tracking_file_request (also described above) to node C 1315 via communication 1325 and receives tracking_file_response including the tracking file corresponding to the requested CRID via communication 1326. To do. Node A 1305 then extracts from the tracking file the node IDs of the various VOD peers that actually store the content object component package corresponding to the requested CRID. These node IDs provide the information necessary to initiate the next phase of downloading the content object package for VOD viewing.

[320]この次のフェーズを図13bに示す。図13bには、コンテンツオブジェクトパッケージをダウンロードする通信プロトコル1350の実施形態が示されている。この実施形態では、通常、所望のコンテンツオブジェクトのパッケージの異なるグループを格納する複数のVODピア(したがって、対応するトラッキングファイル内の複数のノードIDエントリ)があることに留意されたい。図13bには、1つのそのようなVODピアとの通信が示されているが、複数の類似する通信を並列に実行することができる。この実施形態では、「より早期の」パッケージ(すなわち、例えば映画の、より早期の部分を含むパッケージ)を格納するVODピアが、まず連絡される。というのは、これらのファイルが、ビューイングのためにより早期に必要になるからである。しかし、リアルタイム再生速度の場合であっても、複数のそのような要求を開始するのに必要な時間の長さは、ダウンロードが大きい遅延なしで発生する(上と下との両方でより詳細に述べるように、NQoSが役に立つ場合である)ならば、相対的にわずかである。さらに、下で述べるように、複数のファイルを、そのようなVODピアのそれぞれからダウンロードする(並列にも)ことができる。   [320] This next phase is shown in FIG. 13b. FIG. 13b shows an embodiment of a communication protocol 1350 for downloading a content object package. Note that in this embodiment, there are typically multiple VOD peers (and thus multiple node ID entries in the corresponding tracking file) that store different groups of packages of the desired content object. Although communication with one such VOD peer is shown in FIG. 13b, multiple similar communications can be performed in parallel. In this embodiment, the VOD peer that stores the “earlier” package (ie, the package containing the earlier part of the movie, for example) is contacted first. This is because these files are needed earlier for viewing. However, even in the case of real-time playback speed, the length of time required to initiate multiple such requests can occur without significant delay in download (as described in more detail both above and below). Relatively small if NQoS is useful). Furthermore, as described below, multiple files can be downloaded from each such VOD peer (also in parallel).

[321]所望のコンテンツオブジェクトの特定のパッケージを格納するVODピアのうちの1つとして「ノードB」1360を識別したので、「ノードA」1355は、通信1372を介してノードB 1360にfile_check_requestメッセージ(やはり上で述べた)を送信する。このメッセージには、1つ以上のファイル(すなわち、所望のコンテンツオブジェクトのパッケージのグループ)をダウンロードするための所望の個数の接続が含まれる。ノードB 1360は、通信1373を介してfile_check_response(やはり上で述べた)を応答する。この応答には、現在使用可能な接続の個数又は接続が現在使用可能でない場合には待ち時間のいずれかが含まれる(キュー内のファイルの個数と共に)。   [321] Having identified "Node B" 1360 as one of the VOD peers that stores a particular package of the desired content object, "Node A" 1355 sends a file_check_request message to Node B 1360 via communication 1372. (Also mentioned above). The message includes a desired number of connections for downloading one or more files (ie, a group of packages of desired content objects). Node B 1360 responds with a file_check_response (also described above) via communication 1373. This response includes either the number of connections currently available or the latency if the connection is not currently available (along with the number of files in the queue).

[322]図13bに示された例では、通信1373でのノードB 1360からのfile_check_responseは、2つの接続が使用可能であり、ファイルのダウンロードに予約されていることを示す。次に、ノードA 1355は、通信1376を介する「file_feed_request」メッセージ(前に説明はしていない)の送信に進む。このメッセージは、ノードB 1360からのfile_check_responseメッセージで指定された2つの予約されたチャネルを使用する、ファイル(トラッキングファイルで指定された所望のコンテンツオブジェクトのパッケージを含む)のダウンロードを起動する。次に、ノードB 1360は、めいめいの通信1377及び1378(2つの指定された通信チャネルに対応する)を介して、実際のファイルを含むcontent_package_feedメッセージ(前に説明はしていない)をノードA 1355に送信する。   [322] In the example shown in FIG. 13b, file_check_response from Node B 1360 in communication 1373 indicates that two connections are available and reserved for file download. Node A 1355 then proceeds to send a “file_feed_request” message (not previously described) via communication 1376. This message triggers the download of the file (including the package of the desired content object specified in the tracking file) using the two reserved channels specified in the file_check_response message from Node B 1360. Node B 1360 then sends a content_package_feed message (not previously described) containing the actual file via its respective communications 1377 and 1378 (corresponding to two designated communication channels). Send to.

[323]これらのファイルを受信する時に、要求元のVODピアであるノードA 1355は、そのユーザインターフェースを介する表示のためにコンテンツオブジェクトのこれらのパッケージのキューイングを開始することができる。パッケージの初期グループは、即座に見ることができ、パッケージの後続グループは、通常は、即座に必要になるまで、「ジャストインタイム」ビューイングのためにキューイングされる。このプロセスは、ポイントツーポイントストリーミングダウンロードに多少似ているが、非常に異常な極端なシナリオを除いて再生バッファが使い果たされないことを保証するために、重大なインテリジェンス(NQoS、プッシュプロセス、プルプロセスなどを含む本発明のさまざまな特徴に固有の)を用いてマルチポイントの基礎で達成される。   [323] Upon receiving these files, the requesting VOD peer, Node A 1355, may initiate queuing of these packages of content objects for display via its user interface. The initial group of packages can be viewed immediately, and subsequent groups of packages are typically queued for “just-in-time” viewing until needed immediately. This process is somewhat similar to point-to-point streaming download, but critical intelligence (NQoS, push process, pull- Inherent on various features of the present invention including processes etc.) and achieved on a multipoint basis.

[324]上で説明した通常のプルダウンロードのシナリオに加えて、いくつかの補足的な特徴が、一実施形態で含まれる。その特徴は、比較的希な場合さえ考慮に入れ、要求されたコンテンツオブジェクトの再生を遅延され、及び/又は中断される確率をさらに最小にするようにする。例えば、図14に示された一実施形態では、VODピア1410が2つの主要な「フィーダ」VODピア1420及び1430にパッケージダウンロードを(並列に)要求している、プルダウンロードシナリオ1400が示されている。上で注記したように、VODピア1410は、VODピア1420からパッケージの1つのグループを、VODピア1430からパッケージ(同一コンテンツオブジェクトの)の異なるグループを受信していると仮定することができる。   [324] In addition to the normal pull download scenario described above, several supplemental features are included in one embodiment. The feature takes into account even the relatively rare case to further minimize the probability that playback of the requested content object is delayed and / or interrupted. For example, in one embodiment shown in FIG. 14, a pull download scenario 1400 is shown in which a VOD peer 1410 is requesting package downloads (in parallel) from two major “feeder” VOD peers 1420 and 1430. Yes. As noted above, VOD peer 1410 may assume that it has received one group of packages from VOD peer 1420 and a different group of packages (of the same content object) from VOD peer 1430.

[325]しかし、これらの「フィーダ」VODピア1420及び1430の一方又は両方が、VODピア1410にファイルを転送するプロセス中に中断をこうむるシナリオがある。例えば、あるVODピアが、ローカルデバイス障害をこうむる場合があり、或いは、ネットワーク障害が、VODピア又は他のネットワークノード(例えば、それ以外の点では本発明のVODネットワークの一部ではない、2つのVODピアの間の中間ルータ)が単純に消滅することに起因して発生する場合がある。   [325] However, there are scenarios in which one or both of these “feeder” VOD peers 1420 and 1430 suffer interruption during the process of transferring files to the VOD peer 1410. For example, one VOD peer may suffer from a local device failure, or the network failure may be a VOD peer or other network node (eg, two that are not otherwise part of the VOD network of the present invention) This may occur due to the simple disappearance of intermediate routers between VOD peers.

[326]その場合に、VODピア1410は、「フォールバック」VODピア(例えば、メイン又は主VODピア1420の副又はフォールバックVODピア1425及び主VODピア1430の副VODピア1435)に頼る必要がある場合がある。そのような「崩壊ハンドリング」機能性を実施できる複数の異なる形がある。例えば、一実施形態で、VODピア1410は、追加の使用可能な接続を利用して、エラーが発生する前にそのような副VODピアからのダウンロードを開始することができる。VODピア1410は、パッケージのより後のグループより早く必要になる所望のコンテンツオブジェクトのパッケージのより早期のグループに向かっての副VODピアの選択(受信するトラッキングファイルエントリに存在するノードIDのドメインからの)に優先順位を与えることができる(コンテンツオブジェクトの再生の中断を防ぐために)。   [326] In that case, the VOD peer 1410 needs to rely on a “fallback” VOD peer (eg, a secondary of the main or primary VOD peer 1420 or a fallback VOD peer 1425 and a secondary VOD peer 1435 of the primary VOD peer 1430). There may be. There are a number of different ways in which such “collapse handling” functionality can be implemented. For example, in one embodiment, VOD peer 1410 may utilize additional available connections to initiate downloads from such secondary VOD peers before an error occurs. The VOD peer 1410 selects the secondary VOD peer towards the earlier group of packages of the desired content object that will be needed sooner than the later group of packages (from the node ID domain present in the incoming tracking file entry). )) Can be given priority (to prevent interruption of content object playback).

[327]一実施形態で、そのような崩壊ハンドリング機能性は、非常に信頼性の高い(例えば、信頼レベル「2」)ピアとの「rescue_preparation」メッセージ及び「rescue_preparation_response」メッセージの最初の交換によって実施される(VODピアが、その主「フィーダ」VODピアとの接続が低速化しているか、障害を発生したか、すぐに障害を発生する可能性があることを認識した後に)。主接続に障害が発生する(又は、ある所定の閾値を超えて低速化する)場合には、VODピアは、その非常に信頼性の高いVODピア(それが受信した先立つ通知に起因して、NQoSの低下なしでそのような要求に対処する準備ができている可能性が高い)を介する残りのパッケージグループのダウンロードを要求することができる。   [327] In one embodiment, such collapse handling functionality is performed by an initial exchange of "rescue_preparation" and "rescue_preparation_response" messages with a very reliable (eg, trust level "2") peer. (After the VOD peer recognizes that its connection with its main “feeder” VOD peer is slowing, has failed, or may soon fail). In the event that the main connection fails (or slows down beyond a certain threshold), the VOD peer will revert to its very reliable VOD peer (due to the prior notification it received) The remaining package group downloads can be requested via (which is likely to be ready to handle such requests without NQoS degradation).

[328]要求元VODピアへのパッケージのダウンロード(プル)での中断の処理又はその回避を先取りして試みることに加えて、他のシナリオには、潜在的な「フィーダ」VODピアが、期待されるNQoS又は所望のNQoSを伴って要求されたダウンロードを完了するのに十分な個数の使用可能な接続を有しない(例えば、要求の過負荷、既存ダウンロード接続などに起因して)ことを認識する(例えば、「file_check_request」メッセージの受信時に)情況が含まれる。   [328] In addition to proactively attempting to handle or avoid interrupting the download (pull) of a package to the requesting VOD peer, other scenarios have potential “feeder” VOD peers Recognize that there is not enough connections available to complete the requested download with the requested or desired NQoS (eg due to request overload, existing download connections, etc.) (E.g., upon receipt of a "file_check_request" message).

[329]一実施形態で、その潜在的な「フィーダ」VODピアは、要求元VODピアに、要求をキューイングする(すなわち、遅延させる)(上で「file_check_request」メッセージ及び「que_request」メッセージとその応答とに関して述べたように)、又は要求を完了するのに別の(副又はフォールバック)VODピアに頼る(或いは、もう1つの実施形態では両方を行う)オプションを与えることができる。   [329] In one embodiment, the potential “feeder” VOD peer queues (ie, delays) the request to the requesting VOD peer (above the “file_check_request” message and the “que_request” message and its Options can be given (as described with respect to responses) or relying on another (secondary or fallback) VOD peer to complete the request (or in another embodiment both).

[330]もう1つの実施形態では、要求元VODピア(又は、おそらくは潜在的な「フィーダ」VODピアさえ)は、要求されたコンテンツオブジェクト(又は、おそらくはコンテンツオブジェクト全般)をダウンロードするのに十分な、そのクラスタ内の帯域幅を有していない。しかし、要求元VODピアは、大幅によりよいイントラクラスタ(及び/又はインタークラスタ)接続性を有する隣接VODピア(「バディ」)とのよい接続を有することを認識することができる。この実施形態では、要求元VODピアは、1つ以上のコンテンツオブジェクト(又は構成要素パッケージグループ)をダウンロードする作業をその「バディ」に委任することができる。この「バディ」は、要求元VODピアでのビューイングのために、そのようなコンテンツオブジェクトを転送する(上で述べた「buddy_request」メッセージ、「buddy_function_request」メッセージ、及び「buddy_download_request」メッセージとその応答とを利用して)。この「バディ機能」は、「要求ごとの」基礎で、又は他の実施形態ではより少なく一時的な基礎で使用することができる。また、上で注記したように、潜在的な「フィーダ」VODピアさえもが、このバディ機能を利用することができる、すなわち要求元VODピアへのパッケージの要求されたグループのダウンロードを委任するのに利用することができる。   [330] In another embodiment, the requesting VOD peer (or possibly a potential “feeder” VOD peer) is sufficient to download the requested content object (or possibly the content object in general). Does not have bandwidth in that cluster. However, it can be appreciated that the requesting VOD peer has a good connection with a neighboring VOD peer (“buddy”) that has significantly better intra-cluster (and / or inter-cluster) connectivity. In this embodiment, the requesting VOD peer can delegate the task of downloading one or more content objects (or component package groups) to its “buddy”. This “buddy” forwards such a content object for viewing at the requesting VOD peer (the “buddy_request” message, the “buddy_function_request” message, and the “buddy_download_request” message and their responses, as described above. Using). This “buddy function” can be used on a “per request” basis, or in other embodiments on a less temporary basis. Also, as noted above, even potential “feeder” VOD peers can take advantage of this buddy function, ie delegate the download of the requested group of packages to the requesting VOD peer. Can be used.

[331]上のシナリオのすべてが、コンテンツオブジェクトパッケージのダウンロードに対する「クライアント−サーバ」手法を用いる。しかし、要求を完了するのに不十分な帯域幅及び/又は接続性に直面する要求元(及び「フィーダ」)VODピアのもう1つのオプションは、意図された受信側に達するまでそのようなダウンロードを中継する(例えば、1つのクラスタ内で)ピアの連鎖にダウンロードをマルチキャストすることを含む、「ピアキャスティング」として知られる代替方法である。一実施形態でのそのような技法の使用は、特定のVODピアの過負荷を克服することができる(例えば、「緊急」のシナリオで、又は特定のコンテンツオブジェクトの人気が非常に高く、多数のVODピアがほぼ同時にそれを見ることを望む時)。   [331] All of the above scenarios use a “client-server” approach to downloading content object packages. However, another option for requesting (and “feeder”) VOD peers facing insufficient bandwidth and / or connectivity to complete the request is such download until the intended recipient is reached. Is an alternative method known as “peer casting” that involves multicasting downloads to a chain of peers (eg within a cluster). The use of such techniques in one embodiment can overcome the overload of a particular VOD peer (eg, in an “emergency” scenario, or a particular content object is very popular, When a VOD peer wants to see it almost simultaneously).

[332]しかし、この技法は、このシナリオでのトラッキングインデックス及びトラッキングファイルの更新がない結果としてのQoS(したがって本発明の状況でのNQoS)に対する悪影響に起因して、一時的な手段としてのみ推奨される。その代わりに、VODピアは、所望のパッケージグループを入手するために連絡しなければならない他のVODピアがどれであるかを直接に知らされる。   [332] However, this technique is only recommended as a temporary measure due to the negative impact on QoS (and thus NQoS in the context of the present invention) as a result of the lack of tracking index and tracking file updates in this scenario. Is done. Instead, the VOD peer is informed directly which other VOD peers must contact to obtain the desired package group.

[333]例えば、複数の他のVODピアに「供給している」VODピアは、「ピアキャスティング」の機会を認識することができる(例えば、これらの複数のVODピアに互いに直接に「供給」させることによって帯域幅を節約するために)。そのVODピアは、次に、あるVODピア(例えば、最も信頼されるVODピア)を「サーバ」として、別のVODピアを「クライアント」として指定することができる(例えば、指定される「サーバ」ノードIDの識別を含む、上で述べた「peer_casting_client」メッセージを介して)。この実施形態では、そのVODピアは、「ピアキャスティング」シナリオが確認されるまで(例えば、「クライアント」が「サーバ」に連絡し、この「ピアキャスティング」シナリオを受け入れたことを示す、上で述べた「peer_casting_client_response」メッセージを介して)、両方へのパッケージグループのダウンロードを継続する。そのVODピアは、さらに、「サーバ」VODピアへのパッケージグループのダウンロードを継続し、「サーバ」VODピアは、それらを「クライアント」VODピアにダウンロードする(例えば、上で述べた「peer_casting_download_setup」メッセージに応答して)。
4.NQoS及びネットワークトラフィックの動的監視
[333] For example, VOD peers “serving” multiple other VOD peers can recognize “peer casting” opportunities (eg, “feeding” these multiple VOD peers directly to each other) To save bandwidth by letting you). That VOD peer may then designate one VOD peer (eg, the most trusted VOD peer) as a “server” and another VOD peer as a “client” (eg, designated “server”). (Via the “peer_casting_client” message described above, including identification of the node ID). In this embodiment, the VOD peer mentioned above until a “peer casting” scenario is confirmed (eg, indicating that “client” has contacted “server” and accepted this “peer casting” scenario). (Via the “peer_casting_client_response” message), continue to download the package group to both. The VOD peer further continues to download package groups to the “server” VOD peer, and the “server” VOD peer downloads them to the “client” VOD peer (eg, the “peer_casting_download_setup” message described above). In response to)).
4). Dynamic monitoring of NQoS and network traffic

[334]通信プロトコル及びメッセージングを、全般的に並びに本発明の主要なプッシュ機能性及びプル機能性に関して具体的に述べたので、これから、VODピアがネットワークトラフィック(VOD機能性の挙動態様並びに帯域幅及び信頼性などのネットワーク属性を含む)を動的に監視し、既存インターネットインフラストラクチャに頼るネットワークの状況でVODアプリケーションにNQoSを提供するためにさまざまな「コンテンツ平衡化」機能及び関連機能を実行する手段に注意を向ける。   [334] Now that the communication protocols and messaging have been described in general terms and with respect to the main push and pull functionality of the present invention, it is now possible for the VOD peer to communicate with network traffic (VOD functionality behavior and bandwidth). And perform various "content balancing" functions and related functions to provide NQoS to VOD applications in network situations that rely on existing Internet infrastructure (including network attributes such as reliability) Pay attention to the means.

[335]上で注記したように、及び図15に示された実施形態では、各VODピアのクラスタコントローラが、主に、この分散動的監視機能性の責任を負う。ネットワーク及び挙動活動の監視に加えて、これらのクラスタコントローラは、そのような監視の結果としてさまざまなネットワーク属性及びコンテンツ分散属性をも変更し、効果的に「分散閉ループフィードバック」システム1500をもたらす。   [335] As noted above and in the embodiment shown in FIG. 15, the cluster controller of each VOD peer is primarily responsible for this distributed dynamic monitoring functionality. In addition to monitoring network and behavior activity, these cluster controllers also change various network attributes and content distribution attributes as a result of such monitoring, effectively resulting in a “distributed closed loop feedback” system 1500.

[336]このシステム1500は、VODピアが、すべての要求に先立って、そのVODピアに特定のコンテンツオブジェクト(その隣接するVODピアの間でパッケージで分散されている)をある所定の時間以内に配信するネットワークの能力を識別することを可能にすることによって、効果的にネットワークに組み込まれるQoS(NQoS)を提供する。   [336] This system 1500 allows a VOD peer to have a specific content object (distributed in a package among its neighboring VOD peers) within that VOD peer within a predetermined time prior to every request. By enabling the ability of the network to deliver to be identified, QoS (NQoS) is effectively incorporated into the network.

[337]「5」の信頼レベルと、他の既知のVODピアのクラスタコントローラとの通信(一実施形態では、クラスタ内とクラスタにまたがってとの両方)を可能にするクラスタコントローラ1520とを有するVODピア1510が、図15に示されている。これらの他のVODピアは、同一の信頼レベルを有するもの(例えば、VODピア1510a)、より低い信頼レベルを有するもの(例えば、VODピア1510b)、及びより高い信頼レベルを有するもの(例えば、VODピア1510c)を含む。将来の例での参照を容易にするために、VODピア1510aを、本明細書では特定のVODピア(当初は「5」の信頼レベルを有する)とも称する。   [337] having a trust level of “5” and a cluster controller 1520 that enables communication (in one embodiment, both within and across clusters) with cluster controllers of other known VOD peers. A VOD peer 1510 is shown in FIG. These other VOD peers have the same trust level (eg, VOD peer 1510a), have a lower trust level (eg, VOD peer 1510b), and have a higher trust level (eg, VOD) Peer 1510c). For ease of reference in future examples, VOD peer 1510a is also referred to herein as a particular VOD peer (initially having a trust level of “5”).

[338]動的ネットワーク監視1525は、(上でより詳細に説明したように)システム1500内の各VODピアのクラスタコントローラの間の通信を含む分散プロセスである。個々のVODピアによって、それ自体のために、テストを実行することができ、そのようなテストの統計結果を維持することができる。例えば、一実施形態で、VODピア1510は、その既知の隣接物のうちの3つとの周期的pingテストを実行し、そのようなテストの結果(例えば、長、短、及び平均ping時間、失敗の回数など)をそのノードIDのネット測定値フィールドに記録することができる。一実施形態で、変化するサイズのファイルを用いる相対的に小さいファイル転送を実行することもできる(例えば、隣接物並びに変化する信頼レベルの遠隔VODピアに対して)。   [338] Dynamic network monitoring 1525 is a distributed process that includes communication between the cluster controllers of each VOD peer in system 1500 (as described in more detail above). Individual VOD peers can run tests for themselves and maintain the statistical results of such tests. For example, in one embodiment, VOD peer 1510 performs a periodic ping test with three of its known neighbors, and the results of such a test (eg, long, short, and average ping time, failure) Can be recorded in the net measurement value field of the node ID. In one embodiment, relatively small file transfers using files of varying sizes may be performed (eg, for neighbors as well as remote VOD peers of varying trust levels).

[339]さらに、一実施形態で、相対的に非常に信頼性の高いVODピアが、そのクラスタの代わりに、そのようなテストを実行し、その結果を維持することができる(潜在的にインタークラスタ活動及びイントラクラスタ活動を含む)。例えば、VODピア1510と同一のクラスタ内の相対的に非常に信頼性の高いVODピア(例えば、信頼レベル「3」)が、そのクラスタ内のすべてのVODピア(又はあるサブセット)によって実行されたpingテストの累積的結果を反映する類似する値を維持することができる(例えば、VODピアにそのネット測定値フィールドの値について照会する分散メッセージから抽出される)。   [339] Further, in one embodiment, a relatively highly reliable VOD peer can perform such tests on behalf of the cluster and maintain the results (potentially interfacing). Including cluster activity and intra-cluster activity). For example, a relatively highly reliable VOD peer (eg, trust level “3”) in the same cluster as VOD peer 1510 was executed by all VOD peers (or some subset) in that cluster Similar values that reflect the cumulative results of the ping test can be maintained (eg, extracted from distributed messages that query the VOD peer for the value of its net measurement field).

[340]隣接するVODピア及び遠隔VODピアの間で「包括的」ネットワークトラフィックテスト(ping、traceroute、変化するサイズのファイル転送など)を実行すること(個別に又はイントラクラスタ若しくはインタークラスタの基礎のいずれで維持されるものであれ)の他に、クラスタコントローラは、一実施形態で、実際のVODネットワークトラフィックを監視することもできる。例えば、特定のコンテンツオブジェクトに関する要求又はコンテンツオブジェクト全般に関する要求が、さまざまな信頼レベルのVODピアのクラスタコントローラによって検出される(例えば、これらの要求に関係付けられる所定のメッセージがそのようなVODピアを「通過する」ので)。   [340] Performing “comprehensive” network traffic tests (ping, traceroute, file transfer of varying sizes, etc.) between adjacent VOD peers and remote VOD peers (individually or on intracluster or intercluster basis) In addition to whatever is maintained, the cluster controller may also monitor actual VOD network traffic in one embodiment. For example, requests for specific content objects or requests for content objects in general are detected by the cluster controllers of VOD peers of various trust levels (eg, a predetermined message associated with these requests will identify such VOD peers). "Because it passes").

[341]このVODネットワークトラフィックは、「グローバルに」(例えば、VODネットワーク全体について)又はインタークラスタレベル、イントラクラスタレベル、若しくは純粋に「ローカル」レベル(例えば、個々のVODピア)でさえ維持することができる。一実施形態で、そのような情報に、すべてのコンテンツオブジェクト及び/又は特定のジャンルに含まれるコンテンツオブジェクト若しくは要求の所定の最大閾値又は最小閾値を超えるコンテンツオブジェクトに関する特定の毎日のタイムスロット内の要求の個数を含めることができる。さらに、クラスタ内及びクラスタ間でのVODピアの間のコンテンツオブジェクトパッケージの分散に関する情報をも維持することができる。例えば、あるコンテンツオブジェクト又は特定のジャンルに含まれるコンテンツオブジェクトのコピーの個数を、経時的に維持することもでき、コンテンツオブジェクトのパッケージの特定のグループのコピーの個数(例えば特定のクラスタ内の)を経時的に維持することもできる。   [341] This VOD network traffic should be maintained “globally” (eg, for the entire VOD network) or at an intercluster level, an intracluster level, or even a purely “local” level (eg, individual VOD peers). Can do. In one embodiment, such information includes requests within a particular daily time slot for all content objects and / or content objects included in a particular genre or content objects that exceed a predetermined maximum or minimum threshold of requests. Can be included. In addition, information regarding distribution of content object packages within and between VOD peers within a cluster can be maintained. For example, the number of copies of a content object or content object included in a particular genre can be maintained over time, and the number of copies of a particular group of content object packages (eg, within a particular cluster) It can also be maintained over time.

[342]一実施形態で、これらの動的ネットワーク監視1525テストの一部又はすべてを、周期な基礎で並びにさまざまな起動(例えば、デバイス障害、ネットワーク障害、特定のコンテンツオブジェクトに関するVOD要求、或いは特定の時間間隔内にアクセスされたコンテンツオブジェクトに関するVOD要求などの検出)に応答して実行できることに留意されたい。さらに、そのようなテストの結果は、最小スコア又は最大スコア、並びに平均値又は経時的に蓄積される他の累積的値を反映することができる。上で注記もしたように、そのような「監視する」トラフィックでネットワークに過負荷を与えないようにするために、平衡が維持される(例えば、実質的なVODネットワークトラフィック自体に関するNQoSを大きく損なわないようにするために)。   [342] In one embodiment, some or all of these dynamic network monitoring 1525 tests are performed on a periodic basis as well as various activations (eg, device failures, network failures, VOD requests for specific content objects, or specific Note that it can be performed in response to detection of a VOD request, etc., for a content object accessed within a certain time interval. Furthermore, the results of such tests can reflect a minimum or maximum score, as well as an average value or other cumulative value accumulated over time. As noted above, in order to avoid overloading the network with such “monitoring” traffic, a balance is maintained (eg, a significant loss of NQoS on the actual VOD network traffic itself). Not to).

[343]そのような統計を経時的に維持することによって、VODピアのクラスタコントローラは、これらの統計に基づいて処置を講じることができる(一実施形態で)。上で注記し、図15に示したように、動的ネットワーク監視1525によって入手された結果は、さまざまな信頼レベルのVODピアによって、動的ネットワーク監視結果データベース1532内(一実施形態では、中央でVODピアからアクセス可能)並びにそれら自体のノードIDのネット測定値フィールド(図示せず)内で維持することができる。したがって、この情報は、VODピア1510などの個々のVODピアへの「フィードバック」1534だけではなく、各VODピアのクラスタコントローラの間の分散通信を介する他のVODピアへのフィードバックにも使用可能である。   [343] By maintaining such statistics over time, the cluster controller of the VOD peer can take action based on these statistics (in one embodiment). As noted above and shown in FIG. 15, the results obtained by dynamic network monitoring 1525 are stored in the dynamic network monitoring results database 1532 (in one embodiment, centrally by VOD peers of various trust levels). As well as in the net measurement field (not shown) of their own node IDs. Thus, this information can be used not only for “feedback” 1534 to individual VOD peers, such as VOD peer 1510, but also for feedback to other VOD peers via distributed communication between the cluster controllers of each VOD peer. is there.

[344]このフィードバック1534は、上で述べ、図15に示したように、個々のVODピアの属性並びにVODネットワークインフラストラクチャ(例えば、クラスタメンバシップと、そのようなクラスタ内及びクラスタの間でのVODピアの間のコンテンツオブジェクト及びその構成要素パッケージのグループの分散)に対するさまざまな変更1530に反映される。例えば、包括的ネットワークトラフィックテストの結果として、又はコンテンツオブジェクトに関する要求に対する実際の応答の結果としてさえ、特定のVODピアの信頼レベルを経時的に変更することができる。これらの「信頼レベル変更」1536は、下で述べるように、それによってNQoSが影響を受ける1つの重要な手段である。   [344] This feedback 1534, as described above and shown in FIG. 15, is attributed to individual VOD peer attributes and VOD network infrastructure (eg, cluster membership and such intra-cluster and inter-cluster). Reflected in various changes 1530 to the distribution of groups of content objects and their component packages between VOD peers. For example, the trust level of a particular VOD peer can be changed over time, as a result of a comprehensive network traffic test or even as a result of an actual response to a request for a content object. These “trust level changes” 1536 are one important means by which NQoS is affected, as described below.

[345]「パッケージ分布変更」1538(やはり下で述べる)は、NQoSに影響するもう1つの重要な手段である。これには、一実施形態で、コンテンツオブジェクト及びそのパッケージの構成要素グループの展開の変更を含めることができる。例えば、特定のコンテンツオブジェクト(及び/又はそのパッケージの構成要素グループ)のコピーの個数を増やすか減らすことができる(例えば、特定のクラスタ内又は特定のクラスタ間で経時的に監視されたコンテンツオブジェクトの人気又はコンテンツオブジェクトのジャンルの人気の結果として)。あるコンテンツオブジェクト(又はコンテンツオブジェクト全般)の構成要素パッケージのサイズ及び個数も変更することができる。   [345] “Package Distribution Change” 1538 (also described below) is another important means of affecting NQoS. This may include, in one embodiment, changing the deployment of a content object and its package component groups. For example, the number of copies of a particular content object (and / or its package component group) can be increased or decreased (eg, for content objects monitored over time within a particular cluster or between particular clusters). As a result of popularity or popularity of the content object genre). The size and number of component packages of a content object (or content object in general) can also be changed.

[346]信頼レベル変更1536及びパッケージ分布変更1538に加えて、NQoSに影響するのに使用できるさまざまな他の変更1539がある。例えば、一実施形態で、クラスタメンバシップを、動的ネットワーク監視1525の結果に基づいて変更することができる(例えば、既知の隣接するVODピアの組を、十分に短い隣接するping時間を示すVODピアに制約することによって)。他の変更に、要求(又は他のメッセージ)が最初に送信されるVODピアの個数を変更することを含めることができる(例えば、類似するメッセージに関する以前の成功率又は応答時間に基づいて)。特定のタイプの変更とは別に、経時的に動的に監視でき、その後にフィードバック1534を介して変更できるノード属性又はネットワーク属性に対する実質的にすべての変更が、NQoSに影響する際に役割を演じることができることに留意されたい。一部の変更及び動的に監視されるテストは、単純に、他の変更及びテストより効果的であり、効率的である(個別に及び組合せで)。   [346] In addition to the trust level change 1536 and the package distribution change 1538, there are various other changes 1539 that can be used to affect NQoS. For example, in one embodiment, cluster membership can be changed based on the results of dynamic network monitoring 1525 (eg, a set of known adjacent VOD peers is a VOD indicating a sufficiently short adjacent ping time). By constraining to peers). Other changes can include changing the number of VOD peers from which requests (or other messages) are initially sent (eg, based on previous success rates or response times for similar messages). Apart from certain types of changes, virtually all changes to node or network attributes that can be monitored dynamically over time and subsequently changed via feedback 1534 play a role in affecting NQoS. Note that you can. Some changes and dynamically monitored tests are simply more effective and efficient (individually and in combination) than other changes and tests.

[347]一実施形態で、個々のVODピア1510による「包括的」ネットワークトラフィックテストの結果が、VODピア1510aの信頼レベルの変化を起動することができる(例えば、VODピア1510aに関するpingテスト失敗の閾回数を超えることに起因して)。上で詳細に述べたように、さまざまな信頼レベルパラメータが、経時的に維持される構成要素信頼レベル要因から判定される(一実施形態で)。これらの構成要素信頼レベル要因の累積的結果が、現在の計算された信頼レベルである。したがって、特定の動的ネットワーク監視1525テストの結果として信頼レベル要因を変更することが、信頼レベルパラメータの相対的に即座の変化を、及び最終的に信頼レベル自体の相対的に即座の変化(これは、VODピアのノードIDの信頼レベルフィールドに反映される)を起動することができる。   [347] In one embodiment, the result of a “comprehensive” network traffic test by individual VOD peers 1510 can trigger a change in the trust level of VOD peer 1510a (eg, ping test failure for VOD peer 1510a). Due to exceeding the threshold number). As detailed above, various confidence level parameters are determined from component confidence level factors that are maintained over time (in one embodiment). The cumulative result of these component confidence level factors is the current calculated confidence level. Thus, changing the confidence level factor as a result of a particular dynamic network monitoring 1525 test will result in a relatively immediate change in the trust level parameter and eventually a relatively immediate change in the trust level itself (this Is reflected in the trust level field of the node ID of the VOD peer).

[348]これらの動的な信頼レベル変更1536(動的なフィードバック1534を介して図示)がNQoSにどのように影響するかを理解することが重要である。上で注記したように、既存のインターネットインフラストラクチャは、固有にはQoSを提供しない。   [348] It is important to understand how these dynamic confidence level changes 1536 (shown via dynamic feedback 1534) affect NQoS. As noted above, existing Internet infrastructure does not inherently provide QoS.

[349]VODピア1510によって開始されたVOD要求は、他のVODピアの間の通信だけではなく、既存のインターネットホスト、ルータ、及び他のノード〔そのすべて、(個別に又は集合的に)実質的にすべての時に、デバイス障害並びに帯域幅及び信頼性の変化を許す〕の間の通信をももたらす。グローバルインターネットトラフィックを全体的に監視し、一貫した信頼できるQoSレベルを維持する中央機構又は分散機構はない。   [349] A VOD request initiated by a VOD peer 1510 is not limited to communication between other VOD peers, but also existing Internet hosts, routers, and other nodes [all of them (individually or collectively)] At all times, allowing device failures and bandwidth and reliability changes. There is no central or distributed mechanism that globally monitors global Internet traffic and maintains a consistent and reliable QoS level.

[350]それでも、本発明の「分散閉ループフィードバック」システム1500は、インターネットの既存インフラストラクチャ「の上に」又はその一部として存在するVODピアのネットワークの間のそのような機構(すなわち、NQoS)を提供する。   [350] Nevertheless, the “distributed closed-loop feedback” system 1500 of the present invention is such a mechanism (ie, NQoS) between networks of VOD peers that exist “on” or as part of the existing infrastructure of the Internet. I will provide a.

[351]例えば、VODピア1510aは、「5」の信頼レベルを示す。しかし一方、VODピア1510aは、VODピア1510からの要求に応答し、相対的に迅速かつ確実に、例えば要求されたコンテンツオブジェクトの実質的に「即時の再生」並びに一貫した信頼できる再生を提供するのに十分に、隣接するVODピア(VODピア1510aを含む)の間で以前に分散されたそのコンテンツオブジェクトの構成要素パッケージをVODピア1510に「供給する」ことができる。したがって、VODピア1510のユーザは、ある時間間隔の間に、このサービスのレベルに満足する可能性がある。   [351] For example, VOD peer 1510a indicates a trust level of “5”. However, the VOD peer 1510a responds to requests from the VOD peer 1510 and provides, for example, substantially “immediate playback” as well as consistent and reliable playback of the requested content object, relatively quickly and reliably. The component package of that content object that was previously distributed among adjacent VOD peers (including VOD peer 1510a) can be "provisioned" to VOD peer 1510. Therefore, the user of VOD peer 1510 may be satisfied with this level of service during a certain time interval.

[352]それでも、上で注記したように、他のデバイス(VODピア、インターネットルータ、インターネットホストなど)の障害が、おそらくはそのサービスのレベルに影響する可能性がある。例えば、VODピア1510aの信頼レベルが、周期的pingテストの失敗又は動的ネットワーク監視1525からの他のテストの結果として、「5」から「6」(より信頼性の低い)に変更されると仮定する。VODピア1510a内のクラスタコントローラは、信頼レベルのこの変化を検出し、隣接するVODピアに、それらが別の(より信頼性の高い)隣接物に頼る必要がある可能性があることを通知するために、1つ以上のメッセージを自動的に(或いは、もう1つの実施形態で、例えば「信頼レベル>5」など、所定の閾値を超えた場合に限って)送信することができる。   [352] Nevertheless, as noted above, failures of other devices (VOD peers, Internet routers, Internet hosts, etc.) may possibly affect the level of service. For example, if the trust level of VOD peer 1510a is changed from “5” to “6” (less reliable) as a result of a periodic ping test failure or other test from dynamic network monitoring 1525. Assume. The cluster controller in VOD peer 1510a detects this change in trust level and informs neighboring VOD peers that they may need to rely on another (more reliable) neighbor. Thus, one or more messages can be sent automatically (or in another embodiment, only if a predetermined threshold is exceeded, eg, “trust level> 5”).

[353]一実施形態で、これは、更新されたアライブリストの日常の交換(周期的に実行され、及び/又は信頼レベルの変化によって起動される)によってより包括的に達成することができる。VODピア1510は、今や、VODピア1510aではなく、もう1つの信頼レベル「5」の隣接物(又はより信頼性の高い隣接物)に頼る(例えば、後続要求に関して)ことを知ることができ、これによって、そのような後続要求のNQoSを改善することができる。   [353] In one embodiment, this can be achieved more comprehensively by daily exchange of updated alive lists (performed periodically and / or triggered by a change in trust level). VOD peer 1510 can now know to rely on another trust level “5” neighbor (or a more reliable neighbor) rather than VOD peer 1510a (eg, for subsequent requests), This can improve the NQoS of such subsequent requests.

[354]一実施形態で、アライブリストの周期的更新が実行され、より信頼性の低いVODピアは、より信頼性の高いVODピア(例えば、1時間ごとに1回)より相対的に高い頻度で(例えば、1分ごとに1回)そのような更新を実行する。VODピアのアライブリストを自動的に更新する(分散された形で)この日常の周期的プロセスは、VODピアがNQoSを改善するための変化をもたらすことを可能にするのに必要なネットワークトラフィックの量を大幅に減らす(すなわち、VODピアが、この「分散ブロードキャスト」機構を介して動的ネットワーク変化を効率的に知らされるので)。   [354] In one embodiment, periodic updates of the alive list are performed, and less reliable VOD peers are relatively more frequent than more reliable VOD peers (eg, once every hour). (Eg, once every minute) to perform such an update. This routine periodic process (in a distributed manner) that automatically updates the alive list of VOD peers is necessary to allow the VOD peers to bring about changes to improve NQoS. Significantly reduce the amount (ie, because VOD peers are effectively informed of dynamic network changes via this “distributed broadcast” mechanism).

[355]動的ネットワーク監視1525の結果として行われる、VODピア属性及びネットワーク属性に対する変更を、しばしば、互い相互に関係付けることができることにも留意されたい。例えば、上の特定の例で述べた信頼レベル変更1536が、パッケージ分布変更1538を起動することもできる。例えば、VODピア1510aの信頼レベルが「5」から「6」に変化する時に、そのような変化をも、一実施形態で、クラスタを管理するVODピアによって検出することができる(例えば、やはり周期的に又は信頼レベルのこの変化によって起動されるのいずれかの、アライブリストの分散更新を介して)。その結果、VODピア1510aに現在格納されているパッケージのグループ(又はそのサブセット)の追加コピーを、再展開することができる。例えば、もう1つのVODピア(例えば、「5」の信頼レベルを有するVODピア)を、パッケージのそのようなグループのコピーを受け取るために選択することができる。一実施形態で、これは、その「置換」VODピアに、そのようなコピーを入手するためにVODピア1510aと直接に通信させることによって達成することができる(しかし、他の実施形態では、より信頼性の高いVODピアに頼ることができ、或いは、おそらくはオリジナルの公開するサーバに連絡する)。どの場合でも、トラッキングファイル及びトラッキングインデックスが、それに従って更新される(上で述べたように)。   [355] It should also be noted that changes to VOD peer attributes and network attributes made as a result of dynamic network monitoring 1525 can often be related to each other. For example, the trust level change 1536 described in the specific example above may trigger the package distribution change 1538. For example, when the trust level of VOD peer 1510a changes from “5” to “6”, such a change can also be detected by the VOD peer managing the cluster in one embodiment (eg, also periodic Either via a distributed update of the alive list, either automatically or triggered by this change in trust level). As a result, additional copies of the group of packages (or a subset thereof) currently stored on the VOD peer 1510a can be redeployed. For example, another VOD peer (eg, a VOD peer with a trust level of “5”) can be selected to receive a copy of such a group of packages. In one embodiment, this can be achieved by having its “replacement” VOD peer communicate directly with VOD peer 1510a to obtain such a copy (but in other embodiments, more You can rely on a reliable VOD peer, or perhaps contact the original public server). In any case, the tracking file and tracking index are updated accordingly (as described above).

[356]パッケージ分布変更1538全般に関して、これらを、さまざまな異なるシナリオで実行することができる。例えば、相対的に信頼性の高いVODピアが、そのクラスタ内の要求を管理する責任を負うものとすることができる(一実施形態で、そのクラスタコントローラを介して)。特定のコンテンツオブジェクトに関する要求を検出した時に(例えば、上で述べた分散メッセージを介して)、そのVODピアは、動的ネットワーク監視結果データベース1532を更新し、事前定義の閾値、例えば、特定の時間間隔内の同一コンテンツオブジェクトに関する要求の最大個数を超えたことを通知することができる。   [356] With respect to package distribution changes 1538 in general, these can be performed in a variety of different scenarios. For example, a relatively reliable VOD peer may be responsible for managing requests in the cluster (in one embodiment, through the cluster controller). When it detects a request for a particular content object (eg, via the distributed message described above), its VOD peer updates the dynamic network monitoring results database 1532 to a predefined threshold, eg, a particular time. It can be notified that the maximum number of requests for the same content object within the interval has been exceeded.

[357]その結果、この「マネージャ」VODピアは、一実施形態で、「フィーダ」VODピアのうちの1つ(上で述べた図14のVODピア1420など)に連絡することができる。この「フィーダ」VODピアは、要求元VODピアをトラッキングファイルに追加させる(すなわち、要求元VODピアを将来の「フィーダ」VODピアに変換する)。もう1つの実施形態では、VODピア1420は、実質的に、パブリッシャになり、コンテンツオブジェクトの追加コピーをクラスタ内で公開(プッシュ)させる(パブリケーションプロセス全般に関して上で説明したように)。   [357] As a result, this “manager” VOD peer may in one embodiment contact one of the “feeder” VOD peers (such as the VOD peer 1420 of FIG. 14 described above). This “feeder” VOD peer adds the requesting VOD peer to the tracking file (ie, converts the requesting VOD peer to a future “feeder” VOD peer). In another embodiment, the VOD peer 1420 effectively becomes a publisher and publishes (pushes) additional copies of the content object within the cluster (as described above with respect to the overall publication process).

[358]したがって、NQoSは、本発明のこの「分散閉ループフィードバック」システム1500の結果として影響され(すなわち、QoSが、効果的にVODネットワークに組み込まれ)る。ここで、ネットワーク属性及びVOD挙動の動的に監視される変化が、これらのVODピア属性及びネットワーク属性に対する変更並びにVODネットワーク全体でのコンテンツオブジェクトの展開の変更の「フィードバック」を起動する。したがって、VODピアは、すべての要求に先立って、そのVODピアに特定のコンテンツオブジェクト(その隣接するVODピアの間でパッケージで分散されている)をある所定の時間以内に配信するネットワークの能力を識別することができる。   [358] Thus, NQoS is affected as a result of this “distributed closed loop feedback” system 1500 of the present invention (ie, QoS is effectively incorporated into the VOD network). Here, dynamically monitored changes in network attributes and VOD behavior trigger “feedback” of changes to these VOD peer attributes and network attributes as well as changes in the deployment of content objects across the VOD network. Thus, a VOD peer has the ability of the network to deliver a specific content object (distributed in a package among its neighboring VOD peers) to its VOD peer within a predetermined time prior to every request. Can be identified.

[359]VODピアのクラスタが、コンテンツをそのコンテンツのコンシューマの「近くに」配置することを可能にするインフラストラクチャを提供することによってNQoSを容易にすることにも留意されたい。上で注記したように、クラスタは、当初は既存インターネットインフラストラクチャに基づく(例えば、標準的なIPロケーションサービスによって提供されるものに基づき、部分的にはIPアドレスの類似性に基づく)が、その後、実際のネットワークトラフィック及び挙動トラフィックを反映するように動的に更新される。このインフラストラクチャは、コンテンツオブジェクトを隣接するVODピアのグループの中で分散させ、その後、ネットワークが進化する時にその「近さ」を維持するように動的に再展開することを可能にする(変化が、例えばデバイス障害及びネットワーク輻輳など、性質において「包括的」である、又は例えばピーク時の一部の又はすべてのコンテンツに関する要求の増加など、性質において挙動的であるのいずれであれ)。   [359] It should also be noted that a cluster of VOD peers facilitates NQoS by providing an infrastructure that allows content to be placed “close to” consumers of that content. As noted above, the cluster is initially based on the existing Internet infrastructure (eg, based on that provided by the standard IP location service, and in part based on IP address similarity), but then , Dynamically updated to reflect actual network traffic and behavioral traffic. This infrastructure allows content objects to be distributed among groups of adjacent VOD peers and then dynamically redeployed to maintain their “closeness” as the network evolves (changes). Either “inclusive” in nature, such as device failure and network congestion, or behavioral in nature, eg, increased demand for some or all content during peak hours).

[360]理由にかかわりなく、本発明のVODネットワーク内のクラスタの構成は、経時的に進化する。図16a〜16dに、異なる包括的ネットワークシナリオ及び挙動シナリオから生じる可能性があるVODピアのクラスタ(信頼レベルによってグループ化される)の4つの異なる一般的なパターン又は構成の実施形態を示す。   [360] Regardless of the reason, the composition of clusters within the VOD network of the present invention evolves over time. Figures 16a-16d illustrate four different general pattern or configuration embodiments of clusters of VOD peers (grouped by trust level) that may result from different generic network and behavior scenarios.

[361]図16aは、「円錐」パターン1600を示す。「円錐」パターン1600は、一般的なシナリオになる可能性が高いものを反映する。そのシナリオでは、クラスタ内の相対的に少数のVODピアが、非常に高く信頼されたVODピア1602(例えば、信頼レベル「2」)であり、クラスタ内の徐々に多くなるより信頼性の低いVODピアが、見つかり、最も信頼性の低いVODピア1604(例えば、信頼レベル「10」)が、このクラスタ内のこれらの「信頼レベルグループ」のうちで最も多数である。   FIG. 16 a shows a “cone” pattern 1600. The “cone” pattern 1600 reflects what is likely to be a general scenario. In that scenario, a relatively small number of VOD peers in the cluster are very highly trusted VOD peers 1602 (eg, trust level “2”), and increasingly less reliable VODs in the cluster. Peers are found and the least reliable VOD peer 1604 (eg, trust level “10”) is the most numerous of these “trust level groups” in this cluster.

[362]上で類似する図12に関して注記したように、信頼レベルのこの相対的に自然な分布は、主にインターネットの既存インフラストラクチャに起因して存在するが、コンテンツオブジェクトパッケージを相対的な近接又は互いからのインターネット距離に基づいて格納できるVODピアのクラスタ(及びサブクラスタ)を形成する機構を提供するために、本発明において活用することができる。   [362] As noted above with respect to FIG. 12, similar to this, this relatively natural distribution of trust levels exists primarily due to the existing infrastructure of the Internet, but makes the content object package a relative proximity. Alternatively, it can be leveraged in the present invention to provide a mechanism for forming clusters (and sub-clusters) of VOD peers that can be stored based on internet distance from each other.

[363]さらに、VODピアの個数のその相対的な「信頼のレベル」に対するこの逆相関は、インターネット「コア」から遠いが互いに相対的に近い多数のVODピア(例えば、最も信頼性の低いVODピア1604)のクラスタへのグループ化を容易にする。その結果、図16aのVODピアは、インターネットコアからのインターネット距離にもかかわらず、共通して、互いへの相対的に近いインターネット距離を共有する。   [363] In addition, this inverse correlation of the number of VOD peers to their relative “trust level” indicates that a number of VOD peers (eg, the least reliable VOD) that are far from the Internet “core” but relatively close to each other. Facilitates grouping of peers 1604) into clusters. As a result, the VOD peers of FIG. 16a commonly share relatively close internet distances to each other despite the internet distance from the internet core.

[364]それでも、多数の非常に高くは信頼されないVODピアの存在は、残念ながら現実的ではあるが、必ずしも望ましくはない。しかし、本発明に照らすと、この短所を、コンテンツオブジェクトの相対的により多くのコピーをこの多数の相対的に信頼性の低いVODピアにプッシュすることと、この「平衡状態」の管理のより多くを相対的に信頼性の高いVODピアに委任することとによって相殺することができる。   [364] Nevertheless, the existence of a large number of very highly unreliable VOD peers is unfortunately realistic but not always desirable. However, in the light of the present invention, this shortcoming is due to pushing more relatively copies of the content object to this large number of relatively unreliable VOD peers and more of this “equilibrium” management. Can be offset by delegating to a relatively reliable VOD peer.

[365]図16bに移ると、この「円柱」パターン1610は、クラスタが各信頼レベルでほぼ同一個数のVODピアを含むシナリオを反映する。インターネットの既存インフラストラクチャを与えられて、そのようなシナリオが自然に発生する可能性が高いかどうかは不明瞭である。このシナリオは、最も信頼性の低いVODピア1614(例えば、信頼レベル「10」)の、図16aに存在したものほど高い集中がないという点で、望ましくないものではないが、それでも、多数の相対的に信頼性の低いVODピアがあるという点で、それでも多少問題がある。その一方で、図16aに存在したものより高い、最も信頼性の高いVODピア1612(例えば、信頼レベル「2」)並びに相対的により信頼性の高いVODピアの集中がある。   [365] Turning to FIG. 16b, this “cylindrical” pattern 1610 reflects a scenario where the cluster includes approximately the same number of VOD peers at each confidence level. Given the existing infrastructure of the Internet, it is unclear whether such a scenario is likely to occur naturally. This scenario is not desirable in that it is less concentrated in the least reliable VOD peer 1614 (eg, trust level “10”) as was present in FIG. Still, there are some problems in that there are VOD peers that are unreliable. On the other hand, there is a concentration of the most reliable VOD peers 1612 (eg, trust level “2”) as well as relatively more reliable VOD peers than those present in FIG. 16a.

[366]しかし、多数の非常に信頼性の高いVODピアを有することは、望ましくないものではないが、多数のより信頼性の低いVODピアを十分には相殺しない場合がある。言い換えると、コンテンツを、そのコンテンツを消費する多数のより信頼性の低いVODピアの「近くに」プッシュする必要が、依然としてある。多数の非常に信頼性の高いVODピアが存在するという事実は、コンテンツオブジェクトのより多くのコピーをこれらの相対的に多数のより信頼性の低いVODピアに下にプッシュすることを必要とする。   [366] However, having a large number of very reliable VOD peers is undesirable, but may not fully offset a large number of less reliable VOD peers. In other words, there is still a need to push content “close” to a number of less reliable VOD peers that consume that content. The fact that there are a large number of very reliable VOD peers requires pushing more copies of the content object down to these relatively large numbers of less reliable VOD peers.

[367]図16cに移ると、この「球」パターン1620は、シナリオを反映する。そのシナリオにおいて、大多数のVODピアが適度な信頼レベル(例えば、信頼レベル「4」から「8」)を有し、相対的に少数のVODピアが非常に高く信頼され又は非常に低く信頼され、最も少数のVODピアが、最も信頼性の高いVODピア1622又は最も信頼性の低いVODピア1624のいずれかである。多数のそうでなければ信頼性の低いVODピアが相対的に非常に信頼性の高いようになることを可能にするある外部機構(例えば、家庭への光ファイバ回線のかなりの増加)なしで、このシナリオが自然に発生する可能性が非常に高いかどうかは、やはり不明瞭である。   [367] Turning to FIG. 16c, this "sphere" pattern 1620 reflects the scenario. In that scenario, the majority of VOD peers have a reasonable level of trust (eg trust levels “4” to “8”) and a relatively small number of VOD peers are either very highly trusted or very low trusted. , The fewest VOD peers are either the most reliable VOD peer 1622 or the least reliable VOD peer 1624. Without some external mechanism (eg, a significant increase in fiber optic lines to the home) that allows a large number of otherwise unreliable VOD peers to become relatively very reliable, It is still unclear whether this scenario is very likely to occur naturally.

[368]それでも、このシナリオは、NQoSに関して(及びQoS全般に関してさえ)極端に望ましいシナリオである。コピーをこれらの多数の適度に信頼されるVODピアにプッシュすることは、より少数のコピーが必要になるならば(これらのVODピアは一般により信頼性の高いので)、より効率的になるはずである。さらに、より高い全体的な信頼性は、NQoSを維持するためのより少ない調整を必要とするはずである。   [368] Nevertheless, this scenario is an extremely desirable scenario for NQoS (and even for QoS in general). Pushing copies to these many reasonably trusted VOD peers should be more efficient if fewer copies are needed (since these VOD peers are generally more reliable) It is. Moreover, higher overall reliability should require less adjustment to maintain NQoS.

[369]最後に、図16dの「多角形」パターン1630は、クラスタ内に、VODピアの個数とその相対的な「信頼のレベル」との間に実質的に相関がないシナリオを反映する。信頼レベルの間の分布は、本質的にランダムである。また、このシナリオが、自然に或いは誰かが考案する可能性が高いいずれかの外部機構を介して存在する可能性は、低いと思われる。   [369] Finally, the “polygon” pattern 1630 of FIG. 16d reflects a scenario in the cluster where there is substantially no correlation between the number of VOD peers and their relative “level of trust”. The distribution between confidence levels is inherently random. Also, it is unlikely that this scenario exists either naturally or through any external mechanism that is likely to be devised by someone.

[370]それでも、本発明は、図16aに示されたはるかに可能性が高いシナリオと少なくとも同程度に効果的な、このシナリオに対する解決策を提供する。単純に言えば、最も信頼性の低い1634「問題」VODピアのより低い集中がある。さらに、重要性はより低いが、最も信頼されるVODピア1632のより高い集中がある。コンテンツオブジェクトのより多くのコピーをこれらの「問題」VODピアにプッシュすることを含む、同一の相殺機構は、他のランダムな信頼レベルの多数のVODピアの「ポケット」にもかかわらず、NQoSに影響するという同一の利益を有するはずである。
III.宣伝コンテンツの一体化
A.宣伝挿入アーキテクチャ及び特徴
[370] Nevertheless, the present invention provides a solution to this scenario that is at least as effective as the much more likely scenario shown in Figure 16a. Simply put, there is a lower concentration of the least reliable 1634 “problem” VOD peers. Furthermore, there is a higher concentration of the most trusted VOD peer 1632, though less important. The same cancellation mechanism, which involves pushing more copies of the content object to these “problem” VOD peers, is in NQoS despite the “pocket” of multiple VOD peers of other random trust levels. Should have the same benefit of affecting.
III. Integration of advertising content Advertising insertion architecture and features

[371]VODシステムに照らしてNQoSをもたらす本発明のさまざまな実施形態の主要な特徴を説明したので、これから、コンテキストオブジェクトの1つの特殊なタイプすなわち宣伝に注意を向ける。宣伝は、一実施形態で、特殊なタイプのコンテンツオブジェクトである。宣伝には、テキスト、イメージ、オーディオ、ビデオ、並びに聴き及び/又は表示することができるメディア要素の実質的にすべての組合せを含めることができる。   [371] Having described the main features of the various embodiments of the present invention that provide NQoS in the context of the VOD system, attention is now directed to one particular type of context object, the advertisement. A promotion is a special type of content object in one embodiment. Promotions can include text, images, audio, video, and virtually any combination of media elements that can be listened to and / or displayed.

[372]1つの点で、宣伝は、他のコンテンツオブジェクトとほとんど同一の形で配信されるという点で、単にもう1つのコンテンツオブジェクトである。宣伝は、コンテンツオブジェクトパッケージに分割され、ネットワークのクラスタ内及びクラスタにまたがってVODピアに分散された形でプッシュされ、動的に監視されるネットワーク属性及び挙動属性に基づいて再展開され、その構成要素パッケージが格納された複数のVODピアから分散された形でプルされる。   [372] In one respect, a promotion is just another content object in that it is delivered in much the same way as other content objects. Promotions are split into content object packages, pushed in VOD peers within and across clusters of networks, redeployed based on dynamically monitored network and behavior attributes, and their composition It is pulled in a distributed manner from a plurality of VOD peers in which element packages are stored.

[373]しかしながら、もう1つの点で、宣伝は、他のコンテンツオブジェクトの中及びそれらの間で並びに本発明のVODシステムのユーザインターフェースの他の態様の中で表示できるという点で、特殊なタイプのコンテンツオブジェクトである。宣伝は、通常、他のコンテンツオブジェクトのようにVODピアユーザによって要求されるのではないという点でも特殊である。或いは、宣伝は、宣伝のパブリッシャによって示されるパラメータに従って、本発明のVODシステムによって課せられるルールに従って(一実施形態で、別個のサーバ又はVODサポートサーバとすることもできる「宣伝サーバ」を介して)表示される。   [373] However, in another respect, promotions can be displayed in and between other content objects and in other aspects of the user interface of the VOD system of the present invention. Is a content object. Promotions are also special in that they are not usually required by VOD peer users like other content objects. Alternatively, the promotion is in accordance with the parameters imposed by the publisher of the promotion, according to the rules imposed by the VOD system of the present invention (in one embodiment, via a "promotion server" which can be a separate server or a VOD support server). Is displayed.

[374]図17に、宣伝挿入機構1700のブロック図実施形態を示す。宣伝挿入機構1700は、他のコンテンツオブジェクトの中及びそれらの間並びに本発明のVODシステムのユーザインターフェース内にコンテンツオブジェクトとして宣伝を挿入する。宣伝パブリッシャ1710は、一実施形態で、宣伝1715などの「宣伝する」タイプのコンテンツオブジェクトの公開するサーバでもあるVODピアである。   [374] FIG. 17 illustrates a block diagram embodiment of an advertisement insertion mechanism 1700. As shown in FIG. The advertisement insertion mechanism 1700 inserts advertisements as content objects in and between other content objects and within the user interface of the VOD system of the present invention. Promotion publisher 1710 is a VOD peer that, in one embodiment, is also a server that publishes “advertise” type content objects, such as promotion 1715.

[375]一実施形態で、宣伝1715を、上で注記したように、ターゲットコンテンツオブジェクト1722などのコンテンツオブジェクトの中及びそれらの間を含むさまざまな異なる「ターゲット位置」1720に挿入することができる。さらに、宣伝1715を、一実施形態で、本発明のVODシステムのユーザインターフェースを介してVODピアユーザからアクセス可能な永久的に動作するチャネルであるバーカー(BARKER)チャネル1724に挿入することができる。最後に、宣伝1715を、ターゲットGUI領域1726すなわち、システムの状況に応じてユーザのディスプレイに現れるユーザインターフェースのさまざまな態様に挿入することができる。例えば、一実施形態で、「VODポータル」チャネルが、前の週に見られた宣伝を含み、ユーザが、その、前の週に見られた宣伝をブラウズするか検索し、その後、再生することを(商取引の機会及び/又は追加情報を含むサイトへのリンクをクリックすることも)可能にする。宣伝1715をターゲット位置1720に挿入するのに使用される方法のさまざまな実施形態を、下でより詳細に説明する。   [375] In one embodiment, the advertisement 1715 can be inserted into a variety of different “target locations” 1720 including within and between content objects, such as the target content object 1722, as noted above. Further, advertisements 1715 can be inserted in one embodiment into a BARKER channel 1724, which is a permanently operating channel accessible from VOD peer users via the user interface of the VOD system of the present invention. Finally, advertisements 1715 can be inserted into various aspects of the user interface that appear on the target GUI area 1726, ie, the user's display, depending on the status of the system. For example, in one embodiment, the “VOD Portal” channel includes promotions that were seen in the previous week, and the user browses or searches for the promotions that were seen in the previous week, and then plays them. (Also by clicking on a link to a site containing commercial opportunities and / or additional information). Various embodiments of the method used to insert the advertisement 1715 into the target location 1720 are described in more detail below.

[376]一実施形態で、宣伝パブリッシャ1710は、そのコンテンツオブジェクト(宣伝1715)を、上で説明したように、他の公開するサーバと同様に公開する。さらに、宣伝パブリッシャ1710は、宣伝パブリッシングプロセスを単純にするために、「宣伝挿入ツール」(すべての公開するサーバから使用可能なVODパブリッシングソフトウェア内)に頼ることができる。もう1つの実施形態では、宣伝パブリッシャ1710は、宣伝1715がその下で本発明のVODシステムのユーザに表示されるパラメータの指定を容易にするために、さまざまなシステムリソース(システムデータベース1730及びシステムサーバ1740を含む)に直接又は間接にアクセスすることもできる。宣伝1715を表示するルールは、一実施形態で、宣伝パブリッシャ1710によって指定される(直接に指定されるか、宣伝挿入ツールを介して間接的に指定される)パラメータに従って、宣伝サーバ1750によって決定され、課せられる。   [376] In one embodiment, the advertising publisher 1710 publishes its content object (advertisement 1715) in the same manner as other publishing servers, as described above. Further, the advertising publisher 1710 can rely on an “advertisement insertion tool” (in VOD publishing software available from all publishing servers) to simplify the advertising publishing process. In another embodiment, the promotion publisher 1710 may use various system resources (system database 1730 and system server) to facilitate the specification of parameters under which the advertisement 1715 is displayed to users of the VOD system of the present invention. 1740) may be accessed directly or indirectly. The rules for displaying the advertisement 1715 are determined by the advertisement server 1750 according to parameters specified by the advertisement publisher 1710 (directly specified or indirectly through the advertisement insertion tool) in one embodiment. Imposed.

[377]一実施形態で、宣伝パブリッシャ1710は、システムデータベース1730にアクセスして、それが宣伝サーバ1750に指定するパラメータに影響する情報を入手する。例えば、コンテンツオブジェクトメタデータ1732データベースは、題名、ジャンル、説明などの各コンテンツオブジェクトに関係する情報と、一実施形態で、コンテンツオブジェクトに具体的に関係するさまざまな他のメタデータ(テキスト、イメージ、ビデオ、及び他のメディアの形の)とに関する情報を含む。宣伝パブリッシャ1710は、例えば、「コメディ」など、ある判断基準を満足するコンテンツオブジェクト内に宣伝1715を表示することを望む場合がある。   [377] In one embodiment, the advertising publisher 1710 accesses the system database 1730 to obtain information that affects the parameters that it specifies to the advertising server 1750. For example, the content object metadata 1732 database includes information related to each content object, such as title, genre, and description, and in one embodiment, various other metadata specifically related to the content object (text, image, Information in the form of video and other media. Promotion publisher 1710 may desire to display promotion 1715 in a content object that satisfies certain criteria, such as “comedy”, for example.

[378]宣伝パブリッシャ1710は、宣伝サーバ1750に直接にパラメータなどの判断基準を指定するか、そのような判断基準に基づいてコンテンツオブジェクトメタデータ1732データベースを検索し、その後、同一のもの又はおそらくは多少は特定のもの(例えば、特定のコンテンツオブジェクトのCRID)とすることができるパラメータを宣伝サーバ1750に指定することができる。宣伝パブリッシャ1710は、コンテンツオブジェクトメタデータ1732データベースの検索の結果(又はそのオリジナルの判断基準)を、他のシステムデータベース1730からのデータなどの他の情報と組み合わせることもできる。   [378] The advertising publisher 1710 specifies criteria such as parameters directly to the advertising server 1750 or searches the content object metadata 1732 database based on such criteria, and then the same or possibly some Can specify to the advertising server 1750 a parameter that can be specific (eg, the CRID of a specific content object). The advertising publisher 1710 can also combine the search results of the content object metadata 1732 database (or its original criteria) with other information such as data from other system databases 1730.

[379]例えば、宣伝パブリッシャ1710は、ユーザプロファイルデータ1734データベースにアクセスして、名前、性別、住所、年齢、職業、婚姻関係の有無、及びユーザ(及びおそらくはユーザの家族)に固有のさまざまな他の関連データなど、VODピアユーザに関する情報を入手することができる。宣伝パブリッシャ1710は、コンテンツオブジェクトメタデータ1732データベースから「コメディ」を検索し、ユーザプロファイルデータ1734データベースから20歳と35歳との間の年齢のユーザを検索し、おそらくは「動的挙動及び他のデータ」1736データベースから毎月少なくとも5本の映画を観るユーザを検索することができる(VODシステム内のユーザの以前の挙動に基づく形の宣伝の「挙動ターゲティング」を可能にする)。次に、宣伝パブリッシャ1710は、そのような検索の組み合わされた結果をパラメータとして宣伝サーバ1750に提示することができる。   [379] For example, the advertising publisher 1710 may access the user profile data 1734 database to name, gender, address, age, occupation, marital status, and various others specific to the user (and possibly the user's family). Information about VOD peer users, such as related data, can be obtained. The advertising publisher 1710 searches the content object metadata 1732 database for “comedy”, searches the user profile data 1734 database for users between the ages of 20 and 35, and possibly “dynamic behavior and other data. “A user can watch at least 5 movies per month from the 1736 database (allowing“ behavioral targeting ”of advertisements in a form based on the user's previous behavior in the VOD system). The advertising publisher 1710 can then present the combined results of such searches to the advertising server 1750 as a parameter.

[380]宣伝1715のターゲティングを容易にする情報についてシステムデータベース1730に頼るほかに、宣伝パブリッシャ1710は、一実施形態で、この作業を援助するためにさまざまなシステムサーバ1740に頼ることもできる。例えば、上で注記したように、宣伝パブリッシャ1710は、宣伝1715(すべての他のコンテンツオブジェクトと同様に)を公開するほかに、宣伝サーバ1750にパラメータを提示することができ、宣伝サーバ1750は、それが実施するルールに従って適当な時に特定のVODピアの適当な位置での宣伝1715の表示を起動するために(宣伝1715は、通常は他のコンテンツオブジェクトのように「オンデマンドで」要求されるのではないので)、そのようなパラメータをそのようなルールに一体化する。   [380] In addition to relying on system database 1730 for information that facilitates targeting of advertisement 1715, advertisement publisher 1710 may also rely on various system servers 1740 to assist in this task in one embodiment. For example, as noted above, in addition to publishing the promotion 1715 (as with all other content objects), the promotion publisher 1710 can present parameters to the promotion server 1750, which (Promotion 1715 is usually required “on demand” like other content objects to trigger the display of promotion 1715 at the appropriate location of a particular VOD peer at the appropriate time according to the rules it enforces. So, such parameters are integrated into such rules.

[381]さらに、宣伝パブリッシャ1710は、宣伝1715の許可されない使用に対して保護するために、宣伝1715に対する「ディジタル著作権管理」(DRM)保護並びにユーザ認証及び他の関連するセキュリティ手段を実施するためにライセンスサーバ1742に頼ることができる(すべての他のパブリッシャも同様)。例えば、そのようなコンテンツの許可されないコピー及び配信に対する一般的な保護のほかに、ライセンスサーバ1742は、パブリッシャによって指定されたパラメータに従って、コンテンツオブジェクトの使用を制限するルール(例えば、限られた回数の再生を許可する)を実施することもできる。宣伝パブリッシャは、通常は、その宣伝の露出の制限に関心を持たない場合がある。例えば、ライセンスサーバ1742が、宣伝1715の無制限の回数の再生を許可するが、宣伝パブリッシャ1710は、すべての要求された再生について異なる宣伝(図示せず)(例えば、ユーザが再生を要求することによって関心を表したならば、おそらくは商取引ウェブサイトへのリンクを伴う、より「強引な販売」である宣伝)に置換することを要求することができる。   [381] In addition, promotional publisher 1710 implements "Digital Rights Management" (DRM) protection for promotional 1715 and user authentication and other related security measures to protect against unauthorized use of promotional 1715. Can rely on the license server 1742 to do this (as well as all other publishers). For example, in addition to general protection against unauthorized copying and distribution of such content, the license server 1742 may also use rules (eg, a limited number of times) to restrict the use of content objects according to parameters specified by the publisher. (Allow playback). Promotion publishers are usually not interested in limiting the exposure of their promotions. For example, the license server 1742 allows an unlimited number of playbacks of the advertisement 1715, but the advertisement publisher 1710 may have different advertisements (not shown) for all requested playbacks (eg, by the user requesting playback). If expressed interest, it may be required to be replaced by a more “forced sale” advertisement, possibly with a link to a commerce website.

[382]宣伝パブリッシャ1710は、例えばコンテンツオブジェクトメタデータデータベース1732へのアクセスを援助するためにメタデータサーバ1744に頼ることもできる。例えば、宣伝パブリッシャ1710がコンテンツオブジェクトメタデータデータベース1732自体に照会することを要求するのではなく、メタデータサーバ1744が、このデータへの間接アクセスを可能にする、より単純なより高水準のインターフェースを宣伝パブリッシャ1710に提供することができる。   [382] The advertising publisher 1710 may rely on the metadata server 1744 to assist in accessing the content object metadata database 1732, for example. For example, rather than requiring the advertising publisher 1710 to query the content object metadata database 1732 itself, the metadata server 1744 provides a simpler higher level interface that allows indirect access to this data. It can be provided to the advertising publisher 1710.

[383]さらに、宣伝パブリッシャ1710は、支払/請求サーバ1746に頼ることができる。支払/請求サーバ1746は、「ペイパービュー」(PPV)、サブスクリプション、プリペイドアクセス、無料及び有料の販売促進など、コンテンツオブジェクトに関するさまざまな「カスタマリレーションシップ管理」(CRM)モデルを提供する。そのような機能性の使用は、他のタイプのコンテンツオブジェクトのパブリッシャに関してより一般的に行われるが、宣伝パブリッシャ1710は、例えば宣伝1715がオプションの基礎で特定のPPV映画と共に表示される販売促進(例えば、ユーザが宣伝1715などの宣伝を見ることに合意する時に無料でPPV映画を受け取る場合)を起動するのに支払/請求サーバ1746を利用することができる。   [383] In addition, the advertising publisher 1710 can rely on the payment / billing server 1746. Payment / billing server 1746 provides various “customer relationship management” (CRM) models for content objects, such as “pay per view” (PPV), subscription, prepaid access, free and paid promotions. The use of such functionality is more common with respect to publishers of other types of content objects, but the promotion publisher 1710 may, for example, promote a promotion 1715 that is displayed with a particular PPV movie on an optional basis ( For example, the payment / billing server 1746 can be used to launch a PPV movie for free when the user agrees to view a promotion, such as a promotion 1715.

[384]レポートサーバ1748は、宣伝パブリッシャ1710にとって(並びに他のタイプのコンテンツオブジェクトのパブリッシャにとって)高い価値を有する可能性がある。レポートパラメータを指定することによって、宣伝パブリッシャ1710は、宣伝1715を含む、その宣伝の表示に関するユーザ挙動に関するさまざまな異なるタイプのレポートをレポートサーバ1748から受け取ることができる。例えば、そのようなレポートには、特定の日時に宣伝を見るユーザのプロファイル、彼らが見ていたコンテンツオブジェクト(又はコンテンツオブジェクトのタイプ)(ユーザがそのような集約情報の公開を許可すると仮定して)、及びさまざまな他の挙動情報(例えば、宣伝のクリックスルー統計、関連する購入など)に関する情報を含めることができる。   [384] The report server 1748 may have high value for the advertising publisher 1710 (as well as for publishers of other types of content objects). By specifying the report parameters, the advertising publisher 1710 can receive a variety of different types of reports from the report server 1748 regarding user behavior regarding the display of the advertisement, including the advertisement 1715. For example, such a report may include a profile of a user viewing a promotion at a specific date and time, the content object (or type of content object) they were viewing (the user is allowed to publish such aggregate information) ), And various other behavioral information (eg, click-through statistics for promotions, related purchases, etc.).

[385]最後に、宣伝パブリッシャ1710は、「直接購入」販売促進(例えば、商業ウェブサイトへの宣伝1715内のリンクを介する)、「ビデオ販売促進ウィンドウ」へのアクセス(例えば、他のおそらくは関連する宣伝と混ぜ合わされた)、「ビデオ内宣伝」(特定のビデオコンテンツに宣伝1715を挿入するのを容易にするための)、及び他の商取引の機会のホストを含む、宣伝1715に関係する商業販売促進を容易にするために商取引サーバ1749に頼ることができる。   [385] Finally, the promotional publisher 1710 can access a “direct purchase” promotion (eg, via a link in a promotion 1715 to a commercial website), a “video promotion window” (eg, other possibly relevant) Commercials related to Promotions 1715, including “In-Video Promotions” (to facilitate the insertion of Promotions 1715 into specific video content), and other commerce opportunities hosts A commercial transaction server 1749 can be relied upon to facilitate sales promotion.

[386]システムサーバ1740、システムデータベース1730、及びターゲット位置1720へのアクセスが、宣伝のパブリッシャに制限されないことに留意されたい。これらのリソースは、一実施形態で、公開するサーバから、及びはるかに制限され間接的な範囲でVODピア全般から(例えば、システムのユーザインターフェースを介してコンテンツオブジェクトに関する追加情報にアクセスする)中央でアクセス可能である。他のタイプのコンテンツオブジェクトのパブリッシャは、一実施形態で、彼ら自体のコンテンツオブジェクトと共にどの宣伝(又は宣伝のタイプ若しくは宣伝パブリッシャ)が見られるかを制限することもできる。例えば、家族向け映画のパブリッシャは、あるタイプの製品(例えば、たばこ又は酒)を含む宣伝を許可しない場合がある。或いは、家族向け映画のパブリッシャは、そのような製品を販売促進することがわかっている特定の宣伝パブリッシャを除外する場合がある。
B.宣伝挿入の実施態様
[386] Note that access to the system server 1740, the system database 1730, and the target location 1720 is not restricted to the publisher of the advertisement. These resources are centrally located in one embodiment, from the publishing server, and from the VOD peers in general to a much more limited and indirect range (eg, accessing additional information about the content object via the system user interface) Is accessible. Publishers of other types of content objects may also limit which promotions (or types of promotions or publishers) can be viewed with their own content objects in one embodiment. For example, a family movie publisher may not allow promotions involving certain types of products (eg, tobacco or alcohol). Alternatively, family movie publishers may exclude certain promotional publishers that are known to promote such products.
B. Implementation of advertisement insertion

[387]上で注記したように、宣伝パブリッシャの仕事を単純にするために、このシステムは(一実施形態で)、すべての公開するサーバから使用可能なVODパブリッシングソフトウェアの一部である「宣伝挿入ツール」を提供する。この宣伝挿入ツールは、宣伝パブリッシャがシステムサーバ1740、システムデータベース1730、及びターゲット位置1720と直接に通信する必要をなくすことを可能にするインターフェースを提供する。宣伝パブリッシャは、その代わりに、より高水準のインターフェースを利用して、その作業をより簡単に、宣伝のパブリケーションをより具体的にターゲットとする形で達成することができる。   [387] As noted above, in order to simplify the work of advertising publishers, this system (in one embodiment) is part of the VOD publishing software that is available from all public servers. "Insert tool" is provided. This advertisement insertion tool provides an interface that allows advertisement publishers to eliminate the need to communicate directly with system server 1740, system database 1730, and target location 1720. Instead, promotional publishers can take advantage of higher-level interfaces to accomplish their tasks more easily and more specifically targeting promotional publications.

[388]一実施形態で、宣伝挿入ツールは、単純化されたユーザインターフェースを提供する。このインタフェースは、宣伝パブリッシャが、パブリッシャの宣伝がターゲティングされ、VODピアユーザに提示される形を規定するパラメータを指定するために、ドロップダウンリストから事前定義の選択肢を選択することを可能にする。宣伝挿入ツールは、指定されたタイムスロット中に指定されたターゲットにされたプロファイルと合致するVODピア上で表示される宣伝パブリッシャの「宣伝パッケージ」から宣伝を選択する「プレイリスト」を生成する。   [388] In one embodiment, the promotional insertion tool provides a simplified user interface. This interface allows the promotion publisher to select a predefined choice from a drop-down list to specify parameters that define the way the publisher's promotion is targeted and presented to the VOD peer user. The advertisement insertion tool generates a “playlist” that selects advertisements from the advertisement publisher's “advertisement package” displayed on the VOD peer that matches the specified targeted profile during the specified time slot.

[389]宣伝は、通常、宣伝の残りの再生に先立つ(「先頭」)及びそれに続く(「末尾」)比較的短いシーケンスである「先頭」部分及び「末尾」部分と共に公開される。宣伝パブリッシャは、宣伝並びに所望の先頭部分及び末尾部分のIDを、宣伝持続時間(例えば、30秒)及び宣伝が挿入される所望のターゲット媒介と共に指定することができる。この所望のターゲット媒介は、一実施形態で、イベント(VODブラウザを伴う又は伴わない)、「バーカー」チャネル、VODメッセージングサービス(例えば、純粋にテキストの宣伝用)、「対話型宣伝」(例えば、追加情報、販売促進、特売などを含むサイトへのVODブラウザを介するリンクを含む)、並びに宣伝の「印刷」(VODシステムの外部)をも含めるオプションを含む。   [389] Promotions are usually published with a “leading” and “ending” part, which is a relatively short sequence (“start”) followed by (“end”) prior to the rest of the promotion being played. The promotion publisher can specify the promotion and the desired beginning and end IDs along with the promotion duration (eg, 30 seconds) and the desired target media into which the promotion is inserted. This desired target mediation may be, in one embodiment, an event (with or without a VOD browser), a “Barker” channel, a VOD messaging service (eg, for pure text promotion), “interactive advertising” (eg, Includes options to include additional information, promotions, special links, etc. via a VOD browser to the site), as well as promotional “printing” (outside of the VOD system).

[390]一実施形態で、基本的な宣伝タイプは、(1)単一宣伝 独立の宣伝イベント、(2)シリアル宣伝 1つ以上のイベントに挿入される5つまでの宣伝繰り返しのシーケンス、(3)タグ付き宣伝 異なる末尾シーケンスを有する宣伝(例えば、異なる地理的ゾーンのために宣伝を「ローカライズする」ため)、(4)平行宣伝 異なる末尾シーケンスを有する同一宣伝パブリッシャからの複数の異なる宣伝、及び(5)対話型宣伝リンク及び/又は他の形の「ユーザ応答」機能を有する、を含む。さらに、もう1つの実施形態で、そのような宣伝タイプを、組み合わせて提供することができる。   [390] In one embodiment, the basic promotion type is: (1) a single promotion independent promotion event, (2) a serial promotion, a sequence of up to five promotion repetitions inserted into one or more events, ( 3) Promotions with tagging Promotions with different end sequences (eg to “localize” promotions for different geographical zones), (4) Parallel promotions Multiple different promotions from the same promotion publisher with different end sequences, And (5) having interactive promotional links and / or other forms of “user response” functionality. Furthermore, in another embodiment, such promotional types can be provided in combination.

[391]シリアル宣伝は、宣伝パブリッシャが、経時的に宣伝(又は、一実施形態で、わずかに異なる宣伝)を繰り返すことによって、あるイベント全体(並びに複数のイベントにまたがって)関心を強めることを可能にする。異なる宣伝末尾は、例えばコンテストの詳細又は他の情報をシーケンスの終りに向かってアナウンスすることによって、関心を増分的に強めることができる。タグ付き宣伝は、ローカルオファーを可能にし、平行宣伝は、例えば、異なる宣伝末尾を使用して、ある製品系列を販売促進する宣伝を提供するという宣伝パブリッシャの望みを容易にする。対話型宣伝は、ユーザに増分式に情報を提供し、ユーザの関心に関する特定のターゲティングされたフィードバック(一実施形態で、宣伝パブリッシャの製品をさらに販売促進するために動的に利用することができる)を入手する追加の機会を提供する。   [391] Serial promotions increase the interest of an entire publisher (as well as multiple events) by repeating the promotion over time (or slightly different promotions in one embodiment) over time. to enable. Different promotional tails can be of incremental interest, for example by announcing contest details or other information towards the end of the sequence. Tagged promotions allow local offers, and parallel promotions facilitate the desire of advertising publishers to provide promotions that promote certain product lines, for example using different advertising tails. Interactive advertising provides information to the user incrementally and can be used dynamically to further promote the product of the advertising publisher in one embodiment (in one embodiment, specific targeted feedback about the user's interests). ) To provide additional opportunities to obtain.

[392]もう1つの実施形態では、ある形の「直接パブリッシング」を可能にすることができる。これは、コンテンツオブジェクト並びに宣伝を、通常はVODネットワークの一部でないハンドヘルドデバイス及び他のデバイスから公開する非専門家パブリッシャの能力を大幅に単純にする。例えば、傍流のスポーツに照らすと、そうでなければ膨大な宣伝予算を必要とする機会を提供するスポーツイベント(例えば、おそらくはローカル宣伝をも伴う競馬)をアップロード/公開することができる。同様に、小規模小売店が、その店からビデオ機能付きセル電話機を介して、宣伝と結合された、特定の製品の「スピークアンドセル(speak and sell)」販売促進を公開することができる。   [392] In another embodiment, some form of "direct publishing" can be enabled. This greatly simplifies the ability of non-professional publishers to publish content objects and promotions from handheld devices and other devices that are not normally part of the VOD network. For example, in the light of sidestream sports, sports events (e.g., possibly horse racing with local promotions) may be uploaded that provide opportunities that would otherwise require huge advertising budgets. Similarly, a small retail store can publish a “speak and sell” promotion of a specific product, combined with advertising from the store via a cell phone with video capabilities.

[393]宣伝挿入ツールによって利用されるターゲティング方法は、一実施形態で、VODピアユーザに関係するさまざまな統計(例えば、ユーザプロファイルデータ1734データベースに格納された)を用いる。そのような統計は、ユーザプロファイルのさまざまな態様に宣伝をターゲティングする機構を提供する。例えば、そのような統計に、ある時間間隔(例えば1週間)にわたって、ユーザの総数及びユーザあたりの見られたイベントの平均個数(地理的ゾーンにも分割される)を含めることができる。さらに、そのような統計に、性別のパーセンテージ(男性対女性)、年齢(例えば、18〜25、25〜54、55以上)、家計収入(例えば、5万ドル以上、7万5千ドル以上、10万ドル以上、15万ドル以上)、教育(例えば、大学卒、大学院修了)、婚姻関係の有無、子供、及び挙動VOD使用(例えば、消費者カテゴリ、前の週のシステム使用、最近30日間又はこれまでのオンラインショッピング習慣など)を含めることができる。   [393] The targeting method utilized by the promotional insertion tool, in one embodiment, uses various statistics related to VOD peer users (eg, stored in the user profile data 1734 database). Such statistics provide a mechanism for targeting promotions to various aspects of the user profile. For example, such statistics can include the total number of users and the average number of events seen per user (also divided by geographic zone) over a time interval (eg, a week). In addition, such statistics include gender percentage (male vs female), age (eg, 18-25, 25-54, over 55), household income (eg, over $ 50,000, over $ 75,000, $ 100,000 or more, $ 150,000 or more), education (eg, university graduate, graduate), marital status, children, and behavioral VOD usage (eg, consumer category, previous week system usage, last 30 days or Traditional online shopping habits).

[394]さらに、一実施形態で、「VODユーザプロファイルカテゴリ」が、ユーザプロファイルデータを組み合わせることによって定義される。例えば、「カップル」、「家族」、「独身」、及び「子供」を、固定された年齢範囲、国、地理的ゾーン、及び特定の関心領域に分割されたVODユーザプロファイルカテゴリとして定義することができる。さらに、宣伝パブリッシャは、その宣伝キャンペーンに関するある制約を指定することができる(例えば、開始日、停止日、有効日、地理的ゾーンに関する政府の制約、カテゴリ、時間数など)。   [394] Further, in one embodiment, a “VOD user profile category” is defined by combining user profile data. For example, defining “couples”, “family”, “single”, and “children” as VOD user profile categories divided into fixed age ranges, countries, geographic zones, and specific areas of interest. it can. In addition, the promotional publisher can specify certain constraints on the promotional campaign (eg, start date, stop date, effective date, government constraints on geographic zones, categories, hours, etc.).

[395]最後に、宣伝パブリッシャは、VODピアユーザの特定の組に彼らの宣伝をターゲティングするためにさまざまな人口統計情報から選択することができる。次に、そのような人口統計情報を上で述べた実際のVODピアユーザプロファイル統計と相互参照することができる(下で述べるように)。例えば、一実施形態で、次の人口統計カテゴリが含まれる:性別(男女)、年齢(18〜24、18〜34、18〜49、25〜34、25〜44、25〜54、45〜54、45〜64、21以上、25以上、35以上、45以上、55以上、65以上)、婚姻関係の有無(既婚、独身)、子供(はい/いいえ)、教育(高校、大学卒、大学院、大学卒以上)、職業(専門職/管理職、販売/小売業、秘書/事務、サービス/労働、学生、退職、自営)、収入(通貨タイプ、3万5千ドル以上、5万ドル以上、7万5千ドル以上、10万ドル以上、15万ドル以上)、地理的ゾーンなど。   [395] Finally, promotional publishers can select from a variety of demographic information to target their promotions to a particular set of VOD peer users. Such demographic information can then be cross-referenced (as described below) with the actual VOD peer user profile statistics described above. For example, in one embodiment, the following demographic categories are included: gender (male and female), age (18-24, 18-34, 18-49, 25-34, 25-44, 25-54, 45-54. 45-64, 21 or more, 25 or more, 35 or more, 45 or more, 55 or more, 65 or more), marital status (married, single), children (yes / no), education (high school, university graduate, graduate, university graduate) Above), occupation (profession / manager, sales / retail, secretary / office work, service / labor, student, retirement, self-employed), income (currency type, over $ 35,000, over $ 50,000, over 70,000) $ 5,000 or more, $ 100,000 or more, $ 150,000 or more), geographical zones, etc.

[396]宣伝がイベント内及びイベントの間(並びにバーカーチャネル内及び他のターゲット位置内)にどのように挿入されるかをよりよく理解するために、そのような宣伝に関連するメタデータを、これから説明する。一実施形態で、そのような宣伝メタデータは、「包括的宣伝メタデータ」(宣伝を記述する)、「イベント宣伝ハンドリングメタデータ」(イベント内に示される宣伝に関する制約を記述する)、「宣伝ターゲテッドユーザプロファイルメタデータ」(宣伝がターゲティングされるVODピアユーザプロファイルデータを記述する)、及び「宣伝挿入リストメタデータ」(宣伝が挿入されるイベント内のブロックを含む)のXMLタグを含む。   [396] To better understand how promotions are inserted within and between events (and within the Barker channel and other target locations), the metadata associated with such promotions is This will be described below. In one embodiment, such promotional metadata includes: “comprehensive promotional metadata” (describing promotions), “event promotional handling metadata” (describing constraints on promotions presented within events), “promotional XML tags for "targeted user profile metadata" (which describes the VOD peer user profile data to which the promotion is targeted) and "advertisement insertion list metadata" (including the block in the event where the promotion is inserted).

[397]一実施形態で、包括的宣伝メタデータは、各宣伝を記述するデータを格納するデータ構造を記述する次のタグを含む。
[397] In one embodiment, the generic promotion metadata includes the following tags that describe a data structure that stores data describing each promotion.

[398]イベント宣伝ハンドリングメタデータは、宣伝を挿入できるイベント内の位置を記述するデータ構造を記述する次のタグを含む。
[398] Event promotion handling metadata includes the following tags that describe a data structure that describes the location within the event where the promotion can be inserted.

[399]宣伝ターゲテッドユーザプロファイルメタデータは、宣伝がターゲティングされるユーザプロファイルを記述するデータ構造を記述する次のタグを含む。
[399] The promotion targeted user profile metadata includes the following tags that describe the data structure that describes the user profile to which the promotion is targeted.

[400]宣伝挿入リストメタデータは、宣伝を挿入できるイベント内の位置を記述するデータ構造を記述する次のタグを含む。
[400] The advertisement insertion list metadata includes the following tags that describe a data structure that describes the location within the event where the advertisement can be inserted.

[401]一実施形態で、宣伝パブリッシャは、イベント並びにシステムのユーザインターフェースの他の態様の「スポンサーになる」ことができる。例えば、「スポンサー付きテーマ」に、宣伝パブリッシャによって作成され、VODピアユーザによる選択に使用可能な商用「スキン」を含めることができる。このスキンは、ユーザがアクセス可能なユーザインターフェース要素の実質的にすべてを包含することができる。見る人は、これらのスキンをダウンロードすることができ、そのスキンは、その後、ユーザインターフェースのメインメニューに現れる。スキンには、背景イメージ、アイコン、ロゴ、及び宣伝パブリッシャのロゴ(又は他の形の表現若しくはスタイル)が一体化されている他の要素(例えば、再生ボタン及び停止ボタンなど、既存システム要素を含む)を含めることができる。   [401] In one embodiment, a promotional publisher can “sponsor” an event as well as other aspects of the user interface of the system. For example, a “sponsored theme” can include a commercial “skin” created by an advertising publisher and available for selection by VOD peer users. This skin can encompass substantially all of the user interface elements accessible to the user. A viewer can download these skins, which then appear in the main menu of the user interface. Skins include existing system elements such as background images, icons, logos, and other elements that integrate the advertising publisher's logo (or other form of representation or style) (eg, play and stop buttons) ) Can be included.

[402]そのようなスポンサー付きテーマは、宣伝パブリッシャによって提供される製品を販売促進する追加情報をユーザが入手することを可能にする追加の対話型要素を提供することができる。バーカーチャネルに販売促進を含めるほかに、ゲーム、コンテスト、及びくじなどの他の販売促進を提供することもできる。   [402] Such sponsored themes can provide additional interactive elements that allow users to obtain additional information that promotes products offered by promotional publishers. In addition to including promotions in the Barker channel, other promotions such as games, contests, and lotteries can also be provided.

[403]一実施形態で「スポンサー付きイベント」は、宣伝パブリッシャが、例えば、その宣伝パブリッシャの宣伝を見ることと引き換えにイベントの無料ビューイング(例えば、別のパブリッシャによって公開される場合であっても、やがて公開される人気のある映画)を提供することを可能にする。例えば、そうでなければVODネットワーク上でPPV映画としてのみ入手可能なコンテンツオブジェクトを、特定の宣伝パブリッシャからスポンサー付きイベントとして提供することもでき、これによって、ユーザが、ユーザ自身が販売促進を甘受することと引き換えにそのイベントを無料で見ることが可能になる。一実施形態で、この販売促進には、オンスクリーンロゴ、「インフォテインメント」材料の挿入、ユーザへの対話型の質問、さらなる販売促進又は商取引の機会へのリンク、及びおそらくはユーザ活動を監視し、フォローアップ宣伝ビューイング、メールなどを受けることへの合意を含めることができる。   [403] In one embodiment, a "sponsored event" is a case where a promotional publisher is exposed to a free viewing of an event (eg, published by another publisher, for example, in exchange for viewing the promotion of that promotional publisher). It is possible to provide popular movies that will be released soon. For example, a content object that would otherwise be available only as a PPV movie on the VOD network could be offered as a sponsored event from a particular advertising publisher, allowing the user to accept the promotion himself. In exchange for that, the event can be viewed free of charge. In one embodiment, the promotion includes an on-screen logo, insertion of “infotainment” material, interactive questions to the user, links to further promotions or business opportunities, and possibly user activity. Agreement to receive follow-up advertising viewing, emails, etc. can be included.

[404]スポンサー付きイベントに加えて、宣伝パブリッシャは、イベントのグループ(例えば、宣伝パブリッシャの製品又はサービスと共通してある関係を共有する)が、宣伝又はおそらくはスキンをも含んだ単一の基準点(例えば、チャネルロゴ)から入手可能である、「ブランド付きチャネル」をも生成することができる。   [404] In addition to sponsored events, an advertising publisher is a single criterion in which a group of events (eg, sharing a relationship in common with an advertising publisher's product or service) also includes advertising or possibly skins. A “branded channel” can also be generated, available from a point (eg, a channel logo).

[405]他の実施形態では、ユーザが宣伝及び関連する販売促進イベント(例えば、それ以外の形でユーザが関心を持つ可能性がある製品又はサービスの宣伝)を甘受することによって経時的に「ポイント」を増やすことができる、より長期の宣伝キャンペーンを含む、追加の販売促進が可能である。そのようなポイントは、VODネットワーク上での無料ビューイング並びに賞品、値引きなどに関して考えることができる。そのような販売促進は、宣伝パブリッシャに、彼らの製品及びサービスを販売促進する非常にターゲティングされた機会を提供すると同時に、ユーザが宣伝及び他の販売促進を甘受するかどうかを「選択する」ことを可能にする。   [405] In other embodiments, over time, the user may accept advertisements and related promotional events (eg, advertisements for products or services that the user may otherwise be interested in). Additional promotions are possible, including longer-term promotional campaigns that can increase “points”. Such points can be considered for free viewing on the VOD network as well as prizes, discounts, etc. Such promotions provide advertising publishers with highly targeted opportunities to promote their products and services, while at the same time “selecting” whether the user accepts advertisements and other promotions. Enable.

[406]宣伝をコンテンツオブジェクトの1タイプとしてVODネットワークに一体化することによって、システム上でコンテンツオブジェクトを見るユーザの能力を遮らずに、宣伝パブリッシャの製品及びサービスを非常にターゲティングされた効率的な形で(広範囲のターゲティングされた追跡能力及びレポート能力を含む)販売促進する実質的に無制限の個数の可能性が存在する。ユーザは、販売促進活動から「脱退する」機会を提供されるが、(より重要なことに)無料ビューイングと引き換えにそのような活動に「加入する」動機を与えられる。製品及びサービスの値引き、並びに他のクリエイティブな機会のホストが、宣伝パブリッシャによって彼らの非常にターゲティングされたカスタマのために考案される。
要約
[406] By integrating promotions into a VOD network as a type of content object, the advertising publisher's products and services are highly targeted and efficient without obstructing the user's ability to view the content object on the system. There is a virtually unlimited number of possibilities to promote in form (including a wide range of targeted tracking and reporting capabilities). Users are provided with the opportunity to “leave” from promotional activities, but (more importantly) are motivated to “subscribe” to such activities in exchange for free viewing. Product and service discounts, as well as a host of other creative opportunities, are devised for their highly targeted customers by advertising publishers.
wrap up

[407]本発明は、高いQoSを維持しながらインターネットを介する大量のディジタルコンテンツの配布を可能にするように設計された複数の動的コンテンツパッケージング及び負荷平衡化のシステム及び方法を用いる。本発明は、VODアプリケーションだけではなく、多数の他のコンテンツ配布アプリケーション及び関連するアプリケーション、特にディジタルコンテンツがそのようなコンテンツの最終的なユーザに「より近い」ことから利益を得るアプリケーションに適用可能である。   [407] The present invention uses multiple dynamic content packaging and load balancing systems and methods designed to enable the distribution of large volumes of digital content over the Internet while maintaining high QoS. The present invention is applicable not only to VOD applications, but also to many other content distribution applications and related applications, especially applications that benefit from digital content being “closer” to the end user of such content. is there.

[408]コンテンツオブジェクトは、構成要素パッケージのグループに分割され、これらのグループは、そのようなコンテンツが後に取り出される(すなわち、プルされる)時にQoSを高めるために、隣接するネットワークピアのクラスタに分散される(すなわち、プッシュされる)。トラッキングファイル(そのようなパッケージのグループを格納するネットワークピアのリストを維持する)及びトラッキングインデックス(トラッキングファイルを格納するネットワークピアのリストを維持する)が、所望のコンテンツオブジェクトの「オンデマンドの」(及び持続される)取出を容易にするために生成され、更新される。   [408] The content objects are divided into groups of component packages, which are grouped into adjacent network peer clusters to increase QoS when such content is later retrieved (ie, pulled). Distributed (ie, pushed). Tracking files (maintaining a list of network peers that store groups of such packages) and tracking indexes (maintaining a list of network peers that store tracking files) are “on demand” ( And is maintained and updated to facilitate retrieval).

[409]さらに、一般的な及びアプリケーション固有のネットワークトラフィックが、動的に監視され(例えば、VOD機能性の挙動態様並びに帯域幅及び信頼性を含む)、その結果が、システムにフィードバックされ、効果的に「分散閉ループフィードバック」システムを作成する。そのような分散動的監視に応答して、個々のネットワークピアの属性(ピアの信頼レベル及び隣接するピアの特定のクラスタ内のメンバシップなど)が、変更され、さまざまな「コンテンツ平衡化」機能が、実行される(さまざまなネットワークピアの間でのコンテンツオブジェクトのパッケージのグループの再分散など)。   [409] In addition, general and application specific network traffic is dynamically monitored (eg, including behavioral aspects of VOD functionality as well as bandwidth and reliability), and the results are fed back to the system for effectiveness. A “distributed closed-loop feedback” system. In response to such distributed dynamic monitoring, attributes of individual network peers (such as peer trust level and membership within a particular cluster of neighboring peers) have been changed and various "content balancing" functions Are performed (such as redistribution of groups of packages of content objects among various network peers).

[410]その結果は、それ自体はQoSを提供しない既存インターネットインフラストラクチャに頼るピアのネットワークに効果的にQoSを組み込むことである。そのようなネットワークQoS(NQoS)は、ネットワークピアが、すべての要求に先立って、そのピアに特定のコンテンツオブジェクト(その隣接するVODピアの間で構成要素パッケージのグループで分散されている)をある所定の時間以内に配布するネットワークの能力を識別することを可能にする。
実施例
[410] The result is to effectively incorporate QoS into a peer network that relies on an existing Internet infrastructure that itself does not provide QoS. Such network QoS (NQoS) allows network peers to have specific content objects (distributed in groups of component packages among their neighboring VOD peers) prior to every request to that peer. It makes it possible to identify the network's ability to distribute within a predetermined time.
Example

[実施例1]
ネットワークノード上での順序付き再生のためにリニアコンテンツオブジェクトを要求時に取り出すディジタルコンテンツ配信システムであって、
(a)第1リニアコンテンツオブジェクトを構成要素パッケージの第1グループ及び第2グループに分割し(前記構成要素パッケージの第1グループは、前記構成要素パッケージの第2グループよりも前の順序で発生する)、前記構成要素パッケージの第1グループを第1ネットワークノードに分配するとともに前記構成要素パッケージの第2グループを第2ネットワークノードに分配する、コンテンツプッシャーと、
(b)前記第1コンテンツオブジェクトの再生に関する第3ネットワークノードによる要求に応答して、前記構成要素パッケージの第1グループ及び第2グループを検索し、前記第1ネットワークノード上の前記第1グループ及び前記第2ネットワークノード上の前記第2グループの各々の位置を識別し、前記第3ネットワークノードでの前記第1コンテンツオブジェクトの順序付き再生のために前記第1グループ及び前記第2グループを取り出す、コンテンツプラーと、
を備え、
(c)これによって、当該ディジタルコンテンツ配信システムは、前記第3ネットワークノードが、前記構成要素パッケージの第2グループを受け取る前に前記第1コンテンツオブジェクトの再生を開始することを可能にする、
ディジタルコンテンツ配信システム。
[実施例2]
ネットワークノード上での順序付き再生のためにリニアコンテンツオブジェクトを要求時に取り出すディジタルコンテンツ配信システムであって、
(a)第1リニアコンテンツオブジェクトを構成要素パッケージの第1グループ及び第2グループに分割し(前記構成要素パッケージの第1グループは、前記構成要素パッケージの第2グループよりも前の順序で発生する)、前記構成要素パッケージの第1グループを第1ネットワークノードに分配するとともに前記構成要素パッケージの第2グループを第2ネットワークノードに分配する(前記第1ネットワークノード及び前記第2ネットワークノードは、互いに相対的に近接するネットワークノードの第1クラスタ内に配置される)、コンテンツプッシャーと、
(b)前記第1コンテンツオブジェクトの再生に関する第3ネットワークノード(前記第3ネットワークノードも前記第1クラスタ内に配置される)による要求に応答して、前記構成要素パッケージの第1グループ及び第2グループを検索し、前記第1クラスタ内の前記第1ネットワークノード上の前記第1グループ及び前記第2ネットワークノード上の前記第2グループの各々の位置を識別し、前記第3ネットワークノードでの前記第1コンテンツオブジェクトの順序付き再生のために前記第1グループ及び前記第2グループを取り出す、コンテンツプラーと、
を備え、
(c)これによって、当該ディジタルコンテンツ配信システムは、前記第3ネットワークノードが、
(i)前記構成要素パッケージの第2グループを受け取る前に前記第1コンテンツオブジェクトの再生を開始し、
(ii)実質的に即時かつ連続的な再生のために前記第1コンテンツオブジェクトを取り出す(前記再生は、前記第3ネットワークノードによる前記再生要求の前の前記第1クラスタ内の前記第1コンテンツオブジェクトの存在に起因して部分的である)
ことを可能にする、
ディジタルコンテンツ配信システム。
[実施例3]
ネットワークノード上での順序付き再生のためにリニアコンテンツオブジェクトを要求時に取り出すディジタルコンテンツ配信システムであって、
(a)第1リニアコンテンツオブジェクトを構成要素パッケージの第1グループ及び第2グループに分割し(前記構成要素パッケージの第1グループは、前記構成要素パッケージの第2グループよりも前の順序で発生する)、前記構成要素パッケージの第1グループを第1ネットワークノードに分配するとともに前記構成要素パッケージの第2グループを第2ネットワークノードに分配する、コンテンツプッシャーと、
(b)前記第1ネットワークノード上の前記構成要素パッケージの第1グループ及び前記第2のネットワークノード上の前記構成要素パッケージの第2グループの各々の位置を含む第1トラッキングファイルと、前記第1トラッキングファイルが格納されている1つ以上のネットワークノードの位置を含む第1トラッキングインデックスとを生成するコンテンツトラッカと、
(c)前記第1コンテンツオブジェクトの再生に関する第3ネットワークノードによる要求に応答して、前記構成要素パッケージの第1グループ及び第2グループを検索し、前記第1ネットワークノード上の前記第1グループ及び第2ネットワークノード上の前記第2グループの各々の位置を識別し(該識別が、直接に又は前記第1トラッキングインデックスを介して間接的に前記第1トラッキングファイルを突き止めることによってなされ)、前記第3ネットワークノードでの前記第1コンテンツオブジェクトの順序付き再生のために前記第1グループ及び前記第2グループを取り出す、コンテンツプラーと、
を備え、
(d)これによって、当該ディジタルコンテンツ配信システムは、前記第3ネットワークノードが、前記構成要素パッケージの第2グループを受け取る前に前記第1コンテンツオブジェクトの再生を開始することを可能にする、
ディジタルコンテンツ配信システム。
[実施例4]
ネットワークノード上での順序付き再生のためにリニアコンテンツオブジェクトを要求時に取り出すディジタルコンテンツ配信システムであって、
(a)第1リニアコンテンツオブジェクトを構成要素パッケージの第1グループ及び第2グループに分割し(前記構成要素パッケージの第1グループは、前記構成要素パッケージの第2グループよりも前の順序で発生する)、前記構成要素パッケージの第1グループを第1ネットワークノードに分配するとともに前記構成要素パッケージの第2グループを第2ネットワークノードに分配する、コンテンツプッシャーと、
(b)前記第1コンテンツオブジェクトの再生に関する第3ネットワークノードによる要求に応答して、前記構成要素パッケージの第1グループ及び第2グループを検索し、前記第1ネットワークノード上の前記第1グループ及び前記第2ネットワークノード上の前記第2グループの各々の位置を識別し、前記第3ネットワークノードでの前記第1コンテンツオブジェクトの順序付き再生のために前記第1グループ及び前記第2グループを取り出す、コンテンツプラーと、
(c)前記第3ネットワークノードを含む通信を観察するネットワークモニタ(前記通信は、挙動アプリケーション固有ネットワークトラフィック並びに全般的ネットワーク帯域幅及び接続信頼性のテストを含む)と、
(d)前記ネットワークモニタによって確かめられた情報に応答して、
(i)前記第3ネットワークノードの経時的な信頼性を反映する信頼レベルを含む、前記第3ネットワークノードの属性の第1の集合を更新するタスクと、
(ii)前記第1コンテンツオブジェクトの1つ以上のパッケージのコピーの個数及び位置を変更することによって、前記ネットワークノード間で前記第1コンテンツオブジェクトを再分配するタスクと、
のうちの1つ以上を実行する動的フィードバックコントローラと、
を備え、
(e)これによって、当該ディジタルコンテンツ配信システムは、前記第3ネットワークノードが、前記第1コンテンツオブジェクトの再生に関するその要求に先立って、前記第1コンテンツオブジェクトを前記第3ネットワークノードに所定の時間間隔以内に配信する当該システムの能力を識別することを可能にすることによって、ネットワークサービス品質(NQoS)を提供する、
ディジタルコンテンツ配信システム。
[実施例5]
ネットワークノード上での順序付き再生のためにリニアコンテンツオブジェクトを要求時に取り出すディジタルコンテンツ配信システムであって、
(a)第1リニアコンテンツオブジェクトを構成要素パッケージの第1グループ及び第2グループに分割し(前記構成要素パッケージの第1グループは、前記構成要素パッケージの第2グループより前の順序で発生する)、パッケージの前記第1グループを第1ネットワークノードに分配するとともに前記構成要素パッケージの第2グループを第2ネットワークノードに分配する、コンテンツプッシャーと、
(b)前記第1コンテンツオブジェクトの再生に関する第3ネットワークノードによる要求に応答して、前記第1コンテンツオブジェクトの前記構成要素パッケージの第1グループ及び第2グループを検索し、前記第1ネットワークノード上の前記第1グループ及び前記第2ネットワークノード上の前記第2グループの各々の位置を識別し、前記第3ネットワークノードでの前記第1コンテンツオブジェクトの順序付き再生のために前記第1グループ及び前記第2グループを取り出す、コンテンツプラーと、
を備え、
(c)前記コンテンツプッシャーは、また、宣伝である第2リニアコンテンツオブジェクトを構成要素パッケージの第1グループ及び第2グループに分割し(前記第2コンテンツオブジェクトのパッケージの第1グループは、前記第2コンテンツオブジェクトのパッケージの第2グループより前の順序で発生する)、前記第2コンテンツオブジェクトのパッケージの第1グループを第4ネットワークノードに分配するとともに前記第2コンテンツオブジェクトのパッケージの第2グループを第5ネットワークノードに分配し、
(d)前記コンテンツプラーは、また、前記第1コンテンツオブジェクトの再生に関する前記第3ネットワークノードによる前記要求に応答して、前記第2コンテンツオブジェクトのパッケージの前記第1グループ及び前記第2グループを検索し、前記第4ネットワークノード上の前記第2コンテンツオブジェクトのパッケージの前記第1グループ及び第5のネットワークノード上の前記第2コンテンツオブジェクトのパッケージの第2グループの各々の位置を識別し、前記第3ネットワークノードでの前記第2コンテンツオブジェクトの順序付き再生のために前記第2コンテンツオブジェクトのパッケージの前記第1グループ及び前記第2グループを取り出し、
(e)これによって、当該ディジタルコンテンツ配信システムは、前記第3ネットワークノードが、前記第1コンテンツオブジェクトの再生に関するその要求に応答して、前記宣伝を自動的に受け取ることを可能にし、
該宣伝は、それ自体がリニアコンテンツオブジェクト(前記第2コンテンツオブジェクト)であり、前記第1コンテンツオブジェクトと実質的に同一の形で、前記コンテンツプッシャーによって分配され、前記第3ネットワークノードでの再生のために前記コンテンツプラーによって取り出される、
ディジタルコンテンツ配信システム。
[実施例6]
(a)前記第1ネットワークノード及び前記第2ネットワークノードは、互いに相対的に近接するネットワークノードの第1クラスタ内に配置され、
(b)前記コンテンツプラーは、前記第1クラスタ内の前記第1ネットワークノード上の前記構成要素パッケージの第1グループ及び前記第2ネットワークノード上の前記構成要素パッケージの第2グループの各々の位置を識別し、
(c)これによって、当該ディジタルコンテンツ配信システムは、前記第3ネットワークノードが、
(i)前記構成要素パッケージの第2グループを受け取る前に前記第1コンテンツオブジェクトの再生を開始し、
(ii)実質的に即時かつ連続的な再生のために前記第1コンテンツオブジェクトを取り出す(前記再生は、前記第3ネットワークノードによる前記再生要求の前の前記第1クラスタ内の前記第1コンテンツオブジェクトの存在に起因して部分的である)
ことを可能にする、
実施例3に記載のディジタルコンテンツ配信システム。
[実施例7]
前記構成要素パッケージの第1グループは、前記構成要素パッケージの第2グループより小さい、実施例1に記載のディジタルコンテンツ配信システム。
[実施例8]
前記第1コンテンツオブジェクトの前記構成要素パッケージは、可変サイズのパッケージである、実施例7に記載のディジタルコンテンツ配信システム。
[実施例9]
前記第1コンテンツオブジェクトの前記構成要素パッケージは、固定サイズのパッケージであり、前記構成要素パッケージの第1グループは、前記構成要素パッケージの第2グループより少数のパッケージを含む、実施例7に記載のディジタルコンテンツ配信システム。
[実施例10]
前記ネットワークノードの各々は、前記コンテンツプッシャーと前記コンテンツプラーとの両方によって実行される機能と実質的に同一の機能を実行するクラスタコントローラを含む、実施例2に記載のディジタルコンテンツ配信システム。
[実施例11]
前記第3ネットワークノードは、前記第1コンテンツオブジェクトの再生を開始するのに必要な相対時間のインジケータを前記第3ネットワークノードのユーザに表示するグラフィカルユーザインターフェースを含む、実施例4に記載のディジタルコンテンツ配信システム。
[実施例12]
前記ネットワークモニタは、経時的に前記第3ネットワークノードからのping通信及びtraceroute通信を開始し、観察する、実施例4に記載のディジタルコンテンツ配信システム。
[実施例13]
前記ネットワークモニタによって観察される前記挙動アプリケーション固有ネットワークトラフィックは、経時的な前記第3ネットワークノードによって開始されるコンテンツオブジェクトの再生に関する要求を含む、実施例4に記載のディジタルコンテンツ配信システム。
[実施例14]
前記第2コンテンツオブジェクトの前記再生は、前記第1コンテンツオブジェクトの前記再生中に発生する、実施例5に記載のディジタルコンテンツ配信システム。
[実施例15]
前記第3ネットワークノードは、前記ユーザが前記第2コンテンツオブジェクトの再生を起動するためにクリックすることのできるリンクを前記第1コンテンツオブジェクトの前記再生中に前記第3ネットワークノードのユーザに表示するグラフィカルユーザインターフェースを含む、実施例5に記載のディジタルコンテンツ配信システム。
[実施例16]
ネットワークノード上での順序付き再生のためにリニアコンテンツオブジェクトを要求時に取り出す方法であって、
(a)第1リニアコンテンツオブジェクトを構成要素パッケージの第1グループ及び第2グループに分割し(前記構成要素パッケージの第1グループは、前記構成要素パッケージの第2グループよりも前の順序で発生する)、前記構成要素パッケージの第1グループを第1ネットワークノードに分配するとともに前記構成要素パッケージの第2グループを第2ネットワークノードに分配するステップと、
(b)前記第1コンテンツオブジェクトの再生に関する第3ネットワークノードによる要求に応答して、前記構成要素パッケージの第1グループ及び第2グループを検索し、前記第1ネットワークノード上の前記第1グループ及び前記第2ネットワークノード上の前記第2のグループの各々の位置を識別し、前記第3ネットワークノードでの前記第1コンテンツオブジェクトの順序付き再生のために前記第1グループ及び前記第2グループを取り出すステップと
を含み、
(c)これによって、リニアコンテンツオブジェクトを取り出す当該方法は、前記第3ネットワークノードが、パッケージの前記第2グループを受け取る前に前記第1コンテンツオブジェクトの再生を開始することを可能にする、
方法。
[実施例17]
ネットワークノード上での順序付き再生のためにリニアコンテンツオブジェクトを要求時に取り出す方法であって、
(a)第1リニアコンテンツオブジェクトを構成要素パッケージの第1グループ及び第2グループに分割し(前記構成要素パッケージの第1グループは、前記構成要素パッケージの第2グループよりも前の順序で発生する)、前記構成要素パッケージの第1グループを第1ネットワークノードに分配するとともに前記構成要素パッケージの第2グループを第2ネットワークノードに分配する(前記第1ネットワークノード及び前記第2ネットワークノードは、互いに相対的に近接するネットワークノードの第1クラスタ内に配置される)ステップと、
(b)前記第1コンテンツオブジェクトの再生に関する第3ネットワークノードによる要求に応答して、前記構成要素パッケージの第1グループ及び第2グループを検索し、前記第1クラスタ内の前記第1ネットワークノード上の前記第1グループ及び前記第2ネットワークノード上の前記第2グループの各々の位置を識別し、前記第3ネットワークノードでの前記第1コンテンツオブジェクトの順序付き再生のために前記第1グループ及び前記第2グループを取り出すステップと、
を含み、
(c)これによって、リニアコンテンツオブジェクトを取り出す当該方法は、前記第3ネットワークノードが、
(i)前記構成要素パッケージの第2グループを受け取る前に前記第1コンテンツオブジェクトの再生を開始し、
(ii)実質的に即時かつ連続的な再生のために前記第1コンテンツオブジェクトを取り出す(前記再生は、前記第3ネットワークノードによる前記再生要求の前の前記第1クラスタ内の前記第1コンテンツオブジェクトの存在に起因して部分的である)
ことを可能にする、
方法。
[実施例18]
ネットワークノード上での順序付き再生のためにリニアコンテンツオブジェクトを要求時に取り出す方法であって、
(a)第1リニアコンテンツオブジェクトを構成要素パッケージの第1グループ及び第2グループに分割し(前記構成要素パッケージの第1グループは、前記構成要素パッケージの第2グループよりも前の順序で発生する)、前記構成要素パッケージの第1グループを第1ネットワークノードに分配し、前記構成要素パッケージの第2グループを第2ネットワークノードに分配するステップと、
(b)前記第1ネットワークノード上の前記構成要素パッケージの第1グループ及び前記第2ネットワークノード上の前記構成要素パッケージの第2グループの各々の位置を含む第1トラッキングファイルと、前記第1トラッキングファイルが格納されている1つ以上のネットワークノードの位置を含む第1トラッキングインデックスとを生成するステップと、
(c)前記第1コンテンツオブジェクトの再生に関する第3ネットワークノードによる要求に応答して、前記構成要素パッケージの第1グループ及び第2グループを検索し、前記第1ネットワークノード上の前記第1グループ及び前記第2ネットワークノード上の前記第2グループの各々の位置を識別し(該識別が、直接に又は前記第1トラッキングインデックスを介して間接的に前記第1トラッキングファイルを突き止めることによってなされ)、前記第3ネットワークノードでの前記第1コンテンツオブジェクトの順序付き再生のために前記第1グループ及び前記第2グループを取り出すステップと、
を含み、
(d)これによって、リニアコンテンツオブジェクトを取り出す当該方法は、前記第3ネットワークノードが、前記構成要素パッケージの第2グループを受け取る前に前記第1コンテンツオブジェクトの再生を開始することを可能にする、
方法。
[実施例19]
ネットワークノード上での順序付き再生のためにリニアコンテンツオブジェクトを要求時に取り出す方法であって、
(a)第1リニアコンテンツオブジェクトを構成要素パッケージの第1グループ及び第2グループに分割し(前記構成要素パッケージの第1グループは、前記構成要素パッケージの第2グループよりも前の順序で発生する)、前記構成要素パッケージの第1グループを第1ネットワークノードに分配するとともに前記構成要素パッケージの第2グループを第2ネットワークノードに分配するステップと、
(b)前記第1コンテンツオブジェクトの再生に関する第3ネットワークノードによる要求に応答して、前記構成要素パッケージの第1グループ及び第2グループを検索し、前記第1ネットワークノード上の前記第1グループ及び前記第2ネットワークノード上の前記第2グループの各々の位置を識別し、前記第3ネットワークノードでの前記第1コンテンツオブジェクトの順序付き再生のために前記第1グループ及び前記第2グループを取り出すステップと、
(c)前記第3ネットワークノードを含む通信を観察するステップ(前記通信は、挙動アプリケーション固有ネットワークトラフィック並びに全般的ネットワーク帯域幅及び接続信頼性のテストを含む)と、
(d)前記第3ネットワークノードを含む通信の前記観察によって確かめられた情報に応答して、
(i)前記第3ネットワークノードの経時的な信頼性を反映する信頼レベルを含む、前記第3ネットワークノードの属性の第1の集合を更新するタスクと、
(ii)前記第1コンテンツオブジェクトの1つ以上のパッケージのコピーの個数及び位置を変更することによって、前記ネットワークノード間で前記第1コンテンツオブジェクトを再分配するタスクと、
のうちの1つ以上を実行するステップと、
を含み、
(e)これによって、リニアコンテンツオブジェクトを取り出す当該方法は、前記第3ネットワークノードが、前記第1コンテンツオブジェクトの再生に関するその要求に先立って、前記第1コンテンツオブジェクトを前記第3ネットワークノードに所定の時間間隔以内に配信する当該システムの能力を識別することを可能にすることによって、ネットワークサービス品質(NQoS)を提供する、
方法。
[実施例20]
ネットワークノード上での順序付き再生のためにリニアコンテンツオブジェクトを要求時に取り出す方法であって、
(a)第1リニアコンテンツオブジェクトを構成要素パッケージの第1グループ及び第2グループに分割し(前記構成要素パッケージの第1グループは、前記構成要素パッケージの第2グループより前の順序で発生する)、分配するとともに前記構成要素パッケージの第1グループを第1ネットワークノードに前記構成要素パッケージの第2グループを第2ネットワークノードに分配するステップと、
(b)前記第1コンテンツオブジェクトの再生に関する第3ネットワークノードによる要求に応答して、前記第1コンテンツオブジェクトの前記構成要素パッケージの第1グループ及び第2グループを検索し、前記第1ネットワークノード上の前記第1グループ及び前記第2ネットワークノード上の前記第2グループの各々の位置を識別し、前記第3ネットワークノードでの前記第1コンテンツオブジェクトの順序付き再生のために前記第1グループ及び前記第2グループを取り出すステップと、
(c)宣伝である第2リニアコンテンツオブジェクトを構成要素パッケージの第1グループ及び第2グループに分割し(前記第2コンテンツオブジェクトのパッケージの第1グループは、前記第2コンテンツオブジェクトのパッケージの第2グループより前の順序で発生する)、前記第2コンテンツオブジェクトのパッケージの第1グループを第4ネットワークノードに分配するとともに前記第2コンテンツオブジェクトのパッケージの第2グループを第5ネットワークノードに分配するステップと、
(d)前記第1コンテンツオブジェクトの再生に関する前記第3ネットワークノードによる前記要求に応答して、前記第2コンテンツオブジェクトのパッケージの前記第1グループ及び前記第2グループを検索し、前記第4ネットワークノード上の前記第2コンテンツオブジェクトのパッケージの前記第1グループ及び前記第5のネットワークノード上の前記第2コンテンツオブジェクトのパッケージの前記第2グループの各々の位置を識別し、前記第3ネットワークノードでの前記第2コンテンツオブジェクトの順序付き再生のために前記第2コンテンツオブジェクトのパッケージの前記第1グループ及び前記第2グループを取り出すステップと、
を含み、
(e)これによって、リニアコンテンツオブジェクトを取り出す当該方法は、前記第3ネットワークノードが、前記第1コンテンツオブジェクトの再生に関するその要求に応答して、前記宣伝を自動的に受け取ることを可能にし、
該宣伝は、それ自体がリニアコンテンツオブジェクト(前記第2コンテンツオブジェクト)であり、前記第1コンテンツオブジェクトと実質的に同一の形で、分配され、前記第3ネットワークノードでの再生のために取り出される、
方法。
[実施例21]
(a)互いに相対的に近接するネットワークノードの第1クラスタ内に前記第1ネットワークノード及び第2ネットワークノードを配置するステップと、
(b)前記第1クラスタ内の前記第1ネットワークノード上の前記構成要素パッケージの第1グループ及び前記第2ネットワークノード上の前記構成要素パッケージの第2グループの各々の位置を識別するステップと、
を更に含み、
(c)これによって、リニアコンテンツオブジェクトを取り出す当該方法は、前記第3ネットワークノードが、
(i)前記構成要素パッケージの第2グループを受け取る前に前記第1コンテンツオブジェクトの再生を開始し、
(ii)実質的に即時かつ連続的な再生のために前記第1コンテンツオブジェクトを取り出す(前記再生は、前記第3ネットワークノードによる前記再生要求の前の前記第1クラスタ内の前記第1コンテンツオブジェクトの存在に起因して部分的である)
ことを可能にする、
実施例18に記載の方法。
[実施例22]
前記構成要素パッケージの第1グループは、前記構成要素パッケージの第2グループより小さい、実施例16に記載のリニアコンテンツオブジェクトを取り出す方法。

[実施例23]
前記第1コンテンツオブジェクトの前記構成要素パッケージは、可変サイズのパッケージである、実施例22に記載のリニアコンテンツオブジェクトを取り出す方法。

[実施例24]
前記第1コンテンツオブジェクトの前記構成要素パッケージは、固定サイズのパッケージであり、前記構成要素パッケージの第1グループは、前記構成要素パッケージの第2グループより少数のパッケージを含む、実施例22に記載のリニアコンテンツオブジェクトを取り出す方法。
[実施例25]
前記ネットワークノードの各々は、前記第1コンテンツオブジェクトを分割し、分配し、配置し、取り出すために実行される機能と実質的に同一の機能を実行する、実施例17に記載のリニアコンテンツオブジェクトを取り出す方法。
[実施例26]
前記第1コンテンツオブジェクトの再生を開始するのに必要な相対時間のインジケータを前記第3ネットワークノードのユーザに表示するステップをさらに含む、実施例19に記載のリニアコンテンツオブジェクトを取り出す方法。
[実施例27]
前記観察される通信は、経時的に前記第3ネットワークノードから開始されるping通信及びtraceroute通信を含む、実施例19に記載のリニアコンテンツオブジェクトを取り出す方法。
[実施例28]
前記挙動アプリケーション固有ネットワークトラフィックは、経時的な前記第3ネットワークノードによって開始されるコンテンツオブジェクトの再生に関する要求を含む、実施例19に記載のリニアコンテンツオブジェクトを取り出す方法。
[実施例29]
前記第2コンテンツオブジェクトの前記再生は、前記第1コンテンツオブジェクトの前記再生中に発生する、実施例20に記載のリニアコンテンツオブジェクトを取り出す方法。
[実施例30]
前記第3ネットワークノードは、前記ユーザが前記第2コンテンツオブジェクトの再生を起動するためにクリックすることのできるリンクを前記第1コンテンツオブジェクトの前記再生中に前記第3ネットワークノードのユーザに表示する、実施例20に記載のリニアコンテンツオブジェクトを取り出す方法。
[Example 1]
A digital content delivery system that retrieves linear content objects on demand for ordered playback on a network node,
(A) dividing the first linear content object into a first group and a second group of component packages (the first group of component packages occurs in an order before the second group of component packages); A content pusher that distributes a first group of component packages to a first network node and distributes a second group of component packages to a second network node;
(B) in response to a request by a third network node relating to the reproduction of the first content object, searching for a first group and a second group of the component package, and the first group on the first network node Identifying the location of each of the second groups on the second network node and retrieving the first group and the second group for ordered playback of the first content objects on the third network node; Content puller,
With
(C) This allows the digital content distribution system to allow the third network node to start playing the first content object before receiving the second group of component packages.
Digital content distribution system.
[Example 2]
A digital content delivery system that retrieves linear content objects on demand for ordered playback on a network node,
(A) dividing the first linear content object into a first group and a second group of component packages (the first group of component packages occurs in an order before the second group of component packages); ) Distributing a first group of component packages to a first network node and distributing a second group of component packages to a second network node (the first network node and the second network node are Located in a first cluster of relatively adjacent network nodes), a content pusher;
(B) in response to a request by a third network node (the third network node is also located in the first cluster) for playback of the first content object, the first group and the second of the component packages Search for a group, identify a location of each of the first group on the first network node and the second group on the second network node in the first cluster, and at the third network node A content puller that retrieves the first group and the second group for ordered playback of a first content object;
With
(C) Thereby, in the digital content distribution system, the third network node is
(I) start playing the first content object before receiving the second group of the component packages;
(Ii) retrieving the first content object for substantially immediate and continuous playback (the playback is the first content object in the first cluster prior to the playback request by the third network node) Partial due to the presence of)
Make it possible,
Digital content distribution system.
[Example 3]
A digital content delivery system that retrieves linear content objects on demand for ordered playback on a network node,
(A) dividing the first linear content object into a first group and a second group of component packages (the first group of component packages occurs in an order before the second group of component packages); A content pusher that distributes a first group of component packages to a first network node and distributes a second group of component packages to a second network node;
(B) a first tracking file including the location of each of the first group of component packages on the first network node and the second group of component packages on the second network node; A content tracker that generates a first tracking index that includes the location of one or more network nodes where the tracking file is stored;
(C) in response to a request by a third network node relating to playback of the first content object, to search for a first group and a second group of the component package; Identifying the location of each of the second groups on a second network node (the identification being made by locating the first tracking file, either directly or indirectly via the first tracking index), and A content puller that retrieves the first group and the second group for ordered playback of the first content objects on three network nodes;
With
(D) This allows the digital content distribution system to allow the third network node to start playing the first content object before receiving the second group of component packages.
Digital content distribution system.
[Example 4]
A digital content delivery system that retrieves linear content objects on demand for ordered playback on a network node,
(A) dividing the first linear content object into a first group and a second group of component packages (the first group of component packages occurs in an order before the second group of component packages); A content pusher that distributes a first group of component packages to a first network node and distributes a second group of component packages to a second network node;
(B) in response to a request by a third network node relating to the reproduction of the first content object, searching for a first group and a second group of the component package, and the first group on the first network node Identifying the location of each of the second groups on the second network node and retrieving the first group and the second group for ordered playback of the first content objects on the third network node; Content puller,
(C) a network monitor observing communications involving the third network node (the communications include behavioral application specific network traffic and general network bandwidth and connection reliability tests);
(D) in response to information verified by the network monitor;
(I) updating a first set of attributes of the third network node, including a trust level that reflects the reliability of the third network node over time;
(Ii) a task of redistributing the first content object among the network nodes by changing the number and location of copies of one or more packages of the first content object;
A dynamic feedback controller that executes one or more of:
With
(E) Thereby, in the digital content distribution system, the third network node sends the first content object to the third network node at a predetermined time interval prior to the request for reproduction of the first content object. Providing network quality of service (NQoS) by allowing identification of the system's ability to deliver within
Digital content distribution system.
[Example 5]
A digital content delivery system that retrieves linear content objects on demand for ordered playback on a network node,
(A) Dividing the first linear content object into a first group and a second group of component packages (the first group of component packages occurs in an order before the second group of component packages) A content pusher that distributes the first group of packages to a first network node and distributes the second group of component packages to a second network node;
(B) in response to a request by a third network node relating to playback of the first content object, to search a first group and a second group of the component package of the first content object, on the first network node Identifying the location of each of the first group and the second group on the second network node, and for the ordered playback of the first content object on the third network node, the first group and the Take out the second group, content puller,
With
(C) The content pusher also divides the second linear content object that is an advertisement into a first group and a second group of component packages (the first group of the second content object package is the second group Distribution of the first group of the second content object packages to the fourth network node and the second group of the second content object packages to the second Distributed to 5 network nodes,
(D) The content puller also searches the first group and the second group of packages of the second content object in response to the request by the third network node relating to playback of the first content object. Identifying a location of each of the first group of packages of the second content object on the fourth network node and a second group of packages of the second content object on a fifth network node; Taking out the first group and the second group of packages of the second content object for ordered playback of the second content object on three network nodes;
(E) This allows the digital content distribution system to allow the third network node to automatically receive the advertisement in response to its request for playback of the first content object;
The advertisement is itself a linear content object (the second content object), is distributed by the content pusher in substantially the same manner as the first content object, and is played back on the third network node. To be retrieved by the content puller,
Digital content distribution system.
[Example 6]
(A) the first network node and the second network node are arranged in a first cluster of network nodes relatively close to each other;
(B) the content puller determines a position of each of the first group of the component packages on the first network node in the first cluster and the second group of the component packages on the second network node; Identify and
(C) Thereby, in the digital content distribution system, the third network node is
(I) start playing the first content object before receiving the second group of the component packages;
(Ii) retrieving the first content object for substantially immediate and continuous playback (the playback is the first content object in the first cluster prior to the playback request by the third network node) Partial due to the presence of)
Make it possible,
The digital content distribution system described in the third embodiment.
[Example 7]
The digital content delivery system of embodiment 1, wherein the first group of component packages is smaller than the second group of component packages.
[Example 8]
The digital content distribution system according to the seventh embodiment, wherein the component package of the first content object is a variable-size package.
[Example 9]
8. The embodiment of example 7, wherein the component package of the first content object is a fixed size package, and the first group of component packages includes fewer packages than the second group of component packages. Digital content distribution system.
[Example 10]
The digital content distribution system according to embodiment 2, wherein each of the network nodes includes a cluster controller that performs substantially the same function as that performed by both the content pusher and the content puller.
[Example 11]
The digital content of embodiment 4, wherein the third network node includes a graphical user interface that displays to the user of the third network node an indicator of the relative time required to start playing the first content object. Distribution system.
[Example 12]
The digital content distribution system according to the fourth embodiment, wherein the network monitor starts and observes ping communication and traceroute communication from the third network node over time.
[Example 13]
5. The digital content delivery system of embodiment 4, wherein the behavioral application specific network traffic observed by the network monitor includes a request for playback of a content object initiated by the third network node over time.
[Example 14]
The digital content distribution system according to embodiment 5, wherein the reproduction of the second content object occurs during the reproduction of the first content object.
[Example 15]
The third network node graphically displays to the user of the third network node a link that the user can click to activate playback of the second content object during the playback of the first content object. The digital content distribution system according to embodiment 5, including a user interface.
[Example 16]
A method of retrieving a linear content object on demand for ordered playback on a network node,
(A) dividing the first linear content object into a first group and a second group of component packages (the first group of component packages occurs in an order before the second group of component packages); ) Distributing the first group of component packages to a first network node and distributing the second group of component packages to a second network node;
(B) in response to a request by a third network node relating to the reproduction of the first content object, searching for a first group and a second group of the component package, and the first group on the first network node Identify the location of each of the second groups on the second network node and retrieve the first group and the second group for ordered playback of the first content objects on the third network node Including steps,
(C) Thereby, the method for retrieving a linear content object allows the third network node to start playing the first content object before receiving the second group of packages;
Method.
[Example 17]
A method of retrieving a linear content object on demand for ordered playback on a network node,
(A) dividing the first linear content object into a first group and a second group of component packages (the first group of component packages occurs in an order before the second group of component packages); ) Distributing a first group of component packages to a first network node and distributing a second group of component packages to a second network node (the first network node and the second network node are Placed in a first cluster of relatively adjacent network nodes;
(B) in response to a request by a third network node relating to playback of the first content object, to search for a first group and a second group of the component package, on the first network node in the first cluster Identifying the location of each of the first group and the second group on the second network node, and for the ordered playback of the first content object on the third network node, the first group and the Retrieving a second group;
Including
(C) Thereby, in the method for retrieving a linear content object, the third network node
(I) start playing the first content object before receiving the second group of the component packages;
(Ii) retrieving the first content object for substantially immediate and continuous playback (the playback is the first content object in the first cluster prior to the playback request by the third network node) Partial due to the presence of)
Make it possible,
Method.
[Example 18]
A method of retrieving a linear content object on demand for ordered playback on a network node,
(A) dividing the first linear content object into a first group and a second group of component packages (the first group of component packages occurs in an order before the second group of component packages); ) Distributing a first group of component packages to a first network node and distributing a second group of component packages to a second network node;
(B) a first tracking file including the location of each of the first group of component packages on the first network node and the second group of component packages on the second network node; and the first tracking Generating a first tracking index that includes the location of one or more network nodes where the file is stored;
(C) in response to a request by a third network node relating to playback of the first content object, to search for a first group and a second group of the component package; Identifying the location of each of the second groups on the second network node (the identification being made by locating the first tracking file, either directly or indirectly through the first tracking index), and Retrieving the first group and the second group for ordered playback of the first content object at a third network node;
Including
(D) This allows the method of retrieving a linear content object to allow the third network node to start playing the first content object before receiving the second group of component packages.
Method.
[Example 19]
A method of retrieving a linear content object on demand for ordered playback on a network node,
(A) dividing the first linear content object into a first group and a second group of component packages (the first group of component packages occurs in an order before the second group of component packages); ) Distributing the first group of component packages to a first network node and distributing the second group of component packages to a second network node;
(B) in response to a request by a third network node relating to the reproduction of the first content object, searching for a first group and a second group of the component package, and the first group on the first network node; Identifying the location of each of the second groups on the second network node and retrieving the first group and the second group for ordered playback of the first content objects on the third network node When,
(C) observing communications involving the third network node (the communications include behavioral application specific network traffic and general network bandwidth and connection reliability testing);
(D) in response to information ascertained by the observation of communications involving the third network node;
(I) updating a first set of attributes of the third network node, including a trust level that reflects the reliability of the third network node over time;
(Ii) a task of redistributing the first content object among the network nodes by changing the number and location of copies of one or more packages of the first content object;
Performing one or more of:
Including
(E) Thereby, in the method for retrieving a linear content object, the third network node sends the first content object to the third network node in advance of the request for reproduction of the first content object. Providing network quality of service (NQoS) by allowing identification of the system's ability to deliver within a time interval;
Method.
[Example 20]
A method of retrieving a linear content object on demand for ordered playback on a network node,
(A) Dividing the first linear content object into a first group and a second group of component packages (the first group of component packages occurs in an order before the second group of component packages) Distributing and distributing a first group of the component packages to a first network node and a second group of the component packages to a second network node;
(B) in response to a request by a third network node relating to playback of the first content object, to search a first group and a second group of the component package of the first content object, on the first network node Identifying the location of each of the first group and the second group on the second network node, and for the ordered playback of the first content object on the third network node, the first group and the Retrieving a second group;
(C) dividing the second linear content object, which is an advertisement, into a first group and a second group of component packages (the first group of the second content object package is the second of the second content object package); Distributing a first group of packages of the second content object to a fourth network node and distributing a second group of packages of the second content object to a fifth network node, which occur in an order prior to the group) When,
(D) in response to the request by the third network node relating to the reproduction of the first content object, searching the first group and the second group of the package of the second content object; Identifying a location of each of the first group of packages of the second content object on and the second group of packages of the second content object on the fifth network node; Retrieving the first group and the second group of packages of the second content object for ordered playback of the second content object;
Including
(E) Thereby, the method of retrieving a linear content object enables the third network node to automatically receive the advertisement in response to its request for playback of the first content object;
The advertisement is itself a linear content object (the second content object), distributed in substantially the same manner as the first content object, and retrieved for playback on the third network node. ,
Method.
[Example 21]
(A) placing the first network node and the second network node in a first cluster of network nodes relatively close to each other;
(B) identifying a location of each of the first group of component packages on the first network node in the first cluster and the second group of component packages on the second network node;
Further including
(C) Thereby, in the method for retrieving a linear content object, the third network node
(I) start playing the first content object before receiving the second group of the component packages;
(Ii) retrieving the first content object for substantially immediate and continuous playback (the playback is the first content object in the first cluster prior to the playback request by the third network node) Partial due to the presence of)
Make it possible,
The method described in Example 18.
[Example 22]
17. The method of retrieving linear content objects according to example 16, wherein the first group of component packages is smaller than the second group of component packages.

[Example 23]
The method of retrieving a linear content object according to embodiment 22, wherein the component package of the first content object is a variable size package.

[Example 24]
23. The embodiment of example 22, wherein the component package of the first content object is a fixed size package, and the first group of component packages includes fewer packages than the second group of component packages. How to retrieve a linear content object.
[Example 25]
Each of the network nodes performs a linear content object according to example 17 that performs substantially the same functions as those performed to divide, distribute, place, and retrieve the first content object. How to take out.
[Example 26]
The method of retrieving a linear content object according to embodiment 19, further comprising displaying an indicator of a relative time required to start playback of the first content object to a user of the third network node.
[Example 27]
20. The method of retrieving linear content objects as described in embodiment 19, wherein the observed communications include ping communications and traceroute communications initiated from the third network node over time.
[Example 28]
20. The method of retrieving a linear content object as described in embodiment 19, wherein the behavior application specific network traffic includes a request for playback of a content object initiated by the third network node over time.
[Example 29]
21. The method of retrieving a linear content object according to embodiment 20, wherein the reproduction of the second content object occurs during the reproduction of the first content object.
[Example 30]
The third network node displays to the user of the third network node during the playback of the first content object a link that the user can click to activate playback of the second content object; A method for extracting a linear content object described in the twentieth embodiment.

10…エンドユーザクライアントノード、
16…パブリケーションサーバ、
15…VODピア、
20…ローカルインターネットサービスプロバイダ(ローカルISP)、
30…地域インターネットサービスプロバイダ(REG ISP)、
40…バックボーン(BB)ルータ、
55…VODサポートサーバ、
100…専用VODサーバ、
301…最高の信頼レベル、
302…信頼レベル2〜5、
303…信頼レベル6〜9、
304…信頼レベル12、
305…信頼レベル、
310…スーパークラスタ、
320…クラスタ、
410…最初のグループ「A」、
420…グループ「B」、
430…グループ「C」、
440…最後のグループ「D」、
450…クラスタ、
460…VODピア、
470…VODピア、
475…要求元VODピア、
500…ノードIDデータ構造、
501…ノードID、
505…位置、
510…固定部分、
512…ボックスID、
514…国、
516…地域、
518…ISP、
520…市、
522…郵便番号、
524…経度/緯度、
526…ノードタイプ、
550…記述子、
552…IPアドレス、
554…信頼レベル、
556…ローカルノードアクセシビリティ、
558…グローバルノードアクセシビリティ、
560…ネット測定値、
600…CRID、
601…CRID、
605…位置、
610…コアCRID、
612…パブリッシャID、
614…イベントセレクタ、
620…記述子、
625…主記述子、
626…パブリケーションゾーン、
628…パブリケーション権利、
635…パブリッシャ記述子、
636…パブリッシャ優先順位、
638…パブリッシャカテゴリ、
645…終了記述子、
646…コンテンツオブジェクトタイプ、
710…フィールド、
720…「ノード1」のIPアドレス、
725…パッケージグループごとの値、
730…「最終」エントリ、
800…トラッキングインデックスデータ構造、
810…行、
815…CRID、
820…「最終」行、
910…ノードA、
920…ノードB、
930…フェーズH1、
940…フェーズH2、
950…フェーズH3、
1005…パブリケーションサーバ、
1010…VODサポートサーバ、
1015…ノードF、
1020…ノードA、
1032…最初の通信、
1033…通信、
1036…通信、
1038…通信、
1039…通信、
1050…通信プロトコル、
1055…パブリケーションサーバ、
1060…ノードA、
1065…ノードB、
1070…ノードC、
1071…通信、
1072…通信、
1074…通信、
1075…通信、
1077…通信、
1078…通信、
1082…通信、
1083…応答、
1086…通信、
1087…応答、
1091…通信、
1092…通信、
1094…通信、
1100…コンテンツオブジェクト、
1110…始め、
1120…終り、
1150…VODピア、
1200…信頼レベルの比較的自然な分布、
1250…中間信頼レベル、
1260…VODサポートサーバ、
1270…最も信頼性の高い信頼レベル、
1280…最も信頼性の低い信頼レベル、
1300…通信プロトコル、
1305…ノードA、
1310…ノードB、
1315…ノードC、
1322…通信、
1323…通信、
1325…通信、
1326…通信、
1350…通信プロトコル、
1355…ノードA、
1360…ノードB、
1372…通信、
1373…通信、
1376…通信、
1377…通信、
1378…通信、
1400…プルダウンロードシナリオ、
1410…VODピア、
1420…フィーダVODピア、
1425…副又はフォールバックVODピア、
1430…フィーダVODピア、
1435…副VODピア、
1500…分散閉ループフィードバックシステム、
1510…VODピア、
1510a…VODピア、
1510b…VODピア、
1510c…VODピア、
1520…クラスタコントローラ、
1525…動的ネットワーク監視、
1530…変更、
1532…動的ネットワーク監視結果データベース、
1534…フィードバック、
1536…信頼レベル変更、
1538…パッケージ分布変更、
1539…他の変更、
1600…「円錐」パターン、
1602…非常に信頼性の高いVODピア、
1604…最も信頼性の低いVODピア、
1610…「円柱」パターン、
1612…最も信頼性の高いVODピア、
1614…最も信頼性の低いVODピア、
1620…「球」パターン、
1622…最も信頼性の高いVODピア、
1624…最も信頼性の低いVODピア、
1630…「多角形」パターン、
1632…最も信頼されるVODピア、
1634…最も信頼性の低いVODピア、
1700…宣伝挿入機構、
1710…宣伝パブリッシャ、
1715…宣伝、
1720…ターゲット位置、
1722…ターゲットコンテンツオブジェクト、
1724…バーカーチャネル、
1726…ターゲットGUI領域、
1730…システムデータベース、
1732…コンテンツオブジェクトメタデータ、
1734…ユーザプロファイルデータ、
1736…動的挙動及び他のデータ、
1740…システムサーバ、
1742…ライセンスサーバ、
1744…メタデータサーバ、
1746…支払/請求サーバ、
1748…レポートサーバ、
1749…商取引サーバ、
1750 宣伝サーバ
10 ... end user client node,
16 ... Publication server,
15 ... VOD peer,
20 ... Local Internet service provider (local ISP),
30 ... Regional Internet Service Provider (REG ISP),
40 ... Backbone (BB) router,
55 ... VOD support server,
100 ... dedicated VOD server,
301 ... highest confidence level,
302 ... trust level 2-5,
303 ... trust level 6-9,
304: Trust level 12,
305 ... trust level,
310 ... super cluster,
320 ... cluster,
410 ... The first group “A”,
420 ... Group "B"
430 ... Group "C"
440 ... Last group "D"
450 ... Cluster,
460 ... VOD peer,
470 ... VOD peer,
475 ... requesting VOD peer,
500 ... Node ID data structure,
501 ... Node ID,
505 ... position,
510 ... fixed part,
512 ... Box ID,
514 ... country,
516… Region,
518 ... ISP,
520 ... City,
522 ... Zip code,
524 ... longitude / latitude,
526 ... Node type,
550 ... descriptor,
552 ... IP address,
554 ... trust level,
556 ... Local node accessibility,
558 ... Global node accessibility,
560 ... Net measurement,
600 ... CRID,
601 ... CRID,
605 ... position,
610: Core CRID,
612 ... Publisher ID,
614 ... event selector,
620 ... descriptor,
625 ... main descriptor,
626 ... Publication zone,
628 ... Publication rights,
635 ... Publisher descriptor,
636: Publisher priority,
638 ... Publisher category,
645 ... end descriptor,
646 ... Content object type,
710 ... field,
720 ... "Node 1" IP address,
725 ... Value for each package group,
730 ... "Last" entry,
800 ... Tracking index data structure,
810 ... row,
815 ... CRID,
820 ... "Final" line,
910 ... Node A,
920 ... Node B,
930 ... Phase H1,
940 ... Phase H2,
950 ... Phase H3,
1005 ... Publication server,
1010 ... VOD support server,
1015 ... Node F,
1020 ... Node A,
1032 ... first communication,
1033 ... communication,
1036 ... communication,
1038 ... communication,
1039 Communication,
1050 ... communication protocol,
1055 ... Publication server,
1060 ... Node A,
1065 ... Node B,
1070 ... Node C,
1071 ... communication,
1072 ... communication,
1074 ... communication,
1075 ... communication,
1077 ... communication,
1078 ... communication,
1082 ... communication,
1083 ... response,
1086 ... communication,
1087 ... response,
1091 ... communication,
1092 ... communication,
1094 ... communication,
1100 ... Content object,
1110 ...
1120 ... End,
1150 ... VOD peer,
1200 ... relatively natural distribution of confidence levels,
1250: Intermediate confidence level,
1260: VOD support server,
1270 ... the most reliable level of trust,
1280 ... the least reliable level of confidence,
1300: Communication protocol,
1305 ... Node A,
1310 ... Node B,
1315 ... Node C,
1322 ... communication,
1323 ... communication,
1325 ... communication,
1326 Communication,
1350: communication protocol,
1355 ... Node A,
1360 ... Node B,
1372 ... communication,
1373 ... communication,
1376 ... communication,
1377 ... communication,
1378 ... communication,
1400 ... Pull download scenario,
1410 ... VOD peer,
1420 ... Feeder VOD peer,
1425 ... Deputy or fallback VOD peer,
1430: Feeder VOD peer,
1435 ... Deputy VOD peer,
1500 ... distributed closed loop feedback system,
1510 ... VOD peer,
1510a ... VOD peer,
1510b ... VOD peer,
1510c ... VOD peer,
1520 ... Cluster controller,
1525 ... Dynamic network monitoring,
1530 ... change,
1532 ... Dynamic network monitoring result database,
1534 ... feedback,
1536 ... Trust level change,
1538 ... package distribution change,
1539 ... other changes,
1600 ... "conical" pattern,
1602 ... very reliable VOD peer,
1604 ... the most unreliable VOD peer,
1610 ... "Cylinder" pattern,
1612 ... The most reliable VOD peer,
1614 ... the most unreliable VOD peer,
1620 ... "sphere" pattern,
1622 ... The most reliable VOD peer,
1624 ... the most unreliable VOD peer,
1630 ... "polygon" pattern,
1632 ... The most trusted VOD peer,
1634 ... the most unreliable VOD peer,
1700 ... Advertising insertion mechanism,
1710 ... Advertising publisher,
1715 ... advertising,
1720 ... target position,
1722 ... Target content object,
1724 ... Barker Channel,
1726: Target GUI area,
1730 ... System database,
1732 ... Content object metadata,
1734: User profile data,
1736 ... Dynamic behavior and other data,
1740: System server,
1742: License server,
1744: metadata server,
1746 ... payment / billing server,
1748: Report server,
1749 ... commerce server,
1750 advertising server

Claims (2)

ネットワークノード上での順序付き再生のためにリニアコンテンツオブジェクトを要求時に取り出すディジタルコンテンツ配信システムによって実施される方法であって、
(a)第1リニアコンテンツオブジェクトを構成要素パッケージの第1グループ及び第2グループに分割し前記構成要素パッケージの第1グループは前記構成要素パッケージの第2グループよりも前の順序で発生するものであり、前記構成要素パッケージの第1グループを第1ネットワークノードに分配するとともに前記構成要素パッケージの第2グループを第2ネットワークノードに分配するステップと、
(b)前記第1リニアコンテンツオブジェクトの再生に関する第3ネットワークノードによる要求に応答して、前記構成要素パッケージの第1グループ及び第2グループを検索し、前記第1ネットワークノード上の前記第1グループ及び前記第2ネットワークノード上の前記第2グループの各々の位置を識別し、前記第3ネットワークノードでの前記第1リニアコンテンツオブジェクトの順序付き再生のために前記第1グループ及び前記第2グループを取り出すステップと、
(c)前記第3ネットワークノードを含む通信を観察するステップであって、前記通信は、挙動アプリケーション固有ネットワークトラフィック並びに全般的ネットワーク帯域幅及び接続信頼性のテストを含む、ステップと、
(d)前記第3ネットワークノードを含む通信の前記観察によって確かめられた情報に応答して、
(i)前記第3ネットワークノードの経時的な信頼レベル要因を反映する信頼レベルを更新するタスクと、
(ii)前記第1リニアコンテンツオブジェクトの1つ以上のパッケージのコピーの個数及び位置を変更することによって、前記第1ネットワークノード及び前記第2ネットワークノード間で前記第1リニアコンテンツオブジェクトを再分配するタスクと、
のうちの1つ以上を実行するステップと、を含み、
(e)これによって、リニアコンテンツオブジェクトを取り出す当該方法は、前記第3ネットワークノードが、前記第1リニアコンテンツオブジェクトの再生に関するその要求に先立って、前記第1リニアコンテンツオブジェクトを前記第3ネットワークノードに所定の時間間隔以内に配信する前記ディジタルコンテンツ配信システムのネットワークの能力を識別することを可能にすることによって、ネットワークサービス品質(NQoS)を提供する、方法。
A method implemented by a digital content distribution system that retrieves linear content objects on demand for ordered playback on a network node, comprising:
(A) dividing the first linear content object into first and second groups of components the package, a first group of said component package is generated in the second than the group before the order of the previous SL component package is intended to distribute the second group of the component package as well as distributing the first group of the component package to the first network node to a second network node, the steps,
(B) in response to a request by a third network node relating to playback of the first linear content object, searching for a first group and a second group of the component package, and the first group on the first network node and the second identifying the respective positions of the second group of nodes on the network, the third the first and second groups for ordered playback of the first linear content object at the network node A step of taking out
Comprising the steps of: observing communications comprising (c) the third network node, wherein the communication includes behavior application-specific network traffic and general network bandwidth and connection reliability of the test, the steps,
(D) in response to information ascertained by the observation of communications involving the third network node;
(I) a task to update a trust level reflecting a temporal trust level factor of the third network node;
(Ii) by changing the number and position of one or more packages of copies of the first linear content object, redistributing the first linear content object between said first network node and the second network node Task and
Performing one or more of:
(E) Thus, the method of retrieving linear content objects, the third network node, prior to the request for reproduction of the first linear content object, the first linear content object to the third network node A method of providing network quality of service (NQoS) by enabling identification of a network capability of the digital content delivery system to deliver within a predetermined time interval.
ネットワークノード上での順序付き再生のためにリニアコンテンツオブジェクトを要求時に取り出すディジタルコンテンツ配信システムであって、
(a)第1のリニアコンテンツオブジェクトを構成要素パッケージの第1のグループ及び第2のグループに分割しパッケージの前記第1のグループはパッケージの前記第2のグループよりも前の順序で発生するものであり、パッケージの前記第1のグループを第1のネットワークノードに分配し、パッケージの前記第2のグループを第2のネットワークノードに分配するコンテンツプッシャーと、
(b)前記第1のリニアコンテンツオブジェクトの再生を求める第3のネットワークノードによる要求に応答して、パッケージの前記第1及び第2のグループを検索し、前記第1のネットワークノード上の前記第1のグループ及び前記第2のネットワークノード上の前記第2のグループの各々の位置を識別し、前記第3のネットワークノードでの前記第1のリニアコンテンツオブジェクトの順序付き再生のために前記第1のグループ及び前記第2のグループを取り出すコンテンツプラーと、
(c)前記第3のネットワークノードを含む通信を観察するネットワークモニタであって、該通信は、挙動アプリケーション固有のネットワークトラフィック並びに全般的ネットワーク帯域幅及び接続信頼性のテストを含む、ネットワークモニタと、
(d)前記ネットワークモニタにより確認された情報に応答して、
(i)前記第3のネットワークノードの経時的な信頼レベル要因を反映する信頼レベルを更新するタスクと、
(ii)前記第1のリニアコンテンツオブジェクトの1つ以上のパッケージのコピーの個数及び位置を変更することにより前記第1のネットワークノード及び前記第2のネットワークノード間で前記第1のリニアコンテンツオブジェクトを再分配するタスク、のうちの1つ以上を実行する動的フィードバックコントローラと、を備え、
(e)これにより、前記ディジタルコンテンツ配信システムは、前記第3のネットワークノードが、前記第1のリニアコンテンツオブジェクトの再生を求めるその要求に先立って、前記第1のリニアコンテンツオブジェクトを前記第3のネットワークノードに所定の時間間隔以内に配信する前記ディジタルコンテンツ配信システムのネットワークの能力を識別できるようにすることにより、ネットワークサービス品質(NQoS)を提供する、ディジタルコンテンツ配信システム。
A digital content delivery system that retrieves linear content objects on demand for ordered playback on a network node,
(A) is divided into first and second groups of first linear content object components package, the first group of packages occurs prior order than said second group of packages is intended to distribute the first group of packages to a first network node, distributing the second group of packages to a second network node, and content pusher,
(B) in response to a request by a third network node seeking to play the first linear content object, the first and second groups of packages are searched and the first network node on the first network node Identifying the position of each of the first group and the second group on the second network node, and for the ordered playback of the first linear content object on the third network node A content puller for retrieving the second group and the second group;
(C) a network monitor for observing the communication including the third network node, said communication includes behavior application-specific network traffic and general network bandwidth and connection reliability test, and a network monitor,
(D) in response to the information confirmed by the network monitor,
(I) a task to update a trust level that reflects a trust level factor over time of the third network node;
(Ii) the first linear content the first linear content object between one or more packages of the first by changing the number and location of the copy of the network node and the second network node for the object A dynamic feedback controller that performs one or more of the tasks to be redistributed ,
(E) Thereby, in the digital content distribution system, the third network node sends the first linear content object to the third network prior to the request for reproduction of the first linear content object. A digital content delivery system that provides network quality of service (NQoS) by enabling identification of the network 's ability of the digital content delivery system to deliver to a network node within a predetermined time interval.
JP2013265868A 2013-12-24 2013-12-24 Push-pull based content distribution system Expired - Fee Related JP6016773B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013265868A JP6016773B2 (en) 2013-12-24 2013-12-24 Push-pull based content distribution system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013265868A JP6016773B2 (en) 2013-12-24 2013-12-24 Push-pull based content distribution system

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2007340707A Division JP2009188436A (en) 2007-12-28 2007-12-28 Push-pull base content distribution system

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2016188433A Division JP2017017753A (en) 2016-09-27 2016-09-27 Push-pull-based content distribution system

Publications (2)

Publication Number Publication Date
JP2014116949A JP2014116949A (en) 2014-06-26
JP6016773B2 true JP6016773B2 (en) 2016-10-26

Family

ID=51172476

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013265868A Expired - Fee Related JP6016773B2 (en) 2013-12-24 2013-12-24 Push-pull based content distribution system

Country Status (1)

Country Link
JP (1) JP6016773B2 (en)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4306365B2 (en) * 2003-08-07 2009-07-29 ソニー株式会社 Server and content receiving apparatus
US20060069800A1 (en) * 2004-09-03 2006-03-30 Microsoft Corporation System and method for erasure coding of streaming media
JP4573732B2 (en) * 2005-08-29 2010-11-04 日本電信電話株式会社 Servant device

Also Published As

Publication number Publication date
JP2014116949A (en) 2014-06-26

Similar Documents

Publication Publication Date Title
US20080059631A1 (en) Push-Pull Based Content Delivery System
US7761900B2 (en) Distribution of content and advertisement
CN110417916B (en) Content distribution method capable of feeding back income, central node and edge node
US9508079B2 (en) Privacy-counscious advertising
US20080072264A1 (en) Distribution of content on a network
US9172751B2 (en) Content distribution
US20060112143A1 (en) Method and system to facilitate publishing and distribution of digital media
US7970856B2 (en) System and method for managing and distributing assets over a network
US20140074991A1 (en) Systems and methods for dynamic networked peer-to-peer content distribution
JP5456894B2 (en) Targeted advertising in peer-to-peer networks
US20160381127A1 (en) Systems and methods for dynamic networked peer-to-peer content distribution
US20160112483A1 (en) Adaptive bit rates during broadcast transmission in distributed content delivery networks
US20230119540A1 (en) Content delivery system special network device and special local area network connection, content discovery, data transfer, and control methods
WO2009087549A2 (en) Multimedia content prefetching engine
CN114222086B (en) Method, system, medium and electronic device for scheduling audio and video code stream
JP2015525014A (en) Capturing multiple signals with the same meaning
EP2077524B1 (en) Push-pull based content delivery system
JP6016773B2 (en) Push-pull based content distribution system
Tian et al. A novel caching mechanism for peer-to-peer based media-on-demand streaming
JP2009188436A (en) Push-pull base content distribution system
JP2017017753A (en) Push-pull-based content distribution system
JP6963289B2 (en) Content distribution method and content distribution system
US10158923B2 (en) Method of broadcasting contents by streaming in a peer-to-peer network
JP2008085678A (en) Content distribution system, content distribution method, terminal device in the content distribution system and program thereof
Wang et al. CDNPatch: a cost‐effective failover mechanism for hybrid CDN‐P2P live streaming systems

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141021

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20150114

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150420

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151208

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20160128

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160606

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160830

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160927

R150 Certificate of patent or registration of utility model

Ref document number: 6016773

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees