(57)【要約】【課題】通信プロトコルの変更に際し、従前の通信プロトコルにしか対応していないＩＣカードリーダが情報処理システムに残存していても、システムの不具合を起こさないようにするための技術を提供する。【解決手段】ホスト機２が、ＩＣカードリーダ３に接続される通信インタフェース１１と、演算装置１２とを具備する。演算装置１２は、ＩＣカードリーダ３から受け取った、ＩＣカードリーダ３のバージョンを示すバージョン情報に応じて、ＩＣカード４とＩＣカードリーダ３との間の通信で使用される通信プロトコルを切り替える。【選択図】図２
2014164532.tif 000002
【特許請求の範囲】
【請求項１】
ＩＣカードリーダに接続されるインタフェースと、
演算装置
とを具備し、
前記演算装置は、前記ＩＣカードリーダから受け取った、前記ＩＣカードリーダのバージョンを示す第１バージョン情報に応じて、ＩＣカードと前記ＩＣカードリーダとの間の通信で使用される通信プロトコルを切り替える動作を行う
ホスト機。
【請求項２】
請求項１に記載のホスト機であって、
前記演算装置は、前記ＩＣカードリーダにバージョン問合せコマンドを送信し、
前記第１バージョン情報は、前記ＩＣカードリーダから前記ホスト機に送られる、前記バージョン問合せコマンドに対する応答に含まれ、
前記ホスト機は、前記第１バージョン情報に応じて、前記ＩＣカードと前記ＩＣカードリーダとの間の通信で使用される通信プロトコルを切り替える動作を行う
ホスト機。
【請求項３】
請求項２に記載のホスト機であって、
前記演算装置は、前記第１バージョン情報から、前記ＩＣカードリーダが、第１通信プロトコルに対応し、第２通信プロトコルに対応していない第１バージョンなのか、前記第１通信プロトコルと前記第２通信プロトコルの両方に対応している第２バージョンなのかを判断し、
前記ＩＣカードリーダは、前記ＩＣカードと通信を開始するとき、前記第１通信プロトコルで前記ＩＣカードと通信を行い、
前記演算装置は、前記ＩＣカードから、前記ＩＣカードのバージョンを示す第２バージョン情報を受け取り、
前記演算装置は、前記ＩＣカードリーダが前記第２バージョンであると判断したとき、前記ＩＣカードから受け取った、前記第２バージョン情報に応じて、前記ＩＣカードリーダと前記ＩＣカードの通信で使用される通信プロトコルを前記第１通信プロトコルから前記第２通信プロトコルに切り換える動作を行い、前記ＩＣカードリーダが前記第１バージョンであると判断したとき、前記ＩＣカードリーダと前記ＩＣカードの通信で使用される通信プロトコルを前記第１通信プロトコルで維持する
ホスト機。
【請求項４】
請求項３に記載のホスト機であって、
前記演算装置は、前記バージョン問合せコマンドに対する応答が異常応答である場合、前記ＩＣカードリーダが前記第１バージョンであると判断する
ホスト機。
【請求項５】
請求項３に記載のホスト機であって、
前記演算装置は、前記バージョン問合せコマンドに対する応答がない場合、前記ＩＣカードリーダが前記第１バージョンであると判断すると共に、前記ＩＣカードリーダをリセットする
ホスト機。
【請求項６】
請求項１に記載のホスト機であって、
前記ＩＣカードリーダは、前記ＩＣカードを検知すると、ＩＣカード検知通知を前記ホスト機に送り、
前記ホスト機は、前記ＩＣカード検知通知が前記第１バージョン情報を含んでいる場合、前記第１バージョン情報に応じて、前記ＩＣカードと前記ＩＣカードリーダとの間の通信で使用される通信プロトコルを切り替える動作を行う
ホスト機。
【請求項７】
請求項６に記載のホスト機であって、
前記演算装置は、前記第１バージョン情報から、前記ＩＣカードリーダが、第１通信プロトコルに対応し、第２通信プロトコルに対応していない第１バージョンなのか、前記第１通信プロトコルと前記第２通信プロトコルの両方に対応している第２バージョンなのかを判断し、
前記ＩＣカードリーダは、前記ＩＣカードと通信を開始するとき、前記第１通信プロトコルで前記ＩＣカードと通信を行い、
前記演算装置は、前記ＩＣカードから、前記ＩＣカードのバージョンを示す第２バージョン情報を受け取り、
前記演算装置は、前記ＩＣカードリーダが前記第２バージョンであると判断したとき、前記ＩＣカードから受け取った、前記第２バージョン情報に応じて、前記ＩＣカードリーダと前記ＩＣカードの通信で使用される通信プロトコルを前記第１通信プロトコルから前記第２通信プロトコルに切り換える動作を行い、前記ＩＣカードリーダが前記第１バージョンであると判断したとき、前記ＩＣカードリーダと前記ＩＣカードの通信で使用される通信プロトコルを前記第１通信プロトコルで維持する
ホスト機。
【請求項８】
請求項７に記載のホスト機であって、
前記演算装置は、前記ＩＣカード検知通知が前記第１バージョン情報を含まない場合、前記ＩＣカードリーダが前記第１バージョンであると判断する
ホスト機。
【請求項９】
請求項３又は７に記載のホスト機であって、
前記演算装置は、前記第２バージョン情報から、前記ＩＣカードが、前記第１通信プロトコルに対応し、前記第２通信プロトコルに対応していない第３バージョンなのか、前記第１通信プロトコルと前記第２通信プロトコルの両方に対応している第４バージョンなのかを判断し、
前記演算装置は、前記ＩＣカードリーダが前記第２バージョンであると判断し、且つ、前記ＩＣカードが前記第４バージョンであると判断したとき、前記ＩＣカードリーダと前記ＩＣカードの通信で使用される通信プロトコルを前記第１通信プロトコルから前記第２通信プロトコルに切り換える動作を行うと共に、前記ＩＣカードリーダが前記第２バージョンであると判断し、且つ、前記ＩＣカードが前記第３バージョンであると判断したとき、前記ＩＣカードリーダと前記ＩＣカードの通信で使用される通信プロトコルを前記第１通信プロトコルで維持する
ホスト機。
【請求項１０】
請求項９に記載のホスト機であって、
前記演算装置は、前記第２バージョン情報を含む基本情報を前記ホスト機に送るように要求する基本情報読み出しコマンドを発行して前記ＩＣカードに送信する
ホスト機。
【請求項１１】
ＩＣカードリーダと、
ホスト機
とを具備し、
前記ホスト機は、前記ＩＣカードリーダから受け取った、前記ＩＣカードリーダのバージョンを示すバージョン情報に応じて、ＩＣカードと前記ＩＣカードリーダとの間の通信で使用される通信プロトコルを切り替える動作を行う
情報処理システム。
【請求項１２】
請求項１１に記載の情報処理システムであって、
前記ホスト機は、前記ＩＣカードリーダにバージョン問合せコマンドを送信し、
前記ＩＣカードリーダのバージョンを示す前記バージョン情報は、前記ＩＣカードリーダから前記ホスト機に送られる前記バージョン問合せコマンドに対する応答に含まれ、
前記ホスト機は、前記バージョン問合せコマンドに対する応答に含まれる前記バージョン情報に応じて、前記ＩＣカードと前記ＩＣカードリーダとの間の通信で使用される通信プロトコルを切り替える動作を行う
情報処理システム。
【請求項１３】
請求項１１に記載の情報処理システムであって、
前記ＩＣカードリーダは、前記ＩＣカードを検知すると、ＩＣカード検知通知を前記ホスト機に送り、
前記ホスト機は、前記ＩＣカード検知通知が前記ＩＣカードリーダのバージョンを示す前記バージョン情報を含んでいる場合、前記ＩＣカード検知通知に含まれる前記バージョン情報に応じて、前記ＩＣカードと前記ＩＣカードリーダとの間の通信で使用される通信プロトコルを切り替える動作を行う
情報処理システム。
【請求項１４】
ＩＣカードリーダに接続されるインタフェースと演算装置とを具備するホスト機を動作させるプログラムであって、
前記演算装置に、前記ＩＣカードリーダから受け取った、前記ＩＣカードリーダのバージョンを示すバージョン情報に応じて、ＩＣカードと前記ＩＣカードリーダとの間の通信で使用される通信プロトコルを切り替えるステップを実行させる
プログラム。
【請求項１５】
請求項１４に記載のプログラムであって、
前記演算装置に、前記ＩＣカードリーダにバージョン問合せコマンドを送信するステップを実行させ、
前記バージョン情報は、前記ＩＣカードリーダから前記ホスト機に送られる、前記バージョン問合せコマンドに対する応答に含まれ、
前記ＩＣカードと前記ＩＣカードリーダとの間の通信で使用される通信プロトコルは、前記バージョン問合せコマンドに対する応答に含まれる前記バージョン情報に応じて切り替えられる
プログラム。
【請求項１６】
請求項１４に記載のプログラムであって、
前記ＩＣカードリーダは、前記ＩＣカードを検知すると、前記ＩＣカードリーダのバージョンを示す前記バージョン情報を含むＩＣカード検知通知を前記ホスト機に送り、
前記ＩＣカードと前記ＩＣカードリーダとの間の通信で使用される通信プロトコルは、前記ＩＣカード検知通知に含まれる前記バージョン情報に応じて切り替えられる
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、ホスト機、及び、プログラムに関し、特に、ＩＣカードを用いる情報処理システム及びそれに用いられるホスト機に関する。
【背景技術】
【０００２】
ＩＣカードを用いる情報処理システムにおいては、ＩＣカードとのデータ交換において使用される通信プロトコルが技術革新と共に更新される場合がある。例えば、ＥＴＣ（electronic toll collection）システムにおいては、将来、システムで使用している暗号技術の危殆化に伴い、この暗号技術の変更に併せて通信プロトコルが変更されることが予想される。
【０００３】
通信プロトコルが変更される場合でも、従前の通信プロトコルにしか対応していないＩＣカードが流通していることから、情報処理システムは、従前の通信プロトコルにしか対応していないＩＣカード（旧カード）と、新しい通信プロトコルに対応しているＩＣカード（新カード）の両方に対応するように設計する必要がある。このような要求に対処するためにプロトコルが異なるＩＣカードに対応するＩＣカードリーダが検討されており、このようなＩＣカードリーダは、例えば、特開平８−３１５０９０号公報（特許文献１）及び特許第３５４０４１４号公報（特許文献２）に開示されている。
【０００４】
通信プロトコルの変更に際しては、ＩＣカードリーダの置き換えが必要になる場合がある。例えば、通信プロトコルの変更によって通信速度が変更される場合、従前に用いられるＩＣカードリーダが、ハードウェア上の理由により変更後の通信速度に対応することが困難であれば、当該ＩＣカードリーダは、変更後の通信速度に対応したＩＣカードリーダに置き換えざるを得ない。
【０００５】
その一方で、経済的な理由（例えば、コストや耐用年数の問題）により、全てのＩＣカードリーダを一斉に置き換えることが困難な場合もある。このような場合、従前の通信プロトコルにしか対応していないＩＣカードリーダを情報処理システムに残さざるを得ない場合がある。
【０００６】
したがって、ハードウェア上の理由によって従前の通信プロトコルにしか対応していないＩＣカードリーダが情報処理システムに残存していても、システムの不具合を起こさないようにするための技術を提供することが望まれる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平８−３１５０９０号公報
【特許文献２】特許第３５４０４１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本発明の目的は、情報処理システムの通信プロトコルの変更に際し、従前の通信プロトコルにしか対応していないＩＣカードリーダが情報処理システムに残存していても、システムの不具合を起こさないようにするための技術を提供することにある。
【課題を解決するための手段】
【０００９】
本発明の一の観点では、ホスト機が、ＩＣカードリーダに接続されるインタフェースと、演算装置とを具備する。演算装置は、ＩＣカードリーダから受け取った、ＩＣカードリーダのバージョンを示す第１バージョン情報に応じて、ＩＣカードとＩＣカードリーダとの間の通信で使用される通信プロトコルを切り替える動作を行う。
【００１０】
一実施形態では、演算装置は、ＩＣカードリーダにバージョン問合せコマンドを送信し、第１バージョン情報は、ＩＣカードリーダからホスト機に送られる、バージョン問合せコマンドに対する応答に含まれる。この場合、ホスト機は、第１バージョン情報に応じて、ＩＣカードとＩＣカードリーダとの間の通信で使用される通信プロトコルを切り替える動作を行う。
【００１１】
より具体的には、一実施形態では、下記のようにして通信プロトコルを切り替える。ＩＣカードリーダは、ＩＣカードと通信を開始するとき、第１通信プロトコルでＩＣカードと通信を行う。演算装置は、第１バージョン情報から、ＩＣカードリーダが、第１通信プロトコルに対応し、第２通信プロトコルに対応していない第１バージョンなのか、第１通信プロトコルと第２通信プロトコルの両方に対応している第２バージョンなのかを判断する。演算装置は、ＩＣカードから、ＩＣカードのバージョンを示す第２バージョン情報を受け取る。演算装置は、ＩＣカードリーダが第２バージョンであると判断したとき、ＩＣカードから受け取った、第２バージョン情報に応じて、ＩＣカードリーダとＩＣカードの通信で使用される通信プロトコルを第１通信プロトコルから第２通信プロトコルに切り換える動作を行う。一方、ＩＣカードリーダが第１バージョンであると判断したとき、演算装置は、ＩＣカードリーダとＩＣカードの通信で使用される通信プロトコルを第１通信プロトコルで維持する。
【００１２】
このとき、演算装置は、バージョン問合せコマンドに対する応答が異常応答である場合、ＩＣカードリーダが第１バージョンであると判断することが好ましい。
【００１３】
また、演算装置は、バージョン問合せコマンドに対する応答がない場合、ＩＣカードリーダが第１バージョンであると判断すると共に、ＩＣカードリーダをリセットすることが好ましい。
【００１４】
他の実施形態では、ＩＣカードリーダは、ＩＣカードを検知すると、ＩＣカード検知通知をホスト機に送る。ホスト機は、ＩＣカード検知通知が第１バージョン情報を含んでいる場合、第１バージョン情報に応じて、ＩＣカードとＩＣカードリーダとの間の通信で使用される通信プロトコルを切り替える動作を行う。
【００１５】
この場合でも、一実施形態では、下記のようにして通信プロトコルを切り替える。演算装置は、第１バージョン情報から、ＩＣカードリーダが、第１通信プロトコルに対応し、第２通信プロトコルに対応していない第１バージョンなのか、第１通信プロトコルと第２通信プロトコルの両方に対応している第２バージョンなのかを判断してもよい。ＩＣカードリーダは、ＩＣカードと通信を開始するとき、第１通信プロトコルでＩＣカードと通信を行う。演算装置は、ＩＣカードから、ＩＣカードのバージョンを示す第２バージョン情報を受け取る。演算装置は、ＩＣカードリーダが第２バージョンであると判断したとき、ＩＣカードから受け取った、第２バージョン情報に応じて、ＩＣカードリーダとＩＣカードの通信で使用される通信プロトコルを第１通信プロトコルから第２通信プロトコルに切り換える動作を行う。また、演算装置は、ＩＣカードリーダが第１バージョンであると判断したとき、ＩＣカードリーダとＩＣカードの通信で使用される通信プロトコルを第１通信プロトコルで維持する。
【００１６】
ここで、演算装置は、ＩＣカード検知通知が第１バージョン情報を含まない場合、ＩＣカードリーダが第１バージョンであると判断することが好ましい。
【００１７】
より具体的には、演算装置は、第２バージョン情報から、ＩＣカードが、第１通信プロトコルに対応し、第２通信プロトコルに対応していない第３バージョンなのか、第１通信プロトコルと第２通信プロトコルの両方に対応している第４バージョンなのかを判断してもよい。この場合、演算装置は、ＩＣカードリーダが第２バージョンであると判断し、且つ、ＩＣカードが第４バージョンであると判断したとき、ＩＣカードリーダとＩＣカードの通信で使用される通信プロトコルを第１通信プロトコルから第２通信プロトコルに切り換える動作を行う。また、演算装置は、ＩＣカードリーダが第２バージョンであると判断し、且つ、ＩＣカードが第３バージョンであると判断したとき、ＩＣカードリーダとＩＣカードの通信で使用される通信プロトコルを第１通信プロトコルで維持する。
【００１８】
このとき、演算装置は、第２バージョン情報を含む基本情報をホスト機に送るように要求する基本情報読み出しコマンドを発行してＩＣカードに送信することが好ましい。
【００１９】
上記のホスト機の動作は、演算装置がプログラムを実行することで実現されてもよい。
【００２０】
本発明の他の観点では、情報処理システムが、ＩＣカードリーダと、ホスト機とを具備する。ホスト機は、ＩＣカードリーダから受け取った、ＩＣカードリーダのバージョンを示すバージョン情報に応じて、ＩＣカードとＩＣカードリーダとの間の通信で使用される通信プロトコルを切り替える動作を行う。
【００２１】
一実施形態では、ホスト機は、ＩＣカードリーダにバージョン問合せコマンドを送信する。ＩＣカードリーダのバージョンを示すバージョン情報は、ＩＣカードリーダからホスト機に送られるバージョン問合せコマンドに対する応答に含まれる。このとき、ホスト機は、バージョン問合せコマンドに対する応答に含まれるバージョン情報に応じて、ＩＣカードとＩＣカードリーダとの間の通信で使用される通信プロトコルを切り替える動作を行う。
【００２２】
一実施形態では、ＩＣカードリーダは、ＩＣカードを検知すると、ＩＣカード検知通知をホスト機に送る。ホスト機は、ＩＣカード検知通知がＩＣカードリーダのバージョンを示すバージョン情報を含んでいる場合、バージョン情報に応じて、ＩＣカードとＩＣカードリーダとの間の通信で使用される通信プロトコルを切り替える動作を行う。
【発明の効果】
【００２３】
本発明によれば、情報処理システムの通信プロトコルの変更に際し、従前の通信プロトコルにしか対応していないＩＣカードリーダが情報処理システムに残存していても、システムの不具合を起こさないようにするための技術が提供される。
【図面の簡単な説明】
【００２４】
【図１】本発明の第１の実施形態の情報処理システムの構成を示すブロック図である。
【図２】第１の実施形態におけるホスト機の構成を示すブロック図である。
【図３】第１の実施形態におけるＩＣカードリーダの構成を示すブロック図である。
【図４】第１の実施形態における、旧プロトコルにのみ対応しているＩＣカードリーダの動作を示すフローチャートである。
【図５】第１の実施形態における、新プロトコルに対応しているＩＣカードリーダの動作を示すフローチャートである。
【図６Ａ】第１の実施形態におけるホスト機の動作を示すフローチャートである。
【図６Ｂ】第１の実施形態におけるホスト機の動作を示すフローチャートである。
【図７】第１の実施形態において、ＩＣカードが挿入されたＩＣカードリーダが新プロトコルに対応している場合の情報処理システムの動作を示す図である。
【図８】第１の実施形態において、ＩＣカードが挿入されたＩＣカードリーダが新プロトコルに対応している場合の情報処理システムの動作を示す図である。
【図９Ａ】第１の実施形態において、ＩＣカードが挿入されたＩＣカードリーダが旧プロトコルにのみ対応している場合の情報処理システムの動作を示す図である。
【図９Ｂ】第１の実施形態において、ＩＣカードが挿入されたＩＣカードリーダが旧プロトコルにのみ対応している場合の情報処理システムの動作を示す図である。
【図９Ｃ】第１の実施形態において、ＩＣカードが挿入されたＩＣカードリーダが旧プロトコルにのみ対応している場合の情報処理システムの動作を示す図である。
【図１０Ａ】第１の実施形態において、ＩＣカードが挿入されたＩＣカードリーダが旧プロトコルにのみ対応している場合の情報処理システムの動作を示す図である。
【図１０Ｂ】第１の実施形態において、ＩＣカードが挿入されたＩＣカードリーダが旧プロトコルにのみ対応している場合の情報処理システムの動作を示す図である。
【図１０Ｃ】第１の実施形態において、ＩＣカードが挿入されたＩＣカードリーダが旧プロトコルにのみ対応している場合の情報処理システムの動作を示す図である。
【図１１】第２の実施形態における、新プロトコルに対応しているＩＣカードリーダの動作を示すフローチャートである。
【図１２Ａ】第２の実施形態におけるホスト機の動作を示すフローチャートである。
【図１２Ｂ】第２の実施形態におけるホスト機の動作を示すフローチャートである。
【図１３】第２の実施形態において、ＩＣカードが挿入されたＩＣカードリーダが新プロトコルに対応している場合の情報処理システムの動作を示す図である。
【図１４】第２の実施形態において、ＩＣカードが挿入されたＩＣカードリーダが新プロトコルに対応している場合の情報処理システムの動作を示す図である。
【図１５Ａ】第２の実施形態において、ＩＣカードが挿入されたＩＣカードリーダが旧プロトコルにのみ対応している場合の情報処理システムの動作を示す図である。
【図１５Ｂ】第２の実施形態において、ＩＣカードが挿入されたＩＣカードリーダが旧プロトコルにのみ対応している場合の情報処理システムの動作を示す図である。
【図１６Ａ】第２の実施形態において、ＩＣカードが挿入されたＩＣカードリーダが旧プロトコルにのみ対応している場合の情報処理システムの動作を示す図である。
【図１６Ｂ】第２の実施形態において、ＩＣカードが挿入されたＩＣカードリーダが旧プロトコルにのみ対応している場合の情報処理システムの動作を示す図である。
【図１７Ａ】第２の実施形態におけるホスト機の動作の変形例を示すフローチャートである。
【図１７Ｂ】第２の実施形態におけるホスト機の動作の変形例を示すフローチャートである。
【図１７Ｃ】第２の実施形態におけるホスト機の動作の変形例を示すフローチャートである。
【発明を実施するための形態】
【００２５】
（第１の実施形態）
図１は、本発明の第１の実施形態の情報処理システム１の構成を示すブロック図である。本実施形態では、情報処理システム１が、ホスト機２と、複数のＩＣカードリーダ３とを備えている。ＩＣカードリーダ３は、通信バス５を介してホスト機２と接続されている。一実施形態では、情報処理システム１は、ＥＴＣシステムとして用いてもよく、この場合、ホスト機２及びＩＣカードリーダ３は、料金所に設置される路側装置として用いられる。より具体的には、ＩＣカードリーダ３が料金所の車路のそれぞれに設置され、ホスト機２は、当該料金所に設置されたＩＣカードリーダ３を統括する装置として用いられる。より具体的には、ホスト機２は、ＩＣカードリーダ３を介してＩＣカード４から読み取ったデータ（進入料金所、車種等のデータ）に基づいて課金処理を行い、又は、ＩＣカード４に対して所望のデータ（進入料金所、車種等のデータ）の書き込みを行う。
【００２６】
本実施形態の情報処理システム１は、従前の通信プロトコル（以下、「旧プロトコル」ということがある。）に対応し、新しい通信プロトコル（以下、「新プロトコル」ということがある。）に対応していないＩＣカード４と、旧プロトコルに加え、新プロトコルに対応しているＩＣカード４との両方を取り扱えるように構成される。以下において、旧プロトコルにのみ対応しているＩＣカード４−１を「旧カード４−１」といい、新プロトコルにも対応しているＩＣカード４−２を「新カード４−２」ということがある。
【００２７】
加えて、本実施形態の情報処理システム１では、旧プロトコルにしか対応していないＩＣカードリーダ３と、旧プロトコルに加え、新プロトコルに対応しているＩＣカードリーダ３とが混在していることが許容される。図１においては、参照符号に付された添字“１”は、旧プロトコルにしか対応していない構成要素を示しており、添字“２”は、旧プロトコルと新プロトコルの両方に対応している構成要素を示している。即ち、図１のＩＣカードリーダ３−１と、ＩＣカード４−１とは、旧プロトコルにしか対応しておらず、ＩＣカードリーダ３−２と、ＩＣカード４−２とは、旧プロトコルと新プロトコルの両方に対応している。また、旧プロトコルにしか対応していない構成要素と旧プロトコルと新プロトコルの両方に対応している構成要素とを区別しない場合、添字は参照符号に添付されない。
【００２８】
新プロトコルでの通信は、ＩＣカードリーダ３とＩＣカード４の組み合わせが、いずれも、新プロトコルに対応している場合にのみ行われる。即ち、あるＩＣカード４が、あるＩＣカードリーダ３に挿入された場合に、当該ＩＣカードリーダ３とＩＣカード４の両方が新プロトコルに対応している場合にのみ、新プロトコルでの通信が行われる。
【００２９】
ここで、新プロトコルでの通信では、ＩＣカードリーダ３−２とＩＣカード４−２との間の通信の通信速度が、旧プロトコルでの通信におけるＩＣカードリーダ３（３−１又は３−２）とＩＣカード４−１との通信における通信速度よりも速くなるように設定されている。通信速度の高速化は、ＩＣカードリーダ３−２と新カード４−２の間の通信において、データ演算に割り当てられる時間を増大可能にするという利点がある。例えば、新プロトコルにおいて高度な暗号化処理が行われる場合、暗号化処理に必要なデータ演算量が増大し、データ演算に必要な時間も増大する。このような状況の下で一定時間内でＩＣカード４との通信を完了するためには、暗号化処理に必要な演算を行うための演算時間を確保する必要があり、通信速度の高速化は、演算時間の確保のために有効である。
【００３０】
その一方で、ＩＣカードリーダ３−１が、ハードウェア上の問題によって新プロトコルで用いられる通信速度に対応できない場合には、ＩＣカードリーダ３−１を新プロトコルによる通信に用いることはできない。このような場合、新プロトコルに規定された通信速度で通信可能なハードウェアを有するＩＣカードリーダ３、即ち、ＩＣカードリーダ３−２に置き換える必要性が生じることになる。
【００３１】
理想的には、現状で存在している、旧プロトコルにしか対応していないＩＣカードリーダ３−１の全てを、同時に、新プロトコルに対応しているＩＣカードリーダ３−２に更新することが望ましい。しかしながら、全てのＩＣカードリーダ３−１を同時に更新することは、コスト面から困難なことがある。このような場合、ＩＣカードリーダ３−１をシステムに残存させておくことが考えられる。
【００３２】
その一方で、旧プロトコルにしか対応していないＩＣカードリーダ３−１をシステムに残存させておくと、予期しない動作により、システムに不具合を起こすことがあり得る。特に、旧プロトコルにしか対応していないＩＣカードリーダ３−１に、それが対応できないコマンド（例えば、新プロトコルにのみ規定されているコマンド）を送付すると、ＩＣカードリーダ３−１が誤動作することがあり得る。以下に述べられる本発明の実施形態は、このような問題に対処するためのものである。以下に詳細に後述されるように、本実施形態では、ホスト機２が、各ＩＣカードリーダ３が、旧プロトコルにしか対応していないのか、新プロトコルに対応しているのかを判別し、それぞれのＩＣカードリーダ３に応じた動作を行う。このようなホスト機２の動作により、旧プロトコルにしか対応していないＩＣカードリーダ３−１と、新プロトコルに対応しているＩＣカードリーダ３−２とが混在していても、システムの不具合の発生が防止される。以下、本実施形態のホスト機２について、詳細に説明する。
【００３３】
図２は、本実施形態におけるホスト機２の構成を示すブロック図である。ホスト機２は、通信インタフェース１１と、演算装置１２と、暗号演算装置１３と、記憶装置１４とを備えている。
【００３４】
通信インタフェース１１は、ＩＣカードリーダ３と接続され、ＩＣカードリーダ３と通信に用いられるインタフェースである。より具体的には、通信インタフェース１１は、ＩＣカードリーダ３へのコマンドの送信、ＩＣカードリーダ３からの応答（レスポンス）の受信、ＩＣカードリーダ３を介したＩＣカード４へのコマンドの送信、ＩＣカードリーダ３を介したＩＣカード４からの応答（レスポンス）の受信に使用される。
【００３５】
演算装置１２は、ホスト機２の動作において必要となる様々なデータ処理を行う。より具体的には、演算装置１２は、ＩＣカードリーダ３及びＩＣカード４に送るべきコマンドを生成し、また、ＩＣカードリーダ３又はＩＣカード４から送られてきた応答を処理する。
【００３６】
暗号演算装置１３は、暗号化処理、及び、復号化処理を行う専用の装置である。ＩＣカード４に送られるコマンドは、暗号演算装置１３によって暗号化処理が行われ、ＩＣカード４から受け取った応答は、暗号演算装置１３によって復号化処理が行われる。
【００３７】
記憶装置１４は、ホスト機２において行われるデータ処理において必要となる様々なデータを記憶する記憶部として機能する。詳細には、記憶装置１４は、動作プログラム１５と、ＩＣカードリーダ情報１６とを記憶する。動作プログラム１５は、演算装置１２が実行すべきデータ処理を記述しており、演算装置１２は、動作プログラム１５を実行することで、所望のデータ処理を行う。ＩＣカードリーダ情報１６は、各ＩＣカードリーダ３に関する情報、特に、各ＩＣカードリーダ３が旧プロトコルにしか対応していないバージョンなのか新プロトコルにも対応しているバージョンなのか判断するために用いられる情報である。本実施形態では、ＩＣカードリーダ情報１６として、各ＩＣカードリーダ３のバージョンを示す情報であるバージョン情報が登録される。後述されるように、バージョン情報を参照することで、各ＩＣカードリーダ３が旧プロトコルにしか対応していないバージョンなのか新プロトコルにも対応しているバージョンなのかを判別することができる。ホスト機２の動作については、後に詳細に説明する。
【００３８】
一方、図３は、本実施形態のＩＣカードリーダ３の構成を示すブロック図である。本実施形態のＩＣカードリーダ３は、通信インタフェース２１と、ＩＣカードインタフェース２２と、演算装置２３と、記憶媒体２４とを備えている。
【００３９】
通信インタフェース２１は、ホスト機２に接続され、ホスト機２と通信するために使用されるインタフェースである。
【００４０】
一方、ＩＣカードインタフェース２２は、ＩＣカード４が挿入されるスロットを有しており、挿入されたＩＣカード４と通信するために使用される。ここで、ＩＣカードインタフェース２２が対応する通信速度は、旧プロトコルにしか対応していないＩＣカードリーダ３−１と、新プロトコルにも対応しているＩＣカードリーダ３−２とで異なる。旧プロトコルにしか対応していないＩＣカードリーダ３−１のＩＣカードインタフェース２２がＩＣカード４と通信可能な速度は、旧プロトコルで規定されている通信速度に限定される。一方、新プロトコルにも対応しているＩＣカードリーダ３−２のＩＣカードインタフェース２２は、（旧プロトコルで規定されている通信速度よりも速い）新プロトコルで規定されている通信速度でＩＣカード４−２と通信可能である。
【００４１】
演算装置２３は、ＩＣカードリーダ３の動作において必要となる様々なデータ処理を行う。より具体的には、演算装置２３は、ホスト機２から送られてきたコマンドを解釈し、そのコマンドに応じたデータ処理を行う。演算装置２３によって行われるデータ処理には、コマンドをＩＣカード４に転送する転送処理と、ＩＣカード４から送られてきた応答をホスト機２に転送する動作も行う。加えて、演算装置２３は、ホスト機２からＩＣカードリーダ３宛てに送られてきたコマンドに対応した動作を行う。
【００４２】
記憶媒体２４は、ＩＣカードリーダ３の動作において必要となる様々なデータを記憶する記憶部として機能する。詳細には、記憶媒体２４は、動作プログラム２５を記憶する。動作プログラム２５は、演算装置２３が実行すべきデータ処理を記述しており、演算装置２３は、動作プログラム２５を実行することで、所望のデータ処理を行う。
【００４３】
続いて、ＩＣカードリーダ３の動作について、図４及び図５を参照しながら説明する。図４は、旧プロトコルにのみ対応しているＩＣカードリーダ３−１の動作の例を示しており、図５は、新プロトコルに対応しているＩＣカードリーダ３−２の動作の例を示している。以下に述べられるＩＣカードリーダ３の動作は、演算装置２３が、動作プログラム２５を実行することで実現されることに留意されたい。
【００４４】
図４を参照して、旧プロトコルにのみ対応しているＩＣカードリーダ３−１は、ＩＣカード４がＩＣカードリーダ３のスロットに挿入されたことを検知すると（ステップＳ２１）、ＩＣカード検出通知をホスト機２に送信する（ステップＳ２２）。
【００４５】
また、ホスト機２からコマンドを受け取った場合（ステップＳ２３）、ＩＣカードリーダ３−１は、受け取ったコマンドを解釈し、受け取ったコマンドの種類に応じて異なる処理を行う。受け取ったコマンドの解釈は、例えば、コマンドに含まれるヘッダ（コマンドヘッダ）に基づいて行われる。
【００４６】
詳細には、ホスト機２から受け取ったコマンドが基本情報読み出しコマンドである場合、ＩＣカードリーダ３は、ＩＣカード４から基本情報を読み出すための処理を行う（ステップＳ２４）。ここで、基本情報読み出しコマンドとは、ＩＣカード４から基本情報（ＩＣカード４に関する様々な情報）の読み出しを要求するコマンドである。より具体的には、ＩＣカードリーダ３−１は、ホスト機２から受け取った基本情報読み出しコマンドをＩＣカード４に転送し、更に、ＩＣカード４から受け取った基本情報読み出しコマンドに対する応答を、ホスト機２に転送する。この応答には、ＩＣカード４のバージョンを示すバージョン情報が含まれている。このバージョン情報から、ホスト機２は、ＩＣカード４が、旧カード４−１と新カード４−２のいずれであるかを判断することができる。
【００４７】
更に、ホスト機２から受け取ったコマンドがカード排出コマンドである場合、ＩＣカードリーダ３−１は、挿入されたＩＣカード４をＩＣカードリーダ３のスロットから排出する（ステップＳ２５）。
【００４８】
また、ホスト機２から受け取ったコマンドが、ＩＣカードリーダ３−１が対応していないコマンドであると解釈した場合、ＩＣカードリーダ３−１は、ホスト機２に、異常応答（即ち、異常なコマンドを受け取ったことをホスト機２に通知する応答）を返す（ステップＳ２６）。
【００４９】
更に、ホスト機２から受け取ったコマンドが、ＩＣカード４に向けて送信されたコマンド（ＩＣカードコマンド）であると解釈した場合、ＩＣカードリーダ３−１は、当該ＩＣカードコマンドをＩＣカード４に転送する（ステップＳ２７）。
【００５０】
また、ホスト機２から受け取ったコマンドが、ＩＣカードリーダ３にバージョンを問い合わせるバージョン問合せコマンドであると解釈した場合、ＩＣカードリーダ３−１は、そのバージョンを示すバージョン情報をホスト機２に送信する（ステップＳ２８）。ただし、旧プロトコルにしか対応していないＩＣカードリーダ３−１が既設である場合には、ＩＣカードリーダ３−１が、バージョン問合せコマンドに対応していない場合があり得る。この場合、当該ＩＣカードリーダ３−１は、バージョン問合せコマンドを受け取っても、バージョン情報をホスト機２に通知しないことになる。
【００５１】
一方、図５に図示されているように、新プロトコルに対応しているＩＣカードリーダ３−２は、概略的には旧プロトコルにのみ対応しているＩＣカードリーダ３−１と類似した動作を行う。相違点は、新プロトコルに対応しているＩＣカードリーダ３−２は、ホスト機２から新プロトコル切替コマンドを受け取ると、その動作を、新プロトコルに対応した動作に切り替えることである（ステップＳ２９）。具体的には、ＩＣカードリーダ３−２は、ＩＣカードインタフェース２２がＩＣカード４と通信する通信速度を、新プロトコルに規定された通信速度に切り換える。これにより、ＩＣカードリーダ３−２は、以後、ＩＣカード４との通信を、新プロトコルに規定された通信速度で行うことができるような状態になる。
【００５２】
なお、新たに導入するＩＣカードリーダ３−２については、その仕様設計により、バージョン問合せコマンドに応答してバージョン情報をホスト機２に返すように設計することが可能である。即ち、新プロトコルに対応しているＩＣカードリーダ３−２については、バージョン問合せコマンドに応答してバージョン情報をホスト機２に返すという前提で、ホスト機２の動作を設計してもよい。
【００５３】
続いて、本実施形態のホスト機２の動作について説明する。本実施形態のホスト機２は、上述された動作を行う、旧プロトコルにのみ対応するＩＣカードリーダ３−１と、新プロトコルにも対応するＩＣカードリーダ３−２のいずれにも対応した動作を行う。詳細には、ホスト機２は、各ＩＣカードリーダ３から得た情報によって、各ＩＣカードリーダ３が旧プロトコルにしか対応していないのか、新プロトコルにも対応しているのかを判断し、その判断に基づいて、各ＩＣカードリーダ３とＩＣカード４との間の通信で使用される通信プロトコルを切り替える動作を行う。
【００５４】
より具体的には、本実施形態では、ホスト機２は、各ＩＣカードリーダ３に、そのバージョンを問い合わせるバージョン問合せを送信し、ＩＣカードリーダ３からのバージョン問合せに対する応答として、バージョン情報を得る。ホスト機２は、旧プロトコルにしか対応していないＩＣカードリーダ３−１については、旧プロトコルに規定されているコマンドを発行してＩＣカードリーダ３に送信する。一方、新プロトコルに対応しているＩＣカードリーダ３については、ホスト機２は、新プロトコルに規定されているコマンドを発行してＩＣカードリーダ３に送信する。以下では、ホスト機２の動作の詳細について説明する。
【００５５】
図６Ａ、図６Ｂは、本実施形態のホスト機２の動作の詳細を示すフローチャートである。以下に述べられるホスト機２の動作は、演算装置１２が、動作プログラム１５を実行することで実現されることに留意されたい。
【００５６】
図６Ａを参照して、各ＩＣカードリーダ３（図６Ａ、図６Ｂでは、「ＩＣＣＲ」と記載されている）が起動すると、起動したことをホスト機２に知らせる起動通知がホスト機２に送られる。ホスト機２の演算装置１２は、各ＩＣカードリーダ３から起動通知を受け取ると、ＩＣカードリーダ３の起動に応答した処理設定を行う（ステップＳ０１）。例えば、起動通知を送ったＩＣカードリーダ３が起動したことを示す情報を記憶装置１４のＩＣカードリーダ情報１６に登録する。
【００５７】
更に、ホスト機２の演算装置１２は、起動したＩＣカードリーダ３（即ち、起動通知を送信したＩＣカードリーダ３）に、バージョン問合せコマンドを発行する（ステップＳ０２）。発行されたバージョン問合せコマンドは、起動したＩＣカードリーダ３に送られる。ホスト機２の演算装置１２は、バージョン問合せコマンドを発行した後、起動したＩＣカードリーダ３からの応答を待つ（ステップＳ０３）。
【００５８】
ホスト機２の演算装置１２は、起動したＩＣカードリーダ３からの応答が正常であると判断した場合（ステップＳ０４）、該応答に含まれているバージョン情報を、記憶装置１４のＩＣカードリーダ情報１６に登録する。起動したＩＣカードリーダ３が旧プロトコルにしか対応していないバージョンである場合、該ＩＣカードリーダ３が旧プロトコルにしか対応していないバージョンである旨を示す情報がＩＣカードリーダ情報１６に登録されることになる（ステップＳ０６）。また、起動したＩＣカードリーダ３が新プロトコルに対応しているバージョンである場合、該ＩＣカードリーダ３が新プロトコルに対応しているバージョンである旨を示す情報がＩＣカードリーダ情報１６に登録されることになる（ステップＳ０７）。
【００５９】
ここで、ステップＳ０４において、起動したＩＣカードリーダ３からの応答が異常であると判断された場合にも、該ＩＣカードリーダ３が旧プロトコルにしか対応していないバージョンである旨を示すバージョン情報がＩＣカードリーダ情報１６に登録される（ステップＳ０７）。
【００６０】
一方、ステップＳ０３において、起動したＩＣカードリーダ３からの応答を受け取らずに所定時間が経過してタイムアウトが発生した場合、ホスト機２の演算装置１２は、バージョン問合せコマンドの発行回数が所定の上限回数に到達するまで、繰り返してバージョン問合せコマンドを発行する（ステップＳ０８）。バージョン問合せコマンドの発行回数が、所定の上限回数に到達すると、起動したＩＣカードリーダ３をリセットし（ステップＳ０９）、更に、該ＩＣカードリーダ３が旧プロトコルにしか対応していないバージョンである旨を示すバージョン情報がＩＣカードリーダ情報１６に登録される。ステップＳ０９においてＩＣカードリーダ３がリセットされるのは、バージョン問合せコマンドに対する応答を返さない場合、ＩＣカードリーダ３が、バージョン問合せコマンドを受け取ったことにより、不所望な動作を行っている（例えば、暴走している）ことが考えられるからである。ＩＣカードリーダ３をリセットすることで、当該ＩＣカードリーダ３を元の状態に戻すことができる。
【００６１】
ステップＳ０１〜Ｓ０９の処理は、各ＩＣカードリーダ３が起動するごとに、起動したＩＣカードリーダ３に対して行われる。なお、ホスト機２に接続されているＩＣカードリーダ３の全てが一斉に起動される場合には、各ＩＣカードリーダ３について、順次にステップＳ０１〜Ｓ０９の処理が行われても良い。
【００６２】
図６Ｂを参照して、各ＩＣカードリーダ３は、それにＩＣカード４が挿入されたことを検出すると、ＩＣカード４の挿入を検出したことを示すＩＣカード検出通知をホスト機２に送信する。ホスト機２の演算装置１２は、そのＩＣカード検出通知を受け取ると（ステップＳ１０）、基本情報読み出しコマンドを発行し、該ＩＣカードリーダ３に送信する（ステップＳ１１）。ＩＣカードリーダ３は、該基本情報読み出しコマンドをＩＣカード４に転送すると共に、ＩＣカード４からの応答をホスト機２に転送する。基本情報読み出しコマンドのＩＣカード４への転送、及び、基本情報読み出しコマンドに対する応答のホスト機２への転送は、旧プロトコルに従って行われる。基本情報読み出しコマンドに対する応答には、ＩＣカード４のバージョンを示すバージョン情報が含まれている。
【００６３】
ホスト機２の演算装置１２は、基本情報読み出しコマンドに対する応答から、挿入されたＩＣカード４が正常なカードであるか否かを判断する（ステップＳ１２）。正常なカードでないと判断した場合、ホスト機２の演算装置１２は、カード排出コマンドを発行してＩＣカードリーダ３に送信する（ステップＳ１７）。これにより、該挿入されたＩＣカード４に対する処理は完了する。
【００６４】
一方、挿入されたＩＣカード４が正常なカードであると判断した場合、ホスト機２の演算装置１２は、基本情報読み出しコマンドに対する応答に含まれているバージョン情報から、挿入されたＩＣカード４が、旧カード４−１と新カード４−２のいずれであるかを判断する（ステップＳ１３）。
【００６５】
基本情報読み出しコマンドに対する応答に含まれているバージョン情報により、挿入されたＩＣカード４が旧カード４−１と判断される場合、又は、何らかの不具合によって基本情報読み出しコマンドに旧カード４−１と新カード４−２のいずれであるかを示す情報が含まれていない場合、ホスト機２の演算装置１２は、旧プロトコルによる処理を継続する（ステップＳ１４）。この場合、ホスト機２の演算装置１２は、旧プロトコルに規定されたＩＣカードコマンドを発行し、発行したＩＣカードコマンドをＩＣカードリーダ３を介してＩＣカード４に転送する。
【００６６】
一方、挿入されたＩＣカード４が新カード４−２と判断される場合、ホスト機２の演算装置１２は、記憶装置１４に記憶されているＩＣカードリーダ情報１６を参照して、ＩＣカード４が挿入されたＩＣカードリーダ３のバージョン情報を確認する（ステップＳ１５）。
【００６７】
該ＩＣカードリーダ３のバージョン情報からＩＣカード４が挿入されたＩＣカードリーダ３が新プロトコルに対応しているＩＣカードリーダ３−２と判断した場合、ホスト機２の演算装置１２は、当該ＩＣカードリーダ３と、それに挿入されたＩＣカード４（新カード４−２）とを、新プロトコルによる通信を行う状態に切り換える（ステップＳ１６）。より具体的には、当該ＩＣカード４とＩＣカードリーダ３のそれぞれに、それぞれが新プロトコルに対応する動作を開始するように指示する新プロトコル要求コマンドを送る。その後、ホスト機２の演算装置１２は、新プロトコルに規定されたＩＣカードコマンドを発行し、発行したＩＣカードコマンドを該ＩＣカードリーダ３を介して該ＩＣカード４に転送する。
【００６８】
一方、該ＩＣカードリーダ３のバージョン情報から、ＩＣカード４が挿入されたＩＣカードリーダ３が旧プロトコルにのみ対応しているＩＣカードリーダ３−１と判断した場合、ホスト機２の演算装置１２は、旧プロトコルによる処理を継続する（ステップＳ１４）。ＩＣカードリーダ情報１６に登録されている該ＩＣカードリーダ３のバージョン情報が不定である場合も、ホスト機２は、ＩＣカード４が挿入されたＩＣカードリーダ３が旧プロトコルにのみ対応しているＩＣカードリーダ３−１と判断する。これらの場合、ホスト機２の演算装置１２は、旧プロトコルに規定されたＩＣカードコマンドを発行し、発行したＩＣカードコマンドを、ＩＣカードリーダ３を介してＩＣカード４に転送する。
【００６９】
所定の処理が完了すると、ホスト機２は、カード排出コマンドを発行してＩＣカードリーダ３に送信する（ステップＳ１７）。これにより、該挿入されたＩＣカード４に対する処理は完了する。
【００７０】
図７、図８、図９Ａ〜図９Ｃ、図１０Ａ〜図１０Ｃは、上記の動作を行うホスト機２及びＩＣカードリーダ３（旧プロトコルにのみ対応しているＩＣカードリーダ３−１、及び、新プロトコルに対応しているＩＣカードリーダ３−２）が情報処理システム１に組み込まれた場合の、情報処理システム１全体の動作を示している。情報処理システム１の動作は、ＩＣカード４が挿入されたＩＣカードリーダ３が、旧プロトコルにのみ対応しているＩＣカードリーダ３−１であるか、新プロトコルに対応しているＩＣカードリーダ３−２であるかに応じて異なる。以下、それぞれの場合について、説明する。
【００７１】
（１）ＩＣカード４が挿入されたＩＣカードリーダ３が、新プロトコルに対応している場合
図７及び図８は、ＩＣカード４が挿入されたＩＣカードリーダ３が、新プロトコルに対応しているＩＣカードリーダ３−２である場合の情報処理システム１の動作を示す図である。ここで、図７は、挿入されたＩＣカード４が旧カード４−１である場合の動作を示しており、図８は、挿入されたＩＣカード４が新カード４−２である場合の動作を示している。
【００７２】
ＩＣカード４が挿入されたＩＣカードリーダ３が、新プロトコルに対応している場合、ホスト機２は、ＩＣカード４が挿入されたＩＣカードリーダ３へのバージョン問合せコマンドの応答に含まれるバージョン情報から、該ＩＣカードリーダ３が新プロトコルに対応しているＩＣカードリーダ３−２であると認識する。そして、ホスト機２は、挿入されたＩＣカード４が旧カード４−１であるか新カード４−２であるかに応じて、旧プロトコルのまま通信を継続するか、新プロトコルへの切り替えが行われるかを決定する。
【００７３】
詳細には、図７、図８に図示されているように、ＩＣカードリーダ３−２が起動されると、ホスト機２は、バージョン問合せコマンドをＩＣカードリーダ３−２に送信する。ＩＣカードリーダ３−２は、自身が新プロトコルに対応しているバージョンであることを示すバージョン情報をホスト機２に返す。これにより、ホスト機２は、該ＩＣカードリーダ３−２が、新プロトコルに対応していることを認識することができる。
【００７４】
更に、ＩＣカード４がＩＣカードリーダ３−２に挿入されると、ＩＣカードリーダ３−２は、挿入されたＩＣカード４を活性化するための動作を行う。例えば、ＩＣカードリーダ３−２は、挿入されたＩＣカード４への電力及び動作クロックの供給を開始すると共に、リセット信号をＩＣカード４に供給する。ＩＣカード４が活性化されると、該ＩＣカード４は、活性化応答をＩＣカードリーダ３−２に送る。ＩＣカードリーダ３−２は、ＩＣカード４から活性化応答を受け取ると、ＩＣカード４がＩＣカードリーダ３−２に挿入されたことを知らせるＩＣカード検出通知をホスト機２に送信する。
【００７５】
ＩＣカード検出通知がホスト機２に送られると、ホスト機２とＩＣカード４との間で、ＩＣカードリーダ３−２を介した通信が開始される。ホスト機２とＩＣカード４との間の通信は、まず、旧プロトコルで開始される。詳細には、ホスト機２は、基本情報読み出し要求コマンドを、ＩＣカードリーダ３−２に送る。ＩＣカードリーダ３−２は、受け取った基本情報読み出し要求コマンドをＩＣカード４に転送する。ＩＣカード４は、ＩＣカードリーダ３を介して基本情報読み出し要求コマンドへの応答をホスト機２に送信する。以上の動作は、ＩＣカードリーダ３に挿入されたＩＣカード４が、旧カード４−１、新カード４−２のいずれである場合も同一である。
【００７６】
基本情報読み出し要求コマンドへの応答には、挿入されたＩＣカード４のバージョンを示すバージョン情報が含まれている。このバージョン情報から、ホスト機２は、挿入されたＩＣカード４が旧プロトコルにのみ対応している旧カード４−１であるか、新プロトコルに対応している新カード４−２であるかを判断することができる。
【００７７】
図７に図示されているように、基本情報読み出し要求コマンドへの応答に含まれているバージョン情報からＩＣカードリーダ３−２に挿入されたＩＣカード４が旧カード４−１であることを認識すると、ホスト機２は、旧プロトコルでの通信を継続し、旧プロトコルで定義されているＩＣカードコマンドをＩＣカードリーダ３−２に送る。ＩＣカードリーダ３−２は、ホスト機２から送られてきたＩＣカードコマンドを旧カード４−１に転送する。旧カード４−１は、受け取った各ＩＣカードコマンドに対する応答を、ＩＣカードリーダ３−２を介してホスト機２に送信する。旧カード４−１に所望のＩＣカードコマンドを送信し、且つ、それらに対する応答を受け取ると、ホスト機２は、旧カード４−１との通信を完了し、旧カード４−１をＩＣカードリーダ３−２から排出する。
【００７８】
一方、図８に図示されているように、基本情報読み出し要求コマンドへの応答に含まれているバージョン情報からＩＣカードリーダ３−２に挿入されたＩＣカード４が旧カード４−１であることを認識すると、ホスト機２は、通信に用いられるプロトコルを、旧プロトコルから新プロトコルに切り替える動作を行う。詳細には、ホスト機２は、新カード４−２に、新プロトコルに対応した動作に切り換えるように要求する新プロトコル切替要求コマンドを送信する。図８においては、この新プロトコル切替要求コマンドは、「新プロトコル切替要求（カード）」として図示されている。新カード４−２は、新プロトコル切替要求コマンドを受け取ると、新プロトコルに対応する動作を開始するとともに、この新プロトコル切替要求コマンドに対する応答をホスト機２に返す。ホスト機２は、この応答により、新カード４−２が新プロトコルに対応する動作を開始したことを認識することができる。
【００７９】
ホスト機２は、新カード４−２から新プロトコル切替要求コマンドに対する応答を受け取ると、ＩＣカードリーダ３−２に新プロトコルに対応した動作に切り換えるように要求する新プロトコル切替要求コマンドを送信する。図８においては、この新プロトコル切替要求コマンドは、「新プロトコル切替要求（リーダ）」として図示されている。ＩＣカードリーダ３−２は、新プロトコル切替要求コマンドを受け取ると、新プロトコルに対応した動作を開始するとともに、この新プロトコル切替要求コマンドに対する応答をホスト機２に返す。
【００８０】
その後、ホスト機２は、所望の動作を実現するためのＩＣカードコマンドを、新カード４−２に送信し、新カード４−２は、受け取った各ＩＣカードコマンドに対する応答をホスト機２−２に送信する。ホスト機２−２と新カード４−２との間で交換されるＩＣカードコマンド及び応答は、いずれも、新プロトコルで定義されているものが使用される。
【００８１】
以上に説明されているように、ＩＣカード４が挿入されたＩＣカードリーダ３が新プロトコルに対応している場合には、該ＩＣカード４が旧カード４−１、新カード４−２のいずれであるかに応じて、旧プロトコルでの通信が継続され、又は、新プロトコルへの切り替えが行われる。
【００８２】
（２）ＩＣカード４が挿入されたＩＣカードリーダ３が、旧プロトコルにのみ対応している場合
図９Ａ〜図９Ｃ及び図１０Ａ〜図１０Ｃは、ＩＣカード４が挿入されるＩＣカードリーダ３が、旧プロトコルにのみ対応しているＩＣカードリーダ３−１である場合の情報処理システム１の動作を示す図である。ここで、図９Ａ〜図９Ｃは、挿入されたＩＣカード４が旧カード４−１である場合の動作を示しており、図１０Ａ〜図１０Ｃは、挿入されたＩＣカード４が新カード４−２である場合の動作を示している。ＩＣカード４が挿入されたＩＣカードリーダ３が旧プロトコルにのみ対応している場合、ホスト機２は、ＩＣカード４が挿入されたＩＣカードリーダ３へのバージョン問合せコマンドの応答から、該ＩＣカードリーダ３が旧プロトコルにのみ対応しているＩＣカードリーダ３−１であると認識する。そして、ホスト機２は、挿入されたＩＣカード４が旧カード４−１であるか新カード４−２であるかに関わらず、旧プロトコルの通信を継続する。
【００８３】
ここで、旧プロトコルにのみ対応しているＩＣカードリーダ３−１が既設である場合、該ＩＣカードリーダ３−１が、バージョン問合せコマンドに対応している場合と、対応していない場合とが想定される。図９Ａ、図１０Ａは、ＩＣカードリーダ３−１がバージョン問合せに対応している場合の動作を示している。
【００８４】
図９Ａ、図１０Ａに図示されているように、ＩＣカードリーダ３−１が起動されると、ホスト機２は、バージョン問合せコマンドをＩＣカードリーダ３−１に送信する。ＩＣカードリーダ３−１は、自身が旧プロトコルにのみ対応しているバージョンであることを示すバージョン情報をホスト機２に返す。これにより、ホスト機２は、該ＩＣカードリーダ３−１が、旧プロトコルにのみ対応していることを認識することができる。
【００８５】
更に、ＩＣカード４がＩＣカードリーダ３−１に挿入されると、ＩＣカードリーダ３−１は、挿入されたＩＣカード４を活性化するための動作を行う。ＩＣカード４が活性化されると、該ＩＣカード４は、活性化応答をＩＣカードリーダ３−１に送る。ＩＣカードリーダ３−１は、ＩＣカード４から活性化応答を受け取ると、ＩＣカード４のＩＣカードリーダ３−１への挿入を検知したことを知らせるＩＣカード検出通知をホスト機２に送信する。
【００８６】
ＩＣカード検出通知がホスト機２に送られると、ホスト機２とＩＣカード４との間で、ＩＣカードリーダ３を介した通信が行われる。ホスト機２とＩＣカード４との間の通信は、まず、旧プロトコルで開始される。詳細には、ホスト機２は、基本情報読み出し要求コマンドを、ＩＣカードリーダ３−１に送る。ＩＣカードリーダ３−１は、受け取った基本情報読み出し要求コマンドをＩＣカード４に転送する。ＩＣカード４は、ＩＣカードリーダ３を介して基本情報読み出し要求コマンドへの応答をホスト機２に送信する。以上の動作は、ＩＣカード４が、旧カード４−１、新カード４−２のいずれである場合も同一である。
【００８７】
基本情報読み出し要求コマンドへの応答には、挿入されたＩＣカード４が、旧プロトコルにのみ対応している旧カード４−１であるか、新プロトコルに対応している新カード４−２であるかを示す情報（例えば、挿入されたＩＣカード４のバージョン情報）が含まれている。しかしながら、ホスト機２は、挿入されたＩＣカード４が、旧カード４−１である場合（図９Ａ）及び新カード４−２である場合（図１０Ａ）のいずれであっても、旧プロトコルでの通信を継続する。詳細には、ホスト機２は、旧プロトコルで定義されているＩＣカードコマンドをＩＣカードリーダ３−１に送る。ＩＣカードリーダ３−１は、ホスト機２から送られてきたＩＣカードコマンドをＩＣカード４に転送する。ＩＣカード４は、受け取った各ＩＣカードコマンドに対する応答を、ＩＣカードリーダ３−１を介してホスト機２に送信する。挿入されたＩＣカード４に所望のＩＣカードコマンドを送信し、且つ、それらに対する応答を受け取ると、ホスト機２は、ＩＣカード４との通信を完了し、ＩＣカード４をＩＣカードリーダ３−１から排出する。
【００８８】
一方、図９Ｂ、図９Ｃ、図１０Ｂ、図１０Ｃは、ＩＣカードリーダ３−１がバージョン問合せコマンドに対応していない場合の動作を示している。バージョン問合せコマンドに対応していないＩＣカードリーダ３−１がバージョン問合せコマンドを受け取った場合、当該ＩＣカードリーダ３−１は、受け取ったコマンドに対応していないことを示す応答（異常応答）を返す場合がある（図９Ｂ、図１０Ｂ）。この場合、異常応答が返されたことから、ホスト機２は、該ＩＣカードリーダ３−１が、旧プロトコルにのみ対応していると判断する。
【００８９】
また、バージョン問合せコマンドに対応していないＩＣカードリーダ３−１がバージョン問合せコマンドを受け取った場合、当該ＩＣカードリーダ３−１は、何らの応答も返さない場合があり得る。（図９Ｃ、図１０Ｃ）。この場合、ホスト機２は、カードリーダ３−１から何らの応答も受け取らないまま所定時間が経過し、タイムアウトが発生することになる。タイムアウトが発生した場合、ホスト機２は、バージョン問合せコマンドの発行回数が所定の上限回数に到達するまで繰り返してバージョン問合せコマンドを発行する。
【００９０】
バージョン問合せコマンドの発行回数が所定の上限回数に到達してもバージョン問合せコマンドに対する応答を、ＩＣカードリーダ３−１から受け取らなかった場合、ホスト機２は、該ＩＣカードリーダ３−１が、旧プロトコルにのみ対応していると判断する。
【００９１】
いずれの場合でも、ホスト機２は、ＩＣカードリーダ３−１が、旧プロトコルにのみ対応していると判断すると、旧プロトコルでの通信を継続して行う。ＩＣカード４がＩＣカードリーダ３−１に挿入された後の動作は、上述された、ＩＣカードリーダ３−１がバージョン問合せコマンドに対応している場合の動作（図９Ａ、図１０Ａ）と同一である。
【００９２】
以上に説明されているように、ホスト機２は、バージョン問合せコマンドへの応答からＩＣカード４が挿入されたＩＣカードリーダ３が旧プロトコルにのみ対応していると判断すると、旧プロトコルでの通信を継続して行う。この場合、新プロトコルにのみ規定されているコマンド（新プロトコル切替要求コマンド、及び、ＩＣカードコマンド）は、ＩＣカードリーダ３−１及びＩＣカード４に送られない。このため、ＩＣカードリーダ３−１が予期しない動作を行うことによるシステムの不具合の発生を抑制することができる。
【００９３】
（第２の実施形態）
図１１は、第２の実施形態における、新プロトコルに対応するＩＣカードリーダ３−２の動作を示すフローチャートであり、図１２Ａ、図１２Ｂは、第２の実施形態におけるホスト機２の動作を示すフローチャートである。第２の実施形態の情報処理システム１は、第１の実施形態と同様の構成を有しているが、ホスト機２及びＩＣカードリーダ３の動作が変更される。
【００９４】
より具体的には、第２の実施形態では、ホスト機２が、ＩＣカード４がＩＣカードリーダ３に挿入されたときに該ＩＣカードリーダ３からホスト機２に送られるＩＣカード検出通知に含まれる情報から、該ＩＣカードリーダ３が旧プロトコルにのみ対応しているバージョンか、新プロトコルに対応しているバージョンかを判断する。ここで、新プロトコルに対応するＩＣカードリーダ３−２は、図１１に図示されているように、ＩＣカード検出通知に、自身が新プロトコルに対応するバージョンであることを示すバージョン情報を組み込むように設計される（ステップＳ２２）。ホスト機２は、その情報から、ＩＣカード４が挿入されたＩＣカードリーダ３が、新プロトコルに対応するＩＣカードリーダ３−２であると判断する。本実施形態では、新プロトコルに対応するＩＣカードリーダ３−２は、第１の実施形態のように、バージョン問合せリクエストに応答する機能（図５のステップＳ２８）を必要とされない。
【００９５】
一方、旧プロトコルにしか対応していないＩＣカードリーダ３−１が既設である場合、該ＩＣカードリーダ３−１は、自身のバージョンを示すバージョン情報をＩＣカード検出通知に組み込むとは限らない。そこで、ホスト機２は、あるＩＣカードリーダ３から受け取ったＩＣカード検出通知に、該ＩＣカードリーダ３のバージョンを示すバージョン情報が含まれていない場合には、該ＩＣカードリーダ３が旧プロトコルにのみ対応するＩＣカードリーダ３−１であると判断する。ここで、ホスト機２は、ＩＣカード４が挿入されたＩＣカードリーダ３が旧プロトコルにのみ対応するバージョンであることを示すバージョン情報がＩＣカード検出通知に含まれている場合には、その情報から、ＩＣカード４が挿入されたＩＣカードリーダ３が、旧プロトコルにのみ対応するＩＣカードリーダ３−１であると確定的に判断することができる。一方、ＩＣカード検出通知に、そのような情報が含まれていなくても、該ＩＣカードリーダ３が新プロトコルに対応するバージョンであることを示すバージョン情報が含まれていない場合には、ホスト機２は、該ＩＣカードリーダ３が旧プロトコルにのみ対応するＩＣカードリーダ３−１であると判断する。
【００９６】
続いて、図１２Ａ、図１２Ｂを参照しながら、本実施形態におけるホスト機２の動作について説明する。
【００９７】
図１２Ａを参照して、各ＩＣカードリーダ３（図１２Ａでは、「ＩＣＣＲ」と記載されている）が起動すると、起動したことをホスト機２に知らせる起動通知がホスト機２に送られる。ホスト機２の演算装置１２は、各ＩＣカードリーダ３から起動通知を受け取ると、ＩＣカードリーダ３の起動に応答した処理設定を行う（ステップＳ０１）。例えば、起動通知を送ったＩＣカードリーダ３が起動したことを示す情報を記憶装置１４のＩＣカードリーダ情報１６に登録する。
【００９８】
その後、各ＩＣカードリーダ３が、それぞれにＩＣカード４が挿入されたことを検出すると、ＩＣカード４の挿入を検出したことを示すＩＣカード検出通知をホスト機２に送信する。
【００９９】
ホスト機２の演算装置１２は、ＩＣカード検出通知を受け取ると（ステップＳ１０）、そのＩＣカード検出通知に、ＩＣカード４が挿入されたＩＣカードリーダ３のバージョン情報（ＩＣカードリーダ３が旧プロトコルにしか対応していないバージョンか、新プロトコルに対応しているバージョンかを示す情報）が含まれているかを判断する（ステップＳ３１）。バージョン情報が含まれていない場合、ＩＣカードリーダ情報１６に登録されている、ＩＣカードリーダ３のバージョン情報は、不定のままである。
【０１００】
一方、ＩＣカード検出通知にバージョン情報が含まれている場合、ホスト機２の演算装置１２は、該バージョン情報を、記憶装置１４のＩＣカードリーダ情報１６に登録する。ＩＣカード４が挿入されたＩＣカードリーダ３が新プロトコルに対応しているバージョンである場合（ステップＳ３２）、該ＩＣカードリーダ３が新プロトコルに対応しているバージョンである旨を示す情報がＩＣカードリーダ情報１６に登録されることになる（ステップＳ３３）。また、ＩＣカード４が挿入されたＩＣカードリーダ３が旧プロトコルにしか対応していないバージョンである場合（ステップＳ３２）、該ＩＣカードリーダ３が旧プロトコルにしか対応していないバージョンである旨を示す情報がＩＣカードリーダ情報１６に登録されることになる（ステップＳ３４）。
【０１０１】
続いて、ホスト機２の演算装置１２は、基本情報読み出しコマンドを発行し、該ＩＣカードリーダ３に送信する（ステップＳ１１）。ＩＣカードリーダ３は、該基本情報読み出しコマンドをＩＣカード４に転送すると共に、ＩＣカード４からの応答をホスト機２に転送する。基本情報読み出しコマンドのＩＣカード４への転送、及び、基本情報読み出しコマンドに対する応答のホスト機２への転送は、旧プロトコルに従って行われる。基本情報読み出しコマンドに対する応答には、ＩＣカード４が、旧カード４−１と新カード４−２のいずれであるかを示す情報（例えば、ＩＣカード４のバージョンを示すバージョン情報）が含まれている。
【０１０２】
ホスト機２の演算装置１２は、基本情報読み出しコマンドに対する応答から、挿入されたＩＣカード４が正常なカードであるか否かを判断する（ステップＳ１２）。正常なカードでないと判断した場合、ホスト機２の演算装置１２は、カード排出コマンドを発行してＩＣカードリーダ３に送信する（ステップＳ１７）。これにより、該挿入されたＩＣカード４に対する処理は完了する。
【０１０３】
一方、挿入されたＩＣカード４が正常なカードであると判断した場合、ホスト機２の演算装置１２は、基本情報読み出しコマンドに対する応答から、挿入されたＩＣカード４が、旧カード４−１と新カード４−２のいずれであるかを判断する（ステップＳ１３）。
【０１０４】
基本情報読み出しコマンドに対する応答に含まれている情報により、挿入されたＩＣカード４が旧カード４−１と判断される場合、又は、何らかの不具合によって基本情報読み出しコマンドに旧カード４−１と新カード４−２のいずれであるかを示す情報が含まれていない場合、ホスト機２の演算装置１２は、旧プロトコルによる処理を継続する（ステップＳ１４）。この場合、ホスト機２の演算装置１２は、旧プロトコルに規定されたＩＣカードコマンドを発行し、発行したＩＣカードコマンドをＩＣカードリーダ３を介してＩＣカード４に転送する。
【０１０５】
一方、挿入されたＩＣカード４が、新カード４−２と判断される場合、更に、ホスト機２の演算装置１２は、記憶装置１４に記憶されているＩＣカードリーダ情報１６を参照して、ＩＣカード４が挿入されたＩＣカードリーダ３のバージョン情報を確認する（ステップＳ１５）。
【０１０６】
該ＩＣカードリーダ３のバージョン情報からＩＣカード４が挿入されたＩＣカードリーダ３が新プロトコルに対応しているＩＣカードリーダ３−２と判断した場合、ホスト機２の演算装置１２は、当該ＩＣカードリーダ３と、それに挿入されたＩＣカード４（新カード４−２）とを、新プロトコルに対応する動作に切り換える（ステップＳ１６）。より具体的には、当該ＩＣカード４とＩＣカードリーダ３のそれぞれに、それぞれが新プロトコルに対応する動作を開始するように指示する新プロトコル要求コマンドを送る。その後、ホスト機２の演算装置１２は、新プロトコルに規定されたＩＣカードコマンドを発行し、発行したＩＣカードコマンドを該ＩＣカードリーダ３を介して該ＩＣカード４に転送する。
【０１０７】
一方、該ＩＣカードリーダ３のバージョン情報から、ＩＣカード４が挿入されたＩＣカードリーダ３が旧プロトコルにのみ対応しているＩＣカードリーダ３−１と判断した場合、ホスト機２の演算装置１２は、旧プロトコルによる処理を継続する（ステップＳ１４）。ＩＣカードリーダ情報１６に登録されている該ＩＣカードリーダ３のバージョン情報が不定である場合も、ホスト機２は、ＩＣカード４が挿入されたＩＣカードリーダ３が旧プロトコルにのみ対応しているＩＣカードリーダ３−１と判断する。これらの場合、ホスト機２の演算装置１２は、旧プロトコルに規定されたＩＣカードコマンドを発行し、発行したＩＣカードコマンドを、ＩＣカードリーダ３を介してＩＣカード４に転送する。
【０１０８】
所定の処理が完了すると、ホスト機２は、カード排出コマンドを発行してＩＣカードリーダ３に送信する（図１２ＡのステップＳ１７）。これにより、該挿入されたＩＣカード４に対する処理は完了する。
【０１０９】
図１３、図１４、図１５Ａ、図１５Ｂ、図１６Ａ、図１６Ｂは、上記の動作を行うホスト機２及びＩＣカードリーダ３（旧プロトコルにのみ対応しているＩＣカードリーダ３−１、及び、新プロトコルに対応しているＩＣカードリーダ３−２）が情報処理システム１に組み込まれた場合の、情報処理システム１全体の動作を示している。情報処理システム１の動作は、ＩＣカード４が挿入されたＩＣカードリーダ３が、旧プロトコルにのみ対応しているＩＣカードリーダ３−１であるか、新プロトコルに対応しているＩＣカードリーダ３−２であるかに応じて異なる。以下、それぞれの場合について、説明する。
【０１１０】
（１）ＩＣカード４が挿入されたＩＣカードリーダ３が、新プロトコルに対応している場合
図１３及び図１４は、ＩＣカード４が挿入されたＩＣカードリーダ３が、新プロトコルに対応しているＩＣカードリーダ３−２である場合の情報処理システム１の動作を示す図である。ここで、図１３は、挿入されたＩＣカード４が旧カード４−１である場合の動作を示しており、図１４は、挿入されたＩＣカード４が新カード４−２である場合の動作を示している。
【０１１１】
ＩＣカード４が挿入されたＩＣカードリーダ３が新プロトコルに対応している場合、ホスト機２は、該ＩＣカードリーダ３から送られてくるＩＣカード挿入通知から、該ＩＣカードリーダ３が新プロトコルに対応しているＩＣカードリーダ３−２であると認識する。そして、ホスト機２は、挿入されたＩＣカード４が旧カード４−１であるか新カード４−２であるかに応じて、旧プロトコルのまま通信を継続するか、新プロトコルへの切り替えが行われるかを決定する。
【０１１２】
詳細には、図１３、図１４に図示されているように、ＩＣカード４がＩＣカードリーダ３−２に挿入されると、ＩＣカードリーダ３−２は、挿入されたＩＣカード４を活性化するための動作を行う。ＩＣカード４が活性化されると、該ＩＣカード４は、活性化応答をＩＣカードリーダ３−２に送る。ＩＣカードリーダ３−２は、ＩＣカード４から活性化応答を受け取ると、ＩＣカード４がＩＣカードリーダ３−２に挿入されたことを知らせるＩＣカード検出通知をホスト機２に送信する。ホスト機２は、該ＩＣカード挿入通知から、ＩＣカード４が挿入されたＩＣカードリーダ３が新プロトコルに対応しているＩＣカードリーダ３−２であると認識する。
【０１１３】
ＩＣカード検出通知がホスト機２に送られると、ホスト機２とＩＣカード４との間で、ＩＣカードリーダ３−２を介した通信が行われる。ホスト機２とＩＣカード４との間の通信は、まず、旧プロトコルで開始される。詳細には、ホスト機２は、基本情報読み出し要求コマンドを、ＩＣカードリーダ３−２に送る。ＩＣカードリーダ３−２は、受け取った基本情報読み出し要求コマンドをＩＣカード４に転送する。ＩＣカード４は、ＩＣカードリーダ３を介して基本情報読み出し要求コマンドへの応答をホスト機２に送信する。以上の動作は、ＩＣカード４が、旧カード４−１、新カード４−２のいずれである場合も同一である。
【０１１４】
基本情報読み出し要求コマンドへの応答には、挿入されたＩＣカード４が、旧プロトコルにのみ対応している旧カード４−１であるか、新プロトコルに対応している新カード４−２であるかを示す情報（例えば、挿入されたＩＣカード４のバージョン情報）が含まれている。
【０１１５】
図１３に図示されているように、基本情報読み出し要求コマンドへの応答からＩＣカードリーダ３−２に挿入されたＩＣカード４が旧カード４−１であることを認識すると、ホスト機２は、旧プロトコルでの通信を継続し、旧プロトコルで定義されているＩＣカードコマンドをＩＣカードリーダ３−２に送る。ＩＣカードリーダ３−２は、ホスト機２から送られてきたＩＣカードコマンドを旧カード４−１に転送する。旧カード４−１は、受け取った各ＩＣカードコマンドに対する応答を、ＩＣカードリーダ３−２を介してホスト機２に送信する。旧カード４−１に所望のＩＣカードコマンドを送信し、且つ、それらに対する応答を受け取ると、ホスト機２は、旧カード４−１との通信を完了し、旧カード４−１をＩＣカードリーダ３−２から排出する。
【０１１６】
一方、図１４に図示されているように、基本情報読み出し要求コマンドへの応答からＩＣカードリーダ３−２に挿入されたＩＣカード４が旧カード４−１であることを認識すると、ホスト機２は、通信に用いられるプロトコルを、旧プロトコルから新プロトコルに切り替える動作を行う。詳細には、ホスト機２は、新カード４−２に、新プロトコルに対応した動作に切り換えるように要求する新プロトコル切替要求コマンドを送信する。図１４においては、この新プロトコル切替要求コマンドは、「新プロトコル切替要求（カード）」として図示されている。新カード４−２は、新プロトコル切替要求コマンドを受け取ると、新プロトコルに対応する動作を開始するとともに、この新プロトコル切替要求コマンドに対する応答をホスト機２に返す。ホスト機２は、この応答により、新カード４−２が新プロトコルに対応する動作を開始したことを認識することができる。
【０１１７】
ホスト機２は、新カード４−２から新プロトコル切替要求コマンドに対する応答を受け取ると、ＩＣカードリーダ３−２に新プロトコルに対応した動作に切り換えるように要求する新プロトコル切替要求コマンドを送信する。図８においては、この新プロトコル切替要求コマンドは、「新プロトコル切替要求（リーダ）」として図示されている。ＩＣカードリーダ３−２は、新プロトコル切替要求コマンドを受け取ると、新プロトコルに対応した動作を開始するとともに、この新プロトコル切替要求コマンドに対する応答をホスト機２に返す。
【０１１８】
その後、ホスト機２は、所望の動作を実現するためのＩＣカードコマンドを、新カード４−２に送信し、新カード４−２は、受け取った各ＩＣカードコマンドに対する応答をホスト機２−２に送信する。ホスト機２−２と新カード４−２との間で交換されるＩＣカードコマンド及び応答は、いずれも、新プロトコルで定義されているものが使用される。
【０１１９】
以上に説明されているように、ＩＣカード４が挿入されたＩＣカードリーダ３が新プロトコルに対応している場合には、該ＩＣカード４が旧カード４−１、新カード４−２のいずれであるかに応じて、旧プロトコルでの通信が継続され、又は、新プロトコルへの切り替えが行われる。
【０１２０】
（２）ＩＣカード４が挿入されたＩＣカードリーダ３が、旧プロトコルにのみ対応している場合
図１５Ａ、図１５Ｂ、図１６Ａ、及び図１６Ｂは、ＩＣカード４が挿入されるＩＣカードリーダ３が、旧プロトコルにのみ対応しているＩＣカードリーダ３−１である場合の情報処理システム１の動作を示す図である。ここで、図１５Ａ、図１５Ｂは、挿入されたＩＣカード４が旧カード４−１である場合の動作を示しており、図１６Ａ、図１６Ｂは、挿入されたＩＣカード４が新カード４−２である場合の動作を示している。ＩＣカード４が挿入されたＩＣカードリーダ３が旧プロトコルにのみ対応している場合、ホスト機２は、ＩＣカード４が挿入されたＩＣカードリーダ３へのバージョン問合せコマンドの応答から、該ＩＣカードリーダ３が旧プロトコルにのみ対応しているＩＣカードリーダ３−１であると認識する。そして、ホスト機２は、挿入されたＩＣカード４が旧カード４−１であるか新カード４−２であるかに関わらず、旧プロトコルの通信を継続する。
【０１２１】
ここで、旧プロトコルにのみ対応しているＩＣカードリーダ３−１が既設である場合、該ＩＣカードリーダ３−１が、そのバージョンを示す情報（バージョン情報）をＩＣカード検出通知に組み込んで送信する場合と、そうしない場合とが想定される。図１５Ａ、図１６Ａは、ＩＣカードリーダ３−１がバージョン情報をＩＣカード検出通知に組み込んで送信する場合の動作を示している。
【０１２２】
図１５Ａ、図１６Ａに図示されているように、ＩＣカード４がＩＣカードリーダ３−１に挿入されると、ＩＣカードリーダ３−１は、挿入されたＩＣカード４を活性化するための動作を行う。ＩＣカード４が活性化されると、該ＩＣカード４は、活性化応答をＩＣカードリーダ３−１に送る。ＩＣカードリーダ３−１は、ＩＣカード４から活性化応答を受け取ると、ＩＣカード４がＩＣカードリーダ３−１に挿入されたことを知らせるＩＣカード検出通知をホスト機２に送信する。ホスト機２は、該ＩＣカード挿入通知から、ＩＣカード４が挿入されたＩＣカードリーダ３が旧プロトコルにのみ対応しているＩＣカードリーダ３−１であると認識する。
【０１２３】
ＩＣカード検出通知がホスト機２に送られると、ホスト機２とＩＣカード４との間で、ＩＣカードリーダ３を介した通信が行われる。ホスト機２とＩＣカード４との間の通信は、まず、旧プロトコルで開始される。詳細には、ホスト機２は、基本情報読み出し要求コマンドを、ＩＣカードリーダ３−１に送る。ＩＣカードリーダ３−１は、受け取った基本情報読み出し要求コマンドをＩＣカード４に転送する。ＩＣカード４は、ＩＣカードリーダ３を介して基本情報読み出し要求コマンドへの応答をホスト機２に送信する。以上の動作は、ＩＣカード４が、旧カード４−１、新カード４−２のいずれである場合も同一である。
【０１２４】
基本情報読み出し要求コマンドへの応答には、挿入されたＩＣカード４が、旧プロトコルにのみ対応している旧カード４−１であるか、新プロトコルに対応している新カード４−２であるかを示す情報（例えば、挿入されたＩＣカード４のバージョン情報）が含まれている。しかしながら、ホスト機２は、既に、ＩＣカード４が挿入されたＩＣカードリーダ３が旧プロトコルにしか対応していないと認識しているので、挿入されたＩＣカード４が、旧カード４−１である場合（図１５Ａ）及び新カード４−２である場合（図１６Ａ）のいずれであっても、旧プロトコルでの通信を継続する。詳細には、ホスト機２は、旧プロトコルで定義されているＩＣカードコマンドをＩＣカードリーダ３−１に送る。ＩＣカードリーダ３−１は、ホスト機２から送られてきたＩＣカードコマンドをＩＣカード４に転送する。ＩＣカード４は、受け取った各ＩＣカードコマンドに対する応答を、ＩＣカードリーダ３−１を介してホスト機２に送信する。挿入されたＩＣカード４に所望のＩＣカードコマンドを送信し、且つ、それらに対する応答を受け取ると、ホスト機２は、ＩＣカード４との通信を完了し、ＩＣカード４をＩＣカードリーダ３−１から排出する。
【０１２５】
一方、図１５Ｂ及び図１６Ｂは、ＩＣカードリーダ３−１が、そのバージョンを示す情報（バージョン情報）をＩＣカード検出通知に組み込んで送信しない場合の動作を示している。ＩＣカードリーダ３−１が、そのバージョンを示す情報（バージョン情報）をＩＣカード検出通知に組み込んで送信しない場合、ホスト機２は、該ＩＣカード挿入通知から、ＩＣカード４が挿入されたＩＣカードリーダ３が旧プロトコルにのみ対応しているＩＣカードリーダ３−１であると判断する。ＩＣカード４がＩＣカードリーダ３−１に挿入された後の動作は、上述された、ＩＣカードリーダ３−１が、そのバージョンを示す情報（バージョン情報）をＩＣカード検出通知に組み込んで送信する場合の動作（図１５Ａ、図１６Ａ）と同一である。
【０１２６】
以上に説明されているように、ホスト機２は、ＩＣカード検出通知から、ＩＣカード４が挿入されたＩＣカードリーダ３が旧プロトコルにのみ対応していると判断すると、旧プロトコルでの通信を継続して行う。この場合、新プロトコルにのみ規定されているコマンド（新プロトコル切替要求コマンド、及び、ＩＣカードコマンド）は、ＩＣカードリーダ３−１及びＩＣカード４に送られない。このため、ＩＣカードリーダ３−１が予期しない動作を行うことによるシステムの不具合の発生を抑制することができる。
【０１２７】
本実施形態において、第１の実施形態と同様に、ホスト機２が、各ＩＣカードリーダ３が起動したときに、そのバージョンを問い合わせるバージョン問合せコマンドをＩＣカードリーダ３に送信してもよい。バージョン問合せコマンドを送信するか否かは、情報処理システム１の運用者の設定に依存して決定してもよい。
【０１２８】
図１７Ａ〜図１７Ｃは、この場合のホスト機２の動作を示すフローチャートである。運用者が、各ＩＣカードリーダ３が起動したときに、そのバージョンを問い合わせるバージョン問合せコマンドをＩＣカードリーダ３に送信するようにホスト機２を設定した場合（ステップＳ５１）、ホスト機２は、起動したＩＣカードリーダ３（即ち、起動通知を送信したＩＣカードリーダ３）に、バージョン問合せコマンドを発行する（ステップＳ０２）。以後、第１の実施形態で説明したステップＳ０３〜Ｓ０９が実行され、起動したＩＣカードリーダ３が、旧プロトコルにのみ対応するバージョンか、新プロトコルに対応するバージョンかが判断され、いずれのバージョンかを示す情報が、記憶装置１４のＩＣカードリーダ情報１６として登録される。
【０１２９】
一方、バージョン問合せコマンドを送信しないようにホスト機２を設定した場合、この段階では、起動したＩＣカードリーダ３のバージョンは不定であり、記憶装置１４のＩＣカードリーダ情報１６のバージョン情報は、不定のまま残される（ステップＳ５２）。
【０１３０】
その後、各ＩＣカードリーダ３が、それぞれにＩＣカード４が挿入されたことを検出すると、ＩＣカード４の挿入を検出したことを示すＩＣカード検出通知をホスト機２に送信する。ＩＣカード検出通知を受け取って以降のホスト機２の動作は、上述された、本実施形態のホスト機２の動作と同一である（ステップＳ３１〜Ｓ３４，Ｓ１１〜Ｓ１７）。
【０１３１】
以上に説明されているように、本実施形態のホスト機２は、ＩＣカード検出通知からＩＣカード４が挿入されたＩＣカードリーダ３が旧プロトコルにのみ対応していると判断すると、旧プロトコルでの通信を継続して行う。この場合、新プロトコルにのみ規定されているコマンド（新プロトコル切替要求コマンド、及び、ＩＣカードコマンド）は、ＩＣカードリーダ３−１及びＩＣカード４に送られない。このため、ＩＣカードリーダ３−１が予期しない動作を行うことによるシステムの不具合の発生を抑制することができる。
【０１３２】
以上には、本発明の実施形態が具体的に記述されているが、本発明は、上記の実施形態に限定されない。本発明が、様々な変更と共に実施可能であることは、当業者には自明的であろう。例えば、上述の実施形態では、ＩＣカードリーダ３が、そのスロットにＩＣカード４が挿入されたことを検知してＩＣカード検出通知をホスト機２に送信するように構成されていると説明されているが、ＩＣカードリーダ３は、スロットを有するものに限定されず、ＩＣカード４を何らかの手段で検出できればよい。例えば、上述の実施形態では、ＩＣカードリーダ３は、ＩＣカード４からの活性化応答に応答してＩＣカード検出通知を送信するとして記述されている。
【符号の説明】
【０１３３】
１        ：情報処理システム
２        ：ホスト機
３        ：ＩＣカードリーダ
４        ：ＩＣカード
４−１    ：旧カード
４−２    ：新カード
５        ：通信バス
１１      ：通信インタフェース
１２      ：演算装置
１３      ：暗号演算装置
１４      ：記憶装置
１５      ：動作プログラム
１６      ：ＩＣカードリーダ情報
２１      ：通信インタフェース
２２      ：ＩＣカードインタフェース
２３      ：演算装置
２４      ：記憶媒体
２５      ：動作プログラム
【図１】
2014164532.tif 000003
【図２】
2014164532.tif 000004
【図３】
2014164532.tif 000005
【図４】
2014164532.tif 000006
【図５】
2014164532.tif 000007
【図６Ａ】
2014164532.tif 000008
【図６Ｂ】
2014164532.tif 000009
【図７】
2014164532.tif 000010
【図８】
2014164532.tif 000011
【図９Ａ】
2014164532.tif 000012
【図９Ｂ】
2014164532.tif 000013
【図９Ｃ】
2014164532.tif 000014
【図１０Ａ】
2014164532.tif 000015
【図１０Ｂ】
2014164532.tif 000016
【図１０Ｃ】
2014164532.tif 000017
【図１１】
2014164532.tif 000018
【図１２Ａ】
2014164532.tif 000019
【図１２Ｂ】
2014164532.tif 000020
【図１３】
2014164532.tif 000021
【図１４】
2014164532.tif 000022
【図１５Ａ】
2014164532.tif 000023
【図１５Ｂ】
2014164532.tif 000024
【図１６Ａ】
2014164532.tif 000025
【図１６Ｂ】
2014164532.tif 000026
【図１７Ａ】
2014164532.tif 000027
【図１７Ｂ】
2014164532.tif 000028
【図１７Ｃ】
2014164532.tif 000029