サーバが、前記サーバとネットワークにより接続されている端末を介してICカードと通信を行うICカードシステムであって、前記サーバは、前記端末と通信を行う通信部と、前記ICカードの処理シーケンスを定義するスクリプトと、前記スクリプトに基づきAPDUコマンドを生成し、前記通信部に送信する処理制御部と、を有し、前記端末は、前記サーバと通信を行う通信部と、前記APDUコマンドを前記ICカードに送信し、前記APDUコマンドに対応するAPDUレスポンスを前記ICカードから受信するリーダライタ部と、を有し、前記処理制御部が、リカバリ処理が前記スクリプトで定義されている第1のAPDUコマンドに対応する第1のAPDUレスポンスを所定の時間内に受信しない場合、前記第1のAPDUコマンドに対して前記スクリプトで定義されたリカバリ処理を行い、リカバリ処理が前記スクリプトで定義されていない第2のAPDUコマンドに対応する第2のAPDUレスポンスを所定の時間内に受信しない場合、前記第2のAPDUコマンドを前記ICカードに対して再送するように制御することを特徴とするICカードシステム。サーバが、前記サーバとネットワークにより接続されている端末を介してICカードと通信を行うICカードシステムのリカバリ方法であって、前記サーバにより、前記ICカードの処理シーケンスを定義するスクリプトに基づきAPDUコマンドを生成し、前記端末に送信するステップと、前記端末により、前記サーバから受信したAPDUコマンドを前記ICカードに送信し、前記APDUコマンドに対応するAPDUレスポンスを前記ICカードから受信するステップと、前記サーバにより、リカバリ処理が前記スクリプトで定義されている第1のAPDUコマンドに対応する第1のAPDUレスポンスを所定の時間内に受信しない場合、前記第1のAPDUコマンドに対して前記スクリプトで定義されたリカバリ処理を行うステップと、前記サーバにより、リカバリ処理が前記スクリプトで定義されていない第2のAPDUコマンドに対応する第2のAPDUレスポンスを所定の時間内に受信しない場合、前記第2のAPDUコマンドを前記ICカードに対して再送するように制御するステップと、を含むことを特徴とするICカードシステムのリカバリ方法。ネットワークにより接続されている端末を介してICカードと通信を行うサーバであって、前記サーバは、前記端末と通信を行う通信部と、前記ICカードの処理シーケンスを定義するスクリプトと、前記スクリプトに基づきAPDUコマンドを生成し、前記通信部に送信する処理制御部と、を有し、前記処理制御部が、リカバリ処理が前記スクリプトで定義されている第1のAPDUコマンドに対応する第1のAPDUレスポンスを所定の時間内に受信しない場合、前記第1のAPDUコマンドに対して前記スクリプトで定義されたリカバリ処理を行い、リカバリ処理が前記スクリプトで定義されていない第2のAPDUコマンドに対応する第2のAPDUレスポンスを所定の時間内に受信しない場合、前記第2のAPDUコマンドを前記ICカードに対して再送するように制御することを特徴とするサーバ。ICカードを発行する処理、あるいは、発行済みのICカードにカードアプリケーションを搭載設定する等の処理においては、複数のコマンドをICカードに対して規定されたシーケンスで実行する必要がある。シーケンスの途中で通信断等により、ICカードからのレスポンスがサーバ側に届かなかった場合、そのコマンドがICカードに対して実行されたのか否かを、サーバは判断することができない。ICカードに対してそのコマンドが未実施の場合は、リカバリ処理において、再度、レスポンスの届かなかったコマンドからシーケンスをリトライすればよい。しかし、ICカードに対してそのコマンドが実施されていた場合、コマンドの種類によっては、そのコマンドを再度実行すると、ICカードが想定と異なる状態に遷移する。例えば、ICカードのコマンドのWRITERECORDは、同一のコマンドを1度実行した場合と2度実行した場合で、ICカードが異なる状態に遷移する。それゆえ、サーバは、このようなコマンドに対しては、適切なリカバリ処理を実行する必要がある。従来のスクリプト技術では、リカバリ処理を定義する方法が規定されていないため、シーケンスの途中で処理が中断した場合は、ICカードを初期化してシーケンスの最初から実行する必要があった。それゆえ、ICカードを発行する処理を最初からやり直したり、搭載済みのアプリケーションを削除して再度アプリケーションを搭載し、設定をやり直したりといった、時間的に非効率なリカバリ処理を行う必要があった。そこで、本発明の目的は、ICカードの処理シーケンスを定義するスクリプトにおいて、処理シーケンスの中断箇所に応じたリカバリ処理を定義することにより、効率的なリカバリ処理が可能なICカードシステム、ICカードシステムのリカバリ方法およびサーバを提供することにある。上記課題を解決するため、本発明に係るICカードシステムは、サーバが、前記サーバとネットワークにより接続されている端末を介してICカードと通信を行うICカードシステムであって、前記サーバは、前記端末と通信を行う通信部と、前記ICカードの処理シーケンスを定義するスクリプトと、前記スクリプトに基づきAPDUコマンドを生成し、前記通信部に送信する処理制御部と、を有し、前記端末は、前記サーバと通信を行う通信部と、前記APDUコマンドを前記ICカードに送信し、前記APDUコマンドに対応するAPDUレスポンスを前記ICカードから受信するリーダライタ部と、を有し、前記処理制御部が、リカバリ処理が前記スクリプトで定義されている第1のAPDUコマンドに対応する第1のAPDUレスポンスを所定の時間内に受信しない場合、前記第1のAPDUコマンドに対して前記スクリプトで定義されたリカバリ処理を行い、リカバリ処理が前記スクリプトで定義されていない第2のAPDUコマンドに対応する第2のAPDUレスポンスを所定の時間内に受信しない場合、前記第2のAPDUコマンドを前記ICカードに対して再送するように制御することを特徴とする。また、上記課題を解決するため、本発明に係るICカードシステムのリカバリ方法は、サーバが、前記サーバとネットワークにより接続されている端末を介してICカードと通信を行うICカードシステムのリカバリ方法であって、前記サーバにより、前記ICカードの処理シーケンスを定義するスクリプトに基づきAPDUコマンドを生成し、前記端末に送信するステップと、前記端末により、前記サーバから受信したAPDUコマンドを前記ICカードに送信し、前記APDUコマンドに対応するAPDUレスポンスを前記ICカードから受信するステップと、前記サーバにより、リカバリ処理が前記スクリプトで定義されている第1のAPDUコマンドに対応する第1のAPDUレスポンスを所定の時間内に受信しない場合、前記第1のAPDUコマンドに対して前記スクリプトで定義されたリカバリ処理を行うステップと、前記サーバにより、リカバリ処理が前記スクリプトで定義されていない第2のAPDUコマンドに対応する第2のAPDUレスポンスを所定の時間内に受信しない場合、前記第2のAPDUコマンドを前記ICカードに対して再送するように制御するステップと、を含むことを特徴とする。また、上記課題を解決するため、本発明に係るサーバは、ネットワークにより接続されている端末を介してICカードと通信を行うサーバであって、前記サーバは、前記端末と通信を行う通信部と、前記ICカードの処理シーケンスを定義するスクリプトと、前記スクリプトに基づきAPDUコマンドを生成し、前記通信部に送信する処理制御部と、を有し、前記処理制御部が、リカバリ処理が前記スクリプトで定義されている第1のAPDUコマンドに対応する第1のAPDUレスポンスを所定の時間内に受信しない場合、前記第1のAPDUコマンドに対して前記スクリプトで定義されたリカバリ処理を行い、リカバリ処理が前記スクリプトで定義されていない第2のAPDUコマンドに対応する第2のAPDUレスポンスを所定の時間内に受信しない場合、前記第2のAPDUコマンドを前記ICカードに対して再送するように制御することを特徴とする。本発明では、ICカードの発行、あるいは、ICカード発行後のアプリケーション搭載設定等の処理において、シーケンスの途中で処理が中断した場合でも、効率的なリカバリ処理が可能となる。また、本発明では、ICカードの処理シーケンスをスクリプトで定義するため、プログラムコードで記述するよりも、可読性メンテナンス性が高いという有利な効果をあわせて奏する。図1は本発明のICカードシステムの全体構成の一例を示す図である。ICカードシステム100では、セキュアデバイス管理サーバ以下、サーバと称する10は、運用者端末以下、端末と称する20を介してICカード30と通信を行う。サーバ10と端末20とは、インターネット、LAN等のネットワーク40を介して接続されている。サーバ10は、処理制御部11と、通信部12と、スクリプト13と、利用者パーソナライズ情報DB14と、を有する。処理制御部11は、処理の順番を制御する。また、処理制御部11は、スクリプト13を解釈し、ICカード30用のAPDUApplicationProtocolDataUnitコマンドを生成する。また、処理制御部11は、利用者パーソナライズ情報DB14から利用者パーソナライズ情報を取得する。その他、処理制御部11は、サーバ10全体の制御を行う。通信部12は、端末20との通信を行う。スクリプト13は、ICカード30用のAPDUコマンドを生成するための雛形である。利用者パーソナライズ情報DB14は、ICカード30用のAPDUコマンドの一部に埋め込まれる利用者ID等の利用者に関連する情報を管理するデータベースである。端末20は、処理制御部21と、通信部22と、GUI部23と、リーダライタ部24と、を有する。処理制御部21は、端末20全体の制御を行う。通信部22は、サーバ10との通信を行う。GUI部23は、運用者からの指示を受信し、運用者に対して処理結果を表示する。リーダライタ部24は、通信部22から受信したAPDUコマンドをICカード30に送信し、ICカード30からAPDUレスポンスを受信する。なお、リーダライタ部24は、ICカード発行機等の装置に組み込まれていてもよい。ICカード30は、マルチアプリケーションシステムのICカードであり、同一の又は異なるサービスプロバイダのサーバからダウンロードしたN個のカードアプリケーションAP1~APNが格納されている。以下、図2および図3を参照して、ICカードシステム100の処理手順を説明する。図2は、本発明のICカードシステム100の処理手順を示すシーケンス図である。図3aは、コマンドシーケンスの定義の一例であり、ICカードの発行処理、あるいは、カードアプリケーションの搭載設定のためのコマンドシーケンスを定義するスクリプトである。図3aにおいて、16進の文字列は、カードに送信されるAPDUコマンドを示す。また、スクリプト中の記号として、はコメント行を意味する。また、Pointnはシーケンスにおける特定の箇所を意味し、図3bに示すリカバリ処理の定義において利用される。また、Recoverytypeは、処理制御部11が、APDUレスポンスを受信しなかった場合に実施すべきリカバリのタイプを意味する。図3bは、リカバリ処理の定義の一例であり、図3aに示すコマンドシーケンスの定義のスクリプトにおいてRecoverytypeで指定されるリカバリのタイプ毎に、リカバリ処理を定義する。16進の文字列は、ICカードに送信されるAPDUコマンドを示す。また、スクリプト中の記号として、はコメント行を意味する。また、Defはリカバリ処理の定義の開始を意味し、Defendはリカバリ処理の定義の終了を意味する。また、RetryfromPointnは、図3aに示すコマンドシーケンスの定義のスクリプトにおけるPointnで示される特定の箇所からシーケンスをリトライすることを意味する。また、SWはリカバリ処理を構成する最初のコマンドにおいて、ICカードからの返却値が正常終了9000h以外もありうる場合に、その値を記載する。処理制御部11は、ここに記述される値以外の返却値をICカード30から受信した場合、リカバリが正常に実施されていないと判断し、ICカード30に対するコマンド実行を中断し、エラーとして処理する。ステップS101では、運用者が端末20のGUI部23に、AP1搭載のパーソナライズ情報の要求を入力する。パーソナライズ情報は、アプリケーション識別子AIDおよびカード識別子CIDを含む。GUI部23は、AP1搭載のパーソナライズ情報の要求を処理制御部21に送信する。処理制御部21は、AP1搭載のパーソナライズ情報の要求を通信部22に送信する。ステップS102では、端末20の通信部22は、AP1搭載のパーソナライズ情報の要求をサーバ10の通信部12に送信する。通信部12は、AP1搭載のパーソナライズ情報の要求を処理制御部11に送信する。ステップS103では、処理制御部11は、AIDに関するスクリプトをスクリプト13から取得する。ステップS104では、処理制御部11は、AP1搭載のパーソナライズ情報AID、CIDを利用者パーソナライズ情報DB14から取得する。ステップS105では、処理制御部11は、取得したスクリプトを解釈し、APDUコマンドを作成する。ステップS106では、処理制御部11は、APDUコマンドを通信部12に送信する。サーバ10の通信部12は、APDUコマンドを端末20の通信部22に送信する。通信部22は、APDUコマンドを処理制御部21に送信する。処理制御部21は、APDUコマンドをリーダライタ部24に送信する。ステップS107では、リーダライタ部24は、APDUコマンドをICカード30に送信する。ステップS108では、ICカード30は、APDUレスポンスをリーダライタ部24に送信する。ステップS109では、リーダライタ部24は、APDUレスポンスを処理制御部21に送信する。処理制御部21は、APDUレスポンスを通信部22に送信する。端末20の通信部22は、APDUレスポンスをサーバ10の通信部12に送信する。通信部12は、APDUレスポンスを処理制御部11に送信する。ステップS110では、処理制御部11は、所定の時間内にAPDUレスポンスを受信したか否かを判定する。ステップS106~ステップS110をAPDUコマンド数だけ繰り返す。具体的には、図3aに示すコマンドシーケンスの定義に記述されているスクリプトを上から順番に実行する。すなわち、はじめに、処理制御部11は、1行目のSELECTDF1に相当するAPDUコマンド00A40000...0000を実行する。処理制御部11が、このAPDUコマンドに対するAPDUレスポンスを受信したら、3行目のCREATEWEF1に相当するAPDUコマンド00330000...0000を実行する。この動作を、スクリプトに記述されている最後28行目のSETSTATUSに相当するAPDUコマンド00500000...0000まで繰り返し実行する。ステップS111では、処理制御部11は、処理完了通知を通信部12に送信する。サーバ10の通信部12は、処理完了通知を端末20の通信部22に送信する。通信部22は、処理完了通知を処理制御部21に送信する。処理制御部21は、処理完了通知をGUI部23に送信する。ステップS112では、GUI部23は、処理完了通知を運用者に対して表示する。次に、ステップS106~ステップS110を繰り返している最中に通信断が発生した場合について説明する。すなわち、ステップS110において、処理制御部11が、所定の時間内にAPDUレスポンスを受信しなかったと判定した場合について説明する。第1に、リカバリ処理がスクリプトで定義されているAPDUコマンド第1のAPDUコマンドの送信中に、通信断が発生した場合を検討する。この場合、処理制御部21は、第1のAPDUコマンドに対する第1のAPDUレスポンスを所定の時間内に受信しないので、第1のAPDUコマンドに対してスクリプトで定義されているリカバリ処理を行い、スクリプトのリカバリ定義で指定されている箇所からシーケンスをリトライする。例えば、処理制御部11が、図3aの9行目のWRITERECORDに相当するAPDUコマンド00D20000...0000に対するAPDUレスポンスを、所定の時間内に受信しなかった場合、図3aにおいて、このAPDUコマンドのリカバリタイプが1であることが記載されているので10行目にRecoverytype1が記載されているので、図3bのリカバリタイプ1の定義を参照する。すなわち、図3bの2行目のDefRecoverytype1を参照し、3行目のDELETEWEF1に相当するAPDUコマンド00220000...0000を実行する。続けて、5行目のRetryfromPoint1に従い、図3aの5行目のPoint1を参照し、6行目のWRITERECORDに相当するAPDUコマンド00D20000...0000からリトライする。この場合、通信断が発生する前に、9行目のWRITERECORD2回目のWRITERECORDに相当するAPDUコマンド00D20000...0000を実行したか否かに係わらず、DELETEWEF1に相当するAPDUコマンド00220000...0000を実行することにより、WEF1を削除している。それゆえ、改めて、6行目のWRITERECORD1回目のWRITERECORDに相当するAPDUコマンド00D20000...0000からリトライするため、上述したような、同一のWRITERECORDに相当するAPDUコマンドを実行したことにより、ICカード30が想定と異なる状態に遷移するといった問題が生じることはない。なお、WEFは作業用基礎ファイルWorkingElementaryFileを意味する。その他の例として、処理制御部11が、図3aの28行目のSETSTATUSに相当するAPDUコマンドに対するAPDUレスポンスを所定の時間内に受信しなかった場合、図3aにおいて、このAPDUコマンドのリカバリタイプが3であることが記載されているので29行目にRecoverytype3が記載されているので、図3bのリカバリタイプ3の定義を参照する。すなわち、図3bの14行目のDefRecoverytype3を参照し、15行目のRetryfromPoint3に従い、図3aの27行目のPoint3を参照する。続けて、28行目のSETSTATUSに相当するAPDUコマンド00500000...0000を実行する。なお、図3bの16行目にSW9000or6354との記載があるため、ICカード30からのAPDUレスポンスが正常終了を表す9000ではなく6354であっても処理制御部11は正常と判断する。また、処理制御部11が、図3bに記載されているAPDUレスポンスを、所定の時間内に受信しなかった場合は、ICカード30に対するコマンド実行を中断し、エラーとして処理する。第2に、リカバリ処理がスクリプトで定義されていないAPDUコマンド第2のAPDUコマンドの送信中に、通信断が発生した場合を検討する。この場合、処理制御部21は、第2のAPDUコマンドに対する第2のAPDUレスポンスを所定の時間内に受信しないので、同一の第2のAPDUコマンドからシーケンスをリトライする。例えば、処理制御部11が、図3aの3行目のCREATEWEF1に相当するAPDUコマンド00330000...0000に対するAPDUレスポンスを、所定の時間内に受信しなかった場合、図3aにおいて、このAPDUコマンドにはリカバリタイプが定義されていないためRecoverytypenとの記載がないため、同一のAPDUコマンドからシーケンスをリトライする。すなわち、3行目のCREATEWEF1に相当するAPDUコマンド00330000...0000を再度実行する。上述したように、第1のAPDUコマンドは、2度実行すると、ICカードが想定と異なる状態に遷移するため、処理制御部11が、第1のAPDUコマンドに対する第1のAPDUレスポンスを所定の時間内に受信しない場合、第1のAPDUコマンドに対してスクリプトで定義されたリカバリ処理を行う。一方、第2のAPDUコマンドは、2度実行しても、ICカードは想定した状態に遷移するため、処理制御部11が、第2のAPDUコマンドに対する第2のAPDUレスポンスを所定の時間内に受信しない場合、第2のAPDUコマンドを再度実行する、すなわち、第2のAPDUコマンドからシーケンスをリトライする。以上のように、本発明によれば、ICカードの発行や、ICカード発行後のアプリケーション搭載設定等の処理において、シーケンスの途中で処理が中断した場合でも、効率的なリカバリ処理が可能なICカードシステムを提供することができる。