(57)【要約】【課題】クライアントにデバイスドライバをインストールすることなくデバイスを制御することができるネットワークシステムを提供する。【解決手段】アプリケーション実行サーバ３は、アプリケーション実行要求を受信すると共にデバイス５を制御するデバイス制御情報を生成し、デバイスサーバ４に送信する。デバイスサーバ４は、受信したデバイス制御情報をコマンド変換情報に変換して保存し、その旨をアプリケーション実行サーバ３に送信する。アプリケーション実行サーバ３は、アプリケーション実行要求に対する応答データをクライアント端末５１に送信する。クライアント端末５１は、応答データに基づき、デバイス５にデバイス動作要求を送信する。デバイス５は、この要求に基づきデバイスサーバ４にデバイスコマンド要求を送信し、その応答のコマンド変換情報に従って動作する。そして、動作結果をクライアント端末５１に送信する。【選択図】図２
2014186749.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションを実行する１以上のアプリケーション実行サーバと、当該アプリケーション実行サーバに前記アプリケーションの実行を要求する１以上のクライアント端末と、当該クライアント端末の操作に伴って動作する１以上のデバイスと、当該デバイスを制御する１以上のデバイスサーバと、を有し、少なくとも前記アプリケーション実行サーバと前記クライアント端末、前記デバイスサーバと前記デバイス、前記アプリケーション実行サーバと前記デバイスサーバ、前記クライアント端末と前記デバイス、がそれぞれネットワーク接続されたネットワークシステムであって、
前記アプリケーション実行サーバは、
前記クライアント端末から、デバイス動作を伴うアプリケーション実行要求を受信する実行要求受信手段と、
前記アプリケーション実行要求の受信に伴って前記デバイスを制御するためのデバイス制御情報を生成し、前記デバイスサーバに送信するデバイス制御情報送信手段と、
前記デバイス制御情報の送信に対する前記デバイスサーバからの応答受信に伴って、前記アプリケーションの実行結果を含む第１応答データを生成し、前記クライアント端末に送信する第１応答データ送信手段と、を備え、
前記クライアント端末は、
前記アプリケーション実行サーバからの前記第１応答データの受信に伴って、前記デバイスに対しデバイス動作要求を送信する動作要求手段と、
前記デバイス動作要求に対する前記デバイスの動作結果を含む第２応答データを受信する動作結果受信手段と、を備え、
前記デバイスサーバは、
前記アプリケーション実行サーバから前記デバイス制御情報を受信し、制御対象となる前記デバイスに応じてコマンド変換したコマンド変換情報を、前記デバイス別のキューに保存するコマンド変換情報保存手段と、
前記アプリケーション実行サーバに対し、前記コマンド変換情報の保存に伴う応答を送信する保存応答手段と、を備え、
前記デバイスは、
前記クライアント端末からの前記デバイス動作要求の受信に伴って、前記デバイスサーバに対しデバイスコマンド要求を送信するコマンド要求送信手段と、
前記デバイスコマンド要求に対して前記デバイスサーバが前記デバイス別のキューから取り出した前記コマンド変換情報を受信し、当該コマンド変換情報に従って動作する動作手段と、
前記動作手段の動作結果を、前記第２応答データとして前記クライアント端末に送信する動作結果送信手段と、を備えたことを特徴とするネットワークシステム。
【請求項２】
前記アプリケーション実行サーバおよび前記デバイスは、ＨＴＴＰサーバとＨＴＴＰクライアントと、を備え、
前記デバイスサーバは、ＨＴＴＰサーバを備え、
前記クライアント端末は、プラグイン機能を有しない単機能ブラウザを備え、
前記アプリケーション実行サーバ、前記クライアント端末、前記デバイスサーバおよび前記デバイスは、ハイパーテキスト転送プロトコルに基づいて通信を行うことを特徴とする請求項１に記載のネットワークシステム。
【請求項３】
前記第１応答データには、少なくとも前記デバイスを特定するデバイス特定情報および前記デバイスの動作を指定する動作情報を含むタグが挿入されており、
前記動作要求手段は、前記タグの情報に基づいて、前記デバイス動作要求を送信することを特徴とする請求項１または２に記載のネットワークシステム。
【請求項４】
前記動作要求手段は、受信した前記第１応答データに、少なくとも前記デバイスを特定するデバイス特定情報および前記デバイスの動作を指定する動作情報を含むタグを挿入し、当該タグの情報に基づいて、前記デバイス動作要求を送信することを特徴とする請求項１または２に記載のネットワークシステム。
【請求項５】
前記デバイスは、デバイス本体とデバイスアダプタと、で構成され、
前記デバイス本体は、前記デバイスアダプタを介して前記クライアント端末および前記デバイスサーバと接続され、
前記デバイスアダプタは、前記クライアント端末からの前記デバイス動作要求に基づき、前記デバイスサーバに対し前記デバイスコマンド要求を送信することを特徴とする請求項１ないし４のいずれか１項に記載のネットワークシステム。
【請求項６】
前記アプリケーション実行サーバは、
前記デバイスサーバに対し、前記デバイスを専有して使用するためのデバイス専有要求を送信するデバイス専有要求手段を、さらに備え、
前記デバイスサーバは、
前記デバイス専有要求に基づき、当該デバイスの使用を単一の前記アプリケーション実行サーバに限定するデバイス排他制御手段と、
専有された前記デバイスに対して、他のアプリケーション実行サーバから使用要求が有った場合、前記他のアプリケーション実行サーバに対して、当該デバイスの使用を禁止する旨を通知する通知手段と、を備えたことを特徴とする請求項１ないし５のいずれか１項に記載のネットワークシステム。
【請求項７】
前記アプリケーション実行サーバと前記クライアント端末、前記デバイスサーバと前記デバイス、がそれぞれインターネット接続されていることを特徴とする請求項１ないし６のいずれか１項に記載のネットワークシステム。
【請求項８】
前記アプリケーション実行サーバは、ＰＯＳサーバとして機能し、
前記クライアント端末は、ＰＯＳ端末として機能することを特徴とする請求項１ないし７のいずれか１項に記載のネットワークシステム。
【請求項９】
前記アプリケーション実行サーバに接続されると共に、当該アプリケーション実行サーバと同様の処理を行うアプリケーション代理実行サーバと、
前記デバイスサーバに接続されると共に、当該デバイスサーバと同様の処理を行う代理デバイスサーバと、をさらに備え、
前記アプリケーション代理実行サーバと前記代理デバイスサーバと、がネットワーク接続され、
前記アプリケーション代理実行サーバは、
前記アプリケーション実行サーバが異常状態となった場合、前記アプリケーション実行サーバの処理を代理実行し、
前記代理デバイスサーバは、
前記デバイスサーバが異常状態となった場合、前記デバイスサーバの処理を代理実行することを特徴とする請求項１ないし８のいずれか１項に記載のネットワークシステム。
【請求項１０】
前記アプリケーション実行サーバと前記アプリケーション代理実行サーバとの間、および前記デバイスサーバと前記代理デバイスサーバとの間で、前記アプリケーション実行要求に関する情報の同期を取ることを特徴とする請求項９に記載のネットワークシステム。
【請求項１１】
前記アプリケーション実行サーバと前記アプリケーション代理実行サーバ、前記デバイスサーバと前記代理デバイスサーバ、がインターネット接続され、
前記アプリケーション実行サーバ、前記デバイスサーバ、前記クライアント端末および前記デバイスは、ＬＡＮ接続されていることを特徴とする請求項９または１０に記載のネットワークシステム。
【請求項１２】
前記デバイスは、当該デバイスの設定サービスを行うためのデバイス設定手段を備え、
前記クライアント端末は、前記デバイス設定手段による前記設定サービスを使用し、前記デバイスの設定を行うことを特徴とする請求項１ないし１１のいずれか１項に記載のネットワークシステム。
【請求項１３】
前記デバイスサーバは、制御対象となる前記デバイスの環境設定サービスを行うためのデバイス環境設定手段を備え、
前記クライアント端末は、前記デバイス環境設定手段による前記環境設定サービスを使用し、前記デバイスの環境設定を行うことを特徴とする請求項１ないし１２のいずれか１項に記載のネットワークシステム。
【請求項１４】
前記アプリケーション実行サーバと前記デバイスサーバと、が単一のサーバとして構成されていることを特徴とする請求項１ないし１３のいずれか１項に記載のネットワークシステム。
【請求項１５】
コンピュータを、請求項１ないし１４のいずれか１項に記載のネットワークシステムにおける前記アプリケーション実行サーバまたは前記デバイスサーバの各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＬＡＮ、インターネット等のネットワークを介してデバイスの制御を行うネットワークシステムおよびプログラムに関するものである。
【背景技術】
【０００２】
従来、一般的にコンピュータからデバイスを使用する場合、デバイス製造メーカより提供される特定のＯＳ専用のデバイスドライバをコンピュータにインストールしてデバイス（プリンタ、スキャナ等の周辺デバイス）を動作させる。また、多数のコンピュータによりデバイスを共有する場合においては、デバイスに対応するデバイスドライバを、ネットワーク上に設けられたサーバ（集中ドライバストレージ）により一括管理し、各コンピュータ（クライアント）に配布する方法が知られている（例えば、特許文献１参照）。この場合、サーバでは、デバイスドライバをＷｉｎｄｏｗｓ（登録商標）２０００やＷｉｎｄｏｗｓＸＰ（登録商標）等のＯＳ毎に管理すると共に、当該デバイスドライバのバージョン（版数）の管理を行い、各クライアントのＯＳに応じてデバイスドライバを配布することで、各クライアントからデバイス（共有デバイス）を使用可能にしている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−３０３２５２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、上記では、デバイスを使用するためには、各クライアントにデバイスドライバをインストールする必要があり、このデバイスドライバはＯＳに依存して動作するため、クライアントの処理負荷が大きくなる。また、デバイスメーカ側も、各クライアントのＯＳの種類ごとに、対応したデバイスドライバを開発する必要があり、開発コストが大きくなるという問題がある。
【０００５】
本発明は、上記の問題点に鑑みたものであり、クライアントにデバイスドライバをインストールすることなくデバイスを制御することができるネットワークシステムおよびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明のネットワークシステムは、アプリケーションを実行する１以上のアプリケーション実行サーバと、当該アプリケーション実行サーバにアプリケーションの実行を要求する１以上のクライアント端末と、当該クライアント端末の操作に伴って動作する１以上のデバイスと、当該デバイスを制御する１以上のデバイスサーバと、を有し、少なくともアプリケーション実行サーバとクライアント端末、デバイスサーバとデバイス、アプリケーション実行サーバとデバイスサーバ、クライアント端末とデバイス、がそれぞれネットワーク接続されたネットワークシステムであって、アプリケーション実行サーバは、クライアント端末から、デバイス動作を伴うアプリケーション実行要求を受信する実行要求受信手段と、アプリケーション実行要求の受信に伴ってデバイスを制御するためのデバイス制御情報を生成し、デバイスサーバに送信するデバイス制御情報送信手段と、デバイス制御情報の送信に対するデバイスサーバからの応答受信に伴って、アプリケーションの実行結果を含む第１応答データを生成し、クライアント端末に送信する第１応答データ送信手段と、を備え、クライアント端末は、アプリケーション実行サーバからの第１応答データの受信に伴って、デバイスに対しデバイス動作要求を送信する動作要求手段と、デバイス動作要求に対するデバイスの動作結果を含む第２応答データを受信する動作結果受信手段と、を備え、デバイスサーバは、アプリケーション実行サーバからデバイス制御情報を受信し、制御対象となるデバイスに応じてコマンド変換したコマンド変換情報を、デバイス別のキューに保存するコマンド変換情報保存手段と、アプリケーション実行サーバに対し、コマンド変換情報の保存に伴う応答を送信する保存応答手段と、を備え、デバイスは、クライアント端末からのデバイス動作要求の受信に伴って、デバイスサーバに対しデバイスコマンド要求を送信するコマンド要求送信手段と、デバイスコマンド要求に対してデバイスサーバがデバイス別のキューから取り出したコマンド変換情報を受信し、当該コマンド変換情報に従って動作する動作手段と、動作手段の動作結果を、第２応答データとしてクライアント端末に送信する動作結果送信手段と、を備えたことを特徴とする。
【０００７】
この構成によれば、クライアント端末が、デバイス動作を伴うアプリケーション実行要求を送信すると、アプリケーション実行サーバは、当該アプリケーション実行要求に基づいて、対象となるデバイスを制御するためのデバイス制御情報を生成し、デバイスサーバに送信する。デバイスサーバは、デバイス制御情報を対象となるデバイスに応じてコマンド変換し、デバイス別のキューに保存する。そして、デバイスサーバは、アプリケーション実行サーバに対してデバイス制御情報に係る処理が完了した旨の応答を送信する。アプリケーション実行サーバは、当該応答に伴って、アプリケーションの実行結果を第１応答データとして生成し、当該第１応答データをクライアント端末に送信する。クライアント端末は、受信した第１応答データに基づいて、対象となるデバイスに対してデバイス動作要求を送信する。デバイス動作要求を受信したデバイスは、デバイスサーバに対してデバイスコマンドを要求し、デバイスサーバから当該デバイスに対応するデバイス別キューに保存されているコマンド変換情報を受信する。そして、デバイスは、このコマンド変換情報に基づいて自身を動作させ、その動作結果をクライアント端末に送信し、クライアント端末が当該動作結果を受信することで、一連のデバイス動作に関する処理が完了する。これにより、デバイスサーバが各デバイスの制御情報を管理すると共に、各デバイスのデバイスドライバの役目を果たすため、クライアント端末にデバイスドライバをインストールすることなく、クライアント端末からの動作要求に基づき、デバイスを使用することができる。また、クライアント端末にデバイスドライバが不要になるため、デバイスの使用に係るクライアント端末の処理の負荷を軽減することができる。さらに、デバイスメーカにとっては、各クライアント端末のＯＳの種類毎にデバイスドライバを作成する必要がなくなり、これに係る開発コストを削減できるといった効果がある。
【０００８】
この場合、アプリケーション実行サーバおよびデバイスは、ＨＴＴＰサーバとＨＴＴＰクライアントと、を備え、デバイスサーバは、ＨＴＴＰサーバを備え、クライアント端末は、プラグイン機能を有しない単機能ブラウザを備え、アプリケーション実行サーバ、クライアント端末、デバイスサーバおよびデバイスは、ハイパーテキスト転送プロトコルに基づいて通信を行うことが好ましい。
【０００９】
この構成によれば、クライアント端末は、単機能ブラウザを使用して、アプリケーション実行サーバおよびデバイスとハイパーテキスト転送プロトコル（ＨＴＴＰ）に基づいて通信を行うことで、クライアント端末の環境（クライアント端末のＯＳの種類等）に依存することなく、デバイス（例えば、プリンタ、スキャナ等の周辺機器）にアクセスすることができる。また、クライアント端末はＯＳの種類やブラウザに依存したプラグインモジュールが不要であるため、例えば、プラグインモジュールが提供されておらず、デバイスが使用できないといったことがなくなる。なお、ここで言う単機能ブラウザとは、プラグインモジュールをインストールしていない標準のブラウザである。
【００１０】
これらの場合、第１応答データには、少なくともデバイスを特定するデバイス特定情報およびデバイスの動作を指定する動作情報を含むタグが挿入されており、動作要求手段は、タグの情報に基づいて、デバイス動作要求を送信することが好ましい。
【００１１】
また、これらの場合、動作要求手段は、受信した第１応答データに、少なくともデバイスを特定するデバイス特定情報およびデバイスの動作を指定する動作情報を含むタグを挿入し、当該タグの情報に基づいて、デバイス動作要求を送信することが好ましい。
【００１２】
これらの構成によれば、アプリケーション実行サーバによりデバイス特定情報および動作情報を含むタグが挿入された第１応答データ、またはクライアント端末により動的にデバイス特定情報および動作情報を含むタグを挿入した第一応答データに基づいて、デバイス動作要求を送信する。これにより、アプリケーション実行サーバとデバイスとのドメインが異なる場合においても、アプリケーション実行サーバとデバイスとがシームレスに連携することができる。また、クライアント端末を使用するユーザは、デバイスに関する情報を意識することなくデバイスを使用することができる。
【００１３】
これらの場合、デバイスは、デバイス本体とデバイスアダプタと、で構成され、デバイス本体は、デバイスアダプタを介してクライアント端末およびデバイスサーバと接続され、デバイスアダプタは、クライアント端末からのデバイス動作要求に基づき、デバイスサーバに対しデバイスコマンド要求を送信することが好ましい。
【００１４】
この構成によれば、デバイスアダプタを介してデバイス本体と、クライアント端末およびデバイスサーバと、をネットワーク接続できる。そして、デバイスアダプタによりクライアント端末からのデバイス動作要求等を受信すると共に、この要求に伴いデバイスサーバに対してデバイスコマンド要求を送信してデバイス本体の動作制御ができる。これにより、デバイス本体が直接ネットワークに接続できない場合でも、クライアント端末からネットワークを介してデバイスを使用することができる。
【００１５】
これらの場合、アプリケーション実行サーバは、デバイスサーバに対し、デバイスを専有して使用するためのデバイス専有要求を送信するデバイス専有要求手段を、さらに備え、デバイスサーバは、デバイス専有要求に基づき、当該デバイスの使用を単一のアプリケーション実行サーバに限定するデバイス排他制御手段と、専有されたデバイスに対して、他のアプリケーション実行サーバから使用要求が有った場合、他のアプリケーション実行サーバに対して、当該デバイスの使用を禁止する旨を通知する通知手段と、を備えたことが好ましい。
【００１６】
この構成によれば、アプリケーション実行サーバからのデバイス専有要求により、デバイスサーバは、対象となるデバイスの排他制御を行う。これにより、単一のアプリケーション実行サーバで、該当するデバイスを専有することができ、例えば、アプリケーション実行サーバで、デバイス動作を伴う優先度の高い処理を行う場合等、該当するデバイスを専有することで処理遅延を防止できる。なお、デバイス専有要求がされていないデバイスに関しては、複数のアプリケーション実行サーバで共有して使用可能である。
【００１７】
これらの場合、アプリケーション実行サーバとクライアント端末、デバイスサーバとデバイス、がそれぞれインターネット接続されていることが好ましい。
【００１８】
この構成によれば、アプリケーション実行サーバおよびデバイスサーバをインターネット上に配置することで、クライアント端末およびデバイスの設置場所に拘らず、上記両サーバにアクセスし、アプリケーションおよびデバイスを使用することができる。
【００１９】
これらの場合、アプリケーション実行サーバは、ＰＯＳサーバとして機能し、クライアント端末は、ＰＯＳ端末として機能することが好ましい。
【００２０】
この構成によれば、各ＰＯＳ端末にアプリケーションやデバイスドライバをインストールする必要がないため、ＰＯＳ端末の低廉化を図ることができると共に、保守・管理に要する時間やコストを軽減できる。
【００２１】
これらの場合、アプリケーション実行サーバに接続されると共に、当該アプリケーション実行サーバと同様の処理を行うアプリケーション代理実行サーバと、デバイスサーバに接続されると共に、当該デバイスサーバと同様の処理を行う代理デバイスサーバと、をさらに備え、アプリケーション代理実行サーバと代理デバイスサーバと、がネットワーク接続され、アプリケーション代理実行サーバは、アプリケーション実行サーバが異常状態となった場合、アプリケーション実行サーバの処理を代理実行し、代理デバイスサーバは、デバイスサーバが異常状態となった場合、デバイスサーバの処理を代理実行することが好ましい。
【００２２】
この構成によれば、アプリケーション実行サーバが異常状態の場合、アプリケーション代理実行サーバにより、クライアント端末からの処理依頼を代理実行することができる。また、デバイスサーバが異常状態の場合には、代理デバイスサーバにより、デバイスからのデバイスコマンド要求依頼を代理実行することができる。これにより、アプリケーション代理サーバをアプリケーション実行サーバのバックアップサーバとして使用することができると共に、クライアント端末はアプリケーション実行サーバの不具合を意識することなく、アプリケーションの実行結果を取得することができる。また、代理デバイスサーバをデバイスサーバのバックアップとして使用できるため、デバイスサーバの状態を意識することなく、確実にデバイスを動作させることができる。なお、異常状態とは、正常状態でない状態であり、例えば、アプリケーション実行サーバのアプリケーションからの応答がない場合や、アプリケーション実行サーバまたはデバイスサーバが故障した場合をいう。
【００２３】
この場合、アプリケーション実行サーバとアプリケーション代理実行サーバとの間、およびデバイスサーバと代理デバイスサーバとの間で、アプリケーション実行要求に関する情報の同期を取ることが好ましい。
【００２４】
この構成によれば、アプリケーション実行サーバとアプリケーション代理実行サーバの同期を取ることができ、例えば、アプリケーション実行サーバが異常状態になった場合でも、クライアント端末は、アプリケーション実行サーバに実行要求した場合の実行結果と同一の実行結果をアプリケーション代理実行サーバから取得することができる。また、デバイスサーバと代理デバイスサーバの同期を取ることで、例えば、デバイスサーバが異常状態になった場合でも、デバイスは、デバイスサーバに要求した場合の応答結果（コマンド変換情報や印刷データ）と同一の応答結果を代理デバイスサーバから取得することができる。
【００２５】
これらの場合、アプリケーション実行サーバとアプリケーション代理実行サーバ、デバイスサーバと代理デバイスサーバ、がインターネット接続され、アプリケーション実行サーバ、デバイスサーバ、クライアント端末およびデバイスは、ＬＡＮ接続されていることが好ましい。
【００２６】
この構成によれば、アプリケーション実行サーバ、デバイスサーバ、クライアント端末およびデバイスがＬＡＮ接続されるため、アプリケーション実行サーバおよびデバイスサーバをインターネット上に設置する場合と比べ、アプリケーション実行サーバとクライアント端末との間、およびデバイスサーバとデバイスとの間の応答速度を速くすることができる。
【００２７】
これらの場合、デバイスは、当該デバイスの設定サービスを行うためのデバイス設定手段を備え、クライアント端末は、デバイス設定手段による設定サービスを使用し、デバイスの設定を行うことが好ましい。
【００２８】
この構成によれば、クライアント端末から設定サービスを使用してデバイスの設定を行うことができるため、デバイスに入力装置を設ける必要がなく、簡単に且つ低コストでデバイスの設定を行うことができる。なお、ここでいう設定サービスとは、ＷｅｂページによるＵＩやＷｅｂサービスＡＰＩ等によりデバイスの初期設定（ＩＰアドレス、通信対象となるデバイスサーバ名等の設定）を行うものである。
【００２９】
これらの場合、デバイスサーバは、制御対象となるデバイスの環境設定サービスを行うためのデバイス環境設定手段を備え、クライアント端末は、デバイス環境設定手段による環境設定サービスを使用し、デバイスの環境設定を行うことが好ましい。
【００３０】
この構成によれば、デバイスサーバが提供するデバイスの環境設定サービスを使用することで、クライアント端末から制御対象となるデバイスの環境設定（デバイスの登録・削除、デバイス名・ＩＤの設定、デバイスのプロパティ設定等）を行うことができるため、デバイス毎に環境設定用の入力装置を設ける必要がなく、簡単に且つ低コストでデバイスの環境設定を行うことができる。なお、ここでいう環境設定サービスとは、ＷｅｂページによるＵＩやＷｅｂサービスＡＰＩ等によりデバイスの環境設定を行うものである。
【００３１】
これらの場合、アプリケーション実行サーバとデバイスサーバと、が単一のサーバとして構成されていることが好ましい。
【００３２】
この構成によれば、アプリケーション実行サーバとデバイスサーバとを１台のサーバで構成することで、アプリケーション実行サーバとデバイスサーバとの間のデータ通信が不要となり、システムの処理速度が向上する。また、低コストでシステムを構築することができると共に、システム管理が容易になる。
【００３３】
本発明のプログラムは、コンピュータを、上記に記載のネットワークシステムにおけるアプリケーション実行サーバまたはデバイスサーバの各手段として機能させるためのものであることを特徴とする。
【００３４】
このプログラムを用いることにより、クライアント端末にデバイスドライバをインストールすることなく、クライアント端末からの動作要求に基づきデバイスを動作させることができる。
【図面の簡単な説明】
【００３５】
【図１】本発明の一実施形態に係るＰＯＳシステムのシステム構成図である。
【図２】ＰＯＳシステムのブロック図である。
【図３】デバイスアダプタをソフトウェアで実現した場合のシステム構成図である。
【図４】ホスト装置から印刷装置を動作させる手順について説明するフローチャートである。
【図５】ホスト装置から印刷装置を動作させる手順について説明するフローチャートである。
【図６】ＰＯＳサーバとホスト装置との間の認証処理手順について説明するフローチャートである。
【図７】デバイスサーバとデバイスとの間の認証処理手順について説明するフローチャートである。
【図８】印刷装置でエラーが発生した場合の処理手順について説明するフローチャートである。
【図９】印刷装置を一時停止させる場合の処理手順について説明するフローチャートである。
【図１０】印刷装置を一時停止させる場合の処理手順について説明するフローチャートである。
【図１１】代理ＰＯＳサーバおよび代理デバイスサーバを導入した場合のシステム構成図である。
【発明を実施するための形態】
【００３６】
以下、添付の図面を参照して、本実施形態に係るネットワークシステムについて説明する。本実施形態に係るネットワークシステムは、クライアント端末にデバイスドライバをインストールすることなく、クライアント端末からのデバイス動作要求に基づき、対象となるデバイスを使用することができるシステムである。以下、本発明のネットワークシステムを、スーパーやコンビニエンス・ストア等の店舗にて使用されるＰＯＳシステムに適用した場合を例に挙げて説明する。なお、本発明のデバイスとは、キーボードデバイスやポインタデバイス以外の非標準デバイスを対象とする。
【００３７】
図１に示すように、本発明の一実施形態に係るＰＯＳシステム１（ネットワークシステム）は、オペレータによって商品情報が入力され、清算金額を算出する複数のＰＯＳ端末２（図１では２台）と、ＰＯＳ端末２とインターネット６で接続される共に、当該ＰＯＳ端末２を管理するＰＯＳサーバ３（アプリケーション実行サーバ）と、ＰＯＳ端末２とインターネット６で接続され、ＰＯＳ端末２の構成要素である各種デバイス５を管理するデバイスサーバ４と、から構成されている。ＰＯＳサーバ３およびデバイスサーバ４をインターネット６上に設置することで、ＰＯＳ端末２の設置場所に拘らずアクセスすることが可能となり、多数のユーザに同一品質のＰＯＳサービスおよびデバイスサービスを提供することができる。
【００３８】
ＰＯＳサーバ３は、いわゆるＷｅｂアプリケーションサーバとして構築され、図２に示すように、ＣＰＵ１１（Central Processing Unit）、ＲＯＭ１２（Read Only Memory）、ＲＡＭ１３（Random Access Memory）、ＨＤＤ１４（Hard Disk Drive）、入力デバイス１５、ディスプレイ１６、入出力インターフェース（Input/Output）１７、通信インターフェース１８を備え、ＲＯＭ１２内に記憶された制御プログラムに従って、ＲＡＭ１３内のデータの処理を行う。ＨＤＤ１４には、ＨＴＴＰサーバ２１、ＨＴＴＰクライアント２２、ＰＯＳアプリケーション２３（Ｗｅｂアプリケーション）、商品マスタ２４（データベース）が記憶されている。
【００３９】
ＰＯＳサーバ３は、ＨＴＴＰサーバ２１を介して、ハイパーテキスト転送プロトコル（ＨＴＴＰ）に基づいてＰＯＳ端末２（ホスト装置５１のブラウザ７１）と通信を行う。つまり、ＰＯＳサーバ３のＣＰＵ１１は、ＰＯＳ端末２（ホスト装置５１）からのデバイス動作を含むアプリケーション実行要求を、通信インターフェース１８を介してＨＴＴＰリクエストとして受信し（実行要求受信手段）、当該アプリケーション実行要求に対する実行結果をＨＴＭＬ形式やＸＭＬ形式のデータ（ページ）としてＰＯＳ端末２に送信（応答）する（第１応答データ送信手段）。この場合、ＣＰＵ１１は、ＰＯＳ端末２からデバイス動作を含むアプリケーション実行要求を受信すると、その応答データとして、動作対象となるデバイス５（例えば、印刷装置５４、スキャナ等の周辺機器）を特定するデバイス特定情報（当該デバイス５のＩＰアドレス）、デバイス５の動作を指定する動作情報（例えば、デバイス操作のためのＡＰＩ等の情報）等をタグとして挿入したデータ（ページ）、あるいは、後述するデバイスサーバ４での処理結果等をＨＴＭＬ形式、若しくはＸＭＬ形式のデータ（ページ）としてＰＯＳ端末２に送信する。
【００４０】
一方、デバイスサーバ４（ＨＴＴＰサーバ４１）との通信は、ＰＯＳサーバ３のＨＴＴＰクライアント２２を介して、ＳＯＡＰ（Simple Object Access Protocol）に基づいて行う（転送プロトコルはＨＴＴＰを使用）。ＰＯＳサーバ３のＣＰＵ１１は、上記のデバイス動作を含むアプリケーション実行要求に基づいてデバイス制御情報（対象となるデバイス５の情報）を生成し、当該デバイス制御情報と処理対象となるデータ（例えば、印刷データ等）と、をＨＴＴＰリクエストとしてデバイスサーバ４に送信する（デバイス制御情報送信手段）。そして、デバイスサーバ４から当該リクエストに対する処理結果を受信する。なお、デバイス制御情報は、ＸＭＬ形式（若しくは、ＨＴＭＬ形式）のデータとして生成される。
【００４１】
ＰＯＳアプリケーション２３は、ＰＯＳ端末２からの要求に基づいて決済処理を行うためのものである。例えば、ＰＯＳ端末２から商品の入力情報が送信されると、ＣＰＵ１１は、ＰＯＳアプリケーション２３を実行し、当該入力情報に基づいて、商品マスタ２４から商品コード、商品名、金額に関する情報を抽出し、レシートの印刷およびＰＯＳ端末２のカスタマディスプレイ５２の表示に用いる商品データを生成する。また、ＣＰＵ１１は、ＰＯＳ端末２からの入力情報や生成した上記商品データからレシートに印刷するための決済情報印刷データを生成する。これらの生成したデータは、ＰＯＳ端末２からのアプリケーション実行要求に伴い、上記のデバイス制御情報と共にデバイスサーバ４に送信される。なお、ここで生成される各データは、ＨＴＭＬ形式、若しくはＸＭＬ形式のデータである。
【００４２】
また、ＰＯＳサーバ３のＣＰＵ１１は、ＰＯＳ端末２を使用するユーザ（従業員）のアカウント管理を行い、ユーザの識別を行う。ＣＰＵ１１は、ＰＯＳ端末２から送信されるユーザＩＤおよびパスワードを受信し、ＰＯＳサーバ３に登録されているものと一致するか否かを認証する。認証が成功した場合は、ＰＯＳサーバ３へのアクセスを許可し、失敗した場合は、再度ユーザＩＤおよびパスワードを入力させる、あるいはアクセス拒否通知を送信するなどの処理を実行する。
【００４３】
デバイスサーバ４は、Ｗｅｂアプリケーションサーバとして構築され、図２に示すように、ＣＰＵ３１、ＲＯＭ３２、ＲＡＭ３３、ＨＤＤ３４、入力デバイス３５、ディスプレイ３６、入出力インターフェース３７、通信インターフェース３８を備え、ＲＯＭ３２内に記憶された制御プログラムに従って、ＲＡＭ３３内のデータの処理を行う。ＨＤＤ３４には、ＨＴＴＰサーバ４１、デバイス管理アプリケーション４２（Ｗｅｂアプリケーション）、デバイス管理データベース４３が記憶されている。
【００４４】
デバイスサーバ４は、ＨＴＴＰサーバ４１を介して、ＳＯＡＰに基づいてＰＯＳサーバ３と通信を行う（転送プロトコルはＨＴＴＰを使用）。つまり、デバイスサーバ４のＣＰＵ３１は、ＰＯＳサーバ３（ＨＴＴＰクライアント２２）からのデバイス制御情報および処理対象となるデータ（印刷データ等）を、通信インターフェース３８を介してＨＴＴＰリクエストとして受信する。そして、ＣＰＵ３１は、デバイス管理アプリケーション４２により、デバイス管理データベース４３を参照して当該デバイス制御情報を制御対象となるデバイス５に対応するようにコマンド変換し、その変換したコマンド変換情報を、デバイス別のキューに保存する（コマンド変換情報保存手段）。その後、ＣＰＵ３１は、ＰＯＳサーバ３に対し、コマンド変換情報の保存処理に伴う結果（保存の成功／失敗）をＸＭＬ形式のデータとして送信（応答）する（保存応答手段）。なお、デバイス管理データベース４３には、各デバイス５に対応するデバイスドライバの情報が記録されており、ＣＰＵ３１は、この情報に基づいて、デバイス制御情報を制御対象となるデバイス５に即したコマンドに変換する。また、ＰＯＳサーバ３からの各処理要求に対してジョブＩＤを付与し、例えば、印刷のキャンセル処理等が発生した場合に、当該ジョブＩＤを指定して処理を行う。
【００４５】
また、デバイスサーバ４は、ＨＴＴＰサーバ４１を介して、ＨＴＴＰに基づいてデバイス５（あるいは、デバイスアダプタ５３）とも通信を行う。デバイスサーバ４のＣＰＵ３１は、デバイス５（ＨＴＴＰクライアント８６、９６）からのデバイスコマンド要求をＨＴＴＰリクエストとして受信する。そして、当該デバイスコマンド要求に基づいて、対象となるデバイス５用のキューに保存したデバイス制御情報（コマンド等）を順番に取り出し、応答データとしてデバイス５に送信する。また、デバイス５側でデータ出力やデータの書き込みを行うための対象となるデータが有る場合には、当該データを対象となるデバイス５で処理可能な形式のデータに変換し、上記のデバイス制御情報と合わせて送信する。
【００４６】
また、デバイスサーバ４のＣＰＵ３１は、デバイス５のアカウント管理を行い、デバイス５の識別を行う。ＣＰＵ３１は、デバイス５から送信されるデバイスＩＤおよびパスワードを受信し、デバイスサーバ４に登録されているものと一致するか否かを認証する。認証が成功した場合は、デバイスサーバ４へのアクセスを許可し、失敗した場合は、デバイスサーバ４のアクセスを拒否すると共に、デバイス５に対してその旨を通知する。これにより、確実にデバイス５を識別することができ、誤って別のデバイス５にデータを送信する等のトラブルを防止することができる。
【００４７】
また、デバイスサーバ４は、自身が管理する各デバイス５の環境設定を行うための環境設定サービスを備え、ＰＯＳ端末２（ホスト装置５１）等にデバイス環境設定機能を提供する（デバイス環境設定手段）。この環境設定サービスでは、例えば、デバイス５の登録・削除、デバイス名・ＩＤの設定、デバイス５のプロパティ設定等を行うことができる。なお、この環境設定サービスは、例えば、ＷｅｂページによるＵＩ（User Interface）やＷｅｂサービスＡＰＩ（Application Program Interface）として提供することが好ましい。これにより、デバイス５毎に環境設定用の入力装置を設ける必要がなく、簡単に且つ低コストでデバイス５の設定を行うことができる。
【００４８】
一方、ＰＯＳ端末２は、ＰＯＳサーバ３から商品データを取得するホスト装置５１（クライアント端末）と、商品名や売上金額等を表示するカスタマディスプレイ５２（デバイス本体）と、カスタマディスプレイ５２をホスト装置５１にネットワーク接続するためのデバイスアダプタ５３と、レシートに決済情報を印刷する印刷装置５４と、を備え、これらはＬＡＮ５５により接続されている（図１参照）。
【００４９】
ホスト装置５１は、図２に示すように、ＣＰＵ６１、ＲＯＭ６２、ＲＡＭ６３、ＨＤＤ６４、入出力インターフェース６５、標準入力デバイス６６、通信インターフェース６７を備え、ＨＤＤ６４には、ブラウザ７１（Ｗｅｂブラウザ）が記憶されている。ＣＰＵ６１は、ＲＯＭ６２内に記憶された制御プログラムに従って、ＲＡＭ６３内のデータの処理を行う。標準入力デバイス６６としては、キーボード７２、バーコードスキャナ７３（バーコードリーダ）を備え、ＣＰＵ６１は、キーボード７２による入力およびバーコードスキャナ７３による読み取りによって、ＰＯＳサーバ３から商品コードや商品名、金額等に関する商品データを取得する。
【００５０】
ブラウザ７１は、プラグインモジュールを有さない単機能ブラウザ（標準ブラウザ）であり、ＣＰＵ６１は、このブラウザ７１を使用して、通信インターフェース６７を介してネットワーク接続（インターネット接続、またはＬＡＮ接続）されたＰＯＳサーバ３、およびカスタマディスプレイ５２（デバイスアダプタ５３）や印刷装置５４等のデバイス５と通信を行う。この通信は、ＨＴＴＰに基づいて行われ、ｈｔｔｐ（ｓ）：//ｘ．ｘ．ｘ．ｘ/のようなＵＲＩを指定することで、ＰＯＳサーバ３および各デバイス５と接続することにより行われる。
【００５１】
ＣＰＵ６１は、ブラウザ７１を使用して、標準入力デバイス６６からの入力情報に基づき、ＰＯＳサーバ３にアプリケーション実行要求を送信する。この時、ＰＯＳサーバ３からの応答データをカスタマディスプレイ５２に表示、あるいは印刷装置５４で印刷する等のデバイス動作を伴う場合は、上記アプリケーション実行要求にデバイス動作を伴う旨の情報を含めて送信する。そして、ＣＰＵ６１は、ＰＯＳサーバ３から動作対象となるデバイス５（カスタマディスプレイ５２や印刷装置５４等）を特定する情報（デバイス特定情報）、デバイス５の動作を指定する動作情報等をタグとして挿入したＨＴＭＬ形式、若しくはＸＭＬ形式の応答データを受信（取得）する。その後、ＣＰＵ６１は、受信した応答データに基づいて、対象となるデバイス５に対してデバイス動作要求を送信する（動作要求手段）。また、ＣＰＵ６１は、デバイス５からデバイス動作要求に対する動作結果を含む応答データを受信し（動作結果受信手段）、この応答データによりデバイスの動作結果を判別し、所定の処理を行う。つまり、デバイス５を動作させる場合、ホスト装置５１は、ブラウザ７１を使用して、デバイス動作要求（ＨＴＴＰリクエスト）をデバイス５に送信するだけでよく、従来のようにホスト装置５１自身でデバイス５を制御する必要がない。これにより、ホスト装置５１には、ホスト装置５１の環境（ＯＳの種類等）に依存したデバイスドライバが不要となる。また、ブラウザ７１は、単機能ブラウザでよく、プラグインモジュールを必要としないため、ホスト装置５１の環境に依存することなく、デバイス５にアクセスすることができる。
【００５２】
なお、デバイス５からの応答データには、デバイス動作の成功／失敗の情報のみならず、デバイス５が生成したデータ（画像データや、文書データ等）も含まれる。この場合、ホスト装置５１のＣＰＵ６１は、当該データをＰＯＳサーバ３に送信（アップロード）することが可能である。また、ＰＯＳサーバ３からの応答データ内に、デバイス５に関する情報（デバイス５のアドレス）を含むタグが挿入されているため、ＰＯＳサーバ３とデバイス５とのドメインが異なる場合でも、問題なくデバイス５にアクセスが可能（クロスサイトアクセスが可能）となり、ＰＯＳサーバ３とデバイス５とがシームレスに連携することができる。これにより、ユーザは、デバイス５に関する情報を意識することなくデバイス５にアクセスすることができる。なお、当該タグは、ＰＯＳサーバ３側で応答データ内に挿入しても良いし、あるいは、ホスト装置５１側でタグを生成し、動的に応答データに挿入するようにしてもよい。
【００５３】
カスタマディスプレイ５２は、標準入力デバイス６６により入力された（読み取られた）商品情報を表示し、顧客に対して購入商品の一覧、金額等を提示する。本実施形態で説明するカスタマディスプレイ５２は、単体ではネットワーク接続が不可能なものを想定しており、デバイスアダプタ５３を介して、ホスト装置５１とＬＡＮ５５で接続されると共に、デバイスサーバ４とインターネット６接続される。これにより、ネットワーク接続ができないデバイス５であっても、ホスト装置５１からネットワークを介してデバイス５を使用することができる。
【００５４】
デバイスアダプタ５３は、ＣＰＵ８１、記憶部８２および通信インターフェース８３を有し、記憶部８２には、ＨＴＴＰサーバ８５およびＨＴＴＰクライアント８６を備えている。デバイスアダプタ５３は、ＨＴＴＰサーバ８５を介して、ＨＴＴＰに基づいてホスト装置５１（ブラウザ７１）と通信を行う。ＣＰＵ８１は、通信インターフェース８３を介してＬＡＮ５５で接続されたホスト装置５１（ブラウザ７１）から、ＨＴＴＰリクエストとしてカスタマディスプレイ５２への表示要求（デバイス動作要求）を受信する。そして、ＣＰＵ８１は、ホスト装置５１から受信したカスタマディスプレイ５２への表示要求に基づき、ＨＴＴＰクライアント８６を介して、デバイスサーバ４（ＨＴＴＰサーバ４１）に対し、デバイスコマンド要求（ＨＴＴＰリクエスト）を送信する（コマンド要求送信手段）。この時、デバイスアダプタ５３（ＣＰＵ８１）は、自身のデバイスＩＤおよびパスワードを合わせて送信し、デバイスサーバ４による認証を受ける。そして、認証成功後、ＣＰＵ８１は、デバイスサーバ４から、当該要求に対応するデバイスコマンド（デバイス制御情報）および表示データを受信する。そして、ＣＰＵ８１は、このデバイスコマンドおよび表示データに基づいて、カスタマディスプレイ５２を制御して所望の文字や画像を表示させ（動作手段）、その結果（正常に表示できたか否か）を、ＨＴＴＰサーバ８５を介してホスト装置５１（ブラウザ７１）に送信する（動作結果送信手段）。
【００５５】
なお、上記では、デバイスアダプタ５３をハードウェアとして構成しているが、これに限らず、ソフトウェアとして構成してもよい。この場合、ソフトウェアデバイスアダプタ８７をホスト装置５１に組み込み、カスタマディスプレイ５２に所望の情報を表示させることが好ましい（図３参照）。
【００５６】
印刷装置５４は、レシート上に決済情報を印刷するレシートプリンタであり、ＣＰＵ９１、記憶部９２、印刷部９３および通信インターフェース９４を備え、通信インターフェース９４を介してホスト装置５１とＬＡＮ５５で接続されると共に、デバイスサーバ４とインターネット６で接続されている。また、記憶部９２には、ＨＴＴＰサーバ９５と、ＨＴＴＰクライアント９６と、を有している（図２参照）。
【００５７】
印刷装置５４は、ＨＴＴＰサーバ９５を介して、ＨＴＴＰに基づいてホスト装置５１（ブラウザ７１）と通信を行う。ＣＰＵ９１は、ＨＴＴＰサーバ９５により、通信インターフェース９４を介してＬＡＮ５５で接続されたホスト装置５１（ブラウザ７１）から、ＨＴＴＰリクエストとして印刷要求（デバイス動作要求）を受信する。そして、ＣＰＵ９１は、ホスト装置５１から受信した印刷要求に基づき、ＨＴＴＰクライアント９６を介して、デバイスサーバ４（ＨＴＴＰサーバ４１）に対し、デバイスコマンド要求（ＨＴＴＰリクエスト）を送信する（コマンド要求送信手段）。この時、印刷装置５４（ＣＰＵ９１）は、自身のデバイスＩＤおよびパスワードを合わせて送信し、デバイスサーバ４による認証を受ける。そして、認証成功後、ＣＰＵ９１は、デバイスサーバ４から、当該要求に対応するデバイスコマンド（デバイス制御情報）および印刷データを受信する。そして、ＣＰＵ９１は、このデバイスコマンドおよび印刷データに基づいて、印刷部９３を制御して印刷処理を行い（動作手段）、その印刷処理結果（成功／失敗）を、ＨＴＴＰサーバ９５を介してホスト装置５１（ブラウザ７１）に送信する（動作結果送信手段）。
【００５８】
また、印刷装置５４は、自身の初期設定を行うための設定サービスを備え、ホスト装置５１等にデバイス設定機能を提供する（デバイス設定手段）。この設定サービスは、例えば、ＷｅｂページによるＵＩ（User Interface）やＷｅｂサービスＡＰＩ（Application Program Interface）として提供することが好ましい。これにより、印刷装置５４（デバイス５）に入力装置を設ける必要がなく、簡単に且つ低コストで印刷装置５４（デバイス５）の設定を行うことができる。
【００５９】
次に、図４および図５を参照して、本発明のＰＯＳシステム１において、ホスト装置５１からデバイス５を動作させる手順について説明する。ここでは、対象となるデバイス５として、印刷装置５４を例に挙げ、入力された商品情報に基づいてレシートを印刷する手順について説明する。まず、ホスト装置５１がＰＯＳサーバ３に接続すると、ＰＯＳサーバ３は、ホスト装置５１を使用するユーザの認証処理を行う（Ｓ０１，詳細は後述）。ユーザ認証終了後、ホスト装置５１は、標準入力デバイス６６（キーボード７２やバーコードスキャナ７３）により商品情報を入力（読み取り）し、ＰＯＳサーバ３に対して入力した商品情報に基づくレシート印刷要求（アプリケーション実行要求）を送信する（Ｓ０２）。このレシート印刷要求は、ホスト装置５１のブラウザ７１から、ＨＴＴＰリクエストとしてＰＯＳサーバ３（ＨＴＴＰサーバ２１）に送信される。
【００６０】
ＰＯＳサーバ３は、レシート印刷要求を受信すると（Ｓ０３，実行要求受信手段）、当該要求に基づき、ＰＯＳアプリケーション２３を実行してＸＭＬ形式のデバイス制御情報（印刷装置５４に関する情報）および印刷対象となる決済情報印刷データを生成し（Ｓ０４）、デバイスサーバ４に送信する（Ｓ０５，デバイス制御情報送信手段）。デバイスサーバ４は、デバイス制御情報および決済情報印刷データを受信し（Ｓ０６）、当該デバイス制御情報を制御対象となる印刷装置５４に対応するようにコマンド変換してコマンド変換情報（デバイスコマンド）を生成し（Ｓ０７）、当該印刷装置５４用のキューに保存する（Ｓ０８，コマンド変換情報保存手段）。そして、デバイスサーバ４は、ＰＯＳサーバ３に対し、この保存処理に伴う結果（保存の成功／失敗）を送信する（Ｓ０９，保存応答手段）。
【００６１】
ＰＯＳサーバ３は、デバイスサーバ４から処理結果を受信すると（Ｓ１０）、ＨＴＭＬ形式（若しくはＸＭＬ形式）の第１応答データ（ページ）を生成する（Ｓ１１）。この第１応答データには、印刷装置５４の特定情報（ＩＰアドレス等）、印刷装置５４の起動に関する情報（起動用のＡＰＩ名等）、印刷装置５４からのコールバックを受けるためのＪａｖａＳｃｒｉｐｔ（登録商標）の関数が埋め込まれている。そして、ＰＯＳサーバ３は、ホスト装置５１に対して当該第１応答データ（ページ）を送信する（Ｓ１２，第１応答データ送信手段）。
【００６２】
ホスト装置５１（ブラウザ７１）は、第１応答データを受信し（Ｓ１３）、当該第１応答データに基づいて、印刷装置５４（ＨＴＴＰサーバ９５）に対してＨＴＴＰリクエストとして印刷装置起動要求（デバイス起動要求）を送信する（Ｓ１４，動作要求手段）。
【００６３】
印刷装置５４（ＨＴＴＰサーバ９５）は、ホスト装置５１からの印刷装置起動要求を受信し（Ｓ１５）、これに伴い、デバイスサーバ４に対して自身のデバイスＩＤおよびパスワード送信する。そして、デバイスサーバ４は、受信した印刷装置５４のＩＤとパスワードに基づいて印刷装置５４の認証処理（デバイス認証）を行う（Ｓ１６，詳細は後述）。デバイス認証終了後、印刷装置５４（ＨＴＴＰクライアント９６）は、デバイスサーバ４（ＨＴＴＰサーバ４１）に対し、ＨＴＴＰリクエストとしてデバイスコマンド要求を送信する（Ｓ１７，コマンド要求送信手段）。
【００６４】
デバイスサーバ４は、デバイスコマンド要求を受信し（Ｓ１８）、この要求に基づいて、保存済みのコマンド変換情報（デバイスコマンド）を、当該印刷装置５４用のキューから取り出すと共に、印刷対象である決済情報印刷データを印刷装置５４で出力可能な形式のデータに変換して印刷装置５４に送信する（Ｓ１９）。印刷装置５４は、デバイスコマンドおよび決済情報印刷データを受信し（Ｓ２０）、当該デバイスコマンドに基づいて、印刷部９３を動作させて印刷処理を行う（Ｓ２１，動作手段）。その後、印刷装置５４は、印刷処理の実行結果（成功／失敗等）および印刷装置５４の状態に関する情報を第２応答データとして生成する（Ｓ２２）。この第２応答データは、ＪＳＯＮＰ（JSON with Padding）によりＪａｖａＳｃｒｉｐｔ（登録商標）のコールバック関数として生成される。そして、印刷装置５４は、当該第２応答データをホスト装置５１に送信する（Ｓ２３，動作結果送信手段）。
【００６５】
第２応答データを受信したホスト装置５１は（Ｓ２４，動作結果受信手段）、当該第２応答データに基づき、印刷装置５４の動作結果を判別する（Ｓ２５）。具体的には、ホスト装置５１は、第２応答データのＪａｖａＳｃｒｉｐｔ（登録商標）を実行し、コールバック関数を呼び出すことで、印刷装置５４の動作結果を取得し、判別する。印刷処理が正常に終了した場合（Ｓ２６：Ｙｅｓ）、ホスト装置５１は、印刷装置５４での印刷処理が正常終了した旨をＰＯＳサーバ３に通知し（Ｓ２７）、ＰＯＳサーバ３は、その通知を受信する（Ｓ２８）。一方、印刷処理が正常終了しなかった場合（Ｓ２６：Ｎｏ）、ホスト装置５１は、印刷装置５４に、再度、印刷装置起動要求を送信したり、あるいは印刷装置５４の状態に基づいたエラー処理を行う（Ｓ２９）。
【００６６】
次に、図６を参照して、ホスト装置５１を使用するユーザの認証の手順について説明する。まず、ホスト装置５１は、ユーザによりユーザＩＤおよびパスワード（以下、ユーザ認証情報）が入力されると（Ｓ３１）、当該ユーザ認証情報をＰＯＳサーバ３に送信する（Ｓ３２）。ユーザ認証情報を受信したＰＯＳサーバ３は、ユーザ認証用データベース（図示省略）を参照し、当該ユーザＩＤに対するパスワードが登録されたものと一致するか認証を行う（Ｓ３３）。認証が成功した場合（Ｓ３４：Ｙｅｓ）、ＰＯＳサーバ３は、当該ユーザ（ホスト装置５１）にＰＯＳアプリケーション２３の使用を許可する（Ｓ３５）。一方、認証が失敗した場合（Ｓ３４：Ｎｏ）、ＰＯＳサーバ３は、ホスト装置５１（ユーザ）に対してその旨を通知し（例えば、ユーザ認証情報の入力画面を再表示する等）、ホスト装置５１（ユーザ）は、再度ユーザＩＤおよびパスワードを入力し（Ｓ３６）、再入力したユーザＩＤおよびパスワードをＰＯＳサーバ３に送信する（Ｓ３２）。なお、パスワードを連続して所定回数間違って入力した場合、ＰＯＳサーバ３への接続を切断したり、あるいは、当該ユーザＩＤを無効にする等の処理をすることが好ましい。
【００６７】
次に、図７を参照して、デバイスサーバ４にアクセスするデバイス５（あるいは、デバイスアダプタ５３）の認証の手順について説明する。まず、デバイス５は、デバイスＩＤおよびパスワード（以下、デバイス認証情報）をデバイスサーバ４に送信する（Ｓ４１）。当該デバイス認証情報を受信したデバイスサーバ４は、デバイス認証用データベース（図示省略）を参照し、当該デバイスＩＤに対するパスワードが登録されたものと一致するか認証を行う（Ｓ４２）。認証が成功した場合（Ｓ４３：Ｙｅｓ）、デバイスサーバ４は、当該デバイス５に自身（デバイスサーバ４）へのアクセスを許可する（Ｓ４４）。一方、認証が失敗した場合（Ｓ４３：Ｎｏ）、デバイスサーバ４は、デバイス５に対してその旨を通知する。認証失敗の通知を受けたデバイス５は（Ｓ４５）、ホスト装置５１に対し、認証が失敗してデバイスサーバ４にアクセスできない旨を通知し（Ｓ４６）、ホスト装置５１は、その通知に基づいてエラー処理を行う（Ｓ４７）。
【００６８】
次に、図８を参照して、印刷装置５４に障害が発生した場合の動作手順について説明する。まず、印刷装置５４は、エラー（障害）を検出すると（Ｓ５１）、印刷装置５４は、自身の印刷動作を停止する（Ｓ５２）。そして、印刷装置５４は、自身のイベント情報やステータス情報（以下、デバイス情報）等をＨＴＴＰリクエストとしてデバイスサーバ４に送信する（Ｓ５３）。デバイスサーバ４は、デバイス情報を受信し（Ｓ５４）、当該デバイス情報に基づいて、デバイス管理アプリケーション４２により、当該印刷装置５４の状態（ステータス）を変更する等の処理を行うと共に（Ｓ５５）、デバイス情報を受信した旨の通知（受信完了通知）を印刷装置５４に送信する（Ｓ５６）。受信完了通知を受信した印刷装置５４は、自身の動作を停止させたまま、ホスト装置５１からのデバイス動作要求に対する応答データを、ＪＳＯＮＰ（JSON with Padding）によりＪａｖａＳｃｒｉｐｔ（登録商標）のコールバック関数として生成し（Ｓ５７）、当該応答データをホスト装置５１に送信する（Ｓ５８，動作結果送信手段）。ホスト装置５１は、印刷装置５４からの応答データを受信すると（Ｓ５９，動作結果受信手段）、コールバック関数を呼び出して印刷装置５４の状態を判別し（Ｓ６０）、その状態（エラー内容）に応じたエラー処理を行う（Ｓ６１）。
【００６９】
次に、図９および図１０を参照して、印刷装置５４の印刷動作の一時停止動作、復旧動作、中止動作の動作手順について説明する。なお、これらの動作手順は、送受信するデータの内容が異なるだけで、基本的に同一であるため、ここでは、印刷装置５４の一時停止動作について説明する。
【００７０】
まず、ホスト装置５１は、ブラウザ７１を使用し、ＰＯＳサーバ３（ＨＴＴＰサーバ２１）に対して、ＨＴＴＰリクエストとして印刷動作一時停止要求（アプリケーション実行要求）を送信する（Ｓ７１）。ＰＯＳサーバ３は、印刷動作一時停止要求を受信し（Ｓ７２，実行要求受信手段）、当該印刷動作一時停止要求に基づいて、ＰＯＳアプリケーション２３を実行してＨＴＭＬ形式（若しくはＸＭＬ形式）の第１応答データ（ページ）を生成する（Ｓ７３）。この第１応答データには、印刷装置５４の特定情報（ＩＰアドレス等）、印刷装置５４の一時停止に関する情報（一時停止用のＡＰＩ名等）、印刷装置５４からのコールバックを受けるためのＪａｖａＳｃｒｉｐｔ（登録商標）の関数が埋め込まれている。そして、ＰＯＳサーバ３は、ホスト装置５１に対して当該第１応答データ（ページ）を送信する（Ｓ７４，第１応答データ送信手段）。
【００７１】
ホスト装置５１（ブラウザ７１）は、第１応答データを受信し（Ｓ７５）、当該第１応答データに基づいて、印刷装置５４（ＨＴＴＰサーバ９５）に対してＨＴＴＰリクエストとして印刷装置一時停止要求（デバイス動作要求）送信する（Ｓ７６，動作要求手段）。印刷装置５４は、ホスト装置５１からの印刷装置一時停止要求を受信すると（Ｓ７７）、自身のイベント情報やステータス情報（以下、デバイス情報）等をＨＴＴＰリクエストとしてデバイスサーバ４に送信する（Ｓ７８）。デバイスサーバ４は、デバイス情報を受信し（Ｓ７９）、当該デバイス情報に基づいて、デバイス管理アプリケーション４２により、当該印刷装置５４の状態（ステータス）を一時停止状態に変更する等の処理を行うと共に（Ｓ８０）、デバイス情報を受信した旨の通知および一時停止用のデバイスコマンド（応答通知）を印刷装置５４に送信する（Ｓ８１）。応答通知を受信した印刷装置５４は、自身の動作を一時停止させ（Ｓ８２，動作手段）、一時停止処理の結果（成功／失敗等）および印刷装置５４の状態（ステータス）に関する情報を第２応答データとして生成する（Ｓ８３）。この第２応答データは、ＪＳＯＮＰ（JSON with Padding）によりＪａｖａＳｃｒｉｐｔ（登録商標）のコールバック関数として生成される。そして、印刷装置５４は、当該第２応答データをホスト装置５１に送信する（Ｓ８４，動作結果送信手段）。
【００７２】
第２応答データを受信したホスト装置５１は（Ｓ８５，動作結果受信手段）、当該第２応答データに基づき、印刷装置５４の動作結果を判別する（Ｓ８６）。具体的には、ホスト装置５１は、第２応答データのＪａｖａＳｃｒｉｐｔ（登録商標）を実行し、コールバック関数を呼び出すことで、印刷装置５４の動作結果を取得し、判別する。一時停止処理が正常に終了した場合（Ｓ８７：Ｙｅｓ）、ホスト装置５１は、印刷装置５４の一時停止に係る処理を完了する（Ｓ８８）。一方、一時停止処理が正常終了しなかった場合（Ｓ８７：Ｎｏ）、ホスト装置５１は、印刷装置５４に、再度、印刷装置一時停止要求を送信したり、あるいは印刷装置５４の状態に基づいたエラー処理を行う（Ｓ８９）。なお、印刷動作を中止させる場合、印刷装置５４およびデバイスサーバ４は、上記の処理に合わせて、中止対象となる印刷動作の印刷ジョブを削除する処理を行う。
【００７３】
以上のように、本実施形態によれば、ホスト装置５１（クライアント端末）からデバイス５を動作させる場合、デバイスサーバ４が各デバイス５の制御情報を管理すると共に、各デバイス５のデバイスドライバの役目を果たすため、ホスト装置５１にデバイスドライバをインストールすることなく、デバイス５を使用することができる。また、ホスト装置５１にデバイスドライバが不要になるため、デバイス５の使用に係るホスト装置５１の処理の負荷を軽減することができる。さらに、デバイスメーカにとっては、各ホスト装置５１のＯＳの種類毎にデバイスドライバを作成する必要がなくなり、これに係る開発コストを削減できるといった効果がある。
【００７４】
また、各ＰＯＳ端末２（ホスト装置５１）にＰＯＳアプリケーション２３やデバイスドライバをインストールする必要がないため、ＰＯＳ端末２（ホスト装置５１）の低廉化を図ることができると共に、保守・管理に要する時間やコストを軽減できる。
【００７５】
なお、図１１に示すように、上述したＰＯＳシステム１に、ＰＯＳサーバ３が異常状態の場合にホスト装置５１からの処理要求を代理実行する代理ＰＯＳサーバ１０１（アプリケーション代理実行サーバ）と、デバイスサーバ４が異常状態の場合にデバイス５からの処理要求を代理実行する代理デバイスサーバ１０２と、を導入し、ＰＯＳサーバ３、デバイスサーバ４およびＰＯＳ端末２を同一ＬＡＮ５５上に、代理ＰＯＳサーバ１０１および代理デバイスサーバ１０２をインターネット６上に設置するようにしてもよい。この場合、ＰＯＳサーバ３と代理ＰＯＳサーバ１０１との間で、ホスト装置５１からの実行要求の処理状況、商品マスタ２４の情報、ユーザ認証情報（ユーザＩＤやパスワード）等のデータの同期を所定間隔で取り、ＰＯＳサーバ３が異常状態になり、代理ＰＯＳサーバ１０１に処理が移行した場合においても、確実に処理が引き継がれるようにする。また、デバイスサーバ４と代理デバイスサーバ１０２との間でも、ＰＯＳサーバ３（代理ＰＯＳサーバ１０１）からのデバイス制御情報、デバイス５からの要求に対する処理状況、デバイス管理データベース４３の情報、デバイス認証情報（デバイスＩＤやパスワード）等のデータの同期を所定間隔で取り、デバイスサーバ４が異常状態になり、代理デバイスサーバ１０２に処理が移行した場合においても、確実に処理が引き継がれるようにする。これにより、ホスト装置５１は、ＰＯＳサーバ３に実行要求した場合の実行結果と同一の実行結果を代理ＰＯＳサーバ１０１から取得することができる。一方、デバイス５は、デバイスサーバ４にコマンド要求した場合の応答結果（コマンド変換情報や印刷データ）と同一の応答結果を代理デバイスサーバ１０２から取得することができる。つまり、結果として、ホスト装置５１から各デバイス５を確実に動作させることができる。
【００７６】
また、代理ＰＯＳサーバ１０１をＰＯＳサーバ３のバックアップサーバとして、代理デバイスサーバ１０２をデバイスサーバ４のバックアップとして使用することができるため、ホスト装置５１はＰＯＳサーバ３の不具合を意識することなく、アプリケーションの実行結果を取得することができると共に、デバイスサーバ４の状態を意識することなく、確実にデバイス５を動作させることができる。なお、異常状態とは、正常状態でない状態であり、例えば、ＰＯＳサーバ３のＰＯＳアプリケーション２３や、デバイスサーバ４のデバイス管理アプリケーション４２からの応答がない場合や、ＰＯＳサーバ３またはデバイスサーバ４が故障した場合をいう。また、ＰＯＳサーバ３、デバイスサーバ４およびＰＯＳ端末２（ホスト装置５１とデバイス５）を同一のＬＡＮ５５に設置するため、ＰＯＳサーバ３およびデバイスサーバ４がインターネット６上に設置される場合と比べ、応答速度を早くすることができ、ＰＯＳシステム１全体の処理効率を向上させることができる。
【００７７】
また、本実施形態では、ＰＯＳサーバ３とデバイスサーバ４と、を別個のサーバで構成しているが、これに限らず、ＰＯＳサーバ３とデバイスサーバ４と、を単一のサーバとして構成してもよい。これにより、ＰＯＳサーバ３とデバイスサーバとの間のデータ通信が不要となり、ＰＯＳシステム１全体の処理速度が向上する。また、低コストでシステムを構築することができると共に、システム管理が容易になる。
【００７８】
また、本実施形態では、デバイス５として、カスタマディスプレイ５２や印刷装置５４（レシート印刷装置）を例に挙げて説明したが、これに限らず、家庭用プリンタ、イメージスキャナ、各種ストレージ等のコンシューマ向けデバイス、オフィス向けデバイスおよび業務用デバイスに適用することが可能である。
また、上述した実施例のＰＯＳシステム１は一例であり、用途は限定されない。例えば、オフィスにおいてレーザプリンタとイメージスキャナを使用した帳票入出力システム等に、本発明は適用可能である。
【００７９】
また、デバイスサーバ４は、自身が管理するデバイス５の使用を単一のＰＯＳサーバ３（アプリケーション実行サーバ）に限定する機能を有することが好ましい（デバイス排他制御手段）。この場合、ＰＯＳサーバ３（アプリケーション実行サーバ）は、デバイスサーバ４に対し、デバイス５を専有して使用するためのデバイス専有要求を送信し（デバイス専有要求手段）、デバイスサーバ４は、デバイス専有要求に基づき、当該デバイス５の使用を当該ＰＯＳサーバ３（アプリケーション実行サーバ）に限定する。そして、専有されたデバイス５に対して、他のＰＯＳサーバ３（アプリケーション実行サーバ）から使用要求が有った場合、当該デバイス５の使用を禁止する旨を通知する（通知手段）。これにより、例えば、ＰＯＳサーバ３（アプリケーション実行サーバ）で、デバイス動作を伴う優先度の高い処理を行う場合等、該当するデバイス５を専有することで処理遅延を防止できる。
【００８０】
また、上記の例に示した、ＰＯＳシステム１の機能をプログラムとして提供することも可能である。また、そのプログラムを記憶媒体（図示省略）に格納して提供することも可能である。記録媒体としては、ＣＤ−ＲＯＭ、フラッシュＲＯＭ、メモリカード（コンパクトフラッシュ（登録商標）、スマートメディア、メモリースティック等）、コンパクトディスク、光磁気ディスク、デジタルバーサタイルディスクおよびフレキシブルディスク等を利用することができる。
【００８１】
また、上述した実施例によらず、ＰＯＳシステム１の装置構成や処理工程等について、本発明の要旨を逸脱しない範囲で、適宜変更も可能である。
【符号の説明】
【００８２】
１…ＰＯＳシステム  ２…ＰＯＳ端末  ３…ＰＯＳサーバ  ４…デバイスサーバ  ５…デバイス  ６…インターネット  ２１、４１、８５、９５…ＨＴＴＰサーバ  ２２、８６、９６…ＨＴＴＰクライアント  ５１…ホスト装置  ５２…カスタマディスプレイ  ５３…デバイスアダプタ  ５４…印刷装置  ５５…ＬＡＮ  ７１…ブラウザ  １０１…代理ＰＯＳサーバ  １０２…代理デバイスサーバ。
【図１】
2014186749.tif 000003
【図２】
2014186749.tif 000004
【図３】
2014186749.tif 000005
【図４】
2014186749.tif 000006
【図５】
2014186749.tif 000007
【図６】
2014186749.tif 000008
【図７】
2014186749.tif 000009
【図８】
2014186749.tif 000010
【図９】
2014186749.tif 000011
【図１０】
2014186749.tif 000012
【図１１】
2014186749.tif 000013
【手続補正書】
【提出日】平成26年7月7日(2014.7.7)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ホスト装置、ＰＯＳサーバ、デバイスサーバ及び印刷装置を有するＰＯＳシステムの制御方法であって、
前記ホスト装置が、ブラウザを使用して、ＰＯＳアプリケーションの実行を要求するアプリケーション実行要求及び前記印刷装置の動作を要求する動作要求を前記ＰＯＳサーバに送信し、
前記ＰＯＳサーバが、前記ホスト装置から送信された前記アプリケーション実行要求及び動作要求を受信し、前記アプリケーション実行要求に基づいて決済処理を行う前記ＰＯＳアプリケーションを実行して決済情報印刷データ及び制御情報を生成し、生成された前記決済情報印刷データ及び前記制御情報を前記デバイスサーバに送信し、
前記デバイスサーバが、前記ＰＯＳサーバから送信された前記決済情報印刷データ及び前記制御情報を受信し、前記制御情報を前記印刷装置に対応するコマンド変換情報に変換し、前記コマンド変換情報を保存し、前記ホスト装置から送信された、前記印刷装置の起動を要求する印刷装置起動要求に基づくデバイスコマンド要求に応じて、前記決済情報印刷データ及び前記コマンド変換情報を前記印刷装置に送信し、
前記印刷装置が、前記デバイスサーバから送信された前記決済情報印刷データ及び前記コマンド変換情報を受信し、前記決済情報印刷データ及び前記コマンド変換情報に基づいてレシートに決済情報を印刷する
ＰＯＳシステムの制御方法。
【請求項２】
前記デバイスサーバが、前記印刷装置に対応するデバイスドライバの情報を記録し、前記デバイスドライバの情報に基づいて、前記制御情報を前記コマンド変換情報に変換する請求項１に記載のＰＯＳシステムの制御方法。
【請求項３】
前記デバイスサーバが、前記コマンド変換情報の保存処理に伴う結果をＰＯＳサーバに送信し、
前記ＰＯＳサーバが、前記コマンド変換情報の保存処理に伴う結果を受信した後、前記印刷装置の特定情報を含む応答データを生成し、前記ホスト装置に送信する請求項１または２に記載のＰＯＳシステムの制御方法。
【請求項４】
前記ホスト装置が、前記応答データを受信し、前記応答データに基づいて前記印刷装置へ前記印刷装置起動要求を送信する請求項３に記載のＰＯＳシステムの制御方法。
【請求項５】
前記印刷装置が、前記印刷装置起動要求に基づいて、前記デバイスサーバに前記コマンド変換情報を要求するデバイスコマンド要求を送信し、
前記デバイスサーバは、前記デバイスコマンド要求に基づいて、前記コマンド変換情報及び前記決済情報印刷データを前記印刷装置に送信する請求項４に記載のＰＯＳシステムの制御方法。
【請求項６】
前記印刷装置が、前記コマンド変換情報に基づいて、印刷処理を行い、前記印刷処理の実行結果を前記ホスト装置に送信する請求項５に記載のＰＯＳシステムの制御方法。
【請求項７】
前記デバイスサーバが、前記印刷装置の環境設定を行う環境設定サービス、及び前記ホスト装置に前記印刷装置の環境設定機能を提供するデバイス環境設定手段を有する請求項１乃至６のいずれか１項に記載のＰＯＳシステムの制御方法。
【請求項８】
前記ホスト端末と接続して、表示を行うディスプレイを有し、
前記ホスト装置が、前記ディスプレイの表示要求を送信し、
前記デバイスサーバが、前記表示要求に基づいて、前記ディスプレイの制御情報及び表示データを送信し、
前記ディスプレイが、前記表示データを表示する請求項１乃至７のいずれか１項に記載のＰＯＳシステムの制御方法。