説明

ICカード決済端末、その制御装置、プログラム

【課題】各端末毎に対応可能な電子マネーの種類が異なる場合でも容易に対応可能とすると共に、セキュリティ問題を解決する。
【解決手段】主制御部11には複数種類のブランドアプリケーション25(A、B、・・・n)が格納されている。アプリケーション管理部21は、初期処理として、この複数のブランドアプリケーション25のうち、予め設定されているものだけを起動して、コネクションを確立する。この起動は、登録情報と所定のルールに従って生成した実行ファイルパスを用いて行う。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、電子マネーを用いるキャッシュレス決済システムに係わり、特に複数種類のICカードに対応可能なICカード決済端末に関する。
【背景技術】
【0002】
非接触ICカードや非接触ICカード機能内蔵の携帯電話等(以下、ICカードというものとする)を用いた、電子マネーを使用するキャッシュレス決済システムでは、ICカードへの入金処理や、利用額の差引き処理を始めとするICカードへのアクセス処理を、ICカード・リーダ/ライタ(R/W)を有するICカード決済端末が、POSレジなどの上位端末からの指示に従って行っている。
【0003】
ここで、現在では複数種類のICカードが存在する。すなわち、電子マネーは、各社から異なる仕様の電子マネーブランドが規定され、それぞれ電子マネー用のICカードが発行され、また携帯端末用ソフトウェアがリリースされている。すなわち、複数のICカード発行・決済会社がそれぞれ自社ブランドのICカードを発行・管理している。そして、昨今、1台の決済端末で複数のブランドの(複数種類の)電子マネーを利用できるマルチブランド決済端末に対するニーズが高まっている。
【0004】
この様な複数種類のICカードに対応可能なICカード決済端末では、自端末で扱う各ブランド毎の処理機能が必要である。これは、例えば、ICカードとの通信は秘匿通信(暗号化通信)であるので、その為の鍵情報等が必要であるが、複数ブランドに対応する場合、各ブランド毎の鍵情報等を保持する必要がある。
【0005】
ICカード決済端末の主な処理機能は、利用客が保持するICカードから利用額を差し引いたり、あるいは金額を積みましたりすることや、決済処理結果等を示す明細情報等(取引情報)を生成・記録し、この明細情報等を各電子マネーブランド会社(ICカード発行・決済会社)におけるセンタサーバへ送信すること等である。
【0006】
上記の通り、ICカードとの通信はセキュリティ性を高めるために暗号化されており、暗号化/復号化の為の鍵等の秘匿情報を端末が保持する必要があるが、この秘匿情報は電子マネーブランド毎に異なる。またICカードの仕様も各ブランド毎に異なるため、ICカードのリードライト方法も異なる。上記取引情報を各社のセンタサーバに送信する場合においても、接続先(各社のセンタサーバのIPアドレス等)が異なることは勿論のこと、その通信仕様も異なる。そこで従来は、その決済端末で扱う全ての電子マネーブランドに関わる処理を、ひとつのプログラム上で実現することで、1台の決済端末で複数のブランドの電子マネーを取り扱っていた。
【0007】
また、例えば特許文献1に開示の従来技術が知られている。
特許文献1の発明は、複数種類の電子マネーに対する決済処理を迅速に行えるようにするものである。特許文献1には、対応可能とする電子マネーのそれぞれの決済処理を行う複数の決済部103A〜103Cを具備すると共に、対応可能とする全ての電子マネーに関する情報の読み取りを行う選択部を具備し、選択部によりメディア検出を行った結果に応じて上記決済部103A〜103Cを動作させることが開示されている。
【特許文献1】特開2008−16016号公報
【発明の開示】
【発明が解決しようとする課題】
【0008】
従来の技術では、各電子マネーブランドが規定する秘匿情報を単一のプログラムが操作することとなる。また、秘匿情報に限らず、例えば上記取引情報等、様々な情報を単一のプログラムが操作することとなる。
【0009】
例えば、電子マネーブランドA、BおよびCに対応する決済端末を例にする場合、仮にブランドAのICカードに関する処理(ICカードとの通信(認証処理やデータ・リード/ライト処理等)、決済処理、ブランドAのセンタサーバへの取引情報送信処理等)を実行するプログラムに欠陥があった場合、それを起因として、ブランドAだけでなく他のブランドB,Cに関するサービス(そのICカードに関する処理)が停止する可能性があるまた、例えば、ブランドAの情報だけでなく他のブランドの情報も壊したしまう可能性がある。
【0010】
また、電子マネーシステムにおいて、秘匿情報はシステム全体の安全性/信頼性を確保するための重要な要素であり、他ブランドと同居する形で秘匿情報を取り扱うことに抵抗を感じる電子マネーブランド会社もあり、電子マネーに関わる各機能の個別化が要求されるなど、セキュリティ上の問題がある。
【0011】
また、決済端末を設置する各店舗毎に、利用可能としたい電子マネーブランドの組み合わせが異なる場合がある。例えば店舗1では電子マネーブランドA,Bを、店舗2では電子マネーブランドA,Cを、店舗3では電子マネーブランドB,Cを、利用可能としたい等といった要求がある。あるいは、複数ブランド利用に限らず、任意の1つのブランドのみ利用可能としたい店舗があることも考えられる。
【0012】
上記の様な要求に対応して、単一のプログラムで1又は複数の電子マネーブランド利用を実現する場合、各電子マネーブランド毎とその組み合わせ毎のプログラムの作成が必要となる。すなわち、例えばブランドA、B、Cの3つのブランドが存在するとした場合、少なくともA、B、C、A+B、A+C、B+C、A+B+Cの7パターンのプログラムを作成、用意しておく必要がある。また、各パターン作成する毎に、それが正常に動作することを検証する必要がある。
【0013】
電子マネーブランドは現状少なくとも3つを超えるブランドが存在する。この為、上記店舗要求に合わせて多くのパターンのプログラムを作成することは製造コスト増加、品質の悪化などの影響が問題となっている。
【0014】
また、各プログラムの個別化する技術としては、各プログラムの動作するメモリ領域を仮想化し、各プログラムが利用できるメモリ空間を制限するというものがある。この方法では各アプリケーションを個別化し、各アプリケーションに相関が無く、独立させて動作させることが可能であるが、決済端末のように上位機器からの指令で各アプリケーションを選択的に動作・制御させるような場合に、各アプリケーションを総合的に制御する点で課題となっていた。
【0015】
また、万が一、決済端末内に不正なプログラムが入り込んでいた場合、このプログラムが動作することで、様々な問題(例えば情報の消去、改竄、漏洩等)が起こり得る。
また、他のブランドと同居することに関して心配する声が挙がっている。すなわち、例えば、他のブランドのアプリケーションが、自社ブランドのデータを盗み見しようとする可能性について、心配する声が挙がっている。
【0016】
本発明の課題は、複数ブランドに対応可能なICカード決済端末において、各決済端末毎で対応するブランド又はブランドの組み合わせが異なる場合でも、登録情報を設定/変更するだけで対応可能となり、また不正プログラムが入り込んでも実質的に動作できないように制御でき、また他のブランドのデータにアクセスできないようにできるICカード決済端末、その制御装置、プログラム等を提供することにある。
【課題を解決するための手段】
【0017】
本発明のICカード決済端末は、複数種類のICカードに対応可能なICカード決済端末であって、前記各種ICカードそれぞれに対応して、そのICカードに対応する処理を実行する各種アプリケーションモジュールを記憶するアプリケーションモジュール記憶部と、該各種アプリケーションモジュールを管理・制御すると共に、前記アプリケーションモジュールからの要求に応じて、記憶装置へのデータアクセス制御または外部装置への通信制御あるいはICカードとの通信制御を実行する共通処理部とを有し、前記共通処理部は、予め前記各種アプリケーションモジュールのうちの任意の1以上のアプリケーションモジュールに関する登録情報を記憶しておく登録情報記憶手段と、初期処理として、前記各種アプリケーションモジュールのうち、前記登録情報記憶手段に登録されているアプリケーションモジュールを起動するアプリケーションモジュール管理手段と、起動したアプリケーションモジュールの管理情報を記憶する起動アプリケーション管理情報記憶手段とを有する。
【0018】
上記ICカード決済端末では、まず、従来のように1つのプログラム上に複数種類のブランドのアプリケーションをまとめるのではなく、各ブランド個別に独立したアプリケーションであるアプリケーションモジュールを予め生成して記憶しておく。そして、登録情報記憶手段に登録されているアプリケーションモジュールのみを記憶する。これによって、登録情報記憶手段の登録内容を変えるだけで、各決済端末毎に容易に自由に、その決済端末で対応するブランドまたは複数ブランドの組み合わせを設定することが可能となる。
【0019】
また、例えば、前記アプリケーションモジュール管理手段は、前記登録情報に基づいてパス情報を生成し、該パス情報を用いてアプリケーションモジュールを起動し、該起動成功した場合には、該起動したアプリケーションモジュールに対してコネクション確立すると共に、該起動したアプリケーションモジュールに関する管理情報を、前記起動アプリケーション管理情報記憶手段に記憶する。
【0020】
これは、例えば、前記登録情報には前記アプリケーションモジュールの名称が含まれており、前記各種アプリケーションモジュールは、予め、その名称と予め決められた所定のルールとに基づいて決定される格納場所に格納されており、前記アプリケーションモジュール管理手段は、前記登録情報に含まれる名称と前記所定のルールとに基づいて、そのアプリケーションモジュールの格納場所を示す前記パス情報を生成する。
【0021】
上記の通り、正当なアプリケーションモジュールであれば、その名称と予め決められた所定のルールとに基づいて決定される格納場所に格納されている。よって、もし正当なアプリケーションモジュール以外のアプリケーションが存在しても、起動されないし、コネクションも確立されない。
【0022】
また、例えば、前記共通処理部は、任意の前記アプリケーションモジュールからの任意の要求に応じて、前記記憶装置へのデータアクセス制御または外部装置への通信制御あるいはICカードとの通信制御を実行する際に、該要求元のアプリケーションモジュールに関する前記管理情報が前記起動アプリケーション管理情報記憶手段に記憶されているか否かをチェックし、記憶されていない場合には該要求を拒否する。
【0023】
上記の通り、正当なアプリケーションモジュール以外のアプリケーションは、起動されないように制御しているが、もし万が一、このアプリケーションが動作する状態になったとしても、共通処理部を介して行う処理は、実質的に、実行できないことになる。
【0024】
また、例えば、前記共通処理部は、前記アプリケーションモジュールからの要求に応じて前記記憶装置へのデータアクセス制御を行う場合、該要求に含まれるアクセス対象のデータファイルの名称と、前記起動アプリケーション管理情報記憶手段に記憶されている前記パス情報とを用いて、該データファイルにアクセスする為のファイルパスを生成し、該ファイルパスを用いて前記アクセス対象のデータファイルにアクセスする。
【0025】
上記構成により、任意のアプリケーションモジュール(正当なものも含む)が、他のアプリケーションモジュールのデータファイルにアクセスしようとしても、出来ないことになる。
【発明の効果】
【0026】
本発明のICカード決済端末、その制御装置、プログラム等によれば、複数ブランドに対応可能なICカード決済端末において、各決済端末毎で対応するブランド又はブランドの組み合わせが異なる場合でも、登録情報を設定/変更するだけで対応可能となり、また不正プログラムが入り込んでも実質的に動作できないように制御でき、また他のブランドのデータにアクセスできないようにできる。
【発明を実施するための最良の形態】
【0027】
以下、図面を参照して本発明の実施の形態について説明する。
図1(a)、(b)に本例のICカード決済端末の構成例を示す。
図1(a)は、本例のICカード決済端末の構成例、及びこの端末を含むキャッシュレス決済システム全体の構成例を示す。
【0028】
図示のICカード決済端末10は、主制御部11、記憶装置12、通信制御部(対主局)13、通信制御部(対センタ)14、通信制御部(対カード)15を有する。
通信制御部(対主局)13は主局(上位コントローラ)1との通信を行う機能部であり、通信制御部(対センタ)14はセンタサーバ2等の外部装置との通信をネットワーク(インターネット等)を介して行う機能部であり、通信制御部(対カード)15はICカード3との通信を行う機能部である。これらについては特に説明しないが、主局1は例えばPOS端末等であり、センタサーバ2は上述したICカード発行・決済会社のサーバ装置である。また、通信制御部(対カード)15は、例えばアンテナと通信用回路等から成る。尚、ICカード3は、ICカードだけでなく、例えばICカード機能搭載の携帯電話等であってもよい。
【0029】
図1(b)に、上記ICカード決済端末10の主制御部11の機能構成例を示す。
主制御部11は、フレームワーク20と各ブランドアプリケーションA,B,C,・・・n(これらを総称してブランドアプリケーション25という)の各機能部を有する。
【0030】
フレームワーク20は、上記各種ブランドアプリケーション25を管理・制御すると共に、ブランドアプリケーション25からの要求に応じて、記憶装置12へのデータアクセス制御、または外部装置(センターサーバ2や主局1)への通信制御、あるいはICカード3との通信制御を実行する共通処理部である。
【0031】
フレームワーク20は、アプリケーション管理部21、上位通信制御部22、データ制御部23、R/W通信制御部24の各機能部を有する。また、図1に示していないが、フレームワーク20内には、通信制御部(対センタ)14を制御して、センタサーバ2との通信処理を実行させる処理機能部(センタ通信制御部というものとする)も存在する。
【0032】
上記各種ブランドアプリケーション25の管理・制御は、アプリケーション管理部21が実行する。また、上記「記憶装置12へのデータアクセス制御、または外部装置(センターサーバ2や主局1)への通信制御、あるいはICカード3との通信制御」は、データ制御部23、または上位通信制御部22(または不図示のセンタ通信制御部)、あるいはR/W通信制御部24が行う。
【0033】
主制御部11は、CPU/MPUであり、不図示のメモリまたは記憶装置12に予め記憶されている所定のアプリケーションプログラムを実行することにより、上記フレームワーク20の処理機能(その各機能部21〜24の処理機能)、各ブランドアプリケーション25の処理機能を実現する。これは、換言すれば、後述する図2、図6(a)、(b)、図7に示すフローチャートの処理を主制御部11に実行させる為のアプリケーションプログラムが、記憶装置12等に記憶されているものとなる。また、これらの処理に必要なテーブル情報等も、記憶装置12等に記憶されている。すなわち、後述する図3、図4に示す情報は、予め記憶装置12等に記憶されている。また、後述する図5に示すテーブル情報も、後述する処理により生成され、不図示のメモリまたは記憶装置12に記憶される。
【0034】
上記構成の主制御部11に関して、まず、ブランド別のアプリケーションのモジュール化が行われている。すなわち、各ブランド毎に独立したブランドアプリケーションA,B,C,・・・nが存在する。そして、各ブランドアプリケーション25は、共通処理部であるフレームワーク20によって管理制御され、あるいはフレームワーク20に対して要求を出すことでフレームワーク20を介して様々な処理(センターサーバ2との通信、ICカードとの通信、記憶装置12へのアクセス、主局1との通信等)を実行する。
【0035】
すなわち、各ブランドアプリケーション25は、例えばICカードとの通信を行う場合には、R/W通信制御部24に要求を出す。これより、R/W通信制御部24が、通信制御部(対カード)15を制御して、ICカード3との通信処理を実行する。
【0036】
ここで、R/W通信制御部24は、要求を拒否する場合もある(不正と判定された場合等)。これは他の制御部22,23(あるいは上記不図示のセンタ通信制御部)に関しても同様である。
【0037】
データ制御部23は、任意のブランドアプリケーション25からの要求に応じて、記憶装置12に対するアクセス処理(データ・リード/ライト等)を実行する。但し、上記の通り要求を拒否する場合もある。
【0038】
同様にして、上位通信制御部22は、任意のブランドアプリケーション25からの要求に応じて、通信制御部(対主局)13を制御して主局(上記コントローラ)1との通信処理を実行する。不図示のセンタ通信制御部も、任意のブランドアプリケーション25からの要求に応じて、通信制御部(対センタ)14を制御して、センタサーバ2等の外部装置との通信処理を実行する。
【0039】
また、ブランドアプリケーションA,B,C,・・・nの全てが動作するとは限らない。すなわち、アプリケーション管理部21は、予め登録された情報(後述する図3の搭載アプリケーション情報30等)に基づいて、登録されたブランドアプリケーションのみ起動する。
【0040】
上述してあるように、従来では、例えばA,B,Cの3つのブランドが存在する場合を例にすると、Aのみ、Bのみ、Cのみ、A+B、A+C、B+C、A+B+Cの7パターンの「1つのプログラム」を作成する必要であった。また、例えば、“Aのみ”と“Bのみ”の各プログラムについては正常動作することが確認済みであっても、“A+B”のプログラムも正常動作するとは限らない。この為、“A+B”のプログラムを作成後、これを検証する必要があった。
【0041】
これに対して、上記本例の構成では、まず、各ブランド毎の個別のアプリケーションである上記ブランドアプリケーションA,B,Cを端末10内に記憶しておく。そして、搭載アプリケーション情報30にAのみ登録しておけば、この端末10は上記7パターンのうちの“Aのみ”のプログラムを搭載したものと同様のものとなる。同様に、“A+B”としたい場合には、搭載アプリケーション情報30にAとBを登録すればよい。他のパターンについても同様である。更に、例えば、“A+B+C+D”としたい場合には、端末10内にブランドアプリケーションDを追加記憶したうえで、搭載アプリケーション情報30にAとBとCとDを登録すればよい。
【0042】
このように、上記本例の構成では、複数のブランド(複数種類の電子マネー;複数種類のICカード)に対応可能なICカード決済端末10に関して、各端末10毎にその端末で対応するブランド(1または複数のブランド)が異なる場合でも、各ブランド毎の個別のアプリケーションを作成しておけばよく、各ブランドの組み合わせ毎のアプリケーションは作成する必要はなくなる。例えば、上記のA,B,Cの例では、従来では7パターン作成する必要があったが、本例では3パターンだけ作成すれば済む。当然、各ブランドの組み合わせパターン毎に、そのアプリケーションの上記検証を行う必要はなくなる。
【0043】
また、上記起動処理に関して、後述する実行ファイルパスを生成してこの実行ファイルパスを用いてブランドアプリケーション起動を行うので、たとえ正当なブランドアプリケーション25以外のアプリケーション(不正なプログラム等)が入り込んでいても、この不正プログラム等が起動されないようにできる。また、万が一、この不正プログラム等が勝手に起動したとしても、後述するようにテーブル40を用いてチェックするので、この不正プログラム等は実質的に動作不能となる(少なくともフレームワーク20を介して行う処理、すなわちICカードや記憶装置12や外部装置に対して行う処理等は、実現できない)。
【0044】
図2に、上記フレームワーク20の起動処理のフローチャート図を示す。
この処理はアプリケーション管理部21が実行する。
図2に示すように、フレームワーク20が起動されると、まず、アプリケーション管理部21が、搭載アプリケーション情報テーブル30(図3に一例を示す;後に説明する)に格納されている情報を読み出す(ステップS12)。尚、図では、まず未処理のブランドアプリケーション25があるか否かを判定するが(ステップS11)、この判定処理はステップS12の後に行っても良い。ステップS11の処理は、搭載アプリケーション情報テーブル30に登録されたブランドアプリケーション25全てについて、ステップS12以降の処理を実施したか否かを判定するものである。
【0045】
また、ステップS12の処理は、搭載アプリケーション情報テーブル30の各レコードのうちの1つを読み出すものである。すなわち、登録されている任意の1つのブランドアプリケーション25に関する情報を読み出すものである。そして、1つのブランドアプリケーション25(処理対象アプリケーション)に関する情報を読み出す毎に、ステップS13以降の処理を実行する。
【0046】
ここで、搭載アプリケーション情報テーブルの一例を図3に示す。
図3に示す搭載アプリケーション情報テーブル30は、アプリケーションNo.31、アプリケーション名称32、サービス種別33、動作パラメータ34等の各種情報より成る。
【0047】
アプリケーションNo.31には、当該テーブル30上での通し番号(シリアル番号)であり、特に意味はない。上記の通り、テーブル30の各レコードは、それぞれ、1つのブランドアプリケーション25に関する各種情報が登録されたものである。勿論、上記の通り、ブランドアプリケーションA〜nの全てが登録されているとは限らない。この登録情報は、図示の例では、アプリケーション名称32、サービス種別33、動作パラメータ34である。
【0048】
まず、アプリケーション名称32は、そのブランドアプリケーション25の名称であり、図示の例では例えばbrand_a、brand_b等が登録されている。尚、例えば、brand_aは上記ブランドアプリケーションAの名称である。
【0049】
サービス種別33は、そのブランドアプリケーションAのサービス種別である。尚、サービス種別は、例えば、主局1がICカード決済端末10に対して任意のアプリケーションの処理を指定する為に用いる識別情報である。動作パラメータ34については、ここでは特に関係ないので説明しない。
【0050】
上記ステップS12で読み出した1レコードの情報に基づいて、まず、ステップS13の処理を行う。すなわち、上記処理対象アプリケーションについて、そのアプリケーション名称32に基づいて、予め決められている所定の生成方法で、そのブランドアプリケーション25の実行ファイルパスを生成する。そして、この実行ファイルパスを用いて、そのブランドアプリケーション25を起動する(ステップS13)。この実行ファイルパス生成処理について、以下、図4に示す一例を用いて説明する。
【0051】
まず、上記各ブランドアプリケーション25の実行ファイルが、予め作成されて例えば図4に示す格納形式で格納されている。例えば、図4に示す“brand_a.exe”は上記ブランドアプリケーションAの機能を実現する実行ファイルである。“brand_b.exe”は上記ブランドアプリケーションBの実行ファイルである。他も同様である。そして、各実行ファイルは、予め、図4に示すパスに従って格納管理されている。すなわち、例えば上記“brand_a.exe”はルートパス“C:/appl/brand_a/”の元に格納されている。ここでは、applと、brand_a、brand_b等は、それぞれフォルダ名である。
【0052】
つまり、この例では、共通パス“C:/appl”の下に各実行ファイルをそれぞれ格納する為のフォルダが存在しており、各フォルダの名称はそのフォルダ内に格納される実行ファイルの名称と同名(拡張子は除く)となっている(例えば、“brand_a.exe”に対して“brand_a”)。つまり、各ブランドアプリケーションに関して、それぞれ、applフォルダ下にアプリケーション名称32と同名のフォルダがあり、かつこのフォルダの中にアプリケーション名称32と同名(+特定の拡張子;本例では.exe)の実行ファイルがある。
【0053】
この様な規定(ルール)が予め決められており(但し、上記の規定は一例であり、規定は自由に決めてよい)、この規定(ルール)に従った所定のルートパスの下、所定の実行ファイル名で各ブランドアプリケーション25の実行ファイルが格納されている。よって、上記ステップS13の処理では、この規定に応じて、上記実行ファイルパスを生成できる。実行ファイルパスは、上記ルートパス+実行ファイル名である。
【0054】
例えば、アプリケーション名称32が“brand_a”であった場合には、ルートパス=“C:/appl/brand_a/”、実行ファイル名=“brand_a.exe”が生成され、これより実行ファイルパス=“C:/appl/brand_a/brand_a.exe”が生成できる。
【0055】
尚、アプリケーション名称32は、上記の例に限らず、例えばフルパスで指定してもよいし、ファイルシステムが利用できない場合は、各ブランドアプリケーション25が格納されている物理的なメモリの番地でもよい。また本例では、アプリケーション名称32から格納パス名および実行ファイル名称を生成したが、パス名称、実行ファイル名称およびアプリケーション名称のように必要な情報を分けて定義してもよい。
【0056】
そして、処理対象のブランドアプリケーション25が、正当なものであるならば、その実行ファイルは、上記規定(ルール)に従って所定の格納場所に所定のファイル名で格納されているはずである。よって、上記生成した実行ファイルパスを用いれば、処理対象のブランドアプリケーション25は起動できるはずである。一方、この規定(ルール)を知らない第三者が作成・格納したアプリケーションは、上記生成した実行ファイルパスを用いても、起動できないはずである。
【0057】
これより、上記の通り、ステップS13では、生成した実行ファイルパスを用いてアプリケーション起動を試みる。そして、もしアプリケーション起動できなかった場合には、実行ファイルなしと判定して(ステップS14,NO)、ステップS11に戻る。尚、ステップS14がNOとなることは、上記の通り、処理対象が不正プログラムである可能性があることも意味している。
【0058】
そして、搭載アプリケーション情報テーブル30に登録されている全てのブランドアプリケーションについて処理実行した場合には(ステップS11,NO)、本処理を終了する。一方、未処理の登録アプリケーションが残っている場合には、ステップS12に進み、未処理の登録アプリケーションに関する処理を実行する。
【0059】
一方、上記生成した実行ファイルパスによってブランドアプリケーション25が起動できた場合には(ステップS14,YES)、このブランドアプリケーション25に任意の通信ポート番号を割り当てる等した後(ステップS15)、この通信ポート番号を含む、当該ブランドアプリケーションに関する所定の管理情報を、アプリケーション管理情報テーブル40に登録する(ステップS16)。すなわち、上記生成したルートパス、通信ポート番号等を登録する。通信ポート番号は、任意に決定してよいが、重複しないように、ユニークな番号を割り付ける。通信ポート番号は、後にブランドアプリケーション25とフレームワーク20とが通信するために使用するポート番号である(TCP/IPにおけるポート番号等と同様と考えてよい)。つまり、これによって、フレームワーク20−アプリケーション25間のコネクションを確立できるものである。
【0060】
また、従来より、端末10上の各アプリケーション(上記ブランドアプリケーション25だけでなく、全てのアプリケーション;よって、フレームワーク20も含まれる)には、端末10のOS(オペレーティングシステム)が、各アプリケーション毎にユニークなID(アプリケーションID)を割り当てて、管理・制御している。
【0061】
フレームワーク20は、このOSの機能により、各ブランドアプリケーションのアプリケーションIDを知ることができる。これより、フレームワーク20は、上記起動できたブランドアプリケーション25のアプリケーションIDを、上記ルートパスや通信ポート番号等と共にテーブル40に登録する。
【0062】
アプリケーション管理情報テーブル40には、予め上記テーブル30に登録されており、且つ起動できた(不正プログラムである可能性が極めて低い)ブランドアプリケーション25のみが登録されることになる。よって、後述するように、後の通常処理において、このテーブル40を参照してチェックを行うことで、より強固なセキュリティを実現できる。
【0063】
図5に、アプリケーション管理情報テーブル40の一例を示す。
図5に示す例のアプリケーション管理情報テーブル40は、アプリケーションNo.41、アプリケーションID42、サービス種別43、フレームワーク−アプリケーション間通信ポート番号44(以下、略して通信ポート番号44という)、及びルートパス45の各種情報より成る。
【0064】
アプリケーションNo.41は、上記アプリケーションNo.31と同様、テーブル40上での通し番号等であり、任意に割り当てるものである。サービス種別43は、上記サービス種別33に相当する。よって、ステップS16では、処理対象ブランドアプリケーションのサービス種別33をサービス種別43に格納する。ルートパス45には上記ステップS13で生成した上記ルートパスを格納する。例えば上記の例では“C:/appl/brand_a/”をルートパス45に格納する。アプリケーションID42は、上記の通り、起動できた処理対象ブランドアプリケーション25のアプリケーションIDである。通信ポート番号44には、上記ステップS15で任意に割り当てた通信ポート番号を格納する。
【0065】
尚、フレームワークとアプリケーション間の通信は、イベントを用いても良いし、ポーリングを用いてもよい。また、OSを利用している場合は、OSが提供するメッセージ通信を利用しても良い。よって、上記通信ポート番号は一例であり、この例に限るものではない。要は、フレームワークとアプリケーション間の通信に必要な情報を生成して、アプリケーション管理情報テーブル40に登録すればよい。換言すれば、フレームワーク20−アプリケーション25間のコネクション確立に必要な情報であれば何でもよい。
【0066】
図6(a)に、各ブランドアプリケーションの通常起動処理フローを示す。
各ブランドアプリケーション25は、フレームワーク20による上記ステップS13の処理によって起動されると、まず内部的な初期化処理を行う(ステップS21)。この初期処理の内容については特に説明しない。そして、フレームワーク20に対して通信ポート番号要求を出し、そのブラントアプリケーション25に割り付けられた上記通信ポート番号を取得する(ステップS22)。この後は、特にフレームワーク20が当該ブランドアプリケーション25との通信(後述する指示メッセージ回送等)を行う際には、上記通信ポート番号を用いる。
【0067】
そして、データ受信待ち状態へ移行する(ステップS23)。すなわち、フレームワーク20は、上記図2の起動処理終了後は、例えば、後に図7で説明するように、上位端末(主局1)から任意の動作指示メッセージを受ける毎に、この指示に対応するブランドアプリケーション25に、この指示メッセージを転送(回送)する。ステップS23の処理は、例えば、当該回送されてくる指示メッセージの受信待ち状態へ移行することを意味するが、この例に限るものではない。尚、この受信待ち状態では、ステップS22で取得した通信ポート番号を監視している。
【0068】
上記ステップS22による上記通信ポート番号要求を受信したときのフレームワーク20の処理例を、図6(b)に示す。尚、この処理は、アプリケーション管理部21が実行する。尚、この処理は、図2の処理が完了後に実行可能となる。
【0069】
まず、フレームワーク20は、特に説明しないがOSの機能によって、当該OSが管理する各アプリケーション(フレームワーク自体も含む)の上記アプリケーションIDを知ることができ、よって、要求元のブランドアプリケーション25のIDを認識できる(ステップS31)。これより、この要求元のブランドアプリケーション25が、アプリケーション管理情報テーブル40に登録されているか否かをチェックする。すなわち、アプリケーション管理情報テーブル40を検索して、要求元のブランドアプリケーション25のアプリケーションIDが登録されているか否か(アプリケーションID42に一致するものがあるか否か)をチェックする(ステップS32)。
【0070】
もし、登録されているならば(ステップS32,YES)、要求元のブランドアプリケーション25に対して、そのブランドアプリケーション25に割り当てた上記通信ポート番号44を応答する(ステップS33)。これより、要求元のブランドアプリケーション25は、上記ステップS22の処理における通信ポート番号の取得が行える。
【0071】
一方、未登録の場合には(ステップS32,NO)、要求元のアプリケーションは不正なアプリケーションである可能性があると判定し、異常応答を行う(ステップS34)。この場合、要求元のブランドアプリケーション25は、上記ステップS22の処理において通信ポート番号は取得できない。
【0072】
上記起動時の図2、図6の処理完了後は、ICカード決済端末10は通常処理モードに移行する。その後は、通常処理、例えばICカード決済処理やセンタサーバ2への決済明細データ送信処理等を実行する。
【0073】
図7に、この通常処理のフローチャート図を示す。
上位端末(主局1)は、ICカード決済端末10に対して、任意のサービス種別の処理実行を指示する。上位端末(主局1)は、上記の通りPOSレジ等であり、例えば顧客が、当該ICカード決済端末10で取り扱う各種ICカードのうちの任意の種類のICカードを使用する場合、店員等が上位端末を操作してこのICカードの決済処理実行を指示すると、上位端末はこの指示に応じたサービス種別をコマンドに含めてICカード決済端末10へ送信する(ステップS41)。
【0074】
ICカード決済端末10のフレームワーク20のアプリケーション管理部21は、このコマンド(動作指示メッセージ)を受信すると(ステップS51)、このコマンド内のサービス種別を確認し(ステップS52)、図5のアプリケーション管理情報テーブル40を検索して、該当するアプリケーションが存在するか否かをチェックする(ステップS53)。すなわち、コマンドのサービス種別と同一のサービス種別43が登録されているか否かをチェックする。
【0075】
該当アプリケーションがテーブル40に登録されていない場合には(ステップS53,NO)、ステップS56に進み、動作結果メッセージを上位端末に返信するが、この場合は処理実行不能応答等となる。
【0076】
一方、該当アプリケーションが存在する場合には(ステップS53,YES)、この該当アプリケーションのレコードの通信ポート番号44を取得する。そして、この通信ポート番号44が示す通信ポートに対して、上記コマンドを回送(送信)する(ステップS54)。
【0077】
尚、ここで、例えば、ブランドアプリケーション25として不正なアプリケーションが格納され、更にこの不正なアプリケーションに関する情報が搭載アプリケーション情報テーブル30に登録された場合を考える。この場合でも、この不正なアプリケーションに係わる第3者が、上述した所定の「規定」を知らなければ、ステップS14の判定がNOとなる。すなわち、上記不正なアプリケーションの格納場所(フォルダ名等)や実行ファイル名を上記「規定」に従ったものにしない限り、生成した実行ファイルパスによって不正プログラムを起動させることは出来ない。よって、この不正プログラムは図5のアプリケーション管理情報テーブル40に登録されないし、通信ポート番号が割り当てられることもない。
【0078】
これより、不正プログラムが不正な処理を実行することを防止できる。また、この不正プログラムがフレームワーク20からの起動処理や指示を受けることなく勝手に起動して動作しようとしても、後述する図8の処理により、実質的に動作不能となる。詳しくは後述する。
【0079】
上記ステップS33の処理が実行されて自己に割り当てられた通信ポート番号を取得できた各ブランドアプリケーション25は、上記ステップS23で移行したデータ受信待ち状態において、上記通信ポート番号の通信ポートを監視し、フレームワーク20からのコマンド回送を待つ。
【0080】
そして、各ブランドアプリケーション25は、コマンドの回送が合った場合には(動作指示メッセージを受信した場合)(ステップS61)、受信したコマンドの内容を解析して、このコマンド内容により指示された処理動作を行う(ステップS62)。そして、処理動作実行完了したら、動作結果をフレームワーク20(そのアプリケーション管理部21)へ返信する(ステップS63)。この場合、フレームワーク20は、この返信(動作結果)を受信すると(ステップS55)、この動作結果情報を上位端末1へ返信する(ステップS56)。上位端末1は、この動作結果情報を受信して、所定の処理を実行する(ステップS42)。
【0081】
ここで、上記ステップS62の処理動作の一例として、任意のブランドのICカード決済処理が指示された場合について説明する。
この場合、上記ステップS62の処理動作を実行するブランドアプリケーション25は、まず、フレームワーク20のR/W通信制御部24を呼び出して、ICカードとの通信処理制御を実行させる。すなわち、R/W通信制御部24は、上記ブランドアプリケーションからの要求に応じて、通信制御部(対カード)15を制御して、ICカードとの通信を行わせて、ICカードに対して金額を積み増したりまた差し引いたりする決済処理を行う。
【0082】
その際、ICカード3との秘匿通信に必要な鍵情報等を、記憶装置12(その一部としての耐タンパメモリ)から取得する為に、データ制御部23を呼び出して、記憶装置12からの鍵情報等の読出しを要求する。
【0083】
また、上記ブランドアプリケーション25は、上記決済処理が正常終了したら、フレームワーク20のデータ制御部23を呼び出して、この決済処理の明細情報(取引情報)を、例えば記憶装置12に格納する処理制御を実行させる。すなわち、データ制御部23は、上記ブランドアプリケーション25からの要求に応じて、上記取引情報を記憶装置12に格納する処理を実行する。
【0084】
ここで、上記R/W通信制御部24、データ制御部23は、何れも、上記アプリケーション25からの要求を拒否する場合がある。これは、これら制御部23、24に限らず、フレームワーク20内の全ての処理機能部においても、同様であってよい。すなわち、上位通信制御部22やアプリケーション管理部21(あるいは、上記センタ通信制御部)においても、任意のアプリケーション25から呼び出されて任意の要求を受けた場合に、この要求を拒否する場合がある。
【0085】
すなわち、上記R/W通信制御部24、データ制御部23等は、何れも、上記呼び出しを行ったブランドアプリケーション25が、正当なアプリケーション以外のアプリケーション(不正なアプリケーション等)であるか否かを確認し、不正なアプリケーションであると判定した場合には、その要求を拒否し、要求された処理動作は実行しない。
【0086】
上記不正プログラムか否かのチェック処理は、テーブル40を参照して行う。すなわち、呼び出し元のブランドアプリケーションが、テーブル40に登録されているか否かをチェックし、登録されていない場合には要求を拒否する。このチェックは、例えば上記アプリケーションIDを用いて行う。すなわち、上記呼び出しを受けた処理機能部(R/W通信制御部24やデータ制御部23等)は、上記図6(b)の場合と同様、呼び出し元のアプリケーションのアプリケーションIDが分かるので、このアプリケーションIDを用いて図8の処理を実行する。図8の不正チェック処理を実行したうえで、問題無いことを確認したら、要求に応じた処理を実行する。
【0087】
図8の不正チェック処理では、上記呼び出し元のブランドアプリケーションのアプリケーションIDに基づいて、このアプリケーションIDが図5のアプリケーション管理情報テーブル40に登録されているか否かをチェックする(ステップS71)。すなわち、呼び出し元のブランドアプリケーションのアプリケーションIDと一致するアプリケーションID42が、存在するか否かをチェックする。
【0088】
そして、登録されていない場合には(ステップS72,NO)、不正なアプリケーションの可能性ありとして、アクセス(要求)を拒否する(ステップS74)。
一方、登録されていれば(ステップS72,YES)、このアプリケーション25からの要求に応じた処理を実行する(ステップS73)。例えば、R/W通信制御部24の場合、ICカード3との通信を許可し、実行する。例えば、データ制御部23の場合、記憶装置12に対するアクセスを許可し、データ・リードライト処理等を実行する。
【0089】
ここで、記憶装置12に対するアクセス処理に関しては、更に、各ブランドアプリケーション25が、他のブランドアプリケーション25のデータにアクセスできないように制御できる。
【0090】
この制御処理については、特に図示しないが、例えば以下のように処理する。
まず、本例の決済端末上のファイル構成が例えば図4に示す例の場合、各ブランドアプリケーション毎に、そのアプリケーションのデータファイルは全て、そのアプリケーションの実行ファイル(.exe)と同じ場所(同じフォルダ又はこのフォルダ以下のフォルダ)に格納されている。例えば、ブランドアプリケーションAを例にすると、そのデータファイルは全て、図4に示すフォルダ“brand_a”に格納されている。あるいはこの“brand_a”以下の不図示の任意のフォルダ(例えば、brand_a/brand_a1等とする)に格納されている。但し、ここでは全データがフォルダ“brand_a”に格納されているものとする。
【0091】
上記の通り、フォルダ“brand_a”には、実行ファイル“brand_a.exe”も格納されている。つまり、換言すれば、各ブランドアプリケーション25のデータは、そのブランドアプリケーションの起動の為に生成した上記実行ファイルパスと同様のパス情報によりアクセス可能となるような格納位置に格納されている。
【0092】
そして、本説明では一例として、ブランドアプリケーションAのデータファイルとして、ファイル名が“filename”のデータファイルがフォルダ“brand_a”に格納されているものする。
【0093】
本例では、各ブランドアプリケーション25は、任意のデータファイルにアクセスする際、データ制御部23を呼び出してそのファイル名のみを通知する(パス情報は無し)。よって、上記の例では、ブランドアプリケーションAは、データ制御部23に対して、アクセス対象のデータファイルのファイル名“filename”を通知する。
【0094】
データ制御部23は、上記の通り、呼び出し元のブランドアプリケーション25のアプリケーションID(本例では“a1”となる)を用いて、上記の通り不正チェックを行うが、不正がないと判定して記憶装置12へのアクセスを行う際に、データファイルのパス情報の生成を行う。
【0095】
すなわち、呼び出し元のブランドアプリケーション25のアプリケーションIDを用いて、図5のアプリケーション管理情報テーブル40を検索して、該当するレコードのルートパス45を取得する。これより、上記ブランドアプリケーションAの例では、ルートパス“C:/appl/brand_a/”が取得される。そして、取得したルートパスと通知されたファイル名とを用いてパス変換を実施する。すなわち、上記“C:/appl/brand_a/”と“filename”とを合わせて、実際にアクセスするファイルは“C:/appl/brand_a/filename”としてパス変換を実施する(実行ファイルパスを生成することと同様)。
【0096】
データ制御部23は、上記生成した実行ファイルパスを用いて、記憶装置12に対するファイルアクセス処理を実行する。従って、各ブランドアプリケーション25は、自ブランドのファイルだけしかアクセスできない。例えば、ブランドアプリケーションBに関して、同名のファイル(ファイル名“filename”のファイル)が存在したとしても、ブランドアプリケーションBからの“filename”へのアクセス要求に対して、データ制御部23は今度は実行ファイルパス“C:/appl/brand_b/filename”を生成することになるので、フォルダ“brand_a”内の“filename”にアクセスされることはない。
【0097】
また、任意の正当なアプリケーション(仮にブランドアプリケーションBとする)が、不正アクセスを試みても、アクセス出来ない。すなわち、予めブランドアプリケーションBのブランド会社側で、何らかの方法で図4に示すファイル構成を取得して、これに基づいてブランドアプリケーションB内に例えばブランドアプリケーションAのファイルにアクセスする処理を含めたとする。すなわち、上記のようにファイル名だけ指定するのではなく、パス情報も含めて、“C:/appl/brand_a/filename”と指定するようにプログラムしたものとする。
【0098】
この場合でも、データ制御部23は、この“C:/appl/brand_a/filename”をファイル名として扱って上記処理を行うので、実行ファイルパス=“C:/appl/brand_b/filename/ C:/appl/brand_a/filename”というような意味不明の情報が生成されるだけである。よって、ブランドアプリケーションBがブランドアプリケーションAのファイルにアクセスすることはできない。
【0099】
上記のように、本例の決済端末10では、各ブランドアプリケーション25が、そのアプリケーションの実行ファイルの格納フォルダ以下のファイルだけしかアクセスできないように、制限をかけることが出来る。すなわち、各ブランドアプリケーションが、他のブランドアプリケーションのファイルにアクセス出来ないように、制限を掛けることができる。
【0100】
尚、本例では各ブランドアプリケーションからのR/W通信機能の利用、データ処理機能の利用について記述したが、もちろんその他の物理的に接続されているデバイス(LCDやLCDの表示装置、各種記憶装置、スイッチなどの入力装置)やソフトウェアで作成され、フレームワークで提供される各機能を同様にアクセス制限をかけることができる。
【0101】
ここで、上記ブランドアプリケーションのモジュール化について、図9(a)、(b)を参照して説明する。
図9(a)は従来の主制御部の機能ブロック図である。上記の通り、従来では、その決済端末で扱う全ての電子マネーブランドに関わる処理を、ひとつのプログラム上で実現していた。ここでは、仮に、ブランドAとブランドBを扱う決済端末を例にする。
【0102】
この例では、ひとつのプログラム上に、ブランドAとブランドBのアプリケーションが存在することになる。但し、図示の通り、ブランドAとブランドBの両方とも、そのアプリケーションが機能別に分離されており、且つ各機能毎に両ブランドがまとまっている。
【0103】
すなわち、各ブランドのアプリケーションの機能は、例えば図示のように、コマンド処理部(データ制御含む)110、センタ通信部120、ICカードR/W部130の各機能毎のモジュールに分けられている。そして、図示の通り、各機能部110,120,130毎に、ブランドAとブランドBの両方のアプリケーションが存在している。尚、「ひとつのプログラム」の機能としては更に主局通信処理部100があるが、これはブランド毎ではなく、共通の機能となる。
【0104】
主局通信処理部100は、通信制御部(対主局)13を制御して主局1(上位端末)との通信を行って、例えば主局1(上位端末)から任意のコマンド(指示)を受けると、これをコマンド処理部110に渡す。
【0105】
コマンド処理部110は、例えば上記上位端末からの指示を受けると、この指示を解釈して、この指示に応じた処理を実行する。例えば、ICカード決済処理を実行し、決済結果(取引情報)を記憶装置12に格納する為の処理を実行する。但し、その際、ICカード決済処理の為のICカードとの通信処理は、ICカードR/W部130に依頼して実行させる。これは、例えばブランドAのICカード決済処理を指示された場合には、コマンド処理部110、ICカードR/W部130それぞれにおいてブランドAのアプリケーションが実行されることになる。
【0106】
尚、例えば図示のコマンド処理部110内の「ブランドA」111は、ブランドAに関するコマンド処理部の処理を実行するアプリケーションを意味する。他も同様である。
上記従来の構成では、例えばコマンド処理部110を例にすると、これは「ブランドA」111と「ブランドB」112とを有している。つまり、このコマンド処理部110のアプリケーションは“「ブランドA」111+「ブランドB」112”となっている。
【0107】
ここで、例えば仮に過去には「ブランドA」111のみのアプリケーションと、「ブランドB」112のみのアプリケーションとだけがあったが、後からブランドAとBの両方に対応可能としたい為に、“「ブランドA」111+「ブランドB」112”を作成したとした場合、「ブランドA」111のみのアプリケーション、「ブランドB」112のみのアプリケーションそれぞれの動作については、過去に検証を行って問題ないことを確認していたとしても、“「ブランドA」111+「ブランドB」112”のアプリケーションも問題なく動作するとは限らなかった。
【0108】
この為、従来では“「ブランドA」111+「ブランドB」112”のアプリケーションを作成後、それが問題なく動作することを検証する作業が必要であった。この様に、従来では、逐一各パターン毎(上記の例では7パターン)のアプリケーションを作成する手間が掛かるだけでなく、それが問題なく動作することを確認する為の手間が掛かっていた。
【0109】
一方、本例の上記ブランドアプリケーション25(ここでは一例として、ブランドアプリケーションA,B)は、図9(b)に示すように、上記の各種機能が各ブランド別にモジュール化されたものとなっている。
【0110】
例えば、ブランドアプリケーションAは、図9(a)に示すブランドAに関する各種機能部のアプリケーションがまとめられている(モジュール化されている)。すなわち、ブランドアプリケーションAは、図9(a)に示すブランドA111、ブランドA121、ブランドA131を全て有する。同様に、ブランドアプリケーションBは、図9(a)に示すブランドB112、ブランドB122、ブランドB132を全て有する。
【0111】
つまり、本構成では、ICカード決済処理、決済データ(取引明細等)記憶処理、センタへのデータ送信処理等の、電子マネーを用いるキャッシュレス決済に係わる各種処理を行うアプリケーションが、各ブランド別(電子マネー種別別;ICカードの種類別)に個別に独立したモジュール化されたアプリケーションとなっている。よって、上記各ブランドアプリケーション25を「各ブランド別(電子マネー種別別;ICカードの種類別)の独立したアプリケーションモジュール」または「各種ICカードそれぞれに対応するアプリケーションモジュール」等と呼ぶものとする。
【0112】
ここで、従来ではブランドA,B,Cに対応する7つのパターンが必要である旨説明したが、ここでは簡単の為、ブランドA,Bに対応する場合を例にすると、この場合は、“Aのみ”、“Bのみ”、“A+B”の3つのパターンが考えられる。この場合、図9(a)に示す例は、“A+B”に対応する「1つのプログラム」に相当することになるが、他の2つのパターンについても各々「1つのプログラム」を作成する必要がある。すなわち、各機能部110,120,130それぞれがブランドA111、ブランドA121、ブランドA131のみを有する「1つのプログラム」と、各機能部110,120,130それぞれがブランドB112、ブランドB122、ブランドB132のみを有する「1つのプログラム」とを作成する必要がある。
【0113】
一方、図9(b)に示す本例の場合には、図示の各ブランドアプリケーションA,Bを予め用意しておけば、後は各店舗毎(各端末10毎)に後述する図3の搭載アプリケーション情報テーブル30の設定を行うことで、上記3つのパターンの何れにも対応できる。
【0114】
尚、例えば図9(a)におけるブランドA111と図9(b)におけるブランドA111とは、全く同じとは限らないが、その処理機能自体は同様である。
尚、上記モジュール化した各ブランドアプリケーション25は、仮想メモリ空間を使ってデータにアクセスしているので(OSが制御する)、任意のアプリケーションの動作が他のアプリケーション(そのデータ等)に影響を及ぼすことはない。つまり、ファイアウォールを築けることになる。
【0115】
以上説明したように、本例のICカード決済端末10では、まず、複数のブランド(複数種類の電子マネー;複数種類のICカード)それぞれに対応する、各ブランド別の独立したアプリケーションモジュール(各ブランドアプリケーションA,B,C等)が、予め生成されて記憶されている。そして、フレームワーク20は、これら複数のアプリケーションモジュールのうち、テーブル30に登録されているものだけを起動する。これより、テーブル30の設定を変えるだけで(アプリケーション登録の追加、削除等)、各端末10毎に、その端末10で対応する1つのブランドまたは複数のブランドの組み合わせを、容易に設定/変更することが可能となる(特徴1)。
【0116】
更に、フレームワーク20は、上記アプリケーションモジュール起動の際には、テーブル30の情報と予め決められている所定のルールとに従って、実行ファイルパスを生成し、この実行ファイルパスを用いて起動を試みる。もし、不正なアプリケーションが入り込んでおり且つその情報が不正にテーブル30に記憶されていても、上記所定のルールを知らない限り、このアプリケーションは起動されない(特徴2)。
【0117】
更に、フレームワーク20は、起動できたアプリケーションモジュールに対してコネクションを確立するので、フレームワーク20の制御に依らずに勝手に起動したアプリケーションモジュールがあったとしても、フレームワーク20とのコネクションが無いことになる(特徴3)。
【0118】
更に、フレームワーク20は、任意のアプリケーションモジュール25からの要求に応じて、記憶装置12へのデータアクセス制御や、外部装置(主局1やセンタサーバ2)への通信制御や、ICカード3との通信制御を実行するが、テーブル40に登録されていないアプリケーションモジュール、すなわち上記起動が行われていないアプリケーションモジュールからの要求があった場合には、この要求を拒否する。例えば、不正なアプリケーションモジュールから要求があっても、これはテーブル40には登録されていないので、要求を拒否することになる。よって、不正なアプリケーションモジュールは、少なくともフレームワーク20を介して実行する処理、すなわち記憶装置12へのデータアクセス制御や、外部装置(主局1やセンタサーバ2)への通信制御や、ICカード3との通信制御は、実質的に行えないことになる(特徴4)。
【0119】
フレームワーク20は、アプリケーションモジュールからの要求に応じて記憶装置12へのデータアクセス制御を行う際、上記起動時に登録した上記実行ファイルパスのパス情報(上記ルートパス等)を用いて、要求されたデータファイルにアクセスするので、各アプリケーションモジュールは、自己のデータファイルにしかアクセスできない。つまり、例えば正当なアプリケーションモジュールが、他のアプリケーションモジュールのデータにアクセスしようとしても、出来ない。勿論、不正なアプリケーションは、何等データにはアクセスできない(特徴5)。
【0120】
本発明は、上記特徴1のみでも成立するし、特徴1を含む任意の2以上の組み合わせによっても成立する。つまり、この組み合わせに関しては、特徴1+特徴2、特徴1+特徴3、特徴1+特徴4、特徴1+特徴5、特徴1+特徴2+特徴3、特徴1+特徴2+特徴4、特徴1+特徴2+特徴5、特徴1+特徴2+特徴3+特徴4、特徴1+特徴2+特徴3+特徴4+特徴5が成立し得る。
【図面の簡単な説明】
【0121】
【図1】(a)、(b)は、本例のICカード決済端末の構成例を示す図である。
【図2】フレームワークの起動処理のフローチャート図である。
【図3】搭載アプリケーション情報テーブルの一例を示す図である。
【図4】各ブランドアプリケーションの格納形式を示す図である。
【図5】アプリケーション管理情報テーブルの一例を示す図である。
【図6】(a)は各ブランドアプリケーションの通常起動処理、(b)はこれに伴うフレームワークの処理のフローチャート図である。
【図7】通常処理のフローチャート図である。
【図8】不正チェック処理のフローチャート図である。
【図9】(a)は従来の主制御部の機能ブロック図、(b)は本例のアプリケーションモジュールの構成を示す図である。
【符号の説明】
【0122】
1 主局(上位コントローラ)
2 センタサーバ
3 ICカード
10 ICカード決済端末
11 主制御部
12 記憶装置
13 通信制御部(対主局)
14 通信制御部(対センタ)
15 通信制御部(対カード)
20 フレームワーク
21 アプリケーション管理部
22 上位通信制御部
23 データ制御部
24 R/W通信制御部
25 ブランドアプリケーション
30 搭載アプリケーション情報テーブル
31 アプリケーションNo.
32 アプリケーション名称
33 サービス種別
34 動作パラメータ
40 アプリケーション管理情報テーブル
41 アプリケーションNo.
42 アプリケーションID
43 サービス種別
44 フレームワーク−アプリケーション間通信ポート番号
45 ルートパス

