JP2004514961A - コンテンツのトラッキング - Google Patents
コンテンツのトラッキング Download PDFInfo
- Publication number
- JP2004514961A JP2004514961A JP2001588202A JP2001588202A JP2004514961A JP 2004514961 A JP2004514961 A JP 2004514961A JP 2001588202 A JP2001588202 A JP 2001588202A JP 2001588202 A JP2001588202 A JP 2001588202A JP 2004514961 A JP2004514961 A JP 2004514961A
- Authority
- JP
- Japan
- Prior art keywords
- content
- server
- exchange
- origin server
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 claims description 55
- 238000009826 distribution Methods 0.000 claims description 47
- 230000004044 response Effects 0.000 claims description 28
- 230000008859 change Effects 0.000 claims description 15
- 230000036316 preload Effects 0.000 claims description 3
- 230000005540 biological transmission Effects 0.000 abstract description 4
- 238000003860 storage Methods 0.000 description 52
- 230000006870 function Effects 0.000 description 47
- 230000036541 health Effects 0.000 description 26
- 238000010586 diagram Methods 0.000 description 24
- 238000011156 evaluation Methods 0.000 description 24
- 230000008569 process Effects 0.000 description 21
- 238000012546 transfer Methods 0.000 description 19
- 230000009193 crawling Effects 0.000 description 12
- 235000008694 Humulus lupulus Nutrition 0.000 description 11
- 238000012360 testing method Methods 0.000 description 11
- 230000006835 compression Effects 0.000 description 8
- 238000007906 compression Methods 0.000 description 8
- 230000006837 decompression Effects 0.000 description 8
- 238000012545 processing Methods 0.000 description 8
- 230000007246 mechanism Effects 0.000 description 6
- 238000003012 network analysis Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 5
- 238000012217 deletion Methods 0.000 description 5
- 230000037430 deletion Effects 0.000 description 5
- 238000010606 normalization Methods 0.000 description 4
- 230000002776 aggregation Effects 0.000 description 3
- 238000004220 aggregation Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 241001365914 Taira Species 0.000 description 1
- ODCKICSDIPVTRM-UHFFFAOYSA-N [4-[2-hydroxy-3-(propan-2-ylazaniumyl)propoxy]naphthalen-1-yl] sulfate Chemical compound C1=CC=C2C(OCC(O)CNC(C)C)=CC=C(OS(O)(=O)=O)C2=C1 ODCKICSDIPVTRM-UHFFFAOYSA-N 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9574—Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/30—Routing of multiclass traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
- H04L61/4505—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
- H04L61/4511—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
- H04L61/4552—Lookup mechanisms between a plurality of directories; Synchronisation of directories, e.g. metadirectories
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/50—Address allocation
- H04L61/5069—Address allocation for group communication, multicast communication or broadcast communication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
- H04L65/611—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for multicast or broadcast
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/80—Responding to QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/101—Server selection for load balancing based on network conditions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1029—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/566—Grouping or aggregating service requests, e.g. for unified processing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/63—Routing a service request depending on the request content or context
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/24—Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2216/00—Indexing scheme relating to additional aspects of information retrieval not explicitly covered by G06F16/00 and subgroups
- G06F2216/09—Obsolescence
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2101/00—Indexing scheme associated with group H04L61/00
- H04L2101/60—Types of network addresses
- H04L2101/604—Address structures or formats
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2101/00—Indexing scheme associated with group H04L61/00
- H04L2101/60—Types of network addresses
- H04L2101/618—Details of network addresses
- H04L2101/663—Transport layer addresses, e.g. aspects of transmission control protocol [TCP] or user datagram protocol [UDP] ports
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/083—Network architectures or network communication protocols for network security for authentication of entities using passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/10015—Access to distributed or replicated servers, e.g. using brokers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1023—Server selection for load balancing based on a hash applied to IP addresses or costs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1038—Load balancing arrangements to avoid a single path through a load balancer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/329—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Multimedia (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computer Hardware Design (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Valve Device For Special Equipments (AREA)
- Amplifiers (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本発明は、ネットワーク上でコンテンツを配信するときのコンテンツオブジェクトのトラッキングに関する。本発明の一実施形態では複数のコンテンツ交換部からステータス情報を遠隔の箇所に報告し、第1及び第2のコンテンツ交換部とリモートサーバと第1及び第2のデータリンクとを有する。第1のコンテンツ交換部は第1の組をなす複数のコンテンツオブジェクト部分を有し、第2のコンテンツ交換部は第2の組をなす複数のコンテンツオブジェクト部分を有する。リモートサーバは第1の複数のコンテンツオブジェクト部分の第1サブセットを有し、第2の複数のコンテンツオブジェクト部分の第2サブセットを有する。第1のデータリンクは第1サブセットの第1カタログを第1コンテンツ交換部とサーバとの間で伝送し、第2のデータリンクは第2サブセットの第2カタログを第2コンテンツ交換部とサーバとの間で伝送する。
Description
【0001】
本願は、2000年6月1日に出願された米国特許仮出願第60/209,007号の利益を主張する。
【0002】
(発明の背景)
本発明はコンテンツ配信一般に関する。より詳細には、インターネット上でコンテンツを配信する際におけるコンテンツオブジェクトのトラッキングに関する。
【0003】
最小の一定速度で高品質の大容量コンテンツオブジェクトを転送し、適切なQOSを提供したいという要望がある。ライブビデオブロードキャストは最小の一定速度で転送される大容量コンテンツオブジェクトの好適な例である。しかしインターネットは、これら種類の同報通信には貧弱なネットワークといえる。いくつかの潜在的ホップの各部におけるデータ品質の損失や、送信の大半での限定されたバンド幅や、インターネットが一定のデータ速度で長期間データを流すように設計されなかったことによるためである。
【0004】
上記のように、情報を損失することなく一定のデータ速度で大容量オブジェクトを転送することには、問題が多い。これらの重要な問題に対処するため、ストリーミングメディアを後時に再生するためにローカルハードドライブに完全にダウンロードする。ローカルハードドライブからの再生は、インターネットからのストリームコンテンツの配信に関連した欠点は回避する。しかしながら、インターネットから受信したコンテンツストリームをそれがダウンロードされた時に再生したいという要望がある。
【0005】
(発明の要約)
本発明は、ネットワーク上でコンテンツを配信するときのコンテンツオブジェクトのトラッキングに関する。本発明の一実施形態では複数のコンテンツ交換部からステータス情報を遠隔の箇所に報告し、第1及び第2のコンテンツ交換部とリモートサーバと第1及び第2のデータリンクとを有する。第1のコンテンツ交換部は第1の組をなす複数のコンテンツオブジェクト部分を有し、第2のコンテンツ交換部は第2の組をなす複数のコンテンツオブジェクト部分を有する。リモートサーバは第1の複数のコンテンツオブジェクト部分の第1サブセットを有し、第2の複数のコンテンツオブジェクト部分の第2サブセットを有する。第1のデータリンクは第1サブセットの第1カタログを第1コンテンツ交換部とサーバとの間で伝送し、第2のデータリンクは第2サブセットの第2カタログを第2コンテンツ交換部とサーバとの間で伝送する。
【0006】
図面及び請求項を含む明細書の以下の部分の説明により、本発明の他の特徴、及び効果が認識できるであろう。本発明の様々な実施態様の構造及び操作のみならず、本発明のさらなる特徴及び効果を添付の図面に関連させて下記により詳細に記載する。
【0007】
(発明の実施の形態)
本発明は、コンテンツ配信システムに亙り新しい方法でのコンテンツのトラッキングを可能とさせる。一実施形態ではそれぞれのコンテンツ交換部は、同コンテンツ交換部に記憶されたあらゆるコンテンツオブジェクト部分についてコンテンツマネージャに報告する。システムを介したコンテンツ交換部からの報告をもってコンテンツマネージャはコンテンツロケーションデータベースを維持管理する。コンテンツマネージャ又はコンテンツトラッカーが切断されたときに他の構成要素に通知が送られる。
【0008】
図面において、類似した要素、及び/又は機能は、同一の参照符号を有する場合がある。さらに、同一種類の異なる要素は、参照符号に続くダッシュや、類似した要素同士を識別させる第2の符号によって識別される。第1の参照符号のみが明細書で使用されていれば、その記載は第2の参照符号に関わりなく、同一の第1の参照符号を有したあらゆる類似の要素のうちの1つにも適用可能である。
【0009】
図1を参照する。コンテンツ配信システム100の実施形態のブロック図が示されている。本実施形態においてコンテンツ配信システム100は、アクティブディレクトリ104と、1つ以上のオリジンサーバ108と、1つ以上のクライアントコンピュータ112と、1つ以上のコンテンツ交換部116と、1つ以上の外部オリジンサーバ118と、インターネット120と、クローリングディレクトリ124とを有する。特定のクライアントコンピュータ112は、アクティブディレクトリ104と対話して、ダウンロードするためのコンテンツオブジェクトを選択する。オブジェクトは、ストリーミングメディアの場合にはダウンロードの間に再生可能であり、或いは後時のために記憶することも可能である。
【0010】
コンテンツオブジェクトは、ネットワークからダウンロード可能な、例えば、オーディオ、ビデオ、データなどあらゆる種類の情報であってもよい。コンテンツオブジェクトの要求は、優先情報とともにクライアントコンピュータ112から適切なオリジンサーバ108に転送される。オリジンサーバ108は、オブジェクトをどこからダウンロードするかを決定する。満足すべきQOSを提供するために、あらゆるコンテンツ交換部116、或いはオリジンサーバ108自体がオブジェクトを提供可能である。
【0011】
アクティブディレクトリ104は、クライアントコンピュータ112においてコンテンツオブジェクトを選択するためのインタフェースとなり得る。コンテンツ配信システム100を可能とするために、オリジンサーバ108と任意のクライアントコンピュータ112の双方のためのソフトウェアがアクティブディレクトリ104からダウンロードされ得る。希望するコンテンツオブジェクトを判定するためにディレクトリインタフェースページ、又は検索インタフェースページのいずれかを使用してもよい。オリジンサーバ108上のコンテンツオブジェクトとのリンク中断を回避すべく、インタフェースはアクティブに維持される。
【0012】
コンテンツ交換部116がオリジンサーバ108からコンテンツオブジェクトを要求する場合、アクティブディレクトリ104は、適切なオリジンサーバ108へ戻るパスを提供可能である。
【0013】
他の実施例では、複数のアクティブディレクトリを有してもよい。システムのユーザは、ローディングを配信するためにいくつかのアクティブディレクトリのうちで分割されていてもよい。さらに、1つのアクティブディレクトリがオフラインの場合には他のアクティブディレクトリがローディングを吸収できるように、他のアクティブディレクトリを冗長化のために使用してもよい。
【0014】
いくつかの実施形態においてオリジンサーバ108は、コンテンツオブジェクトのソースを提供し、コンテンツオブジェクトの優先ソースにユーザを導き、アクティブディレクトリ104にディレクトリ情報を提供する。コンテンツオブジェクトはオリジンサーバ108によってシステム100に導入される。導入は、アクティブディレクトリ104を利用可能にするための、オリジンサーバ管理者によるコンテンツオブジェクトの選択を含む。管理者とは、オリジンサーバ108を管理する人又はシステムである。コンテンツオブジェクトには、以前に記憶された情報、或いは情報のストリーミングによる提供が含まれる。オリジンサーバ108は所定のサイクルに従って、オリジンサーバ108上のコンテンツの変更とともに更新される選択情報のカタログを提供する。
【0015】
オリジンサーバ108は、コンテンツオブジェクトをダウンロードするために、クライアントコンピュータ112に指示すべき優先ソースを判定する。クライアントコンピュータ112の優先リストと、コンテンツ交換のローディングと、コンテンツオブジェクトのコピーがある場所との全ては、クライアントコンピュータを情報の優先ソースへとあて先変更する際にオリジンサーバ108にて検討する事項である。そのソースは、オリジンサーバ108自体か、又はコンテンツ交換部116のうちの1つである。
【0016】
ユーザは、所望のコンテンツオブジェクトを見つけ、その後そのオブジェクトをダウンロードするためにクライアントコンピュータ112に指示する。クライアントコンピュータ112は、アクティブディレクトリ104からダウンロードしたビューワオブジェクトプロキシソフトウェアを使用して、適切なQOSでコンテンツ配信が可能なコンテンツ交換116部を判定する。この適切なQOSを有するコンテンツ交換部116を判定する処理には、例えば優先リストを準備する際に最高の結果を生成する可能性が高いコンテンツ交換部からのテスト情報の受信が含まれる。カスタマイズされた方法を要望する場合、ユーザは、コンテンツ交換部116の優先リストを変更できる。オリジンサーバ108がコンテンツオブジェクトのソースを決定する際に、適切なQOSを提供するために優先情報を使用する。
【0017】
外部オリジンサーバ118は、クライアントコンピュータ112が利用可能なコンテンツオブジェクトのさらなるソースである。一実施形態では、外部オリジンサーバ118は、コンテンツ交換部116に接続される。
【0018】
コンテンツ交換部116は、コンテンツオブジェクトのキャッシュである。これら多数のコンテンツ交換部116は、インターネット120の異なる箇所に設置され、コンテンツオブジェクトをキャッシュする。情報は、例えば、ユーザにとっての情報の要望度や、ユーザが直ちに利用可能なコンテンツを要求するオリジンサーバ108へのサービスや、改善したQOSを要求するユーザへのサービスなどの、多くの考察に基づいてキャッシュされる。コンテンツ交換部116のグループ化は、かたまりごとであっても、或いはコンテンツオブジェクトに対するクライアントコンピュータ112の要求を提供すべく個別であってもよい。
【0019】
要求されているコンテンツオブジェクト、又はその一部を、それを要求しているユーザがコンテンツ交換部116から見つけられない場合、コンテンツ交換部116から他のコンテンツ交換部へ、そのコンテンツオブジェクトの要求がなされる。他のどのコンテンツ交換部116もコンテンツオブジェクトを有しない場合、アクティブディレクトリ104においてオリジンサーバ108に対する問い合わせがなされる。オリジンサーバ108は、コンテンツオブジェクトのソースであり、かつコンテンツオブジェクトがそこからダウンロードされる。コンテンツ交換部116がコンテンツオブジェクトを集めている間、クライアントコンピュータ112は、ダウンロード可能な最初の部分を受信している。コンテンツオブジェクトはいくつかのコンテンツ交換部116に部分ごとに記憶可能であり、要求を出すコンテンツ交換部116がそれら部分を検索して、クライアントコンピュータ112に要求されているような全体のコンテンツオブジェクトに再構築する。
【0020】
いくつかの実施形態では、要求したコンテンツオブジェクト、又は要求したコンテンツオブジェクトの一部を、それを要求しているユーザがコンテンツ交換部116から見つけられないときは、要求したコンテンツオブジェクトを検索するために、コンテンツ交換116は、外部オリジンサーバ118に要求を出すことが可能である。
【0021】
クローリングディレクトリ124は、オリジンサーバ108が報告するカタログ情報を補充するために使用される。ユーザのためにコンテンツオブジェクトを検索する際、アクティブディレクトリ104は、オリジンサーバ108から入手可能なコンテンツオブジェクト、及びクローリングディレクトリ124が発見した他のコンテンツオブジェクトを表示できる。クローリングディレクトリ124は、ウェブを横断することによって遭遇したコンテンツオブジェクトやその他の情報をカタログ化する。例えば、カタログのキーワード検索を実行して、ユーザがシステム100上のあらゆるオリジンサーバからであっても入手不能なコンテンツオブジェクトに到達できる。クライアントコンピュータ112がコンテンツオブジェクトをダウンロードした時にそれをキャッシュするために、コンテンツ交換部116の1つがアクティブディレクトリ104によって選択される。この実施形態では、1つのクローリングディレクトリ124だけを使用しているが、他の実施形態では、さらなる検索結果を提供すべく、多数のクローリングディレクトリを使用可能である。
【0022】
インターネット120は、ルータによって共にリンクされた複数のサーバからなる。データは、最終のあて先に到達するまで1つのルータから次のルータへと、ホッピングしてインターネット120を進行するパケットに分割される。各パケットは、インターネット内で異なるルートをとってもよく、異なる時に最終受信地に到着してもよい。さらに、任意のルータのバンド幅が飽和する時には、いくつかのパケットがインターネット120中を進行している間に消失することがある。コンテンツオブジェクトのソースと最終あて先との間のホップ数が増加すると、過度の遅延やパケット消失の可能性も同様に増加する。
【0023】
コンテンツオブジェクトが、ソースから最終あて先までインターネット120内のパスを横断するため、パス内の任意の2ルータ間の最小バンド幅が、そのパスの最大バンド幅を決定する。通常、インターネット120からクライアントコンピュータまでのバンド幅は、最少のバンド幅割り当てを有する。他の場合には、ルータ間の他のホップが最小バンド幅を有する。コンテンツ交換部116とクライアントコンピュータ112との間のホップが最少の状態で、コンテンツ交換部116にコンテンツオブジェクトをキャッシュすることが十分なQOSを得る可能性を高める。
【0024】
クライアントコンピュータからインターネット120へのデータレートを上回らない好適なデータレートでコンテンツオブジェクトをダウンロードすることが、適切なQOSとなる。ユーザが期待できる最高のQOSは、それらのネットワークへの接続速度や、それらのコンピュータの処理能力や、他の要因によって決定される。最低のQOSは、ユーザが一定の制約において要望する品質に基づき、ユーザが主観的に決定する。例えば、400Kbpsのネットワーク接続と高速コンピュータを有するユーザは、オーディオクリップのために、28Kbps、56Kbps、128Kbpsでのストリームの選択肢があり、その中からユーザは128Kbpsのストリームを選択してもよい。クライアントコンピュータが提供するデータ速度が128〜400Kbpsの範囲にある限り、そのストリームに適切なQOSを得る事ができる。
【0025】
上記の実施形態は、主に異なるブロック間の接続にインターネット120を使用しているが、他の実施形態では、インターネット120以外の個人的なリンクを使用してもよい。さらに、システム100外のコンテンツオブジェクトは、エクステントキャッシング、暗号化、及び圧縮が提供される場合にはシステム100から恩恵を受ける。
【0026】
図2を参照する。コンテンツ配信システム100のアクティブディレクトリ部104の実施形態を示すブロック図が示されている。アクティブディレクトリ104は、ダイナミックドメインネームサーバ(DNS)204と、サーバマネージャ208と、ディレクトリページ212と、検索ページ216と、ダウンロードページ220と、加入者データベース224と、サーバデータベース228と、コンテンツ交換データベース232と、ルーティングデータベース234とを有する。コンテンツ配信システム100は、ユーザにディレクトリ情報を提供するためにアクティブディレクトリ104と対話し、ユーザによるコンテンツオブジェクトのダウンロードを支援する。
【0027】
クライアントコンピュータ112のユーザ、及びオリジンサーバ108の管理者の両方が、コンテンツ配信システム100の加入者である。ソフトウェアは、ダウンロードページからユーザ、及び/又は、管理者にダウンロードされる。実施形態によってはクライアントコンピュータ112のためのソフトウェアが随意にあり、QOSを改善する。オリジンサーバ108のソフトウェアは、アクティブディレクトリ104がシステム100上で利用できるコンテンツを更新し、そのコンテンツを受信するための優先ソースにクライアントコンピュータ112を導くことを可能とする。
【0028】
クライアントコンピュータ112は、アクティブディレクトリ104のドメインに付随して、所望のコンテンツオブジェクトを見出す。優先度に従って、コンテンツオブジェクトを見つけるためにユーザはディレクトリページ212や検索ページ216を使用してもよい。検索ページ216は、クローリングディレクトリ124から収集された情報だけでなく、全てのオリジンサーバ108が提供したコンテンツオブジェクトのカタログにアクセスする従来のブールの検索エンジンであってもよい。他の実施形態では、オリジンサーバ108からのコンテンツの検索が不成功に終わった場合にはクローリングディレクトリ124からの情報のみを表示するか、或いは、クローリングディレクトリ124からの情報を全く除外する場合がある。全オリジンサーバ108のコンテンツオブジェクトのカタログは、サーバデータベース228に維持される。
【0029】
ディレクトリページ212は、対象により編成されるカテゴリの階層に利用可能なコンテンツオブジェクトを編成する。例えば、第1ページは、一般的に関心のある多数の主題を表示してもよく、ユーザは、スポーツを選択する。階層では1つ下の層である次ページでは、多数のスポーツを表示し、ユーザは、フットボールを選択する。さらに1つ下の階層レベルで、ユーザは、サンディエゴチャージャーズ(商標)を選択して、関連したコンテンツオブジェクトリンクの、次のページを見てもよい。
【0030】
管理者は、オリジンサーバ108上のコンテンツを分類して、ディレクトリページ212にそれを適切に表示させる。サイト、ディレクトリ、又はファイルのベースで、管理者は、そのコンテンツオブジェクトに関連したHTML SSIタグとしてコンテンツオブジェクトのカテゴリを選択できる。この分類を入手しアクティブディレクトリに記憶して、コンテンツオブジェクトを異なるカテゴリで表示可能にする。さらに、調停者がディレクトリページ212のカテゴリにコンテンツオブジェクトを記載して配置してもよい。例えば、調停者はあるコンテンツオブジェクトをより目立たせて表示する対象とするためにマークをつけ、及び/又は、コンテンツオブジェクトについてのレビューをつけることがある。
【0031】
サーバマネージャ208は、全てのクライアントコンピュータ112、全てのオリジンサーバ108、全ての外部オリジンサーバ118、全てのコンテンツ交換部116、及び、オリジンサーバ108上の全てのコンテンツオブジェクトに関する情報を維持管理する。クライアントコンピュータ112とオリジンサーバ108に関する情報は、加入者データベース224で維持管理される。クライアントコンピュータ112に関連した各ユーザについて、フルネーム、ログインネーム、パスワード、固有のネーム、利用できる代用貨幣クレジット、その他の情報が加入者データベース224で維持管理される。このデータベース224は、また、オリジンサーバ108を確認した最終時刻、オリジンサーバ108のインターネットプロトコル(IP)アドレス、コンテンツマネージャサーバが実行するポート、オリジンサーバ108のオン/オフ回線ステータス、バナー広告URL、オリジンサーバ108名、オリジンサーバ108の説明、オリジンサーバ108を使用するのに必要なクレジット若しくは代用貨幣又は他の課金モデル、一度に可能な接続数やビューワ数を保持する。
【0032】
全てのオリジンサーバ108のコンテンツオブジェクトに関する情報は、サーバデータベース228で維持管理される。各コンテンツオブジェクトについて、オリジンサーバネーム、コンテンツオブジェクトファイルネーム、パスを、カテゴリ情報、概要、キーワードとともに記憶する。ディレクトリ、検索ページ212,216をナビゲーション中、ユーザにコンテンツ選択を提供するようサーバデータベース228に問い合わせる。サーバデータベース228に最新情報を維持するために、サーバマネージャ208は、周期的にオリジンサーバ108と対話してコンテンツオブジェクトのカタログの最新の変更を入手し、オリジンサーバ108がオフラインになったか否かを判定する。オリジンサーバ108がオフラインになったときは常に、そのオリジンサーバ108に対応するサーバデータベース228へのエントリを削除し、加入者データベース224のステータス情報を更新する。
【0033】
ある実施形態では、サーバデータベース228へのエントリは、オリジンサーバ108がオフラインになった後でも存続する。オリジンサーバに関連したコンテンツが利用できないことを反映するためにステータスを更新するが、情報は、サーバデータベース228内に記憶されたままである。ステータスがオンラインに更新されると、情報は、コンテンツオブジェクトを検索しているユーザに再び示される。状況によっては、オリジンサーバ108はある期間にオフラインになる予定であることをアクティブディレクトリ104に示してもよい。その期間が短期間だと推定される場合、アクティブディレクトリは情報をユーザに表示せずに、サーバデータベース228内に保持できる。
【0034】
システム100で利用可能なコンテンツ交換部116のリストは、コンテンツ交換データベース232にてサーバマネージャ208が維持管理する。ある実施形態では、コンテンツ交換データベース232は、コンテンツ配信システム100内で利用可能な全てのコンテンツ交換部116のIPアドレスのリストを含むことがある。さらに、コンテンツ交換データベース232は、各コンテンツ交換部116に関連した多数のコンテンツ交換フィールドを含むことがある。例えば、コンテンツ交換データベース232の各コンテンツ交換部116に関連したフィールドには、コンテンツ交換ID、コンテンツ交換サイト、コンテンツ交換プロバイダ、コンテンツ交換名、コンテンツ交換位置、コンテンツ交換ステータス、アイコン、他のいかなる所望の、又は必要な情報が含まれ得る
【0035】
コンテンツ交換IDとコンテンツ交換サイトはこれらを合わせて、特定のコンテンツ交換サイトにて固有のコンテンツ交換116を識別する。コンテンツ交換プロバイダは、コンテンツ交換に責任を有する関係者、例えば、XYZ会社の標識である。コンテンツ名は、ドメインネームであり、コンテンツ交換位置は、コンテンツ交換部116についての地理的座標である。例示の実施形態では、コンテンツ交換データベース232は、コンテンツ交換ID、コンテンツ交換サイト、コンテンツ交換IPアドレス、コンテンツ交換プロバイダ、コンテンツ交換名、コンテンツ交換場所、及び、コンテンツ交換データベース232における各コンテンツ交換部116のアイコンを含む。
【0036】
一般に、コンテンツ交換データベース232は、改良されたQOS基準、又はサブスクリプションサービス基準を含むが、これに限らず様々な方法に基づいて、地域別に分類、又は分割できる。さらに、コンテンツ交換データベース232は、代替のアクティブディレクトリ104、オリジンサーバ108のリスト、或いは他のいかなる有効な、又は必要な情報を含むこともある。
【0037】
システム100のコンテンツ交換部116は、サーバマネージャ208にステータスを定期的に提供する。コンテンツ交換116が利用可能、又は利用不能となった場合には、それら動作ステータスはサーバマネージャ208に報告され、コンテンツ交換データベース232に記録される。ある実施形態では、コンテンツ交換データベース232は、コンテンツ交換部116のローディング、容量、利用度、ヘルスを含む付加的なステータス情報を含むことができる。
【0038】
ルーティングデータベース234は、外部オリジンサーバ118のリストを有する。ある実施形態では、ルーティングデータベース234は、外部オリジンサーバ118に関する識別、ステータス、構成情報を有する。識別情報には、外部オリジンサーバ118のIPアドレスとドメインネームが含まれ得る。ステータス情報には、外部オリジンサーバの稼働率、ローディング、又は他のステータスが含まれ得る。構成情報には、代替の外部オリジンサーバ118のリストが含まれ得る。一実施形態では、ルーティングデータベース234は、各外部オリジンサーバ118のIPアドレスとドメインネームを有する。ある実施形態では、ルーティングデータベース234内で外部オリジンサーバ118を識別することが、外部オリジンサーバ118をコンテンツ配信システム100と関連付けるための機構である。
【0039】
ルーティングデータベース内の各外部オリジンサーバ118について、外部オリジンサーバ118上の情報にアクセスするためにコンテンツ交換116の使用が許可されたユーザ名のリストがある。ユーザ名は、クライアントコンピュータ112のユーザに固有である。クライアントコンピュータがコンテンツ交換を通してルーティング可能な外部オリジンサーバ118のリストがクライアントコンピュータ112に提供される。クライアントコンピュータ112は、ルーティングデータベースからの情報を使用して、外部オリジンサーバ118に対するユーザ要求をコンテンツ交換116にあて先変更する。コンテンツ交換部116が外部オリジンサーバ118からのコンテンツオブジェクトを収容した後、バンド幅を外部オリジンサーバ118からコンテンツ交換116部に下ろす。この高度なサービスのためにユーザは、コンテンツ交換のオーナー、及び/又はオリジンサーバの管理者に、代金を払うこともある。
【0040】
動的DNS204は、オリジンサーバ108の各IPアドレスのオリジンサーバネームを提供する。オリジンサーバネームは、一意的にインターネット120上のオリジンサーバ108を識別する。この情報は、加入者データベース224で維持管理される。コンテンツ交換部116は、コンテンツ交換部116にコンテンツオブジェクトを提供したオリジンサーバ108のIPアドレスを知らないが、オリジンサーバネームは知っている。コンテンツ交換部116が、そのキャッシュに他のコンテンツ交換部116からは入手不能なコンテンツオブジェクト、又はその一部を収容したいときは、コンテンツオブジェクトのソースであるオリジンサーバ108のIPアドレス、又はドメインネームを判定するために、動的DNS204に問い合わせがなされる。ドメインネームを動的DNS204から検索する場合、そのドメインネームに対応するIPアドレスがDNSから検索される。
【0041】
次に図3Aを参照する。コンテンツ配信システム100のオリジンサーバ部108の実施形態を示すブロック図が示される。オリジンサーバ108は、管理者に管理され、コンテンツ配信システム100にコンテンツオブジェクトのソースの1つを提供する。クライアントコンピュータを、所望のコンテンツオブジェクトを効率的に配信可能なコンテンツ交換部116へと、導いているオリジンサーバ108によってQOSが提供される。オリジンサーバ108には、コンテンツソース304、コンテンツサーバ308、コンテンツマネージャ312、ローカルコンテンツカタログ316、コンテンツロケーションデータベース320、コンテンツ交換情報324、ヘルスチェック330が含まれる。
【0042】
コンテンツは、コンテンツソース304がオリジンサーバ108に提供する。コンテンツソース304は、ライブウェブ連想メモリ、ビデオ又はオーディオフィード、データオブジェクト、データストリーム、ビデオテープ又はオーディオテープ、光学又は磁気ディスク、或いは他のあらゆるコンテンツ配信機構であってもよい。コンテンツオブジェクトは、システム100内での可能な配信のためにコンテンツソース304によってコンテンツサーバ308に配信される。
【0043】
維持されるコンテンツオブジェクトやコンテンツオブジェクトの部分について各コンテンツ交換部116に日時情報が維持される。その日時情報は、同一のオリジンサーバ名、パス名、ファイル名を有するコンテンツオブジェクトを識別する。他の実施形態では、チェックサム(checksum)、巡回冗長検査(CRC)やハッシュ(hash)などの任意の固有コードを使用して一義的にコンテンツオブジェクトを識別する。
【0044】
オリジンサーバ308のコンテンツオブジェクトは全て、コンテンツサーバ308に記憶される。管理者は、システム100で利用不能な他のコンテンツオブジェクトをコンテンツサーバ308上に残す間に、システム100に掲載するためにコンテンツオブジェクトやコンテンツオブジェクトのグループを選択可能である。いくつかのコンテンツオブジェクトは、不連続のファイルだが、他は、例えば、ライブウェブ連想メモリによって生成されるコンテンツのストリームである。コンテンツサーバ308を実行させるソフトウェアをコンテンツマネージャ312のソフトウェアと統合してもよい。
【0045】
コンテンツマネージャ312は、システム100に所望のコンテンツオブジェクトを掲載して、コンテンツマネージャ312に関連したコンテンツオブジェクトをダウンロードするためにユーザを好適なコンテンツ交換部116に導く。管理者の指示で、コンテンツマネージャ312はアクティブディレクトリ104に掲載するために、ファイルネーム、ディレクトリ、ドライブボリュームによってコンテンツオブジェクトやコンテンツオブジェクトのグループを選択する。コンテンツサーバ308上のいくつかのコンテンツオブジェクトは、システム100で利用不能とするために掲載から除外してもよい。
【0046】
システムに掲載するために選択されたコンテンツオブジェクトは、ローカルコンテンツカタログ316で維持管理される。ローカルコンテンツカタログ316へのエントリは、それらのエントリに対応するオブジェクトが利用不能、又は更新された場合には、コンテンツマネージャ312が最新となるように維持管理する。各エントリについて、コンテンツオブジェクトファイルネーム及びパスが、カテゴリ情報、概要、キーワードとともに記憶される。システム100への接続があり次第、ローカルコンテンツカタログ316はコンテンツマネージャ312によってサーバデータベース228へのエントリのためにアクティブディレクトリ104に送信される。可及的に最新のディレクトリ情報を保つために、ローカルコンテンツカタログ316への変更を定期的にサーバデータベース228に送信する。更新は、2分毎など定期的間隔をおいて、及び/又は、ローカルコンテンツカタログが変更されるときは常に実行されることがある。
【0047】
コンテンツマネージャ312は、また、そのコンテンツマネージャ312に関連したコンテンツオブジェクトの全ての部分の記憶場所を知っている。システム100に接続するとすぐに、コンテンツマネージャ312は、ステータスについて各コンテンツ交換部116と交信する。コンテンツ交換部116は、対応するコンテンツマネージャ312にそのコンテンツオブジェクトやコンテンツオブジェクトの部分について定期的に報告する。この情報を活用して、コンテンツマネージャ312は、クライアントコンピュータ112をコンテンツ交換部116に導くことが可能となる。コンテンツ交換部116は、所望のコンテンツオブジェクトのいくつか、又は全てをダウンロード可能な状態で有する。
【0048】
全てのコンテンツ交換部108が報告するコンテンツオブジェクトの記憶場所情報は、コンテンツマネージャによってコンテンツロケーションデータベース320に維持管理される。コンテンツロケーションデータベース320に照会することによって、コンテンツマネージャ312は、コンテンツオブジェクト、又はコンテンツオブジェクトの一部を有するコンテンツ交換部116を判定できる。クライアントコンピュータ112がコンテンツソースへルーティングされる間、特定のコンテンツ交換部112内でのコンテンツオブジェクトの存在は、ルーティングの判定に影響を及ぼすことがある。
【0049】
コンテンツ交換情報記憶装置324は、全てのアクティブなコンテンツ交換部116に関する情報を有する。オリジンサーバ108をパワーアップすると直ちに、アクティブディレクトリ104のコンテンツ交換データベース232がコンテンツ交換情報記憶装置324にダウンロードされる。パワーアップの後に、コンテンツ交換情報記憶装置324にリストされる全てのコンテンツ交換部116に、コンテンツ交換情報324として保持されるステータス情報が照会される。ステータス情報には、使用される同時並行のリンク数、許可された同時並行のリンクの合計数、バンド幅の利用度、及びキャッシュのチャーンレート数が含まれる。キャッシュのチャーンレートは、キャッシュ内に未使用データが残存する時間であり、キャッシュのローディングを表す。例えば、キャッシュの記憶量に相対してビジーなコンテンツ交換部116のために、データは通常キャッシュから迅速に消去される。しかしいくつかの実施例では、使用のいかんにかかわらず、ある期間中、コンテンツ交換部116に固定されて残存する厄介なコンテンツオブジェクトを有することもある。
【0050】
コンテンツマネージャ312は、コンテンツオブジェクトを要求しているクライアントコンピュータ112を、そのオブジェクトの優先ソースへとインテリジェントにあて先変更する。クライアントコンピュータ112が送信する優先情報は、クライアントコンピュータ112が要求するコンテンツオブジェクトのソースを判定するために使用される。コンテンツオブジェクトのダウンロードのためにクライアントコンピュータ112を優先されたコンテンツ交換部116に導くため、この情報は、コンテンツオブジェクトの現在の記憶場所、及び使用可能なコンテンツ交換部のローディングとともに使用される。
【0051】
いくつかの実施形態では、コンテンツマネージャ312は、コンテンツオブジェクトへのアクセスを管理できる。クライアントコンピュータ112がコンテンツマネージャ312に関連したコンテンツオブジェクトのダウンロードを試行したときに、管理者がコンテンツオブジェクトにセキュリティを設定していた場合には、ログインダイアログを表示することができる。ユーザはコンテンツオブジェクトのソースにクライアントコンピュータ112のあて先を変更するために、ログインダイアログにユーザ名、及び/又はパスワードを入力してもよい。このユーザ名、及び/又はパスワードは、アクティブディレクトリ104に必要とされるあらゆるものに加えて必要である。クライアントコンピュータ112をソースにあて先変更する前に、ユーザ名、及び/又はパスワードやログイン情報は、オリジンサーバ108に事前に記憶されている、容認可能ログイン情報のリストと照合してチェックされる。オリジンサーバ108全体、或いはオリジンサーバ108の容量、ディレクトリ、又はコンテンツオブジェクトへのアクセスはこの方式で管理し得る。
【0052】
いくつかの実施形態では、オリジンサーバ108やアクティブディレクトリ104は、コンテンツ交換部116上にコンテンツオブジェクトをプレインストールすることが許容されている。コンテンツオブジェクトの要求は、要望度を判定するために監視される。どのコンテンツオブジェクトをコンテンツ交換部116上にプレインストールすべきか判定するために、要望度情報、課金情報、及び/又は他の検討事項が使用される。オリジンサーバ108とアクティブディレクトリ104のいずれかが、コンテンツオブジェクトをプリロードするためにコンテンツ交換部116からコンテンツオブジェクトを要求することが可能である。アクティブでないためにコンテンツオブジェクトがアンロードされないように、コンテンツオブジェクトのコンテンツ交換部上への定期的なロードを要求することもある。
【0053】
ヘルスチェック330は、対応するオリジンサーバ108の動作特性を提供するハードウェア又はソフトウェアアプリケーションのいずれかである。一実施形態では、ヘルスチェック330はオリジンサーバ108のステータスの単一の指示を提供する。その単一の指示は、オリジンサーバ特性の組合せを示す、0〜1の正規化された値である。例えば、それはCPU負荷、CPU温度、同時接続の数、及び/又は、オリジンサーバが促進している要求の数を含んでもよい。代替の実施形態ではヘルスチェック330は、他のコンテンツ交換116やオリジンサーバ108上で実行しながら、コンテンツ交換116の特性を監視することがある。
【0054】
次に図3Bを参照する。コンテンツ配信システム100の外部オリジンサーバ部118の実施形態を示すブロック図が示されている。外部オリジンサーバ118は、それにインストールされたコンテンツマネージャソフトウェアを有しない点で、オリジンサーバ108とは異なる。外部オリジンサーバ118は、コンテンツサーバ308とコンテンツソース304とを有する。
【0055】
外部オリジンサーバ118の管理者は、コンテンツ交換部116を通してコンテンツオブジェクトの受信を許可される1個以上のクライアントコンピュータ112を決定する。ルーティングデータベース234は、個々のクライアントコンピュータ112がコンテンツ交換部116を通してコンテンツオブジェクトにアクセスできるように管理者が更新する。アクティブディレクトリ上のウェブページは、ルーティングデータベース234にクライアントコンピュータ112の情報を入力するインタフェースとして機能する。他の実施形態では、外部オリジンサーバ118とルーティングデータベース234間のインタフェースを自動化する。
【0056】
ルーティングデータベース234の更新はダウンロードされ、クライアントコンピュータ112がローカルに記憶する。外部オリジンサーバ118にアクセスする次の試行は、その要求にサービスを提供するためにコンテンツ交換部116にあて先変更される。このようなあて先変更は、コンテンツマネージャソフトウェアの支援なしで、外部オリジンサーバ118がクライアントコンピュータ112をコンテンツ交換116にあて先変更することを可能にする。
【0057】
外部オリジンサーバ118は、外部オリジンサーバ118にコンテンツオブジェクトを搬送するために割り当てられた1個以上のコンテンツ交換部116を有してもよい。ルーティングデータベース234は、加入したクライアントコンピュータをこれらの1個以上のコンテンツ交換部116にあて先変更してもよい。クライアントコンピュータがこれらのコンテンツ交換部116の2個以上の使用を許可されている場合、クライアント側ルーティング解析は、コンテンツ交換部間の相対的QOSを順位付けするために、2個以上のコンテンツ交換部上で実行される。
【0058】
外部オリジンサーバ118のコンテンツオブジェクトを、それらのコンテンツオブジェクトを提供するために割り当てられたコンテンツ交換部にプリロードできる。コンテンツオブジェクトを最初に要求する場合の呼び出し時間を減少させるために、アクティブディレクトリ104は、外部オリジンサーバ118を巡回して、そのサーバ118から入手可能なコンテンツオブジェクトを判定できる。入手可能なコンテンツオブジェクトを、クローリングディレクトリ124に加えてもよい。一旦入手可能なコンテンツオブジェクトが判明すると、関連するコンテンツ交換上への各コンテンツオブジェクトのローディングを生じさせるために、アクティブディレクトリ104は関連するコンテンツ交換に各コンテンツオブジェクトを要求する。このような方式で、コンテンツオブジェクトは関連したコンテンツ交換部にプリロードされる。
【0059】
図4Aを参照する。コンテンツ配信システム100のコンテンツ交換部116の実施形態を示すブロック図が示される。コンテンツ交換部116は、コンテンツマネージャ312の制御に従って、クライアントコンピュータ112が要求するコンテンツオブジェクトを記憶する。コンテンツ交換部116は、トラッキングシステム402とコンテンツノード406とを含む。トラッキングシステムは、コンテンツトラッカー404、ヘルスチェック428、ステータス情報420、ローカルコンテンツカタログ416、オリジンサーバデータベース424を有し、一方コンテンツノード406は、コンテンツコントローラ408、コンテンツ記憶部412を有する。
【0060】
ヘルスチェック428は、関連するコンテンツ交換部116の動作特性を提供するハードウェア又はソフトウェアアプリケーションのいずれかである。一実施形態では、ヘルスチェック428は、コンテンツ交換部116のステータスの単一の指示を提供する。単一の指示は、例えばCPU負荷、CPU温度、同時接続の数、コンテンツ交換部が促進している要求の数を含むコンテンツ交換部特性の組合せを示している0〜1の間の正規化された値でもよい。代替実施形態では、他のコンテンツ交換部116、オリジンサーバ108、記憶場所で実行する間に、ヘルスチェック428は、コンテンツ交換部116の特性を監視可能である。
【0061】
コンテンツ記憶部412は、そのコンテンツ交換部116からクライアントコンピュータ112にダウンロード可能なコンテンツオブジェクトを維持する。パス情報及びファイル名と共にコンテンツオブジェクトを提供しているオリジンサーバ108のネームは、コンテンツオブジェクトと共にコンテンツ記憶部412に記憶される。クライアントコンピュータ112はインターネット120を介して、コンテンツ記憶部412に接続し、コンテンツオブジェクトファイルやデータストリームをダウンロードする。新規のコンテンツオブジェクトがコンテンツ記憶部412に加えられると、古いコンテンツオブジェクトが削除される。コンテンツオブジェクトの寿命は、コンテンツオブジェクトにアクセスした最終時に関係する。記憶装置412上のいくつかのコンテンツオブジェクトは古くなることがない結果、コンテンツオブジェクトは所定時間だけ記憶装置412に留まる。オリジンサーバ108は、コンテンツ交換部112を調整して、所定の時間コンテンツオブジェクトを記憶することができる。
【0062】
クライアントコンピュータ112がコンテンツ記憶部412からコンテンツオブジェクトを要求する場合、コンテンツオブジェクトはその時点でコンテンツ記憶部412にロードされていない場合がある。コンテンツ記憶部412は、遂行されていないコンテンツオブジェクトに対する要求をコンテンツコントローラ408に通知する。コンテンツコントローラ408は、他のコンテンツ交換部116内、又はコンテンツオブジェクトを発生したコンテンツサーバ308から、欠落したコンテンツオブジェクト、又はその部分を探し出す。クライアントコンピュータ112がこの情報をダウンロード可能とすべく、欠落したコンテンツオブジェクトはコンテンツコントローラ408によってコンテンツ記憶部412へロードされる。
【0063】
コンテンツオブジェクトがコンテンツ記憶部412から欠落している場合、コンテンツコントローラ408は、先ず他のコンテンツ交換部116をチェックして、オブジェクトが利用可能か否かを判定する。コンテンツ交換部116が所望のコンテンツオブジェクトを有しない場合、コンテンツオブジェクトは、情報を発生したコンテンツサーバ308に問い合わせる。コンテンツ記憶部412は発生源のコンテンツサーバ308についてのIPアドレスを有しないため、その情報について動的DNS204に問い合わせがされる。オリジンサーバ名が与えられると、コンテンツコントローラ408が適切なコンテンツサーバ308からコンテンツオブジェクトを要求できるように、動的DNS204は、IPアドレスを提供する。
【0064】
コンテンツトラッカー404は、システム100にコンテンツ記憶部412内のその時点でのアイテムやコンテンツ交換部116のステータス情報を報告する。ローカルコンテンツカタログ416は、コンテンツ記憶部412内にある各コンテンツオブジェクト又はコンテンツオブジェクトの部分について、オリジンサーバ名、パス、及びファイルネームを記憶する。コンテンツ記憶部412に新規アイテムを追加し、古いアイテムを削除することによって、ローカルコンテンツカタログ416が更新される。コンテンツマネージャ312がシステム100に接続したときには、コンテンツオブジェクトのどのような部分がコンテンツ記憶部412に記憶されているかを判定するために、全てのコンテンツトラッカー404に問い合わせをする。コンテンツ記憶部412が変更されるとコンテンツトラッカー404によって更新されるベースラインが、最初の問合せで提供される。変更は、コンテンツ記憶部412に記憶されたコンテンツを有する各コンテンツマネージャ312に直接送信される。動的DNS204は、この処理の間、各コンテンツオブジェクトのオリジンサーバネームに対応するIPアドレスを判定するために使用される。
【0065】
コンテンツトラッカー404は、コンテンツマネージャ312にコンテンツ交換部116のステータス情報をも提供する。ステータス情報は、ブロードキャスト、又はマルチキャストとして定期的に、例えば、5分毎、及び/又は、変更が発生する時に、それぞれのコンテンツマネージャ312に送信される。ステータス情報には、現在使用中のコンテンツ交換部への同時並行のリンクの数、同時並行のリンクとして容認されている総数、バンド幅の利用度、キャッシュチャーンレートが含まれる。他の実施形態では、このステータス情報は、コンテンツオブジェクトをダウンロードするためにクライアントコンピュータ112の送信場所を判定する際に、コンテンツマネージャ312が問い合わせ可能な中心記憶場所に送られる。
【0066】
このコンテンツトラッカー404は、システム100のアクティブなオリジンサーバ108を追跡するために、オリジンサーバデータベース424を維持管理する。システムに接続した後、全てのオリジンサーバ108は、コンテンツトラッカー404にそれ自身を識別させる。コンテンツトラッカー404は、オリジンサーバデータベース424にオリジンサーバネームとIPアドレスを記憶する。動的DNSに対する問い合わせは、特定のオリジンサーバネームのIPアドレスを提供する。オリジンサーバ108がコンテンツトラッカー404に非運転状況が切迫していることを知らせるか、又はコンテンツトラッカー404が特定のオリジンサーバと交信することができない場合、そのオリジンサーバへのエントリは、オリジンサーバデータベース424から削除される。さらに、そのオリジンサーバ108に対応するコンテンツをコンテンツ記憶部412から一掃し、ローカルコンテンツカタログ416を更新してもよい。いくつかの実施形態では、記憶空間が必要なときは、コンテンツオブジェクトやコンテンツオブジェクトの部分を一掃せずに、単に削除用のタグを付ける。
【0067】
いくつかの実施形態では、システム100は、コンテンツコントローラ408にコンテンツ記憶部412内の所定のコンテンツオブジェクトを入手及び保持するように指示することができる。要求が予測されるコンテンツオブジェクトを、その要求に備えてプレインストールすることが可能である。コンテンツオブジェクトの要望度は、検索ページ又はディレクトリページ212、216から、それらのコンテンツオブジェクトに対するクリックスルーをモニターすることによって判定できる。例えば、有名人の伝記プログラムがネットワークテレビで放送される前に、有名人に関するコンテンツオブジェクトを直ちにコンテンツ記憶部412にロードすることがある。代替手段として、ユーザは、いくつかのコンテンツ交換部116にコンテンツオブジェクトをロードするサービスを予約できる。例えば、テレビ放送の代わりにユーザがインターネット120を通じて鑑賞可能なテレビ放送と一致させて、予定されたネットワークプログラムをロードできる。予約したユーザは、コンテンツを遅延なく利用できる。
【0068】
図4Bを参照する。コンテンツ配信システム100のコンテンツ交換部116の他の実施形態を示すブロック図が示されている。この実施形態では、単一のトラッキングサーバ402に接続された複数のコンテンツノード406を有する。コンテンツバス428は、コンテンツノード406が互いのコンテンツ記憶部412をチェックして、欠落したコンテンツオブジェクトを探すことを可能にする。コンテンツバス428は、また、他の記憶場所の他のコンテンツノードにも結合できる。コンテンツバス428は、インターネット120上の一部を進行してもよく、しなくてもよい。
【0069】
次に図4Cを参照する。複数のコンテンツ交換サーバ116を有するコンテンツ交換サイト432の実施形態を示すブロック図が示されている。コンテンツ交換サイト432は複数のコンテンツ交換サーバ116を有しているが、それはシステムにとっては単一のコンテンツ交換部116であるように現れる。コンテンツ交換サイト432のロードは、複数のコンテンツ交換サーバ116の間に配信される。レイヤー4スイッチなどのスイッチ436は、コンテンツ交換部116にコンテンツオブジェクトの要求を配信し、インターネット120へスプールされた応答を集計する。
【0070】
次に図5を参照する。コンテンツ配信システム100のクライアントコンピュータ部分112の実施形態を示すブロック図が示されている。クライアントコンピュータ112は、ユーザにコンテンツを配信するためにインターネット120に通信する。クライアントコンピュータ112は、ビューワオブジェクトプロキシ504、コンテンツ処理プログラム508、優先情報512、ネットワークインタフェース516及び、ホストサーバルーティング520を有する。
【0071】
コンテンツ処理プログラム508は典型的には、インターネット120からダウンロードされるコンテンツオブジェクトを、翻訳又は処理するソフトウェアである。コンテンツ処理プログラム508の例としては、ウェブブラウザ、ファイル転送プロトコル(FTP)ソフトウェア、ゴーファソフトウェア、ニュース(NNTP)、メールプログラム、ストリーミングメディアプレーヤ、非ストリーミングメディアプレーヤ、及び他のソフトウェアが含まれる。通常は直接インターネットに送信されるコンテンツ処理プログラム508からのインターネット通信は、ビューワオブジェクトプロキシ504にあて先変更される。
【0072】
ビューワオブジェクトプロキシ504は、インターネット120とコンテンツ処理プログラム508との間の媒介物として機能する。ビューワオブジェクトプロキシ504をインストールした後でビューワオブジェクトプロキシは、インターネット120の既知の位置に相対した、その一般的な記憶場所を判定する。充分なQOSを提供する妥当な候補であるコンテンツ交換部116を、各コンテンツ交換116とビューワオブジェクトプロキシ504との間の必要なホップ数及び待ち時間を判定するために試験する。QOS係数の重み付け、例えば、ホップ数や達成されるバンド幅は優先情報512として記憶され、HTTPヘッダにてコンテンツマネージャ312にメタデータとして転送される。
【0073】
他の実施形態では、HTTPヘッダを通さずに、あらゆる種類のデータチャネルのメタデータとしても引き渡すことができる。例えばメタデータは、専用ポート、IPアドレス、URL、ヘッダ、その他の論理チャネルを通って進行可能である。
【0074】
優先情報512は、クライアントコンピュータの観点112から実行されたネットワーク解析の結果である。コンテンツオブジェクトが要求されたときには、優先情報512はコンテンツオブジェクトマネージャ312に通信され、これに応じてコンテンツオブジェクトマネージャ312はクライアントコンピュータ112に適切なコンテンツ交換部116を選択する。定期的に、例えば1時間毎に、優先情報512は、自動試験を使用して更新されるか、或いはユーザが手動で更新する。次の試験は、前回の結果を考慮して、効率的に優先すべきコンテンツ交換部を判別する。例えば、第1の解析において、100のコンテンツ交換部をチェックするが、次の解析では性能の悪いコンテンツ交換部を除き、50のみを分析してもよい。
【0075】
優先情報512は、コンテンツ交換部116のリスト、及びクライアント側のネットワーク解析の結果から生じたそれらに関連するQOS値を含む。いくつかの実施形態では、外部オリジンサーバ118への複数経路がある。複数経路は、ポート、IPアドレス、サーバ識別(ID)及び/又は、他の機構により分離される。クライアント側ネットワーク解析は、外部オリジンサーバ118への各経路、或いは複数経路を有したあらゆるコンテンツオブジェクトソースに対応するQOS値を判定するために使用可能である。
【0076】
クライアントコンピュータ112のユーザがコンテンツオブジェクトを選択した後、オリジンサーバ名がビューワオブジェクトプロキシ504に提供される。オリジンサーバ名は、ビューワオブジェクトプロキシ504が動的DNS204にオリジンサーバ108のIPアドレスを問い合わせるために使用される。一旦IPアドレスが判明すると、コンテンツ処理プログラム508を、所望のコンテンツオブジェクトを得るためにコンテンツマネージャ312にあて先変更する。コンテンツマネージャ312に優先情報512が転送され、適切なコンテンツ交換部116へのルーティングを可能とさせる。この実施形態では、優先情報512は10の優先コンテンツ交換部を有するが、ユーザはそれを調整できる。
【0077】
いくつかの実施形態では、ビューワオブジェクトプロキシ504はHTTPに特定されるものであってもよいが、ルーティング情報についてプロトコルに依存しないものであってもよい。従って、ルーティング情報はHTTPに従って転送されるが、実際のルーティング情報はプロトコルに依存しない。しかし当業者は、ビューワオブジェクトプロキシ504をまた、必要に応じて他のネットワークプロトコルと協働させ得ることを認識するであろう。例えば、ビューワオブジェクトプロキシ504は、FTP、NNTP、RTP、RTSP、SMTP、SHOUT等に従って機能するように構成できる。
【0078】
クライアントコンピュータ112は、ホストサーバルーティング520のデータベースを含む。このホストサーバルーティング520は、クライアントコンピュータ112がアクセス可能な外部オリジンサーバ118に関する情報を含む。一実施形態では、ホストサーバルーティング520は、アクティブディレクトリ104に含まれるルーティングデータベース234の一部である。
【0079】
クライアントコンピュータ112は、ビューワオブジェクトプロキシ504をインターネット120に接続するネットワークインタフェース516を有する。ネットワークインタフェース516の一般的な例としては、アナログモデム、DSLモデム、ISDN、ケーブルモデム、サテライトモデム、セルラ方式モデム等が含まれる。
【0080】
この実施形態では、クライアントコンピュータは、ホームユーザに対応する。他の実施形態では、クライアントコンピュータは、劇場にデジタル映画を提供可能であるか、或いは会社のネットワークユーザ、ホテルの客、アパートの共同ビルにコンテンツオブジェクトを提供可能である。
【0081】
図6を参照する。コンテンツ配信システム600の実施形態を示すブロック図が示される。この図は、インターネット120上での転送を示さずに、データブロック間のデータフローを示している。しかし、インターネット120はいくつかの実施形態で使用されるものである。また、この図は、図2〜5のいくつかのブロックをいくぶん簡略化し、外部オリジンサーバ118、及びクローリングディレクトリ124は、図6を簡略化するために含まれていない。
【0082】
ネットワークインタフェース516は、クライアントコンピュータ112をインターネット120へ接続する。クライアントコンピュータ112は、ディレクトリページ、検索ページ212、216に接続して、ダウンロードするコンテンツオブジェクトの選択をユーザに可能とさせる。コンテンツオブジェクトが選択されると、アクティブディレクトリ104から、適切なオリジンサーバ108へのクライアントコンピュータ112のあて先変更には動的DNS204が使用される。優先情報512は、コンテンツオブジェクトのソースの選択を支援するためにコンテンツマネージャ312に転送される。コンテンツマネージャ312の選択に従って、コンテンツオブジェクトは、コンテンツ交換部116のうちの1個、又はコンテンツサーバ308からダウンロードされる。
【0083】
アクティブディレクトリ104は、システム600の他のモジュールと対話する。クライアントコンピュータ112は、コンテンツオブジェクトを選択すべくディレクトリページ、検索ページ212、216にアクセスする。コンテンツトラッカー404及びコンテンツマネージャ312はそれぞれ、サーバマネージャ208にステータス及びカタログ情報を提供する。加入者データベース224を維持管理するために、オリジンサーバ108の管理者及び、クライアントコンピュータ112のユーザによって、アカウント情報がサーバマネージャ208に提供される。オリジンサーバ名からオリジンサーバ108のIPアドレスへのあて先変更は、ビューワオブジェクトプロキシ504と、コンテンツトラッカー404と、コンテンツコントローラ408とに動的DNS204によって提供される。
【0084】
オリジンサーバ108は、サーバマネージャ208、クライアントコンピュータ112、コンテンツトラッカー404、コンテンツ記憶部412、及びコンテンツコントローラ408と通信する。サーバデータベース228をその時点でのコンテンツ情報を備えて維持管理するために、コンテンツマネージャ312からサーバマネージャ208にローカルコンテンツカタログ316が提供される。コンテンツオブジェクトのソースの選択を容易にするために、クライアントコンピュータ112からコンテンツマネージャ312に優先情報512が提供される。コンテンツトラッカー404は、コンテンツマネージャ312と対話して、どんなコンテンツオブジェクトがコンテンツ交換部116に記憶されているかを判別する。コンテンツオブジェクトは、コンテンツ記憶部412、又はクライアントコンピュータ112のいずれかによって、コンテンツサーバ308から読み込まれる。
【0085】
コンテンツ交換部116は、システム600の他のモジュールとも対話する。ステータス情報は、アクティブディレクトリ104、及び/又は、コンテンツマネージャ312に提供される。コンテンツオブジェクトを有するオリジンサーバ108のIPアドレスを探し出すために、コンテンツコントローラ408とコンテンツトラッカー404が共に動的DNSを使用する。コンテンツ記憶部412がオブジェクトを必要とする場合、選択されたコンテンツ交換部は、他のコンテンツ交換部と交信してもよい。他のコンテンツ交換部がそのコンテンツオブジェクトを有しない場合、コンテンツコントローラ408はコンテンツサーバ308から選択されたコンテンツ記憶部412へのオブジェクトの配信要求をする。
【0086】
次に図7A〜7Bを参照する。ユーザにコンテンツを配信する処理の実施形態を示すフローチャートが示されている。そこに説明した処理の前に、ユーザと管理者は、それぞれクライアントコンピュータ112とオリジンサーバ108のソフトウェアをダウンロードし、インストールしておく。管理者は、システム600に掲載するためにコンテンツサーバ上のコンテンツを選択する。優先情報512を判定するために、ビューワオブジェクトプロキシ504は、適切なQOSが得られるように隣接したコンテンツ交換部116に自動的に問い合わせを行う。
【0087】
ここに示される処理は、ユーザがウェブを閲覧するコンテンツ処理プログラム508をアクティブディレクトリ104のディレクトリページ、検索ページ212,216に導く、ステップ704で開始する。この実施形態では、ユーザは、ステップ708で、ブールクエリを使用して検索ページ216上の検索エンジンに問い合わせして、コンテンツオブジェクトを探し出す。ステップ712で検索エンジンはサーバデータベース228でヒットを検索し、またクローリングディレクトリ124を検索してもよい。代替手段として、ユーザは、ディレクトリページ212をナビゲートして、所望のコンテンツオブジェクトを探し出すことができる。
【0088】
ステップ716で検索ページ又はディレクトリページ212,216は、ユーザが選択する可能性があるコンテンツオブジェクトへのそれぞれのリンクを示す。各リンクは、コンテンツオブジェクトについてのオリジンサーバ名108、ポート、パス、及びネームを有する。利用できる選択肢が与えられると、ユーザはステップ720で、所望のコンテンツオブジェクトに対応するリンクのうちの1個を選択し得る。リンクからのオリジンサーバネームのIPアドレスを判定するためにビューワオブジェクトプロキシ504によって、動的DNS204へ問い合わせがされる。一旦IPアドレスが判明した場合には、コンテンツ処理プログラムは、動的DNS204から検索されたIPアドレス、及びリンクからのパス及びファイル名へとあて先を変更される。
【0089】
一旦クライアントコンピュータ112がコンテンツマネージャ312に接続されると、ステップ724で優先情報512がコンテンツマネージャ312に転送される。コンテンツマネージャ312は、コンテンツロケーションデータベース320、優先情報512、及びステータス情報を分析して、ステップ728,732で、クライアントコンピュータ112のあて先を変更するべきコンテンツオブジェクトのソースを判定する。
【0090】
ステップ736で、そのソースがコンテンツ交換部116かコンテンツサーバ308かに関して判定がなされる。コンテンツマネージャ312が適切なQOS、又は優れたQOSを提供できると判定した場合には、コンテンツサーバ308が選択されてもよい。いくつかの実施形態では、適切なQOSを提供できるコンテンツ交換部116がない場合、コンテンツサーバ308のみをソースとして考慮する。コンテンツサーバ308が選択された場合、ステップ740でオリジンサーバ108はクライアントコンピュータ112にコンテンツオブジェクトを提供する。
【0091】
コンテンツマネージャ312がコンテンツオブジェクトの要求を受け入れるためにコンテンツ交換部116を選択した場合、コンテンツ処理プログラム508は、選択されたコンテンツ記憶部412にあて先を変更され、処理は図7Bのステップ744に続く。ステップ744で、このコンテンツ処理プログラム508は、コンテンツ記憶部412からリンク内のコンテンツオブジェクトを要求する。コンテンツオブジェクトが全部コンテンツ記憶部412にある場合、ステップ748,752で、オブジェクトはそのコンテンツ記憶部412からクライアントコンピュータにダウンロードされる。
【0092】
代替手段として、コンテンツオブジェクトの何らかの部分が失われた場合には、コンテンツオブジェクト全体のコピーをコンテンツ記憶部412内で組み立てる。コンテンツオブジェクト全体の組立ては、ユーザにはトランスペアレントに行われる。ステップ756,760においてコンテンツコントローラ408は、他のコンテンツ交換部116に問い合わせ、どれがコンテンツオブジェクトの欠落した部分を有するか判定する。クライアントコンピュータ112ができるだけ早くダウンロード開始できるように、コンテンツオブジェクトは、最初から最後までコンテンツ記憶部412内で再構築される。
【0093】
反復的な方法で、コンテンツオブジェクトの全てがコンテンツ記憶部412に集まるまで、ステップ764で、欠落した部分を各コンテンツ交換部116から検索する。他のいかなるコンテンツ交換部116もコンテンツオブジェクトの欠落した部分を有しない場合、ステップ768で、オリジンサーバ108に欠落した部分の問い合わせをする。動的DNS204に問い合わせて、コンテンツオブジェクトのオリジンサーバ名のIPアドレスを判定する。ステップ772で、動的DNS204は、コンテンツコントローラ408を、コンテンツオブジェクトを有するオリジンサーバ108に導く。ステップ776で、欠落した部分をそのオリジンサーバ108のコンテンツサーバ308からダウンロードする。処理は、ステップ748へループして戻り、他の欠落した部分を検索する。
【0094】
欠落した部分がコンテンツ記憶部412へ全てコピーされるまで、部分を検索するこの処理を反復的な方法で継続する。この実施形態では、欠落した部分を連続的に検索するが、他の実施形態では、欠落した部分の記憶位置を判定し、あらゆる順序、又は見つかった順序であっても平行してそれらを検索することが可能である。
【0095】
図8を参照する。ビューワオブジェクトプロキシ504の実施形態のブロック図が示される。ビューワオブジェクトプロキシ504は、パス評価装置850、重み付け機能852、ディスプレイ機能又はルーチン854、ルックアヘッド論理機能856、標準のウェブアクセス機能858、解凍機能860、解読機能862、電子商取引機能866、セキュリティ機能864、及び、ビューワオブジェクトプロキシ504の多様な他の機能をインタフェースするメインファンクション868機能を有する。ビューワオブジェクトプロキシ504に含まれる可能な機能の上記リストは、単に例示を行うものであって、当業者ならばビューワオブジェクトプロキシ504に関連する他の機能を認識する。
【0096】
ビューワオブジェクトプロキシ504は、その中を流れる、ビューワが要求したコンテンツオブジェクト全てを有するプロキシであるので、ルックアヘッド論理機能856を実行できる。一実施形態では、ルックアヘッド論理機能856は、ユーザの次のブラウズや移動を予期して、ユーザが実際のリクエストをする前にクライアントコンピュータ112上の記憶に関連するブラウズ情報を取り込む。ユーザが情報を実際に要求するまで、事前に取得された情報は保持される。ルックアヘッド論理機能856がユーザの次のブラウズを不正確に予期した場合、事前に取得されたデータは破棄される。例えば、ルックアヘッド論理機能856は、ディレクトリページ212(図2を参照して記載されているように)の階層より下位の階層へ一般的にアクセスされたページの事前取得を実行する。事前取得情報によって、ルックアヘッド論理機能856は、アクセス待ち時間を減少可能である。
【0097】
いくつかの実施形態では、解凍機能860と解読機能862が提供される。これらの機能860,862は、オリジンサーバ108、コンテンツ交換部116、外部オリジンサーバ118、或いはインターネット120上の他のいかなるサーバのいずれかから受信した情報を解凍し、解読する能力を提供する。
【0098】
いかなるユーザ要求に対しても、解凍機能860及び解読機能862が利用可能であることに基づいて、ビューワオブジェクトプロキシ504は、コンテンツオブジェクト転送の間、使用される圧縮と暗号化の様態についてインターネット120上のサーバと交渉可能である。このように、ユーザがインターネット120をサーフィンしている時はいつでも、ビューワオブジェクトプロキシ504は、どんな圧縮や暗号化が支援されているかについて、交信したどんなサーバにも会話する。これはサーバが特別なソフトウェアを有することを必要としないが、交信したサーバがビューワオブジェクトプロキシ504によってサポートされるものと同一の圧縮、暗号化、及びセキュリティ機能をサポートする場合にはQOSを向上できる。解凍、及び解読には多数の通信機構が使用可能であることを認識すべきである。例えば、FTP、NNTP、RTP、RTSP、SMTPを使用できる。
【0099】
一実施形態では、解読及び解凍の交渉は、HTTPを介して達成される。より詳細には、交渉は、拡張されたHTTPヘッダを介して達成される。
さらに、いくつかの実施形態ではユーザは、解凍機能860、解読機能862のいずれか一方、又は両方を使用禁止にできる。それぞれの機能860、862をユーザが使用禁止にした場合、ビューワオブジェクトプロキシ504は、使用禁止機能の使用のために交渉することはない。
【0100】
いくつかの実施形態では、ビューワオブジェクトプロキシ504は、セキュリティ機能864を有する。セキュリティ機能864は、アクセスを許可、又は拒否するために適切に機能する。より詳細には、信頼されたシステムによって、権限が与えられた場合にのみ、セキュリティ機能864は、コンテンツオブジェクトを解読できるような制御を提供する。例えば、特定のドングルタイプハードウェアデバイスをクライアントコンピュータ112に接続し、ビューワオブジェクトプロキシ504を介してセキュリティ機能864がその接続条件を報告する場合にのみ、信頼されたシステムがデータを受理、及び/又は、解読する権限を提供してもよい。
【0101】
いくつかの実施形態では、ビューワオブジェクトプロキシ504は、電子商取引機能866を有する。電子商取引機能866は、インターネット120上に設けられている電子商取引エンジンと緊密に統合可能である。電子商取引機能866を経由して、ユーザにはコンテンツオブジェクトを購入する機構が提供される。例えば、コンテンツオブジェクトをダウンロードするために、加入者データベース224に記憶されたトークンクレジットがオリジンサーバ108に返金可能である。
【0102】
さらに、ビューワオブジェクトプロキシ504は、コンテンツ配信システム100の外部にあるインターネットドメインにアクセスを提供する標準のウェブアクセス機能858を有してもよい。一実施形態では、ビューワオブジェクトプロキシ504がコンテンツ配信システム100外のドメインにより供給されるコンテンツオブジェクトのコンテンツ処理プログラム508から、ユーザ要求を受信するときは、標準のウェブアクセス機能858は、コンテンツオブジェクトがクライアントコンピュータ112に以前に保存されていたか否かを判定する。要求されたコンテンツオブジェクトが以前に保存されている場合、その保存されたコンテンツオブジェクトは、ユーザ要求を満たすべく標準のウェブアクセス機能858が返信する。要求されたコンテンツオブジェクトが以前に保存されていない場合、ユーザリクエストは、標準のウェブアクセス機能858によって転送され、あたかもコンテンツ処理プログラム508が直接インターネット120にアクセスしたかのように、コンテンツオブジェクトを検索する。
【0103】
パス評価装置850、重み付け機能852及び、ディスプレイ機能又はルーチン854を、図9に含まれるビューワオブジェクトプロキシのバックグラウンドアプリケーション900のフローチャートに関連して説明する。バックグラウンドアプリケーション900は、多様なビューワオブジェクトプロキシ504の機能を利用して、クライアントコンピュータ112に充分なQOSを提供可能な好適なコンテンツ交換部116を判定する。その好適なコンテンツ交換部116は優先情報512としてメモリに記憶され、その後コンテンツオブジェクトマネージャ312に通信される。
【0104】
図9を参照する。セットアップ982がスタートアップ980で実行されると、ディスプレイルーチン854が開始される。セットアップ982には、クライアントコンピュータ112のグラフィクスメモリを要求及び初期化し、プロキシを初期化し、ディスプレイルーチン854を開始することが含まれる。さらに、セットアップ982は、グラフィックディスプレイ又はプロキシを初期化するいかなる処理を含んでもよい。
【0105】
セットアップ982に続き、情報の要求及び受信984が実行される。情報の要求及び受信984の間、コンテンツ交換データベース232は、アクティブディレクトリ104からクライアントコンピュータ112にダウンロードされる。上記のように、コンテンツ交換データベース232は、改良されたQOS基準、又は加入サービス基準を含むが、これに限らず様々な方法に基づいて、地域別に分類、又は分割できる。このように、いくつかの実施形態では、情報の要求及び受信984は、クライアントコンピュータ112に地理的に隣接するコンテンツ交換部116のみを有したコンテンツ交換データベース232を検索するという結果になる。例えば、検索されたコンテンツ交換データベース232は、北米にあるコンテンツ交換部116のみを含んでいてもよい。他の実施形態では、情報の要求及び受信984は、特定の加入サービスを支援するか、或いは特定のプロバイダに帰属するものと考えられるコンテンツ交換部116のみを有したコンテンツ交換データベース232を検索するという結果になる。代替手段において、コンテンツ交換データベース232は、特定のインターネットサービスプロバイダに帰属するか、特定のプロトコルを支援するか、或いは特定の言語のコンテンツオブジェクトを提供する、コンテンツ交換部に限定される。さらに他の実施形態では、情報の要求及び受信984は、利用可能なコンテンツ交換部116の全てを含むコンテンツ交換データベース232を検索するという結果となる。
【0106】
いくつかの実施形態では、情報の要求及び受信984は、外部オリジンサーバ118のルーティング情報を含むルーティングデータベース234のいくつかの部分を要求し、受信することをさらに含む。ルーティングデータベース234の受信された部分は、受け入れられたサーバルーティング520としてクライアントコンピュータ112のメモリに記憶される。
【0107】
他の使用のうちで、情報の要求及び受信984を通して通信される情報は、ユーザへの表示を生成するために使用することができる。例えばいくつかの実施形態では、コンテンツ交換データベース232の一部として提供される位置座標やアイコン情報を、ディスプレイ機能又はルーチン854を介してユーザに提供されたグラフィック表現の一部として使用できる。グラフィック表現は、コンテンツ配信システム100上で利用できるものや、インターネット120上の他の利用できる場所をユーザに表示し得る。さらに、グラフィック表現は、クライアントコンピュータ112から複数のコンテンツ交換部116までの複数のパスを表示できる。特定の実施形態では、コンテンツ交換部116やオリジンサーバ108の物理的位置がユーザに表示される世界地図に重畳して表示される。
【0108】
ディスプレイ機能854でコンテンツ交換データベース232を使用すること以外に、コンテンツ交換データベース232からの情報は、パスQOSの評価986を実行するために使用可能である。より詳細には、クライアントコンピュータ112と各コンテンツ交換部116又はコンテンツ交換データベース232で指定されるノードとの間のパスのQOSを判定して、クライアントコンピュータ112のメモリに記憶できる。
【0109】
情報の要求及び受信984を通してコンテンツ交換116のリストを受信することは、利用可能性のあるコンテンツ交換部116を判定する方法の例示であることが認識されるべきである。代替の実施形態では、コンテンツ交換部116と、外部オリジンサーバ118と、オリジンサーバ108など利用可能なコンテンツオブジェクトソースのリストを入手可能であり、或いは、ビューワオブジェクトプロキシ504によってコンパイルされるリストを使用することによる。このリストは、以前のコンテンツオブジェクトの転送の間に、コンテンツ配信システム100の内部、又は外部で得られたビューワオブジェクトプロキシ504に関する知識に基づいている。
【0110】
一実施形態では、パスQOS評価986は、コンテンツ交換データベース232にリストされた全てのコンテンツ交換部116に関連したパスについて実行される。コンテンツ交換データベース232にリストされる第1のコンテンツ交換部116に関連したパスを分析することから開始する。次にステップ988で、他のコンテンツ交換部116がコンテンツ交換データベース232から提供されるか否かが判定される。他のコンテンツ交換部116が提供される場合、そのコンテンツ交換116に対するパスを評価する。コンテンツ交換データベース232にリストされるコンテンツ交換部116の全てについてパスQOS評価986が実行されるまで、この処理を継続する。パスQOS評価は、いかなるコンテンツオブジェクトソースや転送ノードに対しても実行可能で、必ずしもコンテンツ交換部116及びオリジンサーバ108の評価に限定されるものではない。転送ノードはコンテンツ交換116であることが可能であり、或いは、コンテンツオブジェクトを記憶、及び転送可能な他のサーバであってもよい。パスQOS評価に関連して使用された場合には、パスとの文言にはルーティングを含む。
【0111】
他の実施形態では、コンテンツ交換データベース232にリストされるコンテンツ交換部116のサブセットのみが評価される。コンテンツ交換データベース232のうちコンテンツ交換部116のサブセットのみを評価することで、より効率的なパスQOS評価986が得られる。この効率の改善は、特定のコンテンツ交換部116が充分なQOSを提供しない蓋然性が高く、従って評価する価値がないことが判明している場合に達成できる。従って例えば、クライアントコンピュータ112が北米にあり、コンテンツ交換が北米外では充分なQOSを提供しそうにないと認められる場合、パスQOS評価986は、北米にあるコンテンツ交換部116においてのみ実行される。
【0112】
代替手段では、異なる種類のコンテンツ交換部116が類似したサービスを提供する蓋然性が高いことが認められる場合には、サイトに基づくパスQOS評価986を実行可能である。より詳細には、コンテンツ交換データベース232に表示される各コンテンツ交換サイト432に対応する1つのコンテンツ交換部116が評価される。これによって、どのコンテンツ交換サイト432が充分なQOSを提供しそうかを判定できる。その後、充分なQOSを提供する蓋然性が高いと判定されたコンテンツ交換サイト432に関連したコンテンツ交換部116のそれぞれを個々に分析する。従って、QOSを提供しそうにないコンテンツ交換サイト432に関連したコンテンツ交換部116は評価されない。
【0113】
他の実施形態では、特定のプロトコルをサポートするコンテンツ交換部116にのみパスQOS評価986を実行する。或いは代替手段として、サイト432の少なくとも1つのコンテンツ交換部116が特定のプロトコルをサポートしているコンテンツ交換サイト432においてのみ、パスQOS評価986をコンテンツ交換部116に実行してもよい。
【0114】
さらに、いくつかの実施形態では、パスQOS評価986は、特定のコンテンツ交換部116で一度だけ実行される。従って、特定のコンテンツ交換116が複数のIPアドレス、ポート、又はネームを有する場合、パスQOS評価986は、1個のIPアドレス、ポート、又はネームについてのみ実行される。これは、パスQOS評価986の間の重複した評価を排除する。しかし、異なるQOSが可能であると認められる場合、パスQOS評価986は、同一コンテンツ交換116の複数のIPアドレス、ポート、又はネームに実行できることが認識される。
【0115】
コンテンツ交換データベース232のうちコンテンツ交換116のどのサブセットを評価するかという選択は、クライアントコンピュータ112が出力する基準及びクライアントコンピュータの経験や、アクティブディレクトリ104や、コンテンツ交換部116や、オリジンサーバ108や、及び/又は、ユーザに基づく。
【0116】
一実施形態では、パスQOS評価986は、トレースルート、ファイル転送経由のバンド幅試験、サーバヘルスチェック、サーバロード/リソースチェック、ピング、パス差、情報を発送しているボーダゲートプロトコル(BGP)ルーティング情報、及びポート応答時間を含むがこれに限らずネットワーク解析方法論の組合せを使用して達成される。
【0117】
トレースルートは、特定のコンテンツ交換部116とクライアントコンピュータ112との間でパケットがとったルートを報告するあらゆる解析を含む。典型的にはトレースルートは、横断したホップ、横断したホップのIPアドレス、及びクライアントコンピュータ112とコンテンツ交換116との間の横断に必要とした時間を報告する。
【0118】
ファイル転送を介したバンド幅試験は、コンテンツ交換116とクライアントコンピュータ112との間でバルク情報伝達を実行した場合のあらゆる解析をも含む。バルク転送中、バルク転送の実行に要する時間を含むがこれに限定されない、多様な動作の指数が引き出される。典型的にはコンテンツ交換部116とクライアントコンピュータ112との間で転送されるデータは、非常にランダムである。このデータのランダムな性質がクライアントコンピュータ112とコンテンツ交換116との間で発生するあらゆる圧縮の影響をも軽減する。
【0119】
ピングは、情報がクライアントコンピュータ112によって、特定のコンテンツ交換部116に送信され、クライアントコンピュータ112がコンテンツ交換部116からの応答を待機する場合のあらゆる解析を含む。典型的にはピングはUDPや他のいかなる損失を有するプロトコル(すなわち、応答を保証しないプロトコル)を介して実行される。ピングは、コンテンツ交換部が動作状態か否かを確認するために有効である。代替手段として、応答の受信に必要な時間は、QOSの指示として使用できる。
【0120】
サーバヘルスチェック及び、サーバロード/リソースチェックは、ヘルス、ローディング、及びコンテンツ交換部116、オリジンサーバ108、又は他の転送ノードの利用可能なリソースに関する多様なヒューリスティックを判定するあらゆる解析も含むことが可能である。一般に、コンテンツ交換116は、多様な動作特性を判定するために問い合わせされる。これには、CPU負荷の平均値及びピーク、CPU温度、キャッシュの折損を解決するためにハードドライブとRAMとの間で転送されるページ数、コンテンツ交換部116がハードドライブに読み書き操作を生成している速度、コンテンツ交換部116がその時点でサービスを提供している要求の数、コンテンツ交換部にアクセスしている平均ユーザ数、同時接続の数、コンテンツ交換部116に/からの入出力速度、コンテンツ交換部116がコンテンツオブジェクトに要求するコンテンツオブジェクトの平均サイズ、コンテンツ交換116に関連するRAMとハードドライブメモリを含むローカルメモリのサイズ、ローカルメモリに含まれる平均コンテンツオブジェクトサイズ、コンテンツオブジェクトがローカルメモリにとどまる平均時間、コンテンツオブジェクトがローカルメモリで見出せないインスタンスの速度、及び他のいかなるエラー表示、及び/又は、ステータス情報を含むがこれらに限定されない。
【0121】
上記のヒューリスティックは、特定のコンテンツ交換部116やオリジンサーバ108に関連したヘルスチェック330,428を使用して決定できる。一実施形態では、ヘルスチェック330,428は、それぞれコンテンツ交換部116とオリジンサーバ108上で実行されるソフトウェアアプリケーションである。ビューワオブジェクトプロキシ504により問い合わせがされた場合、ヘルスチェック330,428は、CPU負荷、CPU温度、同時接続の数、及びコンテンツ交換116やオリジンサーバ108が現在サービスしている要求の数を提供する。いくつかの実施形態では、ビューワオブジェクトプロキシ504は、サーバヘルスチェックのヒューリスティックを検索するためにHTTPを介してコンテンツオブジェクト交換部116に問い合わせる。しかし当業者であれば、FTP、NNTP、RTP、RTSP、SHOUT、SMTPを含むがこれに限らずサーバ健康状態のヒューリスティックにアクセスし、又は指定されたポートを通してノードに接続する多くの機構を認識する。
【0122】
他の実施形態では、ビューワオブジェクトプロキシ504のヘルスチェック330,428へのステータス要求は、単一のステータス指数が返信されるという結果になる。単一のステータス指数は、0〜1の間にあるが、ここで1は低い特性を示し、0は良好な特性を示す。特性の良し悪しは、コンテンツオブジェクトキャッシュとして作用するコンテンツ交換部116や他の転送ノードの能力や機能に基づいて決定される。このようにこの実施形態では、0.9という指数は、長時間に亙ってコンテンツ交換部116でコンテンツオブジェクトをローカルに維持管理できないことを示す。代替手段として、0.2という指数は、長期間に亙って、コンテンツオブジェクトを維持管理できる能力を示す。
【0123】
単一のステータス指数を決定するために、多くのマシン特性をモニターし組み合わせることができる。一実施形態では、単一のステータス指数は、平均CPU負荷、コンテンツ交換部116に対応するローカルメモリのサイズ、ローカルメモリに含まれる平均コンテンツオブジェクトのサイズ、コンテンツオブジェクトがローカルメモリに留まる平均時間の特性を組合せて有する。これら個々の特性の組合せは、コンテンツオブジェクトキャッシュとしての役割を果たすコンテンツ交換部の能力評価を得るために機能する。その特性を単一の指数に結合するために、各特性は、最初に所定の使用レベルの割合に正規化される。この正規化は、100%が最高の特性値を示し、0%が最悪の特性値を示すように実行される。それから、正規化された値は、全体的なステータス指数に所定の割合が積算され、その積算された値は、0〜1の単一の指数を生成するために集計される。単一の指数を形成するために、特性について多数の代替の組を使用可能であることが認識される。例えば、一実施形態では、平均CPU負荷、CPU温度、ソースに接続している平均ユーザ数、及び単一の指数を形成するコンテンツ交換部への入出力の速度を組合せることが可能である。
【0124】
CPU負荷最大値の90%、20%に正規化されたコンテンツオブジェクトサイズ、30%に正規化されたローカルメモリのサイズ、80%に正規化されたローカルメモリに含まれる平均コンテンツオブジェクトのサイズ、及び50%に正規化されたローカルメモリにコンテンツオブジェクトがとどまる平均時間が判明している場合に単一の指数を形成する例を示す。それぞれの特性が単一の指数において等しい役割を果たすように、これらの正規化値を集計可能である。従って、それぞれの正規化値には20%を積算し、その後集計して単一の指数を生成する。これにより、この例の単一の指数は、54%、即ち0.54となる。例及び実施形態は、単に例示的なものであり、複数の特性を単一の指数に結合する多数の代替の方法が可能である。
【0125】
BGPルーティング情報は、ボーダグループプロトコル解析の結果として報告されるいかなる情報も含む。一般に、この情報は、パストポロジに関するものであり、また自律システム(AS)のパス属性、及びASの次のホップを含むが、これに限定されるものではない。
【0126】
路程差は、コンテンツ交換116とクライアントコンピュータ112とを接続している代替のパス間における、バンド幅又は待ち時間の差を決定するいかなる解析も含む。
【0127】
ポート応答時間は、ポート応答の指示を提供するいかなる解析も含む。一般に、試験は、コンテンツ交換部116のポートの応答時間に関する情報を提供する。例えば、ポート時間は、長さゼロのメッセージを転送するのに必要な時間を判定するいかなる解析も含み得る。一般的に、長さゼロの転送結果は、毎秒当たりの交換メッセージの数として報告される。毎秒当たりの交換の数は、コンテンツ交換部116の待ち時間を推定するために使用される。
【0128】
上記したあらゆる方法論を、コンテンツ交換部116とクライアントコンピュータ112とを接続するパスのQOSや伝送品質の指標を提供するために組合せてもよい。代替手段として、上記のあらゆる方法論もQOS評価986を提供するために他のネットワーク解析方法論と組合せ可能である。例えば、一実施形態では、ピング、トレースルート、及びヘルスチェックは、QOS評価を提供するために組合せて使用される。
【0129】
他の実施形態では、上記した方法論の全てをQOSを決定するために組合せる。QOSを決定するためには、それぞれの方法論を実行し、それぞれの方法論のQOS係数を返信する。それぞれの方法論のQOS係数は、その後正規化されて、それぞれの分析パスの単一のQOS係数を形成するために集計される。QOS係数の正規化は、それぞれの方法論を等しく重み付けして実行される。
【0130】
例えば、一実施形態では、次の正規化と集約演算がなされる。即ち、(1)トレースルートが9個のホップを報告、(2)ファイル転送を介したバンド幅試験が300ミリ秒を報告、(3)サーバヘルスチェックが健康な1つを報告、(4)サーバロード/リソースチェックが平均65%のCPU負荷を報告、(5)BGPルーティング情報が4個のホップを報告、及び、(6)ポート応答時間が45ミリ秒を報告する。また、それぞれの戻り値をそれぞれ所定の最大値と比較する。即ち、(1)トレースルートの30個のホップ、(2)ファイル転送を介したバンド幅試験の500ミリ秒、(3)サーバヘルスチェックの1、(4)サーバロード/リソースチェックの100%、(5)BGPルーティング情報の6個のホップ、(6)ポート応答時間の100ミリ秒である。
【0131】
正規化と集計を実行するために、それぞれの戻り値を、それぞれの所定の最大値で除算する。これにより、トレ−スルートは0.33、ファイル転送を介したバンド幅試験は0.6、サーバヘルスチェックは1、サーバロード/リソースチェックは0.65、BGPルーティング情報は0.75、ポート応答時間は0.45という結果が得られる。次に、正規化値の全てを集計し、全体的なQOS係数として3.78を得る。このQOS係数を、その後多様なコンテンツ交換部116を比較するために使用する。
【0132】
他の実施形態では、それぞれの手法から報告される値は、集約演算の前に異なる重み付けをしておく。重み係数は、報告されたQOS係数に影響を及ぼすようにユーザが提供してもよい。上記の例における値を使用してこの実施形態を説明するが、ここで各種方法論から報告される正規化値は、(1)トレースルート 0.33、(2)ファイル転送を介したバンド幅試験 0.6、(3)サーバヘルスチェック 1、(4)サーバロード/リソースチェック 0.65、(5)BGPルーティング情報 0.75、(6)ポート応答時間 0.45である。この例に続けて、以下の重み係数を使用する。即ちトレ−スルートは1、ファイル転送を介したバンド幅は3、サーバヘルスチェックは1、サーバロード/リソースチェックは4、BGPルーティング情報は1、ポート応答時間は3、を使用する。それぞれの正規化値にそれぞれ重み係数を積算して、(1)トレースルート 0.33、(2)ファイル転送を介したバンド幅試験 1.8、(3)サーバヘルスチェック 1、(4)サーバロード/リソースチェック 2.6、(5)BGPルーティング情報 0.75、(6)ポート応答時間 1.35という結果になる。次に、重み付けされた正規化値を集計し、全体的なQOS係数として7.83を得る。再び、このQOS係数を様々なコンテンツ交換116を比較するのに使用する。
【0133】
重み係数を提供することに加えて、ユーザは、手動でコンテンツ交換部116の所定の順序を選択するか、又は単一の受け入れ可能なコンテンツ交換116だけを提供できるが、そのいずれかは、パスQOS評価986の自動解析を効果的に無効にする。従ってユーザは、コンテンツ交換部116のQOS係数の完全自動生成を可能にすることによって、パスQOS評価986を手動で重み付けしてコンテンツ交換116に報告されたQOS係数を達成することによって、或いは、自動分析を無視して所望のコンテンツのリスト116を提供することによっていかなる所望の結果をも達成できる。
【0134】
いくつかの実施形態では、複数段階のパスQOS評価986を、上述した方法のサブセットを使用して実行し、粗いQOS解析の後で限定された数のコンテンツ交換116で精密なQOS解析を実行可能である。この複数ステップの解析は、充分なQOSを提供しそうにないコンテンツ交換部の精密なQOS解析を回避してパスQOS評価986の効率を向上させる。従って、典型的な実施形態では、ピング及びトレースルートは、コンテンツ交換データベース232に含まれる全てのコンテンツ交換部116にて粗いQOS解析を実行するために適用される。その後、粗いQOSによると充分なQOSを提供する、所定の数、好ましくは25未満のコンテンツ交換部116を、精密なQOS解析としてサーバヘルスチェックを使用して評価する。精密なQOS解析の結果、充分なQOSを提供するコンテンツ交換部116が決定する。方法のいかなる組合せが精密な、又は粗いQOS解析のいずれかを実行するために適用され得る。代替手段においては、精密な、又は粗いQOS解析のいずれかは、それ自身複数ステップの解析からなることが可能であることが認識される。
【0135】
パスQOS評価986を可能性があるパスにて実行し、それぞれ評価パスのQOS係数がクライアントコンピュータ112のメモリに記憶された後、評価パスに関連したコンテンツ交換部116に優先順位をつける990。コンテンツ交換部116は、パスQOS評価986で決定されるQOS係数に基づいて優先順位がつけられる。QOS係数に基づいて、所定の数のコンテンツ交換部が選択され、ランク付けされて、優先情報512として記憶される。一実施形態では、優先情報512は、10個の優先コンテンツ交換部116を含む。
【0136】
上記で開示したように、別の実施形態では、必ずしもコンテンツ交換部116及びオリジンサーバ108とは限らないあらゆるコンテンツオブジェクトソース上でパスQOS評価を実行できる。この場合、優先情報512は、コンテンツ交換部116だけでなくコンテンツオブジェクトソース、オリジンサーバ108を含むことが可能である。
【0137】
優先情報512は、クライアントコンピュータ112の観点から実行されるネットワーク解析により充分なQOSを提供するものと決定されたコンテンツ交換部116のリストを含む。クライアントコンピュータ112の観点からQOSを分析することで、QOSは改善できる。
【0138】
いくつかの実施形態では、優先情報512は、パスQOS評価986により分析されるコンテンツ交換部116のサブセットを形成するために使用される。例えば、同一サイトに存在する、又は優先情報512に含まれるコンテンツ交換116として同一プロバイダに関連したコンテンツ交換116を、試験してもよい。このように、充分なQOSを提供する蓋然性が最も高いコンテンツ交換部116のみが、次のパスQOS評価986で再評価される。代替手段では、優先情報512が最後に作成されてから、コンテンツ交換データベース232に加えられた他のコンテンツ交換部116とともに、優先情報512に含まれるコンテンツ交換116を、パスQOS評価986で分析することができる。これらの方法で、ビューワオブジェクトプロキシ504の経験を、より効率的なパスQOS評価986を実現するために使用できる。上記の実施形態は、単に例示のためのものであり、コンテンツ交換116を選択するための多数のアルゴリズムが存在して、パスQOS評価986の効率を向上させることが認識される。例えば、特定のコンテンツ交換116についてパスQOS評価986の以前の動作では十分に劣悪な結果を報告することがあれば、再度分析することなく、むしろ推定的に除外する。いくつかの実施形態では、この推定に基づく除外は、ユーザが手動で無効にできる。
【0139】
パスQOS評価986の結果は、ユーザに表示992できる。いくつかの実施形態では、その結果は、ビューワオブジェクトプロキシ504のアプリケーションをクライアントコンピュータ112のデスクトップで実行し続けるようにユーザを促すために、及び、重み付け機能852を変更する際にユーザが手動でコンテンツ交換部116の選択を制御することを容易にするために表示される。一実施形態では、他のものに加えてディスプレイ機能854は、動作特性を記載している統計値とともに、クライアントコンピュータ112と選択されたコンテンツ交換116との間のホップを例示している地域のマップを提供する。
【0140】
スタートアップ980で優先情報512を更新することに加えて、優先情報512を、ユーザ要求994、又は時間間隔996のいずれかに基づいて更新できる。一実施形態では、優先情報512を時間間隔996で更新し、それを3600秒にセットする。
【0141】
図9に関して記載したバックグラウンドアプリケーションに加えて、ビューワオブジェクトプロキシ504は、電子商取引要求にサービスを提供すると共に、コンテンツ配信システム100、外部オリジンサーバ118、及びインターネット120からコンテンツオブジェクトのユーザリクエストにサービスを提供していることを含みこれに限定されない、フォアグラウンドオペレーションを提供可能である。より詳細には、電子商取引機能866に関連して上記したように、ビューワオブジェクトプロキシ504は電子商取引の要求を処理できる。
【0142】
コンテンツ配信システム100、外部オリジンサーバ118、及びインターネット120からコンテンツオブジェクトにアクセスについて、図10に含まれるビューワオブジェクトプロキシ要求サービス1000の実施形態を示すフローチャートに従って説明する。図10を参照する。コンテンツオブジェクトに対するユーザ要求1010をビューワオブジェクトプロキシ504が受信する。一実施形態では、コンテンツ配信システム100は、コンテンツ処理プログラム508を通してアクセスされる。より詳細には、ユーザコマンドに反応して、コンテンツ処理プログラム508は、コンテンツオブジェクト要求を発行する。コンテンツオブジェクト要求は、ユーザ要求1010としてビューワオブジェクトプロキシ504に転送される。
【0143】
ユーザ要求1010を受信すると直ちに、ビューワオブジェクトプロキシ504は、受信したユーザ要求1010がコンテンツ配信システムへのアクセス1020によって履行できるか否かを判定する。一実施形態においてこの判定は、ユーザ要求1010のソースロケーションをコンテンツ配信システム100に関連したソースロケーションの既知のリストと比較することにより実行される。ユーザ要求1010のソースロケーションがコンテンツ配信システム100に関連したースロケーションと一致する場合、その要求はコンテンツ配信システムへのアクセス1020によって履行される。従って、コンテンツ配信システムサービス1030は、ユーザ要求1010を履行するために実行される。
【0144】
いくつかの実施形態では、ビューワオブジェクトプロキシ504は、オリジンサーバ108と優先情報512を通信してコンテンツ配信システムサービス1030を実行する。優先情報512を使用して、オリジンサーバ108は、ユーザ要求1010に充分なQOSを提供できるコンテンツ交換部116、又はオリジンサーバ108を選択する。オリジンサーバ108は次に、選択されたコンテンツ交換部116、又はオリジンサーバ108のアドレスをビューワオブジェクトプロキシ504に通信する。一実施形態では、オリジンサーバ108は、動的にHTMLを書き込み、ビューワオブジェクトプロキシ504に選択されたコンテンツ交換116やオリジンサーバ108のアドレスを通信する。次に、ビューワオブジェクトプロキシ504は、選択されたコンテンツ交換部116や、オリジンサーバ108と互換性がある圧縮、暗号化、及びセキュリティについて交渉する。代替の実施形態では、ビューワオブジェクトプロキシ504自体がコンテンツ交換部116を選択し、優先情報512を使用して要求されたコンテンツオブジェクトを提供することができる。
【0145】
ビューワオブジェクトプロキシ504は、選択されたコンテンツ交換部116又はオリジンサーバ108からコンテンツオブジェクトを要求してユーザ要求1010を履行する。要求されたコンテンツオブジェクトが受信されると、交渉されたフォーマットに従って、解凍、解読、及びセキュリティがビューワオブジェクトプロキシ504によって提供される。このように、オリジンサーバ108にクライアントコンピュータ112の特定情報を送信することによって、オリジンサーバ108は充分なQOSを提供できるコンテンツ交換部116を選択可能である。クライアントコンピュータ112の観点からの解析やコンテンツ交換選択を提供して、より正確なQOS解析が達成でき、結果としてより良好なQOSを得ることができる。
【0146】
ユーザ要求1010をコンテンツ配信システムアクセス1020が履行できない場合、ビューワオブジェクトプロキシ504は次に、ユーザ要求1010は外部オリジンサーバアクセス1040によって履行可能か否かを判定する。一実施形態では、この判定は、ユーザ要求1010に示すドメインネームを、ホストされるサーバルーティング520にて提供される外部オリジンサーバ118のドメインネームと比較することにより実行される。ユーザ要求1010に示すドメイン名が外部オリジンサーバ118のドメイン名と一致する場合、ユーザ要求1010は、外部オリジンサーバサービス1050を実行することで、一致した外部オリジンサーバ118から履行可能である。このように、ユーザ要求1010を履行するために外部オリジンサーバサービス1050が実行される。他の実施形態では、ユーザ要求1010は、ディレクトリネーム、マシンネーム、IPアドレス、受け入れられたサーバルーティング520に含まれる外部オリジンサーバに対応する識別子と比較される他の識別子を含んでもよい。
【0147】
一実施形態では、ビューワオブジェクトプロキシ504は、一致した外部オリジンサーバ118から供給されるコンテンツオブジェクトを提供することが知られているコンテンツ交換部116にアクセスして、外部オリジンサーバサービス1050を実行する。このように、ビューワオブジェクトプロキシ504は、一致した外部オリジンサーバ118からコンテンツ交換部116にユーザ要求1010をあて先変更する。このあて先変更は、一致した外部オリジンサーバ118と、コンテンツ処理プログラム508との両方にトランスペアレントである。いくつかの実施形態では、ビューワオブジェクトプロキシ504は、選択されたコンテンツ交換部116と、互換性がある圧縮、暗号化、及びセキュリティについて交渉する。これに応じて、コンテンツ交換部116は、交渉された圧縮、暗号化、及びセキュリティに従ってユーザ要求1010を履行する。コンテンツ交換部116が要求されたコンテンツオブジェクトを有しない場合には、コンテンツ交換部116は、一致した外部オリジンサーバ118から所望のコンテンツオブジェクトを要求する。いずれにせよ、要求されたコンテンツオブジェクトは、コンテンツ交換部116がクライアントコンピュータ112に通信する。要求されたコンテンツオブジェクトが受信されると、解凍、解読、及びセキュリティは、交渉されたフォーマットに従ってビューワオブジェクトプロキシ504によって提供される。このように、コンテンツ交換部116からユーザ要求1010のサービスを提供することによって、外部オリジンサーバ118を維持管理しているコンテンツオブジェクトプロバイダは、コンテンツオブジェクトの配信の負担を負わない。
【0148】
代替の実施形態では、ビューワオブジェクトプロキシ504は、オリジンサーバ108に優先情報512を通信して外部オリジンサーバサービス1050を実行できる。優先情報512を使用して、オリジンサーバ108は、ユーザ要求1010に充分なQOSを提供できるコンテンツ交換116、又はオリジンサーバ108を選択する。オリジンサーバ108は、選択されたコンテンツ交換部116にアドレスを、ビューワオブジェクトプロキシ504にオリジンサーバ108を通信する。
【0149】
ビューワオブジェクトプロキシ504は次に、選択されたコンテンツ交換部116、又はオリジンサーバ108からコンテンツオブジェクトを要求することによってユーザ要求1010を履行する。
【0150】
選択されたコンテンツ交換116又はオリジンサーバ108は、一致した外部オリジンサーバ118から所望のコンテンツオブジェクトを要求し、その後ビューワオブジェクトプロキシ504に、要求されたコンテンツオブジェクトを通信することでユーザ要求1010を履行する。このように、クライアントコンピュータ112に合わせてサービスを提供することで、より良好なQOSが達成できる。さらに、コンテンツ交換部116からユーザ要求1010にサービスを提供することで、外部オリジンサーバ118を維持管理しているコンテンツオブジェクトプロバイダは、コンテンツオブジェクトの配信を負担しないですむ。
【0151】
ユーザ要求1010が、外部オリジンサーバアクセス1040又はコンテンツ配信システムアクセス1020によって履行不能な場合には、ユーザ要求1010は、インターネット120へ送信される。一実施形態では、インターネット120へ通過した1060ユーザ要求1010は、標準のウェブアクセス機能858に関して記載したように処理される。
【0152】
図11を参照する。オリジンサーバ108とコンテンツ交換部116との間でコンテンツをトラッキングする方法の実施形態を示す。この例は主に単一のオリジンサーバと単一のコンテンツ交換との間の対話を示すが、各オリジンサーバが多くのコンテンツ交換と交信し、各コンテンツ交換が多くのオリジンサーバと交信するのは当然である。全てのオリジンサーバ108と全てのコンテンツ交換116の間の対話で、システム600は、コンテンツオブジェクトの部分の追跡が可能になる。
【0153】
この処理は、オフライン、又は利用不能な状態で、コンテンツ交換部とオリジンサーバから開始される。ステップ1104では、コンテンツ交換部116は、動作開始後に利用可能となる。最初に利用可能になる場合、コンテンツ交換部116は、空であり、クライアントコンピュータ112によるコンテンツの要求を待機する。クライアントコンピュータ112が要求を履行すると、コンテンツ記憶部412は、それ自体をコンテンツオブジェクト、又はコンテンツオブジェクトの部分で満たす。
【0154】
ステップ1108で、この実施形態のオリジンサーバ108は動作を開始し、利用可能となる。オリジンサーバ108は、アクティブディレクトリ104にそのローカルコンテンツカタログを掲載して、システム600の全てのコンテンツトラッカー404に、自身を識別させる。稼働しているコンテンツ交換部116のコンテンツ交換データベース232は、コンテンツマネージャ312がコンテンツトラッカー404のアドレスを判別するように、問い合わせできる。
【0155】
それぞれのコンテンツ交換部116は、それと交信したオリジンサーバ108のオリジンサーバデータベース424を維持管理する。オリジンサーバ108がオフラインになる前に、オリジンサーバ108は、全てのコンテンツ交換116と交信して、ステータスのこの変化をそれら116に通知しようとする。オフラインになったオリジンサーバ108は、オリジンサーバデータベース424から削除される。オリジンサーバ108がステータスを送信するコンテンツ交換部116への応答に失敗したときは常に、そのオリジンサーバ108はオフラインと推定され、オリジンサーバデータベース424から削除される。
【0156】
コンテンツ交換部116がオフラインになる予定にある場合は常に、それはシステム600に通知しようとする。それぞれのオリジンサーバ108のコンテンツト交換情報324とコンテンツロケーションデータベース320が、最新に維持されるように、コンテンツオブジェクト、又はコンテンツオブジェクトの部分を有するオリジンサーバ108に通知する。さらに、コンテンツ交換データベース232がシステム600に利用可能なコンテンツ交換部116を正確に反映するように、アクティブディレクトリ104に通知がされる。
【0157】
ステップ1108で交信された各コンテンツトラッカー404は、ステップ1112で、ステータス情報420、及びそのコンテンツマネージャ312に関するあらゆるコンテンツオブジェクトをコンテンツマネージャ312に応答する。コンテンツマネージャ312がオンラインになるところであるため、コンテンツ記憶部412上には、そのコンテンツマネージャ312に関連したコンテンツサーバ308から発生したいかなるコンテンツオブジェクトも存在する蓋然性が低い。応答した各コンテンツ交換部116からのステータス情報420は、コンテンツ交換情報324としてコンテンツマネージャ312に記憶される。多様な実施形態においてステータス情報420は、コンテンツカタログ情報416の有無にかかわらず報告され得る。コンテンツオブジェクトのソースにクライアントコンピュータ112をルーティングする場合、問題のコンテンツ交換部へのローディングを判定するためにコンテンツ交換情報324が使用される。コンテンツ交換情報324が最新であるように、それぞれのコンテンツトラッカー400は、ステータス情報を有する全てのアクティブなコンテンツマネージャ312を定期的に更新する。別の実施形態では、定期的にではなく、ステータスの重大な変更が突然発生した場合に、コンテンツトラッカー404は、更新したステータス情報420を提供し得る。
【0158】
ステップ1116で、コンテンツマネージャ312は、クライアントコンピュータ112をコンテンツ交換部116に送信して、コンテンツオブジェクトの要求を履行する。クライアントコンピュータ112をあて先変更する前に、コンテンツマネージャ312は、特定のコンテンツ交換部がそのコンテンツオブジェクトの優先ソースであるという決定をする。コンテンツオブジェクトの全体が優先コンテンツ交換部116にない場合、コンテンツコントローラ408は、ステップ1120で欠落しているコンテンツオブジェクトの部分を検索する。一旦コンテンツオブジェクトの先頭部分がコンテンツ交換部116から入手可能になった場合には、クライアントコンピュータ112はコンテンツオブジェクトをダウンロードし始める。
【0159】
所定の間隔をもって、又は変更が発生したときに、コンテンツトラッカー404は、全てのコンテンツマネージャ312に、コンテンツ記憶部412に記憶されたコンテンツオブジェクト、及び/又は、コンテンツオブジェクトの部分を報告する。ローカルコンテンツカタログ416は、コンテンツ記憶部412に保持されるコンテンツオブジェクト、及び/又は、コンテンツオブジェクトの部分のリストを記憶する。ステップ1120で追加される可能性があるコンテンツオブジェクトをステップ1124で、元々コンテンツオブジェクトを提供していたオリジンサーバ108に通信する。コンテンツ記憶部412上の情報を有するそれぞれオリジンサーバ108は、コンテンツトラッカー404からレポートを受信する。
【0160】
その後ある時点において、ステップ1128でローカルコンテンツカタログ416からのさらなる情報を、コンテンツトラッカー404からコンテンツマネージャ312に送信する。ステップ1132のタイマーの失効でこのレポートは、始動するが、他の実施例では変更が発生した場合にこの情報を報告することもある。全てのコンテンツ交換部116からのレポートにより、コンテンツマネージャ312は、記憶場所情報をコンテンツロケーションデータベース320に記憶する。コンテンツマネージャによるコンテンツロケーションデータベース320に関する将来の問い合わせは、コンテンツマネージャ312がクライアントコンピュータ112のあて先変更を希望するコンテンツオブジェクトをどのコンテンツ交換部116が現在有しているのかを知ることを可能にする。
【0161】
ステータス情報420、及び/又は、コンテンツカタログ情報416のレポートが特定のコンテンツマネージャ312に作成されると、コンテンツトラッカー404は、コンテンツマネージャ312が情報を受理するか否かを判定する。コンテンツマネージャがその情報を受理した場合、処理は、他のコンテンツオブジェクトを要求するステップ1116にループして戻る。
【0162】
コンテンツマネージャ312が例えばオフラインである場合、コンテンツトラッカー404から報告された情報は、受理されない。コンテンツトラッカー404は、コンテンツマネージャ312が利用不能と結論付ける前に、不成功に終わる交信試行をいくつか行う場合がある。応答しないコンテンツマネージャ312を、ステップ1136で検出する。利用不能なコンテンツマネージャ312に関連したあらゆるコンテンツオブジェクトが、ローカルコンテンツカタログ416への問い合わせによって判定される。関連したコンテンツオブジェクトは、新規のコンテンツオブジェクトの場所を残しておくためにコンテンツ記憶部412から一掃されるか、又は記憶空間が必要なときは、それらは削除用のタグを付けられる。オリジンサーバネームをIPアドレスに翻訳する上記の処理の間、コンテンツトラッカーは、動的DNS204に問い合わせする。
【0163】
次に図12を参照する。コンテンツマネージャからサーバマネージャへ情報を通信する処理の実施形態を示すフローチャートが示されている。示されたフローチャートは、アクティブディレクトリ104と単一のオリジンサーバ108間の対話を示す。しかし、アクティブディレクトリ104は、類似の方法で多数のオリジンサーバと対話して、サーバデータベース228のオリジンサーバの番号をカタログ化する電子名簿を開発することが理解される。ユーザは、検索ページ、ディレクトリページ規範をもってサーバデータベース228に問い合わせる。
【0164】
処理は、ステップ1204で開始され、ここで、コンテンツマネージャ312は、サーバマネージャ208にステータス情報を提供する。サーバマネージャ208は、ステータス情報を受信し、ステップ1208で、加入者データベース224に記憶する。加入者データベース224は、システム600で現在アクティブな全てのオリジンサーバ108の情報を保持している。
【0165】
サーバマネージャ208は、それぞれのオリジンサーバ108がローカルコンテンツカタログ316からの情報を報告応答する頻度を管理できる。それぞれのオリジンサーバがローカルコンテンツカタログ316に報告する頻度は、ステップ1210でコンテンツマネージャ312に報告応答時間間隔を提供するサーバマネージャ208が制御する。アクティブディレクトリ104のローディング又は利用は、サーバデータベース228の情報の更新に利用できるバンド幅の総計を決定するために分析される。そのローディング決定に基づき、報告応答時間間隔が選択され、コンテンツマネージャ312に送信される。ある実施形態では、報告応答時間間隔は通常2分に設定されるが、アクティブディレクトリがオーバーロードになる場合にはそれより長くすることも可能である。
【0166】
各オリジンサーバ108は、システム600に掲載するために管理者が選択する全てのコンテンツオブジェクトのローカルコンテンツカタログ316を維持管理する。コンテンツマネージャ312がローカルコンテンツカタログ316を報告するためにサーバマネージャ208と交信する最初の時に、カタログ316からの全てのエントリは送信される。次の交信の際は、ローカルコンテンツカタログ316に対する変更だけが、バンド幅を保存するために報告される。別の実施形態では、全部のローカルコンテンツカタログは、それぞれの交信で報告される。ステップ1216で、サーバマネージャ208は、ローカルコンテンツカタログ316、又はローカルコンテンツカタログに対する変更を受信してその情報をサーバデータベース228に記憶する。報告応答時間間隔の間に、ローカルコンテンツカタログ316に変更がない場合であっても、オリジンサーバ108がまだ利用可能であることを知らせるため、オリジンサーバ108は、サーバマネージャ208と交信する。
【0167】
サーバマネージャ208は、オリジンサーバ108がオフライン、又はそうでなく利用不能であることが推定されるためにオリジンサーバ108がその交信を停止するか否かを検出する。ステップ1220で、サーバマネージャ208は、オリジンサーバ108のタイムアウト値を設定する。タイムアウト値は、本実施例では、報告応答時間間隔の3倍に設定されるが、他の倍数も使用できる。カウンタは、タイムアウト値に設定され、カウンタがいつタイムアウト値に到達したかを決定する。
【0168】
ステップ1224でカウンタがタイムアウト値に到達すると、ステップ1236でアクティブディレクトリ104は、オリジンサーバ108に対する全ての参照を削除、又はスペースが必要な場合は、削除するために参照にタグ付けを実行する。カウンタがタイムアウト値に到達する前に交信が始まらない場合には、オリジンサーバ108は、利用不能と推定される。そのオリジンサーバ108のローカルコンテンツカタログ316に対応するエントリは、サーバデータベース228から削除され、オリジンサーバ108のエントリは、加入者データベース224から削除される。データベース224,228からエントリを削除することで、ディレクトリ、検索ページ212,216とインタフェースしているどんなユーザにも、そのオリジンサーバ108に関連したコンテンツオブジェクトのリンクが提示されない。一方、カウンタがタイムアウト値に到達した後、ローカルコンテンツカタログ316に対応するエントリは削除用のタグを付けられてもよい。他のコンテンツオブジェクトのスペースが必要な場合、削除のためにタグ付けされたコンテンツオブジェクトは、上書きされる。
【0169】
ステップ1228で決定されるようにオリジンサーバ108による交信がある場合には、アクティブディレクトリ104は、オリジンサーバ108が適切にふるまっていることを知る。交信は、タイムアウト値を格納しているカウンタを再設定する結果になる。処理は、サーバデータベース228が更新されるステップ1210にループして戻り、新しい報告応答時間間隔が決定される。タイムアウト値を記憶しているカウンタが時間切れになる前に、オリジンサーバ108が報告できなくなるまで、この処理はループして繰り返される。
【0170】
図13を参照する。コンテンツマネージャ312がサーバマネージャ208に情報を掲載する処理の実施形態を示すフローチャートが示されている。オリジンサーバの管理者は、アクティブディレクトリ104のダウンロードページ220から、ソフトウェアをダウンロードする。そのソフトウェアは、オリジンサーバ108上にインストールされる。この時点で、コンテンツオブジェクトは、静的な、又はストリーム形態にてコンテンツサーバ308上で利用可能である。オリジンサーバが準備できたコンテンツオブジェクト、及びソフトウェアがインストールされた状態から動作を開始するステップ1304から処理が開始される。
【0171】
ステップ1308で、管理者は、コンテンツオブジェクトを選択するために手動の選択処理を実行する。この処理の間、コンテンツサーバ308上のコンテンツオブジェクトのサブセットのみが、システム600に利用可能にされてもよい。選択されたコンテンツオブジェクトは、ローカルコンテンツカタログ316に入力される。
【0172】
ステップ1308,1312で、コンテンツマネージャ312は、アクティブディレクトリ104と最初に交信するとすぐに、加入者データベース224にエントリするために、オリジンサーバ108に関する情報をサーバマネージャ208に送信する。これがコンテンツマネージャ312のアクティブディレクトリ104との最初の交信の場合は、管理者は、送信されたいくつかの情報を提供してもよい。管理者が追加する情報は記憶され、加入者データベース224を有する次の交信で提供される。
【0173】
ステップ1316で、コンテンツマネージャ312は、サーバマネージャ208と交信し、ローカルコンテンツカタログ316の情報を掲載する。ステップ1320で、サーバマネージャ208は、ローカルコンテンツカタログ316を入手し、それぞれのコンテンツオブジェクトのためにサーバデータベース228へのエントリを作成する。コンテンツをユーザが検索するために提示されるディレクトリページ及び検索ページ212,216を系統立てて整理するときに、そのサーバデータベース228のコンテンツが使用される。
【0174】
サーバマネージャ208は、全てのオリジンサーバ108がそれらのローカルコンテンツカタログ316を報告する頻度を制御する。サーバマネージャ208がオーバーロードされている場合、コンテンツマネージャ312に与えられた報告応答期間は増加される。ローカルコンテンツカタログ316の変更が検出されると、サーバマネージャ208はまた、コンテンツマネージャ312に報告応答するよう要求できる。本実施例では、その報告応答期間、又はインターバル時間は2分であり、ステップ1324で、コンテンツマネージャ312に提供される。
【0175】
サーバマネージャ208に報告応答する前に、ステップ1328で、コンテンツマネージャ312は、間隔時間の期限切れを待機する。一旦タイマーが期限切れになると、コンテンツサーバ308上のコンテンツオブジェクトは、ローカルコンテンツカタログ316が変更されるべきかどうか判定するためにスキャンされる。ステップ1332で、一旦変更されると、処理ループは、ローカルコンテンツカタログ316がもう一度サーバデータベース228に掲載される、ステップ1316へ戻る。ステップ1316で、1回目の交信についての全部のローカルコンテンツカタログが提供され、情報量を減少するために次の交信については変更のみが提供され、情報を更新する。
【0176】
次に図14を参照する。別々のポート1408経由で接続される複数のプロバイダを示すコンテンツ交換部116の実施形態のブロック図を示す。コンテンツ交換部116に対して3個のデータパス1404がインターネットプロトコルポート1408で論理的に分離される。ポート1408が物理的に共通ダクトを共有できる場合でも、ポートは、論理的データパス1408を非多重化するために使用される。複数のポート1408を有するので、それらのポート1408と関連するトラフィックを管理することができる。
【0177】
例えば、外部オリジンサーバ118からコンテンツオブジェクトを提供するためにコンテンツ交換部116が使用されてもよい。外部オリジンサーバの管理者は、トラフィックを3個のバンド幅のプロバイダに分割することを希望することもある。ポートA 1408Aは、プロバイダAと関連でき、ポートB 1408Bは、プロバイダBと関連でき、ポートC 1408Cは、プロバイダCと関連できる。コンテンツ交換部は、それらのポートのアクティビティをモニターでき、それらがそのバンド幅を運ぶために外部オリジンサーバ118に適切な請求ができるようにプロバイダにその情報を報告する。
【0178】
クライアントコンピュータ112からの要求は、プロバイダ間でバンド幅を割り当てできるように、外部オリジンサーバ118が決定する構成に従ってポート1408間で分割できる。ある実施形態では、それぞれのクライアントコンピュータ112は、重み付け機能に従って3個のポート1408を循環する。他の実施形態では、それぞれのクライアントコンピュータは、異なるポート1408を割り当てられて使用する。さらに他の実施例では、各ポート1408のQOSの決定は、クライアントコンピュータ112が使用するポート1408の選択肢に影響する。これらの技術を使用して、システム600のクライアントコンピュータ112は、それぞれのプロバイダから購入するバンド幅の総計に影響を与えることが可能である。
【0179】
図15を参照する。別々のアドレス1508経由で接続される複数プロバイダを示すコンテンツ交換部116の他の実施形態のブロック図を示す。この実施形態では、3個のIPアドレス1508は、論理的に3個のデータパス1504を互いに分離するために使用される。論理的データパスは、主としてプロバイダごとにバンド幅を分離することを想定しているが、論理的データパスは、セキュリティレベル、コンテンツオブジェクトのサブセット、又はその他のものを分離できる。
【0180】
次に図16を参照する。プロバイダ1604とコンテンツ交換116のグループ化の実施形態の階層表現を示す。この実施形態では、2個のバンド幅プロバイダ1604がある。それぞれのプロバイダ1604は、それ自身専用のサイト1608−1,1608−3と、共有されるサイト1608−2とを有する。サイト1608は、1個以上のサーバ1612を収容し、複数サーバ1612を収容し得る単一のコンテンツ交換部116に対応する物理的位置である。
【0181】
共有サイト1608−2の各サーバ1612−3は、そのサイト1608−2を共有しているそれぞれのプロバイダ1604の別々のIPアドレス1616−3,1616−4を有する。この2個のIPアドレス1616−3,1616−4は、与えられた共有サイト1602−2に、トラフィックの論理的区切りを許可する。全てのトラフィックが時々同一の物理的ダクトを共有したとしても、論理的区切りは、コンテンツオブジェクト要求、及びそれらの要求をサービスするバンド幅を個々のプロバイダ1604帰すことを可能にする。ある実施形態では、それぞれのプロバイダと関連するトラフィックを、IPアドレス1616上のフィルタリングによって、物理的に分離しておくことができる。このように、バンド幅は、プロバイダ1604に割り当てられてもよい。
【0182】
次に図17を参照する。プロバイダとコンテンツ交換のグループ化の他の実施形態の階層表現を示している。この実施形態では、ポート1716は、サーバ1612への論理的データパスを識別するために使用される。ポート1の1716−3は、プロバイダ1の1604−1と関連し、ポート2の1716−4は、複数プロバイダ1604にサービスするサイト1608−2上のプロバイダ2の1604−2と関連する。ある実施形態では、各プロバイダは、全てのサーバ上の単一の汎用ポートよりむしろそれらと関連する範囲のポートを有し得る。
【0183】
上記の記載によって、本発明の多数の利点が直ちに明らかである。コンテンツはオリジンサーバとコンテンツ交換部のネットワークを通じて確実な方式でトラッキングされる。多数のコンテンツ交換部がコンテンツ情報をオリジンサーバに報告応答して、そのコンテンツオブジェクトを既に有している可能性があるコンテンツ交換部へクライアントコンピュータをインテリジェントにルーティングする。
【0184】
発明の多数の変形と修正も使用可能である。例えば、ある実施形態ではステータスとカタログ情報とをオリジンサーバに直接に報告することがあるが、他の実施形態ではオリジンサーバが問い合わせ可能な中央の格納手段にこの情報を報告することがある。
【0185】
本発明は、その特定の実施形態に関して記載されているが、その実施形態は、発明の単なる例示であり、本発明の範囲を限定するものではない。発明の範囲は、添付の請求の範囲のみにより決定される。
【図面の簡単な説明】
【図1】コンテンツ配信システムの一実施形態を示すブロック図。
【図2】コンテンツ配信システムのアクティブディレクトリ部分の実施形態を示すブロック図。
【図3A】コンテンツ配信システムのオリジンサーバ部の実施形態を示すブロック図。
【図3B】コンテンツ配信システムの外部オリジンサーバ部の実施例のブロック図。
【図4A】コンテンツ配信システムのコンテンツ交換部の実施形態を示すブロック図。
【図4B】コンテンツ配信システムのコンテンツ交換部の他の実施形態を示すブロック図。
【図4C】複数のコンテンツ交換サーバを有するコンテンツ交換サイトの実施形態を示すブロック図。
【図5】コンテンツ配信システムのクライアントコンピュータ部の実施形態を示すブロック図。
【図6】コンテンツ配信システムの実施形態を示すブロック図。
【図7A】ユーザにコンテンツを配信するための処理の実施形態を示すフローチャートの第1の部分。
【図7B】図7Aのフローチャートの第2の部分。
【図8】ビューワオブジェクトプロキシの実施形態を示すブロック図。
【図9】ビューワオブジェクトプロキシのバックグラウンドアプリケーションを示すフローチャート。
【図10】ビューワオブジェクトプロキシ要求サービスを示すフローチャート。
【図11】オリジンサーバとコンテンツ交換部との間でコンテンツをトラッキングする方法の実施形態を示すフローチャート。
【図12】コンテンツマネージャからサーバマネージャへ情報を通信するための処理の実施形態を示すフローチャート。
【図13】コンテンツマネージャがサーバマネージャに情報を掲載する処理の実施形態を示すフローチャート。
【図14】別々のポート経由で接続される複数のプロバイダを示す、コンテンツ交換部の実施形態を示すブロック図。
【図15】別々のアドレス経由で接続される複数のプロバイダを示す、コンテンツ交換部の他の実施形態を示すブロック図。
【図16】プロバイダとコンテンツ交換のグループ化の実施形態を示す階層表現。
【図17】プロバイダとコンテンツ交換のグループ化の他の実施形態を示す階層表現。
本願は、2000年6月1日に出願された米国特許仮出願第60/209,007号の利益を主張する。
【0002】
(発明の背景)
本発明はコンテンツ配信一般に関する。より詳細には、インターネット上でコンテンツを配信する際におけるコンテンツオブジェクトのトラッキングに関する。
【0003】
最小の一定速度で高品質の大容量コンテンツオブジェクトを転送し、適切なQOSを提供したいという要望がある。ライブビデオブロードキャストは最小の一定速度で転送される大容量コンテンツオブジェクトの好適な例である。しかしインターネットは、これら種類の同報通信には貧弱なネットワークといえる。いくつかの潜在的ホップの各部におけるデータ品質の損失や、送信の大半での限定されたバンド幅や、インターネットが一定のデータ速度で長期間データを流すように設計されなかったことによるためである。
【0004】
上記のように、情報を損失することなく一定のデータ速度で大容量オブジェクトを転送することには、問題が多い。これらの重要な問題に対処するため、ストリーミングメディアを後時に再生するためにローカルハードドライブに完全にダウンロードする。ローカルハードドライブからの再生は、インターネットからのストリームコンテンツの配信に関連した欠点は回避する。しかしながら、インターネットから受信したコンテンツストリームをそれがダウンロードされた時に再生したいという要望がある。
【0005】
(発明の要約)
本発明は、ネットワーク上でコンテンツを配信するときのコンテンツオブジェクトのトラッキングに関する。本発明の一実施形態では複数のコンテンツ交換部からステータス情報を遠隔の箇所に報告し、第1及び第2のコンテンツ交換部とリモートサーバと第1及び第2のデータリンクとを有する。第1のコンテンツ交換部は第1の組をなす複数のコンテンツオブジェクト部分を有し、第2のコンテンツ交換部は第2の組をなす複数のコンテンツオブジェクト部分を有する。リモートサーバは第1の複数のコンテンツオブジェクト部分の第1サブセットを有し、第2の複数のコンテンツオブジェクト部分の第2サブセットを有する。第1のデータリンクは第1サブセットの第1カタログを第1コンテンツ交換部とサーバとの間で伝送し、第2のデータリンクは第2サブセットの第2カタログを第2コンテンツ交換部とサーバとの間で伝送する。
【0006】
図面及び請求項を含む明細書の以下の部分の説明により、本発明の他の特徴、及び効果が認識できるであろう。本発明の様々な実施態様の構造及び操作のみならず、本発明のさらなる特徴及び効果を添付の図面に関連させて下記により詳細に記載する。
【0007】
(発明の実施の形態)
本発明は、コンテンツ配信システムに亙り新しい方法でのコンテンツのトラッキングを可能とさせる。一実施形態ではそれぞれのコンテンツ交換部は、同コンテンツ交換部に記憶されたあらゆるコンテンツオブジェクト部分についてコンテンツマネージャに報告する。システムを介したコンテンツ交換部からの報告をもってコンテンツマネージャはコンテンツロケーションデータベースを維持管理する。コンテンツマネージャ又はコンテンツトラッカーが切断されたときに他の構成要素に通知が送られる。
【0008】
図面において、類似した要素、及び/又は機能は、同一の参照符号を有する場合がある。さらに、同一種類の異なる要素は、参照符号に続くダッシュや、類似した要素同士を識別させる第2の符号によって識別される。第1の参照符号のみが明細書で使用されていれば、その記載は第2の参照符号に関わりなく、同一の第1の参照符号を有したあらゆる類似の要素のうちの1つにも適用可能である。
【0009】
図1を参照する。コンテンツ配信システム100の実施形態のブロック図が示されている。本実施形態においてコンテンツ配信システム100は、アクティブディレクトリ104と、1つ以上のオリジンサーバ108と、1つ以上のクライアントコンピュータ112と、1つ以上のコンテンツ交換部116と、1つ以上の外部オリジンサーバ118と、インターネット120と、クローリングディレクトリ124とを有する。特定のクライアントコンピュータ112は、アクティブディレクトリ104と対話して、ダウンロードするためのコンテンツオブジェクトを選択する。オブジェクトは、ストリーミングメディアの場合にはダウンロードの間に再生可能であり、或いは後時のために記憶することも可能である。
【0010】
コンテンツオブジェクトは、ネットワークからダウンロード可能な、例えば、オーディオ、ビデオ、データなどあらゆる種類の情報であってもよい。コンテンツオブジェクトの要求は、優先情報とともにクライアントコンピュータ112から適切なオリジンサーバ108に転送される。オリジンサーバ108は、オブジェクトをどこからダウンロードするかを決定する。満足すべきQOSを提供するために、あらゆるコンテンツ交換部116、或いはオリジンサーバ108自体がオブジェクトを提供可能である。
【0011】
アクティブディレクトリ104は、クライアントコンピュータ112においてコンテンツオブジェクトを選択するためのインタフェースとなり得る。コンテンツ配信システム100を可能とするために、オリジンサーバ108と任意のクライアントコンピュータ112の双方のためのソフトウェアがアクティブディレクトリ104からダウンロードされ得る。希望するコンテンツオブジェクトを判定するためにディレクトリインタフェースページ、又は検索インタフェースページのいずれかを使用してもよい。オリジンサーバ108上のコンテンツオブジェクトとのリンク中断を回避すべく、インタフェースはアクティブに維持される。
【0012】
コンテンツ交換部116がオリジンサーバ108からコンテンツオブジェクトを要求する場合、アクティブディレクトリ104は、適切なオリジンサーバ108へ戻るパスを提供可能である。
【0013】
他の実施例では、複数のアクティブディレクトリを有してもよい。システムのユーザは、ローディングを配信するためにいくつかのアクティブディレクトリのうちで分割されていてもよい。さらに、1つのアクティブディレクトリがオフラインの場合には他のアクティブディレクトリがローディングを吸収できるように、他のアクティブディレクトリを冗長化のために使用してもよい。
【0014】
いくつかの実施形態においてオリジンサーバ108は、コンテンツオブジェクトのソースを提供し、コンテンツオブジェクトの優先ソースにユーザを導き、アクティブディレクトリ104にディレクトリ情報を提供する。コンテンツオブジェクトはオリジンサーバ108によってシステム100に導入される。導入は、アクティブディレクトリ104を利用可能にするための、オリジンサーバ管理者によるコンテンツオブジェクトの選択を含む。管理者とは、オリジンサーバ108を管理する人又はシステムである。コンテンツオブジェクトには、以前に記憶された情報、或いは情報のストリーミングによる提供が含まれる。オリジンサーバ108は所定のサイクルに従って、オリジンサーバ108上のコンテンツの変更とともに更新される選択情報のカタログを提供する。
【0015】
オリジンサーバ108は、コンテンツオブジェクトをダウンロードするために、クライアントコンピュータ112に指示すべき優先ソースを判定する。クライアントコンピュータ112の優先リストと、コンテンツ交換のローディングと、コンテンツオブジェクトのコピーがある場所との全ては、クライアントコンピュータを情報の優先ソースへとあて先変更する際にオリジンサーバ108にて検討する事項である。そのソースは、オリジンサーバ108自体か、又はコンテンツ交換部116のうちの1つである。
【0016】
ユーザは、所望のコンテンツオブジェクトを見つけ、その後そのオブジェクトをダウンロードするためにクライアントコンピュータ112に指示する。クライアントコンピュータ112は、アクティブディレクトリ104からダウンロードしたビューワオブジェクトプロキシソフトウェアを使用して、適切なQOSでコンテンツ配信が可能なコンテンツ交換116部を判定する。この適切なQOSを有するコンテンツ交換部116を判定する処理には、例えば優先リストを準備する際に最高の結果を生成する可能性が高いコンテンツ交換部からのテスト情報の受信が含まれる。カスタマイズされた方法を要望する場合、ユーザは、コンテンツ交換部116の優先リストを変更できる。オリジンサーバ108がコンテンツオブジェクトのソースを決定する際に、適切なQOSを提供するために優先情報を使用する。
【0017】
外部オリジンサーバ118は、クライアントコンピュータ112が利用可能なコンテンツオブジェクトのさらなるソースである。一実施形態では、外部オリジンサーバ118は、コンテンツ交換部116に接続される。
【0018】
コンテンツ交換部116は、コンテンツオブジェクトのキャッシュである。これら多数のコンテンツ交換部116は、インターネット120の異なる箇所に設置され、コンテンツオブジェクトをキャッシュする。情報は、例えば、ユーザにとっての情報の要望度や、ユーザが直ちに利用可能なコンテンツを要求するオリジンサーバ108へのサービスや、改善したQOSを要求するユーザへのサービスなどの、多くの考察に基づいてキャッシュされる。コンテンツ交換部116のグループ化は、かたまりごとであっても、或いはコンテンツオブジェクトに対するクライアントコンピュータ112の要求を提供すべく個別であってもよい。
【0019】
要求されているコンテンツオブジェクト、又はその一部を、それを要求しているユーザがコンテンツ交換部116から見つけられない場合、コンテンツ交換部116から他のコンテンツ交換部へ、そのコンテンツオブジェクトの要求がなされる。他のどのコンテンツ交換部116もコンテンツオブジェクトを有しない場合、アクティブディレクトリ104においてオリジンサーバ108に対する問い合わせがなされる。オリジンサーバ108は、コンテンツオブジェクトのソースであり、かつコンテンツオブジェクトがそこからダウンロードされる。コンテンツ交換部116がコンテンツオブジェクトを集めている間、クライアントコンピュータ112は、ダウンロード可能な最初の部分を受信している。コンテンツオブジェクトはいくつかのコンテンツ交換部116に部分ごとに記憶可能であり、要求を出すコンテンツ交換部116がそれら部分を検索して、クライアントコンピュータ112に要求されているような全体のコンテンツオブジェクトに再構築する。
【0020】
いくつかの実施形態では、要求したコンテンツオブジェクト、又は要求したコンテンツオブジェクトの一部を、それを要求しているユーザがコンテンツ交換部116から見つけられないときは、要求したコンテンツオブジェクトを検索するために、コンテンツ交換116は、外部オリジンサーバ118に要求を出すことが可能である。
【0021】
クローリングディレクトリ124は、オリジンサーバ108が報告するカタログ情報を補充するために使用される。ユーザのためにコンテンツオブジェクトを検索する際、アクティブディレクトリ104は、オリジンサーバ108から入手可能なコンテンツオブジェクト、及びクローリングディレクトリ124が発見した他のコンテンツオブジェクトを表示できる。クローリングディレクトリ124は、ウェブを横断することによって遭遇したコンテンツオブジェクトやその他の情報をカタログ化する。例えば、カタログのキーワード検索を実行して、ユーザがシステム100上のあらゆるオリジンサーバからであっても入手不能なコンテンツオブジェクトに到達できる。クライアントコンピュータ112がコンテンツオブジェクトをダウンロードした時にそれをキャッシュするために、コンテンツ交換部116の1つがアクティブディレクトリ104によって選択される。この実施形態では、1つのクローリングディレクトリ124だけを使用しているが、他の実施形態では、さらなる検索結果を提供すべく、多数のクローリングディレクトリを使用可能である。
【0022】
インターネット120は、ルータによって共にリンクされた複数のサーバからなる。データは、最終のあて先に到達するまで1つのルータから次のルータへと、ホッピングしてインターネット120を進行するパケットに分割される。各パケットは、インターネット内で異なるルートをとってもよく、異なる時に最終受信地に到着してもよい。さらに、任意のルータのバンド幅が飽和する時には、いくつかのパケットがインターネット120中を進行している間に消失することがある。コンテンツオブジェクトのソースと最終あて先との間のホップ数が増加すると、過度の遅延やパケット消失の可能性も同様に増加する。
【0023】
コンテンツオブジェクトが、ソースから最終あて先までインターネット120内のパスを横断するため、パス内の任意の2ルータ間の最小バンド幅が、そのパスの最大バンド幅を決定する。通常、インターネット120からクライアントコンピュータまでのバンド幅は、最少のバンド幅割り当てを有する。他の場合には、ルータ間の他のホップが最小バンド幅を有する。コンテンツ交換部116とクライアントコンピュータ112との間のホップが最少の状態で、コンテンツ交換部116にコンテンツオブジェクトをキャッシュすることが十分なQOSを得る可能性を高める。
【0024】
クライアントコンピュータからインターネット120へのデータレートを上回らない好適なデータレートでコンテンツオブジェクトをダウンロードすることが、適切なQOSとなる。ユーザが期待できる最高のQOSは、それらのネットワークへの接続速度や、それらのコンピュータの処理能力や、他の要因によって決定される。最低のQOSは、ユーザが一定の制約において要望する品質に基づき、ユーザが主観的に決定する。例えば、400Kbpsのネットワーク接続と高速コンピュータを有するユーザは、オーディオクリップのために、28Kbps、56Kbps、128Kbpsでのストリームの選択肢があり、その中からユーザは128Kbpsのストリームを選択してもよい。クライアントコンピュータが提供するデータ速度が128〜400Kbpsの範囲にある限り、そのストリームに適切なQOSを得る事ができる。
【0025】
上記の実施形態は、主に異なるブロック間の接続にインターネット120を使用しているが、他の実施形態では、インターネット120以外の個人的なリンクを使用してもよい。さらに、システム100外のコンテンツオブジェクトは、エクステントキャッシング、暗号化、及び圧縮が提供される場合にはシステム100から恩恵を受ける。
【0026】
図2を参照する。コンテンツ配信システム100のアクティブディレクトリ部104の実施形態を示すブロック図が示されている。アクティブディレクトリ104は、ダイナミックドメインネームサーバ(DNS)204と、サーバマネージャ208と、ディレクトリページ212と、検索ページ216と、ダウンロードページ220と、加入者データベース224と、サーバデータベース228と、コンテンツ交換データベース232と、ルーティングデータベース234とを有する。コンテンツ配信システム100は、ユーザにディレクトリ情報を提供するためにアクティブディレクトリ104と対話し、ユーザによるコンテンツオブジェクトのダウンロードを支援する。
【0027】
クライアントコンピュータ112のユーザ、及びオリジンサーバ108の管理者の両方が、コンテンツ配信システム100の加入者である。ソフトウェアは、ダウンロードページからユーザ、及び/又は、管理者にダウンロードされる。実施形態によってはクライアントコンピュータ112のためのソフトウェアが随意にあり、QOSを改善する。オリジンサーバ108のソフトウェアは、アクティブディレクトリ104がシステム100上で利用できるコンテンツを更新し、そのコンテンツを受信するための優先ソースにクライアントコンピュータ112を導くことを可能とする。
【0028】
クライアントコンピュータ112は、アクティブディレクトリ104のドメインに付随して、所望のコンテンツオブジェクトを見出す。優先度に従って、コンテンツオブジェクトを見つけるためにユーザはディレクトリページ212や検索ページ216を使用してもよい。検索ページ216は、クローリングディレクトリ124から収集された情報だけでなく、全てのオリジンサーバ108が提供したコンテンツオブジェクトのカタログにアクセスする従来のブールの検索エンジンであってもよい。他の実施形態では、オリジンサーバ108からのコンテンツの検索が不成功に終わった場合にはクローリングディレクトリ124からの情報のみを表示するか、或いは、クローリングディレクトリ124からの情報を全く除外する場合がある。全オリジンサーバ108のコンテンツオブジェクトのカタログは、サーバデータベース228に維持される。
【0029】
ディレクトリページ212は、対象により編成されるカテゴリの階層に利用可能なコンテンツオブジェクトを編成する。例えば、第1ページは、一般的に関心のある多数の主題を表示してもよく、ユーザは、スポーツを選択する。階層では1つ下の層である次ページでは、多数のスポーツを表示し、ユーザは、フットボールを選択する。さらに1つ下の階層レベルで、ユーザは、サンディエゴチャージャーズ(商標)を選択して、関連したコンテンツオブジェクトリンクの、次のページを見てもよい。
【0030】
管理者は、オリジンサーバ108上のコンテンツを分類して、ディレクトリページ212にそれを適切に表示させる。サイト、ディレクトリ、又はファイルのベースで、管理者は、そのコンテンツオブジェクトに関連したHTML SSIタグとしてコンテンツオブジェクトのカテゴリを選択できる。この分類を入手しアクティブディレクトリに記憶して、コンテンツオブジェクトを異なるカテゴリで表示可能にする。さらに、調停者がディレクトリページ212のカテゴリにコンテンツオブジェクトを記載して配置してもよい。例えば、調停者はあるコンテンツオブジェクトをより目立たせて表示する対象とするためにマークをつけ、及び/又は、コンテンツオブジェクトについてのレビューをつけることがある。
【0031】
サーバマネージャ208は、全てのクライアントコンピュータ112、全てのオリジンサーバ108、全ての外部オリジンサーバ118、全てのコンテンツ交換部116、及び、オリジンサーバ108上の全てのコンテンツオブジェクトに関する情報を維持管理する。クライアントコンピュータ112とオリジンサーバ108に関する情報は、加入者データベース224で維持管理される。クライアントコンピュータ112に関連した各ユーザについて、フルネーム、ログインネーム、パスワード、固有のネーム、利用できる代用貨幣クレジット、その他の情報が加入者データベース224で維持管理される。このデータベース224は、また、オリジンサーバ108を確認した最終時刻、オリジンサーバ108のインターネットプロトコル(IP)アドレス、コンテンツマネージャサーバが実行するポート、オリジンサーバ108のオン/オフ回線ステータス、バナー広告URL、オリジンサーバ108名、オリジンサーバ108の説明、オリジンサーバ108を使用するのに必要なクレジット若しくは代用貨幣又は他の課金モデル、一度に可能な接続数やビューワ数を保持する。
【0032】
全てのオリジンサーバ108のコンテンツオブジェクトに関する情報は、サーバデータベース228で維持管理される。各コンテンツオブジェクトについて、オリジンサーバネーム、コンテンツオブジェクトファイルネーム、パスを、カテゴリ情報、概要、キーワードとともに記憶する。ディレクトリ、検索ページ212,216をナビゲーション中、ユーザにコンテンツ選択を提供するようサーバデータベース228に問い合わせる。サーバデータベース228に最新情報を維持するために、サーバマネージャ208は、周期的にオリジンサーバ108と対話してコンテンツオブジェクトのカタログの最新の変更を入手し、オリジンサーバ108がオフラインになったか否かを判定する。オリジンサーバ108がオフラインになったときは常に、そのオリジンサーバ108に対応するサーバデータベース228へのエントリを削除し、加入者データベース224のステータス情報を更新する。
【0033】
ある実施形態では、サーバデータベース228へのエントリは、オリジンサーバ108がオフラインになった後でも存続する。オリジンサーバに関連したコンテンツが利用できないことを反映するためにステータスを更新するが、情報は、サーバデータベース228内に記憶されたままである。ステータスがオンラインに更新されると、情報は、コンテンツオブジェクトを検索しているユーザに再び示される。状況によっては、オリジンサーバ108はある期間にオフラインになる予定であることをアクティブディレクトリ104に示してもよい。その期間が短期間だと推定される場合、アクティブディレクトリは情報をユーザに表示せずに、サーバデータベース228内に保持できる。
【0034】
システム100で利用可能なコンテンツ交換部116のリストは、コンテンツ交換データベース232にてサーバマネージャ208が維持管理する。ある実施形態では、コンテンツ交換データベース232は、コンテンツ配信システム100内で利用可能な全てのコンテンツ交換部116のIPアドレスのリストを含むことがある。さらに、コンテンツ交換データベース232は、各コンテンツ交換部116に関連した多数のコンテンツ交換フィールドを含むことがある。例えば、コンテンツ交換データベース232の各コンテンツ交換部116に関連したフィールドには、コンテンツ交換ID、コンテンツ交換サイト、コンテンツ交換プロバイダ、コンテンツ交換名、コンテンツ交換位置、コンテンツ交換ステータス、アイコン、他のいかなる所望の、又は必要な情報が含まれ得る
【0035】
コンテンツ交換IDとコンテンツ交換サイトはこれらを合わせて、特定のコンテンツ交換サイトにて固有のコンテンツ交換116を識別する。コンテンツ交換プロバイダは、コンテンツ交換に責任を有する関係者、例えば、XYZ会社の標識である。コンテンツ名は、ドメインネームであり、コンテンツ交換位置は、コンテンツ交換部116についての地理的座標である。例示の実施形態では、コンテンツ交換データベース232は、コンテンツ交換ID、コンテンツ交換サイト、コンテンツ交換IPアドレス、コンテンツ交換プロバイダ、コンテンツ交換名、コンテンツ交換場所、及び、コンテンツ交換データベース232における各コンテンツ交換部116のアイコンを含む。
【0036】
一般に、コンテンツ交換データベース232は、改良されたQOS基準、又はサブスクリプションサービス基準を含むが、これに限らず様々な方法に基づいて、地域別に分類、又は分割できる。さらに、コンテンツ交換データベース232は、代替のアクティブディレクトリ104、オリジンサーバ108のリスト、或いは他のいかなる有効な、又は必要な情報を含むこともある。
【0037】
システム100のコンテンツ交換部116は、サーバマネージャ208にステータスを定期的に提供する。コンテンツ交換116が利用可能、又は利用不能となった場合には、それら動作ステータスはサーバマネージャ208に報告され、コンテンツ交換データベース232に記録される。ある実施形態では、コンテンツ交換データベース232は、コンテンツ交換部116のローディング、容量、利用度、ヘルスを含む付加的なステータス情報を含むことができる。
【0038】
ルーティングデータベース234は、外部オリジンサーバ118のリストを有する。ある実施形態では、ルーティングデータベース234は、外部オリジンサーバ118に関する識別、ステータス、構成情報を有する。識別情報には、外部オリジンサーバ118のIPアドレスとドメインネームが含まれ得る。ステータス情報には、外部オリジンサーバの稼働率、ローディング、又は他のステータスが含まれ得る。構成情報には、代替の外部オリジンサーバ118のリストが含まれ得る。一実施形態では、ルーティングデータベース234は、各外部オリジンサーバ118のIPアドレスとドメインネームを有する。ある実施形態では、ルーティングデータベース234内で外部オリジンサーバ118を識別することが、外部オリジンサーバ118をコンテンツ配信システム100と関連付けるための機構である。
【0039】
ルーティングデータベース内の各外部オリジンサーバ118について、外部オリジンサーバ118上の情報にアクセスするためにコンテンツ交換116の使用が許可されたユーザ名のリストがある。ユーザ名は、クライアントコンピュータ112のユーザに固有である。クライアントコンピュータがコンテンツ交換を通してルーティング可能な外部オリジンサーバ118のリストがクライアントコンピュータ112に提供される。クライアントコンピュータ112は、ルーティングデータベースからの情報を使用して、外部オリジンサーバ118に対するユーザ要求をコンテンツ交換116にあて先変更する。コンテンツ交換部116が外部オリジンサーバ118からのコンテンツオブジェクトを収容した後、バンド幅を外部オリジンサーバ118からコンテンツ交換116部に下ろす。この高度なサービスのためにユーザは、コンテンツ交換のオーナー、及び/又はオリジンサーバの管理者に、代金を払うこともある。
【0040】
動的DNS204は、オリジンサーバ108の各IPアドレスのオリジンサーバネームを提供する。オリジンサーバネームは、一意的にインターネット120上のオリジンサーバ108を識別する。この情報は、加入者データベース224で維持管理される。コンテンツ交換部116は、コンテンツ交換部116にコンテンツオブジェクトを提供したオリジンサーバ108のIPアドレスを知らないが、オリジンサーバネームは知っている。コンテンツ交換部116が、そのキャッシュに他のコンテンツ交換部116からは入手不能なコンテンツオブジェクト、又はその一部を収容したいときは、コンテンツオブジェクトのソースであるオリジンサーバ108のIPアドレス、又はドメインネームを判定するために、動的DNS204に問い合わせがなされる。ドメインネームを動的DNS204から検索する場合、そのドメインネームに対応するIPアドレスがDNSから検索される。
【0041】
次に図3Aを参照する。コンテンツ配信システム100のオリジンサーバ部108の実施形態を示すブロック図が示される。オリジンサーバ108は、管理者に管理され、コンテンツ配信システム100にコンテンツオブジェクトのソースの1つを提供する。クライアントコンピュータを、所望のコンテンツオブジェクトを効率的に配信可能なコンテンツ交換部116へと、導いているオリジンサーバ108によってQOSが提供される。オリジンサーバ108には、コンテンツソース304、コンテンツサーバ308、コンテンツマネージャ312、ローカルコンテンツカタログ316、コンテンツロケーションデータベース320、コンテンツ交換情報324、ヘルスチェック330が含まれる。
【0042】
コンテンツは、コンテンツソース304がオリジンサーバ108に提供する。コンテンツソース304は、ライブウェブ連想メモリ、ビデオ又はオーディオフィード、データオブジェクト、データストリーム、ビデオテープ又はオーディオテープ、光学又は磁気ディスク、或いは他のあらゆるコンテンツ配信機構であってもよい。コンテンツオブジェクトは、システム100内での可能な配信のためにコンテンツソース304によってコンテンツサーバ308に配信される。
【0043】
維持されるコンテンツオブジェクトやコンテンツオブジェクトの部分について各コンテンツ交換部116に日時情報が維持される。その日時情報は、同一のオリジンサーバ名、パス名、ファイル名を有するコンテンツオブジェクトを識別する。他の実施形態では、チェックサム(checksum)、巡回冗長検査(CRC)やハッシュ(hash)などの任意の固有コードを使用して一義的にコンテンツオブジェクトを識別する。
【0044】
オリジンサーバ308のコンテンツオブジェクトは全て、コンテンツサーバ308に記憶される。管理者は、システム100で利用不能な他のコンテンツオブジェクトをコンテンツサーバ308上に残す間に、システム100に掲載するためにコンテンツオブジェクトやコンテンツオブジェクトのグループを選択可能である。いくつかのコンテンツオブジェクトは、不連続のファイルだが、他は、例えば、ライブウェブ連想メモリによって生成されるコンテンツのストリームである。コンテンツサーバ308を実行させるソフトウェアをコンテンツマネージャ312のソフトウェアと統合してもよい。
【0045】
コンテンツマネージャ312は、システム100に所望のコンテンツオブジェクトを掲載して、コンテンツマネージャ312に関連したコンテンツオブジェクトをダウンロードするためにユーザを好適なコンテンツ交換部116に導く。管理者の指示で、コンテンツマネージャ312はアクティブディレクトリ104に掲載するために、ファイルネーム、ディレクトリ、ドライブボリュームによってコンテンツオブジェクトやコンテンツオブジェクトのグループを選択する。コンテンツサーバ308上のいくつかのコンテンツオブジェクトは、システム100で利用不能とするために掲載から除外してもよい。
【0046】
システムに掲載するために選択されたコンテンツオブジェクトは、ローカルコンテンツカタログ316で維持管理される。ローカルコンテンツカタログ316へのエントリは、それらのエントリに対応するオブジェクトが利用不能、又は更新された場合には、コンテンツマネージャ312が最新となるように維持管理する。各エントリについて、コンテンツオブジェクトファイルネーム及びパスが、カテゴリ情報、概要、キーワードとともに記憶される。システム100への接続があり次第、ローカルコンテンツカタログ316はコンテンツマネージャ312によってサーバデータベース228へのエントリのためにアクティブディレクトリ104に送信される。可及的に最新のディレクトリ情報を保つために、ローカルコンテンツカタログ316への変更を定期的にサーバデータベース228に送信する。更新は、2分毎など定期的間隔をおいて、及び/又は、ローカルコンテンツカタログが変更されるときは常に実行されることがある。
【0047】
コンテンツマネージャ312は、また、そのコンテンツマネージャ312に関連したコンテンツオブジェクトの全ての部分の記憶場所を知っている。システム100に接続するとすぐに、コンテンツマネージャ312は、ステータスについて各コンテンツ交換部116と交信する。コンテンツ交換部116は、対応するコンテンツマネージャ312にそのコンテンツオブジェクトやコンテンツオブジェクトの部分について定期的に報告する。この情報を活用して、コンテンツマネージャ312は、クライアントコンピュータ112をコンテンツ交換部116に導くことが可能となる。コンテンツ交換部116は、所望のコンテンツオブジェクトのいくつか、又は全てをダウンロード可能な状態で有する。
【0048】
全てのコンテンツ交換部108が報告するコンテンツオブジェクトの記憶場所情報は、コンテンツマネージャによってコンテンツロケーションデータベース320に維持管理される。コンテンツロケーションデータベース320に照会することによって、コンテンツマネージャ312は、コンテンツオブジェクト、又はコンテンツオブジェクトの一部を有するコンテンツ交換部116を判定できる。クライアントコンピュータ112がコンテンツソースへルーティングされる間、特定のコンテンツ交換部112内でのコンテンツオブジェクトの存在は、ルーティングの判定に影響を及ぼすことがある。
【0049】
コンテンツ交換情報記憶装置324は、全てのアクティブなコンテンツ交換部116に関する情報を有する。オリジンサーバ108をパワーアップすると直ちに、アクティブディレクトリ104のコンテンツ交換データベース232がコンテンツ交換情報記憶装置324にダウンロードされる。パワーアップの後に、コンテンツ交換情報記憶装置324にリストされる全てのコンテンツ交換部116に、コンテンツ交換情報324として保持されるステータス情報が照会される。ステータス情報には、使用される同時並行のリンク数、許可された同時並行のリンクの合計数、バンド幅の利用度、及びキャッシュのチャーンレート数が含まれる。キャッシュのチャーンレートは、キャッシュ内に未使用データが残存する時間であり、キャッシュのローディングを表す。例えば、キャッシュの記憶量に相対してビジーなコンテンツ交換部116のために、データは通常キャッシュから迅速に消去される。しかしいくつかの実施例では、使用のいかんにかかわらず、ある期間中、コンテンツ交換部116に固定されて残存する厄介なコンテンツオブジェクトを有することもある。
【0050】
コンテンツマネージャ312は、コンテンツオブジェクトを要求しているクライアントコンピュータ112を、そのオブジェクトの優先ソースへとインテリジェントにあて先変更する。クライアントコンピュータ112が送信する優先情報は、クライアントコンピュータ112が要求するコンテンツオブジェクトのソースを判定するために使用される。コンテンツオブジェクトのダウンロードのためにクライアントコンピュータ112を優先されたコンテンツ交換部116に導くため、この情報は、コンテンツオブジェクトの現在の記憶場所、及び使用可能なコンテンツ交換部のローディングとともに使用される。
【0051】
いくつかの実施形態では、コンテンツマネージャ312は、コンテンツオブジェクトへのアクセスを管理できる。クライアントコンピュータ112がコンテンツマネージャ312に関連したコンテンツオブジェクトのダウンロードを試行したときに、管理者がコンテンツオブジェクトにセキュリティを設定していた場合には、ログインダイアログを表示することができる。ユーザはコンテンツオブジェクトのソースにクライアントコンピュータ112のあて先を変更するために、ログインダイアログにユーザ名、及び/又はパスワードを入力してもよい。このユーザ名、及び/又はパスワードは、アクティブディレクトリ104に必要とされるあらゆるものに加えて必要である。クライアントコンピュータ112をソースにあて先変更する前に、ユーザ名、及び/又はパスワードやログイン情報は、オリジンサーバ108に事前に記憶されている、容認可能ログイン情報のリストと照合してチェックされる。オリジンサーバ108全体、或いはオリジンサーバ108の容量、ディレクトリ、又はコンテンツオブジェクトへのアクセスはこの方式で管理し得る。
【0052】
いくつかの実施形態では、オリジンサーバ108やアクティブディレクトリ104は、コンテンツ交換部116上にコンテンツオブジェクトをプレインストールすることが許容されている。コンテンツオブジェクトの要求は、要望度を判定するために監視される。どのコンテンツオブジェクトをコンテンツ交換部116上にプレインストールすべきか判定するために、要望度情報、課金情報、及び/又は他の検討事項が使用される。オリジンサーバ108とアクティブディレクトリ104のいずれかが、コンテンツオブジェクトをプリロードするためにコンテンツ交換部116からコンテンツオブジェクトを要求することが可能である。アクティブでないためにコンテンツオブジェクトがアンロードされないように、コンテンツオブジェクトのコンテンツ交換部上への定期的なロードを要求することもある。
【0053】
ヘルスチェック330は、対応するオリジンサーバ108の動作特性を提供するハードウェア又はソフトウェアアプリケーションのいずれかである。一実施形態では、ヘルスチェック330はオリジンサーバ108のステータスの単一の指示を提供する。その単一の指示は、オリジンサーバ特性の組合せを示す、0〜1の正規化された値である。例えば、それはCPU負荷、CPU温度、同時接続の数、及び/又は、オリジンサーバが促進している要求の数を含んでもよい。代替の実施形態ではヘルスチェック330は、他のコンテンツ交換116やオリジンサーバ108上で実行しながら、コンテンツ交換116の特性を監視することがある。
【0054】
次に図3Bを参照する。コンテンツ配信システム100の外部オリジンサーバ部118の実施形態を示すブロック図が示されている。外部オリジンサーバ118は、それにインストールされたコンテンツマネージャソフトウェアを有しない点で、オリジンサーバ108とは異なる。外部オリジンサーバ118は、コンテンツサーバ308とコンテンツソース304とを有する。
【0055】
外部オリジンサーバ118の管理者は、コンテンツ交換部116を通してコンテンツオブジェクトの受信を許可される1個以上のクライアントコンピュータ112を決定する。ルーティングデータベース234は、個々のクライアントコンピュータ112がコンテンツ交換部116を通してコンテンツオブジェクトにアクセスできるように管理者が更新する。アクティブディレクトリ上のウェブページは、ルーティングデータベース234にクライアントコンピュータ112の情報を入力するインタフェースとして機能する。他の実施形態では、外部オリジンサーバ118とルーティングデータベース234間のインタフェースを自動化する。
【0056】
ルーティングデータベース234の更新はダウンロードされ、クライアントコンピュータ112がローカルに記憶する。外部オリジンサーバ118にアクセスする次の試行は、その要求にサービスを提供するためにコンテンツ交換部116にあて先変更される。このようなあて先変更は、コンテンツマネージャソフトウェアの支援なしで、外部オリジンサーバ118がクライアントコンピュータ112をコンテンツ交換116にあて先変更することを可能にする。
【0057】
外部オリジンサーバ118は、外部オリジンサーバ118にコンテンツオブジェクトを搬送するために割り当てられた1個以上のコンテンツ交換部116を有してもよい。ルーティングデータベース234は、加入したクライアントコンピュータをこれらの1個以上のコンテンツ交換部116にあて先変更してもよい。クライアントコンピュータがこれらのコンテンツ交換部116の2個以上の使用を許可されている場合、クライアント側ルーティング解析は、コンテンツ交換部間の相対的QOSを順位付けするために、2個以上のコンテンツ交換部上で実行される。
【0058】
外部オリジンサーバ118のコンテンツオブジェクトを、それらのコンテンツオブジェクトを提供するために割り当てられたコンテンツ交換部にプリロードできる。コンテンツオブジェクトを最初に要求する場合の呼び出し時間を減少させるために、アクティブディレクトリ104は、外部オリジンサーバ118を巡回して、そのサーバ118から入手可能なコンテンツオブジェクトを判定できる。入手可能なコンテンツオブジェクトを、クローリングディレクトリ124に加えてもよい。一旦入手可能なコンテンツオブジェクトが判明すると、関連するコンテンツ交換上への各コンテンツオブジェクトのローディングを生じさせるために、アクティブディレクトリ104は関連するコンテンツ交換に各コンテンツオブジェクトを要求する。このような方式で、コンテンツオブジェクトは関連したコンテンツ交換部にプリロードされる。
【0059】
図4Aを参照する。コンテンツ配信システム100のコンテンツ交換部116の実施形態を示すブロック図が示される。コンテンツ交換部116は、コンテンツマネージャ312の制御に従って、クライアントコンピュータ112が要求するコンテンツオブジェクトを記憶する。コンテンツ交換部116は、トラッキングシステム402とコンテンツノード406とを含む。トラッキングシステムは、コンテンツトラッカー404、ヘルスチェック428、ステータス情報420、ローカルコンテンツカタログ416、オリジンサーバデータベース424を有し、一方コンテンツノード406は、コンテンツコントローラ408、コンテンツ記憶部412を有する。
【0060】
ヘルスチェック428は、関連するコンテンツ交換部116の動作特性を提供するハードウェア又はソフトウェアアプリケーションのいずれかである。一実施形態では、ヘルスチェック428は、コンテンツ交換部116のステータスの単一の指示を提供する。単一の指示は、例えばCPU負荷、CPU温度、同時接続の数、コンテンツ交換部が促進している要求の数を含むコンテンツ交換部特性の組合せを示している0〜1の間の正規化された値でもよい。代替実施形態では、他のコンテンツ交換部116、オリジンサーバ108、記憶場所で実行する間に、ヘルスチェック428は、コンテンツ交換部116の特性を監視可能である。
【0061】
コンテンツ記憶部412は、そのコンテンツ交換部116からクライアントコンピュータ112にダウンロード可能なコンテンツオブジェクトを維持する。パス情報及びファイル名と共にコンテンツオブジェクトを提供しているオリジンサーバ108のネームは、コンテンツオブジェクトと共にコンテンツ記憶部412に記憶される。クライアントコンピュータ112はインターネット120を介して、コンテンツ記憶部412に接続し、コンテンツオブジェクトファイルやデータストリームをダウンロードする。新規のコンテンツオブジェクトがコンテンツ記憶部412に加えられると、古いコンテンツオブジェクトが削除される。コンテンツオブジェクトの寿命は、コンテンツオブジェクトにアクセスした最終時に関係する。記憶装置412上のいくつかのコンテンツオブジェクトは古くなることがない結果、コンテンツオブジェクトは所定時間だけ記憶装置412に留まる。オリジンサーバ108は、コンテンツ交換部112を調整して、所定の時間コンテンツオブジェクトを記憶することができる。
【0062】
クライアントコンピュータ112がコンテンツ記憶部412からコンテンツオブジェクトを要求する場合、コンテンツオブジェクトはその時点でコンテンツ記憶部412にロードされていない場合がある。コンテンツ記憶部412は、遂行されていないコンテンツオブジェクトに対する要求をコンテンツコントローラ408に通知する。コンテンツコントローラ408は、他のコンテンツ交換部116内、又はコンテンツオブジェクトを発生したコンテンツサーバ308から、欠落したコンテンツオブジェクト、又はその部分を探し出す。クライアントコンピュータ112がこの情報をダウンロード可能とすべく、欠落したコンテンツオブジェクトはコンテンツコントローラ408によってコンテンツ記憶部412へロードされる。
【0063】
コンテンツオブジェクトがコンテンツ記憶部412から欠落している場合、コンテンツコントローラ408は、先ず他のコンテンツ交換部116をチェックして、オブジェクトが利用可能か否かを判定する。コンテンツ交換部116が所望のコンテンツオブジェクトを有しない場合、コンテンツオブジェクトは、情報を発生したコンテンツサーバ308に問い合わせる。コンテンツ記憶部412は発生源のコンテンツサーバ308についてのIPアドレスを有しないため、その情報について動的DNS204に問い合わせがされる。オリジンサーバ名が与えられると、コンテンツコントローラ408が適切なコンテンツサーバ308からコンテンツオブジェクトを要求できるように、動的DNS204は、IPアドレスを提供する。
【0064】
コンテンツトラッカー404は、システム100にコンテンツ記憶部412内のその時点でのアイテムやコンテンツ交換部116のステータス情報を報告する。ローカルコンテンツカタログ416は、コンテンツ記憶部412内にある各コンテンツオブジェクト又はコンテンツオブジェクトの部分について、オリジンサーバ名、パス、及びファイルネームを記憶する。コンテンツ記憶部412に新規アイテムを追加し、古いアイテムを削除することによって、ローカルコンテンツカタログ416が更新される。コンテンツマネージャ312がシステム100に接続したときには、コンテンツオブジェクトのどのような部分がコンテンツ記憶部412に記憶されているかを判定するために、全てのコンテンツトラッカー404に問い合わせをする。コンテンツ記憶部412が変更されるとコンテンツトラッカー404によって更新されるベースラインが、最初の問合せで提供される。変更は、コンテンツ記憶部412に記憶されたコンテンツを有する各コンテンツマネージャ312に直接送信される。動的DNS204は、この処理の間、各コンテンツオブジェクトのオリジンサーバネームに対応するIPアドレスを判定するために使用される。
【0065】
コンテンツトラッカー404は、コンテンツマネージャ312にコンテンツ交換部116のステータス情報をも提供する。ステータス情報は、ブロードキャスト、又はマルチキャストとして定期的に、例えば、5分毎、及び/又は、変更が発生する時に、それぞれのコンテンツマネージャ312に送信される。ステータス情報には、現在使用中のコンテンツ交換部への同時並行のリンクの数、同時並行のリンクとして容認されている総数、バンド幅の利用度、キャッシュチャーンレートが含まれる。他の実施形態では、このステータス情報は、コンテンツオブジェクトをダウンロードするためにクライアントコンピュータ112の送信場所を判定する際に、コンテンツマネージャ312が問い合わせ可能な中心記憶場所に送られる。
【0066】
このコンテンツトラッカー404は、システム100のアクティブなオリジンサーバ108を追跡するために、オリジンサーバデータベース424を維持管理する。システムに接続した後、全てのオリジンサーバ108は、コンテンツトラッカー404にそれ自身を識別させる。コンテンツトラッカー404は、オリジンサーバデータベース424にオリジンサーバネームとIPアドレスを記憶する。動的DNSに対する問い合わせは、特定のオリジンサーバネームのIPアドレスを提供する。オリジンサーバ108がコンテンツトラッカー404に非運転状況が切迫していることを知らせるか、又はコンテンツトラッカー404が特定のオリジンサーバと交信することができない場合、そのオリジンサーバへのエントリは、オリジンサーバデータベース424から削除される。さらに、そのオリジンサーバ108に対応するコンテンツをコンテンツ記憶部412から一掃し、ローカルコンテンツカタログ416を更新してもよい。いくつかの実施形態では、記憶空間が必要なときは、コンテンツオブジェクトやコンテンツオブジェクトの部分を一掃せずに、単に削除用のタグを付ける。
【0067】
いくつかの実施形態では、システム100は、コンテンツコントローラ408にコンテンツ記憶部412内の所定のコンテンツオブジェクトを入手及び保持するように指示することができる。要求が予測されるコンテンツオブジェクトを、その要求に備えてプレインストールすることが可能である。コンテンツオブジェクトの要望度は、検索ページ又はディレクトリページ212、216から、それらのコンテンツオブジェクトに対するクリックスルーをモニターすることによって判定できる。例えば、有名人の伝記プログラムがネットワークテレビで放送される前に、有名人に関するコンテンツオブジェクトを直ちにコンテンツ記憶部412にロードすることがある。代替手段として、ユーザは、いくつかのコンテンツ交換部116にコンテンツオブジェクトをロードするサービスを予約できる。例えば、テレビ放送の代わりにユーザがインターネット120を通じて鑑賞可能なテレビ放送と一致させて、予定されたネットワークプログラムをロードできる。予約したユーザは、コンテンツを遅延なく利用できる。
【0068】
図4Bを参照する。コンテンツ配信システム100のコンテンツ交換部116の他の実施形態を示すブロック図が示されている。この実施形態では、単一のトラッキングサーバ402に接続された複数のコンテンツノード406を有する。コンテンツバス428は、コンテンツノード406が互いのコンテンツ記憶部412をチェックして、欠落したコンテンツオブジェクトを探すことを可能にする。コンテンツバス428は、また、他の記憶場所の他のコンテンツノードにも結合できる。コンテンツバス428は、インターネット120上の一部を進行してもよく、しなくてもよい。
【0069】
次に図4Cを参照する。複数のコンテンツ交換サーバ116を有するコンテンツ交換サイト432の実施形態を示すブロック図が示されている。コンテンツ交換サイト432は複数のコンテンツ交換サーバ116を有しているが、それはシステムにとっては単一のコンテンツ交換部116であるように現れる。コンテンツ交換サイト432のロードは、複数のコンテンツ交換サーバ116の間に配信される。レイヤー4スイッチなどのスイッチ436は、コンテンツ交換部116にコンテンツオブジェクトの要求を配信し、インターネット120へスプールされた応答を集計する。
【0070】
次に図5を参照する。コンテンツ配信システム100のクライアントコンピュータ部分112の実施形態を示すブロック図が示されている。クライアントコンピュータ112は、ユーザにコンテンツを配信するためにインターネット120に通信する。クライアントコンピュータ112は、ビューワオブジェクトプロキシ504、コンテンツ処理プログラム508、優先情報512、ネットワークインタフェース516及び、ホストサーバルーティング520を有する。
【0071】
コンテンツ処理プログラム508は典型的には、インターネット120からダウンロードされるコンテンツオブジェクトを、翻訳又は処理するソフトウェアである。コンテンツ処理プログラム508の例としては、ウェブブラウザ、ファイル転送プロトコル(FTP)ソフトウェア、ゴーファソフトウェア、ニュース(NNTP)、メールプログラム、ストリーミングメディアプレーヤ、非ストリーミングメディアプレーヤ、及び他のソフトウェアが含まれる。通常は直接インターネットに送信されるコンテンツ処理プログラム508からのインターネット通信は、ビューワオブジェクトプロキシ504にあて先変更される。
【0072】
ビューワオブジェクトプロキシ504は、インターネット120とコンテンツ処理プログラム508との間の媒介物として機能する。ビューワオブジェクトプロキシ504をインストールした後でビューワオブジェクトプロキシは、インターネット120の既知の位置に相対した、その一般的な記憶場所を判定する。充分なQOSを提供する妥当な候補であるコンテンツ交換部116を、各コンテンツ交換116とビューワオブジェクトプロキシ504との間の必要なホップ数及び待ち時間を判定するために試験する。QOS係数の重み付け、例えば、ホップ数や達成されるバンド幅は優先情報512として記憶され、HTTPヘッダにてコンテンツマネージャ312にメタデータとして転送される。
【0073】
他の実施形態では、HTTPヘッダを通さずに、あらゆる種類のデータチャネルのメタデータとしても引き渡すことができる。例えばメタデータは、専用ポート、IPアドレス、URL、ヘッダ、その他の論理チャネルを通って進行可能である。
【0074】
優先情報512は、クライアントコンピュータの観点112から実行されたネットワーク解析の結果である。コンテンツオブジェクトが要求されたときには、優先情報512はコンテンツオブジェクトマネージャ312に通信され、これに応じてコンテンツオブジェクトマネージャ312はクライアントコンピュータ112に適切なコンテンツ交換部116を選択する。定期的に、例えば1時間毎に、優先情報512は、自動試験を使用して更新されるか、或いはユーザが手動で更新する。次の試験は、前回の結果を考慮して、効率的に優先すべきコンテンツ交換部を判別する。例えば、第1の解析において、100のコンテンツ交換部をチェックするが、次の解析では性能の悪いコンテンツ交換部を除き、50のみを分析してもよい。
【0075】
優先情報512は、コンテンツ交換部116のリスト、及びクライアント側のネットワーク解析の結果から生じたそれらに関連するQOS値を含む。いくつかの実施形態では、外部オリジンサーバ118への複数経路がある。複数経路は、ポート、IPアドレス、サーバ識別(ID)及び/又は、他の機構により分離される。クライアント側ネットワーク解析は、外部オリジンサーバ118への各経路、或いは複数経路を有したあらゆるコンテンツオブジェクトソースに対応するQOS値を判定するために使用可能である。
【0076】
クライアントコンピュータ112のユーザがコンテンツオブジェクトを選択した後、オリジンサーバ名がビューワオブジェクトプロキシ504に提供される。オリジンサーバ名は、ビューワオブジェクトプロキシ504が動的DNS204にオリジンサーバ108のIPアドレスを問い合わせるために使用される。一旦IPアドレスが判明すると、コンテンツ処理プログラム508を、所望のコンテンツオブジェクトを得るためにコンテンツマネージャ312にあて先変更する。コンテンツマネージャ312に優先情報512が転送され、適切なコンテンツ交換部116へのルーティングを可能とさせる。この実施形態では、優先情報512は10の優先コンテンツ交換部を有するが、ユーザはそれを調整できる。
【0077】
いくつかの実施形態では、ビューワオブジェクトプロキシ504はHTTPに特定されるものであってもよいが、ルーティング情報についてプロトコルに依存しないものであってもよい。従って、ルーティング情報はHTTPに従って転送されるが、実際のルーティング情報はプロトコルに依存しない。しかし当業者は、ビューワオブジェクトプロキシ504をまた、必要に応じて他のネットワークプロトコルと協働させ得ることを認識するであろう。例えば、ビューワオブジェクトプロキシ504は、FTP、NNTP、RTP、RTSP、SMTP、SHOUT等に従って機能するように構成できる。
【0078】
クライアントコンピュータ112は、ホストサーバルーティング520のデータベースを含む。このホストサーバルーティング520は、クライアントコンピュータ112がアクセス可能な外部オリジンサーバ118に関する情報を含む。一実施形態では、ホストサーバルーティング520は、アクティブディレクトリ104に含まれるルーティングデータベース234の一部である。
【0079】
クライアントコンピュータ112は、ビューワオブジェクトプロキシ504をインターネット120に接続するネットワークインタフェース516を有する。ネットワークインタフェース516の一般的な例としては、アナログモデム、DSLモデム、ISDN、ケーブルモデム、サテライトモデム、セルラ方式モデム等が含まれる。
【0080】
この実施形態では、クライアントコンピュータは、ホームユーザに対応する。他の実施形態では、クライアントコンピュータは、劇場にデジタル映画を提供可能であるか、或いは会社のネットワークユーザ、ホテルの客、アパートの共同ビルにコンテンツオブジェクトを提供可能である。
【0081】
図6を参照する。コンテンツ配信システム600の実施形態を示すブロック図が示される。この図は、インターネット120上での転送を示さずに、データブロック間のデータフローを示している。しかし、インターネット120はいくつかの実施形態で使用されるものである。また、この図は、図2〜5のいくつかのブロックをいくぶん簡略化し、外部オリジンサーバ118、及びクローリングディレクトリ124は、図6を簡略化するために含まれていない。
【0082】
ネットワークインタフェース516は、クライアントコンピュータ112をインターネット120へ接続する。クライアントコンピュータ112は、ディレクトリページ、検索ページ212、216に接続して、ダウンロードするコンテンツオブジェクトの選択をユーザに可能とさせる。コンテンツオブジェクトが選択されると、アクティブディレクトリ104から、適切なオリジンサーバ108へのクライアントコンピュータ112のあて先変更には動的DNS204が使用される。優先情報512は、コンテンツオブジェクトのソースの選択を支援するためにコンテンツマネージャ312に転送される。コンテンツマネージャ312の選択に従って、コンテンツオブジェクトは、コンテンツ交換部116のうちの1個、又はコンテンツサーバ308からダウンロードされる。
【0083】
アクティブディレクトリ104は、システム600の他のモジュールと対話する。クライアントコンピュータ112は、コンテンツオブジェクトを選択すべくディレクトリページ、検索ページ212、216にアクセスする。コンテンツトラッカー404及びコンテンツマネージャ312はそれぞれ、サーバマネージャ208にステータス及びカタログ情報を提供する。加入者データベース224を維持管理するために、オリジンサーバ108の管理者及び、クライアントコンピュータ112のユーザによって、アカウント情報がサーバマネージャ208に提供される。オリジンサーバ名からオリジンサーバ108のIPアドレスへのあて先変更は、ビューワオブジェクトプロキシ504と、コンテンツトラッカー404と、コンテンツコントローラ408とに動的DNS204によって提供される。
【0084】
オリジンサーバ108は、サーバマネージャ208、クライアントコンピュータ112、コンテンツトラッカー404、コンテンツ記憶部412、及びコンテンツコントローラ408と通信する。サーバデータベース228をその時点でのコンテンツ情報を備えて維持管理するために、コンテンツマネージャ312からサーバマネージャ208にローカルコンテンツカタログ316が提供される。コンテンツオブジェクトのソースの選択を容易にするために、クライアントコンピュータ112からコンテンツマネージャ312に優先情報512が提供される。コンテンツトラッカー404は、コンテンツマネージャ312と対話して、どんなコンテンツオブジェクトがコンテンツ交換部116に記憶されているかを判別する。コンテンツオブジェクトは、コンテンツ記憶部412、又はクライアントコンピュータ112のいずれかによって、コンテンツサーバ308から読み込まれる。
【0085】
コンテンツ交換部116は、システム600の他のモジュールとも対話する。ステータス情報は、アクティブディレクトリ104、及び/又は、コンテンツマネージャ312に提供される。コンテンツオブジェクトを有するオリジンサーバ108のIPアドレスを探し出すために、コンテンツコントローラ408とコンテンツトラッカー404が共に動的DNSを使用する。コンテンツ記憶部412がオブジェクトを必要とする場合、選択されたコンテンツ交換部は、他のコンテンツ交換部と交信してもよい。他のコンテンツ交換部がそのコンテンツオブジェクトを有しない場合、コンテンツコントローラ408はコンテンツサーバ308から選択されたコンテンツ記憶部412へのオブジェクトの配信要求をする。
【0086】
次に図7A〜7Bを参照する。ユーザにコンテンツを配信する処理の実施形態を示すフローチャートが示されている。そこに説明した処理の前に、ユーザと管理者は、それぞれクライアントコンピュータ112とオリジンサーバ108のソフトウェアをダウンロードし、インストールしておく。管理者は、システム600に掲載するためにコンテンツサーバ上のコンテンツを選択する。優先情報512を判定するために、ビューワオブジェクトプロキシ504は、適切なQOSが得られるように隣接したコンテンツ交換部116に自動的に問い合わせを行う。
【0087】
ここに示される処理は、ユーザがウェブを閲覧するコンテンツ処理プログラム508をアクティブディレクトリ104のディレクトリページ、検索ページ212,216に導く、ステップ704で開始する。この実施形態では、ユーザは、ステップ708で、ブールクエリを使用して検索ページ216上の検索エンジンに問い合わせして、コンテンツオブジェクトを探し出す。ステップ712で検索エンジンはサーバデータベース228でヒットを検索し、またクローリングディレクトリ124を検索してもよい。代替手段として、ユーザは、ディレクトリページ212をナビゲートして、所望のコンテンツオブジェクトを探し出すことができる。
【0088】
ステップ716で検索ページ又はディレクトリページ212,216は、ユーザが選択する可能性があるコンテンツオブジェクトへのそれぞれのリンクを示す。各リンクは、コンテンツオブジェクトについてのオリジンサーバ名108、ポート、パス、及びネームを有する。利用できる選択肢が与えられると、ユーザはステップ720で、所望のコンテンツオブジェクトに対応するリンクのうちの1個を選択し得る。リンクからのオリジンサーバネームのIPアドレスを判定するためにビューワオブジェクトプロキシ504によって、動的DNS204へ問い合わせがされる。一旦IPアドレスが判明した場合には、コンテンツ処理プログラムは、動的DNS204から検索されたIPアドレス、及びリンクからのパス及びファイル名へとあて先を変更される。
【0089】
一旦クライアントコンピュータ112がコンテンツマネージャ312に接続されると、ステップ724で優先情報512がコンテンツマネージャ312に転送される。コンテンツマネージャ312は、コンテンツロケーションデータベース320、優先情報512、及びステータス情報を分析して、ステップ728,732で、クライアントコンピュータ112のあて先を変更するべきコンテンツオブジェクトのソースを判定する。
【0090】
ステップ736で、そのソースがコンテンツ交換部116かコンテンツサーバ308かに関して判定がなされる。コンテンツマネージャ312が適切なQOS、又は優れたQOSを提供できると判定した場合には、コンテンツサーバ308が選択されてもよい。いくつかの実施形態では、適切なQOSを提供できるコンテンツ交換部116がない場合、コンテンツサーバ308のみをソースとして考慮する。コンテンツサーバ308が選択された場合、ステップ740でオリジンサーバ108はクライアントコンピュータ112にコンテンツオブジェクトを提供する。
【0091】
コンテンツマネージャ312がコンテンツオブジェクトの要求を受け入れるためにコンテンツ交換部116を選択した場合、コンテンツ処理プログラム508は、選択されたコンテンツ記憶部412にあて先を変更され、処理は図7Bのステップ744に続く。ステップ744で、このコンテンツ処理プログラム508は、コンテンツ記憶部412からリンク内のコンテンツオブジェクトを要求する。コンテンツオブジェクトが全部コンテンツ記憶部412にある場合、ステップ748,752で、オブジェクトはそのコンテンツ記憶部412からクライアントコンピュータにダウンロードされる。
【0092】
代替手段として、コンテンツオブジェクトの何らかの部分が失われた場合には、コンテンツオブジェクト全体のコピーをコンテンツ記憶部412内で組み立てる。コンテンツオブジェクト全体の組立ては、ユーザにはトランスペアレントに行われる。ステップ756,760においてコンテンツコントローラ408は、他のコンテンツ交換部116に問い合わせ、どれがコンテンツオブジェクトの欠落した部分を有するか判定する。クライアントコンピュータ112ができるだけ早くダウンロード開始できるように、コンテンツオブジェクトは、最初から最後までコンテンツ記憶部412内で再構築される。
【0093】
反復的な方法で、コンテンツオブジェクトの全てがコンテンツ記憶部412に集まるまで、ステップ764で、欠落した部分を各コンテンツ交換部116から検索する。他のいかなるコンテンツ交換部116もコンテンツオブジェクトの欠落した部分を有しない場合、ステップ768で、オリジンサーバ108に欠落した部分の問い合わせをする。動的DNS204に問い合わせて、コンテンツオブジェクトのオリジンサーバ名のIPアドレスを判定する。ステップ772で、動的DNS204は、コンテンツコントローラ408を、コンテンツオブジェクトを有するオリジンサーバ108に導く。ステップ776で、欠落した部分をそのオリジンサーバ108のコンテンツサーバ308からダウンロードする。処理は、ステップ748へループして戻り、他の欠落した部分を検索する。
【0094】
欠落した部分がコンテンツ記憶部412へ全てコピーされるまで、部分を検索するこの処理を反復的な方法で継続する。この実施形態では、欠落した部分を連続的に検索するが、他の実施形態では、欠落した部分の記憶位置を判定し、あらゆる順序、又は見つかった順序であっても平行してそれらを検索することが可能である。
【0095】
図8を参照する。ビューワオブジェクトプロキシ504の実施形態のブロック図が示される。ビューワオブジェクトプロキシ504は、パス評価装置850、重み付け機能852、ディスプレイ機能又はルーチン854、ルックアヘッド論理機能856、標準のウェブアクセス機能858、解凍機能860、解読機能862、電子商取引機能866、セキュリティ機能864、及び、ビューワオブジェクトプロキシ504の多様な他の機能をインタフェースするメインファンクション868機能を有する。ビューワオブジェクトプロキシ504に含まれる可能な機能の上記リストは、単に例示を行うものであって、当業者ならばビューワオブジェクトプロキシ504に関連する他の機能を認識する。
【0096】
ビューワオブジェクトプロキシ504は、その中を流れる、ビューワが要求したコンテンツオブジェクト全てを有するプロキシであるので、ルックアヘッド論理機能856を実行できる。一実施形態では、ルックアヘッド論理機能856は、ユーザの次のブラウズや移動を予期して、ユーザが実際のリクエストをする前にクライアントコンピュータ112上の記憶に関連するブラウズ情報を取り込む。ユーザが情報を実際に要求するまで、事前に取得された情報は保持される。ルックアヘッド論理機能856がユーザの次のブラウズを不正確に予期した場合、事前に取得されたデータは破棄される。例えば、ルックアヘッド論理機能856は、ディレクトリページ212(図2を参照して記載されているように)の階層より下位の階層へ一般的にアクセスされたページの事前取得を実行する。事前取得情報によって、ルックアヘッド論理機能856は、アクセス待ち時間を減少可能である。
【0097】
いくつかの実施形態では、解凍機能860と解読機能862が提供される。これらの機能860,862は、オリジンサーバ108、コンテンツ交換部116、外部オリジンサーバ118、或いはインターネット120上の他のいかなるサーバのいずれかから受信した情報を解凍し、解読する能力を提供する。
【0098】
いかなるユーザ要求に対しても、解凍機能860及び解読機能862が利用可能であることに基づいて、ビューワオブジェクトプロキシ504は、コンテンツオブジェクト転送の間、使用される圧縮と暗号化の様態についてインターネット120上のサーバと交渉可能である。このように、ユーザがインターネット120をサーフィンしている時はいつでも、ビューワオブジェクトプロキシ504は、どんな圧縮や暗号化が支援されているかについて、交信したどんなサーバにも会話する。これはサーバが特別なソフトウェアを有することを必要としないが、交信したサーバがビューワオブジェクトプロキシ504によってサポートされるものと同一の圧縮、暗号化、及びセキュリティ機能をサポートする場合にはQOSを向上できる。解凍、及び解読には多数の通信機構が使用可能であることを認識すべきである。例えば、FTP、NNTP、RTP、RTSP、SMTPを使用できる。
【0099】
一実施形態では、解読及び解凍の交渉は、HTTPを介して達成される。より詳細には、交渉は、拡張されたHTTPヘッダを介して達成される。
さらに、いくつかの実施形態ではユーザは、解凍機能860、解読機能862のいずれか一方、又は両方を使用禁止にできる。それぞれの機能860、862をユーザが使用禁止にした場合、ビューワオブジェクトプロキシ504は、使用禁止機能の使用のために交渉することはない。
【0100】
いくつかの実施形態では、ビューワオブジェクトプロキシ504は、セキュリティ機能864を有する。セキュリティ機能864は、アクセスを許可、又は拒否するために適切に機能する。より詳細には、信頼されたシステムによって、権限が与えられた場合にのみ、セキュリティ機能864は、コンテンツオブジェクトを解読できるような制御を提供する。例えば、特定のドングルタイプハードウェアデバイスをクライアントコンピュータ112に接続し、ビューワオブジェクトプロキシ504を介してセキュリティ機能864がその接続条件を報告する場合にのみ、信頼されたシステムがデータを受理、及び/又は、解読する権限を提供してもよい。
【0101】
いくつかの実施形態では、ビューワオブジェクトプロキシ504は、電子商取引機能866を有する。電子商取引機能866は、インターネット120上に設けられている電子商取引エンジンと緊密に統合可能である。電子商取引機能866を経由して、ユーザにはコンテンツオブジェクトを購入する機構が提供される。例えば、コンテンツオブジェクトをダウンロードするために、加入者データベース224に記憶されたトークンクレジットがオリジンサーバ108に返金可能である。
【0102】
さらに、ビューワオブジェクトプロキシ504は、コンテンツ配信システム100の外部にあるインターネットドメインにアクセスを提供する標準のウェブアクセス機能858を有してもよい。一実施形態では、ビューワオブジェクトプロキシ504がコンテンツ配信システム100外のドメインにより供給されるコンテンツオブジェクトのコンテンツ処理プログラム508から、ユーザ要求を受信するときは、標準のウェブアクセス機能858は、コンテンツオブジェクトがクライアントコンピュータ112に以前に保存されていたか否かを判定する。要求されたコンテンツオブジェクトが以前に保存されている場合、その保存されたコンテンツオブジェクトは、ユーザ要求を満たすべく標準のウェブアクセス機能858が返信する。要求されたコンテンツオブジェクトが以前に保存されていない場合、ユーザリクエストは、標準のウェブアクセス機能858によって転送され、あたかもコンテンツ処理プログラム508が直接インターネット120にアクセスしたかのように、コンテンツオブジェクトを検索する。
【0103】
パス評価装置850、重み付け機能852及び、ディスプレイ機能又はルーチン854を、図9に含まれるビューワオブジェクトプロキシのバックグラウンドアプリケーション900のフローチャートに関連して説明する。バックグラウンドアプリケーション900は、多様なビューワオブジェクトプロキシ504の機能を利用して、クライアントコンピュータ112に充分なQOSを提供可能な好適なコンテンツ交換部116を判定する。その好適なコンテンツ交換部116は優先情報512としてメモリに記憶され、その後コンテンツオブジェクトマネージャ312に通信される。
【0104】
図9を参照する。セットアップ982がスタートアップ980で実行されると、ディスプレイルーチン854が開始される。セットアップ982には、クライアントコンピュータ112のグラフィクスメモリを要求及び初期化し、プロキシを初期化し、ディスプレイルーチン854を開始することが含まれる。さらに、セットアップ982は、グラフィックディスプレイ又はプロキシを初期化するいかなる処理を含んでもよい。
【0105】
セットアップ982に続き、情報の要求及び受信984が実行される。情報の要求及び受信984の間、コンテンツ交換データベース232は、アクティブディレクトリ104からクライアントコンピュータ112にダウンロードされる。上記のように、コンテンツ交換データベース232は、改良されたQOS基準、又は加入サービス基準を含むが、これに限らず様々な方法に基づいて、地域別に分類、又は分割できる。このように、いくつかの実施形態では、情報の要求及び受信984は、クライアントコンピュータ112に地理的に隣接するコンテンツ交換部116のみを有したコンテンツ交換データベース232を検索するという結果になる。例えば、検索されたコンテンツ交換データベース232は、北米にあるコンテンツ交換部116のみを含んでいてもよい。他の実施形態では、情報の要求及び受信984は、特定の加入サービスを支援するか、或いは特定のプロバイダに帰属するものと考えられるコンテンツ交換部116のみを有したコンテンツ交換データベース232を検索するという結果になる。代替手段において、コンテンツ交換データベース232は、特定のインターネットサービスプロバイダに帰属するか、特定のプロトコルを支援するか、或いは特定の言語のコンテンツオブジェクトを提供する、コンテンツ交換部に限定される。さらに他の実施形態では、情報の要求及び受信984は、利用可能なコンテンツ交換部116の全てを含むコンテンツ交換データベース232を検索するという結果となる。
【0106】
いくつかの実施形態では、情報の要求及び受信984は、外部オリジンサーバ118のルーティング情報を含むルーティングデータベース234のいくつかの部分を要求し、受信することをさらに含む。ルーティングデータベース234の受信された部分は、受け入れられたサーバルーティング520としてクライアントコンピュータ112のメモリに記憶される。
【0107】
他の使用のうちで、情報の要求及び受信984を通して通信される情報は、ユーザへの表示を生成するために使用することができる。例えばいくつかの実施形態では、コンテンツ交換データベース232の一部として提供される位置座標やアイコン情報を、ディスプレイ機能又はルーチン854を介してユーザに提供されたグラフィック表現の一部として使用できる。グラフィック表現は、コンテンツ配信システム100上で利用できるものや、インターネット120上の他の利用できる場所をユーザに表示し得る。さらに、グラフィック表現は、クライアントコンピュータ112から複数のコンテンツ交換部116までの複数のパスを表示できる。特定の実施形態では、コンテンツ交換部116やオリジンサーバ108の物理的位置がユーザに表示される世界地図に重畳して表示される。
【0108】
ディスプレイ機能854でコンテンツ交換データベース232を使用すること以外に、コンテンツ交換データベース232からの情報は、パスQOSの評価986を実行するために使用可能である。より詳細には、クライアントコンピュータ112と各コンテンツ交換部116又はコンテンツ交換データベース232で指定されるノードとの間のパスのQOSを判定して、クライアントコンピュータ112のメモリに記憶できる。
【0109】
情報の要求及び受信984を通してコンテンツ交換116のリストを受信することは、利用可能性のあるコンテンツ交換部116を判定する方法の例示であることが認識されるべきである。代替の実施形態では、コンテンツ交換部116と、外部オリジンサーバ118と、オリジンサーバ108など利用可能なコンテンツオブジェクトソースのリストを入手可能であり、或いは、ビューワオブジェクトプロキシ504によってコンパイルされるリストを使用することによる。このリストは、以前のコンテンツオブジェクトの転送の間に、コンテンツ配信システム100の内部、又は外部で得られたビューワオブジェクトプロキシ504に関する知識に基づいている。
【0110】
一実施形態では、パスQOS評価986は、コンテンツ交換データベース232にリストされた全てのコンテンツ交換部116に関連したパスについて実行される。コンテンツ交換データベース232にリストされる第1のコンテンツ交換部116に関連したパスを分析することから開始する。次にステップ988で、他のコンテンツ交換部116がコンテンツ交換データベース232から提供されるか否かが判定される。他のコンテンツ交換部116が提供される場合、そのコンテンツ交換116に対するパスを評価する。コンテンツ交換データベース232にリストされるコンテンツ交換部116の全てについてパスQOS評価986が実行されるまで、この処理を継続する。パスQOS評価は、いかなるコンテンツオブジェクトソースや転送ノードに対しても実行可能で、必ずしもコンテンツ交換部116及びオリジンサーバ108の評価に限定されるものではない。転送ノードはコンテンツ交換116であることが可能であり、或いは、コンテンツオブジェクトを記憶、及び転送可能な他のサーバであってもよい。パスQOS評価に関連して使用された場合には、パスとの文言にはルーティングを含む。
【0111】
他の実施形態では、コンテンツ交換データベース232にリストされるコンテンツ交換部116のサブセットのみが評価される。コンテンツ交換データベース232のうちコンテンツ交換部116のサブセットのみを評価することで、より効率的なパスQOS評価986が得られる。この効率の改善は、特定のコンテンツ交換部116が充分なQOSを提供しない蓋然性が高く、従って評価する価値がないことが判明している場合に達成できる。従って例えば、クライアントコンピュータ112が北米にあり、コンテンツ交換が北米外では充分なQOSを提供しそうにないと認められる場合、パスQOS評価986は、北米にあるコンテンツ交換部116においてのみ実行される。
【0112】
代替手段では、異なる種類のコンテンツ交換部116が類似したサービスを提供する蓋然性が高いことが認められる場合には、サイトに基づくパスQOS評価986を実行可能である。より詳細には、コンテンツ交換データベース232に表示される各コンテンツ交換サイト432に対応する1つのコンテンツ交換部116が評価される。これによって、どのコンテンツ交換サイト432が充分なQOSを提供しそうかを判定できる。その後、充分なQOSを提供する蓋然性が高いと判定されたコンテンツ交換サイト432に関連したコンテンツ交換部116のそれぞれを個々に分析する。従って、QOSを提供しそうにないコンテンツ交換サイト432に関連したコンテンツ交換部116は評価されない。
【0113】
他の実施形態では、特定のプロトコルをサポートするコンテンツ交換部116にのみパスQOS評価986を実行する。或いは代替手段として、サイト432の少なくとも1つのコンテンツ交換部116が特定のプロトコルをサポートしているコンテンツ交換サイト432においてのみ、パスQOS評価986をコンテンツ交換部116に実行してもよい。
【0114】
さらに、いくつかの実施形態では、パスQOS評価986は、特定のコンテンツ交換部116で一度だけ実行される。従って、特定のコンテンツ交換116が複数のIPアドレス、ポート、又はネームを有する場合、パスQOS評価986は、1個のIPアドレス、ポート、又はネームについてのみ実行される。これは、パスQOS評価986の間の重複した評価を排除する。しかし、異なるQOSが可能であると認められる場合、パスQOS評価986は、同一コンテンツ交換116の複数のIPアドレス、ポート、又はネームに実行できることが認識される。
【0115】
コンテンツ交換データベース232のうちコンテンツ交換116のどのサブセットを評価するかという選択は、クライアントコンピュータ112が出力する基準及びクライアントコンピュータの経験や、アクティブディレクトリ104や、コンテンツ交換部116や、オリジンサーバ108や、及び/又は、ユーザに基づく。
【0116】
一実施形態では、パスQOS評価986は、トレースルート、ファイル転送経由のバンド幅試験、サーバヘルスチェック、サーバロード/リソースチェック、ピング、パス差、情報を発送しているボーダゲートプロトコル(BGP)ルーティング情報、及びポート応答時間を含むがこれに限らずネットワーク解析方法論の組合せを使用して達成される。
【0117】
トレースルートは、特定のコンテンツ交換部116とクライアントコンピュータ112との間でパケットがとったルートを報告するあらゆる解析を含む。典型的にはトレースルートは、横断したホップ、横断したホップのIPアドレス、及びクライアントコンピュータ112とコンテンツ交換116との間の横断に必要とした時間を報告する。
【0118】
ファイル転送を介したバンド幅試験は、コンテンツ交換116とクライアントコンピュータ112との間でバルク情報伝達を実行した場合のあらゆる解析をも含む。バルク転送中、バルク転送の実行に要する時間を含むがこれに限定されない、多様な動作の指数が引き出される。典型的にはコンテンツ交換部116とクライアントコンピュータ112との間で転送されるデータは、非常にランダムである。このデータのランダムな性質がクライアントコンピュータ112とコンテンツ交換116との間で発生するあらゆる圧縮の影響をも軽減する。
【0119】
ピングは、情報がクライアントコンピュータ112によって、特定のコンテンツ交換部116に送信され、クライアントコンピュータ112がコンテンツ交換部116からの応答を待機する場合のあらゆる解析を含む。典型的にはピングはUDPや他のいかなる損失を有するプロトコル(すなわち、応答を保証しないプロトコル)を介して実行される。ピングは、コンテンツ交換部が動作状態か否かを確認するために有効である。代替手段として、応答の受信に必要な時間は、QOSの指示として使用できる。
【0120】
サーバヘルスチェック及び、サーバロード/リソースチェックは、ヘルス、ローディング、及びコンテンツ交換部116、オリジンサーバ108、又は他の転送ノードの利用可能なリソースに関する多様なヒューリスティックを判定するあらゆる解析も含むことが可能である。一般に、コンテンツ交換116は、多様な動作特性を判定するために問い合わせされる。これには、CPU負荷の平均値及びピーク、CPU温度、キャッシュの折損を解決するためにハードドライブとRAMとの間で転送されるページ数、コンテンツ交換部116がハードドライブに読み書き操作を生成している速度、コンテンツ交換部116がその時点でサービスを提供している要求の数、コンテンツ交換部にアクセスしている平均ユーザ数、同時接続の数、コンテンツ交換部116に/からの入出力速度、コンテンツ交換部116がコンテンツオブジェクトに要求するコンテンツオブジェクトの平均サイズ、コンテンツ交換116に関連するRAMとハードドライブメモリを含むローカルメモリのサイズ、ローカルメモリに含まれる平均コンテンツオブジェクトサイズ、コンテンツオブジェクトがローカルメモリにとどまる平均時間、コンテンツオブジェクトがローカルメモリで見出せないインスタンスの速度、及び他のいかなるエラー表示、及び/又は、ステータス情報を含むがこれらに限定されない。
【0121】
上記のヒューリスティックは、特定のコンテンツ交換部116やオリジンサーバ108に関連したヘルスチェック330,428を使用して決定できる。一実施形態では、ヘルスチェック330,428は、それぞれコンテンツ交換部116とオリジンサーバ108上で実行されるソフトウェアアプリケーションである。ビューワオブジェクトプロキシ504により問い合わせがされた場合、ヘルスチェック330,428は、CPU負荷、CPU温度、同時接続の数、及びコンテンツ交換116やオリジンサーバ108が現在サービスしている要求の数を提供する。いくつかの実施形態では、ビューワオブジェクトプロキシ504は、サーバヘルスチェックのヒューリスティックを検索するためにHTTPを介してコンテンツオブジェクト交換部116に問い合わせる。しかし当業者であれば、FTP、NNTP、RTP、RTSP、SHOUT、SMTPを含むがこれに限らずサーバ健康状態のヒューリスティックにアクセスし、又は指定されたポートを通してノードに接続する多くの機構を認識する。
【0122】
他の実施形態では、ビューワオブジェクトプロキシ504のヘルスチェック330,428へのステータス要求は、単一のステータス指数が返信されるという結果になる。単一のステータス指数は、0〜1の間にあるが、ここで1は低い特性を示し、0は良好な特性を示す。特性の良し悪しは、コンテンツオブジェクトキャッシュとして作用するコンテンツ交換部116や他の転送ノードの能力や機能に基づいて決定される。このようにこの実施形態では、0.9という指数は、長時間に亙ってコンテンツ交換部116でコンテンツオブジェクトをローカルに維持管理できないことを示す。代替手段として、0.2という指数は、長期間に亙って、コンテンツオブジェクトを維持管理できる能力を示す。
【0123】
単一のステータス指数を決定するために、多くのマシン特性をモニターし組み合わせることができる。一実施形態では、単一のステータス指数は、平均CPU負荷、コンテンツ交換部116に対応するローカルメモリのサイズ、ローカルメモリに含まれる平均コンテンツオブジェクトのサイズ、コンテンツオブジェクトがローカルメモリに留まる平均時間の特性を組合せて有する。これら個々の特性の組合せは、コンテンツオブジェクトキャッシュとしての役割を果たすコンテンツ交換部の能力評価を得るために機能する。その特性を単一の指数に結合するために、各特性は、最初に所定の使用レベルの割合に正規化される。この正規化は、100%が最高の特性値を示し、0%が最悪の特性値を示すように実行される。それから、正規化された値は、全体的なステータス指数に所定の割合が積算され、その積算された値は、0〜1の単一の指数を生成するために集計される。単一の指数を形成するために、特性について多数の代替の組を使用可能であることが認識される。例えば、一実施形態では、平均CPU負荷、CPU温度、ソースに接続している平均ユーザ数、及び単一の指数を形成するコンテンツ交換部への入出力の速度を組合せることが可能である。
【0124】
CPU負荷最大値の90%、20%に正規化されたコンテンツオブジェクトサイズ、30%に正規化されたローカルメモリのサイズ、80%に正規化されたローカルメモリに含まれる平均コンテンツオブジェクトのサイズ、及び50%に正規化されたローカルメモリにコンテンツオブジェクトがとどまる平均時間が判明している場合に単一の指数を形成する例を示す。それぞれの特性が単一の指数において等しい役割を果たすように、これらの正規化値を集計可能である。従って、それぞれの正規化値には20%を積算し、その後集計して単一の指数を生成する。これにより、この例の単一の指数は、54%、即ち0.54となる。例及び実施形態は、単に例示的なものであり、複数の特性を単一の指数に結合する多数の代替の方法が可能である。
【0125】
BGPルーティング情報は、ボーダグループプロトコル解析の結果として報告されるいかなる情報も含む。一般に、この情報は、パストポロジに関するものであり、また自律システム(AS)のパス属性、及びASの次のホップを含むが、これに限定されるものではない。
【0126】
路程差は、コンテンツ交換116とクライアントコンピュータ112とを接続している代替のパス間における、バンド幅又は待ち時間の差を決定するいかなる解析も含む。
【0127】
ポート応答時間は、ポート応答の指示を提供するいかなる解析も含む。一般に、試験は、コンテンツ交換部116のポートの応答時間に関する情報を提供する。例えば、ポート時間は、長さゼロのメッセージを転送するのに必要な時間を判定するいかなる解析も含み得る。一般的に、長さゼロの転送結果は、毎秒当たりの交換メッセージの数として報告される。毎秒当たりの交換の数は、コンテンツ交換部116の待ち時間を推定するために使用される。
【0128】
上記したあらゆる方法論を、コンテンツ交換部116とクライアントコンピュータ112とを接続するパスのQOSや伝送品質の指標を提供するために組合せてもよい。代替手段として、上記のあらゆる方法論もQOS評価986を提供するために他のネットワーク解析方法論と組合せ可能である。例えば、一実施形態では、ピング、トレースルート、及びヘルスチェックは、QOS評価を提供するために組合せて使用される。
【0129】
他の実施形態では、上記した方法論の全てをQOSを決定するために組合せる。QOSを決定するためには、それぞれの方法論を実行し、それぞれの方法論のQOS係数を返信する。それぞれの方法論のQOS係数は、その後正規化されて、それぞれの分析パスの単一のQOS係数を形成するために集計される。QOS係数の正規化は、それぞれの方法論を等しく重み付けして実行される。
【0130】
例えば、一実施形態では、次の正規化と集約演算がなされる。即ち、(1)トレースルートが9個のホップを報告、(2)ファイル転送を介したバンド幅試験が300ミリ秒を報告、(3)サーバヘルスチェックが健康な1つを報告、(4)サーバロード/リソースチェックが平均65%のCPU負荷を報告、(5)BGPルーティング情報が4個のホップを報告、及び、(6)ポート応答時間が45ミリ秒を報告する。また、それぞれの戻り値をそれぞれ所定の最大値と比較する。即ち、(1)トレースルートの30個のホップ、(2)ファイル転送を介したバンド幅試験の500ミリ秒、(3)サーバヘルスチェックの1、(4)サーバロード/リソースチェックの100%、(5)BGPルーティング情報の6個のホップ、(6)ポート応答時間の100ミリ秒である。
【0131】
正規化と集計を実行するために、それぞれの戻り値を、それぞれの所定の最大値で除算する。これにより、トレ−スルートは0.33、ファイル転送を介したバンド幅試験は0.6、サーバヘルスチェックは1、サーバロード/リソースチェックは0.65、BGPルーティング情報は0.75、ポート応答時間は0.45という結果が得られる。次に、正規化値の全てを集計し、全体的なQOS係数として3.78を得る。このQOS係数を、その後多様なコンテンツ交換部116を比較するために使用する。
【0132】
他の実施形態では、それぞれの手法から報告される値は、集約演算の前に異なる重み付けをしておく。重み係数は、報告されたQOS係数に影響を及ぼすようにユーザが提供してもよい。上記の例における値を使用してこの実施形態を説明するが、ここで各種方法論から報告される正規化値は、(1)トレースルート 0.33、(2)ファイル転送を介したバンド幅試験 0.6、(3)サーバヘルスチェック 1、(4)サーバロード/リソースチェック 0.65、(5)BGPルーティング情報 0.75、(6)ポート応答時間 0.45である。この例に続けて、以下の重み係数を使用する。即ちトレ−スルートは1、ファイル転送を介したバンド幅は3、サーバヘルスチェックは1、サーバロード/リソースチェックは4、BGPルーティング情報は1、ポート応答時間は3、を使用する。それぞれの正規化値にそれぞれ重み係数を積算して、(1)トレースルート 0.33、(2)ファイル転送を介したバンド幅試験 1.8、(3)サーバヘルスチェック 1、(4)サーバロード/リソースチェック 2.6、(5)BGPルーティング情報 0.75、(6)ポート応答時間 1.35という結果になる。次に、重み付けされた正規化値を集計し、全体的なQOS係数として7.83を得る。再び、このQOS係数を様々なコンテンツ交換116を比較するのに使用する。
【0133】
重み係数を提供することに加えて、ユーザは、手動でコンテンツ交換部116の所定の順序を選択するか、又は単一の受け入れ可能なコンテンツ交換116だけを提供できるが、そのいずれかは、パスQOS評価986の自動解析を効果的に無効にする。従ってユーザは、コンテンツ交換部116のQOS係数の完全自動生成を可能にすることによって、パスQOS評価986を手動で重み付けしてコンテンツ交換116に報告されたQOS係数を達成することによって、或いは、自動分析を無視して所望のコンテンツのリスト116を提供することによっていかなる所望の結果をも達成できる。
【0134】
いくつかの実施形態では、複数段階のパスQOS評価986を、上述した方法のサブセットを使用して実行し、粗いQOS解析の後で限定された数のコンテンツ交換116で精密なQOS解析を実行可能である。この複数ステップの解析は、充分なQOSを提供しそうにないコンテンツ交換部の精密なQOS解析を回避してパスQOS評価986の効率を向上させる。従って、典型的な実施形態では、ピング及びトレースルートは、コンテンツ交換データベース232に含まれる全てのコンテンツ交換部116にて粗いQOS解析を実行するために適用される。その後、粗いQOSによると充分なQOSを提供する、所定の数、好ましくは25未満のコンテンツ交換部116を、精密なQOS解析としてサーバヘルスチェックを使用して評価する。精密なQOS解析の結果、充分なQOSを提供するコンテンツ交換部116が決定する。方法のいかなる組合せが精密な、又は粗いQOS解析のいずれかを実行するために適用され得る。代替手段においては、精密な、又は粗いQOS解析のいずれかは、それ自身複数ステップの解析からなることが可能であることが認識される。
【0135】
パスQOS評価986を可能性があるパスにて実行し、それぞれ評価パスのQOS係数がクライアントコンピュータ112のメモリに記憶された後、評価パスに関連したコンテンツ交換部116に優先順位をつける990。コンテンツ交換部116は、パスQOS評価986で決定されるQOS係数に基づいて優先順位がつけられる。QOS係数に基づいて、所定の数のコンテンツ交換部が選択され、ランク付けされて、優先情報512として記憶される。一実施形態では、優先情報512は、10個の優先コンテンツ交換部116を含む。
【0136】
上記で開示したように、別の実施形態では、必ずしもコンテンツ交換部116及びオリジンサーバ108とは限らないあらゆるコンテンツオブジェクトソース上でパスQOS評価を実行できる。この場合、優先情報512は、コンテンツ交換部116だけでなくコンテンツオブジェクトソース、オリジンサーバ108を含むことが可能である。
【0137】
優先情報512は、クライアントコンピュータ112の観点から実行されるネットワーク解析により充分なQOSを提供するものと決定されたコンテンツ交換部116のリストを含む。クライアントコンピュータ112の観点からQOSを分析することで、QOSは改善できる。
【0138】
いくつかの実施形態では、優先情報512は、パスQOS評価986により分析されるコンテンツ交換部116のサブセットを形成するために使用される。例えば、同一サイトに存在する、又は優先情報512に含まれるコンテンツ交換116として同一プロバイダに関連したコンテンツ交換116を、試験してもよい。このように、充分なQOSを提供する蓋然性が最も高いコンテンツ交換部116のみが、次のパスQOS評価986で再評価される。代替手段では、優先情報512が最後に作成されてから、コンテンツ交換データベース232に加えられた他のコンテンツ交換部116とともに、優先情報512に含まれるコンテンツ交換116を、パスQOS評価986で分析することができる。これらの方法で、ビューワオブジェクトプロキシ504の経験を、より効率的なパスQOS評価986を実現するために使用できる。上記の実施形態は、単に例示のためのものであり、コンテンツ交換116を選択するための多数のアルゴリズムが存在して、パスQOS評価986の効率を向上させることが認識される。例えば、特定のコンテンツ交換116についてパスQOS評価986の以前の動作では十分に劣悪な結果を報告することがあれば、再度分析することなく、むしろ推定的に除外する。いくつかの実施形態では、この推定に基づく除外は、ユーザが手動で無効にできる。
【0139】
パスQOS評価986の結果は、ユーザに表示992できる。いくつかの実施形態では、その結果は、ビューワオブジェクトプロキシ504のアプリケーションをクライアントコンピュータ112のデスクトップで実行し続けるようにユーザを促すために、及び、重み付け機能852を変更する際にユーザが手動でコンテンツ交換部116の選択を制御することを容易にするために表示される。一実施形態では、他のものに加えてディスプレイ機能854は、動作特性を記載している統計値とともに、クライアントコンピュータ112と選択されたコンテンツ交換116との間のホップを例示している地域のマップを提供する。
【0140】
スタートアップ980で優先情報512を更新することに加えて、優先情報512を、ユーザ要求994、又は時間間隔996のいずれかに基づいて更新できる。一実施形態では、優先情報512を時間間隔996で更新し、それを3600秒にセットする。
【0141】
図9に関して記載したバックグラウンドアプリケーションに加えて、ビューワオブジェクトプロキシ504は、電子商取引要求にサービスを提供すると共に、コンテンツ配信システム100、外部オリジンサーバ118、及びインターネット120からコンテンツオブジェクトのユーザリクエストにサービスを提供していることを含みこれに限定されない、フォアグラウンドオペレーションを提供可能である。より詳細には、電子商取引機能866に関連して上記したように、ビューワオブジェクトプロキシ504は電子商取引の要求を処理できる。
【0142】
コンテンツ配信システム100、外部オリジンサーバ118、及びインターネット120からコンテンツオブジェクトにアクセスについて、図10に含まれるビューワオブジェクトプロキシ要求サービス1000の実施形態を示すフローチャートに従って説明する。図10を参照する。コンテンツオブジェクトに対するユーザ要求1010をビューワオブジェクトプロキシ504が受信する。一実施形態では、コンテンツ配信システム100は、コンテンツ処理プログラム508を通してアクセスされる。より詳細には、ユーザコマンドに反応して、コンテンツ処理プログラム508は、コンテンツオブジェクト要求を発行する。コンテンツオブジェクト要求は、ユーザ要求1010としてビューワオブジェクトプロキシ504に転送される。
【0143】
ユーザ要求1010を受信すると直ちに、ビューワオブジェクトプロキシ504は、受信したユーザ要求1010がコンテンツ配信システムへのアクセス1020によって履行できるか否かを判定する。一実施形態においてこの判定は、ユーザ要求1010のソースロケーションをコンテンツ配信システム100に関連したソースロケーションの既知のリストと比較することにより実行される。ユーザ要求1010のソースロケーションがコンテンツ配信システム100に関連したースロケーションと一致する場合、その要求はコンテンツ配信システムへのアクセス1020によって履行される。従って、コンテンツ配信システムサービス1030は、ユーザ要求1010を履行するために実行される。
【0144】
いくつかの実施形態では、ビューワオブジェクトプロキシ504は、オリジンサーバ108と優先情報512を通信してコンテンツ配信システムサービス1030を実行する。優先情報512を使用して、オリジンサーバ108は、ユーザ要求1010に充分なQOSを提供できるコンテンツ交換部116、又はオリジンサーバ108を選択する。オリジンサーバ108は次に、選択されたコンテンツ交換部116、又はオリジンサーバ108のアドレスをビューワオブジェクトプロキシ504に通信する。一実施形態では、オリジンサーバ108は、動的にHTMLを書き込み、ビューワオブジェクトプロキシ504に選択されたコンテンツ交換116やオリジンサーバ108のアドレスを通信する。次に、ビューワオブジェクトプロキシ504は、選択されたコンテンツ交換部116や、オリジンサーバ108と互換性がある圧縮、暗号化、及びセキュリティについて交渉する。代替の実施形態では、ビューワオブジェクトプロキシ504自体がコンテンツ交換部116を選択し、優先情報512を使用して要求されたコンテンツオブジェクトを提供することができる。
【0145】
ビューワオブジェクトプロキシ504は、選択されたコンテンツ交換部116又はオリジンサーバ108からコンテンツオブジェクトを要求してユーザ要求1010を履行する。要求されたコンテンツオブジェクトが受信されると、交渉されたフォーマットに従って、解凍、解読、及びセキュリティがビューワオブジェクトプロキシ504によって提供される。このように、オリジンサーバ108にクライアントコンピュータ112の特定情報を送信することによって、オリジンサーバ108は充分なQOSを提供できるコンテンツ交換部116を選択可能である。クライアントコンピュータ112の観点からの解析やコンテンツ交換選択を提供して、より正確なQOS解析が達成でき、結果としてより良好なQOSを得ることができる。
【0146】
ユーザ要求1010をコンテンツ配信システムアクセス1020が履行できない場合、ビューワオブジェクトプロキシ504は次に、ユーザ要求1010は外部オリジンサーバアクセス1040によって履行可能か否かを判定する。一実施形態では、この判定は、ユーザ要求1010に示すドメインネームを、ホストされるサーバルーティング520にて提供される外部オリジンサーバ118のドメインネームと比較することにより実行される。ユーザ要求1010に示すドメイン名が外部オリジンサーバ118のドメイン名と一致する場合、ユーザ要求1010は、外部オリジンサーバサービス1050を実行することで、一致した外部オリジンサーバ118から履行可能である。このように、ユーザ要求1010を履行するために外部オリジンサーバサービス1050が実行される。他の実施形態では、ユーザ要求1010は、ディレクトリネーム、マシンネーム、IPアドレス、受け入れられたサーバルーティング520に含まれる外部オリジンサーバに対応する識別子と比較される他の識別子を含んでもよい。
【0147】
一実施形態では、ビューワオブジェクトプロキシ504は、一致した外部オリジンサーバ118から供給されるコンテンツオブジェクトを提供することが知られているコンテンツ交換部116にアクセスして、外部オリジンサーバサービス1050を実行する。このように、ビューワオブジェクトプロキシ504は、一致した外部オリジンサーバ118からコンテンツ交換部116にユーザ要求1010をあて先変更する。このあて先変更は、一致した外部オリジンサーバ118と、コンテンツ処理プログラム508との両方にトランスペアレントである。いくつかの実施形態では、ビューワオブジェクトプロキシ504は、選択されたコンテンツ交換部116と、互換性がある圧縮、暗号化、及びセキュリティについて交渉する。これに応じて、コンテンツ交換部116は、交渉された圧縮、暗号化、及びセキュリティに従ってユーザ要求1010を履行する。コンテンツ交換部116が要求されたコンテンツオブジェクトを有しない場合には、コンテンツ交換部116は、一致した外部オリジンサーバ118から所望のコンテンツオブジェクトを要求する。いずれにせよ、要求されたコンテンツオブジェクトは、コンテンツ交換部116がクライアントコンピュータ112に通信する。要求されたコンテンツオブジェクトが受信されると、解凍、解読、及びセキュリティは、交渉されたフォーマットに従ってビューワオブジェクトプロキシ504によって提供される。このように、コンテンツ交換部116からユーザ要求1010のサービスを提供することによって、外部オリジンサーバ118を維持管理しているコンテンツオブジェクトプロバイダは、コンテンツオブジェクトの配信の負担を負わない。
【0148】
代替の実施形態では、ビューワオブジェクトプロキシ504は、オリジンサーバ108に優先情報512を通信して外部オリジンサーバサービス1050を実行できる。優先情報512を使用して、オリジンサーバ108は、ユーザ要求1010に充分なQOSを提供できるコンテンツ交換116、又はオリジンサーバ108を選択する。オリジンサーバ108は、選択されたコンテンツ交換部116にアドレスを、ビューワオブジェクトプロキシ504にオリジンサーバ108を通信する。
【0149】
ビューワオブジェクトプロキシ504は次に、選択されたコンテンツ交換部116、又はオリジンサーバ108からコンテンツオブジェクトを要求することによってユーザ要求1010を履行する。
【0150】
選択されたコンテンツ交換116又はオリジンサーバ108は、一致した外部オリジンサーバ118から所望のコンテンツオブジェクトを要求し、その後ビューワオブジェクトプロキシ504に、要求されたコンテンツオブジェクトを通信することでユーザ要求1010を履行する。このように、クライアントコンピュータ112に合わせてサービスを提供することで、より良好なQOSが達成できる。さらに、コンテンツ交換部116からユーザ要求1010にサービスを提供することで、外部オリジンサーバ118を維持管理しているコンテンツオブジェクトプロバイダは、コンテンツオブジェクトの配信を負担しないですむ。
【0151】
ユーザ要求1010が、外部オリジンサーバアクセス1040又はコンテンツ配信システムアクセス1020によって履行不能な場合には、ユーザ要求1010は、インターネット120へ送信される。一実施形態では、インターネット120へ通過した1060ユーザ要求1010は、標準のウェブアクセス機能858に関して記載したように処理される。
【0152】
図11を参照する。オリジンサーバ108とコンテンツ交換部116との間でコンテンツをトラッキングする方法の実施形態を示す。この例は主に単一のオリジンサーバと単一のコンテンツ交換との間の対話を示すが、各オリジンサーバが多くのコンテンツ交換と交信し、各コンテンツ交換が多くのオリジンサーバと交信するのは当然である。全てのオリジンサーバ108と全てのコンテンツ交換116の間の対話で、システム600は、コンテンツオブジェクトの部分の追跡が可能になる。
【0153】
この処理は、オフライン、又は利用不能な状態で、コンテンツ交換部とオリジンサーバから開始される。ステップ1104では、コンテンツ交換部116は、動作開始後に利用可能となる。最初に利用可能になる場合、コンテンツ交換部116は、空であり、クライアントコンピュータ112によるコンテンツの要求を待機する。クライアントコンピュータ112が要求を履行すると、コンテンツ記憶部412は、それ自体をコンテンツオブジェクト、又はコンテンツオブジェクトの部分で満たす。
【0154】
ステップ1108で、この実施形態のオリジンサーバ108は動作を開始し、利用可能となる。オリジンサーバ108は、アクティブディレクトリ104にそのローカルコンテンツカタログを掲載して、システム600の全てのコンテンツトラッカー404に、自身を識別させる。稼働しているコンテンツ交換部116のコンテンツ交換データベース232は、コンテンツマネージャ312がコンテンツトラッカー404のアドレスを判別するように、問い合わせできる。
【0155】
それぞれのコンテンツ交換部116は、それと交信したオリジンサーバ108のオリジンサーバデータベース424を維持管理する。オリジンサーバ108がオフラインになる前に、オリジンサーバ108は、全てのコンテンツ交換116と交信して、ステータスのこの変化をそれら116に通知しようとする。オフラインになったオリジンサーバ108は、オリジンサーバデータベース424から削除される。オリジンサーバ108がステータスを送信するコンテンツ交換部116への応答に失敗したときは常に、そのオリジンサーバ108はオフラインと推定され、オリジンサーバデータベース424から削除される。
【0156】
コンテンツ交換部116がオフラインになる予定にある場合は常に、それはシステム600に通知しようとする。それぞれのオリジンサーバ108のコンテンツト交換情報324とコンテンツロケーションデータベース320が、最新に維持されるように、コンテンツオブジェクト、又はコンテンツオブジェクトの部分を有するオリジンサーバ108に通知する。さらに、コンテンツ交換データベース232がシステム600に利用可能なコンテンツ交換部116を正確に反映するように、アクティブディレクトリ104に通知がされる。
【0157】
ステップ1108で交信された各コンテンツトラッカー404は、ステップ1112で、ステータス情報420、及びそのコンテンツマネージャ312に関するあらゆるコンテンツオブジェクトをコンテンツマネージャ312に応答する。コンテンツマネージャ312がオンラインになるところであるため、コンテンツ記憶部412上には、そのコンテンツマネージャ312に関連したコンテンツサーバ308から発生したいかなるコンテンツオブジェクトも存在する蓋然性が低い。応答した各コンテンツ交換部116からのステータス情報420は、コンテンツ交換情報324としてコンテンツマネージャ312に記憶される。多様な実施形態においてステータス情報420は、コンテンツカタログ情報416の有無にかかわらず報告され得る。コンテンツオブジェクトのソースにクライアントコンピュータ112をルーティングする場合、問題のコンテンツ交換部へのローディングを判定するためにコンテンツ交換情報324が使用される。コンテンツ交換情報324が最新であるように、それぞれのコンテンツトラッカー400は、ステータス情報を有する全てのアクティブなコンテンツマネージャ312を定期的に更新する。別の実施形態では、定期的にではなく、ステータスの重大な変更が突然発生した場合に、コンテンツトラッカー404は、更新したステータス情報420を提供し得る。
【0158】
ステップ1116で、コンテンツマネージャ312は、クライアントコンピュータ112をコンテンツ交換部116に送信して、コンテンツオブジェクトの要求を履行する。クライアントコンピュータ112をあて先変更する前に、コンテンツマネージャ312は、特定のコンテンツ交換部がそのコンテンツオブジェクトの優先ソースであるという決定をする。コンテンツオブジェクトの全体が優先コンテンツ交換部116にない場合、コンテンツコントローラ408は、ステップ1120で欠落しているコンテンツオブジェクトの部分を検索する。一旦コンテンツオブジェクトの先頭部分がコンテンツ交換部116から入手可能になった場合には、クライアントコンピュータ112はコンテンツオブジェクトをダウンロードし始める。
【0159】
所定の間隔をもって、又は変更が発生したときに、コンテンツトラッカー404は、全てのコンテンツマネージャ312に、コンテンツ記憶部412に記憶されたコンテンツオブジェクト、及び/又は、コンテンツオブジェクトの部分を報告する。ローカルコンテンツカタログ416は、コンテンツ記憶部412に保持されるコンテンツオブジェクト、及び/又は、コンテンツオブジェクトの部分のリストを記憶する。ステップ1120で追加される可能性があるコンテンツオブジェクトをステップ1124で、元々コンテンツオブジェクトを提供していたオリジンサーバ108に通信する。コンテンツ記憶部412上の情報を有するそれぞれオリジンサーバ108は、コンテンツトラッカー404からレポートを受信する。
【0160】
その後ある時点において、ステップ1128でローカルコンテンツカタログ416からのさらなる情報を、コンテンツトラッカー404からコンテンツマネージャ312に送信する。ステップ1132のタイマーの失効でこのレポートは、始動するが、他の実施例では変更が発生した場合にこの情報を報告することもある。全てのコンテンツ交換部116からのレポートにより、コンテンツマネージャ312は、記憶場所情報をコンテンツロケーションデータベース320に記憶する。コンテンツマネージャによるコンテンツロケーションデータベース320に関する将来の問い合わせは、コンテンツマネージャ312がクライアントコンピュータ112のあて先変更を希望するコンテンツオブジェクトをどのコンテンツ交換部116が現在有しているのかを知ることを可能にする。
【0161】
ステータス情報420、及び/又は、コンテンツカタログ情報416のレポートが特定のコンテンツマネージャ312に作成されると、コンテンツトラッカー404は、コンテンツマネージャ312が情報を受理するか否かを判定する。コンテンツマネージャがその情報を受理した場合、処理は、他のコンテンツオブジェクトを要求するステップ1116にループして戻る。
【0162】
コンテンツマネージャ312が例えばオフラインである場合、コンテンツトラッカー404から報告された情報は、受理されない。コンテンツトラッカー404は、コンテンツマネージャ312が利用不能と結論付ける前に、不成功に終わる交信試行をいくつか行う場合がある。応答しないコンテンツマネージャ312を、ステップ1136で検出する。利用不能なコンテンツマネージャ312に関連したあらゆるコンテンツオブジェクトが、ローカルコンテンツカタログ416への問い合わせによって判定される。関連したコンテンツオブジェクトは、新規のコンテンツオブジェクトの場所を残しておくためにコンテンツ記憶部412から一掃されるか、又は記憶空間が必要なときは、それらは削除用のタグを付けられる。オリジンサーバネームをIPアドレスに翻訳する上記の処理の間、コンテンツトラッカーは、動的DNS204に問い合わせする。
【0163】
次に図12を参照する。コンテンツマネージャからサーバマネージャへ情報を通信する処理の実施形態を示すフローチャートが示されている。示されたフローチャートは、アクティブディレクトリ104と単一のオリジンサーバ108間の対話を示す。しかし、アクティブディレクトリ104は、類似の方法で多数のオリジンサーバと対話して、サーバデータベース228のオリジンサーバの番号をカタログ化する電子名簿を開発することが理解される。ユーザは、検索ページ、ディレクトリページ規範をもってサーバデータベース228に問い合わせる。
【0164】
処理は、ステップ1204で開始され、ここで、コンテンツマネージャ312は、サーバマネージャ208にステータス情報を提供する。サーバマネージャ208は、ステータス情報を受信し、ステップ1208で、加入者データベース224に記憶する。加入者データベース224は、システム600で現在アクティブな全てのオリジンサーバ108の情報を保持している。
【0165】
サーバマネージャ208は、それぞれのオリジンサーバ108がローカルコンテンツカタログ316からの情報を報告応答する頻度を管理できる。それぞれのオリジンサーバがローカルコンテンツカタログ316に報告する頻度は、ステップ1210でコンテンツマネージャ312に報告応答時間間隔を提供するサーバマネージャ208が制御する。アクティブディレクトリ104のローディング又は利用は、サーバデータベース228の情報の更新に利用できるバンド幅の総計を決定するために分析される。そのローディング決定に基づき、報告応答時間間隔が選択され、コンテンツマネージャ312に送信される。ある実施形態では、報告応答時間間隔は通常2分に設定されるが、アクティブディレクトリがオーバーロードになる場合にはそれより長くすることも可能である。
【0166】
各オリジンサーバ108は、システム600に掲載するために管理者が選択する全てのコンテンツオブジェクトのローカルコンテンツカタログ316を維持管理する。コンテンツマネージャ312がローカルコンテンツカタログ316を報告するためにサーバマネージャ208と交信する最初の時に、カタログ316からの全てのエントリは送信される。次の交信の際は、ローカルコンテンツカタログ316に対する変更だけが、バンド幅を保存するために報告される。別の実施形態では、全部のローカルコンテンツカタログは、それぞれの交信で報告される。ステップ1216で、サーバマネージャ208は、ローカルコンテンツカタログ316、又はローカルコンテンツカタログに対する変更を受信してその情報をサーバデータベース228に記憶する。報告応答時間間隔の間に、ローカルコンテンツカタログ316に変更がない場合であっても、オリジンサーバ108がまだ利用可能であることを知らせるため、オリジンサーバ108は、サーバマネージャ208と交信する。
【0167】
サーバマネージャ208は、オリジンサーバ108がオフライン、又はそうでなく利用不能であることが推定されるためにオリジンサーバ108がその交信を停止するか否かを検出する。ステップ1220で、サーバマネージャ208は、オリジンサーバ108のタイムアウト値を設定する。タイムアウト値は、本実施例では、報告応答時間間隔の3倍に設定されるが、他の倍数も使用できる。カウンタは、タイムアウト値に設定され、カウンタがいつタイムアウト値に到達したかを決定する。
【0168】
ステップ1224でカウンタがタイムアウト値に到達すると、ステップ1236でアクティブディレクトリ104は、オリジンサーバ108に対する全ての参照を削除、又はスペースが必要な場合は、削除するために参照にタグ付けを実行する。カウンタがタイムアウト値に到達する前に交信が始まらない場合には、オリジンサーバ108は、利用不能と推定される。そのオリジンサーバ108のローカルコンテンツカタログ316に対応するエントリは、サーバデータベース228から削除され、オリジンサーバ108のエントリは、加入者データベース224から削除される。データベース224,228からエントリを削除することで、ディレクトリ、検索ページ212,216とインタフェースしているどんなユーザにも、そのオリジンサーバ108に関連したコンテンツオブジェクトのリンクが提示されない。一方、カウンタがタイムアウト値に到達した後、ローカルコンテンツカタログ316に対応するエントリは削除用のタグを付けられてもよい。他のコンテンツオブジェクトのスペースが必要な場合、削除のためにタグ付けされたコンテンツオブジェクトは、上書きされる。
【0169】
ステップ1228で決定されるようにオリジンサーバ108による交信がある場合には、アクティブディレクトリ104は、オリジンサーバ108が適切にふるまっていることを知る。交信は、タイムアウト値を格納しているカウンタを再設定する結果になる。処理は、サーバデータベース228が更新されるステップ1210にループして戻り、新しい報告応答時間間隔が決定される。タイムアウト値を記憶しているカウンタが時間切れになる前に、オリジンサーバ108が報告できなくなるまで、この処理はループして繰り返される。
【0170】
図13を参照する。コンテンツマネージャ312がサーバマネージャ208に情報を掲載する処理の実施形態を示すフローチャートが示されている。オリジンサーバの管理者は、アクティブディレクトリ104のダウンロードページ220から、ソフトウェアをダウンロードする。そのソフトウェアは、オリジンサーバ108上にインストールされる。この時点で、コンテンツオブジェクトは、静的な、又はストリーム形態にてコンテンツサーバ308上で利用可能である。オリジンサーバが準備できたコンテンツオブジェクト、及びソフトウェアがインストールされた状態から動作を開始するステップ1304から処理が開始される。
【0171】
ステップ1308で、管理者は、コンテンツオブジェクトを選択するために手動の選択処理を実行する。この処理の間、コンテンツサーバ308上のコンテンツオブジェクトのサブセットのみが、システム600に利用可能にされてもよい。選択されたコンテンツオブジェクトは、ローカルコンテンツカタログ316に入力される。
【0172】
ステップ1308,1312で、コンテンツマネージャ312は、アクティブディレクトリ104と最初に交信するとすぐに、加入者データベース224にエントリするために、オリジンサーバ108に関する情報をサーバマネージャ208に送信する。これがコンテンツマネージャ312のアクティブディレクトリ104との最初の交信の場合は、管理者は、送信されたいくつかの情報を提供してもよい。管理者が追加する情報は記憶され、加入者データベース224を有する次の交信で提供される。
【0173】
ステップ1316で、コンテンツマネージャ312は、サーバマネージャ208と交信し、ローカルコンテンツカタログ316の情報を掲載する。ステップ1320で、サーバマネージャ208は、ローカルコンテンツカタログ316を入手し、それぞれのコンテンツオブジェクトのためにサーバデータベース228へのエントリを作成する。コンテンツをユーザが検索するために提示されるディレクトリページ及び検索ページ212,216を系統立てて整理するときに、そのサーバデータベース228のコンテンツが使用される。
【0174】
サーバマネージャ208は、全てのオリジンサーバ108がそれらのローカルコンテンツカタログ316を報告する頻度を制御する。サーバマネージャ208がオーバーロードされている場合、コンテンツマネージャ312に与えられた報告応答期間は増加される。ローカルコンテンツカタログ316の変更が検出されると、サーバマネージャ208はまた、コンテンツマネージャ312に報告応答するよう要求できる。本実施例では、その報告応答期間、又はインターバル時間は2分であり、ステップ1324で、コンテンツマネージャ312に提供される。
【0175】
サーバマネージャ208に報告応答する前に、ステップ1328で、コンテンツマネージャ312は、間隔時間の期限切れを待機する。一旦タイマーが期限切れになると、コンテンツサーバ308上のコンテンツオブジェクトは、ローカルコンテンツカタログ316が変更されるべきかどうか判定するためにスキャンされる。ステップ1332で、一旦変更されると、処理ループは、ローカルコンテンツカタログ316がもう一度サーバデータベース228に掲載される、ステップ1316へ戻る。ステップ1316で、1回目の交信についての全部のローカルコンテンツカタログが提供され、情報量を減少するために次の交信については変更のみが提供され、情報を更新する。
【0176】
次に図14を参照する。別々のポート1408経由で接続される複数のプロバイダを示すコンテンツ交換部116の実施形態のブロック図を示す。コンテンツ交換部116に対して3個のデータパス1404がインターネットプロトコルポート1408で論理的に分離される。ポート1408が物理的に共通ダクトを共有できる場合でも、ポートは、論理的データパス1408を非多重化するために使用される。複数のポート1408を有するので、それらのポート1408と関連するトラフィックを管理することができる。
【0177】
例えば、外部オリジンサーバ118からコンテンツオブジェクトを提供するためにコンテンツ交換部116が使用されてもよい。外部オリジンサーバの管理者は、トラフィックを3個のバンド幅のプロバイダに分割することを希望することもある。ポートA 1408Aは、プロバイダAと関連でき、ポートB 1408Bは、プロバイダBと関連でき、ポートC 1408Cは、プロバイダCと関連できる。コンテンツ交換部は、それらのポートのアクティビティをモニターでき、それらがそのバンド幅を運ぶために外部オリジンサーバ118に適切な請求ができるようにプロバイダにその情報を報告する。
【0178】
クライアントコンピュータ112からの要求は、プロバイダ間でバンド幅を割り当てできるように、外部オリジンサーバ118が決定する構成に従ってポート1408間で分割できる。ある実施形態では、それぞれのクライアントコンピュータ112は、重み付け機能に従って3個のポート1408を循環する。他の実施形態では、それぞれのクライアントコンピュータは、異なるポート1408を割り当てられて使用する。さらに他の実施例では、各ポート1408のQOSの決定は、クライアントコンピュータ112が使用するポート1408の選択肢に影響する。これらの技術を使用して、システム600のクライアントコンピュータ112は、それぞれのプロバイダから購入するバンド幅の総計に影響を与えることが可能である。
【0179】
図15を参照する。別々のアドレス1508経由で接続される複数プロバイダを示すコンテンツ交換部116の他の実施形態のブロック図を示す。この実施形態では、3個のIPアドレス1508は、論理的に3個のデータパス1504を互いに分離するために使用される。論理的データパスは、主としてプロバイダごとにバンド幅を分離することを想定しているが、論理的データパスは、セキュリティレベル、コンテンツオブジェクトのサブセット、又はその他のものを分離できる。
【0180】
次に図16を参照する。プロバイダ1604とコンテンツ交換116のグループ化の実施形態の階層表現を示す。この実施形態では、2個のバンド幅プロバイダ1604がある。それぞれのプロバイダ1604は、それ自身専用のサイト1608−1,1608−3と、共有されるサイト1608−2とを有する。サイト1608は、1個以上のサーバ1612を収容し、複数サーバ1612を収容し得る単一のコンテンツ交換部116に対応する物理的位置である。
【0181】
共有サイト1608−2の各サーバ1612−3は、そのサイト1608−2を共有しているそれぞれのプロバイダ1604の別々のIPアドレス1616−3,1616−4を有する。この2個のIPアドレス1616−3,1616−4は、与えられた共有サイト1602−2に、トラフィックの論理的区切りを許可する。全てのトラフィックが時々同一の物理的ダクトを共有したとしても、論理的区切りは、コンテンツオブジェクト要求、及びそれらの要求をサービスするバンド幅を個々のプロバイダ1604帰すことを可能にする。ある実施形態では、それぞれのプロバイダと関連するトラフィックを、IPアドレス1616上のフィルタリングによって、物理的に分離しておくことができる。このように、バンド幅は、プロバイダ1604に割り当てられてもよい。
【0182】
次に図17を参照する。プロバイダとコンテンツ交換のグループ化の他の実施形態の階層表現を示している。この実施形態では、ポート1716は、サーバ1612への論理的データパスを識別するために使用される。ポート1の1716−3は、プロバイダ1の1604−1と関連し、ポート2の1716−4は、複数プロバイダ1604にサービスするサイト1608−2上のプロバイダ2の1604−2と関連する。ある実施形態では、各プロバイダは、全てのサーバ上の単一の汎用ポートよりむしろそれらと関連する範囲のポートを有し得る。
【0183】
上記の記載によって、本発明の多数の利点が直ちに明らかである。コンテンツはオリジンサーバとコンテンツ交換部のネットワークを通じて確実な方式でトラッキングされる。多数のコンテンツ交換部がコンテンツ情報をオリジンサーバに報告応答して、そのコンテンツオブジェクトを既に有している可能性があるコンテンツ交換部へクライアントコンピュータをインテリジェントにルーティングする。
【0184】
発明の多数の変形と修正も使用可能である。例えば、ある実施形態ではステータスとカタログ情報とをオリジンサーバに直接に報告することがあるが、他の実施形態ではオリジンサーバが問い合わせ可能な中央の格納手段にこの情報を報告することがある。
【0185】
本発明は、その特定の実施形態に関して記載されているが、その実施形態は、発明の単なる例示であり、本発明の範囲を限定するものではない。発明の範囲は、添付の請求の範囲のみにより決定される。
【図面の簡単な説明】
【図1】コンテンツ配信システムの一実施形態を示すブロック図。
【図2】コンテンツ配信システムのアクティブディレクトリ部分の実施形態を示すブロック図。
【図3A】コンテンツ配信システムのオリジンサーバ部の実施形態を示すブロック図。
【図3B】コンテンツ配信システムの外部オリジンサーバ部の実施例のブロック図。
【図4A】コンテンツ配信システムのコンテンツ交換部の実施形態を示すブロック図。
【図4B】コンテンツ配信システムのコンテンツ交換部の他の実施形態を示すブロック図。
【図4C】複数のコンテンツ交換サーバを有するコンテンツ交換サイトの実施形態を示すブロック図。
【図5】コンテンツ配信システムのクライアントコンピュータ部の実施形態を示すブロック図。
【図6】コンテンツ配信システムの実施形態を示すブロック図。
【図7A】ユーザにコンテンツを配信するための処理の実施形態を示すフローチャートの第1の部分。
【図7B】図7Aのフローチャートの第2の部分。
【図8】ビューワオブジェクトプロキシの実施形態を示すブロック図。
【図9】ビューワオブジェクトプロキシのバックグラウンドアプリケーションを示すフローチャート。
【図10】ビューワオブジェクトプロキシ要求サービスを示すフローチャート。
【図11】オリジンサーバとコンテンツ交換部との間でコンテンツをトラッキングする方法の実施形態を示すフローチャート。
【図12】コンテンツマネージャからサーバマネージャへ情報を通信するための処理の実施形態を示すフローチャート。
【図13】コンテンツマネージャがサーバマネージャに情報を掲載する処理の実施形態を示すフローチャート。
【図14】別々のポート経由で接続される複数のプロバイダを示す、コンテンツ交換部の実施形態を示すブロック図。
【図15】別々のアドレス経由で接続される複数のプロバイダを示す、コンテンツ交換部の他の実施形態を示すブロック図。
【図16】プロバイダとコンテンツ交換のグループ化の実施形態を示す階層表現。
【図17】プロバイダとコンテンツ交換のグループ化の他の実施形態を示す階層表現。
Claims (20)
- 複数のコンテンツ交換部から遠隔の箇所にステータス情報を報告するためのシステムであって、
第1の組をなす複数のコンテンツオブジェクト部分からなる第1のコンテンツ交換部と、
第2の組をなす複数のコンテンツオブジェクト部分からなる第2のコンテンツ交換部と、
遠隔の箇所にあるサーバと、同サーバは前記第1の複数のコンテンツオブジェクト部分の第1サブセットと前記第2の複数のコンテンツオブジェクト部分の第2サブセットとからなることと、
前記第1サブセットの第1カタログを前記第1コンテンツ交換部と前記サーバとの間で伝送する第1のデータリンクと、
前記第2サブセットの第2カタログを前記第2コンテンツ交換部と前記サーバとの間で伝送する第2のデータリンクとからなるシステム。 - 前記第1カタログ及び第2カタログは複数のエントリからなる、複数のコンテンツ交換部から遠隔の箇所にステータス情報を報告するための請求項1に記載のシステム。
- 前記複数のエントリのうちの少なくとも1つはコンテンツオブジェクトのファイル名と、パスと、サーバ名とからなる、複数のコンテンツ交換部から遠隔の箇所にステータス情報を報告するための請求項2に記載のシステム。
- 前記第1のデータリンク及び第2のデータリンクの少なくとも1つはインターネットを通じて伝送する、複数のコンテンツ交換部から遠隔の箇所にステータス情報を報告するための請求項1に記載のシステム。
- 前記サーバが利用不能になったときに前記第1の複数のコンテンツオブジェクト部分の第1サブセットは前記第1コンテンツ交換部から消去される、複数のコンテンツ交換部から遠隔の箇所にステータス情報を報告するための請求項1に記載のシステム。
- 前記第1のデータリンクは前記第1コンテンツ交換部に関するステータス情報を送信する、複数のコンテンツ交換部から遠隔の箇所にステータス情報を報告するための請求項1に記載のシステム。
- 前記第1のコンテンツ交換部及び第2のコンテンツ交換部の少なくとも1つは前記サーバの稼動状態をチェックする、複数のコンテンツ交換部から遠隔の箇所にステータス情報を報告するための請求項1に記載のシステム。
- 複数のコンテンツ交換部から遠隔の箇所にステータス情報を報告するための方法であって、
第1の遠隔の箇所にある第1サーバに関連された第1の組をなす複数のコンテンツオブジェクト部分の第1カタログを決定するステップと、
第2の遠隔の箇所にある第2サーバに関連された第2の組をなす複数のコンテンツオブジェクト部分の第2カタログを決定するステップと、
前記第1カタログを前記第1の遠隔箇所に伝送するステップと、
前記第2カタログを前記第2の遠隔箇所に伝送するステップと、
前記第1カタログ及び第2カタログのうちの一方への変更を検出するステップと、
同変更を前記第1の遠隔箇所及び第2の遠隔箇所のうちの一方へ伝送するステップとからなる方法。 - 前記第1サーバが利用不能であることを判定するステップと、
同第1サーバが利用不能であるとの判定に応答して前記第1の複数のコンテンツオブジェクト部分を消去するステップとをさらに有する、複数のコンテンツ交換部から遠隔の箇所にステータス情報を報告するための請求項8に記載の方法。 - 前記第1サーバ及び第2サーバに所定の間隔をもってステータス情報を報告するステップをさらに有する、複数のコンテンツ交換部から遠隔の箇所にステータス情報を報告するための請求項8に記載の方法。
- あるコンテンツ交換部が近い将来に利用不能となることを前記第1サーバ及び第2サーバに対して報告する、複数のコンテンツ交換部から遠隔の箇所にステータス情報を報告するための請求項8に記載の方法。
- プリロードの命令を受信するステップと、
同プリロード命令受信ステップに応答して、リモートサーバから少なくとも1つのコンテンツオブジェクト部分をプリロードするステップとをさらに有した、複数のコンテンツ交換部から遠隔の箇所にステータス情報を報告するための請求項8に記載の方法。 - コンテンツ交換部が利用不能となったときにコンテンツロケーションデータベースから消去するステップをさらに有した、複数のコンテンツ交換部から遠隔の箇所にステータス情報を報告するための請求項8に記載の方法。
- 前記伝送ステップはインターネットを通じた伝送からなる、複数のコンテンツ交換部から遠隔の箇所にステータス情報を報告するための請求項8に記載の方法。
- コンテンツ配信システムにおいて情報をトラッキングするための方法であって、
第1のリモートコンピュータから第1のコンテンツオブジェクト部分の第1コンテンツカタログを受信するステップと、
第2のリモートコンピュータから第2のコンテンツオブジェクト部分の第2コンテンツカタログを受信するステップと、
前記第1コンテンツカタログ及び第2コンテンツカタログからの情報をもってコンテンツデータベースを更新するステップと、
前記第1コンテンツカタログとは異なる第3コンテンツカタログを前記第1リモートコンピュータから受信するステップと、
前記第2コンテンツカタログとは異なる第4コンテンツカタログを前記第2リモートコンピュータから受信するステップと、
前記第3コンテンツカタログ及び第4コンテンツカタログからの情報をもってコンテンツデータベースを更新するステップとからなる方法。 - 前記第1のリモートコンピュータおよび第2のリモートコンピュータのうちの1つが利用不能のときに前記コンテンツデータベースを更新するステップをさらに有する、コンテンツ配信システムにおいて情報をトラッキングするための請求項15に記載の方法。
- 前記第1リモートコンピュータ及び第2リモートコンピュータの1つに関するステータス情報を送信するステップをさらに有する、コンテンツ配信システムにおいて情報をトラッキングするための請求項15に記載の方法。
- 前記第1コンピュータ及び第2コンピュータにステータス情報を提供するステップをさらに有する、コンテンツ配信システムにおいて情報をトラッキングするための請求項15に記載の方法。
- 近い将来での利用不能を前記第1コンピュータ及び第2コンピュータに対して通知するステップをさらに有する、コンテンツ配信システムにおいて情報をトラッキングするための請求項15に記載の方法。
- 前記第1コンピュータ及び第2コンピュータから近い将来における利用不能の通知を受信するステップをさらに有する、コンテンツ配信システムにおいて情報をトラッキングするための請求項15に記載の方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US20900700P | 2000-06-01 | 2000-06-01 | |
US66414700A | 2000-09-18 | 2000-09-18 | |
PCT/US2001/017900 WO2001093537A2 (en) | 2000-06-01 | 2001-06-01 | Content tracking |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004514961A true JP2004514961A (ja) | 2004-05-20 |
Family
ID=26903730
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001588202A Pending JP2004514961A (ja) | 2000-06-01 | 2001-06-01 | コンテンツのトラッキング |
Country Status (8)
Country | Link |
---|---|
EP (1) | EP1287452A2 (ja) |
JP (1) | JP2004514961A (ja) |
KR (1) | KR20030022805A (ja) |
CN (1) | CN1529860A (ja) |
AR (1) | AR030286A1 (ja) |
AU (1) | AU2001275161A1 (ja) |
CA (1) | CA2410959A1 (ja) |
WO (1) | WO2001093537A2 (ja) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100401679C (zh) * | 2004-07-13 | 2008-07-09 | 华为技术有限公司 | 在线跟踪业务流程的方法 |
CA2631197C (en) | 2005-11-28 | 2013-01-29 | Commvault Systems, Inc. | Systems and methods for data management |
US8930496B2 (en) | 2005-12-19 | 2015-01-06 | Commvault Systems, Inc. | Systems and methods of unified reconstruction in storage systems |
US20200257596A1 (en) | 2005-12-19 | 2020-08-13 | Commvault Systems, Inc. | Systems and methods of unified reconstruction in storage systems |
US7882077B2 (en) * | 2006-10-17 | 2011-02-01 | Commvault Systems, Inc. | Method and system for offline indexing of content and classifying stored data |
US8370442B2 (en) | 2008-08-29 | 2013-02-05 | Commvault Systems, Inc. | Method and system for leveraging identified changes to a mail server |
US20080228771A1 (en) | 2006-12-22 | 2008-09-18 | Commvault Systems, Inc. | Method and system for searching stored data |
JP2009003552A (ja) * | 2007-06-19 | 2009-01-08 | Funai Electric Co Ltd | 通信端末 |
US8442983B2 (en) | 2009-12-31 | 2013-05-14 | Commvault Systems, Inc. | Asynchronous methods of data classification using change journals and other data structures |
KR101044928B1 (ko) * | 2010-07-21 | 2011-06-28 | 권혁호 | 악취를 제거할 수 있는 구조의 이동식 화장실 |
US8719264B2 (en) | 2011-03-31 | 2014-05-06 | Commvault Systems, Inc. | Creating secondary copies of data based on searches for content |
US8892523B2 (en) | 2012-06-08 | 2014-11-18 | Commvault Systems, Inc. | Auto summarization of content |
US10540516B2 (en) | 2016-10-13 | 2020-01-21 | Commvault Systems, Inc. | Data protection within an unsecured storage environment |
US10984041B2 (en) | 2017-05-11 | 2021-04-20 | Commvault Systems, Inc. | Natural language processing integrated with database and data storage management |
US20190251204A1 (en) | 2018-02-14 | 2019-08-15 | Commvault Systems, Inc. | Targeted search of backup data using calendar event data |
US10642886B2 (en) | 2018-02-14 | 2020-05-05 | Commvault Systems, Inc. | Targeted search of backup data using facial recognition |
US11159469B2 (en) | 2018-09-12 | 2021-10-26 | Commvault Systems, Inc. | Using machine learning to modify presentation of mailbox objects |
US11494417B2 (en) | 2020-08-07 | 2022-11-08 | Commvault Systems, Inc. | Automated email classification in an information management system |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6098096A (en) * | 1996-12-09 | 2000-08-01 | Sun Microsystems, Inc. | Method and apparatus for dynamic cache preloading across a network |
US5944780A (en) * | 1997-05-05 | 1999-08-31 | At&T Corp | Network with shared caching |
US6185598B1 (en) * | 1998-02-10 | 2001-02-06 | Digital Island, Inc. | Optimized network resource location |
-
2001
- 2001-05-31 AR ARP010102609A patent/AR030286A1/es unknown
- 2001-06-01 JP JP2001588202A patent/JP2004514961A/ja active Pending
- 2001-06-01 EP EP01941839A patent/EP1287452A2/en not_active Withdrawn
- 2001-06-01 KR KR1020027016437A patent/KR20030022805A/ko not_active Application Discontinuation
- 2001-06-01 CN CNA018132146A patent/CN1529860A/zh active Pending
- 2001-06-01 WO PCT/US2001/017900 patent/WO2001093537A2/en not_active Application Discontinuation
- 2001-06-01 CA CA002410959A patent/CA2410959A1/en not_active Abandoned
- 2001-06-01 AU AU2001275161A patent/AU2001275161A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
AR030286A1 (es) | 2003-08-20 |
AU2001275161A1 (en) | 2001-12-11 |
KR20030022805A (ko) | 2003-03-17 |
WO2001093537A3 (en) | 2002-07-18 |
EP1287452A2 (en) | 2003-03-05 |
CA2410959A1 (en) | 2001-12-06 |
WO2001093537A2 (en) | 2001-12-06 |
CN1529860A (zh) | 2004-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4732667B2 (ja) | 選択的ルーティング | |
JP2004501559A (ja) | ビューワオブジェクトプロキシ | |
JP2004513411A (ja) | コンテンツ交換装置 | |
JP2004509485A (ja) | リバースコンテンツハーベスタ | |
JP2004509381A (ja) | 自己発行ネットワークディレクトリ | |
JP2003535396A (ja) | Qosベースのコンテンツ配信ネットワーク | |
JP2004514961A (ja) | コンテンツのトラッキング | |
JP2004507806A (ja) | クライアント側の全体的健康チェック | |
JP2004511835A (ja) | コンテンツオブジェクトのためのアクティブディレクトリ | |
JP2004508614A (ja) | コンテンツマネージャ | |
JP2004511117A (ja) | クライアント側アドレスルーティング解析 | |
JP2004501443A (ja) | クライアントの側の決定論的ルーティングおよびトランスペアレントなあて先変更 |