JP2012221327A - Icカード処理システム、icカード処理方法及びプログラム - Google Patents
Icカード処理システム、icカード処理方法及びプログラム Download PDFInfo
- Publication number
- JP2012221327A JP2012221327A JP2011087799A JP2011087799A JP2012221327A JP 2012221327 A JP2012221327 A JP 2012221327A JP 2011087799 A JP2011087799 A JP 2011087799A JP 2011087799 A JP2011087799 A JP 2011087799A JP 2012221327 A JP2012221327 A JP 2012221327A
- Authority
- JP
- Japan
- Prior art keywords
- message
- session number
- command
- transmitted
- received
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Computer And Data Communications (AREA)
Abstract
【課題】クライアントがコマンドの受信に失敗しても、効率的にICカード処理を実行する。
【解決手段】クライアント端末2は、所定時間経過してもSV電文を受信していない場合には、CL電文を再送する。コマンド発行サーバ1は、SV電文を送信する度に、今回送信するSV電文と、前回送信したSV電文に含まれるセッション番号とを紐付けして記録する。コマンド発行サーバ1は、受信したCL電文に含まれるセッション番号が、記録されたSV電文に紐付けされたセッション番号と異なる場合には、生成されたコマンドを含み、セッション番号をインクリメントしてSV電文を送信する。コマンド発行サーバ1は、CL電文を受信する度に、受信したCL電文に含まれるセッション番号が、記録されたSV電文に紐付けされたセッション番号と同一である場合には、記録されたSV電文を送信する。
【選択図】図1
【解決手段】クライアント端末2は、所定時間経過してもSV電文を受信していない場合には、CL電文を再送する。コマンド発行サーバ1は、SV電文を送信する度に、今回送信するSV電文と、前回送信したSV電文に含まれるセッション番号とを紐付けして記録する。コマンド発行サーバ1は、受信したCL電文に含まれるセッション番号が、記録されたSV電文に紐付けされたセッション番号と異なる場合には、生成されたコマンドを含み、セッション番号をインクリメントしてSV電文を送信する。コマンド発行サーバ1は、CL電文を受信する度に、受信したCL電文に含まれるセッション番号が、記録されたSV電文に紐付けされたセッション番号と同一である場合には、記録されたSV電文を送信する。
【選択図】図1
Description
本発明は、ネットワーク上でICカードを処理するサーバ制御型のICカード処理システム、ICカード処理方法及びコンピュータに実行させるプログラムに関する。
従来より、ICカードのリーダ/ライタをクライアント側とし、ICカードに対する処理(ICカード処理)を実行するための複数のコマンドがサーバ側で生成するクライアントサーバ型のICカード処理システムが開示されている(例えば、特許文献1参照)。
サーバで生成されたコマンドはクライアントに送信される。クライアントは、コマンドを受信して、R/Wを介してそのコマンドを実行する。このようなICカード処理システムでは、クライアント側の構成を簡単にするため、サーバ側にセキュリティモジュール等が設けられている。
このICカード処理システムでは、サーバは、クライアントからのリクエストを契機として、リクエストに対するレスポンスである複数のコマンドをクライアントに送信する。このようにすることで、サーバは、多数のクライアントからのリクエストに応じてICカード処理を実行することができる。
ICカード処理システムでは、通常のWEBシステムと同様に、クライアントのリクエスト等の電文についてはセッション番号等で管理される。サーバは、セッション番号に基づいて、その電文が同一のリクエストにかかるものであるか否かを判定し、複数のコマンドの送受信が必要な処理を継続する。
図5には、従来のICカード処理システムの動作が示されている。図5に示すように、まず、クライアントからのリクエストを含む電文がサーバに送信される。この電文のセッション番号は0である。ここで、この電文をCL電文(0)とする。
CL電文(0)を受信したサーバでは、コマンドを生成するための業務処理インスタンスであるアプリケーション(AP)インスタンスが生成され、そのAPインスタンスが実行されて、コマンド(1)が生成される。このとき、APインスタンスの状態は、状態(0)から状態(1)へ移行する。
生成されたコマンド(1)は、SV電文(1)としてサーバからクライアントへ送信される。SV電文(1)を正常に受信したクライアントは、そのレスポンス(1)を含むCL電文(1)をサーバに返信する。サーバでは、APインスタンスが実行されて、2番目のコマンド(2)が生成され、状態(1)から状態(2)へ移行する。
生成されたコマンド(2)は、SV電文(2)としてサーバからクライアントへ送信される。SV電文(2)を正常に受信したクライアントは、そのレスポンス(2)を含むCL電文(2)をサーバに返信する。サーバでは、APインスタンスが、処理を実行して、3番目のコマンド(3)が生成され、状態(2)から状態(3)へ移行する。生成されたコマンド(3)を含むSV電文(3)が、サーバからクライアントへ送信される。
ここで、ネットワーク上の何らかの障害により、クライアントから送信されたリクエストに対するレスポンスとしてのコマンドをクライアントが受信できなかった場合について考える。クライアントがコマンドを受信できない場合としては以下の2つの場合が考えられる。
(1)クライアントからのリクエストがサーバで受信できなかった場合
(2)サーバからのコマンドがクライアントで受信できなかった場合
(1)クライアントからのリクエストがサーバで受信できなかった場合
(2)サーバからのコマンドがクライアントで受信できなかった場合
レスポンスを受信することなく所定の時間が経過すれば、クライアントは、リクエストを再度送信する。この場合、上記(1)のようにリクエストが消失したのであれば、サーバは、そのまま処理を継続し、コマンドを送信すればよい。しかし、上記(2)のように、サーバからのコマンドが消失したときには、図6に示すように、すでにサーバ内で複数のビジネスロジックが実行され、サーバのメモリ上の値が変更されている場合があるため、再送された電文(図6では、CL電文(1))を受信してもサーバ側ではその電文に応じた処理を行うのが困難になる。
1ステップ前のAPインスタンスの状態(メモリの内容)を保持しておけば、APインスタンスの状態を元の状態に復元し、コマンドを再生成するサーバ側での再処理が可能となる。例えば、クライアントから送信されたCL電文のセッション番号と、APインスタンスの現在の状態が一致しない場合には、APインスタンスの状態を1ステップ前の状態に戻し、APインスタンスが再処理を実行する。このようにすれば、コマンド及びレスポンスの送受信を続行することができる。図7には、コマンド(2)の受信に失敗し、クライアントがCL電文(1)を再送したときに、APインスタンスの状態が、状態2から状態1に戻され、再実行される様子が示されている。
しかしながら、APインスタンスの過去の状態を保持するのには、多大なメモリ容量が必要となる。また、APインスタンスが同じ処理(コマンドを再生成する処理)を重複して実行する必要があり、効率的であるとは言い難い面がある。
APインスタンスを再生成して、1から処理をやり直す、すなわちすべての処理を再実行することも考えられるが、クライアントが多数である場合では、再実行の処理だけでサーバのリソースを消費してしまうおそれがある。
本発明は、上記実情に鑑みてなされたものであり、クライアントがコマンドの受信に失敗しても、効率的にICカード処理を実行することができるICカード処理システム、ICカード処理方法及びプログラムを提供することを目的とする。
上記目的を達成するため、本発明の第1の観点に係るICカード処理システムは、
クライアントから送信される第1の電文と、コマンド発行サーバから発行されるコマンドを含む第2の電文とを、セッション番号をインクリメントしながら交互に複数回送受信することにより、前記クライアントに接続されたICカードに対する処理を行うICカード処理システムであって、
前記クライアントは、
前記第1の電文を送信した後、所定時間経過しても前記第2の電文を受信していない場合には、セッション番号が前回と同一である前記第1の電文を再送し、
前記コマンド発行サーバは、
前記第2の電文を送信する度に、今回送信する前記第2の電文と、前回送信した前記第2の電文に含まれるセッション番号とを紐付けして記録し、
前記第1の電文を受信する度に、受信した前記第1の電文に含まれるセッション番号が、記録された前記第2の電文に紐付けされたセッション番号と異なる場合には、コマンドを生成し、生成されたコマンドを含みセッション番号がインクリメントされた前記第2の電文を送信し、
受信した前記第1の電文に含まれるセッション番号が、記録された前記第2の電文に紐付けされたセッション番号と同一である場合には、記録された前記第2の電文を送信する、
ことを特徴とする。
クライアントから送信される第1の電文と、コマンド発行サーバから発行されるコマンドを含む第2の電文とを、セッション番号をインクリメントしながら交互に複数回送受信することにより、前記クライアントに接続されたICカードに対する処理を行うICカード処理システムであって、
前記クライアントは、
前記第1の電文を送信した後、所定時間経過しても前記第2の電文を受信していない場合には、セッション番号が前回と同一である前記第1の電文を再送し、
前記コマンド発行サーバは、
前記第2の電文を送信する度に、今回送信する前記第2の電文と、前回送信した前記第2の電文に含まれるセッション番号とを紐付けして記録し、
前記第1の電文を受信する度に、受信した前記第1の電文に含まれるセッション番号が、記録された前記第2の電文に紐付けされたセッション番号と異なる場合には、コマンドを生成し、生成されたコマンドを含みセッション番号がインクリメントされた前記第2の電文を送信し、
受信した前記第1の電文に含まれるセッション番号が、記録された前記第2の電文に紐付けされたセッション番号と同一である場合には、記録された前記第2の電文を送信する、
ことを特徴とする。
この場合、前記セッション番号は、
前記クライアントから前記第1の電文が送信される際にインクリメントされる第1のセッション番号と、
前記コマンド発行サーバから前記第2の電文が送信される際にインクリメントされる第2のセッション番号とのペアである、
こととしてもよい。
前記クライアントから前記第1の電文が送信される際にインクリメントされる第1のセッション番号と、
前記コマンド発行サーバから前記第2の電文が送信される際にインクリメントされる第2のセッション番号とのペアである、
こととしてもよい。
また、前記コマンド発行サーバは、
前記第1の電文を受信する受信部と、
入力された前記第1の電文に応じて前記第2の電文を生成するアプリケーション処理部と、
アプリケーション処理部によって今回生成された前記第2の電文と、前回生成された前記第2の電文のセッション番号とを紐付けして記録する記録部と、
前記受信部により受信された前記第1の電文に含まれるセッション番号が、前記記録部に記録された前記第2の電文に紐付けされたセッション番号と同一であるか否かを判定する判定部と、
前記受信部により受信された前記第1の電文に含まれるセッション番号が、前記記録部に記録された前記第2の電文に紐付けされたセッション番号と同一であると判定された場合には、前記記録部に記録された前記第2の電文を送信し、異なると判定された場合には、前記アプリケーション処理部に前記受信部により受信された前記第1の電文を入力するアプリケーションセッション管理部と、
を備える、
こととしてもよい。
前記第1の電文を受信する受信部と、
入力された前記第1の電文に応じて前記第2の電文を生成するアプリケーション処理部と、
アプリケーション処理部によって今回生成された前記第2の電文と、前回生成された前記第2の電文のセッション番号とを紐付けして記録する記録部と、
前記受信部により受信された前記第1の電文に含まれるセッション番号が、前記記録部に記録された前記第2の電文に紐付けされたセッション番号と同一であるか否かを判定する判定部と、
前記受信部により受信された前記第1の電文に含まれるセッション番号が、前記記録部に記録された前記第2の電文に紐付けされたセッション番号と同一であると判定された場合には、前記記録部に記録された前記第2の電文を送信し、異なると判定された場合には、前記アプリケーション処理部に前記受信部により受信された前記第1の電文を入力するアプリケーションセッション管理部と、
を備える、
こととしてもよい。
また、前記クライアントは、
前記第1の電文を送信するとともに、前記第2の電文を受信する送受信部と、
前記送受信部で受信された前記第2の電文に含まれる前記コマンドを前記ICカードに対して実行するリーダ/ライタと、
を備え、
前記送受信部は、
前記リーダ/ライタの処理が完了すると、前記第1の電文を送信する、
こととしてもよい。
前記第1の電文を送信するとともに、前記第2の電文を受信する送受信部と、
前記送受信部で受信された前記第2の電文に含まれる前記コマンドを前記ICカードに対して実行するリーダ/ライタと、
を備え、
前記送受信部は、
前記リーダ/ライタの処理が完了すると、前記第1の電文を送信する、
こととしてもよい。
本発明の第2の観点に係るICカード処理方法は、
クライアントから送信される第1の電文と、コマンド発行サーバから発行されるコマンドを含む第2の電文とを、セッション番号をインクリメントしながら交互に複数回送受信することにより、前記クライアントに接続されたICカードに対する処理を行うICカード処理方法であって、
前記クライアントにおいて、
前記第1の電文を送信した後、所定時間経過しても前記第2の電文を受信していない場合には、セッション番号が前回と同一である前記第1の電文を再送する第1の工程と、
前記コマンド発行サーバにおいて、
前記第2の電文を送信する度に、今回送信する前記第2の電文と、前回送信した前記第2の電文に含まれるセッション番号とを紐付けして記録する第2の工程と、
前記第1の電文を受信する度に、受信した前記第1の電文に含まれるセッション番号が、記録された前記第2の電文に紐付けされたセッション番号と異なる場合には、コマンドを生成し、生成されたコマンドを含みセッション番号がインクリメントされた前記第2の電文を送信する第3の工程と、
受信した前記第1の電文に含まれるセッション番号が、記録された前記第2の電文に紐付けされたセッション番号と同一である場合には、記録された前記第2の電文を送信する第4の工程と、
とを含むことを特徴とする。
クライアントから送信される第1の電文と、コマンド発行サーバから発行されるコマンドを含む第2の電文とを、セッション番号をインクリメントしながら交互に複数回送受信することにより、前記クライアントに接続されたICカードに対する処理を行うICカード処理方法であって、
前記クライアントにおいて、
前記第1の電文を送信した後、所定時間経過しても前記第2の電文を受信していない場合には、セッション番号が前回と同一である前記第1の電文を再送する第1の工程と、
前記コマンド発行サーバにおいて、
前記第2の電文を送信する度に、今回送信する前記第2の電文と、前回送信した前記第2の電文に含まれるセッション番号とを紐付けして記録する第2の工程と、
前記第1の電文を受信する度に、受信した前記第1の電文に含まれるセッション番号が、記録された前記第2の電文に紐付けされたセッション番号と異なる場合には、コマンドを生成し、生成されたコマンドを含みセッション番号がインクリメントされた前記第2の電文を送信する第3の工程と、
受信した前記第1の電文に含まれるセッション番号が、記録された前記第2の電文に紐付けされたセッション番号と同一である場合には、記録された前記第2の電文を送信する第4の工程と、
とを含むことを特徴とする。
本発明の第3の観点に係るプログラムは、
クライアントから送信される第1の電文と、コマンド発行サーバから発行されるコマンドを含む第2の電文とを、セッション番号をインクリメントしながら交互に複数回送受信することにより、前記クライアントに接続されたICカードに対する処理を行うコンピュータに実行させるプログラムであって、
前記クライアントとして動作するコンピュータに、
前記第1の電文を送信した後、所定時間経過しても前記第2の電文を受信していない場合には、セッション番号が前回と同一である前記第1の電文を再送する第1の手順を実行させ、
前記コマンド発行サーバとして動作するコンピュータに、
前記第2の電文を送信する度に、今回送信する前記第2の電文と、前回送信した前記第2の電文に含まれるセッション番号とを紐付けして記録する第2の手順と、
前記第1の電文を受信する度に、受信した前記第1の電文に含まれるセッション番号が、記録された前記第2の電文に紐付けされたセッション番号と異なる場合には、コマンドを生成し、生成されたコマンドを含みセッション番号がインクリメントされた前記第2の電文を送信する第3の手順と、
受信した前記第1の電文に含まれるセッション番号が、記録された前記第2の電文に紐付けされたセッション番号と同一である場合には、記録された前記第2の電文を送信する第4の手順と、
とを実行させることを特徴とする。
クライアントから送信される第1の電文と、コマンド発行サーバから発行されるコマンドを含む第2の電文とを、セッション番号をインクリメントしながら交互に複数回送受信することにより、前記クライアントに接続されたICカードに対する処理を行うコンピュータに実行させるプログラムであって、
前記クライアントとして動作するコンピュータに、
前記第1の電文を送信した後、所定時間経過しても前記第2の電文を受信していない場合には、セッション番号が前回と同一である前記第1の電文を再送する第1の手順を実行させ、
前記コマンド発行サーバとして動作するコンピュータに、
前記第2の電文を送信する度に、今回送信する前記第2の電文と、前回送信した前記第2の電文に含まれるセッション番号とを紐付けして記録する第2の手順と、
前記第1の電文を受信する度に、受信した前記第1の電文に含まれるセッション番号が、記録された前記第2の電文に紐付けされたセッション番号と異なる場合には、コマンドを生成し、生成されたコマンドを含みセッション番号がインクリメントされた前記第2の電文を送信する第3の手順と、
受信した前記第1の電文に含まれるセッション番号が、記録された前記第2の電文に紐付けされたセッション番号と同一である場合には、記録された前記第2の電文を送信する第4の手順と、
とを実行させることを特徴とする。
本発明によれば、コマンド発行サーバから送信された第2の電文がクライアントで受信できなかった場合には、記録部に記録された前回の第2の電文が再送され、その他の場合には、新たに生成された第2の電文が送信される。これにより、コマンド発行サーバでは、クライアントがコマンドの受信に失敗した場合に、その状態をそのコマンドが生成される前に戻す必要がなくなるうえ、すでに生成した第2の電文を再生成する必要がなくなる。この結果、クライアントがコマンドの受信に失敗しても、効率的にICカード処理を実行することができる。
本発明の実施形態について、図面を参照して詳細に説明する。
図1には、本実施形態に係るICカード処理システム100の構成が示されている。図1に示すように、ICカード処理システム100は、コマンド発行サーバ1とクライアント端末2とを備える。コマンド発行サーバ1と、クライアント端末2とは、ともにコンピュータである。コマンド発行サーバ1とクライアント端末2とは、インターネット等の通信ネットワーク3を介して接続されている。
本実施形態に係るICカード処理システム100は、通信ネットワーク3を介してICカードを処理するサーバ制御型のICカード処理システムである。より具体的には、ICカード処理システム100は、クライアント端末2から送信される第1の電文としてのクライアント電文(以下、「CL電文」と)と、コマンド発行サーバ1から発行されるコマンドを含む第2の電文としてのサーバ電文(以下、「SV電文」)とを、セッション番号をインクリメントしながら交互に複数回送受信することにより、クライアントに接続されたICカードに対する処理を行う。
コマンド発行サーバ1は、送受信管理部5と、ICカード処理部6とを備える。
送受信管理部5は、クライアント端末2とのデータ送受信を管理する。送受信管理部5は、HTTP(HyperText Transfer Protocol)セッション管理部10と、コマンド履歴記録部11と、APセッション管理部12とを備える。
HTTPセッション管理部10は、クライアントに付与されたセッションIDを用いて、HTTPリクエスト及びHTTPレスポンスの送受信におけるセッション管理を行う。
コマンド履歴記録部11は、SV電文を送信する度に、今回送信するSV電文と、前回送信したSV電文に含まれるセッション番号とを紐付けして記録する。本実施形態では、記録されるセッション番号は、クライアント端末2からCL電文が送信される際にインクリメントされるCL電文IDと、コマンド発行サーバ1からSV電文が送信される際にインクリメントされるSV電文IDとのペアである。
図2には、コマンド履歴記録部11に記録されるデータの一例が示されている。図2に示すように、コマンド(n)を含むSV電文(SV電文ID(n)←CL電文ID(n−1))には、前回のSV電文ID(n−1)、CL電文ID(n−1)のペアが紐付けされる。
APセッション管理部12は、SL電文を受信する度に、受信したCL電文に含まれるセッション番号が、記録されたSV電文に紐付けされたセッション番号と異なる場合には、ICカード処理部6で生成されたコマンドを含みセッション番号がインクリメントされたSV電文を送信する。APセッション管理部12は、受信したCL電文に含まれるセッション番号が、記録されたSV電文に紐付けされたセッション番号と同一である場合には、記録されたSV電文を送信する。
アプリケーション処理部としてのICカード処理部6は、ビジネスロジック実行部13と、コマンド発行部14と、を備える。
ビジネスロジック実行部13は、ビジネスロジックを実行する。より具体的には、ビジネスロジック実行部13は、業務処理インスタンス(APインスタンス)を生成して、生成されたAPインスタンスを実行する。
コマンド発行部14は、APインスタンスを実行することにより生成されるコマンドを発行する。
クライアント端末2は、送受信部20と、リーダ/ライタ(以下、「R/W」)21とを備える。送受信部20は、CL電文を送信するとともに、SV電文を受信する。R/W21は、送受信部20で受信されたSV電文に含まれるコマンドに従ってICカード4に対するリード/ライトを行う。送受信部20は、R/W21の処理が完了すると、CL電文を送信する。さらに、送受信部20は、CL電文を送信した後、所定時間経過してもSV電文を受信していない場合には、セッション番号が前回と同一であるCL電文を再送する。
次に、本実施形態に係るICカード処理システム100の動作について説明する。
図3には、コマンド発行サーバ1の処理のフローチャートが示されている。図3に示すように、HTTPセッション管理部10は、CL電文を受信するまで待つ(ステップS1;No)。
CL電文を受信すると(ステップS1;Yes)、HTTPセッション管理部10は、そのCL電文が、リクエストであるか否かを判定する(ステップS2)。
リクエストである場合(ステップS2;Yes)、ビジネスロジック実行部13は、業務処理インスタンス(APインスタンス)を生成する(ステップS3)。続いて、ビジネスロジック実行部13は、生成されたAPインスタンスを実行してコマンド(1)を生成し、コマンド発行部14は、生成したコマンド(1)を発行する(ステップS4)。
続いて、APセッション管理部12は、SV電文(1)を送信する(ステップS5)。このSV電文(1)には、セッション番号として、SV電文ID(1)とCL電文ID(0)とが含まれている。
続いて、コマンド履歴記録部11は、SV電文(1)を、CL電文(0)と紐付けて記録する(ステップS6)。ステップS6終了後、コマンド発行サーバ1は、ステップS1に戻る。
再び、HTTPセッション管理部10は、CL電文を受信するまで待つ(ステップS1;No)。
CL電文を受信すると(ステップS1;Yes)、HTTPセッション管理部10は、そのCL電文が、リクエストであるか否かを判定する(ステップS2)。
リクエストでなかった場合(ステップS2;No)、APセッション管理部12は、送信したSV電文IDと一致するか否かを判定する(ステップS10)。
一致する場合(ステップS10;Yes)、ビジネスロジック実行部13及びコマンド発行部14は、APインスタンスを実行して発行する(ステップS11)。
続いて、APセッション管理部12は、SV電文(n)を送信する(ステップS12)。このSV電文(n)には、セッション番号として、SV電文ID(n)とCL電文ID(n−1)とが含まれている。
続いて、コマンド履歴記録部11は、SV電文(n)に、SV電文ID(n−1)と、CL電文ID(n−1)と紐付けて記録する(ステップS13)。例えば、n=2の場合には、SV電文(2)が、SV電文ID(1)とCL電文ID(1)とに紐付けされて記録される。ステップS13終了後、コマンド発行サーバ1は、ステップS1に戻る。
再び、HTTPセッション管理部10は、CL電文を受信するまで待つ(ステップS1;No)。
CL電文を受信すると(ステップS1;Yes)、HTTPセッション管理部10は、そのCL電文が、リクエストであるか否かを判定する(ステップS2)。
リクエストでなかった場合(ステップS2;No)、APセッション管理部12は、送信したSV電文IDと一致するか否かを判定する(ステップS10)。一致しない場合(ステップS10;No)、APセッション管理部12は、受信したCL電文に含まれる電文ペアが、記録されたSV電文に紐付けされた電文ペアと一致するか否かを判定する(ステップS20)。
一致しない場合(ステップS20;No)、ステップS11→S12→S13が上述のようにして実行される。一方、受信したCL電文に含まれる電文ペアが、記録されたSV電文に紐付けされた電文ペアと一致する場合(ステップS20;Yes)、APセッション管理部12は、コマンド履歴記録部11に記録したSV電文を再送信する(ステップS21)。ステップS21終了後、コマンド発行サーバ1は、ステップS1に戻る。
図4には、ICカード処理システム100におけるデータの流れが示されている。
(通常のデータの流れ)
まず、エラーが発生していない通常のデータの流れについて説明する。クライアント端末2は、IC処理サービス要求をコマンド発行サーバ1に送信する。IC処理サービス要求は、HTTPリクエストとして送信される。クライアント端末2は、送信時に、IC処理サービス要求にCL電文ID(0)を付与しておく。
まず、エラーが発生していない通常のデータの流れについて説明する。クライアント端末2は、IC処理サービス要求をコマンド発行サーバ1に送信する。IC処理サービス要求は、HTTPリクエストとして送信される。クライアント端末2は、送信時に、IC処理サービス要求にCL電文ID(0)を付与しておく。
コマンド発行サーバ1は、IC処理サービス要求に、記述されたCL電文ID(0)に紐付けされたAPインスタンスを生成する。これにより、コマンド発行サーバ1において、APインスタンス用にメモリ領域が確保される。
コマンド発行サーバ1は、APインスタンスを実行し、コマンド(1)を生成する。
コマンド発行サーバ1は、クライアント端末2に、SV電文IDが付与されたHTTPレスポンスとしてのコマンド(1)を含むSV電文を送信(返却)する。この時のSV電文IDをSV電文ID(1)とする。
続いて、コマンド発行サーバ1は、コマンド(1)を、直前のCL電文IDであるCL電文ID(0))と紐付けてコマンドを含むSV電文(1)を記録する。
続いて、コマンド発行サーバ1は、発行したコマンド(1)に対するレスポンス(1)を含むCL電文(1)を受信する。そして、コマンド発行サーバ1は、前回送信したSV電文のSV電文ID(1)と同様のSV電文IDがCL電文(1)に含まれることを確認する。コマンド発行サーバ1は、セッション番号をインクリメントしながら上述の処理を繰り返す。
(レスポンス消失時の動作)
続いて、クライアント端末2は、HTTPリクエストに対するSV電文(2)が受信されないまま一定時間が経過すると、タイムアウトと判定して、前回のCL電文(1)と内容が同一のCL電文(1)を再送信する。
続いて、クライアント端末2は、HTTPリクエストに対するSV電文(2)が受信されないまま一定時間が経過すると、タイムアウトと判定して、前回のCL電文(1)と内容が同一のCL電文(1)を再送信する。
コマンド発行サーバ1のAPセッション管理部12は、クライアント端末2から再送されたCL電文に含まれるSV電文IDを確認する。このSV電文IDが、自身が直前に発行しているSV電文IDと一致しない場合(図3のステップS10;No)には、コマンド発行サーバ1は、CL電文に含まれるSV電文IDとCL電文IDとのペアを読み出し、記録された電文IDペアと一致するか否かを判定する(図3のステップS20)。
一致した場合(図3のステップS20;Yes)には、コマンド発行サーバ1は、当該電文IDペアとともに記録したSV電文をそのままクライアント端末2に対して送信する。このとき、SV電文IDについては新たに作成し、SV電文IDを更新したSV電文を送信するようにしてもよい。
(処理の終了)
APインスタンスの解放は、一連の処理の終了後にコマンド発行サーバ1が明示的に実施するか、処理終了によって、HTTPセッション管理部10からAPインスタンスへの参照が解除され、これにより次回のガベージコレクション実行時に解放されるかのいずれかの手段により行うことができる。
APインスタンスの解放は、一連の処理の終了後にコマンド発行サーバ1が明示的に実施するか、処理終了によって、HTTPセッション管理部10からAPインスタンスへの参照が解除され、これにより次回のガベージコレクション実行時に解放されるかのいずれかの手段により行うことができる。
以上詳細に説明したように、本実施形態によれば、コマンド発行サーバ1から送信されたSV電文がクライアント端末2で受信できなかった場合には、コマンド履歴記録部11に記録された前回のSV電文が再送され、その他の場合には、APインスタンスにより新たに生成されたSV電文が送信される。これにより、コマンド発行サーバ1では、クライアント端末2がコマンドの受信に失敗した場合に、その状態をそのコマンドが生成される前に戻す必要がなくなるうえ、すでに生成したSV電文を再生成する必要がなくなる。この結果、クライアント端末2がコマンドの受信に失敗しても、効率的にICカード処理を実行することができる。
なお、上記実施の形態において、実行されるプログラムは、フレキシブルディスク、CD−ROM(Compact Disk Read-Only Memory)、DVD(Digital Versatile Disk)、MO(Magneto-Optical Disk)等のコンピュータ読み取り可能な記録媒体に格納して配布し、そのプログラムをインストールすることにより、上述の処理を実行するシステムを構成することとしてもよい。
また、プログラムをインターネット等の通信ネットワーク上の所定のサーバ装置が有するディスク装置等に格納しておき、例えば、搬送波に重畳させて、ダウンロード等するようにしてもよい。
また、上述の機能を、OS(Operating System)が分担して実現する場合又はOSとアプリケーションとの協働により実現する場合等には、OS以外の部分のみを媒体に格納して配布してもよく、また、ダウンロード等してもよい。
本発明は、本発明の広義の精神と範囲を逸脱することなく、様々な実施形態及び変形が可能とされるものである。また、上述した実施形態は、本発明を説明するためのものであり、本発明の範囲を限定するものではない。すなわち、本発明の範囲、実施形態ではなく、特許請求の範囲によって示される。そして、特許請求の範囲内及びそれと同等の発明の意義の範囲内で施される様々な変形が、本発明の範囲内とみなされる。
本発明は、ICカードの処理に好適である。
1 コマンド発行サーバ
2 クライアント端末
3 通信ネットワーク
4 ICカード
5 送受信管理部
6 ICカード処理部
10 HTTPセッション管理部
11 コマンド履歴記録部
12 APセッション管理部
13 ビジネスロジック実行部
14 コマンド発行部
20 送受信部
21 リーダ/ライタ(R/W)
100 ICカード処理システム
2 クライアント端末
3 通信ネットワーク
4 ICカード
5 送受信管理部
6 ICカード処理部
10 HTTPセッション管理部
11 コマンド履歴記録部
12 APセッション管理部
13 ビジネスロジック実行部
14 コマンド発行部
20 送受信部
21 リーダ/ライタ(R/W)
100 ICカード処理システム
Claims (6)
- クライアントから送信される第1の電文と、コマンド発行サーバから発行されるコマンドを含む第2の電文とを、セッション番号をインクリメントしながら交互に複数回送受信することにより、前記クライアントに接続されたICカードに対する処理を行うICカード処理システムであって、
前記クライアントは、
前記第1の電文を送信した後、所定時間経過しても前記第2の電文を受信していない場合には、セッション番号が前回と同一である前記第1の電文を再送し、
前記コマンド発行サーバは、
前記第2の電文を送信する度に、今回送信する前記第2の電文と、前回送信した前記第2の電文に含まれるセッション番号とを紐付けして記録し、
前記第1の電文を受信する度に、受信した前記第1の電文に含まれるセッション番号が、記録された前記第2の電文に紐付けされたセッション番号と異なる場合には、コマンドを生成し、生成されたコマンドを含みセッション番号がインクリメントされた前記第2の電文を送信し、
受信した前記第1の電文に含まれるセッション番号が、記録された前記第2の電文に紐付けされたセッション番号と同一である場合には、記録された前記第2の電文を送信する、
ことを特徴とするICカード処理システム。 - 前記セッション番号は、
前記クライアントから前記第1の電文が送信される際にインクリメントされる第1のセッション番号と、
前記コマンド発行サーバから前記第2の電文が送信される際にインクリメントされる第2のセッション番号とのペアである、
ことを特徴とする請求項1に記載のICカード処理システム。 - 前記コマンド発行サーバは、
前記第1の電文を受信する受信部と、
入力された前記第1の電文に応じて前記第2の電文を生成するアプリケーション処理部と、
アプリケーション処理部によって今回生成された前記第2の電文と、前回生成された前記第2の電文のセッション番号とを紐付けして記録する記録部と、
前記受信部により受信された前記第1の電文に含まれるセッション番号が、前記記録部に記録された前記第2の電文に紐付けされたセッション番号と同一であるか否かを判定する判定部と、
前記受信部により受信された前記第1の電文に含まれるセッション番号が、前記記録部に記録された前記第2の電文に紐付けされたセッション番号と同一であると判定された場合には、前記記録部に記録された前記第2の電文を送信し、異なると判定された場合には、前記アプリケーション処理部に前記受信部により受信された前記第1の電文を入力するアプリケーションセッション管理部と、
を備える、
ことを特徴とする請求項1又は2に記載のICカード処理システム。 - 前記クライアントは、
前記第1の電文を送信するとともに、前記第2の電文を受信する送受信部と、
前記送受信部で受信された前記第2の電文に含まれる前記コマンドを前記ICカードに対して実行するリーダ/ライタと、
を備え、
前記送受信部は、
前記リーダ/ライタの処理が完了すると、前記第1の電文を送信する、
ことを特徴とする請求項1乃至3のいずれか一項に記載のICカード処理システム。 - クライアントから送信される第1の電文と、コマンド発行サーバから発行されるコマンドを含む第2の電文とを、セッション番号をインクリメントしながら交互に複数回送受信することにより、前記クライアントに接続されたICカードに対する処理を行うICカード処理方法であって、
前記クライアントにおいて、
前記第1の電文を送信した後、所定時間経過しても前記第2の電文を受信していない場合には、セッション番号が前回と同一である前記第1の電文を再送する第1の工程と、
前記コマンド発行サーバにおいて、
前記第2の電文を送信する度に、今回送信する前記第2の電文と、前回送信した前記第2の電文に含まれるセッション番号とを紐付けして記録する第2の工程と、
前記第1の電文を受信する度に、受信した前記第1の電文に含まれるセッション番号が、記録された前記第2の電文に紐付けされたセッション番号と異なる場合には、コマンドを生成し、生成されたコマンドを含みセッション番号がインクリメントされた前記第2の電文を送信する第3の工程と、
受信した前記第1の電文に含まれるセッション番号が、記録された前記第2の電文に紐付けされたセッション番号と同一である場合には、記録された前記第2の電文を送信する第4の工程と、
とを含むことを特徴とするICカード処理方法。 - クライアントから送信される第1の電文と、コマンド発行サーバから発行されるコマンドを含む第2の電文とを、セッション番号をインクリメントしながら交互に複数回送受信することにより、前記クライアントに接続されたICカードに対する処理を行うコンピュータに実行させるプログラムであって、
前記クライアントとして動作するコンピュータに、
前記第1の電文を送信した後、所定時間経過しても前記第2の電文を受信していない場合には、セッション番号が前回と同一である前記第1の電文を再送する第1の手順を実行させ、
前記コマンド発行サーバとして動作するコンピュータに、
前記第2の電文を送信する度に、今回送信する前記第2の電文と、前回送信した前記第2の電文に含まれるセッション番号とを紐付けして記録する第2の手順と、
前記第1の電文を受信する度に、受信した前記第1の電文に含まれるセッション番号が、記録された前記第2の電文に紐付けされたセッション番号と異なる場合には、コマンドを生成し、生成されたコマンドを含みセッション番号がインクリメントされた前記第2の電文を送信する第3の手順と、
受信した前記第1の電文に含まれるセッション番号が、記録された前記第2の電文に紐付けされたセッション番号と同一である場合には、記録された前記第2の電文を送信する第4の手順と、
とを実行させることを特徴とするプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011087799A JP2012221327A (ja) | 2011-04-11 | 2011-04-11 | Icカード処理システム、icカード処理方法及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011087799A JP2012221327A (ja) | 2011-04-11 | 2011-04-11 | Icカード処理システム、icカード処理方法及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2012221327A true JP2012221327A (ja) | 2012-11-12 |
Family
ID=47272732
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011087799A Pending JP2012221327A (ja) | 2011-04-11 | 2011-04-11 | Icカード処理システム、icカード処理方法及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2012221327A (ja) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1188473A (ja) * | 1997-09-11 | 1999-03-30 | Toshiba Corp | 通信制御システム |
JP2000259534A (ja) * | 1999-03-04 | 2000-09-22 | Toshiba Corp | 送信装置、送信方法及び送信用ソフトウェアを記録した記録媒体並びに通信システム |
JP2003218876A (ja) * | 2002-01-22 | 2003-07-31 | Matsushita Electric Works Ltd | データ通信システム |
JP2007065957A (ja) * | 2005-08-31 | 2007-03-15 | Felica Networks Inc | 情報処理システム,クライアント,サーバ,プログラム,情報処理方法 |
JP2009015392A (ja) * | 2007-06-29 | 2009-01-22 | Mitsubishi Electric Corp | 通信装置および通信方法 |
-
2011
- 2011-04-11 JP JP2011087799A patent/JP2012221327A/ja active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1188473A (ja) * | 1997-09-11 | 1999-03-30 | Toshiba Corp | 通信制御システム |
JP2000259534A (ja) * | 1999-03-04 | 2000-09-22 | Toshiba Corp | 送信装置、送信方法及び送信用ソフトウェアを記録した記録媒体並びに通信システム |
JP2003218876A (ja) * | 2002-01-22 | 2003-07-31 | Matsushita Electric Works Ltd | データ通信システム |
JP2007065957A (ja) * | 2005-08-31 | 2007-03-15 | Felica Networks Inc | 情報処理システム,クライアント,サーバ,プログラム,情報処理方法 |
JP2009015392A (ja) * | 2007-06-29 | 2009-01-22 | Mitsubishi Electric Corp | 通信装置および通信方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9313252B2 (en) | Binding crud-type protocols in distributed agreement protocols | |
CN107203541A (zh) | 页面加载方法及其页面加载装置 | |
US20090064177A1 (en) | Method for data delivery in a network | |
WO2014018576A1 (en) | Automatic data request recovery after session failure | |
JP5801482B2 (ja) | キーバリューストレージに対するデータの保存および読み出しを行う方法およびシステム | |
Chopra et al. | Bungie: Improving fault tolerance via extensible application-level protocols | |
JP2005301436A (ja) | クラスタシステムおよびクラスタシステムにおける障害回復方法 | |
CN112055088B (zh) | 一种基于光闸的文件可靠传输系统及其方法 | |
Ivaki et al. | A survey on reliable distributed communication | |
CN112825525B (zh) | 用于处理事务的方法和装置 | |
US20120124430A1 (en) | Mechanism to Prevent Escaped Associations in Multi-Association RPC Based Protocols | |
JP2008129628A (ja) | 複数のコンピュータシステムでメッセージをやり取りすることによって所定の業務を処理するシステムでの通信方式、及び、メッセージ中継プログラム | |
JP2012221327A (ja) | Icカード処理システム、icカード処理方法及びプログラム | |
CN108880994B (zh) | 一种重发邮件的方法和装置 | |
JP2006260400A (ja) | コンピュータ装置状態監視方法 | |
Narita et al. | Reliable protocol for robot communication on web services | |
JP4557518B2 (ja) | メッセージ通信に用いられる各装置のプログラム | |
JP4759418B2 (ja) | メッセージ回復システムおよび回復方法 | |
JP5085163B2 (ja) | メッセージ送受信システム及び送受信方法 | |
JP5029020B2 (ja) | 電文中継プログラム | |
JP5637351B2 (ja) | サーバ・クライアント・システム、サーバ装置、待機サーバ装置およびクライアント装置 | |
JP2006211567A (ja) | データ通信装置、データ通信方法およびプログラム | |
JPWO2019043750A1 (ja) | 通信装置、動作手順管理方法及び動作手順管理プログラム | |
CN107306223B (zh) | 数据传输系统、方法及装置 | |
CN111741101A (zh) | 银行后台系统消息推送方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140318 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20141226 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150113 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20150519 |