JP2004227559A - ユーザ・アプリケーション・プログラムの制御方法 - Google Patents

ユーザ・アプリケーション・プログラムの制御方法 Download PDF

Info

Publication number
JP2004227559A
JP2004227559A JP2003206626A JP2003206626A JP2004227559A JP 2004227559 A JP2004227559 A JP 2004227559A JP 2003206626 A JP2003206626 A JP 2003206626A JP 2003206626 A JP2003206626 A JP 2003206626A JP 2004227559 A JP2004227559 A JP 2004227559A
Authority
JP
Japan
Prior art keywords
file
application program
user application
data
client computer
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
Application number
JP2003206626A
Other languages
English (en)
Inventor
Sang Won Chung
翔 元 鄭
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nexon Korea Corp
Original Assignee
Nexon Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nexon Corp filed Critical Nexon Corp
Publication of JP2004227559A publication Critical patent/JP2004227559A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • Tourism & Hospitality (AREA)
  • Economics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

【課題】ネットワークを通じてサーバと連結を維持することによって外部からのハッキング及びクラッキングを効果的に放止して不法なソフトウェアの使用を防止すること。
【解決手段】ユーザ・アプリケーション・プログラムからのファイルに対するファイル読出し要請を受信し、ファイルがクライアントコンピュータに格納されているかを判断し、ファイルがクライアントコンピュータに格納されていれば、ファイルのデータをユーザ・アプリケーション・プログラムへ伝達し、ファイルがクライアントコンピュータに格納されていなければ、ファイルが格納されている所定のサーバ(該所定のサーバはクライアントコンピュータとネットワークを通じて連結される)からファイルのデータの中で一部のデータを受信してユーザ・アプリケーション・プログラムに伝達する。
【選択図】 図3

Description

