(57)【要約】【課題】オンライン環境利用に制約のある機器の機器動作規定情報の更新の手間を大幅に軽減する。【解決手段】既に新バージョンの機器動作規定情報へと更新済みの機器は、この新バージョンの機器動作規定情報を複数に分割してなる各プログラムブロックうちの１つを、当該機器を利用するユーザの利用者カード１に記憶させる。旧バージョンで動作している機器は、新バージョンのプログラムブロックを記憶している利用者カード１が自機に対して使用されると、所定の電子マネー決済処理等を行うと共に、この新バージョンのプログラムブロックを取得してプログラムブロック格納領域２５に格納する。全てのプログラムブロックを取得したら、今度は上記更新済みの機器として動作することになる。【選択図】図１
2009099071.tif 000002
【特許請求の範囲】
【請求項１】
複数のＩＣカード利用機器より成り、任意のユーザのＩＣカードを利用するシステムであって、
前記各ＩＣカード利用機器は、
自機に対して任意の前記ＩＣカードが使用される毎に、該ＩＣカードに記憶されている機器動作規定情報のバージョンと、自機の現在の動作に用いている機器動作規定情報のバージョンである現行バージョンとを比較して、該２つのバージョンの新旧を判定するバージョン新旧判定手段と、
該バージョン新旧判定手段の判定の結果、前記ＩＣカードのバージョンの方が前記現行バージョンよりも新しい場合には、該ＩＣカードに記憶されている機器動作規定情報を新バージョンの機器動作規定情報として取得・格納する情報取得手段と、
該バージョン新旧判定手段の判定の結果、前記ＩＣカードのバージョンが前記現行バージョンよりも旧い場合には、前記現行バージョンの機器動作規定情報を、前記ＩＣカードに書き込む情報書込手段とを有し、
前記ＩＣカードは、少なくとも前記機器動作規定情報とその前記バージョンとを記憶する記憶手段を有することを特徴とする情報配信システム。
【請求項２】
複数のＩＣカード利用機器より成り、任意の複数のユーザのＩＣカードを利用するシステムであって、
前記各ＩＣカード利用機器は、
自機に対して任意の前記ＩＣカードが使用される毎に、該ＩＣカードに機器動作規定情報の一部である分割データと該機器動作規定情報のバージョンとが記憶されている場合、このバージョンと、自機の現在の動作に用いている機器動作規定情報のバージョンである現行バージョンとを比較して、該２つのバージョンの新旧を判定するバージョン新旧判定手段と、
該バージョン新旧判定手段の判定の結果、前記ＩＣカードのバージョンの方が前記現行バージョンよりも新しい場合には、該ＩＣカードに記憶されている前記分割データを新バージョンの機器動作規定情報の一部として取得・格納する情報取得手段と、
該情報取得手段によって前記分割データを取得したことで前記新バージョンの機器動作規定情報の全ての分割データを取得できた場合、該新バージョンの機器動作規定情報を新たな現行バージョンの機器動作規定情報とする機器動作規定情報更新手段と、
前記バージョン新旧判定手段の判定の結果、前記ＩＣカードのバージョンが前記現行バージョンよりも旧い場合には、前記現行バージョンの機器動作規定情報の一部を前記分割データとして前記ＩＣカードに書き込む情報書込手段とを有し、
前記ＩＣカードは、少なくとも前記分割データとそのバージョンとを記憶する記憶手段を有することを特徴とする情報配信システム。
【請求項３】
前記情報書込手段は、前記ＩＣカードへ前記分割データとバージョンを書き込む際、該分割データの識別番号と該分割データの総数も前記ＩＣカードに書き込み、
前記情報取得手段は、該識別番号に基づいて前記ＩＣカードに記憶されている分割データが既に取得済みであるか否かを判定し、取得済みである場合には該分割データの取得は行わず、
前記機器動作規定情報更新手段は、前記分割データの総数と識別番号とに基づいて、前記新バージョンの機器動作規定情報の全ての分割データを取得できたか否かを判別することを特徴とする請求項２記載の情報配信システム。
【請求項４】
前記各ＩＣカード利用機器は、
前記総数と取得済みの分割データの識別番号とに基づいて未取得の分割データの識別番号を判別し、該未取得の分割データの識別番号をリクエスト番号として前記ＩＣカードに
登録するリクエスト登録手段を更に有し、
前記情報書込手段は、前記ＩＣカードに任意の前記リクエスト番号が登録されている場合には、該リクエスト番号に対応する分割データを前記ＩＣカードに書き込むことを特徴とする請求項３記載の情報配信システム。
【請求項５】
前記ＩＣカードの記憶手段には更に任意の前記ＩＣカード利用機器の機器ＩＤが登録可能となっており、
前記各ＩＣカード利用機器は、前記自機に対して使用された任意の前記ＩＣカードに前記機器ＩＤが登録されていない場合には自機の機器ＩＤを登録可能であり、自機の機器ＩＤが登録されているＩＣカード利用機器だけが前記リクエスト番号の登録を行えることを特徴とする請求項４記載の情報配信システム。
【請求項６】
前記自機の機器ＩＤを任意の前記ＩＣカードに登録したＩＣカード利用機器は、前記新バージョンの機器動作規定情報の全ての分割データを取得できた場合、該ＩＣカードに登録した自機の機器ＩＤを消去することを特徴とする請求項５記載の情報配信システム。
【請求項７】
任意の前記ＩＣカードに登録された任意の前記機器ＩＤは、該機器ＩＤの登録元のＩＣカード利用機器以外のＩＣカード利用機器であっても、該登録元のＩＣカード利用機器に対して一定期間以上前記ＩＣカードが使用されなかった場合には、消去できることを特徴とする請求項５又は６記載の情報配信システム。
【請求項８】
自機に対して任意の前記ＩＣカードが使用される毎に、該ＩＣカードに記憶されている機器動作規定情報のバージョンと、自機の現在の動作に用いている機器動作規定情報のバージョンである現行バージョンとを比較して、該２つのバージョンの新旧を判定するバージョン新旧判定手段と、
該バージョン新旧判定手段の判定の結果、前記ＩＣカードのバージョンの方が前記現行バージョンよりも新しい場合には、該ＩＣカードに記憶されている機器動作規定情報を新バージョンの機器動作規定情報として取得・格納する情報取得手段と、
該バージョン新旧判定手段の判定の結果、前記ＩＣカードのバージョンが前記現行バージョンよりも旧い場合には、前記現行バージョンの機器動作規定情報を、前記ＩＣカードに書き込む情報書込手段と、
を有することを特徴とするＩＣカード利用機器。
【請求項９】
自機に対して任意の前記ＩＣカードが使用される毎に、該ＩＣカードに機器動作規定情報の一部である分割データと該機器動作規定情報のバージョンとが記憶されている場合、このバージョンと、自機の現在の動作に用いている機器動作規定情報のバージョンである現行バージョンとを比較して、該２つのバージョンの新旧を判定するバージョン新旧判定手段と、
該バージョン新旧判定手段の判定の結果、前記ＩＣカードのバージョンの方が前記現行バージョンよりも新しい場合には、該ＩＣカードに記憶されている前記分割データを新バージョンの機器動作規定情報の一部として取得・格納する情報取得手段と、
該情報取得手段によって前記分割データを取得したことで前記新バージョンの機器動作規定情報の全ての分割データを取得できた場合、該新バージョンの機器動作規定情報を新たな現行バージョンの機器動作規定情報とする機器動作規定情報更新手段と、
前記バージョン新旧判定手段の判定の結果、前記ＩＣカードのバージョンが前記現行バージョンよりも旧い場合には、前記現行バージョンの機器動作規定情報の一部を前記分割データとして前記ＩＣカードに書き込む情報書込手段と、
を有することを特徴とするＩＣカード利用機器。
【請求項１０】
ＩＣカード利用機器のコンピュータを、
自機に対して任意の前記ＩＣカードが使用される毎に、該ＩＣカードに記憶されている機器動作規定情報のバージョンと、自機の現在の動作に用いている機器動作規定情報のバージョンである現行バージョンとを比較して、該２つのバージョンの新旧を判定するバージョン新旧判定手段と、
該バージョン新旧判定手段の判定の結果、前記ＩＣカードのバージョンの方が前記現行バージョンよりも新しい場合には、該ＩＣカードに記憶されている機器動作規定情報を新バージョンの機器動作規定情報として取得・格納する情報取得手段と、
該バージョン新旧判定手段の判定の結果、前記ＩＣカードのバージョンが前記現行バージョンよりも旧い場合には、前記現行バージョンの機器動作規定情報を、前記ＩＣカードに書き込む情報書込手段、
として機能させるためのプログラム。
【請求項１１】
ＩＣカード利用機器のコンピュータを、
自機に対して任意の前記ＩＣカードが使用される毎に、該ＩＣカードに機器動作規定情報の一部である分割データと該機器動作規定情報のバージョンとが記憶されている場合、このバージョンと、自機の現在の動作に用いている機器動作規定情報のバージョンである現行バージョンとを比較して、該２つのバージョンの新旧を判定するバージョン新旧判定手段と、
該バージョン新旧判定手段の判定の結果、前記ＩＣカードのバージョンの方が前記現行バージョンよりも新しい場合には、該ＩＣカードに記憶されている前記分割データを新バージョンの機器動作規定情報の一部として取得・格納する情報取得手段と、
該情報取得手段によって前記分割データを取得したことで前記新バージョンの機器動作規定情報の全ての分割データを取得できた場合、該新バージョンの機器動作規定情報を新たな現行バージョンの機器動作規定情報とする機器動作規定情報更新手段と、
前記バージョン新旧判定手段の判定の結果、前記ＩＣカードのバージョンが前記現行バージョンよりも旧い場合には、前記現行バージョンの機器動作規定情報の一部を前記分割データとして前記ＩＣカードに書き込む情報書込手段、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＩＣカード利用機器の機器動作規定情報の更新を行うシステム等に関する。
【背景技術】
【０００２】
例えば電子マネー決済端末等のような各所に点在する機器に対する機器動作規定情報（そのプログラムや設定情報等）の更新は、通常はセンタ装置と上記各機器間を通信回線で結び、オンラインにて更新される。しかし通信環境、コスト等の要因によってオンライン環境が構築出来ない機器、あるいはオンライン環境の利用を制限したい機器においては、メンテナンス要員が上記機器動作規定情報を記憶した記録媒体等を携帯して機器の設置現場に赴き、機器に直接インストールすることが一般的である。
【０００３】
また、特許文献１では、機器内のプログラムの一部をＩＣカード内に保持し、ＩＣカードからプログラムを読み込むことでプログラムを利用可能とすることが提案されている。この提案はカードアクセス用の実行プログラムを、機器内とＩＣカード内に分割して保持させ、カード利用時にカードから読み出して実行プログラムを完成させることにより、機器内からカードアクセス用プログラムが盗み取られて、カードが不正にアクセスされることを防止することを目的としている。
【０００４】
しかし、本従来技術では機器内のプログラムを更新することは実現できず、カード内のプログラム情報を更新することで、実行プログラムの更新を実現しようとすると、カード内に多くのメモリ容量が必要となる。
【特許文献１】特開２００６−１０７０７８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上記のように、オンライン環境利用に制約のある機器に対する機器動作規定情報の更新には、メンテナンス要員が上記記憶媒体等を携帯して機器の設置場所に赴く必要があり、特に全国の各所に多数点在する自販機、電子マネー決済端末等のような機器の場合には、その設定作業には手間とコストを要した。
【０００６】
本発明の課題は、オンライン環境利用に制約のある機器に対する機器動作規定情報の更新を、この機器を利用する任意のユーザのＩＣカードを利用して行えるようにすることで、メンテナンス要員の設定作業負担を大幅に軽減できる情報配信システム、そのＩＣカード利用機器、プログラム等を提供することである。
【課題を解決するための手段】
【０００７】
本発明の情報配信システムは、複数のＩＣカード利用機器より成り、任意のユーザのＩＣカードを利用するシステムであって、前記各ＩＣカード利用機器は、自機に対して任意の前記ＩＣカードが使用される毎に、該ＩＣカードに記憶されている機器動作規定情報のバージョンと、自機の現在の動作に用いている機器動作規定情報のバージョンである現行バージョンとを比較して、該２つのバージョンの新旧を判定するバージョン新旧判定手段と、該バージョン新旧判定手段の判定の結果、前記ＩＣカードのバージョンの方が前記現行バージョンよりも新しい場合には、該ＩＣカードに記憶されている機器動作規定情報を新バージョンの機器動作規定情報として取得・格納する情報取得手段と、該バージョン新旧判定手段の判定の結果、前記ＩＣカードのバージョンが前記現行バージョンよりも旧い場合には、前記現行バージョンの機器動作規定情報を、前記ＩＣカードに書き込む情報書込手段とを有し、前記ＩＣカードは、少なくとも前記機器動作規定情報とその前記バージ
ョンとを記憶する記憶手段を有する。
【０００８】
最初に、メンテナンス要員等が手作業により新バージョンの機器動作規定情報を任意のＩＣカード利用機器にインストールする。このＩＣカード利用機器は、任意のＩＣカードに対して情報書込手段により新バージョンの機器動作規定情報を書き込む。その後、このＩＣカードが他の（旧バージョンで動作している）ＩＣカード利用機器で利用されると、その情報取得手段によって新バージョンの機器動作規定情報が取得され更新が行われることになる。新バージョンの機器動作規定情報へと更新されたＩＣカード利用機器は、未だ新バージョンの機器動作規定情報が記憶されていないＩＣカードが自機に対して使用されると、このＩＣカードに対して情報書込手段により新バージョンの機器動作規定情報を書き込む。これを繰返すことで、新バージョンの機器動作規定情報が任意のＩＣカードを介して機器から機器へと伝達（配信）されることになる。
【０００９】
また、本発明の情報配信システムは、複数のＩＣカード利用機器より成り、任意の複数のユーザのＩＣカードを利用するシステムであって、前記各ＩＣカード利用機器は、自機に対して任意の前記ＩＣカードが使用される毎に、該ＩＣカードに機器動作規定情報の一部である分割データと該機器動作規定情報のバージョンとが記憶されている場合、このバージョンと、自機の現在の動作に用いている機器動作規定情報のバージョンである現行バージョンとを比較して、該２つのバージョンの新旧を判定するバージョン新旧判定手段と、該バージョン新旧判定手段の判定の結果、前記ＩＣカードのバージョンの方が前記現行バージョンよりも新しい場合には、該ＩＣカードに記憶されている前記分割データを新バージョンの機器動作規定情報の一部として取得・格納する情報取得手段と、該情報取得手段によって前記分割データを取得したことで前記新バージョンの機器動作規定情報の全ての分割データを取得できた場合、該新バージョンの機器動作規定情報を新たな現行バージョンの機器動作規定情報とする機器動作規定情報更新手段と、前記バージョン新旧判定手段の判定の結果、前記ＩＣカードのバージョンが前記現行バージョンよりも旧い場合には、前記現行バージョンの機器動作規定情報の一部を前記分割データとして前記ＩＣカードに書き込む情報書込手段とを有し、前記ＩＣカードは、少なくとも前記分割データとそのバージョンとを記憶する記憶手段を有する。
【００１０】
機器動作規定情報のデータ全てが１枚のＩＣカードに記憶できない場合も想定できるので、この場合には、機器動作規定情報を複数に分割して、各分割データを各ＩＣカードに記憶する。
【００１１】
例えば、前記情報書込手段は、前記ＩＣカードへ前記分割データとバージョンを書き込む際、該分割データの識別番号と該分割データの総数も前記ＩＣカードに書き込み、前記情報取得手段は、該識別番号に基づいて前記ＩＣカードに記憶されている分割データが既に取得済みであるか否かを判定し、取得済みである場合には該分割データの取得は行わず、前記機器動作規定情報更新手段は、前記分割データの総数と識別番号とに基づいて、前記新バージョンの機器動作規定情報の全ての分割データを取得できたか否かを判別する。
【００１２】
また、例えば、前記各ＩＣカード利用機器は、前記総数と取得済みの分割データの識別番号とに基づいて未取得の分割データの識別番号を判別し、該未取得の分割データの識別番号をリクエスト番号として前記ＩＣカードに登録するリクエスト登録手段を更に有し、前記情報書込手段は、前記ＩＣカードに任意の前記リクエスト番号が登録されている場合には、該リクエスト番号に対応する分割データを前記ＩＣカードに書き込む。
【００１３】
機器動作規定情報を分割して成る複数の分割データのうち、どの分割データをＩＣカードに書き込むのかは、任意に（ランダムに）決定してもよいが、各受け取り側機器で必要とする（未取得の）分割データが書き込まれるとは限らず、効率が悪くなる可能性がある
。この為、上記の通り、各受け取り側機器が自機が未取得の分割データをＩＣカードを介してリクエストできるようにする。
【００１４】
また、例えば、前記ＩＣカードの記憶手段には更に任意の前記ＩＣカード利用機器の機器ＩＤが登録可能となっており、前記各ＩＣカード利用機器は、前記自機に対して使用された任意の前記ＩＣカードに前記機器ＩＤが登録されていない場合には自機の機器ＩＤを登録可能であり、自機の機器ＩＤが登録されているＩＣカード利用機器だけが前記リクエスト番号の登録を行えるようにしてもよい。
【００１５】
そして、例えば、前記自機の機器ＩＤを任意の前記ＩＣカードに登録したＩＣカード利用機器は、前記新バージョンの機器動作規定情報の全ての分割データを取得できた場合、該ＩＣカードに登録した自機の機器ＩＤを消去する。
【００１６】
但し、何等かの理由により（引越し等）上記登録が行われたＩＣカードのユーザが、登録元の機器を利用しなくなる可能性も考えられ、その場合には登録抹消できなくなり、他の機器が新たに登録することができなくなることが想定される。
【００１７】
これに対して、例えば、任意の前記ＩＣカードに登録された任意の前記機器ＩＤは、該機器ＩＤの登録元のＩＣカード利用機器以外のＩＣカード利用機器であっても、該登録元のＩＣカード利用機器に対して一定期間以上前記ＩＣカードが使用されなかった場合には、消去できるようにしてもよい。
【発明の効果】
【００１８】
本発明の情報配信システム、そのＩＣカード利用機器、プログラム等によれば、特別な装置を追加することなく、各所に点在しているオンライン環境利用に制約のあるカード利用機器に関して、当該核機器の機器動作規定情報更新に要するメンテナンス要員の手間を軽減することが可能となる。
【００１９】
すなわち、メンテナンス要員は、多数のＩＣカード利用機器のうちの一部の機器に対してのみ、直接機器の設置場所に赴いて機器動作規定情報を更新する作業を行えばよく、以降は各ＩＣカード利用機器を利用するユーザのＩＣカードを介して、機器から機器へ更新版の機器動作規定情報が伝達されることとなり、メンテナンス要員は全ての機器に対して更新作業を実施する必要はなくなり、大幅な運用コスト削減を実現することが可能となる。
【発明を実施するための最良の形態】
【００２０】
以下、図面を参照して、本発明の実施の形態について説明する。
図１は、本例のカード利用機器の構成例を示す。
図示のカード利用機器１０は、ＣＰＵ１１、プログラムメモリ１２、プログラム・情報更新メモリ１３、設定情報管理メモリ１４、カード利用機器機能制御部１５、ＩＣカードＲ／Ｗ（リーダ／ライタ）１６、アンテナ１７等から成る。
【００２１】
上記構成のうち、プログラム・情報更新メモリ１３以外の構成は、既存の一般的なカード利用機器としての動作を実現するための構成であるので、ここでは特に説明しない。但し、ＣＰＵ１１は、既存の一般的な処理（電子マネー決済処理等）を実行する他に、所定のアプリケーションプログラムを実行することで、本手法によるプログラム更新に係る処理（例えば図４、図６、図９のフローチャートの処理等、後述する各種処理）も実行するものである。
【００２２】
尚、カード利用機器１０とは、上述したように例えば店舗のレジ横等に設置される電子
マネー決済端末やＩＣカードによる料金支払いが行える自動販売機等、様々な装置であってよいが、少なくとも上記ＩＣカードＲ／Ｗ（リーダ／ライタ）１６及びアンテナ１７を有することで、任意の各ユーザが所持するＩＣカード（以下、利用者カード１という）との非接触型の通信を行う機能を有する機器（任意の一般ユーザによるＩＣカードの利用が行われる機器；ＩＣカード利用機器）であることが前提となる。尚、非接触型に限らず、接触型であってよい。
【００２３】
以上述べたことから、以下、主に、本例のカード利用機器１０の特徴であるプログラム・情報更新メモリ１３及び上記ＣＰＵ１１によって実行される各種処理について説明していくものとする。
【００２４】
ここで、まず、上記各カード利用機器１０が上記各利用者カード１を利用して機器動作規定情報を更新する、という本手法のシステムについて概略的に説明する。
まず、前提として、上記の通りカード利用機器１０は既存の電子マネー決済端末等に本例の各種機能が追加されたものであり、例えば各種店舗等、様々な場所に設置されており、多数台存在することになる。また、上記利用者カード１は、この様なカード利用機器１０を利用して電子マネーによる精算等を行う任意の多数のユーザがそれぞれ所持するＩＣカード等である。よって、以下の説明では逐一述べないが、カード利用機器１０は、本例の処理以外にも通常の電子マネー決済処理等も行っている。
【００２５】
また、利用者カード１は既存の一般的なＩＣカード等であるが、そのメモリには本例の後述するプログラムブロック等を格納可能な空き領域があるものとする。
そして、上記システムでは、上記多数のカード利用機器１０の機器動作規定情報の更新を、当該各カード利用機器１０を利用する多数の一般ユーザの利用者カード１を利用して行うものである。すなわち、最初に、メンテナンス要員等が、上記各所に点在する多数のカード利用機器１０のうちの一部の機器１０に対して、上記従来通りに直接、新たな（更新版の；新バージョンの）機器動作規定情報をインストールする作業を行う。その後は、詳しくは後述する処理により、この更新版の機器動作規定情報が、利用者カード１を介して、他の（未だ更新されていない）各カード利用機器１０に伝達（配信）されることになる。
【００２６】
尚、本手法では、機器動作規定情報をネットワークを介して配信するものではなく、利用者カード１を介するものであるが、この様なものであっても上記の通り“配信”というものとする。
【００２７】
これにより、メンテナンス要員は、全てのカード利用機器１０に対して更新作業を実施する必要はなくなり、大幅な運用コスト削減を実現することが可能となる。
尚、上記「機器動作規定情報」とは、例えば機器１０に組み込まれている所定のアプリケーションプログラム（プログラムメモリ１２に格納されているプログラム；カード利用機器１０はこのプログラムを実行することで所定の処理（電子マネー決済処理等）を実現する）、あるいは機器１０の動作に必要な設定パラメータ（設定情報管理メモリ１４に格納されている）等であるが、これら以外にも例えば鍵情報、利用するカードを制限するためのカードID情報等であってもよい。
【００２８】
以下の説明では、一例として、上記プログラムメモリ１２に格納されているプログラムをバージョンアップする場合を例にして説明するが、上記の通り、この様な例に限るものではない。
【００２９】
更に、上記の通り本手法では利用者カード１のメモリの空いている未使用領域を使用するため、その容量には制限があることが想定される。よって機器動作規定情報全てを１枚
の利用者カード１に記憶させることが出来ない状況も考えられる。
【００３０】
これより、以下の説明では、機器動作規定情報を複数に分割して複数の利用者カード１に分けて記憶させる手法を提案するが、この例に限らない。機器動作規定情報全てを１枚の利用者カード１に記憶させることが可能な場合であれば、分割せずに、機器動作規定情報全てを利用者カード１に記憶させて他のカード利用機器１０に伝達（配信）させるようにしてもよい。
【００３１】
上記の通り、本例では、機器動作規定情報全てを１枚の利用者カード１に記憶させることが出来ない場合に対応して、機器動作規定情報を複数に分割することで、各利用者カード１には機器動作規定情報の一部を記憶させて他のカード利用機器１０に伝達（配信）
させる。すなわち、あたかもネットワーク上のパケット伝送のように、情報を分割して伝達（配信）させる。
【００３２】
これにより、少ないメモリ容量しか持たないカードであっても、複数のカードを利用して、分割した情報を機器間で伝達することによって、例えば更新版の機器動作規定情報を保持するカード利用機器１０から、他のカード利用機器１０（旧バージョンの機器動作規定情報を保持している）に対して、複数のユーザの利用者カード１を介して、更新版（新バージョン）の機器動作規定情報を伝達（配信）させることで、メンテナンス要員の手を煩わせることなく、全てのカード利用機器１０の機器動作規定情報のバージョンアップを行うことができる。
【００３３】
更に、後述するように、上記機器動作規定情報の複数の分割データを効率的に伝達させる為に、カード内に登録する付加情報を利用したリクエスト＆レスポンス的な情報交換を可能とし、これら情報交換によって必要な情報を効率的に伝達することが可能となる。
【００３４】
以上概略的に説明した本システムの機能を実現する為に、まず、図１に示すプログラム・情報更新メモリ１３を設けるようにしている。図１に示すように、プログラム・情報更新メモリ１３には、現行プログラム情報と次期プログラム情報とが格納される。
【００３５】
現行プログラム情報としては現行プログラムのバージョン２１が格納される。尚、現行プログラムとは、現行動作中のプログラムである。すなわち、プログラムメモリ１２に格納されて当該機器１０の各種処理の実行に用いられる上記所定のアプリケーションプログラムである。
【００３６】
次期プログラム情報としては次期プログラムのバージョン２２、及び次期プログラム情報テーブル２３が格納される。次期プログラムとは例えば上記現行プログラムの更新版の（新バージョン／次期バージョンの）プログラムである。例えば現行プログラムのバージョン２１が１．０であった場合、次期プログラムのバージョン２２は２．０等となる。但し、これは、次期プログラム情報テーブル２３に格納される次期プログラムが完成していない（後述するプログラムブロック格納領域２５に全てのプログラムブロックが格納済みの状態になっていない）場合である。次期プログラム情報テーブル２３に次期プログラムに係るプログラムブロックが全て格納された場合、この次期プログラムを新たな現行プログラムとしてプログラムメモリ１２に格納すると共に、現行プログラムのバージョン２１を当該新たな現行プログラムのバージョンに更新する（上記の例ではバージョン２１を２．０にする）。よって、この状態では、現行プログラムのバージョン２１と次期プログラムのバージョン２２は、同じになっていることになる。
【００３７】
また、上記のように次期プログラムが完成してこれをプログラムメモリ１２に格納した後も、次期プログラム情報テーブル２３のプログラムブロックは消去せずに残しておく。
これは、それまでは次期プログラムの受け取り側であったものを、今度は次期プログラムの配信側として動作するので、その為に必要となるからである。詳しくは後述する。
【００３８】
上記次期プログラム情報テーブル２３について説明する。
図１に示すように、次期プログラム情報テーブル２３は、プログラムブロックＮｏ．２４、プログラムブロック格納領域２５、及びプログラム更新フラグ２６から成る複数のレコードから構成される。
【００３９】
各プログラムブロック格納領域２５には、上述した機器動作規定情報の分割データ（ここでは上記次期プログラムを複数に分割してなる各分割プログラム（プログラムブロックと呼ぶものとする））が格納される。換言すれば、プログラムブロック格納領域２５は、次期プログラムの分割データを順次格納するための記憶領域である。
【００４０】
プログラムブロックＮｏ．２４はこれら各プログラムブロックの識別番号である。プログラム更新フラグ２６は、上記各プログラムブロック格納領域２５に上記次期プログラムのプログラムブロックが格納されたか否かを示すフラグ情報である。
【００４１】
図２は、利用者カード１を介したプログラム配信（伝達）動作を概略的に示す図である。換言すれば、図２は、上記図１に示す構成の各カード利用機器１０が、他のカード利用機器１０及び上記一般ユーザの利用者カード１を利用して、自己のプログラムを次期プログラムへとバージョンアップする動作について概略的に示す図である。
【００４２】
尚、図２では、複数のカード利用機器１０の一例として、図示のカード利用機器Ａ，Ｂ，Ｃを示し、また各一般ユーザがそれぞれ所持する利用者カード１の一例として図示の利用者カードａ，ｂ，ｃを示すが、これら以外にも多数のカード利用機器１０、利用者カード１が存在するものである。
【００４３】
図示の例では、カード利用機器Ａ，Ｃが新バージョンプログラム（バージョンアップされたプログラム）で動作中であり、カード利用機器Ｂが旧バージョンプログラムで動作中であるものとする。尚、カード利用機器Ａ，Ｃにおける新バージョンプログラムは、メンテナンス要員によって直接インストールされたものかもしれないし、以下に説明するカード利用機器Ｂの場合のように他のカード利用機器１０から利用者カード１を介して伝達されたものかもしれない。
【００４４】
他のカード利用機器から利用者カード１を介して伝達されたものである場合、上記の通り、各プログラムブロック格納領域２５に新バージョンのプログラムの各プログラムブロックが格納された状態になっているので、これをそのまま使用する。メンテナンス要員によって直接インストールされたものである場合には、この新バージョンのプログラムをプログラムメモリ１２からコピーして、これを上記複数のプログラムブロックに分割して上記各プログラムブロック格納領域２５に格納する処理を行う。その際、プログラム更新フラグ２６は全て“更新済”（例えばフラグＯＮ）とする。
【００４５】
尚、各プログラムブロックの大きさ（データ容量）は予め決められて各カード利用機器１０に設定されている。また、プログラムブロックＮｏ．２４も、例えば図１に示す１，２，３・・・というように所定の規則を用いて決定されるようになっている。よって、同一のプログラムに関してどのカード利用機器１０で上記分割処理を実行しても、プログラムブロックの大きさやブロック数やプログラムブロックＮｏ．は同一となる。また、上記各プログラムブロックの大きさ（データ容量）を、利用者カード１のメモリの空き領域に格納可能なデータ容量とすること等は当然のことである。
【００４６】
上記のように新バージョンプログラムで動作しておりこの新バージョンプログラムの複数のプログラムブロックを保持しているカード利用機器Ａ，Ｃは、任意のユーザが電子マネー決済等の為に自己の利用者カード１をＩＣカードＲ／Ｗ１６（そのアンテナ１７）に翳す毎に、一般的な電子マネー決済等を行うと共に、上記複数のプログラムブロックのうちの１つをこの利用者カード１のメモリの空き領域に書き込む。利用者カード１に書き込むプログラムブロックは、その都度ランダムに選択される。その際、以前に選択されたプログラムブロックを除外してランダムに選択するようにしてもよい。これにより、使用される利用者カード１毎に異なるプログラムブロックが書き込まれる。
【００４７】
上記のように利用者カード１に書き込むプログラムブロックをランダムに選択することで、複数のバージョンアップされたカード利用機器１０から利用者カード１にプログラムブロックが書き込まれる場合においても、カード毎に異なるプログラムブロックが書き込まれる確率を上げることができる。
【００４８】
上記のようにして、各利用者カードａ，ｂ，ｃには、それぞれ、カード利用機器ＡやＣによって任意のプログラムブロックが書き込まれることになる。
そして、上記のように（そして図２にイメージを示すように）任意のプログラムブロックが記憶された各利用者カードａ，ｂ，ｃのユーザが、上記旧バージョンプログラムで動作中のカード利用機器Ｂを利用する（電子マネーによる精算等を行う）毎に、カード利用機器Ｂは、一般的な電子マネー決済等を行うと共に、利用者カードａ，ｂ，ｃに記憶されているプログラムブロックを読み出して、これをプログラムブロック格納領域２５に格納する処理を行う。尚、図示していないが、各利用者カード１には、記憶されるプログラムブロックに対応するプログラムブロックＮｏ．２４やバージョン等も記憶される。
【００４９】
カード利用機器Ｂには、更に不図示の他のカード利用機器によって任意のプログラムブロックが書き込まれた他の利用者カード１等も提示され、その都度、上記の通り、この利用者カード１に記憶されたプログラムブロックを取得してプログラムブロック格納領域２５に格納することになる（但し、既に取得済みのものは再度格納する必要はない）。
【００５０】
この様にしてカード利用機器Ｂは、新バージョンプログラムを分割して成る複数のプログラムブロックを、複数の利用者カード１を介して順次取得していき、全てのプログラムブロック（例えば図１に示すプログラムブロックＮｏ．２４が‘１’〜‘Ｎ’の全てのプログラムブロック）を取得してプログラムブロック格納領域２５に格納したら、新バージョンプログラムを取得できたことになる。よって、上述した通り、この新バージョンプログラムを新たな現行プログラムとしてプログラムメモリ１２に格納すると共に、現行プログラムのバージョン２１を新バージョンプログラムのバージョンに更新する。
【００５１】
以下、図３以降を参照して更に詳しく説明する。
図３には利用者カード１に記憶される情報の具体例を示す。
既に述べた通り利用者カード１には任意のプログラムブロックが格納されるだけでなく、そのバージョン情報等の各種情報が格納され、例えば図３に示す情報が格納される。
【００５２】
図３に示す例では、利用者カード１のメモリに記憶される各種情報は、プログラムバージョン３１、プログラムブロック総数３２、プログラムブロックＮｏ．３３、プログラムブロック３４、プログラムブロックチェックデータ３５等である。
【００５３】
プログラムブロック３４は上記任意のプログラムブロック（新バージョンプログラムの一部）であり、プログラムバージョン３１はこのプログラムブロック３４（新バージョンプログラム）のバージョン情報であり、プログラムブロックＮｏ．３３はこのプログラムブロック３４に対応する識別番号（上記プログラムブロックＮｏ．２４に相当）である。
プログラムバージョン３１とプログラムブロックＮｏ．３３は、それぞれ図示の例では、バージョン‘Ｙ’とＮｏ．‘４’となっている。
【００５４】
また、プログラムブロック総数３２は新バージョンプログラムの分割数であり、図１に示す例ではプログラムブロックＮｏ．２４が‘１’〜‘Ｎ’になっているように分割数は‘Ｎ’個である。また、プログラムブロックチェックデータ３５は、プログラムブロック３４が破壊や改竄がされていないかのチェックを行う為の情報であり、例えばプログラムブロック３４に基づくハッシュ値等である。
【００５５】
また、図示の例のカード利用機器１０は、現行プログラムのバージョン２１は‘Ｘ’、次期プログラムのバージョン２２は‘Ｙ’となっている。つまり、このカード利用機器１０は、現在、バージョンＸのプログラムで動作しており、次期プログラムとしてバージョンＹのプログラムに更新途中の状態である。また、少なくともプログラムブロックＮｏ．＝‘４’のプログラムブロックは、図示の通りそのプログラム更新フラグ２６が“未”であることから、未だ取得していないことになる。尚、バージョンが上記一例のように数値で表される場合には、Ｙ＞Ｘの関係となる。
【００５６】
この状態で図示の利用者カード１を図示のカード利用機器１０で使用すると、カード利用機器１０は、利用者カード１に記憶されている上記プログラムバージョン３１及びプログラムブロックＮｏ．３３を参照することで、この利用者カード１に記憶されているプログラムブロック３４が、自己が現在更新中のバージョンの未取得のプログラムブロックであると判定できる（バージョン３１が次期プログラムのバージョン２２と同じ（＝‘Ｙ’）であり（換言すればバージョン３１が現行プログラムのバージョン２１より大きい）且つプログラムブロックＮｏ．３３＝‘４’に対応するプログラム更新フラグ２６が‘未’（未取得）となっているので）。よって、利用者カード１からプログラムブロック３４を読み出して、これを該当する（ＮＯ．２４＝‘４’の）レコードのプログラムブロック格納領域２５に格納する。
【００５７】
尚、その際、プログラムブロックチェックデータ３５によって、既存の一般的な改竄チェック方法により、読み出したプログラムブロック３４の情報が破壊や改竄がされていないかのチェックを行い、チェック結果が正常であれば上記該当するプログラムブロック格納領域２５への格納を行い、チェック結果が異常であればプログラムブロック３４を破棄するようにしてもよい。
【００５８】
図４、図５は、カード利用機器１０により実行される処理のフローチャート図（その１）、（その２）である。尚、図示のフローチャートの処理は、上記の通り、ＣＰＵ１１が予め記憶されている所定のアプリケーションプログラム（プログラム更新プログラムと呼ぶものとする）を実行することにより実現される。
【００５９】
図４において、カード利用機器１０は、利用者カード１を検出すると（ステップＳ１１）、一旦、この利用者カード１に記憶されている情報を全て取り込む（ステップＳ１２）。
【００６０】
そして、まず、利用者カード１に記憶されたプログラムブロック３４のプログラムバージョン３１と、次期プログラムのプログラムバージョン２２とを比較して、次期プログラムバージョン値の方が大きければ（ステップＳ１３，ＮＯ）、すなわち次期プログラムの方がバージョンが新しい場合には、この利用者カード１のプログラムブロック３４は取り込む必要はないと判定し（ステップＳ２３）、図５に示す書き込み処理へと移行する。
【００６１】
尚、利用者カード１にプログラムブロックが記憶されていない場合にも、ステップＳ１
３の判定はＮＯとなるものとする。
一方、バージョンが同じである場合には（ステップＳ１３，ＹＥＳ、且つステップＳ１４，ＹＥＳ）、プログラム更新フラグ２６をチェックし、全てが“済”である場合、すなわち次期プログラムは既に取得済みである場合にも（ステップＳ２２，ＹＥＳ）、この利用者カード１のプログラムブロック３４は取り込む必要はないと判定し（ステップＳ２３）、図５に示す書き込み処理へと移行する。但し、この場合には図５の処理を実行せずにそのまま本処理を終了させてもよい。
【００６２】
バージョンが同じで（ステップＳ１４，ＹＥＳ）且つ未だ次期プログラムの全てのプログラムブロックを取得していない場合には（ステップＳ２２，ＮＯ）、ステップＳ１７以降の処理に移行する。
【００６３】
また、次期プログラムバージョン値の方がプログラムバージョン３１よりも小さければ（ステップＳ１３，ＹＥＳ、且つステップＳ１４，ＮＯ）、すなわち利用者カード１に記憶されたプログラムブロック３４の方がバージョンが新しい場合には、ステップＳ１５、Ｓ１６の処理を実行後、ステップＳ１７以降の処理に移行する。
【００６４】
尚、ここでは、例えば現行プログラムのバージョンが‘１．０’で、次期プログラムのバージョンが‘２．０’とし、次期プログラムのプログラムブロックが未だ全て取得されていない状態で例えば利用者カード１のプログラムバージョン３１が‘３．０’であるような事態は、生じないものとする。
【００６５】
よって、もしカード利用機器１０が次期プログラムを更新中の（未だ全てのプログラムブロックを取得していない）状態であるならば、上記「ステップＳ１３，ＹＥＳ、且つステップＳ１４，ＮＯ」の判定になることは無い。上記「ステップＳ１３，ＹＥＳ、且つステップＳ１４，ＮＯ」の判定になるのは、前回の次期プログラムの更新処理が完了して当該次期プログラムがプログラムメモリ１２に格納されて現行プログラムとして動作中の状態である。この場合、既に述べた通り、現行プログラムのバージョン２１と次期プログラムのバージョン２２とが一致している状態となっている。
【００６６】
よって、上記「ステップＳ１３，ＹＥＳ、且つステップＳ１４，ＮＯ」の判定になるということは、現行プログラムに対するバージョンアップ版（新バージョン）のプログラムに係るプログラムブロックのうちの１つを始めて取得する状況であることになるので、バージョンアップのために更新プログラムの取込み準備動作を行なうことになり、これがステップＳ１５、Ｓ１６の処理である。
【００６７】
すなわち、まず現在の次期プログラム情報テーブル２３を消去して、新たな次期プログラム情報テーブル２３を格納する記憶領域を確保する（ステップＳ１５）。例えば、利用者カード１のプログラムブロック総数３２を参照することで、このブロック総数分（本例では‘Ｎ’個分）のプログラムブロック取込み用の領域を確保する。この状態では未だ各プログラムブロック格納領域２５には何も格納されていないが、各プログラムブロックＮｏ．２４には‘１’から上記ブロック総数（＝Ｎ）まで順に番号を付し、更にプログラム更新フラグ２６は全て‘未’（未取得）とする。
【００６８】
更に、次期プログラムのバージョン２２には、利用者カード１のプログラムバージョン３１を記憶する（ステップＳ１６）。
ステップＳ１７以降の処理は、既に図３で説明した通りである。
【００６９】
すなわち、利用者カード１に記憶されているプログラムブロック３４が既に取得済みのものであるか否かを、プログラムブロックＮｏ．３３の番号に対応するプログラム更新フ
ラグ２６を参照することで判定する（ステップＳ１７）。そして、既に取得済みである場合には（ステップＳ１７，ＹＥＳ）、取り込み不要と判定し（ステップＳ２４）、本処理を終了する。
【００７０】
一方、未取得である場合には（ステップＳ１７，ＮＯ）、上記の通りプログラムブロックチェックデータ３５を用いて改竄等がされていないかをチェックし、チェック結果がＮＧである場合にも（ステップＳ１８，ＮＯ）取り込み不要と判定し（ステップＳ２４）、本処理を終了する。チェック結果がＯＫであれば（ステップＳ１８，ＹＥＳ）、利用者カード１に記憶されていたプログラムブロック３４を、該当するプログラムブロック格納領域２５に格納すると共に（ステップＳ１９）、そのプログラム更新フラグ２６を“済”（取得済み）にする（ステップＳ２０）。
【００７１】
尚、図４に示すステップＳ１３，Ｓ１４の処理では、利用者カード１に記憶されたバージョンと次期プログラムバージョンとを比較して判定したが、この例に限らず、利用者カード１に記憶されたバージョンと現行プログラムバージョンとを比較して同様の判定を行っても良い。
【００７２】
この場合、カードの方が旧バージョンの場合には当然取り込み不要（ステップＳ２３）となり、書き込む処理に移ることになる。一方、カードの方が新バージョンの場合には、ステップＳ１７以降の処理に移行することになる（未取得であれば取り込むことになる）。もし未だ新バージョンのプログラムブロックを１つも取得していない状態であれば（ステップＳ１４の判定を行ってもよいし、他の方法を用いても良い）、ステップＳ１５，Ｓ１６の処理を行う。また、カードのバージョンが現行プログラムバージョンと同じである場合には、当然取り込み不要（ステップＳ２３）となり、書き込む処理に移ることになる。
【００７３】
また、プログラムを分割しなくても１枚のカード１に格納可能であれば、次期プログラム情報は必要ない。そして、現行プログラムバージョンとカード１に記憶されているプログラムのバージョンとを比較して、カード１の方が新バージョンであればカード１のプログラムの取り込みを行ってこれを新たな現行プログラムとする。一方、カード１の方が旧バージョンであれば現行プログラムをカード１に記憶する。バージョンが同じであれば何も行わない。
【００７４】
続いて、図５の利用者カード１へのプログラムブロック書き込み処理について説明する。
まず、既に説明してあるように、カード利用機器１０においては、任意の次期プログラムへの更新が完了した時点から次の次期プログラムへの更新が開始されるまでの間は、現行プログラムバージョンと次期プログラムバージョンが一致している。また、動作しているプログラムと同じプログラムデータが、ブロックに分割化されてプログラム・情報更新メモリ１３内に記録されている。この時、全てのプログラムブロックのプログラム更新フラグ２６は、“済”（更新済み）となっている。つまり、次期プログラムを取得完了して当該次期プログラムを現行プログラムとした後も、プログラム・情報更新メモリ１３内の次期プログラム情報テーブル２３はそのまま残してある（当該次期プログラムの各プログラムブロックは残してある）。
【００７５】
上記ステップＳ１４がＹＥＳでステップＳ２２がＹＥＳとなる場合には、以上述べた状態で、図５の処理を行うことになる。また、ステップＳ１３がＮＯとなる場合には、以上述べた状態又は未だ次期プログラム更新途中の状態で、図５の処理を行うことになる。何れにしても、次期プログラム情報テーブル２３には１つ以上のプログラムブロックが格納されていることになる。
【００７６】
図５の処理は、任意のカード利用機器１０がプログラム配信側となる場合の処理であり、次期プログラム情報テーブル２３に記憶されているプログラムブロックのうちの任意の１つのプログラムブロック（次期プログラムの分割データ）を、その識別番号やバージョン情報、分割数などの情報と共に、利用者カード１のメモリに記憶させる処理である。
【００７７】
すなわち、図５に示すように、まず、カード利用機器１０内の次期プログラムバージョン２２を、利用者カード１内のプログラムバージョン３１に書き込み（ステップＳ３１）、プログラムブロック総数（ここではＮ個）を利用者カード１内のプログラムブロック総数３２へ書込む（ステップＳ３２）。更に、任意のプログラムブロックＮｏ．２４をランダムに選択する（ステップＳ３３）。すなわち、利用者カード１に書き込むべきプログラムブロックをランダムに選択する。そして、選択したプログラムブロックのチェックデータを生成し（ステップＳ３４）、当該選択されたプログラムブロック、そのチェックデータ、及びプログラムブロックＮｏ．２４を、それぞれ、利用者カード１内に上記プログラムブロック３４、プログラムブロックチェックデータ３５、及びプログラムブロックＮｏ．３３として書き込む（ステップＳ３５）。
【００７８】
尚、図示していないが、ステップＳ３３で選択したプログラムブロックＮｏ．を記録しておき、次回にステップＳ３３の処理を行う際には、記録されているプログラムブロックＮｏ．、すなわち以前に選択されたプログラムブロックＮｏ．は除外して、これ以外のプログラムブロックＮｏ．をランダムに選択するようにしてもよい。
【００７９】
また、上記のように利用者カード１にプログラムブロック総数３２及びプログラムブロックＮｏ．３３を書込むことで、上記プログラムブロック３４の受け取り側となるカード利用機器１０では、図４で説明したように、ブロック総数３２に基づき必要な情報記録エリアを確保すると共に必要なプログラムブロックの数を認識し、プログラムブロックＮｏ．３３によって利用者カード１に記憶されているプログラムブロックの格納位置を判断すると共に、未取得のプログラムブロック（その番号）を認識することが可能となる。
【００８０】
図６に、図５の処理の様子を示す。
図６に示す例では、カード利用機器１０において、次期プログラムバージョンＹに関してプログラムブロックＮｏ．２４が‘１’〜‘Ｎ’の全てのプログラムブロック格納領域２５にプログラムブロックが格納されており、従ってプログラム更新フラグ２６は全て“済”となっている状態である。よって、プログラムメモリ１２にはバージョンＹのプログラムが格納されており、このバージョンＹのプログラムで動作しており、当然、現行プログラムのバージョンもＹとなっている。
【００８１】
尚、通常、バージョンは１．０、１．１、２．０等のように数値で表され、一般的に、より新しいバージョンはより値が大きくなるので、これによりバージョンの新旧を判別できる。
【００８２】
この状態で提示された利用者カード１のプログラムバージョン３１が“Ｘ”であり、ここではＹ＞Ｘ（つまり、Ｙの方が新しいバージョン）であるとすると、上記図５の処理が実行されることになり、図示の通り、プログラムバージョン３１がＸからＹへと変更され、更にここでは仮にランダムな選択によりプログラムブロックＮｏ．＝‘４’のプログラムブロックが選択されるとした場合、利用者カード１におけるプログラムブロック総数３２にはＮが、プログラムブロックＮｏ．３３には‘４’がそれぞれ格納され、更に選択されたプログラムブロックが新たなプログラムブロック３４として記憶されることになる。
【００８３】
これまで説明した手法では、プログラムブロックの配信側のカード利用機器１０、すな
わち図５の処理を行うカード利用機器１０は、上述した通り利用者カード１に書き込むプログラムブロックをランダムに決定している為、利用者カード１に書き込まれるプログラムブロックが、プログラム受け取り側のカード利用機器１０で必要としている情報とは限らないことになる。この為、全体的なプログラム配信処理効率がよいものとは言えないことになる。
【００８４】
以下、上記問題を解決する本手法の変形例（以下、変形例１という）について説明する。
変形例１では、図７（ａ）、（ｂ）に示すように、プログラム受け取り側の（旧バージョンプログラムで動作している）カード利用機器１０が、新バージョンプログラム（次期プログラム）に関して未取得のプログラムブロックのプログラムブロックＮｏ．を、リクエストブロック番号として利用者カード１に記録する。これにより、プログラム配信側の（新バージョンプログラムで動作している）カード利用機器１０が、このリクエストブロック番号のプログラムブロックを利用者カード１に記録することで、プログラム受け取り側の機器１０は、効率的にプログラムの取得・収集を行うことができる。
【００８５】
上記の通り、そして図７（ａ）、（ｂ）に示すように、変形例１では、利用者カード１のメモリ内に、上記リクエストブロック番号を書き込み可能な記憶領域（図示のリクエスト番号格納領域３７）が設けられている。また、プログラム取込み済みフラグ３６が記憶されている。
【００８６】
リクエスト番号格納領域３７には、任意のプログラム受け取り側の機器１０が、自己が未取得のプログラムブロックのプログラムブロックＮｏ．を、１つ以上書き込む領域である。プログラム取込み済みフラグ３６は、利用者カード１内に記憶されているプログラムブロック３４を、プログラム受け取り側の機器１０が取り込んだか否かを示すフラグである。本例では取り込み済みの場合はフラグＯＦＦ（図示の“済”）、未だ取り込んでいない場合はフラグＯＮ（図示の“未”）であるものとする。
【００８７】
上記利用者カード１を用いる上記プログラム受け取り側の処理について図７（ａ）を参照して説明し、プログラム配信側の処理については図７（ｂ）を参照して説明する。
まず、図７（ａ）を参照して上記プログラム受け取り側のカード利用機器１０の処理について説明する。図４においてステップＳ１７以降の処理に進むカード利用機器１０が、プログラム受け取り側の機器１０であり、例えば図４のステップＳ２０の処理実行後、以下に説明する処理を実行するものである。
【００８８】
すなわち、ステップＳ１９によって利用者カード１内に記憶されているプログラムブロック３４を取り込んだ機器１０は、上記ステップＳ２０の処理後、まず、当該取り込んだプログラムブロックのプログラムブロックＮｏ．が、自己が以前にこの利用者カード１のリクエスト番号格納領域３７に登録した番号である場合には（リクエスト登録の際に、登録した番号やこれを書き込んだカードのカードＩＤ等を記憶しておくことで判断できる）、上記プログラム取込み済みフラグ３６を、ＯＮ（未）→ＯＦＦ（済）にする。更に、取り込んだプログラムブロックのプログラムブロックＮｏ．をリクエスト番号格納領域３７から削除するようにしてもよい。
【００８９】
また、利用者カード１のプログラムブロックを取り込んだか否かや、取り込んだプログラムブロックが自己がリクエストしたものであるか否かに係らず、未取得の（フラグ２６が“未”となっている）プログラムブロックがある場合には、そのうちの任意の１つ以上のプログラムブロック（例えばランダムに選択する）のプログラムブロックＮｏ．を、上記リクエスト番号格納領域３７に書き込む。
【００９０】
例えば図７（ａ）に示す例では、カード利用機器１０における次期プログラムのバージョン２２及び利用者カード１に格納されているプログラムブロックのバージョン３１は、共にバージョン“Ｙ”であり、利用者カード１にはプログラムブロックＮｏ．３３＝‘４’のプログラムブロック３４が格納されており、図示のカード利用機器１０はＮｏ．３３＝‘４’のプログラムブロックは未取得の状態である。
【００９１】
よって、図示のカード利用機器１０は、利用者カード１からＮｏ．３３＝‘４’のプログラムブロックを取得して、これを該当する（ブロックＮｏ．２４＝‘４’の）プログラムブロック格納領域２５に格納し、そのフラグ２６を“済”にする。更に図示の例では、自己が未取得のプログラムブロックのプログラムブロックＮｏ．＝‘１’、‘３’、‘Ｎ’を、上記リクエストブロック番号（Ｎｏ．）として、リクエスト番号格納領域３７に格納する。
【００９２】
そして、ここでは図示のカード利用機器１０がＮｏ．３３＝‘４’のリクエスト元の機器であったとすると、図示の機器１０は更に、利用者カード１のプログラム取込み済みフラグ３６をＯＮ（未）からＯＦＦ（済）にする。また、リクエスト番号格納領域３７からリクエストブロックＮｏ．＝‘４’を削除する。なお、削除と同時に新たなリクエストブロック番号を追加格納する場合もある。
【００９３】
一方、プログラム提供側の機器１０、すなわち図５の処理を実行する機器１０は、図５の処理におけるステップＳ３３の代わりに（ランダムに選択する代わりに）、プログラムブロック格納領域２５を参照することで、利用者カード１に書き込むべきプログラムブロックを決定する。例えば、プログラムブロック格納領域２５に格納されているリクエストブロック番号が１つのみであれば、この番号のプログラムブロックを利用者カード１に書き込むことになり、複数のリクエストブロック番号が格納されていれば（上記の例では、ブロックＮｏ．＝‘１’、‘３’、‘Ｎ’）、そのうちの任意の１つを選択して（たとえばランダムに決定する）、選択された番号のプログラムブロックを利用者カード１に書き込むことになる。
【００９４】
但し、その前に、プログラム取込み済みフラグ３６を参照して、フラグがＯＮ（未）である場合には、現在カード１に登録されているプログラムブロック３４は、まだリクエストブロック番号の登録元の機器１０に取り込まれていないことを示すので、新規のプログラムブロックの書き込みは行なわない。
【００９５】
一方、プログラム取込み済みフラグ３６がＯＦＦ（済）である場合には、上述した利用者カード１に書き込むべきプログラムブロックの決定とカード１への書き込み処理を行うことになるが、その際、プログラム取込み済みフラグ３６をＯＦＦ（済）からＯＮ（未）へと変更する。
【００９６】
この様にすることで、利用者カード１に記憶されたプログラムブロック３４は、リクエストブロック番号の登録元の機器１０で取り込まれるまでは書き換えられないことになる。
【００９７】
図７（ａ）の説明においてフラグ３６がＯＦＦ（済）にされた利用者カード１が、任意のプログラム提供側の機器１０で使用された場合、プログラム取込み済みフラグ３６がＯＦＦ（済）であることから、リクエスト番号格納領域３７を参照して新たなプログラムブロックを利用者カード１に書き込むことになる。
【００９８】
図７（ｂ）に示す例では、リクエスト番号格納領域３７に格納されたリクエストブロック番号＝‘１’、‘３’、‘Ｎ’のうち‘３’が選択されて、プログラムブロックＮｏ．
＝‘３’のプログラムブロックが、利用者カード１に記憶されると共に、プログラム取込み済みフラグ３６をＯＦＦ（済）からＯＮ（未）へと変更する。尚、当然、プログラムブロックＮｏ．３３は‘４’から‘３’へと変更される。
【００９９】
上記のように、変形例１では、より効率的に必要な情報を収集することが可能となる。
尚、リクエスト番号格納領域３７は複数のカード利用機器１０が共有することができる。従って、図７には示していないが、上記リクエストブロック番号＝‘１’、‘３’、‘Ｎ’を書き込んだカード利用機器１０以外の他のカード利用機器１０が、同様にして、自己が必要とする（未取得の）リクエストブロック番号をリクエスト番号格納領域３７に格納することができる。但し、この手法では、状況によってはリクエスト番号格納領域３７に格納されるリクエストブロック番号の数が非常に多くなってしまう可能性もある。つまり、プログラムブロック収集効率が落ちる可能性がある。
【０１００】
この為、以下に説明する他の変形例（変形例２という）は、任意のカード利用機器１０が、任意の利用者カード１を、自己が欲しい情報を優先的に運ぶ専用の情報キャリアカードにすることができる。
【０１０１】
図８に、当該変形例２における利用者カード１のデータ格納例を示す。
図示の例で利用者カード１に格納される各種データのうち、図７（ａ）、（ｂ）に示すものと同一のものには同一符号を付して、その説明は省略し、異なる点のみ説明する。図８に示す利用者カード１が図７（ａ）、（ｂ）に示す利用者カード１と異なる点は、図示の主インストール先機器ＩＤ４１が更に格納される点である。
【０１０２】
そして、当該変形例２においては、任意の利用者カード１の主インストール先機器ＩＤ４１に自己の識別ＩＤを登録したカード利用機器１０のみが、この利用者カード１のリクエスト番号格納領域３７に任意のリクエストブロック番号を記憶させることが可能となっている。これにより、後述するように、当該利用者カード１を、主インストール先機器ＩＤ４１に登録した機器１０の必要とするリクエストブロックを優先的に集めるカードとすることができる。
【０１０３】
尚、他のカード利用機器１０は、リクエストブロック番号の登録は行えないが、図４と同様の処理は行える。すなわち、カード利用機器１０に記憶されているプログラムブロック３４が、自己が未取得のものであれば、これを取り込むこと等はできる。但し、他のカード利用機器１０がプログラムブロック３４を取り込んだ場合、リクエスト元の機器１０が取り込んだわけではないので、プログラム取込み済みフラグ３６の変更は行われない。
【０１０４】
図９に、当該変形例２におけるカード利用機器１０の処理フローチャート図を示す。
尚、図９において、図４に示す処理と略同一の処理については同一符号を付してある。
図９の処理では、上記図４のステップＳ１１、Ｓ１２の処理を実行後、まず、ステップＳ４０の処理を行う。このステップＳ４０の処理（現行プログラムバージョン≧カード内プログラムバージョン？）は、図４のステップＳ１３、Ｓ１４、Ｓ２２の処理と略同様と考えてよい。
【０１０５】
すなわち、ステップＳ４０の判定がＹＥＳとなる場合とは、ステップＳ１３がＮＯ、又はステップＳ１４がＹＥＳ且つステップＳ２２がＹＥＳの場合と考えてよく、この場合には図４でも説明した通り、ステップＳ２３の処理に移り、更に図５の処理へ移行してもよい。同様に、ステップＳ４０の判定がＮＯになる場合とは、ステップＳ１３がＹＥＳになることを前提として更に、図４のステップＳ１４がＮＯ、又はステップＳ１４がＹＥＳ且つステップＳ２２がＮＯの場合と考えてよい。よって、ステップＳ１４の判定がＮＯに相当する状況の場合、ステップＳ１５、Ｓ１６の処理を行ってもよい。
【０１０６】
尚、ステップＳ４０の処理では、上記の通り、現行プログラムのバージョン２１とカード内のプログラムバージョン３１との比較を行っているが、これは図４でも説明した通り、カード内のプログラムバージョン３１と比較するのは、次期プログラムのバージョン２２であってもよいし現行プログラムのバージョン２１であってもよいからである。
【０１０７】
そして、ステップＳ４０の判定がＮＯの場合には、ステップＳ４１以降の処理を行う。
まず、利用者カード１の主インストール先機器ＩＤ４１に既にＩＤが登録されているか否かを判定し（ステップＳ４１）、登録済みの場合には（ステップＳ４１，ＹＥＳ）、それが自己のＩＤであるか否かを判定し（ステップＳ４５）、もし他の機器１０のＩＤである場合には（ステップＳ４５，ＮＯ）、この利用者カード１は既に他の機器１０専用の情報キャリアカードとなっていることになるので、ステップＳ４６の処理を実行する。
【０１０８】
ステップＳ４６の処理は、図４のステップＳ１７、Ｓ１８，Ｓ１９，Ｓ２０，及びＳ２４の処理に相当する処理である。すなわち、他の機器１０専用の情報キャリアカードであるので、自己のＩＤの登録やリクエストブロック番号の登録は行えないが、上記の通り、そのプログラムブロック３４の取込み等は行える。すなわち、そのカード１が記憶しているプログラムブロック情報が未取得のものであれば、カード１内のプログラムブロック３４を取り込んで処理を終了する。
【０１０９】
一方、登録済みの主インストール先機器ＩＤ４１が自身の機器ＩＤと一致していた場合（ステップＳ４５，ＹＥＳ）、このカード１は既に自機専用の情報キャリアカードとなっていることになる。
【０１１０】
よって、この場合には、まず、ステップＳ４３の処理を行う。ステップＳ４３の処理では、まず、ステップＳ４６と略同様の処理を行う。そして、プログラム取込み済フラグ３６を“済”とする。また、今回取り込んだプログラムブロック３４のブロックＮｏ．をリクエスト番号格納領域３７から削除する。
【０１１１】
続いて、図７（ａ）で説明した処理と同様にして、自己が未取得の１以上のプログラムブロックNoを利用者カード１のリクエスト番号格納領域３７に登録する（ステップＳ４４）。尚、ステップＳ４３の処理の際に、プログラム取込み済フラグ３６が“済”の状態であった場合は、自身は既に取り込んだプログラムブロックが記憶されたままで、新たに必要なプログラムブロックはまだカード１に記憶されていないことを意味するため、プログラムブロックの取り込みは行なわず処理を終了する。
【０１１２】
一方、主インストール先機器ＩＤ４１が未登録であった場合には（ステップＳ４１，ＮＯ）、当該カード１を自機の情報キャリアカードとするために、主インストール先機器ＩＤ４１に自機の機器ＩＤを登録する（ステップＳ４２）。そして、上記ステップＳ４３，Ｓ４４の処理を実行する。
【０１１３】
また、図９には示していないが、その主インストール先機器ＩＤ４１に自機の機器ＩＤを登録された利用者カード１から、任意のプログラムブロックを取得した結果、全てのプログラムブロックを取得した状態となった場合には、これ以上プログラムブロックを取得する必要はないので、主インストール先機器ＩＤ４１に登録されている自身の機器ＩＤを削除する。つまり、当該カード１を他の機器１０が自己の情報キャリアカードとして利用出来るように解放する。
【０１１４】
上記の通り、変形例２において、任意のカード１を自己の情報キャリアカードとしている機器１０は、更新版プログラムに関する全てのプログラムブロックを取得したならば、
当該カード１を他の機器１０が自己の情報キャリアカードとして利用出来るように解放することができる。
【０１１５】
しかしながら、状況によっては、いつまでもカード１が解放されることなく、そのままとなる場合もあり得る。例えば何らかの理由で任意の利用者カード１を自己の情報キャリアカードとした機器１０を、当該利用者カード１のユーザが使用しなくなった（例えば引越し等で利用場所が変わった場合等）場合などである。
【０１１６】
この様な場合に対応して、主インストール先機器ＩＤ４１に登録した機器１０が上記解放を行わなくても、他の機器１０においてカード１を解放できるようにする変形例（以下、変形例３という）、換言すれば主インストール先機器ＩＤによる情報キャリアカード化の権限を抹消することができる変形例３について、以下に説明する。
【０１１７】
まず、図１０（ａ）、（ｂ）に、変形例３において利用者カード１のメモリに格納される各種情報のデータ構成を示す。図１０（ａ）には変形例３における第１の手法、図１０（ｂ）には変形例３における第２の手法に係る上記データ構成を示す。
【０１１８】
以下の第１、第２の手法は、その方法は異なるものの、基本的に、任意のカード１に対して自機の機器ＩＤを登録した機器１０が、一定期間以上このカード１に利用されなかった場合には、他の機器１０であってもこのカード１から登録を抹消できるようにする、という点では同じである。
【０１１９】
まず、図１０（ａ）を参照して、変形例３における第１の手法について説明する。
当該第１の手法では、利用者カード１のメモリには、図８に示す各種情報に加えて更に図１０（ａ）に示す通り利用機器ＩＤログ５１が格納される。
【０１２０】
この利用者カード１が使用された機器１０は、その都度自身の機器ＩＤを上記利用機器ＩＤログ５１として当該利用者カード１のメモリに記録しておく。この処理は、例えば図９におけるステップＳ１２の処理後等に実行する。利用機器ＩＤログ５１はサイクリックに記録することとし、記録容量を越えた場合は古い記録から上書きされて削除されていく。
【０１２１】
これより、この複数の利用機器ＩＤログ５１のなかに主インストール先機器ＩＤ４１と同一のＩＤが無い場合は、この利用者カード１が主インストール先機器ＩＤ４１の機器１０で一定の利用回数の期間使用されなかったことを意味する。これはこの利用者カード１の利用者が他の生活エリアに移動してしまったり利用習慣が変わったこと等によって、当該機器１０での利用が行なわれなくなった可能性を示し、このままこの利用者カード１が当該機器１０の専用キャリアとして使用されることは、情報の更新効率を低下させることを意味する。
【０１２２】
よって、特に処理フロー等は図示しないが、例えば図９の処理中に、上記利用者カード１に記憶されている複数の利用機器ＩＤログ５１のなかに主インストール先機器ＩＤ４１と同一のＩＤがあるか否かを判定し、無い場合には、主インストール先機器ＩＤ４１を削除する処理を追加する。この様に、自己の機器ＩＤを主インストール先機器ＩＤ４１として登録した機器１０以外の機器であっても、上記判定結果に応じて主インストール先機器ＩＤ４１を削除することを許可されるようにすることで、上記登録元の機器１０以外の他の機器１０が、この利用者カード１を自身の専用キャリアカードとして登録することが可能となり（あるいは専用キャリアカードとしないで使用してもよい）、情報の更新効率を低下させることはなくなる。
【０１２３】
以下に説明する第２の手法も、上記第１の手法とはやり方が異なるだけであり、目的・効果は略同様である。
すなわち、第２の手法では、上記利用機器ＩＤログ５１を記録する方法の代わりに、図１０（ｂ）に示すように、利用者カード１のメモリに「主インストール先機器最終利用日時」６１を記録する。
【０１２４】
上記利用機器ＩＤログ５１は基本的に全ての機器１０が記憶するものであったが、「主インストール先機器最終利用日時」６１は、自己の機器ＩＤを主インストール先機器ＩＤ４１として登録した機器１０（以下、専用キャリア化登録機器１０という）のみが、記録・更新することができる。
【０１２５】
すなわち、上記専用キャリア化登録機器１０は、図１０（ｂ）に示す利用者カード１のユーザが当該専用キャリア化登録機器１０を利用する毎に、その都度、そのときの日時を（利用日時）を「主インストール先機器最終利用日時」６１に記録する処理を行う。この為、この利用者カード１のユーザが当該専用キャリア化登録機器１０を利用しないと、「主インストール先機器最終利用日時」６１の日時は更新されないことになる。
【０１２６】
これより、全ての機器１０は、例えば図９の処理の際に以下の処理も実行することで、この利用者カード１のユーザが専用キャリア化登録機器１０を長期間利用していない場合等には、専用キャリア化登録機器１０以外の他の機器１０であっても主インストール先機器ＩＤ４１を削除できるようにする。
【０１２７】
すなわち、各機器１０は、例えば図９の処理の際等に、利用者カード１から上記「主インストール先機器最終利用日時」６１を読み出してこれと現在日時とを差を求める。すなわち最後に利用日時６１が更新されたときからの経過時間を求める。そして、この経過時間が、予め設定される所定期間を越えたか否かを判定し、超えている場合には主インストール先機器ＩＤ４１を削除する。
【０１２８】
この様にすることで、上記第１の手法と同様、情報の更新効率を低下させることはなくなる。
尚、上述した説明では、利用者カード１に記録・登録される情報、カード利用機器１０内に保管されている情報に対する、暗号化・秘匿化等のデータ処理については言及していないが、基本的に、これらデータ処理も実行されること前提としている。但し、この点は特に本手法に影響するものではなく、上記の通り、特に説明していない。
【０１２９】
以上説明したように、本例の情報配信システム、そのＩＣカード利用機器、プログラム等によれば、特別な装置を追加することなく、各所に点在しているオンライン環境利用に制約のあるカード利用機器に関して、当該核機器の機器動作規定情報更新に要するメンテナンス要員の手間を軽減することが可能となる。
【０１３０】
すなわち、メンテナンス要員は、多数のＩＣカード利用機器のうちの一部の機器に対してのみ、直接機器の設置場所に赴いて機器動作規定情報を更新する作業を行えばよく、以降は各ＩＣカード利用機器を利用するユーザのＩＣカードを介して、機器から機器へ更新版の機器動作規定情報が伝達されることとなり、メンテナンス要員は全ての機器に対して更新作業を実施する必要はなくなり、大幅な運用コスト削減を実現することが可能となる。
【０１３１】
更に、プログラム受け取り側（旧バージョンで動作している）機器が、カード１を介して未取得のプログラムブロックをリクエストできるので、プログラム取得効率が向上する。あるいは、任意のカード１を自機用のカードにしてプログラム取得効率を上げることが
できる。
【図面の簡単な説明】
【０１３２】
【図１】カード利用機器の構成例である。
【図２】利用者カードを介したプログラム配信（伝達）動作を概略的に示す図である。
【図３】利用者カードに記憶される情報の具体例を示す図である。
【図４】カード利用機器により実行される処理のフローチャート図（その１）である。
【図５】カード利用機器により実行される処理のフローチャート図（その２）である。
【図６】図５の処理の様子を示す図である。
【図７】変形例１の動作を示す図であり、（ａ）はリクエスト側、（ｂ）はプログラム提供側の動作を示す図である。
【図８】変形例２における利用者カードのデータ格納例を示す図である。
【図９】変形例２におけるカード利用機器の処理フローチャート図である。
【図１０】（ａ）、（ｂ）は、変形例３において利用者カードのメモリに格納される各種情報のデータ構成例である。
【符号の説明】
【０１３３】
１  利用者カード
１０  カード利用機器
１１  ＣＰＵ
１２  プログラムメモリ
１３  プログラム・情報更新メモリ
１４  設定情報管理メモリ
１５  カード利用機器機能制御部
１６  ＩＣカードＲ／Ｗ（リーダ／ライタ）
１７  アンテナ
２１  現行プログラムのバージョン
２２  次期プログラムのバージョン
２３  次期プログラム情報テーブル
２４  プログラムブロックＮｏ．
２５  プログラムブロック格納領域
２６  プログラム更新フラグ
３１  プログラムバージョン
３２  プログラムブロック総数
３３  プログラムブロックＮｏ．
３４  プログラムブロック
３５  プログラムブロックチェックデータ
３６  プログラム取込み済みフラグ
３７  リクエスト番号格納領域
４１  主インストール先機器ＩＤ
５１  利用機器ＩＤログ
６１  主インストール先機器最終利用日時
【図１】
2009099071.tif 000003
【図２】
2009099071.tif 000004
【図３】
2009099071.tif 000005
【図４】
2009099071.tif 000006
【図５】
2009099071.tif 000007
【図６】
2009099071.tif 000008
【図７】
2009099071.tif 000009
【図８】
2009099071.tif 000010
【図９】
2009099071.tif 000011
【図１０】
2009099071.tif 000012