JP4747450B2 - Portable information processing device - Google Patents

Portable information processing device Download PDF

Info

Publication number
JP4747450B2
JP4747450B2 JP2001212023A JP2001212023A JP4747450B2 JP 4747450 B2 JP4747450 B2 JP 4747450B2 JP 2001212023 A JP2001212023 A JP 2001212023A JP 2001212023 A JP2001212023 A JP 2001212023A JP 4747450 B2 JP4747450 B2 JP 4747450B2
Authority
JP
Japan
Prior art keywords
command
application
program
area
given
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.)
Expired - Fee Related
Application number
JP2001212023A
Other languages
Japanese (ja)
Other versions
JP2003030609A (en
Inventor
哲夫 神力
和義 入澤
直人 柴田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dai Nippon Printing Co Ltd
Original Assignee
Dai Nippon Printing Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Dai Nippon Printing Co Ltd filed Critical Dai Nippon Printing Co Ltd
Priority to JP2001212023A priority Critical patent/JP4747450B2/en
Publication of JP2003030609A publication Critical patent/JP2003030609A/en
Application granted granted Critical
Publication of JP4747450B2 publication Critical patent/JP4747450B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
本発明は、ICカードのような携帯型情報処理装置に関し、特に、携帯時には単体として持ち運びされ、アクセス時には外部装置から与えた所定のコマンドに対して所定のレスポンスが返されるように構成された携帯型情報処理装置に関する。
【0002】
【従来の技術】
電子機器の小型化が進むに従って、一般社会における携帯型情報処理装置の担う役割も益々重要になってきている。特に、小型の携帯型情報処理装置の代表とも言うべきICカードは、近年、様々な分野において実用化されてきており、今後も広く普及するものと予想される。このICカードのような携帯型情報処理装置は、通常は、身体あるいは車両などに伴って携帯され、必要に応じて、パソコンなどに接続されたリーダライタ装置と交信させることによって、外部からのアクセスが可能になる。
【0003】
現在、一般に普及しているICカードは、CPUを内蔵したタイプのものであり、内部メモリへのアクセスは、内蔵されたCPUを介してのみ可能となっている。このため、実用上十分なセキュリティが確保されている。一般に、ICカードと外部装置との間のやりとりは、外部装置側からICカードに対してコマンドを送信し、このコマンドに対する返事として、ICカードから外部装置に対してレスポンスを送信する、というプロセスを繰り返すことによって実行される。ICカード内には、通常、情報処理装置としての基本的な機能を統括制御するためのOSプログラムと、このOSプログラムの管理下で実行されるアプリケーションプログラムとが用意される。OSプログラムもアプリケーションプログラムも、外部装置から与えられたコマンドに基づいて何らかの処理を実行し、何らかのレスポンスを返す処理を行うプログラムであるという点では共通する。
【0004】
最近は、ICカードに内蔵されるメモリの記憶容量も増加してきており、OSプログラムの他に、複数のアプリケーションプログラムが格納されたICカードも広く利用されるようになってきている。また、このようなアプリケーションプログラムをEEPROMなどの書き込み可能な不揮発性メモリに格納できるようにしておき、必要なアプリケーションプログラムを後から追加インストールするような利用形態も普及してきている。このように、複数のアプリケーションプログラムが用意されたICカードに対して、コマンドを与えて何らかの処理を実行させる場合、予め、当該ICカードに対してアプリケーション選択コマンドを与えて特定のアプリケーションを準備状態にする処理が実行される。一般に、アプリケーション選択コマンドによって準備状態となったアプリケーションは、「カレントアプリケーション」と呼ばれている。外部装置側から与えられるアプリケーション用の実行コマンドは、OSプログラムによって、その時点で「カレントアプリケーション」として準備状態になっているアプリケーションプログラムに引き渡されて実行される。
【0005】
【発明が解決しようとする課題】
上述したように、ICカード内に複数のアプリケーションプログラムをインストールしておくことにより、1枚のICカードを種々の用途に利用することができる。また、必要に応じて、新たなアプリケーションプログラムを追加インストールすることも可能であるため、新たな用途を追加することもできる。しかしながら、従来のICカードでは、既にインストールされているアプリケーションプログラムに、付加的な機能を追加することは困難である。これは、1つのアプリケーションプログラムをインストールすると、当該アプリケーションのためのプログラム領域、データ領域などがメモリ上に確定するため、新たな機能のためのルーチンを付加することが困難になるためである。したがって、従来のICカードでは、1つのアプリケーションに付加機能を追加する必要が生じた場合、アプリケーションプログラムごと新規なプログラムに入れ替えざるを得ず、大掛かりな改訂作業が必要になる。
【0006】
そこで本発明は、複数のアプリケーションプログラムを格納した携帯型情報処理装置において、特定のアプリケーションについて、新機能を容易に追加することができる新規な構成を提供することを目的とする。
【0007】
【課題を解決するための手段】
(1) 本発明の第1の態様は、携帯時には単体として持ち運びされ、アクセス時には外部装置から与えた所定のコマンドに対して所定のレスポンスが返されるように構成された携帯型情報処理装置において、
OSプログラムが記録された第1の領域と、複数のアプリケーションプログラムが記録された第2の領域と、データを格納する第3の領域と、作業領域として用いられる第4の領域と、複数のアプリケーションプログラムの中から選択されたカレントアプリケーションを指定するカレントアプリケーション指定情報を格納する第5の領域と、複数のアプリケーションプログラムに跨がった複数のルーチンを所定の順序で実行すべきことを示す連続実行規則を格納する第6の領域と、を有する記憶手段と、
OSプログラムの管理下でアプリケーションプログラムを実行する演算処理手段と、
外部装置から与えられたコマンドを受信して演算処理手段に引き渡すとともに、演算処理手段から与えられたレスポンスを外部装置へ送信する処理を行う送受信手段と、
を設け、演算処理手段は、
カレントアプリケーションを指定するためのアプリケーション選択コマンドが与えられたとき、または、OSプログラムの指示により特定のカレントアプリケーションが指定されたときに、該カレントアプリケーションを示すカレントアプリケーション指定情報を第5の領域に格納する処理を行い、
単一アプリケーション用実行コマンドが与えられたときに、第5の領域に格納されているカレントアプリケーション指定情報によって、その時点においてカレントアプリケーションとして指定されているアプリケーションプログラムに基づいて、与えられたコマンドを実行する処理を行い、
複数アプリケーション用連続実行コマンドが与えられたときに、第6の領域に格納されている連続実行規則に基づいて、複数のルーチンを所定の順序で実行する処理を行う機能を有するようにし、
別なアプリケーションプログラムのルーチンを利用することにより、付加的な機能を実現できるようにしたものである。
【0008】
(2) 本発明の第2の態様は、上述の第1の態様に係る携帯型情報処理装置において、
連続実行規則として、第1のルーチンの実行後に第2のルーチンを実行すべき旨の順序を示す規則に加えて、第1のルーチンの実行により生成されるパラメータを、第2のルーチンに引き渡す旨の規則を用いるようにしたものである。
【0009】
(3) 本発明の第3の態様は、上述の第2の態様に係る携帯型情報処理装置において、
連続実行規則として、第2のルーチンとなるべき複数の候補を定め、第1のルーチンの実行により生成されるパラメータに基づいて、複数の候補の中の1つのルーチンを第2のルーチンとして選択しこれを実行すべき旨の規則を用いるようにしたものである。
【0010】
(4) 本発明の第4の態様は、上述の第1〜第3の態様に係る携帯型情報処理装置において、
演算処理手段が、送受信手段から単一アプリケーション用実行コマンドまたは複数アプリケーション用連続実行コマンドが与えられたときに、両者を区別せずに、その時点においてカレントアプリケーションとして指定されているアプリケーションプログラムに基づいて、与えられたコマンドの実行を試みる処理を行い、エラーが生じた場合には、与えられたコマンドを複数アプリケーション用連続実行コマンドと認識して、連続実行規則に基づく処理を実行するようにしたものである。
【0011】
(5) 本発明の第5の態様は、上述の第1〜第4の態様に係る携帯型情報処理装置において、
第6の領域に複数の連続実行規則を格納するようにし、演算処理手段が、与えられた複数アプリケーション用連続実行コマンドに対応した連続実行規則に基づいて、複数のルーチンを所定の順序で実行する処理を行うことをができるようにしたものである。
【0012】
(6) 本発明の第6の態様は、上述の第5の態様に係る携帯型情報処理装置において、
演算処理手段が、新たな連続実行規則を含む連続実行規則追加コマンドが与えられたときに、第6の領域に新たな連続実行規則を格納する処理を行うことができるようにしたものである。
【0013】
【発明の実施の形態】
以下、本発明を図示する実施形態に基づいて説明する。図1は、本発明の一実施形態に係る携帯型情報処理装置(具体的には、ICカード)100の構成を示すブロック図である。この携帯型情報処理装置100は、携帯時には単体として持ち運びされ、アクセス時には外部装置(具体的には、リーダライタ装置)200に接続される。この外部装置200から所定のコマンドを与えると、携帯型情報処理装置100内部において所定の処理が実施され、その結果がレスポンスとして外部装置200へと返される。
【0014】
携帯型情報処理装置100の基本構成要素は、図示のとおり、記憶手段110、演算処理手段120、送受信手段130である。記憶手段110には、種々のプログラムやデータが記録される。演算処理手段120は、この記憶手段110内のプログラムに基づいて、外部装置200から与えられるコマンドを実行する。外部装置200に対する送受信処理は、送受信手段130によって行われる。送受信手段130と外部装置200との間の交信は、物理的に電極を接触させて電気信号をやりとりする接触方式で行ってもよいし、電磁的な信号路を形成して情報をやりとりする非接触方式で行ってもよい。外部装置200から与えられたコマンドは、送受信手段130で受信され、演算処理手段120によって実行される。コマンドの実行後、演算処理手段120から何らかのレスポンスが出力され、送受信手段130によって外部装置200へと送信される。このように、携帯型情報処理装置100と外部装置200との間の交信は、外部装置200からのコマンド送信と携帯型情報処理装置100からのレスポンス送信を交互に繰り返すことにより行われる。
【0015】
記憶手段110内には、図示のとおり、6つの領域が設けられている。第1の領域M1には、この携帯型情報処理装置100による処理動作を統括管理するためのOSプログラムが格納されている。演算処理手段120は、基本的には、このOSプログラムの管理下で種々の処理を実行することになる。第2の領域M2には、複数のアプリケーションプログラムが格納されている。図では、具体的に、5種類のアプリケーションプログラムA〜Eが用意されている例が示されている。通常、これらの各アプリケーションプログラムは、それぞれ異なる用途に利用されるプログラムになる。たとえば、プログラムAは、このICカードを病院用診察カードとして利用するための処理を行うプログラムであり、プログラムBは、このICカードをクレジットカードとして利用するための処理を行うプログラムであり、プログラムCは、このICカードを図書館用貸出カードとして利用するための処理を行うプログラムであり、…といった具合である。
【0016】
第3の領域M3には、データが格納されている。このデータは、OSプログラムや各アプリケーションプログラムが利用するためのデータであり、複数のプログラムから共通して利用されるデータもあれば、個々のアプリケーションプログラムに固有のデータもある。なお、実用上は、特定のアプリケーションプログラムに固有のデータは、当該アプリケーションプログラムの格納領域に隣接した領域に格納するのが一般的であるが、ここでは便宜上、いずれのアプリケーションで用いられるデータも、第3の領域M3内に格納されるものとして以下の説明を行う。また、第4の領域M4は、演算処理手段120が種々の演算処理を行う上での作業領域として利用される領域であり、第5の領域M5は、カレントアプリケーション指定情報を格納するための領域である。ここで、「カレントアプリケーション」とは、第2の領域M2に格納されている複数のアプリケーションプログラムA〜Eの中から選択された1つのアプリケーションであり、「現時点で選択されているアプリケーション」ということになる。外部装置200から与えられたコマンドは、原則的に(後述するように、単一アプリケーション用実行コマンドである限りは)、この「カレントアプリケーション」によって実行される。なお、この第5の領域M5は、第4の領域M4の一部として取り扱うことも可能であるが、本発明においては重要な構成要素であるため、ここでは「カレントアプリケーション指定情報」を格納するための専用の領域として、第5の領域M5を定義することにする。
【0017】
上述した第1の領域M1〜第5の領域M5は、従来のICカードにおいても利用されている領域である。本発明の特徴は、更に、第6の領域M6を設け、ここに連続実行規則R1〜R3を格納するようにし、第2の領域M2内に用意されている複数のアプリケーションプログラムに跨がった複数のルーチンを実行できるようにした点にある。ここで、連続実行規則R1〜R3は、後に詳述するように、それぞれ複数のアプリケーションプログラムに跨がった複数のルーチンを所定の順序で実行すべきことを示す規則であり、演算処理手段120は、この連続実行規則に基づいて、外部から与えられたコマンドを複数のアプリケーションに処理させることができる。
【0018】
なお、図1に示す実施形態では、記憶手段110を1つのブロックで示しているが、実際には、ICカード内にはROM,EEPROMなどの不揮発性メモリと、RAMなどの揮発性メモリとが内蔵されており、各領域M1〜M6は、これら複数のメモリに適宜分散して設けられている。この実施形態では、OSプログラムを格納する第1の領域M1はROM内に設けられている(一部は、EEPROM内に設けて書き替えができるようにしてもよい)。また、作業領域として利用される第4の領域M4およびカレントアプリケーション指定情報を格納する第5の領域M5は、RAM内に設けられている。このICカードでは、電力はすべて外部装置200側から供給されるので、外部装置200との交信が完了し、外部装置200が切り離されると、第4の領域M4および第5の領域M5の内容はすべて失われることになる。一方、アプリケーションプログラムを格納する第2の領域M2、データを格納する第3の領域M3、連続実行規則を格納する第6の領域M6は、いずれもEEPROM内に設けられている。したがって、これらの情報は、外部装置200が切り離された後もそのまま保持されることになる。また、EEPROMは書換えや追加書込が可能であるため、アプリケーションプログラム、データ、連続実行規則は、いずれも修正したり追加したりすることができる。
【0019】
演算処理手段120は、ICカード用のCPUから構成されており、OSプログラムの管理下で、アプリケーションプログラムA〜Eを実行する機能を有している。上述したように、外部装置200から与えられたコマンドは、送受信手段130を介して演算処理手段120に引き渡される。一般に、コマンドは、OSプログラムに実行させるためのコマンド(以下、OSプログラム用実行コマンドという)と、アプリケーションプログラムに実行させるためのコマンド(以下、アプリケーション用実行コマンドという)とに分類できる。いずれの種類のコマンドであるかは、通常、コマンド名の部分で認識する。演算処理手段120は、与えられたコマンドがOSプログラム用実行コマンドであった場合には、第1の領域M1内のOSプログラムに基づいてこれを実行し、与えられたコマンドがアプリケーション用実行コマンドであった場合には、第2の領域M2内のアプリケーションプログラムに基づいてこれを実行する。第2の領域M2内には、複数のアプリケーションプログラムA〜Eが格納されているが、このうちの1つが、第5の領域M5に格納されているカレントアプリケーション指定情報によって、カレントアプリケーションとして指定されており、与えられたアプリケーション用実行コマンドは、カレントアプリケーションによって実行されることになる。
【0020】
このように、従来のICカードの場合、アプリケーション用実行コマンドは、現時点でカレントアプリケーションとして指定されているアプリケーションプログラムによって実行されることを前提としたコマンドであり、単一のアプリケーションプログラムを前提としたコマンドとなっている。たとえば、アプリケーションプログラムAがカレントアプリケーションとして指定されていた場合、外部装置200からは、このアプリケーションプログラムAが解釈実行可能なアプリケーション用実行コマンドを与える必要がある。別言すれば、アプリケーションプログラムAをカレントアプリケーションとして指定している状態では、アプリケーションプログラムAが解釈実行可能なアプリケーション用実行コマンド以外は実行することができないことになる。
【0021】
本発明の基本的な着眼点は、アプリケーションプログラムAがカレントアプリケーションとして指定されている状態であっても、たとえば、アプリケーションプログラムB内のルーチンを利用した処理を行うことができれば、実質的に、アプリケーションプログラムAの機能を拡張させることができるであろう、という技術思想に基づくものである。このように、複数のアプリケーション間を跨がうようにしてコマンドを処理することができれば、単一のアプリケーションでは対応できないような仕事を、複数のアプリケーションの連携動作により処理することが可能になる。
【0022】
たとえば、アプリケーションプログラムAが、このICカードを病院用診察カードとして利用するための処理を行うプログラムであったとしよう。ここで、病院に設置された外部装置200を用いて、このICカードを病院用診察カードとして利用する場合を考えると、当然、アプリケーションプログラムAがカレントアプリケーションとして指定され、プログラムAに基づいて診療のための種々の処理が実行されることになる。そして、たまたま診療会計処理を行う必要が生じたが、アプリケーションプログラムA自身には、1か月間の医療費を集計する機能が備わっていなかったとする。この場合、従来のICカードでは、このような1か月間の医療費の集計処理を、ICカード内部で実行させることはできない。ところが本発明に係るICカードでは、このような集計機能を搭載したアプリケーションプログラムBを追加インストールし、1ヶ月間の医療費を集計する処理については、このアプリケーションプログラムB内のルーチンを利用するような連続実行規則を用意すれば、ICカード内での集計処理が可能になる。このような方法をとれば、あたかもアプリケーションプログラムAの機能を拡張したような取り扱いが可能になる。
【0023】
このような処理を実現するために、本発明では、アプリケーションプログラムに実行させるべきコマンドに、2通りのコマンドを用意している。第1のコマンドは、従来どおり、カレントアプリケーションとして指定されている単一のアプリケーションによって実行させるべきコマンドであり、ここでは「単一アプリケーション用実行コマンド」と呼ぶことにする。一方、第2のコマンドは、本発明に特有のコマンドであり、カレントアプリケーションとして指定されているアプリケーション以外のアプリケーションプログラムのルーチンを利用して実行させるべきコマンドであり、ここでは「複数アプリケーション用連続実行コマンド」と呼ぶことにする。上述の例の場合、1か月間の医療費を集計する処理は、カレントアプリケーションとして指定されているアプリケーションプログラムAと、これとは別なアプリケーションプログラムBとを連続的に(処理途中でレスポンスを発生させることなしに)実行させる「複数アプリケーション用連続実行コマンド」を与えることにより実現できるようになる。
【0024】
結局、本発明に係るICカードに対しては、図2に示すような3つのタイプのコマンドを与えることができる。すなわち、「OSプログラム用実行コマンド」、「単一アプリケーション用実行コマンド」、「複数アプリケーション用連続実行コマンド」の3つのタイプのコマンドである。
【0025】
ここで、「OSプログラム用実行コマンド」は、OSプログラムによって実行されるコマンドであり、たとえば、図2に示すように、「アプリケーション選択コマンド」、「アプリケーション追加コマンド」、「連続実行規則追加コマンド」のようなコマンドが用意される(実際には、この他にも種々のコマンドが用意される)。「アプリケーション選択コマンド」は、カレントアプリケーションを指定するためのコマンドであり、たとえば「SELECT−APPLICATION PROG−A」のように、コマンド名(SELECT−APPLICATION)と、特定のアプリケーションを指定する情報(PROG−A)をもったコマンドになる。演算処理手段120は、このような「アプリケーション選択コマンド」が与えられると、OSプログラムに基づいて、指定されたアプリケーションプログラムをカレントアプリケーションとして示す「カレントアプリケーション指定情報」を第5の領域M5に書き込む処理を実行する。上述した例のように、「SELECT−APPLICATION PROG−A」なるコマンドが与えられた場合、第5の領域M5には、「アプリケーションプログラムA」がカレントアプリケーションである旨の指定情報(たとえば、「PROG−A」なるデータ)が書き込まれることになる。
【0026】
なお、第5の領域M5への「カレントアプリケーション指定情報」の書込処理は、「アプリケーション選択コマンド」が与えられた場合だけでなく、OSプログラムの指示により特定のカレントアプリケーションが指定されたときにも実行される。具体的には、OSプログラムの起動時に、デフォルト指定された特定のアプリケーションプログラムが、カレントアプリケーションとして自動的に指定され、当該デフォルトのアプリケーションプログラムを指定する「カレントアプリケーション指定情報」が第5の領域M5に書き込まれる。
【0027】
一方、「アプリケーション追加コマンド」および「連続実行規則追加コマンド」も、OSプログラムによって実行されるべき「OSプログラム用実行コマンド」である。「アプリケーション追加コマンド」は、第2の領域M2に新たなアプリケーションプログラムを追加書込するためのコマンドであり、コマンド名に後続して、当該プログラムのオブジェクトコードが外部装置200側から与えられることになる。演算処理手段120は、OSプログラムに基づいて、与えられた新規アプリケーションのオブジェクトコードを、第2の領域M2(通常は、EEPROMからなる領域)へ書き込む処理を実行する。また、「連続実行規則追加コマンド」は、第6の領域M6に新たな連続実行規則を追加書込するためのコマンドであり、コマンド名に後続して、当該連続実行規則を示すコードが外部装置200側から与えられることになる。演算処理手段120は、OSプログラムに基づいて、与えられた新規規則を示すコードを、第6の領域M6(通常は、EEPROMからなる領域)へ書き込む処理を実行する。
【0028】
以上、本実施形態に係るICカードで用いられる「OSプログラム用実行コマンド」の一例を説明した。通常は、この他にも種々の「OSプログラム用実行コマンド」が用意されているが、ここでは詳しい説明は省略する。
【0029】
一方、「単一アプリケーション用実行コマンド」は、カレントアプリケーションとして指定されている特定のアプリケーションプログラムに実行させるべきコマンドであり、従来のICカードにおける一般的なアプリケーション用実行コマンドに相当するものである。図示の例のように、プログラムA用コマンド、プログラムB用コマンド、プログラムC用コマンド、…と各アプリケーションプログラムごとに所定のコマンドが用意されることになる。具体的にどのようなコマンドが用意されるかは、個々のアプリケーションプログラムに依存して定まるが、たとえば、特定のユーザデータを第3の領域M3に書き込むコマンドや、特定のユーザデータを第3の領域M3から読み出すコマンドや、特定のユーザデータを検索するコマンドや、与えられたデータと読み出したユーザデータとの間で所定の演算を実行してその結果をレスポンスとして返すコマンドなど千差万別である。もちろん、プログラムA,B用に共通したコマンドを用意することも可能である。
【0030】
いずれにせよ、この「単一アプリケーション用実行コマンド」は、コマンドを与えた時点においてカレントアプリケーションとして指定されている単一のアプリケーションプログラムによって実行処理されるコマンドであり、実行後には、何らかのレスポンスが外部装置200に返される(外部装置200に対して、何らかのデータを送信する場合もあれば、単に、処理が正常終了したことを示す確認を送信する場合もある)。また、カレントアプリケーションとして指定されているアプリケーションプログラムが、与えられたコマンドを実行することができない場合(たとえば、プログラムAがカレントアプリケーションとして指定されている状態において、プログラムB用コマンドが与えられたような場合)には、エラーを示すレスポンスが外部装置200に返されることになる。
【0031】
本発明の特徴となる「複数アプリケーション用連続実行コマンド」は、コマンドを与えた時点においてカレントアプリケーションとして指定されている単一のアプリケーションプログラムだけでは、実行処理することができないコマンドであり、カレントアプリケーションとそれ以外のアプリケーションプログラムとを連続的に実行することにより処理することが可能なコマンドということになる。たとえば、カレントアプリケーションとして指定されているプログラムAによる処理を実行した後、更に、別なアプリケーションプログラムBを実行することにより処理が完了するようなコマンドが、本発明の特徴となる「複数アプリケーション用連続実行コマンド」になる。このようなコマンドを用いれば、外部装置200側から見れば、あたかもアプリケーションプログラムAに新たな機能(プログラムBの機能)が追加されたような取り扱いが可能になる。
【0032】
もっとも、このような「複数アプリケーション用連続実行コマンド」を演算処理手段120に実行させるためには、予め、第6の領域M6に連続実行規則を用意しておく必要がある。別言すれば、演算処理手段120は、「複数アプリケーション用連続実行コマンド」が与えられた場合、この第6の領域M6に格納されている連続実行規則に基づいて、複数のアプリケーションに跨がる複数のルーチンを所定の順序で実行する処理を行うことになる。実用上は、第6の領域M6には、複数の連続実行規則を格納しておくようにし、「複数アプリケーション用連続実行コマンド」には、どの連続実行規則を用いるコマンドであるかを指定する情報を含ませておくようにする。図1には、第6の領域M6内に3つの規則R1,R2,R3が格納されている状態が示されているが、この場合は、「複数アプリケーション用連続実行コマンド」としては、図2の下欄に示すように、規則R1に基づくコマンド、規則R2に基づくコマンド、規則R3に基づくコマンドの3通りのコマンドを用いることができる。各コマンドに、コマンド名の部分やパラメータの部分に、規則R1〜R3のいずれか1つを示す情報を含ませておくようにすれば、演算処理手段120は、当該コマンドを受け取ったときに、規則R1〜R3のいずれに従って処理すべきかを認識することができる。
【0033】
図3は、規則R1〜R3の一例を示すブロック図である。演算処理手段120は、このような規則に基づいて、「複数アプリケーション用連続実行コマンド」の処理を所定の順序で実行することになる。
【0034】
たとえば、規則R1は、プログラムAを実行した後、プログラムBを実行すべきことを示す規則である。通常、プログラムAやBは、何らかのデータやパラメータを伴うコマンドを実行するためのルーチンの集合から構成されている。したがって、実際には、規則R1は、プログラムAに対して与えるべき「プログラムA用コマンド」とプログラムBに対して与えるべき「プログラムB用コマンド」とを含んでいることになる。従来のICカードにおいて、「プログラムA用コマンド」が単一アプリケーション用実行コマンドとして演算処理手段120に与えられた場合、プログラムAによって、このコマンドが実行された後、その結果がレスポンスとして外部装置200側に返されることになる。これに対して、本発明に係るICカードにおいて、図3に示すような規則1に基づく「複数アプリケーション用連続実行コマンド」が与えられた場合は、この規則1に定められている所定の「プログラムA用コマンド」がプログラムAに引き渡されて実行された後、続いて、この規則1に定められている所定の「プログラムB用コマンド」がプログラムBに引き渡されて実行され、その結果が、レスポンスとして外部装置200側に返されることになる。すなわち、プログラムAによる所定の処理とプログラムBによる所定の処理とが連続的に実施され、この連続的な処理の結果がレスポンスとして返されることになる。そして、このとき、プログラムAの実行により生成されるパラメータXが、プログラムBへと引き渡される。結局、プログラムAの処理の結果を利用して、プログラムBが続いて実行されることになる。
【0035】
前述した例のように、アプリケーションプログラムAが、ICカードを病院用診察カードとして利用するための処理を行うプログラムであり、アプリケーションプログラムBが、集計処理機能をもったプログラムであり、1か月間の医療費の集計処理を、アプリケーションプログラムB内の処理ルーチンを利用して行うような場合には、規則R1のように、プログラムAからプログラムBへとパラメータXを引き渡すような処理が利用できる。この場合、「複数アプリケーション用連続実行コマンド」として、「1か月間の医療費の集計コマンド」なるコマンドを定義しておき、このコマンドを実行するための規則R1を連続実行規則として定めておけばよい。具体的には、まず、プログラムAに対して1か月分の医療費リストを読み出す読出コマンドを実行させ、読み出された医療費リストをパラメータXとして取り出し、続いて、プログラムBに対して、このパラメータXを与えてその集計を行う集計コマンドを実行させ、その結果をレスポンスとする、というような規則R1を定めておけばよい。プログラムAにはもともと1か月間の医療費の集計処理を行う機能は用意されていなかったとしても、集計処理の部分だけをプログラムBのルーチンを利用して実施することができるので、外部装置200側から見れば、プログラムAに新たな集計機能が付加されたような取り扱いが可能になる。
【0036】
図3に示す規則R1は、2つのアプリケーションプログラムA,Bを順番に実行させる規則であるが、もちろん、3つ以上のアプリケーションプログラムを順次実行させるような規則を定義することも可能である。また、必ずしもプログラム単位での実行順序を定義する必要はなく、ある1つのアプリケーションプログラム中の特定のルーチンについての実行順序を定めた連続実行規則を定義してもかまわない。図3の規則R2は、このようにルーチン単位での実行規則を定めた例である。すなわち、まず、プログラムCの中の特定のルーチンc1を実行し(必要に応じて、何らかのパラメータを与えてルーチンc1を実行するようにしてもよい)、その結果得られるパラメータXを用いてプログラムDを実行し、続いて、その結果得られるパラメータYを用いてプログラムE内の特定のルーチンe2を実行し、更に、その結果得られるパラメータZを用いて再びプログラムC内の特定のルーチンc2を実行し、その結果をレスポンスとして返す処理が行われることになる。
【0037】
一般に、1つのアプリケーションプログラムは、複数のルーチンの集合体であるから、結局、本発明における連続実行規則とは、複数のアプリケーションプログラムに跨がった複数のルーチンを所定の順序で実行すべきことを示す規則ということができる。したがって、本願では、「ルーチン」という文言を、プログラムを構成する1つ1つのルーチンを示す意味で用いるだけでなく、ルーチンの集合体であるプログラム全体を示す意味でも用いることにする。
【0038】
なお、連続実行規則は、必ずしも常に一定の順序で実行すべきルーチンを定義した規則にする必要はなく、1つのルーチンの実行により生成されるパラメータに基づいて、後続して実行すべきルーチンが変わるような規則であってもかまわない。この場合、後続して実行されるべきルーチンとして複数の候補を定めておき、パラメータの値に応じて、この複数の候補の中からどれを選択して実行すべきかを定めた規則を用意しておけばよい。図3の規則R3は、このような規則の一例である。この例では、プログラムEに後続するルーチンとして、プログラムB、プログラムD、プログラムB内のルーチンb8という3通りの候補が定められており、プログラムEの実行によって得られるパラメータXに基づいて、いずれか1つの候補が後続して実行されることになる。具体的には、図示の例の場合、パラメータXが正の場合は、プログラムBが実行され、パラメータXが負の場合は、プログラムDが実行され、パラメータXが0の場合は、プログラムB内のルーチンb8が実行されることになる。
【0039】
図3には、本発明において用意される連続実行規則を、3つの例として示したが、もちろん、連続実行規則としては、任意の規則を自由に定義することが可能である。しかも、図2の上欄に示すように、「OSプログラム用実行コマンド」のひとつとして、「連続実行規則追加コマンド」を用意しておけば、前述したように、必要に応じて、新たな連続実行規則を第6の領域M6に追加して格納することができる。
【0040】
また、場合によっては、カレントアプリケーションとなっているアプリケーションプログラムによる実質的な処理は全く行われず、全く別なアプリケーションプログラムによる処理のみが実行される場合もある。たとえば、プログラムAがカレントアプリケーションとして指定されている場合に、プログラムB内のルーチンのみによって処理が行われる「複数アプリケーション用連続実行コマンド」が与えられた場合、プログラムAは実質的な処理には何ら関与せず、実質的な処理はプログラムBのみによって行われることになる。しかし、この場合も、外部装置200側からみれば、見掛け上、カレントアプリケーションとして選択されているアプリケーションプログラムAに対して何らかのコマンドを与えたら、これに対するレスポンスが戻ってきたように取り扱われる。いわば、アプリケーションプログラムAは、処理の窓口としての機能を果たすことになる。
【0041】
なお、実用上の観点からは、「複数アプリケーション用連続実行コマンド」を利用する頻度は、「単一アプリケーション用実行コマンド」を利用する頻度に比べれば、低いことが予想される。このような観点に立てば、外部装置200から何らかのコマンドが与えられるたびに、演算処理手段120において、与えられたコマンドが「単一アプリケーション用実行コマンド」であるのか、「複数アプリケーション用連続実行コマンド」であるのかをその都度認識する処理を行うのは非効率的である。そこで、実用上は、演算処理手段120は、コマンドを受け取ったら、当該コマンドが、「単一アプリケーション用実行コマンド」であろうが、「複数アプリケーション用連続実行コマンド」であろうが、両者を区別せずに、とりあえず、その時点においてカレントアプリケーションとして指定されているアプリケーションプログラムに基づいて、与えられたコマンドの実行を試みる処理を行い、エラーが生じた場合には、与えられたコマンドを「複数アプリケーション用連続実行コマンド」と認識して、第6の領域M6に格納されている連続実行規則に基いて処理を実行するようにしておけばよい。
【0042】
以上、本発明に係る携帯型情報処理装置をICカードの例について説明したが、本発明はICカードに限らず、その他の携帯型情報処理装置においても同様に適用が可能である。
【0043】
【発明の効果】
以上のとおり本発明によれば、複数のアプリケーションプログラムを格納した携帯型情報処理装置において、特定のアプリケーションについて、新機能を容易に追加することができるようになる。
【図面の簡単な説明】
【図1】本発明の基本的な実施形態に係る携帯型情報処理装置の構成を示すブロック図である。
【図2】図1に示す携帯型情報処理装置において利用可能な3つのタイプのコマンドの例を示す図である。
【図3】図1に示す携帯型情報処理装置内に格納される連続実行規則の例を示す図である。
【符号の説明】
100…携帯型情報処理装置(ICカード)
110…記憶手段
120…演算処理手段
130…送受信手段
200…外部装置(リーダライタ装置)
A〜E…アプリケーションプログラム
M1〜M6…記憶手段110内の領域
R1〜R3…連続実行規則
X,Y,Z…パラメータ
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a portable information processing apparatus such as an IC card, and in particular, is carried as a single unit when being carried and is configured to return a predetermined response to a predetermined command given from an external device when accessed. The present invention relates to a type information processing apparatus.
[0002]
[Prior art]
As electronic devices become smaller, the role played by portable information processing devices in the general society has become increasingly important. In particular, IC cards, which can be said to be representative of small portable information processing apparatuses, have been put into practical use in various fields in recent years, and are expected to be widely used in the future. A portable information processing device such as an IC card is usually carried with the body or a vehicle, and accesses from the outside by communicating with a reader / writer device connected to a personal computer or the like as necessary. Is possible.
[0003]
Currently, IC cards that are widely used are of a type with a built-in CPU, and access to the internal memory is possible only through the built-in CPU. For this reason, practically sufficient security is ensured. In general, the exchange between an IC card and an external device is a process in which a command is transmitted from the external device side to the IC card, and a response is transmitted from the IC card to the external device in response to this command. It is executed by repeating. In the IC card, an OS program for generally controlling basic functions as the information processing apparatus and an application program executed under the management of the OS program are prepared. The OS program and the application program are common in that they are programs that execute some processing based on a command given from an external device and return some response.
[0004]
Recently, the storage capacity of a memory built in an IC card has been increased, and an IC card storing a plurality of application programs in addition to an OS program has been widely used. In addition, a usage form in which such an application program can be stored in a writable non-volatile memory such as an EEPROM, and a necessary application program is additionally installed later has been widespread. As described above, when an IC card having a plurality of application programs is given a command to execute some processing, an application selection command is given to the IC card in advance to set a specific application in a ready state. Is executed. In general, an application that is in a ready state by an application selection command is called a “current application”. The application execution command given from the external device side is delivered and executed by the OS program to the application program that is in the ready state as the “current application” at that time.
[0005]
[Problems to be solved by the invention]
As described above, by installing a plurality of application programs in an IC card, one IC card can be used for various purposes. In addition, since a new application program can be additionally installed as necessary, a new application can be added. However, with a conventional IC card, it is difficult to add an additional function to an already installed application program. This is because, when one application program is installed, a program area, a data area, and the like for the application are fixed on the memory, and it becomes difficult to add a routine for a new function. Therefore, in the conventional IC card, when it is necessary to add an additional function to one application, the application program must be replaced with a new program, and a large revision work is required.
[0006]
Accordingly, an object of the present invention is to provide a novel configuration in which a new function can be easily added to a specific application in a portable information processing apparatus storing a plurality of application programs.
[0007]
[Means for Solving the Problems]
(1) A first aspect of the present invention is a portable information processing apparatus configured to be carried as a single unit when being carried, and to return a predetermined response to a predetermined command given from an external device when accessed.
A first area in which an OS program is recorded, a second area in which a plurality of application programs are recorded, a third area for storing data, a fourth area used as a work area, and a plurality of applications A fifth area for storing current application designating information for designating the current application selected from the program, and continuous execution indicating that a plurality of routines across a plurality of application programs should be executed in a predetermined order Storage means having a sixth area for storing rules;
Arithmetic processing means for executing an application program under the control of an OS program;
A transmission / reception means for receiving a command given from the external device and delivering the command to the arithmetic processing means, and performing a process of sending a response given from the arithmetic processing means to the external device;
The arithmetic processing means is
When an application selection command for designating the current application is given, or when a specific current application is designated by an instruction of the OS program, current application designation information indicating the current application is stored in the fifth area. Process
When an execution command for a single application is given, the given command is executed based on the application program designated as the current application at that time by the current application designation information stored in the fifth area. Process
When a continuous execution command for a plurality of applications is given, based on the continuous execution rules stored in the sixth area, a function of executing a plurality of routines in a predetermined order is provided.
An additional function can be realized by using a routine of another application program.
[0008]
(2) According to a second aspect of the present invention, in the portable information processing device according to the first aspect described above,
As a continuous execution rule, in addition to the rule indicating the order in which the second routine should be executed after the execution of the first routine, the parameter generated by the execution of the first routine is passed to the second routine This rule is used.
[0009]
(3) According to a third aspect of the present invention, in the portable information processing device according to the second aspect described above,
As a continuous execution rule, a plurality of candidates to be the second routine are determined, and one routine among the plurality of candidates is selected as the second routine based on parameters generated by the execution of the first routine. The rule that this should be executed is used.
[0010]
(4) According to a fourth aspect of the present invention, in the portable information processing device according to the first to third aspects described above,
When the arithmetic processing means is given a single application execution command or a multi-application continuous execution command from the transmission / reception means, based on the application program designated as the current application at that time, without distinguishing between the two , A process that attempts to execute the given command, and if an error occurs, the given command is recognized as a continuous execution command for multiple applications, and the process based on the continuous execution rule is executed It is.
[0011]
(5) According to a fifth aspect of the present invention, in the portable information processing device according to the first to fourth aspects described above,
A plurality of continuous execution rules are stored in the sixth area, and the arithmetic processing means executes a plurality of routines in a predetermined order based on the continuous execution rules corresponding to the given continuous execution commands for multiple applications. It is possible to perform processing.
[0012]
(6) According to a sixth aspect of the present invention, in the portable information processing device according to the fifth aspect described above,
The arithmetic processing means can perform processing for storing a new continuous execution rule in the sixth area when a continuous execution rule addition command including a new continuous execution rule is given.
[0013]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, the present invention will be described based on the illustrated embodiments. FIG. 1 is a block diagram showing a configuration of a portable information processing apparatus (specifically, an IC card) 100 according to an embodiment of the present invention. The portable information processing apparatus 100 is carried as a single unit when being carried, and is connected to an external apparatus (specifically, a reader / writer apparatus) 200 when accessed. When a predetermined command is given from the external device 200, predetermined processing is performed in the portable information processing device 100, and the result is returned to the external device 200 as a response.
[0014]
The basic components of the portable information processing apparatus 100 are a storage unit 110, an arithmetic processing unit 120, and a transmission / reception unit 130, as shown. Various programs and data are recorded in the storage unit 110. The arithmetic processing unit 120 executes a command given from the external device 200 based on the program in the storage unit 110. Transmission / reception processing with respect to the external device 200 is performed by the transmission / reception means 130. Communication between the transmission / reception means 130 and the external device 200 may be performed by a contact method in which an electrode is physically brought into contact with each other to exchange electric signals, or an electromagnetic signal path is formed to exchange information. You may carry out by a contact system. The command given from the external device 200 is received by the transmission / reception means 130 and executed by the arithmetic processing means 120. After execution of the command, some kind of response is output from the arithmetic processing unit 120 and transmitted to the external device 200 by the transmission / reception unit 130. As described above, the communication between the portable information processing device 100 and the external device 200 is performed by alternately repeating the command transmission from the external device 200 and the response transmission from the portable information processing device 100.
[0015]
As shown in the figure, six areas are provided in the storage unit 110. The first area M1 stores an OS program for overall management of processing operations by the portable information processing apparatus 100. The arithmetic processing unit 120 basically executes various processes under the management of the OS program. A plurality of application programs are stored in the second area M2. In the figure, an example in which five types of application programs A to E are prepared is specifically shown. Normally, each of these application programs is a program used for a different purpose. For example, the program A is a program that performs processing for using the IC card as a hospital medical card, and the program B is a program that performs processing for using the IC card as a credit card. Is a program for performing processing for using this IC card as a library lending card, and so on.
[0016]
Data is stored in the third area M3. This data is data that is used by the OS program and each application program, and there is data that is commonly used by a plurality of programs and data that is unique to each application program. In practice, data specific to a specific application program is generally stored in an area adjacent to the storage area of the application program, but here, for convenience, data used in any application is The following description will be made assuming that the data is stored in the third area M3. The fourth area M4 is an area used as a work area when the arithmetic processing unit 120 performs various arithmetic processes, and the fifth area M5 is an area for storing current application designation information. It is. Here, the “current application” is one application selected from the plurality of application programs A to E stored in the second area M2, and is referred to as “the application currently selected”. become. In principle, the command given from the external device 200 is executed by this “current application” (as long as it is an execution command for a single application, as will be described later). The fifth area M5 can be handled as a part of the fourth area M4. However, since the fifth area M5 is an important component in the present invention, “current application designation information” is stored here. The fifth region M5 is defined as a dedicated region for this purpose.
[0017]
The first area M1 to the fifth area M5 described above are areas that are also used in conventional IC cards. The feature of the present invention is that a sixth area M6 is further provided, in which continuous execution rules R1 to R3 are stored, and a plurality of application programs prepared in the second area M2 are straddled. The point is that multiple routines can be executed. Here, the continuous execution rules R1 to R3 are rules indicating that a plurality of routines straddling a plurality of application programs should be executed in a predetermined order, as will be described in detail later. Can cause a plurality of applications to process a command given from the outside based on this continuous execution rule.
[0018]
In the embodiment shown in FIG. 1, the storage unit 110 is shown as one block. However, in reality, a non-volatile memory such as a ROM or EEPROM and a volatile memory such as a RAM are included in the IC card. Each of the areas M1 to M6 is provided in a plurality of memories as appropriate. In this embodiment, the first area M1 for storing the OS program is provided in the ROM (a part thereof may be provided in the EEPROM so that it can be rewritten). Also, a fourth area M4 used as a work area and a fifth area M5 for storing current application designation information are provided in the RAM. In this IC card, since all the electric power is supplied from the external device 200 side, when the communication with the external device 200 is completed and the external device 200 is disconnected, the contents of the fourth area M4 and the fifth area M5 are All will be lost. On the other hand, the second area M2 for storing application programs, the third area M3 for storing data, and the sixth area M6 for storing continuous execution rules are all provided in the EEPROM. Therefore, these pieces of information are held as they are even after the external device 200 is disconnected. Since the EEPROM can be rewritten or additionally written, any of the application program, data, and continuous execution rule can be corrected or added.
[0019]
The arithmetic processing means 120 is composed of an IC card CPU and has a function of executing the application programs A to E under the management of the OS program. As described above, the command given from the external device 200 is delivered to the arithmetic processing unit 120 via the transmission / reception unit 130. In general, commands can be classified into commands for causing an OS program to execute (hereinafter referred to as OS program execution commands) and commands for causing an application program to execute (hereinafter referred to as application execution commands). The type of command is usually recognized by the command name portion. If the given command is an OS program execution command, the arithmetic processing means 120 executes this based on the OS program in the first area M1, and the given command is an application execution command. If there is, it is executed based on the application program in the second area M2. A plurality of application programs A to E are stored in the second area M2, one of which is designated as the current application by the current application designation information stored in the fifth area M5. The given application execution command is executed by the current application.
[0020]
Thus, in the case of a conventional IC card, the application execution command is a command that is assumed to be executed by the application program currently specified as the current application, and is based on a single application program. It is a command. For example, when the application program A is designated as the current application, it is necessary to give an application execution command that can be interpreted and executed by the application program A from the external device 200. In other words, in a state where the application program A is designated as the current application, only application execution commands that can be interpreted and executed by the application program A can be executed.
[0021]
The basic point of view of the present invention is that even if the application program A is designated as the current application, for example, if processing using a routine in the application program B can be performed, the application is substantially This is based on the technical idea that the function of the program A can be expanded. In this way, if a command can be processed so as to straddle a plurality of applications, a task that cannot be handled by a single application can be processed by a cooperative operation of the plurality of applications.
[0022]
For example, suppose that the application program A is a program that performs processing for using this IC card as a hospital examination card. Here, when the case where this IC card is used as a medical examination card for a hospital using the external device 200 installed in the hospital, naturally, the application program A is designated as the current application, and based on the program A, the medical treatment is performed. Therefore, various processes are executed. Then, it is necessary to carry out the medical accounting process by chance, but it is assumed that the application program A itself does not have a function for totaling medical expenses for one month. In this case, with the conventional IC card, such a totaling process of medical expenses for one month cannot be executed inside the IC card. However, in the IC card according to the present invention, the application program B having such a totaling function is additionally installed, and the routine in the application program B is used for the process of totaling medical expenses for one month. If a continuous execution rule is prepared, it is possible to perform aggregation processing in the IC card. By adopting such a method, it is possible to handle the application program A as if it were expanded.
[0023]
In order to realize such processing, in the present invention, two commands are prepared as commands to be executed by the application program. The first command is a command to be executed by a single application designated as the current application, as in the past, and is referred to as a “single application execution command” here. On the other hand, the second command is a command peculiar to the present invention and is a command to be executed using a routine of an application program other than the application designated as the current application. It will be called "command". In the case of the above-described example, the process of totaling medical expenses for one month is performed by continuously generating an application program A designated as the current application and an application program B different from this (in the middle of processing, a response is generated). This can be realized by giving a “continuous execution command for multiple applications” to be executed.
[0024]
Eventually, three types of commands as shown in FIG. 2 can be given to the IC card according to the present invention. That is, there are three types of commands: “OS program execution command”, “single application execution command”, and “multiple application continuous execution command”.
[0025]
Here, the “OS program execution command” is a command executed by the OS program. For example, as shown in FIG. 2, “application selection command”, “application addition command”, “continuous execution rule addition command” (In fact, various other commands are also prepared). The “application selection command” is a command for designating a current application. For example, a command name (SELECT-APPLICATION PROG-A) and information (PROG-) for designating a specific application, such as “SELECT-APPLICATION PROG-A”. It becomes a command with A). When such an “application selection command” is given, the arithmetic processing means 120 writes “current application designation information” indicating the designated application program as the current application in the fifth area M5 based on the OS program. Execute. As in the above-described example, when the command “SELECT-APPLICATION PROG-A” is given, designation information (for example, “PROG” in the fifth area M5 indicates that “application program A” is the current application. -A ") is written.
[0026]
Note that the “current application designation information” is written into the fifth area M5 not only when an “application selection command” is given, but also when a specific current application is designated by an instruction from the OS program. Is also executed. Specifically, when the OS program is started, a specific application program designated by default is automatically designated as the current application, and “current application designation information” for designating the default application program is the fifth area M5. Is written to.
[0027]
On the other hand, the “application addition command” and “continuous execution rule addition command” are also “OS program execution commands” to be executed by the OS program. The “application addition command” is a command for additionally writing a new application program in the second area M2, and the object code of the program is given from the external device 200 side after the command name. Become. Based on the OS program, the arithmetic processing means 120 executes a process of writing the object code of the given new application into the second area M2 (usually an area composed of EEPROM). The “continuous execution rule addition command” is a command for additionally writing a new continuous execution rule in the sixth area M6, and a code indicating the continuous execution rule follows the command name. It will be given from the 200 side. Based on the OS program, the arithmetic processing means 120 executes a process of writing a code indicating a given new rule into the sixth area M6 (usually an area composed of EEPROM).
[0028]
Heretofore, an example of the “OS program execution command” used in the IC card according to the present embodiment has been described. Usually, various other “OS program execution commands” are prepared, but detailed description thereof is omitted here.
[0029]
On the other hand, the “single application execution command” is a command to be executed by a specific application program designated as the current application, and corresponds to a general application execution command in a conventional IC card. As in the example shown in the figure, predetermined commands are prepared for each application program, such as a program A command, a program B command, a program C command,. The specific commands to be prepared are determined depending on individual application programs. For example, a command for writing specific user data to the third area M3 or a specific user data for the third user M3 A command to read from the area M3, a command to search for specific user data, a command to execute a predetermined operation between given data and the read user data, and return the result as a response is there. Of course, it is also possible to prepare a common command for the programs A and B.
[0030]
In any case, this “execution command for single application” is a command that is executed by a single application program specified as the current application at the time of giving the command, and after execution, some response is external It is returned to the apparatus 200 (some data may be transmitted to the external apparatus 200, or a confirmation indicating that the process has been completed normally may be transmitted). If the application program designated as the current application cannot execute the given command (for example, the program B command is given in the state where the program A is designated as the current application). In the case), a response indicating an error is returned to the external apparatus 200.
[0031]
The “continuous execution command for multiple applications”, which is a feature of the present invention, is a command that cannot be executed only by a single application program designated as the current application at the time when the command is given. This is a command that can be processed by continuously executing other application programs. For example, after executing the process by the program A designated as the current application, a command that completes the process by executing another application program B is a feature of “continuous for multiple applications”. Run command ". If such a command is used, it is possible to handle the application program A as if a new function (the function of the program B) is added as viewed from the external device 200 side.
[0032]
However, in order for the arithmetic processing means 120 to execute such a “continuous execution command for multiple applications”, it is necessary to prepare a continuous execution rule in the sixth area M6 in advance. In other words, when the “multiple application continuous execution command” is given, the arithmetic processing unit 120 spans multiple applications based on the continuous execution rules stored in the sixth area M6. A process of executing a plurality of routines in a predetermined order is performed. Practically, a plurality of continuous execution rules are stored in the sixth area M6, and information specifying which continuous execution rule is used for the “multiple application continuous execution command” To be included. FIG. 1 shows a state where three rules R1, R2, and R3 are stored in the sixth area M6. In this case, the “continuous execution command for multiple applications” is shown in FIG. As shown in the lower column, three types of commands can be used: a command based on the rule R1, a command based on the rule R2, and a command based on the rule R3. If each command includes information indicating any one of the rules R1 to R3 in the command name part and the parameter part, the arithmetic processing unit 120 receives the command, It can be recognized which of the rules R1 to R3 should be processed.
[0033]
FIG. 3 is a block diagram illustrating an example of the rules R1 to R3. Based on such rules, the arithmetic processing means 120 executes the processing of “sequential execution commands for multiple applications” in a predetermined order.
[0034]
For example, the rule R1 is a rule indicating that the program B should be executed after the program A is executed. Usually, the programs A and B are composed of a set of routines for executing a command with some data and parameters. Therefore, in practice, the rule R1 includes a “program A command” to be given to the program A and a “program B command” to be given to the program B. In a conventional IC card, when a “program A command” is given to the arithmetic processing means 120 as an execution command for a single application, after the command is executed by the program A, the result is returned as a response to the external device 200. Will be returned to the side. On the other hand, in the IC card according to the present invention, when a “continuous execution command for multiple applications” based on rule 1 as shown in FIG. 3 is given, a predetermined “program” defined in rule 1 is provided. After the “A command” is delivered to the program A and executed, the predetermined “program B command” defined in the rule 1 is subsequently delivered to the program B and executed, and the result is a response. Is returned to the external device 200 side. That is, the predetermined process by the program A and the predetermined process by the program B are continuously performed, and the result of this continuous process is returned as a response. At this time, the parameter X generated by the execution of the program A is delivered to the program B. Eventually, using the result of the processing of program A, program B is subsequently executed.
[0035]
As in the example described above, the application program A is a program for performing processing for using an IC card as a hospital medical card, and the application program B is a program having a counting processing function for one month. When the medical expenses are aggregated by using a processing routine in the application program B, a process of passing the parameter X from the program A to the program B can be used as in the rule R1. In this case, if a command called “Aggregation command for medical expenses for one month” is defined as a “continuous execution command for multiple applications”, and a rule R1 for executing this command is defined as a continuous execution rule. Good. Specifically, first, the program A is caused to execute a read command for reading the medical cost list for one month, the read medical cost list is taken out as the parameter X, and then the program B is A rule R1 may be determined such that a summing command for summing up the parameters X is executed and the result is a response. Even if the program A originally does not have a function for performing the totaling process of the medical expenses for one month, only the part of the totaling process can be performed by using the routine of the program B. From the side, the program A can be handled as if a new counting function was added.
[0036]
The rule R1 shown in FIG. 3 is a rule for executing the two application programs A and B in order, but it is of course possible to define a rule for sequentially executing three or more application programs. Further, it is not always necessary to define the execution order in units of programs, and a continuous execution rule that defines the execution order for a specific routine in a certain application program may be defined. The rule R2 in FIG. 3 is an example in which an execution rule is defined for each routine in this way. That is, first, a specific routine c1 in the program C is executed (the routine c1 may be executed by giving some parameters as necessary), and the program D is obtained using the parameter X obtained as a result. Subsequently, a specific routine e2 in the program E is executed using the parameter Y obtained as a result, and a specific routine c2 in the program C is executed again using the parameter Z obtained as a result. Then, processing for returning the result as a response is performed.
[0037]
In general, since one application program is a collection of a plurality of routines, the continuous execution rule in the present invention is to execute a plurality of routines across a plurality of application programs in a predetermined order. It can be said that the rule indicates. Therefore, in the present application, the term “routine” is used not only to indicate each routine constituting the program but also to indicate the entire program that is a collection of routines.
[0038]
Note that the continuous execution rule does not necessarily need to be a rule that defines routines to be executed in a certain order at all times, and the routine to be executed subsequently changes based on parameters generated by the execution of one routine. Such rules may be used. In this case, a plurality of candidates are defined as routines to be executed subsequently, and a rule is set that determines which of the plurality of candidates should be selected and executed according to the parameter value. Just keep it. The rule R3 in FIG. 3 is an example of such a rule. In this example, three candidates of a program B, a program D, and a routine b8 in the program B are determined as a routine that follows the program E, and one of the candidates is determined based on the parameter X obtained by executing the program E. One candidate will be executed subsequently. Specifically, in the illustrated example, when the parameter X is positive, the program B is executed, when the parameter X is negative, the program D is executed, and when the parameter X is 0, the program B is executed. This routine b8 is executed.
[0039]
In FIG. 3, the continuous execution rules prepared in the present invention are shown as three examples. Of course, as the continuous execution rules, any rule can be freely defined. In addition, as shown in the upper column of FIG. 2, if a “continuous execution rule addition command” is prepared as one of the “OS program execution commands”, as described above, a new continuous command is created as necessary. Execution rules can be added and stored in the sixth area M6.
[0040]
In some cases, no substantial processing is performed by the application program that is the current application, and only processing by a completely different application program is executed. For example, when the program A is designated as the current application and the “continuous execution command for multiple applications” that is processed only by the routine in the program B is given, the program A does not perform any substantial processing. The substantial process is performed only by the program B without being involved. However, in this case as well, when viewed from the external device 200 side, when a command is given to the application program A that is apparently selected as the current application, it is handled as if a response to this is returned. In other words, the application program A functions as a processing window.
[0041]
From a practical point of view, it is expected that the frequency of using “multiple application continuous execution commands” is lower than the frequency of using “single application execution commands”. From this point of view, every time any command is given from the external device 200, the arithmetic processing means 120 determines whether the given command is a “single application execution command” or “continuous execution command for multiple applications”. It is inefficient to perform the process of recognizing each time. Therefore, in practical use, when the arithmetic processing unit 120 receives a command, the arithmetic processing unit 120 distinguishes between the command whether it is a “single application execution command” or a “multiple application continuous execution command”. For the time being, based on the application program specified as the current application at that time, a process that attempts to execute the given command is performed, and if an error occurs, the given command is It is only necessary to recognize the “continuous execution command” and execute the processing based on the continuous execution rules stored in the sixth area M6.
[0042]
The portable information processing apparatus according to the present invention has been described with respect to an example of an IC card. However, the present invention is not limited to an IC card and can be similarly applied to other portable information processing apparatuses.
[0043]
【The invention's effect】
As described above, according to the present invention, a new function can be easily added to a specific application in a portable information processing apparatus that stores a plurality of application programs.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a configuration of a portable information processing apparatus according to a basic embodiment of the present invention.
FIG. 2 is a diagram showing examples of three types of commands that can be used in the portable information processing apparatus shown in FIG. 1;
FIG. 3 is a diagram showing an example of continuous execution rules stored in the portable information processing apparatus shown in FIG. 1;
[Explanation of symbols]
100: Portable information processing apparatus (IC card)
110: Storage means
120: Arithmetic processing means
130: Transmission / reception means
200: External device (reader / writer device)
AE ... Application program
M1 to M6: Areas in the storage means 110
R1 to R3 ... Continuous execution rules
X, Y, Z ... parameters

