(57)【要約】【課題】複数のアプリケーションを連続して実行可能なＩＣカードにおいて、コマンド発行回数を減らし、処理時間を減らすことを目的とする。【解決手段】処理コマンドを格納するマルチキャストコマンドと、該ＩＣカードが実行可能なアプリケーションを管理する管理テーブルと、処理コマンドを実行する複数のアプリケーションを順次選択し、処理コマンド実行の制御を該アプリケーションに移動する制御移動手段と、複数のアプリケーションの各々の実行結果データを一時的に保持するレスポンス保持領域と、レスポンス保持領域に保持する実行結果データを端末装置に送信するレスポンス送信手段とを設けたことを特徴とするＩＣカード、およびマルチキャストコマンドに基づいて、一つの処理コマンドを複数のアプリケーションで実行することを可能とするコマンド処理方法を提供する。【選択図】  図６
2004164261.tif 000002
【特許請求の範囲】
【請求項１】
端末装置から処理コマンドを受信し、該処理コマンドをアプリケーションプログラムにおいて実行し、該処理コマンドの実行結果データを前記端末装置に送信するＩＣカードであって、
複数のアプリケーションプログラムにより実行される処理コマンドを格納するマルチキャストコマンドと、
該ＩＣカードが実行可能なアプリケーションプログラムを管理する管理テーブルと、
前記処理コマンドを実行する複数のアプリケーションプログラムを順次選択し、前記処理コマンド実行の制御を該アプリケーションプログラムに移動する制御移動手段と、
前記処理コマンドを実行した複数のアプリケーションプログラムの各々の実行結果データを一時的に保持するレスポンス保持領域と、
前記複数のアプリケーションプログラムによる処理コマンドの実行が全て終了した後に、前記レスポンス保持領域に保持する実行結果データを前記端末装置に送信するレスポンス送信手段と、
を備えることを特徴とするＩＣカード。
【請求項２】
請求項１記載のＩＣカードであって、
前記制御移動手段が、
前記マルチキャストコマンドの中のクラスバイト、および命令種類と呼ばれるコマンド識別情報により、複数のアプリケーションプログラムにおいて実行するマルチキャストコマンドと、特定のアプリケーションプログラムにおいて実行する通常コマンドとを識別する、
ことを特徴とするＩＣカード。
【請求項３】
請求項１または２記載のＩＣカードであって、
前記管理テーブルが、
アプリケーションプログラムを一意に特定可能なアプリケーション識別情報を備え、
前記制御移動手段が、
予め定めた規則に従い、前記アプリケーション識別情報が、前記マルチキャストコマンドに格納されているアプリケーションプログラムを指定する指定情報と一致する複数のアプリケーションプログラムを順次選択し、処理コマンド実行の制御を順次移動する、
ことを特徴とするＩＣカード。
【請求項４】
端末装置から処理コマンドを受信し、該処理コマンドをアプリケーションプログラムにおいて実行し、該処理コマンドの実行結果データを前記端末装置に送信するＩＣカードにおけるコマンドの処理方法であって、
該ＩＣカードにおいて実行可能なアプリケーションプログラムを管理テーブルに記憶する段階と、
前記端末装置が、複数のアプリケーションプログラムにより実行する処理コマンドを格納するマルチキャストコマンドをＩＣカードへ送信する段階と、
前記マルチキャストコマンドに基づき、連続実行する複数のアプリケーションプログラムを順次選択し、前記処理コマンド実行の制御を選択された該アプリケーションプログラムに移動する段階と、
前記処理コマンドを実行した各々のアプリケーションプログラムが、実行結果データを一時的にレスポンス保持領域へ保持する段階と、
前記複数のアプリケーションプログラムによる処理コマンドの実行が全て終了した後に、前記レスポンス保持領域に保持する実行結果データを前記端末装置に送信する段階と、
を設けたことを特徴とするＩＣカードにおけるコマンド処理方法。
【請求項５】
請求項４に記載のＩＣカードにおけるコマンド処理方法であって、
前記処理コマンドが、
複数のアプリケーションプログラムに対して通信開始要求があるかどうかを確認するための処理コマンドであり、
前記処理コマンドにより、各々のアプリケーションプログラムが、通信開始要求の有無を一時的にレスポンス保持領域へ保持する段階、
を設けたことを特徴とするＩＣカードにおけるコマンド処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数のアプリケーションプログラム（以下、単にアプリケーションという）を実行可能なＩＣカードに関し、特に、連続で実行する複数のアプリケーションにおけるコマンドの処理方法に関するものである。
【０００２】
【従来の技術】
従来、ＪａｖａＣａｒｄ（登録商標）やＭｕｌｔｏｓのような複数のアプリケーションプログラムを実行可能なＩＣカードは、ＩＳＯ７８１６−４に従い、国内および世界中で重複がないように登録制により付与されるＡＩＤという５〜１６バイトの固有の識別子を付けてアプリケーションを一意に特定し、そのＡＩＤによりアプリケーションを選択してから、続く処理を指示するという手順を取っている。
【０００３】
例えば、クレジットの支払い処理とポイント加算処理を行うには、まず、端末装置が、「ＳＥＬＥＣＴ  ＦＩＬＥ  ｘｘｘｘ」（ｘｘｘｘは、クレジットアプリケーションを示すＡＩＤ）というコマンドをＩＣカードに送信し、ＩＣカードが、クレジットアプリケーションを選択し、次に、認証コマンドや支払いコマンドを端末装置からＩＣカードに送信すると、ＩＣカードは、それらのコマンドの実行制御を、選択済みのクレジットアプリケーションに移動するという手順になる。
【０００４】
ＩＳＯ７８１６−４において、コマンド実行の制御は、選択されているアプリケーションに対して移動するため、クレジットの支払い処理に続いてポイント加算処理を行うには、新たにポイントアプリケーションを選択し直して、ポイント加算コマンドを端末装置からカードに送信する必要がある。
【０００５】
つまり、必ず連続して複数のアプリケーションで処理したい同一のコマンドにおいても、アプリケーションが異なる場合は、その都度、アプリケーションの選択コマンドの送信、および選択したアプリケーションへのコマンドへの実行制御の移動を行わなければならない。
【０００６】
また、近い将来、ＩＣカードは、携帯電話、携帯情報端末（ＰＤＡ：Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）、情報家電などの様々な機器を介してネットワーク、特にインターネットに接続し、インターネットの標準的なプロトコルであるＴＣＰ／ＩＰ（プロトコルの詳細については、非特許文献１を参照）による通信を行うことが予想されており、従来のように端末装置の要求にＩＣカードが応えるだけでなく、ＩＣカードに搭載されたアプリケーションがインターネットに接続しにいくようになる。
【０００７】
しかしながら、ＩＣカードで使用されるＩＳＯ規格の下位層（ＩＳＯ７８１６−３）は、半二重の通信プロトコルであるため、ＩＣカード側から送信を開始することは想定されておらず、ＩＣカードは、必ず端末装置側からコマンドを受信し、ＩＣカード内部の処理結果を端末装置に返信する仕組みとなっている。
【０００８】
ＩＣカードからネットワークへ送信したい場合には、まず端末装置から定期的に「送信するかどうか（ネットワークと通信を行うかどうか）」をＩＣカードへ問い合わせし（ポーリング）、それに応える形でＩＣカードが通信を開始する方式が、ＩＥＴＦ（Ｉｎｔｅｒｎｅｔ  Ｅｎｇｉｎｅｅｒｉｎｇ  Ｔａｓｋ  Ｆｏｒｃｅ）に対して提案されている（例えば、非特許文献２参照。）。
【０００９】
【非特許文献１】
Ｐｏｓｔｅｌ，  Ｊ．、“Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ”、ＲＦＣ  ７９３、１９８１年９月
【非特許文献２】
Ｍｏｂｉｌｅ−Ｍｉｎｄ社、“ＩＰ  ａｎｄ  ＡＲＰ  ｏｖｅｒ  ＩＳＯ  ７８１６”、［ｏｎｌｉｎｅ］、２００１年１月、［平成１４年１０月１２日検索］、インターネット＜ＵＲＬ：ｈｔｔｐ：／／ｗｗｗ．ｓｃｄｋ．ｃｏｍ／ｄｒａｆｔ−ｇｕｔｈｅｒｙ−ｉｐ７８１６−０１．ｔｘｔ＞
【００１０】
しかしながら、ポーリング方式は、例えば、１０個のアプリケーションを実行可能なＩＣカードの場合、各々のアプリケーションに対してポーリングを発行する必要があるため、ポーリングのコマンドを処理するために選択コマンドを１０回発行するし、ポーリングのコマンドも１０回送信する必要があり、通信コストと処理時間が掛るという問題がある。
【００１１】
【発明が解決しようとする課題】
本発明は上述の問題点に鑑みてなされたものであり、複数のアプリケーションを連続して実行可能なＩＣカードにおいて、コマンド発行回数を減らし、処理時間を減らすことを目的とする。
【００１２】
【課題を解決するための手段】
上記目的を達成するために、本発明の第１の態様は、端末装置から処理コマンドを受信し、該処理コマンドをアプリケーションプログラムにおいて実行し、該処理コマンドの実行結果データを前記端末装置に送信するＩＣカードにおいて、複数のアプリケーションプログラムにより実行される処理コマンドを格納するマルチキャストコマンドと、該ＩＣカードが実行可能なアプリケーションプログラムを管理する管理テーブルと、前記処理コマンドを実行する複数のアプリケーションプログラムを順次選択し、前記選択された複数のアプリケーションプログラムを順次指定し前記処理コマンド実行の制御を該アプリケーションプログラムに移動する制御移動手段と、前記処理コマンドを実行した複数のアプリケーションプログラムの各々の実行結果データを一時的に保持するレスポンス保持領域と、前記複数のアプリケーションプログラムによる処理コマンドの実行が全て終了した後に前記レスポンス保持領域に保持する実行結果データを前記端末装置に送信するレスポンス送信手段とを設けたものである。
【００１３】
本発明の第２の態様は、上述の第１の態様に係るＩＣカードにおいて、前記制御移動手段が、前記マルチキャストコマンドの中のクラスバイトおよび命令種類と呼ばれるコマンド識別情報により、複数のアプリケーションプログラムにおいて実行するマルチキャストコマンドと特定のアプリケーションプログラムにおいて実行する通常コマンドとを識別するようにしたものである。
【００１４】
本発明の第３の態様は、上述の第１または２の態様に係るＩＣカードにおいて、前記管理テーブルに、アプリケーションプログラムを一意に特定可能なアプリケーション識別情報を設け、前記制御移動手段が、予め定めた規則に従い、前記アプリケーション識別情報が前記マルチキャストコマンドに格納されているアプリケーションプログラムを指定する指定情報と一致する複数のアプリケーションプログラムを順次選択し、処理コマンド実行の制御を順次移動するようにしたものである。
【００１５】
本発明の第４の態様は、端末装置から処理コマンドを受信し、該処理コマンドをアプリケーションプログラムにおいて実行し、該処理コマンドの実行結果データを前記端末装置に送信するＩＣカードにおけるコマンドの処理方法において、該ＩＣカードにおいて実行可能なアプリケーションプログラムを管理テーブルに記憶する段階と、前記端末装置が、複数のアプリケーションプログラムにより実行する処理コマンドを格納するマルチキャストコマンドをＩＣカードへ送信する段階と、前記マルチキャストコマンドに基づき、連続実行する複数のアプリケーションプログラムを順次選択し前記処理コマンド実行の制御を選択された該アプリケーションプログラムに移動する段階と、前記処理コマンドを実行した各々のアプリケーションプログラムが、実行結果データを一時的にレスポンス保持領域へ保持する段階と、前記複数のアプリケーションプログラムによる処理コマンドの実行が全て終了した後に、前記レスポンス保持領域に保持する実行結果データを前記端末装置に送信する段階とを行うようにしたものである。
【００１６】
本発明の第５の態様は、上述の第４の態様に係るＩＣカードにおけるコマンド方法において、前記処理コマンドが、複数のアプリケーションプログラムに対して通信開始要求があるかどうかを確認するための処理コマンドであり、前記処理コマンドにより各々のアプリケーションプログラムが、通信開始要求の有無を一時的にレスポンス保持領域へ保持する段階を行うようにしたものである。
【００１７】
【発明の実施の形態】
以下、本発明を図示する実施形態に基づいて説明する。図１は、本発明のＩＣカード内部の概要構成図である。ＩＣカード１は、Ｉ／Ｏ制御部２、ＣＰＵ３、記憶手段４、プログラム格納部５、作業用メモリ６を備えている。
【００１８】
Ｉ／Ｏ制御部２は、ＩＣカード１がＩＣカード用リーダ／ライタ７と通信を行うためのインタフェースである。
【００１９】
ＣＰＵ３は、プログラム格納部５内に記録している様々なアプリケーションを実行するものである。アプリケーションを実行する際に、必要に応じて記憶手段４や作業用メモリ６を使用する。
【００２０】
記憶手段４は、実際には不揮発メモリであるＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）であり、様々なデータを記憶し、保持するのに使用する。記憶手段４は、その一部にアプリケーションの管理テーブル８を記憶する領域を備えている。
【００２１】
管理テーブル８は、ＯＳまたはカードマネージャ（アプリケーションの選択、インストール、削除、メモリ管理などを行う一種のアプリケーション。ＯＳの一部に組み込まれている場合もある）が、アプリケーションの管理用に使用し、アプリケーション毎のＡＩＤを記憶するものである。
【００２２】
プログラム格納部５は、ＯＳおよびＣＰＵ３が実行可能なＡＩＤに対応するアプリケーション本体を記憶するものである。ＯＳやカード製造時に予めアプリケーションを記録するＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）か、アプリケーションをロードして使用することが可能なＥＥＰＲＯＭがある。
【００２３】
プログラム格納部５は、制御移動手段９およびレスポンス送信手段１０を記憶する。制御移動手段９およびレスポンス送信手段１０は、ＯＳやカードマネージャの一部、またはＯＳやカードマネージャと緊密に連携するアプリケーションである。
【００２４】
制御移動手段９は、端末装置から受信する同一のコマンドを実行する複数のアプリケーションを順次選択し、該コマンドの実行制御を該アプリケーションに移動するものである。
【００２５】
複数のアプリケーションにおいて、アプリケーションを選択し、実行制御を移動する順番は、管理テーブル８の記憶順序でもよいし、別途用意する優先順位を設定するテーブルの順序でもよいし、現在選択されているアプリケーションを最優先にしてもよい。
【００２６】
各々のアプリケーションは、コマンドを実行した結果を一時的にレスポンス保持領域へ記憶する。レスポンス送信手段１０は、複数のアプリケーションによる同一コマンドの実行が全て終了した後に、レスポンス保持領域に保持する実行結果を前記端末装置に送信するものである。
【００２７】
ここで、ＩＣカード１が実行するコマンドおよび該コマンドに対するレスポンスについて説明する。
【００２８】
図２は、ＩＳＯ７８１６−４により規定されている端末装置からＩＣカード１へ送られるＡＰＤＵコマンドの構造を示すものである。
【００２９】
ＡＰＤＵコマンドの先頭のＣＬＡは、クラスバイトと呼ばれるものであり、該コマンドの内容がＩＳＯ７８１６−４に準拠するか否かを表し、ＩＮＳは、コマンドコードと呼ばれるコマンドの種類を表すものであり、Ｐ１およびＰ２がコマンドに与えるパラメータを表し、Ｌｃはデータの長さを表す。
【００３０】
ＡＰＤＵコマンドは、図２の形式の他に、Ｌｃ以下を省略する、データ部の後ろにＬｅと呼ばれるＩＣカードからの返信の長さを付ける、付けない、という複数の構造を用いることが可能である。
【００３１】
また、図３は、ＩＳＯ７８１６−４により規定されているＩＣカード１から端末装置からへ送られるレスポンスデータの構造を示すものである。
【００３２】
レスポンスデータは、アプリケーションの処理結果と、２バイトのステータスワード（ＳＷ１、ＳＷ２）から構成されており、アプリケーションからＯＳを経由して端末装置に送信される。
【００３３】
本発明においては、構造やコーディングはＩＳＯ７８１６−４のＡＰＤＵコマンドに準拠するが、当該コマンドが複数のアプリケーションにより実行されるコマンドであるという、意味的に拡張したマルチキャストコマンドを定義する。図４にマルチキャストコマンドの構造を示す。
【００３４】
マルチキャストコマンドは、例えば、ＣＬＡが「０ｘＤ０（０ｘは、１６進表記。以下、同じ）」、ＩＮＳが「０ｘ００」、データ部にアプリケーションが実行すべきコマンド（以下、処理コマンドという）を格納することにより、定義する。
【００３５】
更に、マルチキャストコマンドは、Ｐ１またはＰ２を使用するかどうかで、２種類のマルチキャストコマンドを定義することが可能である。
【００３６】
例えば、Ｐ２の値を「０ｘ００」に設定し、データ部に通常のＡＰＤＵコマンドそのものを格納することにより、管理テーブル８に記憶されている全てのアプリケーションが、該ＡＰＤＵコマンドを実行するようにする。
【００３７】
マルチキャストコマンドのデータ部に格納するＡＰＤＵコマンドから、ＣＬＡ、ＩＮＳなどのヘッダー情報を省略して、通常のＡＰＤＵコマンドのデータ部だけを格納することにより、通信量を減らすことも可能である。
【００３８】
Ｐ２にＡＩＤの長さを格納、すなわちＰ２の値が「０ｘ００」以外の場合は、該マルチキャストコマンドのデータ部の処理コマンドの先頭にＡＩＤを格納し、管理テーブル８に記憶しているＡＩＤが、処理コマンドの先頭からＡＩＤ長で指定された長さのＡＩＤと部分一致する全てのアプリケーションが、該処理コマンドを実行するようにする。
【００３９】
また、マルチキャストコマンドにより、複数のアプリケーションが処理コマンドを実行した結果を一括して送信するためのレスポンス保持領域の構造を、図５に示す。
【００４０】
レスポンス保持領域には、コマンドの実行結果を格納するＩＳＯ７８１６−４におけるレスポンスの領域に、アプリケーション毎の区別をつけるために、ＡＩＤ長と、ＡＩＤと、該アプリケーションの処理結果と、ＳＷとを一組にして、順次記憶する。アプリケーション毎の区別がつくのであれば、ＡＩＤ以外の情報を用いてもよい。
【００４１】
以下、図６のフローチャートに従い、複数のアプリケーションを実行可能なＩＣカード１が、支払い処理とポイント加算処理を連続して行う場合を例に、アプリケーションを選択し、処理コマンドを実行する手順を説明する。
【００４２】
図７に、ＩＣカード１において、クレジット処理と入退室管理の２つの業務を実現する複数のアプリケーションを管理する管理テーブル８の例を示す。
【００４３】
図７は、クレジットカードの決済機能（ＡＩＤが「０ｘ０１  ０２  ０３  ０４  ０５  ０１」）、ポイント管理機能（ＡＩＤが「０ｘ０１  ０２  ０３  ０４  ０５  ０２」）、入退室管理（ＡＩＤが「０ｘ０５  ０６  ０７  ０８  ０９  ０Ａ」）の３つのアプリケーションをＩＣカード１が実行可能であることを示している。
【００４４】
また、図７は、クレジットカードでの支払い金額に応じてポイントを加算するなど、関連する複数のアプリケーションが連続実行することを示すように、クレジットカードの決済機能とポイント管理機能が、「０ｘ０１  ０２  ０３  ０４
０５」というＡＩＤの上５桁を共通にすることも示している。
【００４５】
また、入退室管理（ＡＩＤが「０ｘ０５  ０６  ０７  ０８  ０９  ０Ａ」）は、一つのアプリケーションであるが、いくつかあるドアゲートを開閉する認証処理と、どのドアをいつ開閉したかの記録を保存する機能などを備えるものとする。
【００４６】
ＩＣカード１は、端末装置から電源の供給を受け、ＯＳ部を起動し、ＡＰＤＵコマンドの受信まで待機する。以下の説明においては、ＡＰＤＵコマンドがＩＣカードに届く過程などは、端末装置などのネットワーク機器の処理であるから説明を省略する。
【００４７】
ＩＣカード１がＡＰＤＵコマンドを受信すると、制御移動手段９は、ＣＬＡおよびＩＮＳを参照して、マルチキャストコマンドであるか否かを判定する。
【００４８】
受信したＡＰＤＵコマンドが、マルチキャストコマンドではなく、通常のＡＰＤＵコマンドであった場合、制御移動手段９は、ＩＮＳが選択コマンド（ＳＥＬＥＣＴ  ＦＩＬＥ：実際の値は「０ｘＡ４」）かどうか判定する。
【００４９】
クレジットカードの決済機能を選択する選択コマンドは、図８（ａ）に示す、ＩＮＳに選択コマンドを、Ｐ１およびＰ２にＡＩＤを用いてアプリケーションを選択することを示す「０ｘ０４  ００」を、データ部に決済機能のＡＩＤ「０ｘ０１  ０２  ０３  ０４  ０５  ０１」を、Ｌｃにデータ部の長さ、すなわちＡＩＤの長さ「６バイト」を格納したＡＰＤＵコマンドとなる。
【００５０】
次に、ＩＮＳが選択コマンドである場合、制御移動手段９は、Ｐ１、Ｐ２、Ｌｃ、およびデータ部に格納されているＡＩＤ「０ｘ０１  ０２  ０３  ０４  ０５  ０１」に基づいて管理テーブル８を参照し、決済機能が存在するか否かを確認する。
【００５１】
決済機能が管理テーブル８に存在する場合、制御移動手段９は、決済機能を選択し、選択済みのマークを付け、次に、選択済み決済機能に制御を移す。
【００５２】
決済機能は、自分の処理結果（例えば、「選択ＯＫ」を示すコード）をＯＳへ返し、ＯＳは決済機能のレスポンスを端末装置に送信し、コマンド受信待ち状態に戻る。
【００５３】
受信したＡＰＤＵコマンドが、図８（ｂ）に示すマルチキャストコマンドの場合、Ｐ２の値が「０ｘ０５」であり、データ部の先頭にＡＩＤが格納されいることを示しているから、制御移動手段９は、データ部の先頭に格納されているＡＩＤの５バイト分「０ｘ０１  ０２  ０３  ０４  ０５」と、処理コマンド「ＤＥＢＩＴ  １００ｙｅｎ」を取り出す。
【００５４】
制御移動手段９は、５バイトの「０ｘ０１  ０２  ０３  ０４  ０５」を用いて管理テーブル８を検索し、まず、上５桁が「０ｘ０１  ０２  ０３  ０４  ０５」である決済機能を選択し、選択済みのマークを付け、次に、選択済みの決済機能に処理コマンド「ＤＥＢＩＴ  １００ｙｅｎ」を渡し、制御を移す。
【００５５】
決済機能は、受け取った処理コマンド「ＤＥＢＩＴ  １００ｙｅｎ」により、１００円の支払い処理を行い、ＡＩＤ長と、ＡＩＤと、例えば「支払い終了」などのコード（ここでは、Ｎｕｌｌ「０ｘ００」とする）と、ＳＷを一組にして、レスポンス保持領域に記憶する。この時のレスポンス保持領域を図９（ａ）に示す。
【００５６】
制御移動手段９は、決済機能が終了した後、再び管理テーブル８を検索し、上５桁が「０ｘ０１  ０２  ０３  ０４  ０５」であるポイント管理を選択し、選択済みのマークを付け、次に、選択済みのポイント管理に処理コマンド「ＤＥＢＩＴ  １００ｙｅｎ」を渡し、制御を移す。
【００５７】
ポイント管理は、受け取った処理コマンド「ＤＥＢＩＴ  １００ｙｅｎ」により、例えば支払い金額１００円の１０％、すなわち１０ポイントを加算し、ＡＩＤ長と、ＡＩＤと、例えばポイント残高１０（「０ｘ０Ａ」）と、ＳＷを一組にして、レスポンス保持領域に記憶する。この時のレスポンス保持領域を図９（ｂ）に示す。
【００５８】
更に、制御移動手段９は、ポイント管理が終了した後、再び管理テーブル８を検索し、上５桁が「０ｘ０１  ０２  ０３  ０４  ０５」のＡＩＤを有するアプリケーションを探すが、入退室管理は「０ｘ０５  ０６  ０７  ０８  ０９」であるから、処理コマンド「ＤＥＢＩＴ  １００ｙｅｎ」を実行する全てのアプリケーションが終了したことになるので、検索の終了をレスポンス送信手段１０へ通知する。
【００５９】
レスポンス送信手段１０は、決済処理、およびポイント管理の処理結果を保持する図９（ｂ）の状態のレスポンス保持領域を、ＯＳを介して端末装置に送信する。
【００６０】
マルチキャストコマンド、制御移動手段９、およびレスポンス送信手段１０を用いることにより、従来、「決済機能の選択」、「決済機能の実行」、「ポイント管理の選択」、および「ポイント加算」という４回のコマンド処理を、「アプリケーションの選択」と、「複数アプリケーションの順次実行」という２回のコマンドの処理で行うことが可能になる。
【００６１】
また、異なる実施の形態として、ＩＰアドレスを備え、ＴＣＰ／ＩＰの通信プロトコルを搭載したＩＣカード１が、一定時間が経過した後に、入退室管理のサーバにＩＣカード１内に記憶しているログを保管する通信の開始を行う場合の動作について説明する。
【００６２】
上述したように、ＩＣカード１側から通信を開始することはできないため、端末装置が一定間隔でポーリング（例えば、Ｌｃを「０ｘ００」とし、データ部に何も格納せずに、何もしない命令とする）を行い、ＩＣカード１が通信を行うかどうかを確認する。
【００６３】
端末装置は、複数のアプリケーションに対して一括でポーリングを行うため、ＡＰＤＵコマンドに、マルチキャストコマンドを示すＣＬＡおよびＩＮＳと、ポーリングの命令とを格納した「０ｘＤ０  ００  ００  ００  ００」をＩＣカード１へ送信する。
【００６４】
ＩＣカード１は、受信した選択したＡＰＤＵコマンドが、マルチキャストコマンドであり、Ｌｃの値が「０ｘ００」であるから、制御移動手段９は、該ＡＰＤＵコマンドが、複数のアプリケーションに対するポーリングコマンドであると判定する。
【００６５】
制御移動手段９は、Ｐ２が「０ｘ００」であるから管理テーブル８に記憶している全てのアプリケーションを対象として、ポーリングを試みる。
【００６６】
まず、管理テーブル８に記憶している最初のアプリケーションである決済機能を選択し、選択済みのマークを付け、選択済みの決済機能に制御を移す。
【００６７】
決済機能が通信を行う必要がない場合、決済機能は、ＡＩＤ長と、自身のＡＩＤと、例えばＳＷ１、およびＳＷ２が「０ｘ９０  ００」をレスポンス保持領域に記憶し、制御を返す。
【００６８】
制御移動手段９は、決済機能がレスポンスを返した後、管理テーブル８の次のアプリケーションであるポイント管理を選択し、選択済みのマークを付け、選択済みのポイント管理に制御を移す。
【００６９】
ポイント管理も通信を行う必要がない場合、ポイント管理は、決済機能と同様に、ＡＩＤ長と、自身のＡＩＤと、例えばＳＷ１、およびＳＷ２が「０ｘ９０  ００」をレスポンス保持領域に記憶し、制御を返す。
【００７０】
制御移動手段９は、ポイント管理がレスポンスを返した後、更に、管理テーブル８の次のアプリケーションである入退室管理を選択し、選択済みのマークを付け、選択済みの入退室管理に制御を移す。
【００７１】
入退室管理は、現在時刻をチェックし、前回通信から一定時間が経過している場合、ＡＩＤ長と、自身のＡＩＤと、例えば、ＳＷ１およびＳＷ２が「０ｘ９１
００」をレスポンス保持領域に記憶させ、制御を返す。
【００７２】
更に、制御移動手段９は、入退室管理が制御を戻した後、再び管理テーブル８を検索するが、管理テーブル８には、次のアプリケーションがないので、ポーリングを行う全てのアプリケーションが終了したことを、レスポンス送信手段１０へ通知する。
【００７３】
レスポンス送信手段１０は、レスポンス保持領域を、ＯＳを介して端末装置に送信する。
【００７４】
端末装置は、レスポンスを受信し、「０ｘ９１  ００」を返したＡＩＤ「０ｘ０５  ０６  ０７  ０８  ０９  ０Ａ」が通信を開始する要求を出したことを検知し、該ＡＩＤの入退室管理に対して、コマンドを発行し、以降の処理を継続させることが可能になる。
【００７５】
以上、本発明を実施の形態に基づいて詳細に説明してきたが、本発明によるＩＣカードおよびＩＣカードにおけるコマンド処理方法は、上述の実施の形態に何ら限定されるものではなく、本発明の趣旨を逸脱しない範囲において種々の変更が可能なことは当然のことである。
【００７６】
【発明の効果】
以上のとおり、本発明に係るＩＣカードおよびＩＣカードにおけるコマンド処理方法によれば、ＩＣカードが実行可能な全てのアプリケーション、または一部のアプリケーションにおいて、受信した一つのコマンドを連続して実行することができるため、アプリケーションの選択回数、および通信回数を減らすことが可能となる。
【００７７】
また、各々のアプリケーションのコマンド実行結果も一括して端末装置に送信することにより、通信回数と通信量を減らすことが可能になる。
【００７８】
また、ＩＳＯ７８１６−３と互換性を保ったまま、ＩＣカード側からの通信開始に対して、一度のポーリングで通信開始要求があるかどうかを確認することができ、仮想的な全二重通信により、各々のアプリケーションに対するポーリングの回数を減らすことが可能になる。
【図面の簡単な説明】
【図１】本発明のＩＣカード内部の概要構造図である。
【図２】ＩＳＯ７８１６−４におけるＡＰＤＵコマンドの構成を示す説明図である。
【図３】ＩＳＯ７８１６−４におけるレスポンスの構成を示す説明図である。
【図４】本発明のマルチキャストコマンドの構成を示す説明図である。
【図５】本発明のレスポンス保持領域の構造を示す説明図である。
【図６】本発明のＩＣカードにおけるコマンド処理方法を示すフローチャートである。
【図７】本発明の管理テーブルの例である。
【図８】本発明のマルチキャストコマンドの例である。
【図９】本発明のレスポンス保持領域の例である。
【符号の説明】
１  ＩＣカード
２  Ｉ／Ｏ制御部
３  ＣＰＵ
４  記憶手段
５  プログラム格納部
６  作業用メモリ
７  ＩＣカード用リーダ／ライタ
８  管理テーブル
９  制御移動手段
１０  レスポンス送信手段
【図１】
2004164261.tif 000003
【図２】
2004164261.tif 000004
【図３】
2004164261.tif 000005
【図４】
2004164261.tif 000006
【図５】
2004164261.tif 000007
【図６】
2004164261.tif 000008
【図７】
2004164261.tif 000009
【図８】
2004164261.tif 000010
【図９】
2004164261.tif 000011