(57)【要約】【課題】静的な資源情報に基づいて、メディアサービスプロバイダを選択するための方法及びシステムを提供する。【解決手段】コンテンツアイテムに対して実行されるサービスのタイプが特定される（３０４）。このコンテンツアイテムは、クライアントデバイスとのセッション中に特定される。サービスプロバイダは、複数のサービスプロバイダの中から選択される（３０６）。この選択は、静的なサービスプロバイダ情報及び静的なネットワーク情報に基づく。サービスセッション情報が受信されている場合には、サービスプロバイダの選択は、さらにサービスセッション情報に基づく。選択されたサービスプロバイダへセッションを転送するための情報が提供される。選択されたサービスプロバイダは、コンテンツアイテムに対してサービスを実行する（３１４）。【選択図】図１
2007516500.tif 000002
【特許請求の範囲】
【請求項１】
クライアントデバイスとのセッション中に特定されるコンテンツアイテムに対して実行されるサービスのタイプを特定することと、
静的なサービスプロバイダ情報及び静的なネットワーク情報に基づいて、複数のサービスプロバイダの中からサービスプロバイダを選択することであって、サービスセッション情報が受信されている場合には、該サービスセッション情報にさらに基づいてサービスプロバイダを選択することと、
前記コンテンツアイテムに対して前記サービスを実行する前記サービスプロバイダへ前記セッションを転送するための情報を提供することと
を含む
静的な資源情報に基づいて、メディアサービスプロバイダを選択する方法。
【請求項２】
静的なサービスプロバイダ情報及び静的なネットワーク情報に基づいて、複数のサービスプロバイダの中から、コンテンツアイテムに対してサービスを実行することができるサービスプロバイダを選択する（３０６）サービスマネージャであって、サービスセッション情報が受信されている場合に、該サービスセッション情報に基づいて前記サービスプロバイダをさらに選択する（３０６）サービスマネージャ
を備える
クライアントデバイスへコンテンツを提供するためのシステム。
【請求項３】
プロセッサと、
静的な資源情報に基づいて、メディアサービスプロバイダを選択するための方法を実行するための、記憶されたコンピュータ実行可能命令を含むメモリデバイスと
を備えるコンピュータシステムであって、
前記方法は、
クライアントデバイスとのセッション中に特定されるコンテンツアイテムに対して実行されるサービスのタイプを特定すること（３０４）と、
静的なサービスプロバイダ情報及び静的なネットワーク情報に基づいて、複数のサービスプロバイダの中からサービスプロバイダを選択すること（３０６）であって、サービスセッション情報が受信されている場合には、該サービスセッション情報にさらに基づいてサービスプロバイダを選択することと、
前記コンテンツアイテムに対して前記サービスを実行する前記サービスプロバイダへ前記セッションを転送するための情報を提供することと
を含む
コンピュータシステム。
【請求項４】
クライアントデバイスとのセッション中に特定されるコンテンツアイテムに対して実行されるサービスのタイプを特定すること（３０４）と、
静的なサービスプロバイダ情報及び静的なネットワーク情報に基づいて、複数のサービスプロバイダの中からサービスプロバイダを選択すること（３０６）であって、サービスセッション情報が受信されている場合には、該サービスセッション情報にさらに基づいてサービスプロバイダを選択することと、
前記コンテンツアイテムに対して前記サービスを実行する前記サービスプロバイダへ前記セッションを転送するための情報を提供することと
を含む
コンピュータに動作を実行させるように具現されるコンピュータ使用可能コードを有するコンピュータ使用可能媒体。
【請求項５】
クライアントデバイスとのセッション中に特定されるストリーミングコンテンツアイテムに対して実行されるサービスのタイプを特定すること（３０４）と、
静的なサービスプロバイダ情報及び静的なネットワーク情報に基づいて、複数のサービスプロバイダの中からサービスプロバイダを選択すること（３０６）であって、サービスセッション情報が受信されている場合には、該サービスセッション情報にさらに基づいてサービスプロバイダを選択することと、
前記ストリーミングコンテンツアイテムに対して前記サービスを実行する（３１４）前記サービスプロバイダへ前記セッションを転送するための情報を提供することと
を含む
静的な資源情報に基づいてメディアをストリーミングするためのメディアサービスプロバイダを選択する方法。
【請求項６】
前記静的なサービスプロバイダ情報及び前記静的なネットワーク情報は、サービスロケーションマネージャによってアクセス可能である
請求項５に記載の方法。
【請求項７】
前記静的なサービスプロバイダ情報及び前記静的なネットワーク情報は、計算資源及びメモリ資源、サーバ間の接続並びに予測帯域幅及び待ち時間、クライアントアドレス及びコンテンツアドレス、セッションディスパッチ履歴（session dispatch history）、ネットワーク隣接性、並びに専用ハードウェアの識別情報に関する情報を含む
請求項６に記載の方法。
【請求項８】
前記専用ハードウェアは、暗号化ハードウェア及び圧縮ハードウェアを含む
請求項７に記載の方法。
【請求項９】
前記サービスセッション情報は、サービスセッション開始情報及びサービスセッション終了情報を含む
請求項５に記載の方法。
【請求項１０】
前記開始情報及び前記終了情報は、前のセッションで使用された前記計算資源に関する情報を提供する
請求項９に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連した米国出願］
本出願は、「Architecture for Distributing and Managing Streaming Media Services」と題する同時係属中の代理人整理番号第２００３１２２５３−１．ＰＲＯ号である仮特許出願第６０／４７１，８５１号の優先権を主張する。この仮特許出願は、２００３年５月１９日の出願日を有し、本出願の譲受人に譲渡され、その全内容が参照により本明細書に援用される。
【０００２】
［技術分野］
本発明の実施の形態は、ネットワーク上でのコンテンツへのサービスの提供（servicing）及びコンテンツの配信に関する。
【背景技術】
【０００３】
コンピュータシステムネットワーク上で配信するためのコンテンツにサービスを提供することによって、エンドユーザの消費に都合よくアクセスでき、且つ、エンドユーザの消費に適したコンテンツの普及が促進される。通常、人々は、自身のデスクトップマシン又はラップトップマシンでそのウェブブラウジングによる訪問中に、望ましいコンテンツのサイト（たとえば、ビデオに基づく映画のウェブページ）の位置を突き止める。これらのデバイスは、ウェブブラウジングに関連した入力（たとえば、ユニフォームリソースロケータ又は検索照会）要件及び出力（たとえば、信頼性のある高帯域幅の接続）要件によく適しており、それにより、利用可能なコンテンツの位置を突き止めてそのコンテンツにアクセスする。このようなサイトの位置が一旦突き止められると、ウェブユーザは、その後、ビデオ使用可能個人情報端末（ＰＤＡ）や携帯電話等の移動デバイスを使用してそれらのサイトへの接続を試みる場合がある。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ユーザ（クライアント）デバイスの多様性に対応するために、コンテンツプロバイダは、（接続の帯域幅に従った）広範囲の異なるビットレート、（それ自体、クライアントデバイスによって使用される能力管理ストラテジーに従って動的に変化する、クライアントデバイスで利用可能な処理能力に従った）ビデオフレームレート、（クライアントデバイスで利用可能な表示サイズに従った）ビデオフレームサイズ等をサポートできなければならない。
【０００５】
これらの問題に対処するための１つの方法は、メディアデータがストリーミングされる時に、そのメディアデータをトランスコードして、メディアデータが、クライアントデバイスに対して調整されたフォーマットで当該クライアントデバイスに到着するようにする機能を有するネットワークを与えることである。換言すると、出力コンテンツストリームが、異なるビットレート、異なるビデオフレームレート、異なるビデオフレームサイズ、又は異なる他のパラメータで生成されるように、出力コンテンツストリームをクライアントデバイスでの消費により適したものにする処理が、ネットワークにより、入力メディアコンテンツストリームに対して実行される。このトランスコードオペレーションは、ネットワークによって提供されたサービスと考えることができる。選択されたトランスコードサービスの資源がすでに重い負荷を受けている時における、サービスを実行するためのトランスコードサービスの選択等の非効率性によって、システム性能が劣化する可能性がある。
【０００６】
このような非効率性のため、サーバが、コンテンツ処理を実行する多くの個別の要求及び送信タスク（たとえば、異なる要求側クライアントデバイスへのメディアファイルの送信）を管理している場合、クライアントデバイスは、長期間待つことが必要な場合がある。さらに、ストリーミングメディアファイルは、非常に大きくなる可能性があり、したがって、コンテンツに対して要求された処理を完了するのに必要とされる時間が追加される可能性がある。これにより、特に、クライアントデバイスのユーザが、近づいている期限の前にプロジェクトを完了しようと試みている場合に、そのユーザはフラストレーションを起こしている可能性がある。コンテンツ、変更されたコンテンツ、又はネットワークを通じて利用可能なコンテンツから得られたデータを、システム資源を最も効率よく最善に利用するクライアントデバイスへ配信することを可能にする従来のコンテンツサービス提供／配信システムは、ネットワーク内で実行されるメディア処理及び解析のタイプを提供しない。
【課題を解決するための手段】
【０００７】
本発明の実施の形態は、静的な資源情報に基づいて、メディアサービスプロバイダを選択するための方法及びシステムに関する。コンテンツアイテムに対して実行されるサービスのタイプが特定される。このコンテンツアイテムは、クライアントデバイスとのセッション中に特定される。サービスプロバイダは、複数のサービスプロバイダの中から選択される。この選択は、静的なサービスプロバイダ情報及び静的なネットワーク情報に基づく。サービスセッション情報が受信されている場合には、サービスプロバイダの選択は、さらにサービスセッション情報に基づく。選択されたサービスプロバイダへセッションを転送するための情報が提供される。選択されたサービスプロバイダは、コンテンツアイテムに対してサービスを実行する。
【０００８】
添付図面は、本明細書に援用されて、本明細書の一部を成す。これらの添付図面は、本発明の実施の形態を示し、明細書本文と共に、本発明の原理を説明するのに役立つものである。
【０００９】
本明細書本文で参照される図面は、特に注釈がある場合を除き、一律の縮尺で描かれていると理解されるべきではない。
【発明を実施するための最良の形態】
【００１０】
次に、本発明のさまざまな実施の形態を詳細に参照する。さまざまな実施の形態の例は添付図面に示されている。本発明は、これらの実施の形態と共に説明されるが、これらの実施の形態は、それら実施の形態に本発明を限定することを目的としているものではないことを理解されたい。逆に、本発明は、代替形態、変更形態、及び等価物を網羅することを目的としている。これら代替形態、変更形態、及び等価物は、添付の特許請求の範囲によって画定された本発明の精神及び範囲内に含めることができる。さらに、本発明の以下の説明では、本発明の十分な理解を提供するために、多数の具体的な詳細が述べられる。それ以外の場合には、本発明の態様を不必要に分かりにくくしないように、既知の方法、手順、コンポーネント、及び回路は詳細に説明されていない。
【００１１】
図１は、本発明の一実施の形態による、コンテンツソース１１０によって供給されたコンテンツへのサービスの提供及びクライアントデバイス１５０へのサービス結果コンテンツの配信を行うためのシステム１００のブロック図である。本発明の一実施の形態によれば、サービスロケーションマネージャ（ＳＬＭ（service location manager））１２０は、静的な資源情報に基づいてサービスプロバイダ（たとえば１３０及び１３２）を選択することができる。本出願では、この静的な資源情報は、既知のネットワーク及びサービスプロバイダの特性で構成される。静的な資源情報には、ネットワークに接続されたデバイスの計算資源及びメモリ資源、サーバ間の予測帯域幅／待ち時間、ディスパッチ履歴、ネットワーク隣接性、セッション情報（たとえばセッション開始情報及びセッション終了情報）、並びにクライアント／コンテンツアドレスが含まれるが、これらに限定されるものではない。これに加えて、いくつかの実施の形態によれば、専用ハードウェア（たとえば、暗号化又は圧縮）が知られることになり、それによって、ＳＬＭ１２０は、自身が適切なサービスプロバイダを選択する際にその専用ハードウェアの特性を考慮することが可能になる。一実施の形態によれば、ＳＬＭ１２０の制御下にあるサービスプロバイダは、セッションが開始したこと及び終了したことを示す情報をＳＬＭ１２０へ送信することができる。この情報によって、ＳＬＭ１２０は、測定値の収集に依拠することなく、利用可能な資源と一致するように、サービスロケーション（たとえば、サービスプロバイダ）の自身の選択を適合させることが可能になる。図１は、コンテンツソース１１０、サービスプロバイダ１３２、サービスロケーションマネージャ１２０、サービスプロバイダ１３０、ポータル１４０、及びクライアントデバイス１５０を示している。
【００１２】
メッセージＡ及びＢ（図１に示す）は、サービスプロバイダ（たとえば、１３０及び１３２）からＳＬＭ１２０へ送信された情報送信であって、サービスセッションが開始されたこと及び終了したことを示す情報送信を表す。この情報は、前のサービスセッションで使用された計算資源に関する有用なデータをＳＬＭ１２０に提供し、サービスプロバイダ（たとえば、１３０及び１３２）の資源状態の正確なビューを提供する。
【００１３】
サービスロケーションマネージャ（ＳＬＭ）１２０、サービスプロバイダ１３０及び１３２、並びにポータル１４０は、単一のデバイスで実施できる論理エンティティ又は複数のデバイスを使用して実施できる論理エンティティである。したがって、システム１００は、たとえば、ＳＬＭ１２０、サービスプロバイダ１３０及び１３２、並びにポータル１４０の機能を実施する単一のコンピュータシステムを表すことができる。或いは、システム１００は、コンピュータシステムネットワークの異なるノード又はデバイスを包含することもできる。これらのノードは、本明細書で説明されるさまざまな機能を実行するのに十分な処理能力及び記憶能力を有するサーバコンピュータシステム、スイッチ、ルータ等であってもよい。一般的に言えば、システム１００によって提供される機能は、１つ又は複数のデバイスを使用して実施することができる。さらに、単一のサービスロケーションマネージャ１２０及びポータル１４０についてシステム１００を説明するが、それら要素のいずれも２つ以上存在することができる。これに加えて、３つ以上のサービスプロバイダ（たとえば、１３０及び１３２）が存在することもできる。
【００１４】
システム１００は、ＳＬＭ１２０、サービスプロバイダ１３０及び１３２、並びにポータル１４０又はこれらのいずれか（ＳＬＭ１２０、サービスプロバイダ１３０及び１３２、並びに／又はポータル１４０）の機能を既存のネットワークに重ね合わせることによって、既存のコンピュータシステムネットワークにおいて実施することができる。すなわち、システム１００によって提供される機能のすべて又は一部は、既存のネットワークノードに組み込むことができる。或いは、システム１００のすべて又は一部は、既存のネットワークにノードを追加することによって実施することもできる。たとえば、コンテンツへのサービスの提供及びサービスプロバイダの管理のために追加されたノードと共に、既存のコンテンツソース及びポータルを使用してもよい。
【００１５】
本実施の形態では、システム１００は、コンテンツソース１１０及びクライアントデバイス１５０と通信することができる。単一のコンテンツソース１１０及びクライアントデバイス１５０について説明するが、それら要素のそれぞれは２つ以上存在することができる。システム１００、コンテンツソース１１０、及びクライアントデバイス１５０の間の通信、並びに、システム１００内の通信は無線とすることができる。
【００１６】
クライアントデバイス１５０は、実質的には、あらゆる種類のユーザデバイスとすることができる。このユーザデバイスは、デスクトップコンピュータシステム若しくはラップトップコンピュータシステム、又はビデオ使用可能ハンドヘルドコンピュータシステム（たとえば、携帯情報端末）若しくは携帯電話等であるが、これらに限定されるものではない。一般に、クライアントデバイス１５０は、コンテンツアイテムを要求し、その後、それを受信するのに使用される。
【００１７】
コンテンツアイテムは、ライブの場合もあるし、記録されている場合もあるメディアデータ又は非メディアデータを指す。コンテンツアイテムには、ビデオに基づくデータ、音響に基づくデータ、画像に基づくデータ、ウェブページに基づくデータ、グラフィックデータ、テキストに基づくデータ、又はそれらの或る組み合わせが含まれ得るが、これらに限定されるものではない。たとえば、コンテンツアイテムは、デジタルビデオディスク（ＤＶＤ）品質の映画とすることができる。
【００１８】
コンテンツがクライアントデバイス１５０に提供される前に、コンテンツアイテムに対して或るタイプのサービスを実行することが必要な場合がある。サービスのタイプには、コンテンツアイテムの処理及びコンテンツアイテムの解析又はこれらのいずれか（コンテンツアイテムの処理及び／又はコンテンツアイテムの解析）が含まれ得る。たとえば、サービスのタイプには、ビデオ処理が含まれ得る。このビデオ処理は、トランスコード、ジッタ除去、顔認識に基づくダイナミッククリッピング、ビデオ解析、ビデオのサイズ変更、ビデオからの光学文字の読み取り、背景除去等であるが、これらに限定されるものではない。
【００１９】
これに加えて、サービスのタイプには、音響処理も含まれ得る。この音響処理は、背景除去、音響強調（audio enhancement）、音響速度の増減、音響強調、雑音低減、発話認識、音響解析等であるが、これらに限定されるものではない。コンテンツアイテムの解析には、たとえば、テキストの写しを生成する発話認識、又は、ビデオストリームの１つ又は複数のビデオ画像に適用されてテキスト出力を生成する光学文字認識が含まれ得る。人のロケーション及び時刻の記録のストリームを出力する、ビデオに基づく人追跡サービスは、コンテンツアイテムの解析を示すのに使用できる別の例である。ロケーションは、画像の座標の点から表現することができるが、物理的なワールド座標（たとえば、部屋の階を基準とした「ｘ，ｙ」座標）の点から表現されると、より便利な場合がある。コンテンツアイテムの解析を示すのに使用できる別の例は、顔検出器サービスに関するものである。この顔検出器サービスは、ビデオストリームから抽出された顔のスナップショット、それらスナップショットが検出された時刻及び画像のロケーション、それら顔の同一性、及び／又は顔の分類を出力する。この情報の或る部分は、テキストデータとして表すことができる。
【００２０】
本明細書では、コンテンツアイテムは、すでにサービスが提供されている場合もあるし、サービスの提供を受けている最中の場合もあるし、サービスが提供されていない場合もあるし、いまだサービスが提供されたことがない場合もある。換言すると、コンテンツアイテムは、サービスが提供されていようといまいと、それでもコンテンツアイテムと呼ぶことができる。コンテンツアイテムへのサービスの提供には、コンテンツアイテムの解析又は処理が含まれ得る。考察を明確にする必要がある場合、コンテンツアイテムへのサービスの提供の結果を、本明細書では、「サービス結果」や「サービス結果コンテンツ」又は「サービス結果データ」等の用語を使用して呼ぶ。サービス結果コンテンツは、サービスの提供を受けた元のコンテンツアイテムの変更版（たとえば、背景除去がビデオストリームに適用される場合）、元のコンテンツアイテムから得られたコンテンツアイテム（たとえば光学文字認識が使用されてテキスト出力が生成される場合）、サービスプロバイダを通じて渡され、変更されずに単に転送されるだけのコンテンツアイテム（たとえば、トランスコードサービスプロバイダによって受信された場合にトランスコードを必要としないコンテンツ）、又は、事前にサービスプロバイダに送信されており、且つ現在、そのサービスプロバイダにキャッシュ／記憶されているコンテンツアイテム（たとえば、事前にサービスが提供されて、且つ現在、サービスプロバイダのメモリに記憶されているコンテンツ）から構成することができる。これに加えて、サービス結果コンテンツは、上記例の任意の組み合わせから構成し得る。
【００２１】
図１の参照を続けて、サービスプロバイダ１３０及び１３２は、それぞれ、１つ又は複数のタイプのサービスを提供するように機能する。すなわち、サービスプロバイダ１３０及び１３２は、それぞれ、複数の異なるタイプのサービスを提供することができる。たとえば、サービスプロバイダ１３０は、或るコンテンツアイテムをトランスコードするのに使用でき、且つ、別のコンテンツアイテムの背景除去に使用できる。異なるタイプのサービスは、異なるコンテンツアイテムに対して並列に実行することができる。すなわち、サービスプロバイダ１３０及び１３２は、異なるが同時発生したコンテンツストリームに対してサービスを実行することができる。また、サービスプロバイダ１３０及び１３２は、キャッシュサービスも提供することができる。たとえば、コンテンツアイテムがサービスプロバイダ１３０又は１３２によってサービスの提供を受ける前に、サービスプロバイダ１３０又は１３２は、そのコンテンツアイテムをすべて又は部分的にキャッシュすることができる。同様に、サービス結果コンテンツがクライアントデバイス１５０へ転送される前に、サービスプロバイダ１３０又は１３２は、そのサービス結果もすべて又は部分的にキャッシュすることができる。
【００２２】
ポータル１４０は、クライアントデバイス１５０とシステム１００との間の最初の接点としての機能を果たす広く公開されたポータルサイトである。コンテンツソース１１０は、コンテンツアイテムのソースである。
【００２３】
サービスロケーションマネージャ（ＳＬＭ）１２０は、サービス結果がクライアントデバイス１５０に提供される前にコンテンツアイテムに対して実行することが必要な場合があるタイプのサービスを実行できるサービスプロバイダ（たとえば、サービスプロバイダ１３０又は１３２）を選択する。一実施の形態によれば、この選択は、本明細書で説明するように決定された利用可能なサービスプロバイダ資源に基づいて行うことができる。サービスプロバイダ１３０及び１３２、並びに他のあらゆる利用可能なサービスプロバイダは、ＳＬＭ１２０に知られている。各サービスプロバイダが実行できるそのタイプのサービス、又は、実行するように各サービスプロバイダを構成できる数タイプのサービスも、サービスロケーションマネージャ１２０に知られている。
【００２４】
ＳＬＭ１２０がサービスプロバイダを選択する方法は、以下でより十分に説明する。このプロセスのオペレーションは、単方向矢印によって表され、図１に示すメッセージ１〜６に対応する。図１に示す単方向矢印Ａ及びＢは、サービスプロバイダ（たとえば、１３０及び１３２）からＳＬＭ１２０への通信を表す。一実施の形態によれば、これらの通信は、サービスプロバイダ（たとえば、１３０及び１３２）資源状態の正確なビューをＳＬＭ１２０に提供するセッション起動情報及びセッション解体（session teardown）情報（たとえば、セッション開始情報及びセッション終了情報）を含むことができる。特定のサービスを実行するのに適したサービスプロバイダ（たとえば、１３０及び１３２）を利用可能な資源に基づいて選択する際に、この情報は、他のネットワーク及びサービスプロバイダの特性に関してＳＬＭ１２０によって保持される情報又はアクセス可能な情報と共に、ＳＬＭ１２０によって使用される。
【００２５】
図１を再び参照して、セッション開始時には、クライアントデバイス１５０は、メッセージ１をポータル１４０へ送信する。メッセージ１は、特定のコンテンツアイテム（たとえば、映画の名前）を特定する。
【００２６】
また、一実施の形態では、メッセージ１は、サービス結果がクライアントデバイス１５０に配信される前にコンテンツアイテムに対して実行されるべきサービスのタイプを特定するのに十分な情報を含む。その情報は多くの形態を取ることができる。或る形態では、メッセージ１は、サービスのタイプ（たとえば、背景除去又は発話認識）を具体的に特定する。別の形態では、メッセージ１は、クライアントデバイス１５０のメモリ容量、スクリーンサイズ、処理能力等のクライアントデバイス１５０の属性を特定する。これらの属性に基づいて、システム１００（たとえば、ポータル１４０）は、実行されるべきサービスのタイプ（たとえば、トランスコード）を導き出すことができる。さらに別の形態では、メッセージ１は、クライアントデバイス１５０のタイプを特定し、そのタイプのデバイスの記憶された知識に基づいて、システム１００（たとえば、ポータル１４０）は、実行されるべきサービスのタイプ（たとえば、トランスコード）を導き出すことができる。
【００２７】
メッセージ１は他の情報を含むことができる。コンテンツアイテムのソースがクライアントデバイス１５０によって知られている場合、メッセージ１において、コンテンツソースも特定することができる。たとえば、メッセージ１は、コンテンツソース１１０のユニフォームリソースロケータ（ＵＲＬ）を含むことができる。コンテンツアイテムのソースがクライアントデバイス１５０に知られていない場合において、その情報がシステム１００にまだ知られていないときは、システム１００（たとえば、ポータル１４０）がコンテンツソースの位置を突き止めることができる。
【００２８】
ポータル１４０は、メッセージ１を受信した後、メッセージ２をＳＬＭ１２０へ送信する。一実施の形態では、メッセージ２は、サービス結果がクライアントデバイス１５０へ配信される前にコンテンツアイテムに対して実行されるべきサービスのタイプを特定するのに十分な情報を含む。先ほど説明したように、その情報は多くの形態を取ることができる。或る形態では、メッセージ２は、サービスのタイプ（たとえば、背景除去又は発話認識）を具体的に特定する。別の形態では、メッセージ２は、クライアントデバイス１５０のメモリ容量、スクリーンサイズ、処理能力等のクライアントデバイス１５０の属性を特定する。これらの属性に基づいて、システム１００（たとえば、ＳＬＭ１２０）は、実行されるべきサービスのタイプ（たとえば、トランスコード）を導き出すことができる。さらに別の形態では、メッセージ２は、クライアントデバイス１５０のタイプを特定し、そのタイプのデバイスの記憶された知識に基づいて、システム１００（たとえば、ＳＬＭ１２０）は、実行されるべきサービスのタイプ（たとえば、トランスコード）を導き出すことができる。メッセージ２により提供された情報に基づいて、ＳＬＭ１２０は、実行されるサービスのタイプを特定する。
【００２９】
メッセージ２は他の情報を含むことができる。たとえば、メッセージ２は、コンテンツアイテム及び／又はコンテンツソースを特定することもできる。
【００３０】
サービスプロバイダ１３０及び１３２、並びに、それらサービスプロバイダが提供することができるサービスは、ＳＬＭ１２０に知られている。また、ＳＬＭ１２０には、一定の静的なサーバプロバイダ及びネットワークの特性も知られている。この一定の静的なサーバプロバイダ及びネットワークの特性は、ネットワークに接続されたデバイスの計算資源及びメモリ資源、サーバ間の接続並びに予測帯域幅及び待ち時間、クライアント／コンテンツアドレス、セッションディスパッチ履歴、及びネットワーク隣接性等である。これに加えて、いくつかの実施の形態によれば、サービスプロバイダによって使用される専用ハードウェア（たとえば、暗号化又は圧縮）の識別情報が知られることになり、それによって、ＳＬＭ１２０は、自身が適切なサービスプロバイダを選択する際にその専用ハードウェアの静的特性を考慮することが可能になる。さらに、ＳＬＭは、サービスプロバイダ１３０及び１３２からサービスセッション情報の定期的な送信を受信してもよい。この情報は、サービスセッション起動情報及びサービスセッション解体情報（たとえば、サービスセッション開始情報及びサービスセッション終了情報）の形態で来る場合がある。静的な情報及び動的な測定値を使用して説明したサービスプロバイダ及びネットワークの特性並びにサービスセッション情報の一部又はすべての組み合わせは、ＳＬＭがサービスプロバイダを選択する際に使用できることが理解されるべきである。ＳＬＭ１２０は、この情報を使用して、メッセージ２から特定されたサービスを実行するためのサービスプロバイダ１３０又は１３２のいずれか（又は他の接続されたサービスプロバイダ）を選択することが理解されるべきである。
【００３１】
一実施の形態によれば、ＳＬＭ１２０は、（判断された資源可用性、たとえば、サービス能力及び資源使用の点からの）サービスプロバイダ１３０及び１３２の適合性に基づいて、特定のサービスを提供するためのサービスプロバイダ１３０又は１３２のいずれかを選択する。また、一実施の形態では、サービスロケーションマネージャ１２０は、サービスプロバイダ１３０又は１３２のいずれかをランダムに選択することができる。別の実施の形態では、ＳＬＭ１２０は、ラウンドロビン方式等の方式を使用してサービスプロバイダ１３０又は１３２のいずれかを選択することができる。
【００３２】
さらに別の実施の形態では、ＳＬＭ１２０は、すでに進行中の他のセッションにサービスを提供しているサービスプロバイダの履歴又は記録を保持する。すなわち、前述したように、各クライアントデバイスがセッションに参加する（たとえば、各クライアントデバイスがコンテンツアイテムを要求する）複数のクライアントデバイスが存在することができる。コンテンツアイテムがサービスの提供を受けているそれら他のセッションでは、ＳＬＭ１２０は、そのサービスを実行するためのサービスプロバイダを選択していたことになる。本実施の形態では、ＳＬＭ１２０は、それら他のセッションのサービスを提供するために選択されたサービスプロバイダの記録を保持する。セッションディスパッチ履歴は、コンテンツ長に関する情報を含んでもよいことが理解されるべきである。その記録の情報に基づいて、ＳＬＭ１２０は、クライアントデバイス１５０との新たなセッション用のサービスプロバイダを選択することができる。たとえば、その記録の情報に基づいて、ＳＬＭ１２０は、どのサービスプロバイダが、他のサービスプロバイダに比べて最も忙しいかを評価することができる。記録は、ＳＬＭ１２０が、以下でさらに説明するさまざまな手法を使用して更新することができる。
【００３３】
図１の例では、ＳＬＭ１２０はサービスプロバイダ１３０を選択する。次に、ＳＬＭ１２０は、メッセージ３をポータル１４０へ送信する。メッセージ３は、サービスプロバイダ１３０の位置を突き止めてサービスプロバイダ１３０と接触するのに十分な情報を含む。たとえば、メッセージ３は、サービスプロバイダ１３０のＵＲＬを含むことができる。
【００３４】
メッセージ３は他の情報を含むことができる。たとえば、メッセージ３は、コンテンツアイテム及び／又はコンテンツソースを特定することもできる。
【００３５】
ポータル１４０は、メッセージ３を受信した後、メッセージ４をクライアントデバイス１５０へ送信する。メッセージ４は、メッセージ３によって提供された、サービスプロバイダ１３０の位置を突き止めてサービスプロバイダ１３０と接触するための情報を含む。メッセージ４は、メッセージ３と同一のものとすることができる（メッセージ４は、メッセージ３の単なる転送であってもよい）。一方、メッセージ４は、ポータル１４０によって追加された他の（追加）情報を含むこともできる。たとえば、メッセージ４は、その情報がサービスロケーションマネージャ１２０の代わりにポータル１４０によって決定される場合、コンテンツアイテム及び／又はコンテンツソースも特定することができる。
【００３６】
代替的な一実施の形態では、メッセージ３及び４の代わりに、ＳＬＭ１２０は、クライアントデバイス１５０に直接メッセージを送信する。このＳＬＭ１２０からクライアントデバイス１５０へのメッセージは、サービスプロバイダ１３０の位置を突き止めてサービスプロバイダ１３０と接触するための情報を含む。このメッセージは、コンテンツアイテム及び／又はコンテンツソースの識別情報等の他の情報を含むことができる。
【００３７】
いずれの場合も、クライアントデバイス１５０は、サービスプロバイダ１３０の位置を突き止めてサービスプロバイダ１３０と接触するのに十分な情報を含むメッセージを受信する。その情報に基づいて、クライアントデバイス１５０とサービスプロバイダ１３０との間の通信が確立される。換言すると、クライアントデバイス１５０によって開始されたセッションは、ポータル１４０からサービスプロバイダ１３０へ自動的に転送される。重要なことは、ポータル１４０からサービスプロバイダ１３０への転送が、シームレスであり、且つ、クライアントデバイス１５０のエンドユーザにトランスペアレントであることである。
【００３８】
一実施の形態では、クライアントデバイス１５０によって受信されたメッセージ（たとえば、メッセージ４）は、同期マルチメディア統合言語（ＳＭＩＬ（Synchronized Multimedia Integration Language））を使用するか、又は、この言語に基づいている。ポータル１４０からサービスプロバイダ１３０へのクライアントデバイス１５０の宛先の書き換えは、動的なＳＭＩＬの書き換えを使用して行うことができる。
【００３９】
図１の図面の例をさらに続けて、クライアントデバイス１５０は、ポータル１４０からメッセージ４（又は、ＳＬＭ１２０から等価なメッセージ）を受信した後、メッセージ５をサービスプロバイダ１３０へ送信する。メッセージ５は、コンテンツアイテム、及び、サービスプロバイダ１２０によって実行されるサービスのタイプを特定する。メッセージ５は他の情報を含むことができる。たとえば、コンテンツソースがこの時点でクライアントデバイス１５０に知られている場合、その情報はメッセージ５に含めることができる。
【００４０】
サービスプロバイダ１３０は、メッセージ５を受信すると、コンテンツソース１１０へメッセージ６を送信する。上述したように、メッセージ５において、サービスプロバイダ１３０に対しコンテンツソース１１０を特定することができる。それ以外に、サービスプロバイダ１３０は、コンテンツソース１１０の位置を突き止めることができる。メッセージ６では、サービスプロバイダ１３０は、コンテンツアイテムの提供を受けることを要求する。
【００４１】
メッセージ６に応答して、コンテンツソース１１０は、サービスを提供するためにサービスプロバイダ１３０へコンテンツアイテムを送信する（図１の矢印７によって示す）。一実施の形態では、コンテンツアイテムは、サービスプロバイダ１３０へストリーミングされる。
【００４２】
一実施の形態では、サービスプロバイダ１３０は、常にセットアップされており、指定されたサービスを実行する準備ができている。すなわち、指定されたサービスは、サービスプロバイダ１３０で絶えず実行し続けることができ、処理されるデータを待機する。別の実施の形態では、指定されたサービスは、メッセージ５又はコンテンツアイテムのいずれかがサービスプロバイダ１３０によって受信されるまで動作していない。すなわち、サービスプロバイダ１３０は、指定されたサービスをセットアップ又は起動することが必要な場合があり、サービスの潜在的な必要性が特定されるまで、又は、サービスを実行する実際の必要性が存在するようになるまでそれを行わない。
【００４３】
いずれの場合も、サービスプロバイダ１３０は、指定されたサービスをコンテンツアイテムに対して実行することができる。コンテンツアイテムは、サービスを提供する前に、すべて又は部分的に、サービスプロバイダ１３０がキャッシュすることもできるし、サービスプロバイダ１３０によって受信された時にサービスの提供を受けることもできる。
【００４４】
次に、サービス結果コンテンツが、サービスプロバイダ１３０によってクライアントデバイス１５０へ送信される（図１に矢印８によって示す）。一実施の形態では、サービス結果コンテンツは、クライアントデバイス１５０へストリーミングされる。サービス結果コンテンツは、サービス提供後（ストリーミング前）、すべて又は部分的にサービスプロバイダ１３０がキャッシュすることもできるし、サービスプロバイダ１３０によってサービスが提供された時にストリーミングすることもできる。
【００４５】
サービス結果コンテンツが、選択されたサービスプロバイダ（たとえば、サービスプロバイダ１３０）によって配信され、且つクライアントデバイス１５０によって受信されると、継続中のセッションを終了することができる。履歴又は記録がＳＬＭ１２０によって保持される一実施の形態では、サービスプロバイダ１３０が自身のサービス提供タスクを完了したことを反映するようにその履歴又は記録を更新することができる。記録の更新を促すのに、異なる手法を使用することもできる。一手法では、ＳＬＭ１２０がサービスプロバイダの選択を行っている時又はその前後の時に、ＳＬＭ１２０は、コンテンツアイテムに対して実行されるサービスを完了するのに必要とされる時間を見積もる。その時間が経過した時にサービスが完了していることを反映するように記録を更新することができる。
【００４６】
代替的に、選択されたサービスプロバイダ（たとえば、サービスプロバイダ１３０）は、サービスを完了した時にＳＬＭ１２０に表示を提供することができ、それに応じて記録を更新することができる（たとえば、メッセージＡ及びＢ）。これらの手法は、クライアントデバイス１５０へのサービス結果コンテンツの配信を考慮するように拡張することができる。たとえば、ＳＬＭ１２０によって見積もられた、サービスプロバイダ１３０がサービスを実行する時間を増加させて、サービスプロバイダ１３０がサービス結果コンテンツをクライアントデバイス１５０へ送信するのに必要なあらゆる追加時間を考慮することができる。同様に、サービスプロバイダ１３０は、サービス結果コンテンツのクライアントデバイス１５０への送信を完了した時をＳＬＭ１２０へ示すことができる。
【００４７】
上記考察では、コンテンツアイテムは、メッセージ６に応答してサービスプロバイダ１３０へ送信される。本明細書で前述したように、サービスプロバイダ１３０は、その代わりに、前に受信され且つ／又はサービスの提供を受けたコンテンツを記憶又はキャッシュすることができ、メッセージ６の使用及びメッセージ６の応答を不要にすることができる（たとえば、図１の矢印７によって示すデータフローを不要にすることができる）。
【００４８】
上記で考察したように、サービスプロバイダ（たとえば、１３０等）の選択は、ＳＬＭ１２０によって保持されるデータと、サービスプロバイダ（たとえば、１３０及び１３２）からＳＬＭ１２０へ送信されるデータとの組み合わせに基づいて行えることが理解されるべきである。双方のタイプのデータを使用することによって、利用可能な資源のより完全な状況（picture）を確認することができる。この手法によって、サービスロケーションマネージャは、そのサービスロケーション（たとえば、サービスプロバイダ）の選択を、利用可能な資源とより密接に一致するように適合させることが可能になる。
【００４９】
概要では、サービスを求めるクライアントデバイス１５０は、システム１００（たとえば、ポータル１４０）と接触する。クライアントデバイス１５０は、そのサービスのプロバイダ（たとえば、サービスプロバイダ１３０）への宛先の書き換えを受ける。コンテンツソース（たとえば、コンテンツソース１１０）からのコンテンツは、サービスプロバイダを介してクライアントデバイスへ送信（たとえば、ストリーミング）される。このように、一実施の形態では、システム１００は、コンテンツソースからクライアントデバイスへメディアをストリーミングするためのものである。
【００５０】
本出願では、本明細書で使用されるようなストリーミングメディアは、連続的な方法でネットワークノード間を通信されるデータを意味する。例としては、ストリーミング音響及びストリーミングビデオが含まれる。これらは、配信時において厳密な時間制約を有する場合がある。これらの例では、これらストリームの一部があまりにも遅れて配信されると、それらの一部は、遅れたことにより無視されることになる（それらの一部は、あまりにも遅れているので、クライアントアプリケーションによって再生されているものの効果がなく、したがって、大部分は役立たない）。或いは、これらのストリームの一部があまりにも早く配信されると、それらの一部は、サービス又はクライアントアプリケーション内のバッファ制約のために失われることになる。連続的な方法で送信されるデータの他の例には、測定値のストリーム又は実験結果のストリームが含まれる。これらのタイプのストリームには、リモートセンサからの天候の読み取り値及び冷却システムからの温度の読み取り値が含まれる。これらの例では、配信時について厳密な時間制約はない。しかしながら、データの送信は、シームレスに進行する送信によって最もよく満たされる時間成分を有する。
【００５１】
したがって、ストリーミングメディアを使用することによって、サービスを配置する効果は、ネットワーク及びサーバノードの双方に資源に対して永続した効果を有する。たとえば、ストリーミング条件下で鑑賞される映画をトランスコードする際に、そのデータは、２時間程度の長さにわたり、したがって、トランスコードセッションは、２時間程度のサーバ時間にわたる場合がある。他のタイプのストリーミング（たとえば、計器の読み取り）の場合、ストリームの継続時間、及び、ストリームに対して行われるサービスの継続期間は、終わることのないものとなる可能性がある。サーバノードの計算資源は、不確実な継続時間による長い時間の間、実行される。同様に、サーバノードのネットワーク資源、サーバとコンテンツプロバイダとの間のすべてのリンクのネットワーク資源、及びサーバとクライアントマシンとの間のネットワーク資源も、不確実な継続時間による長い時間の間、実行されることになる。これは、データ転送が、多くの場合、数秒又は数分のより少ない期間のブロックで行われ、且つ、そのデータに対して実行されるサービスが、制約された継続期間を有する、より古典的なネットワークトランザクションとは大いに異なる。
【００５２】
ストリーミングメディアを取り扱う一実施の形態において、検討する必要がある問題のいくつかは以下の通りである。すなわち、ウェブに基づく配布、並びに、ウェブに基づくビジネス取引及び／又はダウンロードと比較して、ストリーミングメディアは、取り組む必要のある以下の特性を有する。データが大量であること。データの終了ポイントが判明していない場合があり、いくつかのコンテンツアイテムのキャッシュには、かなりのメモリ資源が消費される可能性がある；データが時間で順序付けされていること。データが受信される時間順序が重要となる可能性がある；アクセスを完了まで遂行できないこと。たとえば、コンテンツアイテムの或る部分（たとえば、映画の全長の最初の数分）にしかアクセスすることができない；対象メディアの或る程度の理解なしでは、必要な帯域幅を決定できないこと。たとえば、或るビデオファイルは高い空間解像度の場合があり、別のビデオファイルはそうでない場合があり、そこで、共にビデオファイルであるそれらファイルは、同じものとして見える場合があるが、それらファイルの各帯域幅は、まったく異なる場合がある；待ち時間又は帯域幅のジッタが問題となる可能性があること。一貫した待ち時間は許容できる場合があるが、セッション中にかなり変化する待ち時間は、バッファのオーバーフロー又はアンダーフローのために問題となる可能性がある；不十分な計算資源又は帯域幅資源が、時間制約のために役立たない結果となる可能性があること；データは、通常、符号化（圧縮）され、そこで、データの或る部分の損失又は遅れが、その後のデータ復号（伸張）に影響を与える可能性があること；失われたデータは、通常、時間制約のため再送されないこと；及び、すべてのクライアントデバイスについての状態の記録が保持されるべきであること。ストリーミングメディアの場合、ストリーミングノードは、ストリーミングデータを継続する必要があり、クライアントからの状態情報の受信を待つことができない。これらの相違の結果、ストリーミングメディアに対して実行されるサービスの管理及び監視の必要性が大幅に増加する。
【００５３】
図２Ａは、本発明の別の実施の形態によるシステム１００の内外の情報フローを示すブロック図である。図１と図２Ａとの相違は、サービスロケーションマネージャ（ＳＬＭ）１２０から、選択されたサービスプロバイダ（たとえば、サービスプロバイダ１３０）へのメッセージＣが追加されたことである。このメッセージＣは、メッセージ２の後でメッセージ５の前の任意の時刻に、サービスロケーションマネージャ１２０からサービスプロバイダ１３０へ送信することができる。
【００５４】
メッセージＣは、任意の個数の異なる目的で使用することができる。たとえば、指定されたコンテンツアイテムに対して実行されるサービスのタイプが、サービスプロバイダ１３０で連続的に実行されない状況では、メッセージＣは、サービスの必要性が迫っていることをサービスプロバイダ１３０に警告するのに使用することができる。その結果、メッセージ５がクライアントデバイス１５０から受信される前に、サービスのセットアップ及び／又は起動を開始することができ、また、おそらく完了することもでき、これによって、全体の待ち時間が削減される。
【００５５】
また、メッセージＣは、コンテンツアイテムの識別情報をサービスプロバイダ１３０に提供するのに使用することもでき、おそらく、コンテンツソース１１０の識別情報をサービスプロバイダ１３０に提供するのに使用することもできる。この情報によって、サービスプロバイダ１３０は、メッセージ５が受信される前にコンテンツアイテムを提供する（たとえば、ストリーミングを開始する）ようにコンテンツソース１１０に要求することができ、これは、待ち時間の削減にさらに貢献する。これに加えて、メッセージＣをこのようにして使用する結果、たとえば、コンテンツソース１１０はクライアントデバイス１５０に対して特定される必要はないので、セキュリティを改善することができる。
【００５６】
さらに、メッセージＣは、図２Ｂによって示すようなメッセージ３、４、及び５の代わりに使用することもできる。たとえば、コンテンツアイテム、及び、おそらくコンテンツソースを特定することに加えて、メッセージＣは、クライアントデバイス１５０との通信の確立をサービスプロバイダ１３０に可能にする情報も含むことができる。換言すると、ポータル１４０からサービスプロバイダ１３０への通信の転送をクライアントデバイス１５０に開始させる代わりに、サービスプロバイダ１３０が、シームレスで且つクライアントデバイス１５０のユーザにトランスペアレントを維持する方法で、その通信の転送を開始することができる。
【００５７】
図１を参照して考察したように、メッセージＡ及びＢ（図２Ａに示す）は、サービスセッションが開始されたこと及び終了したことを示す、サービスプロバイダ（たとえば、１３０及び１３２）からＳＬＭ１２０へ行われた情報送信を表す。この情報は、前のサービスセッションで使用された計算資源に関する有用なデータをＳＬＭ１２０に提供し、サービスプロバイダ（たとえば１３０）の資源状態の正確なビューを提供する。
【００５８】
図３は、本発明の一実施の形態による、コンテンツへのサービスの提供及びサービス結果コンテンツの配信のための方法のフローチャート３００である。具体的なステップがフローチャート３００に開示されるが、このようなステップは例示である。すなわち、本発明の実施の形態は、さまざまな他のステップ又はフローチャート３００で列挙されたステップを変形したものの実行にもよく適合する。フローチャート３００のステップは、提示したものとは異なる順序で実行し得ること、及び、フローチャート３００のステップのすべてが実行されるとは限らない場合があることが理解されよう。
【００５９】
フローチャート３００によって説明される方法のすべて又は一部は、たとえば、コンピュータシステム又は同様のデバイスのコンピュータ使用可能媒体に存在するコンピュータ可読で且つコンピュータ実行可能な命令を使用して実施することができる。本実施の形態では、フローチャート３００は、図１及び図２Ａのシステム１００によって実施される。すなわち、フローチャート３００に列挙されたステップのいくつかは図１及び図２のポータル（たとえば、１４０）によって実行され、他のものは図１及び図２のサービスロケーションマネージャ（たとえば、ＳＬＭ１２０）によって実行され、さらに他のものは図１及び図２のサービスプロバイダ（たとえば、１３０及び１３２）によって実行される。
【００６０】
図３のステップ３０２において、クライアントデバイスとのセッション中に、ポータルが、クライアントデバイスからコンテンツアイテムを特定する要求を受信する。この要求は他の情報を含むことができる。図１及び図２Ａに関する一実施の形態では、ポータル１４０が、クライアントデバイス１５０からメッセージ１を受信する。
【００６１】
図３のステップ３０４において、コンテンツアイテムに対して実行されるサービスのタイプが特定される。このサービスのタイプは、ステップ３０２の要求で特定することもできるし、又はその要求で提供された情報に基づいて導き出すこともできる。図１及び図２Ａを参照して、このサービスのタイプは、クライアントデバイス１５０、ポータル１４０、又はサービスロケーションマネージャ１２０が特定することができる。
【００６２】
図３のステップ３０６において、実行されるそのサービスのタイプのプロバイダが、そのサービスを実行できるいくつかのプロバイダの中から選択される。一実施の形態では、図１及び図２Ａも参照して、サービスプロバイダ（たとえば、サービスプロバイダ１３０等）がＳＬＭ１２０によって選択される。一実施の形態によれば、この選択は、ＳＬＭ１２０に知られている静的なサーバプロバイダの特性及びネットワークの特性に基づく。静的なサーバプロバイダの特性及びネットワークの特性には、ディスパッチ履歴が含まれ、また、前のセッションの開始及び終了に関してサービスプロバイダによって提供された情報が受信されている場合にはそのような情報が含まれ得るが、これらに限定されるものではない。セッション開始情報及びセッション終了情報は、前のセッションで使用された計算資源に関する有用なデータをＳＬＭ１２０に提供し、ＳＬＭ１２０のサービスロケーション（たとえば、サービスプロバイダ）の選択を利用可能な資源と一致するように適合させることをＳＬＭ１２０に可能にすることが理解されるべきである。
【００６３】
これに加えて、上述したように、ＳＬＭ１２０は、サービスプロバイダをランダムに選択することもできるし、ラウンドロビン方式等の方式を使用して選択することもできる。或いは、ＳＬＭ１２０は、他のセッションがサービスプロバイダのいずれに転送されたかを反映する記録を保持することもできる。この後者の手法では、ＳＬＭ１２０は、その記録の情報に基づいてサービスプロバイダを選択する。ＳＬＭは、サービスプロバイダを選択する際に、上述したサービスプロバイダの特性情報及びネットワークの特性情報並びにサービスセッション情報の一部又はすべての組み合わせを使用できることが理解されるべきである。
【００６４】
図３のステップ３０８において、クライアントデバイスとの通信が、ポータルから、選択されたサービスプロバイダへ転送される。換言すると、セッションが、ポータルから、選択されたサービスプロバイダへ転送される。
【００６５】
図３のステップ３１０において、コンテンツアイテムのソースが特定される。図１及び図３を参照して、コンテンツアイテムのソースは、クライアントデバイス１５０、ポータル１４０、ＳＬＭ１２０、又は選択されたサービスプロバイダ（たとえば、サービスプロバイダ１３０）が特定することができる。次に、選択されたサービスプロバイダへのコンテンツアイテムのデータの配信を開始するために、コンテンツソースとの接触が行われる。
【００６６】
図３のステップ３１２において、コンテンツアイテムが、選択されたサービスプロバイダによって受信される（たとえば、選択されたサービスプロバイダへストリーミングされる）。
【００６７】
ステップ３１４において、コンテンツアイテムは、指定されたサービスのタイプに従ってサービスの提供を受ける。コンテンツアイテムを構成するデータは、そのデータがサービスプロバイダにおいて受信されると、サービスを提供することもできるし、サービスを提供する前にキャッシュすることもできる。上述したように、コンテンツアイテムは、すでにサービスの提供を受けている場合もあるし、サービスの提供を受けている最中の場合もあるし、サービスが提供されていない場合もあるし、いまだサービスが提供されたことがない場合もある。コンテンツアイテムへのサービスの提供には、コンテンツアイテムの解析又は処理が含まれ得る。サービス結果コンテンツは、サービスの提供を受けた元のコンテンツアイテムの変更版（たとえば、背景除去がビデオストリームに適用される場合）、元のコンテンツアイテムから得られたコンテンツアイテム（たとえば光学文字認識が使用されてテキスト出力が生成される場合）、サービスプロバイダを通じて渡され、変更されずに単に転送されるだけのコンテンツアイテム（たとえば、トランスコードサービスプロバイダによって受信された場合にトランスコードを必要としないコンテンツ）、又は、事前にサービスプロバイダに送信されており、現在、そのサービスプロバイダにキャッシュ／記憶されているコンテンツアイテム（たとえば、事前にサービスの提供を受けており、現在、サービスプロバイダのメモリに記憶されているコンテンツ）から構成することができる。これに加えて、サービス結果コンテンツは、上記例の任意の組み合わせから構成されてもよい。
【００６８】
一実施の形態では、サービスは、サービスプロバイダによって連続的に実行される。別の実施の形態では、サービスは、クライアントデバイスがサービスプロバイダとの通信を確立するまで、セットアップされないか、又は、処理を開始しない。さらに別の実施の形態では、サービスは、サービスプロバイダがサービスロケーションマネージャによって特定された後であって、クライアントデバイスがサービスプロバイダとの通信を確立する前にセットアップされ、且つ／又は、起動する。たとえば、図２Ａ及び図２Ｂに関しては、ＳＬＭ１２０が、指定されたサービスのタイプのプロバイダとしてサービスプロバイダ１３０を選択した後、メッセージＣがサービスプロバイダ１３０へ送信され、それによって、サービスプロバイダ１３０にそのサービスのセットアップ及び／又は起動を行わせる。
【００６９】
図３のステップ３１６において、サービス結果コンテンツがクライアントデバイスへ送信される（たとえば、ストリーミングされる）。サービス結果を構成するデータは、入力データがサービスの提供を受けた時に送信することもできるし、サービス結果データは、当該データが送信される前にキャッシュすることもできる。
【００７０】
ステップ３１２、３１４、及び３１６は、同時に実行することができる。すなわち、選択されたサービスプロバイダ（たとえば、図１及び図２Ａのサービスプロバイダ１３０）は、コンテンツアイテム全体がサービスプロバイダ１３０において受信される前に、コンテンツアイテムへのサービスの提供を開始することができ、サービス結果データは、コンテンツアイテム全体へのサービスの提供が完了する前に、サービスプロバイダ１３０からフローを開始することができる。同様に、コンテンツアイテムの別の部分へのサービスの提供の結果がクライアントデバイスによって受信されている間、コンテンツアイテムの或る部分へのサービスの提供は進行中であることも可能である。
【００７１】
サービス結果コンテンツがクライアントデバイス１５０（図１及び図２Ａ）に配信されると、セッションを終了することができる。セッションは、セッションの完了時に終了してもよいし、セッションの解体が（たとえば、クライアントデバイス１５０やＳＬＭ１２０等によって）要求された場合には、完了前に終了してもよいことに留意すべきである。ＳＬＭ１２０が、セッションを割り当てられたプロバイダの或る種の記録を保持する実施の形態では、セッションが終了すると、又は、サービスプロバイダがコンテンツアイテムにサービスを提供すると、その記録を更新することができる。記録を更新する手法については上述した。
【００７２】
図４は、本発明の一実施の形態によるコンテンツへのサービスの提供を管理するための方法のフローチャート４００である。具体的なステップがフローチャート４００に開示されるが、このようなステップは例示である。すなわち、本発明の実施の形態は、さまざまな他のステップ又はフローチャート４００で列挙されたステップを変形したものの実行にもよく適合する。フローチャート４００のステップは、提示したものとは異なる順序で実行してもよいこと、及び、フローチャート４００のステップのすべてが実行されるとは限らない場合があることが理解されよう。
【００７３】
フローチャート４００によって説明される方法のすべて又は一部は、たとえば、コンピュータシステム又は同様のデバイスのコンピュータ使用可能媒体に存在するコンピュータ可読で且つコンピュータ実行可能な命令を使用して実施することができる。本実施の形態では、フローチャート４００は、図１及び図２Ａのシステム１００によって実施される。具体的には、フローチャート４００は、図１及び図２のサービスロケーションマネージャ１２０によって実施される。
【００７４】
図４のステップ４０２において、図１及び図２Ａも参照して、コンテンツアイテムを特定する第１のメッセージ（たとえば、メッセージ２）がポータル１４０から受信される。ポータル１４０はクライアントデバイス１５０と通信する。
【００７５】
図４のステップ４０４において、コンテンツアイテムに対して実行されるサービスのタイプが特定される。サービスのタイプは、ステップ４０２のメッセージで特定することができる。図１及び図２Ａを参照して、サービスのタイプは、クライアントデバイス１５０、ポータル１４０、又はサービスロケーションマネージャ１２０が特定することができる。
【００７６】
図４のステップ４０６において、そのサービスのタイプのプロバイダが、そのサービスを実行できるいくつかのプロバイダの中から選択される。一実施の形態では、図１及び図２Ａも参照して、サービスプロバイダ（たとえば、サービスプロバイダ１３０等）がＳＬＭ１２０によって選択される。一実施の形態によれば、この選択は、ＳＬＭに知られている静的なサーバプロバイダの特性及びネットワークの特性、ディスパッチ履歴、並びに、前のセッションの開始及び終了に関してサービスプロバイダによって提供された情報が受信されている場合にはそのような情報に基づく。セッション開始情報及びセッション終了情報は、前のセッションで使用された計算資源に関する有用なデータをＳＬＭ１２０に提供し、且つＳＬＭ１２０のサービスロケーション（たとえば、サービスプロバイダ）の選択を利用可能な資源と一致するように適合させることをＳＬＭ１２０に可能にすることが理解されるべきである。
【００７７】
図４のステップ４０８において、一実施の形態では、第２のメッセージ（たとえば、図１及び図２Ａのメッセージ３）がポータルへ送信される。別の実施の形態では、この第２のメッセージは、ポータルを迂回してクライアントデバイスへ送信される。第２のメッセージは、選択されたサービスプロバイダを特定する情報を含み、ポータルからサービスプロバイダへ（たとえば、図１及び図２Ａのポータル１４０からサービスプロバイダ１３０へ）転送されるクライアントデバイス間の通信を可能にする。
【００７８】
図４のステップ４１０において、一実施の形態では、第３のメッセージ（たとえば、図２Ａ及び図２ＢのメッセージＣ）が、選択されたサービスプロバイダへ送信される。この第３のメッセージは、コンテンツアイテムの識別情報及び／又はコンテンツソースの識別情報を含むことができる。また、第３のメッセージは、サービスプロバイダに警告するのに使用することもでき、（サービスがまだ実行されていない場合）サービスプロバイダがサービスのセットアップ及び／又は実行を開始することを可能にする。第３のメッセージに応答して、サービスプロバイダは、コンテンツソースと接触して、コンテンツソースからサービスプロバイダへのコンテンツアイテムの配信（たとえば、ストリーミング）を開始することもできる。ちょうど説明したアクティビティは、第３のメッセージの代わりに、クライアントデバイス及びサービスプロバイダが通信を確立したことに応答して開始することもできる。次に、サービス結果コンテンツが、サービスプロバイダからクライアントデバイスへ送信される（たとえば、ストリーミングされる）。
【００７９】
要約すれば、本発明の実施の形態は、多数の多様なクライアントデバイスにサービスを提供できる方法及びシステムを提供する。さまざまなサービスが、それら多様なクライアントの好み及び要件に対応するように提供される。輻輳を回避するために、サービスは、サービスロケーションマネージャによって管理されたいくつかのサービスプロバイダによって提供される。クライアントデバイスによって要求されたコンテンツアイテムは、サービスプロバイダ資源の可用性に基づいて、サービスプロバイダへ送られ、サービスの提供を受ける。しかしながら、クライアントデバイスは、セッションの開始及びコンテンツアイテムの要求を行うのに、広く公開されたポータルサイトとしか接触する必要がない。クライアントデバイスは、セッション中、適切なサービスプロバイダへ自動的に且つトランスペアレントに転送される。クライアントデバイスの見地からは、単一の接触ポイントがあるだけである。システムによって選択されたサービスプロバイダを介したクライアントデバイスへのサービス結果コンテンツの配信をもたらす、コンテンツ配信システムを通るメッセージ及びデータのフローは、クライアントデバイスにトランスペアレントである。最初の接触ポイントから、選択されたサービスプロバイダへのセッションのシームレスな転送は、クライアントデバイスのエンドユーザにトランスペアレントである。
【００８０】
本発明の具体的な実施の形態の上記説明は、図示及び説明の目的で提示されたものである。それら説明は、網羅的であることを目的とするものでもなければ、開示した正確な形態に本発明を限定することを目的とするものでもなく、多くの変更及び変形が、上記教示に鑑みて可能であることは明らかである。実施の形態は、本発明の原理及びその実用化を最もよく説明し、それによって、他の当業者が、本発明、及び、検討した特定の使用に適するようなさまざまな変更を有するさまざまな実施の形態を最もよく利用することを可能にするために選ばれて説明されたものである。本発明の範囲は、本明細書に添付した特許請求の範囲及びその等価物によって画定されることが意図されている。
【図面の簡単な説明】
【００８１】
【図１】本発明の一実施の形態による、資源の可用性に基づいてコンテンツへのサービスの提供及びコンテンツの配信を行うためのシステムの内外の情報フローを示すブロック図である。
【図２Ａ】本発明の一実施の形態による、資源の可用性に基づいてコンテンツへのサービスの提供及びコンテンツの配信を行うためのシステムの内外の情報フローを示すブロック図である。
【図２Ｂ】本発明のさらに別の実施の形態による、コンテンツへのサービスの提供及びクライアントデバイスへのコンテンツの配信を行うためのシステムの内外の情報フローを示すブロック図である。
【図３】本発明の一実施の形態による、資源の可用性に基づいてコンテンツへのサービスの提供及びコンテンツの配信を行うための方法を示す図である。
【図４】本発明の一実施の形態による、資源の可用性に基づいてコンテンツへのサービスの提供を管理するための方法を示す図である。
【符号の説明】
【００８２】
１１０・・・コンテンツソース
１２０・・・サービスロケーションマネージャ
１３０，１３２・・・サービスプロバイダ
１４０・・・ポータル
１５０・・・クライアントデバイス
【図１】
2007516500.tif 000003
【図２Ａ】
2007516500.tif 000004
【図２Ｂ】
2007516500.tif 000005
【図３】
2007516500.tif 000006
【図４】
2007516500.tif 000007
【国際調査報告】
2007516500.tif 000008
2007516500.tif 000009
2007516500.tif 000010