(58)【調査した分野】(Int.Cl.,DB名)
前記上位装置は、前記デバイスの状態を監視するための状態監視用アプリケーションプログラムが格納され、この状態監視用アプリケーションプログラムに従って前記デバイスの状態を監視する状態監視プロセスを実行する機能を有するものであって、
前記通信制御プロセスは、前記デバイスとの通信を確立した状態で、前記状態監視プロセスとのプロセス間通信を行い、前記状態監視プロセスと前記複数の機器制御プロセスの各々とを交互に実行することを特徴とする請求項1記載の情報処理システム。
前記通信制御プロセスは、前記状態監視プロセスが発行する状態通知コマンドと前記複数の機器制御プロセスの各々が発行する動作コマンドとを交互に前記デバイスに送信することを特徴とする請求項2記載の情報処理システム。
前記上位装置は、前記状態通知コマンドを格納する状態通知用FIFOバッファと前記動作コマンドを格納する機器制御用FIFOバッファとを備えていることを特徴とする請求項3記載の情報処理システム。
前記通信制御プロセスは、前記状態監視プロセスが発行する状態通知コマンドと前記複数の機器制御プロセスの各々が発行する動作コマンドとを交互に前記デバイスに送信することを特徴とする請求項7記載の情報処理方法。
前記上位装置は、前記状態通知コマンドを格納する状態通知用FIFOバッファと前記動作コマンドを格納する機器制御用FIFOバッファとを備えていることを特徴とする請求項8記載の情報処理方法。
【発明の概要】
【発明が解決しようとする課題】
【0009】
しかしながら、
図10に示すように、上位装置2とカード発行機3(デバイス)とが通信ライン4により接続されている場合、デバイスとの基本通信機能を提供してデバイスを制御する既存の制御ソフトウェアの制約上、上位装置2が有する複数のプロセス(プロセス1,プロセス2,・・・)のうち、例えば、プロセス1がカード発行機3にアクセスして、プロセス1の有するカード発行制御用アプリケーションが実行されているときは、他のプロセス2,プロセス3はカード発行機3にアクセスすることができず、それぞれの有するアプリケーションを実行することができない。
【0010】
図11を参照して詳述すると、上位装置2は、まず、各機器制御プロセスを実行するためのプロセス排他権を取得して(ステップS1)、排他権の確認を行う(ステップS2)。ステップS2における排他権の確認は、排他権記録用共有メモリ10を参照することによって行うことができ、プロセス1以外の他のプロセスが排他権を取得している場合は、他のプロセスが終了するまでプロセス排他権を取得(維持)し続け、プロセス1の排他権が確認できて取得成功と判断された場合は、プロセス1のコマンドを発行して(ステップS3)、カード発行機3を動作させて、レスポンスを受信する(ステップS4)。その後、プロセス1の排他権を破棄して(ステップS5)、本サブルーチンを終了する。
【0011】
このため、複数のプロセスのうちどれを実行するかは、排他権取得の有無によって制約されており、1のプロセスが実行されてデバイスアクセスを行っているときは、他のプロセスを実行するためのデバイスアクセスをすることができないという問題点がある。
【0012】
また、このようなデバイスアクセスの制約から、1のプロセスが実行後に他のプロセスを実行する場合や、実行中のプロセスに割り込ませて他のプロセスを実行する場合は、実行中のプロセスの通信ポートを遮断して他のプロセスの通信ポートを開設する必要がある。このため、通信ポートの遮断/開設が頻発し、処理時間が多くかかってしまうという問題点がある。
【0013】
本発明は、このような点に鑑みてなされたものであり、その目的は、上位装置とデバイスとの間で通信を確立させて複数のプロセスを実行することが可能であるとともに、各プロセスの処理時間を短くすることが可能な情報処理システム及び情報処理方法置を提供することにある。
【課題を解決するための手段】
【0014】
以上のような課題を解決するために、本発明は、以下のものを提供する。
【0015】
(1) 上位装置と、前記上位装置からの指令に従って処理を実行するデバイスと、が接続された情報処理システムにおいて、前記上位装置は、所定の動作処理を行うための複数のアプリケーションプログラムが格納され、各アプリケーションプログラムに従って前記デバイスが動作する複数の機器制御プロセスと、前記上位装置と前記デバイスとの間で通信制御を行うためのアプリケーションプログラムが格納され、このアプリケーションプログラムに従って前記上位装置と前記デバイスとの間で通信を確立する通信制御プロセスと、を実行する機能を有し、前記デバイスは、前記上位装置との通信を介して各機器制御プロセスが有する所定の動作処理を実行する
ものであって、前記通信制御プロセスは、前記デバイスとの通信を確立した状態で、前記複数の機器制御プロセスとのプロセス間通信を行うことを特徴とする情報処理システム。
【0016】
本発明によれば、複数の機器制御プロセスと通信制御プロセスとを実行する機能を有する上位装置がデバイスとの通信を確立した状態で、各機器制御プロセスが有する所定の動作処理をデバイスが実行することができることから、通信ポートの遮断/開設を逐一行う必要がなく、結果的に各機器制御プロセスの処理時間を短くすることができる。
【0017】
(2) 前記上位装置は、前記デバイスの状態を監視するための状態監視用アプリケーションプログラムが格納され、この状態監視用アプリケーションプログラムに従って前記デバイスの状態を監視する状態監視プロセスを実行する機能を有する
ものであって、前記通信制御プロセスは、前記デバイスとの通信を確立した状態で、前記状態監視プロセスとのプロセス間通信を行い、前記状態監視プロセスと前記
複数の機器制御プロセスの各々とを交互に実行することを特徴とする情報処理システム。
【0018】
本発明によれば、デバイスの状態を監視する状態監視プロセスと複数の機器制御プロセスの各々とを交互に実行することから、いつでもデバイスの状態を把握することができるとともに、通信ポートの遮断/開設を逐一行うことなくデバイスの状態を監視することができることから、デバイスの状態をタイムラグなく把握することができる。
【0019】
(3) 通信制御プロセスは、状態監視プロセスが発行する状態通知コマンドと複数の機器制御プロセスの各々が発行する動作コマンドとを交互にデバイスに送信することを特徴とする情報処理システム。
【0020】
本発明によれば、状態通知コマンドと動作コマンドとを交互に通信制御プロセスによってデバイスに送信することから、いつでもデバイスの状態を把握することができるとともに、通信ポートの遮断/開設を逐一行うことなくデバイスの状態を監視することができることから、デバイスの状態をタイムラグなく把握することができる。
【0021】
(4) 前記上位装置は、前記状態通知コマンドを格納する状態通知用FIFOバッファと前記動作コマンドを格納する機器制御用FIFOバッファとを備えていることを特徴とする情報処理システム。
【0022】
本発明によれば、各FIFOバッファに格納されたコマンドの処理により、いつでもデバイスの状態を把握することができるとともに、通信ポートの遮断/開設を逐一行うことなくデバイスの状態を監視することができることから、デバイスの状態をタイムラグなく把握することができる。
【0023】
(5) 通信は、RS−232C方式であることを特徴とする情報処理システム。
【0024】
本発明によれば、複数のプロセスからのアクセスには対応していないRS−232C方式の通信回線であっても、各機器制御プロセスを通信制御プロセスで集約して、各機器制御プロセスが有する所定の動作処理をデバイスが実行することから、通信ポートの遮断/開設を逐一行う必要がなく、結果的に各機器制御プロセスの処理時間を短くすることができる。
【0025】
(6) 上位装置と
前記上位装置からの指令に従って処理を実行するデバイスとの通信を介して所定の機器制御を実行する情報処理方法であって、
前記上位装置と
前記デバイスとの間で通信制御を行うためのアプリケーションプログラムに従って
前記上位装置と
前記デバイスとの間で通信を確立する通信制御プロセスを
前記上位装置に実行させ、所定の動作処理を行うための各アプリケーションプログラムに従って
前記デバイスを動作する機器制御プロセスを順に
前記上位装置に実行させる
ものであって、前記通信制御プロセスは、前記デバイスとの通信を確立した状態で、前記複数の機器制御プロセスとのプロセス間通信を行うことを特徴とする情報処理方法。
【0026】
本発明によれば、通信制御プロセスを実行して上位装置とデバイスとの通信を確立した状態で、各機器制御プロセスが有する所定の機器制御プロセスを実行することができることから、通信ポートの遮断/開設を逐一行う必要がなく、結果的に各機器制御プロセスの処理時間を短くすることができる。
【0027】
(7)
前記通信制御プロセスは、前記デバイスの状態を監視するための状態監視用アプリケーションプログラムに従って
前記デバイスの状態を監視する状態監視プロセスを
、前記デバイスとの通信を確立した状態で、前記状態監視プロセスとのプロセス間通信を行い、前記状態監視プロセスと前記複数の機器制御プロセスの
各々とを交互に実行させることを特徴とする情報処理方法。
【0028】
本発明によれば、デバイスの状態を監視する状態監視プロセスは、機器制御プロセスに優先して実行することから、いつでもデバイスの状態を把握することができるとともに、通信ポートの遮断/開設を逐一行うことなくデバイスの状態を監視することができることから、デバイスの状態をタイムラグなく把握することができる。
【0029】
(8) 通信制御プロセスは、状態監視プロセスが発行する状態通知コマンドと複数の機器制御プロセスの各々が発行する動作コマンドとを交互にデバイスに送信することを特徴とする情報処理方法。
【0030】
本発明によれば、状態通知コマンドと動作コマンドとを交互に通信制御プロセスによってデバイスに送信することから、いつでもデバイスの状態を把握することができるとともに、通信ポートの遮断/開設を逐一行うことなくデバイスの状態を監視することができることから、デバイスの状態をタイムラグなく把握することができる。
【0031】
(9) 前記上位装置は、前記状態通知コマンドを格納する状態通知用FIFOバッファと前記動作コマンドを格納する機器制御用FIFOバッファとを備えていることを特徴とする情報処理方法。
【0032】
本発明によれば、各FIFOバッファに格納されたコマンドの処理により、いつでもデバイスの状態を把握することができるとともに、通信ポートの遮断/開設を逐一行うことなくデバイスの状態を監視することができることから、デバイスの状態をタイムラグなく把握することができる。
【発明の効果】
【0033】
本発明に係る情報処理システム及び情報処理方法は、上位装置の複数の機器制御プロセスが通信制御プロセスによってデバイスとの通信を確立していることから、各機器制御プロセスを実行するたびに通信の遮断/開設を繰り返す必要がないため、各機器制御プロセスの処理時間を短くすることができる。
【0034】
また、本発明に係る情報処理システム及び情報処理方法は、状態監視プロセスが発行する状態通知コマンドと複数の機器制御プロセスの各々が発行する動作コマンドとを並列に処理し、命令電文を交互にデバイスに送信することから、いつでもデバイスの状態を把握することができるとともに、通信ポートの遮断/開設を逐一行うことなくデバイスの状態を監視することができることから、デバイスの状態をタイムラグなく把握することができる。
【発明を実施するための形態】
【0036】
以下、本発明を実施するための最良の形態について、図面を参照しながら説明する。
【0037】
[原理構成]
本発明の原理構成について、
図1に基づいて説明する。
【0038】
図1に示す情報処理システム1の上位装置2は、機器制御用コマンド発行プロセス群として機器制御プロセスP
C1,P
C2,・・・を実行する機能を有し、状態監視用コマンド発行プロセス群として状態監視プロセスP
CWを実行する機能を有し、さらに、これら機器制御用コマンド発行プロセス群及び状態監視用コマンド発行プロセス群との間でコマンドの送信とレスポンスの受信を行う通信制御プロセスP
Sを実行する機能を有している。
【0039】
通信制御プロセスP
Sは、カード状媒体処理装置としてのカード発行機3との間で情報のやりとりを制御するものであり、アプリケーションプログラムを実体処理する機器制御用スレッドと、状態監視用スレッドと、を形成している。機器制御用スレッドは機器制御用FIFOバッファを備え、状態監視用スレッドは状態通知用FIFOバッファを備えている。
【0040】
排他権記録用共有メモリ10は、割込み処理は必要とせず、機器制御用スレッドと状態監視スレッドとの2つのスレッドを切り換える処理である。換言すれば、複数のスレッド或いは複数のプロセスの優先順位を設定し制御するというよりは、機器制御用スレッドと状態監視用スレッドとを単に切り替えるものとして機能している。
【0041】
なお、プロセスは、実行中のプログラムの1つのインスタンスであり、独立した動作空間(利用者空間)を持つプロセスという実行単位で動作し、一般に複数のプログラムを平行して動作させるため、プロセスという実行単位が同時に複数存在できるようにしている。このため、プロセスは、他のプロセス間とのデータのやり取りが不可能な構造である。一方、スレッドは、プログラム内の単一の実行経路であり、使用可能なスレッドにタイム・スライスを割り振るオペレーティング・システム・スケジューラの制御下で、1つのプロセス内で順次に実行されることから、他のスレッド間とのデータのやり取りが可能な構造である。各スレッドが一つのプロセスに関連している必要があるため、マルチスレッディングである場合には、各プロセスが、同じアドレス空間とスタック領域とを共有する複数のスレッドを含むようにすることができる。
【0042】
図2は、原理構成に示す機器制御用スレッドと排他権記録用共有メモリと通信制御部との間における動作手順である。
【0043】
上位装置2は、まず、機器制御用電文変換部における未実行の命令電文の有無を確認し(ステップS301)、その有無を判断する(ステップS302)。ここで、命令電文無しと判定した場合は命令電文が来るまで処理を繰り返す一方、命令電文有りと判定した場合は、スレッド排他権を取得(維持)し続け(ステップS303)、スレッド排他権が確認できて取得成功と判断された場合は(ステップS304)、待機中の命令電文を送信する(ステップS305)。待機中の命令電文を送信してレスポンス応答を受信すると(ステップS306)、スレッド排他権を破棄して(ステップS307)、本サブルーチンを終了する。なお、状態監視用スレッドにてスレッド排他権の取得中である場合は、ステップS303及びS304の処理を繰り返す。
【0044】
次に、
図3は、原理構成に示す状態監視用スレッドと排他権記録用共有メモリ10と通信制御部11との間における動作手順である。
【0045】
上位装置2は、まず、状態監視用電文変換部における未実行の命令電文の有無を確認し(ステップS401)、その有無を判断する(ステップS402)。ここで、命令電文無しと判定した場合は命令電文が来るまで処理を繰り返す一方、命令電文有りと判定した場合は、スレッド排他権を取得(維持)し続け(ステップS403)、スレッド排他権が確認できて取得成功と判断された場合は(ステップS404)、待機中の命令電文を送信する(ステップS405)。待機中の命令電文を送信してレスポンス応答を受信すると(ステップS406)、スレッド排他権を破棄して(ステップS407)、本サブルーチンを終了する。なお、状態監視用スレッドにてスレッド排他権の取得中である場合は、ステップS403及びS404の処理を繰り返す。
【0046】
[ハードウェア構成]
図4は、本発明の実施の形態に係る情報処理システムのハードウェア構成図である。
【0047】
情報処理システム1は、下位に接続される各種のデバイスを制御する上位装置2と、上位装置2によって制御され各種の機能を実現するデバイスとしてのカード発行機3と、がRS−232Cでの通信を行う通信ライン4を通じて接続されている。
【0048】
上位装置2は、BUS(バス)を介して各種の機器が接続されており、CPU21と、ROM22と、RAM23と、表示部24と、通信インターフェース25と、HDD26と、が主に接続されている。
【0049】
CPU21は、各種のソフトウェアが実行され、上位装置2内の各部の情報のやり取りが正しく行なわれているか監視したり、或いは各部の動作開始や停止のタイミングを指示したりするように全体の流れを制御している。
【0050】
ROM22は、制御プログラム等が格納されている読み出し専用メモリである。
【0051】
RAM23は、CPU21がプログラムを実行するための作業領域を備えるランダムアクセスメモリである。本実施形態では、HDD20から読み出された基本ソフトウェア(OS)のほか、OSの下で実行されるアプリケーションプログラムや、上位装置2とカード発行機3との間で通信制御を行うためのアプリケーションプログラムや、APIとプログラミングインターフェースとが互いに共通する関数を一時的に記憶する。共通する関数(共通API群)としては、カード発行機3等のデバイスとの通信を確立する「open」処理、デバイスとの通信を遮断する「close」処理等の各種関数がある。
【0052】
また、RAM23には、2つのFIFO(First In First Out)バッファ領域が設けられており、本実施の形態では、機器制御プロセス用FIFOと、状態監視プロセス用FIFOと、分けて形成されている。詳細は後述するが、各FIFOは、実行コマンドを時系列的に格納し、CPU21によって順次読み出して電文変換部に送出している。
【0053】
表示部24は、表示装置及びタッチパネルを有している。表示装置は、操作方法や操作ボタン等を表示する際に使用し、タッチパネルは使用者がデータ等を入力等する際に使用する。
【0054】
通信インターフェース25は、CPU21からの命令に基づいて様々な処理が実行されるカード発行機3と上位装置2とを接続するものであり、カード発行機3とはRS−232Cケーブルの通信ライン4でシリアル接続されている。
【0055】
HDD26は、記録媒体としてハードディスクを用いており、基本ソフトウェア(OS),アプリケーションプログラム,(通信)ミドルウェア,ドライバ等の各種プログラムが記憶されている。
【0056】
カード発行機3は、RS−232Cでの通信を行う通信インターフェース31と、CPU、メモリ等を内部に備え、カード発行機3全体を制御する制御部32と、リーダライタ33と、カードをリーダライタ33に供給するカードホッパー34と、使用後のカードが回収されるカード回収庫35と、これらに+24V電圧を供給する電源36と、を備えている。このような構成を備えたカード発行機3はカードの発行と回収を行なっているが、公知のものと同様であるので、ここでの詳細は説明を省略する。
【0057】
図5は、本発明の実施の形態に係る情報処理システムのプロセス間の関係を示す概略図(ソフトウェア構成図)である。
【0058】
図4のHDD26には、コンピュータでプログラムなどを動作させる際、CPUが実行するひとまとまりの処理の単位で複数のプロセスが形成されている。具体的には、機器制御用コマンド発行プロセス群として機器制御プロセスP
C1,P
C2,・・・を実行する機能を有し、通信制御プロセスP
Sを実行する機能を有し、さらに、状態監視用コマンド発行プロセス群として状態監視プロセスP
CWを実行する機能を有する。各プロセスには、そのプロセスを実行するためのアプリケーション及び通信用ミドルウェアを有する。また、上位装置2とカード発行機3との通信は、RS−232Cインターフェース25に接続されたRS−232Cケーブルの通信ライン4によって、通信制御プロセスP
Sを実行することによって命令送信と返答が行われる。
【0059】
機器制御用コマンド発行プロセス群は、複数の機器制御プロセスP
C1,P
C2,・・・を構成している。具体的には、複数の機器制御プロセスP
C1,P
C2は、所定の動作処理を行うための複数のアプリケーションプログラムと通信用ミドルウェアがそれぞれ構成されている。
【0060】
本実施形態では、機器制御プロセスP
C1は磁気・ICリードライトにおける制御を行う磁気・ICリードライト制御用アプリケーションプログラム、通信制御プロセスP
Sとのプロセス間通信を行うための通信用ミドルウェアを主な構成としている。別の機器制御プロセスP
C2はカード発行機を制御するカード発行制御用アプリケーションプログラム、通信制御プロセスP
Sとの通信を行うための通信用ミドルウェアを主な構成としている。
【0061】
状態監視用コマンド発行プロセス群は、状態監視プロセスP
CWから構成されている。本実施形態では、状態監視プロセスP
CWは、カード発行機3の状態を監視するための状態監視用アプリケーションプログラム、通信制御プロセスP
Sとのプロセス間通信を行うための通信ミドルウェアを有している。
【0062】
カード発行機3の状態としては、例えば、カード発行機3全体の状態(電源ON/OFF・通信ケーブルオンライン/オフライン・デバイスビジー(機器制御処理実行中)か否か)、リーダライタ3の状態としては、カード搬送路(常に機能しているか否か)、カード状態(装置内部にカードが存在する・排出口に存在する・ジャム状態・存在しない)、シャッタ状態(閉じている/開いている・シャッタがジャム状態)、などである。
【0063】
通信制御用プロセスP
Sは、複数の機器制御プロセスP
C1,P
C2及び状態監視プロセスP
CWからのコマンドを受けて各プロセスを実行させるローカルサーバアプリケーションプログラム40、通信制御部11を制御しRS−232Cインターフェース25との通信を行うための通信用ミドルウェア41、また、図示していないが、各種コマンドを発行機命令電文へ変換するためのドライバを主な構成としている。
【0064】
ローカルサーバアプリケーション40は、機器制御用コマンド受付API(アプリケーションプログラムインターフェース)と状態監視用コマンド受付APIとを有している。また、通信用ミドルウェア41は、機器制御用コマンド受付APIと状態監視用コマンド受付APIとを有しており、各APIからのコマンドを格納する機器制御用FIFOバッファと状態通知用FIFOバッファとを有している。なお、通信制御用コマンド発行プロセス群は、機器制御用コマンド発行プロセス群及び状態監視用コマンド発行プロセス群とは異なり、機器制御用スレッド及び状態監視用スレッドの構成が形成されている(
図1参照)。
【0065】
通信制御用プロセスPsは、複数の機器制御プロセスP
C1,P
C2及び状態監視プロセスP
CWに先立ち起動され、ローカルサーバアプリケーション40が有する機器制御用コマンド受付APIにて、複数の機器制御プロセスP
C1,P
C2から発行される機器制御用コマンドを受付け可能な状態にして待機する。また、ローカルサーバアプリケーション40が有する状態監視用コマンド受付APIにて、状態監視プロセスP
CWから発行される状態監視用コマンドを受付け可能な状態にして待機する。そして、通信制御用プロセスPsが起動した後、複数の機器制御プロセスP
C1,P
C2及び状態監視プロセスP
CWが順に起動される。
【0066】
複数の機器制御プロセスP
C1,P
C2が起動した場合、複数の機器制御プロセスP
C1,P
C2に存在する通信用ミドルウェアと通信制御用プロセスP
Sのローカルサーバアプリケーション40に存在する機器制御用コマンド受付APIとが接続され、通信制御プロセスP
Sへ機器制御用コマンドを発行することが可能となる。
【0067】
一方、状態監視プロセスP
CWが起動した場合、状態監視プロセスP
CWに存在する通信用ミドルウェアと通信制御用プロセスP
Sのローカルサーバアプリケーション40に存在する状態監視用コマンド受付APIとが接続され、通信制御プロセスP
Sへ状態監視用コマンドを発行することが可能となる。
【0068】
このように、通信制御プロセスPsへの機器制御コマンド及び状態監視用コマンドの発行は、プロセス間通信を利用して行われる。
【0069】
プロセス間通信を行う通信制御プロセスPsは、機器制御用コマンド受付API、機器制御用FIFOバッファ、状態通知用コマンド受付API、状態通知用FIFOバッファ、発行機命令のための機器制御用電文変換部、状態監視用電文変換部で構成されている。
【0070】
通信用ミドルウェア41が有する機器制御用コマンド受付APIは、ローカルサーバアプリケーション40が有する機器制御用コマンド受付APIにて受取った機器制御用コマンドをミドルウェアにて受信する。
【0071】
機器制御用FIFOバッファは、通信用ミドルウェアが有する機器制御用コマンド受付APIで受取った機器制御用コマンドを順番に保存していく。機器制御用FIFOバッファでは、先に到達した機器制御用コマンドの順に機器制御用電文変換部へ送り出されるFIFO(First In First Out)形式となっている。
【0072】
通信用ミドルウェア41が有する状態監視用コマンド受付APIは、ローカルサーバアプリケーション40が有する状態監視用コマンド受付APIにて受取った状態監視用コマンドをミドルウェアにて受信する。
【0073】
状態監視用FIFOバッファは、通信用ミドルウェアが有する状態監視用コマンド受付APIで受取った状態監視用コマンドを順番に保存していく。状態監視用FIFOバッファでは、先に到達した状態監視用コマンドの順に状態監視用電文変換部へ送り出されるFIFO形式となっている。なお、各々のFIFOバッファへ各コマンドを保存していくことをキューイングという。
【0074】
機器制御用FIFOバッファの送り出し口に位置する機器制御用電文変換部は、機器制御用FIFOバッファから送り出される機器制御用コマンドを、カード発行機3に送信するための命令電文に変換を行う。なお、機器制御用コマンドは、複数の命令電文から構成されているため、この電文変換部では、1つの機器制御用コマンドから、複数の命令電文へと変換され、変換された複数の命令電文は、順番に送信制御部へ送られる。
【0075】
また、状態監視用FIFOバッファの送り出し口に位置する状態監視用電文変換部は、状態監視用FIFOバッファから送り出される状態監視用コマンドを、カード発行機3に送信するための命令電文に変換を行う。本実施例では、1つの状態監視用コマンドを電文変換部にて変換した場合、1つの命令電文が生成される。ここで変換された1つの命令電文は送信制御部へと送られる。
【0076】
これら一連の機器制御用コマンドの電文変換処理と状態監視用コマンドの電文変換処理は並行して行われる。
【0077】
通信制御部11は、機器制御用FIFOバッファの送り出し口に位置する機器制御用電文変換部から送られる命令電文と、状態監視用FIFOバッファの送り出し口に位置する状態監視用電文変換部から送られる命令電文とを、交互にカード発行機3へ送信していく。
例えば、状態監視用FIFOバッファに先行し、機器制御用FIFOバッファに機器制御用コマンドが到達した場合は、まず、電文変換部にて変換された命令電文の1つをカード発行機3へ送信する。この間に状態監視用FIFOバッファに状態通知コマンドが到達している場合は、状態通知コマンドを電文変換部にて変換し、この命令電文をカード発行機3へ送信する。送信が完了した後、再び機器制御用FIFOバッファからの変換処理に処理を戻し、残りの命令電文の1つを送信する。
【0078】
このように、機器制御用FIFOバッファと状態監視用FIFOバッファの双方にコマンドが存在する場合は、交互に1つの命令電文を送信していく。なお、片方のFIFOバッファにのみコマンドが存在する場合は、他方の存在しないFIFOバッファからの電文変換処理へ処理を移すことなく、存在するFIFOバッファからの電文変換処理が優先的に行われる。
【0079】
図6は、本発明の実施の形態に係る情報処理システムの起動時の動作手順を示すフローチャートである。
【0080】
システムの起動開始の手順は、まず、通信制御プロセスP
Sを起動し、RS−232C通信を開設する(ステップS101)。これらの開設・起動結果を判断し(ステップS102)、成功と判定した場合には、状態監視プロセスP
CWを起動し、通信制御プロセスP
Sと開設する一方(ステップS103)、失敗と判定した場合には、本サブルーチンを終了する。
【0081】
ステップS103における起動・接続結果を判断し(ステップS104)、成功と判定した場合には、機器制御プロセスP
C1を起動し、通信制御プロセスP
Sと接続する一方(ステップS105)、失敗と判定した場合には、本サブルーチンを終了する。
【0082】
ステップS105における起動・接続結果を判断し(ステップS106)、成功と判定した場合には、起動完了してコマンド待ち状態となる一方、失敗と判定した場合には、本サブルーチンを終了する。
【0083】
次に、本発明の実施の形態に係る情報処理方法を、
図7〜
図9を用いて説明する。
図7及び
図8に示す情報処理方法は、動作処理の一例としてのカード排出処理の動作手順である。
【0084】
まず、情報処理システム1がカード発行取引開始の状態にある場合、入力画面にてICカードへの記録情報を入力する(ステップS501)。これは、情報処理システム1の上位装置2の表示部24にて、ユーザが表示装置の入力画面にカードへの記録情報を入力する。
【0085】
ユーザがカード発行ボタンを押すことにより、HDD20やROM22に記憶されているプログラムやデータをCPU21からの命令に従ってRAM23上に読み出し、インターフェース24にRS−232Cケーブルの通信ライン4で接続されているカード発行機3をAPIを使用して制御することにより、各アプリケーションの動作が開始される。
【0086】
次いで、状態監視用アプリケーションにて、状態通知コマンドを発行し、カード発行機3の状態を把握する(ステップS502、S503)。発行された状態通知コマンドは、通信用ミドルウェアで変換されて、通信制御プロセスP
Sに入力され、コマンドが所定の電文に変換される。例えば、格納されているカードが切れた状態等、何らかの不具合でエラーが発生した場合には、異常と判定し(ステップS503)、異常が発生したことを表示装置の画面に表示(通知)する(ステップS521)。一方、カード発行機状態が正常と判定すると(ステップS503)、カード発行制御用アプリケーションを起動して「1−1 カード発行コマンド」を発行する(ステップS504)。
【0087】
次いで、状態監視用アプリケーションを起動して「2−1 状態通知コマンド」を発行し、カード位置を把握する(ステップS505)。カード位置の状態判断において(ステップS506)、カードリーダ内にカードが無いと判定すると、ステップS505の処理に戻る。また、カード位置の状態判断において(ステップS506)、カードリーダ内でカードジャム等による異常が発生していると判定すると、異常状態を通知する(ステップS521)。一方、カード位置の状態判断において(ステップS506)、カードリーダ内にカードが有ると判定すると、磁気・ICリードライト制御用アプリケーションにて「1−2 IC活性化コマンド」を発行する(ステップS507)。
【0088】
次いで、状態監視用アプリケーションを起動して「2−2状態通知コマンド」を発行し、ステップS507にて発行された「1−2 IC活性化コマンド」に基づくIC活性化状態を把握する(ステップS508)。IC活性化の状態判断において(ステップS509)、ICカードが非活性化状態であると判定すると、ステップS508の処理に戻る。また、IC活性化の状態判断において(ステップS509)、カードリーダ内にICカードが無い等による異常が発生していると判定すると、異常状態を通知する(ステップS521)。一方、ICカードが活性化状態であると判定すると、磁気・ICリードライト制御用アプリケーションにて「1−3 IC通信コマンド」を発行し(ステップS510)、同じく磁気・ICリードライト制御用アプリケーションにて「1−4 IC非活性化コマンド」を発行する(ステップS511)。
【0089】
次いで、状態監視用アプリケーションにて「2−3 状態通知コマンド」を発行し、ステップS511にて発行された「1−4 IC非活性化コマンド」に基づくIC活性化状態を把握する(ステップS512)。IC活性化の状態判断において(ステップS513)、ICカードが活性化状態であると判定すると、ステップS512の処理に戻る。また、IC活性化の状態判断において(ステップS513)、ICカードとの通信ができない等による異常が発生していると判定すると、異常状態を通知する(ステップS521)。一方、ICカードが非活性化状態であると判定すると、カード発行制御用アプリケーションにて「1−5 カード排出コマンド」を発行する(ステップS514)。
【0090】
次いで、状態監視用アプリケーションにて「2−4 状態通知コマンド」を発行し、ステップS514にて発行された「1−5 カード排出コマンド」に基づくカード位置を把握する(ステップS515)。カード位置の状態判断において(ステップS516)、カードリーダ内にカードが有ると判定すると、ステップS515の処理に戻る。また、カード位置の状態判断において(ステップS516)、カードリーダ内でカードジャム等による異常が発生していると判定すると、異常状態を通知する(ステップS521)。また、カード位置の状態判断において(ステップS516)、カードリーダ内にカードが無いと判定すると、ステップS520の処理に進む。一方、カード位置の状態判断において(ステップS516)、ゲート口にカードが有ると判定すると、ユーザに対してカードを抜き取るよう表示画面に通知する(ステップS517)。
【0091】
次いで、状態監視用アプリケーションにて「2−4 状態通知コマンド」を発行し、カード位置を把握する(ステップS518)。カード位置の状態判断において(ステップS519)、カードリーダ内にカードが有ると判定すると、ステップS518の処理に戻る。また、カード位置の状態判断において(ステップS519)、カードリーダ内でカードジャム等による異常が発生していると判定すると、異常状態を通知する(ステップS521)。一方、カード位置の状態判断において(ステップS519)、正常にカードが発行されたことを画面に通知する(ステップS520)。
【0092】
以上のステップS520又はステップS521の処理を経て、本サブルーチンは終了する。
【0093】
上記の処理において、機器制御プロセスP
C1,P
C2で発行された各コマンドは、通信制御プロセスP
Sのローカルサーバアプリケーションプログラム内の機器制御用コマンド受付APIに順次送信され、それらは時系列的に順次、通信用ミドルウェアの機器制御用コマンド受付APIに送信され、それらは時系列的に順次、機器制御用FIFOバッファへキューイングされる。機器制御用FIFOバッファ内に格納されたコマンドは、所定のタイミングにより、先に格納された順番ごとに機器制御用電文変換部に送信され、機器制御用電文変換部は、受信した順番ごとにカード発行機3の命令電文に変換し、通信制御部11に送信する。なお、命令電文への変換は、1つのコマンドに対して複数の電文に変換され、例えば、「1−1カード発行コマンド」を発行機命令電文へ変換する場合は、「1−1−1Status request」、「1−1−2Card set」となる。
【0094】
一方、上記の処理において、機器制御コマンドの処理の実行と並行して、状態監視プロセスP
CWの状態監視用アプリケーションプログラムによって定期的に発行された状態通知コマンドが通信用ミドルウェアによって通信制御プロセスP
Sに送信され、状態監視用コマンド受付APIで受付けられた状態通知コマンドが状態通知用FIFOバッファへキューイングされる。具体的には、CPU21からの命令により、状態監視プロセスP
CWでは、状態監視用アプリケーションプログラムにより、定期的(常時一定間隔で)に状態通知コマンドが発行され、状態監視プロセスP
CWで発行された状態通知コマンドは、通信制御プロセスPsのローカルサーバアプリケーションプログラム内の状態監視用コマンド受付APIに順次送信される。ローカルサーバアプリケーションプログラム内の状態監視用コマンド受付APIにて受取られた各コマンドは、順次、通信用ミドルウェアの状態監視用コマンド受付APIに送信され、状態監視用コマンド受付APIで受付けられた状態通知コマンドが機器制御用FIFOバッファへキューイングされる。状態通知用FIFOバッファは、状態監視用コマンド受付APIで受信されたコマンドを時系列的に順次書き込んで格納する。状態通知用FIFOバッファ内に格納された状態通知コマンドは、所定のタイミングにより、先に格納された順番ごとに、状態監視用電文変換部に送信され、送信制御部11に送信する。なお、命令電文への変換は、例えば、「2−1状態通知コマンド」を発行機命令電文へ変換する場合は、「2−1Status request」となる。
【0095】
以上において、通信制御部11が受信したコマンドは、通信インターフェース25及び通信ケーブル4を介して、カード発行機3に送信される。このようにして変換された電文は通信制御部11によってカード発行機3に送信され、磁気・ICカード発行機3において、状態通知コマンドと機器制御コマンドとが交互に実行されることとなる。
【0096】
ここで、機器制御用FIFOバッファと状態通知用FIFOバッファとに格納されたコマンドを電文変換する場合には、それらを交互に行っている。具体的には、機器制御用FIFOバッファにキューイングされたコマンドを発行機命令電文へ変換している時は、状態通知用FIFOバッファにキューイングされたコマンドを発行機命令電文へ変換していない。逆に、状態通知用FIFOバッファにキューイングされたコマンドを発行機命令電文へ変換している時は、機器制御用FIFOバッファにキューイングされたコマンドを発行機命令電文へ変換しない。
【0097】
また、状態通知コマンドと機器制御コマンドとが交互に実行されるため、例えば、「1−1カード発行コマンド」が「2−1状態通知コマンド」よりも先にFIFOバッファに到達していても、変換された発行機命令電文は、「1−1−1Status request」、「2−1Status request」、「1−1−2Card set」の順に実行されるため、結果、「1−1カード発行コマンド」の実行結果が通知される前に、「2−1状態通知コマンド」の実行結果が通知されることになる。つまり、機器制御用コマンドが複数の発行機命令電文へ変換をしなくてはならないコマンドであった場合であっても、機器制御用コマンドの実行結果を待つことなく、状態通知コマンドの結果を通知することができる。
【0098】
図9は、本発明の実施の形態に係る情報処理方法を示す時間状態図であり、カード排出のコマンドの動作処理を説明するための図である。なお、この動作処理は、
図8におけるステップS514以降の処理に対応するものである。
【0099】
機器制御プロセスP
C2ではカード発行制御用アプリケーションにてカード排出コマンドを発行すると(
図8のステップS514参照)、当該コマンドを受信した通信制御プロセスP
Sではカード発行機3に対して「Card carry - Eject」を指令し、カードがゲートに移動される(
図8のステップS515〜S516参照)。カードがゲートに移動され、カードが抜き取られてカードがゲートに無しという状態を把握すると(
図8のステップS517〜S520参照)、通信制御プロセスP
Sでは機器制御プロセスP
C2に対して「カード排出完了通知」を送り、カード排出コマンドの動作処理は終了する。
【0100】
このような処理の間、状態監視プロセスP
CWは、カード発行機3の状態を監視しており、通信制御プロセスP
Sとの間で状態通知コマンドの発行と状態通知の処理を行っている(
図8のステップSS515,S518参照)。また、カード発行機3は、カード位置の状態判定をしており(
図8のステップS516,S519参照)、通信制御プロセスP
Sからの「Status request」を受けて、カードがゲートに移動される、カードがゲートに有る、カードがゲートに無いという位置状態に応じた応答をする。
【0101】
なお、
図8に示すカード排出の動作処理はICカードが非活性化状態である場合のものであるが、ICカードが活性化状態にある場合にカード排出コマンドが発行された場合には、
図9に示すように、カード発行機3は通信制御プロセスP
Sからの「IC contact - Release」を受けてICカードを非活性化することにより、カード排出の動作処理を行うこともできる。
【0102】
[本実施の形態の主な効果]
以上説明したように、本発明の実施の形態によれば、上位装置2は、機器制御用コマンドを発行する複数の機器制御プロセスP
C1,P
C2、状態通知コマンドを発行する状態監視プロセスP
CW、カード発行機3との通信を行う通信制御プロセスP
Sを実行する機能を有し、通信制御プロセスP
Sがデバイスにアクセスして通信を確立した状態において、各機器制御プロセスP
C1,P
C2が順番に実行されることから、各機器制御プロセスを実行するたびに通信の遮断/開設を繰り返す必要がないため、各機器制御プロセスの処理時間を短くすることができる。また、状態監視プロセスは、複数の機器制御プロセスP
C1,P
C2に優先して実行されることから、通信の遮断/開設を行うことなくいつでもデバイスの状態を把握することができる。
【0103】
さらに、上位装置とデバイスとが単一の通信ラインを通じて接続されても、通信制御プロセスP
Sがデバイスにアクセスして通信を確立した状態に上位装置とデバイスとの間で通信を確立させて複数の機器制御プロセスを実行することができる。
【0104】
また、上位装置2からは、今どこでカードが止まっているのか分からない。そこで、カード排出コマンドが完了していない状態でも、状態通知コマンドを発行して実行すればカード位置がわかり、カードが排出口にあればユーザに取り忘れのアラームを鳴らす事もでき、装置内部で停滞していればメンテナンス業者に通知する事も可能である。
【0105】
[他の実施形態]
なお、デバイスとしての磁気・ICカード発行機3は一例であって、これ以外にもプリンタやバーコードリーダ等の各種のデバイスを個別に又は複合的に構成することもできる。また、本発明の実施の形態によれば、通信としてRS−232C方式を用いたが、USB方式等の他の方式にも応用可能である。