(57)【特許請求の範囲】
【請求項１】
携帯時には単体として持ち運びされ、アクセス時には外部装置から与えた所定のコマンドに対して所定のレスポンスが返されるように構成された携帯型情報処理装置において、
ＯＳプログラムが記録された第１の領域と、複数のアプリケーションプログラムが記録された第２の領域と、データを格納する第３の領域と、作業領域として用いられる第４の領域と、前記複数のアプリケーションプログラムの中から選択されたカレントアプリケーションを指定するカレントアプリケーション指定情報を格納する第５の領域と、前記複数のアプリケーションプログラムに跨がった複数のルーチンを所定の順序で実行すべきことを示す連続実行規則を格納する第６の領域と、を有する記憶手段と、
前記ＯＳプログラムの管理下で前記アプリケーションプログラムを実行する演算処理手段と、
前記外部装置から与えられたコマンドを受信して前記演算処理手段に引き渡すとともに、前記演算処理手段から与えられたレスポンスを前記外部装置へ送信する処理を行う送受信手段と、
を備え、前記演算処理手段は、
カレントアプリケーションを指定するためのアプリケーション選択コマンドが与えられたとき、または、ＯＳプログラムの指示により特定のカレントアプリケーションが指定されたときに、該カレントアプリケーションを示すカレントアプリケーション指定情報を前記第５の領域に格納する処理を行い、
単一アプリケーション用実行コマンドが与えられたときに、前記第５の領域に格納されているカレントアプリケーション指定情報によって、その時点においてカレントアプリケーションとして指定されているアプリケーションプログラムに基づいて、与えられたコマンドを実行する処理を行い、
複数アプリケーション用連続実行コマンドが与えられたときに、前記第６の領域に格納されている連続実行規則に基づいて、複数のルーチンを所定の順序で実行する処理を行う機能を有することを特徴とする携帯型情報処理装置。
【請求項２】
請求項１に記載の携帯型情報処理装置において、
連続実行規則が、第１のルーチンの実行後に第２のルーチンを実行すべき旨の順序を示す規則に加えて、第１のルーチンの実行により生成されるパラメータを、第２のルーチンに引き渡す旨の規則を含んでいることを特徴とする携帯型情報処理装置。
【請求項３】
請求項２に記載の携帯型情報処理装置において、
連続実行規則が、第２のルーチンとなるべき複数の候補を定め、第１のルーチンの実行により生成されるパラメータに基づいて、前記複数の候補の中の１つのルーチンを第２のルーチンとして選択しこれを実行すべき旨の規則を含んでいることを特徴とする携帯型情報処理装置。
【請求項４】
請求項１〜３のいずれかに記載の携帯型情報処理装置において、
演算処理手段が、送受信手段から単一アプリケーション用実行コマンドまたは複数アプリケーション用連続実行コマンドが与えられたときに、両者を区別せずに、その時点においてカレントアプリケーションとして指定されているアプリケーションプログラムに基づいて、与えられたコマンドの実行を試みる処理を行い、エラーが生じた場合には、与えられたコマンドを複数アプリケーション用連続実行コマンドと認識して、連続実行規則に基づく処理を実行することを特徴とする携帯型情報処理装置。
【請求項５】
請求項１〜４のいずれかに記載の携帯型情報処理装置において、
第６の領域に複数の連続実行規則が格納されており、演算処理手段は、与えられた複数アプリケーション用連続実行コマンドに対応した連続実行規則に基づいて、複数のルーチンを所定の順序で実行する処理を行うことを特徴とする携帯型情報処理装置。
【請求項６】
請求項５に記載の携帯型情報処理装置において、
演算処理手段が、新たな連続実行規則を含む連続実行規則追加コマンドが与えられたときに、第６の領域に前記新たな連続実行規則を格納する処理を行うことを特徴とする携帯型情報処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＩＣカードのような携帯型情報処理装置に関し、特に、携帯時には単体として持ち運びされ、アクセス時には外部装置から与えた所定のコマンドに対して所定のレスポンスが返されるように構成された携帯型情報処理装置に関する。
【０００２】
【従来の技術】
電子機器の小型化が進むに従って、一般社会における携帯型情報処理装置の担う役割も益々重要になってきている。特に、小型の携帯型情報処理装置の代表とも言うべきＩＣカードは、近年、様々な分野において実用化されてきており、今後も広く普及するものと予想される。このＩＣカードのような携帯型情報処理装置は、通常は、身体あるいは車両などに伴って携帯され、必要に応じて、パソコンなどに接続されたリーダライタ装置と交信させることによって、外部からのアクセスが可能になる。
【０００３】
現在、一般に普及しているＩＣカードは、ＣＰＵを内蔵したタイプのものであり、内部メモリへのアクセスは、内蔵されたＣＰＵを介してのみ可能となっている。このため、実用上十分なセキュリティが確保されている。一般に、ＩＣカードと外部装置との間のやりとりは、外部装置側からＩＣカードに対してコマンドを送信し、このコマンドに対する返事として、ＩＣカードから外部装置に対してレスポンスを送信する、というプロセスを繰り返すことによって実行される。ＩＣカード内には、通常、情報処理装置としての基本的な機能を統括制御するためのＯＳプログラムと、このＯＳプログラムの管理下で実行されるアプリケーションプログラムとが用意される。ＯＳプログラムもアプリケーションプログラムも、外部装置から与えられたコマンドに基づいて何らかの処理を実行し、何らかのレスポンスを返す処理を行うプログラムであるという点では共通する。
【０００４】
最近は、ＩＣカードに内蔵されるメモリの記憶容量も増加してきており、ＯＳプログラムの他に、複数のアプリケーションプログラムが格納されたＩＣカードも広く利用されるようになってきている。また、このようなアプリケーションプログラムをＥＥＰＲＯＭなどの書き込み可能な不揮発性メモリに格納できるようにしておき、必要なアプリケーションプログラムを後から追加インストールするような利用形態も普及してきている。このように、複数のアプリケーションプログラムが用意されたＩＣカードに対して、コマンドを与えて何らかの処理を実行させる場合、予め、当該ＩＣカードに対してアプリケーション選択コマンドを与えて特定のアプリケーションを準備状態にする処理が実行される。一般に、アプリケーション選択コマンドによって準備状態となったアプリケーションは、「カレントアプリケーション」と呼ばれている。外部装置側から与えられるアプリケーション用の実行コマンドは、ＯＳプログラムによって、その時点で「カレントアプリケーション」として準備状態になっているアプリケーションプログラムに引き渡されて実行される。
【０００５】
【発明が解決しようとする課題】
上述したように、ＩＣカード内に複数のアプリケーションプログラムをインストールしておくことにより、１枚のＩＣカードを種々の用途に利用することができる。また、必要に応じて、新たなアプリケーションプログラムを追加インストールすることも可能であるため、新たな用途を追加することもできる。しかしながら、従来のＩＣカードでは、既にインストールされているアプリケーションプログラムに、付加的な機能を追加することは困難である。これは、１つのアプリケーションプログラムをインストールすると、当該アプリケーションのためのプログラム領域、データ領域などがメモリ上に確定するため、新たな機能のためのルーチンを付加することが困難になるためである。したがって、従来のＩＣカードでは、１つのアプリケーションに付加機能を追加する必要が生じた場合、アプリケーションプログラムごと新規なプログラムに入れ替えざるを得ず、大掛かりな改訂作業が必要になる。
【０００６】
そこで本発明は、複数のアプリケーションプログラムを格納した携帯型情報処理装置において、特定のアプリケーションについて、新機能を容易に追加することができる新規な構成を提供することを目的とする。
【０００７】
【課題を解決するための手段】
(1)   本発明の第１の態様は、携帯時には単体として持ち運びされ、アクセス時には外部装置から与えた所定のコマンドに対して所定のレスポンスが返されるように構成された携帯型情報処理装置において、
ＯＳプログラムが記録された第１の領域と、複数のアプリケーションプログラムが記録された第２の領域と、データを格納する第３の領域と、作業領域として用いられる第４の領域と、複数のアプリケーションプログラムの中から選択されたカレントアプリケーションを指定するカレントアプリケーション指定情報を格納する第５の領域と、複数のアプリケーションプログラムに跨がった複数のルーチンを所定の順序で実行すべきことを示す連続実行規則を格納する第６の領域と、を有する記憶手段と、
ＯＳプログラムの管理下でアプリケーションプログラムを実行する演算処理手段と、
外部装置から与えられたコマンドを受信して演算処理手段に引き渡すとともに、演算処理手段から与えられたレスポンスを外部装置へ送信する処理を行う送受信手段と、
を設け、演算処理手段は、
カレントアプリケーションを指定するためのアプリケーション選択コマンドが与えられたとき、または、ＯＳプログラムの指示により特定のカレントアプリケーションが指定されたときに、該カレントアプリケーションを示すカレントアプリケーション指定情報を第５の領域に格納する処理を行い、
単一アプリケーション用実行コマンドが与えられたときに、第５の領域に格納されているカレントアプリケーション指定情報によって、その時点においてカレントアプリケーションとして指定されているアプリケーションプログラムに基づいて、与えられたコマンドを実行する処理を行い、
複数アプリケーション用連続実行コマンドが与えられたときに、第６の領域に格納されている連続実行規則に基づいて、複数のルーチンを所定の順序で実行する処理を行う機能を有するようにし、
別なアプリケーションプログラムのルーチンを利用することにより、付加的な機能を実現できるようにしたものである。
【０００８】
(2)   本発明の第２の態様は、上述の第１の態様に係る携帯型情報処理装置において、
連続実行規則として、第１のルーチンの実行後に第２のルーチンを実行すべき旨の順序を示す規則に加えて、第１のルーチンの実行により生成されるパラメータを、第２のルーチンに引き渡す旨の規則を用いるようにしたものである。
【０００９】
(3)   本発明の第３の態様は、上述の第２の態様に係る携帯型情報処理装置において、
連続実行規則として、第２のルーチンとなるべき複数の候補を定め、第１のルーチンの実行により生成されるパラメータに基づいて、複数の候補の中の１つのルーチンを第２のルーチンとして選択しこれを実行すべき旨の規則を用いるようにしたものである。
【００１０】
(4)   本発明の第４の態様は、上述の第１〜第３の態様に係る携帯型情報処理装置において、
演算処理手段が、送受信手段から単一アプリケーション用実行コマンドまたは複数アプリケーション用連続実行コマンドが与えられたときに、両者を区別せずに、その時点においてカレントアプリケーションとして指定されているアプリケーションプログラムに基づいて、与えられたコマンドの実行を試みる処理を行い、エラーが生じた場合には、与えられたコマンドを複数アプリケーション用連続実行コマンドと認識して、連続実行規則に基づく処理を実行するようにしたものである。
【００１１】
(5)   本発明の第５の態様は、上述の第１〜第４の態様に係る携帯型情報処理装置において、
第６の領域に複数の連続実行規則を格納するようにし、演算処理手段が、与えられた複数アプリケーション用連続実行コマンドに対応した連続実行規則に基づいて、複数のルーチンを所定の順序で実行する処理を行うことをができるようにしたものである。
【００１２】
(6)   本発明の第６の態様は、上述の第５の態様に係る携帯型情報処理装置において、
演算処理手段が、新たな連続実行規則を含む連続実行規則追加コマンドが与えられたときに、第６の領域に新たな連続実行規則を格納する処理を行うことができるようにしたものである。
【００１３】
【発明の実施の形態】
以下、本発明を図示する実施形態に基づいて説明する。図１は、本発明の一実施形態に係る携帯型情報処理装置（具体的には、ＩＣカード）１００の構成を示すブロック図である。この携帯型情報処理装置１００は、携帯時には単体として持ち運びされ、アクセス時には外部装置（具体的には、リーダライタ装置）２００に接続される。この外部装置２００から所定のコマンドを与えると、携帯型情報処理装置１００内部において所定の処理が実施され、その結果がレスポンスとして外部装置２００へと返される。
【００１４】
携帯型情報処理装置１００の基本構成要素は、図示のとおり、記憶手段１１０、演算処理手段１２０、送受信手段１３０である。記憶手段１１０には、種々のプログラムやデータが記録される。演算処理手段１２０は、この記憶手段１１０内のプログラムに基づいて、外部装置２００から与えられるコマンドを実行する。外部装置２００に対する送受信処理は、送受信手段１３０によって行われる。送受信手段１３０と外部装置２００との間の交信は、物理的に電極を接触させて電気信号をやりとりする接触方式で行ってもよいし、電磁的な信号路を形成して情報をやりとりする非接触方式で行ってもよい。外部装置２００から与えられたコマンドは、送受信手段１３０で受信され、演算処理手段１２０によって実行される。コマンドの実行後、演算処理手段１２０から何らかのレスポンスが出力され、送受信手段１３０によって外部装置２００へと送信される。このように、携帯型情報処理装置１００と外部装置２００との間の交信は、外部装置２００からのコマンド送信と携帯型情報処理装置１００からのレスポンス送信を交互に繰り返すことにより行われる。
【００１５】
記憶手段１１０内には、図示のとおり、６つの領域が設けられている。第１の領域Ｍ１には、この携帯型情報処理装置１００による処理動作を統括管理するためのＯＳプログラムが格納されている。演算処理手段１２０は、基本的には、このＯＳプログラムの管理下で種々の処理を実行することになる。第２の領域Ｍ２には、複数のアプリケーションプログラムが格納されている。図では、具体的に、５種類のアプリケーションプログラムＡ〜Ｅが用意されている例が示されている。通常、これらの各アプリケーションプログラムは、それぞれ異なる用途に利用されるプログラムになる。たとえば、プログラムＡは、このＩＣカードを病院用診察カードとして利用するための処理を行うプログラムであり、プログラムＢは、このＩＣカードをクレジットカードとして利用するための処理を行うプログラムであり、プログラムＣは、このＩＣカードを図書館用貸出カードとして利用するための処理を行うプログラムであり、…といった具合である。
【００１６】
第３の領域Ｍ３には、データが格納されている。このデータは、ＯＳプログラムや各アプリケーションプログラムが利用するためのデータであり、複数のプログラムから共通して利用されるデータもあれば、個々のアプリケーションプログラムに固有のデータもある。なお、実用上は、特定のアプリケーションプログラムに固有のデータは、当該アプリケーションプログラムの格納領域に隣接した領域に格納するのが一般的であるが、ここでは便宜上、いずれのアプリケーションで用いられるデータも、第３の領域Ｍ３内に格納されるものとして以下の説明を行う。また、第４の領域Ｍ４は、演算処理手段１２０が種々の演算処理を行う上での作業領域として利用される領域であり、第５の領域Ｍ５は、カレントアプリケーション指定情報を格納するための領域である。ここで、「カレントアプリケーション」とは、第２の領域Ｍ２に格納されている複数のアプリケーションプログラムＡ〜Ｅの中から選択された１つのアプリケーションであり、「現時点で選択されているアプリケーション」ということになる。外部装置２００から与えられたコマンドは、原則的に（後述するように、単一アプリケーション用実行コマンドである限りは）、この「カレントアプリケーション」によって実行される。なお、この第５の領域Ｍ５は、第４の領域Ｍ４の一部として取り扱うことも可能であるが、本発明においては重要な構成要素であるため、ここでは「カレントアプリケーション指定情報」を格納するための専用の領域として、第５の領域Ｍ５を定義することにする。
【００１７】
上述した第１の領域Ｍ１〜第５の領域Ｍ５は、従来のＩＣカードにおいても利用されている領域である。本発明の特徴は、更に、第６の領域Ｍ６を設け、ここに連続実行規則Ｒ１〜Ｒ３を格納するようにし、第２の領域Ｍ２内に用意されている複数のアプリケーションプログラムに跨がった複数のルーチンを実行できるようにした点にある。ここで、連続実行規則Ｒ１〜Ｒ３は、後に詳述するように、それぞれ複数のアプリケーションプログラムに跨がった複数のルーチンを所定の順序で実行すべきことを示す規則であり、演算処理手段１２０は、この連続実行規則に基づいて、外部から与えられたコマンドを複数のアプリケーションに処理させることができる。
【００１８】
なお、図１に示す実施形態では、記憶手段１１０を１つのブロックで示しているが、実際には、ＩＣカード内にはＲＯＭ，ＥＥＰＲＯＭなどの不揮発性メモリと、ＲＡＭなどの揮発性メモリとが内蔵されており、各領域Ｍ１〜Ｍ６は、これら複数のメモリに適宜分散して設けられている。この実施形態では、ＯＳプログラムを格納する第１の領域Ｍ１はＲＯＭ内に設けられている（一部は、ＥＥＰＲＯＭ内に設けて書き替えができるようにしてもよい）。また、作業領域として利用される第４の領域Ｍ４およびカレントアプリケーション指定情報を格納する第５の領域Ｍ５は、ＲＡＭ内に設けられている。このＩＣカードでは、電力はすべて外部装置２００側から供給されるので、外部装置２００との交信が完了し、外部装置２００が切り離されると、第４の領域Ｍ４および第５の領域Ｍ５の内容はすべて失われることになる。一方、アプリケーションプログラムを格納する第２の領域Ｍ２、データを格納する第３の領域Ｍ３、連続実行規則を格納する第６の領域Ｍ６は、いずれもＥＥＰＲＯＭ内に設けられている。したがって、これらの情報は、外部装置２００が切り離された後もそのまま保持されることになる。また、ＥＥＰＲＯＭは書換えや追加書込が可能であるため、アプリケーションプログラム、データ、連続実行規則は、いずれも修正したり追加したりすることができる。
【００１９】
演算処理手段１２０は、ＩＣカード用のＣＰＵから構成されており、ＯＳプログラムの管理下で、アプリケーションプログラムＡ〜Ｅを実行する機能を有している。上述したように、外部装置２００から与えられたコマンドは、送受信手段１３０を介して演算処理手段１２０に引き渡される。一般に、コマンドは、ＯＳプログラムに実行させるためのコマンド（以下、ＯＳプログラム用実行コマンドという）と、アプリケーションプログラムに実行させるためのコマンド（以下、アプリケーション用実行コマンドという）とに分類できる。いずれの種類のコマンドであるかは、通常、コマンド名の部分で認識する。演算処理手段１２０は、与えられたコマンドがＯＳプログラム用実行コマンドであった場合には、第１の領域Ｍ１内のＯＳプログラムに基づいてこれを実行し、与えられたコマンドがアプリケーション用実行コマンドであった場合には、第２の領域Ｍ２内のアプリケーションプログラムに基づいてこれを実行する。第２の領域Ｍ２内には、複数のアプリケーションプログラムＡ〜Ｅが格納されているが、このうちの１つが、第５の領域Ｍ５に格納されているカレントアプリケーション指定情報によって、カレントアプリケーションとして指定されており、与えられたアプリケーション用実行コマンドは、カレントアプリケーションによって実行されることになる。
【００２０】
このように、従来のＩＣカードの場合、アプリケーション用実行コマンドは、現時点でカレントアプリケーションとして指定されているアプリケーションプログラムによって実行されることを前提としたコマンドであり、単一のアプリケーションプログラムを前提としたコマンドとなっている。たとえば、アプリケーションプログラムＡがカレントアプリケーションとして指定されていた場合、外部装置２００からは、このアプリケーションプログラムＡが解釈実行可能なアプリケーション用実行コマンドを与える必要がある。別言すれば、アプリケーションプログラムＡをカレントアプリケーションとして指定している状態では、アプリケーションプログラムＡが解釈実行可能なアプリケーション用実行コマンド以外は実行することができないことになる。
【００２１】
本発明の基本的な着眼点は、アプリケーションプログラムＡがカレントアプリケーションとして指定されている状態であっても、たとえば、アプリケーションプログラムＢ内のルーチンを利用した処理を行うことができれば、実質的に、アプリケーションプログラムＡの機能を拡張させることができるであろう、という技術思想に基づくものである。このように、複数のアプリケーション間を跨がうようにしてコマンドを処理することができれば、単一のアプリケーションでは対応できないような仕事を、複数のアプリケーションの連携動作により処理することが可能になる。
【００２２】
たとえば、アプリケーションプログラムＡが、このＩＣカードを病院用診察カードとして利用するための処理を行うプログラムであったとしよう。ここで、病院に設置された外部装置２００を用いて、このＩＣカードを病院用診察カードとして利用する場合を考えると、当然、アプリケーションプログラムＡがカレントアプリケーションとして指定され、プログラムＡに基づいて診療のための種々の処理が実行されることになる。そして、たまたま診療会計処理を行う必要が生じたが、アプリケーションプログラムＡ自身には、１か月間の医療費を集計する機能が備わっていなかったとする。この場合、従来のＩＣカードでは、このような１か月間の医療費の集計処理を、ＩＣカード内部で実行させることはできない。ところが本発明に係るＩＣカードでは、このような集計機能を搭載したアプリケーションプログラムＢを追加インストールし、１ヶ月間の医療費を集計する処理については、このアプリケーションプログラムＢ内のルーチンを利用するような連続実行規則を用意すれば、ＩＣカード内での集計処理が可能になる。このような方法をとれば、あたかもアプリケーションプログラムＡの機能を拡張したような取り扱いが可能になる。
【００２３】
このような処理を実現するために、本発明では、アプリケーションプログラムに実行させるべきコマンドに、２通りのコマンドを用意している。第１のコマンドは、従来どおり、カレントアプリケーションとして指定されている単一のアプリケーションによって実行させるべきコマンドであり、ここでは「単一アプリケーション用実行コマンド」と呼ぶことにする。一方、第２のコマンドは、本発明に特有のコマンドであり、カレントアプリケーションとして指定されているアプリケーション以外のアプリケーションプログラムのルーチンを利用して実行させるべきコマンドであり、ここでは「複数アプリケーション用連続実行コマンド」と呼ぶことにする。上述の例の場合、１か月間の医療費を集計する処理は、カレントアプリケーションとして指定されているアプリケーションプログラムＡと、これとは別なアプリケーションプログラムＢとを連続的に（処理途中でレスポンスを発生させることなしに）実行させる「複数アプリケーション用連続実行コマンド」を与えることにより実現できるようになる。
【００２４】
結局、本発明に係るＩＣカードに対しては、図２に示すような３つのタイプのコマンドを与えることができる。すなわち、「ＯＳプログラム用実行コマンド」、「単一アプリケーション用実行コマンド」、「複数アプリケーション用連続実行コマンド」の３つのタイプのコマンドである。
【００２５】
ここで、「ＯＳプログラム用実行コマンド」は、ＯＳプログラムによって実行されるコマンドであり、たとえば、図２に示すように、「アプリケーション選択コマンド」、「アプリケーション追加コマンド」、「連続実行規則追加コマンド」のようなコマンドが用意される（実際には、この他にも種々のコマンドが用意される）。「アプリケーション選択コマンド」は、カレントアプリケーションを指定するためのコマンドであり、たとえば「ＳＥＬＥＣＴ−ＡＰＰＬＩＣＡＴＩＯＮ  ＰＲＯＧ−Ａ」のように、コマンド名（ＳＥＬＥＣＴ−ＡＰＰＬＩＣＡＴＩＯＮ）と、特定のアプリケーションを指定する情報（ＰＲＯＧ−Ａ）をもったコマンドになる。演算処理手段１２０は、このような「アプリケーション選択コマンド」が与えられると、ＯＳプログラムに基づいて、指定されたアプリケーションプログラムをカレントアプリケーションとして示す「カレントアプリケーション指定情報」を第５の領域Ｍ５に書き込む処理を実行する。上述した例のように、「ＳＥＬＥＣＴ−ＡＰＰＬＩＣＡＴＩＯＮ  ＰＲＯＧ−Ａ」なるコマンドが与えられた場合、第５の領域Ｍ５には、「アプリケーションプログラムＡ」がカレントアプリケーションである旨の指定情報（たとえば、「ＰＲＯＧ−Ａ」なるデータ）が書き込まれることになる。
【００２６】
なお、第５の領域Ｍ５への「カレントアプリケーション指定情報」の書込処理は、「アプリケーション選択コマンド」が与えられた場合だけでなく、ＯＳプログラムの指示により特定のカレントアプリケーションが指定されたときにも実行される。具体的には、ＯＳプログラムの起動時に、デフォルト指定された特定のアプリケーションプログラムが、カレントアプリケーションとして自動的に指定され、当該デフォルトのアプリケーションプログラムを指定する「カレントアプリケーション指定情報」が第５の領域Ｍ５に書き込まれる。
【００２７】
一方、「アプリケーション追加コマンド」および「連続実行規則追加コマンド」も、ＯＳプログラムによって実行されるべき「ＯＳプログラム用実行コマンド」である。「アプリケーション追加コマンド」は、第２の領域Ｍ２に新たなアプリケーションプログラムを追加書込するためのコマンドであり、コマンド名に後続して、当該プログラムのオブジェクトコードが外部装置２００側から与えられることになる。演算処理手段１２０は、ＯＳプログラムに基づいて、与えられた新規アプリケーションのオブジェクトコードを、第２の領域Ｍ２（通常は、ＥＥＰＲＯＭからなる領域）へ書き込む処理を実行する。また、「連続実行規則追加コマンド」は、第６の領域Ｍ６に新たな連続実行規則を追加書込するためのコマンドであり、コマンド名に後続して、当該連続実行規則を示すコードが外部装置２００側から与えられることになる。演算処理手段１２０は、ＯＳプログラムに基づいて、与えられた新規規則を示すコードを、第６の領域Ｍ６（通常は、ＥＥＰＲＯＭからなる領域）へ書き込む処理を実行する。
【００２８】
以上、本実施形態に係るＩＣカードで用いられる「ＯＳプログラム用実行コマンド」の一例を説明した。通常は、この他にも種々の「ＯＳプログラム用実行コマンド」が用意されているが、ここでは詳しい説明は省略する。
【００２９】
一方、「単一アプリケーション用実行コマンド」は、カレントアプリケーションとして指定されている特定のアプリケーションプログラムに実行させるべきコマンドであり、従来のＩＣカードにおける一般的なアプリケーション用実行コマンドに相当するものである。図示の例のように、プログラムＡ用コマンド、プログラムＢ用コマンド、プログラムＣ用コマンド、…と各アプリケーションプログラムごとに所定のコマンドが用意されることになる。具体的にどのようなコマンドが用意されるかは、個々のアプリケーションプログラムに依存して定まるが、たとえば、特定のユーザデータを第３の領域Ｍ３に書き込むコマンドや、特定のユーザデータを第３の領域Ｍ３から読み出すコマンドや、特定のユーザデータを検索するコマンドや、与えられたデータと読み出したユーザデータとの間で所定の演算を実行してその結果をレスポンスとして返すコマンドなど千差万別である。もちろん、プログラムＡ，Ｂ用に共通したコマンドを用意することも可能である。
【００３０】
いずれにせよ、この「単一アプリケーション用実行コマンド」は、コマンドを与えた時点においてカレントアプリケーションとして指定されている単一のアプリケーションプログラムによって実行処理されるコマンドであり、実行後には、何らかのレスポンスが外部装置２００に返される（外部装置２００に対して、何らかのデータを送信する場合もあれば、単に、処理が正常終了したことを示す確認を送信する場合もある）。また、カレントアプリケーションとして指定されているアプリケーションプログラムが、与えられたコマンドを実行することができない場合（たとえば、プログラムＡがカレントアプリケーションとして指定されている状態において、プログラムＢ用コマンドが与えられたような場合）には、エラーを示すレスポンスが外部装置２００に返されることになる。
【００３１】
本発明の特徴となる「複数アプリケーション用連続実行コマンド」は、コマンドを与えた時点においてカレントアプリケーションとして指定されている単一のアプリケーションプログラムだけでは、実行処理することができないコマンドであり、カレントアプリケーションとそれ以外のアプリケーションプログラムとを連続的に実行することにより処理することが可能なコマンドということになる。たとえば、カレントアプリケーションとして指定されているプログラムＡによる処理を実行した後、更に、別なアプリケーションプログラムＢを実行することにより処理が完了するようなコマンドが、本発明の特徴となる「複数アプリケーション用連続実行コマンド」になる。このようなコマンドを用いれば、外部装置２００側から見れば、あたかもアプリケーションプログラムＡに新たな機能（プログラムＢの機能）が追加されたような取り扱いが可能になる。
【００３２】
もっとも、このような「複数アプリケーション用連続実行コマンド」を演算処理手段１２０に実行させるためには、予め、第６の領域Ｍ６に連続実行規則を用意しておく必要がある。別言すれば、演算処理手段１２０は、「複数アプリケーション用連続実行コマンド」が与えられた場合、この第６の領域Ｍ６に格納されている連続実行規則に基づいて、複数のアプリケーションに跨がる複数のルーチンを所定の順序で実行する処理を行うことになる。実用上は、第６の領域Ｍ６には、複数の連続実行規則を格納しておくようにし、「複数アプリケーション用連続実行コマンド」には、どの連続実行規則を用いるコマンドであるかを指定する情報を含ませておくようにする。図１には、第６の領域Ｍ６内に３つの規則Ｒ１，Ｒ２，Ｒ３が格納されている状態が示されているが、この場合は、「複数アプリケーション用連続実行コマンド」としては、図２の下欄に示すように、規則Ｒ１に基づくコマンド、規則Ｒ２に基づくコマンド、規則Ｒ３に基づくコマンドの３通りのコマンドを用いることができる。各コマンドに、コマンド名の部分やパラメータの部分に、規則Ｒ１〜Ｒ３のいずれか１つを示す情報を含ませておくようにすれば、演算処理手段１２０は、当該コマンドを受け取ったときに、規則Ｒ１〜Ｒ３のいずれに従って処理すべきかを認識することができる。
【００３３】
図３は、規則Ｒ１〜Ｒ３の一例を示すブロック図である。演算処理手段１２０は、このような規則に基づいて、「複数アプリケーション用連続実行コマンド」の処理を所定の順序で実行することになる。
【００３４】
たとえば、規則Ｒ１は、プログラムＡを実行した後、プログラムＢを実行すべきことを示す規則である。通常、プログラムＡやＢは、何らかのデータやパラメータを伴うコマンドを実行するためのルーチンの集合から構成されている。したがって、実際には、規則Ｒ１は、プログラムＡに対して与えるべき「プログラムＡ用コマンド」とプログラムＢに対して与えるべき「プログラムＢ用コマンド」とを含んでいることになる。従来のＩＣカードにおいて、「プログラムＡ用コマンド」が単一アプリケーション用実行コマンドとして演算処理手段１２０に与えられた場合、プログラムＡによって、このコマンドが実行された後、その結果がレスポンスとして外部装置２００側に返されることになる。これに対して、本発明に係るＩＣカードにおいて、図３に示すような規則１に基づく「複数アプリケーション用連続実行コマンド」が与えられた場合は、この規則１に定められている所定の「プログラムＡ用コマンド」がプログラムＡに引き渡されて実行された後、続いて、この規則１に定められている所定の「プログラムＢ用コマンド」がプログラムＢに引き渡されて実行され、その結果が、レスポンスとして外部装置２００側に返されることになる。すなわち、プログラムＡによる所定の処理とプログラムＢによる所定の処理とが連続的に実施され、この連続的な処理の結果がレスポンスとして返されることになる。そして、このとき、プログラムＡの実行により生成されるパラメータＸが、プログラムＢへと引き渡される。結局、プログラムＡの処理の結果を利用して、プログラムＢが続いて実行されることになる。
【００３５】
前述した例のように、アプリケーションプログラムＡが、ＩＣカードを病院用診察カードとして利用するための処理を行うプログラムであり、アプリケーションプログラムＢが、集計処理機能をもったプログラムであり、１か月間の医療費の集計処理を、アプリケーションプログラムＢ内の処理ルーチンを利用して行うような場合には、規則Ｒ１のように、プログラムＡからプログラムＢへとパラメータＸを引き渡すような処理が利用できる。この場合、「複数アプリケーション用連続実行コマンド」として、「１か月間の医療費の集計コマンド」なるコマンドを定義しておき、このコマンドを実行するための規則Ｒ１を連続実行規則として定めておけばよい。具体的には、まず、プログラムＡに対して１か月分の医療費リストを読み出す読出コマンドを実行させ、読み出された医療費リストをパラメータＸとして取り出し、続いて、プログラムＢに対して、このパラメータＸを与えてその集計を行う集計コマンドを実行させ、その結果をレスポンスとする、というような規則Ｒ１を定めておけばよい。プログラムＡにはもともと１か月間の医療費の集計処理を行う機能は用意されていなかったとしても、集計処理の部分だけをプログラムＢのルーチンを利用して実施することができるので、外部装置２００側から見れば、プログラムＡに新たな集計機能が付加されたような取り扱いが可能になる。
【００３６】
図３に示す規則Ｒ１は、２つのアプリケーションプログラムＡ，Ｂを順番に実行させる規則であるが、もちろん、３つ以上のアプリケーションプログラムを順次実行させるような規則を定義することも可能である。また、必ずしもプログラム単位での実行順序を定義する必要はなく、ある１つのアプリケーションプログラム中の特定のルーチンについての実行順序を定めた連続実行規則を定義してもかまわない。図３の規則Ｒ２は、このようにルーチン単位での実行規則を定めた例である。すなわち、まず、プログラムＣの中の特定のルーチンｃ１を実行し（必要に応じて、何らかのパラメータを与えてルーチンｃ１を実行するようにしてもよい）、その結果得られるパラメータＸを用いてプログラムＤを実行し、続いて、その結果得られるパラメータＹを用いてプログラムＥ内の特定のルーチンｅ２を実行し、更に、その結果得られるパラメータＺを用いて再びプログラムＣ内の特定のルーチンｃ２を実行し、その結果をレスポンスとして返す処理が行われることになる。
【００３７】
一般に、１つのアプリケーションプログラムは、複数のルーチンの集合体であるから、結局、本発明における連続実行規則とは、複数のアプリケーションプログラムに跨がった複数のルーチンを所定の順序で実行すべきことを示す規則ということができる。したがって、本願では、「ルーチン」という文言を、プログラムを構成する１つ１つのルーチンを示す意味で用いるだけでなく、ルーチンの集合体であるプログラム全体を示す意味でも用いることにする。
【００３８】
なお、連続実行規則は、必ずしも常に一定の順序で実行すべきルーチンを定義した規則にする必要はなく、１つのルーチンの実行により生成されるパラメータに基づいて、後続して実行すべきルーチンが変わるような規則であってもかまわない。この場合、後続して実行されるべきルーチンとして複数の候補を定めておき、パラメータの値に応じて、この複数の候補の中からどれを選択して実行すべきかを定めた規則を用意しておけばよい。図３の規則Ｒ３は、このような規則の一例である。この例では、プログラムＥに後続するルーチンとして、プログラムＢ、プログラムＤ、プログラムＢ内のルーチンｂ８という３通りの候補が定められており、プログラムＥの実行によって得られるパラメータＸに基づいて、いずれか１つの候補が後続して実行されることになる。具体的には、図示の例の場合、パラメータＸが正の場合は、プログラムＢが実行され、パラメータＸが負の場合は、プログラムＤが実行され、パラメータＸが０の場合は、プログラムＢ内のルーチンｂ８が実行されることになる。
【００３９】
図３には、本発明において用意される連続実行規則を、３つの例として示したが、もちろん、連続実行規則としては、任意の規則を自由に定義することが可能である。しかも、図２の上欄に示すように、「ＯＳプログラム用実行コマンド」のひとつとして、「連続実行規則追加コマンド」を用意しておけば、前述したように、必要に応じて、新たな連続実行規則を第６の領域Ｍ６に追加して格納することができる。
【００４０】
また、場合によっては、カレントアプリケーションとなっているアプリケーションプログラムによる実質的な処理は全く行われず、全く別なアプリケーションプログラムによる処理のみが実行される場合もある。たとえば、プログラムＡがカレントアプリケーションとして指定されている場合に、プログラムＢ内のルーチンのみによって処理が行われる「複数アプリケーション用連続実行コマンド」が与えられた場合、プログラムＡは実質的な処理には何ら関与せず、実質的な処理はプログラムＢのみによって行われることになる。しかし、この場合も、外部装置２００側からみれば、見掛け上、カレントアプリケーションとして選択されているアプリケーションプログラムＡに対して何らかのコマンドを与えたら、これに対するレスポンスが戻ってきたように取り扱われる。いわば、アプリケーションプログラムＡは、処理の窓口としての機能を果たすことになる。
【００４１】
なお、実用上の観点からは、「複数アプリケーション用連続実行コマンド」を利用する頻度は、「単一アプリケーション用実行コマンド」を利用する頻度に比べれば、低いことが予想される。このような観点に立てば、外部装置２００から何らかのコマンドが与えられるたびに、演算処理手段１２０において、与えられたコマンドが「単一アプリケーション用実行コマンド」であるのか、「複数アプリケーション用連続実行コマンド」であるのかをその都度認識する処理を行うのは非効率的である。そこで、実用上は、演算処理手段１２０は、コマンドを受け取ったら、当該コマンドが、「単一アプリケーション用実行コマンド」であろうが、「複数アプリケーション用連続実行コマンド」であろうが、両者を区別せずに、とりあえず、その時点においてカレントアプリケーションとして指定されているアプリケーションプログラムに基づいて、与えられたコマンドの実行を試みる処理を行い、エラーが生じた場合には、与えられたコマンドを「複数アプリケーション用連続実行コマンド」と認識して、第６の領域Ｍ６に格納されている連続実行規則に基いて処理を実行するようにしておけばよい。
【００４２】
以上、本発明に係る携帯型情報処理装置をＩＣカードの例について説明したが、本発明はＩＣカードに限らず、その他の携帯型情報処理装置においても同様に適用が可能である。
【００４３】
【発明の効果】
以上のとおり本発明によれば、複数のアプリケーションプログラムを格納した携帯型情報処理装置において、特定のアプリケーションについて、新機能を容易に追加することができるようになる。
【図面の簡単な説明】
【図１】本発明の基本的な実施形態に係る携帯型情報処理装置の構成を示すブロック図である。
【図２】図１に示す携帯型情報処理装置において利用可能な３つのタイプのコマンドの例を示す図である。
【図３】図１に示す携帯型情報処理装置内に格納される連続実行規則の例を示す図である。
【符号の説明】
１００…携帯型情報処理装置（ＩＣカード）
１１０…記憶手段
１２０…演算処理手段
１３０…送受信手段
２００…外部装置（リーダライタ装置）
Ａ〜Ｅ…アプリケーションプログラム
Ｍ１〜Ｍ６…記憶手段１１０内の領域
Ｒ１〜Ｒ３…連続実行規則
Ｘ，Ｙ，Ｚ…パラメータ
【図１】
0004747450.tif 000002
【図２】
0004747450.tif 000003
【図３】
0004747450.tif 000004