Claims (6)

携帯時には単体として持ち運びされ、アクセス時には外部装置から与えた所定のコマンドに対して所定のレスポンスが返されるように構成された携帯型情報処理装置において、
OSプログラムが記録された第1の領域と、複数のアプリケーションプログラムが記録された第2の領域と、データを格納する第3の領域と、作業領域として用いられる第4の領域と、前記複数のアプリケーションプログラムの中から選択されたカレントアプリケーションを指定するカレントアプリケーション指定情報を格納する第5の領域と、前記複数のアプリケーションプログラムに跨がった複数のルーチンを所定の順序で実行すべきことを示す連続実行規則を格納する第6の領域と、を有する記憶手段と、
前記OSプログラムの管理下で前記アプリケーションプログラムを実行する演算処理手段と、
前記外部装置から与えられたコマンドを受信して前記演算処理手段に引き渡すとともに、前記演算処理手段から与えられたレスポンスを前記外部装置へ送信する処理を行う送受信手段と、
を備え、前記演算処理手段は、
カレントアプリケーションを指定するためのアプリケーション選択コマンドが与えられたとき、または、OSプログラムの指示により特定のカレントアプリケーションが指定されたときに、該カレントアプリケーションを示すカレントアプリケーション指定情報を前記第5の領域に格納する処理を行い、
単一アプリケーション用実行コマンドが与えられたときに、前記第5の領域に格納されているカレントアプリケーション指定情報によって、その時点においてカレントアプリケーションとして指定されているアプリケーションプログラムに基づいて、与えられたコマンドを実行する処理を行い、
複数アプリケーション用連続実行コマンドが与えられたときに、前記第6の領域に格納されている連続実行規則に基づいて、複数のルーチンを所定の順序で実行する処理を行う機能を有することを特徴とする携帯型情報処理装置。
In a portable information processing apparatus configured to be carried as a single unit when being carried, and to return a predetermined response to a predetermined command given from an external device when accessed,
A first area in which an OS program is recorded; a second area in which a plurality of application programs are recorded; a third area in which data is stored; a fourth area used as a work area; A fifth area for storing current application designating information for designating a current application selected from the application programs and a plurality of routines across the plurality of application programs should be executed in a predetermined order Storage means having a sixth area for storing continuous execution rules;
Arithmetic processing means for executing the application program under the management of the OS program;
A transmission / reception means for receiving a command given from the external device and delivering the command to the arithmetic processing means, and performing a process of sending a response given from the arithmetic processing means to the external device;
The arithmetic processing means includes:
When an application selection command for designating the current application is given, or when a specific current application is designated by an instruction of the OS program, current application designation information indicating the current application is stored in the fifth area. Process to store,
When an execution command for a single application is given, the given command is determined based on the application program designated as the current application at that time by the current application designation information stored in the fifth area. Perform the process to be executed,
A function of performing a process of executing a plurality of routines in a predetermined order based on a continuous execution rule stored in the sixth area when a continuous execution command for a plurality of applications is given. A portable information processing device.
請求項1に記載の携帯型情報処理装置において、
連続実行規則が、第1のルーチンの実行後に第2のルーチンを実行すべき旨の順序を示す規則に加えて、第1のルーチンの実行により生成されるパラメータを、第2のルーチンに引き渡す旨の規則を含んでいることを特徴とする携帯型情報処理装置。
The portable information processing device according to claim 1,
In addition to the rule indicating the order that the second routine should be executed after the execution of the first routine, the continuous execution rule passes the parameter generated by the execution of the first routine to the second routine. A portable information processing apparatus including the following rules.
請求項2に記載の携帯型情報処理装置において、
連続実行規則が、第2のルーチンとなるべき複数の候補を定め、第1のルーチンの実行により生成されるパラメータに基づいて、前記複数の候補の中の1つのルーチンを第2のルーチンとして選択しこれを実行すべき旨の規則を含んでいることを特徴とする携帯型情報処理装置。
The portable information processing device according to claim 2,
The continuous execution rule defines a plurality of candidates to be the second routine, and selects one of the plurality of candidates as the second routine based on a parameter generated by the execution of the first routine And a portable information processing apparatus including a rule that this should be executed.
請求項1〜3のいずれかに記載の携帯型情報処理装置において、
演算処理手段が、送受信手段から単一アプリケーション用実行コマンドまたは複数アプリケーション用連続実行コマンドが与えられたときに、両者を区別せずに、その時点においてカレントアプリケーションとして指定されているアプリケーションプログラムに基づいて、与えられたコマンドの実行を試みる処理を行い、エラーが生じた場合には、与えられたコマンドを複数アプリケーション用連続実行コマンドと認識して、連続実行規則に基づく処理を実行することを特徴とする携帯型情報処理装置。
The portable information processing apparatus according to any one of claims 1 to 3,
When the arithmetic processing means is given a single application execution command or a multi-application continuous execution command from the transmission / reception means, based on the application program designated as the current application at that time, without distinguishing between the two The process of trying to execute the given command is performed, and when an error occurs, the given command is recognized as a continuous execution command for multiple applications, and the process based on the continuous execution rule is executed. A portable information processing device.
請求項1〜4のいずれかに記載の携帯型情報処理装置において、
第6の領域に複数の連続実行規則が格納されており、演算処理手段は、与えられた複数アプリケーション用連続実行コマンドに対応した連続実行規則に基づいて、複数のルーチンを所定の順序で実行する処理を行うことを特徴とする携帯型情報処理装置。
The portable information processing apparatus according to any one of claims 1 to 4,
A plurality of continuous execution rules are stored in the sixth area, and the arithmetic processing means executes a plurality of routines in a predetermined order based on the continuous execution rules corresponding to the given continuous execution commands for multiple applications. A portable information processing apparatus that performs processing.
請求項5に記載の携帯型情報処理装置において、
演算処理手段が、新たな連続実行規則を含む連続実行規則追加コマンドが与えられたときに、第6の領域に前記新たな連続実行規則を格納する処理を行うことを特徴とする携帯型情報処理装置。
The portable information processing device according to claim 5,
The portable information processing, wherein the arithmetic processing means performs a process of storing the new continuous execution rule in a sixth area when a continuous execution rule addition command including a new continuous execution rule is given. apparatus.
JP2001212023A 2001-07-12 2001-07-12 Portable information processing device Expired - Fee Related JP4747450B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001212023A JP4747450B2 (en) 2001-07-12 2001-07-12 Portable information processing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001212023A JP4747450B2 (en) 2001-07-12 2001-07-12 Portable information processing device

