(57)【要約】【課題】エッジ・サーバにコンテンツ・データを配布するための改善された方法およびコンピュータ・システムを提供し、特に、ストリーミング・サービスを要求するクライアントに対して、トポロジ的に最も近くに位置するエッジ・サーバまたは受け入れ可能な代替エッジ・サーバを選択すること。【解決手段】アプリケーション・サーバ、コンテンツ・サーバおよび分散エッジ・サーバを用いて、インターネット内でのメディア配布を行う。ここで、クライアントはメディア配布サービスに接続されている。メディア・プレイヤ２を組み込んだＷｅｂブラウザを有するクライアント１と、Ｗｅｂアプリケーション・サーバ３と、コンテンツ・サーバと、エッジ・サーバＥＳ１〜ＥＳ４と、メディア要求仲介者１１とを備えるコンピュータ・システムを提供する。クライアント１がストリーミング用メディアを選択した後で、メディア要求仲介者１１が、ストリーミング処理を実施する適切なエッジ・サーバに関する決定を行う。この決定は、エッジ・サーバによって出されるとともにアプリケーション・サーバからメディア要求仲介者に渡される、クライアントのｈｔｔｐ要求の拡張子に基づいて行われる。【選択図】図１
2004523854.tif 000002
【特許請求の範囲】
【請求項１】
クライアント・コンピュータにデータを送信するために、第１のサーバ・コンピュータを選択する方法であって、
コンピュータ・ネットワーク内の、第１組のサーバ・コンピュータを含む経路を介して第２のサーバ・コンピュータにアクセスするステップと、
前記第２のサーバ・コンピュータ上のリソースのロケータに、前記第１組のサーバ・コンピュータの少なくとも１つのサーバ・コンピュータを示す情報を付加するステップであって、前記リソースがその識別子の一部として一意のシグニチャを含むステップと、
前記ロケータに付加された前記情報に基づき、前記第１のサーバ・コンピュータを選択するステップと
を含む方法。
【請求項２】
前記第２のサーバ・コンピュータが、前記クライアントに送信される前記データを参照するハイパーリンクを有するＷｅｂページを含むＷｅｂアプリケーション・サーバであり、前記ハイパーリンクが一意のシグニチャを含み、さらにクライアントがハイパーリンクを選択し、その後、Ｗｅｂブラウザがこのハイパーリンクからｈｔｔｐ要求を生成するステップを含み、このｈｔｔｐ要求が、メディア要求を識別する前記一意のシグニチャを含む、請求項１に記載の方法。
【請求項３】
前記第２のサーバ・コンピュータ上の前記ロケータに付加された前記情報を少なくとも一時的に記憶するステップと、
クライアントによる前記ハイパーリンクの選択に応答して、メディア要求仲介者に前記情報を提供するステップと
をさらに含む、請求項１または２に記載の方法。
【請求項４】
前記メディア要求仲介者が、前記情報に基づいて前記第１のサーバ・コンピュータを選択する、請求項１、２または３のいずれか一項に記載の方法。
【請求項５】
前記経路内の前記サーバ・コンピュータの少なくとも１つの品質重みを決定するステップと、
前記品質重みに基づき、前記第１組のサーバ・コンピュータから前記第１のサーバ・コンピュータを選択するステップと
をさらに含む、請求項１ないし４のいずれか一項に記載の方法。
【請求項６】
前記第１組のサーバ・コンピュータ中のサーバ・コンピュータと同じ地理的／トポロジ的区域内にある第２組のサーバ・コンピュータの１組のロケータを記憶するステップと、
前記第１のサーバ・コンピュータを選択するために、前記第２組の前記サーバ・コンピュータの少なくとも１つの品質重みを決定するステップと
をさらに含む、請求項１ないし５のいずれか一項に記載の方法。
【請求項７】
前記第１組のサーバ・コンピュータのうち前記経路内の第１のノードであるサーバ・コンピュータを示す前記情報を、前記メディア要求仲介者に提供するステップと、
前記情報に基づき、前記経路内における前記第１のサーバ・コンピュータ・ノードと、前記第２組のサーバ・コンピュータのうち前記サーバ・コンピュータ・ノードに属するサーバ・コンピュータについて、品質重みを決定するステップと、
前記経路内における前記第１のサーバ・コンピュータ・ノードおよび前記１組の第２のサーバ・コンピュータを含むグループから、品質重みが事前定義した閾値より大きいサーバ・コンピュータの１つを選択するステップと、
前記第１のグループの品質重みがいずれも不十分である場合、前記経路内の第２のサーバ・コンピュータ・ノードの品質重みを決定するステップと
をさらに含む、請求項１ないし６のいずれか一項に記載の方法。
【請求項８】
以下の基準、すなわち、サーバ・コンピュータ上の前記データの可用性、前記サーバ・コンピュータ上で処理中のトランザクションの数、前記サーバ・コンピュータ上で使用中の処理リソースの百分比、および前記クライアントとの通信リンク中で使用可能な通信帯域幅の、１つまたは複数に基づいて前記品質重みが決定される、請求項１ないし７のいずれか一項に記載の方法。
【請求項９】
ストリーム・サーバ（５、１６）およびクライアント（１）にストリーミングされるデータを記憶および／またはバッファする記憶手段（６、１７）と、前記サーバ・コンピュータの識別子を記憶する手段（７）と、前記クライアントによって提供されるロケータに前記識別子を示す情報を付加する手段（８）とを含む、サーバ・コンピュータ・システム。
【請求項１０】
あるストリーム形式から別の形式に前記データを変換する手段をさらに含む、請求項９に記載のサーバ・コンピュータ・システム。
【請求項１１】
Ｗｅｂアプリケーション・サーバ（３）およびメディア要求仲介者（１１）を備え、前記Ｗｅｂアプリケーション・サーバが、クライアント（１）にストリーミングされるメディア（１０）を参照するハイパーリンクを有するＷｅｂページ（１３）、およびコンピュータ・ネットワーク中の前記クライアントと前記Ｗｅｂアプリケーション・サーバの間の通信経路内における第１のノードを示す情報を少なくとも一時的に記憶する手段（１２）と、前記クライアントによる前記ハイパーリンクの選択時に前記メディア要求仲介者に前記情報を提供する手段（１４）と、前記情報に基づいて前記クライアントに前記データをストリーミングするためのストリーム・サーバを選択する手段（２０）とをさらに含む、請求項９または１０に記載のコンピュータ・システム。
【請求項１２】
クライアントにデータを送信するために、複数のサーバ・コンピュータから第１のサーバ・コンピュータを選択するためのシステムであって、請求項１ないし８のいずれか一項による方法の各ステップを実行するように適合された手段を備えるシステム。
【請求項１３】
コンピュータ上でそのプログラムを走らせるとき請求項１ないし８のいずれか一項による方法を実施するソフトウェア・コード部分を含む、データ処理システムで実行するためのデータ処理プログラム。
【請求項１４】
コンピュータ上でそのプログラムを走らせるとき請求項１ないし８のいずれか一項による方法をコンピュータに実施させるコンピュータ可読プログラム手段を含む、コンピュータ使用可能媒体上に記憶されたコンピュータ・プログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ通信の分野に関し、詳細には、遠隔地の保管場所にある、オーディオ、ビデオ、業務用情報を含む、ディジタル情報にアクセスし、その情報をユーザ構内に伝えるための、データの配布およびストリーミングに関する。
【背景技術】
【０００２】
米国特許第５，７３４，７１９号には、コンピュータ・ネットワークを介してディジタル情報にアクセスするためのシステムが記載されている。このシステムは、ネットワーク加入者がアクセスできるように地理的に配置されたマスタ・サーバを含む。その地理的位置およびネットワーク上の位置は、それが小売店であれ、同様のＰＯＳ（販売点）であれ、あるいはその他のエンド・ユーザの場所であれ、通信ネットワーク・システムおよびサブシステムのコストと、顧客構内に最も有効に対応するための可用性に依存する。また、コンテンツの送信および／または任意の製品の製造に先立ち、集中データベース認可を必要とするセキュリティ機構も提供される。
【０００３】
新しいメディア・データは、イメージ、映画、音声、オーディオおよびビデオを組み込むことにより、従来のコンピュータ・データ形式を、人間とコンピュータが対話するためのより自然なデータ形式に拡張する。新しいメディア・データに伴う主要な問題の１つは、それが、ネットワークを介して、通例、膨大な量のコンテンツを転送することである。
【０００４】
ストリーム・サーバは、ストリーミングされるすべてのデータが、そのストリーム・サーバ上にローカルで存在することを必要とする。レンダリング・クライアント（メディア・プレイヤ）への接続帯域幅は、少なくとも送信されるデータの性質に対応する要件を満たしていなければならない。このため、ストリーム・サーバは、いわゆるエッジ・サーバ（クライアントに至る接続経路中のネットワークの端部、「ラスト・マイル」とも呼ばれる）上に配置される。
【０００５】
ストリーミング処理を開始するには、そのストリームを要求しているレンダリング側クライアント（メディア・プレイヤ）に、ストリーミング・メタデータを提供する必要がある。このメタデータまたはメタファイルは、通常、少なくともストリーミングされるメディア・データの識別（キー）と、たとえば、ストリーム・サーバ・マシンのＴＣＰ／ＩＰホスト名およびストリーム・サーバのソフトウェアが聴取するポートなど、そのストリーム・サーバの識別とを含む。
【０００６】
ユーザが自分のクライアントへのメディアのストリーミングを望むとき、そのユーザは通常、Ｗｅｂブラウザによってユーザに提示される、Ｗｅｂページ上のメディアを識別するハイパーリンクを「クリック」する。Ｗｅｂブラウザは、そのメディアの識別情報を含むｈｔｔｐ要求を生成する。それに対する応答として、アプリケーション・サーバがクライアントのＷｅｂブラウザに、そのメディアのメタデータを送信する。その情報に基づき、Ｗｅｂブラウザは、通常、対応するメディア・プレイヤを呼び出す。メディア・プレイヤは、クライアント上に存在し、ネットワークからメタデータを受信し、ストリーム・サーバへの接続をネゴシエートし、そのデータの受信とレンダリングを並列で処理する任を負う。
【０００７】
今日、ストリーミング技術を実現する方法では、メディア・プレイヤは、通常、同じメーカによって構築される、対応するストリーム・サーバからのストリームしかレンダリングできない。そうした独自開発のストリーム形式の例には、IBM Video Charger/Video Charger Player、アップルQuickTime、マイクロソフトMediaServer/MediaPlayer、リアル・ネットワークスG2Server/Playerなどがある。
【０００８】
従来技術のデータ転送プロトコル、特に、インターネットなどのコンピュータ・ネットワークを介したストリーミング・プロトコルに共通する問題は、ストリーミング処理を実施するために必要な帯域幅である。
【特許文献１】
米国特許第５，７３４，７１９号
【発明の開示】
【発明が解決しようとする課題】
【０００９】
したがって、本発明の目的は、エッジ・サーバにコンテンツ・データを配布するための改善された方法およびコンピュータ・システムを提供し、特に、ストリーミング・サービスを要求するクライアントに対してトポロジ的に最も近くに位置する、エッジ・サーバまたは受け入れ可能な代替エッジ・サーバを選択することである。
【課題を解決するための手段】
【００１０】
本発明の目的は、添付の独立請求項に記載する特徴によって達成される。それについては以下で言及する。本発明の他の有利な構成および実施形態は、それぞれの従属請求項に記載する。
【００１１】
本発明は、クライアントがアプリケーション・サーバにストリーミングを求める要求を送信する際に接続される、エッジ・サーバの位置を決定できるようにする。この決定は、クライアントのｈｔｔｐ要求に、クライアントが、ダウンロードまたはストリーミングあるいはその両方用のファイルを選択するために連絡をつけるＷｅｂアプリケーション・サーバに至る途中で、メディア識別子を含む情報を付加することによって行われる。
【００１２】
通常、Ｗｅｂアプリケーション・サーバは、クライアントが対応するＵＲＬ（uniformresource locator）をクライアントのＷｅｂブラウザ・プログラムに入力することによって、クライアントから連絡を受け取る。クライアントとＷｅｂアプリケーション・サーバの間の接続は、複数のサーバ・コンピュータ・ノードを含む通信経路を確立することによって提供される。クライアントからＷｅｂアプリケーション・サーバに至る経路内における第１のサーバ・コンピュータ・ノードが、クライアントにトポロジ的に最も近いサーバであり、したがってそれが、そのクライアントにとって最高の性能と最短の待ち時間でストリーミング・サービスを提供する、効率のよいエッジ・サーバであると予想される。
【００１３】
本発明の一実施形態では、このサーバ、すなわちクライアントからＷｅｂアプリケーション・サーバに至る経路内における第１のノードが、Ｗｅｂアプリケーション・サーバまたは関連するメディア要求仲介者によって、所望のファイルのダウンロードをそこから実施するサーバとして選択される。メディア要求仲介者からＷｅｂアプリケーション・サーバを経てクライアントに提供される対応するメタデータは、選択されたサーバを識別するデータを含む。
【００１４】
別の好ましい実施形態では、メディア要求仲介者が、クライアントとＷｅｂアプリケーション・サーバの間の経路内における第１のサーバ・ノードと同じ地理的またはトポロジ的領域に位置する１組の代替サーバを含むファイルを有している。この場合、ダウンロードをそこから実施するサーバは、そのノード自体と同じ地理的／トポロジ的領域内にあるその１組のサーバを含むグループの中から選択される。
【００１５】
このサーバのグループからの特定のサーバの選択は、そのグループにおけるそのサーバの相対的品質重み指数の決定に基づいて行われる。相対的品質重みは、以下の基準、すなわち、サーバ上での所望のメディアの可用性、処理中のトランザクション数、処理リソースの使用率、およびクライアントに至る通信経路内で利用可能な帯域幅のうちの１つまたは複数に基づいて決定することができる。
【００１６】
別の好ましい実施形態では、クライアントからＷｅｂアプリケーション・サーバに至る経路内のその他のサーバ・コンピュータも、特定のサーバの選択に際して考慮に入れられる。さらに、これらの追加サーバのそれぞれがまた、関連する領域内サーバを有することができ、ダウンロードまたはストリーミングあるいはその両方の処理の実施に適したサーバを決定する際に、それらを考慮に入れることもできる。
【００１７】
別の好ましい実施形態では、サーバ・コンピュータが異なるデータ形式のストリーム・サーバを含むことができる。そのサーバ・コンピュータ上で利用可能なメディアの形式が、要求元クライアントが必要とする形式と異なる場合でも、このサーバ・コンピュータを、選択対象のサーバ・コンピュータとすることができる。この場合、サーバ・コンピュータ上で利用可能なデータ形式は、「オン・ザ・フライ（on the fly）」で所望の形式に変換され、次いで、クライアントにストリーミングされる。
【００１８】
本発明の具体的な適用分野は、移動通信であり、特に、ＵＭＴＳなどのディジタル電話に関するものである。この場合、クライアントは、ＭＰ３プレイヤを組み込んだ移動電話、個人用ディジタル補助装置、あるいは、無線インタフェースを備えるラップトップやパームトップ・コンピュータなどの携帯用コンピュータなど、任意のモバイル装置とすることができる。
【００１９】
本発明の具体的な利点は、サーバをその品質重みに基づいて選択することにより、コンピュータ処理または帯域幅リソースあるいはその両方の分配に関して、コンピュータ・ネットワークの平衡が保たれることである。それによって、全体のシステム・スループットを最適化することができる。
【００２０】
本発明を例示して説明するが、本発明は添付の図面中の各図によって限定されるものではない。
【発明を実施するための最良の形態】
【００２１】
図１のコンピュータ・システムはクライアント１を有する。クライアント１はＷｅｂブラウザと、たとえばIBM Video Charger Playerなどのメディア・プレイヤ２を備える。
【００２２】
クライアント１は、自分のＷｅｂブラウザを用い、エッジ・サーバＥＳ１、ＥＳ２、ＥＳ３、ＥＳ４および図１に示さないその他のエッジ・サーバを含むインターネットなどのコンピュータ・ネットワークを介して、Ｗｅｂアプリケーション・サーバ３に接続することができる。エッジ・サーバＥＳ１は、メディア・キャッシュ制御装置４、ストリーム・サーバ５およびキャッシュ６を備える。
【００２３】
ストリーム・サーバは、クライアント１の対応するメディア・プレイヤ２をインタフェースするIBM Video Chargerとすることができる。ストリーミング処理はキャッシュ６から実施される。メディア・キャッシュ制御装置４は、ストリーム・サーバ５およびそのキャッシュ６の状況および動作を制御し分析する。
【００２４】
特に、メディア・キャッシュ制御装置４は、現在のシステム状況を評価して、システムの負荷を示す品質重みを提供する。品質重みは、以下の基準、すなわち、キャッシュ６内の選択されたファイルの可用性、クライアント１への接続に利用可能な帯域幅、エッジ・サーバＥＳ１の処理リソースの使用率またはその他の基準あるいはその両方のうち１つまたは複数を含むことができる。
【００２５】
さらに、エッジ・サーバＥＳ１は、エッジ・サーバＥＳ１の識別子ＩＤ１を記憶するためのメモリ７を備える。メモリ７にはフック８が結合される。
【００２６】
エッジ・サーバのそれぞれは、クライアントとＷｅｂアプリケーション・サーバからのｈｔｔｐ要求と応答を受け渡す。クライアントからｈｔｔｐ要求が来るたびに、エッジ・サーバはフック８を呼び出し、このｈｔｔｐ要求を渡す。
【００２７】
フックは、このｈｔｔｐ要求に、その要求をメディア要求であると識別する一意のシグニチャがあるかどうか検査する。フックは、このシグニチャを識別すると、その識別子ＩＤ１をｈｔｔｐ要求に付加し、その要求をエッジ・サーバに戻す。エッジ・サーバは、次のエッジ・サーバＥＳ２・・・ＥＳｎがあれば、それにその要求を送信し、なければ、アプリケーション・サーバに送信する。
【００２８】
クライアント１とＷｅｂアプリケーション・サーバ３の間の通信経路内にあるその他のエッジ・サーバＥＳ２、ＥＳ３、およびＥＳ４は、エッジ・サーバＥＳ１と同じまたは類似の構成のものである。
【００２９】
図１のコンピュータ・システムは、選択されたメディア１０を記憶するメディア・サーバ９をさらに含む。メディア・サーバ９は、メディア１０を対応するエッジ・サーバにダウンロードするために、エッジ・サーバＥＳ１〜ＥＳ４のいずれか１つに結合することができる。
【００３０】
Ｗｅｂアプリケーション・サーバ３は、メディア要求仲介者１１に結合される。メディア要求仲介者１１は、クライアント１への所望のデータのストリーミング処理を実施するために、エッジ・サーバＥＳ１〜ＥＳ４の１つまたは別のエッジ・サーバを選択する。メディア要求仲介者１１によるこのサーバの選択に基づき、Ｗｅｂアプリケーション・サーバがクライアント１用のメタデータを生成する。
【００３１】
Ｗｅｂアプリケーション・サーバは、クライアント１とＷｅｂアプリケーション・サーバ３の間の通信経路内に含まれるエッジ・サーバの１つまたは複数を示すデータが付加されたクライアントのｈｔｔｐ要求を、少なくとも一時的に記憶するためのメモリ１２を備える。
【００３２】
Ｗｅｂアプリケーション・サーバは、クライアント１がメディア１０へのハイパーリンクをクリックするとき、このｈｔｔｐ要求によって呼び出されるサーブレット１４をさらに含む。
【００３３】
動作に際しては、クライアント１が、そのＷｅｂブラウザ・プログラムでＷｅｂページ１３中のハイパーリンクをクリックし、インターネットを介してＷｅｂアプリケーション・サーバ３に所望のメディアを要求する。上記ですでに詳細に説明したように、Ｗｅｂブラウザは対応するｈｔｔｐ要求を生成し、その要求がエッジ・サーバＥＳ１〜ＥＳ４を経由して経路指定され、その結果、それらのエッジ・サーバを含む通信経路ができる。
【００３４】
この通信経路が確立される際に、エッジ・サーバＥＳ１のフック８がｈｔｔｐ要求に、その識別子ＩＤ１を付加する情報を加える。同様に、その他のエッジ・サーバＥＳ２〜ＥＳ４も、ｈｔｔｐ要求に対応するデータを付加する。
【００３５】
したがって、その結果生じるｈｔｔｐ要求は、元のＵＲＬに識別子ＩＤ１〜ＩＤ４を示すデータを加えたものからなる。
【００３６】
その後、クライアントのｈｔｔｐ要求中に含まれるすべての情報と共に、サーブレット１４が呼び出され、それが、少なくともその拡張子をメディア要求仲介者１１に転送する。
【００３７】
メディア要求仲介者は、クライアント１に所望のファイル１０をストリーミングするためのサーバとして適切なエッジ・サーバを選択するに当たって、様々な選択肢を有する。一選択肢は、インターネットを介して設定されたＷｅｂアプリケーション・サーバ３に至る通信経路内で、クライアント１に最も近いエッジ・サーバとしてエッジ・サーバＥＳ１を選択することである。
【００３８】
最も近いエッジ・サーバＥＳ１はまた、最大の帯域幅を提供すると想定される。エッジ・サーバＥＳ１の識別は、メディア要求仲介者が、各エッジ・サーバＥＳ１〜ＥＳｎ上で稼動するフックが提供する付加拡張子を分析することによって決定する。
【００３９】
メディア要求仲介者１１は、この情報に基づき、クライアント１がストリーム・サーバにアクセスするのに必要なメタデータを生成する。メタデータはストリーム・サーバ５の完全なネットワーク・アドレス（たとえば、ＩＰアドレスおよびポート）を含み、所望のメディア１０へのアクセスのためのキーが、Ｗｅｂアプリケーション・サーバ３からクライアント１に提供される。
【００４０】
メタデータの受信に応答して、クライアント１がエッジ・サーバＥＳ１、詳細にはストリーム・サーバ５に接続し、ストリーミング処理を呼び出す。所望のメディア１０がすでにキャッシュ６から入手可能な場合は、直ちにストリーミングを開始する。
【００４１】
そうでない場合は、最初に、メディア・サーバ９からエッジ・サーバＥＳ１のキャッシュ６へのファイル１０のダウンロード処理を開始する必要がある。
【００４２】
あるいは、メディア要求仲介者はまた、サーブレット１４が提供する拡張子によって識別されるその他のエッジ・サーバＥＳ２〜ＥＳ４を考慮に入れることもできる。いずれにしても、メディア要求仲介者１１は、対応するエッジ・サーバＥＳ１〜ＥＳ４のメディア・キャッシュ制御装置４によって提供される品質重みを評価して、最適なエッジ・サーバを選択する。
【００４３】
たとえば、エッジ・サーバＥＳ２は、すでにそのキャッシュ６にメディア１０を含んでいるが、そのメディア１０がエッジ・サーバＥＳ１のキャッシュ６からは利用できないことがある。この場合、エッジ・サーバＥＳ１の方がクライアントにより近くても、ＥＳ２がすでに必要なデータを有しているため、エッジ・サーバＥＳ２の品質重みはエッジ・サーバＥＳ１の品質重みより大きい。
【００４４】
同様に、他の理由で、メディア要求仲介者によって、エッジ・サーバＥＳ２または別のエッジ・サーバが選択されることがある。たとえば、エッジ・サーバＥＳ１に過負荷がかかっている、エッジ・サーバＥＳ１のストリーム・サーバ５がダウンしている、あるいは必要なデータ形式を備えていないなどの理由である。
【００４５】
図２に、本発明の別の好ましい実施形態を示す。図中、類似の要素は同じ参照番号で表す。図２のコンピュータ・システムのエッジ・サーバＥＳ１は、追加のメディア・キャッシュ制御装置１５、ストリーム・サーバ１６およびキャッシュ１７を備える。ストリーム・サーバ１６は、ストリーム・サーバ５と異なる形式をストリーミングすることができる。この場合もやはり、エッジ・サーバＥＳ１は、メモリ７およびフック８を備える。
【００４６】
前述の実施形態の場合と同じく、フック８は、クライアント１が提供するｈｔｔｐ要求に拡張子を提供して、エッジ・サーバＥＳ１の識別子ＩＤ１を示す情報を付加する働きをする。
【００４７】
第２の階層レベルでは、エッジ・サーバＥＳ１はメディア・エッジ制御装置１８を備え、それが個々のストリーム・サーバ５および１６のメディア・キャッシュ制御装置４および１５と交信する。
【００４８】
さらに、このコンピュータ・システムはエッジ・サーバＥＳ１ａ、ＥＳ１ｂ、ＥＳ１ｃ、ＥＳ１ｄを含み、それらは、エッジ・サーバＥＳ１と同じ地理的／トポロジ的領域または区域１９に位置している。同様に、その他のエッジ・サーバＥＳ２〜ＥＳ４を、それぞれの領域または区域内にある、対応する追加のエッジ・サーバに関連付けることもできる。
【００４９】
この状況は、メディア要求仲介者１１が保管するデータベース２０に反映される。データベース２０は、各領域または区域のエッジ・サーバをグループ化する。たとえば、領域１９の場合、データベース２０は、エッジ・サーバＥＳ１を追加のエッジ・サーバＥＳ１ａ〜ＥＳ１ｄに割り当てる。データベース２０は、その他のエッジ・サーバＥＳ２〜ＥＳ４について同様のエントリを含むことができる。
【００５０】
メディア要求仲介者１１は、サーブレット１４から拡張子を取得すると、クライアント１とＷｅｂアプリケーション・サーバ３の間の経路内における第１のエッジ・サーバ、すなわちエッジ・サーバＥＳ１を識別する。次のステップで、メディア要求仲介者１１は、データベース２０に問い合わせて、エッジ・サーバＥＳ１と同じ地理的／トポロジ的領域１９に位置する追加のエッジ・サーバＥＳ１ａ〜ＥＳ１ｄを識別する。
【００５１】
さらに、メディア要求仲介者１１は、領域１９の、それぞれのエッジ・サーバ・グループのメディア・キャッシュ制御装置またはメディア・エッジ制御装置あるいはその両方から、相対的品質重みを取得する。メディア要求仲介者１１は、このエッジ・サーバ・グループから最高の品質重みを提供するストリーム・サーバを選択する。
【００５２】
このエッジ・サーバ・グループ中のストリーム・サーバの最高品質重みが、たとえば、それが事前定義された閾値を下回るなどの理由で、不十分である場合、メディア要求仲介者１１は、次のエッジ・サーバＥＳ２と、図２に示さない関連する領域内の追加のエッジ・サーバ・グループに対して同等の処理を実施して、十分な品質重みを有するストリーム・サーバを探索する。
【００５３】
このプロセスの結果、メディア要求仲介者１１がＷｅｂアプリケーション・サーバ３にストリーム・サーバのアドレスを返し、それに基づいてクライアント１用のメタデータが生成される。
【００５４】
図２の実施形態では、メディア要求仲介者１１は、たとえば、エッジ・サーバＥＳ１をストリーム・サーバ１６と一緒に選択することもできる。それは、ストリーミングされる実際のメディアが、ストリーム・サーバ５の形式でストリーム・サーバ５のキャッシュにしか存在せず、その形式がクライアント側のメディア・プレイヤ２に必要な形式と互換性をもたない場合であっても可能である。というのは、エッジ・サーバＥＳ１が、ストリーム・サーバ１６によって提供されるデータをメディア・プレイヤ２に必要な形式に変換するための変換プログラムを備えているからである。
【００５５】
この変換は、メディア・エッジ制御装置に対応するメッセージを用いて、メディア要求仲介者によって開始される。この例では、ストリーム・サーバ１６のキャッシュから取り出された要求メディアが変換され、変換後のメディアがストリーム・サーバ５のキャッシュに記憶される。その後、ストリーム・サーバ５を指し示すメタファイルが生成され、ストリーム・サーバ５からメディア・プレイヤにそのメディアがストリーミングされることになる。
【００５６】
次に、図３に関して、本発明の方法の好ましい実施形態をより詳細に説明する。ステップ１で、クライアントが、メディア・オブジェクト（たとえば、メディア・ファイル）へのハイパーリンクを含むＷｅｂページに接続する。ステップ２で、クライアントがハイパーリンクをクリックして、メディアを選択する。
【００５７】
ステップ３で、Ｗｅｂブラウザが、メディア要求の一意のシグニチャを含むｈｔｔｐ要求を生成する。
【００５８】
ステップ４は、以下のステップ５、６、７を含むＦｏｒ−Ｎｅｘｔループである。
【００５９】
すべてのエッジ・サーバ１〜ｎについて、
エッジ・サーバＥＳｍにｈｔｔｐ要求を渡す。
エッジ・サーバＥＳｍでフックを呼び出す。
フックのメディア要求シグニチャの有無を検査する。
（ステップ５）
【００６０】
ステップ６で、メディア要求シグニチャの有無が決定される。メディア要求シグニチャがある場合は、ステップ７で、ｈｔｔｐ要求にエッジ・サーバＥＳｍのＩＤが付加され、ｍを増分してステップ５に戻る。そうでない場合は、ｍがｎ以下である間、直接ｍを増分し、ステップ５に戻る。
【００６１】
ステップ８で、ｈｔｔｐ要求がＷｅｂアプリケーション・サーバに到達する。次にステップ９で、Ｗｅｂアプリケーション・サーバがサーブレットを呼び出し、ＵＲＬおよびエッジ・サーバの拡張子をサーブレットに渡す。
【００６２】
ステップ１０で、サーブレットがＵＲＬの拡張子にアクセスし、ステップ１１でその拡張子をメディア要求仲介者に提供する。
【００６３】
ステップ１２で、メディア要求仲介者は、拡張子に基づいて、可能なエッジ・サーバの品質重みを決定する。可能なエッジ・サーバとは、クライアントとＷｅｂページの間の通信経路内における第１のエッジ・サーバ、すなわち、エッジ・サーバＥＳ１もしくはエッジ・サーバＥＳ１の領域内グループのうちのエッジ・サーバまたはエッジ・サーバＥＳ２〜ＥＳ４もしくはエッジ・サーバＥＳ２〜ＥＳ４の対応する領域内グループの１つあるいはその両方である。
【００６４】
ステップ１３で、メディア要求仲介者は、ステップ１２で決定した品質重みに基づき、適切なエッジ・サーバを選択する。
【００６５】
選択されたエッジ・サーバに基づき、ステップ１４で対応するメディア・データが生成され、ステップ１５でそれがクライアントに送信される。
【００６６】
クライアントは、ステップ１６０で、メタデータ中に示されるエッジ・サーバに接続し、ストリーミングを開始するためのキーをエッジ・サーバに提供する。ステップ１７で、ストリーミングを実際に開始する。
【００６７】
定義
１．クライアント・コンピュータにデータを送信するために、第１のサーバ・コンピュータを選択する方法。この方法は以下のステップを含む。
−コンピュータ・ネットワーク内の経路を介して第２のサーバ・コンピュータにアクセスする。この経路は第１組のサーバ・コンピュータを含む。
−第２のサーバ・コンピュータ上にあるリソースのロケータに、第１組のサーバ・コンピュータのうち少なくとも１つのサーバ・コンピュータを示す情報を付加する。このリソースは、その識別子の一部として一意のシグニチャを含む。
−ロケータに付加された情報に基づき、第１のサーバ・コンピュータを選択する。
【００６８】
２．第２のサーバ・コンピュータが、クライアントに送信されるデータを参照するハイパーリンクを有するＷｅｂページを含むＷｅｂアプリケーション・サーバであり、ハイパーリンクが一意のシグニチャを含む、定義１の方法。この方法はさらに、クライアントがハイパーリンクを選択し、その後、Ｗｅｂブラウザがこのハイパーリンクからｈｔｔｐ要求を生成するステップを含む。このｈｔｔｐ要求は、メディア要求を識別する一意のシグニチャを含む。
【００６９】
３．以下のステップをさらに含む、定義１または２の方法。
−第２のサーバ・コンピュータ上にあるロケータに付加された情報を、少なくとも一時的に記憶する。
−クライアントによるハイパーリンクの選択に応答して、メディア要求仲介者にその情報を提供する。
【００７０】
４．メディア要求仲介者が、情報に基づいて、第１のサーバ・コンピュータを選択する、定義１、２または３のいずれか一項の方法。
【００７１】
５．以下のステップをさらに含む、前述の定義１ないし４のいずれか一項の方法。
−経路内のサーバ・コンピュータの少なくとも１つの品質重みを決定する。
−品質重みに基づき、第１組のサーバ・コンピュータから第１のサーバ・コンピュータを選択する。
【００７２】
６．以下のステップをさらに含む、前述の定義１ないし５のいずれか一項の方法。
−第１組のサーバ・コンピュータ中のサーバ・コンピュータと同じ地理的／トポロジ的区域内にある、第２組のサーバ・コンピュータの１組のロケータを記憶する。
−第１のサーバ・コンピュータを選択するために、その第２組のサーバ・コンピュータの少なくとも１つの品質重みを決定する。
【００７３】
７．以下のステップをさらに含む、前述の定義１ないし６のいずれか一項の方法。
−メディア要求仲介者に情報を提供する。この情報は、第１組のサーバ・コンピュータのうち経路内における第１のノードであるサーバ・コンピュータを示す。
−その情報に基づいて、経路内における第１のサーバ・コンピュータ・ノードと、第２組のサーバ・コンピュータのうちそのサーバ・コンピュータ・ノードに属するサーバ・コンピュータについて、品質重みを決定する。
−経路内における第１のサーバ・コンピュータ・ノードおよびその１組の第２のサーバ・コンピュータを含むグループから、品質重みが事前定義した閾値より大きいサーバ・コンピュータの１つを選択する。
−第１のグループの品質重みがどれも不十分である場合、経路内の第２のサーバ・コンピュータ・ノードの品質重みを決定する。
【００７４】
８．以下の基準の１つまたは複数に基づいて品質重みが決定される、前述の定義１ないし７のいずれか一項の方法。それらの基準は、サーバ・コンピュータ上のデータの可用性、サーバ・コンピュータ上で処理中のトランザクション数、サーバ・コンピュータ上で使用中の処理リソースの百分比、クライアントとの通信リンク中で使用可能な通信帯域幅である。
【００７５】
９．ストリーム・サーバ（５、１６）、およびクライアント（１）にストリーミングされるデータを記憶またはバッファするあるいはその両方を行う記憶手段（６、１７）と、サーバ・コンピュータの識別子を記憶する手段（７）と、クライアントが提供するロケータに情報を付加する手段（８）とを含み、その情報が識別子を示すサーバ・コンピュータ・システム。
【００７６】
１０．あるストリーム形式から別の形式にデータを変換する手段をさらに含む、定義９のサーバ・コンピュータ・システム。
【００７７】
１１．Ｗｅｂアプリケーション・サーバ（３）およびメディア要求仲介者（１１）を備えるコンピュータ・システム。このＷｅｂアプリケーション・サーバは、クライアント（１）にストリーミングされるメディア（１０）を参照するハイパーリンクを有するＷｅｂページ（１３）、およびコンピュータ・ネットワーク中のクライアントとＷｅｂアプリケーション・サーバの間の通信経路内における第１のノードを示す情報を少なくとも一時的に記憶する手段（１２）と、クライアントによるそのハイパーリンクの選択時に、メディア要求仲介者にその情報を提供する手段（１４）と、その情報に基づいてクライアントにデータをストリーミングするためのストリーム・サーバを選択する手段（２０）とを含む。
【００７８】
１２．クライアントにデータを送信するために、複数のサーバ・コンピュータから第１のサーバ・コンピュータを選択するシステム。このシステムは、前述の定義１ないし８のいずれか一項による方法の各ステップを実行するように適合された手段を備える。
【００７９】
１３．コンピュータ上でそのプログラムを走らせるときに定義１ないし８のいずれか一項による方法を実施するためのソフトウェア・コード部分を含む、データ処理システムで実行するためのデータ処理プログラム。
【００８０】
１４．コンピュータ上でそのプログラムを走らせるときに定義１ないし８のいずれか一項による方法をコンピュータに実施させるコンピュータ可読プログラム手段を含む、コンピュータ使用可能媒体上に記憶されるコンピュータ・プログラム製品。
【図面の簡単な説明】
【００８１】
【図１】本発明によるコンピュータ・システムの第１の実施形態を示す構成図である。
【図２】本発明によるコンピュータ・システムの第２の実施形態を示す構成図である。
【図３】本発明の方法を示す実施形態である。
【図１】
2004523854.tif 000003
【図２】
2004523854.tif 000004
【図３】
2004523854.tif 000005
【国際公開パンフレット】
2004523854.tif 000006
2004523854.tif 000007
2004523854.tif 000008
2004523854.tif 000009
2004523854.tif 000010
2004523854.tif 000011
2004523854.tif 000012
2004523854.tif 000013
2004523854.tif 000014
2004523854.tif 000015
2004523854.tif 000016
2004523854.tif 000017
2004523854.tif 000018
2004523854.tif 000019
2004523854.tif 000020
2004523854.tif 000021
2004523854.tif 000022
2004523854.tif 000023
2004523854.tif 000024
2004523854.tif 000025
2004523854.tif 000026
2004523854.tif 000027
2004523854.tif 000028
2004523854.tif 000029
2004523854.tif 000030
2004523854.tif 000031
2004523854.tif 000032
2004523854.tif 000033
【手続補正書】
【提出日】平成15年10月16日(2003.10.16)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
クライアント・コンピュータ（１）にメディア・データを送信するために、第１のサーバ・コンピュータ（ＥＳ１、ＥＳ２、ＥＳ３、ＥＳ４）を選択する方法であって、
コンピュータ・ネットワーク中の経路を介して前記クライアント・コンピュータ（１）から第２のサーバ・コンピュータ（３）にｈｔｔｐ要求を送信するステップであって、前記経路が第１組のサーバ・コンピュータ（ＥＳ１、ＥＳ２、ＥＳ３、ＥＳ４）を含み、前記ｈｔｔｐ要求が、前記要求をメディア要求であると識別する一意のシグニチャを有するステップと、
前記第１組のサーバ・コンピュータのサーバ・コンピュータの少なくとも１つにおいて、前記ｈｔｔｐ要求に前記一意のシグニチャがあるかどうか検査し、前記一意のシグニチャが識別された場合は、前記第１組サーバ・コンピュータの前記少なくとも１つのサーバ・コンピュータを示す情報を前記ｈｔｔｐ要求に付加するステップと、
前記第１組のサーバ・コンピュータの前記少なくとも１つのサーバ・コンピュータによって前記ｈｔｔｐ要求に付加された前記情報に基づき、前記第２のサーバ・コンピュータが前記第１のサーバ・コンピュータを選択するステップと
を含む方法。
【請求項２】
前記第２のサーバ・コンピュータが、前記クライアントに送信される前記データを参照するハイパーリンクを有するＷｅｂページを含むＷｅｂアプリケーション・サーバであり、前記ハイパーリンクが一意のシグニチャを含み、さらにクライアントがハイパーリンクを選択し、その後、Ｗｅｂブラウザがこのハイパーリンクからｈｔｔｐ要求を生成するステップを含み、このｈｔｔｐ要求が、メディア要求を識別する前記一意のシグニチャを含む、請求項１に記載の方法。
【請求項３】
前記第２のサーバ・コンピュータ上の前記ｈｔｔｐ要求に付加された前記情報を少なくとも一時的に記憶するステップと、
クライアントによる前記ハイパーリンクの選択に応答して、メディア要求仲介者に前記情報を提供するステップと
をさらに含む、請求項１または２に記載の方法。
【請求項４】
前記メディア要求仲介者が、前記情報に基づいて前記第１のサーバ・コンピュータを選択する、請求項１、２または３のいずれか一項に記載の方法。
【請求項５】
前記経路内の前記サーバ・コンピュータの少なくとも１つの品質重みを決定するステップと、
前記品質重みに基づき、前記第１組のサーバ・コンピュータから前記第１のサーバ・コンピュータを選択するステップと
をさらに含む、請求項１ないし４のいずれか一項に記載の方法。
【請求項６】
前記第１組のサーバ・コンピュータ中のサーバ・コンピュータと同じ地理的／トポロジ的区域内にある第２組のサーバ・コンピュータの１組のＵＲＬを記憶するステップと、
前記第１のサーバ・コンピュータを選択するために、前記第２組の前記サーバ・コンピュータの少なくとも１つの品質重みを決定するステップと
をさらに含む、請求項１ないし５のいずれか一項に記載の方法。
【請求項７】
前記第１組のサーバ・コンピュータのうち前記経路内の第１のノードであるサーバ・コンピュータを示す前記情報を、前記メディア要求仲介者に提供するステップと、
前記情報に基づき、前記経路内における前記第１のサーバ・コンピュータ・ノードと、前記第２組のサーバ・コンピュータのうち前記サーバ・コンピュータ・ノードに属するサーバ・コンピュータについて、品質重みを決定するステップと、
前記経路内における前記第１のサーバ・コンピュータ・ノードおよび前記１組の第２のサーバ・コンピュータを含むグループから、品質重みが事前定義した閾値より大きいサーバ・コンピュータの１つを選択するステップと、
前記第１のグループの品質重みがいずれも不十分である場合、前記経路内の第２のサーバ・コンピュータ・ノードの品質重みを決定するステップと
をさらに含む、請求項１ないし６のいずれか一項に記載の方法。
【請求項８】
以下の基準、すなわち、サーバ・コンピュータ上の前記データの可用性、前記サーバ・コンピュータ上で処理中のトランザクションの数、前記サーバ・コンピュータ上で使用中の処理リソースの百分比、および前記クライアントとの通信リンク中で使用可能な通信帯域幅の、１つまたは複数に基づいて前記品質重みが決定される、請求項１ないし７のいずれか一項に記載の方法。
【請求項９】
クライアントにデータを送信するために、複数のサーバ・コンピュータから第１のサーバ・コンピュータを選択するためのシステムであって、請求項１ないし８のいずれか一項による方法の各ステップを実行するように適合された手段を備えるシステム。
【請求項１０】
汎用コンピュータにロードされたときに、請求項１ないし８のいずれか一項による前記各方法ステップをその汎用コンピュータに実行させる、機械可読媒体に記憶されるプログラムを含む、コンピュータ・プログラム製品。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ通信の分野に関し、詳細には、遠隔地の保管場所にある、オーディオ、ビデオ、業務用情報を含む、ディジタル情報にアクセスし、その情報をユーザ構内に伝えるための、データの配布およびストリーミングに関する。
【背景技術】
【０００２】
米国特許第５，７３４，７１９号には、コンピュータ・ネットワークを介してディジタル情報にアクセスするためのシステムが記載されている。このシステムは、ネットワーク加入者がアクセスできるように地理的に配置されたマスタ・サーバを含む。その地理的位置およびネットワーク上の位置は、それが小売店であれ、同様のＰＯＳ（販売点）であれ、あるいはその他のエンド・ユーザの場所であれ、通信ネットワーク・システムおよびサブシステムのコストと、顧客構内に最も有効に対応するための可用性に依存する。また、コンテンツの送信および／または任意の製品の製造に先立ち、集中データベース認可を必要とするセキュリティ機構も提供される。
【０００３】
新しいメディア・データは、イメージ、映画、音声、オーディオおよびビデオを組み込むことにより、従来のコンピュータ・データ形式を、人間とコンピュータが対話するためのより自然なデータ形式に拡張する。新しいメディア・データに伴う主要な問題の１つは、それが、ネットワークを介して、通例、膨大な量のコンテンツを転送することである。
【０００４】
ストリーム・サーバは、ストリーミングされるすべてのデータが、そのストリーム・サーバ上にローカルで存在することを必要とする。レンダリング・クライアント（メディア・プレイヤ）への接続帯域幅は、少なくとも送信されるデータの性質に対応する要件を満たしていなければならない。このため、ストリーム・サーバは、いわゆるエッジ・サーバ（クライアントに至る接続経路中のネットワークの端部、「ラスト・マイル」とも呼ばれる）上に配置される。
【０００５】
ストリーミング処理を開始するには、そのストリームを要求しているレンダリング側クライアント（メディア・プレイヤ）に、ストリーミング・メタデータを提供する必要がある。このメタデータまたはメタファイルは、通常、少なくともストリーミングされるメディア・データの識別（キー）と、たとえば、ストリーム・サーバ・マシンのＴＣＰ／ＩＰホスト名およびストリーム・サーバのソフトウェアが聴取するポートなど、そのストリーム・サーバの識別とを含む。
【０００６】
ユーザが自分のクライアントへのメディアのストリーミングを望むとき、そのユーザは通常、Ｗｅｂブラウザによってユーザに提示される、Ｗｅｂページ上のメディアを識別するハイパーリンクを「クリック」する。Ｗｅｂブラウザは、そのメディアの識別情報を含むｈｔｔｐ要求を生成する。それに対する応答として、アプリケーション・サーバがクライアントのＷｅｂブラウザに、そのメディアのメタデータを送信する。その情報に基づき、Ｗｅｂブラウザは、通常、対応するメディア・プレイヤを呼び出す。メディア・プレイヤは、クライアント上に存在し、ネットワークからメタデータを受信し、ストリーム・サーバへの接続をネゴシエートし、そのデータの受信とレンダリングを並列で処理する任を負う。
【０００７】
今日、ストリーミング技術を実現する方法では、メディア・プレイヤは、通常、同じメーカによって構築される、対応するストリーム・サーバからのストリームしかレンダリングできない。そうした独自開発のストリーム形式の例には、IBM Video Charger/Video Charger Player、アップルQuickTime、マイクロソフトMediaServer/MediaPlayer、リアル・ネットワークスG2
Server/Playerなどがある。
【０００８】
Mourad A他、「scalable web server
architecture」proceedings IEEE international symposium on computers and communications、XX、XX、1997年7月1日（1997-07-01）、12〜16頁、XP000199852によれば、複数のサーバ上で内容を複製することによって、負荷平衡化におけるより多くの柔軟性とさらなる信頼性が実現されることが知られている。データの複製がある場合、論理ファイル名が異なるサーバ上の複数のＵＲＬにマッピングされる。この場合、転送サーバは関連するデータを含むサーバの１つを選択しなければならない。サーバを選択するための知的戦略（intelligent
strategies）を導入してＨＴＴＰサーバ間でうまく負荷のバランスを取ることができる。しかし、この手法の欠点は、データ複製の実施が、マッピング情報を含むデータ構造の変更を必要とすることである。【０００９】
従来技術のデータ転送プロトコル、特に、インターネットなどのコンピュータ・ネットワークを介したストリーミング・プロトコルに共通する問題は、ストリーミング処理を実施するために必要な帯域幅である。
【特許文献１】
米国特許第５，７３４，７１９号
【非特許文献１】
Mourad A他、「scalable web serverarchitecture」proceedings IEEE international symposium on computers andcommunications、XX、XX、1997年7月1日（1997-07-01）、12〜16頁、XP000199852
【発明の開示】
【発明が解決しようとする課題】
【００１０】
したがって、本発明の目的は、エッジ・サーバにコンテンツ・データを配布するための改善された方法およびコンピュータ・システムを提供し、特に、ストリーミング・サービスを要求するクライアントに対してトポロジ的に最も近くに位置する、エッジ・サーバまたは受け入れ可能な代替エッジ・サーバを選択することである。
【課題を解決するための手段】
【００１１】
本発明の目的は、添付の独立請求項に記載する特徴によって達成される。それについては以下で言及する。本発明の他の有利な構成および実施形態は、それぞれの従属請求項に記載する。
【００１２】
本発明は、クライアントがアプリケーション・サーバにストリーミングを求める要求を送信する際に接続される、エッジ・サーバの位置を決定できるようにする。この決定は、クライアントのｈｔｔｐ要求に、クライアントが、ダウンロードまたはストリーミングあるいはその両方用のファイルを選択するために連絡をつけるＷｅｂアプリケーション・サーバに至る途中で、メディア識別子を含む情報を付加することによって行われる。
【００１３】
通常、Ｗｅｂアプリケーション・サーバは、クライアントが対応するＵＲＬ（uniform
resource locator）をクライアントのＷｅｂブラウザ・プログラムに入力することによって、クライアントから連絡を受け取る。クライアントとＷｅｂアプリケーション・サーバの間の接続は、複数のサーバ・コンピュータ・ノードを含む通信経路を確立することによって提供される。クライアントからＷｅｂアプリケーション・サーバに至る経路内における第１のサーバ・コンピュータ・ノードが、クライアントにトポロジ的に最も近いサーバであり、したがってそれが、そのクライアントにとって最高の性能と最短の待ち時間でストリーミング・サービスを提供する、効率のよいエッジ・サーバであると予想される。
【００１４】
本発明の一実施形態では、このサーバ、すなわちクライアントからＷｅｂアプリケーション・サーバに至る経路内における第１のノードが、Ｗｅｂアプリケーション・サーバまたは関連するメディア要求仲介者によって、所望のファイルのダウンロードをそこから実施するサーバとして選択される。メディア要求仲介者からＷｅｂアプリケーション・サーバを経てクライアントに提供される対応するメタデータは、選択されたサーバを識別するデータを含む。
【００１５】
別の好ましい実施形態では、メディア要求仲介者が、クライアントとＷｅｂアプリケーション・サーバの間の経路内における第１のサーバ・ノードと同じ地理的またはトポロジ的領域に位置する１組の代替サーバを含むファイルを有している。この場合、ダウンロードをそこから実施するサーバは、そのノード自体と同じ地理的／トポロジ的領域内にあるその１組のサーバを含むグループの中から選択される。
【００１６】
このサーバのグループからの特定のサーバの選択は、そのグループにおけるそのサーバの相対的品質重み指数の決定に基づいて行われる。相対的品質重みは、以下の基準、すなわち、サーバ上での所望のメディアの可用性、処理中のトランザクション数、処理リソースの使用率、およびクライアントに至る通信経路内で利用可能な帯域幅のうちの１つまたは複数に基づいて決定することができる。
【００１７】
別の好ましい実施形態では、クライアントからＷｅｂアプリケーション・サーバに至る経路内のその他のサーバ・コンピュータも、特定のサーバの選択に際して考慮に入れられる。さらに、これらの追加サーバのそれぞれがまた、関連する領域内サーバを有することができ、ダウンロードまたはストリーミングあるいはその両方の処理の実施に適したサーバを決定する際に、それらを考慮に入れることもできる。
【００１８】
別の好ましい実施形態では、サーバ・コンピュータが異なるデータ形式のストリーム・サーバを含むことができる。そのサーバ・コンピュータ上で利用可能なメディアの形式が、要求元クライアントが必要とする形式と異なる場合でも、このサーバ・コンピュータを、選択対象のサーバ・コンピュータとすることができる。この場合、サーバ・コンピュータ上で利用可能なデータ形式は、「オン・ザ・フライ（on the fly）」で所望の形式に変換され、次いで、クライアントにストリーミングされる。
【００１９】
本発明の具体的な適用分野は、移動通信であり、特に、ＵＭＴＳなどのディジタル電話に関するものである。この場合、クライアントは、ＭＰ３プレイヤを組み込んだ移動電話、個人用ディジタル補助装置、あるいは、無線インタフェースを備えるラップトップやパームトップ・コンピュータなどの携帯用コンピュータなど、任意のモバイル装置とすることができる。
【００２０】
本発明の具体的な利点は、サーバをその品質重みに基づいて選択することにより、コンピュータ処理または帯域幅リソースあるいはその両方の分配に関して、コンピュータ・ネットワークの平衡が保たれることである。それによって、全体のシステム・スループットを最適化することができる。
【００２１】
本発明を例示して説明するが、本発明は添付の図面中の各図によって限定されるものではない。
【発明を実施するための最良の形態】
【００２２】
図１のコンピュータ・システムはクライアント１を有する。クライアント１はＷｅｂブラウザと、たとえばIBM Video Charger Playerなどのメディア・プレイヤ２を備える。
【００２３】
クライアント１は、自分のＷｅｂブラウザを用い、エッジ・サーバＥＳ１、ＥＳ２、ＥＳ３、ＥＳ４および図１に示さないその他のエッジ・サーバを含むインターネットなどのコンピュータ・ネットワークを介して、Ｗｅｂアプリケーション・サーバ３に接続することができる。エッジ・サーバＥＳ１は、メディア・キャッシュ制御装置４、ストリーム・サーバ５およびキャッシュ６を備える。
【００２４】
ストリーム・サーバは、クライアント１の対応するメディア・プレイヤ２をインタフェースするIBM Video Chargerとすることができる。ストリーミング処理はキャッシュ６から実施される。メディア・キャッシュ制御装置４は、ストリーム・サーバ５およびそのキャッシュ６の状況および動作を制御し分析する。
【００２５】
特に、メディア・キャッシュ制御装置４は、現在のシステム状況を評価して、システムの負荷を示す品質重みを提供する。品質重みは、以下の基準、すなわち、キャッシュ６内の選択されたファイルの可用性、クライアント１への接続に利用可能な帯域幅、エッジ・サーバＥＳ１の処理リソースの使用率またはその他の基準あるいはその両方のうち１つまたは複数を含むことができる。
【００２６】
さらに、エッジ・サーバＥＳ１は、エッジ・サーバＥＳ１の識別子ＩＤ１を記憶するためのメモリ７を備える。メモリ７にはフック８が結合される。
【００２７】
エッジ・サーバのそれぞれは、クライアントとＷｅｂアプリケーション・サーバからのｈｔｔｐ要求と応答を受け渡す。クライアントからｈｔｔｐ要求が来るたびに、エッジ・サーバはフック８を呼び出し、このｈｔｔｐ要求を渡す。
【００２８】
フックは、このｈｔｔｐ要求に、その要求をメディア要求であると識別する一意のシグニチャがあるかどうか検査する。フックは、このシグニチャを識別すると、その識別子ＩＤ１をｈｔｔｐ要求に付加し、その要求をエッジ・サーバに戻す。エッジ・サーバは、次のエッジ・サーバＥＳ２・・・ＥＳｎがあれば、それにその要求を送信し、なければ、アプリケーション・サーバに送信する。
【００２９】
クライアント１とＷｅｂアプリケーション・サーバ３の間の通信経路内にあるその他のエッジ・サーバＥＳ２、ＥＳ３、およびＥＳ４は、エッジ・サーバＥＳ１と同じまたは類似の構成のものである。
【００３０】
図１のコンピュータ・システムは、選択されたメディア１０を記憶するメディア・サーバ９をさらに含む。メディア・サーバ９は、メディア１０を対応するエッジ・サーバにダウンロードするために、エッジ・サーバＥＳ１〜ＥＳ４のいずれか１つに結合することができる。
【００３１】
Ｗｅｂアプリケーション・サーバ３は、メディア要求仲介者１１に結合される。メディア要求仲介者１１は、クライアント１への所望のデータのストリーミング処理を実施するために、エッジ・サーバＥＳ１〜ＥＳ４の１つまたは別のエッジ・サーバを選択する。メディア要求仲介者１１によるこのサーバの選択に基づき、Ｗｅｂアプリケーション・サーバがクライアント１用のメタデータを生成する。
【００３２】
Ｗｅｂアプリケーション・サーバは、クライアント１とＷｅｂアプリケーション・サーバ３の間の通信経路内に含まれるエッジ・サーバの１つまたは複数を示すデータが付加されたクライアントのｈｔｔｐ要求を、少なくとも一時的に記憶するためのメモリ１２を備える。
【００３３】
Ｗｅｂアプリケーション・サーバは、クライアント１がメディア１０へのハイパーリンクをクリックするとき、このｈｔｔｐ要求によって呼び出されるサーブレット１４をさらに含む。
【００３４】
動作に際しては、クライアント１が、そのＷｅｂブラウザ・プログラムでＷｅｂページ１３中のハイパーリンクをクリックし、インターネットを介してＷｅｂアプリケーション・サーバ３に所望のメディアを要求する。上記ですでに詳細に説明したように、Ｗｅｂブラウザは対応するｈｔｔｐ要求を生成し、その要求がエッジ・サーバＥＳ１〜ＥＳ４を経由して経路指定され、その結果、それらのエッジ・サーバを含む通信経路ができる。
【００３５】
この通信経路が確立される際に、エッジ・サーバＥＳ１のフック８がｈｔｔｐ要求に、その識別子ＩＤ１を付加する情報を加える。同様に、その他のエッジ・サーバＥＳ２〜ＥＳ４も、ｈｔｔｐ要求に対応するデータを付加する。
【００３６】
したがって、その結果生じるｈｔｔｐ要求は、元のＵＲＬに識別子ＩＤ１〜ＩＤ４を示すデータを加えたものからなる。
【００３７】
その後、クライアントのｈｔｔｐ要求中に含まれるすべての情報と共に、サーブレット１４が呼び出され、それが、少なくともその拡張子をメディア要求仲介者１１に転送する。
【００３８】
メディア要求仲介者は、クライアント１に所望のファイル１０をストリーミングするためのサーバとして適切なエッジ・サーバを選択するに当たって、様々な選択肢を有する。一選択肢は、インターネットを介して設定されたＷｅｂアプリケーション・サーバ３に至る通信経路内で、クライアント１に最も近いエッジ・サーバとしてエッジ・サーバＥＳ１を選択することである。
【００３９】
最も近いエッジ・サーバＥＳ１はまた、最大の帯域幅を提供すると想定される。エッジ・サーバＥＳ１の識別は、メディア要求仲介者が、各エッジ・サーバＥＳ１〜ＥＳｎ上で稼動するフックが提供する付加拡張子を分析することによって決定する。
【００４０】
メディア要求仲介者１１は、この情報に基づき、クライアント１がストリーム・サーバにアクセスするのに必要なメタデータを生成する。メタデータはストリーム・サーバ５の完全なネットワーク・アドレス（たとえば、ＩＰアドレスおよびポート）を含み、所望のメディア１０へのアクセスのためのキーが、Ｗｅｂアプリケーション・サーバ３からクライアント１に提供される。
【００４１】
メタデータの受信に応答して、クライアント１がエッジ・サーバＥＳ１、詳細にはストリーム・サーバ５に接続し、ストリーミング処理を呼び出す。所望のメディア１０がすでにキャッシュ６から入手可能な場合は、直ちにストリーミングを開始する。
【００４２】
そうでない場合は、最初に、メディア・サーバ９からエッジ・サーバＥＳ１のキャッシュ６へのファイル１０のダウンロード処理を開始する必要がある。
【００４３】
あるいは、メディア要求仲介者はまた、サーブレット１４が提供する拡張子によって識別されるその他のエッジ・サーバＥＳ２〜ＥＳ４を考慮に入れることもできる。いずれにしても、メディア要求仲介者１１は、対応するエッジ・サーバＥＳ１〜ＥＳ４のメディア・キャッシュ制御装置４によって提供される品質重みを評価して、最適なエッジ・サーバを選択する。
【００４４】
たとえば、エッジ・サーバＥＳ２は、すでにそのキャッシュ６にメディア１０を含んでいるが、そのメディア１０がエッジ・サーバＥＳ１のキャッシュ６からは利用できないことがある。この場合、エッジ・サーバＥＳ１の方がクライアントにより近くても、ＥＳ２がすでに必要なデータを有しているため、エッジ・サーバＥＳ２の品質重みはエッジ・サーバＥＳ１の品質重みより大きい。
【００４５】
同様に、他の理由で、メディア要求仲介者によって、エッジ・サーバＥＳ２または別のエッジ・サーバが選択されることがある。たとえば、エッジ・サーバＥＳ１に過負荷がかかっている、エッジ・サーバＥＳ１のストリーム・サーバ５がダウンしている、あるいは必要なデータ形式を備えていないなどの理由である。
【００４６】
図２に、本発明の別の好ましい実施形態を示す。図中、類似の要素は同じ参照番号で表す。図２のコンピュータ・システムのエッジ・サーバＥＳ１は、追加のメディア・キャッシュ制御装置１５、ストリーム・サーバ１６およびキャッシュ１７を備える。ストリーム・サーバ１６は、ストリーム・サーバ５と異なる形式をストリーミングすることができる。この場合もやはり、エッジ・サーバＥＳ１は、メモリ７およびフック８を備える。
【００４７】
前述の実施形態の場合と同じく、フック８は、クライアント１が提供するｈｔｔｐ要求に拡張子を提供して、エッジ・サーバＥＳ１の識別子ＩＤ１を示す情報を付加する働きをする。
【００４８】
第２の階層レベルでは、エッジ・サーバＥＳ１はメディア・エッジ制御装置１８を備え、それが個々のストリーム・サーバ５および１６のメディア・キャッシュ制御装置４および１５と交信する。
【００４９】
さらに、このコンピュータ・システムはエッジ・サーバＥＳ１ａ、ＥＳ１ｂ、ＥＳ１ｃ、ＥＳ１ｄを含み、それらは、エッジ・サーバＥＳ１と同じ地理的／トポロジ的領域または区域１９に位置している。同様に、その他のエッジ・サーバＥＳ２〜ＥＳ４を、それぞれの領域または区域内にある、対応する追加のエッジ・サーバに関連付けることもできる。
【００５０】
この状況は、メディア要求仲介者１１が保管するデータベース２０に反映される。データベース２０は、各領域または区域のエッジ・サーバをグループ化する。たとえば、領域１９の場合、データベース２０は、エッジ・サーバＥＳ１を追加のエッジ・サーバＥＳ１ａ〜ＥＳ１ｄに割り当てる。データベース２０は、その他のエッジ・サーバＥＳ２〜ＥＳ４について同様のエントリを含むことができる。
【００５１】
メディア要求仲介者１１は、サーブレット１４から拡張子を取得すると、クライアント１とＷｅｂアプリケーション・サーバ３の間の経路内における第１のエッジ・サーバ、すなわちエッジ・サーバＥＳ１を識別する。次のステップで、メディア要求仲介者１１は、データベース２０に問い合わせて、エッジ・サーバＥＳ１と同じ地理的／トポロジ的領域１９に位置する追加のエッジ・サーバＥＳ１ａ〜ＥＳ１ｄを識別する。
【００５２】
さらに、メディア要求仲介者１１は、領域１９の、それぞれのエッジ・サーバ・グループのメディア・キャッシュ制御装置またはメディア・エッジ制御装置あるいはその両方から、相対的品質重みを取得する。メディア要求仲介者１１は、このエッジ・サーバ・グループから最高の品質重みを提供するストリーム・サーバを選択する。
【００５３】
このエッジ・サーバ・グループ中のストリーム・サーバの最高品質重みが、たとえば、それが事前定義された閾値を下回るなどの理由で、不十分である場合、メディア要求仲介者１１は、次のエッジ・サーバＥＳ２と、図２に示さない関連する領域内の追加のエッジ・サーバ・グループに対して同等の処理を実施して、十分な品質重みを有するストリーム・サーバを探索する。
【００５４】
このプロセスの結果、メディア要求仲介者１１がＷｅｂアプリケーション・サーバ３にストリーム・サーバのアドレスを返し、それに基づいてクライアント１用のメタデータが生成される。
【００５５】
図２の実施形態では、メディア要求仲介者１１は、たとえば、エッジ・サーバＥＳ１をストリーム・サーバ１６と一緒に選択することもできる。それは、ストリーミングされる実際のメディアが、ストリーム・サーバ５の形式でストリーム・サーバ５のキャッシュにしか存在せず、その形式がクライアント側のメディア・プレイヤ２に必要な形式と互換性をもたない場合であっても可能である。というのは、エッジ・サーバＥＳ１が、ストリーム・サーバ１６によって提供されるデータをメディア・プレイヤ２に必要な形式に変換するための変換プログラムを備えているからである。
【００５６】
この変換は、メディア・エッジ制御装置に対応するメッセージを用いて、メディア要求仲介者によって開始される。この例では、ストリーム・サーバ１６のキャッシュから取り出された要求メディアが変換され、変換後のメディアがストリーム・サーバ５のキャッシュに記憶される。その後、ストリーム・サーバ５を指し示すメタファイルが生成され、ストリーム・サーバ５からメディア・プレイヤにそのメディアがストリーミングされることになる。
【００５７】
次に、図３に関して、本発明の方法の好ましい実施形態をより詳細に説明する。ステップ１で、クライアントが、メディア・オブジェクト（たとえば、メディア・ファイル）へのハイパーリンクを含むＷｅｂページに接続する。ステップ２で、クライアントがハイパーリンクをクリックして、メディアを選択する。
【００５８】
ステップ３で、Ｗｅｂブラウザが、メディア要求の一意のシグニチャを含むｈｔｔｐ要求を生成する。
【００５９】
ステップ４は、以下のステップ５、６、７を含むＦｏｒ−Ｎｅｘｔループである。
【００６０】
すべてのエッジ・サーバ１〜ｎについて、
エッジ・サーバＥＳｍにｈｔｔｐ要求を渡す。
エッジ・サーバＥＳｍでフックを呼び出す。
フックのメディア要求シグニチャの有無を検査する。
（ステップ５）
【００６１】
ステップ６で、メディア要求シグニチャの有無が決定される。メディア要求シグニチャがある場合は、ステップ７で、ｈｔｔｐ要求にエッジ・サーバＥＳｍのＩＤが付加され、ｍを増分してステップ５に戻る。そうでない場合は、ｍがｎ以下である間、直接ｍを増分し、ステップ５に戻る。
【００６２】
ステップ８で、ｈｔｔｐ要求がＷｅｂアプリケーション・サーバに到達する。次にステップ９で、Ｗｅｂアプリケーション・サーバがサーブレットを呼び出し、ＵＲＬおよびエッジ・サーバの拡張子をサーブレットに渡す。
【００６３】
ステップ１０で、サーブレットがＵＲＬの拡張子にアクセスし、ステップ１１でその拡張子をメディア要求仲介者に提供する。
【００６４】
ステップ１２で、メディア要求仲介者は、拡張子に基づいて、可能なエッジ・サーバの品質重みを決定する。可能なエッジ・サーバとは、クライアントとＷｅｂページの間の通信経路内における第１のエッジ・サーバ、すなわち、エッジ・サーバＥＳ１もしくはエッジ・サーバＥＳ１の領域内グループのうちのエッジ・サーバまたはエッジ・サーバＥＳ２〜ＥＳ４もしくはエッジ・サーバＥＳ２〜ＥＳ４の対応する領域内グループの１つあるいはその両方である。
【００６５】
ステップ１３で、メディア要求仲介者は、ステップ１２で決定した品質重みに基づき、適切なエッジ・サーバを選択する。
【００６６】
選択されたエッジ・サーバに基づき、ステップ１４で対応するメディア・データが生成され、ステップ１５でそれがクライアントに送信される。
【００６７】
クライアントは、ステップ１６０で、メタデータ中に示されるエッジ・サーバに接続し、ストリーミングを開始するためのキーをエッジ・サーバに提供する。ステップ１７で、ストリーミングを実際に開始する。
【００６８】
定義
１．クライアント・コンピュータにデータを送信するために、第１のサーバ・コンピュータを選択する方法。この方法は以下のステップを含む。
−コンピュータ・ネットワーク内の経路を介して第２のサーバ・コンピュータにアクセスする。この経路は第１組のサーバ・コンピュータを含む。
−第２のサーバ・コンピュータ上にあるリソースのロケータに、第１組のサーバ・コンピュータのうち少なくとも１つのサーバ・コンピュータを示す情報を付加する。このリソースは、その識別子の一部として一意のシグニチャを含む。
−ロケータに付加された情報に基づき、第１のサーバ・コンピュータを選択する。
【００６９】
２．第２のサーバ・コンピュータが、クライアントに送信されるデータを参照するハイパーリンクを有するＷｅｂページを含むＷｅｂアプリケーション・サーバであり、ハイパーリンクが一意のシグニチャを含む、定義１の方法。この方法はさらに、クライアントがハイパーリンクを選択し、その後、Ｗｅｂブラウザがこのハイパーリンクからｈｔｔｐ要求を生成するステップを含む。このｈｔｔｐ要求は、メディア要求を識別する一意のシグニチャを含む。
【００７０】
３．以下のステップをさらに含む、定義１または２の方法。
−第２のサーバ・コンピュータ上にあるロケータに付加された情報を、少なくとも一時的に記憶する。
−クライアントによるハイパーリンクの選択に応答して、メディア要求仲介者にその情報を提供する。
【００７１】
４．メディア要求仲介者が、情報に基づいて、第１のサーバ・コンピュータを選択する、定義１、２または３のいずれか一項の方法。
【００７２】
５．以下のステップをさらに含む、前述の定義１ないし４のいずれか一項の方法。
−経路内のサーバ・コンピュータの少なくとも１つの品質重みを決定する。
−品質重みに基づき、第１組のサーバ・コンピュータから第１のサーバ・コンピュータを選択する。
【００７３】
６．以下のステップをさらに含む、前述の定義１ないし５のいずれか一項の方法。
−第１組のサーバ・コンピュータ中のサーバ・コンピュータと同じ地理的／トポロジ的区域内にある、第２組のサーバ・コンピュータの１組のロケータを記憶する。
−第１のサーバ・コンピュータを選択するために、その第２組のサーバ・コンピュータの少なくとも１つの品質重みを決定する。
【００７４】
７．以下のステップをさらに含む、前述の定義１ないし６のいずれか一項の方法。
−メディア要求仲介者に情報を提供する。この情報は、第１組のサーバ・コンピュータのうち経路内における第１のノードであるサーバ・コンピュータを示す。
−その情報に基づいて、経路内における第１のサーバ・コンピュータ・ノードと、第２組のサーバ・コンピュータのうちそのサーバ・コンピュータ・ノードに属するサーバ・コンピュータについて、品質重みを決定する。
−経路内における第１のサーバ・コンピュータ・ノードおよびその１組の第２のサーバ・コンピュータを含むグループから、品質重みが事前定義した閾値より大きいサーバ・コンピュータの１つを選択する。
−第１のグループの品質重みがどれも不十分である場合、経路内の第２のサーバ・コンピュータ・ノードの品質重みを決定する。
【００７５】
８．以下の基準の１つまたは複数に基づいて品質重みが決定される、前述の定義１ないし７のいずれか一項の方法。それらの基準は、サーバ・コンピュータ上のデータの可用性、サーバ・コンピュータ上で処理中のトランザクション数、サーバ・コンピュータ上で使用中の処理リソースの百分比、クライアントとの通信リンク中で使用可能な通信帯域幅である。
【００７６】
９．ストリーム・サーバ（５、１６）、およびクライアント（１）にストリーミングされるデータを記憶またはバッファするあるいはその両方を行う記憶手段（６、１７）と、サーバ・コンピュータの識別子を記憶する手段（７）と、クライアントが提供するロケータに情報を付加する手段（８）とを含み、その情報が識別子を示すサーバ・コンピュータ・システム。
【００７７】
１０．あるストリーム形式から別の形式にデータを変換する手段をさらに含む、定義９のサーバ・コンピュータ・システム。
【００７８】
１１．Ｗｅｂアプリケーション・サーバ（３）およびメディア要求仲介者（１１）を備えるコンピュータ・システム。このＷｅｂアプリケーション・サーバは、クライアント（１）にストリーミングされるメディア（１０）を参照するハイパーリンクを有するＷｅｂページ（１３）、およびコンピュータ・ネットワーク中のクライアントとＷｅｂアプリケーション・サーバの間の通信経路内における第１のノードを示す情報を少なくとも一時的に記憶する手段（１２）と、クライアントによるそのハイパーリンクの選択時に、メディア要求仲介者にその情報を提供する手段（１４）と、その情報に基づいてクライアントにデータをストリーミングするためのストリーム・サーバを選択する手段（２０）とを含む。
【００７９】
１２．クライアントにデータを送信するために、複数のサーバ・コンピュータから第１のサーバ・コンピュータを選択するシステム。このシステムは、前述の定義１ないし８のいずれか一項による方法の各ステップを実行するように適合された手段を備える。
【００８０】
１３．コンピュータ上でそのプログラムを走らせるときに定義１ないし８のいずれか一項による方法を実施するためのソフトウェア・コード部分を含む、データ処理システムで実行するためのデータ処理プログラム。
【００８１】
１４．コンピュータ上でそのプログラムを走らせるときに定義１ないし８のいずれか一項による方法をコンピュータに実施させるコンピュータ可読プログラム手段を含む、コンピュータ使用可能媒体上に記憶されるコンピュータ・プログラム製品。
【図面の簡単な説明】
【００８２】
【図１】本発明によるコンピュータ・システムの第１の実施形態を示す構成図である。
【図２】本発明によるコンピュータ・システムの第２の実施形態を示す構成図である。
【図３】本発明の方法を示す実施形態である。




