(57)【要約】【課題】通信相手が多様化する場合であっても、利便性を向上することが可能な電子情報記憶媒体、電子情報記憶媒体における処理方法、及びプログラムを提供する。【解決手段】ＵＩＭモジュール３は、外部からインターフェースを介してコマンドを受信した場合、受信されたコマンドが非共通コマンドであるかを最初に判定し、非共通コマンドでないと判定した場合にはじめて、当該受信されたコマンドが共通コマンドであるか否かを判定し、共通コマンドであればこの共通コマンドを処理する。【選択図】図４
2020067706.tif 000002
【特許請求の範囲】
【請求項１】
オペレーティングシステムを搭載する電子情報記憶媒体であって、
外部からインターフェースを介して受信されたコマンドが複数の通信相手間で共通して前記オペレーティングシステムにより処理されるべき共通コマンドとして定義されていない非共通コマンドであるか否かを判定する第１判定手段と、
前記第１判定手段により前記非共通コマンドであると判定された場合、前記非共通コマンドの非共通コマンド処理手段へ前記受信されたコマンドを配送する第１配送手段と、
前記第１判定手段により前記非共通コマンドでないと判定された場合、前記受信されたコマンドが前記共通コマンドであるか否かを判定する第２判定手段と、
前記第２判定手段により前記共通コマンドであると判定された場合、前記共通コマンドを処理する共通コマンド処理手段と、
を備えることを特徴とする電子情報記憶媒体。
【請求項２】
前記第２判定手段により前記共通コマンドでないと判定された場合、前記受信されたコマンドで指定された論理チャネルに前記オペレーティングシステム上で実行されるアプリケーションが割り当てられているか否かを判定する第３判定手段と、
前記第３判定手段により前記論理チャネルに前記アプリケーションが割り当てられていると判定された場合、当該アプリケーションへ前記受信されたコマンドを配送する第２配送手段と、
を更に備えることを特徴とする請求項１に記載の電子情報記憶媒体。
【請求項３】
前記受信されたコマンドの構造に基づいて、前記非共通コマンドであるか否かを判定するための複数の判定方法のうち何れか１の判定方法を決定する決定手段を更に備え、
前記第１判定手段は、前記受信されたコマンドが前記非共通コマンドであるか否かを、前記決定手段により決定された判定方法にしたがって判定することを特徴とする請求項１または２に記載の電子情報記憶媒体。
【請求項４】
前記電子情報記憶媒体には、前記非共通コマンドのパターンを記述するパターン部と、前記非共通コマンド処理手段の識別子を記述する配送先指定部と、を含んで構成されるコマンドテーブルが記憶されており、
前記第１判定手段は、前記受信されたコマンドが前記パターン部に記述されたパターンと一致した場合に、前記非共通コマンドであると判定し、
前記第１判定手段により前記非共通コマンドであると判定された場合、前記第１配送手段は、前記受信されたコマンドを前記配送先指定部に記述された識別子から特定された前記非共通コマンド処理手段へ配送することを特徴とする請求項１乃至３の何れか一項に記載の電子情報記憶媒体。
【請求項５】
前記電子情報記憶媒体には、前記非共通コマンドのパターンを記述するパターン部と、前記非共通コマンド処理手段により処理される条件の検証に用いられる情報を記述する条件部とを含んで構成されるコマンドテーブルが記憶されており、
前記第１判定手段は、前記受信されたコマンドが前記パターン部に記述されたパターンと一致し、且つ、前記条件部に記述された情報を用いて検証した条件が満たされる場合に、前記非共通コマンドであると判定することを特徴とする請求項１乃至３の何れか一項に記載の電子情報記憶媒体。
【請求項６】
前記電子情報記憶媒体には、前記非共通コマンドのパターンを記述するパターン部と、前記非共通コマンド処理手段の識別子を記述する配送先指定部と、前記非共通コマンド処理手段により処理される条件の検証に用いられる情報を記述する条件部と、を含んで構成されるコマンドテーブルが記憶されており、
前記第１判定手段は、前記受信されたコマンドが前記パターン部に記述されたパターンと一致し、且つ、前記条件部に記述された情報を用いて検証した条件が満たされる場合に、前記非共通コマンドであると判定し、
前記第１判定手段により前記非共通コマンドであると判定された場合、前記第１配送手段は、前記受信されたコマンドを前記配送先指定部に記述された識別子から特定された前記非共通コマンド処理手段へ配送することを特徴とする請求項１乃至３の何れか一項に記載の電子情報記憶媒体。
【請求項７】
前記条件部には、関数参照、または、アプリケーション識別子と関数識別子が記述されており、
前記第１判定手段は、前記関数参照から特定された関数、または、前記アプリケーション識別子と前記関数識別子とから特定された関数が正常終了する場合に、前記条件が満たされると判断することを特徴とする請求項５または６に記載の電子情報記憶媒体。
【請求項８】
前記条件部には、インターフェース識別子が記述されており、
前記第１判定手段は、前記受信されたコマンドが前記インターフェース識別子から特定されたインターフェースを介して受信された場合に、前記条件が満たされると判断することを特徴とする請求項５または６に記載の電子情報記憶媒体。
【請求項９】
前記条件部には、インターフェース識別子が記述されており、
前記第１判定手段は、前記インターフェース識別子から特定されたインターフェースの活性化ステップが実行済みである場合に、前記条件が満たされると判断することを特徴とする請求項５または６に記載の電子情報記憶媒体。
【請求項１０】
前記条件部には、アプリケーション識別子が記述されており、
前記第１判定手段は、前記アプリケーション識別子から特定されたアプリケーションが、何れかの論理チャネルに割り当てられている場合に、前記条件が満たされると判断することを特徴とする請求項５または６に記載の電子情報記憶媒体。
【請求項１１】
前記条件部には、アプリケーション識別子が記述されており、
前記第１判定手段は、前記アプリケーション識別子から特定されたアプリケーションが、何れの論理チャネルにも割り当てられていない場合に、前記条件が満たされると判断することを特徴とする請求項５または６に記載の電子情報記憶媒体。
【請求項１２】
前記条件部には、バイナリ比較用のパターンが記述されており、
前記第１判定手段は、前記電子情報記憶媒体により前回受信されたコマンド、または、今回受信されたコマンドが前記バイナリ比較用のパターンと一致する場合に、前記条件が満たされると判断することを特徴とする請求項５または６に記載の電子情報記憶媒体。
【請求項１３】
前記条件部には、アプリケーション識別子とライフサイクル識別子が記述されており、
前記第１判定手段は、前記アプリケーション識別子から特定されたアプリケーションのライフサイクルが前記ライフサイクル識別子から特定されたライフサイクルと一致する場合に、前記条件が満たされると判断することを特徴とする請求項５または６に記載の電子情報記憶媒体。
【請求項１４】
前記条件部には、ライフサイクル識別子が記述されており、
前記第１判定手段は、前記ライフサイクル識別子から特定されたライフサイクルが前記電子情報記憶媒体のライフサイクルと一致する場合に、前記条件が満たされると判断することを特徴とする請求項５または６に記載の電子情報記憶媒体。
【請求項１５】
オペレーティングシステムを搭載する電子情報記憶媒体におけるコンピュータにより実行される処理方法であって、
外部からインターフェースを介して受信されたコマンドが複数の通信相手間で共通して前記オペレーティングシステムにより処理されるべき共通コマンドとして定義されていない非共通コマンドであるか否かを判定するステップと、
前記非共通コマンドであると判定した場合、前記非共通コマンドの非共通コマンド処理手段へ前記受信されたコマンドを配送するステップと、
前記非共通コマンドでないと判定した場合、前記受信されたコマンドが前記共通コマンドであるか否かを判定するステップと、
前記共通コマンドであると判定した場合、前記共通コマンドを処理するステップと、
を含むことを特徴とする処理方法。
【請求項１６】
オペレーティングシステムを搭載する電子情報記憶媒体におけるコンピュータに、
外部からインターフェースを介して受信されたコマンドが複数の通信相手間で共通して前記オペレーティングシステムにより処理されるべき共通コマンドとして定義されていない非共通コマンドであるか否かを判定するステップと、
前記非共通コマンドであると判定した場合、前記非共通コマンドの非共通コマンド処理手段へ前記受信されたコマンドを配送するステップと、
前記非共通コマンドでないと判定した場合、前記受信されたコマンドが前記共通コマンドであるか否かを判定するステップと、
前記共通コマンドであると判定した場合、前記共通コマンドを処理するステップと、
を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のアプリケーションを搭載するＵＩＭ等の電子情報記憶媒体の技術分野に関する。
【背景技術】
【０００２】
近年、複数の論理チャネルを管理する論理チャネル（ロジカルチャネル）管理機能を有し、複数のアプリケーション（いわゆるマルチアプリケーション）を搭載することが可能なＵＩＭ（User Identity Module）が普及している。論理チャネル管理機能は、例えば特許文献１に開示されるように、各論理チャネルに異なるアプリケーションを割り当てることができ、これにより、アプリケーションごとに異なる複数系列のコマンド（外部からのコマンド）を処理することができる。また、このようなＵＩＭに搭載されたオペレーティングシステムは、アプリケーション間（言い換えれば、後述する通信相手間）で共通する共通コマンドを処理することが可能になっている。共通コマンドの例として、論理チャネルをオープンまたはクローズするコマンド（MANAGE CHANNEL コマンド）、及び論理チャネルにアプリケーションを割り当てるコマンド（SELECT コマンド）が挙げられる。このような共通コマンド以外のコマンドは、例えば、当該コマンドで指定された論理チャネルに割り当てられているアプリケーションへ配送され、当該アプリケーションにより処理される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−２１６０６８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、近年、上述したＵＩＭは、ＩＣカードや携帯端末ばかりでなく、ＩｏＴ（Internet of Things）機器などに組み込まれ、複数種類のインターフェースを介して様々な通信相手（例えば、通信機器に搭載されたモジュール）と通信可能になってきている。このように、通信相手が多様化することで、それぞれの通信相手の実装によって、ＵＩＭに搭載されたオペレーティングシステムに期待される動作が異なり、不整合が生じるようになっている。例えば、単機能な通信相手であれば、アプリケーションを選択せずに（つまり、論理チャネルを必要とせずに）コマンドを送信することが想定される。また、ある通信相手は、上述した共通コマンドとして定義されていない独自の非共通コマンド（例えば、アプリケーションの選択を全て外したり、選択可能なアプリケーションを制限するなどのコマンド)を実装していることが想定される。このような状況に対応するためには、環境や用途に合わせた複数種類のＵＩＭが必要となる。その結果、ユーザに不便を強いることになり、マルチアプリケーションの利便性が損なわれてしまう。
【０００５】
そこで、本発明は、以上の点等に鑑みてなされたものであり、通信相手が多様化する場合であっても、利便性を向上することが可能な電子情報記憶媒体、電子情報記憶媒体における処理方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、請求項１に記載の発明は、オペレーティングシステムを搭載する電子情報記憶媒体であって、外部からインターフェースを介して受信されたコマンドが複数の通信相手間で共通して前記オペレーティングシステムにより処理されるべき共通コマンドとして定義されていない非共通コマンドであるか否かを判定する第１判定手段と、前記第１判定手段により前記非共通コマンドであると判定された場合、前記非共通コマンドの非共通コマンド処理手段へ前記受信されたコマンドを配送する第１配送手段と、前記第１判定手段により前記非共通コマンドでないと判定された場合、前記受信されたコマンドが前記共通コマンドであるか否かを判定する第２判定手段と、前記第２判定手段により前記共通コマンドであると判定された場合、前記共通コマンドを処理する共通コマンド処理手段と、を備えることを特徴とする。
【０００７】
請求項２に記載の発明は、請求項１に記載の電子情報記憶媒体において、前記第２判定手段により前記共通コマンドでないと判定された場合、前記受信されたコマンドで指定された論理チャネルに前記オペレーティングシステム上で実行されるアプリケーションが割り当てられているか否かを判定する第３判定手段と、前記第３判定手段により前記論理チャネルに前記アプリケーションが割り当てられていると判定された場合、当該アプリケーションへ前記受信されたコマンドを配送する第２配送手段と、を更に備えることを特徴とする。
【０００８】
請求項３に記載の発明は、請求項１または２に記載の電子情報記憶媒体において、前記受信されたコマンドの構造に基づいて、前記非共通コマンドであるか否かを判定するための複数の判定方法のうち何れか１の判定方法を決定する決定手段を更に備え、前記第１判定手段は、前記受信されたコマンドが前記非共通コマンドであるか否かを、前記決定手段により決定された判定方法にしたがって判定することを特徴とする。
【０００９】
請求項４に記載の発明は、請求項１乃至３の何れか一項に記載の電子情報記憶媒体において、前記電子情報記憶媒体には、前記非共通コマンドのパターンを記述するパターン部と、前記非共通コマンド処理手段の識別子を記述する配送先指定部と、を含んで構成されるコマンドテーブルが記憶されており、前記第１判定手段は、前記受信されたコマンドが前記パターン部に記述されたパターンと一致した場合に、前記非共通コマンドであると判定し、前記第１判定手段により前記非共通コマンドであると判定された場合、前記第１配送手段は、前記受信されたコマンドを前記配送先指定部に記述された識別子から特定された前記非共通コマンド処理手段へ配送することを特徴とする。
【００１０】
請求項５に記載の発明は、請求項１乃至３の何れか一項に記載の電子情報記憶媒体において、前記電子情報記憶媒体には、前記非共通コマンドのパターンを記述するパターン部と、前記非共通コマンド処理手段により処理される条件の検証に用いられる情報を記述する条件部とを含んで構成されるコマンドテーブルが記憶されており、前記第１判定手段は、前記受信されたコマンドが前記パターン部に記述されたパターンと一致し、且つ、前記条件部に記述された情報を用いて検証した条件が満たされる場合に、前記非共通コマンドであると判定することを特徴とする。
【００１１】
請求項６に記載の発明は、請求項１乃至３の何れか一項に記載の電子情報記憶媒体において、前記電子情報記憶媒体には、前記非共通コマンドのパターンを記述するパターン部と、前記非共通コマンド処理手段の識別子を記述する配送先指定部と、前記非共通コマンド処理手段により処理される条件の検証に用いられる情報を記述する条件部と、を含んで構成されるコマンドテーブルが記憶されており、前記第１判定手段は、前記受信されたコマンドが前記パターン部に記述されたパターンと一致し、且つ、前記条件部に記述された情報を用いて検証した条件が満たされる場合に、前記非共通コマンドであると判定し、前記第１判定手段により前記非共通コマンドであると判定された場合、前記第１配送手段は、前記受信されたコマンドを前記配送先指定部に記述された識別子から特定された前記非共通コマンド処理手段へ配送することを特徴とする。
【００１２】
請求項７に記載の発明は、請求項５または６に記載の電子情報記憶媒体において、前記条件部には、関数参照、または、アプリケーション識別子と関数識別子が記述されており、前記第１判定手段は、前記関数参照から特定された関数、または、前記アプリケーション識別子と前記関数識別子とから特定された関数が正常終了する場合に、前記条件が満たされると判断することを特徴とする。
【００１３】
請求項８に記載の発明は、請求項５または６に記載の電子情報記憶媒体において、前記条件部には、インターフェース識別子が記述されており、前記第１判定手段は、前記受信されたコマンドが前記インターフェース識別子から特定されたインターフェースを介して受信された場合に、前記条件が満たされると判断することを特徴とする。
【００１４】
請求項９に記載の発明は、請求項５または６に記載の電子情報記憶媒体において、前記条件部には、インターフェース識別子が記述されており、前記第１判定手段は、前記インターフェース識別子から特定されたインターフェースの活性化ステップが実行済みである場合に、前記条件が満たされると判断することを特徴とする。
【００１５】
請求項１０に記載の発明は、請求項５または６に記載の電子情報記憶媒体において、前記条件部には、アプリケーション識別子が記述されており、前記第１判定手段は、前記アプリケーション識別子から特定されたアプリケーションが、何れかの論理チャネルに割り当てられている場合に、前記条件が満たされると判断することを特徴とする。
【００１６】
請求項１１に記載の発明は、請求項５または６に記載の電子情報記憶媒体において、前記条件部には、アプリケーション識別子が記述されており、第１判定手段は、前記アプリケーション識別子から特定されたアプリケーションが、何れの論理チャネルにも割り当てられていない場合に、前記条件が満たされると判断することを特徴とする。
【００１７】
請求項１２に記載の発明は、請求項５または６に記載の電子情報記憶媒体において、前記条件部には、バイナリ比較用のパターンが記述されており、前記第１判定手段は、前記電子情報記憶媒体により前回受信されたコマンド、または、今回受信されたコマンドが前記バイナリ比較用のパターンと一致する場合に、前記条件が満たされると判断することを特徴とする。
【００１８】
請求項１３に記載の発明は、請求項５または６に記載の電子情報記憶媒体において、前記条件部には、アプリケーション識別子とライフサイクル識別子が記述されており、前記第１判定手段は、前記アプリケーション識別子から特定されたアプリケーションのライフサイクルが前記ライフサイクル識別子から特定されたライフサイクルと一致する場合に、前記条件が満たされると判断することを特徴とする。
【００１９】
請求項１４に記載の発明は、請求項５または６に記載の電子情報記憶媒体において、前記条件部には、ライフサイクル識別子が記述されており、前記第１判定手段は、前記ライフサイクル識別子から特定されたライフサイクルが前記電子情報記憶媒体のライフサイクルと一致する場合に、前記条件が満たされると判断することを特徴とする。
【００２０】
請求項１５に記載の発明は、オペレーティングシステムを搭載する電子情報記憶媒体におけるコンピュータにより実行される処理方法であって、外部からインターフェースを介して受信されたコマンドが複数の通信相手間で共通して前記オペレーティングシステムにより処理されるべき共通コマンドとして定義されていない非共通コマンドであるか否かを判定するステップと、前記非共通コマンドであると判定した場合、前記非共通コマンドの非共通コマンド処理手段へ前記受信されたコマンドを配送するステップと、前記非共通コマンドでないと判定した場合、前記受信されたコマンドが前記共通コマンドであるか否かを判定するステップと、前記共通コマンドであると判定した場合、前記共通コマンドを処理するステップと、を含むことを特徴とする。
【００２１】
請求項１６に記載の発明は、オペレーティングシステムを搭載する電子情報記憶媒体におけるコンピュータに、外部からインターフェースを介して受信されたコマンドが複数の通信相手間で共通して前記オペレーティングシステムにより処理されるべき共通コマンドとして定義されていない非共通コマンドであるか否かを判定するステップと、前記非共通コマンドであると判定した場合、前記非共通コマンドの非共通コマンド処理手段へ前記受信されたコマンドを配送するステップと、前記非共通コマンドでないと判定した場合、前記受信されたコマンドが前記共通コマンドであるか否かを判定するステップと、前記共通コマンドであると判定した場合、前記共通コマンドを処理するステップと、を実行させることを特徴とする。
【発明の効果】
【００２２】
本発明によれば、通信相手が多様化する場合であっても、利便性を向上することができる。
【図面の簡単な説明】
【００２３】
【図１】本実施形態に係る通信デバイスＤの概要構成例を示す図である。
【図２】ＵＩＭモジュール３のハードウェア構成例を示す図である。
【図３】ＵＩＭモジュール３のソフトウェア構成例を示す図である。
【図４】ＵＩＭモジュール３のＯＳにより実行されるメイン処理を示すフローチャートである。
【図５】（Ａ），（Ｂ）は、非共通コマンド判定処理の詳細を示すフローチャートである。
【図６】ＵＩＭモジュール３内のプログラム構成の一例を示す図である。
【図７】ＵＩＭモジュール３内のテーブル構成の一例を示す図である。
【図８】ＵＩＭモジュール３により受信される各コマンドの構造の一例を示す図である。
【発明を実施するための形態】
【００２４】
以下、図面を参照して本発明の実施形態について詳細に説明する。以下に説明する実施形態は、通信デバイスに対して本発明を適用した場合の実施の形態である。
【００２５】
［１．通信デバイスＤの概要構成］
先ず、図１等を参照して、本実施形態にかかる通信デバイスＤの概要構成について説明する。図１は、本実施形態に係る通信デバイスＤの概要構成例を示す図である。図１に示すように、通信デバイスＤは、通信モジュール１、制御モジュール２、及びＵＩＭモジュール３（オペレーティングシステムを搭載する電子情報記憶媒体の一例）等を含んで構成される。通信デバイスＤは、例えば、カメラ、ＰＯＳ端末、または車載機器などに組み込まれて使用される。或いは、通信デバイスＤは、センサー等を備えるＩｏＴ機器に組み込まれて使用される場合もある。通信モジュール１、制御モジュール２、及びＵＩＭモジュール３は、インターフェースを介して互いに通信可能になっている。なお、通信デバイスＤには、非接触通信プロトコル処理を担当するＣＬＦ（ContactLess Front-end）が搭載されてもよい。
【００２６】
通信モジュール１は、ネットワークＮＷに接続可能になっている。ネットワークＮＷは、例えば、インターネット、モバイル網（例えば、３Ｇ、４Ｇ、または５Ｇネットワーク）、及びゲートウェイ等により構成される。制御モジュール２は、ＣＰＵ（Central Processing Unit）、ＲＡＭ（Random Access Memory）、及びＲＯＭ（Read Only Memory）等により構成されており、通信デバイスＤが組み込まれる機器等における各種機能を制御する。
【００２７】
図２は、ＵＩＭモジュール３のハードウェア構成例を示す図である。図２に示すように、ＵＩＭモジュール３は、ＣＰＵ３１、ＲＡＭ３２、ＲＯＭ３３、ＮＶＭ（Nonvolatile Memory）３４、及びＩ／Ｏ回路３５等を備えて構成される。なお、ＵＩＭモジュール３は、通信デバイスＤから容易に取り外しや取り換えができないように組み込み基板上に実装されてもよいし、カード型の記録媒体として通信デバイスＤに着脱可能に装着されてもよい。Ｉ／Ｏ回路３５は、外部との間の複数のインターフェースを構成する。例えば、通信モジュール１との間はISO7816のインターフェースを介して接続され、制御モジュール２との間は、ＳＰＩ（Serial Peripheral Interface)を介して接続される。また、通信デバイスＤにＣＬＦが搭載される場合、ＣＬＦとの間は、ＳＷＰ（Single Wire Protocol）を介して接続される。なお、各インターフェースには、固有のインターフェース識別子が付与され、オペレーティングシステムにより管理される。
【００２８】
ＣＰＵ３１は、ＲＯＭ３３、またはＮＶＭ３４に記憶された各種プログラム（本発明のプログラムを含む）を実行するプロセッサ（コンピュータ）である。ＲＡＭ３２は、作業用メモリとして利用される。ＮＶＭ３４には、例えばフラッシュメモリが適用される。なお、ＮＶＭ３４は、「Electrically Erasable Programmable Read-Only Memory」などの不揮発性メモリであってもよい。ＲＯＭ３３またはＮＶＭ３４との何れかに記憶されるプログラムには、オペレーティングシステム（以下、「ＯＳ」という）、仮想マシン（例えば、Java（登録商標）Virtual Machine）、ＡＰＩ（Application Programming Interface）、及びアプリケーション（例えば、Java（登録商標）Applet）を構成するプログラムが含まれる。アプリケーションの例として、通信モジュール１によりネットワークＮＷ（例えば、モバイル通信網）へ接続する認証処理を行うためのアプリケーション、制御モジュール２の構成チェックなどのセキュリティ処理を行うためのアプリケーション、ＣＬＦによる非接触通信を使用して決済処理を行うためのアプリケーションなどが挙げられる。なお、ＵＩＭモジュール３には、複数種類のＯＳが搭載されてもよい。複数種類のＯＳの例として、通常の実行環境で動作するリッチＯＳ、及び通常の実行環境とは仮想的に分離されたセキュアな実行環境で動作するセキュアＯＳが挙げられる。リッチＯＳは、例えば、Windows（登録商標）、Linux（登録商標）、Android（登録商標）、及びiOS（登録商標）等に代表される汎用ＯＳである。
【００２９】
図３は、ＵＩＭモジュール３のソフトウェア構成例を示す図である。図３において、ＯＳは、ＵＩＭモジュール３の基本動作を担う基本機能、及び複数の論理チャネルの管理を担う論理チャネル管理機能を有する。論理チャネルとは、オペレーティングシステム上で実行される各アプリケーションにアクセスするための論理的なチャネルである。例えば、論理チャネルCh0には、アプリケーションApp2が割り当てられ、論理チャネルCh1には、アプリケーションApp1が割り当てられる。アプリケーションは、オブジェクトの振る舞いを定義するクラスから実体として作成されたインスタンス（インスタンスオブジェクト）である。各アプリケーションには、固有のアプリケーション識別子（ＡＩＤ）、及びライフサイクルが付与され、ＯＳにより管理される。ライフサイクルは、例えば、アプリケーションのサポート期間（例えば、バージョンアップやエラー修正などのサポートが実施される期限）を示す。なお、アプリケーションは、例えば、ソースコードとネイティブコードとの間のバイトコードにより構成され、バイトコードは、仮想マシンにより解釈されＯＳにより実行可能な形式のコードに変換される。
【００３０】
また、アプリケーション（インスタンス）には、一連の処理をまとめた関数がメソッド（インスタンスメソッド）として記述される。メソッドには、固有の関数識別子が付与される。クラス内に定義されたメソッドは、当該クラスから作成されたアプリケーション（インスタンス）から呼び出し（コール）することができる。なお、呼び出し対象となるメソッドは、アプリケーション識別子及び関数識別子から特定することができるほか、関数参照（メソッド参照）からも特定することができる。関数参照とは、既に定義されているメソッド（メソッドそのものであり、例えば、「インスタンス変数名::メソッド名」と表記される）を記述するものであり、引数を省略することができる。なお、インスタンス変数名は、インスタンス毎に独立している。
【００３１】
以上のソフトウェア構成において、例えば、ＯＳは、本発明における第１判定手段、第１配送手段、第２判定手段、共通コマンド処理手段、第３判定手段、第２配送手段、及び決定手段として機能する。具体的には、ＯＳは、外部からインターフェースを介して受信されたコマンドが、非共通コマンドであるか否かを、例えば予めＮＶＭ３４に記憶された非共通コマンドテーブルを参照することにより判定する。ここで、非共通コマンドとは、複数の通信相手間で共通してＯＳにより処理されるべき共通コマンドとして定義されていないコマンド（例えば、通信相手側で独自に実装されたコマンド）である。通信相手の例として、ネットワークＮＷに接続されたサーバや、通信デバイスＤが組み込まれる機器等が挙げられる。そして、ＯＳは、受信されたコマンドが非共通コマンドであると判定した場合、非共通コマンドの非共通コマンド処理手段へ、受信されたコマンドを配送（供給）する。これにより、非共通コマンドは、非共通コマンド処理手段により処理される。ここで、非共通コマンド処理手段は、例えば、ＯＳ上で実行されるアプリケーションである。なお、ＵＩＭモジュール３に複数種類のＯＳが搭載される場合、非共通コマンド処理手段は、非共通コマンドであるか否かの判定を行うＯＳとは異なる他のＯＳであってもよい。
【００３２】
第１の例として、非共通コマンドテーブルは、非共通コマンドのパターンを記述するパターン部と、非共通コマンド処理手段の識別子（例えば、アプリケーション識別子）を記述する配送先指定部と、を含んで構成される。この場合、ＯＳは、受信されたコマンドが、非共通コマンドテーブルにおけるパターン部に記述されたパターンと一致した場合に、非共通コマンドであると判定する。そして、ＯＳは、受信されたコマンドが非共通コマンドであると判定した場合、受信されたコマンドを、非共通コマンドテーブルにおける配送先指定部に記述された識別子から特定された非共通コマンド処理手段へ配送する。なお、非共通コマンドテーブルにおける各部の記述内容をコマンド定義という。
【００３３】
第２の例として、非共通コマンドテーブルは、非共通コマンドのパターンを記述するパターン部と、非共通コマンド処理手段の識別子を記述する配送先指定部と、非共通コマンド処理手段により処理される条件の検証に用いられる情報を記述する条件部と、を含んで構成される。この場合、ＯＳは、受信されたコマンドが、非共通コマンドテーブルにおけるパターン部に記述されたパターンと一致し、且つ、非共通コマンドテーブルにおける条件部に記述された情報を用いて検証した条件が満たされる場合に、非共通コマンドであると判定する。そして、ＯＳは、受信されたコマンドが非共通コマンドであると判定した場合、受信されたコマンドを、非共通コマンドテーブルにおける配送先指定部に記述された識別子から特定された非共通コマンド処理手段へ配送する。なお、非共通コマンド処理手段が予め定められている場合、非共通コマンドテーブルに配送先指定部がなくてもよい。
【００３４】
一方、ＯＳは、受信されたコマンドが非共通コマンドでないと判定した場合、受信されたコマンドが共通コマンド（例えば、MANAGE CHANNEL コマンド、または、SELECT コマンド）であるか否かを、例えば予めＮＶＭ３４に記憶された共通コマンドテーブルを参照することにより判定する。そして、ＯＳは、受信されたコマンドが共通コマンドであると判定した場合、共通コマンドを処理する（つまり、共通コマンドに応じた処理を行う）。例えば、共通コマンドがSELECT コマンドである場合、ＯＳは、当該SELECT コマンドで指定されたアプリケーションを論理チャネル（例えば、チャネル番号：０番）に割り当てる処理を行う。
【００３５】
一方、ＯＳは、受信されたコマンドが共通コマンドでないと判定した場合、受信されたコマンドで指定された論理チャネルにＯＳ上で実行されるアプリケーションが割り当てられているか否かを、例えば予めＮＶＭ３４に記憶された論理チャネルテーブルを参照することにより判定する。そして、ＯＳは、論理チャネルにアプリケーションが割り当てられていると判定した場合、当該アプリケーションへ受信されたコマンドを配送する。これにより、当該コマンドは、アプリケーションにより処理される。一方、ＯＳは、論理チャネルにアプリケーションが割り当てられていないと判定した場合、エラーを示すレスポンス（応答）をコマンドの送信元へ送信する。
【００３６】
ところで、非共通コマンドの構造の例として、ＡＰＤＵ（Application Protocol Data Unit）構造、及び文字列（例えば、ASCII文字列“GET //HTTP1.0”のバイナリ表現)構造などが挙げられる。ＡＰＤＵ（Application Protocol Data Unit）構造のコマンドは、ISO7816のインターフェースを通じて伝送されるコマンドであり、ＣＬＡ（コマンドクラス）、ＩＮＳ（コマンドコード）、Ｐ１（コマンドパラメータ１）、及びＰ２（コマンドパラメータ２）を有するヘッダ部等から構成される。一方、文字列構造のコマンドは、例えばＳＰＩ（Serial Peripheral Interface)を通じてシリアル伝送されるコマンドである。
【００３７】
ＯＳは、受信されたコマンドの構造を、予め定められた複数のコマンド構造のうち何れか一つのコマンド構造に決定するように構成してもよい。一例として、ＯＳは、コマンドの受信インターフェース（つまり、コマンドが受信されたインターフェース）に従って受信されたコマンドの構造を決定するよう構成してもよい。また、別の例として、ＯＳは、受信されたコマンドに従ってコマンド構造を決定するよう構成してもよい。例えば、ＯＳは、受信されたコマンドの先頭から４バイト（固定）分のヘッダ部が存在するかを判定し、当該ヘッダ部が存在すればＡＰＤＵ構造のコマンドであると決定する。また、例えば、ＯＳは、受信されたコマンドの各バイトが予め定められたエンコーディングでバイナリ化されているかを判定し、当該エンコーディングでバイナリ化されていれば文字列構造のコマンドであると決定する。また、ＯＳは、受信されたコマンドの構造を、複数のコマンド構造に決定するように構成してもよい。例えば、受信されたコマンドの先頭から４バイト（固定）分のヘッダ部が存在するか、及び各バイトが予め定められたエンコーディングでバイナリ化されているかをそれぞれ判定し、ＡＰＤＵ構造及び文字列構造のコマンドであると決定する。また、ＯＳは、受信されたコマンドの構造に基づいて、非共通コマンドであるか否かを判定するための複数の判定方法のうち何れか１の判定方法を決定し、受信されたコマンドが非共通コマンドであるか否かを、上記決定した判定方法にしたがって判定するように構成してもよい。例えば、ＡＰＤＵ構造のコマンドの場合、上述したパターン部に記述されたパターンと、ＡＰＤＵ構造のコマンドの先頭から４バイト（固定）分のヘッダ部との一致判定を行うと予め決めておけばよい。これに対し、文字列構造のコマンドの場合、上述したパターン部に記述されたパターンとの一致判定を行う範囲を指定（例えばオフセット及びレングス（長さ）で指定）した上で一致判定を行う必要がある。なお、この場合において、ＮＶＭ３４には、非共通コマンドの構造ごとに区別された非共通コマンドテーブル（例えば、ＡＰＤＵからなるコマンド用の非共通コマンドテーブルと、文字列からなるコマンド用の非共通コマンドテーブル）が記憶されてもよい。このとき、区別された各非共通コマンドテーブルは、それぞれ異なる構造であってよい。この場合、ＯＳは、受信されたコマンドの構造に基づいて決定した判定方法（例えば、１番または２番）に対応する非共通コマンドテーブルを特定し、特定した非共通コマンドテーブルに具体的に記述された判定方法にしたがって、受信されたコマンドが非共通コマンドであるか否かを判定する。また、ＯＳは、受信されたコマンドの構造が複数のコマンド構造に決定された場合、複数のコマンド構造のうち一つを定められた順序に従って順次決定し、決定したコマンド構造に基づいて非共通コマンドであるか否かを判定するための複数の判定方法のうち何れか１の判定方法を決定し、受信されたコマンドが非共通コマンドであるか否かを、上記決定した判定方法にしたがって判定するように構成してもよい。
【００３８】
［２．ＵＩＭモジュール３の動作］
次に、図４を参照して、ＵＩＭモジュール３の動作について説明する。図４は、ＵＩＭモジュール３のＯＳにより実行されるメイン処理を示すフローチャートである。図５（Ａ），（Ｂ）は、図４のステップＳ１における非共通コマンド判定処理の詳細を示すフローチャートである。なお、図５（Ａ），（Ｂ）は、それぞれ、複数の非共通コマンドのそれぞれに対応するコマンド定義（パターン部、配送先指定部、及び条件部の記述内容）からなる非共通コマンドテーブルを利用した場合の非共通コマンド判定処理を示す。図５（Ｂ）に示す非共通コマンド判定処理では、コマンドの構造に基づいて判定方法を決定するステップＳ１０があるのに対し、図５（Ａ）に示す非共通コマンド判定処理では、当該ステップＳ１０がない点で異なる。また、図５（Ａ）に示す非共通コマンド判定処理では、非共通コマンドを例えばＡＰＤＵ構造のコマンドと文字列構造のコマンドとのどちらか一方とする必要があるのに対し、図５（Ｂ）に示す非共通コマンド判定処理では、非共通コマンドが例えばＡＰＤＵ構造のコマンドと文字列構造のコマンドとのどちらであっても対応することができる。
【００３９】
図４に示す処理は、外部からインターフェースを介してコマンドが受信された場合に開始される。図４に示す処理が開始されると、ＯＳは、受信されたコマンドが非共通コマンドであるか否かを判定するための非共通コマンド判定処理を実行する（ステップＳ１）。図５（Ｂ）に示す非共通コマンド判定処理では、先ず、ＯＳは、受信されたコマンドの構造に基づいて判定方法を決定する（ステップＳ１０）。次いで、ＯＳは、図５（Ａ）または図５（Ｂ）に示すように、非共通コマンドテーブルからコマンド定義（つまり、パターン部、配送先指定部、及び条件部の記述内容）を全て取得したか否かを判定する（ステップＳ１１）。図５（Ａ）に示すステップＳ１１では、予め特定された非共通コマンドテーブルからコマンド定義を全て取得したか否かが判定される。一方、図５（Ｂ）に示すステップＳ１１では、ステップＳ１０で決定された判定方法に対応する非共通コマンドテーブルが特定され、当該特定された非共通コマンドテーブルからコマンド定義を全て取得したか否かが判定される。
【００４０】
ＯＳは、非共通コマンドテーブルからコマンド定義を全て取得していないと判定した場合（ステップＳ１１：ＮＯ）、非共通コマンドテーブルから、まだ取得されていないコマンド定義（例えば、１非共通コマンドに対応する１行分のコマンド定義）を取得し（ステップＳ１２）、ステップＳ１３へ進む。なお、ステップＳ１１へのループにおいて、例えば、非共通コマンドテーブルの先頭行から最終行まで１行ずつ取得されることになる。一方、ＯＳは、非共通コマンドテーブルからコマンド定義を全て取得したと判定した場合（ステップＳ１１：ＹＥＳ）、判定結果として非共通コマンド判定失敗を記憶し、図４に示す処理に戻る。
【００４１】
ステップＳ１３では、ＯＳは、ステップＳ１２で取得したコマンド定義におけるパターン部に記述されたパターン（バイナリ列）と、受信されたコマンドとのパターン検証を行う。例えば、ＡＰＤＵ構造用のコマンド定義におけるパターン部には、パターンに加えて、特定ビットを操作するためのマスクが記述されている。この場合、ＯＳは、受信されたコマンドの先頭から４バイトとマスクとをＡＮＤ演算し、ＡＮＤ演算の結果とパターンとをＸＯＲ演算することでパターン検証を行う。一方、文字列構造用のコマンド定義におけるパターン部には、パターンに加え、マスク、オフセット、及びレングス（長さ）が記述されている。この場合、ＯＳは、受信されたコマンドにおいてオフセット及びレングスで指定された範囲のバイト列とマスクとをＡＮＤ演算し、ＡＮＤ演算の結果とパターンとをＸＯＲ演算することでパターン検証を行う。
【００４２】
そして、ＯＳは、ステップＳ１３におけるパターン検証の結果から、ステップＳ１２で取得したコマンド定義におけるパターン部に記述されたパターンと、受信されたコマンドが一致すると判定した場合（ステップＳ１４：一致）、ステップＳ１５へ進む。一方、ＯＳは、ステップＳ１３におけるパターン検証の結果から、ステップＳ１２で取得したコマンド定義におけるパターン部に記述されたパターンと、受信されたコマンドが一致しないと判定した場合（ステップＳ１４：不一致）、ステップＳ１１に戻る。
【００４３】
ステップＳ１５では、ＯＳは、ステップＳ１２で取得したコマンド定義における条件部に記述された情報を用いて条件検証を行う。ここで、条件検証の例（１）〜（８）について以下に説明する。なお、以下の例（１）〜（８）は互いに独立しており、用途等に応じて何れか１つ（特に矛盾がなければ複数であってもよい）が採用される。
【００４４】
（１）コマンド定義における条件部に、関数参照、または、アプリケーション識別子と関数識別子が記述されている場合、ＯＳは、関数参照から特定された関数、または、アプリケーション識別子と関数識別子とから特定された関数が正常終了するか否かの条件検証を行う。例えば、特定された関数を、当該関数を記述するアプリケーション（インスタンス）から呼び出し、実行できれば正常終了となる。
【００４５】
（２）コマンド定義における条件部に、インターフェース識別子が記述されている場合、ＯＳは、受信されたコマンドがインターフェース識別子から特定されたインターフェース（ISO7816のインターフェース）を介して受信されたか否かの条件検証を行う。
【００４６】
（３）コマンド定義における条件部に、インターフェース識別子が記述されている場合、ＯＳは、インターフェース識別子から特定されたインターフェースの活性化ステップが実行済みであるか（例えば、ISO7816に規定されるCold Reset（活性化後、最初に発生するリセット）が実行済みであるか）否かの条件検証を行う。
【００４７】
（４）コマンド定義における条件部に、アプリケーション識別子が記述されている場合、ＯＳは、アプリケーション識別子から特定されたアプリケーションが、何れかの論理チャネルに割り当てられているか（言い換えれば、何れかの論理チャネルで、論理チャネル上のアプリケーションとなっているか）否かの条件検証を行う。
【００４８】
（５）コマンド定義における条件部に、アプリケーション識別子が記述されている場合、ＯＳは、アプリケーション識別子から特定されたアプリケーションが、何れの論理チャネルにも割り当てられていないか（言い換えれば、何れの論理チャネルでも論理チャネル上のアプリケーションで無いか）否かの条件検証を行う。
【００４９】
（６）コマンド定義における条件部に、バイナリ比較用のパターンが記述されている場合、ＯＳは、ＵＩＭモジュール３により前回受信されたコマンド、または、今回受信されたコマンドがバイナリ比較用のパターンと一致するか否かの条件検証を行う。この条件検証は、例えば、受信されたコマンドの先頭と末尾等に対し、２つのパターンのそれぞれが一致するか否かの検証である。
【００５０】
（７）コマンド定義における条件部に、アプリケーション識別子とライフサイクル識別子が記述されている場合、ＯＳは、アプリケーション識別子から特定されたアプリケーションのライフサイクルがライフサイクル識別子から特定されたライフサイクルと一致するか否かの条件検証を行う。
【００５１】
（８）コマンド定義における条件部に、ライフサイクル識別子が記述されている場合、ＯＳは、ライフサイクル識別子から特定されたライフサイクルがＵＩＭモジュール３のライフサイクルと一致するか否かの条件検証を行う。
【００５２】
そして、ＯＳは、ステップＳ１５における条件検証の結果から、検証した条件が満たされると判定した場合（ステップＳ１６：条件検証成功）、判定結果として非共通コマンド判定成功を記憶し、図４に示す処理に戻る。例えば、例（１）の場合、ＯＳは、特定された関数が正常終了する場合に条件が満たされると判断する。また、例（２）の場合、ＯＳは、受信されたコマンドが特定されたインターフェースを介して受信された場合に条件が満たされると判断する。また、例（３）の場合、ＯＳは、特定されたインターフェースの活性化ステップが実行済みである場合に条件が満たされると判断する。また、例（４）の場合、ＯＳは、特定されたアプリケーションが何れかの論理チャネルに割り当てられている場合に条件が満たされると判断する。また、例（５）の場合、ＯＳは、特定されたアプリケーションが何れの論理チャネルにも割り当てられていない場合に条件が満たされると判断する。また、例（６）の場合、ＯＳは、前回受信されたコマンド、または、今回受信されたコマンドがバイナリ比較用のパターンと一致する場合に条件が満たされると判断する。また、例（７）の場合、ＯＳは、特定されたアプリケーションのライフサイクルが特定されたライフサイクルと一致する場合に条件が満たされると判断する。また、例（８）の場合、ＯＳは、特定されたライフサイクルがＵＩＭモジュール３のライフサイクルと一致する場合に条件が満たされると判断する。一方、ＯＳは、ステップＳ１５における条件検証の結果から、検証した条件を満たさないと判定した場合（ステップＳ１６：条件検証失敗）、ステップＳ１１に戻る。
【００５３】
図４に示す処理に戻ると、ＯＳは、上記非共通コマンド判定処理による判定結果が非共通コマンド判定成功であるか否かを判定する（ステップＳ２）。ＯＳは、上記非共通コマンド判定処理による判定結果が非共通コマンド判定成功である（つまり、受信されたコマンドが非共通コマンドである）と判定した場合（ステップＳ２：ＹＥＳ）、ステップＳ３へ進む。一方、ＯＳは、上記非共通コマンド判定処理による判定結果が非共通コマンド判定成功でない（つまり、受信されたコマンドが非共通コマンドでない）と判定した場合（ステップＳ２：ＮＯ）、ステップＳ４へ進む。
【００５４】
ステップＳ３では、ＯＳは、受信されたコマンドを、上記コマンド定義における配送先指定部に記述された識別子から特定した非共通コマンド処理手段（例えば、アプリケーション）へ配送し、当該非共通コマンド処理手段による処理結果を得て、ステップＳ１１へ進む。ステップＳ４では、ＯＳは、受信されたコマンドが共通コマンドであるか否かを、例えば予めＮＶＭ３４に記憶された共通コマンドテーブルを参照することにより判定する。ＯＳは、受信されたコマンドが共通コマンドであると判定した場合（ステップＳ４：ＹＥＳ）、ステップＳ５へ進む。一方、ＯＳは、受信されたコマンドが共通コマンドでないと判定した場合（ステップＳ４：ＮＯ）、ステップＳ６へ進む。
【００５５】
ステップＳ５では、ＯＳは、共通コマンドに応じた処理を実行し、その処理結果を得て、ステップＳ１１へ進む。ステップＳ６では、ＯＳは、受信されたコマンドから論理チャンネルを決定できたか否かを判定する。ＯＳは、受信されたコマンドから論理チャンネルを決定できないと判定した場合（ステップＳ６：ＮＯ）、ステップＳ７へ進む。一方、ＯＳは、受信されたコマンドから論理チャンネルを決定できた（例えば、当該コマンドのヘッダ部で指定された論理チャネルのチャネル番号を特定できた）判定した場合（ステップＳ６：ＹＥＳ）、ステップＳ８へ進む。
【００５６】
ステップＳ７では、ＯＳは、エラーステータス（例えば、SW6881）を作成し、ステップＳ１１へ進む。ステップＳ８では、ステップＳ６で決定された論理チャネルにアプリケーションが割り当てられているか否かを、例えば予めＮＶＭ３４に記憶された論理チャネルテーブルを参照することにより判定する。ＯＳは、論理チャネルにアプリケーションが割り当てられていないと判定した場合（ステップＳ８：ＮＯ）、ステップＳ９へ進む。一方、ＯＳは、論理チャネルにアプリケーションが割り当てられていると判定した場合（ステップＳ８：ＹＥＳ）、ステップＳ１０へ進む。
【００５７】
ステップＳ９では、ＯＳは、エラーステータス（例えば、SW6999）を作成し、ステップＳ１１へ進む。ステップＳ１０では、受信されたコマンドを、論理チャネルに割り当てられているアプリケーションへ配送し、当該アプリケーションによる処理結果を得て、ステップＳ１１へ進む。
【００５８】
ステップＳ１１では、ＯＳは、処理結果またはエラーステータスをコマンドの送信元へ応答する。
【００５９】
［３．ＵＩＭモジュール３の実施例］
次に、図６〜図８を参照して、ＵＩＭモジュール３の実施例について説明する。図６は、ＵＩＭモジュール３内のプログラム構成の一例を示す図である。図７は、ＵＩＭモジュール３内のテーブル構成の一例を示す図である。なお、図７（Ａ）に示す非共通コマンドテーブルに共通コマンドのパターン部を登録し、これに対応付けてＯＳを示す値を登録することで、非共通コマンドと共通コマンドの振り分け処理を共通化してもよい。また、図７（Ｆ）に示す論理チャネルテーブルは、初期状態を示しており、その後の処理に応じて変化する。図８は、ＵＩＭモジュール３により受信される各コマンドの構造の一例を示す図である。
【００６０】
以下に説明する実施例において、ＵＩＭモジュール３には、コマンド列１、コマンド列２、コマンド列３、コマンド列４の順に外部から受信されるものとする。なお、コマンド列１とコマンド列４は、受信のタイミングのみ異なり、コマンドの構造は同一である。また、図６に示すＯＳ“CardOs”は、関数“CardOs.main()”によりコマンド列２を処理可能になっている。また、図６に示すアプリケーション“App1 extends App”は、関数“App1.main()”によりコマンド列１、３及び４を処理可能になっており、アプリケーション“App1 extends App”における関数“App1.checkCondition()”は、アプリケーション“App1 extends App”がISO7816の論理チャネルに割り当てられている（言い換えれば、論理チャンル上で選択されている）ときのみ正常終了する。また、図６に示すアプリケーション“App2 extends App”は、関数“App2.main()”によりコマンド列３を処理可能になっている。
【００６１】
（３−１．受信されたコマンド列１の処理）
先ず、受信されたコマンド列１におけるコマンドは、非共通コマンドテーブル（図７（Ａ））のコマンド定義（No.1）におけるパターン部に記述されたパターン（0x474554）と一致することからパターン検証で一致と判定される。
【００６２】
次に、非共通コマンドテーブル（図７（Ａ））のコマンド定義（No.1）における条件部に記述されたアプリケーション識別子（App1_AID）及び関数識別子（Method1及びMethod2）から関数（App1.main()及びApp1.checkCondition()）が特定される。
【００６３】
すなわち、条件部に記述されたアプリケーション識別子（App1_AID）に対応付けられたアプリケーション参照（App1インスタンスの参照（記憶場所を示す値））がアプリケーションテーブル（図７（Ｃ））から取得され、取得されたアプリケーション参照に基づきクラス情報（例えば、クラス名）が取得される。そして、取得されたクラス情報に対応するApp1関数テーブル（図７（Ｄ））から、関数識別子（Method1及びMethod2）に対応付けられた関数参照（App1.main()のmethod参照及びApp1.checkCondition()のmethod参照）が取得される。そして、取得されたアプリケーション参照（App1インスタンスの参照）及び関数参照（App1.main()のmethod参照及びApp1.checkCondition()のmethod参照）を用いて関数（App1.main()及びApp1.checkCondition()）が特定される。
【００６４】
こうして特定された関数（App1.main()）は呼び出されて正常終了するが、論理チャネルテーブル（図７（Ｆ））よりアプリケーション（App1 extends App）が論理チャネルに割り当てられていないので、特定された関数（App1.checkCondition()）は不正終了となることから条件検証で条件検証失敗と判定され、その結果、受信されたコマンド列１におけるコマンドは、非共通コマンドでないと判定される。
【００６５】
次に、受信されたコマンド列１におけるコマンドは、共通コマンドテーブル（図７（Ｂ））のコマンド定義（No.1）におけるパターン部に記述されたパターンと一致しないことから、共通コマンドでないと判定される。
【００６６】
次に、受信されたコマンド列１におけるコマンドから論理チャンネルを決定できないが（例えば、ＣＬＡがISO7816定義領域外のため）、割り当て失敗時の動作はＵＩＭモジュール３の実装依存であり、ここでは、論理チャネルテーブル（図７（Ｆ））において論理チャネル０番に割り当てられているアプリケーション“App2 extends App”が取得（つまり、受信されたコマンド列１は、アプリケーション“App2 extends App”へ配送される）。しかし、アプリケーション“App2 extends App”は、文字列構造に対応していないため、当該アプリケーションによる処理が失敗し、そのエラーステータスが応答される。
【００６７】
（３−２．受信されたコマンド列２の処理）
次に、受信されたコマンド列２におけるコマンドは、非共通コマンドテーブル（図７（Ａ））の全てのコマンド定義におけるパターン部に記述されたパターンと一致しないことからパターン検証で不一致と判定され、その結果、受信されたコマンド列２におけるコマンドは、非共通コマンドでないと判定される。
【００６８】
次に、受信されたコマンド列２におけるコマンドは、共通コマンドテーブル（図７（Ｂ））のコマンド定義（No.1）におけるパターン部に記述されたパターン（0x 00 A4 04 00）と一致することから、共通コマンド（例えば、SELECT コマンド）であると判定される。そして、共通コマンド（例えば、SELECT コマンド）に応じて、ＯＳ（CardOS）による処理が行われ、この処理により、例えば論理チャネル０番にアプリケーション（App1 extends App）が割り当てられ（これにより、論理チャネルテーブルにおけるチャネル番号“０”に対応付けられたアプリケーション参照が“App2インスタンスの参照”から“App1インスタンスの参照”に変更）、その処理結果が応答される。
【００６９】
（３−３．受信されたコマンド列３の処理）
次に、受信されたコマンド列３におけるコマンドは、非共通コマンドテーブル（図７（Ａ））の全てのコマンド定義におけるパターン部に記述されたパターンと一致しないことからパターン検証で不一致と判定され、その結果、受信されたコマンド列３におけるコマンドは、非共通コマンドでないと判定される。
【００７０】
次に、受信されたコマンド列３におけるコマンドは、共通コマンドテーブル（図７（Ｂ））のコマンド定義（No.1）におけるパターン部に記述されたパターンと一致しないことから、共通コマンドでないと判定される。
【００７１】
次に、受信されたコマンド列３におけるコマンドから論理チャネルが決定（例えば、当該コマンドのＣＬＡがＡＰＤＵの方法でパースされ論理チャネル０番が決定）される。そして、コマンド列２の処理で論理チャネル０番にアプリケーション（App1 extends App）が割り当てられているので、受信されたコマンド列３は、当該アプリケーション（App1 extends App）へ配送される。これにより、当該アプリケーションによる処理が成功し、その処理結果が応答される。
【００７２】
（３−４．受信されたコマンド列４の処理）
次に、受信されたコマンド列４におけるコマンドは、非共通コマンドテーブル（図７（Ａ））のコマンド定義（No.1）におけるパターン部に記述されたパターン（0x474554）と一致することからパターン検証で一致と判定される。
【００７３】
次に、非共通コマンドテーブル（図７（Ａ））のコマンド定義（No.1）における条件部に記述されたアプリケーション識別子（App1_AID）及び関数識別子（Method1及びMethod2）とから関数（App1.main()及びApp1.checkCondition()）が特定される。こうして特定された関数（App1.main()）は正常終了し、かつ、アプリケーション（App1 extends App）が論理チャネル０番に割り当てられているので、特定された関数（App1.checkCondition()）は正常終了となることから条件検証で条件検証成功と判定され、その結果、受信されたコマンド列４におけるコマンドは、非共通コマンドであると判定される。
【００７４】
そして、受信されたコマンド列４は、非共通コマンドテーブル（図７（Ａ））のコマンド定義（No.1）における配送先指定部に記述されたアプリケーション識別子（App1_AID）により特定されたアプリケーション（App1 extends App）へ配送される。これにより、当該アプリケーションによる処理が成功し、その処理結果が応答される。
【００７５】
より具体的には、非共通コマンドテーブル（図７（Ａ））のコマンド定義（No.1）における配送先指定部に記述されたアプリケーション識別子（App1_AID）に対応付けられたアプリケーション参照（App1インスタンスの参照）が取得され、当該アプリケーション参照に基づきクラス情報（例えば、クラス名）が取得される。そして、取得されたクラス情報に対応するApp1関数テーブルから関数識別子（Method1）に対応付けられた関数参照（App1.main()のmethod参照）が取得され、当該アプリケーション参照及び当該関数参照を用いて関数（App1.main()）が呼び出されて実行され、その処理結果が応答される。
【００７６】
以上説明したように、上記実施形態によれば、ＵＩＭモジュール３は、外部からインターフェースを介してコマンドを受信した場合、受信されたコマンドが非共通コマンドであるかを最初に判定し、非共通コマンドでないと判定した場合にはじめて、当該受信されたコマンドが共通コマンドであるか否かを判定し、共通コマンドであればこの共通コマンドを処理するように構成したので、通信相手が多様化することで、それぞれの通信相手の実装によって、ＯＳに期待される動作が異なり、不整合が生じるようになっても、ユーザに不便を強いること無く、ＵＩＭモジュール３の利便性を向上することができる。
【００７７】
また、上記実施形態において、ＵＩＭモジュール３は、非共通コマンドのパターンを記述するパターン部と、非共通コマンド処理手段により処理される条件の検証に用いられる情報を記述する条件部とを含んで構成される非共通コマンドテーブルを用いて、非共通コマンドであるか否かを判定できるように構成したので、様々な通信相手から要求される様々な条件に対応でき、ＵＩＭモジュール３の利便性を、より一層、向上することができる。
【００７８】
また、上記実施形態において、非共通コマンドテーブルに非共通コマンド処理手段の識別子を記述する配送先指定部を含める構成によれば、通信相手毎に非共通コマンドの非共通コマンド処理手段を指定することができ、ＵＩＭモジュール３の利便性を、より一層、向上することができる。
【符号の説明】
【００７９】
１  通信モジュール
２  制御モジュール
３  ＵＩＭモジュール
３１  ＣＰＵ
３２  ＲＡＭ
３３  ＲＯＭ
３４  ＮＶＭ
３５  Ｉ／Ｏ回路
Ｄ  通信デバイス
【図１】
2020067706.tif 000003
【図２】
2020067706.tif 000004
【図３】
2020067706.tif 000005
【図４】
2020067706.tif 000006
【図５】
2020067706.tif 000007
【図６】
2020067706.tif 000008
【図７】
2020067706.tif 000009
【図８】
2020067706.tif 000010