(57)【要約】  ローカル・デバイスおよびリモート・デバイスからストリーミングする技術は、ストリーミング・アプリケーションに関連するデータの部分集合（subset）をローカル・デバイスに提供することを含む。本技術による方法の一例は、ストリーミング・ソフトウェア・プレーヤーを起動させること、ソフトウェア・アプリケーションをストリームするのに必要なローカル・ストレージ・デバイスからのデータにアクセスすること、そして、ストリーミング・ソフトウェア・プレーヤーを使用して、ソフトウェア・アプリケーションをストリームするのに必要なリモート・ロケーションからのデータにアクセスすることを含む。本技術によるシステムの一例は、限定的でない例として、ストリーミング・アプリケーションに関連するコンテンツの第１の部分集合をストリーミング・サーバからストリーミングする手段、ストリーミング・アプリケーションに関連するコンテンツの第２の部分集合をローカル・ソースからストリーミングする手段、および、ストリーミング・サーバに定期的に問合せする手段であって、定期的な問合せが、ストリーミング・アプリケーションが起動していることをストリーミング・サーバに通知するようになっている手段を含むようにしてもよい。【選択図】図１
2008527468.tif 000002
【特許請求の範囲】
【請求項１】
ストリーミング・ソフトウェア・プレーヤーを起動させること、
ストリーミング・ソフトウェア・プレーヤーを使用して、ソフトウェア・アプリケーションをストリームするのに必要なローカル・ストレージ・デバイスからのデータにアクセスすること、
ストリーミング・ソフトウェア・プレーヤーを使用して、ソフトウェア・アプリケーションをストリームするのに必要なローカル・キャッシュからのデータにアクセスすること、
ストリーミング・ソフトウェア・プレーヤーを使用して、ソフトウェア・アプリケーションをストリームするのに必要なリモート・ロケーションからのデータにアクセスすること
を含む方法。
【請求項２】
ソフトウェア・アプリケーションをストリームするための要求を送信することをさらに含む請求項１に記載の方法。
【請求項３】
ソフトウェア・アプリケーションをストリームするための要求に応じてトークン・ファイルを受信することをさらに含む請求項１に記載の方法。
【請求項４】
ソフトウェア・アプリケーションをストリームするための要求に応じてストリーミング・サーバのアドレスをリモート・ロケーションで受信することをさらに含む請求項１に記載の方法。
【請求項５】
ソフトウェア・アプリケーションをストリームするための要求に応じて、リモート・ロケーションから第１のコンテンツにアクセスするための指示と、ローカル・ストレージ・デバイスから第２のコンテンツにアクセスするための指示とを受信することをさらに含む請求項１に記載の方法。
【請求項６】
リモート・ロケーションでストリーミング・サーバに定期的に問合せすることをさらに含み、定期的な問合せが、ストリーミング・アプリケーションが起動していることをストリーミング・サーバに通知する請求項１に記載の方法。
【請求項７】
ローカル・ストレージ・デバイスは、リムーバブル・ストレージ・デバイスである請求項１に記載の方法。
【請求項８】
ストリーミング・サーバで、ストリーミング・アプリケーションに関連する第１のコンテンツを維持すること、ストリーミング・アプリケーションをストリームするための要求を受信すること、要求に応じてトークン・ファイルを提供することを含み、前記トークン・ファイルは、ストリーミング・サーバに関連するアドレスと、適切にストリーミング・アプリケーションをストリーミングするために必要である第１のコンテンツをストリーミング・サーバから受信するための指示と、適切にストリーミング・アプリケーションをストリーミングするために必要である第２のコンテンツをローカル・ストリーミング・ソースから受信するための指示とを含む方法。
【請求項９】
ストリーミング・アプリケーションに関連するコンテンツを第１のコンテンツと第２のコンテンツとに分割することをさらに含む請求項８に記載の方法。
【請求項１０】
ネットワーク化されたサーバに第１のコンテンツを維持することをさらに含む請求項８に記載の方法。
【請求項１１】
ストリーミング・アプリケーションをストリームするのに必要なファイルであって、第２のコンテンツに関連するローカル・アドレスと、第２のコンテンツに関連するリモート・アドレスとを含むファイルを消費者に提供することをさらに含む請求項８に記載の方法。
【請求項１２】
第２のコンテンツをリムーバブル・メディアに置くことをさらに含む請求項８に記載の方法。
【請求項１３】
保存された第２のコンテンツを有するリムーバブル・メディアが消費者にとって利用可能にすることをさらに含む請求項８に記載の方法。
【請求項１４】
ストリーミング・アプリケーションに関連するコンテンツの第１の部分集合をストリーミング・サーバからストリーミングする手段と、ストリーミング・アプリケーションに関連するコンテンツの第２の部分集合をローカル・ソースからストリーミングする手段と、ストリーミング・サーバに定期的に問合せする手段であって、定期的な問合せが、ストリーミング・アプリケーションが起動していることをストリーミング・サーバに通知するようになっている手段とを含むシステム。
【請求項１５】
ストリーミング・ソフトウェア・プレーヤーを起動させる手段をさらに含む請求項１４に記載の方法。
【請求項１６】
ソフトウェア・アプリケーションをストリームするための要求をストリーミング・サーバに送信する手段をさらに含む請求項１４に記載のシステム。
【請求項１７】
ソフトウェア・アプリケーションをストリームするのに必要なローカル・ストレージ・デバイスからのデータにアクセスする手段をさらに含む請求項１４に記載のシステム。
【請求項１８】
ソフトウェア・アプリケーションをストリームするのに必要なローカル・キャッシュからのデータにアクセスする手段をさらに含む請求項１４に記載のシステム。
【請求項１９】
ストリーミング・ソフトウェア・プレーヤーを使用して、ソフトウェア・アプリケーションをストリームするのに必要なリモート・ロケーションからのデータにアクセスする手段をさらに含む請求項１４に記載のシステム。
【請求項２０】
ローカル・ソースがリムーバブル・ストレージ・デバイスである請求項１４に記載のシステム。
【発明の詳細な説明】
【背景技術】
【０００１】
ソフトウェア・ストリーミングは、ストリーミングされるプログラムに必要な断片としてのファイルの小片をダウンロードすることを含む。これらの小片は、ブロックと呼ばれる。ストリーミング・クライアントは、要求されたブロックに関連するストリーミング・データを返信するストリーミング・サーバに、必要なブロックの要求を送信する。要求の送信やストリーミング・データの受信がストリームされたプログラムを低速にし得る遅延を引き起こす。
【０００２】
ストリームされたアプリケーションの利点は、ユーザがプログラムを実行するのに必要であるものをダウンロードするだけでよい点である。ストリームされたアプリケーションを提供するプロバイダーは、例えば、ハード・ディスクにインストールされるプログラムを提供するプロバイダーよりも、ストリームされたアプリケーションを完全に制御する。例えば、ストリームされたアプリケーションを提供するプロバイダーは、そのアプリケーションの時間単位の使用料を請求する。代わりに、ストリームされたアプリケーションを提供するプロバイダーは、ローカル・ディスクが、アクセスされないであろうコードで無駄にいっぱいになることを防ぐ。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ストリーミングには確かな利点があるが、否定したり、対処したり、少なくするのに有利なストリーミング・ソフトウェアに関連する多くの問題点もある。例えば、プログラムのストリーミングを早く実行することは、継続する問題である。また、他の例として、ストリームされたプログラムに対して、インストールに関連する類似した経験をユーザに提供することが望ましい。また、他の例として、コンソール上にストリームされたプログラムを提供することが望ましい。
【０００４】
さらに、ストリームされたアプリケーションを提供するプロバイダーは、著作権保護を試みることを望む。これは難しい場合がある。なぜなら、ストリームされたアプリケーションが特定のパソコンにダウロードされると、その使用者はストリームされたアプリケーションの全ての部分にアクセスができ、ストリームの必要性が排除され、著作権侵害のリスクが増加するからである。したがって、いくつかの問題に対する追加の課題は、ユーザが局部的に与えられたプログラムの全てにアクセスできることを防ぐことである。
【課題を解決するための手段】
【０００５】
本発明の実施形態は図の中で例示される。しかしながら、実施形態および図は例示であって、本発明は、これらに限定されるものではない。
【０００６】
ローカル・デバイスやリモート・デバイスからストリーミングする技術は、ストリーミング・アプリケーションに関連するデータの部分集合（subset）をローカル・デバイスに提供することを含む。限定的でない例として、データの第１の部分集合が消費者にリムーバブル・ストレージ・デバイスで提供されるようにしてもよい。本技術による方法の一例は、ストリーミング・ソフトウェア・プレーヤーを起動させること、ソフトウェア・アプリケーションをストリームするのに必要なローカル・ストレージ・デバイスからのデータにアクセスすること、ソフトウェア・アプリケーションをストリームするのに必要なローカル・キャッシュからのデータにアクセスすること、そして、ストリーミング・ソフトウェア・プレーヤーを使用して、ソフトウェア・アプリケーションをストリームするのに必要なリモート・ロケーションからのデータにアクセスすることを含む。限定的でない実施形態において、本方法は、ソフトウェア・アプリケーションをストリームするための要求を送信することを含むようにしてもよい。そして、ソフトウェア・アプリケーションは、ローカル・ストレージ・デバイスと、例えば、ストリーミング・サーバのような離れた場所の両方からストリームされるようにしてもよい。
【０００７】
本技術による方法の他の例は、ストリーミング・サーバで、ストリーミング・アプリケーションに関連する第１のコンテンツを維持すること、ストリーミング・アプリケーションをストリームするための要求を受信すること、そして、要求に応じてトークン・ファイルを提供することを含む。トークン・ファイルは、限定的でない例として、ストリーミング・サーバに関連するアドレス、適切にストリーミング・アプリケーションをストリーミングするのに必要である第１のコンテンツをストリーミング・サーバから受信するための指示、および、適切にストリーミング・アプリケーションをストリーミングするのに必要である第２のコンテンツをローカル・ストリーミング・ソースから受信するための指示を含むようにしてもよい。限定的でない実施形態において、本方法は、ストリーミング・アプリケーションに関連するコンテンツを第１のコンテンツと第２のコンテンツとに分割することを含むようにしてもよい。
【０００８】
本技術によるシステムの一例は、限定的でない例として、ストリーミング・アプリケーションに関連するコンテンツの第１の部分集合をストリーミング・サーバからストリーミングする手段や、ストリーミング・アプリケーションに関連するコンテンツの第２の部分集合をローカル・ソースからストリーミングする手段や、ストリーミング・サーバに定期的に問合せをする手段であって、定期的な問合せが、ストリーミング・アプリケーションが起動していることをストリーミング・サーバに通知するようになっている手段を含むようにしてもよい。
【発明を実施するための最良の形態】
【０００９】
ソフトウェア・タイトルの「ストリーミング・インストール」に関連する技術は、ソフトウェアのインストールや環境の構成といった、ソフトウェアを動かすのに通常必要であるステップの多くを減少させることを含む。そのタイトルをストリーミングすることは、始動の後にインストールされたソフトウェア・タイトルによく似るユーザ経験を提供する。
【００１０】
本技術のある面の利点は、ユーザが、典型的な非ストリーミング・ソフトウェア・タイトルのインストールよりさらに速くて簡単な始動を経験することができる点である。別の利点は、例えば、コンピュータ・ゲームではコンソール・ゲームとして、迅速で簡単にプレーすることができる点である。ストリーミング・アプリケーションにおける性能測定基準は、ストリームされたアプリケーションが実際に従来通り(すなわち、ストリームされない)にインストールされた同じタイトルと同様に機能するかどうかである。いくつかの場合、ストリームされたタイトルは、従来通りにインストールされたタイトルよりもよく機能しさえする。
【００１１】
ユーザの中には、ハード・ディスクへのインストールが、ストリーミング・ソフトウェア・タイトルの性能を向上させることができると信じている人もいる。CDやDVDが、ある一定のポイントでスピンダウンして、再びスピンアップする遅れを被るかもしれないので、これは本当であるかもしれない。従って、一実施形態において、ストリーミング・アプリケーションは、ハード・ディスクにインストールされる。ハード・ディスクへのストリーミング・アプリケーションのインストールが、非ストリーミング・アプリケーションのインストールと同じでないのに注目すべきである。ストリーミング・アプリケーションはインストールの後にまだストリームされている。例えば、CDやDVDの代わりにハード・ディスクから単にストリームされる。
【００１２】
複数のディスクからストリーミングがサポートされることが望ましいので、ディスクを交換しなければならないという問題を減少させるために、完全なインストールを使用することができる。いくつかの場合、マクロビジョン・セイフディスク・キー（Macrovision SafeDisc key）などのように、単一のCDやDVDがキーとして利用可能であることを必要とすることが望ましい。
【００１３】
同様に、ストリームされたアプリケーションは、マクロビジョン・セイフディスクをセキュリティに利用するアプリケーションをサポートするようにしてもよい。例えば、CDキーはスタートアップ時にマクロビジョン・セイフディスク・キー（Macrovision・SDK）の特徴を使用して、ソフトウェア・タイトルの使用を通じて定期的に確認されるようにしてもよい。マクロビジョン・セイフディスク・キーは各CDの上にあるようにしてもよい。
【００１４】
ユーザの中には、ソフトウェア・タイトルに関連するアセットやファイルへのアクセスを必要とするソフトウェア・タイトルを変更すること（モッド）を望む人もいるかもしれない。従って、ユーザに技術（モデル、テキスチャ、音、レベル・ファイルなど）などのようなソフトウェア・タイトルを提供する元のアセットへのアクセスが提供されるかもしれない。これらは、局所的に、変更、コピー、または挿入されて開くことができる。同様に、ユーザは、ネットワークからモッドをダウンロードして、モッドをソフトウェア・タイトルと統合することができる。
【００１５】
また、ユーザとソフトウェア・タイトル・プロバイダーは、ソフトウェア・パッチがさらに望ましいことが通常わかる。ストリームされたアプリケーションは、ユーザに最新のパッチをダウンロードする方法を提供する。
【００１６】
産業上のほとんどのソフトウェア・タイトルでは一般的であるように、CDやDVDのストリーミング・タイトルを提供するとき、製品登録を望むかもしれない。
【００１７】
圧縮の技術は、ストリームされたデータ・ファイルとして提供されるメディアを完全に利用するために応用される。例えば、ストリーミング・バッファの中へのデータのパッケージングは、Zipスタイル圧縮と同じくらいコンパクトであるかもしれない。
【００１８】
図１は、ソフトウェア・タイトルをストリーミングする典型的なプロセス、およびソフトウェア・タイトルに関連する他の動きのフローチャートを示す。限定的でない実施形態において、モジュール102では、図２Ａで示すように、ユーザはコンピュータにCDを挿入する。限定的でない実施形態において、コンピュータにCDを入れるとコンピュータのオペレーティング・システム(例えば、Windows2000)でAutorun.infファイルが処理される。Autorun.infファイルは、「スタッブ」プログラムを参照し、実行する。モジュール104では、スタッブ・プログラムは初期のオプションをユーザに提供する。
【００１９】
スタッブ・プログラムは、製品登録や、ストリーミング・プレーヤー(例えば、ストリーム・ウィーバー)の検出、ストリーミング・プレーヤーのインストールといった様々なメニュー・オプションなどのような特徴をユーザに提供する。製品登録には、ユーザのコンピュータの永続的なメモリをチェックして、CD登録キーの入力がされたかどうか決定するのを伴うかもしれない。一つの実施形態において、製品が登録されていない場合(典型的には、タイトルがはじめてストリーミングされる時)、図２Ｂの中で例示されるように、登録プログラムは適切な登録情報のためにユーザを促す。
【００２０】
一つの実施形態において、スタッブ・プログラムは、CD登録キーと製品登録を入力するための画面を表示する。スタッブ・プログラムは、永続的なメモリにCD登録キーと製品登録に関する情報を保存する。ネットワーク(例えば、インターネット)上で登録情報をソフトウェア・タイトルのベンダーや作者に送る。ネットワーク接続が利用できないなら、登録は、ソフトウェア登録業界でよく理解されている他の方法で行われる。
【００２１】
もし、ユーザが登録手続をスキップするなら、この事実は、永続的なメモリに保存され、後でもう一度登録するようにユーザに問うかどうかを決めるときに使用される。もし、すでに登録を断っているなら、永続的なメモリにこの事実が保存され、そして、予定された期間が経過したかどうかチェックされる。もし、期間が経過したなら、再び登録する機会がユーザに与えられる。
【００２２】
別の実施形態において、もし、CDが以前に登録されたなら、スタッブ・プログラムは、登録を省き、図２Ｄに示すようなスプラッシュ・スクリーンに直接移る。
【００２３】
前記のように、スタッブ・プログラムは、図２Ｃで示すように、ストリーミング・プレーヤーの検出や、ストリーミング・プレーヤーのインストールなどの特徴を提供する。これらの特徴は、そのインストールや、もしインストールされているなら、関連するキーの値がないかどうか登録をチェックすることによって、ストリーミング・プレーヤーのバージョンのチェックを含むようにしてもよい。例えば、その登録は、キーの値が“HKEY＿LOCAL＿MACHINE/SOFTWARE/Stream Theory/Stream Theory Player/Install Path"を含む。キーが存在する場合、それはストリーム・セオリー・プレーヤーがインストールされることを意味し、インストールの位置を識別するべきである。インストールされたプレーヤーのバージョンは、キーの中で指定されたファイル、典型的には4.0.0.20のキーの値を備えた「C:/Program Files/Stream Theory/stfsd.sys」のバージョンのチェックにより決定されるかもしれない。もしプレーヤーが見つかれば、プレーヤーのバージョンは、要求される最小のプレーヤーと比較されるに違いない。プレーヤーが全くインストールされないか、またはバージョンが必要なソフトウェア・タイトルをサポートするのに不十分であるなら、CDやウェブ・サイトのようなリモート・ロケーションから、インストールできるプレーヤーが提供される。新しいプレーヤーのインストールは再起動を必要とする。
【００２４】
モジュール106(図１)における、限定的でない実施形態において、スタッブ・プログラムは、図２Ｄで示すように、「スプラッシュ・スクリーン」で様々なオプションをさらにユーザに提供する。そのオプションは、オートプレイ・オプション108（図１）や、ハード・ドライブにインストールするオプション110（図１）や、ファイル・エディタ・オプション112（図１）や、アップグレード・オプション114（図１）を含む。追加オプション（図示しない）は、ソフトウェア・タイトルの業者のウェブ・サイトや作者のウェブ・サイトなど、または終了のためのオプションを含む。
【００２５】
もし、ユーザがオートプレイ・オプションをクリックするなら、図２Ｅで示すように、モジュール116（図１）でストリーミング・アプリケーションを受け取り始める機会をすぐにユーザに与える。例えば、ゲーム・シェルは、図２Ｆで示すように、ゲームをロードすることや、新しいゲームをすること、オプションの設定をすることの能力をユーザに与えることを始める。動作は、従来通りにインストールされたソフトウェア・アプリケーションのものと同様であり、必ずしもゲームに制限があるというわけではない。
【００２６】
図２Ｇで示すように、モジュール118(図１)では、ソフトウェア・タイトルは、CD（または、以前に完全にインストールされているならハード・ドライブ)からデータをストリームする。さらに、マクロビジョン・セイフディスクは、必要に応じて、キー、あるいは、他のデータをチェックするのに使用される。オプションのモジュール120(図１)では、実行可能ファイルは、マクロビジョン・セイフディスクをチェックする。ファイル・システムは、必要なファイルがどのディスクにあるかを特定することができるくらい知的でなければならず、モジュール122(図１)で必要ならば、ディスクを交換するようにユーザに促す。もし、ハード・ドライブにインストールされるなら、ファイル・システムが別のCDを要求するときに、ユーザは、例えば、先へ進むためにキー・シーケンスを入力するかもしれない。この例では、キー・シーケンスは、まるで別のディスクが挿入されたかのように、ゲームを続かせるドライバによって遮断される。また、他の技術は、マルチディスクの機能性を提供するのに使用される。
【００２７】
モジュール124(図１)で、ユーザが、図２Ｈで示すように、ハード・ドライブにインストールするオプションをクリックするなら、ユーザは、ストリーミング・アプリケーションを(通常)ローカル・ハード・ドライブにインストールする機会を与えられる。インストールされたストリーミング・アプリケーションを扱うことにかかわる技術と、複数のCDから起動するストリーミング・アプリケーションを扱うことにかかわる技術は、よく似ている。それぞれのCDは、ストリーム・ファイルに相当する。特定のCDのためのアプリケーション・プロンプトであるときに、これは、現在アクティブなストリーム・ファイルの範囲の外でのブロックを求める要求によって検出される。ストリーミング・プレーヤーは、CDを変えるという要求の遮断と検出をしなければならない。
【００２８】
ストリーミング・タイトルをハード・ドライブにインストールするとき、システムは、通常、十分なディスク・スペースをチェックし、もしスペースが十分であるなら、図２Ｉに示すように、ストリーミング・ファイルのすべてをハード・ドライブにコピーする。さらに、ショートカットは、任意のモジュール126(図１)で作成される。ウィンドウ登録設定は、調整され、ショートカットへの取り外しコードは、「Add and Remove」というプログラムに追加される。特定の要求でCDをロードするためのユーザのプロンプトを入力することが必要である。ストリーミング・タイトルが一旦ハード・ドライブにインストールされると、ユーザは、例えば、図２Ｊで示すように、ストリーミング・プレーヤーを起動して、ストリーミング・アプリケーションを実行するためのショートカットを選択する。「Play Now」が選択される時、ハード・ドライブ上のキャッシュをモジュール128(図1)で示されるように、使用することができる。
【００２９】
モジュール112(図１)で、図２Ｋで示すように、ユーザがファイル・エディタ・オプションをクリックするなら、モジュール130(図１)で、図２Ｋで示すように、ファイル・エディタが起動する。ユーザは、変更あるいは置き替えることができる特定のファイルへのアクセスを得る。通常、そのストリームされたアプリケーションのファイル構造はユーザから隠される。もしアプリケーションがファイルを変更するなら、このファイルは、"C:/Stream Theory / local / app＿name / … / file＿to＿be＿edited"などのサブ・ディレクトリにコピーされる。
【００３０】
アプリケーションのパッチ（一部の修正）をする場合、エディタは、ストリームされたアプリケーションで処理されるべきであり、そのファイルがエディタから見えるよう、ストリームされたアプリケーションとしての同じストリーム・ファイルに含まれるべきである。変更されたファイルが保存されるとき、それはストリーム・ファイルとはならず、上記で指定されたディレクトリの下で、保存される。エディタは、外部のアプリケーションに見えるようにされたファイルを変更し、書き上げる。データ・ファイルは、「解凍」でないので、ストリーミング・データ・ファイルはそれらからオフライン方法で復元されない。
【００３１】
モジュール114（図１）で、図２Ｍで示すように、ユーザがアップグレード・オプションをクリックするなら、モジュール132で、図２Ｎで示すように、アップグレード・プログラムは、アップデートのチェックと適用を開始する。アップデートは、アップグレード、パッチ、または他の変更を含む。ストリーミング・アプリケーション・パッチで、アップグレード・スタッブ・プログラムは、パッチ・プログラムを始動するトークン・ファイルを呼び出す。そして、パッチ・プログラムは、新しいパッチを見つけ、検索するためにウェブ上に出る。新しいパッチがあれば、このファイルをダウンロードして、例えば、"C:/Program Files/Stream theory/local/app＿name/… "のようなローカル・ディレクトリに保存する。ストリーミング・プレーヤーのファイル・システム・ドライバは、アップデートされたファイルや、より新しいアップデートに置き替えられるファイルがないかどうか、ローカルのアプリケーションディレクトリをチェックする。アプリケーションを実行すると、パッチされたファイルは、アクセスされ、ユーザにとって見えるようになる。
【００３２】
パッチ・プログラムは、ストリームされて、ストリーミング・アプリケーションで処理されるべきである。例えば、アプリケーションファイル構造は、アプリケーションの外から隠されるなら、これが必要であるかもしれない。アプリケーションの不正コピーを防ぐために安全保障上の理由でファイルが隠される。
【００３３】
ストリーミング・アプリケーションが、例えば、CDやDVDドライブでCDやDVDのコンテンツを予想するとき、ユーザは適切なディスクでスワップする必要がある。ストリーミング・アプリケーション自体は、特定のCDやDVDにあるデータに関連する情報がコード化されるトークン・ファイルを含む。適切なディスクが利用可能であることを確かめる事に関する問題を減少させるために、CDまたはDVDドライブを仮想化することができる。
【００３４】
図３Ａは、ハイブリッド・ローカル／リモート・ストリーミングのためのシステム300について示す。そのシステム300は、第１ストリーミング・コンテンツ・データベース302と、第２ストリーミング・コンテンツ・データベース304と、ローカル・キャッシュ306と、ストリーミング・プレーヤー308とを含む。第１ストリーミング・コンテンツ・データベース302は、ストリーミング・サーバ310に置かれる。第２ストリーミング・コンテンツ・データベース304は、ストリーミング・クライアント312に置かれる。
【００３５】
一つの実施形態において、第２ストリーミング・コンテンツ・データベース304は、消費者に配布されるCDやDVDなどのリムーバブル・メディアに含まれる。第２ストリーミング・コンテンツは、直接リムーバブル・メディアからストリームされるか、またはローカル・メモリや、ハード・ディスク・ドライブなどのような非揮発性記憶装置にインストールされる。リムーバブル・メディアは、業界において周知であり、プライバシーや他の形式の知的所有権窃盗から保護するために絶え間なく発達するタイプのコピー保護安全装置を含む。
【００３６】
一つの実施形態において、第２ストリーミング・コンテンツ・データベース304は、ストリーミング・アプリケーションに関連するコンテンツのすべてを含んでいない。しかしながら、第１ストリーミング・コンテンツ・データベース302は、ストリーミング・アプリケーションのためのストリーミング・コンテンツの残りを含む。ストリーミング・コンテンツの業界で知られているように、ローカル・キャッシュ306は、ストリーミング・プレーヤー308がストリーミング・アプリケーションを実行する間、利用されるかもしれない。ブロックなどのコンテンツが、第１ストリーミング・コンテンツから要求されるとき、ストリーミング・プレーヤーは、ストリーミング・サーバ310からブロックを要求する。他方では、別のブロックのようなコンテンツが、第２ストリーミング・コンテンツから要求される場合、ストリーミング・プレーヤーは、第２ストリーミング・コンテンツ・データベース304が提供されたリムーバブル・メディアのようなローカル・ソースあるいは第２ストリーミング・コンテンツ・データベース304がインストールされたハード・ドライブのようなローカル・ソースからブロックを要求する。ブロックのような要求されたコンテンツが貯えられる場合、要求はローカル・キャッシュ306によって受け取られる。
【００３７】
いくつかの要求されたブロックが局所的に入手できるので、広帯域アクセスが利用できない、または制限されていても、高い率の速度でソフトウェアをストリームするのにシステム300を有利に使用することができる。これは、大容量のソフトウェア・タイトルに対しては、かなりの有用性がある。そのうえ、あるデータを比較的安全に保つことは、時々有益である。安全に保たれるべきであるデータは、局所的に提供されるブロックにコード化することができる。
【００３８】
図３Ｂは、ハートビート・モニター330を含むシステム300に関する例について示す。ハートビート・モニター330は、時折確認されるか、質問されるか、または別の方法で、ストリーミング・アプリケーションの進行中のストリーミングについて通知される。ソフトウェア・タイトルがどれほど使用され、どれくらいの時間、例えば、ソフトウェア・タイトルを使用することに時間を費やす目的について知ることは望ましい。ハートビート・モニター330は、どのブロックが要求されているか、また、どんなオーダーかなどの追加情報を受け取り、要求を阻むことや、ソフトウェア・タイトルの将来のバージョンのコンテンツ・データベースを構成することの回答を予測するように提供する助けになる。
【００３９】
図４Ａは、ハイブリッド・ローカル/ネットワーク・ストリーミングのためのシステム400に関する例について示す。そのシステム400は、ストリーミング・プレーヤー402と、第１コンテンツ・データベース404と、第２コンテンツ・データベース406と、ネットワーク・インターフェース408とを含む。ストリーミング・プレーヤー402と第１コンテンツ・データベース404は、ストリーミング・クライアント412上にあり、そのクライアントは、インターネットを含むかもしれないネットワーク420と結合される。第２コンテンツ・データベース406とネットワーク・インターフェース408は、ネットワーク420とも結合されるストリーミング・サーバ410に置かれている。
【００４０】
一つの実施形態において、第１コンテンツ・データベース404は、２０番目毎のブロックが抜けており、第２コンテンツ・データベース406では２０番目毎のブロックを含む。ストリーミング・プレーヤー402が、第１、第２コンテンツ・データベース404，406の中のブロックに関連するストリーミング・アプリケーションを実行するとき、ストリーミング・プレーヤー402は、データベースのブロックの要求をする。ブロックの要求が第１コンテンツ・データベース404のブロックの１つであるなら、ブロックの要求は局所的に支払われる。他方では、ブロックの要求が第２コンテンツ・データベース406のブロックの１つであるなら、ネットワーク420を通してブロックの要求をする。その要求は、ストリーミング・プレーヤーへネットワーク420を通してネットワーク・インターフェース408を介してブロックの要求に回答を送るストリーミング・サーバ410によって受け取られる。要求がストリーミング・サーバ410によって一旦受け取られると、要求されたブロックが局所的にキャッシュされるかもしれないことに注意すべきである。
【００４１】
ストリーミング・アプリケーションは、異なった多種のブロックのセットのいくつかを保持するために構成されるかもしれない(例えばあらゆる５番目のブロックや、与えられたサイズより小さいあらゆるブロックなど)。図４Ｂは、システム400のためのコンテンツ・データベースの代替の構成について示す。図４Ｂに関する例では、ストリーミング・アプリケーションに関連するブロックは、ライブラリに組織化される。ストリーミング・サーバ410に置かれるコンテンツ・データベースは、ライブラリ１からＮに対応するライブラリ・ブロックの部分集合416-1から416-Nとして、図４Ｂに示されるそれぞれのライブラリの最初の５ブロックを含む。ストリーミング・クライアント412上に置かれるコンテンツ・データベースは、ライブラリ１からＮに対応するライブラリ・ブロックの部分集合414-1から414-Nとして、図４Ｂに示されるそれぞれのライブラリの６番目と、後のブロックをそれぞれに含む。
【００４２】
図４Ｂの中で描かれるようなコンテンツ・データベースを整えることは、(より速いであろう)ローカル・ソースのストリームされたコンテンツによって補われるストリーミング・サーバに要求されたブロック間のダウンロード期間を考慮する。一つの実施形態において、ストリーミング・サーバ410に置かれるブロックは、ソフトウェア・タイトルの自然な中断の間に現れるヘッダー情報を含む。例えば、複数のレベルを持っているゲームが構成されるかもしれないので、ヘッダー情報は各レベルを始める前に、ストリーミング・サーバ410から要求されて、各レベルの間に、コンテンツは局所的に要求される。予測的な要求能力、帯域幅および他の要因に依存して、各レベル間のポーズを要する。
【００４３】
図５に、ハイブリッド・ローカル/リモート・ソフトウェア・ストリーミングのための方法のフローチャート500を示す。一つの実施形態において、フローチャート500は、ストリーミング・サーバからストリーミング・アプリケーションに関連するコンテンツについて第１の部分集合をストリーミング502することから始まる。一つの実施形態において、フローチャート500は、ローカル・ソースからストリーミング・アプリケーションに関連するコンテンツの第２の部分集合をストリーミング504し続ける。一つの実施形態において、フローチャート500は、ストリーミング・サーバについて問合せる506ことを定期的に続け、その定期的な問合せが、ストリーミング・アプリケーションが起動していることをストリーミング・サーバに通知する。
【００４４】
図６は、ハイブリッド・ローカル/リモート・ソフトウェア・ストリーミングのためのメソッドのフローチャート600を示す。一つの実施形態において、フローチャート600は、ストリーミング・アプリケーションに関連するコンテンツを第１のコンテンツと第２のコンテンツに分割602することで始まる。これは、ストリーミング・ソフトウェア開発のストリーム化段階で行われるようにしてもよい。代わりに、アルゴリズムに基づいて、以前にストリーム化されたアプリケーションは分割されるようにしてもよい。(例えば、第１のストリーミングデータベースから２０番目毎のブロックを取り外して、第２のストリーミング・コンテンツ・データベースでの２０番目毎のブロックを置く)形態では、フローチャート600は、ストリーミング・サーバ上に第１のコンテンツを維持し続ける。これは、ユーザがアプリケーションをストリーミングし始めるために訪れるかもしれないウェブ・サイトを提供するのを伴う。ウェブ・サイトは、ストリーミング・コンテンツと同じ場所、または離れた場所にある。一つの実施形態において、フローチャート600は、ストリーミング・アプリケーションをストリームするという要求の受け取り606を続ける。一つの実施形態において、フローチャート600は、要求に対応してトークン・ファイルを提供し続ける。そのトークン・ファイルは、ストリーミング・サーバに関連するアドレスや、ストリーミング・サーバから第１のコンテンツを受け取る指示や、そして、ローカルのストリーミングのソースから第２のコンテンツを受け取る指示を含む。
【００４５】
一つの実施形態において、アプリケーションをストリームするのに使用されるストリーミング・ソフトウェア・プレーヤーは、FSDがロードされたかどうか、またはユーザがロードされたかどうか割り出すのに使用されるDLLを利用する。ユーザは、複数のストリーム・ファイルからストリームすることができるべきである。アプリケーションの一般的なファイルは、１枚のCDにフィットしなければならない。ユーザは、ストリーム・ファイルに切り換わるハード・ドライブにインストールされたソフトウェア・タイトルの新譜か仮想の同等物を求める要求を妨害することができるべきである。
【００４６】
ハード・ドライブの上にインストールされたファイルにおいて、ストリーミングがCDからされたかどうか、ハード・ディスクに保存されたストリーム・ファイルからされたかどうか、または他のどこかからされたかどうか割り出せるように、ストリーミング・ソフトウェア・プレーヤーについて登録がチェックされるべきである。ストリーミング・アプリケーションがディスクの上に完全にインストールされたソフトウェアのように起動することを望むなら、そのストリーミング・アプリケーションは、それがいつ異なったストリーム・ファイルに切り替わることになっているかを知るべきである。ユーザ・ファイル・システム・ドライバは、このためにストリーム・ファイルを切り換えるというシステムレベル要求をサポートする。完全にインストールされたアプリケーションは、アプリケーションを切り替えするようにFSDに呼びかけさせる。パッチ・サポートにおいて、ユーザは、異なった実行を呼び出すためのコマンドラインスイッチをサポートすることを必要とされる。ソフトウェア・タイトル・エディタ・サポートにおいて、ファイルがストリーミング・ソフトウェア・プレーヤーに関連するディレクトリに書き上げられる時のための論理は、ソフトウェア・タイトルから区別されて、慎重に扱われるべきである。
【００４７】
ストリーミング・アプリケーションは、セイフディスク・データを読むことを可能にするために構成される。CDであろうとハード・ドライブであろうとそれが起動していないで、アプリケーションがC-ドライブに完全にインストールされるかのように見えるように、ストリームされたアプリケーションが構成される。もしアプリケーションの一部が、ハード・ドライブとCDの上にインストールされるように見えるなら、問題は起こる。このような場合なら、この事実は、アプリケーションを処理する間、キャプチャされ、トークン・ファイルの中に保存する。アプリケーションがCDから要求をするとき、ファイル・システム・ドライバは、要求を妨害して、アプリケーションに対して要求が有効であるかどうかと割り出す。もし要求がセイフディスク情報のためのものであるなら、ST FSDによるCDからの要求の妨害は、要求が失敗する原因になる。
【００４８】
しかしながら、もしアプリケーションが組織化されている（すべてがC-ドライブの上に現われる）ため、インストール状態におけるデータがCDにとどまらないなら、この事実は、アプリケーションの処理の間、トークン・ファイルで示されるかもしれない。この場合、ファイル・システム・ドライバは、CDへの呼び出しを妨害しないであろうし、セイフディスク情報を求める要求は成功する。
【００４９】
どこにファイルが置かれているとアプリケーションが思うか、そして、実際のデータがどこからストリームされるのかというのは、２つが別物であるので、これは紛らわしく見えるかもしれない。実際のストリーム・データは、CD、ネットワーク、または、これらのすべての場合に、ファイルと実行ファイルがC-ドライブ上にあるように見えるハード・ディスクから得ることができたであろう。アプリケーションのインストールされたバージョンが、ストリーミング形式に変えられるときであっても、アプリケーションは、いくつかのデータがCD(セーフデータを除く)上にあると仮定しない。
【００５０】
マルチCDからストリームされたアプリケーションにおいて、コードがどう開発されて、構造化されるかに課された特定の要求がある。ストリームされないマルチCDゲームでは、異なったCD上に置かれている新しいファイルが必要であるように、アプリケーションは、特定のCDが挿入されるのを要求する。古いCDはアンマウントされ、そして、新しいCDはCD挿入のときにマウントされる。ストリームされたマルチCDゲームとは動作がいくらか異なっているかもしれない。ストリームされたアプリケーションでは、すべてのファイルの全体のディレクトリ構造は、現在マウントされたCD上に実際のファイルがないが、存在するように見える。これは、アプリケーションがストリームされる時に、全体のアプリケーションファイルおよびディレクトリ構造を知っていなければならないからである。
【００５１】
ストリーム・データ・ブロックを備えたCDが存在しないので、アプリケーションが存在しないアプリケーションの一部を参照しようとする場合、問題を引き起こす。たとえ読み取りファイルが利用可能に見えても、読み取りは失敗するだろう。このために、アプリケーションは、あたかもファイルがすべて存在するかのように現れるこの構造の２分法を有するが、異なるCDが挿入されることをいつ要求する必要があるかについて気づいていなければならない。ストリームされないマルチCDゲームでのように、ゲームは新しいCDを挿入する要求を出す。これは、さらにCDがそれぞれオーバーラップするディレクトリ構造を持つことができないことを示唆する。
【００５２】
CD間で共通なアプリケーションの部分が知られているように、ストリームされたアプリケーションが組み立てられる。ストリームされたアプリケーションは、キャッシュにこれらの共通の部分をロックするか、あるいはハード・ドライブにそれらをコピーすることができる。これらのファイルは、アプリケーションがストリームされたアプリケーションに変えられる時に識別される。
【００５３】
同様に、オンライン・ゲーム・プレーは、CDによって、あるいはフォーマットされたストリーム・データを備えたCDによって、アクセスされたゲームに移る。CDから伝統的に実行されたゲーム用の実行ファイルあるいはデータを検索するアクセスタイムは、ストリーム・データを備えたCDからデータにアクセスするのに必要な時間と事実上同一である。さらに、これはディスクに保存されたアプリケーションには真実である。さらに、実行ファイルまたはデータのどれもネットワークによってアクセスされないこの状況を考慮すると、そこに、オンライン・プレー・データ交換と、ハード・ディスクやCDへのアクセスとの間の帯域幅に対する最小の競合があるか、または、競合はない。
【００５４】
ゲーム・ファイル・システムは、ローカルやハード・ドライブ、およびストリームされたCDキャッシュの階層を探索するために修正される。ファイルは、ディスク(キャッシュ)確認者を持っている。必要ならば、ファイル・システムは、正確なディスクを挿入するようにユーザに促す。ゲームは、単純性のためにディスク・スワッピング・ポイントを制限するべきである。これは(少なくとも)レベル境界のようなものである。したがって、スワッピングは、起動するゲーム中ではなくユーザ・インターフェース・シェルの中で起こる。手前であらかじめこのディレクトリを計算することができるかもしれないし、CD上の付加的なデータ・ファイルでありえたかもしれない。取り扱う複数のディスクは、各ディスク上の複製されたデータを必要とする。これは、全面的なメディア・スペースの必要条件に影響を否定的に与えることができた。これを解決するための可能な代案は、ハード・ディスクへの部分的なインストールや、個別のディスク上のストリーム・セオリ・バッファの中でそれらを複写することではなく、共有されるコンポーネントをインストールすることを常に行うことである。
【００５５】
図７および図８の次の記述は、コンピュータ・ハードウェアの概観を提供することを意図し、発明の方法を行なうのにふさわしい他の操作のコンポーネントをここに記述したが、適用可能な環境を制限するものではない。同様に、コンピュータ・ハードウェアおよび他の操作のコンポーネントは、ここに記述された発明の構成の一部として適切かもしれない。本発明は、携帯端末、マルチプロセッサ・システム、マイクロプロセッサに基づいているかプログラム可能な家電、ネットワークPC、ミニコンピュータ、メインフレーム・コンピュータおよびその他同種のものを含む他のコンピュータ・システム構成で実行することができる。本発明も、通信網によってリンクされるリモート・プロセッシング・デバイスによってタスクが行なわれる分散コンピューティング環境の中で実行することができる。
【００５６】
図７は、インターネットのようなネットワーク702を通じてともにつながれたいくつかのコンピュータ・システムを含むネットワークにつながれたシステム700を示す。ここに使用されるような用語「インターネット」は、TCP/IPプロトコルのようなあるプロトコル、および、おそらくハイパー・テキスト・トランスファ・プロトコル(HTTP)のような他のプロトコルをワールド・ワイド・ウェブ(ウェブ)を構築するハイパー・テキスト・マークアップ・ラングウェッジ(HTML)・ドキュメントに使用するネットワークを指す。インターネットの物理接続およびインターネットのプロトコルおよびインターネットの通信規定は、当業者によく知られている。
【００５７】
ウェブ・サーバ704は、主にサーバ・コンピュータ・システムとして作動し、ワールド・ワイド・ウェブのプロトコルで作動するように構成される少なくとも１つのコンピュータ・システムで、インターネットにつながれる。ウェブ・サーバ・システム704は、従来のサーバ・コンピュータ・システムになりえる。ウェブ・サーバ704は、自由に、クライアント・システムにインターネットへのアクセスを提供するISPの一部になりえる。ウェブ・サーバ704は、メディア・データベースの形式と考えることができるウェブ・コンテンツ708につながるサーバ・コンピュータ・システム706につながれることを示す。下記のように、２つのコンピュータ・システムズ704および706は、図７の中で示されるが、ウェブ・サーバ・システム704およびサーバ・コンピュータ・システム706は、サーバ・コンピュータ・システム706によって提供されるウェブ・サーバ機能性およびサーバ機能性を提供する異なるソフトウェア・コンポーネントを有する１つのコンピュータ・システムである。
【００５８】
ネットワーク702へのアクセスは、ISPs 710および716のようなインターネット・サービス・プロバイダー(ISPs)によって主に提供される。クライアント・コンピュータ・システム712,718,722,726のようなクライアント・システム上のユーザは、インターネットにISP 710,716を通じてアクセスする。インターネットへのアクセスは、情報を交換し、受け取り、電子メールを送り、HTMLフォーマットで準備されているドキュメントのようなドキュメントを見るクライアント・コンピュータ・システムのユーザを許可する。これらのドキュメントは、インターネット上のウェブ・サーバ704のようなウェブ・サーバによって、しばしば提供される。たとえ、コンピュータ・システムをセット・アップすることができ、そのシステムもISPsもなしでインターネットに接続できたとしても、これらのウェブ・サーバはISPs 710のようなISPsによって提供される。
【００５９】
クライアント・コンピュータ・システム712,718,722,726は、各々、適切なウェブ・ブラウジング・ソフトウェアで、ウェブ・サーバ704によって提供されるHTMLページを見ることができる。ISP 710は、クライアント・コンピュータ・システム712の一部と考えることができるモデム・インタフェース714を通して、クライアント・コンピュータ・システム712にインターネット接続を提供する。クライアント・コンピュータ・システムは、パソコン・システム、ネットワーク・コンピュータ、ウェブ・テレビ・システムあるいは他のコンピュータ・システムになりえる。図７は、一般的な「モデム」としてモデム・インタフェース714を示すが、インターフェースは、アナログ・モデム、ISDNモデム、ケーブル・モデム、衛星伝送インターフェース(例えば「直接のPC」)あるいは他のコンピュータ・システムにコンピュータ・システムをつなぐための他のインターフェースになりえる。
【００６０】
ISP 714と同様に、ISP 716は、クライアント・システム718,722,726にインターネット接続を供給するが、図７で示されるように、接続は、これらの３つのコンピュータ・システムに対して同一ではない。
【００６１】
クライアント・コンピュータ・システムズ722,726は、ネットワーク・インターフェース724,728を通ってイーサネット・ネットワークあるいは他のネットワーク・インターフェースになりえるLAN 730につながれる。LAN 730も、ローカル・エリア・ネットワークにファイアウォールおよび他のインターネット関連のサービスを供給することができるゲートウェイ・コンピュータ・システム732につながれる。このゲートウェイ・コンピュータ・システム732は、クライアント・コンピュータ・システムズ722,726にインターネット接続を供給するISP 716につながれる。ゲートウェイ・コンピュータ・システム732は従来のサーバ・コンピュータ・システムになりえる。
【００６２】
あるいは、サーバ・コンピュータ・システム734は、クライアント722,726にファイル738および他のサービスを供給するために、ゲートウェイ・システム732によってインターネットに接続する必要なしに、ネットワーク・インターフェース736を通ってLAN 730に直接つなぐことができる。
【００６３】
図８は、システム700(図７)で使用されるコンピュータ・システム740を示す。コンピュータ・システム740は、クライアント・コンピュータ・システムあるいはサーバ・コンピュータ・システム、あるいはウェブ・サーバ・システムとして使用することができる従来のコンピュータ・システムかもしれない。そのようなコンピュータ・システムは、ISP 710(図７)のようなインターネット・サービス・プロバイダーの機能の多くを行なうために使用することができる。
【００６４】
図８の例では、コンピュータ・システム740は、コンピュータ742、I/Oデバイス744およびディスプレイ・デバイス746を含む。コンピュータ742は、プロセッサ748、コミュニケーション・インターフェース750、メモリ752、ディスプレイ・コントローラ754、不揮発性の記憶装置756およびI/O・コントローラ758を含む。コンピュータ・システム740は、おそらく、I/O装置744およびディスプレイ装置746に連結されるかあるいは含む。
【００６５】
コンピュータ742は、モデムかネットワーク・インターフェースを含むかもしれないコミュニケーション・インターフェース750を通して、外部システムと調和する。コミュニケーション・インターフェース750は、コンピュータ・システム740あるいはコンピュータ742の一部であると考えることができると認識されるであろう。コミュニケーション・インターフェースは、アナログ・モデム、ISDNモデム、ケーブル・モデム、トークン・リング・インターフェース、衛星伝送インターフェース(例えば「ディレクトPC」)あるいは他のコンピュータ・システムにコンピュータ・システムをつなぐための他のインターフェースになり得る。
【００６６】
プロセッサ748は、例えばインテル・ペンティアム・マイクロプロセッサあるいはモトローラ・パワーPCマイクロプロセッサのような従来のマイクロプロセッサかもしれない。メモリ752はバス760でプロセッサ748につながれる。メモリ752はDynamic Random Access Memory (DRAM)になりえて、さらにStatic RAM (SRAM)を含むことができる。バス760は、メモリ752、さらに不揮発性の記憶装置756、ディスプレイ制御装置754およびI/Oコントローラ758にプロセッサ748をつなぐ。
【００６７】
I/O装置744はキーボード、ディスクドライブ、プリンタ、スキャナ、およびマウスあるいは他のポインティング・デバイスを含む他の入出力装置を含むことができる。ディスプレイ制御装置754は、従来の方法でディスプレイ装置746上の、例えば、陰極線管(CRT)か液晶ディスプレイ(LCD)になりえるディスプレイをコントロールするかもしれない。ディスプレイ制御装置754およびI/Oコントローラ758は、従来の有名な技術で実行することができる。
【００６８】
不揮発性記憶装置756は、多くの場合、大量のデータ用の磁気ハード・ディスクや光ディスクあるいは別の形式の記憶装置である。このデータのうちのいくつかは、ダイレクト・メモリー・アクセス・プロセスによって、コンピュータ742中のソフトウェアの実行の間、メモリ752にしばしば書かれている。技術におけるスキルのうちの１つは、「機械可読媒体」あるいは「コンピュータ可読媒体」という用語が、プロセッサ748によってアクセス可能で、さらにデータ信号をエンコードする搬送波を包含する任意のタイプの記憶装置を含むことを直ちに認識するであろう。
【００６９】
オブジェクト、方法、インライン・キャッシュ、キャッシュ状態および他のオブジェクト指向のコンポーネントは、不揮発性記憶装置756に格納されるかもしれず、あるいは、例えばオブジェクト指向のソフトウェア・プログラムの実行の間に、メモリ752に書き込まれるかもしれない。このように、例えば図１〜３および６の中で例示されたコンポーネントは、コンピュータ・システム740上で実証することができる。
【００７０】
コンピュータ・システム740は、異なるアーキテクチャーを持つ多くの可能性のあるコンピュータ・システムの１つの例である。例えば、インテル・マイクロプロセッサに基づいたパソコンはしばしば多数のバスを持っている。そのうちの１つは、周辺装置、およびプロセッサ748やメモリ752(しばしばメモリ・バスと呼ばれる)を直接接続するためのI/Oバスになり得る。それらのバスは、異なるバス・プロトコルにより、どんな必要な翻訳も行なうブリッジ・コンポーネントによってともに接続される。
【００７１】
ネットワーク・コンピュータは、本発明と共に使用することができる別のタイプのコンピュータ・システムである。ネットワーク・コンピュータは、通常ハード・ディスクあるいは他のマス・ストレージを含んでいない。また、実行可能プログラムは、プロセッサ748によってネットワーク接続から実行用のメモリ752にロードされる。ウェブテレビ・システム(その業界の中で知られている)も本発明によるコンピュータ・システムであると考えられる。しかし、それは、ある入力あるいは出力装置のような図８の中で示される特徴のうちのいくつかを欠くかもしれない。典型的なコンピュータ・システムは、通常、少なくとも１台のプロセッサ、メモリ、およびプロセッサにメモリをつなぐバスを含むであろう。
【００７２】
さらに、コンピュータ・システム740は、オペレーティング・システム・ソフトウェアの一部であるディスク・オペレーティング・システムのようなファイル管理システムを含むオペレーティング・システム・ソフトウェアによってコントロールされる。その関連するファイル管理システム・ソフトウェアを備えたオペレーティング・システム・ソフトウェアの1つの例は、レドモンド(ワシントン)のマイクロソフト株式会社のウインドウズとして知られるオペレーティング・システムおよびそれらの関連するファイル管理システムの一群である。その関連するファイル管理システム・ソフトウェアを備えたオペレーティング・システム・ソフトウェアの別の例は、Linuxオペレーティング・システムおよびその関連するファイル管理システムである。ファイル管理システムは、不揮発性記憶装置756に典型的に格納され、プロセッサ748に、データの入出力やメモリへのデータの格納（不揮発性記憶装置756上にファイルを格納することを含む）をするために、オペレーティング・システムによって要求される様々な行為を実行させる。
【００７３】
詳細な記述のいくつかの部分は、コンピュータ・メモリー内のデータ・ビットに対するオペレーションのアルゴリズムおよび記号による表現の点から示される。これらのアルゴリズムの記述および表現は、技術に熟練する他のものに対して、最も有効にそれらの仕事の大部分を伝えるためにデータ処理技術に熟練する人々によって使用される手段である。アルゴリズムは、希望の結果に結びつくオペレーションの自己矛盾がないシーケンスであると一般に考えられる。オペレーションは、物理量の物理的な操作を必要とする。通常、必ずではなく、これらの量は、格納すること、転送すること、組み合わせること、比較すること、またそうでなければ操作することが可能である電気的あるいは磁気的信号の形式をとる。これらの信号をビット、値、要素、シンボル、文字、用語、数あるいはその他同種のものと呼ぶことは、主に一般的慣習の理由で、時々便利であると分かる。
【００７４】
しかし、これらの全ておよび同種の用語が、適切な物理量に関連し、これらの量に適用された単に便利なラベルであるということは心に留めておかれるべきことである。特に別記しない限り、次の議論から明白なものとして、「処理」あるいは「コンピューティング」、「計算する」、「決定する」あるいは「表示する」、または、同様の用語を利用する議論、コンピュータ・システムの動きおよび処理に言及する、あるいは、同種の電子コンピューティング装置、又は、コンピュータ・システムのコンピュータ・システム・メモリや登録、あるいは、他の情報記憶内の物理量として同様に表わされた他のデータの中への登録、および、メモリ内の物理的な(電子)量として表わされるデータの操作や変換、トランスミッション、あるいは、ディスプレイ装置、のような記述の全体にわたって評価される。
【００７５】
本発明は、さらにいくつかの実施形態において、オペレーションをここに実行するための装置に関係がある。この装置は、要求された目的のために特に構築されるかもしれない。あるいは、それは、コンピュータに格納されたコンピュータ・プログラムによって選択的に活性化されるか再構成される汎用計算機を含むかもしれない。そのようなコンピュータ・プログラムは、フロッピーディスク、光ディスク、CD-ROMおよび光磁気ディスクを含む任意のタイプのディスク、読み出し専用メモリ(ROM)、ランダム・アクセス・メモリー(RAM)、EPROM、EEPROM、磁気あるいは光カード、電子指示を格納し、各々がコンピュータ・システム・バスに連結されるのに適した任意のタイプのメディアのようなコンピュータで読取り可能な記憶媒体に格納される。しかし、これらに限定されるものではない。
【００７６】
ここに示されたアルゴリズムとディスプレイは、本質的にどんな特別のコンピュータ、あるいは、他の装置とも関係がない。あるいは、いくつかの形態の方法を行なうための、より多くの専門の装置を構築することは、便利であると分かり得る。様々なこれらのシステム用の必要な構造が、記述から下に現われるであろう。さらに、本発明は、どんな特別なプログラミング言語に関しても記述されない。また、様々な形態は、様々なプログラミング言語を使用して、このように実行されるかもしれない。
【００７７】
本発明で記述された形態の修正、交換および均等物が本発明の創造性の範囲内であることが、当業者によって理解されるだろう。したがって、次に添付される特許請求の範囲は、本発明の真情および範囲内での修正、交換および均等物をすべて含むことを意図し、本発明は、特許請求の範囲によってのみ限定される。
【図面の簡単な説明】
【００７８】
【図１】ソフトウェア・タイトルをストリーミングするプロセスおよびソフトウェア・タイトルに関連する他の動きのフローチャートを示す。
【図２Ａ】ソフトウェアのストリーミングに関する経験の例を示す。
【図２Ｂ】ソフトウェアのストリーミングに関する経験の例を示す。
【図２Ｃ】ソフトウェアのストリーミングに関する経験の例を示す。
【図２Ｄ】ソフトウェアのストリーミングに関する経験の例を示す。
【図２Ｅ】ソフトウェアのストリーミングに関する経験の例を示す。
【図２Ｆ】ソフトウェアのストリーミングに関する経験の例を示す。
【図２Ｇ】ソフトウェアのストリーミングに関する経験の例を示す。
【図２Ｈ】ソフトウェアのストリーミングに関する経験の例を示す。
【図２Ｉ】ソフトウェアのストリーミングに関する経験の例を示す。
【図２Ｊ】ソフトウェアのストリーミングに関する経験の例を示す。
【図２Ｋ】ソフトウェアのストリーミングに関する経験の例を示す。
【図２Ｌ】ソフトウェアのストリーミングに関する経験の例を示す。
【図２Ｍ】ソフトウェアのストリーミングに関する経験の例を示す。
【図２Ｎ】ソフトウェアのストリーミングに関する経験の例を示す。
【図３Ａ】ハイブリッド・ローカル／リモート・ストリーミングのシステムを示す。
【図３Ｂ】ハイブリッド・ローカル／リモート・ストリーミングのシステムを示す。
【図４Ａ】ハイブリッド・ローカル／リモート・ストリーミングのシステムの例を示す。
【図４Ｂ】ハイブリッド・ローカル／リモート・ストリーミングのシステムの例を示す。
【図５】ハイブリッド・ローカル／リモート・ソフトウェア・ストリーミングの方法のフローチャートを示す。
【図６】ハイブリッド・ローカル／リモート・ソフトウェア・ストリーミングの方法のフローチャートを示す。
【図７】実施形態において使用されるネットワーク化されたシステムを示す。
【図８】図７のシステムで使用されるコンピュータ・システムを示す。
【図１】
2008527468.tif 000003
【図２Ａ】
2008527468.tif 000004
【図２Ｂ】
2008527468.tif 000005
【図２Ｃ】
2008527468.tif 000006
【図２Ｄ】
2008527468.tif 000007
【図２Ｅ】
2008527468.tif 000008
【図２Ｆ】
2008527468.tif 000009
【図２Ｇ】
2008527468.tif 000010
【図２Ｈ】
2008527468.tif 000011
【図２Ｉ】
2008527468.tif 000012
【図２Ｊ】
2008527468.tif 000013
【図２Ｋ】
2008527468.tif 000014
【図２Ｌ】
2008527468.tif 000015
【図２Ｍ】
2008527468.tif 000016
【図２Ｎ】
2008527468.tif 000017
【図３Ａ】
2008527468.tif 000018
【図３Ｂ】
2008527468.tif 000019
【図４Ａ】
2008527468.tif 000020
【図４Ｂ】
2008527468.tif 000021
【図５】
2008527468.tif 000022
【図６】
2008527468.tif 000023
【図７】
2008527468.tif 000024
【図８】
2008527468.tif 000025
【国際調査報告】
2008527468.tif 000026