Publications (2)

Publication Number Publication Date
JP2003030609A JP2003030609A (en) 2003-01-31
JP4747450B2 true JP4747450B2 (en) 2011-08-17

Family

ID=19047251

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001212023A Expired - Fee Related JP4747450B2 (en) 2001-07-12 2001-07-12 Portable information processing device

Country Status (1)

Country Link
JP (1) JP4747450B2 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10324996A1 (en) * 2003-06-03 2005-02-17 Giesecke & Devrient Gmbh Chip card with at least one application
JP2013069108A (en) * 2011-09-22 2013-04-18 Toshiba Corp Ic card, portable electronic device and ic card control method
EP2801049B1 (en) * 2012-01-08 2018-11-14 ImagiStar LLC System and method for item self-assessment as being extant or displaced
JP2014186367A (en) * 2013-03-21 2014-10-02 Toshiba Corp Ic card and portable electronic device

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6442785A (en) * 1987-08-10 1989-02-15 Hitachi Maxell Ic card and system for processing information
JP3231467B2 (en) * 1993-03-24 2001-11-19 大日本印刷株式会社 Information recording medium with built-in CPU
JP2001060156A (en) * 1999-08-24 2001-03-06 Nippon Telegr & Teleph Corp <Ntt> Application linkage system and method, and recording medium recorded with program therefor
JP3744286B2 (en) * 1999-11-11 2006-02-08 日本電信電話株式会社 IC card program execution control method and system, and storage medium storing execution control program