【0001】
【発明の属する技術分野】
本発明は、ユーザ端末機で実行されるユーザ・アプリケーション・プログラムの制御方法に関するものであって、より詳細にはユーザ・アプリケーション・プログラムの実行中に必要なデータを所定のサーバからダウンロードしながらユーザ・アプリケーション・プログラムを行うことができるようにするユーザ・アプリケーション・プログラムの制御方法に関するものである。
【0002】
【従来の技術】
従来技術におけるパッケージゲーム(オフラインゲーム)は、ゲームプログラム及び該ゲームに必要なデータを全てCD(コンパクトディスク)などの格納媒体に格納してユーザに配布される。しかし、このようなパッケージゲームを含むパッケージ形態のソフトウェア製品は不法複製されて正当な権限のないユーザによって使用される場合が多い。従って、このようなパッケージ形態のソフトウェア製品をオンライン化すればこのような不法複製を防げるだけでなく、自動アップデートのようなオンラインソフトウェアの様々な長所を用いることができる。このような理由でパッケージ形態のソフトウェア製品を手軽にオンラインソフトウェアに切り替えるようにする方法が要求されている。
【0003】
また、オンラインゲームの場合にも該オンラインゲームのプレーに必要な全てのファイルをユーザコンピュータにダウンロードするまでは前記オンラインゲームをプレーできない。しかも、オンラインゲームがさらに発展して複雑になるほどユーザが初期にダウンロードしなければならない量は更に増加している.最近は、オンラインゲームを行うために初期にダウンロードしなければならないデータの量が200Mbyteを超える場合も頻繁に発生している。このように初期にダウンロードしなければならないデータの量があまりにも大きいため、オンラインゲームの最初のユーザが手軽にオンラインゲームに参加することができないという短所があった。従って、オンラインゲーム全体を行うために必要なデータのサイズが大きくても、その内の一部の少ないデータだけをダウンロードした後、オンラインゲームをプレーできる方法が要求されている。
【0004】
【発明が解決しようとする課題】
本発明は、前記のような従来技術の問題点を解決するために案出されたものであって、従来のパッケージ形態のソフトウェア製品を手軽にオンラインソフトウェア化してオンラインストリーミング(on−line streaming)の効果をもたらし、ネットワークを通じてサーバとの連結を維持することによって外部からのハッキング及びクラッキング及び不法なソフトウェアの使用を効果的に防止することを目的とする。
【0005】
また、本発明は従来のパッケージソフトウェアを手軽にオンライン化することによって、周期的に前記パッケージソフトウェアの不法複製の可否を監視することができ、もし不法複製製品である場合には前記パッケージソフトウェアの動作を停止させることによって、不法複製を防ぐことを目的とする。また、本発明の目的はパッケージソフトウェアをオンライン化することによってパッケージソフトウェアの課金を使用時間当りでできるようにすることである。
【0006】
また、本発明の目的はオンラインソフトウェアでファイル全体ではなくファイルのブロック単位にダウンロードして、初期にダウンロードしなければならないデータのサイズを最小化することによって、ユーザが初期に手軽にゲームを楽しめるようにすることである。
【0007】
また、本発明はオンラインソフトウェアが要求するデータのパターンを調査してこれによってダウンロードされるデータを最適化し、ユーザ・アプリケーション・プログラムがデータの読出しを要請しない場合にも、前記調査されたデータのパターンによって既にバッグラウンドP2Pを通じて必要なデータを予めダウンロードを受けることでユーザがデータのダウンロードのために待つ時間を最小化し、またサーバの帯域幅使用を最小化することを目的としている。
【0008】
【課題を解決するための手段】
上記目的を達成するため、本発明の一実施例によれば、クライアントコンピュータで実行されるユーザ・アプリケーション・プログラムを制御するための方法であって、ユーザ・アプリケーション・プログラムからのファイルに対するファイル読出し要請を受信する段階と、前記ファイルが前記クライアントコンピュータに格納されているかを判断する段階と、前記ファイルが前記クライアントコンピュータに格納されていれば前記ファイルのデータを前記ユーザ・アプリケーション・プログラムへ伝達する段階と、前記ファイルが前記クライアントコンピュータに格納されていなければ、前記ファイルが格納されている所定のサーバ(該所定のサーバは前記クライアントコンピュータとネットワークを通じて連結される)から前記ファイルのデータの中で一部のデータを受信して前記ユーザ・アプリケーション・プログラムに伝達する段階とを含むことを特徴とするユーザ・アプリケーション・プログラム制御方法が提供される。
【0009】
【発明の実施の形態】
以下、図面を参照しながら本発明に係る実施の形態について詳細に説明する。
【0010】
図1は、本発明におけるクライアントコンピュータとファイルサーバのネットワーク連結を示した図面である。
【0011】
ユーザはオンラインゲームをプレーするために自身のクライアントコンピュータ102、103でインターネットを通じて所定のオンラインゲームサーバ104に接続する。従来のパッケージ形態のゲームソフトウェアの場合には、本発明によって簡単にオンライン化されてゲームのプレー中にゲームサーバ104に接続してゲームを行えるようになる。即ち、従来のパッケージゲームの場合にもユーザがCDなどを購入せず、単にゲームサーバ104だけに接続して本発明によってゲームの全体ファイルまたはデータだけをダウンロードした後、直ぐにゲームを始めることができる。
【0012】
図2は本発明によってクライアントコンピュータに含まれたユーザ・アプリケーション・プログラム、オンラインストリーミングファイルライブラリー及びネットワークインターフェースの関係を示したブロック図である。ユーザ・アプリケーション・プログラム201は従来のパッケージソフトウェアそのままであるか、或いは本発明によって従来のパッケージソフトウェアが一部修正されたプログラムである。またはユーザ・アプリケーション・プログラム201は従来のオンラインソフトウェアであることも有り得る。本発明は従来のパッケージソフトウェアをオンライン化して様々な有用な効果を得るためのものであるが、本発明の思想のいくつかは従来のオンラインソフトウェアにも容易に適用されて有用な効果を得ることができる。
【0013】
オンラインストリーミングファイルライブラリー(online streaming file library)202はユーザ・アプリケーション・プログラム201のファイル読出し要請及びファイル書込み要請をフッキング(hooking)し、このようなファイル読出し要請及びファイル書込み要請を行い、またサーバ104との連結維持、不法的なソフトウェア使用のモニタリングなどの機能を行う。また、オンラインストリーミングファイルライブラリーは必要なデータをサーバまたはネットワーク上に隣接した他のクライアントコンピュータからダウンロードする機能を行う。オンラインストリーミングファイルライブラリーはライブラリー以外の異なる形態で具備することもできる。
【0014】
オンラインストリーミングファイルライブラリー202は既存の運営体制水準のファイル入出力API(アプリケーション・プログラム・インターフェース)をフッキングする。既存運営体制水準のファイル入出力APIの例ではマイクロソフト社のウィンドー運営体制におけるCreateFile()、ReadFile()、WriteFile()などの関数がある。ウィンドー運営体制ではすべてのWin32 API関数に対してインポートセクション(Import Section)を有する。インポートセクションは一種のジャンプベクトルテーブル(Jump Vector Table)である。例えば、CreateFile()関数の場合、インポートセクションに前記CreateFile()関数に対するポインタが格納される。従って、実行ファイル(ウィンドー運営体制では.exeの拡張子を有するファイル)でCreateFile()関数を用いる場合、前記実行ファイルは前記インポートセクションを参照してCreateFile()関数のポインタを得るようになり、このポインタが指す関数を行うことになる。APIフッキング(API Hooking)とは、前記インポートセクションでの各入出力関数のアドレスを他の関数のアドレスに変更することによって行われる。例えば、インポートセクションでCreateFile()関数のポインタを運営体制が提供するCreateFile()関数のアドレスを指すものではなく、異なる関数のアドレスを指すように変更すれば、ユーザ・アプリケーション・プログラムでCreateFile()を行う場合、運営体制が提供するCreateFile()関数ではない前記異なる関数を行うようになる。
【0015】
このようなAPIフッキングを行うためにユーザ・アプリケーション・プログラムのメイン関数(main function)(例えば、ウィンドーシステムではwinmain()関数)の開始と終了にフッキング初期化関数及びAPIフッキング終了関数を追加してAPIフッキングを行う。APIフッキング初期化関数は本発明によって提供される関数であって、前記ユーザ・アプリケーション・プログラムのインポートセクションでの各入出力API関数のポインタを本発明による入出力関数のポインタに変更する機能を行う。APIフッキング終了関数では前記変更されたインポートセクションを元に復旧させる機能を行う。沿って、本発明によれば従来のパッケージソフトウェアのメイン関数に2つの関数だけを追加することによってパッケージソフトウェアのオンライン化が行われる。本発明の他の実施例によれば、メイン関数のエントリーポイント(entry point)自体をフッキングする。この方法は一例としてはコンピュータウィルスプログラムが自身のコードを実行ファイルに付加することと類似な方法である。本実施例によれば、応用プログラムを全く修正しなくてもパッケージソフトウェアのオンライン化が可能であるという長所がある。
【0016】
図3は、本発明によってクライアントコンピュータで行われるユーザ・アプリケーション・プログラムからのファイル読出し要請を処理する順序を示したフローチャートである。
まず本発明によってAPIフッキングのための入出力API関数のジャンプベクトルテーブルが本発明の入出力API関数を行うように変更されている。段階301でユーザ・アプリケーション・プログラム201からファイル読出し要請を受信し、これをフッキング(hooking)する。即ち、ユーザ・アプリケーション・プログラム201の中のReadFile()関数を行うようになるが、前記ReadFile()関数の実行がフッキングされて本発明によるオンラインストリーミングファイル入出力 API関数(online streaming File I/O API function)が実行される。本発明によるオンラインストリーミングファイル入出力API関数はオンラインストリーミングファイルライブラリー202に格納される。
【0017】
本発明によるオンラインストリーミングファイル入出力API関数は、段階302で、前記ユーザ・アプリケーション・プログラム201が要求したファイルが前記ユーザ・アプリケーション・プログラム201が格納されているクライアントコンピュータに格納されているのか判断する。もし、前記ユーザ・アプリケーション・プログラム201が要求したファイルが前記クライアントコンピュータに格納されていれば、段階303で前記ファイルのデータを読出して前記ファイルのデータを読出して前記ファイルのデータをユーザ・アプリケーション・プログラム201へ伝達する。前記ファイルのデータはファイル全体のデータであることも、前記ファイルに含まれたデータの中の一部のデータであることも有り得る。例えば、ユーザ・アプリケーション・プログラムが所定のゲームプログラムである場合、前記ゲームプログラムが行われるために必要なグラフィックデータを格納しているファイルがあり、前記ゲームプログラムが前記グラフィックデータを必要として読出し要請をしたが、前記グラフィックデータを格納しているファイルがクライアントコンピュータに格納されていればこれを読み出してゲームプログラムに伝達することである。
【0018】
段階302でローカルクライアントコンピュータにユーザ・アプリケーション・プログラム201が要求したデータが格納されていなければ、オンラインストリーミングファイルの入出力API関数は段階304でネットワークのインターフェース203を介して所定のサーバ104に接続する。前記所定のサーバは前記クライアントコンピュータとネットワークを介して連結される。前記所定のサーバは前記ユーザ・アプリケーション・プログラム201が必要とする全てのデータを格納している。
【0019】
段階305でオンラインストリーミングファイル入出力API関数はサーバ104からファイルのデータを受信し、段階306で前記受信されたデータをローカルクライアントコンピュータにキャッシングする。このようなキャッシングを介して同一のデータを重複してダウンロードしないだけでなく後述する優先ファイルの概念を用いてこれからダウンロードされるものと予想されるデータを予めダウンロードして置く利点がある。例えば現在必要なデータがファイル1のブロック5である場合、以前にユーザ・アプリケーション・プログラム201を実行しながらその動作を調査してみた結果、ブロック5とブロック6とを共にユーザ・アプリケーション・プログラム20lが使用すると判断すると、ブロック5とブロック6とを共にサーバ104からダウンロードしてこれをキャッシングして置いておく。
【0020】
段階307でオンラインストリーミングファイル入出力API関数はサーバ104から受信したファイルのデータをユーザ・アプリケーション・プログラム201へ伝達する。そうすると、ユーザ・アプリケーション・プログラム201は引続きプレーされるようになる。
【0021】
例えば、ゲームソフトウェアの全体実行に必要なデータファイルの全体サイズが200Mbyteであるが、ゲームソフトウェアが現在の場面をディスプレーするために必要なグラフィックデータは3Mbyteであり、このグラフィックデータがローカルクライアントコンピュータに格納されていなければ、これを格納しているサーバに接続して前記必要なグラフィックデータをダウンロードしてこれを用いることである。従って、本発明によればユーザは初期に大容量のデータファイルをダウンロードしなくても手軽にオンラインゲームを楽しむことができる。またパッケージゲームソフトウェアを本発明によってオンライン化した場合にも、必要なデータの一部だけを適時サーバからダウンロードしてゲームをプレーすることができる。即ち、本発明によれば、ユーザ・アプリケーション・プログラムの実行に必要な全体データを予めローカルクライアントのコンピュータに格納しなくてもユーザ・アプリケーション・プログラムを実行することができる。
【0022】
また、本発明のもう一つの実施例によれば、ファイルのデータ読出し及び受信をファイルのデータ中の一部のデータを受信して行い、このような一部のデータの受信は前記ファイルのオフセット及び前記一部のデータのサイズを用いて行われる。これに関しては図5及び図6を参照して後に詳細に説明する。
【0023】
本発明のもう一つの実施例によれば、一つのクライアントコンピュータ102上で実行されているユーザ・アプリケーション・プログラム201がファイル読出し要請をしていない間にネットワーク上で隣接して位置した他のクライアントコンピュータ103にユーザ・アプリケーション・プログラム201を実行するのに必要なデータが格納されているかどうかを識別し、もし、他のクライアントコンピュータ103に必要なデータが格納されていればこれを受信してクライアントコンピュータ102に格納しておく。他のクライアントコンピュータ103も同じようにクライアントコンピュータ102からデータを受信することもできる。このような実行のためのプログラムはユーザ・アプリケーション・プログラム201が始まると同時にバックグラウンドで始まることもでき、またはユーザ・アプリケーション・プログラム201の開始及び終了とは関係なくクライアントコンピュータ102、103から開始されて実行されることもできる。本発明によれば、ユーザ・アプリケーション・プログラムがデータを要求する前に予め必要なデータをダウンロードしてローカルクライアントコンピュータに格納して置くため、ユーザ・アプリケーション・プログラムを効率的に実行できるだけでなくサーバ104に対する負荷も軽減させる。
【0024】
本発明のもう一つの実施例によれば、ユーザ・アプリケーション・プログラム201からデータ読出し要請をフッキングし、前記データがローカルクライアントコンピュータに格納されていればこれをユーザ・アプリケーション・プログラム201へ伝達し、ローカルクライアントコンピュータに格納されていなければネットワーク上で隣接した他のクライアントコンピュータに格納されているのかを判断する。もし他のクライアントコンピュータに格納されていればP2Pを用いてこれをダウンロードする。もしクライアントコンピュータに格納されていなければサーバに接続してダウンロードする。
【0025】
本発明のもう一つの実施例によれば、ユーザ・アプリケーション・プログラム201からデータ読出し要請をフッキングし、前記ファイル読出し要請に応答して、クライアントコンピュータに格納されたユーザ・アプリケーション・プログラム201及びユーザ・アプリケーション・プログラム201と関連されたデータを検査する。もし、前記ユーザ・アプリケーション・プログラム201または前記データが変調された場合には前記ユーザ・アプリケーション・プログラム201またはデータがハッキングまたはクラッキングされたものと認められるためこれをサーバ104へ報告する。前記変調の可否の判断はCRCチェック(周期冗長検査)等データの変調可否をチェックする多様な方法が用いられる。従って、本発明によれば、ユーザ・アプリケーション・プログラムのハッキングまたはクラッキングの如何を確認してこれに対する適切な対応ができる。本発明によるユーザ・アプリケーション・プログラム及びデータの検査は一定の時間間隔で行われることもできる。
【0026】
本発明のもう一つの実施例によれば、ユーザ・アプリケーション・プログラム201からのファイル読出し要請をフッキングし、所定の時間間隔でサーバ104に接続して所定の認証を行う。前記所定の時間間隔は一定の時間間隔の場合もあり、一定でない時間間隔である場合もある。前記認証は前記ユーザ・アプリケーション・プログラムのユーザが適法なユーザであるのかに関する認証である。もし、前記認証が失敗すればそれ以後のユーザ・アプリケーション・プログラムのファイル読出し要請に対してオンラインストリーミングファイル入出力API関数は如何なる処理も行わないか、またはエラーをユーザディスプレイに表示してユーザ・アプリケーション・プログラムが適切に行われることができないようにする。本実施例によれば、ユーザの不法複製等による不法なプログラムの使用を防ぐことができる。また、本発明によればパッケージプログラムを手軽にオンライン化して使用時間に比例した課金を行うことができる。即ち、パッケージプログラムは使用時間による課金が困難であるが、これを本発明によってオンライン化し、ユーザ・アプリケーション・プログラムの使用時間をサーバ104で管理することによって、使用者に対して使用時間による課金を行うことができる。普通のパッケージゲームの場合、1ヶ月程度でゲームを全て終わらせてそれ以上ゲームをしない場合が多いため、1ヶ月程度の使用料金だけをユーザが支払えば前記ゲームを楽しむことができる。従って、ユーザは低廉な費用でゲームプログラムが楽しめるという長所がある。
【0027】
図4は本発明によってクライアントコンピュータで行われるユーザ・アプリケーション・プログラムからのファイル書込み要請を処理する順序を示したフローチャートである。
【0028】
段階401でユーザ・アプリケーション・プログラム201からファイル書込み要請を受信し、これをフッキング(hooking)する。即ち、ユーザ・アプリケーション・プログラム201WriteFile()関数を実行することになるが、前記WriteFile()関数の実行がフッキングされて本発明によるオンラインストリーミングファイル入出力API関数が実行される。前記WriteFile()関数に対応するオンラインストリーミングファイル入出力API関数はオンラインストリーミングファイルライブラリー202に格納される。
【0029】
本発明によるオンラインストリーミングファイル入出力API関数は、段階402で、前記ユーザ・アプリケーション・プログラム201が書込み要請したファイルをサーバ104へアップロード(Upload)する必要があるのか否かを判断する。もし、前記ユーザ・アプリケーション・プログラム201が書込み要請したファイルをサーバ104にアップロードする必要がなければ、段階404で前記ユーザ・アプリケーション・プログラム201は前記書込み要請したファイルをローカルクライアントコンピュータに格納する。例えば、ユーザに依存するデータの中でサーバ104で管理する必要のないデータはローカルクライアントコンピュータにのみ格納されて管理されることができる。このように如何なるデータがサーバにアップロードされる必要があるのかの可否は本発明によるコンピュータプログラムの提供者が決定してそれにともなうロジックが前記オンラインストリーミングファイル入出力API関数に含まれる。
【0030】
もし、前記ユーザ・アプリケーション・プログラム201が書込み要請したファイルがサーバ104にアップロードする必要があれば、オンラインストリーミングファイル入出力API関数段階403でネットワークインターフェース203を介して所定のサーバ104に接続する。前記所定のサーバ104は前記クライアントコンピュータとネットワークを介して連結される。
【0031】
段階405でオンラインストリーミングファイル入出力API関数はサーバ104にアップロードするファイルのデータをローカルクライアントコンピュータにキャッシングする。このようなキャッシングを介して同一のデータを読み出せるようになる場合、再びサーバ104からダウンロードしなくても良いため、プログラムの実行の効率性を高める。
【0032】
段階406でオンラインストリーミングファイル入出力API関数はアップロードするファイルのデータをサーバ104にアップロードする。
【0033】
図5は本発明によってユーザ・アプリケーション・プログラムが接近するファイル内のデータブロックをプロファイルリング(profiling)して優先ファイル(priority fi1e)を構成する場合、データブロックと優先ファイルの関係を示した図面である。
【0034】
本実施例の説明を容易にするために、ユーザ・アプリケーション・プログラムはゲームをプレーするプログラムでプログラム名をgame.exeと仮定し、前記game.exeが必要とするデータファイルの中の一つをdatal.datと仮定する。前記datal.datは10Mbyteのサイズのデータファイルである。前記game.exeのメイン関数は一部修正されてファイル入出力API関数はオンラインストリーミングファイル入出力API関数によってフッキングされる。
【0035】
まず、ユーザ・アプリケーション・プログラムが順番に参照するデータを探すためにプロファイルリング(profiling)する段階を説明する。
【0036】
ユーザ・アプリケーション・プログラム201を実行させながら、前記ユーザ・アプリケーション・プログラム201が参照するデータを識別する。本発明の一実施例によれば、前記ユーザ・アプリケーション・プログラム201が実行されながら一定時間の間に参照されるデータを纏めて一つのファイルに格納するが、これは本発明での優先ファイル(priority file)の一つの例である。優先ファイルは一つのファイル内に格納された一部のデータまたは複数のファイル内に格納された一部のデータの組合わせであることも有り得る。即ち、ファイル1に含まれたデータブロックA、ファイル2に含まれたデータブロックBを組み合わせて優先ファイルの一つを生成することができる。このようにすると、ユーザ・アプリケーション・プログラムを実行しながらダウンロードされるデータの構造を把握することが困難であるため、ハッキング及びクラッキングが更に難しくなるという長所がある。
【0037】
Game.exeを実行しながら5秒単位で参照されたデータを纏めて一つの優先ファイルを生成する。例えば、game.exeを実行して0秒から5秒内に読み出し要請が発生したデータがdata1.datファイルのオフセット100から1024バイトのサイズのデータであれば、 前記data1.datファイルのオフセット100から1024バイトのサイズのデータを優先ファイル0の502へ格納する。次のgame.exeが実行されて5秒から10秒の間に読出し要請が発生したデータは優先ファイル1に格納される。図5の実施例はgame.exeが実行されて5秒から15秒の間に発生した読出し要請がない場合である。Game.exeが実行されて15秒から20秒の間に読出し要請が発生したデータがdata1.datファイルのオフセット2000から4096バイトのサイズのデータであるが、これは優先ファイル3の503に格納される。本実施例では5秒単位で読出し要求が発生したデータを一つずつのファイルに格納し、読出し要求がない場合には、優先ファイルを生成せず、優先ファイルの番号だけを増加させたが、本発明のもう一つの実施例によれば、前記時間単位を異にするか、優先ファイルの生成方法を異にすることもできる。例えば、優先ファイル0の生成後、その後に生成される優先ファイルは優先ファイル1、2などの順にして中間に空いている優先ファイルが無いようにすることもできる。いずれの場合にもユーザ・アプリケーション・プログラムが実行されればまず要求される可能性の高いデータを優先順位の高いデータとして指定して用いる。即ち、優先順位別に別途のファイルとして管理することもでき、一つのファイル内で各データブロック別に優先順位だけを与え、この優先順位だけを管理して必要なデータブロックを読み出してユーザ・アプリケーション・プログラムへ提供することもできる。このように生成された優先ファイルはサーバ104に格納される。
【0038】
本発明のもう一つの実施例によれば、プログラムの実行中に要求される可能性の高いデータブロックの順に優先順位を与えるのではなく、データのサイズなど異なる要素を考慮して優先順位を定めることができる。ユーザ・アプリケーション・プログラムからのデータ読出し要求がある場合に優先順位の異なるデータが要求された場合には優先順位の高いデータの順にデータ読出し要求を処理し、同一の優先順位に対しては先に要求されたデータ読出し要求を行う。
【0039】
また、本発明のもう一つの実施例によれば、このような優先順位によって優先順位の高い場合にはユーザ・アプリケーション・プログラムからのデータ読出し要求を受信して直ぐに該当データをサーバ104から受信するが、優先順位が低い場合には隣接した他のクライアントコンピュータからバックグラウンドP2Pを用いてダウンロードする。
【0040】
このように優先ファイルを生成しておけば、ユーザ・アプリケーション・プログラムが始まると、必要なデータの順に優先ファイルが生成されることになる。従って、統計的にユーザ・アプリケーション・プログラムが優先ファイル0の次には優先ファイル3のデータを要求することが予想されるため、ユーザ・アプリケーション・プログラムが読出し要求をしていない間、例えば前記実施例でgame.exe開始の後、5秒から15秒の間に、優先ファイル3をバックグラウンドで予めローカルクライアントコンピュータにダウンロードしておけば、ユーザがユーザ・アプリケーション・プログラムを実行する時に必要なデータが予めローカルクライアントコンピュータにダウンロードされているために、必要時になってダウンロードを待つ必要がない。
【0041】
また、各ユーザによってユーザ・アプリケーション・プログラムを実行しながら互いに異なる命令を先に行うことができるために、各ユーザ・アプリケーション・プログラムが要請するデータの順序が互いに異なることが有り得る。本発明のもう一つの実施例によれば、このような場合を対比して多数のユーザのユーザ・アプリケーション・プログラム使用パターンを分析してこれを反映し、優先ファイルを生成する。このために従来技術による多様な統計学的方法が用いられる。例えば、多数のユーザにユーザ・アプリケーション・プログラムを実行させるようにし、各ユーザによる要請データを分析して先に要求されるデータであればあるほど一定の加重値を与え、各時間帯別に最も多く要請されたデータをその時間帯の優先ファイルとして格納することができる。本発明のもう一つの実施例によれば、最初にはまず任意に優先ファイルを生成した後、ユーザがユーザ・アプリケーション・プログラムを使用しながらサーバ104に要請するデータの頻度を見て、最も多く要求されるデータの順に優先順位を与えて優先ファイルを生成しておく。
【0042】
図6は、本発明の一実施例によって構成されたインデックステーブルを示した図面である。
【0043】
インデックステーブル(index table)600は優先ファイルが如何なるオフセットから如何なるサイズのデータブロックに対応するのかに関する情報を含み、前記プロファイリング時に生成される。図6のインデックステーブルはデータファイルが一つであると仮定し、データファイルに関する情報が含まれていないが、データファイルが複数の個人の場合には優先ファイルに対応するデータファイルが何であるかに関する情報も含む。図6は図5のプロファイリングによって構成された優先ファイルに対するインデックステーブル600である。
【0044】
ここで、図6のインデックステーブル600及び図3を参照してユーザプログラムがデータ読出し要請をした場合の処理について詳細に説明する。
【0045】
ユーザ・アプリケーション・プログラムであるgame.exeがデータファイルであるdata1.datのオフセット2500から1024バイトのデータを要求するファイル読出し要請をした場合を例に挙げて説明する。ユーザ・アプリケーション・プログラムはReadFile()関数を使用して特定ファイルの特定オフセットから一定のサイズのデータの読出しを要請することができる。このようなユーザ・アプリケーション・プログラムのReadFile()関数はオンラインストリーミングファイル入出力API関数によってフッキングされる。
【0046】
オンラインストリーミングファイル入出力API関数は前記要求されるデータがどの優先ファイルに格納されているのかを判断するためにインデックステーブル600を参照する。インデックステーブル600を参照した結果、前記データに対応する優先ファイルは優先ファイル3であることが識別される。オンラインストリーミングファイル入出力API関数は前記優先ファイル3がローカルクライアントコンピュータに格納されているのかを確認する。
【0047】
もし、前記優先ファイル3が前記ローカルクライアントコンピュータに格納されていれば、前記ファイルのデータを読み出してgame.exeが要請した1024バイトの大きさのデータだけをgame.exeへ伝達する。
【0048】
もし、優先ファイル3がローカルクライアントコンピュータに格納されていなければ、オンラインストリーミングファイル入出力API関数はネットワークインターフェース203を介して所定のサーバ104に接続する。前記所定のサーバは前記クライアントコンピュータとネットワークを介して連結されて全ての優先ファイルを格納している。本発明の一実施例によれば前記サーバ104は優先ファイルに含まれていないデータも全て格納する。
【0049】
オンラインストリーミングファイル入出力API関数はサーバ104から優先ファイル3を受信し、前記受信された優先ファイル3をローカルクライアントコンピュータにキャッシングする。このようなキャッシングを通じてユーザ・アプリケーション・プログラムが優先ファイル3に含まれた異なるデータを要請する場合に再び優先ファイル3をダウンロードする必要がなくなる。
【0050】
オンラインストリーミングファイル入出力API関数はサーバ104から受信した優先ファイル3を読み出してその中のgame.exeが要求したデータをユーザ・アプリケーション・プログラム201へ伝達する。そうすれば、ユーザ・アプリケーション・プログラム201は引続き行われるようになる。
【0051】
以上の実施例において、ユーザ・アプリケーション・プログラムからファイルに対する読出し要請を受信する構成はユーザ・アプリケーション・プログラムからのファイル読出し要請をフッキング(hooking)する方法として説明された。しかし、本記載によって、本発明が属する技術分野で通常の知識を有する者はフッキングだけでなく、ファイル入出力関数を他の関数でマッピングする関数再マッピング(function re−mapping)方法を用いて本発明を具現することもでき、他の均等範囲内の他の方法を採用することもできる。
【0052】
また、本発明の実施例は多様なコンピュータで具現化される動作を行うためのプログラム命令を含むコンピュータ読出し可能媒体を含む。前記コンピュータ読出し可能媒体はプログラム命令、データファイル、データ構造などを単独または組み合わせで含むことができる。前記媒体はプログラム命令は本発明のために特別に設計されて構成されたものであるか或いはコンピュータソフトウェア当業者に公知されて使用可能なものである場合もある。コンピュータ読出し可能書込み媒体の例にはハードディスク、フロッピー(登録商標)ディスク及び磁気テープのような磁気媒体(magnetic media)、CD−ROM、DVDのような光書込み媒体(optical media)、フロップティカルディスク(floptical disk)のような磁気−光媒体(magneto−optica1 media)、及びROM、RAM、フラッシュメモリなどのようなプログラム命令を格納して行うように特別に構成されたハードウェア装置が含まれる。前記媒体はプログラム命令、データ構造などを指定する信号を伝送する搬送波を含む光または金属線、導波管などの伝送媒体の場合もある。プログラム命令の例にはコンパイラ−によって作られるもののような機械語コ−ドだけでなく、インタプリ−タ等を使用してコンピュータによって行われることのできる高級言語コ−ドを含む。
【0053】
上記において、本発明の好適な実施の形態について説明したが、本発明の請求範囲を逸脱することなく、当業者は種々の改変をなし得るであろう。
【0054】
【発明の効果】
本発明によれば、従来のパッケージ形態のソフトウェア製品を手軽にオンラインソフトウェア化してオンラインストリーミングの効果をもたらし、ネットワークを通じてサーバとの連結を維持することによって外部からのハッキング及びクラッキングを効果的に防止し、不法的なソフトウェアの使用を防止することができる。
【0055】
また、本発明は従来のパッケージソフトウェアを手軽にオンライン化することによって、周期的に前記パッケージソフトウェアの不法複製の可否を監視することができ、もし不法複製製品である場合には前記パッケージソフトウェアの動作を停止させることによって、不法複製を防ぐことができる。また、本発明によれば、パッケージソフトウェアをオンライン化することによってパッケージソフトウェアの課金を使用時間当り課金を可能にする。
【0056】
また、本発明によれば、オンラインソフトウェアでファイル全体ではなく、ファイルのブロック単位でダウンロードして初期にダウンロードすべきデータを最小化することによって、ユーザが初期に手軽にゲームを楽しむようにする。即ち、本発明によれば、プログラムの開始前に全てのプログラムデータがローカルコンピュータに格納されていなくても実行できるし、オンデマンドなデータ要求を可能にする。
【0057】
また、本発明によれば、オンラインソフトウェアが要求するデータのパターンを調査し、これによってダウンロードされるデータを最適化し、ユーザ・アプリケーション・プログラムがデータの読出しを要請しない場合にも、前記調査されたデータのパターンによって予めダウンロードすることによってユーザがデータのダウンロードのために待つ時間を最小化し、且つサーバの帯域幅使用を最小化する。
【図面の簡単な説明】
【図1】本発明に係るクライアントコンピュータとファイルサーバのネットワーク連結を示した図である。
【図2】本発明に係るクライアントコンピュータに含まれたユーザ・アプリケーション・プログラム、オンラインストリーミングファイルライブラリー及びネットワークインターフェースの関係を示したブロック図である。
【図3】本発明に係るクライアントコンピュータで行われるユーザ・アプリケーション・プログラムからのファイル読出し要請を処理する順序を示したフローチャートである。
【図4】本発明に係るクライアントコンピュータで行われるユーザ・アプリケーション・プログラムからのファイル書込み要請を処理する順序を示したフローチャートである。
【図5】本発明に係るユーザ・アプリケーション・プログラムが接近するファイル内のデータブロックをプロファイリングして優先ファイルを構成する場合、データブロックと優先ファイルとの関係を示した図である。
【図6】本発明の一実施例によって構成されたインデックステーブルを示した図である。
【符号の説明】
102、103:クライアントコンピュータ
104:サーバ
201:ユーザ・アプリケーション・プログラム
202:オンラインストリーミングファイルライブラリー
203:ネットワークインターフェース
501:データファイル
502、503、504:優先ファイル

