(57)【特許請求の範囲】
【請求項１】
サーバ装置と、通信装置の通信機能を用いてネットワークを介して前記サーバ装置と通信を行う集積回路と、前記サーバ装置にネットワークを介さずに直接接続されたＳＡＭであるデータ処理装置とを用いた通信方法であって、
前記サーバ装置が、前記集積回路に対しての認証の操作を要求するマクロコマンド用コマンドコードからなり前記データ処理装置が解釈可能な第１のコマンドを含む第１のコマンドモジュールを前記データ処理装置に送信し、
前記データ処理装置が、前記サーバ装置から受信した前記第１のコマンドモジュールに含まれる前記第１のコマンドを解釈し、当該解釈の結果に応じて前記集積回路が解釈可能な複数の第２のコマンドを生成し、前記複数の第２のコマンドを含む第２のコマンドモジュールを、前記サーバ装置を介して前記集積回路に送信する
通信方法。
【請求項２】
前記集積回路が、前記第２のコマンドモジュールに含まれる前記複数の第２のコマンドを解釈してそれぞれの第２のコマンドに応じた処理を行い、当該処理の結果を含む第１のレスポンスモジュールを、サーバ装置を介して前記データ処理装置に送信し、
前記データ処理装置が、前記集積回路から受信した前記第１のレスポンスモジュールに基づいて前記第１のコマンドモジュールに対応した処理が終了したと判断した場合に、前記マイクロコマンド用コマンドコードに対応したレスポンスコードを格納した第２のレスポンスモジュールを前記サーバ装置に送信する
請求項１に記載の通信方法。
【請求項３】
前記第１のコマンドが複数の前記マイクロコマンド用コマンドコードからなり、
前記データ処理装置は、前記複数の前記マイクロコマンド用コマンドコードのそれぞれに対応した複数の前記レスポンスコードを格納した前記第１のレスポンスモジュールを前記サーバ装置に送信する
請求項２に記載の通信方法。
【請求項４】
サーバ装置と、通信装置の通信機能を用いてネットワークを介して前記サーバ装置と通信を行う集積回路と、前記サーバ装置にネットワークを介さずに直接接続されたＳＡＭであるデータ処理装置とを有する通信システムであって、
前記サーバ装置が、前記集積回路に対しての認証の操作を要求するマクロコマンド用コマンドコードからなり前記データ処理装置が解釈可能な第１のコマンドを含む第１のコマンドモジュールを前記データ処理装置に送信し、
前記データ処理装置が、前記サーバ装置から受信した前記第１のコマンドモジュールに含まれる前記第１のコマンドを解釈し、当該解釈の結果に応じて前記集積回路が解釈可能な複数の第２のコマンドを生成し、前記複数の第２のコマンドを含む第２のコマンドモジュールを、前記サーバ装置を介して前記集積回路に送信する
通信システム。
【請求項５】
サーバ装置と、通信装置の通信機能を用いてネットワークを介して集積回路と通信を行い、ネットワークを介さずに直接接続されたＳＡＭであるデータ処理装置とデータ入出力を行うサーバ装置であって、
前記通信装置と通信を行う第１のインターフェースと、
前記データ処理装置とデータ入出力を行う第２のインターフェースと、
前記集積回路に対しての認証の操作を要求するマクロコマンド用コマンドコードからなり前記データ処理装置が解釈可能な第１のコマンドを含む第１のコマンドモジュールを、前記第２のインターフェースを介して前記データ処理装置に送信し、前記データ処理装置が前記第１のコマンドモジュールに含まれる前記第１のコマンドを解釈した結果に応じて生成した前記集積回路が解釈可能な複数の第２のコマンドを含む第２のコマンドモジュールを前記第２のインターフェースが受信すると、当該第２のコマンドモジュールを、前記第１のインターフェースを介して前記集積回路に送信する処理回路と
を有するサーバ装置。
【請求項６】
サーバ装置にネットワークを介さずに直接接続され、通信装置の通信機能を用いてネットワークを介して前記サーバ装置と通信を行う集積回路と、前記サーバ装置を介して通信を行うＳＡＭであるデータ処理装置であって、
前記サーバ装置とデータ入出力を行うインターフェースと、
前記集積回路に対しての認証の操作を要求するマクロコマンド用コマンドコードからなる第１のコマンドを含む第１のコマンドモジュールを前記インターフェースが受信すると、当該第１のコマンドモジュールに含まれる前記第１のコマンドを解釈し、当該解釈の結果に応じて前記集積回路が解釈可能な複数の第２のコマンドを生成し、前記複数の第２のコマンドを含む第２のコマンドモジュールを、前記インターフェースから前記サーバ装置を介して前記集積回路に送信する処理を行う処理回路と
を有するデータ処理装置。
【請求項７】
サーバ装置と、通信装置の通信機能を用いてネットワークを介して集積回路と通信を行う第１のインターフェースと、ネットワークを介さずに直接接続されたＳＡＭであるデータ処理装置とデータ入出力を行う第２のインターフェースと、処理回路とを備えたサーバ装置の前記処理回路が実行するプログラムであって、
前記集積回路に対しての認証の操作を要求するマクロコマンド用コマンドコードからなり前記データ処理装置が解釈可能な第１のコマンドを含む第１のコマンドモジュールを、前記第２のインターフェースを介して前記データ処理装置に送信する第１の手順と、
前記データ処理装置が前記第１のコマンドモジュールに含まれる前記第１のコマンドを解釈した結果に応じて生成した前記集積回路が解釈可能な複数の第２のコマンドを含む第２のコマンドモジュールを前記第２のインターフェースが受信すると、当該第２のコマンドモジュールを、前記第１のインターフェースを介して前記集積回路に送信する第２の手順と
を前記処理回路に実行させるプログラム。
【請求項８】
サーバ装置にネットワークを介さずに直接接続され、通信装置の通信機能を用いてネットワークを介して前記サーバ装置と通信を行う集積回路と、前記サーバ装置を介して通信を行うインターフェースと処理回路とを備えたＳＡＭであるデータ処理装置の前記処理回路が実行するプログラムであって、
前記インターフェースが前記集積回路に対しての認証の操作を要求するマクロコマンド用コマンドコードからなる第１のコマンドを含む第１のコマンドモジュールを受信すると、当該第１のコマンドモジュールに含まれる前記第１のコマンドを解釈する第１の手順と、
前記第１の手順の解釈の結果に応じて前記集積回路が解釈可能な複数の第２のコマンドを生成し、前記複数の第２のコマンドを含む第２のコマンドモジュールを、前記インターフェースから前記サーバ装置を介して前記集積回路に送信する第２の手順と
を前記処理回路に実行させるプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＩＣなどの集積回路を用いたサービス提供に用いられる通信方法、通信システム、データ処理装置、サーバ装置およびプログラムに関する。
【０００２】
【従来の技術】
現在、ＩＣカードや携帯通信装置に内蔵ざれたＩＣモジュールを用いてインターネットなどのネットワークを介した取り引きを行う通信システムが開発されている。
このような通信システムでは、上記ＩＣモジュールを用いたサービスを提供するサービス提供者からの依頼を受けて当該サービス提供者が規定した手続き処理を実行するアプリケーションプログラムをＳＡＭユニット(Secure ApplicationModule) が実行する。
ＳＡＭユニットは例えば、サーバ装置を介してネットワークに接続されており、ＳＡＭユニットとＩＣモジュールとの間の通信はサーバ装置を介して行われる。
ＳＡＭユニットは、ＩＣモジュールのリーダ・ライタやＰＣ(Personal Computer) 、あるいは携帯通信装置からの処理要求に応じて、上記アプリケーションプログラムに基づいて、ユーザ認証やデータの暗号化及び復号などの処理を行う。
【０００３】
【発明が解決しようとする課題】
上述した通信システムでは、ＳＡＭユニットと、サーバ装置と、ＩＣモジュールとの間では種々の要求およびデータを効率的に送受信する必要がある。
また、ＩＣモジュールを携帯通信装置などに搭載した場合には、信号の伝播環境などにより通信路が不安定になる。従って、そのような環境では、上述した要求およびデータを効率的に送受信することが必要である。
【０００４】
本発明は上述した従来技術の問題点に鑑みてなされ、ＩＣ（集積回路）を用いたサービスを提供する際に、アプリケーションプログラムを実行するＳＡＭユニット（データ処理装置）と、サーバ装置と、集積回路との間で上記サービスに係わる要求およびデータを効率的に送受信できる通信方法、通信システム、データ処理装置、サーバ装置およびプログラムを提供することを目的とする。
【０００５】
【課題を解決するための手段】
上記の目的を達成するため、第１の発明の通信方法は、サーバ装置と、通信装置の通信機能を用いてネットワークを介して前記サーバ装置と通信を行う集積回路と、前記サーバ装置にネットワークを介さずに直接接続されたＳＡＭであるデータ処理装置とを用いた通信方法であって、前記サーバ装置が、前記集積回路に対しての認証の操作を要求するマクロコマンド用コマンドコードからなり前記データ処理装置が解釈可能な第１のコマンドを含む第１のコマンドモジュールを前記データ処理装置に送信し、前記データ処理装置が、前記サーバ装置から受信した前記第１のコマンドモジュールに含まれる前記第１のコマンドを解釈し、当該解釈の結果に応じて前記集積回路が解釈可能な複数の第２のコマンドを生成し、前記複数の第２のコマンドを含む第２のコマンドモジュールを、前記サーバ装置を介して前記集積回路に送信する。
【０００６】
第２の発明の通信システムは、サーバ装置と、通信装置の通信機能を用いてネットワークを介して前記サーバ装置と通信を行う集積回路と、前記サーバ装置にネットワークを介さずに直接接続されたＳＡＭであるデータ処理装置とを有する通信システムであって、前記サーバ装置が、前記集積回路に対しての認証の操作を要求するマクロコマンド用コマンドコードからなり前記データ処理装置が解釈可能な第１のコマンドを含む第１のコマンドモジュールを前記データ処理装置に送信し、前記データ処理装置が、前記サーバ装置から受信した前記第１のコマンドモジュールに含まれる前記第１のコマンドを解釈し、当該解釈の結果に応じて前記集積回路が解釈可能な複数の第２のコマンドを生成し、前記複数の第２のコマンドを含む第２のコマンドモジュールを、前記サーバ装置を介して前記集積回路に送信する。
【０００７】
第３の発明のサーバ装置は、サーバ装置と、通信装置の通信機能を用いてネットワークを介して集積回路と通信を行い、ネットワークを介さずに直接接続されたＳＡＭであるデータ処理装置とデータ入出力を行うサーバ装置であって、前記通信装置と通信を行う第１のインターフェースと、前記データ処理装置とデータ入出力を行う第２のインターフェースと、前記集積回路に対しての認証の操作を要求するマクロコマンド用コマンドコードからなり前記データ処理装置が解釈可能な第１のコマンドを含む第１のコマンドモジュールを、前記第２のインターフェースを介して前記データ処理装置に送信し、前記データ処理装置が前記第１のコマンドモジュールに含まれる前記第１のコマンドを解釈した結果に応じて生成した前記集積回路が解釈可能な複数の第２のコマンドを含む第２のコマンドモジュールを前記第２のインターフェースが受信すると、当該第２のコマンドモジュールを、前記第１のインターフェースを介して前記集積回路に送信する処理回路とを有する。
【０００８】
第４の発明のデータ処理装置は、サーバ装置にネットワークを介さずに直接接続され、通信装置の通信機能を用いてネットワークを介して前記サーバ装置と通信を行う集積回路と、前記サーバ装置を介して通信を行うＳＡＭであるデータ処理装置であって、前記サーバ装置とデータ入出力を行うインターフェースと、前記集積回路に対しての認証の操作を要求するマクロコマンド用コマンドコードからなる第１のコマンドを含む第１のコマンドモジュールを前記インターフェースが受信すると、当該第１のコマンドモジュールに含まれる前記第１のコマンドを解釈し、当該解釈の結果に応じて前記集積回路が解釈可能な複数の第２のコマンドを生成し、前記複数の第２のコマンドを含む第２のコマンドモジュールを、前記インターフェースから前記サーバ装置を介して前記集積回路に送信する処理を行う処理回路とを有する。
【０００９】
第５の発明のプログラムは、サーバ装置と、通信装置の通信機能を用いてネットワークを介して集積回路と通信を行う第１のインターフェースと、ネットワークを介さずに直接接続されたＳＡＭであるデータ処理装置とデータ入出力を行う第２のインターフェースと、処理回路とを備えたサーバ装置の前記処理回路が実行するプログラムであって、前記集積回路に対しての認証の操作を要求するマクロコマンド用コマンドコードからなり前記データ処理装置が解釈可能な第１のコマンドを含む第１のコマンドモジュールを、前記第２のインターフェースを介して前記データ処理装置に送信する第１の手順と、前記データ処理装置が前記第１のコマンドモジュールに含まれる前記第１のコマンドを解釈した結果に応じて生成した前記集積回路が解釈可能な複数の第２のコマンドを含む第２のコマンドモジュールを前記第２のインターフェースが受信すると、当該第２のコマンドモジュールを、前記第１のインターフェースを介して前記集積回路に送信する第２の手順とを前記処理回路に実行させる。
【００１０】
第６の発明のプログラムは、サーバ装置にネットワークを介さずに直接接続され、通信装置の通信機能を用いてネットワークを介して前記サーバ装置と通信を行う集積回路と、前記サーバ装置を介して通信を行うインターフェースと処理回路とを備えたＳＡＭであるデータ処理装置の前記処理回路が実行するプログラムであって、前記インターフェースが前記集積回路に対しての認証の操作を要求するマクロコマンド用コマンドコードからなる第１のコマンドを含む第１のコマンドモジュールを受信すると、当該第１のコマンドモジュールに含まれる前記第１のコマンドを解釈する第１の手順と、前記第１の手順の解釈の結果に応じて前記集積回路が解釈可能な複数の第２のコマンドを生成し、前記複数の第２のコマンドを含む第２のコマンドモジュールを、前記インターフェースから前記サーバ装置を介して前記集積回路に送信する第２の手順とを前記処理回路に実行させる。
【００２１】
【発明の実施の形態】
以下、本発明の実施の形態を添付図面を参照して説明する。
図１は、本実施形態の通信システム１の全体構成図である。
図１に示すように、通信システム１は、店舗などに設置されたサーバ装置２、ＩＣカード３、カードリーダ・ライタ４、パーソナルコンピュータ５、パーソナルコンピュータ１６＿１〜１６＿３、ＡＳＰ(Application Service Provider)サーバ装置１９（本発明のサーバ装置）、複数の暗号モジュールであるＳＡＭ(Secure Application Module) ユニット９、ＩＣモジュール４２（本発明の集積回路）が内蔵された携帯通信装置４１を用いて、インターネット１０を介して通信を行ってＩＣカード３あるいは携帯通信装置４１を用いた決済処理などの手続き処理を行う。
ＳＡＭユニット９は、外部メモリ７およびＳＡＭモジュール８（本発明のデータ処理装置）を有する。
ＳＡＭモジュール８は、必要に応じて、図示しない他のＳＡＭモジュールとデータの授受を行う。
【００２２】
〔通信システム１の特徴〕
ＳＡＭユニット９は、その上位計算機であるサーバ装置１９、ＩＣカード３に搭載されたＩＣモジュールとの間でデータ授受を行うパーソナルコンピュータ５、並びにカード機能を備えたＩＣモジュール４２を搭載した携帯通信装置４１との間で通信を行う。
このとき、ＳＡＭユニット９と、ＩＣカード３に搭載されたＩＣモジュールおよびＩＣモジュール４２との間の通信は、サーバ装置１９を介して行われる。
また、ＳＡＭユニット９とサーバ装置１９との間では、ＩＣモジュール（カード）系のコマンドと、ＩＣモジュール系以外のコマンドが授受される。
また、ＳＡＭユニット９と、パーソナルコンピュータ５および携帯通信装置４１との間では、ＩＣモジュール系のコマンドのみが授受される。
ここで、携帯通信装置４１が通信に使用する電話網（携帯電話網）は、通信路は不安定であり、しかも通信料が高い。また、ＩＣモジュールを操作するコマンドは逐一指定する方式であり、かつ、一度に読み書き可能なデータサイズには制限がある。
【００２３】
通信システム１では、ＩＣモジュール系の特定のコマンド群（発行系）は、固定された実行シーケンスに従って処理を行うパターンが存在するため、サーバ装置１９側で逐一コマンドを指定しなくとも、ＳＡＭモジュール８側で自動的に解釈して対処できる機能を備えている。
また、通信システム１では、一部のＩＣモジュールの発行系コマンド（ＩＣモジュールの記憶領域の分割コマンドや、記憶領域分割後の新記憶領域への認証関連コマンド）では、ＳＡＭユニット９内部で管理するＩＣモジュール固有のデータを、次のコマンドのパラメータとして使用することが想定されている。
この場合に、ＳＡＭユニット９側で、最初に実行するコマンドのレスポンスの内容から、次に実行するコマンドのパラメータの値を所定のアルゴリズムに基づき計算する。
通信システム１は、ＩＣモジュールとサーバ装置１９との仲立ちをする通信プロトコルをＳＡＭユニット９が提供することで、サーバ装置１９の処理負荷を軽減する。
【００２４】
通信システム１は、ＳＡＭユニット９によるＩＣモジュールの操作に係わる通信プロトコルを、ＳＡＭユニット９とサーバ装置１９との間の通信プロトコルの形式内で規定する。
また、通信システム１は、単数のサーバ装置１９に複数のＳＡＭユニット９が接続された場合に、複数のＳＡＭユニット９間でＩＣモジュールに係わる処理の負荷分散を図れるコネクションを、ＳＡＭユニット９とサーバ装置１９との間に確立する。
また、通信システム１では、ＳＡＭユニット９、サーバ装置１９、パーソナルコンピュータ５および携帯通信装置４１の間で、効率的にコマンドを授受できるしているマルチコマンドを採用している。
【００２５】
以下、図１に示す構成要素について説明する。
〔携帯通信装置４１およびＩＣカード３〕
図１に示すように、携帯通信装置４１は、ＩＣ(Integrated Circuit)モジュール４２および通信処理部４３を有する。
図２は、図１に示すＩＣモジュール４２の機能ブロック図である。
図２に示すように、ＩＣモジュール４２は、メモリ５０およびＣＰＵ５１を有する。
メモリ５０は、図３に示すように、クレジットカード会社などのサービス事業者１５＿１が使用する記憶領域５５＿１、サービス事業者１５＿２が使用する記憶領域５５＿２、並びにサービス事業者１５＿３が使用する記憶領域５５＿３を有する。
また、メモリ５０は、記憶領域５５＿１へのアクセス権限を判断するために用いられる鍵データ、記憶領域５５＿２へのアクセス権限を判断するために用いられる鍵データ、並びに記憶領域５５＿３へのアクセス権限を判断するために用いられる鍵データを記憶している。当該鍵データは、相互認証や、データの暗号化および復号などに用いられる。
また、メモリ５０は、ＩＣカード３あるいはＩＣカード３のユーザの識別データを記憶している。
【００２６】
通信処理部４３は、携帯電話網およびインターネット１０を介してＡＳＰサーバ装置と通信を行う機能と、ＩＣモジュール４２との間でデータ授受を行う機能とを有している。
【００２７】
ＩＣカード３は、カードリーダ・ライタ４とデータ授受を行う点を除いて、図２に示すＩＣモジュール４２と同じＩＣモジュールを搭載している。
なお、ＩＣカード３を用いた処理は、携帯通信装置４１を用いた処理と同様に行われ、ＩＣモジュール４２を用いた処理はＩＣカード３に搭載されたＩＣモジュールを用いた処理と同様に行われるため、以下の説明では、携帯通信装置４１およびＩＣモジュール４２を用いた処理について例示する。
【００２８】
以下、ＳＡＭユニット９について詳細に説明する。
ＳＡＭユニット９は、前述したように、外部メモリ７とＳＡＭモジュール８とを有する。
ここで、ＳＡＭモジュール８は、半導体回路として実現してもよいし、筐体内に複数の回路を収容した装置として実現してもよい。
【００２９】
〔ＳＡＭモジュール８のソフトウェア構成〕
ＳＡＭモジュール８は、図４に示すようなソフトウェア構成を有している。
図４に示すように、ＳＡＭモジュール８は、下層から上層に向けて、ハードウェアＨＷ層、周辺ＨＷに対応したＲＴＯＳカーネルなどを含めたドライバ層（ＯＳ層）、論理的にまとまった単位の処理を行う下位ハンドラ層、アプリケーション固有のライブラリなどをまとめた上位ハンドラ層およびＡＰ層を順に有している。
ここで、ＡＰ層では、図１に示すクレジットカード会社などのサービス事業者１５＿１，１５＿２，１５＿３によるＩＣモジュール４２を用いた手続きを規定したアプリケーションプログラムＡＰ＿１，ＡＰ＿２，ＡＰ＿３（本発明のアプリケーションプログラム）が、外部メモリ７から読み出されて動作している。
各アプリケーションプログラムには、１つ以上のマクロスクリプトが設定可能である。
また、アプリケーションプログラムは、後述するように、複数のアプリケーションエレメントデータＡＰＥによって構成されている。
ＡＰ層では、アプリケーションプログラムＡＰ＿１，ＡＰ＿２，ＡＰ＿３相互間、並びに上位ハンドラ層との間にファイアウォールＦＷが設けられている。
【００３０】
〔外部メモリ２０７〕
図５は、外部メモリ７の記憶領域を説明するための図である。
図５に示すように、外部メモリ２０７の記憶領域には、サービス事業者１５＿１のアプリケーションプログラムＡＰ＿１が記憶されるＡＰ記憶領域２２０＿１、サービス事業者１５＿２のアプリケーションプログラムＡＰ＿２が記憶されるＡＰ記憶領域２２０＿２、サービス事業者１５＿３のアプリケーションプログラムＡＰ＿３が記憶されるＡＰ記憶領域２２０＿３、並びにＳＡＭモジュール２０８の管理者が使用するＡＰ管理用記憶領域２２１がある。
【００３１】
ＡＰ記憶領域２２０＿１に記憶されているアプリケーションプログラムＡＰ＿１は、後述する複数のアプリケーションエレメントデータＡＰＥによって構成されている。ＡＰ記憶領域２２０＿１へのアクセスは、ファイアウォールＦＷ＿１によって制限されている。
ＡＰ記憶領域２２０＿２に記憶されているアプリケーションプログラムＡＰ＿２は、複数のアプリケーションエレメントデータＡＰＥによって構成されている。ＡＰ記憶領域２２０＿２へのアクセスは、ファイアウォールＦＷ＿２によって制限されている。
ＡＰ記憶領域２２０＿３に記憶されているアプリケーションプログラムＡＰ＿３は、複数のアプリケーションエレメントデータＡＰＥによって構成されている。ＡＰ記憶領域２２０＿３へのアクセスは、ファイアウォールＦＷ＿３によって制限されている。
本実施形態では、上記アプリケーションエレメントデータＡＰＥは、例えば、ＳＡＭユニット９の外部から外部メモリ７にダウンロードされる最小単位である。各アプリケーションプログラムを構成するアプリケーションエレメントデータＡＰＥの数は、対応するサービス事業者が任意に決定できる。
【００３２】
また、外部メモリ７に記憶されたアプリケーションプログラムＡＰ＿１，ＡＰ＿２，ＡＰ＿３は、スクランブルされており、ＳＡＭモジュール８に読み込まれたときに、デスクランブルされる。
また、アプリケーションプログラムＡＰ＿１，ＡＰ＿２，ＡＰ＿３は、例えば、それぞれ図１に示すパーソナルコンピュータ１６＿１，１６＿２，１６＿３を用いて、サービス事業者１５＿１，１５＿２，１５＿３によって作成され、ＳＡＭモジュール８を介して外部メモリ７にダウンロードされる。
【００３３】
以下、アプリケーションプログラムＡＰ＿１，ＡＰ＿２，ＡＰ＿３について詳細に説明する。
アプリケーションプログラムは、サービス事業者毎に、ＳＡＭ内に単数または複数個存在する。
アプリケーションプログラムＡＰ＿１，ＡＰ＿２，ＡＰ＿３（以下、ＡＰとも記す）は、図６に示すように、アプリケーションプログラムＡＰを識別するための識別データＡＰ＿ＩＤと、当該アプリケーションプログラムのバージョン（世代情報）を示すデータＡＰＰ＿ＶＥＲ、後述するようにバックアップ処理などに使用されるヘッダデータＨＥＡＤＥＲ、当該アプリケーションプログラムに含まれるアプリケーションエレメントデータＡＰＥの数を示すデータＡＰＥ＿ＮＵＭと、単数または複数のアプリケーションエレメントデータＡＰＥとによって構成される。
識別データＡＰ＿ＩＤは、サービス事業者毎に異なるように決められている。
【００３４】
図６に示すように、アプリケーションエレメントデータＡＰＥは、当該アプリケーションエレメントデータＡＰＥのデータサイズを示すデータＡＰＥ＿ＳＩＺＥと、当該アプリケーションエレメントデータＡＰＥを識別するための識別データＡＰＥ＿ＩＤと、当該アプリケーションエレメントデータＡＰＥのバージョンを示すデータＡＰＥ＿ＶＥＲ、サービス事業者が設定可能な当該アプリケーションエレメントデータＡＰＥの識別データ（タグ）であるデータＡＰＥ＿ＴＡＧ、ＡＰＰテーブルデータを特定するデータＡＰＰＴ、オプションを設定するデータＯＰＴ、データ本体ＡＰＥ＿ＰＬとで構成される。
ここで、識別データＡＰＥ＿ＩＤは、アプリケーションエレメントデータＡＰＥの種別を示すデータＡＰＥ＿ＴＹＰＥと、当該種別内でのアプリケーションエレメントデータＡＰＥの識別番号（インスタンス識別番号）を示すデータＩＮＳ＿ＮＵＭとで構成される。データＩＮＳ＿ＮＵＭは、エンドユーザ（サービス事業者）側で管理される。
例えば、アプリケーションエレメントデータＡＰＥがファイルシステムコンフィグレーションの場合には、データＡＰＥ＿ＴＹＰＥが「２」となり、データＩＮＳ＿ＮＵＭが「１」となる。これにより、同−のＳＡＭであれば、識別データＡＰＥ＿ＩＤにより一意にアプリケーションエレメントデータＡＰＥを特定できる。
データＡＰＥ＿ＶＥＲは、サービス事業者が任意に設定できる。
また、データＡＰＥ＿ＴＡＧは、個々のアプリケーションプログラムＡＰ内で一意に定義される必要がある。
【００３５】
図５に示す外部メモリ７には、上述したアプリケーションプログラムＡＰ（ＡＰ＿１，ＡＰ＿２，ＡＰ＿３）が、ＳＡＭユニット９外でＡＰリソース鍵データＫ＿ＡＰＲ（暗号化鍵データ）によって暗号化されて、設定コマンドによって、外部メモリ７内にアプリケーションプログラム・パッケージＡＰＰとして記憶されている。
ＡＰリソース鍵データＫ＿ＡＰＲとしては、アプリケーションプログラム毎で異なる暗号化鍵データが用いられる。
【００３６】
以下、図６を用いて説明したアプリケーションエレメントデータＡＰＥの種別（ＡＰＥ＿ＴＹＰＥ）について説明する。
図７は、１つのＡＰ領域内に記憶されたアプリケーションエレメントデータＡＰＥの一例を示す図である。
図７は、データＡＰＥ＿ＴＹＰＥの番号と、その内容とを対応付けて示している。
図７に示すように、ＡＰ領域内には、例えば、ＡＰリソース鍵データＫ＿ＡＰＲ、カードアクセス鍵データ、ファイルシステムコンフィグレーションデータ、ＳＡＭ相互認証用鍵データ、ＳＡＭ間鍵パッケージ鍵データ、ＩＣカード（ＩＣモジュール）操作用マクロコマンドスクリプトプログラム、メモリ分割用鍵パッケージ、エリア登録鍵パッケージ、エリア削除用鍵パッケージ、サービス登録用鍵データ、サービス削除用鍵パッケージ、が、アプリケーションエレメントデータＡＰＥとして記憶されている。
【００３７】
・ＡＰリソース鍵データＫ＿ＡＰＲ
ＡＰリソース鍵データＫ＿ＡＰＲは、アプリケーションエレメントデータＡＰＥを設定する際の暗号用鍵として使用され、ＡＰ領域毎に、アプリケーションエレメントデータＡＰＥを設定するために異なる鍵データＫ＿ＡＰＲが割り当てられている。
・ＩＣ（カード）アクセス鍵データ
カードアクセス鍵データは、ＩＣカード３およびＩＣモジュール４２のメモリ５０に対してのデータの読み書き操作に用いられる鍵データである。
カードアクセス鍵データには、例えば、ＩＣカード（ＩＣ）システム鍵データ、ＩＣカード（ＩＣ）エリア鍵データ、ＩＣカード（ＩＣ）サービス鍵データおよびＩＣカード（ＩＣ）縮退鍵データなどがある。
ここで、ＩＣカード縮退鍵データは、、ＩＣカードシステム鍵データと、メモリ５０の記憶領域管理用鍵データとを用いて暗号化して生成され、相互認証に用いられる鍵データである。
また、ＩＣカード（ＩＣ）操作用マクロコマンドスクリプトプログラムで参照される鍵データも、カードアクセス鍵データと同じ種別のアプリケーションエレメントデータＡＰＥに含まれる
【００３８】
・ファイルシステムコンフィグレーションデータ
ファイルシステムコンフィグレーションデータとしては、例えば、ログデータ、ネガデータ、ジャーナルデータがある。
ログデータは例えばアプリケーションエレメントデータＡＰＥの利用履歴データであり、ネガデータは例えばＩＣカードの失効情報であり、ジャーナルデータは例えばＳＡＭでの実行履歴である。
例えば、ファイルシステムコンフィグレーションでは、ファイルアクセスの種別（レコードキー指定・ソート・リング）の選択を行い、レコードキーの場合であれば、レコードサイズ、レコード全体件数・レコード署名バージョン・レコード署名メソッドタイプ、レコードデータサイズ、レコード署名鍵を設定する。さらに、外部から本ファイルシステムにデータを書き込む際に署名検証を実施するかの有無の指定などを行う。ここでレコードとは、ファイルデータへの書き込み／読み出しの最小単位である。
【００３９】
・ＳＡＭ相互認証用鍵データ
同一ＳＡＭ内にあるＡＰ間相互認証にも使用される。
ＳＡＭ相互認証用鍵データとは、対応するアプリケーションエレメントデータＡＰＥを同一ＳＡＭ内の他のＡＰまたは他のＳＡＭからアクセスする際に用いられる鍵データである。
・ＳＡＭ間鍵パッケージ鍵
ＳＡＭ間鍵パッケージ鍵とは、ＳＡＭ間での相互認証後、カードアクセス鍵データなどのデータを交換する際に用いられる暗号化用鍵データである。
・ＩＣカード（ＩＣ）操作用マクロコマンドスクリプトプログラム
ＩＣカード操作用マクロコマンドスクリプトプログラムは、サービス事業者自身によって生成され、ＩＣカード３およびＩＣモジュール４２に係わる処理の順番やＡＳＰサーバ装置１９とのやり取りを記述している。ＩＣカード操作用マクロコマンドスクリプトプログラムは、ＳＡＭユニット９に設定された後に、ＳＡＭモジュール８内で解釈され、対応するＩＣカードエンティティデータ（ＩＣモジュールエンティティデータ）が生成される。
【００４０】
・メモリ分割用鍵パッケージ
メモリ分割用鍵パッケージは、サービス事業者がＩＣカード３およびＩＣモジュール４２を用いたサービスの運用開始前に、外部メモリ７のやＩＣカード３およびＩＣモジュール４２のメモリの記憶領域を分割するために使用するデータである。
・エリア登録鍵パッケージ
エリア登録鍵パッケージは、サービス事業者がＩＣカード３およびＩＣモジュール４２を用いたサービスの運用開始前に、ＩＣカード３およびＩＣモジュール４２のメモリの記憶領域にエリア登録を行う場合に使用するデータである。
・エリア削除用鍵パッケージ（内部生成）
エリア削除用鍵パッケージは、カードアクセス鍵データからＳＡＭ内部で自動生成が可能なパッケージである。
【００４１】
・サービス登録用鍵（内部生成）
サービス登録用鍵パッケージは、サービス事業者がＩＣカード３およびＩＣモジュール４２を用いたサービスの運用開始前に、外部メモリ７のアプリケーションエレメントデータＡＰＥを登録するために用いられる。
サービス登録用鍵パッケージは、カードアクセス鍵データからＳＡＭ内部で自動生成が可能なパッケージである。
・サービス削除用鍵パッケージ（内部生成）
サービス削除用鍵パッケージは、外部メモリ７に登録されているアプリケーションエレメントデータＡＰＥを削除するために用いられる。
サービス削除用鍵パッケージは、カードアクセス鍵データからＳＡＭ内部で自動生成が可能なパッケージである。
【００４２】
以下、上述したＩＣカード操作用マクロコマンドスクリプトプログラム（以下、スクリプトプログラムとも記す）について詳細に説明する。
スクリプトプログラムは、ＳＡＭモジュール８上で動作するサービス事業者１５＿１，１５＿２，１５＿３のアプリケーションプログラムＡＰ＿１，ＡＰ＿２，ＡＰ＿３、並びに当該アプリケーションプログラムの実行時にＩＣカード３のＩＣモジュール３ａおよび携帯通信装置４１のＩＣモジュール４２が行う処理の手続きを規定するためのプログラムである。
本実施形態では、後述するように、図８に示すように、ＳＡＭモジュール８内で、スクリプトダウンロードタスク６９およびスクリプト解釈タスク７０に基づいて処理を行い、ＡＰ管理テーブルデータおよびスクリプトプログラムから、サービス事業者１５＿１，１５＿２，１５＿３に関する手続きに用いられるＩＣカードエンティティテンプレートデータ３０＿１、入力用データブロック３１＿ｘ１、出力用データブロック３２＿ｘ２、ログ用データブロック３３＿ｘ３および演算定義用データブロック３４＿ｘ４を生成する。
【００４３】
以下、図５に示す外部メモリ７のＡＰ管理用記憶領域２２１に記憶されたデータについて説明する。
ＡＰ管理用記憶領域２２１へのアクセスは、ファイアウォールＦＷ＿４によって制限されている。
なお、ファイアウォールＦＷ＿４は、図４に示すファイアウォールＦＷに対応している。
図９は、ＡＰ管理用記憶領域２２１に記憶されているデータの詳細を説明するための図である。
ＡＰ管理用記憶領域２２１には、図９に示すように、ＡＰ管理用テーブルデータ３００＿１，３００＿２，３００＿３（３００）と、ＡＰＰテーブルデータ３０１＿１，３０１＿２，３０１＿３（３０１）と、ＡＰ選択用データ３０２＿１，３０２＿２，３０２＿３（３０２）、バージョン管理用データ３０３＿１，３０３＿２，３０３＿３（３０３）、並びに内部リソース割当管理用データ３０４（第４〜第６の発明のアクセス管理データ）が記憶されている。
ここで、ＡＰ管理用テーブルデータ３００＿１，３００＿２，３００＿３と、ＡＰＰテーブルデータ３１０＿１，３１０＿２，３１０＿３は、例えば、ＳＡＭモジュール８のセットアップ時に予め登録されている。また、ＡＰ管理用テーブルデータ３００＿１，３００＿２，３００＿３と、ＡＰＰテーブルデータ３１０＿１，３１０＿２，３１０＿の書き換えは、ＳＡＭモジュール８の管理者のみが行える。
【００４４】
ＡＰ管理用テーブルデータ３００＿１，３００＿２，３００＿３は、アプリケーションプログラムＡＰ毎に規定されている。
また、ＡＰＰテーブルデータ３１０＿１，３１０＿２，３１０＿３は、ＳＡＭ相互認証鍵データ毎に規定されている。
【００４５】
図１０は、ＡＰ管理用テーブルデータ３００＿１を説明するための図である。
ＡＰ管理用テーブルデータ３００＿２，３００＿３も、ＡＰ管理用テーブルデータ３００＿１と同じフォーマットを有している。
図１０に示すように、ＩＣカード操作用マクロコマンドスクリプトプログラム内で用いられる参照されるアプリケーションエレメントデータＡＰＥの名前ＡＰＥ＿Ｎのそれぞれについて、識別データＡＰＥ＿ＩＤ、内部／外部指定データＩＥＩ、識別データＳＡＭ＿ＩＤ、識別データＡＰ＿ＩＤ、鍵データＫ＿ＣＡＲＤＡ、鍵データＫ＿ＳＡＭ、データＳＥＴ＿ＡＰＰ、データＦＬＡＧ＿ＩＰおよびデータＦＬＡＧ＿ＳＴＲを対応付けて示している。
アプリケーションエレメントデータＡＰＥの名前ＡＰＥ＿Ｎは、サービス事業者１５＿１，１５＿２，１５＿３のアプリケーションプログラムによって提供されるサービス（アプリケーションエレメントデータＡＰＥ）に付けられた名前である。名前ＡＰＥ＿Ｎは、各サービス事業者のアプリケーションプログラムが使用できるサービスのサービス番号の代わりに参照される識別子である。
【００４６】
ここで、識別データＡＰＥ＿ＩＤは、アプリケーションエレメントデータＡＰＥの識別データである。
内部／外部指定データＩＥＩは、ＡＰＥが実体として存在するのか（内部指定）、あるいは他のＳＡＭから参照するのか（外部指定）を区別するフラグである。
識別データＳＡＭ＿ＩＤは、ＳＡＭモジュール８が当該アプリケーションエレメントデータＡＰＥに係わる処理を行う際にデータ授受を行う相手側のＳＡＭの識別データである。
【００４７】
識別データＡＰ＿ＩＤは、ＳＡＭモジュール８が当該アプリケーションエレメントデータＡＰＥに係わる処理を行う際にデータ授受を行う相手側のＳＡＭで実行されるアプリケーションプログラムの識別データである。
鍵データＫ＿ＣＡＲＤＡは、ＳＡＭモジュール８が当該アプリケーションエレメントデータＡＰＥに係わる処理を行う際にＩＣカード３のメモリ５０とデータ授受を行うために用いられる鍵データである。
【００４８】
鍵データＫ＿ＳＡＭは、ＳＡＭモジュール８が当該アプリケーションエレメントデータＡＰＥに係わる処理を行う際に、他のＳＡＭとデータ授受を行うために用いられる鍵データである。
データＳＥＴ＿ＡＰＰは、ＳＡＭモジュール８が当該アプリケーションエレメントデータＡＰＥに係わる処理を行う際に用いられる（参照される）ＡＰＰテーブルデータ３１０＿１，３１０＿２，３１０＿３を特定するためのデータである。
【００４９】
図１０において、ＡＰＥ＿Ｎ「ＳｅｒｖｉｃｅＡ」は、該当ＳＡＭ８内のアプリケーションプログラムで定義されたＩＣカード３のアクセス鍵である。「ＳｅｒｖｉｃｅＡ」の鍵データは非公開に設定しているため、他のＳＡＭ上のアプリケーションプログラムや本ＳＡＭ上の他のアプリケーションプログラムは、参照することができない。
また、「ＳｅｒｖｉｃｅＣ」は、本アプリケーションプログラムで定義されたＩＣカード３のアクセス鍵である。本ＳＡＭに後述するＣクラスのネットマスクが割り当てられている場合には、「ＳｅｒｖｉｃｅＣ」の鍵データは「４３．１７．１９．ＸＸ」のＳＡＭ＿ＩＤを持つＳＡＭ上のアプリケーションプログラムに公開される。この際ＳＡＭ相互認証用鍵は「ＴＴ１,,, ＴＴｎ」、また他のＳＡＭが「ＳｅｒｖｉｃｅＣ」の鍵データを次回利用時まで保持可能かの可否を決定する。可の場合には、他のＳＡＭがカード上の「ＳｅｒｖｉｃｅＣ」を次回利用するときに、本ＳＡＭから再度カードアクセス鍵を入手する必要は無い。ＳｅｒｖｉｃｅＢのアクセス鍵は本ＳＡＭではなく、「４３．１３．１３７．ＸＸ」のＳＡＭ＿ＩＤを持つＳＡＭから入手する。ＳＡＭ間の相互認証用鍵として「ＳＳ１…ＳＳｎ」を使用する。
「ＳｅｒｖｉｃｅＢ」のアクセス鍵を次回利用時まで保持可能の有無は先方のＳＡＭが指定する可否フラグにより決定する。
「ＳｅｒｖｉｃｅＢ  Ｌｏｇ」は、「４３．１３．１３７．ＸＸ」のＳＡＭ＿ＩＤが割り当てられたログデータが格納されたファイルを指す。「ＳｅｒｖｉｃｅＢ  Ｌｏｇ」は、「ＳｅｒｖｉｃｅＢ」と同一ＳＡＭネットマスクであるため、相互認証用鍵は「ＳＳ１,,, ＳＳｎ」を使用する。ここで、相互認証鍵毎にＡＰＰテーブルデータが設けられている。本例では、「ＳｅｒｖｉｃｅＢ  ｌｏｇ」および「ＳｅｒｖｉｃｅＢ」へのアクセス許可は他のＳＡＭ上のＡＰ管理用テーブルデータが参照する他のＳＡＭのＡＰＰテーブルデータ３１０で規定されている。
【００５０】
図１１は、ＡＰＰテーブルデータ３１０＿１を説明するための図である。
ＡＰＰテーブルデータ３１０＿２，３１０＿３、３１０は、ＡＰＰテーブルデータ３１０＿１と同じフォーマットを有している。
図１１に示すように、ＡＰＰテーブルデータ３１０＿１は、各アプリケーションエレメントデータＡＰＥについて、その識別データＡＰＥ＿ＩＤと、当該アプリケーションエレメントデータＡＰＥに対して他のアプリケーションプログラム（他のアプリケーションエレメントデータＡＰＥ）から読み出し（ＲＥＡＤ）、書き込み（ＷＲＩＴＥ）および実行（ＥＸＣＵＴＥ）が可能であるか否かを示している。
【００５１】
例えば、図１１に示すＡＰＰテーブルデータ３１０＿１は、「ＳｅｒｖｉｃｅＢ  ｌｏｇ」については読取りが可、書込みが可、実行（削除）が不可を示している。
【００５２】
また、図５に示す外部メモリ７のＡＰ管理用記憶領域２２１は、例えば、ＩＣカード種別データとＡＰ＿ＩＤとを対応付けて示すＡＰ選択用データを記憶している。
ＩＣカード種別データは、図１に示すＩＣカード３の種別を示し、例えば、ＩＣカード３を用いた取り引きの決済を行うクレジットカード会社の識別データである。
【００５３】
本実施形態では、ＩＣカード操作用マクロコマンドスクリプトプログラム内に複数のアプリケーションエレメントデータＡＰＥの名前ＡＰＥ＿Ｎを組み合せたサービス内容を規定（記述）し、これを後述するＩＣカードエンティティデータ（ジョブ管理用データ）に反映させることで、複数のアプリケーションエレメントデータＡＰＥに対応するサービスを組み合わせたをサービスを提供できる。
例えば、ＩＣカード３からデータ読出しを行うサービスと、サーバ装置２にデータ書込みを行うサービスとを組み合わせたサービスを、ＩＣカードエンティティデータ内に定義できる。
【００５４】
また、ＡＰＥ＿Ｎあるいはそのサービス番号は、サービス事業者１５＿１，１５＿２，１５＿３によって提供されるサービスを行う際に、ＩＣカード３に発行するＩＣカード３が解釈可能な操作コマンドである。
【００５５】
アプリケーションプログラムＡＰ＿１は、外部メモリ７に記憶されたＡＰ管理用テーブルデータ３００＿１および所定のＩＣカード操作用マクロコマンドスクリプトプログラムによって規定される。
アプリケーションプログラムＡＰ＿２は、外部メモリ７に記憶されたＡＰ管理用テーブルデータ３００＿２および所定のＩＣカード操作用マクロコマンドスクリプトプログラムによって規定される。
アプリケーションプログラムＡＰ＿３は、外部メモリ７に記憶されたＡＰ管理用テーブルデータ３００＿３および所定のＩＣカード操作用マクロコマンドスクリプトプログラムによって規定される。
【００５６】
〔ＳＡＭモジュール８〕
ＳＡＭモジュール８は、ＳＣＳＩまたはＥｔｈｅｒｎｅｔなどを介してＡＳＰサーバ装置１９に接続される。ＡＳＰサーバ装置１９は、インターネット１０を介して、エンドユーザのパーソナルコンピュータ５、サービス事業者１５＿１，１５＿２，１５＿３のパーソナルコンピュータ１６＿１，１６＿２，１６＿３を含む複数の端末装置に接続される。
パーソナルコンピュータ５は、例えば、シリアルまたはＵＳＢを介してＤｕｍｂ型のカードリーダ・ライタ４に接続されている。カードリーダ・ライタ４が、ＩＣカード３との間で物理レベルに相当する例えば無線通信を実現する。
ＩＣカード３への操作コマンドおよびＩＣカード３からのリスポンスパケットは、ＳＡＭユニット９側で生成および解読される。よって、その中間に介在するカードリーダ・ライタ４、パーソナルコンピュータ５およびＡＳＰサーバ装置１９は、コマンドやリスポンス内容をデータペイロード部分に格納して中継する役割を果たすのみで、ＩＣカード３内のデータの暗号化や復号および認証などの実操作には関与しない。
【００５７】
パーソナルコンピュータ１６＿１，１６＿２，１６＿３は、後述するスクリプトプログラムをＳＡＭモジュール８にダウンロードすることで、それぞれアプリケーションプログラムＡＰ＿１，ＡＰ＿２，ＡＰ＿３をカスタマイズできる。
【００５８】
図１２は、図１に示すＳＡＭモジュール８の機能ブロック図である。
図１２に示すように、ＳＡＭモジュール８は、ＡＳＰＳ通信インタフェース部６０（本発明のインタフェース）、外部メモリ通信インタフェース部６１、バススクランブル部６２、乱数発生部６３、暗号・復号部６４、メモリ６５およびＣＰＵ６６（本発明の制御手段）を有する。
ＳＡＭモジュール８は、耐タンパ性のモジュールである。
【００５９】
ＡＳＰＳ通信インタフェース部６０は、図１に示すＡＳＰサーバ装置１９との間のデータ入出力に用いられるインタフェースである。
外部メモリ通信インタフェース部６１は、外部メモリ７との間のデータ入出力に用いられるインタフェースである。
バススクランブル部６２は、外部メモリ通信インタフェース部６１を介してデータを入出力する際に、出力するデータをスクランブルし、入力したデータをデスクランブルする。
乱数発生部６３は、認証処理を行う際に用いられる乱数を発生する。
暗号・復号部６４は、データの暗号化、並びに暗号化されたデータの復号を行う。
メモリ６５は、後述するように、ＣＰＵ６６によって用いられるタスク、プログラム、並びにデータを記憶する。
ＣＰＵ６６は、後述するスクリプトダウンロードタスク、スクリプト解釈タスク、エンティティ生成タスク（ジョブ管理用データ作成タスク）およびＩＣカード手続管理タスク（ジョブ管理用データ管理タスク）などのタスクを実行する。
ＣＰＵ６６は、メモリ６５から電子的に読み出したプログラム（本発明のプログラム）に基づいて、後述するコマンドパケットデータおよびレスポンスパケットデータを用いた通信処理を行う。
ＣＰＵ６６は、ＳＡＭユニット９内での操作コマンドに基づいてＳＡＭユニット９内で規定された処理を行い、ＩＣカード３のＩＣモジュール３ａおよび携帯通信装置４１のＩＣモジュール４２の操作コマンドとに基づいて、ＩＣモジュール３ａおよびＩＣモジュール４２の処理を制御する。
【００６０】
以下、メモリ６５に記憶されるタスク、プログラムおよびデータについて説明する。
図１３は、メモリ６５に記憶されるタスク、プログラムおよびデータを説明するための図である。
図１３に示すように、スクリプトダウンロードタスク６９、スクリプト解釈タスク７０、エンティティ生成タスク７１、ＩＣカード手続管理用タスク７２、ＩＣカード操作用マクロコマンドスクリプトプログラム２１＿１〜２１＿３、ＡＰ管理用テーブルデータ３００＿１〜３００＿３、ＡＰＰテーブルデータ３１０＿１〜３１０＿３、ＩＣカードエンティティテンプレートデータ３０＿１〜３０＿３、ＩＣカードエンティティデータ７３＿ｘ、入力用データブロック３１＿ｘ１、出力用データブロック３２＿ｘ２、ログ用データブロック３３＿ｘ３、並びに演算定義用データブロック３４＿ｘ４を記憶している。
【００６１】
スクリプトダウンロードタスク６９は、図８に示すように、ＡＰ管理用テーブルデータ３００＿１〜３００＿３（必要に応じてＡＰＰテーブルデータ３１０＿１〜３１０＿３）を、例えば、各サービス事業者のコンピュータからダウンロードし、これをＳＡＭモジュール８に取り込む。
【００６２】
スクリプト解釈タスク７０は、各サービス事業者毎に、サービス定義テーブルデータ（必要に応じてＡＰＰテーブルデータ３１０＿１〜３１０＿３）およびスクリプトプログラムを用いて、ＩＣカードエンティティテンプレートデータ、入力用データブロック、出力用データブロック、ログ用データブロックおよび演算定義用データブロックを生成する。
各サービス事業者毎に生成されるデータブロックの数は特に限定されない。
【００６３】
エンティティ生成タスク７１は、例えば、ＡＳＰサーバ装置１９からエンティティ作成要求を受けると、ＩＣカード３との間でポーリングを行った後に、当該ＩＣカード３とサービス事業者との間の手続き処理に用いるＩＣカードエンティティデータを、当該サービス事業者に対応するＩＣカードエンティティプレートデータを用いて生成する。このとき、ＩＣカードエンティティプレートデータがクラスとなり、当該クラスのインスタンスとして、ＩＣカードエンティティデータが生成される。
エンティティ生成タスク７１によるＩＣカードエンティティデータの生成処理について後に詳細に説明する。
【００６４】
ＩＣカード手続管理用タスク７２は、メモリ６５内に存在する単数または複数のＩＣカードエンティティデータ７３＿ｘを用いて、ＩＣカード３とサービス事業者１５＿１〜１５＿３との間の手続き処理を実行する。
本実施形態では、複数のＩＣカード３とサービス事業者１５＿１〜１５＿３との間で行われる複数の手続き処理が同時に進行する。
ＩＣカード手続管理用タスク７２は、これら複数の手続き処理を並行して実行する。
ＩＣカード手続管理用タスク７２は、一連の手続きを終了したＩＣカードエンティティデータ７３＿ｘを消去する。
ＩＣカード手続管理用タスク７２の処理については後に詳細に説明する。
【００６５】
スクリプトプログラム２１＿１〜２１＿２は、スクリプトダウンロードタスク６９によって、例えば、外部メモリ７から入力され、メモリ６５に記憶される。
ＡＰ管理用テーブルデータ３００＿１〜３００＿３は、スクリプトダウンロードタスク６９によって、例えば、外部メモリ７から入力され、メモリ６５に記憶される。
ＡＰＰテーブルデータ３１０＿１〜３１０＿３は、スクリプトダウンロードタスク６９によって、例えば、外部メモリ７から入力され、メモリ６５に記憶される。
【００６６】
ＩＣカードエンティティテンプレートデータ３０＿１〜３０＿３は、スクリプト解釈タスク７０によって生成され、それぞれのサービス事業者に関する手続きのＩＣカードエンティティデータ７３＿ｘを生成する際のテンプレート（クラス）として用いられる。
ＩＣカードエンティティデータ７３＿ｘは、エンティティ生成タスク７１によって、ＩＣカードエンティティテンプレートデータ３０＿１〜３０＿３を例えばクラスとして用い、当該クラスのインスタンスとして生成される。
【００６７】
入力用データブロック３１＿ｘ１、出力用データブロック３２＿ｘ２、ログ用データブロック３３＿ｘ３および演算定義用データブロック３４＿ｘ４は、スクリプト解釈タスク７０によって生成される。
【００６８】
以下、ＩＣカードエンティティデータ７３＿ｘについて説明する。
ＩＣカードエンティティデータ７３＿ｘは、例えば、ＡＳＰサーバ装置１９からＩＣカード３と所定のサービス事業者のアプリケーションプログラムを用いた処理の処理要求をＳＡＭモジュール８が受けたときに、ＳＡＭモジュール８内のエンティティ生成タスク７１が、既に生成されている対応するサービス事業者のＩＣカードエンティティプレートデータを用いて生成する。
【００６９】
図１４は、ＩＣカードエンティティデータ７３＿ｘのフォーマットを説明するための図である。
図１４に示すように、ＩＣカードエンティティデータ７３＿ｘは、管理用ポインタデータ８０、エンティティＩＤデータ８１、ＩＣカード３に関する手続きの進行状態を示すエンティティステータスデータ（ステータスデータ）８２、当該ＩＣカード３を発行したサービス事業者を特定するＩＣカード種別データ８３、ＩＣカードエンティティデータ７３＿ｘを用いた処理で利用するＡＰＥを指定するＡＰＥ＿Ｎ指定データ８４、サービス（ジョブ）の実行順番を示す処理順番データ８５、処理前データ８６、並びに処理結果のデータを示す処理後データ８７を有する。
【００７０】
以下、図１３に示すＩＣカード手続管理用タスク７２による、複数のＩＣカードエンティティデータ７３＿ｘを用いて、複数のＩＣカード３に係わる処理を行う手順を説明する。
ＩＣカード手続管理用タスク７２は、例えば、図１２に示すＳＡＭモジュール８のＣＰＵ６６上で常に起動されている。
図１５は、ＩＣカード手続管理用タスク７２が行う処理のフローチャートである。
ステップＳＴ１：
ＩＣカード手続管理用タスク７２は、メモリ６５内に存在する複数のＩＣカードエンティティデータ７３＿ｘのうち、次に処理を実行する一つのＩＣカードエンティティデータ７３＿ｘを選択する。
当該ＩＣカードエンティティデータ７３＿ｘの選択方法は、メモリ６５内に存在するＩＣカードエンティティデータ７３＿ｘを順番に選択してもよいし、優先順位を付けて高い優先順位のものを優先的に選択してもよい。
【００７１】
ステップＳＴ２：
ＩＣカード手続管理用タスク７２は、ステップＳＴ１で選択したＩＣカードエンティティデータ７３＿ｘのジョブが既に起動されているか否かを判断し、起動されていると判断した場合にはステップＳＴ５の処理に進み、起動されていないと判断した場合にはステップＳＴ３の処理に進む。
【００７２】
ステップＳＴ３：
ＩＣカード手続管理用タスク７２は、ステップＳＴ１で選択したＩＣカードエンティティデータ７３＿ｘの図１４に示すエンティティステータスデータ８２から、当該エンティティデータに関する処理が状態遷移の何れの状態にあるかを判断し、処理順番データ８５から、次に実行するジョブを決定する。
このとき処理順番データ８５には、前述したように、ＡＰ管理用テーブルデータ３００＿１〜３００＿３に設定されたサービスエレメントを用いてジョブの実行順番が規定されている。
【００７３】
ステップＳＴ４：
ＩＣカード手続管理用タスク７２は、ステップＳＴ３で選択したジョブを起動する。
ＩＣカード手続管理用タスク７２は、図８を用いて前述した入力用データブロック３１＿ｘ１、出力用データブロック３２＿ｘ２、ログ用データブロック３３＿ｘ３および演算定義用データブロック３４＿ｘ４のうち、当該ジョブに関係するデータブロックを用いて当該ジョブを実行する。
【００７４】
このとき、ＩＣカード手続管理用タスク７２は、ジョブの実行に当たってＩＣカード３にコマンドを発行する場合に、当該ジョブに対応するサービスエレメントをキーとしてＡＰ管理用テーブルデータ３００＿１〜３００＿３を検索し、当該サービスエレメントに対応するサービス番号（ＩＣカード３が解釈可能なＩＣカード３の操作コマンド）を得る。そして、ＩＣカード手続管理用タスク７２は、当該得られたサービス番号を用いてＩＣカード３にコマンドを発行する。
また、ＩＣカード手続管理用タスク７２は、ＩＣカード３のＩＣモジュール３ａの記憶領域へのアクセスに鍵データが必要な場合には、当該ジョブに対応するサービスエレメントをキーとしてＡＰ管理用テーブルデータ３００＿１〜３００＿３を検索し、当該サービスエレメントに対応する鍵データを得る。そして、ＩＣカード手続管理用タスク７２は、当該鍵データを用いて、ＩＣカード３との間で相互認証、データの暗号化および復号などの処理を行い、ＩＣカード３の所定の記憶領域にアクセスを行う権限を得る。
【００７５】
ステップＳＴ５：
ステップＳＴ５が行われるのは、ＩＣカード手続管理用タスク７２が、ＩＣカード３にコマンドを発行し、ＩＣカード３の処理結果を待っているときである。
ＩＣカード手続管理用タスク７２は、ＩＣカード３から処理結果を受け取ると、これをＩＣカードエンティティデータ７３＿ｘに設定する。
【００７６】
ステップＳＴ６：
ＩＣカード手続管理用タスク７２は、図１４に示すＩＣカードエンティティデータ７３＿ｘのエンティティステータスデータ８２を更新する。
【００７７】
このように、本実施形態では、ＩＣカード手続管理用タスク７２によって、ＳＡＭモジュール８内に存在する複数のＩＣカード３についてのＩＣカードエンティティデータ７３＿ｘを順に選択しながら、複数のＩＣカード３についての処理を並行して行う。そのため、ＳＡＭモジュール８は、複数のＩＣカード３を用いた手続きの処理要求を受けた場合でも、これらの処理を同時に進行することができる。
また、ＳＡＭモジュール８は、上述した図１５のステップＳＴ４におけるジョブの実行時に、前述したＳＡＭモジュール８がアプリケーションエレメントデータＡＰＥに規定された手順に従って、ＩＣカード３との間でデータ授受を行う場合には、図１１に示すＡＰ管理用テーブルデータ３００＿１〜３００＿３を参照して、当該アプリケーションエレメントデータＡＰＥに対応する鍵データＫ＿ＣＡＤＲを取得し、当該鍵データＫ＿ＣＡＲＤを用いて、ＩＣカード３のメモリ５０にアクセスを行う。
【００７８】
〔サーバ装置１９〕
図１６は、図１に示すサーバ装置１９の機能ブロック図である。
図１６に示すように、サーバ装置１９は、例えば、ＳＡＭインタフェース部２０１、インターネットインタフェース部２０２、メモリ２０３およびＣＰＵ２０４を有する。
【００７９】
ＳＡＭインタフェース部２０１は、後述する通信プロトコルに基づいて図１７に示すロードバランサ４９を介して、図１に示す複数のＳＡＭモジュール８とデータ授受を行う。ロードバランサ４９は、単数のサーバ装置１９に対して、同じＩＣモジュールに係わる処理を行うに複数のＳＡＭユニット９が接続された場合に、ＩＣモジュールに係わる処理を複数のＳＡＭユニット９で適切に分散する機能を有する。
インターネットインタフェース部２０２は、後述する通信プロトコルに基づいて図１に示すインターネット１０を介して、サーバ装置２、パーソナルコンピュータ５、パーソナルコンピュータ１５＿１，１５＿２，１５＿３および携帯通信装置４１とデータの授受を行う。
メモリ２０３は、ＣＰＵ２０４の処理を規定するプログラム、並びにＣＰＵ２０４の処理に用いられるデータを記憶する。
ＣＰＵ２０４は、例えば、メモリ２０３に記憶されたプログラムに基づいて、後述する通信プロトコルを実現するための処理を行う。
【００８０】
〔基本通信プロトコル〕
以下、ＳＡＭモジュール８、サーバ装置１９、ＩＣモジュール４２（ＩＣカード３のＩＣモジュール）との間で行われる通信プロトコルの基本について説明する。
当該通信プロトコルで使用されるパケットデータ（コマンドパケットデータおよびレスポンスパケットデータ）には、ＩＣモジュールの処理を規定した図１７に示すパケットデータＩＣ＿ＰＫと、それ以外の図１８に示すパケットデータＯＴ＿ＰＫとがある。
図１８および図１９に示すように、パケットデータＩＣ＿ＰＫがＳＡＭモジュール８内でＩＣモジュールに関する処理毎に規定された図１４を用いて説明したＩＣエンティティデータのエンティティＩＤを格納しているのに対して、パケットデータＯＴ＿ＰＫが当該エンティティＩＤを格納していない点を除いて、両パケットデータは同じフォーマットを有している。
【００８１】
パケットデータＯＴ＿ＰＫ形式のコマンドパケットデータおよびレスポンスパケットデータは、図２０に示すように、ＳＡＭモジュール８とサーバ装置１９との間で固定的に確立されたコネクション（固定コネクション）上の通信路を使用して転送される。
一方、パケットデータＩＣ＿ＰＫ形式のコマンドパケットデータおよびレスポンスパケットデータは、図２１に示すように、サーバ装置１９がＳＡＭユニット９にＩＣモジュールに係わる処理を依頼（要求）したタイミングで、ＳＡＭモジュール８とサーバ装置１９との間で確立され、対応するコマンドパケットデータおよびレスポンスパケットデータを転送した後に消去されるコネクション（変動コネクション）上の通信路を使用して転送される。当該変動コネクションでは、サーバ装置１９がＳＡＭユニット９にＩＣモジュールに係わる処理を依頼する度に通信路を確立する。
なお、ＳＡＭユニット９とサーバ装置１９との間の通信の総コネクションは、例えば、ＳＡＭユニット９、サーバ装置１９あるいはロードバランサ４９によって管理されている。また、アプリケーションプログラムＡＰ単位で、同時に行うことができるＩＣモジュール処理数が指定されている。
【００８２】
以下、上述したパケットデータのフォーマットを説明する。
図１８に示すように、パケットデータＩＣ＿ＰＫは、先頭から末尾に向けて順に、プリアンブル(Preamble)、パケットデータの開始を示すコード(Start of Packet Code)、パケットデータ長を示すデータ(Length)、チェックサム長を示すデータＬＣＳ(Length Check Sum)、当該パケットデータの送信先のＳＡＭユニット９の識別データ(Destination SAM＿ID) 、当該パケットデータの送信元のＳＡＭユニット９の識別データ(Source SAM ＿ID) 、当該パケットデータの送信先のアプリケーションプログラムＡＰの識別データ(Destination AP ＿ID) 、当該パケットデータの送信元のアプリケーションプログラムＡＰの識別データ(Source AP＿ID) 、当該パケットデータの送信先のポート識別子(Destination Port ID) 、当該パケットデータの送信元のポート識別子(Source Port ID)、ＩＣエンティティデータのエンティティＩＤ(Entity ID) 、コマンドコード／レスポンスコード(SAM Command/Response Code) 、フラグＰＣＦ(Packet Control Flag) 、トランザクションＩＤ(Transaction ID)、レスポンスステータス(Response Status) 、ＩＣモジュールへのコマンドパケットデータ／レスポンスパケットデータ、データ部のチェックサムＤＣＳ(Data Check Sum)、並びにポストアンブル(Postamble) を格納している。
【００８３】
なお、サーバ装置１９には、運用上合意されたＳＡＭ＿ＩＤ（例えば、、ＡＬＬ‘Ｆ’等）が割り当てられている。
ＰｏｒｔＩＤは、アプリケーションプログラムＡＰ内での処理の振り分け用として使用される。
コマンドコード／レスポンスコードは、サーバ装置１９とＳＡＭユニット９との間のコマンドおよびレスポンスを規定している。
図２２は、図１８および図１９に示すフラグＰＣＦを説明するための図である。
図２２に示すように、１６ビットからなり、パケットデータに係わる処理を規定（判定）するためのフラグデータである。
具体的には、判定フラグＳＯＵＴＨ，ＣＭＥＸＣ，ＣＮＴＹＰおよびＭＡＵＴＨ（本発明の識別データ）を有する。
判定フラグＳＯＵＴＨは、ＳＡＭ間での相互認証の有無を示すフラグである。
判定フラグＣＮＴＹＰは、後述するマルチコマンド方式（実行効率を配慮したＩＣモジュール操作コマンド）およびシングルコマンド方式の何れであるかを示すフラグである。
判定フラグＣＮＴＹＰは、前述した固定コネクションおよび変動コネクションの何れであるかを示すフラグである。
判定フラグＭＡＵＴＨは、サーバ装置１９とＳＡＭとの相互認証の有無を示すフラグである。
【００８４】
また、図１９に示すように、パケットデータＯＴ＿ＰＫは、図１８において、エンティティＩＤ(Entity ID) の部分がＲｅｓｅｒｖｅｄにより、ＩＣモジュールへのコマンドパケットデータ／レスポンスパケットデータの部分に実パラメータ部が格納された点を除いて、図１８を用いて前述したパケットデータＩＣ＿ＰＫと同じフォーマットを有している。
【００８５】
以下、図１８に示すパケットデータＩＣ＿ＰＫを用いて図１に示す通信システム１がＩＣモジュール４２に係わる通信を行う手順について説明する。
図２３は、当該手順を説明するための図である。
ステップＳＴ２０１：
図１６に示すサーバ装置１９のＣＰＵ２０４が、図１９に示すパケットデータＯＴ＿ＰＫ形式のコマンドパケットデータ（第１〜第３の発明の第１のコマンドモジュール）を生成し、これをＳＡＭインタフェース部２０１を介してＳＡＭモジュール８に出力する。
ＳＡＭモジュール８は、図１２に示すＡＳＰＳ通信インタフェース部６０を介して、サーバ装置１９が送信したコマンドパケットデータを入力する。
当該コマンドパケットデータは、図１９に示すコマンドコードとして、サーバ装置１９とＳＡＭユニット９との間の操作を規定したコマンドコードであるエンティティマクロ処理用コマンド（０ｘ３０４）（第１〜第３の発明のコマンド）格納する。また、実パラメータ部には、ＩＣモジュール４２への操作を規定したＩＣモジュール処理コマンド用パケットデータを指定するデータを格納する。
【００８６】
ステップＳＴ２０２：
ＳＡＭモジュール８のＣＰＵ６６が、ステップＳＴ２０１で受信したコマンドパケットデータに格納されたエンティティマクロ処理用コマンドを実行し、ポーリングを開始し、当該コマンドパケットデータの実パラメータ部に格納されたＩＣモジュール処理コマンド用パケットデータの指定に基づいて、図１８に示すパケットデータＩＣ＿ＰＫ形式のコマンドパケットデータ（第１〜第３の発明の第２のコマンドモジュール）を生成し、これを図１２に示すＡＳＰＳ通信インタフェース部６０からＩＣモジュール４２に送信する。
当該コマンドパケットデータは、図１８に示すＩＣモジュールへのコマンドパケットデータとして、ＩＣモジュール処理コマンド用パケットデータ（０ｘ３０３）が格納されている。
また、当該コマンドパケットデータには、レスポンスステータスより先頭側に、ＩＣモジュール４２の操作に用いられるデータが格納されている。
【００８７】
ステップＳＴ２０３：
図２に示すＩＣモジュール４２は、ステップＳＴ２０２で受信したコマンドパケットデータに基づいて所定の処理を行い、その結果を格納した図１８に示すパケットデータＩＣ＿ＰＫ形式のレスポンスパケットデータ（第１〜第３の発明の第１のレスポンスモジュール）を生成し、これをサーバ装置１９を介してＳＡＭモジュール８に送信する。
当該レスポンスパケットデータの図１８に示すレスポンスコードとして、ＩＣモジュール処理用レスポンス（０ｘ３０２）が設定されている。
また、当該レスポンスパケットデータの図１８に示すレスポンスステータスより先頭側に、ＩＣモジュール４２からのレンスポンスが指定されている。
ステップＳＴ２０４：
ＳＡＭモジュール８のＣＰＵ６６は、ＩＣモジュール４２との間で相互認証を行い、互いの正当性を確認すると、ステップＳＴ２０５の処理に進む。
【００８８】
ステップＳＴ２０５：
図１２に示すＳＡＭモジュール８のＣＰＵ６６は、ステップＳＴ２０３で順したレスポンスパケットデータに基づいて、ステップＳＴ２０１で受けたコマンドパケットデータに対応した処理が全て終了したと判断すると、図１９に示すパケットデータＯＴ＿ＰＫ形式のレスポンスパケットデータ（第１〜第３の発明の第２のレスポンスモジュール）をサーバ装置１９に送信する。
当該レスポンスパケットデータの図１９に示すレスポンスコードには、ＩＣモジュール処理用レスポンス（０ｘ３０５）が指定されている。
【００８９】
〔マルチコマンド方式の説明〕
以下、マルチコマンドに対応したパケットデータのフォーマットについて説明する。
図２４は、サーバ装置１９とＳＡＭモジュール８との間で転送されるマルチコマンドパケットデータＭＣＰＫのフォーマットを説明するための図である。
図２４に示すように、マルチコマンドパケットデータＭＣＰＫは、先頭から末尾に向かって順に、ＳＡＭヘッダ(Header)、マルチコマンド用コマンドコード、コマンド数指定、複数の汎用マクロコマンド用コマンドコードおよびそのパラメータ、データ部のチェックサムＤＣＳ(Data Check Sum)、並びにポストアンブル(Postamble) を格納している。
【００９０】
ここで、マルチコマンドパケットデータＭＣＰＫに格納される複数の汎用マクロコマンド用コマンドコードおよびそのパラメータの順番は、実行順に指定される。また、汎用マクロコマンド用コマンドコードおよびそのパラメータの最大連結数（格納数）は例えば１６個である。
また、ＳＡＭヘッダには、図２４に示すように、プリアンブル(Preamble)、パケットデータの開始を示すコード(Start of Packet Code)、パケットデータ長を示すデータ(Length)、チェックサム長を示すデータＬＣＳ(Length Check Sum)、当該パケットデータの送信先のＳＡＭユニット９の識別データ(Destination SAM＿ID) 、当該パケットデータの送信元のＳＡＭユニット９の識別データ(SourceSAM ＿ID) 、ＩＣエンティティデータのエンティティＩＤ(Entity ID) 、コマンドコード／レスポンスコード(SAM Command/Response Code) 、フラグＰＣＦ(Packet Control Flag) 、トランザクションＩＤ(Transaction ID)、ステータスコード(Status Code) を格納している。
ここで、フラグＰＣＦの図２２に示すフラグＣＮＴＹＰは、変動コネクションを指定している。
また、コマンドコードとしては、ＩＣモジュール４２への操作を規定したエンティティマクロ処理用コマンドが指定される。
【００９１】
図２５は、サーバ装置１９とＳＡＭモジュール８との間で転送されるマルチレスポンスパケットデータＭＲＰＫのフォーマットを説明するための図である。
図２５に示すように、マルチレスポンスパケットデータＭＲＰＫは、先頭から末尾に向かって順に、ＳＡＭヘッダ(Header)、マルチレスポンス用コマンドコード、レスポンス数指定、レスポンスコード、レスポンスフラグ１、レスポンスフラグ２、ブロック数、実データ（ＩＣモジュール４２がコマンドに応じて生成したデータなど）、データ部のチェックサムＤＣＳ(Data Check Sum)、並びにポストアンブル(Postamble) を格納している。
図２５において、レスポンスコード、レスポンスフラグ１、レスポンスフラグ２、ブロック数および実データからなるモジュールは、格納されるレスポンスの数分がある。
【００９２】
また、レスポンスコード、レスポンスフラグ１、レスポンスフラグ２、ブロック数および実データからなるモジュールの最大連結数（格納数）は例えば１６個である。
なお、格納されるレスポンス数は、成功したレスポンス総計と、最初に失敗したレスポンス数との合計値になる。
また、ＳＡＭヘッダには、図２５に示すように、プリアンブル(Preamble)、パケットデータの開始を示すコード(Start of Packet Code)、パケットデータ長を示すデータ(Length)、チェックサム長を示すデータＬＣＳ(Length Check Sum)、当該パケットデータの送信先のＳＡＭユニット９の識別データ(Destination SAM＿ID) 、当該パケットデータの送信元のＳＡＭユニット９の識別データ(SourceSAM ＿ID) 、ＩＣエンティティデータのエンティティＩＤ(Entity ID) 、コマンドコード／レスポンスコード(SAM Command/Response Code) 、フラグＰＣＦ(Packet Control Flag) 、トランザクションＩＤ(Transaction ID)、ステータスコード(Status Code) を格納している。
【００９３】
図２６は、ＳＡＭモジュール８とＩＣモジュール４２との間で転送されるマルパケットデータＭＩＣＰＫのフォーマットを説明するための図である。
図２６に示すように、マルチレスポンスパケットデータＭＲＰＫは、先頭から末尾に向かって順に、ＳＡＭヘッダ(Header)、複数のＩＣモジュールコマンド／レスポンス、データ部のチェックサムＤＣＳ(Data Check Sum)、並びにポストアンブル(Postamble) を格納している。
ここで、ＩＣモジュールコマンド／レスポンスの各々は、パケット長(IC Packet Length)、ＩＣモジュールコマンド／レスポンスの暗号非対象部、並びにＩＣモジュールコマンド／レスポンスの暗号対象部を格納している。
また、ＳＡＭヘッダには、図２６に示すように、プリアンブル(Preamble)、パケットデータの開始を示すコード(Start of Packet Code)、パケットデータ長を示すデータ(Length)、チェックサム長を示すデータＬＣＳ(Length Check Sum)、当該パケットデータの送信先のＳＡＭユニット９の識別データ(Destination SAM＿ID) 、当該パケットデータの送信元のＳＡＭユニット９の識別データ(SourceSAM ＿ID) 、ＩＣエンティティデータのエンティティＩＤ(Entity ID) 、コマンドコード／レスポンスコード(SAM Command/Response Code) 、フラグＰＣＦ(Packet Control Flag) 、トランザクションＩＤ(Transaction ID)、ステータスコード(Status Code) を格納している。
また、ＳＡＭヘッダ内のコマンドコード／レスポンスコードとして、ＩＣモジュール処理コマンド／レスポンスコードを使用する。
【００９４】
以下、図１に示す通信システム１において、図２４，図２５および図２６を用いて説明したパケットデータを用いたマルチコマンド／レスポンス方式の通信方法を説明する。
〔第１の通信方法〕
当該第１の通信方法は、第４〜第６の発明に対応した実施形態である。
図２７は、通信システム１によるマルチコマンド／レスポンス方式の第１の通信方法を説明するための図である。
ステップＳＴ２１１：
図１６に示すサーバ装置１９のＣＰＵ２０４が、図２４に示すマルチコマンドパケットデータＭＣＰＫ形式のコマンドパケットデータ（第４〜第６の発明の第１のコマンドモジュール）を生成し、これをＳＡＭインタフェース部２０１を介してＳＡＭモジュール８に出力する。
ＳＡＭモジュール８は、図１２に示すＡＳＰＳ通信インタフェース部６０を介して、サーバ装置１９が送信したコマンドパケットデータを入力する。
当該コマンドパケットデータは、図２４に示す単数の汎用マクロコマンド用コマンドコードＭｃ（第４〜第６の発明の第１のコマンド）を格納している。
【００９５】
ステップＳＴ２１２：
ＳＡＭモジュール８のＣＰＵ６６が、ステップＳＴ２１１で受信したコマンドパケットデータに格納された汎用マクロコマンド用コマンドコードＭｃの解釈を行い、その結果に基づいて単数のＩＣモジュールコマンドＦｃ（第４〜第６の発明の第２のコマンド）をＩＣモジュールコマンド部に格納した図２６に示すＭＩＣＰＫ形式のコマンドパケットデータ（第４〜第６の発明の第２のコマンドモジュール）を、サーバ装置１９を介して携帯通信装置４１の通信処理部４３に送信する。
ステップＳＴ２１３：
携帯通信装置４１の通信処理部４３が、ステップＳＴ２１２に格納された単数のＩＣモジュールコマンドＦｃをＩＣモジュール４２に出力（発行）する。
ＩＣモジュール４２は、入力したＩＣモジュールコマンドＦｃに応じた処理を行い、その結果を格納したレスポンスＦｒ（第４〜第６の発明の第１のレスポンスモジュール）を通信処理部４３に出力する。
ステップＳＴ２１４：
通信処理部４３は、ステップＳＴ２１３で入力したレスポンスＦｒを、図２６に示すＩＣモジュールレスポンス部に格納して、サーバ装置１９を介してＳＡＭモジュール８に送信する。
ステップＳＴ２１５：
ＳＡＭモジュール８は、ステップＳＴ２１４で受信したレスポンスＦｒを実データとして格納すると共に、ステップＳＴ２１１で指定された汎用マクロコマンド用コマンドコードに対応したレスポンスコードＭｒを格納した図２５に示すマルチレスポンスパケットデータＭＲＰＫ形式のレスポンスパケットデータ（第４〜第６の発明の第２のレスポンスモジュール）を生成し、これをサーバ装置１９に出力する。
【００９６】
上述した第１の通信方法は、ＳＡＭモジュール８からＩＣモジュール４２への基本的なデータ書き込み、基本的なデータ読込みなどの操作を行う場合に用いられる。このとき、ＩＣモジュール４２への書き込み・読込みの最大データサイズは、ＩＣモジュール４２持つ性能上の上限値を超えないように設定される。
また、その他の例として、ＩＣモジュール４２内のシステムコードの数を取得する関数（Ｒｅｑｕｅｓｔ  Ｓｙｓｔｅｍ  Ｃｏｄｅ）などを実行する場合にも、第１の通信方法が用いられる。
なお、上述した第１の通信方法で実行するコマンドが、後述する第３の通信方法で指定される個々のコマンドに対応する。
【００９７】
〔第２の通信方法〕
第２の通信方法は、第７〜９の発明に対応した実施形態である。
図２８は、通信システム１によるマルチコマンド／レスポンス方式の第２の通信方法を説明するための図である。
ステップＳＴ２２１：
図１６に示すサーバ装置１９のＣＰＵ２０４が、図２４に示すマルチコマンドパケットデータＭＣＰＫ形式のコマンドパケットデータ（第７〜第９の発明の第１のコマンドモジュール）を生成し、これをＳＡＭインタフェース部２０１を介してＳＡＭモジュール８に出力する。
ＳＡＭモジュール８は、図１２に示すＡＳＰＳ通信インタフェース部６０を介して、サーバ装置１９が送信したコマンドパケットデータを入力する。
当該コマンドパケットデータは、図２４に示す単数の汎用マクロコマンド用コマンドコードＭｃ（第７〜第９の発明の第１のコマンド）を格納している。
【００９８】
ステップＳＴ２２２：
ＳＡＭモジュール８のＣＰＵ６６が、ステップＳＴ２２１で受信したコマンドパケットデータに格納された汎用マクロコマンド用コマンドコードＭｃの解釈を行い、その結果に基づいて複数のＩＣモジュールコマンドＦｃ１，Ｆｃ２，Ｆｃ３（第７〜第９の発明の第２のコマンド）をＩＣモジュールコマンド部に格納した図２５に示すＭＩＣＰＫ形式のコマンドパケットデータ（第７〜第９の発明の第２のコマンドモジュール）を、サーバ装置１９を介して携帯通信装置４１の通信処理部４３に送信する。
【００９９】
ステップＳＴ２２３：
携帯通信装置４１の通信処理部４３が、ステップＳＴ２２２に格納された複数のＩＣモジュールコマンドＦｃ１，Ｆｃ２，Ｆｃ３を分解し、先ず、ＩＣモジュールコマンドＦｃ１をＩＣモジュール４２に出力（発行）する。
【０１００】
ステップＳＴ２２４：
ＩＣモジュール４２は、ステップＳＴ２２３で分解して得たＩＣモジュールコマンドＦｃ１に応じた処理を行い、その結果を格納したレスポンスＦｒ１を通信処理部４３に出力する。
次に、携帯通信装置４１の通信処理部４３が、ＩＣモジュールコマンドＦｃ２をＩＣモジュール４２に出力（発行）する。
ＩＣモジュール４２は、入力したＩＣモジュールコマンドＦｃ２に応じた処理を行い、その結果を格納したレスポンスＦｒ２を通信処理部４３に出力する。
次に、携帯通信装置４１の通信処理部４３が、ＩＣモジュールコマンドＦｃ３をＩＣモジュール４２に出力（発行）する。
ＩＣモジュール４２は、入力したＩＣモジュールコマンドＦｃ３に応じた処理を行い、その結果を格納したレスポンスＦｒ３を通信処理部４３に出力する。
【０１０１】
ステップＳＴ２２５：
通信処理部４３は、ステップＳＴ２２４で入力したレスポンスＦｒ１，Ｆｒ２，Ｆｒ３を、図２５に示すＩＣモジュールレスポンス部に格納したレスポンスモジュール（第７〜第９の発明の第１のレスポンスモジュール）を、サーバ装置１９を介してＳＡＭモジュール８に送信する。
ステップＳＴ２２６：
ＳＡＭモジュール８は、ステップＳＴ２２５で受信したレスポンスＦｒ１，Ｆｒ２，Ｆｒ３を実データとして格納すると共に、ステップＳＴ２２１で指定された汎用マクロコマンド用コマンドコードに対応したレスポンスコードＭｒを格納した図２５に示すマルチレスポンスパケットデータＭＲＰＫ形式のレスポンスパケットデータ（第７〜第９の発明の第２のレスポンスモジュール）を生成し、これをサーバ装置１９に出力する。
【０１０２】
上述した第２の通信方法は、連続して処理するコマンドシーケンスが固定化されているため、サーバ装置１９から逐一対応したコマンドとパラメータを送付する必要がなく、ＳＡＭモジュール８側が複数個のコマンドを送付できる。
具体的には、ＩＣモジュール発行系コマンド（サービス登録、エリア登録、分割、サービス削除、エリア削除等）などの、発行処理を確定するコマンド（Ｃｈａｎｇｅ  Ｓｙｓｔｅｍ  Ｂｌｏｃｋ）と対にして使用されるコマンドを実行する場合に有効である。
【０１０３】
〔第３の通信方法〕
当該第３の通信方法は、第１０〜第１２の発明に対応した実施形態である。
図２９は、通信システム１によるマルチコマンド／レスポンス方式の第３の通信方法を説明するための図である。
ステップＳＴ２３１：
図１６に示すサーバ装置１９のＣＰＵ２０４が、図２４に示すマルチコマンドパケットデータＭＣＰＫ形式のコマンドパケットデータ（第１０〜第１２の発明の第１のコマンドモジュール）生成し、これをＳＡＭインタフェース部２０１を介してＳＡＭモジュール８に出力する。
ＳＡＭモジュール８は、図１２に示すＡＳＰＳ通信インタフェース部６０を介して、サーバ装置１９が送信したコマンドパケットデータを入力する。
当該コマンドパケットデータは、図２４に示す複数の汎用マクロコマンド用コマンドコードＭｃ１，Ｍｃ２，Ｍｃ３（第１０〜第１２の発明の第１のコマンド）を格納している。
【０１０４】
ステップＳＴ２３２：
ＳＡＭモジュール８のＣＰＵ６６が、ステップＳＴ２３１で受信したコマンドパケットデータに格納された汎用マクロコマンド用コマンドコードＭｃ１，Ｍｃ２，Ｍｃ３の解釈を行い、その結果に基づいて複数のＩＣモジュールコマンドＦｃ１，Ｆｃ２，Ｆｃ３（第１０〜第１２の発明の第２のコマンド）をＩＣモジュールコマンド部に格納した図２６に示すＭＩＣＰＫ形式のコマンドパケットデータ（第１０〜第１２の発明のコマンドモジュール）を、サーバ装置１９を介して携帯通信装置４１の通信処理部４３に送信する。
ここで、ＩＣモジュールコマンドＦｃ１，Ｆｃ２，Ｆｃ３が、それぞれ汎用マクロコマンド用コマンドコードＭｃ１，Ｍｃ２，Ｍｃ３を解釈して得られたコマンドである。
【０１０５】
ステップＳＴ２３３：
携帯通信装置４１の通信処理部４３が、ステップＳＴ２３２に格納された複数のＩＣモジュールコマンドＦｃ１，Ｆｃ２，Ｆｃ３を分解し、先ず、ＩＣモジュールコマンドＦｃ１をＩＣモジュール４２に出力（発行）する。
【０１０６】
ステップＳＴ２３４：
ＩＣモジュール４２は、ステップＳＴ２３３で分解して得たＩＣモジュールコマンドＦｃ１に応じた処理を行い、その結果を格納したレスポンスＦｒ１を通信処理部４３に出力する。
次に、携帯通信装置４１の通信処理部４３が、ＩＣモジュールコマンドＦｃ２をＩＣモジュール４２に出力（発行）する。
ＩＣモジュール４２は、入力したＩＣモジュールコマンドＦｃ２に応じた処理を行い、その結果を格納したレスポンスＦｒ２を通信処理部４３に出力する。
次に、携帯通信装置４１の通信処理部４３が、ＩＣモジュールコマンドＦｃ３をＩＣモジュール４２に出力（発行）する。
ＩＣモジュール４２は、入力したＩＣモジュールコマンドＦｃ３に応じた処理を行い、その結果を格納したレスポンスＦｒ３を通信処理部４３に出力する。
【０１０７】
ステップＳＴ２３５：
通信処理部４３は、ステップＳＴ２３４で入力したレスポンスＦｒ１，Ｆｒ２，Ｆｒ３を、図２６に示すＩＣモジュールレスポンス部に格納したレスポンスモジュール（第１０〜第１２の発明の第１のレスポンスモジュール）を、サーバ装置１９を介してＳＡＭモジュール８に送信する。
ステップＳＴ２３６：
ＳＡＭモジュール８は、ステップＳＴ２３５で受信したレスポンスＦｒ１，Ｆｒ２，Ｆｒ３を実データとして格納すると共に、ステップＳＴ２３１で指定された汎用マクロコマンド用コマンドコードＭｃ１，Ｍｃ２，Ｍｃ３にそれぞれ対応したレスポンスコードＭｒ１，Ｍｒ２，Ｍｒ３を格納した図２５に示すマルチレスポンスパケットデータＭＲＰＫ形式のレスポンスパケットデータ（第１０〜第１２の発明のレスポンスモジュール）を生成し、これをサーバ装置１９に出力する。
【０１０８】
上述したように、第３の通信方法は、具体的には、ＩＣモジュール４２への複数回のデータ書き込み、あるいは読み出しを行うコマンドに適用すると有効である。
【０１０９】
〔第４の通信方法〕
当該第４の通信方法は、第１３〜第１５の発明に対応した実施形態である。
図３０は、通信システム１によるマルチコマンド／レスポンス方式の第４の通信方法を説明するための図である。
当該第４の通信方法は、サーバ装置１９をを視点としたＳＡＭユニット９の動作は、前述した第１の通信方法の場合と同じである。
但し、第４の通信方法は、ＳＡＭモジュール８の内部に存在するＩＣモジュール固有の情報を、次のコマンドのパラメータとして使用する点が第１の通信方法とは異なる。従って、ＳＡＭモジュール８側で、最初に実行するコマンドのレスポンスの内容から、次に実行するコマンドのパラメータの値を所定のアルゴリズムに基づき計算する。
【０１１０】
ステップＳＴ２４１：
図１６に示すサーバ装置１９のＣＰＵ２０４が、図２４に示すマルチコマンドパケットデータＭＣＰＫ形式のコマンドパケットデータ（第１２〜第１５の発明のコマンドモジュール）を生成し、これをＳＡＭインタフェース部２０１を介してＳＡＭモジュール８に出力する。
ＳＡＭモジュール８は、図１２に示すＡＳＰＳ通信インタフェース部６０を介して、サーバ装置１９が送信したコマンドパケットデータを入力する。
当該コマンドパケットデータは、図２４に示す単数の汎用マクロコマンド用コマンドコードＭｃ（第１２〜第１５の発明の第１のコマンド）を格納している。
【０１１１】
ステップＳＴ２４２：
ＳＡＭモジュール８のＣＰＵ６６が、ステップＳＴ２４１で受信したコマンドパケットデータに格納された汎用マクロコマンド用コマンドコードＭｃの解釈を行い、その結果に基づいて単数のＩＣモジュールコマンドＦｃ１（第１２〜第１５の発明の第２のコマンド）をＩＣモジュールコマンド部に格納した図２６に示すＭＩＣＰＫ形式のコマンドパケットデータ（第１２〜第１５の発明の第２のコマンドモジュール）を、サーバ装置１９を介して携帯通信装置４１の通信処理部４３に送信する。
ステップＳＴ２４３：
携帯通信装置４１の通信処理部４３が、ステップＳＴ２４２に格納された単数のＩＣモジュールコマンドＦｃ１をＩＣモジュール４２に出力（発行）する。
ＩＣモジュール４２は、入力したＩＣモジュールコマンドＦｃ１に応じた処理を行い、その結果を格納したレスポンスＦｒ１を通信処理部４３に出力する。
ステップＳＴ２４４：
通信処理部４３は、ステップＳＴ２４３で入力したレスポンスＦｒ１を、図２５に示すＩＣモジュールレスポンス部に格納したレスポンスモジュール（第１２〜第１５の発明のレスポンスモジュール）を、サーバ装置１９を介してＳＡＭモジュール８に送信する。
ステップＳＴ２４５：
ＳＡＭモジュール８は、ステップＳＴ２４４で受信したレスポンスＦｒ１に格納されたデータをパラメータとして用いて、単数のＩＣモジュールコマンドＦｃ２（第１２〜第１５の発明の第３のコマンド）をＩＣモジュールコマンド部に格納した図２６に示すＭＩＣＰＫ形式のコマンドパケットデータ（第１２〜第１５の発明の第３のコマンドモジュール）を、サーバ装置１９を介して携帯通信装置４１の通信処理部４３に送信する。
以後、ステップＳＴ２４３と同様の処理が、ＩＣモジュールコマンドＦｃ２について行われる。
【０１１２】
上述した第４の通信方法は、具体的には、ＩＣモジュールの記憶領域分割コマンドを実行後に、記憶領域分割後の新記憶領域への認証コマンドを行う場合に有効である。ＩＣモジュールの記憶領域分割後のシステムコードは「０ｘＦＦＦＦ」になっているため、ポーリングコマンドにより分割後の新領域のＩＤｍを明示的に取得することができない。そのため、分割後の新領域に対応したＩＤｍをあるアルゴリズムを用いて計算し、認証コマンドの引数に渡す作業が必要となる。これは、ポーリングコマンドでシステムコードとして「０ｘＦＦＦＦ」を指定するとワイルドＩＣモジュール（カード）として解釈されるため、同コマンドでの分割後のシステム領域「０ｘＦＦＦＦ」に対応するＩＤｍの取得はできないためである。
【０１１３】
上述した第１〜第４の通信方法のマクロコマンド実行パターンの名称と、それが実装あるいは利用される対象となるコマンドとの対応関係は、図３１に示される。
なお、ＳＡＭユニット９は、サーバ装置１９からのコマンドパケットデータに基づいて、上述した第１〜第４の通信方法のうち一つを選択して実行する。
【０１１４】
以下、図１に示す通信システム１の全体動作について説明する。
図３２および図３３は、図１に示す通信システム１の全体動作を説明するための図である。
【０１１５】
ステップＳＴ２１：
サービス事業者１５＿１〜１５＿３あるいはこれらサービス事業者の依頼を受けた者が、当該サービス事業者がＩＣカード３を用いて行う取り引きについての処理を記述したスクリプトプログラム２１＿１，２１＿２，２１＿３を、例えば、図１に示すパーソナルコンピュータ１６＿１，１６＿２，１６＿３上で作成する。
また、ＳＡＭモジュール８の管理者が、サービス事業者１５＿１〜１５＿３のそれぞれに対応するＡＰ管理用テーブルデータ３００＿１〜３００＿３を作成する。
【０１１６】
ステップＳＴ２２：
ステップＳＴ２１で作成されたＡＰ管理用テーブルデータ３００＿１〜３００＿３が外部メモリ７に記憶される。
また、ステップＳＴ２１で作成されたスクリプトプログラム２１＿１，２１＿２，２１＿３が、パーソナルコンピュータ１６＿１，１６＿２，１６＿３から、インターネット１０、ＡＳＰサーバ装置１９およびＳＡＭモジュール８を介して、外部メモリ７にダウンロードされる。当該ダウンロードの処理は、図８に示すように、ＳＡＭモジュール８内のスクリプトダウンロードタスク６９によって管理される。
【０１１７】
ステップＳＴ２３：
図８に示すＳＡＭモジュール８内のスクリプト解釈タスク７０によって、各サービス事業者毎に、ＡＰ管理用テーブルデータ３００＿１〜３００＿３およびスクリプトプログラムを用いて、ＩＣカードエンティティテンプレートデータ、入力用データブロック、出力用データブロック、ログ用データブロックおよび演算定義用データブロックが生成される。
これら生成されたデータは、図１２に示すＳＡＭモジュール８のメモリ６５に格納される。
【０１１８】
ステップＳＴ２４：
ユーザにＩＣモジュール４２が発行される。
図５に示す携帯通信装置４１のＩＣモジュール４２には、ユーザが契約を行ったサービス事業者との取り引きに用いられる鍵データが記憶されている。
なお、ユーザとサービス事業者との間の契約は、ＩＣモジュール４２の発行後に、インターネット１０などを介して行ってもよい。
【０１１９】
ステップＳＴ２５：
例えば、ユーザが携帯通信装置４１を用いてインターネット１０を介してサーバ装置２にアクセスを行い、商品を購入しようとした場合に、サーバ装置２がインターネット１０を介してＡＳＰサーバ装置１９に処理要求を出す。
ＡＳＰサーバ装置１９は、サーバ装置２から処理要求を受けると、インターネット１０を介して携帯通信装置４１にアクセスを行う。そして、携帯通信装置４１の通信処理部４３が送信したＩＣモジュール４２についての処理要求が、インターネット１０およびＡＳＰサーバ装置１９を介してＳＡＭモジュール８に送信される。
【０１２０】
ステップＳＴ２６：
ＡＳＰサーバ装置１９からＳＡＭモジュール８にエンティティ作成要求が出される。当該エンティティ作成要求には、ＩＣモジュール４２の発行元を示すデータが格納されている。
【０１２１】
ステップＳＴ２７：
ＳＡＭモジュール８は、エンティティ作成要求を受けると、ＩＣモジュール４２との間でポーリングを行う。
【０１２２】
ステップＳＴ２８：
ＳＡＭモジュール８のエンティティ生成タスク７１は、ポーリング終了後に、ＳＡＭモジュール８内に存在するＩＣカードエンティティデータ７３＿ｘの数が、スクリプトプログラムのＳＣコマンドによって規定された最大数以内であるか否かを判断し、最大数以内であればステップＳＴ２９の処理に進み、そうでない場合には処理を終了する。
【０１２３】
ステップＳＴ２９：
エンティティ生成タスク７１が、例えば、エンティティ作成要求に格納されたＩＣカード３の発行元を示すデータに基づいて、何れのサービス事業者のＩＣカードエンティティテンプレートデータを用いるかを特定し、当該特定したＩＣカードエンティティプレートデータ用いて、ＩＣカードエンティティデータ７３＿ｘを生成する。
【０１２４】
ステップＳＴ３０：
ＳＡＭモジュール８からＡＳＰサーバ装置１９に、ステップＳＴ２９で生成したＩＣカードエンティティデータ７３＿ｘのエンティティＩＤが出力される。
【０１２５】
ステップＳＴ３１：
ＳＡＭモジュール８のＩＣカード手続管理用タスク７２によって、ＩＣモジュール４２で利用可能なサービスが調べられる。
【０１２６】
ステップＳＴ３２：
ＳＡＭモジュール８のＩＣカード手続管理用タスク７２がＩＣモジュール４２の正当性を認証する。
【０１２７】
ステップＳＴ３３：
ＩＣカード３がＳＡＭモジュール８の正当性を認証する。
ステップＳＴ３２，ＳＴ３３によって、ＩＣカード３とＳＡＭモジュール８との間の相互認証が行われる。
このとき、前述したように、ＳＡＭモジュール８で実行されているアプリケーションエレメントデータＡＰＥに応じて、図１０に示すＡＰ管理用テーブルデータ３００＿１〜３００＿３が参照されて、鍵データＫ＿ＣＡＲＤが取得され、当該鍵データＫ＿ＣＡＲＤを用いてＳＡＭモジュール８とＩＣモジュール４２のＣＰＵ５１との間で相互認証が行われる。
【０１２８】
ステップＳＴ３４：
ＳＡＭモジュール８のＩＣカード手続管理用タスク７２が、ＩＣモジュール４２との間で、手続きに必要なデータの読み書きを行う。
また、ＩＣカード手続管理用タスク７２は、ＩＣカードエンティティデータ７３＿ｘの処理前データ８６に基づいて特定した演算式を用いて、ＩＣモジュール４２から読み出したデータを用いて所定の演算処理を行う。
【０１２９】
ステップＳＴ３５：
ＳＡＭモジュール８のＩＣカード手続管理用タスク７２が、ステップＳＴ３４の処理結果をＡＳＰサーバ装置１９に出力する。
【０１３０】
ステップＳＴ３６：
例えば、ＩＣカード手続管理用タスク７２が、ＩＣカードエンティティデータ７３＿ｘを消去する。
【０１３１】
以上説明したように、通信システム１およびＳＡＭユニット９によれば、ＳＡＭモジュール８が通信に用いるパケットデータが、ＩＣモジュール操作に直接関係しない処理とＩＣモジュール操作を直接行う処理とで異なるため、エンドユーザ（サービス事業者）がＩＣモジュールを操作する言語（マクロコマンド）を記述し、アプリケーションプログラムＡＰとしてＳＡＭモジュール８に設定し、ＩＣモジュール処理手順およびパケット構造を自由にカスタマイズして実現することが容易になる。
また、通信システム１およびＳＡＭユニット９によれば、ＩＣモジュール操作が変動コネクションを介して行うことにより、同一の上位計算機であるサーバ装置１９の配下に複数台のＳＡＭモジュール８が存在し、しかもＩＣモジュール処理の設定が同一である場合に、市販のロードバランサーを使用して、複数のＳＡＭユニット９間でＩＣモジュール処理の負荷分散を容易に実現することができる。
【０１３２】
また、通信システム１およびＳＡＭユニット９によれば、マルチコマンド方式のＩＣモジュール処理プロトコルにより、ＩＣモジュールを搭載した携帯通信装置４１とＳＡＭモジュール８間の通信回数を削減し、突発的な事由による通信路が遮断された影響を低減することができる。。ＩＣモジュール機能が携帯電話等に搭載され、無線でのパケット通信によりＳＡＭモジュール８と通信する場合に特に効果的である。
また、通信システム１およびＳＡＭユニット９によれば、マルチコマンドの実行パターンがＩＣモジュール処理シナリオ別に複数用意されているため、ＩＣモジュールの使用場面に合致した使用法を提供できる。
【０１３３】
また、通信システム１およびＳＡＭユニット９によれば、アプリケーションプログラムＡＰ単位でＩＣモジュール処理用コネクションの上限を決定できるため、ＳＡＭモジュール８が行うサービス事業者への課金を、最大ＩＣモジュール処理数により規定することが可能となる。
また、通信システム１およびＳＡＭユニット９によれば、ＳＡＭモジュール８が用いる通信パケット内のＰＣＦにより、相互認証の有無、変動・固定コネクションの区別、マルチコマンドの有無を指定するため、通信相手側（サーバ装置１９）での処理内容の特定が容易にできる。
また、通信システム１およびＳＡＭユニット９によれば、ＳＡＭモジュール８の通信相手はサーバ装置１９の他に、他のＳＡＭモジュール８でもよい。
【０１３４】
また、通信システム１およびＳＡＭユニット９によれば、アプリケーションプログラムＡＰを複数のアプリケーションエレメントデータＡＰＥを用いて構成し、ＡＰ管理用テーブルデータおよびＡＰＰテーブルデータを用いて、各アプリケーションエレメントデータＡＰＥの処理内容を規定することで、ＩＣカード３を用いた多様なサービスを提供できる。
また、通信システム１によれば、ＡＰ管理用テーブルデータおよびＡＰＰテーブルデータを用いて、同一ＳＡＭ内でのアプリケーションエレメントデータＡＰＥの利用、並びに異なるＳＡＭ間でのアプリケーションエレメントデータＡＰＥの利用を高いセキュリティを保ちながら柔軟に実現できる。
また、通信システム１によれば、異なるＳＡＭ間でアプリケーションエレメントデータＡＰＥを利用する場合に、ＳＡＭ間で相互認証を行うため、アプリケーションプログラムのセキュリティを高めることができる。
【０１３５】
【発明の効果】
以上説明したように、本発明によれば、ＩＣ（集積回路）を用いたサービスを提供する際に、アプリケーションプログラムを実行するデータ処理装置（ＳＡＭユニット）と、サーバ装置と、集積回路との間で上記サービスに係わる要求およびデータを効率的に送受信できる通信方法、通信システム、データ処理装置、サーバ装置およびプログラムを提供することができる。
【図面の簡単な説明】
【図１】図１は、本実施形態の通信システムの全体構成図である。
【図２】図２は、図１に示すＩＣカードの機能ブロック図である。
【図３】図３は、図２に示すメモリを説明するための図である。
【図４】図４は、図１に示すＳＡＭモジュールのソフトウェア構造を説明するための図である。
【図５】図５は、図１に示す外部メモリの記憶領域を説明するための図である。
【図６】図６は、図５に示すアプリケーションプログラムＡＰを説明するための図である。
【図７】図７は、図６に示すアプリケーションエレメントデータＡＰＥの種別を説明するための図である。
【図８】図８は、示すＩＣカード操作用マクロコマンドスクリプトプログラムで使用されるコマンドを説明するための図である。
【図９】図９は、図５に示すＡＰ管理用記憶領域を説明するための図である。
【図１０】図１０は、図９に示すＡＰ管理用テーブルデータを説明するための図である。
【図１１】図１１は、図９に示すＡＰＰテーブルデータを説明するための図である。
【図１２】図１２は、図１に示すＳＡＭモジュールの機能ブロック図である。
【図１３】図１３は、図１２に示すメモリに記憶されるタスク、プログラムおよびデータを説明するための図である。
【図１４】図１４は、ＩＣカードエンティティデータ７３＿ｘのフォーマットを説明するための図である。
【図１５】図１５は、ＩＣカード手続管理用タスクが行う処理のフローチャートである。
【図１６】図１６は、サーバ装置の機能ブロック図である。
【図１７】図１７は、ロードバランサを介したＳＡＭユニット９とサーバ装置１９との間の通信を説明するための図である。
【図１８】図１８は、ＩＣモジュールの処理を規定したパケットデータ（コマンドパケットデータおよびレスポンスパケットデータ）を説明するための図である
【図１９】図１９は、ＩＣモジュールの処理以外を規定したパケットデータ（コマンドパケットデータおよびレスポンスパケットデータ）を説明するための図である
【図２０】図２０は、ＳＡＭモジュールとサーバ装置との間の固定コネクションを説明するための図である。
【図２１】図２１は、ＳＡＭモジュールとサーバ装置との間の変動コネクションを説明するための図である。
【図２２】図２２は、図１８および図１９に示すフラグＰＣＦを説明するための図である。
【図２３】図２３は、図１８に示すパケットデータＩＣ＿ＰＫを用いて図１に示す通信システムがＩＣモジュールに係わる通信を行う手順を説明するための図である。
【図２４】図２４は、図１に示すサーバ装置とＳＡＭモジュールとの間で転送されるマルチコマンドパケットデータＭＣＰＫのフォーマットを説明するための図である。
【図２５】図２５は、図１に示すサーバ装置とＳＡＭモジュールとの間で転送されるマルチレスポンスパケットデータＭＲＰＫのフォーマットを説明するための図である。
【図２６】図２６は、図１に示すＳＡＭモジュールとＩＣモジュールとの間で転送されるマルパケットデータＭＩＣＰＫのフォーマットを説明するための図である。
【図２７】図２７は、図１に示す通信システムによるマルチコマンド／レスポンス方式の第１の通信方法を説明するための図である。
【図２８】図２８は、図１に示す通信システムによるマルチコマンド／レスポンス方式の第２の通信方法を説明するための図である。
【図２９】図２９は、図１に示す通信システムによるマルチコマンド／レスポンス方式の第３の通信方法を説明するための図である。
【図３０】図３０は、図１に示す通信システムによるマルチコマンド／レスポンス方式の第２の通信方法を説明するための図である。
【図３１】図３１は、第１〜第４の通信方法のマクロコマンド実行パターンの名称と、それが実装あるいは利用される対象となるコマンドとの対応関係を示す図である。
【図３２】図３２は、図１に示す通信システムの全体動作を説明するための図である。
【図３３】図３３は、図１に示す通信システムの全体動作を説明するための図である。
【符号の説明】
１…通信システム、２…サーバ装置、３…ＩＣカード、３ａ…ＩＣモジュール、４…カードリーダ・ライタ、５…パーソナルコンピュータ、７，７ａ…外部メモリ、８，８ａ…ＳＡＭモジュール、９…ＳＡＭユニット、１５＿１〜１５＿３…サービス事業者、１９…ＡＳＰサーバ装置、４１…携帯通信装置、４２…ＩＣモジュール、４３…通信処理部
【図１】
0003783608.tif 000002
【図２】
0003783608.tif 000003
【図３】
0003783608.tif 000004
【図４】
0003783608.tif 000005
【図５】
0003783608.tif 000006
【図６】
0003783608.tif 000007
【図７】
0003783608.tif 000008
【図８】
0003783608.tif 000009
【図９】
0003783608.tif 000010
【図１０】
0003783608.tif 000011
【図１１】
0003783608.tif 000012
【図１２】
0003783608.tif 000013
【図１３】
0003783608.tif 000014
【図１４】
0003783608.tif 000015
【図１５】
0003783608.tif 000016
【図１６】
0003783608.tif 000017
【図１７】
0003783608.tif 000018
【図１８】
0003783608.tif 000019
【図１９】
0003783608.tif 000020
【図２０】
0003783608.tif 000021
【図２１】
0003783608.tif 000022
【図２２】
0003783608.tif 000023
【図２３】
0003783608.tif 000024
【図２４】
0003783608.tif 000025
【図２５】
0003783608.tif 000026
【図２６】
0003783608.tif 000027
【図２７】
0003783608.tif 000028
【図２８】
0003783608.tif 000029
【図２９】
0003783608.tif 000030
【図３０】
0003783608.tif 000031
【図３１】
0003783608.tif 000032
【図３２】
0003783608.tif 000033
【図３３】
0003783608.tif 000034