JP2004502236A - ストリーム型アプリケーションオンデマンドの高速起動および実行を可能にするためのシステムおよび方法 - Google Patents
ストリーム型アプリケーションオンデマンドの高速起動および実行を可能にするためのシステムおよび方法 Download PDFInfo
- Publication number
- JP2004502236A JP2004502236A JP2002506419A JP2002506419A JP2004502236A JP 2004502236 A JP2004502236 A JP 2004502236A JP 2002506419 A JP2002506419 A JP 2002506419A JP 2002506419 A JP2002506419 A JP 2002506419A JP 2004502236 A JP2004502236 A JP 2004502236A
- Authority
- JP
- Japan
- Prior art keywords
- application
- game
- computer
- client
- installation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 74
- 230000007246 mechanism Effects 0.000 claims abstract description 18
- 230000008569 process Effects 0.000 claims description 54
- 238000009434 installation Methods 0.000 claims description 43
- 238000011900 installation process Methods 0.000 claims description 13
- 238000012360 testing method Methods 0.000 claims description 6
- 230000006835 compression Effects 0.000 claims description 5
- 238000007906 compression Methods 0.000 claims description 5
- 230000003139 buffering effect Effects 0.000 claims description 4
- 230000008859 change Effects 0.000 claims description 3
- 230000003213 activating effect Effects 0.000 claims 1
- 238000001914 filtration Methods 0.000 claims 1
- 238000013507 mapping Methods 0.000 claims 1
- 230000002452 interceptive effect Effects 0.000 abstract description 3
- 238000002360 preparation method Methods 0.000 description 10
- 230000009471 action Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 230000002411 adverse Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 239000000872 buffer Substances 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000003860 storage Methods 0.000 description 2
- 206010047601 Vitamin B1 deficiency Diseases 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 208000002894 beriberi Diseases 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/33—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using wide area network [WAN] connections
- A63F13/335—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using wide area network [WAN] connections using Internet
-
- A63F13/12—
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/35—Details of game servers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/70—Game security or game management aspects
- A63F13/77—Game security or game management aspects involving data related to game devices or game servers, e.g. configuration data, software version or amount of memory
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/50—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/50—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
- A63F2300/55—Details of game data or player data management
- A63F2300/552—Details of game data or player data management for downloading to client devices, e.g. using OS version, hardware or software profile of the client device
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
ネットワークを通じてアプリケーションオンデマンドの高速起動および実行を可能にするためのシステムおよび方法が開示される。本発明のサービスにより、ブロードバンドインターネット接続を備えたPC利用者は、ゲームを購入するために、外出することも必要なく、PCゲームなどを高速起動し再生することができる(70)。所有権のある導入バイパス機構(IBPM)(74)およびゲームデータトラフィックアナライザ(GDTA)モジュールに基づいて、クリックアンドプレイシステムは、任意のタイプのブロードバンドネットワークを通じて遠隔サーバから利用者のコンピュータにゲームを効率的にストリーミングする。インタラクティブブロードバンドコンテンツの高速起動および安全な実行を可能にするために、モジュールは、クライアントコンピュータの設定(71)を解析し、ドライバ、ゲームファイルなどの不可欠なファイルをクライアントコンピュータにインストールし、レジストリ(74)を更新する。クライアントコンピュータのレジストリおよびメモリが事前の状態に戻り、データフローがネットワーク全体にわたって最適であるようにするために、モジュールは、ゲームの終了後にゲームファイルを抽出する(78)ことができる。
Description
【0001】
【本発明の分野および背景】
発明の背景
1.発明の分野
本発明は、任意のタイプのブロードバンドネットワークにわたって、遠隔サーバから利用者のコンピュータにゲームおよび他のメディアリッチなアプリケーションのストリーミングを最適化するためのシステムに関する。
【0002】
2.従来技術の詳細
アプリケーションストリーミングサービスは、IPネットワークにおけるサーバクライアント型アプリケーションの発展と共にますます人気が高まってきている。低い帯域幅および高いトラフィックという歴史的な問題は、マルチメディアアプリケーションに関するアプリケーションストリーミングサービスの大量導入を妨げてきた。しかし、ブロードバンドネットワークは、市場に浸透し続け、さらに改善したデータ転送の可能性を実現することができると推測される。
【0003】
家庭におけるブロードバンド利用に関して最も人気のある用途の1つは、インターネット上のマルチメディアリソースにアクセスすることである。現在では、たとえば、音楽ファイルはブロードバンドネットワークを通じて容易に伝送されることができる。しかし、一般的なブロードバンド環境であっても、ビデオおよびインタラクティブゲームファイルを利用者に効率よく伝送することはできない。
【0004】
ブロードバンドネットワークの近い将来の選択に関して、そのようなネットワーク用のマルチメディアストリーミングアプリケーションを提供するためのさまざまな試みがなされてきている。この分野における技術またはサービスを提供する複数の企業として現在知られている企業は、以下の通りである。
Media Station(www.mediastation.com)は、ブロードバンドネットワークにおけるアプリケーションストリーミングサービスを提供している。このサービスは、SelectPlayと呼ばれ、全米の利用者が利用可能である。サービスはウェブサイトによって提供され、さまざまなゲームおよび他のアプリケーションを提供する。しかし、SelectPlayは、導入バイパス機構を具備していないため、利用者は、利用するためにアプリケーションをインストールする必要がある。この導入のために、ゲームを即時/高速起動することができない。SelectPlay利用者が、ウェブサイトを通じたこのサービスによって自分に提供されるアプリケーションを利用したい場合(最初にこのアプリケーションを選択する際)には、ボックスバージョンのゲーム導入と同一の導入スクリーンを受信する。利用者はローカルCDドライブからアプリケーションをインストールしているかのごとく、導入プロセス全体を経験する必要がある。導入が終了した場合に限り、利用者はSelectPlayサーバからアプリケーションを実行し、ストリーミングを実行することができる。
Into Networks(http://www.intonetworks.com/)は、ブロードバンド利用者のためのゲームストリーミングサービスを提供し、PlayNowと呼ばれている。IntoMediaシステムは、使用許諾のために、サービスオペレータにも提供されている。IntoMediaシステムは、アプリケーションが実行される前にどのアプリケーションデータがストリーミングされるか、特定のアプリケーションのデータフローパターンに基づいてアプリケーションの実行中にどのアプリケーションデータがストリーミングされているかを決定する機構を有し、ゲームなどの一部のアプリケーションの非能率的なストリーミングを生じるという指摘はない。
Stream Theory(www.streamtheory.com)は、StreamItと呼ばれ、ブロードバンドネットワークによってマルチメディアコンテンツのストリーミングに利用されている技術を用いている。しかし、このシステムは、
・DirectX(Windows(登録商標) 95/98、NT、2000用のMicrosoftが提供しているマルチメディアプログラミングインターフェイスのセットであり、改良した性能のためにハードウェアへの低レベルのアクセスを提供する)の有無を検出しないため、ダウンロード用にDirectXを提供しない。
・ドライバ導入後にコンピュータの再起動を必要とし、利用者がシステムを起動することができる前に一旦終了しなければならない。
・CD−ROMのエミュレーションを行うことができない。このことは、システムが音声トラックを再生することができないため、ボックス型アプリケーションを用いる場合と同一の完全なアプリケーション利用体験を提供することができないことを意味する。本発明によれば、音声トラックはアプリケーションデータの残りとは異なる形式で格納されるため、標準的なドライバで読み出すことができない。特殊なCDエミュレーションドライバの利用によってのみ、これらのファイルを読み出すことができる(結果としてCDトラックを再生することができる)。
Real Networks(www.real.com)は、PC利用者がウェブを用いたマルチメディアサービスを送受することができるように設計されたソフトウェア製品およびサービスを開発し、市場に出している。このシステム、すなわちRealArcadeは、ゲームが特にこのサービスのために構築されなければならないという意味では、他のシステムとは異なっている。サービスは、RealNetworksネットワークを通じてのみ提供される。また、現在入手可能である情報に基づけば、RealArcadeは、実行中にゲームをストリーミングするのではなく、より伝統的な方法でダウンロードする。RealArcadeシステムは、主にアプリケーション内からシステムとのインタフェースのために、ストリーミングされるアプリケーションにおいて著しい変更が必要である。したがって、アプリケーションをRealArcadeによってストリーミングさせるためには、修正される既存のアプリケーションが実用的でない程度まで、大量に修正しなければならない。したがって、Real Networksは、開発者に特殊なSDKを用いて新たなアプリケーションを開発することを薦め、既存のタイトルの市場を対象にしていない。
【0005】
したがって、PC上で再生されるゲームを開始するために、高速または即時に近い起動時間を可能にするように、ゲームがサーバコンピュータからストリーミングされる場合およびゲームが高い安定性で再生される場合には、PC上で既存のゲームの実行を効率的に可能にするための手段を可能にすることができるシステムが必要であることは広く認識されており、きわめて利点が多いと推測される。さらに、クライアントコンピュータに重い負荷をかけることなく、または悪影響を与えることなく、これを実行する必要がある。また、不可欠なファイルをクライアントコンピュータで実行し、残りのファイルをサーバで実行するようなサーバからPCへのゲームフローをストリーミングする知的な方法が必要であることも広く認識されている。
【0006】
【発明の開示】
本発明によれば、ネットワークを通じてストリーム型アプリケーションオンデマンドの高速起動および実行を可能にするためのシステム(以下、「クリックアンドプレイ(Click’n Play)」と呼ぶ)および方法が提供される。本発明のサービスにより、ブロードバンドインターネット接続を備えたPC利用者は、ゲームを購入するために、外出することも必要なく、PCゲームを高速起動し再生することができる。所有権のある導入バイパス機構(IBPM)およびゲームデータトラフィックアナライザ(GDTA)モジュールに基づいて、クリックアンドプレイシステムは、ほぼ起動直後に、任意のタイプのブロードバンドネットワークを通じて遠隔サーバから利用者のコンピュータにゲームを効率的にストリーミングする。
【0007】
本発明は、さまざまな従来技術のダウンロード段階を避け、利用者が「第2ステージ」に直行することができる、すなわち最初にインストールする必要がなく、アプリケーションを即時に実行することができるようにする。さらに、本発明のクリックアンドプレイドライバの導入によって、従来技術に比べて同一の機能性または追加の機能性を提供するように設計されているが、導入後、コンピュータの再起動を必要としない。さらに、本発明は、クリックアンドプレイシステムを利用するために、既存のアプリケーションを修正しなくても、これらのアプリケーションを利用することができる。
【0008】
本発明によれば、高速起動時間および高い安定性の両方を実現し、かつゲームによって利用者/クライアントコンピュータに重い負荷がかかったり、そうでなくても悪影響を及ぼされたりしないような利用者のコンピュータへのゲームのストリーミングを可能にするための方法およびシステムが提供される。本発明によれば、利用者またはクライアントコンピュータは、PC、インターネットテレビ、ノートブックコンピュータ、パーソナルハンドヘルドアシスタント、高度自動機能電話、ウェアラブルコンピュータ、モバイルコンピュータなどの任意のマルチメディア対応計算機を含む。本発明は、クライアントコンピュータの設定を解析するためのソフトウェアコンポーネントである導入バイパス機構(Installation Bypass Mechanism:IBPM)を設け、その結果、ドライバ、ゲームファイルなどのクライアントコンピュータに重要なファイルをインストールし、レジストリを更新することによって、インタラクティブブロードバンドコンテンツの高速起動および安全な実行を可能にするための方法およびシステムを可能にする。さらに、IBPMは、クライアントコンピュータレジストリおよびメモリが事前の状態に戻るようにするために、ゲーム終了後、ゲームファイルの抽出を行うことができる。
【0009】
本発明の追加モジュールは、ゲームデータトラフィックアナライザ(Game Data Traffic Analyzer)(以下「GDTA」と呼ぶ)であり、ローカルメディアで検出されたリソースへのゲームアクセスを自動的に追跡することによって、ゲームフロートラフィックを分析するバックオフィスツールである。ゲームフローデータが最適化され、安全性の高いデータ伝送が可能であるようにするために、このモジュールは、データのストリーミングおよび格納プロセスを効率的に管理する。GDTAモジュールは、どのファイルが最初のストリーミングの部分でなければならないか、ゲーム再生中にどのファイルがストリーミングされるかを決定する。また、どのファイルが、利用者のコンピュータ(キャッシュ)に残り、どのファイルが必要である場合にストリーミングされるためにサーバに残っているかを決定する。
【0010】
利用者の観点から、クリックアンドプレイの利用は、以下のように行われる。クリックアンドプレイクライアントの導入から始まる。利用者は、受け部サイトから小さな自己解凍ファイルをダウンロードし、単純な導入プロセスに従う。クリックアンドプレイドライバは、指定されたWindows(登録商標)ライブラリにインストールされ、残りのファイル(たとえばゲームキャッシュ)は、利用者の優先順位に応じて位置決めされることができる。クライアントのインストールは、他のハードウェア/ソフトウェアコンポーネントと干渉することはない。一旦、これが終了すると、利用者はシステムを用いて起動することができる。すなわち利用者は、ウェブ基盤のリストからゲームを選択し、ゲームは、ゲーム開始直後に、サーバからストリーミングを開始する。一旦、不可欠なゲームファイルが利用者のPCのバッファに入ってしまうと、ゲームは自動的に始まる。ゲームを開始するためには、平均して約30MBのゲームファイルのごく一部のみが必要である。残りのファイルは、クリックアンドプレイサーバに常駐し、ゲームデータのこの部分用の「仮想ドライブ」として機能する。
【0011】
本発明は、例示のみとして、添付の図面を参照して本願明細書では説明される。
【0012】
【好適な実施形態の詳細】
本発明は、ネットワークを通じてストリーム型アプリケーションオンデマンドの高速起動および実行を可能にするためのシステムおよび方法に関する。
【0013】
以下の詳細は、特定のアプリケーションおよびその要件に関して提供されるため、当業者が本発明を利用することができることを示している。好ましい実施形態のさまざまな修正は、当業者には明白であり、本願明細書に定義された一般的な原理は他の実施形態に適用することも可能である。したがって、本発明は、図示および説明がなされた特定の実施形態に限定されるわけではなく、本願明細書に開示された原理および新規の特徴に対応した最も広範囲な範囲と適合していると考えるべきである。
【0014】
具体的に言えば、本発明は、(任意のタイプのブロードバンドネットワークを通じて)遠隔サーバから利用者のコンピュータにメディアリッチなアプリケーション(ゲーム、教育用ソフトウェアなど)を含むアプリケーションのストリーミングを可能にするために用いられることができる。本発明によれば、高速起動時間および高い安定性の両方を実現し、かつゲームによって利用者/クライアントコンピュータに重い負荷がかかったり、そうでなくても悪影響を及ぼされたりしないような利用者のコンピュータへのゲームのストリーミングを可能にするための方法およびシステムが提供される。
【0015】
本発明によるシステムおよび方法の原理および動作は、図および添付の詳細を参照してよりよく理解されると思われる。これらの図面は例示のためにすぎず、何ら限定するわけではないことを理解されたい。
【0016】
図1は、クリックアンドプレイシステムのクリックアンドプレイストリーミングサーバのコンポーネントを示している。
・データベース10−利用者情報、システム情報、IBPMデータ、利用統計を含む。
・DBAL11−(データベース抽象化層)データベースに特化したデータベースのインプリメンテーションおよび構造に左右されることなく、アプリケーションがデータベース10にアクセスすることができるアプリケーションプログラムインターフェイス(API)。このインターフェイスは、本発明者らによって設計され、本発明のシステムに特化しているが、一旦システム機能性および要件が定義されると、インターフェイス設計は複雑ではないため、画期的というわけではない。
・仮想ファイルシステム12−ストリーミングされるアプリケーションが必要なデータを伝送するために、クライアント側のクリックアンドプレイドライバと通信を行うドライバ。このドライバは、所有権のあるファイルシステムと連動しているため、本発明者らによって設計されるが、設計は比較的単純である。
・サーバアプリケーション13−利用者によって要求されるすべてのアプリケーションのストリーミングの管理を担うアプリケーション。
・ウェブサーバ14−クリックアンドプレイの前部、すなわち利用者がログインし、アプリケーションの選択および実行を行う場所であるサイトを管理する。
【0017】
図2は、クリックアンドプレイクライアントシステムのコンポーネントを示している。
・アプリケーションレベル20−利用者のコンピュータを解析するマキシマイザ21(マキシマイザは、追加された機能を有効にする独特のコンポーネントである。しかし、マキシマイザのインプリメンテーションは、サーバ側もクライアント側も、ボックス型ゲームなどスタンドアロン型オフラインアプリケーションにおいて既に実行された既存の知識を用いて実現される。)のクライアント側と、一旦、利用者がストリーミングされるアプリケーションを選択すると、クリックアンドプレイドライバの管理を担うウェブインターフェイスActiveXコンポーネント22と、利用者によってストリーミングされるように選択されたアプリケーションの実行可能ファイルであるアプリケーション23と、を含む。本発明者らは、作成することがある程度明白であるソフトウェアコンポーネントであるこのインターフェイスActiveXコンポーネントを設計し、このコンポーネントはクライアントコンピュータでドライバを管理するためのツールとして用いられる。
・ドライバレベル24−(不正使用またはハッキングからシステムを守る)セキュリティコンポーネント25と、(サーバからストリーミングされたデータを解凍する)圧縮エンジン26と、(データをアプリケーションに送信する)ファイルシステムドライバ27と、を含む。クライアント側のこのドライバは、独特の機能を提供し、Windows(登録商標)オぺレーティングシステム環境の中に密に統合されている。
・システムリソースレベル−ローカルハードディスク28からのデータを格納および検索のため、およびWindows(登録商標)ネットワーク層29を介したインターネットからのデータの送信および検索のためのWindows(登録商標)サービスを含む。
【0018】
図3においてわかるように、本発明は3つのレベルのソフトウェアコンポーネント、すなわちバックオフィスユーティリティスーツ30と、クリックアンドプレイシステムコンポーネント31と、外部コンポーネント32と、から構成される。図に示されているように、ユーティリティスーツ30には2つの重要なモジュール、すなわちアプリケーションの準備および実行を可能にするソフトウェアコンポーネントである導入バイパス機構(以下、「IBPM」と呼ぶ)33と、最適ストリーミングのために、アプリケーションをエンコードするバックオフィスツールであるゲームデータトラフィックアナライザ(以下、「GDTA」と呼ぶ)34と、がある。バックオフィスユーティリティ30は、すべてのファイルシステム要求を受信するために、Windows(登録商標)ファイルシステムに接続するデバイスドライバ36を用いる。デバイスドライバ36は、システムの中心であり、ファイルへのゲームのアクセスを追跡するためにアナライザによって用いられる。ドライバ36は、ファイルシステムフックである。フックは、Windows(登録商標)アプリケーションからの要求に基づくすべてのファイルシステムを受信する。要求のタイプは、開く(Open)、読み出す(Read)、書き込む(Write)である。特定のゲームに関してゲームリソースのアクセスパターンを解析するために、ゲームをインストールしたフォルダにアナライザを指定する(たとえば、C:¥Program Files¥Jane’s Combat Simulations¥USAF)。デバイスドライバ36は、すべてのWindows(登録商標)ファイルシステム要求をフィルタリングし、作成された要求のみを指定されたフォルダに記録する。(移植目的の場合には)ゲームが実行されると、アナライザがゲームによって作成された要求をすべて記録する。
【0019】
ドライバ36は、読み出し要求および書き込み要求のみを記録する。以下のデータは、すべての要求に関して記録される:
1)要求時間
2)要求のタイプ(読み出し/書き込み)
3)ファイル名
4)開始オフセット
5)長さ
【0020】
情報は、この情報の記録および処理を行うためにのみ用いられるMS Accessデータベースなどのデータベースに格納される。これはバックオフィスユーティリティスーツ30の一部であり、ゲームが終わると、GDTA34によって処理される。
【0021】
したがって、本発明の方法によれば、バックオフィスツール(ユーティリティスーツ30)は、ストリーミングのためのアプリケーションを準備する後部処理機能を実行する。この準備は、IBPM33が、ゲーム導入プロセスがシステムに行う変更を捕捉するためのスナップショットユーティリティ37などの外部コンポーネントとリンクし、統合することを必要とする。これらの変更は、導入バイパスプロセスによって模倣されることが可能であるように、元の導入によって成された変更をマッピングするために、レジストリおよび(INIファイルなどの)他のファイルに関する変更を含む。
【0022】
2つの基本モジュール、IBPM33およびGDTA34の個別の機能は、アプリケーションはエンコードされるか、またはクリックアンドプレイシステムで実行するために調整されるコンテンツ集合プロセスの流れが示された図4を参照すればわかる。図4においてわかるように、導入中に製品が行うレジストリの変更を識別するために、製品の導入41の後は、開始前にどのファイルがアプリケーションにストリーミングされるべきか(優先データ)を決定する製品解析42と製品の導入前後のレジストリフィールドおよびその値を比較するレジストリ追跡43の両方が続く。製品導入ステージ41は、それによって導入のためにファイルが準備されるプロセスであり、以下に説明するようにIBPMによって実行される。製品解析ステージ42は、データフローが実行のために分析されて最適化され、以下に説明するようにGDTAによって実行される。製品解析ステージ42に続いて、IBPMは、(サーバからクライアントにストリーミングされるデータ量を削減するために)製品ファイルのそれぞれを圧縮することによって、製品ファイルのサイズを著しく削減する製品の圧縮43と、元の製品CDのエミュレートされた画像がサーバに作成されるプロセスであるCD画像作成44と、を開始する。これは、そのデータのすべてがサーバに格納されるが、製品をクライアントコンピュータで実行するために必要である。
【0023】
したがって、図5は、利用者の観点から見たクリックアンドプレイシステムを示している。クリックアンドプレイクライアントの導入から始まる。利用者は、ウェブサイト(またはCD ROM)から小さな(たとえば1.25MB)自己解凍ファイルをダウンロードし、簡単な導入プロセスへと続く。クリックアンドプレイドライバは、指定されたWindows(登録商標)ライブラリにインストールされ、残りのファイル(たとえばゲームキャッシュ)は、利用者の優先順位に応じて位置決めされることができる。クライアントのインストールは、他のハードウェア/ソフトウェアコンポーネントと干渉することはない。一旦、これが終了すると、利用者はシステムを用いて、以下のように起動することができる。
【0024】
利用者は最初に、サーバ基盤のオンラインリスト501からゲームを選択する。利用者の意思決定を補助するために、利用者は、自分のシステム502に選択したゲームの互換性のほか、選択したゲームの推定ダウンロード時間503の表示を選択してもよい。一旦ゲームが選択される(504)と、最小であるが効率的な選択によるファイルが、利用者コンピュータにダウンロードされるように、サーバは不可欠なファイル505をバッファに格納する。このようにして、ゲームの高速起動が保証される。一旦、バッファリングが終了すると(506)、ゲームの実行を開始することができる(507)。再生中、利用者の購読508、クライアントコンピュータのディスクの空き容量509、ハッカの活動510、ビデオデータメッセージ511などのプレーヤの個人ファイルに応じて、さまざまな変数の監視および照会がなされる。監視または照会の結果に応じて、動作が実行される。購読が終了している場合(515)、ディスク空き容量が制限され過ぎている場合(516)、またはハッカの活動が検出される場合(517)には、利用者は、クリックアンドプレイストリーミングサーバから切断される(518)。再生後、最終的に利用者がゲームの終了を決定した(512)とき、その時に、ゲームの概要情報が表示される(513)。ビデオを再生する(511)必要がある場合には、ビデオ再生メッセージ520が提供され、ビデオ再生(521)またはゲームに戻る(522)のいずれかへと続く。
【0025】
導入バイパス機構(IBPM)
IBPMによる主なプロセスは、以下に詳細に説明するように、導入追跡(エンコーディング)および導入バイパス(実行)プロセスである。
【0026】
1.導入追跡
概要
導入追跡は、ゲームがクリックアンドプレイシステムに移植されるたびに行われるプロセスである。このプロセスは、部分手動および部分自動であり、その目的は、導入プロセス中に元のアプリケーション導入が行っている変更のすべてを識別し、さらにアプリケーション自体(DLL、ドライバなど)のほか、インストールされる他のコンポーネントを検出することである。
【0027】
手動追跡
手動追跡は、以下の行為を含む。
1.製品準備プロセスを行う人(エンコーダ)が、ゲームボックスおよび/または利用者手引きの中にゲーム開発者によって列挙されているような特定のゲームのための最小システム要件を突き止め、IBPMデータベースに入力する。ゲームが利用者のコンピュータ上で実行することができることを確実にするために、IBPMは、所有権のある自動ハードウェア/ソフトウェア診断機構を用いる。RAMサイズ、CPU速度、ビデオカードのタイプ、サウンドカードのタイプ、DirectXドライバのバージョンなどのコンピュータ特性を入手するために、この機構は、Windows(登録商標)と、音声ドライバおよびビデオドライバなどのデバイスドライバと、に照会を行う。
2.元の導入中にソフトウェアの導入を追跡する。これは、自動検出プロセスへのバックアップ手続きである。
【0028】
ゲームが利用者のコンピュータのクリックアンドプレイによって実行されるたびに、この手動追跡の結果は、IBPMデータベースにおいて更新され、用いられる。
【0029】
自動追跡
自動プロセスは、利用者がクリックアンドプレイゲームを開始するときに、利用者のシステムにおける変更を再生するために、システム、大部分はレジストリへの元のゲーム導入を行っている最中に生じる変化を追跡する。
【0030】
自動追跡は、Windows(登録商標)レジストリサービスに接続するために形成されるクリックアンドプレイが所有権を有するデバイスドライバに基づいている。このデバイスドライバは、キー/値の作成、キー/値の変更などのすべてのレジストリの変化を記録する。
【0031】
ドライバが最初に起動され、この次に、ゲーム導入アプリケーションが起動される。ドライバは、その時に生じるレジストリの変更をすべて記録する。当然のことながら、ゲーム導入中の変更を分離するために、その時には他のアプリケーションは実行されていない。
【0032】
図6を参照すればわかるように、ゲームまたはアプリケーションの導入前に、導入アナライザが起動される(61)。次に、元のゲーム導入が実行される(62)。この元のゲーム導入中、エンコーダ(エンコーディングプロセスを管理する人)は、追加アプリケーションを(手動で)記録する(63)。これを行うために、IBPMオペレータは、導入プロセスへと続き、ゲーム導入自体(ドライバおよびアプリケーション)に加える任意の導入に言及し、これらの導入が必要であるかまたは任意であるかに言及する。導入追跡はまた自動で行われ、このプロセスは自動追跡をバックアップする。自動追跡が導入の検出に失敗した場合、たとえば、導入がレジストリを更新しない場合には、手動追跡が特に重要である。ステップ63の記録に続いて、ゲーム導入が完了し(64)、その後で、導入アナライザが終了される(65)。次に、システムの変更および最小要件が、データベースのIBPMセクションに格納される(66)。この最終ステージは、2つの部分を含む。一つは、自動追跡の結果を検討し、実際にすべての導入が認識されたことを確認することである。そうでない場合には、認識されていない導入の詳細が自動的に追加される。第2の部分は、IBPMデータベースに最小構成要件を追加することである。
【0033】
本発明の導入バイパス機構(IBPM)を用いるクリックアンドプレイシステムは、従来の方法でゲームをインストールしない。その代わりに、クライアント装置に最初に最小量のデータのみをインストールし、残りは、ゲーム実行中にストリーミングされる。したがって、クリックアンドプレイによってゲームを利用する場合には、通常のゲームの導入は必要ではない。しかし、一般的なゲーム導入は、ゲームリソースをハードドライブにコピーする場合より多くの処理を行う。すなわち、ゲームを実行することができるかどうかを決定するために利用者のコンピュータを解析し、追加のドライバをインストールし、レジストリを更新し、追加のタスクを行う。導入バイパス機構は、このような追加のタスクを処理するソフトウェアコンポーネントである。
【0034】
上述のタスクは、手動プロセスによって、以下のように実現される。
1)(Arkosoft社の製品「System Snapshot」(www.arkosoft.com)のシェアウエアバージョンなどの)サードパーティツールを用いて、「未使用」(このプロセスを実行するために必要なもの以外のソフトウェアの入っていない新品の)テストコンピュータにタイトルをインストールする。このツールは、レジストリおよび(INIファイルなどの)他のファイルの変更をはじめとするゲーム導入プロセスがシステムに行う変更を捕捉する。このプロセスの最後に、エンコーダはSnapshotから変更/追加が行われたファイルのリストおよび追加/修正されたレジストリキーノリストを得る。
2)エンコーダ(エンコーディングプロセスを開始する人)は、ファイルを(手動で)解析し、記録されているが、ゲーム導入(たとえばオぺレーティングシステムが同時に行った変更)によって行われていない変更のすべてを消去する。結果は、ゲームを適性に実行するために追加/修正する必要があったレジストリキーおよびファイルの「新しい」リストである。
3)次に、このリストが、各タイトルに関するクリックアンドプレイによって用いられる導入「スクリプト」ファイルに追加される。導入バイパススクリプトファイルは、INIファイル(INItialization(初期設定)ファイル、すなわちプログラムまたはオぺレーティングシステムを起動するために必要な起動情報を含むファイル)であり、クライアント側の導入バイパス機構が、アプリケーションを実行する前に導入バイパスを行うために必要な情報をすべて含んでいる。これらの変数は、
・アプリケーションを実行可能にするための相対パス(元のアプリケーションがある場合には、コマンドライン変数を含む)
・レジストリの変更および追加(追加/変更されたキーおよびその値)
・元のアプリケーション導入によって行われたゲームのINIファイルにおける変更(導入中、元のアプリケーションが決定する変数)
・元のアプリケーション導入がWin.iniファイルおよびSystem.iniファイルに行った変更のリスト
・元のアプリケーション導入がアプリケーションCDからWindows(登録商標)フォルダにコピーしているファイルのリスト(DLLファイル、INIファイルなど)
4)今度は、不正確な解析によって生じる恐れがある不正確なレジストリの変更を曝露するために、エンコーダは別の「未使用」コンピュータ上でクリックアンドプレイ自動導入プロセスを行う。2つのコンピュータが同一であれば、プロセスは終了する。同一でない場合には、エンコーダは差の生じた特定のフィールドを消去することを追加することによって、変更リストを修正する。
【0035】
2.導入追跡
ゲーム実行プロセス中、IBPMモジュールは、レジストリおよび他のシステムファイルを変更する導入バイパススクリプトファイルを実行する。それによって、IBPMは、クライアントコンピュータの設定を解析し、クライアントコンピュータにドライバ、ゲームファイルなどの不可欠なファイルをインストールし、レジストリを更新する。さらに、クライアントコンピュータレジストリおよびメモリドライブが事前の状態に戻るようにするために、IBPMは、ゲームの終了後に、ゲームファイルを抽出することができる。
【0036】
本発明による導入バイパス動作を含むゲーム実行プロセスの流れは、図7を参照すればわかる。図においてわかるように、利用者は、起動するアプリケーションを最初に選択する(70)。この次に、システムがアプリケーションを実行することができるかをマキシマイザ71が調査する。この調査の結果に基づき、クリックアンドプレイサーバは、利用者に許可を出し、新たなセッション72を開く。クライアントデバイスは、クライアントに予めダウンロードされたファイルのために、バッファリング段階を起動する(73)。ステップ70〜73の進行中に、IBPMは、レジストリおよび他の関連ファイルを含むシステムを更新する(74)。一旦、この前ステップがしかるべく機能すると、アプリケーションが起動し(75)、クライアントにおいて検出されないファイルのストリーミングがサーバから継続される。ストリーミング中、アプリケーションが終了するまで、サーバに送信されるメッセージをそのままにしておく(76)。これらのメッセージは、データを含まない単純な短いメッセージである。メッセージの目的は、クライアントをサーバとだけ連動させることである。(たとえば、ネットワーク接続が切断されたなどの)他の理由から、このようなメッセージがクライアントによって送信されず、サーバによって定期的に確認される場合には、クライアントのアプリケーションは終了することになる。これは、利用者がクリックアンドプレイオフラインを実行しないようにし、利用手数料がかからないようにするためのセキュリティ機構である。アプリケーションの終了(77)時には、クライアントデバイスがゲームによって悪影響を及ぼされないようにするために、IBPMは、レジストリの変更を行わない(78)。
【0037】
IBPMは、別の方法では元のゲーム導入によって行われるクリックアンドプレイゲームの導入タスクのすべてを行う役割を担っている。クリックアンドプレイはゲーム実行中にゲームデータをストリーミングすることから、これは、ゲームデータ自体の導入を含んでいない。
【0038】
利用者のコンピュータを「バイパス導入」前と同一の状態にするために、IBPMはまた、アプリケーション終了後、クライアントからゲームファイルを検索する役割を担っている。システムの背後にある概念は、ゲームを実行中に限り、利用者のコンピュータはゲームによって影響されることであることから、これは必要である。一旦、ゲームが終了されると、コンピュータは、自動的にもとの状態に復元されなければならない。このプロセスも、IBPMによって行われる。
【0039】
ゲームがクリックアンドプレイによって実行されるたびに、上記のプロセスが行われる。さらに、IBPMの「導入バイパス」が適性に作動するようにするために、準備プロセスも必要とされる。このプロセスは、元のアプリケーション導入プロセスを監視し、どの追加導入を行う必要があるか、どのファイル(主にレジストリの変更)を更新する必要があるかを決定する。これは、クリックアンドプレイ環境にゲームのプロセスを移植する時に起動されるIBPMの一部である。準備プロセスは、導入プロセスを追跡する自動システムトラッカおよび手動更新に基づいている。システムトラッカは、レジストリの変更およびファイルの変更を追跡するクリックアンドプレイユーティリティである。手動プロセスは、クリックアンドプレイのために製品に準備を行う人(エンコーダ)によって実行され、本質的には、ゲームを実行するためのシステム要件の更新を含む。
【0040】
追跡される元のゲーム導入による変更は、ゲームの持続時間に、利用者のコンピュータにおける変更の復元または再現のために用いられる。ゲームの実行開始前に行われた変更は、ゲームが終了しても変更されない。これは、元の導入のバイパスおよびミラー導入プロセスの作成を可能にし、自動および高速化の両方を実現する。通常の導入中に利用者が行う選択(宛先フォルダの選択、グラフィックカードの設定など)はすべて、製品準備ステージにおいて既に行われているため、利用者が選択を行う必要がないことから、プロセスは自動である。通常の導入とは対照的に、ファイルは製品CDからハードドライブにコピーされないという事実に加えて、このことは、導入プロセスをきわめて高速にする(通常は数秒)。
【0041】
上述の方法は、ゲームコード、導入コードまたはゲームリソースを修正しなくても、元のバージョンのゲームを提供することができる。移植プロセスにおいてゲーム開発者が関与しなくて済み、プロセス自体をより簡単にする。
【0042】
このようなバイパスプロセスの正確な実行に作用するために、本発明は、3つの要素を前提としている。
1.元のアプリケーション導入が行っているすべての動作の正確かつ完全な検出2.利用者の関与を必要としないように、IBPMによるこれらの動作の自動実行
3.ゲームが終了した場合に、その元の状態へのシステムの復元
【0043】
これらの要素に関して、本発明のIBPMは、すべてのタイプのボックス型ゲーム用にゲームフローを完了することができる。
【0044】
したがって、IBPMは、アプリケーションの遠隔ストリーミングを行うと同時に、製品の元の機能性を維持することができる。しかし、IBPMは、十分に最適化し、安定させるための追加モジュールに左右される。したがって、IBPMは、高い安全性および遠隔サーバからの最適なゲームフローを可能にするために、ゲームデータトラフィックアナライザ(GDTA)モジュールの入力および支援を必要とする。(インストールおよび実行など)導入バイパス準備プロセスのためにゲームで行われる動作もGDTAを必要とするため、ゲーム準備プロセスにおいては、GDTAはIBPMの一部として作動される。
【0045】
ゲームデータトラフィックアナライザ(GDTA)
GDTA34は、クリックアンドプレイシステムに標準的なボックス型ゲームまたはアプリケーションを移植するために用いられるバックオフィスツール(ユーティリティスーツ)30の集合の一部である。この移植プロセスは主に、アクセスプロファイルリストの作成およびゲームデータの圧縮を含む。ゲームごとに、ネットワーク定義が変更されるたびに(たとえば、ゲームがケーブルネットワークで既に実行されており、サテライトネットワークに対応させる必要がある場合)、このツールを実行する必要がある。GDTA34は、ローカルメディアで検出されたリソースへのゲームのアクセスを自動的に追跡することによって、ゲームフロートラフィックをエンコードする(アプリケーションを解析することによって、クリックアンドプレイシステムのためにアプリケーションに準備を施すプロセスを実行する)。ゲームデータフローが最適化され、安全性の高いデータ伝送を可能にするために、このモジュールは、データストリーミングおよび格納プロセスを効率的に管理する。GDTA34モジュールは、どのファイルがバッファリングステージの一部である必要があるか、およびゲーム再生中にどのファイルがストリーミングされるかを決定することによって、データストリーミングを最適化する。GDTA34モジュールは、クリックアンドプレイシステムが機能するために必要なコンポーネントではないが、それがなければ、ゲームはクリックアンドプレイシステムにおいて効率的に実行されないと推測されるような重要な最適化を行う。
【0046】
さらに詳細に言えば、GDTA34モジュールは、ゲーム準備プロセス中、ハードドライブおよびCDドライブからゲーム実行中のゲームアプリケーションへのデータブロックのトラフィックを検出し、どのデータブロックをバッファリングすべきかと、ゲーム実行中にどれをストリーミングすべきかの「優先順位リスト」を準備する。ゲーム実行プロセス中、GDTA34モジュールは、機能しない。
【0047】
プロセスの観点から、このような2つのコンポーネントIBPM33およびGDTA34は、クリックアンドプレイシステムのためにゲーム準備(エンコーディング)プロセスにおけるステップである。したがって、IBPM33およびGDTA34はいずれも、エンコーディングプロセスの一部であり、バックオフィスユーティリティのエンコーディングを含む。さらに、IBPM33モジュールは、圧縮およびストリーミングステージの役割を担っている。
【0048】
図3においてわかるように、アプリケーションの実行開始を行うことができる前に、どのデータをストリーミングする必要があるかを決定するために、ゲームが必要とするデータのフローを追跡するために、GDTA34は、デバイスドライバ36などのクリックアンドプレイシステムコンポーネントに直接接続している。
【0049】
クリックアンドプレイゲームが移植されると、サーバから利用者にゲームデータのフローを最適化するために、
・デバイスドライバを用いるゲームリソースへのアクセスの追跡
・各ゲームリソースファイルのためのデータアクセスプロファイルの作成
によって、GDTAコンポーネント34が用いられる。
【0050】
2つの相反する要件のために、このような最適化が必要である。一つは、ゲームの遅延のない実行を提供するために、ゲーム前にゲームデータファイルの大部分を実行する必要があるようなインストールを行うことである。しかし、このようなダウンロードの結果、利用がゲームを選択した時から、ゲームが実際に実行開始されるまでの応答時間が増大することになる。ブロードバンドネットワークにおいても、ゲーム全体をインストールする場合には、このプロセスは長いため、ゲームの実行が可能になるまで、利用者は相当待つ必要がある。他方、すべてのゲームファイルがゲーム実行中にストリーミングされる場合には、ゲームは即時に実行されるが、必要なデータブロックが時間通りに到着しない場合には、時折遅延を生じたり、場合によっては強制終了を生じたりする。
【0051】
どのファイルが初期導入の一部である必要があるかおよびどれをストリーミングすべきかを決定するために、GDTAが形成された。また、GDTAは、利用者のコンピュータ(キャッシュ)にどのファイルが残り、ゲームによって必要とされるたびに、どれをストリーミングする必要があるかも決定する。
【0052】
GDTAは、ローカルメディアで検出されたリソースへのゲームのアクセスを自動的に追跡することによって、ネットワークトラフィックを最適化するという概念を実行する。ゲームアプリケーションのそのリソースへのアクセスパターンが事前に知られている場合には、ネットワークのアクセスを最適化することができ、ゲームがどのデータを必要とするかを事前に決定することもできる。一般に、この情報は、実行開始前にアプリケーションが必要とするデータブロックを定義するために用いられる。適切なアルゴリズムを用いて、この情報はまた、ゲームが必要とする前にデータを進行させるなど予測のために用いられる。
【0053】
アクセスパターンを識別するために、ゲームを解析する必要がある。この解析は、クリックアンドプレイシステムのためにゲームに準備を施す必要があるコンテンツ集合ステージの一部である。基本的に、解析プロセスは、アプリケーションの実行中に、オぺレーティングシステムおよび製品の実行ファイルによって作成されたゲーム導入ディレクトリ下のハードドライブへのアクセスをすべて追跡することを指す。この動作の出力は、指定されたオフセットおよびブロックのサイズを有するアクセスされたファイルのリストである。優先順位データおよびファイルアクセス順序に関する情報を収集するために、このプロセスが
必要とされる。GDTA34は、包括的であるため、任意のタイプのゲームの処理を行うことができる。しかし、ゲームを解析するために、解析しながら、ゲームを再生する人が依然として必要である。
【0054】
GDTAモジュールによれば、解析プロセスは以下の通りである。利用者は、入力および出力ディレクトリ名を設定する必要がある。入力ディレクトリは製品がインストールされるディレクトリであり、出力ディレクトリはANAファイルが格納されるディレクトリである。ANAファイルは、実行中に製品がどのファイルを読み出しているかに関するデータをすべて格納する。ディレクトリが設定されると、利用者は、(「解析」ボタンをクリックすることによって)「解析」機能の命令を出すことができ、その次に、圧縮ツールが、指定された入力ディレクトリへのすべてのアクセスを追跡するQPFSH仮想デバイスドライバを初期化する。QPFSHは、ファイルシステムへのすべてのアクセスに関してオぺレーティングシステムから情報を得て、一定のディレクトリのみへのアクセスをフィルタリングするファイルシステムフックドライバである。QPFSHは、Windows(登録商標)リング−0レベルドライバであり、それ自体として、ハードドライブからデータを検索するためのすべての要求を受信する。各要求は、特定のフォルダに位置するファイルの特定の一部を指す。QPFSHは低レベルドライバであるため、どのアプリケーションがデータを要求したのかはわからない(他方では、製品アプリケーションのみによって要求されたものはわかっていなければならない)が、どのフォルダからデータが要求されたかについてはわかっている。製品がインストールされるフォルダへなされた各要求は、製品アプリケーションから出されていると仮定する。これは、このディレクトリがドライバに指定されているためである。
【0055】
エンコーダは、メインメニューを待ちながら、アプリケーションを実行し、ANAファイルにFAPセパレータを書き込むために、特殊なホットキーを押す。FAPセパレータは、ゲームがメインメニューに達するために必要であったすべてのファイルを読み出し終えた点に印を付けるANAファイル内部の記号にすぎない。この後で、優先順位データがメインメニューに達するまでゲームの要求するデータとして定義されている場合には、エンコーダは製品を終了することができる。あるいは、エンコーダは、(たとえばゲームセッションの開始、種類など)それに着手するためにゲームが読み出すデータがすべて、優先順位データであるものとして定義された時点までデータを利用しつづけることができ、その後で製品を終了する。
【0056】
本発明に先だって、ゲームのアクセスパターンを自動的に解析するように設計された他のアプリケーションは存在していない。ゲームがそのようなパターンを有するという仮定(および実際のテストにおける確認)が新境地を開く。第二に、(上記で説明したように、本発明の目的のために用いることが)パターンを検出するために、このような解析のために妥当な変数を選択しなければならない。正しいチューニングに達するまで、多数の試行およびエラーが繰り返される。
【0057】
GDTAによる解析プロセス
図8は、GDTAモジュールによる解析プロセスの概要流れ図を示している。図8においてわかるように、エンコーダは、最初にゲームフォルダをアナライザに指定し(81)、iniファイルにおける変数フィールドを変更することによって行われる。次いで、アナライザが起動され(82)、ゲームの起動(83)へと続く。続いて、エンコーダは、正常であるがゲームの多数の順序を必然的に伴うゲームを再生する(84)。次に、ゲームレベル/アリーナ/ミッションがすべてコミットされた後、ゲームはエンコーダによって終了される(85)。続いて、アナライザが停止され(86)、結果が処理される(87)。
【0058】
デバイスドライバからの情報の処理
ゲームが終了すると、アナライザは、ゲームによってなされた要求のすべてのリストを取得する。そのリストに基づいて、アナライザは、2つの追加リストを作成する。
1)ゲームの実行前に入手可能でなければならないリソースを含む優先順位リスト
2)ファイルアクセスパターン
【0059】
優先順位リストは、以下の方法で構築される;
各ファイルは、64Kbセクション(データブロック)に分割される。優先順位の値は、ファイル全体ではなく、個別に各データブロックに設定される。同一ファイルのそのように異なるデータブロックは異なる優先順位の値を得ることができ、識別がさらに正確である。
【0060】
優先順位の閾値が、事前に設定される。用いることができる別の予め定義された変数は、ゲームの必要な初期ローティング時間である。しかし、このような2つの変数は、任意である。デフォルトによって、優先順位リストは、すべてのデータブロックを含む。
【0061】
図9は、リストを作成するための流れを示している。図9によれば、アプリケーションは、データブロック(ファイルの一部)を提供するために、ドライバに要求を行う。ドライバがこのデータブロックを検索してから、GDTAがそのブロック番号を算出し、格納する(91)。GDTAはまた、これまでに検索されたブロックの合計サイズを更新する(92)。各データブロックを読み出した後、GDTAは、タイムアウト機構(新たなブロックに関する要求を受信することなく一定時間が過ぎた場合には、アプリケーションはこれ以上データを読み出さないと仮定する)を用いてアプリケーションが依然としてデータブロックを必要とするかどうかを決定する(93)。もしそうであるならば、GDTAは解析プロセスを停止する(95)。そうでないならば、すべての優先順位ブロックが既に検索されたかどうかを調査すること(優先順位ブロックの合計サイズに関してエンコーダによって事前に定義された最大サイズ制限に達するか、またはアプリケーションがメインメニューに達した場合または、アプリケーションが必要とするデータのすべてが優先順位ブロックとみなされない範囲として定義された時点である場合には、エンコーダからの手動信号、すなわちキーを押すかのいずれか)によって続く(94)。これらの状態の1つが当てはまる場合には、解析プロセスは終了し(95)、そうでない場合にはGDTAは、別のデータブロックを要求するためにアプリケーションを待機させる(91)。
【0062】
たとえば、オフセット16384、長さ1024(データブロックサイズ4096)において、ファイルUsaf.exeのために読み出し要求が出されたと仮定する。この場合には、ブロック番号は5である(16384(レンジ0〜16383)は4ブロック(16384/4096=4)であることから、次のバイト(#16384)は実際にはブロック番号5の最初であるため)と推測され、優先順位ブロックであると推測される。この例では、EXEファイルは常にアプリケーション実行可能ファイル自体であり、全体の実行可能ファイルをストリーミング前にアプリケーションを実行開始することができないため、このブロックは優先順位を有する。アプリケーションが開始されてから、要求された各ブロックが、要求リストの順である番号が与えられる。上記の番号(ブロック5)は、一例として与えられた。
【0063】
次に、ファイルアクセスパターンが、以下のように生成される;
すべてのファイルに関するアクセスパターンが記録される。これは、(一次キーとしての)時間および(二次キーとしての)ファイルによって、アナライザリストを整列することによって行われる。脚気は、ファイル後とのリストであり、実際には、ファイルのアクセスパターンである。
【0064】
図10は、標準ブロックサイズが4096バイトであるファイルusaf.exeに関する例を示している。記録された動作は、図10においてわかるように、usaf.exeにおいて生成された優先順位リストは1、2、3、4、5、1、6である。
【0065】
アナライザによって収集された情報は、クリックアンドプレイシステムによって最小ネットワークトラフィックでゲームリソースを効率的にダウンロードするために用いられる。
【0066】
優先順位リストは、ゲーム開始前にダウンロードされ、円滑かつ遅延のない再生を確実に行うために、予測機構によって用いられる。リストはまた、ゲームのアクセスパターンを追跡し、それを優先順位リストと比較することによって、ハッキングを防止するために、サーバによって用いられる。
【0067】
別の実施形態
複数の他の実施形態が、本発明者らによって検討されている。たとえば、クリックアンドプレイは、必ずしもゲームとは限らない任意の種類のアプリケーションをストリーミングするように設計されている。これは、企業、ビジネス、教育のためのタイトルなどを含む。クリックアンドプレイはゲーム指向である理由は、ゲームこそ、顧客の最も必要とするコンテンツであるためと、技術的にゲームが最も要求の多いアプリケーションであることから、よりよい技術およびGDTAなどの独特のソリューションを必要とするためである。
【0068】
本発明の実施形態に関する前述の詳細は、例示のために示された。それが網羅していると捉えるべきではなく、開示された正確な形態に本発明を限定すると捉えるべきでもない。上記の教示を踏まえて、さまざまな修正および変形が可能であることを十分に理解すべきである。本発明の範囲は、この詳細な説明によって限定されるのではなく、本願明細書に添付の特許請求の範囲によって限定される。
【図面の簡単な説明】
【図1】本発明によるサーバの構造を示している。
【図2】本発明によるクライアントの構造を示している。
【図3】本発明によるIBPMモジュールおよびGDTAモジュールを含むシステムソフトウェアコンポーネントを示している。
【図4】IBPMモジュールおよびGDTAモジュールによる追跡プロセスが行われるコンテンツ集合プロセスの流れを示している。
【図5】クリックアンドプレイシステムの利用の流れを示している。
【図6】IBPMによる解析プロセスを示している。
【図7】導入バイパス作用を含むゲーム実行プロセスの流れを示している。
【図8】GDTAによる解析プロセスの概要流れ図を示している。
【図9】本発明のGDTAによるリストを作成するための流れを示している。
【図10】ファイルアクセスパターンの生成の例を示している。
【本発明の分野および背景】
発明の背景
1.発明の分野
本発明は、任意のタイプのブロードバンドネットワークにわたって、遠隔サーバから利用者のコンピュータにゲームおよび他のメディアリッチなアプリケーションのストリーミングを最適化するためのシステムに関する。
【0002】
2.従来技術の詳細
アプリケーションストリーミングサービスは、IPネットワークにおけるサーバクライアント型アプリケーションの発展と共にますます人気が高まってきている。低い帯域幅および高いトラフィックという歴史的な問題は、マルチメディアアプリケーションに関するアプリケーションストリーミングサービスの大量導入を妨げてきた。しかし、ブロードバンドネットワークは、市場に浸透し続け、さらに改善したデータ転送の可能性を実現することができると推測される。
【0003】
家庭におけるブロードバンド利用に関して最も人気のある用途の1つは、インターネット上のマルチメディアリソースにアクセスすることである。現在では、たとえば、音楽ファイルはブロードバンドネットワークを通じて容易に伝送されることができる。しかし、一般的なブロードバンド環境であっても、ビデオおよびインタラクティブゲームファイルを利用者に効率よく伝送することはできない。
【0004】
ブロードバンドネットワークの近い将来の選択に関して、そのようなネットワーク用のマルチメディアストリーミングアプリケーションを提供するためのさまざまな試みがなされてきている。この分野における技術またはサービスを提供する複数の企業として現在知られている企業は、以下の通りである。
Media Station(www.mediastation.com)は、ブロードバンドネットワークにおけるアプリケーションストリーミングサービスを提供している。このサービスは、SelectPlayと呼ばれ、全米の利用者が利用可能である。サービスはウェブサイトによって提供され、さまざまなゲームおよび他のアプリケーションを提供する。しかし、SelectPlayは、導入バイパス機構を具備していないため、利用者は、利用するためにアプリケーションをインストールする必要がある。この導入のために、ゲームを即時/高速起動することができない。SelectPlay利用者が、ウェブサイトを通じたこのサービスによって自分に提供されるアプリケーションを利用したい場合(最初にこのアプリケーションを選択する際)には、ボックスバージョンのゲーム導入と同一の導入スクリーンを受信する。利用者はローカルCDドライブからアプリケーションをインストールしているかのごとく、導入プロセス全体を経験する必要がある。導入が終了した場合に限り、利用者はSelectPlayサーバからアプリケーションを実行し、ストリーミングを実行することができる。
Into Networks(http://www.intonetworks.com/)は、ブロードバンド利用者のためのゲームストリーミングサービスを提供し、PlayNowと呼ばれている。IntoMediaシステムは、使用許諾のために、サービスオペレータにも提供されている。IntoMediaシステムは、アプリケーションが実行される前にどのアプリケーションデータがストリーミングされるか、特定のアプリケーションのデータフローパターンに基づいてアプリケーションの実行中にどのアプリケーションデータがストリーミングされているかを決定する機構を有し、ゲームなどの一部のアプリケーションの非能率的なストリーミングを生じるという指摘はない。
Stream Theory(www.streamtheory.com)は、StreamItと呼ばれ、ブロードバンドネットワークによってマルチメディアコンテンツのストリーミングに利用されている技術を用いている。しかし、このシステムは、
・DirectX(Windows(登録商標) 95/98、NT、2000用のMicrosoftが提供しているマルチメディアプログラミングインターフェイスのセットであり、改良した性能のためにハードウェアへの低レベルのアクセスを提供する)の有無を検出しないため、ダウンロード用にDirectXを提供しない。
・ドライバ導入後にコンピュータの再起動を必要とし、利用者がシステムを起動することができる前に一旦終了しなければならない。
・CD−ROMのエミュレーションを行うことができない。このことは、システムが音声トラックを再生することができないため、ボックス型アプリケーションを用いる場合と同一の完全なアプリケーション利用体験を提供することができないことを意味する。本発明によれば、音声トラックはアプリケーションデータの残りとは異なる形式で格納されるため、標準的なドライバで読み出すことができない。特殊なCDエミュレーションドライバの利用によってのみ、これらのファイルを読み出すことができる(結果としてCDトラックを再生することができる)。
Real Networks(www.real.com)は、PC利用者がウェブを用いたマルチメディアサービスを送受することができるように設計されたソフトウェア製品およびサービスを開発し、市場に出している。このシステム、すなわちRealArcadeは、ゲームが特にこのサービスのために構築されなければならないという意味では、他のシステムとは異なっている。サービスは、RealNetworksネットワークを通じてのみ提供される。また、現在入手可能である情報に基づけば、RealArcadeは、実行中にゲームをストリーミングするのではなく、より伝統的な方法でダウンロードする。RealArcadeシステムは、主にアプリケーション内からシステムとのインタフェースのために、ストリーミングされるアプリケーションにおいて著しい変更が必要である。したがって、アプリケーションをRealArcadeによってストリーミングさせるためには、修正される既存のアプリケーションが実用的でない程度まで、大量に修正しなければならない。したがって、Real Networksは、開発者に特殊なSDKを用いて新たなアプリケーションを開発することを薦め、既存のタイトルの市場を対象にしていない。
【0005】
したがって、PC上で再生されるゲームを開始するために、高速または即時に近い起動時間を可能にするように、ゲームがサーバコンピュータからストリーミングされる場合およびゲームが高い安定性で再生される場合には、PC上で既存のゲームの実行を効率的に可能にするための手段を可能にすることができるシステムが必要であることは広く認識されており、きわめて利点が多いと推測される。さらに、クライアントコンピュータに重い負荷をかけることなく、または悪影響を与えることなく、これを実行する必要がある。また、不可欠なファイルをクライアントコンピュータで実行し、残りのファイルをサーバで実行するようなサーバからPCへのゲームフローをストリーミングする知的な方法が必要であることも広く認識されている。
【0006】
【発明の開示】
本発明によれば、ネットワークを通じてストリーム型アプリケーションオンデマンドの高速起動および実行を可能にするためのシステム(以下、「クリックアンドプレイ(Click’n Play)」と呼ぶ)および方法が提供される。本発明のサービスにより、ブロードバンドインターネット接続を備えたPC利用者は、ゲームを購入するために、外出することも必要なく、PCゲームを高速起動し再生することができる。所有権のある導入バイパス機構(IBPM)およびゲームデータトラフィックアナライザ(GDTA)モジュールに基づいて、クリックアンドプレイシステムは、ほぼ起動直後に、任意のタイプのブロードバンドネットワークを通じて遠隔サーバから利用者のコンピュータにゲームを効率的にストリーミングする。
【0007】
本発明は、さまざまな従来技術のダウンロード段階を避け、利用者が「第2ステージ」に直行することができる、すなわち最初にインストールする必要がなく、アプリケーションを即時に実行することができるようにする。さらに、本発明のクリックアンドプレイドライバの導入によって、従来技術に比べて同一の機能性または追加の機能性を提供するように設計されているが、導入後、コンピュータの再起動を必要としない。さらに、本発明は、クリックアンドプレイシステムを利用するために、既存のアプリケーションを修正しなくても、これらのアプリケーションを利用することができる。
【0008】
本発明によれば、高速起動時間および高い安定性の両方を実現し、かつゲームによって利用者/クライアントコンピュータに重い負荷がかかったり、そうでなくても悪影響を及ぼされたりしないような利用者のコンピュータへのゲームのストリーミングを可能にするための方法およびシステムが提供される。本発明によれば、利用者またはクライアントコンピュータは、PC、インターネットテレビ、ノートブックコンピュータ、パーソナルハンドヘルドアシスタント、高度自動機能電話、ウェアラブルコンピュータ、モバイルコンピュータなどの任意のマルチメディア対応計算機を含む。本発明は、クライアントコンピュータの設定を解析するためのソフトウェアコンポーネントである導入バイパス機構(Installation Bypass Mechanism:IBPM)を設け、その結果、ドライバ、ゲームファイルなどのクライアントコンピュータに重要なファイルをインストールし、レジストリを更新することによって、インタラクティブブロードバンドコンテンツの高速起動および安全な実行を可能にするための方法およびシステムを可能にする。さらに、IBPMは、クライアントコンピュータレジストリおよびメモリが事前の状態に戻るようにするために、ゲーム終了後、ゲームファイルの抽出を行うことができる。
【0009】
本発明の追加モジュールは、ゲームデータトラフィックアナライザ(Game Data Traffic Analyzer)(以下「GDTA」と呼ぶ)であり、ローカルメディアで検出されたリソースへのゲームアクセスを自動的に追跡することによって、ゲームフロートラフィックを分析するバックオフィスツールである。ゲームフローデータが最適化され、安全性の高いデータ伝送が可能であるようにするために、このモジュールは、データのストリーミングおよび格納プロセスを効率的に管理する。GDTAモジュールは、どのファイルが最初のストリーミングの部分でなければならないか、ゲーム再生中にどのファイルがストリーミングされるかを決定する。また、どのファイルが、利用者のコンピュータ(キャッシュ)に残り、どのファイルが必要である場合にストリーミングされるためにサーバに残っているかを決定する。
【0010】
利用者の観点から、クリックアンドプレイの利用は、以下のように行われる。クリックアンドプレイクライアントの導入から始まる。利用者は、受け部サイトから小さな自己解凍ファイルをダウンロードし、単純な導入プロセスに従う。クリックアンドプレイドライバは、指定されたWindows(登録商標)ライブラリにインストールされ、残りのファイル(たとえばゲームキャッシュ)は、利用者の優先順位に応じて位置決めされることができる。クライアントのインストールは、他のハードウェア/ソフトウェアコンポーネントと干渉することはない。一旦、これが終了すると、利用者はシステムを用いて起動することができる。すなわち利用者は、ウェブ基盤のリストからゲームを選択し、ゲームは、ゲーム開始直後に、サーバからストリーミングを開始する。一旦、不可欠なゲームファイルが利用者のPCのバッファに入ってしまうと、ゲームは自動的に始まる。ゲームを開始するためには、平均して約30MBのゲームファイルのごく一部のみが必要である。残りのファイルは、クリックアンドプレイサーバに常駐し、ゲームデータのこの部分用の「仮想ドライブ」として機能する。
【0011】
本発明は、例示のみとして、添付の図面を参照して本願明細書では説明される。
【0012】
【好適な実施形態の詳細】
本発明は、ネットワークを通じてストリーム型アプリケーションオンデマンドの高速起動および実行を可能にするためのシステムおよび方法に関する。
【0013】
以下の詳細は、特定のアプリケーションおよびその要件に関して提供されるため、当業者が本発明を利用することができることを示している。好ましい実施形態のさまざまな修正は、当業者には明白であり、本願明細書に定義された一般的な原理は他の実施形態に適用することも可能である。したがって、本発明は、図示および説明がなされた特定の実施形態に限定されるわけではなく、本願明細書に開示された原理および新規の特徴に対応した最も広範囲な範囲と適合していると考えるべきである。
【0014】
具体的に言えば、本発明は、(任意のタイプのブロードバンドネットワークを通じて)遠隔サーバから利用者のコンピュータにメディアリッチなアプリケーション(ゲーム、教育用ソフトウェアなど)を含むアプリケーションのストリーミングを可能にするために用いられることができる。本発明によれば、高速起動時間および高い安定性の両方を実現し、かつゲームによって利用者/クライアントコンピュータに重い負荷がかかったり、そうでなくても悪影響を及ぼされたりしないような利用者のコンピュータへのゲームのストリーミングを可能にするための方法およびシステムが提供される。
【0015】
本発明によるシステムおよび方法の原理および動作は、図および添付の詳細を参照してよりよく理解されると思われる。これらの図面は例示のためにすぎず、何ら限定するわけではないことを理解されたい。
【0016】
図1は、クリックアンドプレイシステムのクリックアンドプレイストリーミングサーバのコンポーネントを示している。
・データベース10−利用者情報、システム情報、IBPMデータ、利用統計を含む。
・DBAL11−(データベース抽象化層)データベースに特化したデータベースのインプリメンテーションおよび構造に左右されることなく、アプリケーションがデータベース10にアクセスすることができるアプリケーションプログラムインターフェイス(API)。このインターフェイスは、本発明者らによって設計され、本発明のシステムに特化しているが、一旦システム機能性および要件が定義されると、インターフェイス設計は複雑ではないため、画期的というわけではない。
・仮想ファイルシステム12−ストリーミングされるアプリケーションが必要なデータを伝送するために、クライアント側のクリックアンドプレイドライバと通信を行うドライバ。このドライバは、所有権のあるファイルシステムと連動しているため、本発明者らによって設計されるが、設計は比較的単純である。
・サーバアプリケーション13−利用者によって要求されるすべてのアプリケーションのストリーミングの管理を担うアプリケーション。
・ウェブサーバ14−クリックアンドプレイの前部、すなわち利用者がログインし、アプリケーションの選択および実行を行う場所であるサイトを管理する。
【0017】
図2は、クリックアンドプレイクライアントシステムのコンポーネントを示している。
・アプリケーションレベル20−利用者のコンピュータを解析するマキシマイザ21(マキシマイザは、追加された機能を有効にする独特のコンポーネントである。しかし、マキシマイザのインプリメンテーションは、サーバ側もクライアント側も、ボックス型ゲームなどスタンドアロン型オフラインアプリケーションにおいて既に実行された既存の知識を用いて実現される。)のクライアント側と、一旦、利用者がストリーミングされるアプリケーションを選択すると、クリックアンドプレイドライバの管理を担うウェブインターフェイスActiveXコンポーネント22と、利用者によってストリーミングされるように選択されたアプリケーションの実行可能ファイルであるアプリケーション23と、を含む。本発明者らは、作成することがある程度明白であるソフトウェアコンポーネントであるこのインターフェイスActiveXコンポーネントを設計し、このコンポーネントはクライアントコンピュータでドライバを管理するためのツールとして用いられる。
・ドライバレベル24−(不正使用またはハッキングからシステムを守る)セキュリティコンポーネント25と、(サーバからストリーミングされたデータを解凍する)圧縮エンジン26と、(データをアプリケーションに送信する)ファイルシステムドライバ27と、を含む。クライアント側のこのドライバは、独特の機能を提供し、Windows(登録商標)オぺレーティングシステム環境の中に密に統合されている。
・システムリソースレベル−ローカルハードディスク28からのデータを格納および検索のため、およびWindows(登録商標)ネットワーク層29を介したインターネットからのデータの送信および検索のためのWindows(登録商標)サービスを含む。
【0018】
図3においてわかるように、本発明は3つのレベルのソフトウェアコンポーネント、すなわちバックオフィスユーティリティスーツ30と、クリックアンドプレイシステムコンポーネント31と、外部コンポーネント32と、から構成される。図に示されているように、ユーティリティスーツ30には2つの重要なモジュール、すなわちアプリケーションの準備および実行を可能にするソフトウェアコンポーネントである導入バイパス機構(以下、「IBPM」と呼ぶ)33と、最適ストリーミングのために、アプリケーションをエンコードするバックオフィスツールであるゲームデータトラフィックアナライザ(以下、「GDTA」と呼ぶ)34と、がある。バックオフィスユーティリティ30は、すべてのファイルシステム要求を受信するために、Windows(登録商標)ファイルシステムに接続するデバイスドライバ36を用いる。デバイスドライバ36は、システムの中心であり、ファイルへのゲームのアクセスを追跡するためにアナライザによって用いられる。ドライバ36は、ファイルシステムフックである。フックは、Windows(登録商標)アプリケーションからの要求に基づくすべてのファイルシステムを受信する。要求のタイプは、開く(Open)、読み出す(Read)、書き込む(Write)である。特定のゲームに関してゲームリソースのアクセスパターンを解析するために、ゲームをインストールしたフォルダにアナライザを指定する(たとえば、C:¥Program Files¥Jane’s Combat Simulations¥USAF)。デバイスドライバ36は、すべてのWindows(登録商標)ファイルシステム要求をフィルタリングし、作成された要求のみを指定されたフォルダに記録する。(移植目的の場合には)ゲームが実行されると、アナライザがゲームによって作成された要求をすべて記録する。
【0019】
ドライバ36は、読み出し要求および書き込み要求のみを記録する。以下のデータは、すべての要求に関して記録される:
1)要求時間
2)要求のタイプ(読み出し/書き込み)
3)ファイル名
4)開始オフセット
5)長さ
【0020】
情報は、この情報の記録および処理を行うためにのみ用いられるMS Accessデータベースなどのデータベースに格納される。これはバックオフィスユーティリティスーツ30の一部であり、ゲームが終わると、GDTA34によって処理される。
【0021】
したがって、本発明の方法によれば、バックオフィスツール(ユーティリティスーツ30)は、ストリーミングのためのアプリケーションを準備する後部処理機能を実行する。この準備は、IBPM33が、ゲーム導入プロセスがシステムに行う変更を捕捉するためのスナップショットユーティリティ37などの外部コンポーネントとリンクし、統合することを必要とする。これらの変更は、導入バイパスプロセスによって模倣されることが可能であるように、元の導入によって成された変更をマッピングするために、レジストリおよび(INIファイルなどの)他のファイルに関する変更を含む。
【0022】
2つの基本モジュール、IBPM33およびGDTA34の個別の機能は、アプリケーションはエンコードされるか、またはクリックアンドプレイシステムで実行するために調整されるコンテンツ集合プロセスの流れが示された図4を参照すればわかる。図4においてわかるように、導入中に製品が行うレジストリの変更を識別するために、製品の導入41の後は、開始前にどのファイルがアプリケーションにストリーミングされるべきか(優先データ)を決定する製品解析42と製品の導入前後のレジストリフィールドおよびその値を比較するレジストリ追跡43の両方が続く。製品導入ステージ41は、それによって導入のためにファイルが準備されるプロセスであり、以下に説明するようにIBPMによって実行される。製品解析ステージ42は、データフローが実行のために分析されて最適化され、以下に説明するようにGDTAによって実行される。製品解析ステージ42に続いて、IBPMは、(サーバからクライアントにストリーミングされるデータ量を削減するために)製品ファイルのそれぞれを圧縮することによって、製品ファイルのサイズを著しく削減する製品の圧縮43と、元の製品CDのエミュレートされた画像がサーバに作成されるプロセスであるCD画像作成44と、を開始する。これは、そのデータのすべてがサーバに格納されるが、製品をクライアントコンピュータで実行するために必要である。
【0023】
したがって、図5は、利用者の観点から見たクリックアンドプレイシステムを示している。クリックアンドプレイクライアントの導入から始まる。利用者は、ウェブサイト(またはCD ROM)から小さな(たとえば1.25MB)自己解凍ファイルをダウンロードし、簡単な導入プロセスへと続く。クリックアンドプレイドライバは、指定されたWindows(登録商標)ライブラリにインストールされ、残りのファイル(たとえばゲームキャッシュ)は、利用者の優先順位に応じて位置決めされることができる。クライアントのインストールは、他のハードウェア/ソフトウェアコンポーネントと干渉することはない。一旦、これが終了すると、利用者はシステムを用いて、以下のように起動することができる。
【0024】
利用者は最初に、サーバ基盤のオンラインリスト501からゲームを選択する。利用者の意思決定を補助するために、利用者は、自分のシステム502に選択したゲームの互換性のほか、選択したゲームの推定ダウンロード時間503の表示を選択してもよい。一旦ゲームが選択される(504)と、最小であるが効率的な選択によるファイルが、利用者コンピュータにダウンロードされるように、サーバは不可欠なファイル505をバッファに格納する。このようにして、ゲームの高速起動が保証される。一旦、バッファリングが終了すると(506)、ゲームの実行を開始することができる(507)。再生中、利用者の購読508、クライアントコンピュータのディスクの空き容量509、ハッカの活動510、ビデオデータメッセージ511などのプレーヤの個人ファイルに応じて、さまざまな変数の監視および照会がなされる。監視または照会の結果に応じて、動作が実行される。購読が終了している場合(515)、ディスク空き容量が制限され過ぎている場合(516)、またはハッカの活動が検出される場合(517)には、利用者は、クリックアンドプレイストリーミングサーバから切断される(518)。再生後、最終的に利用者がゲームの終了を決定した(512)とき、その時に、ゲームの概要情報が表示される(513)。ビデオを再生する(511)必要がある場合には、ビデオ再生メッセージ520が提供され、ビデオ再生(521)またはゲームに戻る(522)のいずれかへと続く。
【0025】
導入バイパス機構(IBPM)
IBPMによる主なプロセスは、以下に詳細に説明するように、導入追跡(エンコーディング)および導入バイパス(実行)プロセスである。
【0026】
1.導入追跡
概要
導入追跡は、ゲームがクリックアンドプレイシステムに移植されるたびに行われるプロセスである。このプロセスは、部分手動および部分自動であり、その目的は、導入プロセス中に元のアプリケーション導入が行っている変更のすべてを識別し、さらにアプリケーション自体(DLL、ドライバなど)のほか、インストールされる他のコンポーネントを検出することである。
【0027】
手動追跡
手動追跡は、以下の行為を含む。
1.製品準備プロセスを行う人(エンコーダ)が、ゲームボックスおよび/または利用者手引きの中にゲーム開発者によって列挙されているような特定のゲームのための最小システム要件を突き止め、IBPMデータベースに入力する。ゲームが利用者のコンピュータ上で実行することができることを確実にするために、IBPMは、所有権のある自動ハードウェア/ソフトウェア診断機構を用いる。RAMサイズ、CPU速度、ビデオカードのタイプ、サウンドカードのタイプ、DirectXドライバのバージョンなどのコンピュータ特性を入手するために、この機構は、Windows(登録商標)と、音声ドライバおよびビデオドライバなどのデバイスドライバと、に照会を行う。
2.元の導入中にソフトウェアの導入を追跡する。これは、自動検出プロセスへのバックアップ手続きである。
【0028】
ゲームが利用者のコンピュータのクリックアンドプレイによって実行されるたびに、この手動追跡の結果は、IBPMデータベースにおいて更新され、用いられる。
【0029】
自動追跡
自動プロセスは、利用者がクリックアンドプレイゲームを開始するときに、利用者のシステムにおける変更を再生するために、システム、大部分はレジストリへの元のゲーム導入を行っている最中に生じる変化を追跡する。
【0030】
自動追跡は、Windows(登録商標)レジストリサービスに接続するために形成されるクリックアンドプレイが所有権を有するデバイスドライバに基づいている。このデバイスドライバは、キー/値の作成、キー/値の変更などのすべてのレジストリの変化を記録する。
【0031】
ドライバが最初に起動され、この次に、ゲーム導入アプリケーションが起動される。ドライバは、その時に生じるレジストリの変更をすべて記録する。当然のことながら、ゲーム導入中の変更を分離するために、その時には他のアプリケーションは実行されていない。
【0032】
図6を参照すればわかるように、ゲームまたはアプリケーションの導入前に、導入アナライザが起動される(61)。次に、元のゲーム導入が実行される(62)。この元のゲーム導入中、エンコーダ(エンコーディングプロセスを管理する人)は、追加アプリケーションを(手動で)記録する(63)。これを行うために、IBPMオペレータは、導入プロセスへと続き、ゲーム導入自体(ドライバおよびアプリケーション)に加える任意の導入に言及し、これらの導入が必要であるかまたは任意であるかに言及する。導入追跡はまた自動で行われ、このプロセスは自動追跡をバックアップする。自動追跡が導入の検出に失敗した場合、たとえば、導入がレジストリを更新しない場合には、手動追跡が特に重要である。ステップ63の記録に続いて、ゲーム導入が完了し(64)、その後で、導入アナライザが終了される(65)。次に、システムの変更および最小要件が、データベースのIBPMセクションに格納される(66)。この最終ステージは、2つの部分を含む。一つは、自動追跡の結果を検討し、実際にすべての導入が認識されたことを確認することである。そうでない場合には、認識されていない導入の詳細が自動的に追加される。第2の部分は、IBPMデータベースに最小構成要件を追加することである。
【0033】
本発明の導入バイパス機構(IBPM)を用いるクリックアンドプレイシステムは、従来の方法でゲームをインストールしない。その代わりに、クライアント装置に最初に最小量のデータのみをインストールし、残りは、ゲーム実行中にストリーミングされる。したがって、クリックアンドプレイによってゲームを利用する場合には、通常のゲームの導入は必要ではない。しかし、一般的なゲーム導入は、ゲームリソースをハードドライブにコピーする場合より多くの処理を行う。すなわち、ゲームを実行することができるかどうかを決定するために利用者のコンピュータを解析し、追加のドライバをインストールし、レジストリを更新し、追加のタスクを行う。導入バイパス機構は、このような追加のタスクを処理するソフトウェアコンポーネントである。
【0034】
上述のタスクは、手動プロセスによって、以下のように実現される。
1)(Arkosoft社の製品「System Snapshot」(www.arkosoft.com)のシェアウエアバージョンなどの)サードパーティツールを用いて、「未使用」(このプロセスを実行するために必要なもの以外のソフトウェアの入っていない新品の)テストコンピュータにタイトルをインストールする。このツールは、レジストリおよび(INIファイルなどの)他のファイルの変更をはじめとするゲーム導入プロセスがシステムに行う変更を捕捉する。このプロセスの最後に、エンコーダはSnapshotから変更/追加が行われたファイルのリストおよび追加/修正されたレジストリキーノリストを得る。
2)エンコーダ(エンコーディングプロセスを開始する人)は、ファイルを(手動で)解析し、記録されているが、ゲーム導入(たとえばオぺレーティングシステムが同時に行った変更)によって行われていない変更のすべてを消去する。結果は、ゲームを適性に実行するために追加/修正する必要があったレジストリキーおよびファイルの「新しい」リストである。
3)次に、このリストが、各タイトルに関するクリックアンドプレイによって用いられる導入「スクリプト」ファイルに追加される。導入バイパススクリプトファイルは、INIファイル(INItialization(初期設定)ファイル、すなわちプログラムまたはオぺレーティングシステムを起動するために必要な起動情報を含むファイル)であり、クライアント側の導入バイパス機構が、アプリケーションを実行する前に導入バイパスを行うために必要な情報をすべて含んでいる。これらの変数は、
・アプリケーションを実行可能にするための相対パス(元のアプリケーションがある場合には、コマンドライン変数を含む)
・レジストリの変更および追加(追加/変更されたキーおよびその値)
・元のアプリケーション導入によって行われたゲームのINIファイルにおける変更(導入中、元のアプリケーションが決定する変数)
・元のアプリケーション導入がWin.iniファイルおよびSystem.iniファイルに行った変更のリスト
・元のアプリケーション導入がアプリケーションCDからWindows(登録商標)フォルダにコピーしているファイルのリスト(DLLファイル、INIファイルなど)
4)今度は、不正確な解析によって生じる恐れがある不正確なレジストリの変更を曝露するために、エンコーダは別の「未使用」コンピュータ上でクリックアンドプレイ自動導入プロセスを行う。2つのコンピュータが同一であれば、プロセスは終了する。同一でない場合には、エンコーダは差の生じた特定のフィールドを消去することを追加することによって、変更リストを修正する。
【0035】
2.導入追跡
ゲーム実行プロセス中、IBPMモジュールは、レジストリおよび他のシステムファイルを変更する導入バイパススクリプトファイルを実行する。それによって、IBPMは、クライアントコンピュータの設定を解析し、クライアントコンピュータにドライバ、ゲームファイルなどの不可欠なファイルをインストールし、レジストリを更新する。さらに、クライアントコンピュータレジストリおよびメモリドライブが事前の状態に戻るようにするために、IBPMは、ゲームの終了後に、ゲームファイルを抽出することができる。
【0036】
本発明による導入バイパス動作を含むゲーム実行プロセスの流れは、図7を参照すればわかる。図においてわかるように、利用者は、起動するアプリケーションを最初に選択する(70)。この次に、システムがアプリケーションを実行することができるかをマキシマイザ71が調査する。この調査の結果に基づき、クリックアンドプレイサーバは、利用者に許可を出し、新たなセッション72を開く。クライアントデバイスは、クライアントに予めダウンロードされたファイルのために、バッファリング段階を起動する(73)。ステップ70〜73の進行中に、IBPMは、レジストリおよび他の関連ファイルを含むシステムを更新する(74)。一旦、この前ステップがしかるべく機能すると、アプリケーションが起動し(75)、クライアントにおいて検出されないファイルのストリーミングがサーバから継続される。ストリーミング中、アプリケーションが終了するまで、サーバに送信されるメッセージをそのままにしておく(76)。これらのメッセージは、データを含まない単純な短いメッセージである。メッセージの目的は、クライアントをサーバとだけ連動させることである。(たとえば、ネットワーク接続が切断されたなどの)他の理由から、このようなメッセージがクライアントによって送信されず、サーバによって定期的に確認される場合には、クライアントのアプリケーションは終了することになる。これは、利用者がクリックアンドプレイオフラインを実行しないようにし、利用手数料がかからないようにするためのセキュリティ機構である。アプリケーションの終了(77)時には、クライアントデバイスがゲームによって悪影響を及ぼされないようにするために、IBPMは、レジストリの変更を行わない(78)。
【0037】
IBPMは、別の方法では元のゲーム導入によって行われるクリックアンドプレイゲームの導入タスクのすべてを行う役割を担っている。クリックアンドプレイはゲーム実行中にゲームデータをストリーミングすることから、これは、ゲームデータ自体の導入を含んでいない。
【0038】
利用者のコンピュータを「バイパス導入」前と同一の状態にするために、IBPMはまた、アプリケーション終了後、クライアントからゲームファイルを検索する役割を担っている。システムの背後にある概念は、ゲームを実行中に限り、利用者のコンピュータはゲームによって影響されることであることから、これは必要である。一旦、ゲームが終了されると、コンピュータは、自動的にもとの状態に復元されなければならない。このプロセスも、IBPMによって行われる。
【0039】
ゲームがクリックアンドプレイによって実行されるたびに、上記のプロセスが行われる。さらに、IBPMの「導入バイパス」が適性に作動するようにするために、準備プロセスも必要とされる。このプロセスは、元のアプリケーション導入プロセスを監視し、どの追加導入を行う必要があるか、どのファイル(主にレジストリの変更)を更新する必要があるかを決定する。これは、クリックアンドプレイ環境にゲームのプロセスを移植する時に起動されるIBPMの一部である。準備プロセスは、導入プロセスを追跡する自動システムトラッカおよび手動更新に基づいている。システムトラッカは、レジストリの変更およびファイルの変更を追跡するクリックアンドプレイユーティリティである。手動プロセスは、クリックアンドプレイのために製品に準備を行う人(エンコーダ)によって実行され、本質的には、ゲームを実行するためのシステム要件の更新を含む。
【0040】
追跡される元のゲーム導入による変更は、ゲームの持続時間に、利用者のコンピュータにおける変更の復元または再現のために用いられる。ゲームの実行開始前に行われた変更は、ゲームが終了しても変更されない。これは、元の導入のバイパスおよびミラー導入プロセスの作成を可能にし、自動および高速化の両方を実現する。通常の導入中に利用者が行う選択(宛先フォルダの選択、グラフィックカードの設定など)はすべて、製品準備ステージにおいて既に行われているため、利用者が選択を行う必要がないことから、プロセスは自動である。通常の導入とは対照的に、ファイルは製品CDからハードドライブにコピーされないという事実に加えて、このことは、導入プロセスをきわめて高速にする(通常は数秒)。
【0041】
上述の方法は、ゲームコード、導入コードまたはゲームリソースを修正しなくても、元のバージョンのゲームを提供することができる。移植プロセスにおいてゲーム開発者が関与しなくて済み、プロセス自体をより簡単にする。
【0042】
このようなバイパスプロセスの正確な実行に作用するために、本発明は、3つの要素を前提としている。
1.元のアプリケーション導入が行っているすべての動作の正確かつ完全な検出2.利用者の関与を必要としないように、IBPMによるこれらの動作の自動実行
3.ゲームが終了した場合に、その元の状態へのシステムの復元
【0043】
これらの要素に関して、本発明のIBPMは、すべてのタイプのボックス型ゲーム用にゲームフローを完了することができる。
【0044】
したがって、IBPMは、アプリケーションの遠隔ストリーミングを行うと同時に、製品の元の機能性を維持することができる。しかし、IBPMは、十分に最適化し、安定させるための追加モジュールに左右される。したがって、IBPMは、高い安全性および遠隔サーバからの最適なゲームフローを可能にするために、ゲームデータトラフィックアナライザ(GDTA)モジュールの入力および支援を必要とする。(インストールおよび実行など)導入バイパス準備プロセスのためにゲームで行われる動作もGDTAを必要とするため、ゲーム準備プロセスにおいては、GDTAはIBPMの一部として作動される。
【0045】
ゲームデータトラフィックアナライザ(GDTA)
GDTA34は、クリックアンドプレイシステムに標準的なボックス型ゲームまたはアプリケーションを移植するために用いられるバックオフィスツール(ユーティリティスーツ)30の集合の一部である。この移植プロセスは主に、アクセスプロファイルリストの作成およびゲームデータの圧縮を含む。ゲームごとに、ネットワーク定義が変更されるたびに(たとえば、ゲームがケーブルネットワークで既に実行されており、サテライトネットワークに対応させる必要がある場合)、このツールを実行する必要がある。GDTA34は、ローカルメディアで検出されたリソースへのゲームのアクセスを自動的に追跡することによって、ゲームフロートラフィックをエンコードする(アプリケーションを解析することによって、クリックアンドプレイシステムのためにアプリケーションに準備を施すプロセスを実行する)。ゲームデータフローが最適化され、安全性の高いデータ伝送を可能にするために、このモジュールは、データストリーミングおよび格納プロセスを効率的に管理する。GDTA34モジュールは、どのファイルがバッファリングステージの一部である必要があるか、およびゲーム再生中にどのファイルがストリーミングされるかを決定することによって、データストリーミングを最適化する。GDTA34モジュールは、クリックアンドプレイシステムが機能するために必要なコンポーネントではないが、それがなければ、ゲームはクリックアンドプレイシステムにおいて効率的に実行されないと推測されるような重要な最適化を行う。
【0046】
さらに詳細に言えば、GDTA34モジュールは、ゲーム準備プロセス中、ハードドライブおよびCDドライブからゲーム実行中のゲームアプリケーションへのデータブロックのトラフィックを検出し、どのデータブロックをバッファリングすべきかと、ゲーム実行中にどれをストリーミングすべきかの「優先順位リスト」を準備する。ゲーム実行プロセス中、GDTA34モジュールは、機能しない。
【0047】
プロセスの観点から、このような2つのコンポーネントIBPM33およびGDTA34は、クリックアンドプレイシステムのためにゲーム準備(エンコーディング)プロセスにおけるステップである。したがって、IBPM33およびGDTA34はいずれも、エンコーディングプロセスの一部であり、バックオフィスユーティリティのエンコーディングを含む。さらに、IBPM33モジュールは、圧縮およびストリーミングステージの役割を担っている。
【0048】
図3においてわかるように、アプリケーションの実行開始を行うことができる前に、どのデータをストリーミングする必要があるかを決定するために、ゲームが必要とするデータのフローを追跡するために、GDTA34は、デバイスドライバ36などのクリックアンドプレイシステムコンポーネントに直接接続している。
【0049】
クリックアンドプレイゲームが移植されると、サーバから利用者にゲームデータのフローを最適化するために、
・デバイスドライバを用いるゲームリソースへのアクセスの追跡
・各ゲームリソースファイルのためのデータアクセスプロファイルの作成
によって、GDTAコンポーネント34が用いられる。
【0050】
2つの相反する要件のために、このような最適化が必要である。一つは、ゲームの遅延のない実行を提供するために、ゲーム前にゲームデータファイルの大部分を実行する必要があるようなインストールを行うことである。しかし、このようなダウンロードの結果、利用がゲームを選択した時から、ゲームが実際に実行開始されるまでの応答時間が増大することになる。ブロードバンドネットワークにおいても、ゲーム全体をインストールする場合には、このプロセスは長いため、ゲームの実行が可能になるまで、利用者は相当待つ必要がある。他方、すべてのゲームファイルがゲーム実行中にストリーミングされる場合には、ゲームは即時に実行されるが、必要なデータブロックが時間通りに到着しない場合には、時折遅延を生じたり、場合によっては強制終了を生じたりする。
【0051】
どのファイルが初期導入の一部である必要があるかおよびどれをストリーミングすべきかを決定するために、GDTAが形成された。また、GDTAは、利用者のコンピュータ(キャッシュ)にどのファイルが残り、ゲームによって必要とされるたびに、どれをストリーミングする必要があるかも決定する。
【0052】
GDTAは、ローカルメディアで検出されたリソースへのゲームのアクセスを自動的に追跡することによって、ネットワークトラフィックを最適化するという概念を実行する。ゲームアプリケーションのそのリソースへのアクセスパターンが事前に知られている場合には、ネットワークのアクセスを最適化することができ、ゲームがどのデータを必要とするかを事前に決定することもできる。一般に、この情報は、実行開始前にアプリケーションが必要とするデータブロックを定義するために用いられる。適切なアルゴリズムを用いて、この情報はまた、ゲームが必要とする前にデータを進行させるなど予測のために用いられる。
【0053】
アクセスパターンを識別するために、ゲームを解析する必要がある。この解析は、クリックアンドプレイシステムのためにゲームに準備を施す必要があるコンテンツ集合ステージの一部である。基本的に、解析プロセスは、アプリケーションの実行中に、オぺレーティングシステムおよび製品の実行ファイルによって作成されたゲーム導入ディレクトリ下のハードドライブへのアクセスをすべて追跡することを指す。この動作の出力は、指定されたオフセットおよびブロックのサイズを有するアクセスされたファイルのリストである。優先順位データおよびファイルアクセス順序に関する情報を収集するために、このプロセスが
必要とされる。GDTA34は、包括的であるため、任意のタイプのゲームの処理を行うことができる。しかし、ゲームを解析するために、解析しながら、ゲームを再生する人が依然として必要である。
【0054】
GDTAモジュールによれば、解析プロセスは以下の通りである。利用者は、入力および出力ディレクトリ名を設定する必要がある。入力ディレクトリは製品がインストールされるディレクトリであり、出力ディレクトリはANAファイルが格納されるディレクトリである。ANAファイルは、実行中に製品がどのファイルを読み出しているかに関するデータをすべて格納する。ディレクトリが設定されると、利用者は、(「解析」ボタンをクリックすることによって)「解析」機能の命令を出すことができ、その次に、圧縮ツールが、指定された入力ディレクトリへのすべてのアクセスを追跡するQPFSH仮想デバイスドライバを初期化する。QPFSHは、ファイルシステムへのすべてのアクセスに関してオぺレーティングシステムから情報を得て、一定のディレクトリのみへのアクセスをフィルタリングするファイルシステムフックドライバである。QPFSHは、Windows(登録商標)リング−0レベルドライバであり、それ自体として、ハードドライブからデータを検索するためのすべての要求を受信する。各要求は、特定のフォルダに位置するファイルの特定の一部を指す。QPFSHは低レベルドライバであるため、どのアプリケーションがデータを要求したのかはわからない(他方では、製品アプリケーションのみによって要求されたものはわかっていなければならない)が、どのフォルダからデータが要求されたかについてはわかっている。製品がインストールされるフォルダへなされた各要求は、製品アプリケーションから出されていると仮定する。これは、このディレクトリがドライバに指定されているためである。
【0055】
エンコーダは、メインメニューを待ちながら、アプリケーションを実行し、ANAファイルにFAPセパレータを書き込むために、特殊なホットキーを押す。FAPセパレータは、ゲームがメインメニューに達するために必要であったすべてのファイルを読み出し終えた点に印を付けるANAファイル内部の記号にすぎない。この後で、優先順位データがメインメニューに達するまでゲームの要求するデータとして定義されている場合には、エンコーダは製品を終了することができる。あるいは、エンコーダは、(たとえばゲームセッションの開始、種類など)それに着手するためにゲームが読み出すデータがすべて、優先順位データであるものとして定義された時点までデータを利用しつづけることができ、その後で製品を終了する。
【0056】
本発明に先だって、ゲームのアクセスパターンを自動的に解析するように設計された他のアプリケーションは存在していない。ゲームがそのようなパターンを有するという仮定(および実際のテストにおける確認)が新境地を開く。第二に、(上記で説明したように、本発明の目的のために用いることが)パターンを検出するために、このような解析のために妥当な変数を選択しなければならない。正しいチューニングに達するまで、多数の試行およびエラーが繰り返される。
【0057】
GDTAによる解析プロセス
図8は、GDTAモジュールによる解析プロセスの概要流れ図を示している。図8においてわかるように、エンコーダは、最初にゲームフォルダをアナライザに指定し(81)、iniファイルにおける変数フィールドを変更することによって行われる。次いで、アナライザが起動され(82)、ゲームの起動(83)へと続く。続いて、エンコーダは、正常であるがゲームの多数の順序を必然的に伴うゲームを再生する(84)。次に、ゲームレベル/アリーナ/ミッションがすべてコミットされた後、ゲームはエンコーダによって終了される(85)。続いて、アナライザが停止され(86)、結果が処理される(87)。
【0058】
デバイスドライバからの情報の処理
ゲームが終了すると、アナライザは、ゲームによってなされた要求のすべてのリストを取得する。そのリストに基づいて、アナライザは、2つの追加リストを作成する。
1)ゲームの実行前に入手可能でなければならないリソースを含む優先順位リスト
2)ファイルアクセスパターン
【0059】
優先順位リストは、以下の方法で構築される;
各ファイルは、64Kbセクション(データブロック)に分割される。優先順位の値は、ファイル全体ではなく、個別に各データブロックに設定される。同一ファイルのそのように異なるデータブロックは異なる優先順位の値を得ることができ、識別がさらに正確である。
【0060】
優先順位の閾値が、事前に設定される。用いることができる別の予め定義された変数は、ゲームの必要な初期ローティング時間である。しかし、このような2つの変数は、任意である。デフォルトによって、優先順位リストは、すべてのデータブロックを含む。
【0061】
図9は、リストを作成するための流れを示している。図9によれば、アプリケーションは、データブロック(ファイルの一部)を提供するために、ドライバに要求を行う。ドライバがこのデータブロックを検索してから、GDTAがそのブロック番号を算出し、格納する(91)。GDTAはまた、これまでに検索されたブロックの合計サイズを更新する(92)。各データブロックを読み出した後、GDTAは、タイムアウト機構(新たなブロックに関する要求を受信することなく一定時間が過ぎた場合には、アプリケーションはこれ以上データを読み出さないと仮定する)を用いてアプリケーションが依然としてデータブロックを必要とするかどうかを決定する(93)。もしそうであるならば、GDTAは解析プロセスを停止する(95)。そうでないならば、すべての優先順位ブロックが既に検索されたかどうかを調査すること(優先順位ブロックの合計サイズに関してエンコーダによって事前に定義された最大サイズ制限に達するか、またはアプリケーションがメインメニューに達した場合または、アプリケーションが必要とするデータのすべてが優先順位ブロックとみなされない範囲として定義された時点である場合には、エンコーダからの手動信号、すなわちキーを押すかのいずれか)によって続く(94)。これらの状態の1つが当てはまる場合には、解析プロセスは終了し(95)、そうでない場合にはGDTAは、別のデータブロックを要求するためにアプリケーションを待機させる(91)。
【0062】
たとえば、オフセット16384、長さ1024(データブロックサイズ4096)において、ファイルUsaf.exeのために読み出し要求が出されたと仮定する。この場合には、ブロック番号は5である(16384(レンジ0〜16383)は4ブロック(16384/4096=4)であることから、次のバイト(#16384)は実際にはブロック番号5の最初であるため)と推測され、優先順位ブロックであると推測される。この例では、EXEファイルは常にアプリケーション実行可能ファイル自体であり、全体の実行可能ファイルをストリーミング前にアプリケーションを実行開始することができないため、このブロックは優先順位を有する。アプリケーションが開始されてから、要求された各ブロックが、要求リストの順である番号が与えられる。上記の番号(ブロック5)は、一例として与えられた。
【0063】
次に、ファイルアクセスパターンが、以下のように生成される;
すべてのファイルに関するアクセスパターンが記録される。これは、(一次キーとしての)時間および(二次キーとしての)ファイルによって、アナライザリストを整列することによって行われる。脚気は、ファイル後とのリストであり、実際には、ファイルのアクセスパターンである。
【0064】
図10は、標準ブロックサイズが4096バイトであるファイルusaf.exeに関する例を示している。記録された動作は、図10においてわかるように、usaf.exeにおいて生成された優先順位リストは1、2、3、4、5、1、6である。
【0065】
アナライザによって収集された情報は、クリックアンドプレイシステムによって最小ネットワークトラフィックでゲームリソースを効率的にダウンロードするために用いられる。
【0066】
優先順位リストは、ゲーム開始前にダウンロードされ、円滑かつ遅延のない再生を確実に行うために、予測機構によって用いられる。リストはまた、ゲームのアクセスパターンを追跡し、それを優先順位リストと比較することによって、ハッキングを防止するために、サーバによって用いられる。
【0067】
別の実施形態
複数の他の実施形態が、本発明者らによって検討されている。たとえば、クリックアンドプレイは、必ずしもゲームとは限らない任意の種類のアプリケーションをストリーミングするように設計されている。これは、企業、ビジネス、教育のためのタイトルなどを含む。クリックアンドプレイはゲーム指向である理由は、ゲームこそ、顧客の最も必要とするコンテンツであるためと、技術的にゲームが最も要求の多いアプリケーションであることから、よりよい技術およびGDTAなどの独特のソリューションを必要とするためである。
【0068】
本発明の実施形態に関する前述の詳細は、例示のために示された。それが網羅していると捉えるべきではなく、開示された正確な形態に本発明を限定すると捉えるべきでもない。上記の教示を踏まえて、さまざまな修正および変形が可能であることを十分に理解すべきである。本発明の範囲は、この詳細な説明によって限定されるのではなく、本願明細書に添付の特許請求の範囲によって限定される。
【図面の簡単な説明】
【図1】本発明によるサーバの構造を示している。
【図2】本発明によるクライアントの構造を示している。
【図3】本発明によるIBPMモジュールおよびGDTAモジュールを含むシステムソフトウェアコンポーネントを示している。
【図4】IBPMモジュールおよびGDTAモジュールによる追跡プロセスが行われるコンテンツ集合プロセスの流れを示している。
【図5】クリックアンドプレイシステムの利用の流れを示している。
【図6】IBPMによる解析プロセスを示している。
【図7】導入バイパス作用を含むゲーム実行プロセスの流れを示している。
【図8】GDTAによる解析プロセスの概要流れ図を示している。
【図9】本発明のGDTAによるリストを作成するための流れを示している。
【図10】ファイルアクセスパターンの生成の例を示している。
Claims (19)
- アプリケーションオンデマンドの高速起動および実行を可能にするためのシステムであって、
i.ストリーミングサーバコンポーネントと、
ii.クライアントコンポーネントと、
iii.導入バイパス機構(IBPM)モジュールと、
iv.ゲームデータトラフィックアナライザ(GDTA)モジュールとを含むシステム。 - 前記ストリーミングサーバコンポーネントが、
a.利用者情報、システム情報、導入バイパス機構(IBPM)データおよび利用統計を含むデータベースと、
b.データベース特有のデータベースインプリメンテーションおよび構造に左右されることなく、アプリケーションが前記データベースにアクセスすることができるようにするアプリケーションプログラムインターフェイス(API)であるデータベース抽象化層(DBAL)と、
c.前記データベースから必要なデータを伝送するために、クライアント側のシステムドライバと通信を行うためのドライバ(仮想ファイルシステム)と、
d.システムの前部であるサイトを管理し、前記利用者が前記アプリケーションにログインして実行することができるためのウェブサーバとをさらに含む請求項1に記載のシステム。 - 前記クライアントコンポーネントが、
i.利用者のコンピュータを解析するためのマキシマイザと、
ii.一旦、前記利用者がアプリケーションをストリーミングすることを選択すると、システムドライバを実行するためのウェブインターフェイスActiveXコンポーネントとをさらに含む
a)アプリケーションレベル、および
i.利用者のシステムを不正使用から保護するためのセキュリティコンポーネントと、
ii.サーバから前記システムへストリーミングされるデータを解凍するための圧縮エンジンと、
iii.前記システムから前記アプリケーションへ前記データを送信するためのファイルシステムドライバとを含む
b)ドライバレベルをさらに含む請求項1に記載のシステム。 - 前記アプリケーションが、ゲーム、ビデオオンデマンド、エンターテイメントプログラム、エデュテインメントプログラム、スポーツプログラム、教育用プログラム、生産性プログラムからなる群から選択される請求項1に記載のシステム。
- 前記クライアントコンポーネントが、PC、インターネットテレビ、ノートブックコンピュータ、パーソナルハンドヘルドアシスタント、高度自動機能電話、ウェアラブルコンピュータ、モバイルコンピュータからなる装置の群から選択される計算機で作動可能である請求項1に記載のシステム。
- ストリーム型アプリケーションオンデマンドの高速起動および実行を可能にするための方法であって、
I.GDTAモジュールおよびIBPMモジュールによって、アプリケーションをエンコードするステップと、
II.前記IBPMモジュールによって前記アプリケーションの導入をバイパスすることによって、前記アプリケーションの高速起動を可能にするステップと、を含む方法。 - アプリケーションオンデマンドの高速起動および実行を可能にするための方法であって、
i.元の導入を用いずに前記アプリケーションを実行することができるようにするために、元のアプリケーション導入が行う変更をマッピングするための導入追跡ステップと、
ii.前記アプリケーションの元の導入手続きを用いて、前記アプリケーションを初めにインストールことなく、前記アプリケーションオンデマンドを実行することができるようにするために、ファイルの変更およびクライアントコンピュータにおける設定のための導入バイパスステップと、を含む方法。 - 前記導入追跡は、導入中に前記元のアプリケーション導入が行う変更をマッピングするために、前記元のアプリケーション導入を解析し、
A.前記アプリケーションが導入中に行うレジストリの変更を識別するために、アプリケーション導入の前後の前記レジストリフィールドおよび前記レジストリフィールドの値を比較するために、クライアントレジストリを追跡するステップと、
B.前記元のアプリケーション導入が前記システムに行う変更を追跡するための自動追跡ステップと、
C.追加コンポーネントの導入の検出および前記自動追跡プロセスにおけるエラーを補正するための手動追跡ステップと、
D.vi.元のアプリケーションCDの画像をエミュレートするための少なくとも1つのCD画像を作成するステップと、をさらに含む請求項7に記載の方法。 - 前記導入追跡が、
a)テストコンピュータに前記アプリケーションのタイトルをインストールするステップと、
b)アプリケーション導入プロセスが、前記コンピュータに行う変更を捕捉するステップと、
c)前記コンピュータで変更されたファイルのリストおよび変更されたレジストリキーのリストをコンパイルするステップと、
d)前記アプリケーションを適正に実行するために修正すべきレジストリキーおよびファイルの「新しい」リストとなるように、記録されているが、前記導入によって行われていないすべての変更を消去するためにエンコーダによって前記変更を解析するステップと、
e)前記クライアントによって用いられる導入「スクリプト」ファイルに前記リストを追加するステップと、
f)前記エンコーダによって、不正確な解析のために生じる恐れがある任意の不正確なレジストリおよびファイルの変更を曝露するために、別のコンピュータで自動導入プロセスを行うステップと、をさらに含む請求項7に記載の方法。 - g)前記テストコンピュータおよび前記別のコンピュータが、同一の結果を作成する場合には、テストプロセスが終了するステップおよび
h)前記テストコンピュータおよび前記別のコンピュータが、同一でない結果を作成する場合には、前記エンコーダが、前記同一でない結果を報じる任意の特定のフィールドを修正することによって、前記変更リストを修正するステップをさらに含む請求項9に記載の方法。 - 前記手動追跡が、
a.前記アプリケーションの開発者によって列挙されたような特定のアプリケーション用の最小システム要件をエンコーダによって突き止められるステップと、
b.前記要件をIBPMデータベースに供給するステップと、
c.前記アプリケーションをクライアントコンピュータで確実に実行することができるようにするためにハードウェア/ソフトウェア診断機構を実行するステップと、
d.前記アプリケーションの元の導入中にソフトウェア導入を追跡するステップと、
e.前記IBPMデータベースにおける前記導入を更新するステップと、をさらに含む請求項8に記載の方法。 - 前記導入追跡が、GDTAモジュールによって実行され、 a]オぺレーティングシステムによって作成される導入ディレクトリ下で、すべてのハードドライブへのアクセスおよび前記アプリケーションの実行中にアプリケーションの実行可能ファイルを追跡するステップと、
b]特定のオフセットおよびブロックのサイズを有するアクセスされたファイルのリストを出力するステップと、
c]優先順位データおよび前記ファイルアクセスリストに関する情報を収集するステップと、をさらに含む請求項7に記載の方法。 - すべてのハードドライブへのアクセスが、
i]入力ディレクトリ名および出力ディレクトリ名を設定するステップと、
ii]「解析」コマンドを実行するステップと、
iii]特定の前記入力ディレクトリへのすべてのアクセスを追跡するために、仮想デバイスドライバを初期化するステップと、
iv]一定の前記ディレクトリのみへの前記アクセスをフィルタリングするステップと、
v]前記エンコーダによって、前記ディレクトリからアプリケーションを実行するステップと、
vi]メインメニューを待機させ、ANAファイルにFAPセパレータを書く込むために特殊なホットキーを初期化するステップと、
vii]前記優先順位データが、前記アプリケーションが要求するデータとして定義された場合には、前記アプリケーションが前記メインメニューに達すると、前記エンコーダによって前記アプリケーションが終了されるステップと、
viii]あるいは、それに着手するために前記アプリケーションが読み出す前記データのすべてが優先順位データであるものとして定義された時点までデータを利用しつづけることができ、その後で製品を終了するステップと、をさらに含む請求項12に記載の方法。 - 前記追跡が自動であり、
I.Windows(登録商標)レジストリサービスをフックするためにデバイスドライバを構成するステップと、
II.前記デバイスドライバを起動するステップと、
III.アプリケーション導入アプリケーションを起動するステップと、
IV.すべてのレジストリの変更を記録するステップと、をさらに含む請求項12に記載の方法。 - 前記導入バイパスが、
I]ウェブサイトから小さな自己解凍ファイルをダウンロードし、簡単な導入プロセスを行うことによって、クライアントプログラムをインストールするステップと、
II]利用者のクライアントによって、アプリケーションの起動を選択するステップと、
III]前記クライアントが、前記アプリケーションを実行することができるかをマキシマイザによって調査するステップと、
IV]前記利用者を許可し、新たなセッションを開くステップと、
V]前記クライアントのレジストリおよびファイルを更新するステップと、
VI]前記クライアントに予めダウンロードされたファイルのためのバッファリング段階を起動するステップと、
VII]遠隔サーバから前記クライアントにファイルをストリーミングするステップと、
VIII]前記サーバにメッセージを残したまま送信するステップと、
IX]前記アプリケーションを終了するステップと、
X]前記レジストリおよびファイルに対する変更を行わないステップと、をさらに含む請求項7に記載の方法。 - 選択されたアプリケーションの互換性を利用者のシステムに表示するステップをさらに含む請求項15に記載の方法。
- 選択されたアプリケーションの推定ダウンロード時間を表示するステップさらに含む請求項15に記載の方法。
- 前記アプリケーションオンデマンドが、ゲーム、子供用エンターテインメント、エデュテインメント、スポーツ、教育、生産性のタイトルからなる群から選択される請求項7に記載の方法。
- 前記クライアントコンピュータが、PC、インターネットテレビ、ノートブックコンピュータ、パーソナルハンドヘルドアシスタント、高度自動機能電話、ウェアラブルコンピュータ、モバイルコンピュータからなる計算機の群から選択される請求項7に記載のシステム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US21399000P | 2000-06-26 | 2000-06-26 | |
US21398900P | 2000-06-26 | 2000-06-26 | |
PCT/US2001/020036 WO2002001350A1 (en) | 2000-06-26 | 2001-06-22 | A system and method for enabling rapid launching and execution of streamed applications-on-demand |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004502236A true JP2004502236A (ja) | 2004-01-22 |
Family
ID=26908573
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002506419A Pending JP2004502236A (ja) | 2000-06-26 | 2001-06-22 | ストリーム型アプリケーションオンデマンドの高速起動および実行を可能にするためのシステムおよび方法 |
Country Status (3)
Country | Link |
---|---|
JP (1) | JP2004502236A (ja) |
AU (1) | AU2001268696A1 (ja) |
WO (1) | WO2002001350A1 (ja) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005011315A (ja) * | 2003-06-18 | 2005-01-13 | Xybernaut Corp | 保守及び検査システムと方法 |
JP2008512744A (ja) * | 2004-08-25 | 2008-04-24 | ストリーム セオリー,インコーポレイテッド | 通信傍受に基づくリソース検出システム |
JP2008540033A (ja) * | 2005-05-17 | 2008-11-20 | キッド グループ リミテッド ライアビリティー カンパニー | 通信装置、通信方法及びコンテンツ提供システム |
JP5624224B2 (ja) * | 2012-07-31 | 2014-11-12 | 株式会社スクウェア・エニックス | データ提供システム、提供装置、実行装置、制御方法、プログラム、及び記録媒体 |
JP2015015022A (ja) * | 2014-06-24 | 2015-01-22 | 株式会社スクウェア・エニックス | コンテンツ提供システム、コンテンツ提供機器、コンテンツ再生機器、制御方法、プログラム、及び記録媒体 |
JP2015506044A (ja) * | 2011-12-15 | 2015-02-26 | マイクロソフト コーポレーション | オン・デマンドのステージングを用いる高速アプリケーション・ストリーミング |
JP2015507787A (ja) * | 2011-12-15 | 2015-03-12 | マイクロソフト コーポレーション | 自律ネットワーク・ストリーミング |
US9354862B2 (en) | 2014-06-16 | 2016-05-31 | Fujitsu Limited | Apparatus and method for software information management |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6574618B2 (en) * | 1998-07-22 | 2003-06-03 | Appstream, Inc. | Method and system for executing network streamed application |
US7197570B2 (en) * | 1998-07-22 | 2007-03-27 | Appstream Inc. | System and method to send predicted application streamlets to a client device |
US7219040B2 (en) | 2002-11-05 | 2007-05-15 | General Electric Company | Method and system for model based control of heavy duty gas turbine |
US8287379B2 (en) | 2005-09-12 | 2012-10-16 | Igt | Distributed game services |
US7887420B2 (en) * | 2005-09-12 | 2011-02-15 | Igt | Method and system for instant-on game download |
US7917902B2 (en) | 2008-03-21 | 2011-03-29 | Symantec Corporation | Archive stream based install |
US10235832B2 (en) | 2008-10-17 | 2019-03-19 | Igt | Post certification metering for diverse game machines |
US9358460B2 (en) | 2011-04-28 | 2016-06-07 | Numecent Holdings, Inc. | Adaptive cloud-based application streaming |
CN114840859B (zh) * | 2021-12-21 | 2023-03-24 | 许磊 | 一种通用数据的流媒体化系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5642417A (en) * | 1994-11-25 | 1997-06-24 | Testdrive Corporation | Virtualized installation of material |
US6061504A (en) * | 1995-10-27 | 2000-05-09 | Emc Corporation | Video file server using an integrated cached disk array and stream server computers |
US5768597A (en) * | 1996-05-02 | 1998-06-16 | Starfish Software, Inc. | System and methods for improved installation of compressed software programs |
US6195678B1 (en) * | 1996-09-03 | 2001-02-27 | Fujitsu Limited | Remote resource management system for automatically downloading required files from application server depending on contents of selected files on requesting computer |
-
2001
- 2001-06-22 JP JP2002506419A patent/JP2004502236A/ja active Pending
- 2001-06-22 AU AU2001268696A patent/AU2001268696A1/en not_active Abandoned
- 2001-06-22 WO PCT/US2001/020036 patent/WO2002001350A1/en active Application Filing
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005011315A (ja) * | 2003-06-18 | 2005-01-13 | Xybernaut Corp | 保守及び検査システムと方法 |
JP2008512744A (ja) * | 2004-08-25 | 2008-04-24 | ストリーム セオリー,インコーポレイテッド | 通信傍受に基づくリソース検出システム |
JP2008540033A (ja) * | 2005-05-17 | 2008-11-20 | キッド グループ リミテッド ライアビリティー カンパニー | 通信装置、通信方法及びコンテンツ提供システム |
JP2015506044A (ja) * | 2011-12-15 | 2015-02-26 | マイクロソフト コーポレーション | オン・デマンドのステージングを用いる高速アプリケーション・ストリーミング |
JP2015507787A (ja) * | 2011-12-15 | 2015-03-12 | マイクロソフト コーポレーション | 自律ネットワーク・ストリーミング |
US9870372B2 (en) | 2011-12-15 | 2018-01-16 | Microsoft Technology Licensing, Llc | Fast application streaming using on-demand staging |
JP5624224B2 (ja) * | 2012-07-31 | 2014-11-12 | 株式会社スクウェア・エニックス | データ提供システム、提供装置、実行装置、制御方法、プログラム、及び記録媒体 |
JPWO2014020641A1 (ja) * | 2012-07-31 | 2016-07-11 | 株式会社スクウェア・エニックス | データ提供システム、提供装置、実行装置、制御方法、プログラム、及び記録媒体 |
US9814979B2 (en) | 2012-07-31 | 2017-11-14 | Kabushiki Kaisha Square Enix | Data provision system, provision apparatus, execution apparatus, control method, and recording medium |
US9354862B2 (en) | 2014-06-16 | 2016-05-31 | Fujitsu Limited | Apparatus and method for software information management |
JP2015015022A (ja) * | 2014-06-24 | 2015-01-22 | 株式会社スクウェア・エニックス | コンテンツ提供システム、コンテンツ提供機器、コンテンツ再生機器、制御方法、プログラム、及び記録媒体 |
Also Published As
Publication number | Publication date |
---|---|
AU2001268696A1 (en) | 2002-01-08 |
WO2002001350A1 (en) | 2002-01-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2004502236A (ja) | ストリーム型アプリケーションオンデマンドの高速起動および実行を可能にするためのシステムおよび方法 | |
US7051315B2 (en) | Network streaming of multi-application program code | |
JP7423134B2 (ja) | インタラクティブシーンの起動方法、装置、コンピュータプログラム、クライアント側及びサーバー | |
US6757894B2 (en) | Preprocessed applications suitable for network streaming applications and method for producing same | |
US6622166B2 (en) | Audio/video from internet direct to compact disc through web browser | |
US7654903B2 (en) | Online gaming cheating prevention system and method | |
US9063814B2 (en) | Binding user data files | |
US6748397B2 (en) | File structure for preventing edition and deletion in internet, a variety of computers and computer application media, advertising method using the file structure and system used for the method | |
CA2427847A1 (en) | Method and system for streaming software applications to a client | |
US20010034736A1 (en) | Method and system for executing network streamed application | |
US20030204843A1 (en) | Automated installation of an application | |
WO2004057568A2 (en) | Method and system for network downloading of music files | |
JPH11511574A (ja) | 遠隔地のネットワークと局地のコンピュータとの間の情報を伝送し、表示する方法及び装置 | |
US20050050159A1 (en) | Remote debugging of web applications | |
US20070118499A1 (en) | Method and system for collecting and restoring application state information | |
KR20050008845A (ko) | 서버 측 구성 관리 | |
US20090019151A1 (en) | Method for media discovery | |
KR20080028879A (ko) | 미디어 전송 통신의 직렬화 | |
US20080275852A1 (en) | Information processing system, apparatus and method for information processing, and recording medium | |
US20040210433A1 (en) | System, method and apparatus for emulating a web server | |
US6427165B1 (en) | Method and apparatus for information retrieval from a network using parameter value sampling | |
WO2003093959A2 (en) | Secure transmission and installation of an application | |
EP1523191B1 (en) | Content Recording Method, System and Computer Program | |
WO2002023363A1 (en) | Systems and methods for delivering content over a computer network | |
US20040059641A1 (en) | System and method for creating user selected customized digital data compilations |