(57)【要約】【課題】上位装置とデバイスとが単一の通信ラインを通じて接続されても、上位装置とデバイスとの間で通信を確立させて各種の機器制御プロセスを実行することができる情報処理システム及び情報処理方法を提供する【解決手段】上位装置２は、各アプリケーションプログラムに従ってデバイス３が動作する複数の機器制御プロセスＰＣ１，ＰＣ２，・・・を実行する機能と、上位装置２とデバイス３との間で通信を確立する通信制御プロセスＰＳを実行する機能と、デバイス３の状態を監視する状態監視プロセスＰＣＷを実行する機能とを有し、デバイス３は、上位装置２との通信を介して各機器制御プロセスが有する所定の動作処理を実行する。上位装置２の複数の機器制御プロセスＰＣ１，ＰＣ２が通信制御プロセスＰＳによってデバイスとの通信を確立していることから、各機器制御プロセスＰＣ１，ＰＣ２を実行するたびに通信の遮断／開設を繰り返す必要がない。【選択図】図１
2014199484.tif 000002
【特許請求の範囲】
【請求項１】
上位装置と、前記上位装置からの指令に従って処理を実行するデバイスと、が接続された情報処理システムにおいて、
前記上位装置は、
所定の動作処理を行うための複数のアプリケーションプログラムが格納され、各アプリケーションプログラムに従って前記デバイスが動作する複数の機器制御プロセスと、
前記上位装置と前記デバイスとの間で通信制御を行うためのアプリケーションプログラムが格納され、このアプリケーションプログラムに従って前記上位装置と前記デバイスとの間で通信を確立する通信制御プロセスと、
を実行する機能を有し、
前記デバイスは、前記上位装置との通信を介して各機器制御プロセスが有する所定の動作処理を実行することを特徴とする情報処理システム。
【請求項２】
前記上位装置は、前記デバイスの状態を監視するための状態監視用アプリケーションプログラムが格納され、この状態監視用アプリケーションプログラムに従って前記デバイスの状態を監視する状態監視プロセスを実行する機能を有し、
前記状態監視プロセスと前記複数の機器制御プロセスの各々とを交互に実行することを特徴とする請求項１記載の情報処理システム。
【請求項３】
前記通信制御プロセスは、前記状態監視プロセスが発行する状態通知コマンドと前記複数の機器制御プロセスの各々が発行する動作コマンドとを交互に前記デバイスに送信することを特徴とする請求項２記載の情報処理システム。
【請求項４】
前記上位装置は、前記状態通知コマンドを格納する状態通知用ＦＩＦＯバッファと前記動作コマンドを格納する機器制御用ＦＩＦＯバッファとを備えていることを特徴とする請求項３記載の情報処理システム。
【請求項５】
前記通信は、ＲＳ−２３２Ｃ方式であることを特徴とする請求項１から４のいずれか記載の情報処理システム。
【請求項６】
上位装置とデバイスとの通信を介して所定の機器制御を実行する情報処理方法であって、
上位装置とデバイスとの間で通信制御を行うためのアプリケーションプログラムに従って上位装置とデバイスとの間で通信を確立する通信制御プロセスを上位装置に実行させ、
所定の動作処理を行うための各アプリケーションプログラムに従ってデバイスを動作する機器制御プロセスを順に上位装置に実行させることを特徴とする情報処理方法。
【請求項７】
デバイスの状態を監視するための状態監視用アプリケーションプログラムに従ってデバイスの状態を監視する状態監視プロセスを前記機器制御プロセスと交互に実行させることを特徴とする請求項６記載の情報処理方法。
【請求項８】
前記通信制御プロセスは、前記状態監視プロセスが発行する状態通知コマンドと前記複数の機器制御プロセスの各々が発行する動作コマンドとを交互に前記デバイスに送信することを特徴とする請求項７記載の情報処理方法。
【請求項９】
前記上位装置は、前記状態通知コマンドを格納する状態通知用ＦＩＦＯバッファと前記動作コマンドを格納する機器制御用ＦＩＦＯバッファとを備えていることを特徴とする請求項８記載の情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーションプログラム（ソフトウェア）が有する複数のプロセスによる処理を実行する情報処理システム及び情報処理方法に関する。
【背景技術】
【０００２】
アプリケーションプログラム（ソフトウェア）が有する複数のプロセスによる処理を実行する情報処理システムとして、例えば、従来から、金融機関のＡＴＭなどで使用されるカード状媒体処理システムが知られている。
【０００３】
このカード状媒体処理システムに用いられるカード状媒体処理装置は、カード状媒体に対して所定の処理を実行し又はカード状媒体を収納する複数のユニット（例えばカードリーダやカードスタック部など）と、複数のユニット間においてカード状媒体を搬送する搬送手段と、制御手段（メイン制御基板）と、を有しており、カード状媒体に対して所定の処理を実行するカードリーダだけでなく、カード状媒体発行機能を付加するために、多数のカード状媒体を重ねてストックしておくカードスタック（ホッパ）としても使用されている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−０５２５２７号公報
【０００５】
さらに、このようなカード状媒体処理装置において、制御手段は、上位装置からプログラム実行コマンドを受信したとき、制御手段内のパラメータ記憶部に記憶されたパラメータを参照して、プロセスを実行する。
【０００６】
図１０に示すカード状媒体処理システムは、上位装置２とカード発行機３とが通信ライン４を通じて接続されている。上位装置２は、複数のプロセス１，２，３と、これら複数のプロセスがアクセス可能な排他権記録用共有メモリ１０と、ＲＳ-２３２Ｃインターフェースと、を有している。プロセス１，２は機器制御用プロセスであり、プロセス１はカード発行機能を制御するプロセス、プロセス２はカード状媒体に対して所定の処理を実行するカードリーダを制御するプロセスである。プロセス３は状態監視用プロセスであり、機器制御用プロセスの実行動作における状態を監視している。各々のプロセス１，２，３は、アプリケーションプログラムと通信ミドルウェアを備えている。
【０００７】
各プロセス１，２，３は、各々が独自かつ非同期に実行しており、互いに排他制御する機能を有している。すなわち、各プロセス１，２，３は、それぞれにアプリケーションプログラムや通信ミドルウェアや排他権記録用共有メモリ１０にアクセスして情報処理を行い、排他権記録用共有メモリ１０へのアクセスは、各プロセス１，２，３が取り決められた排他制御に従うことで競合が発生しないようにしている。例えば、機器制御用プロセス１は、排他制御によって、機器制御用プロセス２、状態監視用プロセス３からのアクセスが排他される。
【０００８】
このような構成によれば、排他権記録用共有メモリ１０をプロセス１，２に対して割り付け／解除するアタッチ／デタッチの動作時に、プロセス１，２の実行状態を管理するオペレーティングシステム（ＯＳ）のサービスを利用するが、実際にプロセス１，２間でデータの送受信をする時は、プロセス１，２のいずれか一方が送信データを排他権記録用共有メモリ１０に書き込み、そのいずれか他方が排他権記録用共有メモリ１０に書き込まれている送信データを読み出す。
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、図１０に示すように、上位装置２とカード発行機３（デバイス）とが通信ライン４により接続されている場合、デバイスとの基本通信機能を提供してデバイスを制御する既存の制御ソフトウェアの制約上、上位装置２が有する複数のプロセス（プロセス１，プロセス２，・・・）のうち、例えば、プロセス１がカード発行機３にアクセスして、プロセス１の有するカード発行制御用アプリケーションが実行されているときは、他のプロセス２，プロセス３はカード発行機３にアクセスすることができず、それぞれの有するアプリケーションを実行することができない。
【００１０】
図１１を参照して詳述すると、上位装置２は、まず、各機器制御プロセスを実行するためのプロセス排他権を取得して（ステップＳ１）、排他権の確認を行う（ステップＳ２）。ステップＳ２における排他権の確認は、排他権記録用共有メモリ１０を参照することによって行うことができ、プロセス１以外の他のプロセスが排他権を取得している場合は、他のプロセスが終了するまでプロセス排他権を取得（維持）し続け、プロセス１の排他権が確認できて取得成功と判断された場合は、プロセス１のコマンドを発行して（ステップＳ３）、カード発行機３を動作させて、レスポンスを受信する（ステップＳ４）。その後、プロセス１の排他権を破棄して（ステップＳ５）、本サブルーチンを終了する。
【００１１】
このため、複数のプロセスのうちどれを実行するかは、排他権取得の有無によって制約されており、１のプロセスが実行されてデバイスアクセスを行っているときは、他のプロセスを実行するためのデバイスアクセスをすることができないという問題点がある。
【００１２】
また、このようなデバイスアクセスの制約から、１のプロセスが実行後に他のプロセスを実行する場合や、実行中のプロセスに割り込ませて他のプロセスを実行する場合は、実行中のプロセスの通信ポートを遮断して他のプロセスの通信ポートを開設する必要がある。このため、通信ポートの遮断／開設が頻発し、処理時間が多くかかってしまうという問題点がある。
【００１３】
本発明は、このような点に鑑みてなされたものであり、その目的は、上位装置とデバイスとの間で通信を確立させて複数のプロセスを実行することが可能であるとともに、各プロセスの処理時間を短くすることが可能な情報処理システム及び情報処理方法置を提供することにある。
【課題を解決するための手段】
【００１４】
以上のような課題を解決するために、本発明は、以下のものを提供する。
【００１５】
（１）  上位装置と、上位装置からの指令に従って処理を実行するデバイスと、が接続された情報処理システムにおいて、上位装置は、所定の動作処理を行うための複数のアプリケーションプログラムが格納され、各アプリケーションプログラムに従ってデバイスが動作する複数の機器制御プロセスと、上位装置とデバイスとの間で通信制御を行うためのアプリケーションプログラムが格納され、このアプリケーションプログラムに従って上位装置とデバイスとの間で通信を確立する通信制御プロセスと、を実行する機能を有し、デバイスは、上位装置との通信を介して各機器制御プロセスが有する所定の動作処理を実行することを特徴とする情報処理システム。
【００１６】
本発明によれば、複数の機器制御プロセスと通信制御プロセスとを実行する機能を有する上位装置がデバイスとの通信を確立した状態で、各機器制御プロセスが有する所定の動作処理をデバイスが実行することができることから、通信ポートの遮断／開設を逐一行う必要がなく、結果的に各機器制御プロセスの処理時間を短くすることができる。
【００１７】
（２）  上位装置は、デバイスの状態を監視するための状態監視用アプリケーションプログラムが格納され、この状態監視用アプリケーションプログラムに従ってデバイスの状態を監視する状態監視プロセスを実行する機能を有し、この状態監視プロセスと複数の機器制御プロセスの各々とを交互に実行することを特徴とする情報処理システム。
【００１８】
本発明によれば、デバイスの状態を監視する状態監視プロセスと複数の機器制御プロセスの各々とを交互に実行することから、いつでもデバイスの状態を把握することができるとともに、通信ポートの遮断／開設を逐一行うことなくデバイスの状態を監視することができることから、デバイスの状態をタイムラグなく把握することができる。
【００１９】
（３）  通信制御プロセスは、状態監視プロセスが発行する状態通知コマンドと複数の機器制御プロセスの各々が発行する動作コマンドとを交互にデバイスに送信することを特徴とする情報処理システム。
【００２０】
本発明によれば、状態通知コマンドと動作コマンドとを交互に通信制御プロセスによってデバイスに送信することから、いつでもデバイスの状態を把握することができるとともに、通信ポートの遮断／開設を逐一行うことなくデバイスの状態を監視することができることから、デバイスの状態をタイムラグなく把握することができる。
【００２１】
（４）  前記上位装置は、前記状態通知コマンドを格納する状態通知用ＦＩＦＯバッファと前記動作コマンドを格納する機器制御用ＦＩＦＯバッファとを備えていることを特徴とする情報処理システム。
【００２２】
本発明によれば、各ＦＩＦＯバッファに格納されたコマンドの処理により、いつでもデバイスの状態を把握することができるとともに、通信ポートの遮断／開設を逐一行うことなくデバイスの状態を監視することができることから、デバイスの状態をタイムラグなく把握することができる。
【００２３】
（５）  通信は、ＲＳ−２３２Ｃ方式であることを特徴とする情報処理システム。
【００２４】
本発明によれば、複数のプロセスからのアクセスには対応していないＲＳ−２３２Ｃ方式の通信回線であっても、各機器制御プロセスを通信制御プロセスで集約して、各機器制御プロセスが有する所定の動作処理をデバイスが実行することから、通信ポートの遮断／開設を逐一行う必要がなく、結果的に各機器制御プロセスの処理時間を短くすることができる。
【００２５】
（６）  上位装置とデバイスとの通信を介して所定の動作処理を実行する情報処理方法であって、上位装置とデバイスとの間で通信制御を行うためのアプリケーションプログラムに従って上位装置とデバイスとの間で通信を確立する通信制御プロセスを前記上位装置に実行させ、所定の動作処理を行うための各アプリケーションプログラムに従ってデバイスを動作する機器制御プロセスを順に前記上位装置に実行させることを特徴とする情報処理方法。
【００２６】
本発明によれば、通信制御プロセスを実行して上位装置とデバイスとの通信を確立した状態で、各機器制御プロセスが有する所定の機器制御プロセスを実行することができることから、通信ポートの遮断／開設を逐一行う必要がなく、結果的に各機器制御プロセスの処理時間を短くすることができる。
【００２７】
（７）  前記デバイスの状態を監視するための状態監視用アプリケーションプログラムに従って前記デバイスの状態を監視する状態監視プロセスを前記機器制御プロセスに優先して前記上位装置に実行させることを特徴とする情報処理方法。
【００２８】
本発明によれば、デバイスの状態を監視する状態監視プロセスは、機器制御プロセスに優先して実行することから、いつでもデバイスの状態を把握することができるとともに、通信ポートの遮断／開設を逐一行うことなくデバイスの状態を監視することができることから、デバイスの状態をタイムラグなく把握することができる。
【００２９】
（８）  通信制御プロセスは、状態監視プロセスが発行する状態通知コマンドと複数の機器制御プロセスの各々が発行する動作コマンドとを交互にデバイスに送信することを特徴とする情報処理方法。
【００３０】
本発明によれば、状態通知コマンドと動作コマンドとを交互に通信制御プロセスによってデバイスに送信することから、いつでもデバイスの状態を把握することができるとともに、通信ポートの遮断／開設を逐一行うことなくデバイスの状態を監視することができることから、デバイスの状態をタイムラグなく把握することができる。
【００３１】
（９）  前記上位装置は、前記状態通知コマンドを格納する状態通知用ＦＩＦＯバッファと前記動作コマンドを格納する機器制御用ＦＩＦＯバッファとを備えていることを特徴とする情報処理方法。
【００３２】
本発明によれば、各ＦＩＦＯバッファに格納されたコマンドの処理により、いつでもデバイスの状態を把握することができるとともに、通信ポートの遮断／開設を逐一行うことなくデバイスの状態を監視することができることから、デバイスの状態をタイムラグなく把握することができる。
【発明の効果】
【００３３】
本発明に係る情報処理システム及び情報処理方法は、上位装置の複数の機器制御プロセスが通信制御プロセスによってデバイスとの通信を確立していることから、各機器制御プロセスを実行するたびに通信の遮断／開設を繰り返す必要がないため、各機器制御プロセスの処理時間を短くすることができる。
【００３４】
また、本発明に係る情報処理システム及び情報処理方法は、状態監視プロセスが発行する状態通知コマンドと複数の機器制御プロセスの各々が発行する動作コマンドとを並列に処理し、命令電文を交互にデバイスに送信することから、いつでもデバイスの状態を把握することができるとともに、通信ポートの遮断／開設を逐一行うことなくデバイスの状態を監視することができることから、デバイスの状態をタイムラグなく把握することができる。
【図面の簡単な説明】
【００３５】
【図１】本発明の原理構成を示すブロック図である。
【図２】本発明の実施の形態に係る情報処理方法を示すフローチャートである。
【図３】本発明の実施の形態に係る情報処理方法を示すフローチャートである。
【図４】本発明の実施の形態に係る情報処理システムのハードウェア構成図である。
【図５】本発明の実施の形態に係る情報処理システムのプロセス間の関係を示す概略図である。
【図６】本発明の実施の形態に係る情報処理方法を示すフローチャートである。
【図７】本発明の実施の形態に係る情報処理方法を示すフローチャートである。
【図８】本発明の実施の形態に係る情報処理方法を示すフローチャートである。
【図９】本発明の実施の形態に係る情報処理方法を示す時間状態図である。
【図１０】従来の情報処理システムのソフトウェア構成図である。
【図１１】従来の情報処理方法を示すフローチャートである。
【発明を実施するための形態】
【００３６】
以下、本発明を実施するための最良の形態について、図面を参照しながら説明する。
【００３７】
[原理構成]
本発明の原理構成について、図１に基づいて説明する。
【００３８】
図１に示す情報処理システム１の上位装置２は、機器制御用コマンド発行プロセス群として機器制御プロセスＰＣ１，ＰＣ２，・・・を実行する機能を有し、状態監視用コマンド発行プロセス群として状態監視プロセスＰＣＷを実行する機能を有し、さらに、これら機器制御用コマンド発行プロセス群及び状態監視用コマンド発行プロセス群との間でコマンドの送信とレスポンスの受信を行う通信制御プロセスＰＳを実行する機能を有している。
【００３９】
通信制御プロセスＰＳは、カード状媒体処理装置としてのカード発行機３との間で情報のやりとりを制御するものであり、アプリケーションプログラムを実体処理する機器制御用スレッドと、状態監視用スレッドと、を形成している。機器制御用スレッドは機器制御用ＦＩＦＯバッファを備え、状態監視用スレッドは状態通知用ＦＩＦＯバッファを備えている。
【００４０】
排他権記録用共有メモリ１０は、割込み処理は必要とせず、機器制御用スレッドと状態監視スレッドとの２つのスレッドを切り換える処理である。換言すれば、複数のスレッド或いは複数のプロセスの優先順位を設定し制御するというよりは、機器制御用スレッドと状態監視用スレッドとを単に切り替えるものとして機能している。
【００４１】
なお、プロセスは、実行中のプログラムの１つのインスタンスであり、独立した動作空間（利用者空間）を持つプロセスという実行単位で動作し、一般に複数のプログラムを平行して動作させるため、プロセスという実行単位が同時に複数存在できるようにしている。このため、プロセスは、他のプロセス間とのデータのやり取りが不可能な構造である。一方、スレッドは、プログラム内の単一の実行経路であり、使用可能なスレッドにタイム・スライスを割り振るオペレーティング・システム・スケジューラの制御下で、１つのプロセス内で順次に実行されることから、他のスレッド間とのデータのやり取りが可能な構造である。各スレッドが一つのプロセスに関連している必要があるため、マルチスレッディングである場合には、各プロセスが、同じアドレス空間とスタック領域とを共有する複数のスレッドを含むようにすることができる。
【００４２】
図２は、原理構成に示す機器制御用スレッドと排他権記録用共有メモリと通信制御部との間における動作手順である。
【００４３】
上位装置２は、まず、機器制御用電文変換部における未実行の命令電文の有無を確認し（ステップＳ３０１）、その有無を判断する（ステップＳ３０２）。ここで、命令電文無しと判定した場合は命令電文が来るまで処理を繰り返す一方、命令電文有りと判定した場合は、スレッド排他権を取得（維持）し続け（ステップＳ３０３）、スレッド排他権が確認できて取得成功と判断された場合は（ステップＳ３０４）、待機中の命令電文を送信する（ステップＳ３０５）。待機中の命令電文を送信してレスポンス応答を受信すると（ステップＳ３０６）、スレッド排他権を破棄して（ステップＳ３０７）、本サブルーチンを終了する。なお、状態監視用スレッドにてスレッド排他権の取得中である場合は、ステップＳ３０３及びＳ３０４の処理を繰り返す。
【００４４】
次に、図３は、原理構成に示す状態監視用スレッドと排他権記録用共有メモリ１０と通信制御部１１との間における動作手順である。
【００４５】
上位装置２は、まず、状態監視用電文変換部における未実行の命令電文の有無を確認し（ステップＳ４０１）、その有無を判断する（ステップＳ４０２）。ここで、命令電文無しと判定した場合は命令電文が来るまで処理を繰り返す一方、命令電文有りと判定した場合は、スレッド排他権を取得（維持）し続け（ステップＳ４０３）、スレッド排他権が確認できて取得成功と判断された場合は（ステップＳ４０４）、待機中の命令電文を送信する（ステップＳ４０５）。待機中の命令電文を送信してレスポンス応答を受信すると（ステップＳ４０６）、スレッド排他権を破棄して（ステップＳ４０７）、本サブルーチンを終了する。なお、状態監視用スレッドにてスレッド排他権の取得中である場合は、ステップＳ４０３及びＳ４０４の処理を繰り返す。
【００４６】
［ハードウェア構成］
図４は、本発明の実施の形態に係る情報処理システムのハードウェア構成図である。
【００４７】
情報処理システム１は、下位に接続される各種のデバイスを制御する上位装置２と、上位装置２によって制御され各種の機能を実現するデバイスとしてのカード発行機３と、がＲＳ−２３２Ｃでの通信を行う通信ライン４を通じて接続されている。
【００４８】
上位装置２は、ＢＵＳ（バス）を介して各種の機器が接続されており、ＣＰＵ２１と、ＲＯＭ２２と、ＲＡＭ２３と、表示部２４と、通信インターフェース２５と、ＨＤＤ２６と、が主に接続されている。
【００４９】
ＣＰＵ２１は、各種のソフトウェアが実行され、上位装置２内の各部の情報のやり取りが正しく行なわれているか監視したり、或いは各部の動作開始や停止のタイミングを指示したりするように全体の流れを制御している。
【００５０】
ＲＯＭ２２は、制御プログラム等が格納されている読み出し専用メモリである。
【００５１】
ＲＡＭ２３は、ＣＰＵ２１がプログラムを実行するための作業領域を備えるランダムアクセスメモリである。本実施形態では、ＨＤＤ２０から読み出された基本ソフトウェア（ＯＳ）のほか、ＯＳの下で実行されるアプリケーションプログラムや、上位装置２とカード発行機３との間で通信制御を行うためのアプリケーションプログラムや、ＡＰＩとプログラミングインターフェースとが互いに共通する関数を一時的に記憶する。共通する関数（共通ＡＰＩ群）としては、カード発行機３等のデバイスとの通信を確立する「ｏｐｅｎ」処理、デバイスとの通信を遮断する「ｃｌｏｓｅ」処理等の各種関数がある。
【００５２】
また、ＲＡＭ２３には、２つのＦＩＦＯ（First In First Out）バッファ領域が設けられており、本実施の形態では、機器制御プロセス用ＦＩＦＯと、状態監視プロセス用ＦＩＦＯと、分けて形成されている。詳細は後述するが、各ＦＩＦＯは、実行コマンドを時系列的に格納し、ＣＰＵ２１によって順次読み出して電文変換部に送出している。
【００５３】
表示部２４は、表示装置及びタッチパネルを有している。表示装置は、操作方法や操作ボタン等を表示する際に使用し、タッチパネルは使用者がデータ等を入力等する際に使用する。
【００５４】
通信インターフェース２５は、ＣＰＵ２１からの命令に基づいて様々な処理が実行されるカード発行機３と上位装置２とを接続するものであり、カード発行機３とはＲＳ−２３２Ｃケーブルの通信ライン４でシリアル接続されている。
【００５５】
ＨＤＤ２６は、記録媒体としてハードディスクを用いており、基本ソフトウェア（ＯＳ），アプリケーションプログラム，（通信）ミドルウェア，ドライバ等の各種プログラムが記憶されている。
【００５６】
カード発行機３は、ＲＳ−２３２Ｃでの通信を行う通信インターフェース３１と、ＣＰＵ、メモリ等を内部に備え、カード発行機３全体を制御する制御部３２と、リーダライタ３３と、カードをリーダライタ３３に供給するカードホッパー３４と、使用後のカードが回収されるカード回収庫３５と、これらに＋２４Ｖ電圧を供給する電源３６と、を備えている。このような構成を備えたカード発行機３はカードの発行と回収を行なっているが、公知のものと同様であるので、ここでの詳細は説明を省略する。
【００５７】
図５は、本発明の実施の形態に係る情報処理システムのプロセス間の関係を示す概略図（ソフトウェア構成図）である。
【００５８】
図４のＨＤＤ２６には、コンピュータでプログラムなどを動作させる際、ＣＰＵが実行するひとまとまりの処理の単位で複数のプロセスが形成されている。具体的には、機器制御用コマンド発行プロセス群として機器制御プロセスＰＣ１，ＰＣ２，・・・を実行する機能を有し、通信制御プロセスＰＳを実行する機能を有し、さらに、状態監視用コマンド発行プロセス群として状態監視プロセスＰＣＷを実行する機能を有する。各プロセスには、そのプロセスを実行するためのアプリケーション及び通信用ミドルウェアを有する。また、上位装置２とカード発行機３との通信は、ＲＳ−２３２Ｃインターフェース２５に接続されたＲＳ−２３２Ｃケーブルの通信ライン４によって、通信制御プロセスＰＳを実行することによって命令送信と返答が行われる。
【００５９】
機器制御用コマンド発行プロセス群は、複数の機器制御プロセスＰＣ１，ＰＣ２，・・・を構成している。具体的には、複数の機器制御プロセスＰＣ１，ＰＣ２は、所定の動作処理を行うための複数のアプリケーションプログラムと通信用ミドルウェアがそれぞれ構成されている。
【００６０】
本実施形態では、機器制御プロセスＰＣ１は磁気・ＩＣリードライトにおける制御を行う磁気・ＩＣリードライト制御用アプリケーションプログラム、通信制御プロセスＰＳとのプロセス間通信を行うための通信用ミドルウェアを主な構成としている。別の機器制御プロセスＰＣ２はカード発行機を制御するカード発行制御用アプリケーションプログラム、通信制御プロセスＰＳとの通信を行うための通信用ミドルウェアを主な構成としている。
【００６１】
状態監視用コマンド発行プロセス群は、状態監視プロセスＰＣＷから構成されている。本実施形態では、状態監視プロセスＰＣＷは、カード発行機３の状態を監視するための状態監視用アプリケーションプログラム、通信制御プロセスＰＳとのプロセス間通信を行うための通信ミドルウェアを有している。
【００６２】
カード発行機３の状態としては、例えば、カード発行機３全体の状態（電源ON/OFF・通信ケーブルオンライン／オフライン・デバイスビジー（機器制御処理実行中）か否か）、リーダライタ３の状態としては、カード搬送路（常に機能しているか否か）、カード状態（装置内部にカードが存在する・排出口に存在する・ジャム状態・存在しない）、シャッタ状態（閉じている/開いている・シャッタがジャム状態）、などである。
【００６３】
通信制御用プロセスＰＳは、複数の機器制御プロセスＰＣ１，ＰＣ２及び状態監視プロセスＰＣＷからのコマンドを受けて各プロセスを実行させるローカルサーバアプリケーションプログラム４０、通信制御部１１を制御しＲＳ−２３２Ｃインターフェース２５との通信を行うための通信用ミドルウェア４１、また、図示していないが、各種コマンドを発行機命令電文へ変換するためのドライバを主な構成としている。
【００６４】
ローカルサーバアプリケーション４０は、機器制御用コマンド受付ＡＰＩ（アプリケーションプログラムインターフェース）と状態監視用コマンド受付ＡＰＩとを有している。また、通信用ミドルウェア４１は、機器制御用コマンド受付ＡＰＩと状態監視用コマンド受付ＡＰＩとを有しており、各ＡＰＩからのコマンドを格納する機器制御用ＦＩＦＯバッファと状態通知用ＦＩＦＯバッファとを有している。なお、通信制御用コマンド発行プロセス群は、機器制御用コマンド発行プロセス群及び状態監視用コマンド発行プロセス群とは異なり、機器制御用スレッド及び状態監視用スレッドの構成が形成されている（図１参照）。
【００６５】
通信制御用プロセスＰｓは、複数の機器制御プロセスＰＣ１，ＰＣ２及び状態監視プロセスＰＣＷに先立ち起動され、ローカルサーバアプリケーション４０が有する機器制御用コマンド受付ＡＰＩにて、複数の機器制御プロセスＰＣ１，ＰＣ２から発行される機器制御用コマンドを受付け可能な状態にして待機する。また、ローカルサーバアプリケーション４０が有する状態監視用コマンド受付ＡＰＩにて、状態監視プロセスＰＣＷから発行される状態監視用コマンドを受付け可能な状態にして待機する。そして、通信制御用プロセスＰｓが起動した後、複数の機器制御プロセスＰＣ１，ＰＣ２及び状態監視プロセスＰＣＷが順に起動される。
【００６６】
複数の機器制御プロセスＰＣ１，ＰＣ２が起動した場合、複数の機器制御プロセスＰＣ１，ＰＣ２に存在する通信用ミドルウェアと通信制御用プロセスＰＳのローカルサーバアプリケーション４０に存在する機器制御用コマンド受付ＡＰＩとが接続され、通信制御プロセスＰＳへ機器制御用コマンドを発行することが可能となる。
【００６７】
一方、状態監視プロセスＰＣＷが起動した場合、状態監視プロセスＰＣＷに存在する通信用ミドルウェアと通信制御用プロセスＰＳのローカルサーバアプリケーション４０に存在する状態監視用コマンド受付ＡＰＩとが接続され、通信制御プロセスＰＳへ状態監視用コマンドを発行することが可能となる。
【００６８】
このように、通信制御プロセスＰｓへの機器制御コマンド及び状態監視用コマンドの発行は、プロセス間通信を利用して行われる。
【００６９】
プロセス間通信を行う通信制御プロセスＰｓは、機器制御用コマンド受付ＡＰＩ、機器制御用ＦＩＦＯバッファ、状態通知用コマンド受付ＡＰＩ、状態通知用ＦＩＦＯバッファ、発行機命令のための機器制御用電文変換部、状態監視用電文変換部で構成されている。
【００７０】
通信用ミドルウェア４１が有する機器制御用コマンド受付ＡＰＩは、ローカルサーバアプリケーション４０が有する機器制御用コマンド受付ＡＰＩにて受取った機器制御用コマンドをミドルウェアにて受信する。
【００７１】
機器制御用ＦＩＦＯバッファは、通信用ミドルウェアが有する機器制御用コマンド受付ＡＰＩで受取った機器制御用コマンドを順番に保存していく。機器制御用ＦＩＦＯバッファでは、先に到達した機器制御用コマンドの順に機器制御用電文変換部へ送り出されるＦＩＦＯ（First In First Out）形式となっている。
【００７２】
通信用ミドルウェア４１が有する状態監視用コマンド受付ＡＰＩは、ローカルサーバアプリケーション４０が有する状態監視用コマンド受付ＡＰＩにて受取った状態監視用コマンドをミドルウェアにて受信する。
【００７３】
状態監視用ＦＩＦＯバッファは、通信用ミドルウェアが有する状態監視用コマンド受付ＡＰＩで受取った状態監視用コマンドを順番に保存していく。状態監視用ＦＩＦＯバッファでは、先に到達した状態監視用コマンドの順に状態監視用電文変換部へ送り出されるＦＩＦＯ形式となっている。なお、各々のＦＩＦＯバッファへ各コマンドを保存していくことをキューイングという。
【００７４】
機器制御用ＦＩＦＯバッファの送り出し口に位置する機器制御用電文変換部は、機器制御用ＦＩＦＯバッファから送り出される機器制御用コマンドを、カード発行機３に送信するための命令電文に変換を行う。なお、機器制御用コマンドは、複数の命令電文から構成されているため、この電文変換部では、１つの機器制御用コマンドから、複数の命令電文へと変換され、変換された複数の命令電文は、順番に送信制御部へ送られる。
【００７５】
また、状態監視用ＦＩＦＯバッファの送り出し口に位置する状態監視用電文変換部は、状態監視用ＦＩＦＯバッファから送り出される状態監視用コマンドを、カード発行機３に送信するための命令電文に変換を行う。本実施例では、１つの状態監視用コマンドを電文変換部にて変換した場合、１つの命令電文が生成される。ここで変換された１つの命令電文は送信制御部へと送られる。
【００７６】
これら一連の機器制御用コマンドの電文変換処理と状態監視用コマンドの電文変換処理は並行して行われる。
【００７７】
通信制御部１１は、機器制御用ＦＩＦＯバッファの送り出し口に位置する機器制御用電文変換部から送られる命令電文と、状態監視用ＦＩＦＯバッファの送り出し口に位置する状態監視用電文変換部から送られる命令電文とを、交互にカード発行機３へ送信していく。
例えば、状態監視用ＦＩＦＯバッファに先行し、機器制御用ＦＩＦＯバッファに機器制御用コマンドが到達した場合は、まず、電文変換部にて変換された命令電文の１つをカード発行機３へ送信する。この間に状態監視用ＦＩＦＯバッファに状態通知コマンドが到達している場合は、状態通知コマンドを電文変換部にて変換し、この命令電文をカード発行機３へ送信する。送信が完了した後、再び機器制御用ＦＩＦＯバッファからの変換処理に処理を戻し、残りの命令電文の１つを送信する。
【００７８】
このように、機器制御用ＦＩＦＯバッファと状態監視用ＦＩＦＯバッファの双方にコマンドが存在する場合は、交互に１つの命令電文を送信していく。なお、片方のＦＩＦＯバッファにのみコマンドが存在する場合は、他方の存在しないＦＩＦＯバッファからの電文変換処理へ処理を移すことなく、存在するＦＩＦＯバッファからの電文変換処理が優先的に行われる。
【００７９】
図６は、本発明の実施の形態に係る情報処理システムの起動時の動作手順を示すフローチャートである。
【００８０】
システムの起動開始の手順は、まず、通信制御プロセスＰＳを起動し、ＲＳ−２３２Ｃ通信を開設する（ステップＳ１０１）。これらの開設・起動結果を判断し（ステップＳ１０２）、成功と判定した場合には、状態監視プロセスＰＣＷを起動し、通信制御プロセスＰＳと開設する一方（ステップＳ１０３）、失敗と判定した場合には、本サブルーチンを終了する。
【００８１】
ステップＳ１０３における起動・接続結果を判断し（ステップＳ１０４）、成功と判定した場合には、機器制御プロセスＰＣ1を起動し、通信制御プロセスＰＳと接続する一方（ステップＳ１０５）、失敗と判定した場合には、本サブルーチンを終了する。
【００８２】
ステップＳ１０５における起動・接続結果を判断し（ステップＳ１０６）、成功と判定した場合には、起動完了してコマンド待ち状態となる一方、失敗と判定した場合には、本サブルーチンを終了する。
【００８３】
次に、本発明の実施の形態に係る情報処理方法を、図７〜図９を用いて説明する。図７及び図８に示す情報処理方法は、動作処理の一例としてのカード排出処理の動作手順である。
【００８４】
まず、情報処理システム１がカード発行取引開始の状態にある場合、入力画面にてＩＣカードへの記録情報を入力する（ステップＳ５０１）。これは、情報処理システム１の上位装置２の表示部２４にて、ユーザが表示装置の入力画面にカードへの記録情報を入力する。
【００８５】
ユーザがカード発行ボタンを押すことにより、ＨＤＤ２０やＲＯＭ２２に記憶されているプログラムやデータをＣＰＵ２１からの命令に従ってＲＡＭ２３上に読み出し、インターフェース２４にＲＳ−２３２Ｃケーブルの通信ライン４で接続されているカード発行機３をＡＰＩを使用して制御することにより、各アプリケーションの動作が開始される。
【００８６】
次いで、状態監視用アプリケーションにて、状態通知コマンドを発行し、カード発行機３の状態を把握する（ステップＳ５０２、Ｓ５０３）。発行された状態通知コマンドは、通信用ミドルウェアで変換されて、通信制御プロセスＰＳに入力され、コマンドが所定の電文に変換される。例えば、格納されているカードが切れた状態等、何らかの不具合でエラーが発生した場合には、異常と判定し（ステップＳ５０３）、異常が発生したことを表示装置の画面に表示（通知）する（ステップＳ５２１）。一方、カード発行機状態が正常と判定すると（ステップＳ５０３）、カード発行制御用アプリケーションを起動して「１−１  カード発行コマンド」を発行する（ステップＳ５０４）。
【００８７】
次いで、状態監視用アプリケーションを起動して「２−１  状態通知コマンド」を発行し、カード位置を把握する（ステップＳ５０５）。カード位置の状態判断において（ステップＳ５０６）、カードリーダ内にカードが無いと判定すると、ステップＳ５０５の処理に戻る。また、カード位置の状態判断において（ステップＳ５０６）、カードリーダ内でカードジャム等による異常が発生していると判定すると、異常状態を通知する（ステップＳ５２1）。一方、カード位置の状態判断において（ステップＳ５０６）、カードリーダ内にカードが有ると判定すると、磁気・ＩＣリードライト制御用アプリケーションにて「１−２  ＩＣ活性化コマンド」を発行する（ステップＳ５０７）。
【００８８】
次いで、状態監視用アプリケーションを起動して「２−２状態通知コマンド」を発行し、ステップＳ５０７にて発行された「１−２  ＩＣ活性化コマンド」に基づくＩＣ活性化状態を把握する（ステップＳ５０８）。ＩＣ活性化の状態判断において（ステップＳ５０９）、ＩＣカードが非活性化状態であると判定すると、ステップＳ５０８の処理に戻る。また、ＩＣ活性化の状態判断において（ステップＳ５０９）、カードリーダ内にＩＣカードが無い等による異常が発生していると判定すると、異常状態を通知する（ステップＳ５２1）。一方、ＩＣカードが活性化状態であると判定すると、磁気・ＩＣリードライト制御用アプリケーションにて「１−３  ＩＣ通信コマンド」を発行し（ステップＳ５１０）、同じく磁気・ＩＣリードライト制御用アプリケーションにて「１−４  ＩＣ非活性化コマンド」を発行する（ステップＳ５１1）。
【００８９】
次いで、状態監視用アプリケーションにて「２−３  状態通知コマンド」を発行し、ステップＳ５１１にて発行された「１−４  ＩＣ非活性化コマンド」に基づくＩＣ活性化状態を把握する（ステップＳ５１２）。ＩＣ活性化の状態判断において（ステップＳ５１３）、ＩＣカードが活性化状態であると判定すると、ステップＳ５１２の処理に戻る。また、ＩＣ活性化の状態判断において（ステップＳ５１３）、ＩＣカードとの通信ができない等による異常が発生していると判定すると、異常状態を通知する（ステップＳ５２1）。一方、ＩＣカードが非活性化状態であると判定すると、カード発行制御用アプリケーションにて「１−５  カード排出コマンド」を発行する（ステップＳ５１４）。
【００９０】
次いで、状態監視用アプリケーションにて「２−４  状態通知コマンド」を発行し、ステップＳ５１４にて発行された「１−５  カード排出コマンド」に基づくカード位置を把握する（ステップＳ５１５）。カード位置の状態判断において（ステップＳ５１６）、カードリーダ内にカードが有ると判定すると、ステップＳ５１５の処理に戻る。また、カード位置の状態判断において（ステップＳ５１６）、カードリーダ内でカードジャム等による異常が発生していると判定すると、異常状態を通知する（ステップＳ５２1）。また、カード位置の状態判断において（ステップＳ５１６）、カードリーダ内にカードが無いと判定すると、ステップＳ５２０の処理に進む。一方、カード位置の状態判断において（ステップＳ５１６）、ゲート口にカードが有ると判定すると、ユーザに対してカードを抜き取るよう表示画面に通知する（ステップＳ５１７）。
【００９１】
次いで、状態監視用アプリケーションにて「２−４  状態通知コマンド」を発行し、カード位置を把握する（ステップＳ５１８）。カード位置の状態判断において（ステップＳ５１９）、カードリーダ内にカードが有ると判定すると、ステップＳ５１８の処理に戻る。また、カード位置の状態判断において（ステップＳ５１９）、カードリーダ内でカードジャム等による異常が発生していると判定すると、異常状態を通知する（ステップＳ５２1）。一方、カード位置の状態判断において（ステップＳ５１９）、正常にカードが発行されたことを画面に通知する（ステップＳ５２０）。
【００９２】
以上のステップＳ５２０又はステップＳ５２１の処理を経て、本サブルーチンは終了する。
【００９３】
上記の処理において、機器制御プロセスＰＣ１，ＰＣ２で発行された各コマンドは、通信制御プロセスＰＳのローカルサーバアプリケーションプログラム内の機器制御用コマンド受付ＡＰＩに順次送信され、それらは時系列的に順次、通信用ミドルウェアの機器制御用コマンド受付ＡＰＩに送信され、それらは時系列的に順次、機器制御用ＦＩＦＯバッファへキューイングされる。機器制御用ＦＩＦＯバッファ内に格納されたコマンドは、所定のタイミングにより、先に格納された順番ごとに機器制御用電文変換部に送信され、機器制御用電文変換部は、受信した順番ごとにカード発行機３の命令電文に変換し、通信制御部１１に送信する。なお、命令電文への変換は、１つのコマンドに対して複数の電文に変換され、例えば、「１−１カード発行コマンド」を発行機命令電文へ変換する場合は、「１−１−１Ｓｔａｔｕｓ  ｒｅｑｕｅｓｔ」、「１−１−２Ｃａｒｄ  ｓｅｔ」となる。
【００９４】
一方、上記の処理において、機器制御コマンドの処理の実行と並行して、状態監視プロセスＰＣＷの状態監視用アプリケーションプログラムによって定期的に発行された状態通知コマンドが通信用ミドルウェアによって通信制御プロセスＰＳに送信され、状態監視用コマンド受付ＡＰＩで受付けられた状態通知コマンドが状態通知用ＦＩＦＯバッファへキューイングされる。具体的には、ＣＰＵ２１からの命令により、状態監視プロセスＰＣＷでは、状態監視用アプリケーションプログラムにより、定期的（常時一定間隔で）に状態通知コマンドが発行され、状態監視プロセスＰＣＷで発行された状態通知コマンドは、通信制御プロセスＰｓのローカルサーバアプリケーションプログラム内の状態監視用コマンド受付ＡＰＩに順次送信される。ローカルサーバアプリケーションプログラム内の状態監視用コマンド受付ＡＰＩにて受取られた各コマンドは、順次、通信用ミドルウェアの状態監視用コマンド受付ＡＰＩに送信され、状態監視用コマンド受付ＡＰＩで受付けられた状態通知コマンドが機器制御用ＦＩＦＯバッファへキューイングされる。状態通知用ＦＩＦＯバッファは、状態監視用コマンド受付ＡＰＩで受信されたコマンドを時系列的に順次書き込んで格納する。状態通知用ＦＩＦＯバッファ内に格納された状態通知コマンドは、所定のタイミングにより、先に格納された順番ごとに、状態監視用電文変換部に送信され、送信制御部１１に送信する。なお、命令電文への変換は、例えば、「２−１状態通知コマンド」を発行機命令電文へ変換する場合は、「２−１Ｓｔａｔｕｓ  ｒｅｑｕｅｓｔ」となる。
【００９５】
以上において、通信制御部１１が受信したコマンドは、通信インターフェース２５及び通信ケーブル４を介して、カード発行機３に送信される。このようにして変換された電文は通信制御部１１によってカード発行機３に送信され、磁気・ＩＣカード発行機３において、状態通知コマンドと機器制御コマンドとが交互に実行されることとなる。
【００９６】
ここで、機器制御用ＦＩＦＯバッファと状態通知用ＦＩＦＯバッファとに格納されたコマンドを電文変換する場合には、それらを交互に行っている。具体的には、機器制御用ＦＩＦＯバッファにキューイングされたコマンドを発行機命令電文へ変換している時は、状態通知用ＦＩＦＯバッファにキューイングされたコマンドを発行機命令電文へ変換していない。逆に、状態通知用ＦＩＦＯバッファにキューイングされたコマンドを発行機命令電文へ変換している時は、機器制御用ＦＩＦＯバッファにキューイングされたコマンドを発行機命令電文へ変換しない。
【００９７】
また、状態通知コマンドと機器制御コマンドとが交互に実行されるため、例えば、「１−１カード発行コマンド」が「２−１状態通知コマンド」よりも先にＦＩＦＯバッファに到達していても、変換された発行機命令電文は、「１−１−１Ｓｔａｔｕｓ  ｒｅｑｕｅｓｔ」、「２−１Ｓｔａｔｕｓ  ｒｅｑｕｅｓｔ」、「１−１−２Ｃａｒｄ  ｓｅｔ」の順に実行されるため、結果、「１−１カード発行コマンド」の実行結果が通知される前に、「２−１状態通知コマンド」の実行結果が通知されることになる。つまり、機器制御用コマンドが複数の発行機命令電文へ変換をしなくてはならないコマンドであった場合であっても、機器制御用コマンドの実行結果を待つことなく、状態通知コマンドの結果を通知することができる。
【００９８】
図９は、本発明の実施の形態に係る情報処理方法を示す時間状態図であり、カード排出のコマンドの動作処理を説明するための図である。なお、この動作処理は、図８におけるステップＳ５１４以降の処理に対応するものである。
【００９９】
機器制御プロセスＰＣ２ではカード発行制御用アプリケーションにてカード排出コマンドを発行すると（図８のステップＳ５１４参照）、当該コマンドを受信した通信制御プロセスＰＳではカード発行機３に対して「Card carry - Eject」を指令し、カードがゲートに移動される（図８のステップＳ５１５〜Ｓ５１６参照）。カードがゲートに移動され、カードが抜き取られてカードがゲートに無しという状態を把握すると（図８のステップＳ５１７〜Ｓ５２０参照）、通信制御プロセスＰＳでは機器制御プロセスＰＣ２に対して「カード排出完了通知」を送り、カード排出コマンドの動作処理は終了する。
【０１００】
このような処理の間、状態監視プロセスＰＣＷは、カード発行機３の状態を監視しており、通信制御プロセスＰＳとの間で状態通知コマンドの発行と状態通知の処理を行っている（図８のステップＳＳ５１５，Ｓ５１８参照）。また、カード発行機３は、カード位置の状態判定をしており（図８のステップＳ５１６，Ｓ５１９参照）、通信制御プロセスＰＳからの「Status request」を受けて、カードがゲートに移動される、カードがゲートに有る、カードがゲートに無いという位置状態に応じた応答をする。
【０１０１】
なお、図８に示すカード排出の動作処理はＩＣカードが非活性化状態である場合のものであるが、ＩＣカードが活性化状態にある場合にカード排出コマンドが発行された場合には、図９に示すように、カード発行機３は通信制御プロセスＰＳからの「IC contact - Release」を受けてＩＣカードを非活性化することにより、カード排出の動作処理を行うこともできる。
【０１０２】
[本実施の形態の主な効果]
以上説明したように、本発明の実施の形態によれば、上位装置２は、機器制御用コマンドを発行する複数の機器制御プロセスＰＣ１，ＰＣ２、状態通知コマンドを発行する状態監視プロセスＰＣＷ、カード発行機３との通信を行う通信制御プロセスＰＳを実行する機能を有し、通信制御プロセスＰＳがデバイスにアクセスして通信を確立した状態において、各機器制御プロセスＰＣ１，ＰＣ２が順番に実行されることから、各機器制御プロセスを実行するたびに通信の遮断／開設を繰り返す必要がないため、各機器制御プロセスの処理時間を短くすることができる。また、状態監視プロセスは、複数の機器制御プロセスＰＣ１，ＰＣ２に優先して実行されることから、通信の遮断／開設を行うことなくいつでもデバイスの状態を把握することができる。
【０１０３】
さらに、上位装置とデバイスとが単一の通信ラインを通じて接続されても、通信制御プロセスＰＳがデバイスにアクセスして通信を確立した状態に上位装置とデバイスとの間で通信を確立させて複数の機器制御プロセスを実行することができる。
【０１０４】
また、上位装置２からは、今どこでカードが止まっているのか分からない。そこで、カード排出コマンドが完了していない状態でも、状態通知コマンドを発行して実行すればカード位置がわかり、カードが排出口にあればユーザに取り忘れのアラームを鳴らす事もでき、装置内部で停滞していればメンテナンス業者に通知する事も可能である。
【０１０５】
[他の実施形態]
なお、デバイスとしての磁気・ＩＣカード発行機３は一例であって、これ以外にもプリンタやバーコードリーダ等の各種のデバイスを個別に又は複合的に構成することもできる。また、本発明の実施の形態によれば、通信としてＲＳ−２３２Ｃ方式を用いたが、ＵＳＢ方式等の他の方式にも応用可能である。
【産業上の利用可能性】
【０１０６】
本発明は、上位装置とデバイスとの間で通信を確立させて機器制御プロセスを短い時間で実行することのできる情報処理システム及び情報処理方法として有用である。
【符号の説明】
【０１０７】
１  情報処理システム
２  上位装置
３  カード発行機
４  通信ライン
１０  排他権記録用共有メモリ
１１  通信制御部
【図１】
2014199484.tif 000003
【図２】
2014199484.tif 000004
【図３】
2014199484.tif 000005
【図４】
2014199484.tif 000006
【図５】
2014199484.tif 000007
【図６】
2014199484.tif 000008
【図７】
2014199484.tif 000009
【図８】
2014199484.tif 000010
【図９】
2014199484.tif 000011
【図１０】
2014199484.tif 000012
【図１１】
2014199484.tif 000013