Claims (18)

  1. クライアントコンピュータで実行されるユーザ・アプリケーション・プログラムを制御するための方法であって、
    ユーザ・アプリケーション・プログラムからのファイルに対するファイル読出し要請を受信する段階と、
    前記ファイルが前記クライアントコンピュータに格納されているかを判断する段階と、
    前記ファイルが前記クライアントコンピュータに格納されていれば、前記ファイルのデータを前記ユーザ・アプリケーション・プログラムへ伝達する段階と、
    前記ファイルが前記クライアントコンピュータに格納されていなければ、前記ファイルが格納されている、前記クライアントコンピュータとネットワークを通じて連結された所定のサーバから前記ファイルのデータの中で一部のデータを受信して前記クライアントコンピュータに格納されて前記受信されたデータを前記ユーザ・アプリケーション・プログラムへ伝達する段階とを含むことを特徴とする、ユーザ・アプリケーション・プログラム制御方法。
  2. 前記ファイルのデータの中で一部のデータの受信は、前記ファイルのオフセット及び前記一部のデータのサイズを用いて行われることを特徴とする、請求項1に記載のユーザ・アプリケーション・プログラム制御方法。
  3. 前記一部のデータだけを受信し、前記ファイルの全てのデータを受信していない状態で前記ユーザ・アプリケーション・プログラムを継続して実行する段階を更に含む、請求項1に記載のユーザ・アプリケーション・プログラム制御方法。
  4. 前記ユーザ・アプリケーション・プログラムからのファイルに対するファイル読出し要請を受信する段階は、前記ユーザ・アプリケーション・プログラムからの前記ファイルに対する前記ファイル読出し要請をフッキングするかまたは前記ファイル読出し要請を処理する本来の関数を他の関数にマッピングする段階を含む、請求項1に記載のユーザ・アプリケーション・プログラム制御方法。
  5. 前記ファイルが格納されている所定のサーバから前記ファイルのデータを受信して前記クライアントコンピュータにキャッシングする段階を更に含む、請求項1に記載のユーザ・アプリケーション・プログラム制御方法。
  6. 前記ファイルを格納している第2のクライアントコンピュータを識別する段階と、
    前記第2のクライアントコンピュータから前記ファイルを受信して前記ユーザ・アプリケーション・プログラムに伝達する段階とを更に含むことを特徴とする、請求項1に記載のユーザ・アプリケーション・プログラム制御方法。
  7. 前記ユーザ・アプリケーション・プログラムからのファイルに対するファイル読出し要請を受信しない場合、前記ユーザ・アプリケーション・プログラムが必要とするものと予想されるデータを前記データを格納している第2のクライアントコンピュータから受信して格納する段階を更に含むことを特徴とする、請求項1に記載のユーザ・アプリケーション・プログラム制御方法。
  8. 前記ユーザ・アプリケーション・プログラムが必要とすると予想されるデータの判断は以前に前記ユーザ・アプリケーション・プログラムを実行した場合、前記ユーザ・アプリケーション・プログラムが要求していたデータに基づいて決定されることを特徴とする、請求項7に記載のユーザ・アプリケーション・プログラム制御方法。
  9. クライアントコンピュータで行われるユーザ・アプリケーション・プログラムを制御するための方法であって、
    ユーザ・アプリケーション・プログラムからのファイルに対するファイル書込み要請を受信する段階と、
    前記ファイルが前記クライアントコンピュータとネットワークを通じて連結された所定のサーバにアップロードされる必要があるかどうかを判断する段階と、
    前記ファイルが前記所定のサーバにアップロードされる必要があれば、前記ファイルを前記所定のサーバにアップロードする段階と、
    前記ファイルが前記所定のサーバにアップロードされる必要がなければ、前記クライアントコンピュータに前記ファイルを書込む段階とを含むことを特徴とする、ユーザ・アプリケーション・プログラム制御方法。
  10. ユーザ・アプリケーション・プログラムを制御するための方法であって、
    前記ユーザ・アプリケーション・プログラムからのファイルに対するファイル読出し要請を受信する段階と、
    前記ファイル読出し要請に応じてクライアントコンピュータに格納された前記ユーザ・アプリケーション・プログラム及び前記ユーザ・アプリケーション・プログラムと関連されたデータを検査する段階と、
    前記検査の結果、前記ユーザ・アプリケーション・プログラム及び前記データが変調された場合、これを前記クライアントコンピュータとネットワークを介して連結された所定のサーバに報告する段階とを含むことを特徴とする、ユーザ・アプリケーション・プログラム制御方法。
  11. 前記検査する段階は周期冗長検査を用いる検査をすることを特徴とする、請求項10に記載のユーザ・アプリケーション・プログラム制御方法。
  12. ユーザ・アプリケーション・プログラムを制御するための方法であって、
    前記ユーザ・アプリケーション・プログラムからのファイルに対するファイル読出し要請を受信する段階と、
    所定の時間間隔で所定のサーバに接続して所定の認証を行う段階と、
    前記認証が行われない場合、前記ファイル読出し要請を処理しないことによって前記ユーザ・アプリケーション・プログラムが行われないようにする段階
    とを含む、ユーザ・アプリケーション・プログラム制御方法。
  13. 前記ユーザ・アプリケーション・プログラムのユーザに対する課金を前記ユーザの前記ユーザ・アプリケーション・プログラムの使用時間に基づいて行うことを特徴とする、請求項12に記載のユーザ・アプリケーション・プログラム制御方法。
  14. クライアントコンピュータで実行されるユーザ・アプリケーション・プログラムを制御するための方法であって、
    ユーザ・アプリケーション・プログラムが接近するデータファイル内の複数のデータブロックのうち少なくとも一つを所定のサーバに優先ファイルとして格納する段階と、
    前記複数のデータブロックに対するオフセット、データブロックのサイズ及び前記データブロックに関連される優先ファイル識別子をインデックス格納手段に格納する段階と、
    前記ユーザ・アプリケーション・プログラムからの前記データファイルの中の任意のデータブロックに対する読出し要求を受信する段階と、
    インデックス格納手段を参照して前記任意のブロックに対応する優先ファイルを識別する段階と、
    前記所定のサーバから前記優先ファイルを受信して前記ユーザ・アプリケーション・プログラムに伝達する段階とを含むことを特徴とする、ユーザ・アプリケーション・プログラム制御方法。
  15. 前記優先ファイルを格納している第2のクライアントコンピュータを識別する段階と、
    前記第2のクライアントコンピュータから前記優先ファイルを受信する段階とを更に含むことを特徴とする、請求項14に記載のユーザ・アプリケーション・プログラム制御方法。
  16. 前記ユーザ・アプリケーション・プログラムからのファイルに対するファイル読出し要請を受信しない場合、前記ユーザ応答プログラムが必要とするものと予想される優先ファイルを前記優先ファイルを格納している第2のクライアントコンピュータから受信して格納する段階を更に含むことを特徴とする、請求項14に記載のユーザ・アプリケーション・プログラム制御方法。
  17. 前記ユーザ・アプリケーション・プログラムが必要とするものと予想される優先ファイルの判断は、以前に前記ユーザ・アプリケーション・プログラムを実行した場合に、前記ユーザ・アプリケーション・プログラムが要求していた優先ファイルに基づいて決定されることを特徴とする、請求項16に記載のユーザ・アプリケーション・プログラム制御方法。
  18. 請求項1乃至17の中のいずれか一つに記載の方法を実行するプログラムを書込んだコンピュータ読出し可能な書込み媒体。