【特許請求の範囲】
【請求項1】
複数種類のICカードに対応可能なICカード決済端末であって、
前記各種ICカードそれぞれに対応して、そのICカードに対応する処理を実行する各種アプリケーションモジュールを記憶するアプリケーションモジュール記憶部と、
該各種アプリケーションモジュールを管理・制御すると共に、前記アプリケーションモジュールからの要求に応じて、記憶装置へのデータアクセス制御または外部装置への通信制御あるいはICカードとの通信制御を実行する共通処理部とを有し、
前記共通処理部は、
予め前記各種アプリケーションモジュールのうちの任意の1以上のアプリケーションモジュールに関する登録情報を記憶しておく登録情報記憶手段と、
初期処理として、前記各種アプリケーションモジュールのうち、前記登録情報記憶手段に登録されているアプリケーションモジュールを起動するアプリケーションモジュール管理手段と、
起動したアプリケーションモジュールの管理情報を記憶する起動アプリケーション管理情報記憶手段と、
を有することを特徴とするICカード決済端末。
【請求項2】
前記アプリケーションモジュール管理手段は、前記登録情報に基づいてパス情報を生成し、該パス情報を用いてアプリケーションモジュールを起動し、該起動成功した場合には、該起動したアプリケーションモジュールに対してコネクション確立すると共に、該起動したアプリケーションモジュールに関する管理情報を、前記起動アプリケーション管理情報記憶手段に記憶することを特徴とする請求項1記載のICカード決済端末。
【請求項3】
前記登録情報には前記アプリケーションモジュールの名称が含まれており、
前記各種アプリケーションモジュールは、予め、その名称と予め決められた所定のルールとに基づいて決定される格納場所に格納されており、
前記アプリケーションモジュール管理手段は、前記登録情報に含まれる名称と前記所定のルールとに基づいて、そのアプリケーションモジュールの格納場所を示す前記パス情報を生成することを特徴とする請求項2記載のICカード決済端末。
【請求項4】
前記共通処理部は、任意の前記アプリケーションモジュールからの任意の要求に応じて、前記記憶装置へのデータアクセス制御または外部装置への通信制御あるいはICカードとの通信制御を実行する際に、該要求元のアプリケーションモジュールに関する前記管理情報が前記起動アプリケーション管理情報記憶手段に記憶されているか否かをチェックし、記憶されていない場合には該要求を拒否することを特徴とする請求項1〜3の何れかに記載のICカード決済端末。
【請求項5】
前記共通処理部は、前記アプリケーションモジュールからの要求に応じて前記記憶装置へのデータアクセス制御を行う場合、該要求に含まれるアクセス対象のデータファイルの名称と、前記起動アプリケーション管理情報記憶手段に記憶されている前記パス情報とを用いて、該データファイルにアクセスする為のファイルパスを生成し、該ファイルパスを用いて前記アクセス対象のデータファイルにアクセスすることを特徴とする請求項2または3記載のICカード決済端末。
【請求項6】
複数種類のICカードに対応可能なICカード決済端末の制御装置であって、
前記各種ICカードそれぞれに対応して、そのICカードに対応する処理を実行する各種アプリケーションモジュールを記憶するアプリケーションモジュール記憶部と、
該各種アプリケーションモジュールを管理・制御すると共に、前記アプリケーションモジュールからの要求に応じて、記憶装置へのデータアクセス制御または外部装置への通信制御あるいはICカードとの通信制御を実行する共通処理部とを有し、
前記共通処理部は、
予め前記各種アプリケーションモジュールのうちの任意の1以上のアプリケーションモジュールに関する登録情報を記憶しておく登録情報記憶手段と、
初期処理として、前記各種アプリケーションモジュールのうち、前記登録情報記憶手段に登録されているアプリケーションモジュールを起動するアプリケーションモジュール管理手段と、
起動したアプリケーションモジュールの管理情報を記憶する起動アプリケーション管理情報記憶手段と、
を有することを特徴とするICカード決済端末の制御装置。
【請求項7】
複数種類のICカードに対応可能なICカード決済端末のコンピュータを、
前記各種ICカードそれぞれに対応して、そのICカードに対応する処理を実行する各種アプリケーションモジュールを記憶するアプリケーションモジュール記憶部と、
該各種アプリケーションモジュールを管理・制御すると共に、前記アプリケーションモジュールからの要求に応じて、記憶装置へのデータアクセス制御または外部装置への通信制御あるいはICカードとの通信制御を実行する共通処理部と、
前記共通処理部における、予め前記各種アプリケーションモジュールのうちの任意の1以上のアプリケーションモジュールに関する登録情報を記憶しておく登録情報記憶手段と、初期処理として、前記各種アプリケーションモジュールのうち、前記登録情報記憶手段に登録されているアプリケーションモジュールを起動するアプリケーションモジュール管理手段と、起動したアプリケーションモジュールの管理情報を記憶する起動アプリケーション管理情報記憶手段、
として機能させる為のプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2010−122806(P2010−122806A)
【公開日】平成22年6月3日(2010.6.3)
【国際特許分類】
【出願番号】特願2008−294580(P2008−294580)
【出願日】平成20年11月18日(2008.11.18)
【出願人】(000237710)富士電機リテイルシステムズ株式会社 (1,851)
【Fターム(参考)】