【手続補正書】
【提出日】平成15年10月16日(2003.10.16)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ通信の分野に関し、詳細には、遠隔地の保管場所にある、オーディオ、ビデオ、業務用情報を含む、ディジタル情報にアクセスし、その情報をユーザ構内に伝えるための、データの配布およびストリーミングに関する。
【背景技術】
【０００２】
国際公開ＷＯ００／２９９９０号は、クライアント／サーバ・コンピュータ・システムのネットワークにおいてメディア・コンテンツ・ファイルの配信を求める要求を処理する方法を開示している。この方法では、クライアントが発信元（origin）サーバに問合せを行って、メディア・コンテンツ・ファイルを記憶する、発信元（origin）サーバに関連するメディア・サーバを捜し出す。また、ネットワーク内のクライアントに近い地点に、ローカル・メディア・キャッシュが配置される。最初に、クライアントが発信元（origin）サーバに、メディア転送ファイル（ＭＲＦ）の配信を要求することによって、メディア・コンテンツ・ファイルの配信を要求する。このメディア転送ファイルは、メディア・サーバからメディア・コンテンツ・ファイルを取得するための命令を指定する転送オブジェクトを含む。クライアントにメディア転送ファイルを配信する前に、メディア転送ファイルが遮断されてその中に含まれる命令が書き換えられ、その結果、クライアントがメディア・コンテンツ・ファイルを、メディア・サーバから直接ではなく、ローカル・メディア・キャッシュから取得する。
【０００３】
米国特許第５，７３４，７１９号には、コンピュータ・ネットワークを介してディジタル情報にアクセスするためのシステムが記載されている。このシステムは、ネットワーク加入者がアクセスできるように地理的に配置されたマスタ・サーバを含む。その地理的位置およびネットワーク上の位置は、それが小売店であれ、同様のＰＯＳ（販売点）であれ、あるいはその他のエンド・ユーザの場所であれ、通信ネットワーク・システムおよびサブシステムのコストと、顧客構内に最も有効に対応するための可用性に依存する。また、コンテンツの送信および／または任意の製品の製造に先立ち、集中データベース認可を必要とするセキュリティ機構も提供される。
【０００４】
新しいメディア・データは、イメージ、映画、音声、オーディオおよびビデオを組み込むことにより、従来のコンピュータ・データ形式を、人間とコンピュータが対話するためのより自然なデータ形式に拡張する。新しいメディア・データに伴う主要な問題の１つは、それが、ネットワークを介して、通例、膨大な量のコンテンツを転送することである。
【０００５】
ストリーム・サーバは、ストリーミングされるすべてのデータが、そのストリーム・サーバ上にローカルで存在することを必要とする。レンダリング・クライアント（メディア・プレイヤ）への接続帯域幅は、少なくとも送信されるデータの性質に対応する要件を満たしていなければならない。このため、ストリーム・サーバは、いわゆるエッジ・サーバ（クライアントに至る接続経路中のネットワークの端部、「ラスト・マイル」とも呼ばれる）上に配置される。
【０００６】
ストリーミング処理を開始するには、そのストリームを要求しているレンダリング側クライアント（メディア・プレイヤ）に、ストリーミング・メタデータを提供する必要がある。このメタデータまたはメタファイルは、通常、少なくともストリーミングされるメディア・データの識別（キー）と、たとえば、ストリーム・サーバ・マシンのＴＣＰ／ＩＰホスト名およびストリーム・サーバのソフトウェアが聴取するポートなど、そのストリーム・サーバの識別とを含む。
【０００７】
ユーザが自分のクライアントへのメディアのストリーミングを望むとき、そのユーザは通常、Ｗｅｂブラウザによってユーザに提示される、Ｗｅｂページ上のメディアを識別するハイパーリンクを「クリック」する。Ｗｅｂブラウザは、そのメディアの識別情報を含むｈｔｔｐ要求を生成する。それに対する応答として、アプリケーション・サーバがクライアントのＷｅｂブラウザに、そのメディアのメタデータを送信する。その情報に基づき、Ｗｅｂブラウザは、通常、対応するメディア・プレイヤを呼び出す。メディア・プレイヤは、クライアント上に存在し、ネットワークからメタデータを受信し、ストリーム・サーバへの接続をネゴシエートし、そのデータの受信とレンダリングを並列で処理する任を負う。
【０００８】
今日、ストリーミング技術を実現する方法では、メディア・プレイヤは、通常、同じメーカによって構築される、対応するストリーム・サーバからのストリームしかレンダリングできない。そうした独自開発のストリーム形式の例には、IBM Video Charger/Video Charger Player、アップルQuickTime、マイクロソフトMediaServer/MediaPlayer、リアル・ネットワークスG2
Server/Playerなどがある。
【０００９】
従来技術のデータ転送プロトコル、特に、インターネットなどのコンピュータ・ネットワークを介したストリーミング・プロトコルに共通する問題は、ストリーミング処理を実施するために必要な帯域幅である。
【特許文献１】
国際公開ＷＯ００／２９９９０号
【特許文献２】
米国特許第５，７３４，７１９号
【発明の開示】
【発明が解決しようとする課題】
【００１０】
したがって、本発明の目的は、エッジ・サーバにコンテンツ・データを配布するための改善された方法およびコンピュータ・システムを提供し、特に、ストリーミング・サービスを要求するクライアントに対してトポロジ的に最も近くに位置する、エッジ・サーバまたは受け入れ可能な代替エッジ・サーバを選択することである。
【課題を解決するための手段】
【００１１】
本発明の目的は、添付の独立請求項に記載する特徴によって達成される。それについては以下で言及する。本発明の他の有利な構成および実施形態は、それぞれの従属請求項に記載する。
【００１２】
本発明は、クライアントがアプリケーション・サーバにストリーミングを求める要求を送信する際に接続される、エッジ・サーバの位置を決定できるようにする。この決定は、クライアントのｈｔｔｐ要求に、クライアントが、ダウンロードまたはストリーミングあるいはその両方用のファイルを選択するために連絡をつけるＷｅｂアプリケーション・サーバに至る途中で、メディア識別子を含む情報を付加することによって行われる。
【００１３】
通常、Ｗｅｂアプリケーション・サーバは、クライアントが対応するＵＲＬ（uniform
resource locator）をクライアントのＷｅｂブラウザ・プログラムに入力することによって、クライアントから連絡を受け取る。クライアントとＷｅｂアプリケーション・サーバの間の接続は、複数のサーバ・コンピュータ・ノードを含む通信経路を確立することによって提供される。クライアントからＷｅｂアプリケーション・サーバに至る経路内における第１のサーバ・コンピュータ・ノードが、クライアントにトポロジ的に最も近いサーバであり、したがってそれが、そのクライアントにとって最高の性能と最短の待ち時間でストリーミング・サービスを提供する、効率のよいエッジ・サーバであると予想される。
【００１４】
本発明の一実施形態では、このサーバ、すなわちクライアントからＷｅｂアプリケーション・サーバに至る経路内における第１のノードが、Ｗｅｂアプリケーション・サーバまたは関連するメディア要求仲介者によって、所望のファイルのダウンロードをそこから実施するサーバとして選択される。メディア要求仲介者からＷｅｂアプリケーション・サーバを経てクライアントに提供される対応するメタデータは、選択されたサーバを識別するデータを含む。
【００１５】
別の好ましい実施形態では、メディア要求仲介者が、クライアントとＷｅｂアプリケーション・サーバの間の経路内における第１のサーバ・ノードと同じ地理的またはトポロジ的領域に位置する１組の代替サーバを含むファイルを有している。この場合、ダウンロードをそこから実施するサーバは、そのノード自体と同じ地理的／トポロジ的領域内にあるその１組のサーバを含むグループの中から選択される。
【００１６】
このサーバのグループからの特定のサーバの選択は、そのグループにおけるそのサーバの相対的品質重み指数の決定に基づいて行われる。相対的品質重みは、以下の基準、すなわち、サーバ上での所望のメディアの可用性、処理中のトランザクション数、処理リソースの使用率、およびクライアントに至る通信経路内で利用可能な帯域幅のうちの１つまたは複数に基づいて決定することができる。
【００１７】
別の好ましい実施形態では、クライアントからＷｅｂアプリケーション・サーバに至る経路内のその他のサーバ・コンピュータも、特定のサーバの選択に際して考慮に入れられる。さらに、これらの追加サーバのそれぞれがまた、関連する領域内サーバを有することができ、ダウンロードまたはストリーミングあるいはその両方の処理の実施に適したサーバを決定する際に、それらを考慮に入れることもできる。
【００１８】
別の好ましい実施形態では、サーバ・コンピュータが異なるデータ形式のストリーム・サーバを含むことができる。そのサーバ・コンピュータ上で利用可能なメディアの形式が、要求元クライアントが必要とする形式と異なる場合でも、このサーバ・コンピュータを、選択対象のサーバ・コンピュータとすることができる。この場合、サーバ・コンピュータ上で利用可能なデータ形式は、「オン・ザ・フライ（on the fly）」で所望の形式に変換され、次いで、クライアントにストリーミングされる。
【００１９】
本発明の具体的な適用分野は、移動通信であり、特に、ＵＭＴＳなどのディジタル電話に関するものである。この場合、クライアントは、ＭＰ３プレイヤを組み込んだ移動電話、個人用ディジタル補助装置、あるいは、無線インタフェースを備えるラップトップやパームトップ・コンピュータなどの携帯用コンピュータなど、任意のモバイル装置とすることができる。
【００２０】
本発明の具体的な利点は、サーバをその品質重みに基づいて選択することにより、コンピュータ処理または帯域幅リソースあるいはその両方の分配に関して、コンピュータ・ネットワークの平衡が保たれることである。それによって、全体のシステム・スループットを最適化することができる。
【００２１】
本発明を例示して説明するが、本発明は添付の図面中の各図によって限定されるものではない。
【発明を実施するための最良の形態】
【００２２】
図１のコンピュータ・システムはクライアント１を有する。クライアント１はＷｅｂブラウザと、たとえばIBM Video Charger Playerなどのメディア・プレイヤ２を備える。
【００２３】
クライアント１は、自分のＷｅｂブラウザを用い、エッジ・サーバＥＳ１、ＥＳ２、ＥＳ３、ＥＳ４および図１に示さないその他のエッジ・サーバを含むインターネットなどのコンピュータ・ネットワークを介して、Ｗｅｂアプリケーション・サーバ３に接続することができる。エッジ・サーバＥＳ１は、メディア・キャッシュ制御装置４、ストリーム・サーバ５およびキャッシュ６を備える。
【００２４】
ストリーム・サーバは、クライアント１の対応するメディア・プレイヤ２をインタフェースするIBM Video Chargerとすることができる。ストリーミング処理はキャッシュ６から実施される。メディア・キャッシュ制御装置４は、ストリーム・サーバ５およびそのキャッシュ６の状況および動作を制御し分析する。
【００２５】
特に、メディア・キャッシュ制御装置４は、現在のシステム状況を評価して、システムの負荷を示す品質重みを提供する。品質重みは、以下の基準、すなわち、キャッシュ６内の選択されたファイルの可用性、クライアント１への接続に利用可能な帯域幅、エッジ・サーバＥＳ１の処理リソースの使用率またはその他の基準あるいはその両方のうち１つまたは複数を含むことができる。
【００２６】
さらに、エッジ・サーバＥＳ１は、エッジ・サーバＥＳ１の識別子ＩＤ１を記憶するためのメモリ７を備える。メモリ７にはフック８が結合される。
【００２７】
エッジ・サーバのそれぞれは、クライアントとＷｅｂアプリケーション・サーバからのｈｔｔｐ要求と応答を受け渡す。クライアントからｈｔｔｐ要求が来るたびに、エッジ・サーバはフック８を呼び出し、このｈｔｔｐ要求を渡す。
【００２８】
フックは、このｈｔｔｐ要求に、その要求をメディア要求であると識別する一意のシグニチャがあるかどうか検査する。フックは、このシグニチャを識別すると、その識別子ＩＤ１をｈｔｔｐ要求に付加し、その要求をエッジ・サーバに戻す。エッジ・サーバは、次のエッジ・サーバＥＳ２・・・ＥＳｎがあれば、それにその要求を送信し、なければ、アプリケーション・サーバに送信する。
【００２９】
クライアント１とＷｅｂアプリケーション・サーバ３の間の通信経路内にあるその他のエッジ・サーバＥＳ２、ＥＳ３、およびＥＳ４は、エッジ・サーバＥＳ１と同じまたは類似の構成のものである。
【００３０】
図１のコンピュータ・システムは、選択されたメディア１０を記憶するメディア・サーバ９をさらに含む。メディア・サーバ９は、メディア１０を対応するエッジ・サーバにダウンロードするために、エッジ・サーバＥＳ１〜ＥＳ４のいずれか１つに結合することができる。
【００３１】
Ｗｅｂアプリケーション・サーバ３は、メディア要求仲介者１１に結合される。メディア要求仲介者１１は、クライアント１への所望のデータのストリーミング処理を実施するために、エッジ・サーバＥＳ１〜ＥＳ４の１つまたは別のエッジ・サーバを選択する。メディア要求仲介者１１によるこのサーバの選択に基づき、Ｗｅｂアプリケーション・サーバがクライアント１用のメタデータを生成する。
【００３２】
Ｗｅｂアプリケーション・サーバは、クライアント１とＷｅｂアプリケーション・サーバ３の間の通信経路内に含まれるエッジ・サーバの１つまたは複数を示すデータが付加されたクライアントのｈｔｔｐ要求を、少なくとも一時的に記憶するためのメモリ１２を備える。
【００３３】
Ｗｅｂアプリケーション・サーバは、クライアント１がメディア１０へのハイパーリンクをクリックするとき、このｈｔｔｐ要求によって呼び出されるサーブレット１４をさらに含む。
【００３４】
動作に際しては、クライアント１が、そのＷｅｂブラウザ・プログラムでＷｅｂページ１３中のハイパーリンクをクリックし、インターネットを介してＷｅｂアプリケーション・サーバ３に所望のメディアを要求する。上記ですでに詳細に説明したように、Ｗｅｂブラウザは対応するｈｔｔｐ要求を生成し、その要求がエッジ・サーバＥＳ１〜ＥＳ４を経由して経路指定され、その結果、それらのエッジ・サーバを含む通信経路ができる。
【００３５】
この通信経路が確立される際に、エッジ・サーバＥＳ１のフック８がｈｔｔｐ要求に、その識別子ＩＤ１を付加する情報を加える。同様に、その他のエッジ・サーバＥＳ２〜ＥＳ４も、ｈｔｔｐ要求に対応するデータを付加する。
【００３６】
したがって、その結果生じるｈｔｔｐ要求は、元のＵＲＬに識別子ＩＤ１〜ＩＤ４を示すデータを加えたものからなる。
【００３７】
その後、クライアントのｈｔｔｐ要求中に含まれるすべての情報と共に、サーブレット１４が呼び出され、それが、少なくともその拡張子をメディア要求仲介者１１に転送する。
【００３８】
メディア要求仲介者は、クライアント１に所望のファイル１０をストリーミングするためのサーバとして適切なエッジ・サーバを選択するに当たって、様々な選択肢を有する。一選択肢は、インターネットを介して設定されたＷｅｂアプリケーション・サーバ３に至る通信経路内で、クライアント１に最も近いエッジ・サーバとしてエッジ・サーバＥＳ１を選択することである。
【００３９】
最も近いエッジ・サーバＥＳ１はまた、最大の帯域幅を提供すると想定される。エッジ・サーバＥＳ１の識別は、メディア要求仲介者が、各エッジ・サーバＥＳ１〜ＥＳｎ上で稼動するフックが提供する付加拡張子を分析することによって決定する。
【００４０】
メディア要求仲介者１１は、この情報に基づき、クライアント１がストリーム・サーバにアクセスするのに必要なメタデータを生成する。メタデータはストリーム・サーバ５の完全なネットワーク・アドレス（たとえば、ＩＰアドレスおよびポート）を含み、所望のメディア１０へのアクセスのためのキーが、Ｗｅｂアプリケーション・サーバ３からクライアント１に提供される。
【００４１】
メタデータの受信に応答して、クライアント１がエッジ・サーバＥＳ１、詳細にはストリーム・サーバ５に接続し、ストリーミング処理を呼び出す。所望のメディア１０がすでにキャッシュ６から入手可能な場合は、直ちにストリーミングを開始する。
【００４２】
そうでない場合は、最初に、メディア・サーバ９からエッジ・サーバＥＳ１のキャッシュ６へのファイル１０のダウンロード処理を開始する必要がある。
【００４３】
あるいは、メディア要求仲介者はまた、サーブレット１４が提供する拡張子によって識別されるその他のエッジ・サーバＥＳ２〜ＥＳ４を考慮に入れることもできる。いずれにしても、メディア要求仲介者１１は、対応するエッジ・サーバＥＳ１〜ＥＳ４のメディア・キャッシュ制御装置４によって提供される品質重みを評価して、最適なエッジ・サーバを選択する。
【００４４】
たとえば、エッジ・サーバＥＳ２は、すでにそのキャッシュ６にメディア１０を含んでいるが、そのメディア１０がエッジ・サーバＥＳ１のキャッシュ６からは利用できないことがある。この場合、エッジ・サーバＥＳ１の方がクライアントにより近くても、ＥＳ２がすでに必要なデータを有しているため、エッジ・サーバＥＳ２の品質重みはエッジ・サーバＥＳ１の品質重みより大きい。
【００４５】
同様に、他の理由で、メディア要求仲介者によって、エッジ・サーバＥＳ２または別のエッジ・サーバが選択されることがある。たとえば、エッジ・サーバＥＳ１に過負荷がかかっている、エッジ・サーバＥＳ１のストリーム・サーバ５がダウンしている、あるいは必要なデータ形式を備えていないなどの理由である。
【００４６】
図２に、本発明の別の好ましい実施形態を示す。図中、類似の要素は同じ参照番号で表す。図２のコンピュータ・システムのエッジ・サーバＥＳ１は、追加のメディア・キャッシュ制御装置１５、ストリーム・サーバ１６およびキャッシュ１７を備える。ストリーム・サーバ１６は、ストリーム・サーバ５と異なる形式をストリーミングすることができる。この場合もやはり、エッジ・サーバＥＳ１は、メモリ７およびフック８を備える。
【００４７】
前述の実施形態の場合と同じく、フック８は、クライアント１が提供するｈｔｔｐ要求に拡張子を提供して、エッジ・サーバＥＳ１の識別子ＩＤ１を示す情報を付加する働きをする。
【００４８】
第２の階層レベルでは、エッジ・サーバＥＳ１はメディア・エッジ制御装置１８を備え、それが個々のストリーム・サーバ５および１６のメディア・キャッシュ制御装置４および１５と交信する。
【００４９】
さらに、このコンピュータ・システムはエッジ・サーバＥＳ１ａ、ＥＳ１ｂ、ＥＳ１ｃ、ＥＳ１ｄを含み、それらは、エッジ・サーバＥＳ１と同じ地理的／トポロジ的領域または区域１９に位置している。同様に、その他のエッジ・サーバＥＳ２〜ＥＳ４を、それぞれの領域または区域内にある、対応する追加のエッジ・サーバに関連付けることもできる。
【００５０】
この状況は、メディア要求仲介者１１が保管するデータベース２０に反映される。データベース２０は、各領域または区域のエッジ・サーバをグループ化する。たとえば、領域１９の場合、データベース２０は、エッジ・サーバＥＳ１を追加のエッジ・サーバＥＳ１ａ〜ＥＳ１ｄに割り当てる。データベース２０は、その他のエッジ・サーバＥＳ２〜ＥＳ４について同様のエントリを含むことができる。
【００５１】
メディア要求仲介者１１は、サーブレット１４から拡張子を取得すると、クライアント１とＷｅｂアプリケーション・サーバ３の間の経路内における第１のエッジ・サーバ、すなわちエッジ・サーバＥＳ１を識別する。次のステップで、メディア要求仲介者１１は、データベース２０に問い合わせて、エッジ・サーバＥＳ１と同じ地理的／トポロジ的領域１９に位置する追加のエッジ・サーバＥＳ１ａ〜ＥＳ１ｄを識別する。
【００５２】
さらに、メディア要求仲介者１１は、領域１９の、それぞれのエッジ・サーバ・グループのメディア・キャッシュ制御装置またはメディア・エッジ制御装置あるいはその両方から、相対的品質重みを取得する。メディア要求仲介者１１は、このエッジ・サーバ・グループから最高の品質重みを提供するストリーム・サーバを選択する。
【００５３】
このエッジ・サーバ・グループ中のストリーム・サーバの最高品質重みが、たとえば、それが事前定義された閾値を下回るなどの理由で、不十分である場合、メディア要求仲介者１１は、次のエッジ・サーバＥＳ２と、図２に示さない関連する領域内の追加のエッジ・サーバ・グループに対して同等の処理を実施して、十分な品質重みを有するストリーム・サーバを探索する。
【００５４】
このプロセスの結果、メディア要求仲介者１１がＷｅｂアプリケーション・サーバ３にストリーム・サーバのアドレスを返し、それに基づいてクライアント１用のメタデータが生成される。
【００５５】
図２の実施形態では、メディア要求仲介者１１は、たとえば、エッジ・サーバＥＳ１をストリーム・サーバ１６と一緒に選択することもできる。それは、ストリーミングされる実際のメディアが、ストリーム・サーバ５の形式でストリーム・サーバ５のキャッシュにしか存在せず、その形式がクライアント側のメディア・プレイヤ２に必要な形式と互換性をもたない場合であっても可能である。というのは、エッジ・サーバＥＳ１が、ストリーム・サーバ１６によって提供されるデータをメディア・プレイヤ２に必要な形式に変換するための変換プログラムを備えているからである。
【００５６】
この変換は、メディア・エッジ制御装置に対応するメッセージを用いて、メディア要求仲介者によって開始される。この例では、ストリーム・サーバ１６のキャッシュから取り出された要求メディアが変換され、変換後のメディアがストリーム・サーバ５のキャッシュに記憶される。その後、ストリーム・サーバ５を指し示すメタファイルが生成され、ストリーム・サーバ５からメディア・プレイヤにそのメディアがストリーミングされることになる。
【００５７】
次に、図３に関して、本発明の方法の好ましい実施形態をより詳細に説明する。ステップ１で、クライアントが、メディア・オブジェクト（たとえば、メディア・ファイル）へのハイパーリンクを含むＷｅｂページに接続する。ステップ２で、クライアントがハイパーリンクをクリックして、メディアを選択する。
【００５８】
ステップ３で、Ｗｅｂブラウザが、メディア要求の一意のシグニチャを含むｈｔｔｐ要求を生成する。
【００５９】
ステップ４は、以下のステップ５、６、７を含むＦｏｒ−Ｎｅｘｔループである。
【００６０】
すべてのエッジ・サーバ１〜ｎについて、
エッジ・サーバＥＳｍにｈｔｔｐ要求を渡す。
エッジ・サーバＥＳｍでフックを呼び出す。
フックのメディア要求シグニチャの有無を検査する。
（ステップ５）
【００６１】
ステップ６で、メディア要求シグニチャの有無が決定される。メディア要求シグニチャがある場合は、ステップ７で、ｈｔｔｐ要求にエッジ・サーバＥＳｍのＩＤが付加され、ｍを増分してステップ５に戻る。そうでない場合は、ｍがｎ以下である間、直接ｍを増分し、ステップ５に戻る。
【００６２】
ステップ８で、ｈｔｔｐ要求がＷｅｂアプリケーション・サーバに到達する。次にステップ９で、Ｗｅｂアプリケーション・サーバがサーブレットを呼び出し、ＵＲＬおよびエッジ・サーバの拡張子をサーブレットに渡す。
【００６３】
ステップ１０で、サーブレットがＵＲＬの拡張子にアクセスし、ステップ１１でその拡張子をメディア要求仲介者に提供する。
【００６４】
ステップ１２で、メディア要求仲介者は、拡張子に基づいて、可能なエッジ・サーバの品質重みを決定する。可能なエッジ・サーバとは、クライアントとＷｅｂページの間の通信経路内における第１のエッジ・サーバ、すなわち、エッジ・サーバＥＳ１もしくはエッジ・サーバＥＳ１の領域内グループのうちのエッジ・サーバまたはエッジ・サーバＥＳ２〜ＥＳ４もしくはエッジ・サーバＥＳ２〜ＥＳ４の対応する領域内グループの１つあるいはその両方である。
【００６５】
ステップ１３で、メディア要求仲介者は、ステップ１２で決定した品質重みに基づき、適切なエッジ・サーバを選択する。
【００６６】
選択されたエッジ・サーバに基づき、ステップ１４で対応するメディア・データが生成され、ステップ１５でそれがクライアントに送信される。
【００６７】
クライアントは、ステップ１６０で、メタデータ中に示されるエッジ・サーバに接続し、ストリーミングを開始するためのキーをエッジ・サーバに提供する。ステップ１７で、ストリーミングを実際に開始する。
【００６８】
定義
１．クライアント・コンピュータにデータを送信するために、第１のサーバ・コンピュータを選択する方法。この方法は以下のステップを含む。
−コンピュータ・ネットワーク内の経路を介して第２のサーバ・コンピュータにアクセスする。この経路は第１組のサーバ・コンピュータを含む。
−第２のサーバ・コンピュータ上にあるリソースのロケータに、第１組のサーバ・コンピュータのうち少なくとも１つのサーバ・コンピュータを示す情報を付加する。このリソースは、その識別子の一部として一意のシグニチャを含む。
−ロケータに付加された情報に基づき、第１のサーバ・コンピュータを選択する。
【００６９】
２．第２のサーバ・コンピュータが、クライアントに送信されるデータを参照するハイパーリンクを有するＷｅｂページを含むＷｅｂアプリケーション・サーバであり、ハイパーリンクが一意のシグニチャを含む、定義１の方法。この方法はさらに、クライアントがハイパーリンクを選択し、その後、Ｗｅｂブラウザがこのハイパーリンクからｈｔｔｐ要求を生成するステップを含む。このｈｔｔｐ要求は、メディア要求を識別する一意のシグニチャを含む。
【００７０】
３．以下のステップをさらに含む、定義１または２の方法。
−第２のサーバ・コンピュータ上にあるロケータに付加された情報を、少なくとも一時的に記憶する。
−クライアントによるハイパーリンクの選択に応答して、メディア要求仲介者にその情報を提供する。
【００７１】
４．メディア要求仲介者が、情報に基づいて、第１のサーバ・コンピュータを選択する、定義１、２または３のいずれか一項の方法。
【００７２】
５．以下のステップをさらに含む、前述の定義１ないし４のいずれか一項の方法。
−経路内のサーバ・コンピュータの少なくとも１つの品質重みを決定する。
−品質重みに基づき、第１組のサーバ・コンピュータから第１のサーバ・コンピュータを選択する。
【００７３】
６．以下のステップをさらに含む、前述の定義１ないし５のいずれか一項の方法。
−第１組のサーバ・コンピュータ中のサーバ・コンピュータと同じ地理的／トポロジ的区域内にある、第２組のサーバ・コンピュータの１組のロケータを記憶する。
−第１のサーバ・コンピュータを選択するために、その第２組のサーバ・コンピュータの少なくとも１つの品質重みを決定する。
【００７４】
７．以下のステップをさらに含む、前述の定義１ないし６のいずれか一項の方法。
−メディア要求仲介者に情報を提供する。この情報は、第１組のサーバ・コンピュータのうち経路内における第１のノードであるサーバ・コンピュータを示す。
−その情報に基づいて、経路内における第１のサーバ・コンピュータ・ノードと、第２組のサーバ・コンピュータのうちそのサーバ・コンピュータ・ノードに属するサーバ・コンピュータについて、品質重みを決定する。
−経路内における第１のサーバ・コンピュータ・ノードおよびその１組の第２のサーバ・コンピュータを含むグループから、品質重みが事前定義した閾値より大きいサーバ・コンピュータの１つを選択する。
−第１のグループの品質重みがどれも不十分である場合、経路内の第２のサーバ・コンピュータ・ノードの品質重みを決定する。
【００７５】
８．以下の基準の１つまたは複数に基づいて品質重みが決定される、前述の定義１ないし７のいずれか一項の方法。それらの基準は、サーバ・コンピュータ上のデータの可用性、サーバ・コンピュータ上で処理中のトランザクション数、サーバ・コンピュータ上で使用中の処理リソースの百分比、クライアントとの通信リンク中で使用可能な通信帯域幅である。
【００７６】
９．ストリーム・サーバ（５、１６）、およびクライアント（１）にストリーミングされるデータを記憶またはバッファするあるいはその両方を行う記憶手段（６、１７）と、サーバ・コンピュータの識別子を記憶する手段（７）と、クライアントが提供するロケータに情報を付加する手段（８）とを含み、その情報が識別子を示すサーバ・コンピュータ・システム。
【００７７】
１０．あるストリーム形式から別の形式にデータを変換する手段をさらに含む、定義９のサーバ・コンピュータ・システム。
【００７８】
１１．Ｗｅｂアプリケーション・サーバ（３）およびメディア要求仲介者（１１）を備えるコンピュータ・システム。このＷｅｂアプリケーション・サーバは、クライアント（１）にストリーミングされるメディア（１０）を参照するハイパーリンクを有するＷｅｂページ（１３）、およびコンピュータ・ネットワーク中のクライアントとＷｅｂアプリケーション・サーバの間の通信経路内における第１のノードを示す情報を少なくとも一時的に記憶する手段（１２）と、クライアントによるそのハイパーリンクの選択時に、メディア要求仲介者にその情報を提供する手段（１４）と、その情報に基づいてクライアントにデータをストリーミングするためのストリーム・サーバを選択する手段（２０）とを含む。
【００７９】
１２．クライアントにデータを送信するために、複数のサーバ・コンピュータから第１のサーバ・コンピュータを選択するシステム。このシステムは、前述の定義１ないし８のいずれか一項による方法の各ステップを実行するように適合された手段を備える。
【００８０】
１３．コンピュータ上でそのプログラムを走らせるときに定義１ないし８のいずれか一項による方法を実施するためのソフトウェア・コード部分を含む、データ処理システムで実行するためのデータ処理プログラム。
【００８１】
１４．コンピュータ上でそのプログラムを走らせるときに定義１ないし８のいずれか一項による方法をコンピュータに実施させるコンピュータ可読プログラム手段を含む、コンピュータ使用可能媒体上に記憶されるコンピュータ・プログラム製品。
【図面の簡単な説明】
【００８２】
【図１】本発明によるコンピュータ・システムの第１の実施形態を示す構成図である。
【図２】本発明によるコンピュータ・システムの第２の実施形態を示す構成図である。
【図３】本発明の方法を示す実施形態である。明細書の１頁を補正した。




【国際調査報告】
2004523854.tif 000034
2004523854.tif 000035
2004523854.tif 000036