JP2003206626A 2003-01-22 2003-08-08 ユーザ・アプリケーション・プログラムの制御方法 Pending JP2004227559A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020030004366A KR100408758B1 (en) 2003-01-22 2003-01-22 Method for controlling user application program

Publications (1)

Publication Number Publication Date
JP2004227559A true JP2004227559A (ja) 2004-08-12

Family

ID=32709932

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003206626A Pending JP2004227559A (ja) 2003-01-22 2003-08-08 ユーザ・アプリケーション・プログラムの制御方法

Country Status (5)

Country Link
US (1) US20040143586A1 (ja)
JP (1) JP2004227559A (ja)
KR (1) KR100408758B1 (ja)
CN (1) CN100416558C (ja)
HK (1) HK1068702A1 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010044850A1 (en) * 1998-07-22 2001-11-22 Uri Raz Method and apparatus for determining the order of streaming modules
US7735057B2 (en) * 2003-05-16 2010-06-08 Symantec Corporation Method and apparatus for packaging and streaming installation software
US20070254742A1 (en) * 2005-06-06 2007-11-01 Digital Interactive Streams, Inc. Gaming on demand system and methodology
US7887420B2 (en) * 2005-09-12 2011-02-15 Igt Method and system for instant-on game download
US9405521B2 (en) * 2006-06-29 2016-08-02 Microsoft Technology Licensing, Llc Mapping of virtualized setup-free applications for a computing system
GB2440760A (en) * 2006-08-11 2008-02-13 Cachelogic Ltd Network and method of transferring data over the network by nodes sending messages containing a subset of list of data available at the node
KR101368327B1 (ko) * 2006-12-22 2014-02-26 삼성전자주식회사 프로그램 실행흐름 보고 시스템 및 방법
CN101459571B (zh) * 2008-12-16 2011-04-06 北京大学 一种网站镜像的方法、系统及装置
KR101598177B1 (ko) * 2014-04-15 2016-03-07 정성현 내부 통신망을 통한 해킹 시도의 조기 검출 방법 및 이에 사용되는 보안 서버
CN104317813A (zh) * 2014-09-25 2015-01-28 珠海市君天电子科技有限公司 转换应用程序名称的方法、客户端、服务器端及系统
US10776268B2 (en) * 2018-04-19 2020-09-15 Western Digital Technologies, Inc. Priority addresses for storage cache management

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5928323A (en) * 1996-05-30 1999-07-27 Sun Microsystems, Inc. Apparatus and method for dynamically generating information with server-side software objects
CN1298149A (zh) * 1999-11-25 2001-06-06 戴尔美国公司 工厂软件管理系统
TW484098B (en) * 2000-03-09 2002-04-21 Ibm System, method and program for ordered anticipatory caching of linked files in a client/server network
US6959320B2 (en) * 2000-11-06 2005-10-25 Endeavors Technology, Inc. Client-side performance optimization system for streamed applications
US20020147827A1 (en) * 2001-04-06 2002-10-10 International Business Machines Corporation Method, system and computer program product for streaming of data
US7440994B2 (en) * 2001-07-06 2008-10-21 Intel Corporation Method and apparatus for peer-to-peer services to shift network traffic to allow for an efficient transfer of information between devices via prioritized list
EP1276292B1 (en) * 2001-07-13 2018-01-03 Hewlett-Packard Development Company, L.P. File transfer protocol
US7617272B2 (en) * 2001-09-24 2009-11-10 Loudeye Corp. Systems and methods for enhancing streaming media
US7124152B2 (en) * 2001-10-31 2006-10-17 Seagate Technology Llc Data storage device with deterministic caching and retention capabilities to effect file level data transfers over a network
CN1172236C (zh) * 2001-11-29 2004-10-20 上海格尔软件股份有限公司 安全电子邮件与Outlook Express集成的方法

