JP2004511116A - ネットワークアドレス指定のためのシステム - Google Patents
ネットワークアドレス指定のためのシステム Download PDFInfo
- Publication number
- JP2004511116A JP2004511116A JP2001588192A JP2001588192A JP2004511116A JP 2004511116 A JP2004511116 A JP 2004511116A JP 2001588192 A JP2001588192 A JP 2001588192A JP 2001588192 A JP2001588192 A JP 2001588192A JP 2004511116 A JP2004511116 A JP 2004511116A
- Authority
- JP
- Japan
- Prior art keywords
- content
- address
- port
- protocol
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/30—Routing of multiclass traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
-
- 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
- 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/30—Managing network names, e.g. use of aliases or nicknames
-
- 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/1066—Session management
- H04L65/1101—Session protocols
-
- 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
-
- 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
-
- 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/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
-
- 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/30—Types of network names
- H04L2101/33—Types of network names containing protocol addresses or telephone numbers
-
- 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/659—Internet protocol version 6 [IPv6] addresses
-
- 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
- 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/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
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/24—Negotiation of communication capabilities
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/329—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Business, Economics & Management (AREA)
- Business, Economics & Management (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Preparation Of Compounds By Using Micro-Organisms (AREA)
Abstract
クライアントコンピュータにコンテンツオブジェクトを配信することに関するシステム。1つのシステムは、サーバ、第1のコンテンツキャッシュ、第2のコンテンツキャッシュ及び優先リストからなる。第1のサーバは第1のアドレスに存在し、第2のサーバは第2のアドレスに存在する。サーバは、第1及び第2のコンテンツキャッシュにコピーされているコンテンツオブジェクトを有する。優先リストは、クライアントコンピュータで生成されたものであって、第1及び第2のアドレスを少なくとも1つ有する。多重アドレスシステムは、メタデータを提供し、これにオブジェクトの第1の場所が結合される。このアドレスにポートIDを付加して、参照される所望のポートを生成することが可能となる。ポートIDによって、問い合わせに応答して所定のポートに送信できるようになる。
Description
【0001】
本出願は、2000年7月1日に出願された米国仮特許出願第60/209,007号及びに2000年9月18日に出願された米国特許出願第09/665,204号の利益を主張する。
【0002】
本発明は、一般にインターネットで使用されるアドレスを供給するためのシステムに関する。より詳細には、本発明は、対象となるオブジェクトの供給元を複数設けることが可能なようにアドレス情報を設定するための方法に関する。
【0003】
(背景)
ウェブページ、ダウンロード用の文書、ストリーミング用の動画ファイル等のオブジェクトのアドレスを指定するための従来の方式では、静的なフォーマット又はプロトコルが用いられる。このアドレスフォーマットでは、オブジェクトの1つの場所のみが特定される。このため、オブジェクトを見つけ出せるかどうかは、静的なフォーマットで指定されたアドレスにオブジェクトが依然として存在することにかかっている。しかし、時として、特にインターネットにおいては、一定の期間しかオブジェクトが特定のアドレスに存在しないことがある。一定期間が経過すると、オブジェクトがこの特定のアドレスから削除される。したがって、このアドレスを指定してオブジェクトを見つけ出そうとすると、そのアドレスにはもはやアクセスできない旨のエラーメッセージや、そのオブジェクトを利用できない旨のエラーメッセージが表示されることがよくある。
【0004】
さらに、この種のアドレスは、オブジェクトに対する1つのアドレスのみを特定する。しかし、特にインターネット上では、情報すなわちオブジェクトのコンテンツが複数の場所に存在することがある。例えば、動画ファイルなどのオブジェクトが複数のサーバに存在することがある。静的なアドレス指定フォーマットでは、複数の場所のうちの1つしかオブジェクトのアドレスとして指定できないため、指定されたアドレスからオブジェクトが削除されると、ユーザはそのアドレスを使用してそのオブジェクトにアクセスすることができなくなる。
【0005】
(概要)
本発明の一実施形態においては、プロトコルIDを含むアドレスがポートIDとともに使用される。同アドレスと同ポートIDとが結合され、1つのアドレス文字列が生成される。
【0006】
本発明の別の実施形態においては、データ構造が提供される。同データ構造は、プロトコルIDフィールド、IP IDフィールド、サーバIDフィールド、サーバポートフィールド及びファイル指定フィールドを含む。
【0007】
本発明のさらに別の実施形態においては、要求部によってポートIDがアドレスの一部として与えられる。同アドレスが仲介装置に送信されて、仲介装置はポートIDをデータ提供装置に送信する。データ提供装置は、このポートIDを利用して要求部に送信する。
【0008】
(発明の詳細)
本発明は、ネットワーク上のあるオブジェクトのアドレスを動的に指定可能なアドレス指定方式を実現するためのシステムを提供する。一実施形態においては、第1のアドレスと、オブジェクトに関するメタデータとを結合させて第3のアドレスを生成するための方法が提供される。この第3のアドレスも、このオブジェクトのアドレス指定に使用することが可能である。本発明は、様々な状況で利用可能である。本発明を使用可能な状況の例として、インターネットにおけるビデオコンテンツの配信がある。したがって、本発明を実現するための状況を示すべく、先ず本発明の種々の実施形態を使用可能なシステムについて記載する。次に、アドレス指定システムを詳細に説明する。
【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は、ユーザが一定の制約において要望する品質に基づき、ユーザが主観的に決定する。例えば、オーディオクリップのために、28Kbps、56Kbps、128Kbpsでのストリームの選択肢があるとき、400Kbpsのネットワーク接続と高速コンピュータを有するユーザは、その中から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つ下の階層レベルで、ユーザは、サンディエゴチャージャーズ(TM)を選択して、関連したコンテンツオブジェクトのリンクである別のページを見ることがある。
【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によってアクティブディレクトリ104に送信され、サーバデータベース228に登録される。可及的に最新のディレクトリ情報を保つために、ローカルコンテンツカタログ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】
クライアントコンピュータ112はルーティングデータベース234の更新をダウンロードして、ローカルに記憶する。外部オリジンサーバ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は、コンテンツ記憶部412内のその時点でのアイテムやコンテンツ交換部116のステータス情報をシステム100に報告する。ローカルコンテンツカタログ416は、コンテンツ記憶部412内にある各コンテンツオブジェクト又はコンテンツオブジェクトの部分について、オリジンサーバネーム、パス、及びファイルネームを記憶する。コンテンツ記憶部412に新規アイテムを追加し、古いアイテムを削除することによって、ローカルコンテンツカタログ416が更新される。コンテンツマネージャ312がシステム100に接続したときには、全てのコンテンツトラッカー404に問い合わせて、コンテンツオブジェクトのどのような部分がコンテンツ記憶部412に記憶されているかを判定する。最初の問合せは、コンテンツ記憶部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のディレクトリページ216、検索ページ212に導く、ステップ704で開始する。この実施形態では、ユーザは、ステップ708で、ブールクエリを使用して検索ページ216上の検索エンジンに問い合わせして、コンテンツオブジェクトを探し出す。ステップ712で検索エンジンはサーバデータベース228でヒットを検索し、またクローリングディレクトリ124を検索してもよい。代替手段として、ユーザは、ディレクトリページ212をナビゲートして、所望のコンテンツオブジェクトを探し出すことができる。
【0088】
ステップ716で検索ページ216又はディレクトリページ212は、ユーザが選択する可能性があるコンテンツオブジェクトへのそれぞれのリンクを示す。各リンクは、コンテンツオブジェクトについてのオリジンサーバネーム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】
(アドレス指定システム)
本発明の一実施形態は、多重アドレスシステムを提供する。このシステムを利用すれば、あるオブジェクトの存在場所を示すアドレスに加えて、そのオブジェクトに関する付加的な情報を与えることができる。このような付加的な情報の例として、本来のアドレスが示すオブジェクトが別に存在する場所がある。このため、オブジェクトに関する情報と本来のアドレスとを結合することにより、オブジェクトのアドレス指定に説明的な態様が与えられる。
【0096】
次に図8を参照する。本発明の一実施形態の実現方法の1つが示されている。方法800では、810においてオブジェクトに第1のアドレスを与える。第1のアドレスのほか、812において、このオブジェクトの特徴を表すメタデータを与える。ここでメタデータとは、オブジェクトの第1のアドレス以外の情報であって、第1のアドレスによりアドレス指定されるオブジェクトの特徴を表すものを指す。したがって、このメタデータは、第1のアドレスによってアドレス指定されるオブジェクトが別に存在する場所、すなわちアドレスとなることもある。また、このような代替アドレスは、そのオブジェクトが発生した元のアドレス、すなわち発生元であってもよい。さらに、メタデータは、アドレス指定されるオブジェクトに関するその他の特徴を表す情報であってもよい。このようなメタデータは、必ずしも1つの特徴に限られるよう意図されるものではなく、複数の異なる特徴を含むこともある。814において、メタデータの少なくとも一部を、元のアドレスの少なくとも一部に追加する。これを実現するために、816においてオブジェクトを識別するメタデータを使用してもよい。さらに、上記のように、820においてこのメタデータがオブジェクトの発生元を示すこともある。
【0097】
図9に、本発明の別の実施形態を示す。方法900では、904においてオブジェクトのアドレスを受け取る。908において、オブジェクトの識別に使用可能な新しいアドレスを生成するように、このアドレスを再構成する。アドレスを再構成する際には、元のアドレスの少なくとも一部を利用するほか、このオブジェクトに関するメタデータも利用して再構成されたアドレスを生成する。メタデータがオブジェクトの発生元を表していることがある。別法として、メタデータがオブジェクトの情報コンテンツの別のソースを表すこともある。さらに、メタデータがオブジェクトに関するその他の情報を含むこともある。
【0098】
図8,9においては、種々の方法によって新規アドレスをフォーマットすることが可能である。図10に、新しいアドレスを構成する方法の例を示す。図10において、方法1000はこのようなフォーマットを表す。1004において、新しいアドレスの一部として用いられるプロトコルIDを与える。上記の実施形態においては、プロトコルは、IPを介してリアルタイムにマルチメディアをパケットでストリーミングするための標準であるリアルタイムストリーミング転送プロトコル(RTSP)となることがある。ハイパーテキスト文書をインターネットで転送するための転送プロトコルであるハイパーテキスト転送プロトコル(HTTP)など、通常の技術を有する当業者によって容易に理解される代替プロトコルであってもよい。また、既存のプロトコル、将来登場するプロトコルを問わず、別のプロトコルも利用できる。さらに、1008において、新しいアドレスの一部としてドメインネームを与えることもある。このドメインネームの例として、現在インターネットで用いられている汎用のトップレベルドメイン(TLD)ネームがある。また、1012において、新しいアドレスの一部としてオブジェクトにディレクトリネームを与えることもある。このディレクトリネームは、上記のドメインネームを提供しているサーバに存在するディレクトリであってもよい。さらに、1016において、新しいアドレスの一部としてオブジェクトにファイルネームを与えることもある。最後に、これまでに挙げたアドレスの要素のほか、メタデータ情報を組み込み、単一のアドレスが生成されることがある。このため、標準のユニフォームリソースロケータ(URL)アドレスとしてアドレスを構成した場合、所定のフォーマットに従ってアドレスの種々の要素を並び替える際に、メタデータが無視されることがある。ただし、新しいアドレスを動的アドレスとして構成する場合にはメタデータが利用される。
【0099】
図11に、本発明のさらに別の実施形態である方法1100を示す。図11の1104において、オブジェクトが以前に存在していた場所を示す第1のアドレスを与える。したがって、この第1のアドレスにオブジェクトが存在している場合もあれば、このアドレスにオブジェクトが存在しない場合もある。インターネットでは、長時間が経過してオブジェクトがユーザの多くの関心を引かなくなったために、そのオブジェクトがサーバから削除される場合がある。このため、オブジェクトを発見できない旨のエラーメッセージや、アドレス指定されたオブジェクトを発見できない旨のエラーメッセージがユーザに対して表示されることがある。1108において、オブジェクトの複製の少なくとも一部が存在する場所を表す第2のアドレスを与える。この第2のアドレスは、そのオブジェクトが発生した発生元を示していることがある。別法として、この第2のアドレスは、オブジェクト或いはオブジェクト情報の一部が別に記憶されている場所を示していることがある。1112において、第1のアドレスに由来する情報と第2のアドレスに由来する情報とを結合して、第3のアドレスを生成する。この第3のアドレスはオブジェクトが以前に存在していた場所を示す第1のアドレスのほか、オブジェクトの複製の少なくとも一部が存在する第2のアドレスをも表すようにフォーマットされる。この第3のアドレスを使用して、第1のアドレスからオブジェクトの取得を試みることが可能である。さらに、第2のアドレスからのオブジェクト情報の取得を試みるために、第3のアドレスを利用することができる。したがって、第1のアドレスからオブジェクトを取得しようと試みたが、そのオブジェクトが第1のアドレスから削除されていたため取得できないことがある。続いて、第3のアドレスを使用して、第2のアドレスが表す場所に移動し、オブジェクトを見つけ出そうと再度試みることができる。場合によっては、オブジェクト情報が複数の場所に分散していることがある。このような場合、第2のアドレスを用いてオブジェクト又はオブジェクトの一部を収集することができる。
【0100】
図12A,12Bに、本発明の別の実施形態である方法1200を示す。方法1200の1204において、オブジェクトが存在するとされている場所を示すアドレスを受け取る。オブジェクトの発生元に由来するオブジェクトの複製が存在する場所を示す第2のアドレスを受け取る。ここでオブジェクトの複製すなわちコピーとは、オブジェクトの複製が元のオブジェクトと同一の情報を含んでいるものを指す。オブジェクトは、実際には複製からコピーされることもある。このため、複製はオブジェクトの発生元になり得る。さらに、通常の技術を有する当業者によって理解されるように、オブジェクトとは、動画などの1つのまとまった情報又はメディアデータの集合体を指すこともある。
【0101】
1212において、第1のアドレスに由来する情報と第2のアドレスに由来する情報とを結合して、第3のアドレスを生成する。1216において、第1のアドレスと第2のアドレスの両方を識別するために利用できるように、第3のアドレスを生成することがある。1220において、第3のアドレスの一部をURLフォーマットにフォーマットすることがある。ブロック1224において、フォーマットされた第3のアドレスを用いて、オブジェクトに対する要求を要求装置から受信することがある。このような要求の例として、インターネットを介してユーザが動画を要求する場合がある。1228において、第3のアドレスを用いて、第1のアドレスに存在するオブジェクトにアクセスしようと試みることがある。このため、ユーザは、第3のアドレスのフォーマットが、所望のオブジェクトの複数の候補のアドレスを識別するアドレスであると認識しているサーバに第3のアドレスを送信することがある。このためサーバは、まず第3のアドレスに埋め込まれている第1のアドレスからオブジェクトを取得しようと試みる。この試みが失敗すると、1232において、サーバは、第3のアドレスに埋め込まれている第2のアドレスを用いて、オブジェクトの複製にアクセスしようと動的に試みる。したがって、第3のアドレスに埋め込まれている第2のアドレスは、所望のオブジェクトのバックアップソースとなる。さらに、第2のアドレスにオブジェクトの全体が記憶されていない場合、第2のアドレスによって、オブジェクトの一部が提供されるか、或いはオブジェクト情報の代替ソースへのリンクが提供されることがある。例えば、オブジェクトが第2のアドレスで発見されると、1236において、オブジェクトの複製情報を第2のアドレスから取得する。次に、1240において、オブジェクトを要求したユーザにサーバを介してこの情報を返すことがある。さらに、1244において、元のアドレスすなわち第1のアドレスにオブジェクトの複製を送信して、元のアドレスにこのオブジェクトをコピーして、以後転送が効率的に行なわれるようにすることがある。
【0102】
図13に、第1のアドレスと第2のアドレスとを結合して、動的な第3のアドレスを生成する例を示す。図13において、第1のアドレスはRTSP://serverl.aerocast.com/foo.movである。このアドレスは、静的なアドレス指定方式における一般的なURLフォーマットである。第2のアドレスは、1308に示すRTSP://server2.aerocast.conilfoo.movのようなフォーマットとなる。ユーザに対してファイル「foo.mov」の1つの場所を識別しているという点で、第1及び第2のアドレスはいずれも静的である。このようなフォーマットでは、foo.movファイルの別の場所やこのファイルの特徴を表すメタデータは提供されていない。これに対して、第3のアドレスは、上記2つのアドレスを示す動的なフォーマットで表される。ブロック1312に示すように、第1のアドレスと第2のアドレスとが結合されて、RTSP://serverl.server2.aerocast.coml foo.movという第3のアドレスになる。このため、多重アドレスシステムにおいてこの種のアドレスを受け取るサーバは、サーバ1がドメインaerocast.comに存在する第1のサーバであって、ここにアクセスすれば、ファイルfoo.movへのアクセスを試みることができると認識している。第1のサーバにアクセスできない場合は、aerocast.comドメインに存在するサーバ2がfoo.movファイルの代替ソースとなる。このため、foo.movファイルの代替場所が、メタデータ「server 2」によって提供される。
【0103】
このような多重アドレスシステムは、図1〜7A,7Bに示したシステムで利用可能である。例えば、図2に示す動的DNS 204のブロックは、システムの他の要素から要求される各種メディア素材のアドレスを指定する上での動的機能を提供する上で有用である。図6に示すように、動的ドメインネームシステム(DNS)は、動画の発生元を取得して、その動画の最新のアドレスとされているアドレスと動画の発生元のアドレスを結合して第3のアドレスを生成する。ユーザが特定の動画を所望する場合、動的な第3のアドレスに埋め込まれている第1のアドレスから動画を取得しようと先ず試みる。この試みが失敗すると、第3のアドレスから、埋め込まれている第2のアドレスが表している、動画の元のソースにアクセスすべきことがわかる。したがって、動的DNSは、ファイルの現在の場所(或いは現在の場所とされている場所)と、そのファイルの元のソースとを結合するデータベースの役割を果たし得る。
【0104】
さらに、第2のアドレスが埋め込まれているフィールドを無視することによって、この多重アドレスシステムを標準の静的アドレス指定システムとして利用することもできる。すなわち、アドレスを標準URLでフォーマットし、これにURLフォーマットでは無視される場所を指す第2のアドレスを追加すれば、第2のアドレスを、URLアドレス指定システムからは見えないアドレスとすることができる。
【0105】
(ポートのアドレス指定)
アドレスに含むことができるメタデータの例として、アドレス文字列にポートIDを含める例がある。ポートによって、所定のプロトコルでメッセージを処理するアプリケーションプログラムが特定される。例えば、ハイパーテキスト転送プロトコル(HTTP)が用いられている場合、アプリケーションは「ポート80」と関連している。したがって、標準の設定では、要求装置が「http://」で始まるアドレスを受信した場合、受信装置は、ポート80に関連するアプリケーション、つまりHTTPを処理するアプリケーションにこのアドレス情報を送信する。同様に、受信装置が要求装置に応答する場合、httpプロトコルに従って応答をフォーマットする。図14にこのようなシステムの例を示す。
【0106】
図14において、要求部1410は仲介装置1450にアドレスを送信する。この仲介装置はキャッシングサーバ又はルータなどであって、提供部1490などの、必要なデータを提供できる別の装置から所望の情報を要求する必要があるか否かを判定する。この例では、要求部1410はHTTPプロトコルを使用して仲介装置1450に送信するのに対し、仲介装置1450はRTSPプロトコルを使用して提供部1490に送信する。仲介装置1450が必要なデータを要求すると、提供部1490は、提供部への送信に使用されたものと同じプロトコルで応答する。したがって、この例では、提供部1490はRTSPプロトコルに従って応答する。仲介装置は、アドレス内のRTSPヘッダを認識し、このアドレスをポート3080が指定されているアプリケーションプログラムに送信する。次に仲介装置は、HTTPプロトコルを用いてこの情報を要求部1410に送信する。これは、要求部1410が仲介装置1450のアドレスを指定するために使用したプロトコルがHTTPプロトコルであるからである。このため、装置の組み合わせが変更されない限り、このシステムでは、正しいプロトコルによってデータが転送される。ただし、要求されたデータが要求部に返されるときに別のデータパスが使用されると問題が生ずる。つまり、提供部1490がネットワークを介して要求部1410に直接応答しようとした場合、標準の設定では、提供部1490はRTSPフォーマットで応答をフォーマットする。生成された応答は要求部のポート3080に送られる。しかし、要求部1410は、HTTPプロトコルに関連するポートであるポート80でデータを受信することを予期している。このため、直接接続が試みられた場合は、要求されたデータが要求装置に正しく送信されなくなる。
【0107】
図15に、複数のデータパスを使用可能な本発明の一実施形態を示す。図15において、要求部1510は仲介装置1550に送信する。要求部は、アドレス文字列の一部に第1のプロトコル(図15に「プロトコルID#1」として記載)を用いる。また、要求部はポートID(「ポートID#1」として記載)を図15のアドレス文字列に含める。例えば、要求部はプロトコルIDにHTTPを、ポートIDにポート80を用いる。次に仲介装置は、この要求を処理し、提供装置1590にこのアドレスを送信する。このアドレスを送信する際に、仲介装置は、図15のアドレス文字列内で第2のプロトコル(「プロトコルID#2」)にフォーマット変換する。しかし、仲介装置は、アドレス文字列の一部にポートID#1を含める。例えば、仲介装置1550は、第2のプロトコルとしてRTSPを、メタデータとしてポート80をアドレス文字列に用いることがある。これにより、提供部は、要求部1510に要求を直接送信するために使用可能なプロトコルを認識する。この直接送信は、提供部1590から要求部1510に向かう線で表されている。この例では、提供装置1590に送信されたポート80に関連するプロトコルはHTTPであるため、このようなアドレスはHTTPを用いる。したがって、図15は、アドレス文字列の一部としてポート情報を送信可能なシステムを示す。この図はまた、帰りのデータパスにおいて仲介装置を省略するための方法をも示す。
【0108】
図16に、メタデータアドレス用のデータ構造を提供する本発明の一実施形態を示す。図16に、アドレス文字列1600を示す。同アドレス文字列は、プロトコルIDフィールド1610、ネットワーク機器IDフィールド1620、メタデータフィールド1630及びファイルネームフィールド1640からなる。TCP/IPフォーマットで使用されるアドレスの例を図17に示す。図17に示したアドレスは、プロトコルとしてHTTPを用いたアドレスを示す。ネットワーク機器IDは、インターネットプロトコル(IP)アドレス「204.162.80.181」で示されている。この例では、メタデータフィールドは「PCN_000.80.」である。「PCN_000」は、ヘッダ情報と代替サーバIDを表すことがある。「80」はポートIDの例である。「FOO.DAT」はIPアドレス「204.162.80.181」から要求されているファイルの名前である。したがって、図17に示した例は、サーバIDとポートIDの両者からなるメタデータを与えるアドレスである。上で説明したように、メタデータの一部としてサーバIDのみを含めることもある。同様に、メタデータの一部としてポートIDのみを含めることもある。
【0109】
図18に、本発明の一実施形態を実現するための方法1800を示す。図18のブロック1810において、プロトコルIDからなるアドレスを与える。ブロック1820において、ポートIDを与える。ブロック1830において、ポートID及びアドレス文字列を、1つのアドレス文字列の一部として含める。
【0110】
図19A,l9Bに、本発明の他の実施形態を示すフローチャート1900を示す。ブロック1910においてサーバが提供される。ブロック1914において、HTTP、RTSP、FTP、SMTP、TelnetなどのプロトコルIDを与える。プロトコルIDは、オブジェクトと共に使用されるプロトコルを識別するアドレスの一部であるとみなすことができる。このようなプロトコルには、HTTP、RTSP、NNTP、FTP、SHOUT、RTP、ACTP、SHTPなどがある。既存のプロトコルの例を挙げたが、別のプロトコルが将来開発される可能性もある。ブロック1918において、サーバなどの通信先の装置を識別するためのネットワーク装置IDを与える。ネットワークアドレスIDは、ネットワークにおいて通信先の装置を識別するアドレスである。このアドレスは、数字形式であっても、テキスト形式であってもよい。例えば、IP Version 4(IPv4)などのインターネットプロトコル(IP)では、4つの数値をピリオドで区切ったアドレス(「128.46.73.208」など)が用いられる。さらに、ルックアップテーブルを使用することで、このようなアドレスをアドレスを入力する際に憶えやすい、「www.aerocast.com」等のテキスト形式のアドレスに変換することが可能となる。アドレス指定システムは選択の問題に過ぎない。しかし、本発明の本実施形態を説明するためにIPv4システムを使用する。だからといって、本実施形態をこの特定のバージョンに限定することを意図するものではないことが理解されるべきである。別の例として、ネットワーク装置IDは「204.162.80.181」などのインターネットプロトコルアドレスであることもあれば、「AEROCAST.COM」などのインターネットのドメインネームシステムにおける相当名であることもある。
【0111】
ブロック1922において、サーバIDを与える。このサーバIDは、データのバックアップ源として機能するサーバ、並びに要求元の要求装置を識別するためのものである。ブロック1926において、ポートIDを与える。上で説明したように、このポートIDにより、データを送信すべき装置のポートを識別できる。ポートIDの例として、HTTP用の「80」、Telnet用の「23」、SMTP(電子メール)用の「25」、及びFTP用の「21」など、「公知の」ポートIDリストに掲載されているものがある。ブロック1930においてファイルIDを与える。
【0112】
ブロック1934において、プロトコルID、ネットワーク機器ID、サーバID、ポートID及びファイルIDを結合する。さらに、ブロック1938に示すように、サーバIDなどの他のメタデータとともにポートIDが配置されるように、これらのフィールドをアドレスとして編成する。
【0113】
ブロック1942において、サーバが仲介装置にこのアドレスを送信する。ブロック1946において、仲介装置がこの要求を受信する。ブロック1950において、仲介装置がデータコンテンツ提供部にこの要求を送信する。この2回の送信のいずれにおいても、他の仲介装置との間で複数の接続が利用されていてもよい。ブロック1954において、コンテンツ提供部がデータに対する要求を受信する。ブロック1958に示すように、この時点でデータを取得することがある。最後にブロック1962において、ポートIDを用い、ポートIDフィールドに従ってサーバのポートにデータ又はその他のメッセージを送信する。
【0114】
本発明を実施するための方法又は装置として、本発明の種々の実施形態を記載した。しかし、コンピュータ上に存在するコード、或いはコンピュータからアクセスされるコードなど、コンピュータと結合されたコードによって本発明を実施可能であることが理解されるべきである。例えば、ソフトウェアとデータベースとを利用して、上記した方法の多くを実施することが可能である。したがって、ハードウェアによって達成される本発明の実施形態に加え、コンピュータに組み込まれる、コンピュータが読み取り可能なプログラムコードを有する、コンピュータが使用可能な媒体からなる製造物を使用することで、これらの実施形態を実現できることが留意される。これによって、本詳細説明に開示された機能が実現可能となる。したがって、上に挙げた実施形態は、プログラムコード手段に存在するものも、本特許によって同様に保護されていると考えることが望ましい。
【0115】
本発明の種々の実施形態は、搬送波に含まれているコンピュータ信号、並びに伝送媒体を介して伝達される電気信号として実現することも可能であることが想到される。したがって、上記の種々の情報は、データ構造などの構造にフォーマットして、電気信号として伝送媒体を介して送信することが可能である。
【0116】
また、本明細書で説明した構造並びに動作の多くは、機能を実施するための手段、又は機能を実施するためのステップとして各々みなすことができる。したがって、これらの用語は、参照によりここに援用される事項も含めて、本明細書に開示されている構造及び動作、並びにその代替物を全て対象としていることを理解すべきである。
【0117】
本発明の種々の実施形態の装置及び方法、並びにその付随的な利点は本明細書から明らかであると考えられる。また、本発明の精神及び範囲から逸脱することなく、かつ本発明の重要な利点を犠牲とすることなく、その構成要素の形状、構成並びに配置に対して種々の変更を行なうことが可能であること、並びに上記の形状は本発明の実施形態の代表例として記載した過ぎないことは明らかであると考えられる。
【図面の簡単な説明】
【図1】コンテンツ配信システムの一実施形態を示すブロック図。
【図2】コンテンツ配信システムのアクティブディレクトリ部分の実施形態を示すブロック図。
【図3A】コンテンツ配信システムのオリジンサーバ部の実施形態を示すブロック図。
【図3B】コンテンツ配信システムの外部オリジンサーバ部の実施例のブロック図。
【図4A】コンテンツ配信システムのコンテンツ交換部の実施形態を示すブロック図。
【図4B】コンテンツ配信システムのコンテンツ交換部の他の実施形態を示すブロック図。
【図4C】複数のコンテンツ交換サーバを有するコンテンツ交換サイトの実施形態を示すブロック図。
【図5】コンテンツ配信システムのクライアントコンピュータ部の実施形態を示すブロック図。
【図6】コンテンツ配信システムの実施形態を示すブロック図。
【図7A】ユーザにコンテンツを配信するための処理の実施形態を示すフローチャートの第1の部分。
【図7B】図7Aのフローチャートの第2の部分。
【図8】本発明の一実施形態の実現方法を示すフローチャート。
【図9】本発明の他の実施形態の実現方法を示すフローチャート。
【図10】本発明の一実施形態のためのフォーマットの実現方法を示すフローチャート。
【図11】本発明の一実施形態の実現方法を示すフローチャート。
【図12A】本発明の一実施形態の実現方法を示すフローチャート。
【図12B】本発明の一実施形態の実現方法を示すフローチャート。
【図13】第1のアドレスと第2のアドレスとを結合して第3のアドレスを生成する操作を示す図。
【図14】同じデータパスを用いて、要求部と提供部との間でデータの要求並びに提供を行なうシステムを示すブロック図。
【図15】複数のデータパスを用いて、データの要求並びに送信を行なうことが可能なポートIDを提供する本発明の一実施形態を示すブロック図。
【図16】メタデータからなるデータ構造を提供するための本発明の一実施形態を示すブロック図。
【図17】図16に示したデータ構造の例を示すブロック図。
【図18】本発明の一実施形態の実現方法を示すブロック図。
【図19A】本発明の一実施形態の実現方法を示すブロック図。
【図19B】本発明の一実施形態の実現方法を示すブロック図。
本出願は、2000年7月1日に出願された米国仮特許出願第60/209,007号及びに2000年9月18日に出願された米国特許出願第09/665,204号の利益を主張する。
【0002】
本発明は、一般にインターネットで使用されるアドレスを供給するためのシステムに関する。より詳細には、本発明は、対象となるオブジェクトの供給元を複数設けることが可能なようにアドレス情報を設定するための方法に関する。
【0003】
(背景)
ウェブページ、ダウンロード用の文書、ストリーミング用の動画ファイル等のオブジェクトのアドレスを指定するための従来の方式では、静的なフォーマット又はプロトコルが用いられる。このアドレスフォーマットでは、オブジェクトの1つの場所のみが特定される。このため、オブジェクトを見つけ出せるかどうかは、静的なフォーマットで指定されたアドレスにオブジェクトが依然として存在することにかかっている。しかし、時として、特にインターネットにおいては、一定の期間しかオブジェクトが特定のアドレスに存在しないことがある。一定期間が経過すると、オブジェクトがこの特定のアドレスから削除される。したがって、このアドレスを指定してオブジェクトを見つけ出そうとすると、そのアドレスにはもはやアクセスできない旨のエラーメッセージや、そのオブジェクトを利用できない旨のエラーメッセージが表示されることがよくある。
【0004】
さらに、この種のアドレスは、オブジェクトに対する1つのアドレスのみを特定する。しかし、特にインターネット上では、情報すなわちオブジェクトのコンテンツが複数の場所に存在することがある。例えば、動画ファイルなどのオブジェクトが複数のサーバに存在することがある。静的なアドレス指定フォーマットでは、複数の場所のうちの1つしかオブジェクトのアドレスとして指定できないため、指定されたアドレスからオブジェクトが削除されると、ユーザはそのアドレスを使用してそのオブジェクトにアクセスすることができなくなる。
【0005】
(概要)
本発明の一実施形態においては、プロトコルIDを含むアドレスがポートIDとともに使用される。同アドレスと同ポートIDとが結合され、1つのアドレス文字列が生成される。
【0006】
本発明の別の実施形態においては、データ構造が提供される。同データ構造は、プロトコルIDフィールド、IP IDフィールド、サーバIDフィールド、サーバポートフィールド及びファイル指定フィールドを含む。
【0007】
本発明のさらに別の実施形態においては、要求部によってポートIDがアドレスの一部として与えられる。同アドレスが仲介装置に送信されて、仲介装置はポートIDをデータ提供装置に送信する。データ提供装置は、このポートIDを利用して要求部に送信する。
【0008】
(発明の詳細)
本発明は、ネットワーク上のあるオブジェクトのアドレスを動的に指定可能なアドレス指定方式を実現するためのシステムを提供する。一実施形態においては、第1のアドレスと、オブジェクトに関するメタデータとを結合させて第3のアドレスを生成するための方法が提供される。この第3のアドレスも、このオブジェクトのアドレス指定に使用することが可能である。本発明は、様々な状況で利用可能である。本発明を使用可能な状況の例として、インターネットにおけるビデオコンテンツの配信がある。したがって、本発明を実現するための状況を示すべく、先ず本発明の種々の実施形態を使用可能なシステムについて記載する。次に、アドレス指定システムを詳細に説明する。
【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は、ユーザが一定の制約において要望する品質に基づき、ユーザが主観的に決定する。例えば、オーディオクリップのために、28Kbps、56Kbps、128Kbpsでのストリームの選択肢があるとき、400Kbpsのネットワーク接続と高速コンピュータを有するユーザは、その中から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つ下の階層レベルで、ユーザは、サンディエゴチャージャーズ(TM)を選択して、関連したコンテンツオブジェクトのリンクである別のページを見ることがある。
【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によってアクティブディレクトリ104に送信され、サーバデータベース228に登録される。可及的に最新のディレクトリ情報を保つために、ローカルコンテンツカタログ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】
クライアントコンピュータ112はルーティングデータベース234の更新をダウンロードして、ローカルに記憶する。外部オリジンサーバ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は、コンテンツ記憶部412内のその時点でのアイテムやコンテンツ交換部116のステータス情報をシステム100に報告する。ローカルコンテンツカタログ416は、コンテンツ記憶部412内にある各コンテンツオブジェクト又はコンテンツオブジェクトの部分について、オリジンサーバネーム、パス、及びファイルネームを記憶する。コンテンツ記憶部412に新規アイテムを追加し、古いアイテムを削除することによって、ローカルコンテンツカタログ416が更新される。コンテンツマネージャ312がシステム100に接続したときには、全てのコンテンツトラッカー404に問い合わせて、コンテンツオブジェクトのどのような部分がコンテンツ記憶部412に記憶されているかを判定する。最初の問合せは、コンテンツ記憶部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のディレクトリページ216、検索ページ212に導く、ステップ704で開始する。この実施形態では、ユーザは、ステップ708で、ブールクエリを使用して検索ページ216上の検索エンジンに問い合わせして、コンテンツオブジェクトを探し出す。ステップ712で検索エンジンはサーバデータベース228でヒットを検索し、またクローリングディレクトリ124を検索してもよい。代替手段として、ユーザは、ディレクトリページ212をナビゲートして、所望のコンテンツオブジェクトを探し出すことができる。
【0088】
ステップ716で検索ページ216又はディレクトリページ212は、ユーザが選択する可能性があるコンテンツオブジェクトへのそれぞれのリンクを示す。各リンクは、コンテンツオブジェクトについてのオリジンサーバネーム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】
(アドレス指定システム)
本発明の一実施形態は、多重アドレスシステムを提供する。このシステムを利用すれば、あるオブジェクトの存在場所を示すアドレスに加えて、そのオブジェクトに関する付加的な情報を与えることができる。このような付加的な情報の例として、本来のアドレスが示すオブジェクトが別に存在する場所がある。このため、オブジェクトに関する情報と本来のアドレスとを結合することにより、オブジェクトのアドレス指定に説明的な態様が与えられる。
【0096】
次に図8を参照する。本発明の一実施形態の実現方法の1つが示されている。方法800では、810においてオブジェクトに第1のアドレスを与える。第1のアドレスのほか、812において、このオブジェクトの特徴を表すメタデータを与える。ここでメタデータとは、オブジェクトの第1のアドレス以外の情報であって、第1のアドレスによりアドレス指定されるオブジェクトの特徴を表すものを指す。したがって、このメタデータは、第1のアドレスによってアドレス指定されるオブジェクトが別に存在する場所、すなわちアドレスとなることもある。また、このような代替アドレスは、そのオブジェクトが発生した元のアドレス、すなわち発生元であってもよい。さらに、メタデータは、アドレス指定されるオブジェクトに関するその他の特徴を表す情報であってもよい。このようなメタデータは、必ずしも1つの特徴に限られるよう意図されるものではなく、複数の異なる特徴を含むこともある。814において、メタデータの少なくとも一部を、元のアドレスの少なくとも一部に追加する。これを実現するために、816においてオブジェクトを識別するメタデータを使用してもよい。さらに、上記のように、820においてこのメタデータがオブジェクトの発生元を示すこともある。
【0097】
図9に、本発明の別の実施形態を示す。方法900では、904においてオブジェクトのアドレスを受け取る。908において、オブジェクトの識別に使用可能な新しいアドレスを生成するように、このアドレスを再構成する。アドレスを再構成する際には、元のアドレスの少なくとも一部を利用するほか、このオブジェクトに関するメタデータも利用して再構成されたアドレスを生成する。メタデータがオブジェクトの発生元を表していることがある。別法として、メタデータがオブジェクトの情報コンテンツの別のソースを表すこともある。さらに、メタデータがオブジェクトに関するその他の情報を含むこともある。
【0098】
図8,9においては、種々の方法によって新規アドレスをフォーマットすることが可能である。図10に、新しいアドレスを構成する方法の例を示す。図10において、方法1000はこのようなフォーマットを表す。1004において、新しいアドレスの一部として用いられるプロトコルIDを与える。上記の実施形態においては、プロトコルは、IPを介してリアルタイムにマルチメディアをパケットでストリーミングするための標準であるリアルタイムストリーミング転送プロトコル(RTSP)となることがある。ハイパーテキスト文書をインターネットで転送するための転送プロトコルであるハイパーテキスト転送プロトコル(HTTP)など、通常の技術を有する当業者によって容易に理解される代替プロトコルであってもよい。また、既存のプロトコル、将来登場するプロトコルを問わず、別のプロトコルも利用できる。さらに、1008において、新しいアドレスの一部としてドメインネームを与えることもある。このドメインネームの例として、現在インターネットで用いられている汎用のトップレベルドメイン(TLD)ネームがある。また、1012において、新しいアドレスの一部としてオブジェクトにディレクトリネームを与えることもある。このディレクトリネームは、上記のドメインネームを提供しているサーバに存在するディレクトリであってもよい。さらに、1016において、新しいアドレスの一部としてオブジェクトにファイルネームを与えることもある。最後に、これまでに挙げたアドレスの要素のほか、メタデータ情報を組み込み、単一のアドレスが生成されることがある。このため、標準のユニフォームリソースロケータ(URL)アドレスとしてアドレスを構成した場合、所定のフォーマットに従ってアドレスの種々の要素を並び替える際に、メタデータが無視されることがある。ただし、新しいアドレスを動的アドレスとして構成する場合にはメタデータが利用される。
【0099】
図11に、本発明のさらに別の実施形態である方法1100を示す。図11の1104において、オブジェクトが以前に存在していた場所を示す第1のアドレスを与える。したがって、この第1のアドレスにオブジェクトが存在している場合もあれば、このアドレスにオブジェクトが存在しない場合もある。インターネットでは、長時間が経過してオブジェクトがユーザの多くの関心を引かなくなったために、そのオブジェクトがサーバから削除される場合がある。このため、オブジェクトを発見できない旨のエラーメッセージや、アドレス指定されたオブジェクトを発見できない旨のエラーメッセージがユーザに対して表示されることがある。1108において、オブジェクトの複製の少なくとも一部が存在する場所を表す第2のアドレスを与える。この第2のアドレスは、そのオブジェクトが発生した発生元を示していることがある。別法として、この第2のアドレスは、オブジェクト或いはオブジェクト情報の一部が別に記憶されている場所を示していることがある。1112において、第1のアドレスに由来する情報と第2のアドレスに由来する情報とを結合して、第3のアドレスを生成する。この第3のアドレスはオブジェクトが以前に存在していた場所を示す第1のアドレスのほか、オブジェクトの複製の少なくとも一部が存在する第2のアドレスをも表すようにフォーマットされる。この第3のアドレスを使用して、第1のアドレスからオブジェクトの取得を試みることが可能である。さらに、第2のアドレスからのオブジェクト情報の取得を試みるために、第3のアドレスを利用することができる。したがって、第1のアドレスからオブジェクトを取得しようと試みたが、そのオブジェクトが第1のアドレスから削除されていたため取得できないことがある。続いて、第3のアドレスを使用して、第2のアドレスが表す場所に移動し、オブジェクトを見つけ出そうと再度試みることができる。場合によっては、オブジェクト情報が複数の場所に分散していることがある。このような場合、第2のアドレスを用いてオブジェクト又はオブジェクトの一部を収集することができる。
【0100】
図12A,12Bに、本発明の別の実施形態である方法1200を示す。方法1200の1204において、オブジェクトが存在するとされている場所を示すアドレスを受け取る。オブジェクトの発生元に由来するオブジェクトの複製が存在する場所を示す第2のアドレスを受け取る。ここでオブジェクトの複製すなわちコピーとは、オブジェクトの複製が元のオブジェクトと同一の情報を含んでいるものを指す。オブジェクトは、実際には複製からコピーされることもある。このため、複製はオブジェクトの発生元になり得る。さらに、通常の技術を有する当業者によって理解されるように、オブジェクトとは、動画などの1つのまとまった情報又はメディアデータの集合体を指すこともある。
【0101】
1212において、第1のアドレスに由来する情報と第2のアドレスに由来する情報とを結合して、第3のアドレスを生成する。1216において、第1のアドレスと第2のアドレスの両方を識別するために利用できるように、第3のアドレスを生成することがある。1220において、第3のアドレスの一部をURLフォーマットにフォーマットすることがある。ブロック1224において、フォーマットされた第3のアドレスを用いて、オブジェクトに対する要求を要求装置から受信することがある。このような要求の例として、インターネットを介してユーザが動画を要求する場合がある。1228において、第3のアドレスを用いて、第1のアドレスに存在するオブジェクトにアクセスしようと試みることがある。このため、ユーザは、第3のアドレスのフォーマットが、所望のオブジェクトの複数の候補のアドレスを識別するアドレスであると認識しているサーバに第3のアドレスを送信することがある。このためサーバは、まず第3のアドレスに埋め込まれている第1のアドレスからオブジェクトを取得しようと試みる。この試みが失敗すると、1232において、サーバは、第3のアドレスに埋め込まれている第2のアドレスを用いて、オブジェクトの複製にアクセスしようと動的に試みる。したがって、第3のアドレスに埋め込まれている第2のアドレスは、所望のオブジェクトのバックアップソースとなる。さらに、第2のアドレスにオブジェクトの全体が記憶されていない場合、第2のアドレスによって、オブジェクトの一部が提供されるか、或いはオブジェクト情報の代替ソースへのリンクが提供されることがある。例えば、オブジェクトが第2のアドレスで発見されると、1236において、オブジェクトの複製情報を第2のアドレスから取得する。次に、1240において、オブジェクトを要求したユーザにサーバを介してこの情報を返すことがある。さらに、1244において、元のアドレスすなわち第1のアドレスにオブジェクトの複製を送信して、元のアドレスにこのオブジェクトをコピーして、以後転送が効率的に行なわれるようにすることがある。
【0102】
図13に、第1のアドレスと第2のアドレスとを結合して、動的な第3のアドレスを生成する例を示す。図13において、第1のアドレスはRTSP://serverl.aerocast.com/foo.movである。このアドレスは、静的なアドレス指定方式における一般的なURLフォーマットである。第2のアドレスは、1308に示すRTSP://server2.aerocast.conilfoo.movのようなフォーマットとなる。ユーザに対してファイル「foo.mov」の1つの場所を識別しているという点で、第1及び第2のアドレスはいずれも静的である。このようなフォーマットでは、foo.movファイルの別の場所やこのファイルの特徴を表すメタデータは提供されていない。これに対して、第3のアドレスは、上記2つのアドレスを示す動的なフォーマットで表される。ブロック1312に示すように、第1のアドレスと第2のアドレスとが結合されて、RTSP://serverl.server2.aerocast.coml foo.movという第3のアドレスになる。このため、多重アドレスシステムにおいてこの種のアドレスを受け取るサーバは、サーバ1がドメインaerocast.comに存在する第1のサーバであって、ここにアクセスすれば、ファイルfoo.movへのアクセスを試みることができると認識している。第1のサーバにアクセスできない場合は、aerocast.comドメインに存在するサーバ2がfoo.movファイルの代替ソースとなる。このため、foo.movファイルの代替場所が、メタデータ「server 2」によって提供される。
【0103】
このような多重アドレスシステムは、図1〜7A,7Bに示したシステムで利用可能である。例えば、図2に示す動的DNS 204のブロックは、システムの他の要素から要求される各種メディア素材のアドレスを指定する上での動的機能を提供する上で有用である。図6に示すように、動的ドメインネームシステム(DNS)は、動画の発生元を取得して、その動画の最新のアドレスとされているアドレスと動画の発生元のアドレスを結合して第3のアドレスを生成する。ユーザが特定の動画を所望する場合、動的な第3のアドレスに埋め込まれている第1のアドレスから動画を取得しようと先ず試みる。この試みが失敗すると、第3のアドレスから、埋め込まれている第2のアドレスが表している、動画の元のソースにアクセスすべきことがわかる。したがって、動的DNSは、ファイルの現在の場所(或いは現在の場所とされている場所)と、そのファイルの元のソースとを結合するデータベースの役割を果たし得る。
【0104】
さらに、第2のアドレスが埋め込まれているフィールドを無視することによって、この多重アドレスシステムを標準の静的アドレス指定システムとして利用することもできる。すなわち、アドレスを標準URLでフォーマットし、これにURLフォーマットでは無視される場所を指す第2のアドレスを追加すれば、第2のアドレスを、URLアドレス指定システムからは見えないアドレスとすることができる。
【0105】
(ポートのアドレス指定)
アドレスに含むことができるメタデータの例として、アドレス文字列にポートIDを含める例がある。ポートによって、所定のプロトコルでメッセージを処理するアプリケーションプログラムが特定される。例えば、ハイパーテキスト転送プロトコル(HTTP)が用いられている場合、アプリケーションは「ポート80」と関連している。したがって、標準の設定では、要求装置が「http://」で始まるアドレスを受信した場合、受信装置は、ポート80に関連するアプリケーション、つまりHTTPを処理するアプリケーションにこのアドレス情報を送信する。同様に、受信装置が要求装置に応答する場合、httpプロトコルに従って応答をフォーマットする。図14にこのようなシステムの例を示す。
【0106】
図14において、要求部1410は仲介装置1450にアドレスを送信する。この仲介装置はキャッシングサーバ又はルータなどであって、提供部1490などの、必要なデータを提供できる別の装置から所望の情報を要求する必要があるか否かを判定する。この例では、要求部1410はHTTPプロトコルを使用して仲介装置1450に送信するのに対し、仲介装置1450はRTSPプロトコルを使用して提供部1490に送信する。仲介装置1450が必要なデータを要求すると、提供部1490は、提供部への送信に使用されたものと同じプロトコルで応答する。したがって、この例では、提供部1490はRTSPプロトコルに従って応答する。仲介装置は、アドレス内のRTSPヘッダを認識し、このアドレスをポート3080が指定されているアプリケーションプログラムに送信する。次に仲介装置は、HTTPプロトコルを用いてこの情報を要求部1410に送信する。これは、要求部1410が仲介装置1450のアドレスを指定するために使用したプロトコルがHTTPプロトコルであるからである。このため、装置の組み合わせが変更されない限り、このシステムでは、正しいプロトコルによってデータが転送される。ただし、要求されたデータが要求部に返されるときに別のデータパスが使用されると問題が生ずる。つまり、提供部1490がネットワークを介して要求部1410に直接応答しようとした場合、標準の設定では、提供部1490はRTSPフォーマットで応答をフォーマットする。生成された応答は要求部のポート3080に送られる。しかし、要求部1410は、HTTPプロトコルに関連するポートであるポート80でデータを受信することを予期している。このため、直接接続が試みられた場合は、要求されたデータが要求装置に正しく送信されなくなる。
【0107】
図15に、複数のデータパスを使用可能な本発明の一実施形態を示す。図15において、要求部1510は仲介装置1550に送信する。要求部は、アドレス文字列の一部に第1のプロトコル(図15に「プロトコルID#1」として記載)を用いる。また、要求部はポートID(「ポートID#1」として記載)を図15のアドレス文字列に含める。例えば、要求部はプロトコルIDにHTTPを、ポートIDにポート80を用いる。次に仲介装置は、この要求を処理し、提供装置1590にこのアドレスを送信する。このアドレスを送信する際に、仲介装置は、図15のアドレス文字列内で第2のプロトコル(「プロトコルID#2」)にフォーマット変換する。しかし、仲介装置は、アドレス文字列の一部にポートID#1を含める。例えば、仲介装置1550は、第2のプロトコルとしてRTSPを、メタデータとしてポート80をアドレス文字列に用いることがある。これにより、提供部は、要求部1510に要求を直接送信するために使用可能なプロトコルを認識する。この直接送信は、提供部1590から要求部1510に向かう線で表されている。この例では、提供装置1590に送信されたポート80に関連するプロトコルはHTTPであるため、このようなアドレスはHTTPを用いる。したがって、図15は、アドレス文字列の一部としてポート情報を送信可能なシステムを示す。この図はまた、帰りのデータパスにおいて仲介装置を省略するための方法をも示す。
【0108】
図16に、メタデータアドレス用のデータ構造を提供する本発明の一実施形態を示す。図16に、アドレス文字列1600を示す。同アドレス文字列は、プロトコルIDフィールド1610、ネットワーク機器IDフィールド1620、メタデータフィールド1630及びファイルネームフィールド1640からなる。TCP/IPフォーマットで使用されるアドレスの例を図17に示す。図17に示したアドレスは、プロトコルとしてHTTPを用いたアドレスを示す。ネットワーク機器IDは、インターネットプロトコル(IP)アドレス「204.162.80.181」で示されている。この例では、メタデータフィールドは「PCN_000.80.」である。「PCN_000」は、ヘッダ情報と代替サーバIDを表すことがある。「80」はポートIDの例である。「FOO.DAT」はIPアドレス「204.162.80.181」から要求されているファイルの名前である。したがって、図17に示した例は、サーバIDとポートIDの両者からなるメタデータを与えるアドレスである。上で説明したように、メタデータの一部としてサーバIDのみを含めることもある。同様に、メタデータの一部としてポートIDのみを含めることもある。
【0109】
図18に、本発明の一実施形態を実現するための方法1800を示す。図18のブロック1810において、プロトコルIDからなるアドレスを与える。ブロック1820において、ポートIDを与える。ブロック1830において、ポートID及びアドレス文字列を、1つのアドレス文字列の一部として含める。
【0110】
図19A,l9Bに、本発明の他の実施形態を示すフローチャート1900を示す。ブロック1910においてサーバが提供される。ブロック1914において、HTTP、RTSP、FTP、SMTP、TelnetなどのプロトコルIDを与える。プロトコルIDは、オブジェクトと共に使用されるプロトコルを識別するアドレスの一部であるとみなすことができる。このようなプロトコルには、HTTP、RTSP、NNTP、FTP、SHOUT、RTP、ACTP、SHTPなどがある。既存のプロトコルの例を挙げたが、別のプロトコルが将来開発される可能性もある。ブロック1918において、サーバなどの通信先の装置を識別するためのネットワーク装置IDを与える。ネットワークアドレスIDは、ネットワークにおいて通信先の装置を識別するアドレスである。このアドレスは、数字形式であっても、テキスト形式であってもよい。例えば、IP Version 4(IPv4)などのインターネットプロトコル(IP)では、4つの数値をピリオドで区切ったアドレス(「128.46.73.208」など)が用いられる。さらに、ルックアップテーブルを使用することで、このようなアドレスをアドレスを入力する際に憶えやすい、「www.aerocast.com」等のテキスト形式のアドレスに変換することが可能となる。アドレス指定システムは選択の問題に過ぎない。しかし、本発明の本実施形態を説明するためにIPv4システムを使用する。だからといって、本実施形態をこの特定のバージョンに限定することを意図するものではないことが理解されるべきである。別の例として、ネットワーク装置IDは「204.162.80.181」などのインターネットプロトコルアドレスであることもあれば、「AEROCAST.COM」などのインターネットのドメインネームシステムにおける相当名であることもある。
【0111】
ブロック1922において、サーバIDを与える。このサーバIDは、データのバックアップ源として機能するサーバ、並びに要求元の要求装置を識別するためのものである。ブロック1926において、ポートIDを与える。上で説明したように、このポートIDにより、データを送信すべき装置のポートを識別できる。ポートIDの例として、HTTP用の「80」、Telnet用の「23」、SMTP(電子メール)用の「25」、及びFTP用の「21」など、「公知の」ポートIDリストに掲載されているものがある。ブロック1930においてファイルIDを与える。
【0112】
ブロック1934において、プロトコルID、ネットワーク機器ID、サーバID、ポートID及びファイルIDを結合する。さらに、ブロック1938に示すように、サーバIDなどの他のメタデータとともにポートIDが配置されるように、これらのフィールドをアドレスとして編成する。
【0113】
ブロック1942において、サーバが仲介装置にこのアドレスを送信する。ブロック1946において、仲介装置がこの要求を受信する。ブロック1950において、仲介装置がデータコンテンツ提供部にこの要求を送信する。この2回の送信のいずれにおいても、他の仲介装置との間で複数の接続が利用されていてもよい。ブロック1954において、コンテンツ提供部がデータに対する要求を受信する。ブロック1958に示すように、この時点でデータを取得することがある。最後にブロック1962において、ポートIDを用い、ポートIDフィールドに従ってサーバのポートにデータ又はその他のメッセージを送信する。
【0114】
本発明を実施するための方法又は装置として、本発明の種々の実施形態を記載した。しかし、コンピュータ上に存在するコード、或いはコンピュータからアクセスされるコードなど、コンピュータと結合されたコードによって本発明を実施可能であることが理解されるべきである。例えば、ソフトウェアとデータベースとを利用して、上記した方法の多くを実施することが可能である。したがって、ハードウェアによって達成される本発明の実施形態に加え、コンピュータに組み込まれる、コンピュータが読み取り可能なプログラムコードを有する、コンピュータが使用可能な媒体からなる製造物を使用することで、これらの実施形態を実現できることが留意される。これによって、本詳細説明に開示された機能が実現可能となる。したがって、上に挙げた実施形態は、プログラムコード手段に存在するものも、本特許によって同様に保護されていると考えることが望ましい。
【0115】
本発明の種々の実施形態は、搬送波に含まれているコンピュータ信号、並びに伝送媒体を介して伝達される電気信号として実現することも可能であることが想到される。したがって、上記の種々の情報は、データ構造などの構造にフォーマットして、電気信号として伝送媒体を介して送信することが可能である。
【0116】
また、本明細書で説明した構造並びに動作の多くは、機能を実施するための手段、又は機能を実施するためのステップとして各々みなすことができる。したがって、これらの用語は、参照によりここに援用される事項も含めて、本明細書に開示されている構造及び動作、並びにその代替物を全て対象としていることを理解すべきである。
【0117】
本発明の種々の実施形態の装置及び方法、並びにその付随的な利点は本明細書から明らかであると考えられる。また、本発明の精神及び範囲から逸脱することなく、かつ本発明の重要な利点を犠牲とすることなく、その構成要素の形状、構成並びに配置に対して種々の変更を行なうことが可能であること、並びに上記の形状は本発明の実施形態の代表例として記載した過ぎないことは明らかであると考えられる。
【図面の簡単な説明】
【図1】コンテンツ配信システムの一実施形態を示すブロック図。
【図2】コンテンツ配信システムのアクティブディレクトリ部分の実施形態を示すブロック図。
【図3A】コンテンツ配信システムのオリジンサーバ部の実施形態を示すブロック図。
【図3B】コンテンツ配信システムの外部オリジンサーバ部の実施例のブロック図。
【図4A】コンテンツ配信システムのコンテンツ交換部の実施形態を示すブロック図。
【図4B】コンテンツ配信システムのコンテンツ交換部の他の実施形態を示すブロック図。
【図4C】複数のコンテンツ交換サーバを有するコンテンツ交換サイトの実施形態を示すブロック図。
【図5】コンテンツ配信システムのクライアントコンピュータ部の実施形態を示すブロック図。
【図6】コンテンツ配信システムの実施形態を示すブロック図。
【図7A】ユーザにコンテンツを配信するための処理の実施形態を示すフローチャートの第1の部分。
【図7B】図7Aのフローチャートの第2の部分。
【図8】本発明の一実施形態の実現方法を示すフローチャート。
【図9】本発明の他の実施形態の実現方法を示すフローチャート。
【図10】本発明の一実施形態のためのフォーマットの実現方法を示すフローチャート。
【図11】本発明の一実施形態の実現方法を示すフローチャート。
【図12A】本発明の一実施形態の実現方法を示すフローチャート。
【図12B】本発明の一実施形態の実現方法を示すフローチャート。
【図13】第1のアドレスと第2のアドレスとを結合して第3のアドレスを生成する操作を示す図。
【図14】同じデータパスを用いて、要求部と提供部との間でデータの要求並びに提供を行なうシステムを示すブロック図。
【図15】複数のデータパスを用いて、データの要求並びに送信を行なうことが可能なポートIDを提供する本発明の一実施形態を示すブロック図。
【図16】メタデータからなるデータ構造を提供するための本発明の一実施形態を示すブロック図。
【図17】図16に示したデータ構造の例を示すブロック図。
【図18】本発明の一実施形態の実現方法を示すブロック図。
【図19A】本発明の一実施形態の実現方法を示すブロック図。
【図19B】本発明の一実施形態の実現方法を示すブロック図。
Claims (26)
- ネットワークに接続されている要求装置を提供するステップと、
プロトコルIDを有するアドレスを与えるステップと、
前記要求装置においてポートを識別するために使用可能なポートIDを与えるステップと、
前記アドレスの一部として前記ポートIDを含めるステップと、
前記要求装置から前記アドレスを前記ネットワークに送信するステップと、
仲介装置で前記アドレスを受信するステップと、
アドレス文字列の一部として前記ポートIDを含める間に、データ提供装置のアドレスを指定するステップとからなる、アドレスを与えるための方法。 - データ提供部から前記ポートIDによって識別される要求装置のポートにメッセージを送信するステップをさらに有する、請求項1に記載の方法。
- プロトコルIDを与えるステップと、
IP IDを与えるステップと、
要求装置IDを与えるステップと、
要求装置のポートIDを与えるステップとからなる、アドレスを与えるための方法。 - 前記プロトコルIDと、前記IP ID、前記要求装置ID及び前記要求装置のポートIDとを結合するステップをさらに有する、請求項3に記載の方法。
- ファイルIDを与えるステップをさらに有する、請求項3に記載の方法。
- 前記プロトコルIDと、前記IP ID、前記要求装置ID、前記要求装置のポートID、及び前記ファイルIDとを結合するステップをさらに有する、請求項5に記載の方法。
- 前記ポートIDが前記要求装置IDに隣接するようにアドレス構造を構成するステップをさらに有する、請求項6に記載の方法。
- プロトコルIDフィールドと、
仲介装置のアドレス指定において使用するインターネットプロトコルIDフィールドと、
要求装置IDフィールドと、
要求装置のポートIDフィールドとからなる、ネットワーク上の装置のためのデータ構造。 - 前記インターネットプロトコルIDフィールドは前記プロトコルIDフィールドと前記要求装置IDフィールドとの間に設けられる、請求項8に記載のデータ構造。
- 前記要求装置IDフィールドは前記プロトコルIDフィールドと前記インターネットプロトコルIDフィールドとの間に設けられる、請求項8に記載のデータ構造。
- 前記要求装置のポートIDフィールドは前記要求装置IDフィールドに隣接して設けられる、請求項8に記載のデータ構造。
- データ提供装置に記憶されているファイルを識別するためのファイルIDフィールドをさらに有する、請求項8に記載のデータ構造。
- プロトコルIDセグメントと、
仲介装置のアドレスを指定するために使用するインターネットプロトコルIDセグメントと、
要求装置IDセグメントと、
要求装置のポートIDセグメントとからなるコンピュータデータ信号。 - データ提供装置に記憶されているファイルを識別するためのファイルIDセグメントをさらに有する、請求項13に記載のコンピュータデータ信号。
- 前記要求装置のポートIDセグメントは、データに対する要求が発生した要求装置にあるポートを指定するために利用可能である、請求項13に記載のコンピュータデータ信号。
- ネットワーク上において装置のアドレスを指定するためのアドレスを与えるために作動可能なコンピュータと、
前記コンピュータによって使用され、プロトコルIDフィールドを与えるために使用可能なコードと、
前記コンピュータによって使用され、仲介装置のアドレスを指定するために使用するインターネットプロトコルIDフィールドを与えるために使用可能なコードと、
前記コンピュータによって使用され、要求装置IDフィールドを与えるために使用可能なコードと、
前記コンピュータによって使用され、要求装置のポートIDフィールドを与えるために使用可能なコードとからなる、前記ネットワーク上で使用される装置。 - 前記コンピュータによって使用され、ファイルIDフィールドを与えるために使用可能なコードをさらに有する、請求項16に記載の装置。
- 前記コンピュータによって使用され、前記プロトコルIDフィールド、前記インターネットプロトコルIDフィールド、前記要求装置IDフィールド、前記要求装置のポートIDフィールド、及び前記ファイルIDフィールドを単一のアドレスとして構成するために使用可能なコードをさらに有する、請求項17に記載の装置。
- 要求装置を提供するステップと、
第1のポートに関連する第1のプロトコルを使用することによってデータに対する要求を仲介装置に送信するステップと、
前記仲介装置においてデータに対する前記要求を受信するステップと、
前記仲介装置においてデータに対する前記要求を解釈するステップと、
第2のポートに関連する第2のプロトコルを利用することによって、前記仲介装置からコンテンツ提供部にデータに対する第2の要求を送信するステップと、
前記コンテンツ提供部において前記仲介装置からの前記データに対する第2の要求を受信するステップと、
前記データを取得するステップと、
前記仲介装置をバイパスする間に、前記コンテンツ提供部から前記要求装置の第1のポートにメッセージを送信するステップとからなる、ネットワーク上でデータを要求するための方法。 - 前記第1のプロトコルはHTTPである、請求項19に記載の方法。
- 前記要求装置によって要求されたデータが前記メッセージに含まれる、請求項19に記載の方法。
- 前記第1のポートと前記第2のポートとは異なる、請求項19に記載の方法。
- 前記コンテンツ提供部から前記要求装置の第1のポートにメッセージを送信するステップは、データに対する要求を前記仲介装置から前記コンテンツ提供部に送信するために使用される前記第2のプロトコルとは異なるプロトコルに従って前記メッセージを送信するステップからなる、請求項19に記載の方法。
- 前記コンテンツ提供部は第2のコンテンツ提供部から前記データを取得する、請求項19に記載の方法。
- 前記データに対する前記要求を前記仲介装置に送信するステップは、
前記仲介装置のアドレス指定において、アドレス文字列の一部として前記第1のポートを含めるステップからなる、請求項19に記載の方法。 - 前記仲介装置から前記コンテンツ提供部にデータに対する要求を送信するステップは、
前記コンテンツ提供部のアドレス指定において、アドレス文字列の一部として前記第1のポートを含めるステップからなる、請求項19に記載の方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US20900700P | 2000-06-01 | 2000-06-01 | |
US09/664,179 US6836806B1 (en) | 2000-06-01 | 2000-09-18 | System for network addressing |
PCT/US2001/018019 WO2001093527A2 (en) | 2000-06-01 | 2001-06-01 | System for network addressing |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004511116A true JP2004511116A (ja) | 2004-04-08 |
Family
ID=26903732
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001588192A Pending JP2004511116A (ja) | 2000-06-01 | 2001-06-01 | ネットワークアドレス指定のためのシステム |
Country Status (9)
Country | Link |
---|---|
US (1) | US6836806B1 (ja) |
EP (1) | EP1287663A2 (ja) |
JP (1) | JP2004511116A (ja) |
KR (1) | KR20030051429A (ja) |
CN (1) | CN1444816A (ja) |
AR (1) | AR028660A1 (ja) |
AU (1) | AU2001268168A1 (ja) |
CA (1) | CA2410861C (ja) |
WO (1) | WO2001093527A2 (ja) |
Families Citing this family (57)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8903950B2 (en) | 2000-05-05 | 2014-12-02 | Citrix Systems, Inc. | Personalized content delivery using peer-to-peer precaching |
US20020143946A1 (en) * | 2001-03-28 | 2002-10-03 | Daniel Crosson | Software based internet protocol address selection method and system |
US7000029B2 (en) * | 2001-09-12 | 2006-02-14 | Tropic Networks Inc. | Method and system for automatic address allocation in a network and network protocol therefor |
US7340521B1 (en) * | 2002-04-02 | 2008-03-04 | Blue Coat Systems, Inc. | Method for routing a request over a network to a content source that can most advantageous serve the request |
US8370420B1 (en) * | 2002-07-11 | 2013-02-05 | Citrix Systems, Inc. | Web-integrated display of locally stored content objects |
US7620699B1 (en) * | 2002-07-26 | 2009-11-17 | Paltalk Holdings, Inc. | Method and system for managing high-bandwidth data sharing |
US7853983B2 (en) * | 2002-07-29 | 2010-12-14 | Bea Systems, Inc. | Communicating data from a data producer to a data receiver |
US20040059735A1 (en) * | 2002-09-10 | 2004-03-25 | Gold Russell Eliot | Systems and methods for enabling failover in a distributed-object computing environment |
US7991827B1 (en) | 2002-11-13 | 2011-08-02 | Mcafee, Inc. | Network analysis system and method utilizing collected metadata |
CN100483975C (zh) * | 2003-07-08 | 2009-04-29 | 中国科学技术大学 | 量子网络寻址方法及量子网络路由器 |
US8782654B2 (en) | 2004-03-13 | 2014-07-15 | Adaptive Computing Enterprises, Inc. | Co-allocating a reservation spanning different compute resources types |
CA2558892A1 (en) | 2004-03-13 | 2005-09-29 | Cluster Resources, Inc. | System and method for a self-optimizing reservation in time of compute resources |
US20070266388A1 (en) | 2004-06-18 | 2007-11-15 | Cluster Resources, Inc. | System and method for providing advanced reservations in a compute environment |
KR20050121610A (ko) * | 2004-06-22 | 2005-12-27 | 전자부품연구원 | 홈 네트워크 프로토콜에서 읽고 쓸 수 있는 어드레싱을위한 방법 |
US8176490B1 (en) | 2004-08-20 | 2012-05-08 | Adaptive Computing Enterprises, Inc. | System and method of interfacing a workload manager and scheduler with an identity manager |
KR100643285B1 (ko) * | 2004-11-02 | 2006-11-10 | 삼성전자주식회사 | 멀티캐스트를 이용한 데이터 송수신 시스템 및 방법 |
CA2827035A1 (en) | 2004-11-08 | 2006-05-18 | Adaptive Computing Enterprises, Inc. | System and method of providing system jobs within a compute environment |
US8863143B2 (en) | 2006-03-16 | 2014-10-14 | Adaptive Computing Enterprises, Inc. | System and method for managing a hybrid compute environment |
US9231886B2 (en) | 2005-03-16 | 2016-01-05 | Adaptive Computing Enterprises, Inc. | Simple integration of an on-demand compute environment |
US7853703B1 (en) * | 2005-03-24 | 2010-12-14 | Google, Inc. | Methods and apparatuses for identification of device presence |
CA2603577A1 (en) | 2005-04-07 | 2006-10-12 | Cluster Resources, Inc. | On-demand access to compute resources |
US20070011100A1 (en) * | 2005-06-21 | 2007-01-11 | Phil Libin | Preventing identity theft |
WO2007062108A2 (en) * | 2005-11-23 | 2007-05-31 | Pak Siripunkaw | Method of upgrading a platform in a subscriber gateway device |
US7831795B2 (en) | 2005-11-28 | 2010-11-09 | Commvault Systems, Inc. | Systems and methods for classifying and transferring information in a storage network |
US20200257596A1 (en) | 2005-12-19 | 2020-08-13 | Commvault Systems, Inc. | Systems and methods of unified reconstruction in storage systems |
US8930496B2 (en) * | 2005-12-19 | 2015-01-06 | Commvault Systems, Inc. | Systems and methods of unified reconstruction in storage systems |
CN101395845A (zh) * | 2006-03-02 | 2009-03-25 | 诺基亚西门子通信有限责任两合公司 | 产生地址字段的方法、传输电子信息方法和装置及数据分组 |
KR100978332B1 (ko) * | 2006-06-14 | 2010-08-26 | 파나소닉 전공 주식회사 | 네트워크 시스템 |
KR100801004B1 (ko) * | 2006-08-25 | 2008-02-05 | 삼성전자주식회사 | 임베디드 aⅴ 컨텐츠의 프로토콜 매칭 장치 및 방법 |
US20080178242A1 (en) * | 2006-12-05 | 2008-07-24 | Crackle, Inc. | Video sharing platform providing for downloading of content to portable devices |
US8677091B2 (en) | 2006-12-18 | 2014-03-18 | Commvault Systems, Inc. | Writing data and storage system specific metadata to network attached storage device |
US8103783B2 (en) | 2007-03-12 | 2012-01-24 | Citrix Systems, Inc. | Systems and methods of providing security and reliability to proxy caches |
US7720936B2 (en) | 2007-03-12 | 2010-05-18 | Citrix Systems, Inc. | Systems and methods of freshening and prefreshening a DNS cache |
US7584294B2 (en) | 2007-03-12 | 2009-09-01 | Citrix Systems, Inc. | Systems and methods for prefetching objects for caching using QOS |
US8074028B2 (en) | 2007-03-12 | 2011-12-06 | Citrix Systems, Inc. | Systems and methods of providing a multi-tier cache |
US8037126B2 (en) | 2007-03-12 | 2011-10-11 | Citrix Systems, Inc. | Systems and methods of dynamically checking freshness of cached objects based on link status |
US7809818B2 (en) | 2007-03-12 | 2010-10-05 | Citrix Systems, Inc. | Systems and method of using HTTP head command for prefetching |
US8504775B2 (en) | 2007-03-12 | 2013-08-06 | Citrix Systems, Inc | Systems and methods of prefreshening cached objects based on user's current web page |
US7783757B2 (en) | 2007-03-12 | 2010-08-24 | Citrix Systems, Inc. | Systems and methods of revalidating cached objects in parallel with request for object |
US8701010B2 (en) | 2007-03-12 | 2014-04-15 | Citrix Systems, Inc. | Systems and methods of using the refresh button to determine freshness policy |
US8628522B2 (en) | 2007-05-21 | 2014-01-14 | Estech, Inc. (Endoscopic Technologies, Inc.) | Cardiac ablation systems and methods |
JP5174401B2 (ja) * | 2007-08-27 | 2013-04-03 | パナソニック株式会社 | ネットワークシステム |
US8041773B2 (en) | 2007-09-24 | 2011-10-18 | The Research Foundation Of State University Of New York | Automatic clustering for self-organizing grids |
US8108911B2 (en) | 2007-11-01 | 2012-01-31 | Comcast Cable Holdings, Llc | Method and system for directing user between captive and open domains |
US7509433B1 (en) * | 2008-05-19 | 2009-03-24 | International Business Machines Corporation | Selecting quick-to-download content through an alternative hypertext protocol |
US9965479B2 (en) * | 2008-09-18 | 2018-05-08 | Adobe Systems Incorporated | Systems and methods for relinking data items |
US20100099441A1 (en) * | 2008-10-17 | 2010-04-22 | Sanjay Agarwal | Mobile Device Advertising |
US11720290B2 (en) | 2009-10-30 | 2023-08-08 | Iii Holdings 2, Llc | Memcached server functionality in a cluster of data processing nodes |
US10877695B2 (en) | 2009-10-30 | 2020-12-29 | Iii Holdings 2, Llc | Memcached server functionality in a cluster of data processing nodes |
US8892523B2 (en) | 2012-06-08 | 2014-11-18 | Commvault Systems, Inc. | Auto summarization of content |
US9225806B2 (en) * | 2012-06-15 | 2015-12-29 | Citrix Systems, Inc. | Systems and methods for generating IPID across a cluster network |
US10075521B2 (en) * | 2014-04-07 | 2018-09-11 | Cisco Technology, Inc. | Collection synchronization using equality matched network names |
US10178195B2 (en) * | 2015-12-04 | 2019-01-08 | Cloudflare, Inc. | Origin server protection notification |
US10724443B2 (en) * | 2016-05-24 | 2020-07-28 | General Electric Company | Turbine engine and method of operating |
US10540516B2 (en) | 2016-10-13 | 2020-01-21 | Commvault Systems, Inc. | Data protection within an unsecured storage environment |
US10642886B2 (en) | 2018-02-14 | 2020-05-05 | Commvault Systems, Inc. | Targeted search of backup data using facial recognition |
CN112783837B (zh) * | 2021-01-12 | 2024-01-30 | 北京首汽智行科技有限公司 | 一种api文档查找方法 |
Family Cites Families (47)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
ATE207679T1 (de) * | 1992-04-20 | 2001-11-15 | 3Com Corp | Vorrichtung zur netzmittelerweiterung auf entfernte netzwerke |
US5371852A (en) * | 1992-10-14 | 1994-12-06 | International Business Machines Corporation | Method and apparatus for making a cluster of computers appear as a single host on a network |
US6185619B1 (en) | 1996-12-09 | 2001-02-06 | Genuity Inc. | Method and apparatus for balancing the process load on network servers according to network and serve based policies |
US6181867B1 (en) | 1995-06-07 | 2001-01-30 | Intervu, Inc. | Video storage and retrieval system |
US6003030A (en) | 1995-06-07 | 1999-12-14 | Intervu, Inc. | System and method for optimized storage and retrieval of data on a distributed computer network |
JPH11507752A (ja) | 1995-06-07 | 1999-07-06 | オープン・マーケット・インコーポレーテッド | インターネットサーバーのアクセス管理およびモニタシステム |
US6097882A (en) * | 1995-06-30 | 2000-08-01 | Digital Equipment Corporation | Method and apparatus of improving network performance and network availability in a client-server network by transparently replicating a network service |
US6029175A (en) | 1995-10-26 | 2000-02-22 | Teknowledge Corporation | Automatic retrieval of changed files by a network software agent |
US5995099A (en) | 1996-06-10 | 1999-11-30 | Horstmann; Jens U. | Method for creating and maintaining page links |
US5761436A (en) | 1996-07-01 | 1998-06-02 | Sun Microsystems, Inc. | Method and apparatus for combining truncated hyperlinks to form a hyperlink aggregate |
US5870557A (en) | 1996-07-15 | 1999-02-09 | At&T Corp | Method for determining and reporting a level of network activity on a communications network using a routing analyzer and advisor |
US5774660A (en) * | 1996-08-05 | 1998-06-30 | Resonate, Inc. | World-wide-web server with delayed resource-binding for resource-based load balancing on a distributed resource multi-node network |
US5991306A (en) | 1996-08-26 | 1999-11-23 | Microsoft Corporation | Pull based, intelligent caching system and method for delivering data over a network |
SE507138C2 (sv) | 1996-10-14 | 1998-04-06 | Mirror Image Internet Ab | Förfarande och anordning för informationsöverföring på Internet |
US5787470A (en) | 1996-10-18 | 1998-07-28 | At&T Corp | Inter-cache protocol for improved WEB performance |
WO1998018076A1 (en) | 1996-10-18 | 1998-04-30 | Intervu, Inc. | System and method for optimized storage and retrieval of data on a distributed computer network |
US6101180A (en) | 1996-11-12 | 2000-08-08 | Starguide Digital Networks, Inc. | High bandwidth broadcast system having localized multicast access to broadcast content |
US6023698A (en) | 1996-12-05 | 2000-02-08 | International Business Machines Corporation | System and method for transparently registering and updating information over the internet |
US6098096A (en) | 1996-12-09 | 2000-08-01 | Sun Microsystems, Inc. | Method and apparatus for dynamic cache preloading across a network |
US6052718A (en) | 1997-01-07 | 2000-04-18 | Sightpath, Inc | Replica routing |
SE9700622D0 (sv) | 1997-02-21 | 1997-02-21 | Ericsson Telefon Ab L M | Anordning och metod vid datanät |
US6345303B1 (en) | 1997-03-25 | 2002-02-05 | Intel Corporation | Network proxy capable of dynamically selecting a destination device for servicing a client request |
US6055570A (en) | 1997-04-03 | 2000-04-25 | Sun Microsystems, Inc. | Subscribed update monitors |
CA2202572C (en) * | 1997-04-14 | 2004-02-10 | Ka Lun Eddie Law | A scaleable web server and method of efficiently managing multiple servers |
US6038599A (en) | 1997-04-23 | 2000-03-14 | Mpath Interactive, Inc. | Latency server and matchmaker |
US5944780A (en) | 1997-05-05 | 1999-08-31 | At&T Corp | Network with shared caching |
US6167438A (en) | 1997-05-22 | 2000-12-26 | Trustees Of Boston University | Method and system for distributed caching, prefetching and replication |
US6112239A (en) | 1997-06-18 | 2000-08-29 | Intervu, Inc | System and method for server-side optimization of data delivery on a distributed computer network |
WO1999003047A1 (en) | 1997-07-11 | 1999-01-21 | Earle Machardy | Content hosting environment system and cache mechanism |
SE510048C3 (sv) | 1997-07-24 | 1999-05-03 | Mirror Image Internet Ab | Internet caching system |
US6473406B1 (en) * | 1997-07-31 | 2002-10-29 | Cisco Technology, Inc. | Method and apparatus for transparently proxying a connection |
US6006264A (en) | 1997-08-01 | 1999-12-21 | Arrowpoint Communications, Inc. | Method and system for directing a flow between a client and a server |
US6157950A (en) | 1997-12-05 | 2000-12-05 | Encanto Networks, Inc. | Methods and apparatus for interfacing a computer or small network to a wide area network such as the internet |
DE69822516T2 (de) | 1997-12-17 | 2005-02-03 | British Telecommunications Public Ltd. Co. | Mobiler datenleitweg |
US6321242B1 (en) | 1998-02-06 | 2001-11-20 | Sun Microsystems, Inc. | Re-linking technology for a moving web site |
US6185598B1 (en) | 1998-02-10 | 2001-02-06 | Digital Island, Inc. | Optimized network resource location |
US6029200A (en) | 1998-03-09 | 2000-02-22 | Microsoft Corporation | Automatic protocol rollover in streaming multimedia data delivery system |
US6311216B1 (en) | 1998-05-29 | 2001-10-30 | Microsoft Corporation | Method, computer program product, and system for client-side deterministic routing and URL lookup into a distributed cache of URLS |
US6108703A (en) | 1998-07-14 | 2000-08-22 | Massachusetts Institute Of Technology | Global hosting system |
WO2000013456A2 (en) | 1998-08-31 | 2000-03-09 | Adero, Inc. | Method and apparatus for load management on a computer network |
SE514376C2 (sv) | 1998-09-24 | 2001-02-19 | Mirror Image Internet Inc | Ett internet-cachningssystem samt ett förfarande och anordning i ett sådant system |
US6236999B1 (en) | 1998-11-05 | 2001-05-22 | Bea Systems, Inc. | Duplicated naming service in a distributed processing system |
US6286006B1 (en) | 1999-05-07 | 2001-09-04 | Alta Vista Company | Method and apparatus for finding mirrored hosts by analyzing urls |
AU4661700A (en) | 1999-06-01 | 2000-12-18 | Cacheflow, Inc. | Content delivery system |
US6542964B1 (en) | 1999-06-02 | 2003-04-01 | Blue Coat Systems | Cost-based optimization for content distribution using dynamic protocol selection and query resolution for cache server |
US6275470B1 (en) | 1999-06-18 | 2001-08-14 | Digital Island, Inc. | On-demand overlay routing for computer-based communication networks |
US7386614B2 (en) | 2000-05-19 | 2008-06-10 | Treetop Ventures Llc | Method allowing persistent links to web-pages |
-
2000
- 2000-09-18 US US09/664,179 patent/US6836806B1/en not_active Expired - Lifetime
-
2001
- 2001-05-31 AR ARP010102614A patent/AR028660A1/es unknown
- 2001-06-01 AU AU2001268168A patent/AU2001268168A1/en not_active Abandoned
- 2001-06-01 EP EP01946073A patent/EP1287663A2/en not_active Withdrawn
- 2001-06-01 JP JP2001588192A patent/JP2004511116A/ja active Pending
- 2001-06-01 CA CA2410861A patent/CA2410861C/en not_active Expired - Lifetime
- 2001-06-01 CN CN01813317A patent/CN1444816A/zh active Pending
- 2001-06-01 WO PCT/US2001/018019 patent/WO2001093527A2/en not_active Application Discontinuation
- 2001-06-01 KR KR1020027016441A patent/KR20030051429A/ko not_active Application Discontinuation
Also Published As
Publication number | Publication date |
---|---|
WO2001093527A2 (en) | 2001-12-06 |
AR028660A1 (es) | 2003-05-21 |
US6836806B1 (en) | 2004-12-28 |
EP1287663A2 (en) | 2003-03-05 |
CA2410861C (en) | 2014-02-25 |
CN1444816A (zh) | 2003-09-24 |
AU2001268168A1 (en) | 2001-12-11 |
CA2410861A1 (en) | 2001-12-06 |
WO2001093527A9 (en) | 2002-12-12 |
WO2001093527A3 (en) | 2002-06-13 |
KR20030051429A (ko) | 2003-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2004511116A (ja) | ネットワークアドレス指定のためのシステム | |
JP4732667B2 (ja) | 選択的ルーティング | |
CA2413956C (en) | Active directory for content objects | |
CA2413943C (en) | Viewer object proxy | |
CA2410860C (en) | Reverse content harvester | |
JP2004509381A (ja) | 自己発行ネットワークディレクトリ | |
CA2410850A1 (en) | A qos based content distribution network | |
JP2004514961A (ja) | コンテンツのトラッキング | |
JP2004508613A (ja) | コンテンツ交換部へのコンテンツオブジェクトのプリロード | |
JP2004507806A (ja) | クライアント側の全体的健康チェック | |
JP2004511835A (ja) | コンテンツオブジェクトのためのアクティブディレクトリ | |
JP2004508614A (ja) | コンテンツマネージャ | |
JP2004511117A (ja) | クライアント側アドレスルーティング解析 | |
JP2004501443A (ja) | クライアントの側の決定論的ルーティングおよびトランスペアレントなあて先変更 |