Also Published As

Publication number Publication date
JP2003030609A (en) 2003-01-31

Similar Documents

Publication Publication Date Title
JP2514954B2 (en) IC card
JP2537199B2 (en) IC card
CN101061466B (en) Apparatus and method for processing data of flash memory
KR960005397B1 (en) Portable electronic apparatus
JPH03240127A (en) Program control system
KR970004106B1 (en) Ic card
JP4393733B2 (en) Portable information recording medium
JPS63204493A (en) Portable electronic device
KR20140108666A (en) Writing data in a non-volatile memory of a smart card
JP4747450B2 (en) Portable information processing device
JP3923546B2 (en) IC card
JP4747451B2 (en) Data access method to portable information recording medium
JP3231467B2 (en) Information recording medium with built-in CPU
JP2537200B2 (en) Portable electronic devices
JPH01217689A (en) Portable electronic equipment
JP2003016410A (en) Ic card
JP7438432B1 (en) Electronic information storage medium, IC chip, IC card, record writing method, and program
CN110337637A (en) Data processing method and equipment
JP2005346338A (en) Portable information storage medium, program therefor, and processing analysis method of portable information storage medium
JPH0855204A (en) Ic card with cpu and accessible address limiting method of ic card with cpu
JPH06309531A (en) Checking method for instruction format given to ic card
JPH03291786A (en) Ic card
JPS63223995A (en) Portable electronic equipment
JP4026796B2 (en) IC card with command distribution function
JP4071377B2 (en) IC card

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080514

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110411

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110419

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110502

R150 Certificate of patent or registration of utility model

Ref document number: 4747450

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140527

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees