(57)【要約】【課題】クライアントがコマンドの受信に失敗しても、効率的にＩＣカード処理を実行する。【解決手段】クライアント端末２は、所定時間経過してもＳＶ電文を受信していない場合には、ＣＬ電文を再送する。コマンド発行サーバ１は、ＳＶ電文を送信する度に、今回送信するＳＶ電文と、前回送信したＳＶ電文に含まれるセッション番号とを紐付けして記録する。コマンド発行サーバ１は、受信したＣＬ電文に含まれるセッション番号が、記録されたＳＶ電文に紐付けされたセッション番号と異なる場合には、生成されたコマンドを含み、セッション番号をインクリメントしてＳＶ電文を送信する。コマンド発行サーバ１は、ＣＬ電文を受信する度に、受信したＣＬ電文に含まれるセッション番号が、記録されたＳＶ電文に紐付けされたセッション番号と同一である場合には、記録されたＳＶ電文を送信する。【選択図】図１
2012221327.tif 000002
【特許請求の範囲】
【請求項１】
クライアントから送信される第１の電文と、コマンド発行サーバから発行されるコマンドを含む第２の電文とを、セッション番号をインクリメントしながら交互に複数回送受信することにより、前記クライアントに接続されたＩＣカードに対する処理を行うＩＣカード処理システムであって、
前記クライアントは、
前記第１の電文を送信した後、所定時間経過しても前記第２の電文を受信していない場合には、セッション番号が前回と同一である前記第１の電文を再送し、
前記コマンド発行サーバは、
前記第２の電文を送信する度に、今回送信する前記第２の電文と、前回送信した前記第２の電文に含まれるセッション番号とを紐付けして記録し、
前記第１の電文を受信する度に、受信した前記第１の電文に含まれるセッション番号が、記録された前記第２の電文に紐付けされたセッション番号と異なる場合には、コマンドを生成し、生成されたコマンドを含みセッション番号がインクリメントされた前記第２の電文を送信し、
受信した前記第１の電文に含まれるセッション番号が、記録された前記第２の電文に紐付けされたセッション番号と同一である場合には、記録された前記第２の電文を送信する、
ことを特徴とするＩＣカード処理システム。
【請求項２】
前記セッション番号は、
前記クライアントから前記第１の電文が送信される際にインクリメントされる第１のセッション番号と、
前記コマンド発行サーバから前記第２の電文が送信される際にインクリメントされる第２のセッション番号とのペアである、
ことを特徴とする請求項１に記載のＩＣカード処理システム。
【請求項３】
前記コマンド発行サーバは、
前記第１の電文を受信する受信部と、
入力された前記第１の電文に応じて前記第２の電文を生成するアプリケーション処理部と、
アプリケーション処理部によって今回生成された前記第２の電文と、前回生成された前記第２の電文のセッション番号とを紐付けして記録する記録部と、
前記受信部により受信された前記第１の電文に含まれるセッション番号が、前記記録部に記録された前記第２の電文に紐付けされたセッション番号と同一であるか否かを判定する判定部と、
前記受信部により受信された前記第１の電文に含まれるセッション番号が、前記記録部に記録された前記第２の電文に紐付けされたセッション番号と同一であると判定された場合には、前記記録部に記録された前記第２の電文を送信し、異なると判定された場合には、前記アプリケーション処理部に前記受信部により受信された前記第１の電文を入力するアプリケーションセッション管理部と、
を備える、
ことを特徴とする請求項１又は２に記載のＩＣカード処理システム。
【請求項４】
前記クライアントは、
前記第１の電文を送信するとともに、前記第２の電文を受信する送受信部と、
前記送受信部で受信された前記第２の電文に含まれる前記コマンドを前記ＩＣカードに対して実行するリーダ／ライタと、
を備え、
前記送受信部は、
前記リーダ／ライタの処理が完了すると、前記第１の電文を送信する、
ことを特徴とする請求項１乃至３のいずれか一項に記載のＩＣカード処理システム。
【請求項５】
クライアントから送信される第１の電文と、コマンド発行サーバから発行されるコマンドを含む第２の電文とを、セッション番号をインクリメントしながら交互に複数回送受信することにより、前記クライアントに接続されたＩＣカードに対する処理を行うＩＣカード処理方法であって、
前記クライアントにおいて、
前記第１の電文を送信した後、所定時間経過しても前記第２の電文を受信していない場合には、セッション番号が前回と同一である前記第１の電文を再送する第１の工程と、
前記コマンド発行サーバにおいて、
前記第２の電文を送信する度に、今回送信する前記第２の電文と、前回送信した前記第２の電文に含まれるセッション番号とを紐付けして記録する第２の工程と、
前記第１の電文を受信する度に、受信した前記第１の電文に含まれるセッション番号が、記録された前記第２の電文に紐付けされたセッション番号と異なる場合には、コマンドを生成し、生成されたコマンドを含みセッション番号がインクリメントされた前記第２の電文を送信する第３の工程と、
受信した前記第１の電文に含まれるセッション番号が、記録された前記第２の電文に紐付けされたセッション番号と同一である場合には、記録された前記第２の電文を送信する第４の工程と、
とを含むことを特徴とするＩＣカード処理方法。
【請求項６】
クライアントから送信される第１の電文と、コマンド発行サーバから発行されるコマンドを含む第２の電文とを、セッション番号をインクリメントしながら交互に複数回送受信することにより、前記クライアントに接続されたＩＣカードに対する処理を行うコンピュータに実行させるプログラムであって、
前記クライアントとして動作するコンピュータに、
前記第１の電文を送信した後、所定時間経過しても前記第２の電文を受信していない場合には、セッション番号が前回と同一である前記第１の電文を再送する第１の手順を実行させ、
前記コマンド発行サーバとして動作するコンピュータに、
前記第２の電文を送信する度に、今回送信する前記第２の電文と、前回送信した前記第２の電文に含まれるセッション番号とを紐付けして記録する第２の手順と、
前記第１の電文を受信する度に、受信した前記第１の電文に含まれるセッション番号が、記録された前記第２の電文に紐付けされたセッション番号と異なる場合には、コマンドを生成し、生成されたコマンドを含みセッション番号がインクリメントされた前記第２の電文を送信する第３の手順と、
受信した前記第１の電文に含まれるセッション番号が、記録された前記第２の電文に紐付けされたセッション番号と同一である場合には、記録された前記第２の電文を送信する第４の手順と、
とを実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク上でＩＣカードを処理するサーバ制御型のＩＣカード処理システム、ＩＣカード処理方法及びコンピュータに実行させるプログラムに関する。
【背景技術】
【０００２】
従来より、ＩＣカードのリーダ／ライタをクライアント側とし、ＩＣカードに対する処理（ＩＣカード処理）を実行するための複数のコマンドがサーバ側で生成するクライアントサーバ型のＩＣカード処理システムが開示されている（例えば、特許文献１参照）。
【０００３】
サーバで生成されたコマンドはクライアントに送信される。クライアントは、コマンドを受信して、Ｒ／Ｗを介してそのコマンドを実行する。このようなＩＣカード処理システムでは、クライアント側の構成を簡単にするため、サーバ側にセキュリティモジュール等が設けられている。
【０００４】
このＩＣカード処理システムでは、サーバは、クライアントからのリクエストを契機として、リクエストに対するレスポンスである複数のコマンドをクライアントに送信する。このようにすることで、サーバは、多数のクライアントからのリクエストに応じてＩＣカード処理を実行することができる。
【０００５】
ＩＣカード処理システムでは、通常のＷＥＢシステムと同様に、クライアントのリクエスト等の電文についてはセッション番号等で管理される。サーバは、セッション番号に基づいて、その電文が同一のリクエストにかかるものであるか否かを判定し、複数のコマンドの送受信が必要な処理を継続する。
【０００６】
図５には、従来のＩＣカード処理システムの動作が示されている。図５に示すように、まず、クライアントからのリクエストを含む電文がサーバに送信される。この電文のセッション番号は０である。ここで、この電文をＣＬ電文（０）とする。
【０００７】
ＣＬ電文（０）を受信したサーバでは、コマンドを生成するための業務処理インスタンスであるアプリケーション（ＡＰ）インスタンスが生成され、そのＡＰインスタンスが実行されて、コマンド（１）が生成される。このとき、ＡＰインスタンスの状態は、状態（０）から状態（１）へ移行する。
【０００８】
生成されたコマンド（１）は、ＳＶ電文（１）としてサーバからクライアントへ送信される。ＳＶ電文（１）を正常に受信したクライアントは、そのレスポンス（１）を含むＣＬ電文（１）をサーバに返信する。サーバでは、ＡＰインスタンスが実行されて、２番目のコマンド（２）が生成され、状態（１）から状態（２）へ移行する。
【０００９】
生成されたコマンド（２）は、ＳＶ電文（２）としてサーバからクライアントへ送信される。ＳＶ電文（２）を正常に受信したクライアントは、そのレスポンス（２）を含むＣＬ電文（２）をサーバに返信する。サーバでは、ＡＰインスタンスが、処理を実行して、３番目のコマンド（３）が生成され、状態（２）から状態（３）へ移行する。生成されたコマンド（３）を含むＳＶ電文（３）が、サーバからクライアントへ送信される。
【００１０】
ここで、ネットワーク上の何らかの障害により、クライアントから送信されたリクエストに対するレスポンスとしてのコマンドをクライアントが受信できなかった場合について考える。クライアントがコマンドを受信できない場合としては以下の２つの場合が考えられる。
（１）クライアントからのリクエストがサーバで受信できなかった場合
（２）サーバからのコマンドがクライアントで受信できなかった場合
【００１１】
レスポンスを受信することなく所定の時間が経過すれば、クライアントは、リクエストを再度送信する。この場合、上記（１）のようにリクエストが消失したのであれば、サーバは、そのまま処理を継続し、コマンドを送信すればよい。しかし、上記（２）のように、サーバからのコマンドが消失したときには、図６に示すように、すでにサーバ内で複数のビジネスロジックが実行され、サーバのメモリ上の値が変更されている場合があるため、再送された電文（図６では、ＣＬ電文（１））を受信してもサーバ側ではその電文に応じた処理を行うのが困難になる。
【００１２】
１ステップ前のＡＰインスタンスの状態（メモリの内容）を保持しておけば、ＡＰインスタンスの状態を元の状態に復元し、コマンドを再生成するサーバ側での再処理が可能となる。例えば、クライアントから送信されたＣＬ電文のセッション番号と、ＡＰインスタンスの現在の状態が一致しない場合には、ＡＰインスタンスの状態を１ステップ前の状態に戻し、ＡＰインスタンスが再処理を実行する。このようにすれば、コマンド及びレスポンスの送受信を続行することができる。図７には、コマンド（２）の受信に失敗し、クライアントがＣＬ電文（１）を再送したときに、ＡＰインスタンスの状態が、状態２から状態１に戻され、再実行される様子が示されている。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】特開２００７−６５９５７号公報
【発明の概要】
【発明が解決しようとする課題】
【００１４】
しかしながら、ＡＰインスタンスの過去の状態を保持するのには、多大なメモリ容量が必要となる。また、ＡＰインスタンスが同じ処理（コマンドを再生成する処理）を重複して実行する必要があり、効率的であるとは言い難い面がある。
【００１５】
ＡＰインスタンスを再生成して、１から処理をやり直す、すなわちすべての処理を再実行することも考えられるが、クライアントが多数である場合では、再実行の処理だけでサーバのリソースを消費してしまうおそれがある。
【００１６】
本発明は、上記実情に鑑みてなされたものであり、クライアントがコマンドの受信に失敗しても、効率的にＩＣカード処理を実行することができるＩＣカード処理システム、ＩＣカード処理方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１７】
上記目的を達成するため、本発明の第１の観点に係るＩＣカード処理システムは、
クライアントから送信される第１の電文と、コマンド発行サーバから発行されるコマンドを含む第２の電文とを、セッション番号をインクリメントしながら交互に複数回送受信することにより、前記クライアントに接続されたＩＣカードに対する処理を行うＩＣカード処理システムであって、
前記クライアントは、
前記第１の電文を送信した後、所定時間経過しても前記第２の電文を受信していない場合には、セッション番号が前回と同一である前記第１の電文を再送し、
前記コマンド発行サーバは、
前記第２の電文を送信する度に、今回送信する前記第２の電文と、前回送信した前記第２の電文に含まれるセッション番号とを紐付けして記録し、
前記第１の電文を受信する度に、受信した前記第１の電文に含まれるセッション番号が、記録された前記第２の電文に紐付けされたセッション番号と異なる場合には、コマンドを生成し、生成されたコマンドを含みセッション番号がインクリメントされた前記第２の電文を送信し、
受信した前記第１の電文に含まれるセッション番号が、記録された前記第２の電文に紐付けされたセッション番号と同一である場合には、記録された前記第２の電文を送信する、
ことを特徴とする。
【００１８】
この場合、前記セッション番号は、
前記クライアントから前記第１の電文が送信される際にインクリメントされる第１のセッション番号と、
前記コマンド発行サーバから前記第２の電文が送信される際にインクリメントされる第２のセッション番号とのペアである、
こととしてもよい。
【００１９】
また、前記コマンド発行サーバは、
前記第１の電文を受信する受信部と、
入力された前記第１の電文に応じて前記第２の電文を生成するアプリケーション処理部と、
アプリケーション処理部によって今回生成された前記第２の電文と、前回生成された前記第２の電文のセッション番号とを紐付けして記録する記録部と、
前記受信部により受信された前記第１の電文に含まれるセッション番号が、前記記録部に記録された前記第２の電文に紐付けされたセッション番号と同一であるか否かを判定する判定部と、
前記受信部により受信された前記第１の電文に含まれるセッション番号が、前記記録部に記録された前記第２の電文に紐付けされたセッション番号と同一であると判定された場合には、前記記録部に記録された前記第２の電文を送信し、異なると判定された場合には、前記アプリケーション処理部に前記受信部により受信された前記第１の電文を入力するアプリケーションセッション管理部と、
を備える、
こととしてもよい。
【００２０】
また、前記クライアントは、
前記第１の電文を送信するとともに、前記第２の電文を受信する送受信部と、
前記送受信部で受信された前記第２の電文に含まれる前記コマンドを前記ＩＣカードに対して実行するリーダ／ライタと、
を備え、
前記送受信部は、
前記リーダ／ライタの処理が完了すると、前記第１の電文を送信する、
こととしてもよい。
【００２１】
本発明の第２の観点に係るＩＣカード処理方法は、
クライアントから送信される第１の電文と、コマンド発行サーバから発行されるコマンドを含む第２の電文とを、セッション番号をインクリメントしながら交互に複数回送受信することにより、前記クライアントに接続されたＩＣカードに対する処理を行うＩＣカード処理方法であって、
前記クライアントにおいて、
前記第１の電文を送信した後、所定時間経過しても前記第２の電文を受信していない場合には、セッション番号が前回と同一である前記第１の電文を再送する第１の工程と、
前記コマンド発行サーバにおいて、
前記第２の電文を送信する度に、今回送信する前記第２の電文と、前回送信した前記第２の電文に含まれるセッション番号とを紐付けして記録する第２の工程と、
前記第１の電文を受信する度に、受信した前記第１の電文に含まれるセッション番号が、記録された前記第２の電文に紐付けされたセッション番号と異なる場合には、コマンドを生成し、生成されたコマンドを含みセッション番号がインクリメントされた前記第２の電文を送信する第３の工程と、
受信した前記第１の電文に含まれるセッション番号が、記録された前記第２の電文に紐付けされたセッション番号と同一である場合には、記録された前記第２の電文を送信する第４の工程と、
とを含むことを特徴とする。
【００２２】
本発明の第３の観点に係るプログラムは、
クライアントから送信される第１の電文と、コマンド発行サーバから発行されるコマンドを含む第２の電文とを、セッション番号をインクリメントしながら交互に複数回送受信することにより、前記クライアントに接続されたＩＣカードに対する処理を行うコンピュータに実行させるプログラムであって、
前記クライアントとして動作するコンピュータに、
前記第１の電文を送信した後、所定時間経過しても前記第２の電文を受信していない場合には、セッション番号が前回と同一である前記第１の電文を再送する第１の手順を実行させ、
前記コマンド発行サーバとして動作するコンピュータに、
前記第２の電文を送信する度に、今回送信する前記第２の電文と、前回送信した前記第２の電文に含まれるセッション番号とを紐付けして記録する第２の手順と、
前記第１の電文を受信する度に、受信した前記第１の電文に含まれるセッション番号が、記録された前記第２の電文に紐付けされたセッション番号と異なる場合には、コマンドを生成し、生成されたコマンドを含みセッション番号がインクリメントされた前記第２の電文を送信する第３の手順と、
受信した前記第１の電文に含まれるセッション番号が、記録された前記第２の電文に紐付けされたセッション番号と同一である場合には、記録された前記第２の電文を送信する第４の手順と、
とを実行させることを特徴とする。
【発明の効果】
【００２３】
本発明によれば、コマンド発行サーバから送信された第２の電文がクライアントで受信できなかった場合には、記録部に記録された前回の第２の電文が再送され、その他の場合には、新たに生成された第２の電文が送信される。これにより、コマンド発行サーバでは、クライアントがコマンドの受信に失敗した場合に、その状態をそのコマンドが生成される前に戻す必要がなくなるうえ、すでに生成した第２の電文を再生成する必要がなくなる。この結果、クライアントがコマンドの受信に失敗しても、効率的にＩＣカード処理を実行することができる。
【図面の簡単な説明】
【００２４】
【図１】本発明の実施形態に係るＩＣカード処理システムの構成を示すブロック図である。
【図２】図１のコマンド発行サーバで記録されるデータを示す図である。
【図３】図１のコマンド発行サーバの処理を示すフローチャートである。
【図４】図１のＩＣカード処理システムのデータの流れを示すシーケンス図である。
【図５】従来のＩＣカード処理システムの動作を示すシーケンス図（その１）である。
【図６】サーバから送信される電文をクライアントが受信できなかった場合を示すシーケンス図である。
【図７】従来のＩＣカード処理システムの動作を示すシーケンス図（その２）である。
【発明を実施するための形態】
【００２５】
本発明の実施形態について、図面を参照して詳細に説明する。
【００２６】
図１には、本実施形態に係るＩＣカード処理システム１００の構成が示されている。図１に示すように、ＩＣカード処理システム１００は、コマンド発行サーバ１とクライアント端末２とを備える。コマンド発行サーバ１と、クライアント端末２とは、ともにコンピュータである。コマンド発行サーバ１とクライアント端末２とは、インターネット等の通信ネットワーク３を介して接続されている。
【００２７】
本実施形態に係るＩＣカード処理システム１００は、通信ネットワーク３を介してＩＣカードを処理するサーバ制御型のＩＣカード処理システムである。より具体的には、ＩＣカード処理システム１００は、クライアント端末２から送信される第１の電文としてのクライアント電文（以下、「ＣＬ電文」と）と、コマンド発行サーバ１から発行されるコマンドを含む第２の電文としてのサーバ電文（以下、「ＳＶ電文」）とを、セッション番号をインクリメントしながら交互に複数回送受信することにより、クライアントに接続されたＩＣカードに対する処理を行う。
【００２８】
コマンド発行サーバ１は、送受信管理部５と、ＩＣカード処理部６とを備える。
【００２９】
送受信管理部５は、クライアント端末２とのデータ送受信を管理する。送受信管理部５は、ＨＴＴＰ（HyperText Transfer Protocol）セッション管理部１０と、コマンド履歴記録部１１と、ＡＰセッション管理部１２とを備える。
【００３０】
ＨＴＴＰセッション管理部１０は、クライアントに付与されたセッションＩＤを用いて、ＨＴＴＰリクエスト及びＨＴＴＰレスポンスの送受信におけるセッション管理を行う。
【００３１】
コマンド履歴記録部１１は、ＳＶ電文を送信する度に、今回送信するＳＶ電文と、前回送信したＳＶ電文に含まれるセッション番号とを紐付けして記録する。本実施形態では、記録されるセッション番号は、クライアント端末２からＣＬ電文が送信される際にインクリメントされるＣＬ電文ＩＤと、コマンド発行サーバ１からＳＶ電文が送信される際にインクリメントされるＳＶ電文ＩＤとのペアである。
【００３２】
図２には、コマンド履歴記録部１１に記録されるデータの一例が示されている。図２に示すように、コマンド（ｎ）を含むＳＶ電文（ＳＶ電文ＩＤ（ｎ）←ＣＬ電文ＩＤ（ｎ−１））には、前回のＳＶ電文ＩＤ（ｎ−１）、ＣＬ電文ＩＤ（ｎ−１）のペアが紐付けされる。
【００３３】
ＡＰセッション管理部１２は、ＳＬ電文を受信する度に、受信したＣＬ電文に含まれるセッション番号が、記録されたＳＶ電文に紐付けされたセッション番号と異なる場合には、ＩＣカード処理部６で生成されたコマンドを含みセッション番号がインクリメントされたＳＶ電文を送信する。ＡＰセッション管理部１２は、受信したＣＬ電文に含まれるセッション番号が、記録されたＳＶ電文に紐付けされたセッション番号と同一である場合には、記録されたＳＶ電文を送信する。
【００３４】
アプリケーション処理部としてのＩＣカード処理部６は、ビジネスロジック実行部１３と、コマンド発行部１４と、を備える。
【００３５】
ビジネスロジック実行部１３は、ビジネスロジックを実行する。より具体的には、ビジネスロジック実行部１３は、業務処理インスタンス（ＡＰインスタンス）を生成して、生成されたＡＰインスタンスを実行する。
【００３６】
コマンド発行部１４は、ＡＰインスタンスを実行することにより生成されるコマンドを発行する。
【００３７】
クライアント端末２は、送受信部２０と、リーダ／ライタ（以下、「Ｒ／Ｗ」）２１とを備える。送受信部２０は、ＣＬ電文を送信するとともに、ＳＶ電文を受信する。Ｒ／Ｗ２１は、送受信部２０で受信されたＳＶ電文に含まれるコマンドに従ってＩＣカード４に対するリード／ライトを行う。送受信部２０は、Ｒ／Ｗ２１の処理が完了すると、ＣＬ電文を送信する。さらに、送受信部２０は、ＣＬ電文を送信した後、所定時間経過してもＳＶ電文を受信していない場合には、セッション番号が前回と同一であるＣＬ電文を再送する。
【００３８】
次に、本実施形態に係るＩＣカード処理システム１００の動作について説明する。
【００３９】
図３には、コマンド発行サーバ１の処理のフローチャートが示されている。図３に示すように、ＨＴＴＰセッション管理部１０は、ＣＬ電文を受信するまで待つ（ステップＳ１；Ｎｏ）。
【００４０】
ＣＬ電文を受信すると（ステップＳ１；Ｙｅｓ）、ＨＴＴＰセッション管理部１０は、そのＣＬ電文が、リクエストであるか否かを判定する（ステップＳ２）。
【００４１】
リクエストである場合（ステップＳ２；Ｙｅｓ）、ビジネスロジック実行部１３は、業務処理インスタンス（ＡＰインスタンス）を生成する（ステップＳ３）。続いて、ビジネスロジック実行部１３は、生成されたＡＰインスタンスを実行してコマンド（１）を生成し、コマンド発行部１４は、生成したコマンド（１）を発行する（ステップＳ４）。
【００４２】
続いて、ＡＰセッション管理部１２は、ＳＶ電文（１）を送信する（ステップＳ５）。このＳＶ電文（１）には、セッション番号として、ＳＶ電文ＩＤ（１）とＣＬ電文ＩＤ（０）とが含まれている。
【００４３】
続いて、コマンド履歴記録部１１は、ＳＶ電文（１）を、ＣＬ電文（０）と紐付けて記録する（ステップＳ６）。ステップＳ６終了後、コマンド発行サーバ１は、ステップＳ１に戻る。
【００４４】
再び、ＨＴＴＰセッション管理部１０は、ＣＬ電文を受信するまで待つ（ステップＳ１；Ｎｏ）。
【００４５】
ＣＬ電文を受信すると（ステップＳ１；Ｙｅｓ）、ＨＴＴＰセッション管理部１０は、そのＣＬ電文が、リクエストであるか否かを判定する（ステップＳ２）。
【００４６】
リクエストでなかった場合（ステップＳ２；Ｎｏ）、ＡＰセッション管理部１２は、送信したＳＶ電文ＩＤと一致するか否かを判定する（ステップＳ１０）。
【００４７】
一致する場合（ステップＳ１０；Ｙｅｓ）、ビジネスロジック実行部１３及びコマンド発行部１４は、ＡＰインスタンスを実行して発行する（ステップＳ１１）。
【００４８】
続いて、ＡＰセッション管理部１２は、ＳＶ電文（ｎ）を送信する（ステップＳ１２）。このＳＶ電文（ｎ）には、セッション番号として、ＳＶ電文ＩＤ（ｎ）とＣＬ電文ＩＤ（ｎ−１）とが含まれている。
【００４９】
続いて、コマンド履歴記録部１１は、ＳＶ電文（ｎ）に、ＳＶ電文ＩＤ（ｎ−１）と、ＣＬ電文ＩＤ（ｎ−１）と紐付けて記録する（ステップＳ１３）。例えば、ｎ＝２の場合には、ＳＶ電文（２）が、ＳＶ電文ＩＤ（１）とＣＬ電文ＩＤ（１）とに紐付けされて記録される。ステップＳ１３終了後、コマンド発行サーバ１は、ステップＳ１に戻る。
【００５０】
再び、ＨＴＴＰセッション管理部１０は、ＣＬ電文を受信するまで待つ（ステップＳ１；Ｎｏ）。
【００５１】
ＣＬ電文を受信すると（ステップＳ１；Ｙｅｓ）、ＨＴＴＰセッション管理部１０は、そのＣＬ電文が、リクエストであるか否かを判定する（ステップＳ２）。
【００５２】
リクエストでなかった場合（ステップＳ２；Ｎｏ）、ＡＰセッション管理部１２は、送信したＳＶ電文ＩＤと一致するか否かを判定する（ステップＳ１０）。一致しない場合（ステップＳ１０；Ｎｏ）、ＡＰセッション管理部１２は、受信したＣＬ電文に含まれる電文ペアが、記録されたＳＶ電文に紐付けされた電文ペアと一致するか否かを判定する（ステップＳ２０）。
【００５３】
一致しない場合（ステップＳ２０；Ｎｏ）、ステップＳ１１→Ｓ１２→Ｓ１３が上述のようにして実行される。一方、受信したＣＬ電文に含まれる電文ペアが、記録されたＳＶ電文に紐付けされた電文ペアと一致する場合（ステップＳ２０；Ｙｅｓ）、ＡＰセッション管理部１２は、コマンド履歴記録部１１に記録したＳＶ電文を再送信する（ステップＳ２１）。ステップＳ２１終了後、コマンド発行サーバ１は、ステップＳ１に戻る。
【００５４】
図４には、ＩＣカード処理システム１００におけるデータの流れが示されている。
【００５５】
（通常のデータの流れ）
まず、エラーが発生していない通常のデータの流れについて説明する。クライアント端末２は、ＩＣ処理サービス要求をコマンド発行サーバ１に送信する。ＩＣ処理サービス要求は、ＨＴＴＰリクエストとして送信される。クライアント端末２は、送信時に、ＩＣ処理サービス要求にＣＬ電文ＩＤ（０）を付与しておく。
【００５６】
コマンド発行サーバ１は、ＩＣ処理サービス要求に、記述されたＣＬ電文ＩＤ（０）に紐付けされたＡＰインスタンスを生成する。これにより、コマンド発行サーバ１において、ＡＰインスタンス用にメモリ領域が確保される。
【００５７】
コマンド発行サーバ１は、ＡＰインスタンスを実行し、コマンド（１）を生成する。
【００５８】
コマンド発行サーバ１は、クライアント端末２に、ＳＶ電文ＩＤが付与されたＨＴＴＰレスポンスとしてのコマンド（１）を含むＳＶ電文を送信（返却）する。この時のＳＶ電文ＩＤをＳＶ電文ＩＤ（１）とする。
【００５９】
続いて、コマンド発行サーバ１は、コマンド（１）を、直前のＣＬ電文ＩＤであるＣＬ電文ＩＤ（０））と紐付けてコマンドを含むＳＶ電文（１）を記録する。
【００６０】
続いて、コマンド発行サーバ１は、発行したコマンド（１）に対するレスポンス（１）を含むＣＬ電文（１）を受信する。そして、コマンド発行サーバ１は、前回送信したＳＶ電文のＳＶ電文ＩＤ（１）と同様のＳＶ電文ＩＤがＣＬ電文（１）に含まれることを確認する。コマンド発行サーバ１は、セッション番号をインクリメントしながら上述の処理を繰り返す。
【００６１】
（レスポンス消失時の動作）
続いて、クライアント端末２は、ＨＴＴＰリクエストに対するＳＶ電文（２）が受信されないまま一定時間が経過すると、タイムアウトと判定して、前回のＣＬ電文（１）と内容が同一のＣＬ電文（１）を再送信する。
【００６２】
コマンド発行サーバ１のＡＰセッション管理部１２は、クライアント端末２から再送されたＣＬ電文に含まれるＳＶ電文ＩＤを確認する。このＳＶ電文ＩＤが、自身が直前に発行しているＳＶ電文ＩＤと一致しない場合（図３のステップＳ１０；Ｎｏ）には、コマンド発行サーバ１は、ＣＬ電文に含まれるＳＶ電文ＩＤとＣＬ電文ＩＤとのペアを読み出し、記録された電文ＩＤペアと一致するか否かを判定する（図３のステップＳ２０）。
【００６３】
一致した場合（図３のステップＳ２０；Ｙｅｓ）には、コマンド発行サーバ１は、当該電文ＩＤペアとともに記録したＳＶ電文をそのままクライアント端末２に対して送信する。このとき、ＳＶ電文ＩＤについては新たに作成し、ＳＶ電文ＩＤを更新したＳＶ電文を送信するようにしてもよい。
【００６４】
（処理の終了）
ＡＰインスタンスの解放は、一連の処理の終了後にコマンド発行サーバ１が明示的に実施するか、処理終了によって、ＨＴＴＰセッション管理部１０からＡＰインスタンスへの参照が解除され、これにより次回のガベージコレクション実行時に解放されるかのいずれかの手段により行うことができる。
【００６５】
以上詳細に説明したように、本実施形態によれば、コマンド発行サーバ１から送信されたＳＶ電文がクライアント端末２で受信できなかった場合には、コマンド履歴記録部１１に記録された前回のＳＶ電文が再送され、その他の場合には、ＡＰインスタンスにより新たに生成されたＳＶ電文が送信される。これにより、コマンド発行サーバ１では、クライアント端末２がコマンドの受信に失敗した場合に、その状態をそのコマンドが生成される前に戻す必要がなくなるうえ、すでに生成したＳＶ電文を再生成する必要がなくなる。この結果、クライアント端末２がコマンドの受信に失敗しても、効率的にＩＣカード処理を実行することができる。
【００６６】
なお、上記実施の形態において、実行されるプログラムは、フレキシブルディスク、ＣＤ−ＲＯＭ（Compact Disk Read-Only Memory）、ＤＶＤ（Digital Versatile Disk）、ＭＯ（Magneto-Optical Disk）等のコンピュータ読み取り可能な記録媒体に格納して配布し、そのプログラムをインストールすることにより、上述の処理を実行するシステムを構成することとしてもよい。
【００６７】
また、プログラムをインターネット等の通信ネットワーク上の所定のサーバ装置が有するディスク装置等に格納しておき、例えば、搬送波に重畳させて、ダウンロード等するようにしてもよい。
【００６８】
また、上述の機能を、ＯＳ（Operating System）が分担して実現する場合又はＯＳとアプリケーションとの協働により実現する場合等には、ＯＳ以外の部分のみを媒体に格納して配布してもよく、また、ダウンロード等してもよい。
【００６９】
本発明は、本発明の広義の精神と範囲を逸脱することなく、様々な実施形態及び変形が可能とされるものである。また、上述した実施形態は、本発明を説明するためのものであり、本発明の範囲を限定するものではない。すなわち、本発明の範囲、実施形態ではなく、特許請求の範囲によって示される。そして、特許請求の範囲内及びそれと同等の発明の意義の範囲内で施される様々な変形が、本発明の範囲内とみなされる。
【産業上の利用可能性】
【００７０】
本発明は、ＩＣカードの処理に好適である。
【符号の説明】
【００７１】
１  コマンド発行サーバ
２  クライアント端末
３  通信ネットワーク
４  ＩＣカード
５  送受信管理部
６  ＩＣカード処理部
１０  ＨＴＴＰセッション管理部
１１  コマンド履歴記録部
１２  ＡＰセッション管理部
１３  ビジネスロジック実行部
１４  コマンド発行部
２０  送受信部
２１  リーダ／ライタ（Ｒ／Ｗ）
１００  ＩＣカード処理システム
【図１】
2012221327.tif 000003
【図２】
2012221327.tif 000004
【図３】
2012221327.tif 000005
【図４】
2012221327.tif 000006
【図５】
2012221327.tif 000007
【図６】
2012221327.tif 000008
【図７】
2012221327.tif 000009