(57)【要約】【課題】ＩＣカードが実行するサービスに優先度を付加し、優先度の高いサービスのコマンドを優先的に処理するＩＣカード等を提供する。【解決手段】ＩＣカード１は、接触Ｉ／Ｏポート２５と非接触Ｉ／Ｏポート２６を備えている。決済サービス、通話サービス等のサービス毎に優先度を付加し、優先度の高いサービスを優先してコマンド処理を実行する。処理時間に制約のあるサービスについて、優先度、そのサービスで処理されるコマンドの種類と処理順序を保持するサービス優先度／コマンド処理順序テーブル４１と、サービスの進捗状況を表すサービスプロシージャテーブル４２を保持する。コマンド処理中に、優先度の高いサービスのコマンドを受信すると、現在実行中のコマンド処理を中断し、優先度の高いサービスのコマンドの処理を開始する。【選択図】図８
2008059423.tif 000002
【特許請求の範囲】
【請求項１】
二つ以上のＩ／Ｏポートを有するＣＰＵを内蔵した情報記録媒体であって、
前記ＣＰＵを内蔵した情報記録媒体は、
前記Ｉ／Ｏポートから受信したコマンドを実行するサービスに関する情報を保持するサービス情報保持手段と、
前記Ｉ／Ｏポートでコマンドを受信すると、前記サービスに関する情報に従ってコマンドの処理順序を決定する処理順序決定手段と、
を具備することを特徴とするＣＰＵを内蔵した情報記録媒体。
【請求項２】
前記サービス情報保持手段は、前記サービスの優先度、前記サービスで処理するコマンドの種類、処理順序を保持することを特徴とする請求項１記載のＣＰＵを内蔵した情報記録媒体。
【請求項３】
前記処理順序決定手段は、前記Ｉ／Ｏポートからコマンドを受信すると、現在実行中のコマンドを処理している前記サービスの優先度と、新たにコマンドを受信した前記サービスの優先度を比較し、比較結果に応じてコマンドの実行状態を決定することを特徴とする請求項１記載のＣＰＵを内蔵した情報記録媒体。
【請求項４】
前記処理順序決定手段は、現在実行中のコマンドを受信したサービスの優先度の方が、新たにコマンドを受信したサービスの優先度よりも高い場合、現在実行中のコマンドを受信したサービスのコマンド実行を続けることを特徴とする請求項３記載のＣＰＵを内蔵した情報記録媒体。
【請求項５】
前記処理順序決定手段は、現在実行中のコマンドを処理している前記サービスの優先度の方が、新たにコマンドを受信したサービスの優先度よりも低い場合、現在実行中のコマンドを中断し、新たに受信したコマンドを実行することを特徴とする請求項３記載のＣＰＵを内蔵した情報記録媒体。
【請求項６】
前記処理順序決定手段は、現在実行中のコマンドを処理している前記サービスの優先度の方が、新たにコマンドを受信したサービスの優先度よりも低い場合、現在実行中のコマンドを中断し、新たに受信したコマンドを実行した後、予め決められた待ち時間の間、優先度の高い前記サービスへのコマンド受信待ち状態とすることを特徴とする請求項３記載のＣＰＵを内蔵した情報記録媒体。
【請求項７】
前記処理順序決定手段は、現在実行中のコマンドを処理している前記サービスの優先度の方が、新たにコマンドを受信したサービスよりも低い場合、現在実行中のコマンド実行終了後、直ぐに新たに受信したコマンドを実行することを特徴とする請求項３記載のＣＰＵを内蔵した情報記録媒体。
【請求項８】
前記優先度、及び、前記予め決められた待ち時間は、変更可能であることを特徴とする請求項１記載のＣＰＵを内蔵した情報記録媒体。
【請求項９】
二つ以上のＩ／Ｏポートを有するＣＰＵを内蔵した情報記録媒体のアプリケーション実行方法であって、
前記Ｉ／Ｏポートから受信したコマンドを実行するサービスに関する情報を保持するサービス情報保持工程と、
前記Ｉ／Ｏポートでコマンドを受信すると、前記サービスに関する情報に従ってコマンドの処理順序を決定する処理順序決定工程と、
を具備することを特徴とするＣＰＵを内蔵した情報記録媒体アプリケーション実行方法。
【請求項１０】
前記サービス情報保持工程は、前記サービスの優先度、前記サービスで処理するコマンドの種類、処理順序を保持することを特徴とする請求項９記載のＣＰＵを内蔵した情報記録媒体アプリケーション実行方法。
【請求項１１】
前記処理順序決定工程は、前記Ｉ／Ｏポートからコマンドを受信すると、現在実行中のコマンドを処理している前記サービスの優先度と、新たにコマンドを受信した前記サービスの優先度を比較し、比較結果に応じてコマンドの実行状態を決定することを特徴とする請求項９記載のＣＰＵを内蔵した情報記録媒体アプリケーション実行方法。
【請求項１２】
前記処理順序決定工程は、現在実行中のコマンドを受信したサービスの優先度の方が、新たにコマンドを受信したサービスの優先度よりも高い場合、現在実行中のコマンドを受信したサービスのコマンド実行を続けることを特徴とする請求項１１記載のＣＰＵを内蔵した情報記録媒体アプリケーション実行方法。
【請求項１３】
前記処理順序決定工程は、現在実行中のコマンドを処理している前記サービスの優先度の方が、新たにコマンドを受信したサービスの優先度よりも低い場合、現在実行中のコマンドを中断し、新たに受信したコマンドを実行することを特徴とする請求項１１記載のＣＰＵを内蔵した情報記録媒体アプリケーション実行方法。
【請求項１４】
前記処理順序決定工程は、現在実行中のコマンドを処理している前記サービスの優先度の方が、新たにコマンドを受信したサービスの優先度よりも低い場合、現在実行中のコマンドを中断し、新たに受信したコマンドを実行した後、予め決められた待ち時間の間、優先度の高い前記サービスへのコマンド受信待ち状態とすることを特徴とする請求項１１記載のＣＰＵを内蔵した情報記録媒体アプリケーション実行方法。
【請求項１５】
前記処理順序決定工程は、現在実行中のコマンドを処理している前記サービスの優先度の方が、新たにコマンドを受信したサービスよりも低い場合、現在実行中のコマンド実行終了後、直ぐに新たに受信したコマンドを実行することを特徴とする請求項１１記載のＣＰＵを内蔵した情報記録媒体アプリケーション実行方法。
【請求項１６】
前記優先度、及び、前記予め決められた待ち時間は、変更可能であることを特徴とする請求項９記載のＣＰＵを内蔵した情報記録媒体アプリケーション実行方法。
【請求項１７】
コンピュータを請求項１記載のＣＰＵを内蔵した情報記録媒体として機能させるコンピュータで読み取り可能なプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のＩ／Ｏポートからのコマンドを受信し、優先度の高いサービスを優先して処理するＩＣカード等に関する。
【背景技術】
【０００２】
現在、金融、通信、交通分野を中心に、ＩＣカードの普及が進んでいる。ＩＣカードの種類は、店舗等に設置された端末に差し込んで利用する接触型ＩＣカードと、端末にかざして利用する非接触型ＩＣカードに大別され、サービス要件に基づいてそれぞれ採用されている。
また、通信分野において通信機能を持つ携帯型端末を使った決済サービスが登場してきた。このような携帯型端末に求められるＩＣカードの機能には、通信サービス向けの接触型ＩＣカード機能と、決済サービス向けの非接触型ＩＣカード機能がある。このため、少なくとも接触型、非接触型の２つのＩ／Ｏポートを有し、それぞれのポートから受信されたコマンドを処理するＩＣカードが実用化されている。（特許文献１参照）
【０００３】
【特許文献１】特開２０００−３４１４２９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記の方法ではＩＣカードのＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）が、接触型のＩ／Ｏポート、非接触型のＩ／Ｏポートのそれぞれから受信したコマンドを順次実行するため、一方のＩ／Ｏポートから受信したコマンドを実行している間、もう一方のＩ／Ｏポートから受信したコマンドを実行することはできない。
通信サービスは接触型Ｉの／Ｏポート、決済サービスは非接触型のＩ／Ｏポートというように、ＩＣカードにより実現されるサービス及びそのサービスで使用されるＩ／Ｏポートは固定であることが多い。また、ユーザの利便性、セキュリティ等のサービスの性質上、一定時間内に処理を完了させることが要求される場合がある。このような場合、接触型のＩ／Ｏポート、非接触型のＩ／Ｏポートそれぞれに受信されたコマンドを、受信した順序で実行した場合、要求が満足できないという状況が発生する。
【０００５】
本発明は、このような問題に鑑みてなされたもので、その目的とするところは、ＩＣカードが実行するサービスに優先度を付加し、優先度の高いサービスのコマンドを優先的に処理するＩＣカード等を提供することにある。
【課題を解決するための手段】
【０００６】
前述した目的を達成するために第１の発明は、二つ以上のＩ／Ｏポートを有するＣＰＵを内蔵した情報記録媒体であって、前記ＣＰＵを内蔵した情報記録媒体は、前記Ｉ／Ｏポートから受信したコマンドを実行するサービスに関する情報を保持するサービス情報保持手段と、前記Ｉ／Ｏポートでコマンドを受信すると、前記サービスに関する情報に従ってコマンドの処理順序を決定する処理順序決定手段と、を具備することを特徴とするＣＰＵを内蔵した情報記録媒体である。
【０００７】
前記サービス情報保持手段は、前記サービスの優先度、前記サービスで処理するコマンドの種類、処理順序を保持する。
前記処理順序決定手段は、前記Ｉ／Ｏポートからコマンドを受信すると、現在実行中のコマンドを処理している前記サービスの優先度と、新たにコマンドを受信した前記サービスの優先度を比較し、比較結果に応じてコマンドの実行状態を決定する。
前記処理順序決定手段は、現在実行中のコマンドを受信したサービスの優先度の方が、新たにコマンドを受信したサービスの優先度よりも高い場合、現在実行中のコマンドを受信したサービスのコマンド実行を続ける。
現在実行中のコマンドを処理している前記サービスの優先度の方が、新たにコマンドを受信したサービスの優先度よりも低い場合、現在実行中のコマンドを中断し、新たに受信したコマンドを実行する。
また、現在実行中のコマンドを処理している前記サービスの優先度の方が、新たにコマンドを受信したサービスの優先度よりも低い場合、現在実行中のコマンドを中断し、新たに受信したコマンドを実行した後、予め決められた待ち時間の間、優先度の高い前記サービスへのコマンド受信待ち状態とする。
【０００８】
また、前記処理順序決定手段は、現在実行中のコマンドを処理している前記サービスの優先度の方が、新たにコマンドを受信したサービスよりも低い場合、現在実行中のコマンド実行終了後、直ぐに新たに受信したコマンドを実行するようにしてもよい。
前記優先度、及び、前記予め決められた待ち時間は変更可能で、ＣＰＵを内蔵した情報記録媒体発行時、あるいは、運用時においてコマンド発行により変更することができる。
【０００９】
第２の発明は、二つ以上のＩ／Ｏポートを有するＣＰＵを内蔵した情報記録媒体のアプリケーション実行方法であって、前記Ｉ／Ｏポートから受信したコマンドを実行するサービスに関する情報を保持するサービス情報保持工程と、前記Ｉ／Ｏポートでコマンドを受信すると、前記サービスに関する情報に従ってコマンドの処理順序を決定する処理順序決定工程と、を具備することを特徴とするＣＰＵを内蔵した情報記録媒体アプリケーション実行方法である。
【００１０】
第３の発明は、コンピュータを第１の発明のＣＰＵを内蔵した情報記録媒体として機能させるコンピュータで読み取り可能なプログラムである。
【発明の効果】
【００１１】
本発明によれば、ＩＣカードが実行するサービスに優先度を付加し、優先度の高いサービスのコマンドを優先的に処理するＩＣカード等を提供することができる。
【発明を実施するための最良の形態】
【００１２】
以下、添付図面を参照しながら、本発明に係る好適な実施形態について詳細に説明する。
最初に、図１を参照しながら、本実施の形態に係るＩＣカード１の運用例について説明する。
図１は、ＩＣカード１を搭載した携帯電話機３の運用例を示す図である。
【００１３】
ＩＣカード１は、携帯電話機３やＰＤＡ（Ｐｅｒｓｏｎａｌ  ＤｉｇｉｔａｌＡｓｓｉｓｔａｎｃｅ）のような携帯可能な通信端末に搭載される取り外し可能な記録媒体で、第２世代携帯電話機であるＧＳＭに搭載されていたＳＩＭ（ＳｕｂＳｃｒｉｂｅｒ  Ｉｄｅｎｔｉｔｙ  Ｍｏｄｕｌｅ）カードや、第３世代携帯電話機に搭載されているＵＩＭカードが知られている。ＩＣカード１は、大きさが１５×２５ｍｍ、厚さ８ｍｍ程度の小型ＩＣカードである。
ＩＣカード１は、内部にアンテナを持ち、あるいは、非接触用アンテナを持つ通信端末側から非接触用Ｉ／Ｏポートを介して、外部の端末等から発信される弱い電波を利用してデータを送受信するＩＣカードで、鉄道、バス等のプリペイドカード及び定期券として、あるいは、クレジットや電子マネー等の決済サービスで利用することができる。
ＩＣカード１は、携帯電話機３の側面に設けられた挿入口（図示しない）、あるいは、携帯電話機３の裏側の蓋を開いたバッテリー（図示しない）の内側または外側の所定の凹部に固定される。
【００１４】
携帯電話機３は、送受信するためのアンテナ、表示パネル、キーボタン等を有し、取り外し可能な記録媒体であるＩＣカード１を搭載している。携帯電話機３は、ＩＣカード１の接触型のＩ／Ｏポートを介してコマンドを送受信し、基地局５を通して通話、Ｗｅｂアクセス、メール送受信等の処理を実行する。
【００１５】
ＩＣカード読取装置７はリーダライタを有し、ＩＣカード１の非接触型のＩ／Ｏポートを介して無線で通信する。
ＩＣカード読取装置７は、インターネットのようなネットワーク１１を介して決済ホスト９に接続されている。決済ホスト９は、クレジットや電子マネー等の決済サービスを提供するホストコンピュータで、ＩＣカード１はＩＣカード読取装置７を介して決済ホスト９と通信し、決済サービスを利用することができる。
【００１６】
次に、図２、３、４、５を参照しながら、ＩＣカード１の詳細について説明する。
図２は、ＩＣカード１のハードウエア構成を示す図、図３は、ＩＣカード１のメモリ２４の詳細を示す図、図４は、メモリ２４内のサービス優先度／コマンド処理順序テーブル４１の詳細を示す図、図５は、メモリ２４内のサービスプロシージャテーブル４２の詳細を示す図である。
【００１７】
図２に示すように、ＩＣカード１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２１、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２２、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２３、メモリ２４、接触Ｉ／Ｏポート２５、非接触Ｉ／Ｏポート２６がバス２８を介して接続される。
【００１８】
ＣＰＵ２１は、プログラムの実行を行う。ＲＯＭ２２は、プログラム命令あるいはデータ等を格納する。ＲＡＭ２３は、プログラムの実行中、一時的にデータ等を格納する。
メモリ２４は、ＩＣカード１の動作に必要となるデータ等を保存している。
【００１９】
接触Ｉ／Ｏポート２５は、携帯電話機３による通話処理、Ｗｅｂアクセス、メール送受信のような通信サービスを実行するためにコマンドを送受信するためのＩ／Ｏポートである。
非接触Ｉ／Ｏポート２６は、決済サービスや認証処理等のサービスのための通信を行うＩ／Ｏポートである。ＩＣカード１をＩＣカード読取装置７にかざすことにより、ＩＣカード１は非接触Ｉ／Ｏポート２６を介してＩＣカード読取装置７と無線通信し、ネットワーク１１を介して決済ホスト９等と接続する。ＩＣカード１は、決済ホスト９と接続することにより決済サービスを使用することができる。
【００２０】
図３に示すように、メモリ２４は、ＯＳ３１、サービス優先度／コマンド処理順序テーブル４１、サービスプロシージャテーブル４２、接触Ｉ／Ｏ用アプリ４３、非接触Ｉ／Ｏ用アプリ４４等を有する。
【００２１】
ＯＳ３１は、ＩＣカード１全体の動作を制御するためのプログラムである。
接触Ｉ／Ｏ用アプリ４２は、ＩＣカード１の接触Ｉ／Ｏポート２５からのコマンドを処理するためのアプリケーションである。
非接触Ｉ／Ｏ用アプリ４３は、ＩＣカード１の非接触Ｉ／Ｏポート２６からのコマンドを処理するためのアプリケーションである。
【００２２】
サービス優先度／コマンド処理順序テーブル４１は、処理時間に制約のある決済サービス、認証処理等を行う際に必要となる一連の手続きとなるサービスの優先度、各サービスの中で処理するコマンドの種類及び処理順序を保持するもので、サービス番号５１、サービス優先度５３、コマンドシーケンス５５等を有する。サービス優先度／コマンド処理順序テーブル４１は、この他にコマンドを受信するＩ／Ｏポートの種類等、サービスの実行条件に合わせて保持する情報を追加してもよい。
また、各サービスの中で処理されるコマンドは一つ以上とし、優先度の設定を必要としないサービスについては設定しなくてもよい。
サービス優先度／コマンド処理順序テーブル４１は、カード発行時、運用時にコマンド発行により各サービスの優先度を設定する。デフォルト優先度を設定することもできる。
【００２３】
サービス番号５１は、決済サービス、通話サービス等のサービスプロシージャに対応している。サービス番号５１が「１」と「３」のサービスプロシージャは、非接触Ｉ／Ｏ用アプリ４４が処理し、サービス番号５１が「２」と「４」のサービスプロシージャは、接触Ｉ／Ｏ用アプリ４３が処理するとする。
サービス優先度５３は、各サービスに設定された優先度を示しており、サービス番号５１が「１」のサービスプロシージャのサービス優先度５３は「１」に、サービス番号５１が「２」のサービスプロシージャのサービス優先度５３は「２」に、サービス番号５１が「３」のサービスプロシージャのサービス優先度５３は「３」に、サービス番号５１が「４」のサービスプロシージャのサービス優先度５３は「３」に設定されている。
優先度が同じコマンドの場合、先に受信した方から処理をする。
【００２４】
コマンドシーケンス５５は、各サービスが処理するコマンドを処理順に保持する情報である。例えば、サービス番号５１が「１」のサービスプロシージャは、コマンドＡ、コマンドＢ、コマンドＣ、コマンドＤの順にコマンドを処理する。また、サービス番号５１が「２」のサービスプロシージャは、コマンドＥ、コマンドＦの順に、サービス番号５１が「３」のサービスプロシージャは、コマンドＡ、コマンドＧ、コマンドＤの順に、サービス番号５１が「４」のサービスプロシージャは、コマンドＨ、コマンドＩ、コマンドＪの順にコマンドを処理する。
コマンドシーケンス５５に含まれていないコマンドは、処理時間の制約等がなく優先度が低い。
【００２５】
サービスプロシージャテーブル４２は、Ｉ／Ｏ毎のサービスの進捗状況を表すテーブルで、Ｉ／Ｏ６１、サービス番号５１、サービス優先度５３、次コマンド５４等を有する。
【００２６】
Ｉ／Ｏ６１は、サービスがコマンドを送受信するＩ／Ｏポートを表すもので、例えば、非接触Ｉ／Ｏポート２６の場合は「１」、接触Ｉ／Ｏポート２５の場合は「２」とする。
サービス番号５１は、サービス優先度／コマンド処理順序テーブル４１のサービス５１と同じである。
サービス優先度５３は、サービス優先度／コマンド処理順序テーブル４１のサービス優先度５３と同じで、各サービスに設定された優先度を示す。
次コマンド６３は、サービス番号５１で示されるサービスプロシージャが次に処理するコマンドを設定する。
【００２７】
ＯＳ３１は、ＯＳ管理処理３２、コマンド送受信処理３３、コマンド管理処理３４等を有する。
ＯＳ管理処理３２は、ＯＳ３１全体の動作を管理する。
コマンド送受信処理３３は、接触Ｉ／Ｏポート２５、非接触Ｉ／Ｏポート２６等とのコマンドの送受信に必要となる処理を行う。
コマンド管理処理３４は、コマンド送受信処理３３が接触Ｉ／Ｏポート２５、あるいは、非接触Ｉ／Ｏポート２６から受信するコマンドをスケジューリングし、適切なアプリケーションにコマンドを渡し、実行を指示するもので、コマンド配送機能３５、処理順序管理機能３６、コマンド処理中断／再開機能３７、受信待ち設定機能３８、コマンド処理切り替え機能３９等を有する。
【００２８】
コマンド配送機能３５は、次に実行するコマンドを接触Ｉ／Ｏ用アプリ４３あるいは非接触Ｉ／Ｏ用アプリ４４に配送する。
【００２９】
処理順序管理機能３６は、接触Ｉ／Ｏポート２５あるいは非接触Ｉ／Ｏポート２６から受信したコマンドの処理順序を管理する。
コマンドを受信すると、サービスプロシージャテーブル４２に設定されている次コマンド６３と受信したコマンドが一致するかどうか確認し、一致した場合、そのサービスのサービス優先度５３と、サービスプロシージャテーブル４２上にある他のサービスのサービス優先度５３とを比較し、比較結果に応じてコマンド処理の中断／退避、あるいは、続行を判定する。一致しない場合、あるいは、サービスプロシージャテーブル４２にデータがない場合、受信したコマンドに対応するサービスの優先度をサービス優先度／コマンド処理順序テーブル４１から検索し、サービスプロシージャテーブル４２に設定する。
【００３０】
サービスプロシージャの一つのコマンドの処理が正常に終了すると、サービス優先度／コマンド処理順序テーブル４１を参照して、次に受信が予想されるコマンドを次コマンド６３に設定する。もし、サービスの１番目のコマンドでどのサービスかを一意的に特定できない場合、予想される条件を全て保持する。例えば、サービスの１番目のコマンドとしてコマンドＡを受信した場合、サービス番号５１が「１」のサービスプロシージャ、あるいは、サービス番号５１が「３」のサービスプロシージャであることが予想されるため、サービスプロシージャテーブル４１には両方のサービスプロシージャに関する情報を設定する。
この場合、受信したコマンドの優先度が特定できないため、複数設定した優先度の中で最も優先度の高いサービスの優先度で判定を行うものとする。２番目以降のコマンドを受信し、どのサービスかが特定できた時点で、サービスプロシージャテーブル４２上の残りの条件については削除する。
【００３１】
コマンド処理中断／再開機能３７は、接触Ｉ／Ｏ用アプリ４３あるいは非接触Ｉ／Ｏ用アプリ４４等で現在実行しているコマンド処理を中断、再開する。
コマンド処理中断判定機能３８は、接触Ｉ／Ｏ用アプリ４３あるいは非接触Ｉ／Ｏ用アプリ４４等で現在コマンド処理を実行しているときに、他のＩ／Ｏポートからコマンドを受信した場合、現在実行中のコマンド処理を中断するか、あるいは、現在実行中のコマンド処理を継続するかを判定する。
【００３２】
受信待ち時間設定機能３８は、優先度の低いサービスのコマンドを処理中に優先度の高いサービスのコマンドを受信し、優先度の低いサービスのコマンドの処理を中断して優先度の高いサービスのコマンドを処理し、優先度の低いサービスのコマンドの処理が再開待ち状態の場合、あるいは、優先度の高いサービスのコマンドの処理中に優先度のサービスのコマンドを受信し、優先度の高いサービスのコマンドの処理を続行して優先度の低いサービスのコマンドの処理の開始を待っている場合、優先度の高いサービスのコマンド処理を完了しても、待ち状態となっている優先度の低いサービスのコマンドの処理を開始せず、予め決められた受信待ち時間の間、優先度の高いＩ／Ｏポートからのコマンド受信待ち状態とする。
コマンド処理切り替え機能３９は、受信待ち時間設定機能３８が設定した受信待ち時間の間に、優先度の高いサービスの次のコマンドが受信された場合は、そのコマンドの処理を開始する。受信待ち時間内に優先度の高いサービスの次のコマンドが受信されない場合、待ち状態となっている優先度の低いサービスのコマンドの処理を開始する。
【００３３】
次に、図６によりＩＣカード１を搭載する携帯電話機３について説明する。
図６は、携帯電話機３のハードウエア構成を示す図である。
【００３４】
図６に示すように、携帯電話機３は、制御部７１、無線通信部７２、表示部７３、入力部７４、通話処理部７５、メモリ７６、ＩＣカードインタフェース７７等がバス７８を介して接続される。
【００３５】
制御部７１は、プログラムの実行を行うＣＰＵと、ＯＳ、プログラム命令あるいはデータ等を格納するためのＲＯＭ、一時的な作業用データを格納するためのＲＡＭ等のメモリから構成される。制御部７１は、携帯電話機３全体を制御する。
【００３６】
無線通信部７２はアンテナを有し、基地局５との間で行われる無線通信を制御する。無線通信部７２は、制御部７１の制御の下、音声に関するデータやパケット通信用のデータ等の信号を生成し、携帯電話機３のアンテナを介して基地局５に送信したり、あるいは、基地局５から送信される無線信号をアンテナを介して受信し、受信した信号を復調して音声に関するデータやパケット通信用のデータを取得する。
【００３７】
表示部７３は表示パネルを有し、表示パネルへの表示制御を行う。
入力部７４は、数字や文字、操作指示を入力するためのキーボタンを有し、キーボタンの操作に応じた信号を制御部７１に出力する。
通話処理部７５は、マイクロフォンやスピーカ、音声処理部等を有し、制御部７１の制御により呼接続、切断処理を含む通話処理を行う。
メモリ７６は、携帯電話機３にインストールされているアプリケーションプログラムや、電話番号及びメールアドレス等のアドレス帳データ等が格納されている。
ＩＣカードインタフェース７７は、携帯電話機３に搭載されたＩＣカード１と携帯電話機３との間の通信を制御する。
【００３８】
次に、図７によりＩＣカード１と無線通信を行うＩＣカード読取装置７について説明する。
図７は、ＩＣカード読取装置７のハードウエア構成図を示す図である。
【００３９】
図７に示すように、ＩＣカード読取装置７は、バス８７により相互接続された制御部８１、入力部８２、表示部８３、記憶装置８４、通信部８５、非接触ＩＣカードＲ／Ｗ（リーダライタ）８６等を有する。
【００４０】
制御部８１は、プログラムの実行を行うＣＰＵと、プログラム命令あるいはデータ等を格納するためのＲＯＭ、ＲＡＭ等のメモリから構成される。制御部８１は、ＩＣカード読取装置７全体の動作を制御する。
【００４１】
入力部８２は、ＩＣカード読取装置７へのデータを入力するための入力装置である。
表示部８３は、ＬＣＤ等の表示装置である。
記憶装置８４は、制御プログラム等の固定データ、ＩＣカード１が利用する決済サービス等に関するデータ等を格納するための記憶媒体である。
通信部８５は、通信制御装置、通信ポート等であり、ネットワーク１１を介した決済ホスト９との通信等を制御する。
非接触Ｉ／ＣカードＲ／Ｗ８６は、ＩＣカード１との非接触型の無線通信により、ＩＣカード１からのデータの読み取り、書き込みを行う。
【００４２】
次に、図８、９、１０、１１、１２、１３、１４、１５、１６、１７、１８、１９を参照しながら、第一の実施形態の動作について説明する。
図８は、コマンド実行中に優先度の高いサービスのコマンドを受信し、コマンド処理を切り替える場合の処理の流れを示す図、図９は、ステップ１０３のサービスプロシージャテーブル４２を示す図、図１０は、ステップ１０５のサービスプロシージャテーブル４２を示す図、図１１は、ステップ１０９のサービスプロシージャテーブル４２を示す図、図１２は、ステップ１１３のサービスプロシージャテーブル４２を示す図、図１３は、ステップ１１５のサービスプロシージャテーブル４２を示す図、図１４は、ステップ１１８のサービスプロシージャテーブル４２を示す図、図１５は、ステップ１２０のサービスプロシージャテーブル４２を示す図、図１６は、ステップ１２４のサービスプロシージャテーブル４２を示す図、図１７は、ステップ１２６のサービスプロシージャテーブル４２を示す図、図１８は、ステップ１３０のサービスプロシージャテーブル４２を示す図、図１９は、ステップ１３２のサービスプロシージャテーブル４２を示す図である。
【００４３】
図８に示すように、ＩＣカード１のＣＰＵ２１が、非接触Ｉ／Ｏポート２６でコマンドＡを受信すると（ステップ１０１）、ＯＳ３１内のコマンド送受信処理３３によりコマンド受信処理を行い（ステップ１０２）、処理順序管理を行う（ステップ１０３）。
ＩＣカード１のＣＰＵ２１は、処理順序管理機能３６に従ってサービスプロシージャテーブル４２を参照し、空であること、即ち、現在実行中のコマンド処理がないことを確認する。そして、ＩＣカード１のＣＰＵ２１は、サービス優先度／コマンド処理順序テーブル４１のコマンドシーケンス５５を検索し、１番目のコマンドがコマンドＡであるサービスを探して、図９に示すように設定する。１番目のコマンドがコマンドＡであるサービスは、サービス番号５１が「１」と「３」の２つ存在するため、サービスプロシージャテーブル４２には両方のサービスについて設定する。サービス番号５１が「１」のサービスプロシージャとサービス番号５１が「３」のサービスプロシージャは、共に非接触Ｉ／Ｏポート２６でコマンドを受信するため、Ｉ／Ｏ６１は非接触Ｉ／Ｏポート２６であることを示す「１」に設定する。サービス番号５１は、それぞれ「１」と「３」に、サービス優先度５３は、それぞれ「１」と「３」に、次コマンド６３は、それぞれコマンドＡに設定する。
今回受信したコマンドＡはサービス番号５１が「１」のサービスプロシージャなのか、あるいは、サービス番号５１が「３」のサービスプロシージャなのか一意的に特定できないため、サービス優先度５３は高い方の「１」として扱う。
【００４４】
ＩＣカード１のＣＰＵ２１は、非接触Ｉ／Ｏアプリ４４によりコマンドＡのコマンド処理を実行し（ステップ１０４）、ＯＳ３１内のコマンド送受信処理３３により非接触Ｉ／Ｏポート２６へのレスポンス送信のための送信処理を行う（ステップ１０５）。サービス優先度／コマンド処理順序テーブル４１を参照し、図１０に示すように、サービス番号５１が「１」及び「３」のサービスで、コマンドＡの次に受信が予測されるコマンドであるコマンドＢ、コマンドＧをサービスプロシージャテーブル４２の次コマンド６３にそれぞれ設定し、非接触Ｉ／Ｏポート２６からコマンドを送信する（ステップ１０６）。
【００４５】
次に、非接触Ｉ／Ｏポート２６からコマンドＧを受信すると（ステップ１０７）、ＩＣカード１のＣＰＵ２１はＯＳ３１内のコマンド送受信処理３３によりコマンド受信処理を行い（ステップ１０８）、コマンドプロシージャテーブル４２を参照し、受信したコマンドＧはサービス番号５１が「３」のサービスに対応していると判定し、図１１に示すように、サービスプロシージャテーブル４２内のサービス番号５１が「１」のサービスに関するデータを削除し、非接触Ｉ／Ｏ用アプリ４４にコマンドＧの処理を指示する（ステップ１０９）。
【００４６】
非接触Ｉ／Ｏ用アプリ４４によるコマンドＧの処理中（ステップ１１０）、接触Ｉ／Ｏポート２５でコマンドＥを受信すると（ステップ１１１）、ＩＣカード１のＣＰＵ２１はＯＳ３１内のコマンド送受信処理３３によりコマンド受信処理を行い（ステップ１１２）、サービスプロシージャテーブル４２に接触Ｉ／Ｏポート２５に対応するサービスがあるかどうかを検索する。接触Ｉ／Ｏポート２５に対応するサービスは存在しないため、サービス優先度／コマンド処理順序テーブル４１を参照して、図１２に示すように、１番目のコマンドがコマンドＥであるサービス番号５１が「２」のサービスをサービスプロシージャテーブル４２に登録する。サービスプロシージャテーブル４２に登録されているサービスでは、サービス番号５１が「２」のサービスの優先度の方がサービス番号５１が「３」のサービスの優先度よりも高いため、ＩＣカード１のＣＰＵ２１は、非接触Ｉ／Ｏ用アプリ４４で実行していたコマンドＧの処理を退避し、接触Ｉ／Ｏ用アプリ４３にコマンドＥの処理を指示する（ステップ１１３）。
【００４７】
接触Ｉ／Ｏ用アプリ４３でコマンドＥの処理が終了すると（ステップ１１４）、ＩＣカード１のＣＰＵ２１は接触Ｉ／Ｏポート２５へのレスポンス送信のためのコマンド送信処理を行い（ステップ１１５）、接触Ｉ／Ｏ用ポート２５はコマンドを送信する(ステップ１１６)。
【００４８】
ＩＣカード１のＣＰＵ２１は、サービス優先度／コマンド処理順序テーブル４１を参照し、図１３に示すようにコマンドＥの次コマンド６３をコマンドＦに設定する。そして、ＩＣカード１のＣＰＵ２１は、ＯＳ３１内の受信待ち時間設定機能３８により受信待ち時間ｄを設定し、中断している非接触Ｉ／Ｏポート２６でのコマンドＧの処理再開前に、接触Ｉ／Ｏポート２５で次コマンド６３で指定されているコマンドＦの受信を待つ（ステップ１１７）。
受信待ち時間ｄは、デフォルト値としてＩＣカード１の発行時、あるいは、運用時にコマンド発行により設定する。
【００４９】
受信待ち時間設定機能３９により設定した受信待ち時間ｄが経過しても接触Ｉ／Ｏポート２５でコマンドＦを受信しない場合、ＩＣカード１のＣＰＵ２１は、接触Ｉ／Ｏポート２５で次のコマンドが受信されるまで、図１４に示すように接触Ｉ／Ｏポート２５に対応するサービスのサービス優先度５３を無効とし、ＯＳ３１のコマンド処理切り替え機能４０により中断していた非接触Ｉ／Ｏ用アプリ４４でのコマンドＧの処理再開を指示する（ステップ１１８）。
ＩＣカード１のＣＰＵ２１は、非接触Ｉ／Ｏ用アプリ４４によるコマンド処理終了後（ステップ１１９）、ＯＳ３１内のコマンド送受信処理３３により非接触Ｉ／Ｏポート２６へのレスポンス送信のための送信処理を行い（ステップ１２０）、サービス優先度／コマンド処理順序テーブル４１を参照し、図１５に示すように、サービスプロシージャテーブル４２の次コマンド６３にコマンドＤを設定し、非接触Ｉ／Ｏポート２６からコマンドを送信する（ステップ１２１）。
【００５０】
接触Ｉ／Ｏ用ポート２５からコマンドＦを受信すると（ステップ１２２）、ＩＣカード１のＣＰＵ２１はＯＳ３１のコマンド送受信処理３３によりコマンド受信処理を行い（ステップ１２３）、図１６に示すように、サービスプロシージャテーブル４２内で無効となっていた接触Ｉ／Ｏポート２５に対応するサービスのサービス優先度５３を「２」に戻し、接触Ｉ／Ｏ用アプリ４３にコマンドＦの処理を指示する（ステップ１２４）。
【００５１】
接触Ｉ／Ｏ用アプリ４３によるコマンド処理終了後（ステップ１２５）、ＩＣカード１のＣＰＵ２１は接触Ｉ／Ｏポート２５へのレスポンス送信のためのコマンド送信処理を行い（ステップ１２６）、接触Ｉ／Ｏポート２５はコマンドを送信する(ステップ１２７)。
サービス番号５１が「２」のサービスは、コマンドＦで処理を完了するため、図１７に示すように、サービス番号５１が「２」のサービスに対応するデータを削除する。
【００５２】
非接触Ｉ／Ｏポート２６でコマンドＪを受信すると（ステップ１２８）、ＩＣカード１のＣＰＵ２１はＯＳ３１内のコマンド送受信処理３３によりコマンド受信処理を行う（ステップ１２９）。
サービスプロシージャテーブル４２を参照し、非接触Ｉ／Ｏポート２６に対応するサービスの次コマンド６３のコマンドＤと、受信したコマンドＪが一致しないため、非接触Ｉ／Ｏポート２６でサービス番号５１が「３」のサービスとは別のサービスが要求されたと判断する。サービス優先度／コマンド処理順序テーブル４１内に１番目のコマンドがコマンドＪであるサービスはないため、図１８に示すように、サービス番号５１及びサービス優先度５３はデータなしの状態でコマンドＪを登録し、非接触Ｉ／Ｏ用アプリ４４にコマンドＪの処理を指示する（ステップ１３０）。サービス優先度５３がデータなしの場合、優先度が一番低いサービスとして処理を行う。
【００５３】
非接触Ｉ／Ｏ用アプリ４４によるコマンド処理終了後（ステップ１３１）、ＩＣカード１のＣＰＵ２１は非接触Ｉ／Ｏポート２６へのレスポンス送信のため、コマンド送信処理を行い（ステップ１３２）、非接触Ｉ／Ｏポート２６はコマンドを送信する（ステップ１３３）。コマンドＪは、サービス優先度／コマンド処理順序テーブル４１に存在しないため、次のコマンドはないと判断し、図１９に示すように、サービスプロシージャテーブル４２のデータを削除する。
【００５４】
図８のステップ１１３では、非接触Ｉ／Ｏ用アプリ４４でサービス番号５１が「３」のサービスプロシージャを実行中に、優先度の高いサービスのコマンドを受信した場合、非接触Ｉ／Ｏ用アプリ４４の実行を中断してサービス番号５１が「２」のサービスプロシージャの実行を切り替えたが、実行中のアプリケーションを中断させるのが難しい場合、実行中のアプリケーションの中断は行わないという方法もある。
図２０、２１、２２、２３、２４、２５を参照しながら、第二の実施形態の動作について説明する。
図２０は、コマンド実行中に優先度の高いサービスのコマンドを受信し、コマンド処理を続ける場合の処理の流れを示す図、図２１は、ステップ２０３のサービスプロシージャテーブル４２を示す図、図２２は、ステップ２０５のサービスプロシージャテーブル４２を示す図、図２３は、ステップ２０９のサービスプロシージャテーブル４２を示す図、図２４は、ステップ２１３のサービスプロシージャテーブル４２を示す図、図２５は、ステップ２１５のサービスプロシージャテーブル４２を示す図である。
【００５５】
図２０に示すように、ＩＣカード１のＣＰＵ２１が、非接触Ｉ／Ｏポート２６でコマンドＡを受信すると（ステップ２０１）、ＯＳ３１内のコマンド送受信処理３３によりコマンド受信処理を行い（ステップ２０２）、処理順序管理を行う（ステップ２０３）。
ＩＣカード１のＣＰＵ２１は、処理順序管理機能３６に従ってサービスプロシージャテーブル４２を参照し、空であること、即ち、現在実行中のコマンド処理がないことを確認する。そして、ＩＣカード１のＣＰＵ２１は、サービス優先度／コマンド処理順序テーブル４１のコマンドシーケンス５５を検索し、１番目のコマンドがコマンドＡであるサービスを探して、１番目のコマンドがコマンドＡであるサービス番号５１が「１」と「３」の２つのサービスについて、図２１に示すようにサービスプロシージャテーブル４２を設定する。
【００５６】
ＩＣカード１のＣＰＵ２１は、非接触Ｉ／Ｏアプリ４４によりコマンドＡのコマンド処理を実行し（ステップ２０４）、ＯＳ３１内のコマンド送受信処理３３により非接触Ｉ／Ｏポート２６へのレスポンス送信のための送信処理を行う（ステップ２０５）。サービス優先度／コマンド処理順序テーブル４１を参照し、図２２に示すように、サービス番号５１が「１」及び「３」のサービスで、コマンドＡの次に受信が予測されるコマンドであるコマンドＢ、コマンドＧをサービスプロシージャテーブル４２の次コマンド６３にそれぞれ設定し、非接触Ｉ／Ｏポート２６からコマンドを送信する（ステップ２０６）。
【００５７】
次に、非接触Ｉ／Ｏポート２６からコマンドＧを受信すると（ステップ２０７）、ＩＣカード１のＣＰＵ２１はＯＳ３１内のコマンド送受信処理３３によりコマンド受信処理を行い（ステップ２０８）、コマンドプロシージャテーブル４２を参照し、受信したコマンドＧはサービス番号５１が「３」のサービスに対応していると判定し、図２３に示すように、サービスプロシージャテーブル４２内のサービス番号５１が「１」のサービスに関するデータを削除し、非接触Ｉ／Ｏ用アプリ４４にコマンドＧの処理を指示する（ステップ２０９）。
【００５８】
非接触Ｉ／Ｏ用アプリ４４によるコマンドＧの処理中（ステップ２１０）、接触Ｉ／Ｏポート２５でコマンドＥを受信すると（ステップ２１１）、ＩＣカード１のＣＰＵ２１はＯＳ３１内のコマンド送受信処理３３によりコマンド受信処理を行い（ステップ２１２）、サービスプロシージャテーブル４２に接触Ｉ／Ｏポート２５に対応するサービスがあるかどうかを検索する。接触Ｉ／Ｏポート２５に対応するサービスは存在しないため、サービス優先度／コマンド処理順序テーブル４１を参照して、図２４に示すように、１番目のコマンドがコマンドＥであるサービス番号５１が「２」のサービスをサービスプロシージャテーブル４２に登録する。そして、ＩＣカード１のＣＰＵ２１は、非接触Ｉ／Ｏ用アプリ４４にコマンドＧの処理再開を指示する（ステップ２１３）。
【００５９】
非接触Ｉ／Ｏ用アプリ４４によるコマンド処理終了後（ステップ２１４）、ＩＣカード１のＣＰＵ２１は非接触Ｉ／Ｏポート２６へのレスポンス送信のためのコマンド送信処理を行い、サービス優先度／コマンド処理順序テーブル４１を参照し、図２５に示すように、コマンドＧの次コマンドとしてサービスプロシージャテーブル４２の次コマンド６３にコマンドＤを設定する（ステップ２１５）。非接触Ｉ／Ｏポート２６は、コマンドを送信する（ステップ２１６）。
【００６０】
優先度の高いサービス番号５１が「２」のサービスプロシージャのコマンドＥの処理が待ち状態となっているため、ＩＣカード１のＣＰＵ２１は受信待ち時間を設定することなく、接触Ｉ／Ｏ用アプリ４３にコマンドＥの処理を指示し（ステップ２１７）、接触Ｉ／Ｏ用アプリ４３はコマンドＥの処理を開始する（ステップ２１８）。
【００６１】
接触Ｉ／Ｏ用アプリ４３によるコマンド処理終了後、ＩＣカード１のＣＰＵ２１は接触Ｉ／Ｏポート２５へのレスポンス送信のため、コマンド送信処理を行い（ステップ２１９）、接触Ｉ／Ｏポート２５はコマンドを送信する（ステップ２２０）。
【００６２】
以上、説明したように本実施によれば、ＩＣカードが実行するサービスに優先度を付加し、優先度の高いサービスのコマンドを優先的に処理するＩＣカード等を提供することができる。
【００６３】
添付図面を参照しながら本発明に係るＩＣカードの好適な実施形態について説明したが、前述した実施の形態に限定されない。当業者であれば、特許請求の範囲に記載された技術的思想の範疇内において各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【図面の簡単な説明】
【００６４】
【図１】ＩＣカード１を搭載した携帯電話機３の運用例を示す図
【図２】ＩＣカード１のハードウエア構成を示す図
【図３】ＩＣカード１のメモリ２４の詳細を示す図
【図４】メモリ２４内のサービス優先度／コマンド処理順序テーブル４１の詳細を示す図
【図５】メモリ２４内のサービスプロシージャテーブル４２の詳細を示す図
【図６】携帯電話機３のハードウエア構成を示す図
【図７】ＩＣカード読取装置７のハードウエア構成を示す図
【図８】コマンド実行中に優先度の高いサービスのコマンドを受信し、コマンド処理を切り替える場合の処理の流れを示す図
【図９】ステップ１０３のサービスプロシージャテーブル４２を示す図
【図１０】ステップ１０５のサービスプロシージャテーブル４２を示す図
【図１１】ステップ１０９のサービスプロシージャテーブル４２を示す図
【図１２】ステップ１１３のサービスプロシージャテーブル４２を示す図
【図１３】ステップ１１５のサービスプロシージャテーブル４２を示す図
【図１４】ステップ１１８のサービスプロシージャテーブル４２を示す図
【図１５】ステップ１２０のサービスプロシージャテーブル４２を示す図
【図１６】ステップ１２４のサービスプロシージャテーブル４２を示す図
【図１７】ステップ１２６のサービスプロシージャテーブル４２を示す図
【図１８】ステップ１３０のサービスプロシージャテーブル４２を示す図
【図１９】ステップ１３２のサービスプロシージャテーブル４２を示す図
【図２０】コマンド実行中に優先度の高いサービスのコマンドを受信し、コマンド処理を続ける場合の処理の流れを示す図
【図２１】ステップ２０３のサービスプロシージャテーブル４２を示す図
【図２２】ステップ２０５のサービスプロシージャテーブル４２を示す図
【図２３】ステップ２０９のサービスプロシージャテーブル４２を示す図
【図２４】ステップ２１３のサービスプロシージャテーブル４２を示す図
【図２５】ステップ２１５のサービスプロシージャテーブル４２を示す図
【符号の説明】
【００６５】
１………ＩＣカード
３………携帯電話機
５………基地局
７………ＩＣカード読取装置
９………決済ホスト
１１………ネットワーク
２１………ＣＰＵ
２２………ＲＯＭ
２３………ＲＡＭ
２４………メモリ
２５………接触Ｉ／Ｏポート
２６………非接触Ｉ／Ｏポート
２８………バス
３１………ＯＳ
３２………ＯＳ管理処理
３３………コマンド送受信処理
３４………コマンド管理処理
３５………コマンド配送機能
３６………処理順序管理機能
３７………コマンド処理中断／再開機能
３８………受信待ち時間設定機能
３９………コマンド処理切り替え機能
４１………サービス優先度／コマンド処理順序テーブル
４２………サービスプロシージャテーブル
４３………接触Ｉ／Ｏ用アプリ
４４………非接触Ｉ／Ｏ用アプリ
【図１】
2008059423.tif 000003
【図２】
2008059423.tif 000004
【図３】
2008059423.tif 000005
【図４】
2008059423.tif 000006
【図５】
2008059423.tif 000007
【図６】
2008059423.tif 000008
【図７】
2008059423.tif 000009
【図８】
2008059423.tif 000010
【図９】
2008059423.tif 000011
【図１０】
2008059423.tif 000012
【図１１】
2008059423.tif 000013
【図１２】
2008059423.tif 000014
【図１３】
2008059423.tif 000015
【図１４】
2008059423.tif 000016
【図１５】
2008059423.tif 000017
【図１６】
2008059423.tif 000018
【図１７】
2008059423.tif 000019
【図１８】
2008059423.tif 000020
【図１９】
2008059423.tif 000021
【図２０】
2008059423.tif 000022
【図２１】
2008059423.tif 000023
【図２２】
2008059423.tif 000024
【図２３】
2008059423.tif 000025
【図２４】
2008059423.tif 000026
【図２５】
2008059423.tif 000027