(58)【調査した分野】(Int.Cl.,DB名)
書込完了識別情報が対応付けられた単位データを1以上含み、前記単位データを格納する領域と異なる領域に前記書込完了識別情報を格納するファイルが記憶される記憶媒体と、
データ書込装置と通信する通信部と、
前記データ書込装置からのデータ書込の指示に応じて前記記憶媒体に対する単位データの書き込みが行われたことに応じて、書き込まれた単位データに対応する書込完了識別情報を、書き込みが行われていないことを示す状態から書き込み完了を示す状態に書き換える識別情報制御部とを備え、
前記書込完了識別情報は、前記データ書込装置と通信が確立していない状態では初期状態となるように制御される
記憶媒体装置。
記憶媒体装置の状態遷移にあたり、前記状態遷移に必要な全ての単位データの書き込みが完了しているか否かを前記書込完了識別情報に基づいて判定し、前記全ての単位データの書き込みが完了していないことを判定した場合に前記状態遷移を禁止し、前記全ての単位データの書き込みが完了していることを判定した場合に前記状態遷移を許可する状態遷移制御部をさらに備える
請求項1に記載の記憶媒体装置。
前記データ書込装置からのデータ書込の指示に対応して書込対象とされた単位データについて書き込みが完了しているか否かを前記書込完了識別情報に基づいて判定し、書き込みが完了していないことを判定した場合にデータの書き込みを行い、書き込みが完了していることを判定した場合にデータの書き込みを行わないようにされたデータ書込部をさらに備える
請求項1または2に記載の記憶媒体装置。
書込完了識別情報が対応付けられた単位データを1以上含み、前記単位データを格納する領域と異なる領域に前記書込完了識別情報を格納するファイルが記憶される記憶媒体と、データ書込装置と通信する通信部とを備える記憶媒体装置としてのコンピュータを、
前記データ書込装置により前記記憶媒体に対する単位データの書き込みが行われたことに応じて、書き込まれた単位データに対応する書込完了識別情報を、書き込みが行われていないことを示す状態から書き込み完了を示す状態に書き換える識別情報制御部として機能させるためのプログラムであって、
前記書込完了識別情報は、前記データ書込装置と通信が確立していない状態では初期状態となるように制御される
プログラム。
【発明を実施するための形態】
【0010】
以下、図面を参照して本実施形態について説明する。
[ICカードの記憶媒体におけるデータ構造]
以下、本発明の実施形態としてのICカード(記憶媒体装置の一例)について図面を参照して説明する。
本実施形態のICカードは、内部に記憶媒体を備え、ICカード発行装置やリーダライタなどの外部通信装置と通信が可能に構成される。ICカードは、外部通信装置との通信により、外部通信装置の制御に応じて、記憶媒体に対するデータの書き込み、あるいは読み出しを実行する。
【0011】
ICカードの記憶媒体にはファイル単位でデータが管理される。
図1は、本実施形態のICカードが備える記憶媒体103の記憶領域についてのマッピング例を示している。同図に示すように、記憶媒体103の記憶領域は、ファイル管理領域AR1、システム領域AR2及びユーザデータ領域AR3を備える。
【0012】
ファイル管理領域AR1は、システム領域AR2やユーザデータ領域AR3に記憶されるデータをファイル単位で管理するファイル管理情報が記憶される領域である。一例として本実施形態におけるファイル管理領域AR1には、FAT(File Allocation Table)ファイルシステムに対応したファイル管理情報が格納されればよい。
【0013】
システム領域AR2は、OS(Operating System)や各種設定情報などをはじめとするシステム情報が記憶される領域である。
ユーザデータ領域AR3は、アプリケーションが使用するユーザデータが記憶される領域である。ファイルのデータは、ユーザデータ領域AR3に記憶される。
なお、記憶媒体103の記憶領域においては、ファイル管理領域AR1、システム領域AR2及びユーザデータ領域AR3以外の領域が含まれていてもよい。
【0014】
図2は、ファイルFLの構造例を示している。同図に示すように、ファイルFLは、ファイルヘッダとデータ領域とを含む構造である。
ファイルヘッダには、ファイルに関連する所定のパラメータが格納される。
データ領域には、ファイルとしてのデータが格納される。本実施形態において、データ領域に格納されるファイルは、固定長によるレコードが配置されるレコード構造を有する。このようなレコード構造においては、レコードごとにデータ(レコードデータ:単位データの一例)が格納される。レコードに格納されるレコードデータは、以下に例示するように、それぞれ所定の定義に従った内容を有する。即ち、1つのファイルは1以上のレコードを含み、各レコードには、例えば所定の定義に従った種別のデータが格納される。
本実施形態においては、ファイルFLのデータ領域に格納可能なレコード数が最大で「8」とされている場合を例に挙げる。同図においては、ファイルFLのデータ領域において、格納可能なレコードの最大数に対応する8個のレコード#1〜#8が格納された例を示している。
【0015】
また、本実施形態では、ファイルヘッダにおける所定の位置に書込完了フラグエリアFLAが配置される。
図3を参照して、
図2のファイルFLに対応する書込完了フラグエリアFLAの例について説明する。
図3(A)に示されるように、書込完了フラグエリアFLAは、ビット位置b1〜b8ごとに対応する各1ビットの書込完了フラグが8個配置されて形成される。ビット位置b1〜b8ごとに対応する書込完了フラグが、それぞれ、レコード#1〜#8に対応付けられている。
書込完了フラグは、対応のレコードに対するレコードデータの書き込みが完了したか否かを示す。以降の説明において、本実施形態の書込完了フラグは、「0」により書き込みが完了していないことを示し、「1」により書き込みが完了したことを示すように定義されている場合を例に挙げる。
【0016】
例えばICカードがICカード発行装置とセッションを開始する直前の段階においては、
図3(A)に示すように、8個の書込完了フラグは全て「0」にリセットされた初期状態となっている。
そして、ICカード発行装置によりファイルFLの書き込みが指示されると、ICカードは、記憶媒体103に対してファイルFLのデータの書き込みを行う。この際、ICカードは、書込対象のファイルFLのデータ領域に配置されるレコードの領域に対して、ICカード発行装置の指定に応じて、順次、レコードデータの書き込みを行う。
そして、ICカードは、上記のようにデータの書き込みを実行していく過程において、レコードに対するレコードデータの書き込みを完了するごとに、レコードデータの書き込みが完了されたレコードに対応する書込完了フラグを「0」から「1」に書き換える。この結果、ファイルFLにおけるレコード#1〜#8の8つのレコードごとに対応するレコードデータの書き込みが全て成功すれば、
図3(B)のように、ビット位置b1〜b8ごとのビットによる8つの書込完了フラグの全てが「1」となる状態が得られる。つまり、書込完了フラグエリアFLAにおけるビット位置b1〜b8の書込完了フラグによって、レコード#1〜#8の全てに対するレコードデータの書き込みが完了したことが示される。
【0017】
一方、図示は省略するが、ファイルFL単位に対応する書き込みが完了した段階で、レコード#1〜#8のうちでレコードデータの書き込みが行われなかったものがあった場合、書き込みが行われなかったレコードに対応するビット位置の書込完了フラグについては「0」のままである。具体的に、レコード#1〜#8のうち、レコード#3のみがレコードデータの書き込みが行われなかった場合、ビット位置b1、b2、b4〜b8の書込完了フラグについてはそれぞれ「1」であるが、ビット位置b3の書込完了フラグについてはそれぞれ「0」の状態となる。この場合、書込完了フラグエリアFLAにおけるビット位置b1〜b8の書込完了フラグによって、レコード#1、#2、#4〜#8についてはレコードデータの書き込みが完了したが、レコード#3についてはレコードデータの書き込みが行われていないことが示される。
【0018】
また、ファイルFLにおいて格納可能なレコードの最大数が8個である場合において、ファイルFLが8個未満のレコードを格納する場合に対応する書込完了フラグエリアFLAの例について説明する。
図4は、一具体例として、ファイルFLが3つのレコードを格納する場合に対応する書込完了フラグエリアFLAの例が示されている。このようにファイルFLが格納するレコード数が3つとされて8個より少ない場合においても、書込完了フラグエリアFLAは、格納可能なレコードの最大数に対応させて8ビットにより形成される。
そのうえで、書込完了フラグの初期状態においては、
図4(A)に示すようにビット位置b1〜b8の各書込完了フラグがリセットされる。つまり、ビット位置b1〜b3に対応する3ビットの書込完了フラグについてはそれぞれ「0」がセットされ、書き込みが完了していないことを示す。一方、レコードが対応しないビット位置b4〜b8に対応する5ビットの書込完了フラグについてはそれぞれ「1」がセットされる。つまり、初期化段階にて既に書き込みが完了していることが示されるようにすることで無効化が図られる。
【0019】
そして、或る1つのファイルFLに対するデータの書き込みがICカード発行装置により指示されたことに応じて、ICカードは、指定されたファイルFLのデータの書き込みにあたり、3つのレコードのレコードデータを書き込む。この結果、
図4(A)に示す初期状態の書込完了フラグエリアFLAは、
図4(B)に示すように、ビット位置b1〜b3の3ビットの書込完了フラグがそれぞれ「0」から「1」に書き換えられたことで、ビット位置b1〜b8の全てに対応する書込完了フラグが「1」となる。これにより、書込完了フラグエリアFLAの書込完了フラグにより、ファイルFLにおける全てのレコードに対する書き込みを完了したことが示される。
【0020】
一方、図示は省略するが、ファイルFLのデータ書き込みが完了した段階で、レコード#1〜#3のうちでレコードデータの書き込みが行われなかったものがあった場合、書き込みが行われなかったレコードに対応するビット位置の書込完了フラグについては「0」のままであり、レコードデータの書き込みが行われていないことが示される。
【0021】
上記
図3、
図4の書込完了フラグエリアFLAは、ファイルFLに格納可能なレコードの最大数に応じたビット数による固定長である。しかしながら、書込完了フラグエリアは、例えばファイルFLに格納されるレコード数に応じたビット数を有する可変長であってもよい。
【0022】
なお、書込完了フラグエリアFLAにおける各書込完了フラグの値は、例えば、ICカード発行装置との通信が確立した状態のもとで実行されるセッションが完了した段階で初期状態に戻されるように初期化が行われる。あるいは、書込完了フラグエリアFLAにおける各書込完了フラグの初期化は、例えばICカード発行装置との通信の確立に応じてセッションが開始されるまでの所定の段階で行われるようにしてもよい。
また、書込完了フラグエリアFLAは、
図2に示したようにファイルFLのファイルヘッダに格納されている。つまり、
図2の書込完了フラグエリアFLAは、ファイルFLの構造内に格納された例を示している。
しかしながら、例えば書込完了フラグエリアFLAは、ファイルFLとの関連付けが為されたうえで、ファイルFLに含まれない個別の情報として記憶媒体103における所定の領域に格納されるようにしてよい。この場合において、書込完了フラグエリアFLAは、揮発性のRAM領域に格納されるようにしてよい。このように不揮発性の領域に書込完了フラグエリアFLAの領域を設定することで、例えばトランザクションが完了してICカード発行装置との通信が切断されて、ICカードへの電源供給が停止することに応じて、書込完了フラグエリアFLAにおける各書込完了フラグの値をリセットすることができる。
【0023】
[ICカードの構成例]
続いて、
図5を参照して、本実施形態におけるICカード100の構成例について説明する。同図においては、ICカード100とともに、ICカード発行装置200(データ書込装置の一例)が示されている。
【0024】
先に、ICカード発行装置200について説明する。ICカード発行装置200は、ICカード100の発行に関連する発行処理を行う装置である。ICカード発行装置200は、発行処理として、ICカード100が備える記憶媒体103に、ファイルFLのデータが格納されるファイル格納領域を作成するファイル生成を実行することができる。そのうえで、ICカード発行装置200は、ファイル生成により作成されたファイル格納領域にファイルのデータを書き込むことができる。ICカード発行装置200は、ファイルFLのデータの書き込みに際して、ユーザデータ領域AR3のデータについては、レコード単位で指定を行ってデータ(レコードデータ)の書き込みを行う。
【0025】
次に、同図のICカード100について説明する。同図のICカード100は、通信部101、制御部102及び記憶媒体103を備える。
通信部101は、ICカード発行装置200と通信を実行する。
制御部102は、ICカード100における各種制御を実行する。制御部102としての機能は、例えばICカード100が備えるCPU(Central Processing Unit)が、記憶媒体103に記憶されたプログラムを実行することにより実現される。
本実施形態における制御部102は、記憶媒体103に記憶されるデータの書き込みに関連する機能部として、データ書込部121、識別情報制御部122、及び状態遷移制御部123を備える。
【0026】
データ書込部121は、ICカード発行装置200から送信されるコマンドに応じて、記憶媒体103に対するデータの書き込みを実行する。この際、データ書込部121は、ファイルFLにおけるユーザデータ領域AR3については、レコード単位でレコードデータの書き込みを行う。そのうえで、本実施形態のデータ書込部121は、ICカード発行装置200からのデータ書き込みの指示に対応して書込対象とされたレコードデータについて書き込みが完了している状態にあるか否かを書込完了フラグ(書込完了識別情報の一例)に基づいて判定する。データ書込部121は、書き込みが完了していないことを判定した場合にデータの書き込みを行い、書き込みが完了していることを判定した場合にデータの書き込みを行わないようにする。
【0027】
識別情報制御部122は、ICカード発行装置200からのデータ書き込みの指示に応じて記憶媒体103に対するレコードデータの書き込みが行われたことに応じて、書き込まれたレコードデータに対応する書込完了フラグを、書き込みが行われていないことを示す状態から書き込み完了を示す状態に書き換える。
【0028】
状態遷移制御部123は、ICカード100の状態遷移を制御する。ここで、状態遷移制御部123が制御する「状態」は、1セッションにおけるICカード発行装置200からのコマンド等に対応して設定されるICカード100の状態(ステイタス)であり、例えば1セッションにおいて「idle(0x00)」、「select(0x01)」、「Write Complete(0x02)」・・・「end(0xXX)」のように遷移する。
状態遷移制御部123は、状態遷移に必要な全てのレコードへのレコードデータの書き込みが完了しているか否かを書込完了フラグに基づいて判定し、全てのレコードへのレコードデータの書き込みが完了していないことを判定した場合に状態遷移を禁止し、全てのレコードへのレコードデータの書き込みが完了していることを判定した場合に状態遷移を許可する。
【0029】
記憶媒体103は、制御部102が利用する各種の情報を記憶する。前述のように、本実施形態の記憶媒体103は、
図1に示した領域の設定が行われたうえで、
図2に示した構造のファイルを記憶する。なお、記憶媒体103が対応するハードウェアは、例えばEEPROM(Electrically Erasable Programmable Read-Only Memory)やフラッシュメモリなどであればよい。
【0030】
[処理手順例]
続いて、
図6のフローチャートを参照して、本実施形態におけるICカード100が実行する処理手順例について説明する。同図の処理は、ICカード100がセッション内で或る1のコマンドに応じて実行するシーケンスに対応する。
【0031】
ICカード100においてデータ書込部121は、ICカード発行装置200から受信したコマンドに対応するコマンド実行条件について確認する(ステップS101)。コマンド実行条件の確認にあたり、データ書込部121は、今回受信されたコマンドコードに対応するコマンド実行条件フラグの値を参照する。コマンド実行条件フラグは、対応のコマンドコードごとに対応して実行可能あるいは実行不可のいずれかを示す。
【0032】
データ書込部121は、ステップS101によりコマンド実行条件を確認した結果、コマンドに応答した処理を実行可能であるか否かについて判定する(ステップS102)。
コマンドに応答した処理を実行可能である場合(ステップS102−YES)、データ書込部121は、コマンドに対する応答として書込対象となるファイルFL内のレコードを検索する(ステップS103)。データ書込部121は、ステップS103による検索の結果、書込対象レコードが検索されたか否かについて判定する(ステップS104)。
【0033】
書込対象のレコードがステップS103により検索された場合(ステップS104−YES)、データ書込部121は、書込対象のレコードごとについての書込完了フラグの値を確認する(ステップS105)。この際、データ書込部121は、書込対象のレコードを含むファイルFLにアクセスし、ファイルヘッダに格納された書込完了フラグエリアFLA内の書込完了フラグの値を確認する。
【0034】
データ書込部121は、ステップS105による書込完了フラグの確認の結果、既に書き込みが完了しているレコード(書込完了レコード)が少なくとも1つ有るか否かについて判定する(ステップS106)。
【0035】
ここで、コマンドに応答した処理が実行不可であった場合(ステップS102−NO)、データ書込部121は、実行条件エラーに対応する処理を実行する(ステップS107)。具体的に、データ書込部121は、ステップS107として、コマンドに応答した以降のデータ書き込みの処理を実行しないようにする。また、データ書込部121は、ICカード発行装置200に対して実行条件エラーの発生を通知してもよい。
【0036】
また、コマンド実行条件フラグが実行可能を示していたとしても、例えばそのコマンドが本来はICカード100が対応不可のものであるなどの理由で、コマンドに対応する書込対象のレコードが記憶媒体103に存在しない場合がある。このような場合には、ステップS103による書込対象のレコードの検索の結果、書込対象のレコードの少なくとも一部が存在しないと判定される(ステップS104−NO)。この場合、データ書込部121は、実行条件エラーに対応する処理を実行する(ステップS107)。
【0037】
また、コマンド実行条件フラグが実行可能を示しており、書込対象のレコードが記憶媒体103に存在していたとしても、今回のICカード発行装置200とのセッションにおいて、今回のコマンドに対応して書込対象とされたレコードが、既に書き込まれている場合がある。この場合には、ステップS105による書込完了フラグの確認の結果、書込完了レコードが有ると判定されることになる(ステップS106−YES)。本実施形態において、1セッションにおいて同じレコードに対して複数回のレコードデータの書き込みが行われることは許容されていない。そこで、この場合のデータ書込部121は、実行条件エラーに対応する処理を実行する(ステップS107)。これにより、1セッションにおいて同じレコードに対して複数回のレコードデータの書き込みが行われることが防止される。
【0038】
一方、ステップS105による書込完了フラグの確認の結果、書込完了レコードが1つも無い、即ち、書込対象のレコードの全てが未だ書き込まれていないことが判定された場合(ステップS106−NO)、データ書込部121は、以下の処理を実行する。
つまり、データ書込部121は、書込対象のレコードのうちの1つのレコードに格納されたレコードデータの書き込みを実行する(ステップS108)。データ書込部121は、書き込まれたレコードデータを、通信部101を介してICカード発行装置200に転送する。
【0039】
識別情報制御部122は、ステップS108によりレコードデータの書き込みが実行されたことに応じて、書き込まれたレコードデータのレコードに対応する書込完了フラグの書き換えを行う(ステップS109)。つまり、識別情報制御部122は、書き込まれたレコードデータのレコードに対応する書込完了フラグについて、未だ書き込まれていないことを示す「0」から、書き込みが完了したことを示す「1」に変更する。
【0040】
データ書込部121は、今回のステップS108によるレコードデータの書き込みにより、書込対象のレコードのうち最後のレコードに対するレコードデータの書き込みが完了したか否かについて判定する(ステップS110)。
最後のレコードに対するレコードデータの書き込みを未だ実行していない場合(ステップS110−NO)、データ書込部121は、ステップS108に処理を戻す。これにより、未だレコードデータの書き込みが行われていない書込対象のレコードのうちの1つを対象としてレコードデータが書き込まれ、対応の書込完了フラグの書き換えが行われる。
【0041】
一方、最後の書込対象として指定されたレコードに対するレコードデータの書き込みが完了した場合(ステップS110−YES)、状態遷移制御部123は、コマンドに対する応答として書き込むべきレコードのそれぞれに対応する書込完了フラグの値を確認する(ステップS111)。
状態遷移制御部123は、ステップS111による確認結果から、コマンドに対する応答として書き込むべき書込対象のレコードの全てに対するレコードデータの書き込みが完了しているか否かについて判定する(ステップS112)。
【0042】
ICカード発行装置200による書き込み対象のレコードの指定のエラーや、データ書込部121側のデータ書き込みのエラーなどにより、コマンドに対する応答として書き込むべきレコードのうちのいずれかがステップS108によって書き込まれない場合がある。このような場合には、書き込まれなかったレコードについてはステップS108により対応の書込完了フラグの書き換えが行われない。この場合、ステップS111による確認の結果、書込対象のレコードの全てについて書き込みが完了していないと判定される(ステップS112−NO)。
このように書込対象のレコードの全てについて書き込みが完了していないことが判定された場合、状態遷移制御部123は、状態遷移エラーに対応する処理を実行する(ステップS113)。具体的に、状態遷移制御部123は、今回のコマンドに応答したデータの書き込みの完了に応じた次の状態への遷移を行わないようにする。つまり、この場合の状態遷移制御部123は、次の状態への遷移を禁止する制御を行う。また、状態遷移制御部123は、状態遷移エラーが発生したことをICカード発行装置200に対して通知してもよい。
【0043】
一方、書込対象のレコードの全てについて書き込みが完了していることが判定された場合(ステップS112−YES)、状態遷移制御部123は、次の状態への遷移が行われるように制御する(ステップS114)。つまり、この場合の状態遷移制御部123は、次の状態への遷移を許可する制御を行う。
【0044】
以上説明したように、本実施形態におけるICカード100は、記憶媒体103に記憶されるファイルFLに格納されるレコードごとに対応する書込完了フラグの管理が可能なようにされている。これにより、ICカード100自体が、1セッションにおけるレコード単位のデータの書き込みが完了しているか否かの判定を行うことが可能になる。
【0045】
そのうえで、ICカード100は、データの書き込みに先立って、書込完了フラグにより書込対象のレコードに対する書き込みの完了していることが示されている場合には、データの書き込みを行わないようにする(ステップS105、ステップS106、ステップS107)。これにより、例えばコマンド実行条件を満足したことに応じてファイルFLの書き込みが許可されていたとしても、ファイルFL内の同じレコードを対象として複数回の書き込みが実行されてしまうという不具合の発生を防ぐことができる。また、このような制御によって、不具合の発生の防止のほか、例えばコマンド実行条件を満たした後における不正な記憶媒体103へのアクセスによるデータの書き込みを防止できる。
また、ICカード100は、書込対象として指定されたレコードに対するレコードデータの書き込みが終了した段階において書込完了フラグを確認し、書込対象のレコードの全てに対する書き込みが完了していなければ、次の状態への遷移を行わない(禁止する)ようにしている(ステップS111、S112、S113)。これにより、本実施形態のICカード100においては、或る状態のもとでのデータの書き込みが適切に完了していないのに次の状態に遷移してしまうという不具合の発生を防止できる。また、例えば偽のコマンドでコマンド実行条件をクリアしたとしても、例えば書込対象のレコードの指定が異なっていれば状態遷移エラーとなって状態遷移が生じないことから、不正を有効に防止できる。
本実施形態においては、上記のような不具合発生の防止や不正の防止について、上位のICカード発行装置200に依ることなく、ICカード100自体で実現できる。
【0046】
なお、ICカード100に対するデータの書き込み(書き換えも含む)は、ICカードの発行後の運用段階においてもリーダライタ等の制御によって行われる場合がある。本実施形態のICカード100における上記のような書込完了フラグの管理、及び書込完了フラグに基づくレコード書込制御、状態遷移制御は、運用段階においても適用されてよい。
【0047】
なお、上述のICカード100としての機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより上述のICカード100としての処理を行ってもよい。ここで、「記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行する」とは、コンピュータシステムにプログラムをインストールすることを含む。ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、インターネットやWAN、LAN、専用回線等の通信回線を含むネットワークを介して接続された複数のコンピュータ装置を含んでもよい。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。このように、プログラムを記憶した記録媒体は、CD−ROM等の非一過性の記録媒体であってもよい。また、記録媒体には、当該プログラムを配信するために配信サーバからアクセス可能な内部または外部に設けられた記録媒体も含まれる。配信サーバの記録媒体に記憶されるプログラムのコードは、端末装置で実行可能な形式のプログラムのコードと異なるものでもよい。すなわち、配信サーバからダウンロードされて端末装置で実行可能な形でインストールができるものであれば、配信サーバで記憶される形式は問わない。なお、プログラムを複数に分割し、それぞれ異なるタイミングでダウンロードした後に端末装置で合体される構成や、分割されたプログラムのそれぞれを配信する配信サーバが異なっていてもよい。さらに「コンピュータ読み取り可能な記録媒体」とは、ネットワークを介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(RAM)のように、一定時間プログラムを保持しているものも含むものとする。また、上記プログラムは、上述した機能の一部を実現するためのものであってもよい。さらに、上述した機能をコンピュータシステムに既に記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。