(57)【要約】ネットワークを通じてアプリケーションオンデマンドの高速起動および実行を可能にするためのシステムおよび方法が開示される。本発明のサービスにより、ブロードバンドインターネット接続を備えたＰＣ利用者は、ゲームを購入するために、外出することも必要なく、ＰＣゲームなどを高速起動し再生することができる（７０）。所有権のある導入バイパス機構（ＩＢＰＭ）（７４）およびゲームデータトラフィックアナライザ（ＧＤＴＡ）モジュールに基づいて、クリックアンドプレイシステムは、任意のタイプのブロードバンドネットワークを通じて遠隔サーバから利用者のコンピュータにゲームを効率的にストリーミングする。インタラクティブブロードバンドコンテンツの高速起動および安全な実行を可能にするために、モジュールは、クライアントコンピュータの設定（７１）を解析し、ドライバ、ゲームファイルなどの不可欠なファイルをクライアントコンピュータにインストールし、レジストリ（７４）を更新する。クライアントコンピュータのレジストリおよびメモリが事前の状態に戻り、データフローがネットワーク全体にわたって最適であるようにするために、モジュールは、ゲームの終了後にゲームファイルを抽出する（７８）ことができる。
2004502236.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションオンデマンドの高速起動および実行を可能にするためのシステムであって、
ｉ．ストリーミングサーバコンポーネントと、
ｉｉ．クライアントコンポーネントと、
ｉｉｉ．導入バイパス機構（ＩＢＰＭ）モジュールと、
ｉｖ．ゲームデータトラフィックアナライザ（ＧＤＴＡ）モジュールとを含むシステム。
【請求項２】
前記ストリーミングサーバコンポーネントが、
ａ．利用者情報、システム情報、導入バイパス機構（ＩＢＰＭ）データおよび利用統計を含むデータベースと、
ｂ．データベース特有のデータベースインプリメンテーションおよび構造に左右されることなく、アプリケーションが前記データベースにアクセスすることができるようにするアプリケーションプログラムインターフェイス（ＡＰＩ）であるデータベース抽象化層（ＤＢＡＬ）と、
ｃ．前記データベースから必要なデータを伝送するために、クライアント側のシステムドライバと通信を行うためのドライバ（仮想ファイルシステム）と、
ｄ．システムの前部であるサイトを管理し、前記利用者が前記アプリケーションにログインして実行することができるためのウェブサーバとをさらに含む請求項１に記載のシステム。
【請求項３】
前記クライアントコンポーネントが、
ｉ．利用者のコンピュータを解析するためのマキシマイザと、
ｉｉ．一旦、前記利用者がアプリケーションをストリーミングすることを選択すると、システムドライバを実行するためのウェブインターフェイスＡｃｔｉｖｅＸコンポーネントとをさらに含む
ａ）アプリケーションレベル、および
ｉ．利用者のシステムを不正使用から保護するためのセキュリティコンポーネントと、
ｉｉ．サーバから前記システムへストリーミングされるデータを解凍するための圧縮エンジンと、
ｉｉｉ．前記システムから前記アプリケーションへ前記データを送信するためのファイルシステムドライバとを含む
ｂ）ドライバレベルをさらに含む請求項１に記載のシステム。
【請求項４】
前記アプリケーションが、ゲーム、ビデオオンデマンド、エンターテイメントプログラム、エデュテインメントプログラム、スポーツプログラム、教育用プログラム、生産性プログラムからなる群から選択される請求項１に記載のシステム。
【請求項５】
前記クライアントコンポーネントが、ＰＣ、インターネットテレビ、ノートブックコンピュータ、パーソナルハンドヘルドアシスタント、高度自動機能電話、ウェアラブルコンピュータ、モバイルコンピュータからなる装置の群から選択される計算機で作動可能である請求項１に記載のシステム。
【請求項６】
ストリーム型アプリケーションオンデマンドの高速起動および実行を可能にするための方法であって、
Ｉ．ＧＤＴＡモジュールおよびＩＢＰＭモジュールによって、アプリケーションをエンコードするステップと、
ＩＩ．前記ＩＢＰＭモジュールによって前記アプリケーションの導入をバイパスすることによって、前記アプリケーションの高速起動を可能にするステップと、を含む方法。
【請求項７】
アプリケーションオンデマンドの高速起動および実行を可能にするための方法であって、
ｉ．元の導入を用いずに前記アプリケーションを実行することができるようにするために、元のアプリケーション導入が行う変更をマッピングするための導入追跡ステップと、
ｉｉ．前記アプリケーションの元の導入手続きを用いて、前記アプリケーションを初めにインストールことなく、前記アプリケーションオンデマンドを実行することができるようにするために、ファイルの変更およびクライアントコンピュータにおける設定のための導入バイパスステップと、を含む方法。
【請求項８】
前記導入追跡は、導入中に前記元のアプリケーション導入が行う変更をマッピングするために、前記元のアプリケーション導入を解析し、
Ａ．前記アプリケーションが導入中に行うレジストリの変更を識別するために、アプリケーション導入の前後の前記レジストリフィールドおよび前記レジストリフィールドの値を比較するために、クライアントレジストリを追跡するステップと、
Ｂ．前記元のアプリケーション導入が前記システムに行う変更を追跡するための自動追跡ステップと、
Ｃ．追加コンポーネントの導入の検出および前記自動追跡プロセスにおけるエラーを補正するための手動追跡ステップと、
Ｄ．ｖｉ．元のアプリケーションＣＤの画像をエミュレートするための少なくとも１つのＣＤ画像を作成するステップと、をさらに含む請求項７に記載の方法。
【請求項９】
前記導入追跡が、
ａ）テストコンピュータに前記アプリケーションのタイトルをインストールするステップと、
ｂ）アプリケーション導入プロセスが、前記コンピュータに行う変更を捕捉するステップと、
ｃ）前記コンピュータで変更されたファイルのリストおよび変更されたレジストリキーのリストをコンパイルするステップと、
ｄ）前記アプリケーションを適正に実行するために修正すべきレジストリキーおよびファイルの「新しい」リストとなるように、記録されているが、前記導入によって行われていないすべての変更を消去するためにエンコーダによって前記変更を解析するステップと、
ｅ）前記クライアントによって用いられる導入「スクリプト」ファイルに前記リストを追加するステップと、
ｆ）前記エンコーダによって、不正確な解析のために生じる恐れがある任意の不正確なレジストリおよびファイルの変更を曝露するために、別のコンピュータで自動導入プロセスを行うステップと、をさらに含む請求項７に記載の方法。
【請求項１０】
ｇ）前記テストコンピュータおよび前記別のコンピュータが、同一の結果を作成する場合には、テストプロセスが終了するステップおよび
ｈ）前記テストコンピュータおよび前記別のコンピュータが、同一でない結果を作成する場合には、前記エンコーダが、前記同一でない結果を報じる任意の特定のフィールドを修正することによって、前記変更リストを修正するステップをさらに含む請求項９に記載の方法。
【請求項１１】
前記手動追跡が、
ａ．前記アプリケーションの開発者によって列挙されたような特定のアプリケーション用の最小システム要件をエンコーダによって突き止められるステップと、
ｂ．前記要件をＩＢＰＭデータベースに供給するステップと、
ｃ．前記アプリケーションをクライアントコンピュータで確実に実行することができるようにするためにハードウェア／ソフトウェア診断機構を実行するステップと、
ｄ．前記アプリケーションの元の導入中にソフトウェア導入を追跡するステップと、
ｅ．前記ＩＢＰＭデータベースにおける前記導入を更新するステップと、をさらに含む請求項８に記載の方法。
【請求項１２】
前記導入追跡が、ＧＤＴＡモジュールによって実行され、　ａ］オぺレーティングシステムによって作成される導入ディレクトリ下で、すべてのハードドライブへのアクセスおよび前記アプリケーションの実行中にアプリケーションの実行可能ファイルを追跡するステップと、
ｂ］特定のオフセットおよびブロックのサイズを有するアクセスされたファイルのリストを出力するステップと、
ｃ］優先順位データおよび前記ファイルアクセスリストに関する情報を収集するステップと、をさらに含む請求項７に記載の方法。
【請求項１３】
すべてのハードドライブへのアクセスが、
ｉ］入力ディレクトリ名および出力ディレクトリ名を設定するステップと、
ｉｉ］「解析」コマンドを実行するステップと、
ｉｉｉ］特定の前記入力ディレクトリへのすべてのアクセスを追跡するために、仮想デバイスドライバを初期化するステップと、
ｉｖ］一定の前記ディレクトリのみへの前記アクセスをフィルタリングするステップと、
ｖ］前記エンコーダによって、前記ディレクトリからアプリケーションを実行するステップと、
ｖｉ］メインメニューを待機させ、ＡＮＡファイルにＦＡＰセパレータを書く込むために特殊なホットキーを初期化するステップと、
ｖｉｉ］前記優先順位データが、前記アプリケーションが要求するデータとして定義された場合には、前記アプリケーションが前記メインメニューに達すると、前記エンコーダによって前記アプリケーションが終了されるステップと、
ｖｉｉｉ］あるいは、それに着手するために前記アプリケーションが読み出す前記データのすべてが優先順位データであるものとして定義された時点までデータを利用しつづけることができ、その後で製品を終了するステップと、をさらに含む請求項１２に記載の方法。
【請求項１４】
前記追跡が自動であり、
Ｉ．Ｗｉｎｄｏｗｓ（登録商標）レジストリサービスをフックするためにデバイスドライバを構成するステップと、
ＩＩ．前記デバイスドライバを起動するステップと、
ＩＩＩ．アプリケーション導入アプリケーションを起動するステップと、
ＩＶ．すべてのレジストリの変更を記録するステップと、をさらに含む請求項１２に記載の方法。
【請求項１５】
前記導入バイパスが、
Ｉ］ウェブサイトから小さな自己解凍ファイルをダウンロードし、簡単な導入プロセスを行うことによって、クライアントプログラムをインストールするステップと、
ＩＩ］利用者のクライアントによって、アプリケーションの起動を選択するステップと、
ＩＩＩ］前記クライアントが、前記アプリケーションを実行することができるかをマキシマイザによって調査するステップと、
ＩＶ］前記利用者を許可し、新たなセッションを開くステップと、
Ｖ］前記クライアントのレジストリおよびファイルを更新するステップと、
ＶＩ］前記クライアントに予めダウンロードされたファイルのためのバッファリング段階を起動するステップと、
ＶＩＩ］遠隔サーバから前記クライアントにファイルをストリーミングするステップと、
ＶＩＩＩ］前記サーバにメッセージを残したまま送信するステップと、
ＩＸ］前記アプリケーションを終了するステップと、
Ｘ］前記レジストリおよびファイルに対する変更を行わないステップと、をさらに含む請求項７に記載の方法。
【請求項１６】
選択されたアプリケーションの互換性を利用者のシステムに表示するステップをさらに含む請求項１５に記載の方法。
【請求項１７】
選択されたアプリケーションの推定ダウンロード時間を表示するステップさらに含む請求項１５に記載の方法。
【請求項１８】
前記アプリケーションオンデマンドが、ゲーム、子供用エンターテインメント、エデュテインメント、スポーツ、教育、生産性のタイトルからなる群から選択される請求項７に記載の方法。
【請求項１９】
前記クライアントコンピュータが、ＰＣ、インターネットテレビ、ノートブックコンピュータ、パーソナルハンドヘルドアシスタント、高度自動機能電話、ウェアラブルコンピュータ、モバイルコンピュータからなる計算機の群から選択される請求項７に記載のシステム。
【発明の詳細な説明】
【０００１】
【本発明の分野および背景】
発明の背景
１．発明の分野
本発明は、任意のタイプのブロードバンドネットワークにわたって、遠隔サーバから利用者のコンピュータにゲームおよび他のメディアリッチなアプリケーションのストリーミングを最適化するためのシステムに関する。
【０００２】
２．従来技術の詳細
アプリケーションストリーミングサービスは、ＩＰネットワークにおけるサーバクライアント型アプリケーションの発展と共にますます人気が高まってきている。低い帯域幅および高いトラフィックという歴史的な問題は、マルチメディアアプリケーションに関するアプリケーションストリーミングサービスの大量導入を妨げてきた。しかし、ブロードバンドネットワークは、市場に浸透し続け、さらに改善したデータ転送の可能性を実現することができると推測される。
【０００３】
家庭におけるブロードバンド利用に関して最も人気のある用途の１つは、インターネット上のマルチメディアリソースにアクセスすることである。現在では、たとえば、音楽ファイルはブロードバンドネットワークを通じて容易に伝送されることができる。しかし、一般的なブロードバンド環境であっても、ビデオおよびインタラクティブゲームファイルを利用者に効率よく伝送することはできない。
【０００４】
ブロードバンドネットワークの近い将来の選択に関して、そのようなネットワーク用のマルチメディアストリーミングアプリケーションを提供するためのさまざまな試みがなされてきている。この分野における技術またはサービスを提供する複数の企業として現在知られている企業は、以下の通りである。
Ｍｅｄｉａ　Ｓｔａｔｉｏｎ（ｗｗｗ．ｍｅｄｉａｓｔａｔｉｏｎ．ｃｏｍ）は、ブロードバンドネットワークにおけるアプリケーションストリーミングサービスを提供している。このサービスは、ＳｅｌｅｃｔＰｌａｙと呼ばれ、全米の利用者が利用可能である。サービスはウェブサイトによって提供され、さまざまなゲームおよび他のアプリケーションを提供する。しかし、ＳｅｌｅｃｔＰｌａｙは、導入バイパス機構を具備していないため、利用者は、利用するためにアプリケーションをインストールする必要がある。この導入のために、ゲームを即時／高速起動することができない。ＳｅｌｅｃｔＰｌａｙ利用者が、ウェブサイトを通じたこのサービスによって自分に提供されるアプリケーションを利用したい場合（最初にこのアプリケーションを選択する際）には、ボックスバージョンのゲーム導入と同一の導入スクリーンを受信する。利用者はローカルＣＤドライブからアプリケーションをインストールしているかのごとく、導入プロセス全体を経験する必要がある。導入が終了した場合に限り、利用者はＳｅｌｅｃｔＰｌａｙサーバからアプリケーションを実行し、ストリーミングを実行することができる。
Ｉｎｔｏ　Ｎｅｔｗｏｒｋｓ（ｈｔｔｐ：／／ｗｗｗ．ｉｎｔｏｎｅｔｗｏｒｋｓ．ｃｏｍ／）は、ブロードバンド利用者のためのゲームストリーミングサービスを提供し、ＰｌａｙＮｏｗと呼ばれている。ＩｎｔｏＭｅｄｉａシステムは、使用許諾のために、サービスオペレータにも提供されている。ＩｎｔｏＭｅｄｉａシステムは、アプリケーションが実行される前にどのアプリケーションデータがストリーミングされるか、特定のアプリケーションのデータフローパターンに基づいてアプリケーションの実行中にどのアプリケーションデータがストリーミングされているかを決定する機構を有し、ゲームなどの一部のアプリケーションの非能率的なストリーミングを生じるという指摘はない。
Ｓｔｒｅａｍ　Ｔｈｅｏｒｙ（ｗｗｗ．ｓｔｒｅａｍｔｈｅｏｒｙ．ｃｏｍ）は、ＳｔｒｅａｍＩｔと呼ばれ、ブロードバンドネットワークによってマルチメディアコンテンツのストリーミングに利用されている技術を用いている。しかし、このシステムは、
・ＤｉｒｅｃｔＸ（Ｗｉｎｄｏｗｓ（登録商標）　９５／９８、ＮＴ、２０００用のＭｉｃｒｏｓｏｆｔが提供しているマルチメディアプログラミングインターフェイスのセットであり、改良した性能のためにハードウェアへの低レベルのアクセスを提供する）の有無を検出しないため、ダウンロード用にＤｉｒｅｃｔＸを提供しない。
・ドライバ導入後にコンピュータの再起動を必要とし、利用者がシステムを起動することができる前に一旦終了しなければならない。
・ＣＤ−ＲＯＭのエミュレーションを行うことができない。このことは、システムが音声トラックを再生することができないため、ボックス型アプリケーションを用いる場合と同一の完全なアプリケーション利用体験を提供することができないことを意味する。本発明によれば、音声トラックはアプリケーションデータの残りとは異なる形式で格納されるため、標準的なドライバで読み出すことができない。特殊なＣＤエミュレーションドライバの利用によってのみ、これらのファイルを読み出すことができる（結果としてＣＤトラックを再生することができる）。
Ｒｅａｌ　Ｎｅｔｗｏｒｋｓ（ｗｗｗ．ｒｅａｌ．ｃｏｍ）は、ＰＣ利用者がウェブを用いたマルチメディアサービスを送受することができるように設計されたソフトウェア製品およびサービスを開発し、市場に出している。このシステム、すなわちＲｅａｌＡｒｃａｄｅは、ゲームが特にこのサービスのために構築されなければならないという意味では、他のシステムとは異なっている。サービスは、ＲｅａｌＮｅｔｗｏｒｋｓネットワークを通じてのみ提供される。また、現在入手可能である情報に基づけば、ＲｅａｌＡｒｃａｄｅは、実行中にゲームをストリーミングするのではなく、より伝統的な方法でダウンロードする。ＲｅａｌＡｒｃａｄｅシステムは、主にアプリケーション内からシステムとのインタフェースのために、ストリーミングされるアプリケーションにおいて著しい変更が必要である。したがって、アプリケーションをＲｅａｌＡｒｃａｄｅによってストリーミングさせるためには、修正される既存のアプリケーションが実用的でない程度まで、大量に修正しなければならない。したがって、Ｒｅａｌ　Ｎｅｔｗｏｒｋｓは、開発者に特殊なＳＤＫを用いて新たなアプリケーションを開発することを薦め、既存のタイトルの市場を対象にしていない。
【０００５】
したがって、ＰＣ上で再生されるゲームを開始するために、高速または即時に近い起動時間を可能にするように、ゲームがサーバコンピュータからストリーミングされる場合およびゲームが高い安定性で再生される場合には、ＰＣ上で既存のゲームの実行を効率的に可能にするための手段を可能にすることができるシステムが必要であることは広く認識されており、きわめて利点が多いと推測される。さらに、クライアントコンピュータに重い負荷をかけることなく、または悪影響を与えることなく、これを実行する必要がある。また、不可欠なファイルをクライアントコンピュータで実行し、残りのファイルをサーバで実行するようなサーバからＰＣへのゲームフローをストリーミングする知的な方法が必要であることも広く認識されている。
【０００６】
【発明の開示】
本発明によれば、ネットワークを通じてストリーム型アプリケーションオンデマンドの高速起動および実行を可能にするためのシステム（以下、「クリックアンドプレイ（Ｃｌｉｃｋ’ｎ　Ｐｌａｙ）」と呼ぶ）および方法が提供される。本発明のサービスにより、ブロードバンドインターネット接続を備えたＰＣ利用者は、ゲームを購入するために、外出することも必要なく、ＰＣゲームを高速起動し再生することができる。所有権のある導入バイパス機構（ＩＢＰＭ）およびゲームデータトラフィックアナライザ（ＧＤＴＡ）モジュールに基づいて、クリックアンドプレイシステムは、ほぼ起動直後に、任意のタイプのブロードバンドネットワークを通じて遠隔サーバから利用者のコンピュータにゲームを効率的にストリーミングする。
【０００７】
本発明は、さまざまな従来技術のダウンロード段階を避け、利用者が「第２ステージ」に直行することができる、すなわち最初にインストールする必要がなく、アプリケーションを即時に実行することができるようにする。さらに、本発明のクリックアンドプレイドライバの導入によって、従来技術に比べて同一の機能性または追加の機能性を提供するように設計されているが、導入後、コンピュータの再起動を必要としない。さらに、本発明は、クリックアンドプレイシステムを利用するために、既存のアプリケーションを修正しなくても、これらのアプリケーションを利用することができる。
【０００８】
本発明によれば、高速起動時間および高い安定性の両方を実現し、かつゲームによって利用者／クライアントコンピュータに重い負荷がかかったり、そうでなくても悪影響を及ぼされたりしないような利用者のコンピュータへのゲームのストリーミングを可能にするための方法およびシステムが提供される。本発明によれば、利用者またはクライアントコンピュータは、ＰＣ、インターネットテレビ、ノートブックコンピュータ、パーソナルハンドヘルドアシスタント、高度自動機能電話、ウェアラブルコンピュータ、モバイルコンピュータなどの任意のマルチメディア対応計算機を含む。本発明は、クライアントコンピュータの設定を解析するためのソフトウェアコンポーネントである導入バイパス機構（Ｉｎｓｔａｌｌａｔｉｏｎ　Ｂｙｐａｓｓ　Ｍｅｃｈａｎｉｓｍ：ＩＢＰＭ）を設け、その結果、ドライバ、ゲームファイルなどのクライアントコンピュータに重要なファイルをインストールし、レジストリを更新することによって、インタラクティブブロードバンドコンテンツの高速起動および安全な実行を可能にするための方法およびシステムを可能にする。さらに、ＩＢＰＭは、クライアントコンピュータレジストリおよびメモリが事前の状態に戻るようにするために、ゲーム終了後、ゲームファイルの抽出を行うことができる。
【０００９】
本発明の追加モジュールは、ゲームデータトラフィックアナライザ（Ｇａｍｅ　Ｄａｔａ　Ｔｒａｆｆｉｃ　Ａｎａｌｙｚｅｒ）（以下「ＧＤＴＡ」と呼ぶ）であり、ローカルメディアで検出されたリソースへのゲームアクセスを自動的に追跡することによって、ゲームフロートラフィックを分析するバックオフィスツールである。ゲームフローデータが最適化され、安全性の高いデータ伝送が可能であるようにするために、このモジュールは、データのストリーミングおよび格納プロセスを効率的に管理する。ＧＤＴＡモジュールは、どのファイルが最初のストリーミングの部分でなければならないか、ゲーム再生中にどのファイルがストリーミングされるかを決定する。また、どのファイルが、利用者のコンピュータ（キャッシュ）に残り、どのファイルが必要である場合にストリーミングされるためにサーバに残っているかを決定する。
【００１０】
利用者の観点から、クリックアンドプレイの利用は、以下のように行われる。クリックアンドプレイクライアントの導入から始まる。利用者は、受け部サイトから小さな自己解凍ファイルをダウンロードし、単純な導入プロセスに従う。クリックアンドプレイドライバは、指定されたＷｉｎｄｏｗｓ（登録商標）ライブラリにインストールされ、残りのファイル（たとえばゲームキャッシュ）は、利用者の優先順位に応じて位置決めされることができる。クライアントのインストールは、他のハードウェア／ソフトウェアコンポーネントと干渉することはない。一旦、これが終了すると、利用者はシステムを用いて起動することができる。すなわち利用者は、ウェブ基盤のリストからゲームを選択し、ゲームは、ゲーム開始直後に、サーバからストリーミングを開始する。一旦、不可欠なゲームファイルが利用者のＰＣのバッファに入ってしまうと、ゲームは自動的に始まる。ゲームを開始するためには、平均して約３０ＭＢのゲームファイルのごく一部のみが必要である。残りのファイルは、クリックアンドプレイサーバに常駐し、ゲームデータのこの部分用の「仮想ドライブ」として機能する。
【００１１】
本発明は、例示のみとして、添付の図面を参照して本願明細書では説明される。
【００１２】
【好適な実施形態の詳細】
本発明は、ネットワークを通じてストリーム型アプリケーションオンデマンドの高速起動および実行を可能にするためのシステムおよび方法に関する。
【００１３】
以下の詳細は、特定のアプリケーションおよびその要件に関して提供されるため、当業者が本発明を利用することができることを示している。好ましい実施形態のさまざまな修正は、当業者には明白であり、本願明細書に定義された一般的な原理は他の実施形態に適用することも可能である。したがって、本発明は、図示および説明がなされた特定の実施形態に限定されるわけではなく、本願明細書に開示された原理および新規の特徴に対応した最も広範囲な範囲と適合していると考えるべきである。
【００１４】
具体的に言えば、本発明は、（任意のタイプのブロードバンドネットワークを通じて）遠隔サーバから利用者のコンピュータにメディアリッチなアプリケーション（ゲーム、教育用ソフトウェアなど）を含むアプリケーションのストリーミングを可能にするために用いられることができる。本発明によれば、高速起動時間および高い安定性の両方を実現し、かつゲームによって利用者／クライアントコンピュータに重い負荷がかかったり、そうでなくても悪影響を及ぼされたりしないような利用者のコンピュータへのゲームのストリーミングを可能にするための方法およびシステムが提供される。
【００１５】
本発明によるシステムおよび方法の原理および動作は、図および添付の詳細を参照してよりよく理解されると思われる。これらの図面は例示のためにすぎず、何ら限定するわけではないことを理解されたい。
【００１６】
図１は、クリックアンドプレイシステムのクリックアンドプレイストリーミングサーバのコンポーネントを示している。
・データベース１０−利用者情報、システム情報、ＩＢＰＭデータ、利用統計を含む。
・ＤＢＡＬ１１−（データベース抽象化層）データベースに特化したデータベースのインプリメンテーションおよび構造に左右されることなく、アプリケーションがデータベース１０にアクセスすることができるアプリケーションプログラムインターフェイス（ＡＰＩ）。このインターフェイスは、本発明者らによって設計され、本発明のシステムに特化しているが、一旦システム機能性および要件が定義されると、インターフェイス設計は複雑ではないため、画期的というわけではない。
・仮想ファイルシステム１２−ストリーミングされるアプリケーションが必要なデータを伝送するために、クライアント側のクリックアンドプレイドライバと通信を行うドライバ。このドライバは、所有権のあるファイルシステムと連動しているため、本発明者らによって設計されるが、設計は比較的単純である。
・サーバアプリケーション１３−利用者によって要求されるすべてのアプリケーションのストリーミングの管理を担うアプリケーション。
・ウェブサーバ１４−クリックアンドプレイの前部、すなわち利用者がログインし、アプリケーションの選択および実行を行う場所であるサイトを管理する。
【００１７】
図２は、クリックアンドプレイクライアントシステムのコンポーネントを示している。
・アプリケーションレベル２０−利用者のコンピュータを解析するマキシマイザ２１（マキシマイザは、追加された機能を有効にする独特のコンポーネントである。しかし、マキシマイザのインプリメンテーションは、サーバ側もクライアント側も、ボックス型ゲームなどスタンドアロン型オフラインアプリケーションにおいて既に実行された既存の知識を用いて実現される。）のクライアント側と、一旦、利用者がストリーミングされるアプリケーションを選択すると、クリックアンドプレイドライバの管理を担うウェブインターフェイスＡｃｔｉｖｅＸコンポーネント２２と、利用者によってストリーミングされるように選択されたアプリケーションの実行可能ファイルであるアプリケーション２３と、を含む。本発明者らは、作成することがある程度明白であるソフトウェアコンポーネントであるこのインターフェイスＡｃｔｉｖｅＸコンポーネントを設計し、このコンポーネントはクライアントコンピュータでドライバを管理するためのツールとして用いられる。
・ドライバレベル２４−（不正使用またはハッキングからシステムを守る）セキュリティコンポーネント２５と、（サーバからストリーミングされたデータを解凍する）圧縮エンジン２６と、（データをアプリケーションに送信する）ファイルシステムドライバ２７と、を含む。クライアント側のこのドライバは、独特の機能を提供し、Ｗｉｎｄｏｗｓ（登録商標）オぺレーティングシステム環境の中に密に統合されている。
・システムリソースレベル−ローカルハードディスク２８からのデータを格納および検索のため、およびＷｉｎｄｏｗｓ（登録商標）ネットワーク層２９を介したインターネットからのデータの送信および検索のためのＷｉｎｄｏｗｓ（登録商標）サービスを含む。
【００１８】
図３においてわかるように、本発明は３つのレベルのソフトウェアコンポーネント、すなわちバックオフィスユーティリティスーツ３０と、クリックアンドプレイシステムコンポーネント３１と、外部コンポーネント３２と、から構成される。図に示されているように、ユーティリティスーツ３０には２つの重要なモジュール、すなわちアプリケーションの準備および実行を可能にするソフトウェアコンポーネントである導入バイパス機構（以下、「ＩＢＰＭ」と呼ぶ）３３と、最適ストリーミングのために、アプリケーションをエンコードするバックオフィスツールであるゲームデータトラフィックアナライザ（以下、「ＧＤＴＡ」と呼ぶ）３４と、がある。バックオフィスユーティリティ３０は、すべてのファイルシステム要求を受信するために、Ｗｉｎｄｏｗｓ（登録商標）ファイルシステムに接続するデバイスドライバ３６を用いる。デバイスドライバ３６は、システムの中心であり、ファイルへのゲームのアクセスを追跡するためにアナライザによって用いられる。ドライバ３６は、ファイルシステムフックである。フックは、Ｗｉｎｄｏｗｓ（登録商標）アプリケーションからの要求に基づくすべてのファイルシステムを受信する。要求のタイプは、開く（Ｏｐｅｎ）、読み出す（Ｒｅａｄ）、書き込む（Ｗｒｉｔｅ）である。特定のゲームに関してゲームリソースのアクセスパターンを解析するために、ゲームをインストールしたフォルダにアナライザを指定する（たとえば、Ｃ：￥Ｐｒｏｇｒａｍ　Ｆｉｌｅｓ￥Ｊａｎｅ’ｓ　Ｃｏｍｂａｔ　Ｓｉｍｕｌａｔｉｏｎｓ￥ＵＳＡＦ）。デバイスドライバ３６は、すべてのＷｉｎｄｏｗｓ（登録商標）ファイルシステム要求をフィルタリングし、作成された要求のみを指定されたフォルダに記録する。（移植目的の場合には）ゲームが実行されると、アナライザがゲームによって作成された要求をすべて記録する。
【００１９】
ドライバ３６は、読み出し要求および書き込み要求のみを記録する。以下のデータは、すべての要求に関して記録される：
１）要求時間
２）要求のタイプ（読み出し／書き込み）
３）ファイル名
４）開始オフセット
５）長さ
【００２０】
情報は、この情報の記録および処理を行うためにのみ用いられるＭＳ　Ａｃｃｅｓｓデータベースなどのデータベースに格納される。これはバックオフィスユーティリティスーツ３０の一部であり、ゲームが終わると、ＧＤＴＡ３４によって処理される。
【００２１】
したがって、本発明の方法によれば、バックオフィスツール（ユーティリティスーツ３０）は、ストリーミングのためのアプリケーションを準備する後部処理機能を実行する。この準備は、ＩＢＰＭ３３が、ゲーム導入プロセスがシステムに行う変更を捕捉するためのスナップショットユーティリティ３７などの外部コンポーネントとリンクし、統合することを必要とする。これらの変更は、導入バイパスプロセスによって模倣されることが可能であるように、元の導入によって成された変更をマッピングするために、レジストリおよび（ＩＮＩファイルなどの）他のファイルに関する変更を含む。
【００２２】
２つの基本モジュール、ＩＢＰＭ３３およびＧＤＴＡ３４の個別の機能は、アプリケーションはエンコードされるか、またはクリックアンドプレイシステムで実行するために調整されるコンテンツ集合プロセスの流れが示された図４を参照すればわかる。図４においてわかるように、導入中に製品が行うレジストリの変更を識別するために、製品の導入４１の後は、開始前にどのファイルがアプリケーションにストリーミングされるべきか（優先データ）を決定する製品解析４２と製品の導入前後のレジストリフィールドおよびその値を比較するレジストリ追跡４３の両方が続く。製品導入ステージ４１は、それによって導入のためにファイルが準備されるプロセスであり、以下に説明するようにＩＢＰＭによって実行される。製品解析ステージ４２は、データフローが実行のために分析されて最適化され、以下に説明するようにＧＤＴＡによって実行される。製品解析ステージ４２に続いて、ＩＢＰＭは、（サーバからクライアントにストリーミングされるデータ量を削減するために）製品ファイルのそれぞれを圧縮することによって、製品ファイルのサイズを著しく削減する製品の圧縮４３と、元の製品ＣＤのエミュレートされた画像がサーバに作成されるプロセスであるＣＤ画像作成４４と、を開始する。これは、そのデータのすべてがサーバに格納されるが、製品をクライアントコンピュータで実行するために必要である。
【００２３】
したがって、図５は、利用者の観点から見たクリックアンドプレイシステムを示している。クリックアンドプレイクライアントの導入から始まる。利用者は、ウェブサイト（またはＣＤ　ＲＯＭ）から小さな（たとえば１．２５ＭＢ）自己解凍ファイルをダウンロードし、簡単な導入プロセスへと続く。クリックアンドプレイドライバは、指定されたＷｉｎｄｏｗｓ（登録商標）ライブラリにインストールされ、残りのファイル（たとえばゲームキャッシュ）は、利用者の優先順位に応じて位置決めされることができる。クライアントのインストールは、他のハードウェア／ソフトウェアコンポーネントと干渉することはない。一旦、これが終了すると、利用者はシステムを用いて、以下のように起動することができる。
【００２４】
利用者は最初に、サーバ基盤のオンラインリスト５０１からゲームを選択する。利用者の意思決定を補助するために、利用者は、自分のシステム５０２に選択したゲームの互換性のほか、選択したゲームの推定ダウンロード時間５０３の表示を選択してもよい。一旦ゲームが選択される（５０４）と、最小であるが効率的な選択によるファイルが、利用者コンピュータにダウンロードされるように、サーバは不可欠なファイル５０５をバッファに格納する。このようにして、ゲームの高速起動が保証される。一旦、バッファリングが終了すると（５０６）、ゲームの実行を開始することができる（５０７）。再生中、利用者の購読５０８、クライアントコンピュータのディスクの空き容量５０９、ハッカの活動５１０、ビデオデータメッセージ５１１などのプレーヤの個人ファイルに応じて、さまざまな変数の監視および照会がなされる。監視または照会の結果に応じて、動作が実行される。購読が終了している場合（５１５）、ディスク空き容量が制限され過ぎている場合（５１６）、またはハッカの活動が検出される場合（５１７）には、利用者は、クリックアンドプレイストリーミングサーバから切断される（５１８）。再生後、最終的に利用者がゲームの終了を決定した（５１２）とき、その時に、ゲームの概要情報が表示される（５１３）。ビデオを再生する（５１１）必要がある場合には、ビデオ再生メッセージ５２０が提供され、ビデオ再生（５２１）またはゲームに戻る（５２２）のいずれかへと続く。
【００２５】
導入バイパス機構（ＩＢＰＭ）
ＩＢＰＭによる主なプロセスは、以下に詳細に説明するように、導入追跡（エンコーディング）および導入バイパス（実行）プロセスである。
【００２６】
１．導入追跡
概要
導入追跡は、ゲームがクリックアンドプレイシステムに移植されるたびに行われるプロセスである。このプロセスは、部分手動および部分自動であり、その目的は、導入プロセス中に元のアプリケーション導入が行っている変更のすべてを識別し、さらにアプリケーション自体（ＤＬＬ、ドライバなど）のほか、インストールされる他のコンポーネントを検出することである。
【００２７】
手動追跡
手動追跡は、以下の行為を含む。
１．製品準備プロセスを行う人（エンコーダ）が、ゲームボックスおよび／または利用者手引きの中にゲーム開発者によって列挙されているような特定のゲームのための最小システム要件を突き止め、ＩＢＰＭデータベースに入力する。ゲームが利用者のコンピュータ上で実行することができることを確実にするために、ＩＢＰＭは、所有権のある自動ハードウェア／ソフトウェア診断機構を用いる。ＲＡＭサイズ、ＣＰＵ速度、ビデオカードのタイプ、サウンドカードのタイプ、ＤｉｒｅｃｔＸドライバのバージョンなどのコンピュータ特性を入手するために、この機構は、Ｗｉｎｄｏｗｓ（登録商標）と、音声ドライバおよびビデオドライバなどのデバイスドライバと、に照会を行う。
２．元の導入中にソフトウェアの導入を追跡する。これは、自動検出プロセスへのバックアップ手続きである。
【００２８】
ゲームが利用者のコンピュータのクリックアンドプレイによって実行されるたびに、この手動追跡の結果は、ＩＢＰＭデータベースにおいて更新され、用いられる。
【００２９】
自動追跡
自動プロセスは、利用者がクリックアンドプレイゲームを開始するときに、利用者のシステムにおける変更を再生するために、システム、大部分はレジストリへの元のゲーム導入を行っている最中に生じる変化を追跡する。
【００３０】
自動追跡は、Ｗｉｎｄｏｗｓ（登録商標）レジストリサービスに接続するために形成されるクリックアンドプレイが所有権を有するデバイスドライバに基づいている。このデバイスドライバは、キー／値の作成、キー／値の変更などのすべてのレジストリの変化を記録する。
【００３１】
ドライバが最初に起動され、この次に、ゲーム導入アプリケーションが起動される。ドライバは、その時に生じるレジストリの変更をすべて記録する。当然のことながら、ゲーム導入中の変更を分離するために、その時には他のアプリケーションは実行されていない。
【００３２】
図６を参照すればわかるように、ゲームまたはアプリケーションの導入前に、導入アナライザが起動される（６１）。次に、元のゲーム導入が実行される（６２）。この元のゲーム導入中、エンコーダ（エンコーディングプロセスを管理する人）は、追加アプリケーションを（手動で）記録する（６３）。これを行うために、ＩＢＰＭオペレータは、導入プロセスへと続き、ゲーム導入自体（ドライバおよびアプリケーション）に加える任意の導入に言及し、これらの導入が必要であるかまたは任意であるかに言及する。導入追跡はまた自動で行われ、このプロセスは自動追跡をバックアップする。自動追跡が導入の検出に失敗した場合、たとえば、導入がレジストリを更新しない場合には、手動追跡が特に重要である。ステップ６３の記録に続いて、ゲーム導入が完了し（６４）、その後で、導入アナライザが終了される（６５）。次に、システムの変更および最小要件が、データベースのＩＢＰＭセクションに格納される（６６）。この最終ステージは、２つの部分を含む。一つは、自動追跡の結果を検討し、実際にすべての導入が認識されたことを確認することである。そうでない場合には、認識されていない導入の詳細が自動的に追加される。第２の部分は、ＩＢＰＭデータベースに最小構成要件を追加することである。
【００３３】
本発明の導入バイパス機構（ＩＢＰＭ）を用いるクリックアンドプレイシステムは、従来の方法でゲームをインストールしない。その代わりに、クライアント装置に最初に最小量のデータのみをインストールし、残りは、ゲーム実行中にストリーミングされる。したがって、クリックアンドプレイによってゲームを利用する場合には、通常のゲームの導入は必要ではない。しかし、一般的なゲーム導入は、ゲームリソースをハードドライブにコピーする場合より多くの処理を行う。すなわち、ゲームを実行することができるかどうかを決定するために利用者のコンピュータを解析し、追加のドライバをインストールし、レジストリを更新し、追加のタスクを行う。導入バイパス機構は、このような追加のタスクを処理するソフトウェアコンポーネントである。
【００３４】
上述のタスクは、手動プロセスによって、以下のように実現される。
１）（Ａｒｋｏｓｏｆｔ社の製品「Ｓｙｓｔｅｍ　Ｓｎａｐｓｈｏｔ」（ｗｗｗ．ａｒｋｏｓｏｆｔ．ｃｏｍ）のシェアウエアバージョンなどの）サードパーティツールを用いて、「未使用」（このプロセスを実行するために必要なもの以外のソフトウェアの入っていない新品の）テストコンピュータにタイトルをインストールする。このツールは、レジストリおよび（ＩＮＩファイルなどの）他のファイルの変更をはじめとするゲーム導入プロセスがシステムに行う変更を捕捉する。このプロセスの最後に、エンコーダはＳｎａｐｓｈｏｔから変更／追加が行われたファイルのリストおよび追加／修正されたレジストリキーノリストを得る。
２）エンコーダ（エンコーディングプロセスを開始する人）は、ファイルを（手動で）解析し、記録されているが、ゲーム導入（たとえばオぺレーティングシステムが同時に行った変更）によって行われていない変更のすべてを消去する。結果は、ゲームを適性に実行するために追加／修正する必要があったレジストリキーおよびファイルの「新しい」リストである。
３）次に、このリストが、各タイトルに関するクリックアンドプレイによって用いられる導入「スクリプト」ファイルに追加される。導入バイパススクリプトファイルは、ＩＮＩファイル（ＩＮＩｔｉａｌｉｚａｔｉｏｎ（初期設定）ファイル、すなわちプログラムまたはオぺレーティングシステムを起動するために必要な起動情報を含むファイル）であり、クライアント側の導入バイパス機構が、アプリケーションを実行する前に導入バイパスを行うために必要な情報をすべて含んでいる。これらの変数は、
・アプリケーションを実行可能にするための相対パス（元のアプリケーションがある場合には、コマンドライン変数を含む）
・レジストリの変更および追加（追加／変更されたキーおよびその値）
・元のアプリケーション導入によって行われたゲームのＩＮＩファイルにおける変更（導入中、元のアプリケーションが決定する変数）
・元のアプリケーション導入がＷｉｎ．ｉｎｉファイルおよびＳｙｓｔｅｍ．ｉｎｉファイルに行った変更のリスト
・元のアプリケーション導入がアプリケーションＣＤからＷｉｎｄｏｗｓ（登録商標）フォルダにコピーしているファイルのリスト（ＤＬＬファイル、ＩＮＩファイルなど）
４）今度は、不正確な解析によって生じる恐れがある不正確なレジストリの変更を曝露するために、エンコーダは別の「未使用」コンピュータ上でクリックアンドプレイ自動導入プロセスを行う。２つのコンピュータが同一であれば、プロセスは終了する。同一でない場合には、エンコーダは差の生じた特定のフィールドを消去することを追加することによって、変更リストを修正する。
【００３５】
２．導入追跡
ゲーム実行プロセス中、ＩＢＰＭモジュールは、レジストリおよび他のシステムファイルを変更する導入バイパススクリプトファイルを実行する。それによって、ＩＢＰＭは、クライアントコンピュータの設定を解析し、クライアントコンピュータにドライバ、ゲームファイルなどの不可欠なファイルをインストールし、レジストリを更新する。さらに、クライアントコンピュータレジストリおよびメモリドライブが事前の状態に戻るようにするために、ＩＢＰＭは、ゲームの終了後に、ゲームファイルを抽出することができる。
【００３６】
本発明による導入バイパス動作を含むゲーム実行プロセスの流れは、図７を参照すればわかる。図においてわかるように、利用者は、起動するアプリケーションを最初に選択する（７０）。この次に、システムがアプリケーションを実行することができるかをマキシマイザ７１が調査する。この調査の結果に基づき、クリックアンドプレイサーバは、利用者に許可を出し、新たなセッション７２を開く。クライアントデバイスは、クライアントに予めダウンロードされたファイルのために、バッファリング段階を起動する（７３）。ステップ７０〜７３の進行中に、ＩＢＰＭは、レジストリおよび他の関連ファイルを含むシステムを更新する（７４）。一旦、この前ステップがしかるべく機能すると、アプリケーションが起動し（７５）、クライアントにおいて検出されないファイルのストリーミングがサーバから継続される。ストリーミング中、アプリケーションが終了するまで、サーバに送信されるメッセージをそのままにしておく（７６）。これらのメッセージは、データを含まない単純な短いメッセージである。メッセージの目的は、クライアントをサーバとだけ連動させることである。（たとえば、ネットワーク接続が切断されたなどの）他の理由から、このようなメッセージがクライアントによって送信されず、サーバによって定期的に確認される場合には、クライアントのアプリケーションは終了することになる。これは、利用者がクリックアンドプレイオフラインを実行しないようにし、利用手数料がかからないようにするためのセキュリティ機構である。アプリケーションの終了（７７）時には、クライアントデバイスがゲームによって悪影響を及ぼされないようにするために、ＩＢＰＭは、レジストリの変更を行わない（７８）。
【００３７】
ＩＢＰＭは、別の方法では元のゲーム導入によって行われるクリックアンドプレイゲームの導入タスクのすべてを行う役割を担っている。クリックアンドプレイはゲーム実行中にゲームデータをストリーミングすることから、これは、ゲームデータ自体の導入を含んでいない。
【００３８】
利用者のコンピュータを「バイパス導入」前と同一の状態にするために、ＩＢＰＭはまた、アプリケーション終了後、クライアントからゲームファイルを検索する役割を担っている。システムの背後にある概念は、ゲームを実行中に限り、利用者のコンピュータはゲームによって影響されることであることから、これは必要である。一旦、ゲームが終了されると、コンピュータは、自動的にもとの状態に復元されなければならない。このプロセスも、ＩＢＰＭによって行われる。
【００３９】
ゲームがクリックアンドプレイによって実行されるたびに、上記のプロセスが行われる。さらに、ＩＢＰＭの「導入バイパス」が適性に作動するようにするために、準備プロセスも必要とされる。このプロセスは、元のアプリケーション導入プロセスを監視し、どの追加導入を行う必要があるか、どのファイル（主にレジストリの変更）を更新する必要があるかを決定する。これは、クリックアンドプレイ環境にゲームのプロセスを移植する時に起動されるＩＢＰＭの一部である。準備プロセスは、導入プロセスを追跡する自動システムトラッカおよび手動更新に基づいている。システムトラッカは、レジストリの変更およびファイルの変更を追跡するクリックアンドプレイユーティリティである。手動プロセスは、クリックアンドプレイのために製品に準備を行う人（エンコーダ）によって実行され、本質的には、ゲームを実行するためのシステム要件の更新を含む。
【００４０】
追跡される元のゲーム導入による変更は、ゲームの持続時間に、利用者のコンピュータにおける変更の復元または再現のために用いられる。ゲームの実行開始前に行われた変更は、ゲームが終了しても変更されない。これは、元の導入のバイパスおよびミラー導入プロセスの作成を可能にし、自動および高速化の両方を実現する。通常の導入中に利用者が行う選択（宛先フォルダの選択、グラフィックカードの設定など）はすべて、製品準備ステージにおいて既に行われているため、利用者が選択を行う必要がないことから、プロセスは自動である。通常の導入とは対照的に、ファイルは製品ＣＤからハードドライブにコピーされないという事実に加えて、このことは、導入プロセスをきわめて高速にする（通常は数秒）。
【００４１】
上述の方法は、ゲームコード、導入コードまたはゲームリソースを修正しなくても、元のバージョンのゲームを提供することができる。移植プロセスにおいてゲーム開発者が関与しなくて済み、プロセス自体をより簡単にする。
【００４２】
このようなバイパスプロセスの正確な実行に作用するために、本発明は、３つの要素を前提としている。
１．元のアプリケーション導入が行っているすべての動作の正確かつ完全な検出２．利用者の関与を必要としないように、ＩＢＰＭによるこれらの動作の自動実行
３．ゲームが終了した場合に、その元の状態へのシステムの復元
【００４３】
これらの要素に関して、本発明のＩＢＰＭは、すべてのタイプのボックス型ゲーム用にゲームフローを完了することができる。
【００４４】
したがって、ＩＢＰＭは、アプリケーションの遠隔ストリーミングを行うと同時に、製品の元の機能性を維持することができる。しかし、ＩＢＰＭは、十分に最適化し、安定させるための追加モジュールに左右される。したがって、ＩＢＰＭは、高い安全性および遠隔サーバからの最適なゲームフローを可能にするために、ゲームデータトラフィックアナライザ（ＧＤＴＡ）モジュールの入力および支援を必要とする。（インストールおよび実行など）導入バイパス準備プロセスのためにゲームで行われる動作もＧＤＴＡを必要とするため、ゲーム準備プロセスにおいては、ＧＤＴＡはＩＢＰＭの一部として作動される。
【００４５】
ゲームデータトラフィックアナライザ（ＧＤＴＡ）
ＧＤＴＡ３４は、クリックアンドプレイシステムに標準的なボックス型ゲームまたはアプリケーションを移植するために用いられるバックオフィスツール（ユーティリティスーツ）３０の集合の一部である。この移植プロセスは主に、アクセスプロファイルリストの作成およびゲームデータの圧縮を含む。ゲームごとに、ネットワーク定義が変更されるたびに（たとえば、ゲームがケーブルネットワークで既に実行されており、サテライトネットワークに対応させる必要がある場合）、このツールを実行する必要がある。ＧＤＴＡ３４は、ローカルメディアで検出されたリソースへのゲームのアクセスを自動的に追跡することによって、ゲームフロートラフィックをエンコードする（アプリケーションを解析することによって、クリックアンドプレイシステムのためにアプリケーションに準備を施すプロセスを実行する）。ゲームデータフローが最適化され、安全性の高いデータ伝送を可能にするために、このモジュールは、データストリーミングおよび格納プロセスを効率的に管理する。ＧＤＴＡ３４モジュールは、どのファイルがバッファリングステージの一部である必要があるか、およびゲーム再生中にどのファイルがストリーミングされるかを決定することによって、データストリーミングを最適化する。ＧＤＴＡ３４モジュールは、クリックアンドプレイシステムが機能するために必要なコンポーネントではないが、それがなければ、ゲームはクリックアンドプレイシステムにおいて効率的に実行されないと推測されるような重要な最適化を行う。
【００４６】
さらに詳細に言えば、ＧＤＴＡ３４モジュールは、ゲーム準備プロセス中、ハードドライブおよびＣＤドライブからゲーム実行中のゲームアプリケーションへのデータブロックのトラフィックを検出し、どのデータブロックをバッファリングすべきかと、ゲーム実行中にどれをストリーミングすべきかの「優先順位リスト」を準備する。ゲーム実行プロセス中、ＧＤＴＡ３４モジュールは、機能しない。
【００４７】
プロセスの観点から、このような２つのコンポーネントＩＢＰＭ３３およびＧＤＴＡ３４は、クリックアンドプレイシステムのためにゲーム準備（エンコーディング）プロセスにおけるステップである。したがって、ＩＢＰＭ３３およびＧＤＴＡ３４はいずれも、エンコーディングプロセスの一部であり、バックオフィスユーティリティのエンコーディングを含む。さらに、ＩＢＰＭ３３モジュールは、圧縮およびストリーミングステージの役割を担っている。
【００４８】
図３においてわかるように、アプリケーションの実行開始を行うことができる前に、どのデータをストリーミングする必要があるかを決定するために、ゲームが必要とするデータのフローを追跡するために、ＧＤＴＡ３４は、デバイスドライバ３６などのクリックアンドプレイシステムコンポーネントに直接接続している。
【００４９】
クリックアンドプレイゲームが移植されると、サーバから利用者にゲームデータのフローを最適化するために、
・デバイスドライバを用いるゲームリソースへのアクセスの追跡
・各ゲームリソースファイルのためのデータアクセスプロファイルの作成
によって、ＧＤＴＡコンポーネント３４が用いられる。
【００５０】
２つの相反する要件のために、このような最適化が必要である。一つは、ゲームの遅延のない実行を提供するために、ゲーム前にゲームデータファイルの大部分を実行する必要があるようなインストールを行うことである。しかし、このようなダウンロードの結果、利用がゲームを選択した時から、ゲームが実際に実行開始されるまでの応答時間が増大することになる。ブロードバンドネットワークにおいても、ゲーム全体をインストールする場合には、このプロセスは長いため、ゲームの実行が可能になるまで、利用者は相当待つ必要がある。他方、すべてのゲームファイルがゲーム実行中にストリーミングされる場合には、ゲームは即時に実行されるが、必要なデータブロックが時間通りに到着しない場合には、時折遅延を生じたり、場合によっては強制終了を生じたりする。
【００５１】
どのファイルが初期導入の一部である必要があるかおよびどれをストリーミングすべきかを決定するために、ＧＤＴＡが形成された。また、ＧＤＴＡは、利用者のコンピュータ（キャッシュ）にどのファイルが残り、ゲームによって必要とされるたびに、どれをストリーミングする必要があるかも決定する。
【００５２】
ＧＤＴＡは、ローカルメディアで検出されたリソースへのゲームのアクセスを自動的に追跡することによって、ネットワークトラフィックを最適化するという概念を実行する。ゲームアプリケーションのそのリソースへのアクセスパターンが事前に知られている場合には、ネットワークのアクセスを最適化することができ、ゲームがどのデータを必要とするかを事前に決定することもできる。一般に、この情報は、実行開始前にアプリケーションが必要とするデータブロックを定義するために用いられる。適切なアルゴリズムを用いて、この情報はまた、ゲームが必要とする前にデータを進行させるなど予測のために用いられる。
【００５３】
アクセスパターンを識別するために、ゲームを解析する必要がある。この解析は、クリックアンドプレイシステムのためにゲームに準備を施す必要があるコンテンツ集合ステージの一部である。基本的に、解析プロセスは、アプリケーションの実行中に、オぺレーティングシステムおよび製品の実行ファイルによって作成されたゲーム導入ディレクトリ下のハードドライブへのアクセスをすべて追跡することを指す。この動作の出力は、指定されたオフセットおよびブロックのサイズを有するアクセスされたファイルのリストである。優先順位データおよびファイルアクセス順序に関する情報を収集するために、このプロセスが
必要とされる。ＧＤＴＡ３４は、包括的であるため、任意のタイプのゲームの処理を行うことができる。しかし、ゲームを解析するために、解析しながら、ゲームを再生する人が依然として必要である。
【００５４】
ＧＤＴＡモジュールによれば、解析プロセスは以下の通りである。利用者は、入力および出力ディレクトリ名を設定する必要がある。入力ディレクトリは製品がインストールされるディレクトリであり、出力ディレクトリはＡＮＡファイルが格納されるディレクトリである。ＡＮＡファイルは、実行中に製品がどのファイルを読み出しているかに関するデータをすべて格納する。ディレクトリが設定されると、利用者は、（「解析」ボタンをクリックすることによって）「解析」機能の命令を出すことができ、その次に、圧縮ツールが、指定された入力ディレクトリへのすべてのアクセスを追跡するＱＰＦＳＨ仮想デバイスドライバを初期化する。ＱＰＦＳＨは、ファイルシステムへのすべてのアクセスに関してオぺレーティングシステムから情報を得て、一定のディレクトリのみへのアクセスをフィルタリングするファイルシステムフックドライバである。ＱＰＦＳＨは、Ｗｉｎｄｏｗｓ（登録商標）リング−０レベルドライバであり、それ自体として、ハードドライブからデータを検索するためのすべての要求を受信する。各要求は、特定のフォルダに位置するファイルの特定の一部を指す。ＱＰＦＳＨは低レベルドライバであるため、どのアプリケーションがデータを要求したのかはわからない（他方では、製品アプリケーションのみによって要求されたものはわかっていなければならない）が、どのフォルダからデータが要求されたかについてはわかっている。製品がインストールされるフォルダへなされた各要求は、製品アプリケーションから出されていると仮定する。これは、このディレクトリがドライバに指定されているためである。
【００５５】
エンコーダは、メインメニューを待ちながら、アプリケーションを実行し、ＡＮＡファイルにＦＡＰセパレータを書き込むために、特殊なホットキーを押す。ＦＡＰセパレータは、ゲームがメインメニューに達するために必要であったすべてのファイルを読み出し終えた点に印を付けるＡＮＡファイル内部の記号にすぎない。この後で、優先順位データがメインメニューに達するまでゲームの要求するデータとして定義されている場合には、エンコーダは製品を終了することができる。あるいは、エンコーダは、（たとえばゲームセッションの開始、種類など）それに着手するためにゲームが読み出すデータがすべて、優先順位データであるものとして定義された時点までデータを利用しつづけることができ、その後で製品を終了する。
【００５６】
本発明に先だって、ゲームのアクセスパターンを自動的に解析するように設計された他のアプリケーションは存在していない。ゲームがそのようなパターンを有するという仮定（および実際のテストにおける確認）が新境地を開く。第二に、（上記で説明したように、本発明の目的のために用いることが）パターンを検出するために、このような解析のために妥当な変数を選択しなければならない。正しいチューニングに達するまで、多数の試行およびエラーが繰り返される。
【００５７】
ＧＤＴＡによる解析プロセス
図８は、ＧＤＴＡモジュールによる解析プロセスの概要流れ図を示している。図８においてわかるように、エンコーダは、最初にゲームフォルダをアナライザに指定し（８１）、ｉｎｉファイルにおける変数フィールドを変更することによって行われる。次いで、アナライザが起動され（８２）、ゲームの起動（８３）へと続く。続いて、エンコーダは、正常であるがゲームの多数の順序を必然的に伴うゲームを再生する（８４）。次に、ゲームレベル／アリーナ／ミッションがすべてコミットされた後、ゲームはエンコーダによって終了される（８５）。続いて、アナライザが停止され（８６）、結果が処理される（８７）。
【００５８】
デバイスドライバからの情報の処理
ゲームが終了すると、アナライザは、ゲームによってなされた要求のすべてのリストを取得する。そのリストに基づいて、アナライザは、２つの追加リストを作成する。
１）ゲームの実行前に入手可能でなければならないリソースを含む優先順位リスト
２）ファイルアクセスパターン
【００５９】
優先順位リストは、以下の方法で構築される；
各ファイルは、６４Ｋｂセクション（データブロック）に分割される。優先順位の値は、ファイル全体ではなく、個別に各データブロックに設定される。同一ファイルのそのように異なるデータブロックは異なる優先順位の値を得ることができ、識別がさらに正確である。
【００６０】
優先順位の閾値が、事前に設定される。用いることができる別の予め定義された変数は、ゲームの必要な初期ローティング時間である。しかし、このような２つの変数は、任意である。デフォルトによって、優先順位リストは、すべてのデータブロックを含む。
【００６１】
図９は、リストを作成するための流れを示している。図９によれば、アプリケーションは、データブロック（ファイルの一部）を提供するために、ドライバに要求を行う。ドライバがこのデータブロックを検索してから、ＧＤＴＡがそのブロック番号を算出し、格納する（９１）。ＧＤＴＡはまた、これまでに検索されたブロックの合計サイズを更新する（９２）。各データブロックを読み出した後、ＧＤＴＡは、タイムアウト機構（新たなブロックに関する要求を受信することなく一定時間が過ぎた場合には、アプリケーションはこれ以上データを読み出さないと仮定する）を用いてアプリケーションが依然としてデータブロックを必要とするかどうかを決定する（９３）。もしそうであるならば、ＧＤＴＡは解析プロセスを停止する（９５）。そうでないならば、すべての優先順位ブロックが既に検索されたかどうかを調査すること（優先順位ブロックの合計サイズに関してエンコーダによって事前に定義された最大サイズ制限に達するか、またはアプリケーションがメインメニューに達した場合または、アプリケーションが必要とするデータのすべてが優先順位ブロックとみなされない範囲として定義された時点である場合には、エンコーダからの手動信号、すなわちキーを押すかのいずれか）によって続く（９４）。これらの状態の１つが当てはまる場合には、解析プロセスは終了し（９５）、そうでない場合にはＧＤＴＡは、別のデータブロックを要求するためにアプリケーションを待機させる（９１）。
【００６２】
たとえば、オフセット１６３８４、長さ１０２４（データブロックサイズ４０９６）において、ファイルＵｓａｆ．ｅｘｅのために読み出し要求が出されたと仮定する。この場合には、ブロック番号は５である（１６３８４（レンジ０〜１６３８３）は４ブロック（１６３８４／４０９６＝４）であることから、次のバイト（＃１６３８４）は実際にはブロック番号５の最初であるため）と推測され、優先順位ブロックであると推測される。この例では、ＥＸＥファイルは常にアプリケーション実行可能ファイル自体であり、全体の実行可能ファイルをストリーミング前にアプリケーションを実行開始することができないため、このブロックは優先順位を有する。アプリケーションが開始されてから、要求された各ブロックが、要求リストの順である番号が与えられる。上記の番号（ブロック５）は、一例として与えられた。
【００６３】
次に、ファイルアクセスパターンが、以下のように生成される；
すべてのファイルに関するアクセスパターンが記録される。これは、（一次キーとしての）時間および（二次キーとしての）ファイルによって、アナライザリストを整列することによって行われる。脚気は、ファイル後とのリストであり、実際には、ファイルのアクセスパターンである。
【００６４】
図１０は、標準ブロックサイズが４０９６バイトであるファイルｕｓａｆ．ｅｘｅに関する例を示している。記録された動作は、図１０においてわかるように、ｕｓａｆ．ｅｘｅにおいて生成された優先順位リストは１、２、３、４、５、１、６である。
【００６５】
アナライザによって収集された情報は、クリックアンドプレイシステムによって最小ネットワークトラフィックでゲームリソースを効率的にダウンロードするために用いられる。
【００６６】
優先順位リストは、ゲーム開始前にダウンロードされ、円滑かつ遅延のない再生を確実に行うために、予測機構によって用いられる。リストはまた、ゲームのアクセスパターンを追跡し、それを優先順位リストと比較することによって、ハッキングを防止するために、サーバによって用いられる。
【００６７】
別の実施形態
複数の他の実施形態が、本発明者らによって検討されている。たとえば、クリックアンドプレイは、必ずしもゲームとは限らない任意の種類のアプリケーションをストリーミングするように設計されている。これは、企業、ビジネス、教育のためのタイトルなどを含む。クリックアンドプレイはゲーム指向である理由は、ゲームこそ、顧客の最も必要とするコンテンツであるためと、技術的にゲームが最も要求の多いアプリケーションであることから、よりよい技術およびＧＤＴＡなどの独特のソリューションを必要とするためである。
【００６８】
本発明の実施形態に関する前述の詳細は、例示のために示された。それが網羅していると捉えるべきではなく、開示された正確な形態に本発明を限定すると捉えるべきでもない。上記の教示を踏まえて、さまざまな修正および変形が可能であることを十分に理解すべきである。本発明の範囲は、この詳細な説明によって限定されるのではなく、本願明細書に添付の特許請求の範囲によって限定される。
【図面の簡単な説明】
【図１】本発明によるサーバの構造を示している。
【図２】本発明によるクライアントの構造を示している。
【図３】本発明によるＩＢＰＭモジュールおよびＧＤＴＡモジュールを含むシステムソフトウェアコンポーネントを示している。
【図４】ＩＢＰＭモジュールおよびＧＤＴＡモジュールによる追跡プロセスが行われるコンテンツ集合プロセスの流れを示している。
【図５】クリックアンドプレイシステムの利用の流れを示している。
【図６】ＩＢＰＭによる解析プロセスを示している。
【図７】導入バイパス作用を含むゲーム実行プロセスの流れを示している。
【図８】ＧＤＴＡによる解析プロセスの概要流れ図を示している。
【図９】本発明のＧＤＴＡによるリストを作成するための流れを示している。
【図１０】ファイルアクセスパターンの生成の例を示している。
【図１】
2004502236.tif 000003
【図２】
2004502236.tif 000004
【図３】
2004502236.tif 000005
【図４】
2004502236.tif 000006
【図５】
2004502236.tif 000007
【図６】
2004502236.tif 000008
【図７】
2004502236.tif 000009
【図８】
2004502236.tif 000010
【図９】
2004502236.tif 000011
【図１０】
2004502236.tif 000012
【国際公開パンフレット】
2004502236.tif 000013
2004502236.tif 000014
2004502236.tif 000015
2004502236.tif 000016
2004502236.tif 000017
2004502236.tif 000018
2004502236.tif 000019
2004502236.tif 000020
2004502236.tif 000021
2004502236.tif 000022
2004502236.tif 000023
2004502236.tif 000024
2004502236.tif 000025
2004502236.tif 000026
2004502236.tif 000027
2004502236.tif 000028
2004502236.tif 000029
2004502236.tif 000030
2004502236.tif 000031
2004502236.tif 000032
2004502236.tif 000033
2004502236.tif 000034
2004502236.tif 000035
2004502236.tif 000036
2004502236.tif 000037
2004502236.tif 000038
2004502236.tif 000039
2004502236.tif 000040
2004502236.tif 000041
2004502236.tif 000042
2004502236.tif 000043
2004502236.tif 000044
2004502236.tif 000045
2004502236.tif 000046
2004502236.tif 000047
2004502236.tif 000048
2004502236.tif 000049
【国際調査報告】
2004502236.tif 000050