(57)【要約】クライアントは、外部デバイスの入力情報をサーバに送信して処理を要求しサーバから出力情報を受信して外部デバイスに出力し、またサーバから受信した初期化情報により入出力部の初期化処理を行う。サーバは、クライアントから接続要求を受信した際に入出力部の初期化情報を送信し、接続中はクライアントから受信した入力情報を処理し、出力情報をクライアントに送信する。サーバは、クライアントとの接続を管理し、サーバ上でクライアントとの通信が途絶した場合に、アプリケーション処理部の処理を中断して中断時の状態及びクライアントへの出力情報を保持し、クライアントとの通信が再開した時点で、クライアントに前記初期化情報を再度送信して初期化すると共に、アプリケーション処理部の処理と出力情報の送信を再開する。
2001077844.tif 000002
【特許請求の範囲】
【請求項１】
通信回線を介してサーバとクライアントを接続し、クライアントからサーバに処理を依頼して処理結果を受け取る情報処理システムに於いて、
前記クライアントに、
外部デバイスの入力情報をサーバに送信して処理を要求し、サーバから出力情報を受信して外部デバイスに出力する入出力処理部と、
サーバから受信した初期化情報により前記入出力部の初期化処理を行う初期化処理部と、
を設け、
前記サーバに、
前記クライアントから接続要求を受信した際に外部デバイスの初期化情報を送信し、接続中はクライアントから受信した入力情報を処理し、出力情報をクライアントに送信するアプリケーション処理部と、
前記クライアントとの接続を管理し、サーバ上でクライアントとの通信が途絶した場合に、アプリケーション処理部の処理を中断して中断時の状態及びクライアントへの出力情報を保持し、クライアントとの通信が再開した時点で、クライアントに前記初期化情報を再度送信して初期化すると共に、アプリケーション処理部の処理と出力情報の送信を再開させるセッション処理部と、
を設けたことを特徴とする情報処理システム。
【請求項２】
請求の範囲１の情報処理システムに於いて、前記セッション管理部は、サーバとクライアント間の接続をセッション番号により管理し、クライアントとの通信途絶後、同一のセッション番号でクライアントから接続要求を受信した場合に通信を再開することを特徴とする情報処理システム。
【請求項３】
請求の範囲２の情報処理システムに於いて、前記セッション管理部は、クライアントとの通信途絶後、別のクライアントから接続要求を受信した場合、セッション番号の一致を判断した際に、別のクライアントに初期化情報を再度送信すると共に、アプリケーション処理部の処理と出力情報の送信を再開させることを特徴とする情報処理システム。
【請求項４】
請求の範囲２又は３の情報処理システムに於いて、前記セッション管理部は、クライアントから接続要求を受信した際にセッション管理情報を参照し、クライアント識別子が一致するセッション番号がない場合は、新たなセッション番号を取得してクライアント識別子及びアプリケーション処理部の状態と共にセッション管理情報に登録して処理し、クライアント識別子が一致する場合、一致したクライアント識別子のセッション番号を取得して処理することを特徴とする情報処理システム。
【請求項５】
請求の範囲４の情報処理システムに於いて、前記クライアント識別子は、クライアントのログインで使用するアカウント、ログオンで使用するネーム、ネットワークアドレス、又はその他のユニークな識別子であることを特徴とする情報処理システム。
【請求項６】
請求の範囲１の情報処理システムに於いて、前記セッション管理部は、クライアントとの通信の途絶を検出するため、一定時間間隔にて接続を確認することを特徴とする情報処理システム。
【請求項７】
通信回線を介してサーバとクライアントを接続し、クライアントからサーバに処理を依頼して処理結果を受け取る情報処理システムに於いて、
前記クライアントに、
、外部デバイスの入力情報をサーバに送信して処理を依頼し、サーバから出力情報を受信して外部デバイスに出力する入出力処理部と、
サーバから受信した初期化情報により前記入出力部の初期化処理を行う初期化処理部と、
を設け、
前記サーバに、
前記クライアントから接続要求を受信した際に外部デバイスの初期化情報を送信し、接続中はクライアントから受信した入力情報を処理して出力情報をクライアントに送信するアプリケーション処理部と、
前記クライアントとの接続をセッション番号により管理し、クライアントと接続している状態で、同一のセッション番号で接続要求を別のクライアントから受信した場合、接続中のクライアントとの接続を確認して接続が切断されていると判明した場合は、接続要求を送信してきたクライアントと接続して処理を継続するセッション管理部と、
を設けたことを特徴とする情報処理システム。
【請求項８】
請求の範囲７の情報処理システムにおいて、前記セッション管理部は、接続要求を送信してきたクライアントに、外部デバイスの初期化情報を送信して処理を継続することを特徴とする情報処理システム。
【請求項９】
請求の範囲７の情報処理システムに於いて、前記セッション管理部は、クライアントから接続要求を受信した際にセッション管理情報を参照し、クライアント識別子が一致するセッション番号がない場合は、新たなセッション番号を取得しクライアント識別子及びアプリケーション処理部の状態と共にセッション管理情報に登録して処理し、クライアント識別子が一致する場合、一致したクライアント識別子のセッション番号を取得して処理することを特徴とする情報処理システム。
【請求項１０】
通信回線を介してサーバとクライアントを接続し、クライアントからサーバに処理を依頼して処理結果を受け取る情報処理方法に於いて、
サーバがクライアントから接続要求を受信した際は、サーバから初期化情報をクライアントに送信して外部デバイス入出力部を初期化し、
サーバとクライアントの接続中は、クライアントから受信した外部デバイスの入力情報をサーバ上のアプリケーションプログラムで処理し、出力情報をクライアントに送信して出力し、
サーバ上でクライアントとの接続を管理し、サーバ上でクライアントとの通信が途絶した場合に、アプリケーションプログラムを中断して中断時の状態及びクライアントへの出力情報を保持し、
クライアントとの通信が再開した時点で、クライアントに初期化情報を再度送信して初期化すると共にアプリケーションプログラムの処理と出力情報の送信を再開することを特徴とする情報処理方法。
【請求項１１】
請求の範囲１０の情報処理方法に於いて、サーバとクライアント間の接続をセッション番号により管理し、クライアントとの通信途絶後、同一のセッション番号でクライアントから接続要求を受信した場合に通信を再開することを特徴とする情報処理方法。
【請求項１２】
請求の範囲１１の情報処理方法に於いて、クライアントとの通信途絶後、別のクライアントから接続要求を受信した場合、セッション番号が一致した別のクライアントに初期化情報を再度送信すると共に、アプリケーションプログラムの処理と出力情報の送信を再開させることを特徴とする情報処理方法。
【請求項１３】
請求の範囲１１又は１２の情報処理方法に於いて、クライアントから接続要求を受信した際にセッション管理情報を参照し、クライアント識別子が一致するセッション番号がない場合は、新たなセッション番号を取得しクライアント識別子及びアプリケーション処理部の状態と共にセッション管理情報に登録して処理し、クライアント識別子が一致する場合、一致したクライアント識別子のセッション番号を取得して処理することを特徴とする情報処理方法。
【請求項１４】
請求の範囲１３の情報処理方法に於いて、前記クライアント識別子は、クライアントのログインで使用するアカウント、ログオンで使用するネーム、ネットワークアドレス、又はその他のユニークな識別子であることを特徴とする情報処理方法。
【請求項１５】
請求の範囲１０の情報処理方法に於いて、クライアントとの通信の途絶を検出するため、一定時間間隔にて接続を確認することを特徴とする情報処理方法。
【請求項１６】
通信回線を介してサーバとクライアントを接続し、クライアントからサーバに処理を依頼して処理結果を受け取る情報処理方法に於いて、
クライアントから接続要求をサーバで受信した際に、サーバから初期化情報をクライアントに送信して外部デバイス入出力部を初期化し、
サーバとクライアントの接続中は、クライアントから受信した外部デバイスの入力情報をサーバ上のアプリケーションプログラムで処理し、出力情報をクライアントに送信して出力し、
サーバ上でクライアントとの接続をセッション番号により管理し、クライアントと接続している状態で、同一のセッション番号で接続要求を別のクライアントから受信した場合、接続中のクライアントとの接続を確認して接続が切断されていると判明した場合は、接続要求を送信してきたクライアントと接続して処理を継続することを特徴とする情報処理方法。
【請求項１７】
請求の範囲１６の情報処理方法において、接続要求を送信してきたクライアントに、外部デバイスの初期化情報を送信して処理を継続することを特徴とする情報処理方法。
【請求項１８】
請求の範囲１６の情報処理方法に於いて、クライアントから接続要求を受信した際にセッション管理情報を参照し、クライアント識別子が一致するセッション番号がない場合は、新たなセッション番号を取得しクライアント識別子及びアプリケーション処理部の状態と共にセッション管理情報に登録して処理し、クライアント識別子が一致する場合、一致したクライアント識別子のセッション番号を取得して処理することを特徴とする情報処理方法。
【請求項１９】
通信回線を介してクラアントと接続されるサーバに於いて、
前記クライアントから接続要求を受信した際に外部デバイス入出力部の初期化情報を送信し、接続中はクライアントから受信した入力情報を処理して出力情報をクライアントに送信するアプリケーション処理部と、
前記クライアントとの接続をセッション番号により管理し、サーバ上でクライアントとの通信が途絶した場合に、アプリケーション処理部の処理を中断して中断時の状態及びクライアントへの出力情報を保持し、同一のセッション番号の接続要求によりクライアントとの通信が再開した時点で、クライアントに初期化情報を再度送信して初期化すると共に、アプリケーション処理部の処理と出力情報の送信を再開させるセッション処理部と、
を備えたことを特徴とするサーバ。
【請求項２０】
通信回線を介してクラアントと接続されるサーバに於いて、
前記クライアントから接続要求を受信した際に外部デバイス入出力部の初期化情報を送信し、接続中はクライアントから受信した入力情報を処理して出力情報をクライアントに送信するアプリケーション処理部と、
前記クライアントとの接続をセッション番号により管理し、クライアントと接続している状態で、同一のセッション番号による接続要求を別のクライアントから受信した場合、接続中のクライアントとの接続を確認して切断されていると判明した場合は、接続要求を送信してきたクライアント接続続して処理を継続するセッション管理部と、
を備えたことを特徴とするサーバ。
【発明の詳細な説明】
技術分野
本発明は、クライアントからサーバに処理を依頼する情報処理システム及び方法並びにサーバに関し、特にクライアント側の障害や電源断に適切に対応できる情報処理システム及び方法並びにサーバに関する。
背景技術
従来、サーバとクライアントを通信回線にて接続した情報処理システムとして、アプリケーションプログラムをサーバ上で動作し、クライアントでは入力された情報を通信回線を経由してサーバ上のアプリケーションプログラムに伝達して処理し、サーバ上のアプリケーションプログラムから送信される出力情報をクライアント受け取り、クライアントに接続して外部Ｉ／Ｏデバイスに出力するシステムが知られている。
このような情報処理システムとしては、例えばＰＯＳシステムがある。ＰＯＳシステムは、サーバに対し複数のＰＯＳ端末となるクライントを接続し、クライアントにはバーコードリーダ、ディスプレイ、プリンタ等の外部Ｉ／Ｏデバイスが接続されている。クライアントは、バーコードリーダで商品のバーコードの読取入力を受けると、このバーコード読取情報をサーバ上のアプリケーションプログラムに伝達し、売上に必要な処理を実行し、処理結果として得られた出力情報をクライアントに送信し、ディスプレイに表示し、同時にプリンタから出力させるようにしている。
このような情報処理システムで、クライアントの電源断やサーバとクライアント間の通信断が発生した場合には処理が中断され、再度初めから処理を開始せざるえない状況になる。これを防止するため、中断時にアプリケーションプログラムの状態およびクライアントへの出力情報をサーバ上で保持し、接続再開時にアプリケーションプログラムの処理と出力情報の送信を再開し、中断があっても処理を継続できるようにしている。
ところで、このような情報処理システムにあっては、クライアントからサーバに接続要求を行った際に、サーバからクライアントに外部Ｉ／Ｏデバイスの初期化情報を送って初期化処理を行われるようにしている場合がある。例えばＰＯＳシステムでは、クライアントのＰＯＳ端末からサーバに接続要求があった際には、クライアントにバーコードリーダの読取コードを指定する初期化情報を送信し、バーコードリーダ入出力ドライバ（一部の入出力部）の初期化処理を行っている。
しかし、接続要求に対しサーバから初期化情報を送って一定の初期化処理を必要とする入出力部をクライアントが持つ場合には、クライアントの電源断で通信異常が発生して処理が中断した場合、電源が復旧してもクライアント側の状態を中断時の状態に戻すことができず、処理を継続できない問題があった。
本発明は、サーバからの初期化情報による初期化処理を必要とする入出力部をもつクライアントの電源断や故障に対し回復時や他のクライアントによる代替で処理を継続可能とする情報処理システム及び方法並びにサーバを提供することを目的とする。
発明の開示
本発明は、通信回線を介してサーバとクライアントを接続し、クライアントからサーバに処理を依頼して処理結果を受け取る情報処理システムを対象とする。
このような情報処理システムにおいて、クライアントには、外部デバイスの入力情報をサーバに送信して処理を要求しサーバから出力情報を受信して外部デバイスに出力する入出力処理部と、サーバから受信した初期化情報により入出力部の初期化処理を行う初期化処理部とを設ける。
サーバには、クライアントから接続要求を受信した際に入出力部の初期化情報を送信し、接続中はクライアントから受信した入力情報を処理し、出力情報をクライアントに送信するアプリケーション処理部と、クライアントとの接続を管理し、サーバ上でクライアントとの通信が途絶した場合に、アプリケーション処理部の処理を中断して中断時の状態及びクライアントへの出力情報を保持し、クライアントとの通信が再開した時点で、クライアントに初期化情報を再度送信して初期化すると共に、アプリケーション処理部の処理と出力情報の送信を再開させるセッション処理部とを設ける。
このような本発明の情報処理システムによれば、接続中の電源断により処理が中断しても、電源が復旧してクライアントから接続要求を行うと、まず初期化情報をクライアントに送信して入出力部に必要な初期化を行ってクライアントを中断時の状態を復旧し、次に中断した処理を再開することで継続することが可能となる。
ここで、セッション管理部は、サーバとクライアント間の接続をセッション番号により管理し、クライアントとの通信途絶後、同一のセッション番号でクライアントから接続要求を受信した場合に、クライアントに初期化情報を再度送信すると共に、アプリケーション処理部の処理と出力情報の送信を再開させる。
またセッション管理部は、クライアントとの通信途絶後、別のクライアントから接続要求を受信した場合、セッション番号の一致を判断した際に、別のクライアントに初期化情報を再度送信すると共に、アプリケーション処理部の処理と出力情報の送信を再開させる。このため中断時に使用していたクライアントの電源回復や通信回線の回復を待てない場合は、別のクライアントから同一のセッション番号（具体的に同じクライアント識別子）で接続要求を行うことで、処理を継続することが可能となる。
セッション管理部は、クライアントから接続要求を受信した際にクライアント識別子を使用してセッション管理情報を参照し、クライアント識別子が一致するセッション番号がない場合は、新たなセッション番号を取得してクライアント識別子及びアプリケーション処理部の状態と共にセッション管理情報に登録して処理する。またセッション管理情報の検索でクライアント識別子が一致する場合、一致したクライアント識別子のセッション番号を取得して処理する。このようなクライアント識別子による接続要求で、クライアントからセッション番号を指定したと同等の処理ができる。
クライアント識別子としては、クライアントのログインで使用するアカウント、ログオンで使用するネーム、ネットワークアドレス、又はその他のユニークな識別子を使用する。
サーバのセッション管理部は、クライアントとの通信の途絶を検出するため、一定時間間隔にて接続を確認する。これによってクライアントが接続中でなくとも、クライアントの電源断、故障、通信回線異常等を検知して対応できる。
また本発明は、接続要求のあったセッション番号のセッションが中断されていない場合でも、他のクライアントによる同じセッション番号の接続要求に対し処理の継続を可能とする。この情報処理システムとして本発明は、サーバについて、クライアントから接続要求を受信した際に外部デバイスの初期化情報を送信し、接続中はクライアントから受信した入力情報を処理して出力情報をクライアントに送信するアプリケーション処理部と、クライアントとの接続をセッション番号により管理し、クライアントと接続している状態で、同一のセッション番号で接続要求を別のクライアントから受信した場合、接続中のクライアントとの接続を確認して接続が切断されていると判明した場合は、接続要求を送信してきたクライアントと接続して処理を継続するセッション管理部とを設けたことを特徴とする。この場合、クライアントは、サーバから受信した初期化情報により外部デバイスの初期化処理を行う初期化処理部と、外部デバイスの入力情報をサーバに送信して処理を依頼し、サーバから出力情報を受信して外部デバイスに出力する入出力処理部とを備え、セッションの中断に対応するシステムと同じになる。
更に、サーバのセッション管理部が、接続要求を送信してきたクライアントに、外部デバイスの初期化情報を送信して処理を継続する点、またセッション管理部が、クライアントの接続要求で得られるクライアント識別子を使用してセッション番号を管理する点も、セッションの中断に対応するシステムと同じになる。
更に、本発明は、通信回線を介してサーバとクライアントを接続し、クライアントからサーバに処理を依頼して処理結果を受け取る情報処理方法を提供する。この方法は次手順をもつ。
サーバがクライアントから接続要求を受信した際は、サーバから初期化情報をクライアントに送信して外部デバイスを初期化し；
サーバとクライアントの接続中は、クライアントから受信した外部デバイスの入力情報をサーバ上のアプリケーションプログラムで処理し、出力情報をクライアントに送信して出力し；
サーバ上でクライアントとの接続を管理し、サーバ上でクライアントとの通信が途絶した場合に、アプリケーションプログラムを中断して中断時の状態及びクライアントへの出力情報を保持し；
クライアントとの通信が再開した時点で、クライアントに初期化情報を再度送信して初期化すると共にアプリケーションプログラムの処理と出力情報の送信を再開する；
また本発明は、セッションが中断されていない状態で他のクライアントから同じセッションの接続要求があった場合の情報処理方法を提供し、この場合の手順は次のようになる。
クライアントから接続要求をサーバで受信した際に、サーバから初期化情報をクライアントに送信して外部デバイスを初期化し；
サーバとクライアントの接続中は、クライアントから受信した外部デバイスの入力情報をサーバ上のアプリケーションプログラムで処理し、出力情報をクライアントに送信して出力し；
サーバ上でクライアントとの接続をセッション番号により管理し、クライアントと接続している状態で、同一のセッション番号で接続要求を別のクライアントから受信した場合、接続中のクライアントとの接続を確認して接続が切断されていると判明した場合は、接続要求を送信してきたクライアントと接続して処理を継続する；
この情報処理方法における詳細は装置構成の場合と基本的に同じになる。
更に、本発明は、通信回線を介してクライアントと接続されるサーバを提供する。本発明のサーバは、クライアントから接続要求を受信した際に外部デバイスの初期化情報を送信し、接続中はクライアントから受信した入力情報を処理して出力情報をクライアントに送信するアプリケーション処理部と、クライアントとの接続をセッション番号により管理し、サーバ上でクライアントとの通信が途絶した場合に、アプリケーション処理部の処理を中断して中断時の状態及びクライアントへの出力情報を保持し、同一のセッション番号の接続要求によりクライアントとの通信が再開した時点で、クライアントに初期化情報を再度送信して初期化すると共に、アプリケーション処理部の処理と出力情報の送信を再開させるセッション処理部と備えたことを特徴とする。
更にまた、本発明は、セッションが中断されていない状態で他のクライアントから同じセッションの接続要求があった場合に処理を継続できるサーバを提供するものであり、らこのサーバは、クライアントから接続要求を受信したした際に外部デバイスの初期化情報を送信し、接続中はクライアントから受信した入力情報を処理して出力情報をクライアントに送信するアプリケーション処理部と、クライアントとの接続をセッション番号により管理し、クライアントと接続している状態で、同一のセッション番号による接続要求を別のクライアントから受信した場合、接続中のクライアントとの接続を確認して切断されていると判明した場合は、接続要求を送信してきたクライアント接続続して処理を継続するセッション管理部とを備えたことを特徴とする。
発明を実施するための最良の形態
図１は、本発明の情報処理システムのシステム構成を示したブロック図であり、ＰＯＳシステムを例にとっている。
図１において、本発明の情報処理システムは、サーバ１０に対し通信回線１４を介してＰＯＳ端末として機能するクライアント１２−１，１２−２を接続している。クライアント１２−１，１２−２には外部Ｉ／Ｏデバイスとしてバーコードリーダ１６−１，１６−２、カードリーダ１８−１，１８−２、ディスプレイ２０−１，２０−２、プリンタ２２−１，２２−２を接続している。このようなクライアント１２−１，１２−２として設けられたＰＯＳ端末としては、例えば富士通株式会社製ＴｅａｍＰｏｓ４０００，同５０００等がある。クライアント１２−１，１２−２には外部Ｉ／Ｏデバイスに対応して、入出力部３０−１，３０−２と、その初期化処理を行う初期化処理部３２−１，３２−２が設けられている。入出力部３０−１，３０−２は外部Ｉ／Ｏデバイスがバーコードリーダ１６−１，１６−２であれば、バーコード用入出力部としてのドライバが設けられている。またカードリーダ１８−１，１８−２、ディスプレイ２０−１，２０−２及びプリンタ２２−１，２２−２についても、それぞれに対応した入出力ドライバが設けられている。
ここで入出力部３０−１，３０−２に設けているバーコードリーダ１６−１，１６−２に使用するバーコードリーダ用入出力部は、クライアント１２−１，１２−２がサーバ１０に対し接続要求を行った時に送られてくる初期化情報を受信し、サーバ１０からの初期化情報に基づき初期化処理部３２−１，３２−２が、入出力部３０−１，３０−２に設けているバーコードリーダ用入出力部の初期化処理を行うようになる。この初期化処理部３２−１，３２−２によるサーバ１０からの初期化情報に基づく初期化処理が済むと、入出力部３０−１，３０−２はバーコードリーダ１６−１，１６−２を含む外部Ｉ／Ｏデバイスからの入力を受け、その入力情報を通信回線１４を経由してサーバ１０上のアプリケーションプログラムであるアプリケーション処理部２４−１，２４−２に伝達し、アプリケーション処理部２４−１，２４−２による処理結果としての出力情報を受信し、例えばディスプレイ２０−１に出力情報を表示したり、プリンタ２２−１，２２−２より出力情報の印刷出力を行う。
サーバ１０には、クライアント１２−１，１２−２からの入力情報に基づいて動作するアプリケーションプログラムとしてのアプリケーション処理部２４−１，２４−２に加え、クライアント１２−１，１２−２との間の接続を管理するセッション管理部２６が設けられている。このセッション管理部２６にはクライアント１２−１，１２−２との接続をセッション番号によって管理するためのセッション管理情報を登録したセッション管理テーブル２８が設けられている。
図２は図１のセッション管理部２６に設けているセッション管理テーブル２８の説明図である。セッション管理テーブル２８は、セッション番号、クライアント識別子、ステータスで構成されている。セッション管理テーブル２８で使用するクライアント識別子としては、クライアントのＰＯＳ端末をログオンする時のアカウント、ログオン時に使用するネーム、通信回線１４で構築されたネットワークアドレスあるいはその他のユニークな識別子を使用する。このようなクライアント識別子は、クライアントからサーバ１０に対する接続要求のヘッダに含まれ、サーバ側で抽出してセッション管理テーブルの検索に使用する。
セッション管理部２６は例えばクライアント１２−１から接続要求があると、クライアントの接続要求に含まれているクライアント識別子を抽出してセッション管理テーブル２８を検索し、テーブル上に受信した接続要求のクライアント識別子に一致する登録があれば、これに対応するセッション番号を取得してクライアント１２−１との接続を管理するセッション管理を行う。
これに対しクライアント１２−１からの接続要求で得られたクライアント識別子でセッション管理テーブル２８を検索しても、一致するクライアント識別子が得られなかった場合には、新たなセッション番号を獲得し、獲得したセッション番号とクライアント識別子、更にその時のアプリケーション処理部２０−１の状態であるステータスをセッション管理テーブル２８に新規に登録する。このセッション管理テーブル２８に対する新規登録の際には、セッション管理部２６は初期化情報を送信し、クライアント１２−１の入出力部３０−１に含まれる例えばバーコードリーダ用入出力部（バーコード入出力ドライバ）を初期化する。
またセッション管理部２６は、例えばクライアント１２−１との接続中に、クライアント１２−１の電源が断たれ、この状態でアプリケーション処理部２４−１の出力情報を通信回線１４で通信して通信異常を判断したとき、アプリケーション処理部２４−１の処理を中断し、またアプリケーション処理部２４−１から出力情報が得られている場合には、この出力情報を保持し、更にセッション管理テーブル２８に例えばセッション番号「０００００３」のクライアント識別子「ＺＺＺＺ」を持つセッションのように、ステータスとして中断を示す「Ｈｏｌｄ」を登録する。
このようなサーバ１０における接続の中断状態で、例えば電源が断となったクライアント１２−１の電源が復旧し、クライアント１２−１から接続要求を受信すると、セッション管理テーブル２８のクライアント識別子による検索でセッション番号を獲得し、そのセッションがステータスの「Ｈｏｌｄ」により中断状態にあることを認識した場合には、アプリケーション処理部２４−１の処理の再開及び出力情報のクライアント１２−１に対する送信に先立ち、クライアント１２−１に対し初期化情報を送信する。このため、電源断後に再投入で起動したクライアント１２−１は、サーバ１０に対する接続要求により初期化情報を受信することができ、この初期化情報の受信に基づき初期化処理部３２−１が入出力部３０−１の初期化、例えばバーコードリーダ用入出力部の初期化処理を行うことで、クライアント１２−１が電源断となった時と同じ状態にできる。このため、処理を再開したサーバ１０のアプリケーション処理部２４−１より出力情報が送信された場合、クライアント１２−１の入出力部３０−１における初期化処理は終了していることから、中断した処理を継続して行うことができる。
またクライアント１２−１が接続中に電源断となり、クライアント１２−１の電源復旧を待たずに、例えば空き状態にあるクライアント１２−２を同じオペレータがログオンしてサーバ１０に接続要求を行うことで、クライアント１２−１からの接続要求で行われていたセッションの中断を新たなクライアント１２−２からの接続要求を受けて継続することができる。
このときセッション管理部２６は、クライアント１２−２からの接続要求から現在、中断状態にあるクライアント１２−１のクライアント識別子と同じクライアント識別子を抽出してセッション管理テーブル２８を検索することで、接続要求のあったセッション番号のセッションが現在中断中であることが認識できる。この場合にはセッション管理部２６は中断状態のクライアント１２−１に対し確認要求を行い、電源断となっいために確認要求に対しクライアント１２−１からの応答はなく、これによりクライアント１２−１側の異常を認識し、クライアント１２−２との接続にセッションを切り替えて処理を継続することができる。
更にまた、クライアント１２−１のセッション番号に対応するセッションが中断されていない状態で、別のクライアント１２−２から接続要求があった場合、同一のクライアント識別子をもつセッション番号のクライアント１２−１に対し確認要求を行い、クライアント１２−１から確認応答が得られないときに異常と判断し、クライアント１２−１の接続によるセッションをクライアント１２−２からの接続要求でクライアント１２−２のセッションに切り替える。このようにクライアント１２−１のセッションが中断されていない状態で他のクライアント１２−２にセッションを引き継いで継続させる処理は、例えばクライアント１２−１となるＰＯＳ端末を落として破壊し機能停止を起こしてしまったような場合の対応策となる。
更に本発明のサーバ１０に設けたセッション管理部２６にあっては、セッション管理テーブル２８に登録されているセッション番号のセッションについて定期的に確認要求をクライアント側に行い、確認応答が得られなかった場合には、そのセッション管理番号のステータスを中断を示す「Ｈｏｌｄ」に変更する。これにより例えばクライアント１２−１を破壊して機能停止となった状態で同じオペレータが同じクライアント識別子を使用して別のクライアント１２−２をログオンし、サーバ１０に接続要求を行った場合、セッション管理部２６は接続要求から抽出したクライアント識別子によるセッション管理テーブル２８の検索でセッションが中断状態にあることを認識し、クライアント１２−１に確認要求を行うことなく直ちに接続要求を行ったクライアント１２−２側に対し初期化情報を行って初期化した後、アプリケーション処理部２４−１による処理の再開を可能とすることができる。
図３は、図１でクライアント１２−１，１２−２からの接続要求に対しサーバ１０のアプリケーション処理部２４−１，２４−２から入出力部３０−１，３０２の中のバーコードリーダ用入出力部の初期化処理のために送信する初期化情報である制御コマンドの説明図である。図３（Ａ）は図１のサーバ１０からクライアント１２−１，１２−２に送信する制御コマンド３４の通信フォーマットである。この制御コマンド３４はコマンド３６とターミネータ３８で構成される。図３（Ｂ）は図１のクライアント１２−１，１２−２の入出力部３０−１，３０−２に設けているバーコードリーダ用入出力部を初期化するためのバーコードリーダ初期化コマンド４０である。このバーコードリーダ初期化コマンド４０は、コマンド記号４２と読取指定コード４４で構成される。バーコードリーダ初期化コマンド４０には、図３（Ｃ）のデフォルト設定初期化コマンド４０−１と、図３（Ｅ）のオプション設定初期化コマンド４０−２の２つがある。
図３（Ｃ）のデフォルト設定初期化コマンドは、コマンド記号「Ｓ」と読取コード指定「，」で構成される。なお、このデフォルト設定初期化コマンド４０−１は、コマンド記号４２「Ｓ」と読取指定コード４４はブランクとしたものであっても良い。
図３（Ｄ）はデフォルト設定初期化コマンド４０−１による読取指定コードとデフォルト設定内容の説明図である。このデフォルト設定の初期化コマンド４０−１を使用した場合、バーコードリーダ用入出力部にあっては、デフォルト設定内容に示す種類のバーコードＥＡＮ−１３（ＪＡＮ−１３），ＵＰＣ−Ａ，・・・ＣＯＤＥ１２８（ＥＡＮ−１２８）のバーコードを読取可能な初期化状態に設定される。
図３（Ｅ）のオプション設定初期化コマンド４０−２にあっては、コマンド記号４２として「Ｓ」を設定し、読取コード指定４４としては「コードタイプ」として図３（Ｆ）に示すコードタイプＡ，Ｉ，Ｈ，Ｎ，Ｍ，Ｌ，Ｋのいずれかを設定する。このコードタイプの設定により、読取許可されるコードの種類を選択することができる。例えばコードタイプＭをオプション設定初期化コマンド４０−２で設定した場合には、「ＣＯＤＥ３９」のバーコードの読取許可が初期化処理として設定される。
図４は、図１のサーバ１０とクライアント１２−１，１２−２の間におけるバーコードの処理に使用するデータ転送フォーマット及び応答キャラクタの通信フォーマットである。
図４（Ａ）はバーコードの種類として、ＣＯＤＥ９３／ＣＯＤＥ１２８（ＥＡＮ−１２８）以外のバーコードリーダのデータ転送フォーマットである。これに対し図４（Ｂ）はバーコードＣＯＤＥ９３／ＣＯＤＥ１２８（ＥＡＮ−１２８）のデータ転送フォーマットである。更に図４（Ｃ）は通信の確認要求等に対し応答する応答キャラクタのフォーマットであり、応答種別に応じ所定のキャラクタが決められている。
図５は、図１のクライアント１２−１からサーバ１０に対し接続要求を行い、続いて外部Ｉ／Ｏデバイスからの入力情報を送信した場合のセッション初期化及び接続中のセッション処理のタイムチャートである。また図６は図５に続いてクライアント１２−１側で端末電源断が起き、その後に端末電源が投入されて復旧した場合のセッションの中断と再開のタイムチャートである。
図５において、まずクライアント１２−１はステップＳ１０１で電源投入または接続処理を行い、これを受けてステップＳ１０２でクライアント１２−１の起動、初期化、更に接続の依頼処理が行われ、サーバ１０に対し接続要求が送信される。クライアント１２−１からの接続要求を受けたサーバ１０は、ステップＳ１でセッション初期化を行う。セッション初期化はクライアント１２−１からの接続要求より例えばログオンへのアカウント等のクライアント識別子を抽出し、図２に示したセッション管理テーブル２８を検索し、同じクライアント識別子がないことを条件に新たなセッション番号を獲得し、クライアント識別子及びステータスと共にセッション管理テーブル２８に新規に登録する。続いてステップＳ２でセッション内のアプリケーション、即ち図１のサーバ１０に設けているアプリケーション処理部２４−１を起動して実行する。次にステップＳ３で接続要求を行ったクライアント１２−１に対する出力情報の送信を行う。このクライアント１２−１に対する出力情報の中には、外部Ｉ／Ｏデバイス初期化情報、画面出力情報、Ｉ／Ｏ出力情報が含まれている。外部Ｉ／Ｏデバイス初期化情報は例えば、図１のクライアント１２−１に設けているバーコードリーダ１６−１に対応した入出力部３０−１の中のバーコードリーダ用ドライバに対する図３（Ｃ）のデフォルト設定初期化コマンド４０−１、または図３（Ｅ）のオプション設定初期化コマンド４０−２である。このサーバ１０からの接続要求に対する出力情報送信を受けたクライアント１２−１は、ステップＳ１０３でＩ／Ｏデバイスに対応した入出力部内のドライバ、例えばバーコードリーダ用ドライバであれば、読取可能なバーコードの種類を初期設定し、更に受信情報をディスプレイ２０−１に表示して売上げ入力画面を示し、またプリンタ２２−１に受信情報を出力して必要な印刷出力を行う。
このようなセッション初期化が済み、ステップＳ１０４でクライアント１２−１が外部Ｉ／Ｏデバイスからの入力を受けたとすると、サーバ１０に対し入力情報を送信する。サーバ１０はステップＳ４で、クライアント１２−１から受信した入力情報をアプリケーションプログラムとしてのアプリケーション処理部２４−１に引き渡し、ステップＳ５で入力情報に基づくアプリケーションの処理を実行し、ステップＳ６で処理結果として得られた出力情報をクライアント１２−１に送信する。このサーバ１０からの出力情報を受信したクライアント１２−１は、ステップＳ１０６で受信情報の表示とＩ／Ｏ出力処理を行う。
次に図６のステップＳ１０６でクライアント１２−１が再び外部Ｉ／Ｏデバイスから入力を受け、ステップＳ１０８で入力内容をサーバ１０に送信し、ステップＳ７で受信情報のアプリケーションに引き渡し、ステップＳ８で入力情報のアプリケーション実行が行われたとする。この状態でクライアント１２−１でステップＳ１０９のように端末電源断が発生したとする。この端末電源断によりクライアント１２−１は動作機能を停止する。クライアント１２−１が機能停止となっている状態でサーバ１０は、ステップＳ９でアプリケーション実行による処理結果として得られた出力情報をクライアント１２−１に送信したとする。しかし、サーバ１０が出力情報をクライアント１２−１に送信しても、クライアント１２−１は電源断により機能を停止しており、ステップＳ１０で通信プロトコル上の異常が検出される。この通信異常の検出により、ステップＳ１１でアプリケーション処理部２４−１の処理を中断して中断時の状態を保持し、更にセッション管理テーブル２８のステータスに中断を示す「Ｈｏｌｄ」を設定する。
一方、ステップＳ１０９で端末電源断となったクライアント１２−１は、その後のステップＳ１１０で端末電源を投入して復旧したとする。この端末電源の投入に伴う復旧時に、クライアント１２−１は起動、初期化及びサーバ１０に対する接続の依頼処理を行い、サーバ１０に対し接続要求が送信される。この電源復旧に伴うクライアント１２−１からの接続要求を受信したサーバ１０は、ステップＳ１２で、接続要求から抽出したクライアント識別子によりセッション管理テーブル２８の検索し、クライアント識別子が一致するセッション番号を獲得し、アプリケーション処理部１０−１の処理を再開させる。続いてステップＳ１３で接続要求を行ったクライアント１２−１に対し外部Ｉ／Ｏデバイスの初期化情報を再度送信する。このため電源投入で起動したクライアント１２−１は、サーバ１０より再度初期化情報を受信して外部Ｉ／Ｏデバイスの入出力部の初期化を行い、続いてサーバ１０からの出力情報を受信してステップＳ１１３で受信情報のディスプレイ表示とプリンタに対する出力処理を行う。
このように本発明にあっては、接続中にクライアントに電源断が起き、サーバからの出力情報の送信でクライアントの異常を検出してセッションを中断し、その後にクライアントの電源再投入を行うと、電源再投入に伴う接続要求に対し、まずサーバは初期化情報を送信してクライアントにおける外部Ｉ／Ｏデバイス入力部の初期化処理を行い、その後にサーバにおいてアプリケーション処理及び出力情報の送信が再開され、クライアント１２−１で一時的な電源断が起きても、電源断で中断した処理を継続することができる。
図７及び図８は、セッションの中断がない状態で別のクライアントに切替えて処理を継続する処理のフローチャートである。図７は、図１のクライアント１２−１からの接続要求に対しサーバからの通信でセッション初期化及び初期化後のセッション処理のタイムチャートであり、図８は図７に続いてセッション中にクライアント１２−１を誤って落とすことで破壊して機能が停止し、クライアント１２−１に代えてクライアント１２−２で接続要求を行って処理を継続した場合のタイムチャートである。
まず図７におけるクライアント１２−１からの接続要求に伴うサーバ１０側のセッション初期化、及びクライアント１２−１からの入力情報の送信によるアプリケーション処理の実行は、図５のタイムチャートと同じになる。続いて図８に進み、クライアント１２−１を誤って落とし、これによってクライアント１２−１が壊れ、ステップＳ１０７で端末破壊による機能停止が起きたとする。そこでオペレータは壊れたクライアント１２−１の代わりにクライアント１２−２を使用し、ステップＳ２０１で電源投入または接続処理を行ったとする。これに伴い、ステップＳ２０２でクライアント１２−２の起動と初期化が行われ、更にサーバ１０に対する接続の依頼処理により接続要求が送信される。サーバ１０は別のクライアント１２−２からの接続要求を受信すると、ステップＳ７で接続要求から抽出したクライアント識別子、例えばクライアント１２−１と同じオペレータのログオンによるアカウントをクライアント識別子として抽出し、図２のセッション管理テーブル２８の検索により、一致したクライアント識別子のセッション番号からセッションを認識し、その継続中のセッションに対応するクライアント１２−１に対し確認用の通信処理を行う。しかしながら、このとき確認先のクライアント１２−１は破壊で機能が停止していることから、確認先のクライアント１２−１から応答は得られず、サーバ１０はクライアント１２−１に異常が起きたことを認識する。続いてステップＳ９で、接続要求のあったクライアント１２−２を、異常が確認されたクライアント１２−１のセッションに接続し、アプリケーションを再開する。同時にステップＳ１０で、接続要求のあったクライアント１２−２に対し外部Ｉ／Ｏデバイスの入出力部を初期化するため初期化情報を再度送信する。このサーバ１０からの初期化情報を受信したクライアント１２−２は、ステップＳ２０３で外部Ｉ／Ｏデバイスに対応した入出力部の初期化処理を行う。続いてサーバ１０はステップＳ１０で接続要求に伴う画面情報やＩ／Ｏ出力情報の送信を行い、これを受けてクライアント１２−２はステップＳ２０４で受信情報のディスプレイ表示とＩ／Ｏ出力処理を行い、これによって、新たに使用を開始したクライアント１２−２についてのセッション初期化が終了し、それ以降はＩ／Ｏデバイスの入力に基づくサーバ１０に対する処理の依頼と応答による出力処理を行うことができる。
このようなセッション接続中のクライアントの破損等による機能停止の際に、別のクライアントから同じオペレータが同じクライアント識別子、例えばログオンのアカウントを使用して接続要求を行うことで、サーバはクライアント識別子が一致するセッション処理中のクライアントに対する確認で異常を認識し、新たに接続要求を行ったクライアントにセッションを接続して、クライアント側が停止しても別のクライアントに処理を継続させることができる。
図９は、本発明のサーバ１０におけるサーバ処理のフローチャートである。まずステップＳ１でクライアントからの接続要求の受信をチェックしており、接続要求があるとステップＳ２に進み、クライアント識別子を抽出してセッション管理テーブル２８を検索する。セッション管理テーブル２８の検索で一致するクライアント識別子がない場合には、ステップＳ３からステップＳ４に進み、セッション管理テーブル２８のセッション番号を獲得し、クライアント識別子及びアプリケーション処理の状態と共に登録する。次にステップＳ５でアプリケーションを起動して実行し、ステップＳ６でクライアントに対しＩ／Ｏデバイスの初期化情報、画面情報及びＩ／Ｏ出力情報を送信する。次にステップＳ９でセッション初期化に続いてクライアントより行われる外部Ｉ／Ｏデバイスの入力に基づく入力情報の受信をチェックしており、入力情報を受信すると、ステップＳ１０でアプリケーション処理部に引き渡して処理し、処理した出力情報をクライアントに送信する。このクライアントに対する出力情報の送信について、ステップＳ１１で通信異常があるか否か検出しており、もし通信異常があればステップＳ１２に進み、出力情報及びその時のアプリケーションの状態を保持し、セッション管理テーブルのステータスを「保持（Ｈｏｌｄ）」に設定する。もちろん、ステップＳ１１で正常に通信できれば、ステップＳ１３に進み、停止指示を受けるまで再びステップＳ１に戻り、接続要求の受信をチェックし、接続要求の受信がなければ、ステップＳ９で次の入力情報の受信を待つことになる。
ステップＳ１１でクライアントとの通信異常が検出されて、ステップＳ１２でセッション中断を行った場合には、通信異常の原因がクライアントの電源断にあれば、電源の再投入の際に新たな接続要求が行われ、またクライアントの破壊で別のクライアントに使用を切り替えた場合には、別のクライアントの電源投入によるログオンで接続要求が行われる。したがって、この状態でステップＳ１でクライアントからの接続要求が受信された場合は、ステップＳ２におけるクライアント識別子のセッション管理テーブルの検索で一致するクライアント識別子が得られ、このためステップＳ３からステップＳ７に進む。ステップＳ７にあっては、クライアント識別子が一致する指定されたセッション番号のクライアントに対し確認通信を行う。このときクライアントが電源再投入で接続要求をしていれば確認応答に対し正常に応答が得られることから、ステップＳ９に進み、次の入力情報の受信に伴う処理を行う。これに対しクライアントが破壊されたり、クライアントの電源復旧をてない場合の別のクライアントを使用した接続要求であれば、ステップＳ８で確認応答は得られず、この場合にはステップＳ６に進み、別のクライアントに対する外部Ｉ／Ｏデバイスの初期化情報、画面情報、Ｉ／Ｏ出力情報を送信してセッション初期化を行い、ステップＳ９で別のクライアントからの入力情報の受信を行うことになる。
図１０は、図１のサーバ１０においてセッション接続中のクライアントに対し定期的に行う通信確認処理のフローチャートである。この通信確認処理は所定のタイムサイクルごとに定期的に実行される。まずステップＳ１で、図２のセッション管理テーブル２８の例えば先頭からのセッション番号に対応するクライアントを選択し、確認電文を通信する。ステップＳ２でクライアントからの応答を待っており、応答がなければステップＳ３で一定時間のタイムアウトをチェックし、タイムアウトしていない場合にはステップＳ２の応答待ちの処理を繰り返す。ステップＳ３のタイムアウトとなっても応答がなかった場合には、ステップＳ４に進み、通信異常を認識してセッション中断と判断し、セッション管理テーブルのステータスに「中断（Ｈｏｌｄ）」を登録する。続いてステップＳ５でセッション管理テーブルの全セッション番号が処理されたか否かチェックし、終了していない場合にはステップＳ１に戻り、次のセッション番号のクライアントに対する確認処理を繰り返す。ステップＳ５で現在セッション管理テーブル２８に登録している全てのセッション番号についてのクライアントの確認処理が終了すると、処理を終了する。
図１１は、図１のクライアント１２−１，１２−２側のクライアント処理のフローチャートである。このクライアント処理にあっては、ステップＳ１で電源投入に伴うログオンで起動し、初期化処理を行った後、サーバに接続を依頼する。この接続の依頼に対し、ステップＳ２でサーバからの初期化情報の受信を待っており、初期化情報を受信すると、ステップＳ３で外部Ｉ／Ｏデバイスの入出力部に対する初期化処理を行う。続いてステップＳ４でサーバからの画面情報の受信を待ち、画面情報を受信すると、ステップＳ５でディスプレイに画面情報を表示する処理を行う。続いてステップＳ６でサーバからのＩ／Ｏ出力情報の受信を待っており、Ｉ／Ｏ出力情報を受信すると、ステップＳ７で外部Ｉ／Ｏデバイス例えばプリンタに対する出力処理を行う。このようなステップＳ１〜Ｓ７の処理で接続要求に伴うセッション初期化の対応処理が終了すると、ステップＳ８で外部Ｉ／Ｏデバイスからの入力を待つ。外部Ｉ／Ｏデバイスから入力があると、ステップＳ９で入力情報をサーバに送信する。これによりサーバにおいてアプリケーションが実行され、処理結果として画面情報が送られてきた場合にはステップＳ４，Ｓ５で処理し、またＩ／Ｏ出力情報が送られてきた場合にはステップＳ６，Ｓ７で処理する。続いてステップＳ１０でサーバからの確認情報の受信をチェックしており、確認情報を受信すると、ステップＳ１１で確認応答をサーバに対し送信する。以上ステップＳ１〜Ｓ１１の処理を、ステップＳ１２でログオフによる停止指示があるまで繰り返す。
尚、上記の実施形態は、ＰＯＳシステムのＰＯＳ端末をクライアントとしてサーバに接続要求を行い、サーバからバーコードリーダ用入出力部に対しコード種別を設定する初期化情報を送信して初期化する場合を例にとっているが、本発明はこれに限定されず、クライアントからの接続要求に対しサーバから初期化情報を送信してクライアント側で初期化を必要とする入出力部を含むクライアントであれば、適宜のサーバクライアントシステムに適用できる。また本発明は、その目的と利点を損なわない適宜の変形を含む。更に本発明は上記の実施形態に示した数値による限定は受けない。
産業上の利用可能性
以上説明したように本発明によれば、サーバからの初期化情報によって、初期化処理を必要とする入出力部を持つクライアントであっても、クライアント側で電源断が起きてセッションを中止した後に電源を復旧して再度接続要求を行った場合、サーバのセッション再開に先立ってクライアント側に初期化情報が送信されて初期化処理ができ、これによってクライアント側も電源断前の状態に戻り、クライアントの電源断で一時的に中断したサーバとの間の処理を確実に継続することができる。
また電源断となったクライアントの電源復旧を待つことができない場合には、別のクライアントを使用して同じセッション番号による接続要求を行うことで、サーバ側でクライアントの切替えを認識し、新たに接続要求を行ったクライアントに対し同じセッション番号に従った初期化情報の送信が行われ、別のクライアントに切替えてセッションを継続して処理することができる。
更に、セッション接続中にクライアントが破壊して機能停止となり、正常なクライアントを使用して同じセッション番号で接続要求を行った場合にも、サーバ側の確認通信により、それまでのセッションを行っていたクライアントの異常を認識して、新たに接続要求を行ったクライアントに対し初期化情報を送信して、セッションを継続することができる。
【図面の簡単な説明】
図１は本発明のシステム構成のブロック図；
図２は図１のサーバに設けたセッション管理テーブルの説明図；
図３は図１のバーコードリーダ用の入出力部の初期化に使用する制御コマンドの説明図
図４はバーコードリーダの読取情報の伝送に使用するフォーマットの説明図
図５はクライアントから接続要求と入力情報をサーバに送信した際の処理動作のタイムチャート；
図６は図５の続きであり、クライアントに電源断が発生し復旧して処理を再開した場合のタイムチャート；
図７はクライアントから接続要求と入力情報をサーバに送信した際の処理動作のタイムチャート；
図８は図７の続きであり、使用中にクライアントが壊れ、他のクライアントから接続要求を行って処理を再開した場合のタイムチャート；
図９は図２のサーバ処理のフローチャート；
図１０は図２のサーバによる通信確認処理のフローチャート；
図１１は図２のクライアント処理のフローチャート；
【図１】
2001077844.tif 000003
【図２】
2001077844.tif 000004
【図３】
2001077844.tif 000005
【図４】
2001077844.tif 000006
【図５】
2001077844.tif 000007
【図６】
2001077844.tif 000008
【図７】
2001077844.tif 000009
【図８】
2001077844.tif 000010
【図９】
2001077844.tif 000011
【図１０】
2001077844.tif 000012
【図１１】
2001077844.tif 000013
【国際調査報告】
2001077844.tif 000014
2001077844.tif 000015