Also Published As

Publication number Publication date
US20040143586A1 (en) 2004-07-22
CN1517916A (zh) 2004-08-04
KR100408758B1 (en) 2003-12-11
HK1068702A1 (en) 2005-04-29
CN100416558C (zh) 2008-09-03

Similar Documents

Publication Publication Date Title
US20140019592A1 (en) Method and system for optimizing download and instantaneous viewing of media files
JP7297769B2 (ja) プリキャシュのためのクライアント・マシン間でのシェーダの配布
US8880651B2 (en) Method and system for efficient download of data package
JP6470361B2 (ja) ダウンロード可能コンテンツの転送を最適化するシステム及び方法
KR101189115B1 (ko) 서버 클라이언트 시스템, 정보처리장치, 정보처리방법과,컴퓨터 프로그램
US8756694B2 (en) Prevention of exploitation of update rollback
US9930105B2 (en) Methods, systems, and media for stored content distribution and access
US20100016081A1 (en) Game server
JP2004227559A (ja) ユーザ・アプリケーション・プログラムの制御方法
US20100016082A1 (en) Game user apparatus
KR20130028903A (ko) 대화형 결정 지향적 소프트웨어 애플리케이션을 위한 데이터 스트리밍
RU2376660C2 (ru) Система и способ аутентификации интерактивного оптического диска
KR20220153592A (ko) 비디오 게임의 인스턴트 플레이를 위한, 그리고 클라이언트 측 게임 데이터의 폐기와 프리페치를 위한 파일 시스템 판독 작동 추적
CN113110849A (zh) 按需加载资源
US10717011B2 (en) Read redirection of physical media
KR101208323B1 (ko) 스트리밍을 제공하는 방법, 모바일 단말기 및 기록매체
KR20130011836A (ko) 게임 보조 프로그램 제공 서버, 시스템 및 그 방법
KR101456389B1 (ko) 게임 보조 프로그램 제공 서버, 시스템 및 그 방법
KR20060103733A (ko) 사용자 컴퓨터에서 실행되는 응용프로그램의 제어방법
JP2009175865A (ja) 端末、サーバ、コンテンツ配信システム、コンテンツ無効化方法、プログラムおよび記録媒体
KR20100067977A (ko) 컨텐츠 파일의 효율적인 다운로드 방법

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060530

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20060830

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20060905

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061107

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061212

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070307

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070316

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070612

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070717