JP2004287631A - ダウンロードサービスシステム、端末、指令列の実行方法、ならびに、プログラム - Google Patents
ダウンロードサービスシステム、端末、指令列の実行方法、ならびに、プログラム Download PDFInfo
- Publication number
- JP2004287631A JP2004287631A JP2003076696A JP2003076696A JP2004287631A JP 2004287631 A JP2004287631 A JP 2004287631A JP 2003076696 A JP2003076696 A JP 2003076696A JP 2003076696 A JP2003076696 A JP 2003076696A JP 2004287631 A JP2004287631 A JP 2004287631A
- Authority
- JP
- Japan
- Prior art keywords
- file
- library
- downloaded
- sector
- command
- 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
Images
Landscapes
- Information Transfer Between Computers (AREA)
- Stored Programmes (AREA)
Abstract
【解決手段】ダウンロードサーバ装置11は、複数の端末12にダウンロードさせるべきファイルの入力を受け付け、入力を受け付けられたファイルを複数に分割し、分割された結果(以下、それぞれを「セクタ」という。)のそれぞれと、当該セクタの当該ファイルにおける位置と、の対を、送信し、複数の端末12のそれぞれは、ダウンロードサーバ装置11から送信される対を受信し、受信された対に指定されたセクタと、当該セクタの当該ファイルにおける位置と、を取得し、取得されたセクタの内容を、ダウンロードすべきファイルを復元するための記憶域のうち取得された位置に、記憶させ、当該記憶域中にすべてのセクタの内容が記憶された場合、当該記憶域に記憶された内容をダウンロードされたファイルとする。
【選択図】 図1
Description
【発明の属する技術分野】
本発明は、ダウンロードサービスシステム、端末、指令列の実行方法、ならびに、プログラムに関する。
【0002】
【従来の技術】
インターネットの基盤技術の急速な普及にともない、パーソナルコンピュータやゲーム装置など、種々の情報処理装置がインターネットに接続されるようになっている。そして、その情報処理装置やその周辺機器用のプログラムやドライバソフトウェアなど、当該情報処理機器等のCPU(Central Processing Unit)等で実行される指令列(プログラムや動的ロード可能ライブラリも、この指令列によって表現される。)をその主な内容とするファイルが、インターネット内のダウンロードサーバ装置からコンピュータ通信網を介して提供されるのが一般的になってきている。
【0003】
たとえば、コンピュータ用のOS(Operating System)やアプリケーションの修正プログラムやコンピュータ用の周辺機器のドライバソフトウェアは、インターネット内の所定のウェブサイトにユーザが当該コンピュータを用いてアクセスし、そのウェブサイトからファイルをダウンロードし、当該ファイルを(適宜展開等して)実行し、必要に応じてコンピュータを再起動することによって、当該コンピュータで利用できるようになる。
【0004】
また、近年注目を集めつつあるオンラインネットワークゲームでは、ゲーム装置で実行されるプログラム全体や動的に実行可能なライブラリなどプログラムの一部として機能するもののほか、当該ゲームで用いられる各種のデータなどを、当該ゲーム装置が所定のウェブサイトにアクセスしてダウンロードするような形態がとられている。
【0005】
このようなダウンロード形態では、アプリケーションの修正プログラムを利用できるようにするには、当該アプリケーションを停止させなければならず、OSの修正プログラムやドライバソフトウェアでは、OSの停止(コンピュータの再起動)が必要となる場合が多々ある。また、一般に、ユーザが自発的に修正プログラムのダウンロードを行わなければならない場合が多い。さらに、このような修正プログラムのダウンロードは、一時期に集中して行われることが多い。
【0006】
【発明が解決しようとする課題】
そこで、このようなダウンロードにおいても、できるだけ情報処理装置の運用を維持したまま(たとえば、OSの再起動やゲームの中断をせずに)、必要に応じて適宜修正プログラムやライブラリ等のファイルをダウンロードして情報処理装置で利用できるようにしたいという要望は大きい。また、ダウンロードによるアクセス集中を緩和する手法も求められている。
【0007】
本発明は、このような課題を解決するためになされたもので、動的ロード可能ライブラリを含む各種のファイルを端末にダウンロードさせて利用させるのに好適なダウンロードサービスシステム、端末、当該端末における指令列の実行方法、ならびに、プログラムを提供することを目的とする。
【0008】
【課題を解決するための手段】
以上の目的を達成するため、本発明の原理にしたがって、下記の発明を開示する。
【0009】
本発明の第1の観点に係るダウンロードサービスシステムは、ダウンロードサーバ装置と、複数の端末と、を備え、以下のように構成する。ここで、複数の端末は、典型的には同種の端末であり、ダウンロードサーバ装置から同じファイルをダウンロードすることが期待される情報処理装置である。
【0010】
まず、ダウンロードサーバ装置は、複数の端末にダウンロードさせるべきファイルの入力を受け付け、入力を受け付けられたファイルを複数に分割し、分割された結果(以下、それぞれを「セクタ」という。)のそれぞれと、当該セクタの当該ファイルにおける位置と、の対を、送信する。すなわち、ダウンロードさせるファイルを複数のセクタに分割し、当該セクタのそれぞれの当該ファイルにおける位置(典型的には、追番やファイルの先頭からのオフセット)とともに、これをブロードキャスト型の通信形態で送信する。また、送信の形態としては、複数の端末に対して同時に同じ内容を送信する、いわゆる「放送型」の送信を採用することができる。
【0011】
一方、複数の端末のそれぞれは、ダウンロードサーバ装置から送信される対を受信し、受信された対に指定されたセクタと、当該セクタの当該ファイルにおける位置と、を取得し、取得されたセクタの内容を、ダウンロードすべきファイルを復元するための記憶域のうち取得された位置に、記憶させ、当該記憶域中にすべてのセクタの内容が記憶された場合、当該記憶域に記憶された内容をダウンロードされたファイルとする。すなわち、ブロードキャスト型の通信形態で送信されたセクタとそのファイル内における位置を適宜受信し、受信するごとに当該位置にセクタを配置して、すべてのセクタの受信と配置が終わったことをもって、ファイルのダウンロードができることとなる。
【0012】
本発明により、端末からのファイルをダウンロードしたい旨の要求に対して、ダウンロードサーバ装置が当該ファイルを応答として返す形態の通信手法ではなく、ファイルの断片であるセクタを送信によって端末へ伝送する手法を採用することができ、これによって、端末が当該セクタの受信や当該ファイルのダウンロードに成功した旨を通知する必要も、ダウンロードサーバ装置がこれを確認する必要もないダウンロードサービスシステムを構築することが可能となる。
【0013】
本発明の他の観点に係るダウンロードサービスシステムは、複数のダウンロードサーバ装置と、複数の端末と、を備え、以下のように構成する。ここで、複数の端末は、典型的には同種の端末であり、ダウンロードサーバ装置から同じファイルをダウンロードすることが期待される情報処理装置である。また、複数のダウンロードサーバ装置は、いずれも同じファイルに対するダウンロードサービスを提供する。
【0014】
まず、複数のダウンロードサーバ装置のそれぞれは、複数の端末にダウンロードさせるべきファイルの入力を受け付け、入力を受け付けられたファイルを複数に分割し、分割された結果(以下、それぞれを「セクタ」という。)のそれぞれと、当該セクタの当該ファイルにおける位置と、の対を、送信する。すなわち、上記発明と同様に、ダウンロードさせるファイルを複数のセクタに分割し、当該セクタのそれぞれの当該ファイルにおける位置とともに、これをブロードキャスト型の通信形態で送信する。
【0015】
一方、複数の端末のそれぞれは、ダウンロードサーバ装置のいずれかから送信される対を受信し、受信された対に指定されたセクタと、当該セクタの当該ファイルにおける位置と、を取得し、取得されたセクタの内容を、ダウンロードすべきファイルを復元するための記憶域のうち取得された位置に、記憶させ、ダウンロードすべきファイルのすべてのセクタの内容が当該記憶域中に記憶された場合、当該記憶域に記憶された内容をダウンロードされたファイルとする。すなわち、上記発明と同様に、ブロードキャスト型の通信形態で送信されたセクタとそのファイル内における位置を適宜受信し、受信するごとに当該位置にセクタを配置して、すべてのセクタの受信と配置が終わったことをもって、ファイルのダウンロードができることとなる。ただし、ダウンロードサーバ装置が複数あるため、そのいずれからセクタと位置の対を受信することも可能である。
【0016】
そして、複数のダウンロードサーバ装置が同時に送信する対がある場合、当該対に指定される位置は、互いに異なる。すなわち、複数のダウンロードサーバ装置は、同じセクタを同時には送信しない。たとえば、100台のダウンロードサーバ装置があり、これが同じファイルのダウンロードサービスを行う場合、ファイルを100分割してこれを同時に時差送信する手法を採用することができる。また、ファイルを10分割し、これを10台ずつで時差送信する手法を採用することも可能である。後者の場合、当該100台を10台ずつのグループに分けて観察すれば、「複数のダウンロードサーバ装置は、同じセクタを同時には送信しない」と言えるからである。
【0017】
本発明では、同じファイルを分割して、各セクタを時差放送するので、特定のダウンロードサーバ装置に対するアクセスの集中を緩和することができる。
【0018】
また、本発明のダウンロードサービスシステムは、振分サーバ装置をさらに備え、以下のように構成することができる。
【0019】
すなわち、振分サーバ装置は、複数のダウンロードサーバ装置が送信する対に指定される位置と、当該対を送信する予定時刻と、を指定する予定情報を送信する。すなわち、当該予定情報には、典型的には、1つのレコードに、ダウンロードサーバ装置の識別符号(典型的には、ホスト名やIPアドレス、通信用のポート番号、通信プロトコル等の情報)、ファイル内におけるセクタの位置、当該セクタを送信する予定時刻、の3つの情報が含まれることとなる。
【0020】
一方、複数の端末のそれぞれは、振分サーバ装置から送信される予定情報を受信し、受信された予定情報から、当該記憶域中に記憶されていないセクタの位置を指定する対を送信するダウンロードサーバ装置と、その送信の時刻と、を指定する情報を取得し、「ダウンロードサーバ装置のいずれかから送信される対」として、取得された情報に指定された送信の時刻に、取得された情報に指定されたダウンロードサーバ装置から送信される対を受信する。すなわち、必要なセクタを提供するダウンロードサーバ装置を予定情報からあらかじめ取得して、セクタ取得のスケジューリングを行い、当該スケジュールにしたがって、適宜ダウンロードサーバ装置を切り替えてセクタの受信を行う。
【0021】
本発明では、振分サーバが提供する予定情報に基づいて端末が必要なセクタを複数のダウンロードサーバ装置から適宜受信するので、特定のダウンロードサーバ装置に対するアクセスの集中を緩和することができる。なお、本発明においては、複数のサーバ装置は、同時に同じ位置のセクタに対する対を送信しても良いが、できるだけこれが重複しないことが望ましい。
【0022】
また、本発明のダウンロードサービスシステムにおいて、複数の端末にダウンロードさせるべきファイルは、当該端末において実行可能な動的ロード可能ライブラリであって、以下のように構成することができる。すなわち、各端末は、これが実行可能な指令列を含むDLL(Dynamic Link Library)やSO(Shared Object)などに代表される動的ロード可能ライブラリをダウンロードサーバ装置から得ることとなる。
【0023】
そして、複数の端末のそれぞれは、プログラムの実行において、既にダウンロードされた動的ロード可能ライブラリ(以下「既存ライブラリ」という。)を呼び出す指令を実行する際に、所定の条件が満たされるか否かを調べ、当該所定の条件が満たされる場合、当該未だダウンロードされていない動的ロード可能ライブラリ(以下「新規ライブラリ」という。)を、ダウンロードサーバ装置からダウンロードし、当該プログラムのうち当該既存ライブラリを呼び出す指令を当該新規ライブラリを呼び出す指令に書き換え、当該既存ライブラリを呼び出す指令を実行するのにかえて当該新規ライブラリを呼び出す指令を実行する。
【0024】
所定の条件としては、「呼び出したいライブラリのバージョンが所定のバージョン以上であること」「呼び出したいライブラリをダウンロードした日時が所定の日時以降であること」すなわち、「既存ライブラリのバージョンが所定のバージョン未満であること」「既存ライブラリをダウンロードした日時が、所定の日時よりも前であること」等が考えられる。典型的には、ある動的ロード可能ライブラリの指令列が他の動的ロード可能ライブラリを呼び出す指令列を含む場合は、後者のライブラリに対する「所定の条件」を前者のライブラリが指定する。そして、既存ライブラリを呼び出す指令列を新規ライブラリを呼び出す指令列に置換することによって、ライブラリのバージョンアップ等を行う。
【0025】
本発明により、OSやオンラインゲームアプリケーションの実行を維持したまま、適宜必要な動的ロード可能ライブラリをダウンロードし、ライブラリの更新を行うことができるようになる。
【0026】
本発明の他の観点に係る端末は、実行部と、検査部と、記憶部と、受信部と、復元部と、更新部と、を備え、以下のように構成する。すなわち、当該端末は、「ダウンロードさせるべきファイルの入力を受け付け、入力を受け付けられたファイルを複数に分割し、分割された結果(以下、それぞれを「セクタ」という。)のそれぞれと、当該セクタの当該ファイルにおける位置と、の対を、送信するダウンロードサーバ装置」と通信可能とする。
【0027】
そして、実行部は、既にダウンロードされた動的ロード可能ライブラリ(以下「既存ライブラリ」という。)を呼び出す指令を含む指令列を実行する。典型的には、指令列は、CPUで実行される機械語である。
【0028】
一方、検査部は、当該プログラムの実行において、既存ライブラリを呼び出す指令を実行する際に、所定の条件が満たされるか否かを調べる。所定の条件としては、上記発明と同様のものを利用することができる。
【0029】
さらに、当該所定の条件が満たされる場合、記憶部は、未だダウンロードされていない動的ロード可能ライブラリ(以下「新規ライブラリ」という。)を表現するファイルをダウンロードして復元するための記憶域を確保する。記憶部としては、端末が備えるメモリを利用することができるほか、ハードディスクなどの不揮発性記憶装置を利用してもよい。
【0030】
そして、受信部は、当該記憶域が確保された場合、ダウンロードサーバ装置から送信される対を受信する。当該受信が成功した旨をダウンロードサーバ装置に通知する必要はない点は、上記発明と同様である。
【0031】
一方、復元部は、受信された対に指定されたセクタと、当該セクタの当該ファイルにおける位置と、を取得し、取得されたセクタの内容を、ダウンロードすべきファイルを復元するための記憶域のうち取得された位置に、記憶させ、ダウンロードすべきファイルのすべてのセクタの内容が当該記憶域中に記憶された場合、当該記憶域に記憶された内容を新規ライブラリとして復元する。すなわち、新規ライブラリを分割したセクタとセクタとその新規ライブラリ内における位置を適宜受信し、受信するごとに記憶域内の当該位置にセクタを配置して、すべてのセクタの受信と配置が終わったことをもって、新規ライブラリのダウンロードができることとなる。
【0032】
更新部は、当該新規ライブラリが復元された場合、当該プログラムのうち当該既存ライブラリを呼び出す指令を当該新規ライブラリを呼び出す指令に書き換え、当該既存ライブラリを呼び出す指令を実行するのにかえて当該新規ライブラリを呼び出す指令を実行部に実行させる。すなわち、実行時に既存ライブラリに対する呼び出しを新規ライブラリに対する呼び出しに切り替え、以降の呼び出しについてもすべてライブラリのバージョンアップを行うようにする。
【0033】
本発明により、端末は、OSやネットワークゲームアプリケーション等の実行を維持したまま、必要に応じてセクタを適宜取得して動的ロード可能ライブラリを復元し、そのバージョンアップ等ができるようになる。
【0034】
本発明の他の観点に係る指令列の実行方法は、実行工程と、検査工程と、確保工程と、受信工程と、復元工程と、更新工程と、を備え、以下のように構成する。まず、指令列の実行方法においては、「ダウンロードさせるべきファイルの入力を受け付け、入力を受け付けられたファイルを複数に分割し、分割された結果(以下、それぞれを「セクタ」という。)のそれぞれと、当該セクタの当該ファイルにおける位置と、の対を、送信するダウンロードサーバ装置」と通信する。
【0035】
そして、実行工程では、既にダウンロードされた動的ロード可能ライブラリ(以下「既存ライブラリ」という。)を呼び出す指令を含む指令列を実行する。
【0036】
一方、検査工程では、当該プログラムの実行において、既存ライブラリを呼び出す指令を実行する際に、所定の条件が満たされるか否かを調べる。
【0037】
さらに、確保工程では、当該所定の条件が満たされる場合、未だダウンロードされていない動的ロード可能ライブラリ(以下「新規ライブラリ」という。)を表現するファイルをダウンロードして復元するための記憶域を確保する。
【0038】
そして、受信工程では、当該記憶域が確保された場合、ダウンロードサーバ装置から送信される対を受信する。
【0039】
一方、復元工程では、受信された対に指定されたセクタと、当該セクタの当該ファイルにおける位置と、を取得し、取得されたセクタの内容を、ダウンロードすべきファイルを復元するための記憶域のうち取得された位置に、記憶させ、ダウンロードすべきファイルのすべてのセクタの内容が当該記憶域中に記憶された場合、当該記憶域に記憶された内容を新規ライブラリとして復元する。
【0040】
さらに、更新工程では、当該新規ライブラリが復元された場合、当該プログラムのうち当該既存ライブラリを呼び出す指令を当該新規ライブラリを呼び出す指令に書き換え、当該既存ライブラリを呼び出す指令を実行するのにかえて当該新規ライブラリを呼び出す指令を実行工程にて実行させる。
【0041】
本発明の他の観点に係るプログラムは、コンピュータ(ゲーム装置を含む。)を、上記の端末として機能させるように構成する。このプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記録媒体に記録することができる。上記プログラムは、当該プログラムが実行されるコンピュータとは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記情報記録媒体は、当該コンピュータとは独立して配布・販売することができる。
【0042】
【発明の実施の形態】
以下に本発明の実施形態を説明する。なお、以下に説明する実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本願発明の範囲に含まれる。
【0043】
(第1の実施の形態)
図1は、本発明の第1の実施の形態に係るダウンロードサービスシステムの概要構成を示す模式図である。以下、本図を参照して説明する。
【0044】
ダウンロードサービスシステム10は、ダウンロードサーバ装置11と、複数の端末12と、が、インターネット13を介して通信可能に接続されている。複数の端末12のそれぞれは、ダウンロードサーバ装置11から各種のファイルをダウンロードする。理解を容易にするため、以下では、複数の端末12としてインターネットへの接続が可能なゲーム装置を例してあげて、説明する。
【0045】
図2は、本実施形態の端末12として機能するゲーム装置の概要構成を示す模式図である。以下、本図を参照して説明する。
【0046】
ゲーム装置100は、CPU(Central Processing Unit)101と、ROM(Read Only Memory)102と、RAM(Random Access Memory)103と、インターフェース104と、コントローラ105と、外部メモリ106と、画像処理部107と、DVD(Digital Versatile Disk)−ROMドライブ108と、NIC(Network Interface Card)109と、を備える。
【0047】
ゲーム用のプログラムおよびデータを記憶したDVD−ROMをDVD−ROMドライブ108に装着して、ゲーム装置100の電源を投入することにより、当該プログラムが実行され、本実施形態の格納装置が実現される。
【0048】
CPU 101は、ゲーム装置100全体の動作を制御し、各構成要素と接続され制御信号やデータをやりとりする。
【0049】
ROM 102には、電源投入直後に実行されるIPL(Initial Program Loader)が記録され、これが実行されることにより、DVD−ROMに記録されたプログラムをRAM 103に読み出してCPU 101による実行が開始される。また、ROM 102には、ゲーム装置100全体の動作制御に必要なオペレーティングシステムのプログラムや各種のデータを記録される。
【0050】
RAM 103は、データやプログラムを一時的に記憶するためのもので、DVD−ROMから読み出したプログラムやデータ、その他ゲームの進行やチャット通信に必要なデータが保持される。
【0051】
インターフェース104を介して接続されたコントローラ105は、ユーザがゲーム実行の際に行う操作入力を受け付ける。
【0052】
インターフェース104を介して着脱自在に接続された外部メモリ106には、ゲームの進行状態を示すデータのほか、ダウンロードされた動的ロード可能なライブラリが書き換え可能に記憶される。また、外部メモリ106としては、バッテリバックアップされたSRAM(Static RAM)、EEPROM(Electrically Erasable Programmable ROM)などを利用することができるほか、ハードディスクなどの不揮発性記憶装置を採用することもできる。ハードディスクを利用する場合は、インターフェース104は、コントローラ105用とハードディスクとで異なるものを利用するのが一般的である。以下、理解を容易にするため、「ハードディスクに対するアクセス」も「外部メモリ106に対するアクセス」に含めるものとして、説明を行う。
【0053】
ユーザは、コントローラ105を介して指示入力を行うことにより、セーブデータを適宜外部メモリ106に記録することができる。また、ダウンロードにより動的ロード可能ライブラリがバージョンアップされた場合は、新規なバージョンが自動的に外部メモリ106に記録される。
【0054】
DVD−ROMドライブ108に装着されるDVD−ROMには、ゲームを実現するためのプログラムとゲームに付随する画像データや音声データが記録される。CPU 101の制御によって、DVD−ROMドライブ108は、これに装着されたDVD−ROMに対する読み出し処理を行って、必要なプログラムやデータを読み出し、これらはRAM 103等に一時的に記憶される。
【0055】
画像処理部107は、DVD−ROMから読み出されたデータをCPU 101や画像処理部107が備える画像演算プロセッサ(図示せず)によって加工処理した後、これを画像処理部107が備えるフレームメモリ(図示せず)に記録する。フレームメモリに記録された画像情報は、所定の同期タイミングでビデオ信号に変換され画像処理部107に接続されるモニタ(図示せず)へ出力される。これにより、各種の画像表示が可能となる。
【0056】
画像演算プロセッサは、2次元の画像の重ね合わせ演算やαブレンディング等の透過演算、各種の飽和演算を高速に実行できる。また、仮想3次元空間に配置され、各種のテクスチャ情報が付加されたポリゴン情報を、Zバッファ法によりレンダリングして、所定の視点位置から仮想3次元空間に配置されたポリゴンを俯瞰したレンダリング画像を得る演算の高速実行も可能である。
【0057】
さらに、CPU 101と画像演算プロセッサが協調動作することにより、文字の形状を定義するフォント情報にしたがって、文字列を2次元画像としてフレームメモリへ描画したり、各ポリゴン表面へ描画することが可能である。フォント情報は、ROM 102に記録されているが、DVD−ROMに記録された専用のフォント情報を利用することも可能である。
【0058】
NIC 109は、ゲーム装置100をインターネット等のコンピュータ通信網(図示せず)に接続するためのものであり、LAN(Local Area Network)を構成する際に用いられる10BASE−T/100BASE−T規格にしたがうものや、電話回線を用いてインターネットに接続するためのアナログモデム、ISDN(Integraged Services Digital Network)モデム、ADSL(Asymmetric Digital Subscriber Line Modem)モデム、ケーブルテレビジョン回線を用いてインターネットに接続するためのケーブルモデム等と、これらとCPU 101との仲立ちを行うインターフェース(図示せず)により構成される。NIC 109を介して、ゲーム装置100は、ダウンロードサーバ装置11にアクセスできるようになる。
【0059】
音声処理部110は、DVD−ROMから読み出した音声データをアナログ音声信号に変換し、これに接続されたスピーカ(図示せず)から出力させる。また、CPU 101の制御の下、ゲームの進行の中で発生させるべき効果音や楽曲データを生成し、これに対応した音声をスピーカから出力させる。
【0060】
このほか、ゲーム装置100は、ハードディスク等の大容量外部記憶装置を用いて、ROM 102、RAM 103、外部メモリ106、DVD−ROMドライブ108に装着されるDVD−ROM等と同じ機能を果たすように構成してもよい。
【0061】
また、ユーザからの文字列の編集入力を受け付けるためのキーボードや、各種の位置の指定および選択入力を受け付けるためのマウスなどを接続する形態も採用することができる。また、本実施形態のゲーム装置100にかえて、汎用のパーソナルコンピュータを利用することもできる。
【0062】
一方、ダウンロードサーバ装置11としては、サーバコンピュータを利用することができる。サーバコンピュータも、その基本構成は、ゲーム装置100と酷似している。たとえば、サーバコンピュータにおいては、特殊な画像処理は必要ないため、ゲーム装置に比べて画像処理部107の機能は低いものとする。また、音声処理部110やコントローラ105などは省略されることがある。また、コントローラ105にかえてキーボードやマウスを利用することもあるし、他の端末からNIC 109を介してダウンロードサーバ装置11に対する各種の入力指示を行う形態をとることも多い。このほか、外部メモリ106としては、ハードディスク等を利用するのが一般的である。
【0063】
(ダウンロードサーバ装置)
図3は、ダウンロードサーバ装置11の概要構成を示す模式図である。図4は、ダウンロードサーバ装置11において実行されるダウンロードサービス処理の流れを示すフローチャートである。以下、これらの図を参照して説明する。なお、理解を容易にするため、以下では、ダウンロードサーバ装置11が端末12にダウンロードさせるファイルは、当該端末12で利用可能な動的ロード可能ライブラリであるものとして説明する。
【0064】
まず、ダウンロードサーバ装置11のファイル受付部301は、ダウンロードさせるべきファイルの入力を受け付け、受け付けられたファイル全体を、ダウンロードサーバ装置11が有するハードディスク311に記録する(ステップS401)。ファイルには、端末において動的ロード可能ライブラリを識別するための識別子が割り当てられている。当該識別子としては、ファイル名を用いることができる。また、当該ファイルを提供する提供元などを十分に識別できるように構成されたCLSIDなどの識別子や、提供元が有するコンピュータのホスト名とファイル名とを組み合わせたもの等を採用してもよい。
【0065】
ついで、分割部302は、入力を受け付けられたファイルを複数のセクタに分割し、当該セクタと、当該セクタのファイル全体における位置と、からなる対をハードディスク311に記録する(ステップS402)。この対が以降の送信の単位となるが、対には、ファイルの識別子、ファイル全体のサイズ、セクタのサイズ、当該セクタのチェックサムやCRC(Cyclic Redundancy Check)・MD5値、ファイルのバージョン番号等の情報を含めてもよい。
【0066】
なお、理解を容易にするため、これらの情報を含めた場合であっても、以下の説明では、送信の単位を「対」と呼ぶこととする。
【0067】
また、ファイル内におけるセクタの位置としては、「ファイルの先頭からの当該セクタのバイト数表現によるオフセット」を採用するのが典型的であるが、先頭のセクタから最後の直前のセクタまでのサイズが同じである場合等には、「当該セクタに対する追番とセクタの総数」を利用するのも良い。たとえば、セクタの総数が10個である場合、セクタの位置として1/10、2/10、…、10/10を利用するのである。この場合は、最終セクタ以外のセクタのサイズと追番とから、各セクタの位置を容易に計算できる。本図では、ファイルを3分割した場合についてを示している。
【0068】
そして、選択部303は、ハードディスク311に記録された対からいずれか1つを選択する(ステップS403)。選択の手法については、以下のような手法を利用することができる。
(1)まず先頭の対を選択し、以降は次の対を選択し、最後の対の選択がされたら、また先頭の対を選択する、というように、巡回的に対を選択する。
(2)乱数を生成し、その乱数によって、いずれか1つの対を選択する。
【0069】
さらに、送信部304は、選択された対を送信して(ステップS404)、ステップS403に戻る。インターネットを利用した送信の典型的な手法としては、プロトコルとしてUDP(User Datagram Protocol)を利用するものがある。UDPは、その下位層にあるIPパケットをそのままアプリケーションから使えるようにしただけのプロトコルである。そのため、パケットが相手に確実に届くという保証はないし、再送や受信確認応答、フロー制御、大きなデータの分割や再合成(フラグメント化)などはすべてアプリケーション側で自分で制御する必要がある。ただし、これらのオーバーヘッドがないので、処理は簡単であり、高速という特徴がある。本実施形態においては、ダウンロードさせるファイルの分割はすでに終了しており、ファイルの復元は対に指定される位置情報によって端末で適宜行われるので、UDPは好適である。
【0070】
このほか、端末12がインターネットに接続される場合には、接続プロバイダが端末12に対して動的にIPアドレスを割り振るDHCP(Dynamic Host Configuration Protocol)技術が利用されるのが一般的であるが、接続プロバイダがダウンロードサーバ装置11の運営も行う場合には、当該プロバイダが管理する全端末12に対し、ブロードキャストアドレスを利用することで、送信を行う手法を採用してもよい。
【0071】
さらに、送信の手法としては、ブロードキャストによるもの、ユニキャストによるもの、マルチキャストによるもの、等、種々の技術を適用することができる。
【0072】
(端末)
図5は、端末12の概要構成を示す模式図である。図6は、端末12において実行される指令列の実行方法の処理の流れを示すフローチャートである。以下、これらの図を参照して説明する。以下、理解を容易にするため、端末12は、上記のゲーム装置100によって実現されるものとして説明する。
【0073】
まず、端末12は、実行部501と、検査部502と、記憶部503と、受信部504と、復元部505と、更新部506と、を備える。
【0074】
まず、CPU 101は、実行部501として機能し、DVD−ROMドライブ108に装着されたDVD−ROMや外部メモリ106(上述したように、ゲーム装置100が備えるハードディスク等の書換可能な不揮発性記憶装置であってもよい。)から実行すべきゲームアプリケーションプログラムをRAM 103にロードする(ステップS601)。
【0075】
そして、プログラムの先頭から、順に指令を読み出す(ステップS602)。当該指令の最小単位は、CPU 101が実行可能な機械語指令であるが、ここでは理解を容易にするため、「あるひとまとまりの処理」の処理に対応する所定の機械語指令列を「指令」として考える。このような「指令」には、既に外部メモリ106にダウンロードされた動的ロード可能ライブラリやDVD−ROMドライブ108に装着されたDVD−ROMに記録されている動的ロード可能ライブラリ(以下「既存ライブラリ」という。)を呼び出すものも含まれる。
【0076】
ついで、CPU 101は、検査部502として機能し、読み出した指令が、既存ライブラリを呼び出す指令であるか否かを調べる(ステップS603)。そうでない場合(ステップS603;No)、当該指令に対応する処理を実行して(ステップS604)、ステップS602に戻る。一方、読み出した指令が、既存ライブラリを呼び出す指令である場合(ステップS603;Yes)、所定のダウンロード条件が満たされるか否かを調べる(ステップS605)。所定のダウンロード条件としては、「呼び出したいライブラリのバージョンが所定のバージョン以上であること」「呼び出したいライブラリをダウンロードした日時が所定の日時以降であること」すなわち、「既存ライブラリのバージョンが所定のバージョン未満であること」「既存ライブラリをダウンロードした日時が、所定の日時よりも前であること」等を採用することができる。
【0077】
さて、当該所定のダウンロード条件が満たされない場合(ステップS605;No)、既存ライブラリを通常通り実行して(ステップS607)、ステップS602に戻る。一方、当該所定のダウンロード条件が満たされる場合(ステップS605;Yes)、CPU 101は、外部メモリ106やRAM 103と共働して、記憶部503として機能し、未だダウンロードされていない動的ロード可能ライブラリ(以下「新規ライブラリ」という。)を表現するファイルをダウンロードして復元するための記憶域を確保する(ステップS608)。
【0078】
記憶域は、外部メモリ106やRAM 103に確保することができる。RAM 103を利用した場合は、以降の処理で新規ライブラリのダウンロードが終了したら、当該新規ライブラリを外部メモリ106に保存することが望ましい。これによって、次回に当該ゲームアプリケーションプログラムを起動した際には、新規ライブラリにバージョンアップが済んだ状況でゲームが開始されることとなるからである。
【0079】
そして、当該記憶域の確保がされた場合、CPU 101は、NIC 109と共働して、受信部504として機能し、ダウンロードサーバ装置11から送信される対を受信する(ステップS609)。最初の対が受信されると、当該対に指定されるファイル(動的ロード可能ライブラリ)全体のサイズを取得することができるため、確保される記憶域のサイズを確定することができる。
【0080】
さらに、CPU 101は、復元部505として機能し、受信された対に指定されたセクタと、当該セクタの当該ファイルにおける位置と、を取得し(ステップS610)、取得されたセクタの内容を、ダウンロードすべきファイルを復元するための記憶域のうち取得された位置に、記憶させ(ステップS611)、ダウンロードすべきファイルのすべてのセクタの内容が当該記憶域中に記憶されたか否かを判定し(ステップS612)、すべて記憶された場合(ステップS612;Yes)、当該記憶域に記憶された内容を新規ライブラリとして復元する(ステップS613)。そうでない場合(ステップS612;No)、ステップS609に戻る。
【0081】
新規ライブラリがRAM 103に復元された場合、その内容は、前述した通り、外部メモリ106に書き出すことが望ましい。典型的には、外部メモリ106には、既存ライブラリがすでに記録されているので、同じファイル名を利用してこれを上書きしてもよいし、新旧両バージョンをいずれも記録保持しておくような形態を採用してもよい。また、新旧両バージョンが記録保持されている場合は、一定期間経過後に、旧バージョンを削除するようにしてもよい。
【0082】
さらに、CPU 101は、更新部506として機能し、当該新規ライブラリが復元された場合、当該プログラムのうち当該既存ライブラリを呼び出す指令を当該新規ライブラリを呼び出す指令に書き換え(ステップS614)、当該既存ライブラリを呼び出す指令を実行するのにかえて当該新規ライブラリを呼び出す指令を実行部として実行して(ステップS615)、ステップS602に戻る。
【0083】
尚、ステップS605においては、これらの要求されるバージョン番号や日時を、当該既存ライブラリに対して引数やグローバル変数として渡して通常通り呼び出す一方で、当該既存ライブラリ側の先頭でダウンロード条件が満たされるか否かを判断して以下の処理やダウンロード等(ステップS605〜S615)を行う実施形態を採用することもできる。この場合、新規ライブラリにも、同様の処理を行うような指令を含める必要がある。
【0084】
このような動的ロード可能ライブラリの呼び出しには、種々の技法がある。
(1)第1の手法は、ある種のOSで用いられているシステムコールLoadLibrary,GetProcAddress,FreeLibraryを利用するものである。ライブラリlib.dll中のある関数fooを呼び出す場合を考える。この手法では、関数fooのアドレスを保持するための変数pを用いる。以下、C言語の表記にしたがって説明する。まず、
handle = LoadLibrary(”lib.dll”);
を実行して、動的ロード可能ライブラリlib.dllを利用できるようにする。ついで、
p = GetProcAddress(handle,”foo”);
を実行すれば、関数fooを呼び出すためのアドレスが変数pに得られる。引数1,…,引数nを渡して関数fooを呼び出したい場合には、
(*p)(引数1,…,引数n);
とすれば良い。動的ロード可能ライブラリlib.dllの利用を停止する場合には、
FreeLibrary(handle);
とする。
【0085】
本手法を採用している場合には、既存ライブラリlib.dllのバージョンアップが必要な場合は、まず、FreeLibraryを使って、既存ライブラリの利用を停止する。ついで、上記のダウンロード処理ステップS608〜S615を実行して、同名の新規ライブラリlib.dllをダウンロードする。そして、上記のようにLoadLibraryを実行すれば、新規ライブラリが利用できるようになり、上記のようにGetProcAddressを実行すれば、変数pの内容が変更されるので、既存ライブラリを呼び出す指令が新規ライブラリを呼び出す指令に書き換えられる。あとは、(*p)(...)の呼び出しを実行すれば、新規ライブラリを呼び出す指令が実行されることとなる。
【0086】
(2)第2の手法は、プログラム中でライブラリ呼び出し指令が配置されている場所をあらかじめ調査しておき、通常はプログラムのコンパイルおよび静的リンク時に実行されるライブラリ呼び出しのアドレス解決の処理を、実行時に行うものである。
【0087】
ライブラリ呼び出し指令は、C言語では関数呼び出しに相当する。関数fooが動的ロード可能ライブラリにより提供されるものである場合、
foo(引数1,…,引数n);
がライブラリ呼び出し指令であるが、ある種のCPUにおける実装では、これは以下のような機械語の処理にコンパイルされる。
(p)引数nをスタックにプッシュ;
(q):
(r)引数1をスタックにプッシュ;
(s)次のプログラムカウンタをスタックにプッシュ;
(t)fooのアドレスにジャンプ;
【0088】
上記のように機械語指令にコンパイルされると、「fooのアドレス」もまた、機械語指令の列に埋め込まれることとなる。上記の例でいえば、「(t)fooのアドレスにジャンプ;」という機械語指令には、「fooのアドレス」が埋め込まれている。このように機械語指令の列のうち、「fooのアドレス」が埋め込まれている場所を、あらかじめすべて取得しておく。
【0089】
一方、関数fooは、通常は、以下のような機械語の処理にコンパイルされる。
(1)スタック内の引数を利用して処理を実行;
(2)スタックから次のプログラムカウンタをポップ;
(3)引数1からnをスタックからポップ;
(4)ポップしたプログラムカウンタにジャンプ;
【0090】
そこで、動的ロード可能ライブラリ内の関数fooは、上記の通常の関数のコンパイルとは異なり、以下のような処理を行うように用意しておく。
(1)スタック内の引数やグローバル変数をチェック;
(2)ダウンロードが必要でなければ(a)〜(d)を実行;
(a)スタック内の引数を利用して処理を実行;
(b)スタックから次のプログラムカウンタをポップ;
(c)引数1からnをスタックからポップ;
(d)ポップしたプログラムカウンタにジャンプ;
(3)ダウンロードを実行;
(4)新規ライブラリ中のfooのアドレスをあらかじめ取得した機械語指令の列のうち「fooのアドレス」が埋め込まれている場所に書き込む;
(5)新規ライブラリ中のfooのアドレスにジャンプ;
【0091】
このようにした場合、元のプログラム自体にも書き換えが生じるので、RAM103内の当該プログラムと、RAM 103内に確保された記憶域の動的ロード可能ライブラリと、を、あわせて一体として外部メモリ106に書き出しておき、次回以降のゲーム装置100の起動に備えることが望ましい。
【0092】
また、マルチスレッド環境下で上記のようなライブラリの利用の開始/停止や機械語指令列内のアドレス書き換えを実行する際には、セマフォ等を利用して、排他制御を行う必要がある。
【0093】
本実施形態により、ダウンロードサービスシステムにおいて、動的ロード可能ライブラリを含む各種のファイルをセクタに分割して端末に送信する一方で、端末では、セクタから元のファイルを復元して利用することができる。
【0094】
(他の実施の形態)
上記の実施形態では、ダウンロードサーバ装置11は1つ用意され、これが複数の端末12に対してダウンロードサービスを提供していた。本実施形態では、複数のダウンロードサーバ装置が、複数の端末に対してダウンロードサービスを提供する。
【0095】
本実施形態におけるダウンロードサーバ装置の構成は、上記実施形態のダウンロードサーバ装置11と同様である。ただし、各ダウンロードサーバ装置は、「同じファイルの同じ位置に配置されるセクタに対する対」を同時に重複して送信しないように、それぞれの送信のスケジューリングを行う。
【0096】
一般に、各端末が同時に同じ位置のセクタを必要とする可能性は低い。したがって、上記のようにスケジューリングを行うだけで、特定のダウンロードサーバ装置に対するアクセスの集中が緩和できる。
【0097】
このような複数のダウンロードサーバ装置としては、いわゆる中継局やリピータのような専用のものを用意しても良いし、すでに当該ファイルをダウンロード済みの端末を、所定の時間帯においてダウンロードサーバ装置として機能させるような実施形態を採用することもできる。
【0098】
さらに、上記のような送信のスケジューリングを行った場合、
(1)どのダウンロードサーバ装置が、
(2)どの時刻に
(3)どのファイルのどの位置のセクタを
送信する予定であるかを指定する予定情報を送信する振分サーバ装置を別途用意しておくことが望ましい。また、予定情報には、各ファイルのサイズも含めておくことが望ましい。
【0099】
各端末は、所定のタイミングで、たとえば、
(a)電源投入後一定時間が経過してから、
(b)一定時間ごとに乱数を発生させそれが所定の値となったら、
(c)ユーザからの入力指示が一定時間行われなかったら、
(d)ネットワークのトラフィックが一定値よりも低かったら
などの条件が満たされる場合に、振分サーバから予定情報を受信しておく。
【0100】
そして、あるファイルをダウンロードしたいと考える場合は、そのファイルのあるセクタを、直近の時刻でこれが受信可能なダウンロードサーバ装置から受信する。セクタの受信順序は、「先頭から順に」でも良いし、「未だ受信していないものを乱数で選択」しても良いし、「当該端末に近いダウンロードサーバ装置が提供するセクタを優先して」でも良い。
【0101】
なお、複数のダウンロードサーバ装置を利用する場合、特に、中継局やリピータ、他の端末をダウンロードサーバとして利用する場合には、データの欠落や改竄を検知したり、バージョン管理を行ったりするために、ディジタル署名の技術を適用することが望ましい。この際には、たとえば、セクタごとにディジタル署名を付加する手法や、ファイルにディジタル署名を付加したものを分割してセクタとして提供し、ダウンロードしたセクタを結合してからディジタル署名を確認する手法などを採用することができる。これにより、安全なファイルのダウンロード環境を提供することができる。
【0102】
このように、振分サーバ装置を用意しておくことにより、アクセス集中の緩和を積極的に緩和することができる。
【0103】
【発明の効果】
以上説明したように、本発明によれば、動的ロード可能ライブラリを含む各種のファイルを端末にダウンロードさせて利用させるのに好適なダウンロードサービスシステム、端末、当該端末における指令列の実行方法、ならびに、プログラムを提供することができる。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態に係るダウンロードサービスシステムの概要構成を示す模式図である。
【図2】ダウンロードサービスシステムの端末が実現される典型的なゲーム装置の概要構成を示す模式図である。
【図3】ダウンロードサーバ装置の概要構成を示す模式図である。
【図4】ダウンロードサーバ装置において実行されるダウンロードサービス処理の流れを示すフローチャートである。
【図5】端末の概要構成を示す模式図である。
【図6】端末において実行される指令列の実行方法の処理の流れを示すフローチャートである。
【符号の説明】
10 ダウンロードサービスシステム
11 ダウンロードサーバ装置
12 端末
100 ゲーム装置
101 CPU
102 ROM
103 RAM
104 インターフェース
105 コントローラ
106 外部メモリ
107 画像処理部
108 DVD−ROMドライブ
109 NIC
110 音声処理部
301 ファイル受付部
302 分割部
303 選択部
304 送信部
311 ハードディスク
501 実行部
502 検査部
503 記憶部
504 受信部
505 復元部
506 更新部
Claims (7)
- ダウンロードサーバ装置と、複数の端末と、を備えるダウンロードサービスシステムであって、
(a)前記ダウンロードサーバ装置は、
前記複数の端末にダウンロードさせるべきファイルの入力を受け付け、
前記入力を受け付けられたファイルを複数に分割し、
前記分割された結果(以下、それぞれを「セクタ」という。)のそれぞれと、当該セクタの当該ファイルにおける位置と、の対を、送信し、
(b)前記複数の端末のそれぞれは、
前記ダウンロードサーバ装置から送信される対を受信し、
前記受信された対に指定されたセクタと、当該セクタの当該ファイルにおける位置と、を取得し、
前記取得されたセクタの内容を、ダウンロードすべきファイルを復元するための記憶域のうち前記取得された位置に、記憶させ、
当該記憶域中にすべてのセクタの内容が記憶された場合、当該記憶域に記憶された内容をダウンロードされたファイルとする
ことを特徴とするもの。 - 複数のダウンロードサーバ装置と、複数の端末と、を備えるダウンロードサービスシステムであって、
(a)前記複数のダウンロードサーバ装置のそれぞれは、
前記複数の端末にダウンロードさせるべきファイルの入力を受け付け、
前記入力を受け付けられたファイルを複数に分割し、
前記分割された結果(以下、それぞれを「セクタ」という。)のそれぞれと、当該セクタの当該ファイルにおける位置と、の対を、送信し、
(b)前記複数の端末のそれぞれは、
前記ダウンロードサーバ装置のいずれかから送信される対を受信し、
前記受信された対に指定されたセクタと、当該セクタの当該ファイルにおける位置と、を取得し、
前記取得されたセクタの内容をダウンロードすべきファイルを復元するための記憶域中のうち前記取得された位置に、記憶させ、
ダウンロードすべきファイルのすべてのセクタの内容が当該記憶域中に記憶された場合、当該記憶域に記憶された内容をダウンロードされたファイルとし、
(c)前記複数のダウンロードサーバ装置が同時に送信する対がある場合、当該対に指定される位置は、互いに異なる
ことを特徴とするもの。 - 複数のダウンロードサーバ装置と、振分サーバ装置と、複数の端末と、を備えるダウンロードサービスシステムであって、
(a)前記複数のダウンロードサーバ装置のそれぞれは、
前記複数の端末にダウンロードさせるべきファイルの入力を受け付け、
前記入力を受け付けられたファイルを複数に分割し、
前記分割された結果(以下、それぞれを「セクタ」という。)のそれぞれと、当該セクタの当該ファイルにおける位置と、の対を、送信し、
(b)前記振分サーバ装置は、
前記複数のダウンロードサーバ装置が送信する対に指定される位置と、当該対を送信する予定時刻と、を指定する予定情報を送信し、
(c)前記複数の端末のそれぞれは、
前記振分サーバ装置から送信される予定情報を受信し、
前記受信された予定情報から、ダウンロードすべきファイルを復元するための記憶域中に記憶されていないセクタの位置を指定する対を送信するダウンロードサーバ装置と、その送信の時刻と、を指定する情報を取得し、
前記取得された情報に指定された時刻に、前記取得された情報に指定されたダウンロードサーバ装置から、送信される対を受信し、
前記受信された対に指定されたセクタと、当該セクタの当該ファイルにおける位置と、を取得し、
前記取得されたセクタの内容を、当該記憶域のうち前記取得された位置に、記憶させ、
ダウンロードすべきファイルのすべてのセクタの内容が当該記憶域中に記憶された場合、当該記憶域に記憶された内容をダウンロードされたファイルとする
ことを特徴とするもの。 - 請求項1から3のいずれか1項に記載のダウンロードサービスシステムであって、
前記複数の端末にダウンロードさせるべきファイルは、当該端末において実行可能な動的ロード可能ライブラリであって、
(f)前記複数の端末のそれぞれは、
プログラムの実行において、既にダウンロードされた動的ロード可能ライブラリ(以下「既存ライブラリ」という。)を呼び出す指令を実行する際に、所定の条件が満たされるか否かを調べ、
当該所定の条件が満たされる場合、当該未だダウンロードされていない動的ロード可能ライブラリ(以下「新規ライブラリ」という。)を、前記ダウンロードサーバ装置からダウンロードし、当該プログラムのうち当該既存ライブラリを呼び出す指令を当該新規ライブラリを呼び出す指令に書き換え、当該既存ライブラリを呼び出す指令を実行するのにかえて当該新規ライブラリを呼び出す指令を実行する
ことを特徴とするもの。 - 実行部と、検査部と、記憶部と、受信部と、復元部と、更新部と、を備え、「ダウンロードさせるべきファイルの入力を受け付け、前記入力を受け付けられたファイルを複数に分割し、前記分割された結果(以下、それぞれを「セクタ」という。)のそれぞれと、当該セクタの当該ファイルにおける位置と、の対を、送信するダウンロードサーバ装置」と通信可能な端末であって、
前記実行部は、既にダウンロードされた動的ロード可能ライブラリ(以下「既存ライブラリ」という。)を呼び出す指令を含む指令列を実行し、
前記検査部は、当該プログラムの実行において、既存ライブラリを呼び出す指令を実行する際に、所定の条件が満たされるか否かを調べ、
当該所定の条件が満たされる場合、前記記憶部は、未だダウンロードされていない動的ロード可能ライブラリ(以下「新規ライブラリ」という。)を表現するファイルをダウンロードして復元するための記憶域を確保し、
前記受信部は、前記ダウンロードサーバ装置から送信される対を受信し、
前記復元部は、前記受信された対に指定されたセクタと、当該セクタの当該ファイルにおける位置と、を取得し、ダウンロードすべきファイルを復元するための記憶域中の、前記取得された位置に、前記取得されたセクタの内容を記憶させ、ダウンロードすべきファイルのすべてのセクタの内容が当該記憶域中に記憶された場合、当該記憶域に記憶された内容を新規ライブラリとして復元し、
前記更新部は、当該新規ライブラリが復元された場合、当該プログラムのうち当該既存ライブラリを呼び出す指令を当該新規ライブラリを呼び出す指令に書き換え、当該既存ライブラリを呼び出す指令を実行するのにかえて当該新規ライブラリを呼び出す指令を前記実行部に実行させる
ことを特徴とするもの。 - 実行工程と、検査工程と、確保工程と、受信工程と、復元工程と、更新工程と、を備え、「ダウンロードさせるべきファイルの入力を受け付け、前記入力を受け付けられたファイルを複数に分割し、前記分割された結果(以下、それぞれを「セクタ」という。)のそれぞれと、当該セクタの当該ファイルにおける位置と、の対を、送信するダウンロードサーバ装置」と通信する指令列の実行方法であって、
前記実行工程では、既にダウンロードされた動的ロード可能ライブラリ(以下「既存ライブラリ」という。)を呼び出す指令を含む指令列を実行し、
前記検査工程では、当該プログラムの実行において、既存ライブラリを呼び出す指令を実行する際に、所定の条件が満たされるか否かを調べ、
前記確保工程では、当該所定の条件が満たされる場合、未だダウンロードされていない動的ロード可能ライブラリ(以下「新規ライブラリ」という。)を表現するファイルをダウンロードして復元するための記憶域を確保し、
前記受信工程では、当該記憶域が確保された場合、前記ダウンロードサーバ装置から送信される対を受信し、
前記復元工程では、前記受信された対に指定されたセクタと、当該セクタの当該ファイルにおける位置と、を取得し、ダウンロードすべきファイルを復元するための記憶域中の、前記取得された位置に、前記取得されたセクタの内容を記憶させ、ダウンロードすべきファイルのすべてのセクタの内容が当該記憶域中に記憶された場合、当該記憶域に記憶された内容を新規ライブラリとして復元し、
前記更新工程では、当該新規ライブラリが復元された場合、当該プログラムのうち当該既存ライブラリを呼び出す指令を当該新規ライブラリを呼び出す指令に書き換え、当該既存ライブラリを呼び出す指令を実行するのにかえて当該新規ライブラリを呼び出す指令を前記実行工程にて実行させる
ことを特徴とする方法。 - 「ダウンロードさせるべきファイルの入力を受け付け、前記入力を受け付けられたファイルを複数に分割し、前記分割された結果(以下、それぞれを「セクタ」という。)のそれぞれと、当該セクタの当該ファイルにおける位置と、の対を、送信するダウンロードサーバ装置」と通信可能なコンピュータ(ゲーム装置を含む。)を、実行部、検査部、記憶部、受信部、復元部、および、更新部として機能させるプログラムであって、
前記実行部は、既にダウンロードされた動的ロード可能ライブラリ(以下「既存ライブラリ」という。)を呼び出す指令を含む指令列を実行し、
前記検査部は、当該プログラムの実行において、既存ライブラリを呼び出す指令を実行する際に、所定の条件が満たされるか否かを調べ、
当該所定の条件が満たされる場合、前記記憶部は、未だダウンロードされていない動的ロード可能ライブラリ(以下「新規ライブラリ」という。)を表現するファイルをダウンロードして復元するための記憶域を確保し、
前記受信部は、当該記憶域が確保された場合、前記ダウンロードサーバ装置から送信される対を受信し、
前記復元部は、前記受信された対に指定されたセクタと、当該セクタの当該ファイルにおける位置と、を取得し、ダウンロードすべきファイルを復元するための記憶域中の、前記取得された位置に、前記取得されたセクタの内容を記憶させ、ダウンロードすべきファイルのすべてのセクタの内容が当該記憶域中に記憶された場合、当該記憶域に記憶された内容を新規ライブラリとして復元し、
前記更新部は、当該新規ライブラリが復元された場合、当該プログラムのうち当該既存ライブラリを呼び出す指令を当該新規ライブラリを呼び出す指令に書き換え、当該既存ライブラリを呼び出す指令を実行するのにかえて当該新規ライブラリを呼び出す指令を前記実行部に実行させる
ように機能させることを特徴とするプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003076696A JP2004287631A (ja) | 2003-03-20 | 2003-03-20 | ダウンロードサービスシステム、端末、指令列の実行方法、ならびに、プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003076696A JP2004287631A (ja) | 2003-03-20 | 2003-03-20 | ダウンロードサービスシステム、端末、指令列の実行方法、ならびに、プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004287631A true JP2004287631A (ja) | 2004-10-14 |
Family
ID=33291641
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003076696A Pending JP2004287631A (ja) | 2003-03-20 | 2003-03-20 | ダウンロードサービスシステム、端末、指令列の実行方法、ならびに、プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004287631A (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009013999A1 (ja) | 2007-07-20 | 2009-01-29 | Konami Digital Entertainment Co., Ltd. | ネットワークシステム、ノード機器、データ配信方法、情報記録媒体、および、プログラム |
JP2012185601A (ja) * | 2011-03-04 | 2012-09-27 | Konami Digital Entertainment Co Ltd | 配信システム、サーバ装置、端末装置、サービス方法、端末方法、並びにプログラム |
JP2012527707A (ja) * | 2009-05-21 | 2012-11-08 | セールスフォース ドット コム インコーポレイティッド | アプリケーションのコンポーネントをバージョン管理するシステム、方法及びコンピュータプログラムプロダクト |
CN111190877A (zh) * | 2019-12-27 | 2020-05-22 | 全球能源互联网研究院有限公司 | 一种基于企业内网的分布式文件分发方法及系统 |
JP2022500785A (ja) * | 2018-09-19 | 2022-01-04 | ツイッター インコーポレイテッド | プログレッシブなapiレスポンス |
-
2003
- 2003-03-20 JP JP2003076696A patent/JP2004287631A/ja active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009013999A1 (ja) | 2007-07-20 | 2009-01-29 | Konami Digital Entertainment Co., Ltd. | ネットワークシステム、ノード機器、データ配信方法、情報記録媒体、および、プログラム |
JP2012527707A (ja) * | 2009-05-21 | 2012-11-08 | セールスフォース ドット コム インコーポレイティッド | アプリケーションのコンポーネントをバージョン管理するシステム、方法及びコンピュータプログラムプロダクト |
JP2012185601A (ja) * | 2011-03-04 | 2012-09-27 | Konami Digital Entertainment Co Ltd | 配信システム、サーバ装置、端末装置、サービス方法、端末方法、並びにプログラム |
JP2022500785A (ja) * | 2018-09-19 | 2022-01-04 | ツイッター インコーポレイテッド | プログレッシブなapiレスポンス |
JP7217342B2 (ja) | 2018-09-19 | 2023-02-02 | ツイッター インコーポレイテッド | プログレッシブなapiレスポンス |
CN111190877A (zh) * | 2019-12-27 | 2020-05-22 | 全球能源互联网研究院有限公司 | 一种基于企业内网的分布式文件分发方法及系统 |
CN111190877B (zh) * | 2019-12-27 | 2023-05-05 | 全球能源互联网研究院有限公司 | 一种基于企业内网的分布式文件分发方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10409627B2 (en) | System for downloading and executing virtualized application files identified by unique file identifiers | |
US8438298B2 (en) | Intelligent network streaming and execution system for conventionally coded applications | |
US7441020B2 (en) | Media plug-in registration and dynamic loading | |
KR100968661B1 (ko) | 컴퓨팅 장치에서 실행하는 애플리케이션을 동적으로향상시키는 시스템, 방법 및 컴퓨터 프로그램 제품 | |
JP4309458B2 (ja) | 中央サーバによって、当該中央サーバに接続されたノードの機能アプリケーションをサポートする方法およびコンピュータ読み取り可能な記録媒体 | |
JP4079288B2 (ja) | ネットワーク経由でソフトウェアを自動的にアップグレードする方法、そのシステム及びその記憶媒体 | |
US8831995B2 (en) | Optimized server for streamed applications | |
US7043524B2 (en) | Network caching system for streamed applications | |
KR19990076824A (ko) | 네트워크를 통한 전송 전에 컴퓨터 프로그램을 처리하기 위한장치 및 방법 | |
JP2005235221A (ja) | 共通オペレーティングシステムを提供するための方法およびシステム | |
US20060135230A1 (en) | Post-deployment spot creation | |
CN107391219B (zh) | 函数编译方法和装置 | |
US7076774B2 (en) | Infrastructure for generating a downloadable, secure runtime binary image for a secondary processor | |
JP4724660B2 (ja) | 組み込みシステムの中に統合されるソフトウェアコンポーネントを管理する方法 | |
CN112667228A (zh) | 应用程序的构建方法、装置及计算机设备 | |
US20100318967A1 (en) | Supplementary deployment actions | |
JP2004287631A (ja) | ダウンロードサービスシステム、端末、指令列の実行方法、ならびに、プログラム | |
JP2007527562A5 (ja) | ||
JP2005011209A (ja) | ソフトウェア更新システムとソフトウェア提供装置とソフトウェア処理装置およびソフトウェア更新方法 | |
JP2001273147A (ja) | 情報配布方法、情報配布システム、情報配布サーバ、端末機器および記録媒体 | |
JP2005020724A (ja) | プログラム置き換え方法 | |
Lee et al. | SAMD: Fine-grained application sharing for mobile collaboration | |
CN113438540A (zh) | 基于广告曝光率的广告预加载播放方法及装置 | |
JPH09223021A (ja) | ソフトウェア共有方法 | |
JP4724364B2 (ja) | 管理サーバおよびモジュール配布システムおよびモジュールインストール方法およびコンピュータが読み取り可能なプログラムを格納した記憶媒体およびプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060223 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060228 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060420 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20060427 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20060525 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20061219 |