しかし、上記では、デバイスを使用するためには、各クライアントにデバイスドライバをインストールする必要があり、このデバイスドライバはOSに依存して動作するため、クライアントの処理負荷が大きくなる。また、デバイスメーカ側も、各クライアントのOSの種類ごとに、対応したデバイスドライバを開発する必要があり、開発コストが大きくなるという問題がある。
本発明は、上記の問題点に鑑みたものであり、クライアントにデバイスドライバをインストールすることなくデバイスを制御することができるディスプレイの制御方法及びデバイスアダプタを提供することを目的とする。
本発明のディスプレイの制御方法は、ディスプレイに表示する動作を伴うアプリケーション実行要求をホスト装置から、ホスト装置とネットワーク接続されたサーバへ送信し、アプリケーション実行要求に基づいて表示データ及びデバイス制御情報をサーバで生成し、生成された表示データ及びデバイス制御情報をサーバのデバイス別のキューで保存し、デバイス制御情報の保存結果、サーバを特定する制御サーバ特定情報、及び前記ディスプレイに関する情報を含む応答データをサーバから送信し、応答データをホスト装置で受信し、受信した応答データに基づいてディスプレイへの表示要求をホスト装置から送信し、ディスプレイへの表示要求を、ホスト装置とネットワーク接続され、ディスプレイに接続されたデバイスアダプタで受信し、受信したディスプレイへの表示要求に含まれる制御サーバ特定情報に基づいてデバイスアダプタからサーバにデバイス制御情報要求を送信し、デバイス制御情報要求をサーバで受信し、受信したデバイス制御情報要求に基づいて、サーバのデバイス別のキューに保存された表示データ及びデバイス制御情報をデバイスアダプタに送信し、デバイスアダプタで表示データ及びデバイス制御情報を受信し、受信した表示データ及びデバイス制御情報に基づいてデバイスアダプタでディスプレイを制御することを特徴とする。
また、上記のディスプレイの制御方法において、デバイスアダプタの制御によりディスプレイに表示させたとき、ディスプレイの表示結果をデバイスアダプタからホスト装置へ送信する。
また、上記のディスプレイの制御方法において、デバイス制御情報要求を行うときに、デバイスアダプタのデバイスID及びパスワードを送信し、サーバから認証を受ける。
本発明のデバイスアダプタは、ディスプレイに表示する動作を伴うアプリケーション実行要求を行うホスト装置及びホスト装置とネットワーク接続されてアプリケーション実行要求に基づいて表示データとデバイス制御情報とを生成するサーバとネットワーク接続する通信インターフェースと、ホスト装置からの制御サーバ特定情報を含む表示要求に基づいてサーバにデバイス制御情報要求を送信するデバイス制御情報要求送信手段と、デバイス制御情報要求に対応するサーバのデバイス別のキューに保存された表示データ及びデバイス制御情報をサーバから受信し、受信した表示データ及びデバイス制御情報に基づいてディスプレイを制御する動作手段と、を有することを特徴とする。
なお、以下の構成としても良い。
本発明のネットワークシステムは、アプリケーションの実行を要求する1以上のクライアント端末と、当該クライアント端末の操作に伴って動作する1以上のデバイスと、アプリケーションを実行すると共にデバイスを制御する1以上の制御サーバと、を有し、少なくともクライアント端末と制御サーバ、デバイスと制御サーバ、およびクライアント端末とデバイス、がそれぞれネットワーク接続されたネットワークシステムであって、制御サーバは、クライアント端末から、デバイス動作を伴うアプリケーション実行要求を受信する実行要求受信手段と、アプリケーション実行要求に基づいて、動作対象となるデバイスを制御するためのデバイス制御情報を生成するデバイス制御情報生成手段と、生成したデバイス制御情報をデバイス別のキューに保存するデバイス制御情報保存手段と、デバイス制御情報の保存に伴って、少なくともアプリケーションの実行結果、動作対象となるデバイスを特定するデバイス特定情報および制御サーバを特定する制御サーバ特定情報を含む第1応答データを生成する第1応答データ生成手段と、第1応答データをクライアント端末に送信する第1応答データ送信手段と、を備え、クライアント端末は、制御サーバから第1応答データを受信し、当該第1応答データに含まれる各情報に基づいて、動作対象となるデバイスに対してデバイス動作要求を送信する動作要求手段と、デバイス動作要求に対するデバイスの動作結果を含む第2応答データを受信する動作結果受信手段と、を備え、デバイスは、クライアント端末からのデバイス動作要求を受信し、当該デバイス動作要求に含まれる制御サーバ特定情報に基づいて、制御サーバに対しデバイス制御情報要求を送信するデバイス制御情報要求送信手段と、デバイス制御情報要求に対して制御サーバがデバイス別のキューから取り出したデバイス制御情報を受信し、当該デバイス制御情報に従って動作する動作手段と、動作手段の動作結果を、第2応答データとしてクライアント端末に送信する動作結果送信手段と、を備えたことを特徴とする。
また、本発明のネットワークシステムは、アプリケーションの実行を要求する1以上のクライアント端末と、当該クライアント端末の操作に伴って動作する1以上のデバイスと、アプリケーションを実行すると共にデバイスを制御する1以上の制御サーバと、を有し、少なくともクライアント端末と制御サーバ、デバイスと制御サーバ、およびクライアント端末とデバイス、がそれぞれネットワーク接続されたネットワークシステムであって、制御サーバは、クライアント端末から、デバイス動作を伴うアプリケーション実行要求を受信する実行要求受信手段と、アプリケーション実行要求に基づいて、動作対象となるデバイスを制御するためのデバイス制御情報を生成するデバイス制御情報生成手段と、生成したデバイス制御情報をデバイス別のキューに保存するデバイス制御情報保存手段と、デバイス制御情報の保存に伴って、アプリケーションの実行結果を含む第1応答データを生成する第1応答データ生成手段と、第1応答データをクライアント端末に送信する第1応答データ送信手段と、を備え、クライアント端末は、制御サーバからの第1応答データを受信し、受信した第1応答データに、少なくとも動作対象となるデバイスを特定するデバイス特定情報および制御サーバを特定する制御サーバ特定情報を含め、当該各情報に基づいて、デバイス動作要求を動作対象となるデバイスに対して送信する動作要求手段と、デバイス動作要求に対するデバイスの動作結果を含む第2応答データを受信する動作結果受信手段と、を備え、デバイスは、クライアント端末からのデバイス動作要求を受信し、当該デバイス動作要求に含まれる制御サーバ特定情報に基づいて、制御サーバに対しデバイス制御情報要求を送信するデバイス制御情報要求送信手段と、デバイス制御情報要求に対して制御サーバがデバイス別のキューから取り出したデバイス制御情報を受信し、当該デバイス制御情報に従って動作する動作手段と、動作手段の動作結果を、第2応答データとしてクライアント端末に送信する動作結果送信手段と、を備えたことを特徴とする。
これらの構成によれば、クライアント端末が、デバイス動作を伴うアプリケーション実行要求を送信すると、制御サーバは、当該アプリケーション実行要求に基づいて、対象となるデバイスを制御するためのデバイス制御情報を生成し、デバイス別のキューに保存する。そして、デバイス制御情報の保存後、アプリケーションの実行結果を含む第1応答データを生成し、当該第1応答データをクライアント端末に送信する。クライアント端末は、受信した第1応答データに基づいて、対象となるデバイスに対してデバイス動作要求を送信する。デバイス動作要求を受信したデバイスは、制御サーバに対してデバイス制御情報を要求し、制御サーバから当該デバイスに対応するデバイス別キューに保存されているデバイス制御情報を受信する。そして、デバイスは、このデバイス制御情報に基づいて自身を動作させ、その動作結果をクライアント端末に送信し、クライアント端末が当該動作結果を受信することで、一連のデバイス動作に関する処理が完了する。これにより、制御サーバが各デバイスのデバイス制御情報を管理し、各デバイスは当該デバイス制御情報に基づいて動作制御を行うため、クライアント端末にデバイスドライバをインストールすることなく、クライアント端末からの動作要求に基づき、デバイスを使用することができる。また、クライアント端末にデバイスドライバが不要になるため、デバイスの使用に係るクライアント端末の処理の負荷を軽減することができる。さらに、デバイスメーカにとっては、各クライアント端末のOSの種類毎にデバイスドライバを作成する必要がなくなり、これに係る開発コストを削減できるといった効果がある。
また、制御サーバにより生成されたデバイス特定情報および制御サーバ特定情報を含む第1応答データ、またはクライアント端末により動的にデバイス特定情報および制御サーバ特定情報を含めた第1応答データに基づいて、デバイス動作要求を送信する。これにより、制御サーバとデバイスとのドメインが異なる場合においても、制御サーバとデバイスとがシームレスに連携することができる。また、クライアント端末を使用するユーザは、デバイスに関する情報を意識することなくデバイスを使用することができる。
また、複数の制御サーバが存在する場合、クライアント端末がアプリケーション実行を要求した制御サーバと、デバイスがデバイス制御情報を要求する制御サーバと、が同一の制御サーバでなければならず、対象となる制御サーバを特定する必要がある。この場合、デバイスは、クライアント端末からの制御サーバ特定情報により、クライアント端末がアプリケーション実行を要求した制御サーバを特定することができ、確実に同一の制御サーバに対してデバイス制御情報を要求することができる。
この場合、制御サーバは、HTTPサーバを備え、デバイスは、HTTPサーバおよびHTTPクライアント、を備え、クライアント端末は、プラグイン機能を有しない単機能ブラウザを備え、制御サーバ、クライアント端末およびデバイスは、ハイパーテキスト転送プロトコルに基づいて通信を行うことが好ましい。
この構成によれば、クライアント端末は、単機能ブラウザを使用して、制御サーバおよびデバイスとハイパーテキスト転送プロトコル(HTTP)に基づいて通信を行うことで、クライアント端末の環境(クライアント端末のOSの種類等)に依存することなく、デバイス(例えば、プリンタ、スキャナ等の周辺機器)にアクセスすることができる。また、クライアント端末はOSの種類やブラウザに依存したプラグインモジュールが不要であるため、例えば、プラグインモジュールが提供されておらず、デバイスが使用できないといったことがなくなる。なお、ここで言う単機能ブラウザとは、プラグインモジュールをインストールしていない標準のブラウザである。
これらの場合、制御サーバは、デバイス毎に、各デバイスのアカウント情報を管理し、デバイスのデバイス制御情報要求送信手段は、デバイス制御情報要求に、少なくとも自身を特定するためのデバイスIDおよびパスワードからなるデバイス認証情報を含めて送信し、制御サーバは、デバイスから受信したデバイス認証情報と、自身が管理するアカウント情報と、に基づいて、デバイスの認証を行うデバイス認証手段を、さらに備えたことを特徴とする。
また、制御サーバは、クライアント端末を使用するユーザのアカウント情報を管理し、クライアント端末は、少なくとも自身を使用するユーザを特定するためのユーザIDおよびパスワードからなるユーザ認証情報を、制御サーバに送信する手段をさらに備え、制御サーバは、クライアント端末から受信したユーザ認証情報と、自身が管理するアカウント情報と、に基づいて、ユーザの認証を行うユーザ認証手段を、さらに備えたことを特徴とする。
これらの構成によれば、ユーザのアカウント管理およびユーザ認証を行うことで、不正アクセスによる情報の改竄や漏洩を防止することができる。また、デバイスのアカウント管理およびデバイス認証を行うことで、確実にデバイスを識別することができ、誤って別のデバイスにデータを送信する等のトラブルを防止することができる。
これらの場合、デバイスは、デバイス本体とデバイスアダプタと、で構成され、デバイス本体は、デバイスアダプタを介してクライアント端末および制御サーバと接続され、デバイスアダプタは、クライアント端末からのデバイス動作要求に基づき、制御サーバに対しデバイス制御情報要求を送信することが好ましい。
この構成によれば、デバイスアダプタを介してデバイス本体と、クライアント端末および制御サーバと、をネットワーク接続できる。そして、デバイスアダプタによりクライアント端末からのデバイス動作要求等を受信すると共に、制御サーバに対してデバイス制御情報を送信し、その結果に基づいてデバイス本体の動作制御を行うことができる。これにより、デバイス本体が直接ネットワークに接続できない場合でも、クライアント端末からネットワークを介してデバイスを使用することができる。
これらの場合、制御サーバとクライアント端末、制御サーバとデバイス、がそれぞれインターネット接続されていることが好ましい。
この構成によれば、制御サーバをインターネット上に配置することで、クライアント端末およびデバイスの設置場所に拘らず、制御サーバにアクセスし、アプリケーションおよびデバイスを使用することができる。
これらの場合、制御サーバは、POSサーバとして機能し、クライアント端末は、POS端末として機能することが好ましい。
この構成によれば、各POS端末にアプリケーションやデバイスドライバをインストールする必要がないため、POS端末の低廉化を図ることができると共に、保守・管理に要する時間やコストを軽減できる。
これらの場合、制御サーバに接続されると共に、当該制御サーバと同様の処理を行う代理制御サーバを、さらに備え、代理制御サーバは、制御サーバが異常状態となった場合、制御サーバの処理を代理実行することが好ましい。
この構成によれば、制御サーバが異常状態の場合、代理制御サーバにより、クライアント端末からの処理要求、およびデバイスからのデバイス制御情報要求を代理実行することができる。これにより、代理制御サーバを制御サーバのバックアップサーバとして使用することができると共に、クライアント端末およびデバイスは制御サーバの不具合を意識することなく、アプリケーションの実行結果およびデバイス制御情報を取得することができる。なお、異常状態とは、正常状態でない状態であり、例えば、制御サーバのアプリケーションからの応答がない場合や、制御サーバが故障した場合をいう。
この場合、制御サーバと代理制御サーバとの間で、アプリケーション実行要求に関する情報の同期を取ることが好ましい。
この構成によれば、制御サーバと代理制御サーバの同期を取ることができ、例えば、制御サーバが異常状態になった場合でも、クライアント端末は、制御サーバに実行要求した場合と同一の実行結果を取得することができ、また、デバイスは、制御サーバに制御情報を要求した場合と同一の応答結果を取得することができる。
これらの場合、制御サーバと代理制御サーバと、がインターネット接続され、制御サーバ、クライアント端末およびデバイスは、LAN接続されていることが好ましい。
この構成によれば、制御サーバ、クライアント端末およびデバイスがLAN接続されるため、制御サーバをインターネット上に設置する場合と比べ、制御サーバとクライアント端末との間、および制御サーバとデバイスとの間の応答速度を速くすることができる。
これらの場合、デバイスは、当該デバイスの設定サービスを行うためのデバイス設定手段を備え、クライアント端末は、デバイス設定手段による設定サービスを使用し、デバイスの設定を行うことが好ましい。
この構成によれば、クライアント端末から設定サービスを使用してデバイスの設定を行うことができるため、デバイスに入力装置を設ける必要がなく、簡単に且つ低コストでデバイスの設定を行うことができる。なお、ここでいう設定サービスとは、WebページによるUIやWebサービスAPI等によりデバイスの初期設定(IPアドレス、通信対象となる制御サーバ名等の設定)を行うものである。
これらの場合、制御サーバは、制御対象となるデバイスの環境設定サービスを行うためのデバイス環境設定手段を備え、クライアント端末は、デバイス環境設定手段による環境設定サービスを使用し、デバイスの環境設定を行うことが好ましい。
この構成によれば、制御サーバが提供するデバイスの環境設定サービスを使用することで、クライアント端末から制御対象となるデバイスの環境設定(デバイスの登録・削除、デバイス名・IDの設定、デバイスのプロパティ設定等)を行うことができるため、デバイス毎に環境設定用の入力装置を設ける必要がなく、簡単に且つ低コストでデバイスの環境設定を行うことができる。なお、ここでいう環境設定サービスとは、WebページによるUIやWebサービスAPI等によりデバイスの環境設定を行うものである。
本発明のプログラムは、コンピュータを、上記に記載のネットワークシステムにおける制御サーバの各手段として機能させるためのものであることを特徴とする。
このプログラムを用いることにより、クライアント端末にデバイスドライバをインストールすることなく、クライアント端末からの動作要求に基づきデバイスを動作させることができる。
以下、添付の図面を参照して、本実施形態に係るネットワークシステム、ネットワークシステムの制御方法およびプログラムについて説明する。以下、本発明のネットワークシステムを、スーパーやコンビニエンス・ストア等の店舗にて使用されるPOSシステムに適用した場合を例に挙げて説明する。なお、本発明のデバイスとは、キーボードデバイスやポインタデバイス以外の非標準デバイスを対象とする。
図1に示すように、本発明の一実施形態に係るPOSシステム1(ネットワークシステム)は、オペレータによって商品情報が入力され、清算金額を算出する複数のPOS端末2(図1では2台)と、当該POS端末2とインターネット5で接続される共に、当該POS端末2を管理するPOSサーバ3(制御サーバ)とから構成されている。POSサーバ3をインターネット5上に設置することで、POS端末2の設置場所に拘らずアクセスすることが可能となり、多数のユーザに同一品質のPOSサービスを提供することができる。
POSサーバ3は、いわゆるWebアプリケーションサーバとして構築され、図2に示すように、CPU11(Central Processing Unit)、ROM12(Read Only Memory)、RAM13(Random Access Memory)、HDD14(Hard Disk Drive)、入力デバイス15、ディスプレイ16、入出力インターフェース(Input/Output)17、通信インターフェース18を備え、ROM12内に記憶された制御プログラムに従って、RAM13内のデータの処理を行う。HDD14には、HTTPサーバ21、POSアプリケーション22(Webアプリケーション)、商品マスタ23(データベース)、デバイス管理アプリケーション24(Webアプリケーション)およびデバイス管理データベース25が記憶されている。
POSサーバ3は、HTTPサーバ21を介して、ハイパーテキスト転送プロトコル(HTTP)に基づいてPOS端末2(ホスト装置31のブラウザ51)と通信を行う。つまり、POSサーバ3のCPU11は、POS端末2(ホスト装置31)からのデバイス動作を含むアプリケーション実行要求を、通信インターフェース18を介してHTTPリクエストとして受信する(実行要求受信手段)。そして、CPU11は、当該アプリケーション実行要求に基づいて、デバイス管理アプリケーション24により、対象となるデバイス4に応じたデバイス制御情報(デバイスコマンド等)を生成し(デバイス制御情報生成手段)、デバイス管理データベース25のデバイス別キューに保存する(デバイス制御情報保存手段)。また、デバイス4側でデータ出力やデータの書き込みを行うための対象となるデータが有る場合には、CPU11は、デバイス管理アプリケーション24により当該データを対象となるデバイス4で処理可能な形式に変換して生成し、上記のデバイス制御情報と合わせてデバイス管理データベース25に保存する。なお、POSサーバ3は、POS端末2からの各処理要求に対してジョブIDを付与して管理し、例えば、印刷のキャンセル処理等が発生した場合に、当該ジョブIDを指定してキャンセル処理を行う。
デバイス制御情報の保存終了後、CPU11は、当該アプリケーション実行要求に対する実行結果(第1応答データ)を生成し(第1応答データ生成手段)、POS端末2(ホスト装置31)に送信する(第1応答データ送信手段)。この場合、CPU11は、応答データとして、動作対象となるデバイス4(例えば、印刷装置34、スキャナ等の周辺機器)を特定するデバイス特定情報(当該デバイス4のIPアドレス)、デバイス4の動作を指定する動作情報(例えば、デバイス操作のためのAPI等の情報)、POSサーバ3(自身)を特定するためのPOSサーバ特定情報(制御サーバ特定情報)、およびデバイス制御情報の保存処理に伴う結果(保存の成功/失敗)等をタグとして挿入したHTML形式、若しくはXML形式のデータ(ページ)をPOS端末2(ホスト装置31)に送信する。
一方で、POSサーバ3は、HTTPサーバ21を介して、HTTPに基づいてデバイス4(あるいは、デバイスアダプタ33)とも通信を行う。POSサーバ3のCPU11は、デバイス4からのデバイス制御情報要求をHTTPリクエストとして受信する。そして、当該デバイス制御情報要求に基づいて、対象となるデバイス別キューに保存したデバイス制御情報(デバイスコマンド等)を順番に取り出し、応答データとしてデバイス4に送信する。また、デバイス4側でデータ出力やデータの書き込みを行うための対象となるデータが有る場合には、当該データを上記デバイス制御情報と合わせて送信する。なお、デバイス制御情報は、XML形式(若しくは、HTML形式)のデータとして生成される。
POSアプリケーション22は、POS端末2からの要求に基づいて決済処理を行うためのものである。例えば、POS端末2から商品の入力情報が送信されると、CPU11は、POSアプリケーション22を実行し、当該入力情報に基づいて、商品マスタ23から商品コード、商品名、金額に関する情報を抽出し、レシートの印刷およびPOS端末2のカスタマディスプレイ32の表示に用いる商品データを生成する。また、CPU11は、POS端末2からの入力情報や生成した上記商品データからレシートに印刷するための決済情報印刷データを生成する。これらの生成したデータは、POS端末2からのアプリケーション実行要求に伴い、上記のデバイス制御情報と共にデバイス管理データベース25に保存される。なお、ここで生成される各データは、HTML形式、若しくはXML形式のデータである。
また、POSサーバ3のCPU11は、POS端末2を使用するユーザ(従業員)のアカウント管理を行い、ユーザの識別を行う(ユーザ認証手段)。CPU11は、POS端末2から送信されるユーザIDおよびパスワードを受信し、POSサーバ3に登録されているものと一致するか否かを認証する。認証が成功した場合は、POSサーバ3へのアクセスを許可し、失敗した場合は、再度ユーザIDおよびパスワードを入力させる、あるいはアクセス拒否通知を送信するなどの処理を実行する。これにより、POSサーバ3への不正アクセスによる情報の改竄や漏洩を防止することができる。
さらに、POSサーバ3のCPU11は、デバイス4のアカウント管理を行い、デバイス4の識別を行う(デバイス認証手段)。CPU11は、デバイス4から送信されるデバイスIDおよびパスワードを受信し、POSサーバ3に登録されているものと一致するか否かを認証する。認証が成功した場合は、POSサーバ3へのアクセスを許可し、失敗した場合は、POSサーバ3のアクセスを拒否すると共に、デバイス4に対してその旨を通知する。これにより、確実にデバイス4を識別することができ、誤って別のデバイス4にデータを送信する等のトラブルを防止することができる。
また、POSサーバ3は、自身が管理する各デバイス4の環境設定を行うための環境設定サービスを備え、POS端末2(ホスト装置31)等にデバイス環境設定機能を提供する(デバイス環境設定手段)。この環境設定サービスでは、例えば、デバイス4の登録・削除、デバイス名・IDの設定、デバイス4のプロパティ設定等を行うことができる。なお、この環境設定サービスは、例えば、WebページによるUI(User Interface)やWebサービスAPI(Application Program Interface)として提供することが好ましい。これにより、デバイス4毎に環境設定用の入力装置を設ける必要がなく、簡単に且つ低コストでデバイス4の設定を行うことができる。
一方、POS端末2は、POSサーバ3から商品データを取得するホスト装置31(クライアント端末)と、商品名や売上金額等を表示するカスタマディスプレイ32(デバイス本体)と、カスタマディスプレイ32をホスト装置31にネットワーク接続するためのデバイスアダプタ33と、レシートに決済情報を印刷する印刷装置34と、を備え、これらはLAN35により接続されている(図1参照)。
ホスト装置31は、図2に示すように、CPU41、ROM42、RAM43、HDD44、入出力インターフェース45、標準入力デバイス46、通信インターフェース47を備え、HDD44には、ブラウザ51(Webブラウザ)が記憶されている。CPU41は、ROM42内に記憶された制御プログラムに従って、RAM43内のデータの処理を行う。標準入力デバイス46としては、キーボード52、バーコードスキャナ53(バーコードリーダ)を備え、CPU41は、キーボード52による入力およびバーコードスキャナ53による読み取りによって、POSサーバ3から商品コードや商品名、金額等に関する商品データを取得する。
ブラウザ51は、プラグインモジュールを有さない単機能ブラウザ(標準ブラウザ)であり、CPU41は、このブラウザ51を使用して、通信インターフェース47を介してネットワーク接続(インターネット接続、またはLAN接続)されたPOSサーバ3、およびカスタマディスプレイ32(デバイスアダプタ33)や印刷装置34等のデバイス4と通信を行う。この通信は、HTTPに基づいて行われ、http(s)://x.x.x.x/のようなURIを指定することで、POSサーバ3および各デバイス4と接続することにより行われる。
CPU41は、ブラウザ51を使用して、標準入力デバイス46からの入力情報に基づき、POSサーバ3にアプリケーション実行要求を送信する。この時、POSサーバ3からの応答データをカスタマディスプレイ32に表示、あるいは印刷装置34で印刷する等のデバイス動作を伴う場合は、上記アプリケーション実行要求にデバイス動作を伴う旨の情報を含めて送信する。そして、CPU41は、POSサーバ3から動作対象となるデバイス4(カスタマディスプレイ32や印刷装置34等)を特定する情報(デバイス特定情報)、デバイス4の動作を指定する動作情報、デバイス制御情報の保存結果、アプリケーション実行要求を送信したPOSサーバ3を特定するための情報(制御サーバ特定情報)等をタグとして挿入したHTML形式、若しくはXML形式の応答データを受信(取得)する。その後、CPU41は、受信した応答データに基づいて、対象となるデバイス4に対してデバイス動作要求を送信する(動作要求手段)。なお、このデバイス動作要求には、アプリケーション実行要求を送信したPOSサーバ3を特定するための情報(制御サーバ特定情報)が含まれている。この情報をデバイス4に送信することにより、デバイス4は、ホスト装置31がアプリケーション実行を要求したPOSサーバ3を特定することができ、確実に同一のPOSサーバ3に対してデバイス制御情報を要求することができる。
また、CPU41は、デバイス4からデバイス動作要求に対する動作結果を含む応答データを受信し(動作結果受信手段)、この応答データによりデバイス4の動作結果(動作の成功/失敗)を判別し、所定の処理を行う。つまり、デバイス4を動作させる場合、ホスト装置31は、ブラウザ51を使用して、デバイス動作要求(HTTPリクエスト)をデバイス4に送信するだけでよく、従来のようにホスト装置31自身でデバイス4を制御する必要がない。これにより、ホスト装置31には、ホスト装置31の環境(OSの種類等)に依存したデバイスドライバが不要となる。また、ブラウザ51は、単機能ブラウザでよく、プラグインモジュールを必要としないため、ホスト装置31の環境に依存することなく、デバイス4にアクセスすることができる。
なお、POSサーバ3からの応答データ内に、デバイス4に関する情報(デバイス4のアドレス)を含むタグが挿入されているため、POSサーバ3とデバイス4とのドメインが異なる場合でも、問題なくデバイス4にアクセスが可能(クロスサイトアクセスが可能)となり、POSサーバ3とデバイス4とがシームレスに連携することができる。これにより、ユーザは、デバイス4に関する情報を意識することなくデバイス4にアクセスすることができる。なお、当該タグは、POSサーバ3側で応答データ内に挿入しても良いし、あるいは、ホスト装置31側でタグを生成し、動的に応答データに挿入するようにしてもよい。
カスタマディスプレイ32は、標準入力デバイス46により入力された(読み取られた)商品情報を表示し、顧客に対して購入商品の一覧、金額等を提示する。本実施形態で説明するカスタマディスプレイ32は、単体ではネットワーク接続が不可能なものを想定しており、ホスト装置31とはデバイスアダプタ33を介してLAN35で接続されると共に、POSサーバ3とインターネット5で接続される。これにより、ネットワーク接続ができないデバイス4であっても、ホスト装置31からネットワークを介して使用することができる。
デバイスアダプタ33は、CPU61、記憶部62および通信インターフェース63を有し、記憶部62には、HTTPサーバ65およびHTTPクライアント66を備えている。デバイスアダプタ33(CPU61)は、HTTPサーバ65を介して、HTTPに基づいてホスト装置31(ブラウザ51)と通信を行う。CPU61は、通信インターフェース63を介してLAN35で接続されたホスト装置31(ブラウザ51)から、HTTPリクエストとしてカスタマディスプレイ32への表示要求(デバイス動作要求)を受信する。この表示要求には、ホスト装置31がアプリケーション実行要求を送信したPOSサーバ3を特定する情報が含まれており、CPU61は、この情報に基づき、表示要求(デバイス制御情報要求)を送信するPOSサーバ3を特定する。そして、CPU61は、HTTPクライアント66を介して、POSサーバ3(HTTPサーバ21)に対し、デバイス制御情報要求(HTTPリクエスト)を送信する(デバイス制御情報要求送信手段)。この時、デバイスアダプタ33(CPU61)は、自身のデバイスIDおよびパスワードを合わせて送信し、POSサーバ3によるデバイス認証を受ける。そして、認証成功後、CPU61は、POSサーバ3から当該要求に対するデバイス制御情報(例えば、デバイスコマンド等)および表示データを受信する。そして、CPU61は、これらに基づいて、カスタマディスプレイ32を制御して所望の文字や画像を表示させ(動作手段)、その結果(正常に表示できたか否か)を、HTTPサーバ65を介してホスト装置31(ブラウザ51)に送信する(動作結果送信手段)。
なお、上記では、デバイスアダプタ33をハードウェアとして構成しているが、これに限らず、ソフトウェアとして構成してもよい。この場合、ソフトウェアデバイスアダプタ36をホスト装置31に組み込み、カスタマディスプレイ32に所望の情報を表示させることが好ましい(図3参照)。
印刷装置34は、レシート上に決済情報を印刷するレシートプリンタであり、CPU71、記憶部72、印刷部73および通信インターフェース74を備え、通信インターフェース74を介してホスト装置31とLAN35で接続されると共に、POSサーバ3とインターネット5で接続されている。また、記憶部72には、HTTPサーバ75と、HTTPクライアント76と、を有している(図2参照)。
印刷装置34は、HTTPサーバ75を介して、HTTPに基づいてホスト装置31(ブラウザ51)と通信を行う。CPU71は、HTTPサーバ75により、通信インターフェース74を介してLAN35で接続されたホスト装置31(ブラウザ51)から、HTTPリクエストとして印刷要求(デバイス動作要求)を受信する。この印刷要求には、ホスト装置31がアプリケーション実行要求を送信したPOSサーバ3を特定する情報が含まれており、CPU71は、この情報に基づき、デバイス制御要求を送信するPOSサーバ3を特定する。そして、CPU71は、ホスト装置31から受信した印刷要求に基づき、HTTPクライアント76を介して、POSサーバ3(HTTPサーバ21)に対し、デバイス制御情報要求(HTTPリクエスト)を送信する(デバイス制御情報要求送信手段)。この時、印刷装置34(CPU71)は、自身のデバイスIDおよびパスワードを合わせて送信し、POSサーバ3による認証を受ける。そして、認証成功後、CPU71は、POSサーバ3から、当該要求に対応するデバイス制御情報(例えば、デバイスコマンド等)および印刷データを受信する。そして、CPU71は、このデバイス制御情報および印刷データに基づいて、印刷部73を制御して印刷処理を行い(動作手段)、その印刷処理結果(成功/失敗)を、HTTPサーバ75を介してホスト装置31(ブラウザ51)に送信する(動作結果送信手段)。
また、印刷装置34は、自身の初期設定を行うための設定サービスを備え、ホスト装置31等にデバイス設定機能を提供する(デバイス設定手段)。この設定サービスは、例えば、WebページによるUI(User Interface)やWebサービスAPI(Application Program Interface)として提供することが好ましい。これにより、印刷装置34(デバイス4)に入力装置を設ける必要がなく、簡単に且つ低コストで印刷装置34(デバイス4)の設定を行うことができる。
なお、ホスト装置31からのデバイス動作要求により、デバイス4側でデータ生成(例えば、スキャナによる画像データ生成)、あるいはデータの読み出し(例えば、ストレージデバイスからのデータ読み出し)を行う場合、デバイス4は、これらのデータ(画像データ、ファイル等)を、HTTPリクエストとしてPOSサーバ3に送信(アップロード)することが可能である。
次に、図4および図5を参照して、本発明のPOSシステム1において、ホスト装置31からデバイス4を動作させる手順について説明する。ここでは、対象となるデバイス4として、印刷装置34を例に挙げ、入力された商品情報に基づいてレシートを印刷する手順について説明する。まず、ホスト装置31がPOSサーバ3に接続すると、POSサーバ3は、ホスト装置31を使用するユーザの認証処理を行う(S01,詳細は後述)。ユーザ認証終了後、ホスト装置31は、標準入力デバイス46(キーボード52やバーコードスキャナ53)により商品情報を入力(読み取り)し、POSサーバ3に対して入力した商品情報に基づくレシート印刷要求(アプリケーション実行要求)を送信する(S02)。このレシート印刷要求は、ホスト装置31のブラウザ51から、HTTPリクエストとしてPOSサーバ3(HTTPサーバ21)に送信される。
POSサーバ3は、レシート印刷要求を受信すると(S03,実行要求受信手段)、当該要求に基づき、POSアプリケーション22およびデバイス管理アプリケーション24を実行して、印刷対象となる決済情報印刷データおよびXML形式のデバイス制御情報(印刷装置34に関する情報)を生成し(S04)、当該印刷装置34用のキューに保存する(S05)。なお、この決済情報印刷データは、対象となる印刷装置34で出力可能な形式に変換され、例えば、決済情報印刷データを、XSLT(Extensible Stylesheet Language Transformation)によりXHTML−Print形式のデータに変換することで、印刷装置34に対応したデバイスドライバがなくても印刷処理が可能となる。
そして、POSサーバ3は、この保存処理終了に伴い、HTML形式(若しくはXML形式)の第1応答データ(ページ)を生成する(S06,第1応答データ生成手段)。この第1応答データには、印刷装置34の特定情報(IPアドレス等)、印刷装置34の起動に関する情報(起動用のAPI名等)、POSサーバ3の特定情報(制御サーバ特定情報)、デバイス制御情報の保存結果、印刷装置34からのコールバックを受けるためのJavaScript(登録商標)の関数が埋め込まれている。そして、POSサーバ3は、ホスト装置31に対して当該第1応答データ(ページ)を送信する(S07,第1応答データ送信手段)。
ホスト装置31(ブラウザ51)は、第1応答データを受信し(S08)、当該第1応答データに基づいて、印刷装置34(HTTPサーバ75)に対してHTTPリクエストとして、第1応答データに基づくPOSサーバ3の特定情報(制御サーバ特定情報)を含む印刷装置起動要求(デバイス起動要求)を送信する(S09,動作要求手段)。
印刷装置34(HTTPサーバ75)は、ホスト装置31からの印刷装置起動要求を受信し(S10)、当該要求に含まれるPOSサーバ3の特定情報に基づいて、POSサーバ3に自身のデバイスIDおよびパスワード送信する。そして、POSサーバ3は、受信した印刷装置34のIDとパスワードに基づいて印刷装置34の認証処理(デバイス認証)を行う(S11,詳細は後述)。デバイス認証終了後、印刷装置34(HTTPクライアント76)は、POSサーバ3(HTTPサーバ21)に対し、HTTPリクエストとしてデバイス制御情報要求を送信する(S12,デバイス制御情報要求送信手段)。
POSサーバ3は、デバイス制御情報要求を受信し(S13)、この要求に基づいて、当該印刷装置34用のキューに保存済みのデバイス制御情報(デバイスコマンド等)を取り出し、印刷対象である決済情報印刷データ(ここでは、XHTML−Print形式)と共に印刷装置34に送信する(S14)。印刷装置34は、デバイス制御情報および決済情報印刷データを受信し(S15)、XHTML−Print形式の決済情報印刷データを解釈すると共に、当該デバイス制御情報に基づいて印刷部73を動作させて印刷処理を行う(S16,動作手段)。その後、印刷装置34は、印刷処理の実行結果(成功/失敗等)および印刷装置34の状態に関する情報を第2応答データとして生成する(S17)。この第2応答データは、JSONP(JSON with Padding)によりJavaScript(登録商標)のコールバック関数として生成される。そして、印刷装置34は、当該第2応答データをホスト装置31に送信する(S18,動作結果送信手段)。
第2応答データを受信したホスト装置31は(S19,動作結果受信手段)、当該第2応答データに基づき、印刷装置34の動作結果を判別する(S20)。具体的には、ホスト装置31は、第2応答データのJavaScript(登録商標)を実行し、コールバック関数を呼び出すことで、印刷装置34の動作結果を取得し、判別する。印刷処理が正常に終了した場合(S21:Yes)、ホスト装置31は、印刷装置34での印刷処理が正常終了した旨をPOSサーバ3に通知し(S22)、POSサーバ3は、その通知を受信する(S23)。一方、印刷処理が正常終了しなかった場合(S21:No)、ホスト装置31は、印刷装置34に、再度、印刷装置起動要求を送信したり、あるいは印刷装置34の状態に基づいたエラー処理を行う(S24)。
次に、図6を参照して、ホスト装置31を使用するユーザの認証の手順について説明する。まず、ホスト装置31は、ユーザによりユーザIDおよびパスワード(以下、ユーザ認証情報)が入力されると(S31)、当該ユーザ認証情報をPOSサーバ3に送信する(S32)。ユーザ認証情報を受信したPOSサーバ3は、ユーザ認証用データベース(図示省略)を参照し、当該ユーザIDに対するパスワードが登録されたものと一致するか認証を行う(S33,ユーザ認証手段)。認証が成功した場合(S34:Yes)、POSサーバ3は、当該ユーザ(ホスト装置31)にPOSアプリケーション22の使用を許可する(S35)。一方、認証が失敗した場合(S34:No)、POSサーバ3は、ホスト装置31(ユーザ)に対してその旨を通知し(例えば、ユーザ認証情報の入力画面を再表示する等)、ホスト装置31(ユーザ)は、再度ユーザIDおよびパスワードを入力し(S36)、再入力したユーザIDおよびパスワードをPOSサーバ3に送信する(S32)。なお、パスワードを連続して所定回数間違って入力した場合、POSサーバ3への接続を切断したり、あるいは、当該ユーザIDを無効にする等の処理をすることが好ましい。
次に、図7を参照して、POSサーバ3にアクセスするデバイス4(あるいは、デバイスアダプタ33)の認証の手順について説明する。まず、デバイス4は、デバイスIDおよびパスワード(以下、デバイス認証情報)をPOSサーバ3に送信する(S41)。当該デバイス認証情報を受信したPOSサーバ3は、デバイス認証用データベース(図示省略)を参照し、当該デバイスIDに対するパスワードが登録されたものと一致するか認証を行う(S42,デバイス認証手段)。認証が成功した場合(S43:Yes)、POSサーバ3は、当該デバイス4に自身(POSサーバ3)へのアクセスを許可する(S44)。一方、認証が失敗した場合(S43:No)、POSサーバ3は、デバイス4に対してその旨を通知する。認証失敗の通知を受けたデバイス4は(S45)、ホスト装置31に対して、認証が失敗してPOSサーバ3にアクセスできない旨を通知し(S46)、ホスト装置31は、その通知に基づいてエラー処理を行う(S47)。
次に、図8を参照して、印刷装置34に障害が発生した場合の動作手順について説明する。まず、印刷装置34は、エラー(障害)を検出すると(S51)、印刷装置34は、自身の印刷動作を停止する(S52)。そして、印刷装置34は、自身のイベント情報やステータス情報(以下、デバイス情報)等をHTTPリクエストとしてPOSサーバ3に送信する(S53)。POSサーバ3は、デバイス情報を受信し(S54)、当該デバイス情報に基づいて、デバイス管理アプリケーション24により、当該印刷装置34の状態(ステータス)を変更する等の処理を行うと共に(S55)、デバイス情報を受信した旨の通知(受信完了通知)を印刷装置34に送信する(S56)。受信完了通知を受信した印刷装置34は、自身の動作を停止させたまま、ホスト装置31からのデバイス動作要求に対する応答データを、JSONP(JSON with Padding)によりJavaScript(登録商標)のコールバック関数として生成し(S57)、当該応答データをホスト装置31に送信する(S58,動作結果送信手段)。ホスト装置31は、印刷装置34からの応答データを受信すると(S59,動作結果受信手段)、コールバック関数を呼び出して印刷装置34の状態を判別し(S60)、その状態(エラー内容)に応じたエラー処理を行う(S61)。
次に、図9および図10を参照して、印刷装置34の印刷動作の一時停止動作、復旧動作、中止動作の動作手順について説明する。なお、これらの動作手順は、送受信するデータの内容が異なるだけで、基本的に同一であるため、ここでは、印刷装置34の一時停止動作について説明する。
まず、ホスト装置31は、ブラウザ51を介して、POSサーバ3(HTTPサーバ21)に対し、HTTPリクエストとして印刷動作一時停止要求(アプリケーション実行要求)を送信する(S71)。POSサーバ3は、印刷動作一時停止要求を受信し(S72,実行要求受信手段)、当該印刷動作一時停止要求に基づいて、デバイス管理アプリケーション24を実行してHTML形式(若しくはXML形式)の第1応答データ(ページ)を生成する(S73,第1応答データ生成手段)。この第1応答データには、印刷装置34の特定情報(IPアドレス等)、印刷装置34の一時停止に関する情報(一時停止用のAPI名等)、POSサーバ3の特定情報(IPアドレス等)、印刷装置34からのコールバックを受けるためのJavaScript(登録商標)の関数が埋め込まれている。そして、POSサーバ3は、ホスト装置31に対して当該第1応答データ(ページ)を送信する(S74,第1応答データ送信手段)。
ホスト装置31(ブラウザ51)は、第1応答データを受信し(S75)、当該第1応答データに基づいて、印刷装置34(HTTPサーバ75)に対してHTTPリクエストとして、POSサーバ3の特定情報(制御サーバ特定情報)を含む印刷装置一時停止要求(デバイス動作要求)送信する(S76,動作要求手段)。
印刷装置34は、ホスト装置31からの印刷装置一時停止要求を受信すると(S77)、自身のイベント情報やステータス情報(以下、デバイス情報)等をHTTPリクエストとしてPOSサーバ3に送信する(S78)。POSサーバ3は、デバイス情報を受信し(S79)、当該デバイス情報に基づいて、デバイス管理アプリケーション24により、当該印刷装置34の状態(ステータス)を一時停止状態に変更する等の処理を行うと共に(S80)、一時停止用のデバイス制御情報(デバイスコマンド等)およびデバイス情報を受信した旨の通知(応答通知)を印刷装置34に送信する(S81)。応答通知を受信した印刷装置34は、自身の動作を一時停止させ(S82,動作手段)、一時停止処理の結果(成功/失敗等)および印刷装置34の状態(ステータス)に関する情報を第2応答データとして生成する(S83)。この第2応答データは、JSONP(JSON with Padding)によりJavaScript(登録商標)のコールバック関数として生成される。そして、印刷装置34は、当該第2応答データをホスト装置31に送信する(S84,動作結果送信手段)。
第2応答データを受信したホスト装置31は(S85,動作結果受信手段)、当該第2応答データに基づき、印刷装置34の動作結果を判別する(S86)。具体的には、ホスト装置31は、第2応答データのJavaScript(登録商標)を実行し、コールバック関数を呼び出すことで、印刷装置34の動作結果を取得し、判別する。一時停止処理が正常に終了した場合(S87:Yes)、ホスト装置31は、印刷装置34の一時停止に係る処理を完了する(S88)。一方、一時停止処理が正常終了しなかった場合(S87:No)、ホスト装置31は、印刷装置34に、再度、印刷装置一時停止要求を送信したり、あるいは印刷装置34の状態に基づいたエラー処理を行う(S89)。なお、印刷動作を中止させる場合、印刷装置34およびPOSサーバ3は、上記の処理に合わせて、中止対象となる印刷動作の印刷ジョブ(印刷ジョブID)を削除する処理を行う。
以上のように、本実施形態によれば、ホスト装置31(クライアント端末)からデバイス4を動作させる場合、POSサーバ3により生成・保存(管理)された各デバイス4のデバイス制御情報に基づいてデバイス4を動作させることができるため、ホスト装置31にデバイスドライバをインストールすることなく、デバイス4を使用することができる。また、ホスト装置31にデバイスドライバが不要になるため、デバイス4の使用に係るホスト装置31の処理の負荷を軽減することができる。さらに、デバイスメーカにとっては、各ホスト装置31のOSの種類毎にデバイスドライバを作成する必要がなくなり、これに係る開発コストを削減できるといった効果がある。
また、各POS端末2(ホスト装置31)にPOSアプリケーション22やデバイスドライバをインストールする必要がないため、POS端末2(ホスト装置31)の低廉化を図ることができると共に、保守・管理に要する時間やコストを軽減できる。
なお、図11に示すように、上述したPOSシステム1に、POSサーバ3が異常状態の場合にホスト装置31からの処理要求を代理実行する代理POSサーバ81(代理制御サーバ)を導入し、POSサーバ3、およびPOS端末2を同一LAN35上に、代理POSサーバ81をインターネット5上に設置するようにしてもよい。この場合、POSサーバ3と代理POSサーバ81との間で、ホスト装置31からの実行要求の処理状況、商品マスタ23の情報、ユーザ認証情報(ユーザIDやパスワード)、デバイス4からの要求に対する処理状況、デバイス管理データベース25の情報(デバイス制御情報や各種データ)、デバイス認証情報(デバイスIDやパスワード)等のデータの同期を所定間隔で取り、POSサーバ3が異常状態になり、代理POSサーバ81に処理が移行した場合においても、確実に処理が引き継がれるようにする。これにより、ホスト装置31は、POSサーバ3に実行要求した場合の実行結果と同一の実行結果を代理POSサーバ81から取得することができる。一方、デバイス4は、POSサーバ3にデバイス制御情報要求した場合の応答結果(デバイス制御情報や印刷データ等)と同一の応答結果を代理POSサーバ81から取得することができる。つまり、結果として、POSサーバ3が異常状態になった場合であっても、ホスト装置31から各デバイス4を確実に動作させることができる。
また、代理POSサーバ81をPOSサーバ3のバックアップサーバとして使用することができるため、ホスト装置31はPOSサーバ3の不具合を意識することなく、アプリケーションの実行結果を取得することができると共に、確実にデバイス4を動作させることができる。なお、異常状態とは、正常状態でない状態であり、例えば、POSサーバ3のPOSアプリケーション22からの応答がない場合や、POSサーバ3が故障した場合をいう。また、POSサーバ3およびPOS端末2(ホスト装置31とデバイス4)を同一のLAN35に設置するため、POSサーバ3がインターネット5上に設置される場合と比べ、応答速度を早くすることができ、POSシステム1全体の処理効率を向上させることができる。
また、本実施形態では、デバイス4として、カスタマディスプレイ32や印刷装置34(レシート印刷装置)を例に挙げて説明したが、これに限らず、家庭用プリンタ、イメージスキャナ、各種ストレージ等のコンシューマ向けデバイス、オフィス向けデバイスおよび業務用デバイスに適用することが可能である。
また、上述した実施例のPOSシステム1は一例であり、用途は限定されない。例えば、オフィスにおいてレーザプリンタとイメージスキャナを使用した帳票入出力システム等に、本発明は適用可能である。
また、上記の例に示した、POSシステム1の機能をプログラムとして提供することも可能である。また、そのプログラムを記憶媒体(図示省略)に格納して提供することも可能である。記録媒体としては、CD−ROM、フラッシュROM、メモリカード(コンパクトフラッシュ(登録商標)、スマートメディア、メモリースティック等)、コンパクトディスク、光磁気ディスク、デジタルバーサタイルディスクおよびフレキシブルディスク等を利用することができる。
また、上述した実施例によらず、POSシステム1の装置構成や処理工程等について、本発明の要旨を逸脱しない範囲で、適宜変更も可能である。