(57)【要約】【課題】ファイルのバージョン情報等の固有情報を直接かつ容易に取得することが可能な情報処理装置、情報処理システム、情報処理方法、およびプログラムを提供する。【解決手段】少なくとも電子機器装置との間で通信制御を行い、電子機器装置からの情報を取得する上位装置２０としての情報処理装置であって、状況に応じた処理を実行するアプリケーションプログラムおよび電子機器装置との通信制御用の複数のミドルウェアＭＷを含むソフトウェアシステム２１０を有しており、通信制御用の複数のミドルウェアをまとめてクラスライブラリ２１４として形成され、クラスライブラリ２１４には、ソフトウェアシステムの固有情報を記憶するクラスを備えている。【選択図】図４
2013225300.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも電子機器装置との間で通信制御を行い、当該電子機器装置からの情報を取得する情報処理装置であって、
状況に応じた処理を実行するアプリケーションプログラムおよび前記電子機器装置との通信制御用の複数のミドルウェアを含むソフトウェアシステムを有しており、
前記通信制御用の複数のミドルウェアをまとめてクラスライブラリとして形成され、
前記クラスライブラリには、前記ソフトウェアシステムの固有情報を記憶するクラスを備えている
情報処理装置。
【請求項２】
前記クラスライブラリを提供するファイルは、
実行プログラム部およびクラスライブラリのエキスポート部を含む形態で形成され、
前記クラスライブラリのエキスポート部は、
前記電子機器装置との通信制御用クラスライブラリのエキスポートを行う機能を含み、
前記実行プログラム部は、
実行すると前記ファイルまたはエキスポートされるクラスライブラリの固有情報としてのバーション情報を出力する機能を含む
請求項１記載の情報処理装置。
【請求項３】
情報処理装置と、
前記情報処理装置との間で通信を行うとともに状況に応じた処理を実行して、前記情報処理装置に対し現在の状態と処理結果を送信する電子機器装置と、を有し、
前記情報処理装置は、
少なくとも電子機器装置との間で通信制御を行い、当該電子機器装置からの情報を取得する機能を含み、
状況に応じた処理を実行するアプリケーションプログラムおよび前記電子機器装置との通信制御用の複数のミドルウェアを含むソフトウェアシステムを有しており、
前記通信制御用の複数のミドルウェアをまとめてクラスライブラリとして形成され、
前記クラスライブラリには、前記ソフトウェアシステムの固有情報を記憶するクラスを備えている
情報処理システム。
【請求項４】
前記クラスライブラリを提供するファイルは、
実行プログラム部およびクラスライブラリのエキスポート部を含む形態で形成され、
前記クラスライブラリのエキスポート部は、
前記電子機器装置との通信制御用クラスライブラリのエキスポートを行う機能を含み、
前記実行プログラム部は、
実行すると前記ファイルまたはエキスポートされるクラスライブラリの固有情報としてのバーション情報を出力する機能を含む
請求項３記載の情報処理システム。
【請求項５】
少なくとも電子機器装置との間で通信制御を行い、当該電子機器装置からの情報を取得する情報処理装置における情報処理方法であって、
状況に応じた処理を実行するアプリケーションプログラムおよび前記電子機器装置との通信制御用の複数のミドルウェアを含むソフトウェアシステムを形成し、
前記通信制御用の複数のミドルウェアをまとめてクラスライブラリとして形成し、
前記クラスライブラリには、前記ソフトウェアシステムの固有情報を記憶するクラスを形成する
情報処理方法。
【請求項６】
前記クラスライブラリを提供するファイルは、
実行プログラム部およびクラスライブラリのエキスポート部を含む形態で形成し、
前記クラスライブラリのエキスポート部により、前記電子機器装置との通信制御用クラスライブラリのエキスポートを行い、
前記実行プログラム部により、実行すると前記ファイルまたはエキスポートされるクラスライブラリの固有情報としてのバーション情報を出力する
請求項５記載の情報処理方法。
【請求項７】
少なくとも電子機器装置との間で通信制御を行い、当該電子機器装置からの情報を取得する情報処理装置における情報処理であって、
状況に応じた処理を実行するアプリケーションプログラムおよび前記電子機器装置との通信制御用の複数のミドルウェアを含むソフトウェアシステムを形成し、
前記通信制御用の複数のミドルウェアをまとめてクラスライブラリとして形成し、
前記クラスライブラリには、前記ソフトウェアシステムの固有情報を記憶するクラスを形成する
情報処理をコンピュータに実行させるプログラム。
【請求項８】
前記クラスライブラリを提供するファイルは、
実行プログラム部およびクラスライブラリのエキスポート部を含む形態で形成し、
前記クラスライブラリのエキスポート部により、前記電子機器装置との通信制御用クラスライブラリのエキスポートを行い、
前記実行プログラム部により、実行すると前記ファイルまたはエキスポートされるクラスライブラリの固有情報としてのバーション情報を出力する
情報処理をコンピュータに実行させる請求項７記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、カードリーダライタ等の電子機器装置の通信制御処理等に適用可能なオブジェクト指向環境で動作するソフトウェアシステムを採用する情報処理装置、情報処理システム、情報処理方法、およびプログラムに関するものである。
【背景技術】
【０００２】
オブジェクト指向環境で動作するソフトウェアシステムを採用する情報処理装置を含む情報処理システムには、たとえば、カードリーダライタ等の電子機器装置と、カードリーダライタと通信を行うＡＴＭ等の上位装置が含まれる。
金融機関などで使用され、キャッシュレスや個人認証などを実現するカードとして、プラスチック基板内部に集積回路チップ（ＩＣチップ）が埋め込まれ、表面にＩＣ端子が配置されたＩＣカード（接触式ＩＣカード）や内部にアンテナコイルが配置されたＩＣカード（非接触式ＩＣカード）がある。
そして、このＩＣカードに対する情報の再生または記録は、電子機器装置としてのカードリーダライタによって行われる。
【０００３】
カードリーダライタは、上位装置からのコマンド（コマンドＡＰＤＵ：Application Protocol Data Unit）を受信し、ＩＣカードとの通信プロトコルに沿った形式（コマンドＴＰＤＵ：Transmission Protocol Data Unit）に変換する。
そして、電圧や通信速度等も変換した後に、そのコマンドをＩＣカードへ送信する。また、ＩＣカードからの応答を受信した後、逆変換（レスポンスＴＰＤＵからレスポンスＡＰＤＵへの変換）を行って、その応答を上位装置へ送信する。
【０００４】
上位装置とカードリーダライタとの間の通信は、ＲＳ２３２ＣやＵＳＢ（Universal Serial Bus）などが一般的であり、カードリーダライタとＩＣカードとの間の通信は、ＴＴＬレベル、ＵＳＢ、および非接触通信等が一般的である。
また、一般に、カードリーダライタは、ＡＰＤＵのデータ内容を解釈することなく、単にＴＰＤＵに変換する処理を行う。
【０００５】
このようなカードリーダライタ等の電子機器装置と通信を行うＡＴＭ等の上位装置には、電子機器装置との通信を制御するために、オブジェクト指向環境で動作する通信制御用クラスライブラリ（ソフトウェアシステム）が適用される場合がある。
なお、対象となる通信制御用クラスライブラリは、ターゲットとなるカードリーダライタとの通信規約をカプセル化し、カードリーダライタを機能させるためのコマンド送信、レスポンス受信を行うためのインターフェースの提供を主な目的とする。
【０００６】
以下、一例として、オブジェクト指向プログラミング言語であるＪａｖａ（登録商標）で開発されたクラスライブラリについて説明する。
Ｊａｖａで開発されたミドルウェアは、一般にクラスライブラリという形にまとめられて提供される。
【０００７】
Ｊａｖａ言語で開発されたクラスライブラリは、複数のクラスを名前空間内に配置し、一つのファイルにまとめた形で提供されることが一般的である。この名前空間をパッケージと呼ぶ。
パッケージへのライブラリの配置は、フォルダ構造（フォルダを使用した階層構造）という形で実現され、このフォルダ構造を維持したままｊａｒ（ファイルフォーマット）という形式の圧縮ファイルとして配布するのが一般的である。なお、ｊａｒはｚｉｐ方式によるファイル圧縮の一形態である。
以下に一例を示す。
【０００８】
例）
ＩＣＴ３Ｋ５＿３Ｒ６９４０Ｃｔｒｌ．ｊａｒ
＋ＭＥＴＡ‐ＩＮＦ
|  ＋ＭＡＮＩＦＥＳＴ．ＭＦ
＋ｊｐ
＋ｃｏ
＋ｎｉｄｅｃ＿ｓａｎｋｙｏ
＋ｃｒｄ
＋ＩＣＴ３Ｋ５＿３Ｒ６９４０
＋ＤｅｖＣｔｒｌ．ｃｌａｓｓ
＋ＩＣＣａｒｄＴｒａｎｓｍｉｔＣｔｒｌ．ｃｌａｓｓ
＋ＳＡＭＣａｒｄＴｒａｎｓｍｉｔＣｔｒｌ．ｃｌａｓｓ
＋ＵｐｄａｔｅＦｉｒｍｗａｒｅＣｔｒｌ．ｃｌａｓｓ
＋＜以下省略＞
【０００９】
例は、拡張子“ｃｌａｓｓ”を持つ複数のＪａｖａクラスのファイル、すなわち、クラスライブラリが、“ｊｐ／ｃｏ／ｎｉｄｅｃ＿ｓａｎｋｙｏ／ｃｒｄ／ＩＣＴ３Ｋ５＿３Ｒ６９４０”なるパッケージ内に配置され、“ＩＣＴ３Ｋ５＿３Ｒ６９４０Ｃｔｒｌ．ｊａｒ”なる名称のファイルとしてまとめられていることを示している。
一つのｊａｒファイルには複数のパッケージを格納することも可能である。
また、“ＭＡＮＩＦＥＳＴ．ＭＦ”は“マニフェストファイル”と呼ばれ、一つのｊａｒファイルに一つだけ存在する。
【００１０】
上述したように、対象となる通信制御用Ｊａｖａクラスライブラリは、ターゲットとなるカードリーダライタとの通信規約をカプセル化し、このカードリーダライタを機能させるためのコマンド送信、レスポンス受信を行うためのインターフェースの提供を主な目的とする。
【００１１】
なお、特許文献１〜３には“Ｊａｖａ言語プログラムを用いた大規模業務系の影響分析ツール”に関する技術が記載され、特許文献４は“クラス情報を管理するための方法および装置”が記載されている。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特開２００８−１３４６９９号公報
【特許文献２】特開２００８−１２３２５９号公報
【特許文献３】特開２００８−１２３２５４号公報
【特許文献４】特開平５−１５８６９９号公報
【発明の概要】
【発明が解決しようとする課題】
【００１３】
ところで、上記クラスライブラリは、ｊａｒと呼ばれる圧縮形式のファイルとして適用されるが、そのファイルの固有情報、たとえばバージョン情報の取得方法については一般化されておらず、特に具体的に示されていない。
ただし、そのファイルのバージョン情報を取得する方法としては、以下の第１から第４の方法が考えられる。
以下にこれらの方法とその課題について述べる。
【００１４】
［第１の方法］
第１の方法は、マニフェストファイルにバージョン情報を埋め込む方法である。
この第１の方法では、所定のプログラムを実行し、“マニフェストファイル”に埋め込んだ情報を読み出すことは可能である。
ただしこの場合、以下の不利益がある。
一般的にオペレーティングシステム（ＯＳ）は所定の検索ルールに従ってファイルを探し出すようになっている。
アプリケーションプログラムを実行することによりバージョン情報を取得する方式では、バージョン確認対象となるクラスライブラリを格納するｊａｒファイルが複数存在した場合、意図するものとは異なるものがロードされ、結果として誤った情報を取得する事態が懸念される。
アプリケーションプログラムよりメソッドを実行することによりバージョン情報取得を行う方式は、あくまでも間接的な情報取得方法の範疇に留まるため、前出の例のようなｊａｒファイルが存在しないかなど、予め環境設定にも気を配っておく必要がある。
また、ＣＵＩ（Ｃｈａｒａｃｔｅｒ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）での操作が必須となるため、不慣れな場合には間違いやすい。
【００１５】
また、第１の方法によれば、以下の不利益がある。
クラスライブラリパッケージは通常ｊａｒファイルとして配布される。ｊａｒファイルは、前述したように、ファイル圧縮方式であるｚｉｐの一形態である。
このため、ｊａｒファイルを一旦解凍してマニフェストファイルを取り出し、テキストエディタで閲覧することでバージョン情報を読み出す方法がある。この場合、解凍、閲覧にそれぞれ専用のソフトウェアが必要になる。また、そのための手間が発生する。
【００１６】
［第２の方法］
第２の方法は、バージョンを通知するメソッド（手続き）を実装する方法である。
しかし、第２の方法によれば、以下の不利益がある。
第２の方法では、別のソフトウェアモジュール経由でないとメソッドを実行することができないため、別のソフトウェアモジュールであるアプリケーションプログラムを別途準備する必要がある。
第２の方法では、バージョン確認は、それを利用するソフトウェアの開発着手時やクラスライブラリのバージョンアップ時など、利用者が当該クラスライブラリに関する知識や、それを利用するためのソフトウェア開発環境に関する知識を十分に持ち合わせていない状況下で必要となるケースがほとんどである。
このような状況下でのアプリケーションプログラムの作成は、利用者の負担となり、確認までに時間を要する原因となる。
【００１７】
また、第２の方法では、上述した第１の方法と同様の不利益がある。
一般的にＯＳは所定の検索ルールに従ってファイルを探し出すようになっている。
アプリケーションプログラムを実行することによりバージョン情報を取得する方式では、バージョン確認対象となるクラスライブラリを格納するｊａｒファイルが複数存在した場合、意図するものとは異なるものがロードされ、結果として誤った情報を取得する事態が懸念される。
アプリケーションプログラムよりメソッドを実行することによりバージョン情報取得を行う方式は、あくまでも間接的な情報取得方法の範疇に留まるため、前出の例のようなｊａｒファイルが存在しないかなど、予め環境設定にも気を配っておく必要がある。
【００１８】
［第３の方法］
第３の方法は、バイナリイメージにバージョン情報を埋め込む方法である。
しかし、第３の方法によれば、以下の不利益がある。
Ｊａｖａ言語によるソフトウェアの開発においては、バイナリイメージにおける出力位置を指定する方法がない。したがって、第３の方法では、キーワードを設けるなどして検索できるようにしておく必要がある。
第３の方法では、閲覧にはバイナリエディタが必要となる。
また、ｊａｒファイルは圧縮ファイルにつき、元々のバイナリイメージは原型をとどめない。したがって、直接ｊａｒファイルを閲覧しても意味がない。このため、第３の方法では、一旦解凍し、バージョン情報が書かれているファイルを閲覧することになるが、通常複数の元ファイルにより構成されるため、バージョンが書かれているファイルがどれであるか別ルールを設けるなどして明らかにしておく必要がある。
第３の方法では、難読化処理を施した場合には、可読性の確保ができないケースも発生する。
【００１９】
［第４の方法］
第４の方法は、バージョン情報をファイル名に反映させる方法である。
しかし、この第４の方法によれば、ファイルのリネームは使用者に関する制限等なく、また容易であるため、管理上混乱をきたす恐れがある。
【００２０】
本発明は、ファイルのバージョン情報等の固有情報を直接かつ容易に取得することが可能な情報処理装置、情報処理システム、情報処理方法、およびプログラムを提供することにある。
【課題を解決するための手段】
【００２１】
本発明の第１の観点は、少なくとも電子機器装置との間で通信制御を行い、当該電子機器装置からの情報を取得する上位装置としての情報処理装置であって、状況に応じた処理を実行するアプリケーションプログラムおよび前記電子機器装置との通信制御用の複数のミドルウェアを含むソフトウェアシステムを有しており、前記通信制御用の複数のミドルウェアをまとめてクラスライブラリとして形成され、前記クラスライブラリには、前記ソフトウェアシステムの固有情報を記憶するクラスを備えている。
これにより、ソフトウェアシステムのバージョン情報等の固有情報を他のモジュールを介することなく直接かつ容易に取得することができる。
【００２２】
好適には、前記クラスライブラリを提供するクラスは、実行プログラム部およびクラスライブラリのエキスポート部を含む形態で形成され、前記クラスライブラリのエキスポート部は、前記電子機器装置との通信制御用クラスライブラリのエキスポートを行う機能を含み、前記実行プログラム部は、実行すると前記ファイルまたはエキスポートされるクラスライブラリの固有情報としてのバーション情報を出力する機能を含む。
これにより、ファイルまたはエキスポートされるクラスライブラリのバーション情報を直接かつ容易に取得することができる。
【００２３】
本発明の第２の観点の情報処理システムは、情報処理装置と、前記情報処理装置との間で通信を行うとともに状況に応じた処理を実行して、前記情報処理装置に対し現在の状態と処理結果を送信する電子機器装置と、を有し、前記情報処理装置は、少なくとも電子機器装置との間で通信制御を行い、当該電子機器装置からの情報を取得する機能を含み、状況に応じた処理を実行するアプリケーションプログラムおよび前記電子機器装置との通信制御用の複数のミドルウェアを含むソフトウェアシステムを有しており、前記通信制御用の複数のミドルウェアをまとめてクラスライブラリとして形成され、前記クラスライブラリには、前記ソフトウェアシステムの固有情報を記憶するクラスを備えている。
【００２４】
本発明の第３の観点は、少なくとも電子機器装置との間で通信制御を行い、当該電子機器装置からの情報を取得する上位装置としての情報処理装置における情報処理方法であって、状況に応じた処理を実行するアプリケーションプログラムおよび前記電子機器装置との通信制御用の複数のミドルウェアを含むソフトウェアシステムを形成し、前記通信制御用の複数のミドルウェアをまとめてクラスライブラリとして形成し、前記クラスライブラリには、前記ソフトウェアシステムの固有情報を記憶するクラスを形成する。
【００２５】
本発明の第４の観点は、少なくとも電子機器装置との間で通信制御を行い、当該電子機器装置からの情報を取得する上位装置としての情報処理装置における情報処理であって、状況に応じた処理を実行するアプリケーションプログラムおよび前記電子機器装置との通信制御用の複数のミドルウェアを含むソフトウェアシステムを形成し、前記通信制御用の複数のミドルウェアをまとめてクラスライブラリとして形成し、前記クラスライブラリには、前記ソフトウェアシステムの固有情報を記憶するクラスを形成する情報処理をコンピュータに実行させるプログラムである。
【発明の効果】
【００２６】
本発明によれば、ファイルのバージョン情報等の固有情報を直接かつ容易に取得することができる。
【図面の簡単な説明】
【００２７】
【図１】本発明の実施形態に係る情報処理システムの概要を示すブロック図である。
【図２】本実施形態に係る上位装置の構成例を概念的に示す図である。
【図３】本実施形態に係るクラスライブラリを提供するファイルについて説明するための図である。
【図４】本実施形態に係る情報処理装置としての上位装置の要部の具体的なアーキテクチャを示す図である。
【図５】本実施形態に係る電子機器装置としてのカードリーダライタの信号処理系の構成例を示す図である。
【図６】本実施形態に係るバージョン情報取得の基本的な処理を示すフローチャートである。
【発明を実施するための形態】
【００２８】
以下、本発明の実施形態を図面に関連付けて説明する。
以下の実施形態においては、電子機器装置としてカードリーダライタを例に説明する。
【００２９】
図１は、本発明の実施形態に係る情報処理システムの概要を示すブロック図である。
【００３０】
情報処理システム１０は、情報処理装置としての上位装置（ホスト装置）２０、カードリーダライタ（電子機器装置）３０、およびＩＣカード４０を含んで構成されている。
【００３１】
本実施形態では、このようなカードリーダライタ等の電子機器装置と通信を行うＡＴＭ等の上位装置２０には、電子機器装置との通信を制御するために、オブジェクト指向環境で動作する通信制御用クラスライブラリ（ソフトウェアシステム）が適用される。
上位装置２０には、提供するアプリケーションプログラムＡＰが格納されている。このアプリケーションプログラムＡＰは、オブジェクト指向のコンピュータ言語の１つであるＪａｖａ（登録商標）により記述されたプログラムであり、Ｊａｖａ実行環境で実行可能なＪａｖａバイトコードで構成されている。
本実施形態では、本発明に係るプログラム実行装置をＪａｖａ（登録商標）言語で記述されたＪａｖａ（登録商標）アプリケーションプログラムを実行するＪａｖａ（登録商標）アプリケーション実行装置を一例として実施の形態で、図面を参照しながら説明する。
【００３２】
［上位装置の構成および機能］
上位装置２０は、カードリーダライタ３０との間で通信制御を行い、コマンドの送信に対応したレスポンスを受信する等の各種情報の授受を行って、カードリーダライタ３０からの情報を取得する。
【００３３】
図２は、本実施形態に係る上位装置の構成例を概念的に示す図である。
図２の上位装置２０は、基本的に、処理装置であるＣＰＵ２１、ＲＯＭ２２、ＲＡＭ２３、ストレージユニット２４、バージョン（リビジョン）等の情報が表示される表示装置２５、およびキーボード２６１やマウス２６２を含む操作部２６を含んで構成される。
【００３４】
ＣＰＵ２１は、Ｊａｖａ（登録商標）仮想マシン、オペレーティングシステム（ＯＳ）、アプリケーションプログラムを実行する。
ＲＡＭ２３は、具体的にはＳＲＡＭ、ＤＲＡＭ等の一時記憶メモリで構成され、ＣＰＵ２１が処理を行う際、一時的にデータを保存するために使用される。
ＲＯＭ２２は、具体的にはフラッシュメモリや、ハードディスク等の不揮発性メモリで構成され、ＣＰＵ２１から指示されたデータやプログラムを記憶する。
【００３５】
本例においては、図中のストレージユニット２４内に保存されたオペレーティングシステム（ＯＳ）、Ｊａｖａ実行環境を構築するためのソフトウェアとしてのミドルウェアＭＷ、オブジェクト指向プログラム言語で記載されたＪａｖａ（登録商標）言語などで記述されたアプリケーション等のプログラムがソフトウェアシステムの一部をなして格納されている。そして、これらプログラムを実行する実行時にいわゆるコンピュータ（電子計算機）のソフトウェアとしてＲＡＭ２３上に展開される。
【００３６】
このような構成を有する上位装置２０においては、次の特徴をもって構成されている。
上記したように、状況に応じた処理を実行するアプリケーションプログラムおよびカードリーダライタ３０との通信制御用の複数のミドルウェアを含むソフトウェアシステムを有している。
上位装置２０においては、この通信制御用の複数のミドルウェアをまとめてクラスライブラリとして形成され、この通信制御用クラスライブラリには、ソフトウェアシステムの固有情報を記憶するクラスを備えている。
【００３７】
なお、クラスライブラリとは、ある特定の機能をもったプログラムを、オブジェクト指向プログラミング言語を用いて一つの「クラス」として部品化し、関連する複数のクラスを一つのファイルにまとめたものをいう。
オブジェクト指向プログラミング言語では、共通する属性やメソッド（データと、このデータを操作する手続き）をもったオブジェクト群の雛形を「クラス」と呼ぶ。
こうした「クラス」はプログラムの部品として利用できるため、よく使われる汎用的なものをクラスライブラリに集めておくことで、プログラミングの労力を軽減することができる。
また、クラスライブラリでは、ファイル入出力、数学演算、ネットワークなど様々な機能を提供するライブラリを用意することが可能である。
また、クラスライブラリは「パッケージ」と呼ばれる単位で機能ごとに分類されている。
【００３８】
本実施形態では、通信制御用のクラスライブラリに関連する処理について説明する。
本実施形態において、対象となる通信制御用クラスライブラリは、ターゲットとなるカードリーダライタ３０との通信規約をカプセル化し、カードリーダライタ３０を機能させるためのコマンド送信、レスポンス受信を行うためのインターフェースの提供を主な目的とする。
【００３９】
また、固有情報とは、クラスライブラリを提供するファイルまたはエキスポートされるクラスライブラリのバーション情報を例示することができる。
固有情報は、このようなバージョン情報だけでなく、クラスライブラリのバージョン以外のプロパティ、たとえば著作権者、作成年月日、コメント（社内ユーザオンリー等）、テストバージョン等も同時にあるいは個別に情報提供することが可能である。
本実施形態では、通信制御用ソフトウェアシステムを開発等する際に、極めて重要な情報となるバージョン情報を例に説明する。
【００４０】
ここで、本実施形態に係るクラスライブラリを提供するファイルについて説明する。
図３は、本実施形態に係るクラスライブラリを提供するファイルについて概念的に説明するための図である。
【００４１】
クラスライブラリを提供するファイル２００は、実行プログラム部２０１およびクラスライブラリのエキスポート部２０２を含む形態で形成される。
【００４２】
実行プログラム部２０１は、実行すると（実行指示を受けて実行すると）ファイルまたはエキスポートされるクラスライブラリのバーション情報を出力する実行機能を有する。
ここで、実行指示を受けて実行するとは、たとえば図２の構成において、Ｗｉｎｄｏｗｓ（登録商標）環境などで、ユーザがマウス２６２を使って表示装置２５上に表示されているファイル２００を示すアイコンに対してダブルクリックを行うこと等の操作が含まれる。
【００４３】
クラスライブラリのエキスポート部２０２は、カードリーダライタ３０との通信制御用クラスライブラリのエキスポートを行う機能を含む。
ここで、エキスポート（またはエクスポート）とは他のアプリケーションソフトで使用できるよう、インターフェースを提供することを言う。 
【００４４】
クラスライブラリを提供するファイルの一例としてＪａｖａのｊａｒファイルをあげると、ｊａｒファイルを目的別に分類すると、次の３形態が存在する。
（１）クラスライブラリのエキスポートのみ
（２）実行プログラムのみ
（３）実行プログラム＋クラスライブラリのエキスポート
【００４５】
本実施形態においては、（３）実行プログラム＋クラスライブラリのエキスポートの形態を応用したものである。
すなわち、本実施形態においては、本来の目的であるカードリーダライタとの通信制御用クラスライブラリのエキスポートに加え、バージョン情報を出力する実行機能を持たせている。
【００４６】
これらの具体的な例は後で詳述する。この場合、一例として、オブジェクト指向プログラミング言語であるＪａｖａ（登録商標）で開発されたクラスライブラリに関連付けて説明する。
【００４７】
次に、上位装置２０の要部の具体的なアーキテクチャの例について説明する。
図４は、本実施形態に係る情報処理装置としての上位装置の要部の具体的なアーキテクチャを示す図である。
【００４８】
ソフトウェアシステム（ブロック）２１０は、ソフトウェアを実行するプログラムを収納し実行する。
ソフトウェアシステム２１０は、たとえば図４に示すように、アプリケーション部２１０Ａ、ミドルウェア部２１０Ｂ、システム全体を制御するオペレーティングシステム（ＯＳ）部２１０Ｃ、および仮想マシン（ＪａｖａＶＭ）２１０Ｄにより形成される。
また、ソフトウェアシステム２１０は、システム起動時に働くブートプログラム（ＢＰ）２２０を含んで構成されてもよい。
【００４９】
図４は、ＯＳ上で仮想マシン（ＪａｖａＶＭ）が動いているＪａｖａ実行環境の一例を示しており、システム起動時に働くインターフェース（Ｉ／Ｆ）、システム全体を制御するＯＳ、ＯＳの違いを吸収して共通のプラットフォームを提供する仮想マシン（ＪａｖａＶＭ）、仮想マシン（ＪａｖａＶＭ）上で動くクラスライブラリ、機器の利用目的を実行する実行アプリケーションによって構成されている。
ここで、ＯＳ、仮想マシン（ＪａｖａＶＭ）、およびクラスライブラリがアップデート対象となる動作プログラムである。
【００５０】
アプリケーション部２１０Ａは、オブジェクト指向プログラミング言語のソースコード生成部２１１、並列コンパイラ２１２、および実行形式部２１３を含む。
ミドルウェア部２１０Ｂは、通信制御用クラスライブラリ２１４を含む。
通信制御用クラスライブラリ２１４には、バージョン情報用クラスの“ＲｅｖＩｎｆｏ．ｃｌａｓｓ”、カードリーダライタ３０を機能させるためのコマンド送信、レスポンス受信を行うための主たる制御を行う通信制御用の“ＤｅｖＣｔｒｌ．ｃｌａｓｓ”等を含む。クラスライブラリ２１４には、ソフトウェアシステムの固有情報であるバージョン情報を記憶するクラスＣＬＳを備えている。
また、オペレーティングシステム部２１０Ｃは、ホストファイル部２１５、ユーティリティ部２１６、および常駐プログラム部２１７を含む。
【００５１】
なお、実行環境とは、オブジェクト指向技術を用いてアプリケーションプログラムを実行する環境をいい、本実施形態では、オブジェクト指向技術の１つとしてのＪａｖａ（商標登録）を用いている。
仮想マシン２１０Ｄでは、たとえば中間言語である実行コード（バイトコード）の実行時に最終的にハードウェアにネイティブな機械語コードに変換されて実行される。
【００５２】
このように形成されるソフトウェアシステム２１０の実行ファイル生成について説明する。
【００５３】
実行ファイルの生成処理においては、まず、ソースコード生成部２１１において、ソースコードを作成する。
クラスライブラリ２１４を参照しコンパイラ２１２で作成したソースコードに関するコンパイルを行う。
コンパイル結果を用いて実行形式部２１３が並列アプリケーションの実行ファイルを完成する。完成した実行ファイルは、ＯＳ（オペレーティングシステム）部２１０Ｃに与えられる。
そして、仮想マシン２１０ＤはＯＳ上で動作し、バイトコードを解釈して実行する。
【００５４】
以上、上位装置２０の構成および機能について具体的に説明した。
次に、カードリーダライタ３０の構成および機能について説明する。
【００５５】
［カードリーダライタ３０の構成および機能］
カードリーダライタ３０は、上位装置２０との通信およびＩＣカード４０との通信機能を有する。
図５は、本実施形態に係る電子機器装置としてのカードリーダライタの信号処理系の構成例を示す図である。
【００５６】
カードリーダライタ３０は、カードリーダライタ３０全体を統合的に制御するＣＰＵ３１、カードリーダライタ３０の動作プログラムや初期値、パラメータなどを格納するＲＯＭ３２、ＣＰＵ３１のワーキングエリアとして機能するＲＡＭ３３、上位装置Ｉ／Ｆ（インターフェース）３４、およびカードＩ／Ｆ３５を有している。
カードリーダライタ３０は、上位装置Ｉ／Ｆ３４を介して上位装置２０と接続され、カードＩ／Ｆ３５を介してＩＣカード４０と（無線または有線で）通信可能に構成されている。
カードリーダライタ３０は、上位装置２０との間の通信規約に沿った情報列のコマンドに基づき動作し、ＩＣカード４０との間の通信規約に沿った情報列の送受信を行う機能を有する。
【００５７】
上位装置Ｉ／Ｆ３４は、上位装置２０からカードリーダライタ３０へ送られた信号をＴＴＬレベルの信号に変換し、それをＣＰＵ３１に転送する機能を有する。
また、ＣＰＵ３１からの信号を逆変換して、上位装置２０に転送する。上位装置２０とカードリーダライタ３０の間の通信は、ＵＳＢやＲＳ２３２Ｃ等が一般的である。
【００５８】
ＣＰＵ３１は、上位装置２０との間の通信規約（たとえばＵＳＢ）に沿った情報列（コマンドＡＰＤＵ）内のコマンドに基づいて動作する。
そして、ＣＰＵ３１は、そのコマンドＡＰＤＵを、ＩＣカード４０との間の通信規約（たとえば非接触通信）に沿った情報列に変換し、これをＩＣカード４０に送信する。
すなわち、ＣＰＵ３１は、上位装置２０からのコマンドＡＰＤＵを、ＩＣカード４０との通信プロトコルに沿った形式（コマンドＴＰＤＵ）に変換する。
変換されたコマンドＴＰＤＵは、カードＩ／Ｆ３５を通じてＩＣカード４０に送信される。
【００５９】
一方で、ＩＣカード４０からのレスポンス受信時には、ＣＰＵ３１はレスポンスＴＰＤＵをレスポンスＡＰＤＵに変換する。変換されたレスポンスＡＰＤＵは、上位装置Ｉ／Ｆ３４を通じて上位装置２０に転送される。
【００６０】
カードＩ／Ｆ３５は、コマンドＴＰＤＵを、ＩＣカード４０に応じた電圧や通信速度に変換し、ＩＣカード４０に送信する。
また、カードＩ／Ｆ３５は、ＩＣカード４０から受信した信号をＴＴＬレベルの信号に変換し、それをＣＰＵ３１に伝える機能を有する。
カードリーダライタ３０とＩＣカード４０間の通信は、ＴＴＬレベル、非接触通信、およびＵＳＢ等が一般的である。
【００６１】
ＲＯＭ３２は、プログラム等の不揮発性データを保存するのに対し、ＲＡＭ３３は、ＣＰＵ３１のワーキングエリアとして機能するとともに、一時的にデータを保存する。
【００６２】
［クラスライブラリの具体的な実行例］
上述したように、本実施形態においては、対象となるクラスライブラリは、ターゲットとなるカードリーダライタとの通信規約をカプセル化し、カードリーダライタを機能させるためのコマンド送信、レスポンス受信を行うためのインターフェースの提供を主な目的とする。
そして、本実施形態において、クラスライブラリを提供するファイルは、本来の目的であるカードリーダライタ通信制御用クラスライブラリのエキスポートに加え、バージョン情報を出力する実行機能を持たせている。
以下これらの具体的な例を説明する。
ここでは、一例として、オブジェクト指向プログラミング言語であるＪａｖａ（登録商標）で開発されたクラスライブラリに関連付けて説明する。
【００６３】
Ｊａｒファイルは、Ｊａｖａ（登録商標）アプリケーションを構成する複数のファイルをひとつにまとめた、上位装置のプラットフォームに依存しないファイルの形式である。
Ｊａｖａ言語で開発されたクラスライブラリは、複数のクラスを名前空間内に配置し、一つのファイルにまとめた形で提供されることが一般的である。この名前空間をパッケージと呼ぶ。
パッケージへのライブラリの配置は、フォルダを使用した階層構造という形で実現され、このフォルダ構造を維持したままｊａｒという形式の圧縮ファイルとして配布するのが一般的である。なお、ｊａｒはｚｉｐ方式によるファイル圧縮の一形態である。
以下に一例を示す。また、図６は、本実施形態に係るバージョン情報取得の基本的な処理を示すフローチャートである。
【００６４】
（具体的な実現例）
ＩＣＴ３Ｋ５＿３Ｒ６９４０Ｃｔｒｌ．ｊａｒ
＋ＭＥＴＡ−ＩＮＦ
|  ＋ＭＡＮＩＦＥＳＴ．ＭＦ
＋ｊｐ
＋ｃｏ
＋ｎｉｄｅｃ＿ｓａｎｋｙｏ
＋ｃｒｄ
＋ＩＣＴ３Ｋ５＿３Ｒ６９４０
＋ＲｅｖＩｎｆｏ．ｃｌａｓｓ（→＊）
＋ＤｅｖＣｔｒｌ．ｃｌａｓｓ
＋ＩＣＣａｒｄＴｒａｎｓｍｉｔＣｔｒｌ．ｃｌａｓｓ
＋ＳＡＭＣａｒｄＴｒａｎｓｍｉｔＣｔｒｌ．ｃｌａｓｓ
＋ＵｐｄａｔｅＦｉｒｍｗａｒｅＣｔｒｌ．ｃｌａｓｓ
＋＜以下省略＞
【００６５】
この例は、前述した例と同様に、拡張子“ｃｌａｓｓ”を持つ複数のＪａｖａクラスのファイル、すなわち、クラスライブラリが、“ｊｐ／ｃｏ／ｎｉｄｅｃ＿ｓａｎｋｙｏ／ｃｒｄ／ＩＣＴ３Ｋ５＿３Ｒ６９４０”なるパッケージ内に配置され、“ＩＣＴ３Ｋ５＿３Ｒ６９４０Ｃｔｒｌ．ｊａｒ”なる名称のファイルとしてまとめられていることを示している（図６のステップＳＴ１）。
一つのｊａｒファイルには複数のパッケージを格納することも可能である。
また、“ＭＡＮＩＦＥＳＴ．ＭＦ”は“マニフェストファイル”と呼ばれ、一つのｊａｒファイルに一つだけ存在する。
【００６６】
上述したように、対象となるＪａｖａクラスライブラリは、ターゲットとなるカードリーダとの通信規約をカプセル化し、このカードリーダを機能させるためのコマンド送信、レスポンス受信を行うためのインターフェースの提供を主な目的とする。
【００６７】
本実施形態では、このクラスライブラリにバージョン情報を取得するためのクラスである、（＊）印を付した“ＲｅｖＩｎｆｏクラス”を作成し、クラスライブラリ２１４に追加する（ステップＳＴ２）。
ＲｅｖＩｎｆｏクラスにはｍａｉｎメソッドを定義する（ステップＳＴ３）。
そして、ＩＣＴ３Ｋ５＿３Ｒ６９４０Ｃｔｒｌ．ｊａｒを実行すると（ステップＳＴ４）、このｍａｉｎメソッドがコールされる（ステップＳＴ５）。
これに伴い、ｍａｉｎメソッドはバージョン情報を出力する（ステップＳＴ６）。
【００６８】
このｊａｒファイルには、通常どおりのクラスライブラリが、通常どおりの形でパッケージに格納されている。したがって、バージョン出力機能が追加されたこと以外は、通常のものに対して完全互換となっている。
【００６９】
こうすることで、通常の方法に対し次の利点が生じる。
アプリケーションプログラムなど、他のモジュールを介することなく、使用するｊａｒファイルのバージョン情報を取得することができる。
Ｗｉｎｄｏｗｓ環境などでは、ｊａｒファイルをダブルクリックすることにより直接実行することができる。したがって、ファイルの検索パスを気にする必要がない。換言すると、意図したものとは異なるｊａｒファイルのバージョン情報を取得するような誤りを犯す心配がない。
ｊａｒファイルの解凍用ソフト、バイナリエディタ、テキストエディタなどを使用する必要がない。
【００７０】
すなわち、本実施形態によれば、クラスライブラリのファイル自身にバージョン情報を内蔵することにより、間接的なバージョン確認による誤りを排除することが可能になる。
ここでいう「間接的なバージョン確認」とは、ファイルの更新日時など、本来バージョンとは無関係な情報を介した形でのバージョン確認のことを指す。
本実施形態では、ファイルを直接クリックすることにより、メッセージボックスが現れ、バージョンが表示装置２５に表示されるように構成されている。これは、客観的に考えて、現在考え得る最も直接的なバージョン確認手段である。
【００７１】
なお、本実施形態では、通信制御対象としてカードリーダライタを例に説明したが、本発明は、上述したＩＣカードに対する情報の再生または記録を行うＩＣカードリーダライタに限らず、磁気情報を記録された磁気ストライプを搭載する磁気カードに対する情報の再生または記録を行う磁気カードリーダライタであってもよく、または、他の電子機器装置、たとえば、カードスキャナ、カードプリンタ等にも適用が可能である。
また、クラスライブラリのバージョン以外のプロパティ、たとえば、著作権者、作成年月日、なども同時に情報提供することが可能である。
【符号の説明】
【００７２】
１０・・・情報処理システム、２０・・・上位装置（情報処理装置）、２１・・・ＣＰＵ、２２・・・ＲＯＭ、２３・・・ＲＡＭ、２４・・・ストレージユニット、２５・・・表示装置、２６・・・操作部、２６１・・・キーボード、２６２・・・マウス、２００・・・ファイル、２０１・・・実行プログラム部、２０２・・・クラスライブラリのエキスポート部、２１０・・・ソフトウェアシステム、２１０Ａ・・・アプリケーション部、２１０Ｂ・・・ミドルウェア部、２１０Ｃ・・・オペレーティングシステム（ＯＳ）部、２１０Ｄ・・・仮想マシン（ＪａｖａＶＭ）、３０・・・カードリーダライタ（電子機器装置）、４０・・・ＩＣカード。
【図１】
2013225300.tif 000003
【図２】
2013225300.tif 000004
【図３】
2013225300.tif 000005
【図４】
2013225300.tif 000006
【図５】
2013225300.tif 000007
【図６】
2013225300.tif 000008