説明

ネットワークシステム、ネットワークシステムの制御方法およびプログラム

【課題】クライアントにデバイスドライバをインストールすることなくデバイスを制御することができるネットワークシステムを提供する。
【解決手段】クライアント端末31は、アプリケーション実行サーバ3に対し、デバイス5の動作を伴うアプリケーション実行要求を送信する実行要求手段と、アプリケーション実行要求に対する実行結果を含む第1応答データを受信する実行結果受信手段と、第1応答データの受信に伴って、デバイス5に対しデバイス動作要求を送信する動作要求手段と、デバイス動作要求に対する動作結果を含む第2応答データを受信する動作結果受信手段と、を備え、デバイス5は、クライアント端末31からのデバイス動作要求を解釈し、デバイス5を動作させるファームウェア66(86)を備え、ファームウェア66(86)は、デバイスの動作結果をクライアント端末31に送信する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、LAN、インターネット等のネットワークを介してデバイスの制御を行うネットワークシステムおよびプログラムに関するものである。
【背景技術】
【0002】
従来、一般的にコンピュータからデバイスを使用する場合、デバイス製造メーカより提供される特定のOS専用のデバイスドライバをコンピュータにインストールしてデバイス(プリンタ、スキャナ等の周辺デバイス)を動作させる。また、多数のコンピュータによりデバイスを共有する場合においては、デバイスに対応するデバイスドライバを、ネットワーク上に設けられたサーバ(集中ドライバストレージ)により一括管理し、各コンピュータ(クライアント)に配布する方法が知られている(例えば、特許文献1参照)。この場合、サーバでは、デバイスドライバをWindows2000(登録商標)やWindowsXP(登録商標)等のOS毎に管理すると共に、当該デバイスドライバのバージョン(版数)の管理を行い、各クライアントのOSに応じてデバイスドライバを配布することで、各クライアントからデバイス(共有デバイス)を使用可能にしている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2004−303252号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし、上記では、デバイスを使用するためには、各クライアントのOSの種類に対応したデバイスドライバをインストールする必要がある。また、デバイスドライバはOSに依存して動作するため、クライアントの処理負荷が大きくなる。さらに、デバイスメーカ側も、各クライアントのOSの種類ごとに、対応したデバイスドライバを開発する必要があり、開発コストが大きくなるという問題がある。
【0005】
本発明は、上記の問題点に鑑みたものであり、クライアントにデバイスドライバをインストールすることなくデバイスを制御することができるネットワークシステムおよびプログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明のネットワークシステムは、アプリケーションを実行する1以上のアプリケーション実行サーバと、当該アプリケーション実行サーバにアプリケーションの実行を要求する1以上のクライアント端末と、当該クライアント端末の操作に伴って動作する1以上のデバイスと、を有し、少なくともアプリケーション実行サーバとクライアント端末、クライアント端末とデバイスがそれぞれネットワーク接続されたネットワークシステムであって、クライアント端末は、アプリケーション実行サーバに対し、デバイスの動作を伴うアプリケーション実行要求を送信する実行要求手段と、アプリケーション実行要求に対するアプリケーション実行サーバの実行結果を含む第1応答データを受信する実行結果受信手段と、第1応答データの受信に伴って、デバイスに対しデバイス動作要求を送信する動作要求手段と、デバイス動作要求に対するデバイスの動作結果を含む第2応答データを受信する動作結果受信手段と、を備え、デバイスは、クライアント端末からのデバイス動作要求を解釈し、デバイスに対応したコマンドに変換してデバイスを動作させるファームウェアを備え、ファームウェアは、デバイスの動作結果をクライアント端末に送信することを特徴とする。
【0007】
この構成によれば、クライアント端末が、デバイス動作を伴うアプリケーション実行要求を送信すると、アプリケーション実行サーバは当該アプリケーション実行要求に対する実行結果を第1応答データとしてクライアント端末に送信する。そして、クライアント端末は、第1応答データに伴ってデバイスに動作要求を送信し、デバイスは、ファームウェア(デバイスドライバに相当する機能を含む)により当該動作要求を解釈して自身を動作させると共に、その動作結果をクライアント端末に返信する。これにより、クライアント端末にデバイスドライバをインストールすることなく、クライアント端末からの動作要求に基づき、デバイスを使用することができる。また、クライアント端末にデバイスドライバが不要になるため、デバイスの使用に係るクライアント端末の処理の負荷を軽減することができる。さらに、デバイスメーカにとっては、各クライアント端末のOSの種類毎にデバイスドライバを作成する必要がなくなり、これに係る開発コストを削減できるといった効果がある。
【0008】
この場合、アプリケーション実行サーバおよびデバイスは、HTTPサーバを備え、クライアント端末は、プラグイン機能を有しない単機能ブラウザを備え、実行要求手段、実行結果受信手段および動作要求手段は、アプリケーション実行サーバおよびデバイスと、単機能ブラウザとの間で、ハイパーテキスト転送プロトコルに基づいて通信を行うことが好ましい。
【0009】
この構成によれば、クライアント端末は、単機能ブラウザを使用して、アプリケーション実行サーバおよびデバイスとハイパーテキスト転送プロトコル(HTTP)に基づいて通信を行うことで、クライアント端末の環境(クライアント端末のOSの種類等)に依存することなく、デバイス(例えば、プリンタ、スキャナ等の周辺機器)にアクセスすることができる。また、クライアント端末はOSの種類やブラウザに依存したプラグインモジュールが不要であるため、例えば、プラグインモジュールが提供されておらず、デバイスが使用できないといったことがなくなる。なお、ここで言う単機能ブラウザとは、プラグインモジュールをインストールしていない標準のブラウザである。
【0010】
これらの場合、第1応答データには、少なくともデバイスを特定するデバイス特定情報がさらに含まれており、動作要求手段は、第1応答データに含まれる情報に基づいて、デバイス動作要求を送信することが好ましい。
【0011】
また、これらの場合、動作要求手段は、受信した第1応答データに、少なくともデバイスを特定するデバイス特定情報を含めたデバイス動作要求を送信することが好ましい。
【0012】
これらの構成によれば、アプリケーション実行サーバにより受信したデバイス特定情報を含む第1応答データ、またはクライアント端末により動的にデバイス特定情報を含めた第1応答データに基づいて、デバイス動作要求を送信する。これにより、アプリケーション実行サーバとデバイスとのドメインが異なる場合においても、アプリケーション実行サーバとデバイスとがシームレスに連携することができる。また、クライアント端末を使用するユーザは、デバイスに関する情報を意識することなくデバイスを使用することができる。
【0013】
これらの場合、デバイスは、デバイス本体と、ファームウェアを有するデバイスアダプタと、で構成され、デバイス本体は、デバイスアダプタを介してクライアント端末と接続され、デバイスアダプタは、クライアント端末からのデバイス動作要求に基づき、デバイス本体を制御することが好ましい。
【0014】
この構成によれば、デバイスアダプタを介してデバイス本体とクライアント端末と、をネットワーク接続すると共に、デバイスアダプタによりクライアント端末からのデバイス動作要求等を受信してデバイス本体の動作制御ができる。これにより、デバイス本体が直接ネットワークに接続できない場合でも、クライアント端末からネットワークを介してデバイスを使用することができる。
【0015】
これらの場合、アプリケーション実行サーバとクライアント端末とは、インターネット接続されていることが好ましい。
【0016】
この構成によれば、アプリケーション実行サーバをインターネット上に配置することで、クライアント端末の設置場所に拘らず、アプリケーション実行サーバにアクセスし、使用することができる。
【0017】
これらの場合、アプリケーション実行サーバは、POSサーバとして機能し、クライアント端末は、POS端末として機能することが好ましい。
【0018】
この構成によれば、各POS端末にアプリケーションやデバイスドライバをインストールする必要がないため、POS端末の低廉化を図ることができると共に、保守・管理に要する時間やコストを軽減できる。
【0019】
これらの場合、アプリケーション実行サーバに接続されると共に、当該アプリケーション実行サーバと同様の処理を行うアプリケーション代理実行サーバを、さらに備え、アプリケーション実行サーバは、クライアント端末およびデバイスと接続され、アプリケーション代理実行サーバは、アプリケーション実行サーバが異常状態となった場合、アプリケーション実行サーバの処理を代理実行することが好ましい。
【0020】
この構成によれば、アプリケーション実行サーバが異常状態の場合、アプリケーション代理実行サーバにより、クライアント端末からの処理依頼を代理実行することができる。これにより、アプリケーション代理サーバをアプリケーション実行サーバのバックアップサーバとして使用することができると共に、クライアント端末はアプリケーション実行サーバの不具合を意識することなく、アプリケーションの実行結果を取得することができる。なお、異常状態とは、正常状態でない状態であり、例えば、アプリケーション実行サーバのアプリケーションからの応答がない場合や、アプリケーション実行サーバが故障した場合をいう。
【0021】
この場合、アプリケーション実行サーバと、アプリケーション代理実行サーバとの間で、アプリケーションに係る情報の同期を取ることが好ましい。
【0022】
この構成によれば、アプリケーション実行サーバとアプリケーション代理実行サーバの同期を取ることができ、例えば、アプリケーション実行サーバが異常状態になった場合でも、クライアント端末は、アプリケーション実行サーバに実行要求した場合の実行結果と同一の実行結果をアプリケーション代理実行サーバから取得することができる。
【0023】
これらの場合、アプリケーション代理実行サーバとアプリケーション実行サーバとは、インターネット接続され、アプリケーション実行サーバ、クライアント端末およびデバイスは、LAN接続されていることが好ましい。
【0024】
この構成によれば、アプリケーション実行サーバ、クライアント端末およびデバイスがLAN接続されるため、アプリケーション実行サーバをインターネット上に設置する場合と比べ、アプリケーション実行サーバとクライアント端末と、の間の応答速度を速くすることができる。
【0025】
これらの場合、デバイスは、当該デバイスの設定サービスを行うためのデバイス設定手段を備え、クライアント端末は、デバイス設定手段による設定サービスを使用し、デバイスの設定を行うことが好ましい。
【0026】
この構成によれば、クライアント端末から設定サービスを使用してデバイスの設定を行うことができるため、デバイスに入力装置を設ける必要がなく、簡単に且つ低コストでデバイスの設定を行うことができる。なお、ここでいう設定サービスとは、WebページによるUIやWebサービスAPI等によりデバイスの初期設定(IPアドレス、デバイス名等の設定)を行うものである。
【0027】
本発明のプログラムは、コンピュータを、上記に記載のネットワークシステムにおけるアプリケーション実行サーバの各手段として機能させるためのものであることを特徴とする。
【0028】
このプログラムを用いることにより、クライアント端末にデバイスドライバをインストールすることなく、クライアント端末からの動作要求に基づきデバイスを動作させることができる。
【0029】
また、本発明の他のプログラムは、コンピュータを、上記に記載のネットワークシステムにおけるアプリケーション代理実行サーバの各手段として機能させるためのものであることを特徴とする。
【0030】
このプログラムを用いることにより、クライアント端末にデバイスドライバをインストールすることなく、クライアント端末からの動作要求に基づきデバイスを動作させることができ、且つアプリケーションの実行を停止することなくシステムを安定的に動作させることができる。
【図面の簡単な説明】
【0031】
【図1】本発明の一実施形態に係るPOSシステムのシステム構成図である。
【図2】POSシステムのブロック図である。
【図3】デバイスアダプタをソフトウェアで実現した場合のシステム構成図である。
【図4】ホスト装置からデバイスを動作させる手順について説明するフローチャートである。
【図5】POSサーバとホスト装置との間の認証処理手順について説明するフローチャートである。
【図6】印刷装置でエラーが発生した場合の処理手順について説明するフローチャートである。
【図7】印刷装置を一時停止させる場合の処理手順について説明するフローチャートである。
【図8】代理POSサーバを導入した場合のシステム構成図である。
【発明を実施するための形態】
【0032】
以下、添付の図面を参照して、本実施形態に係るネットワークシステムについて説明する。本実施形態に係るネットワークシステムは、クライアント端末にデバイスドライバをインストールすることなく、クライアント端末からのデバイス動作要求に基づき、対象となるデバイスを使用することができるシステムである。以下、本発明のネットワークシステムを、スーパーやコンビニエンス・ストア等の店舗にて使用されるPOSシステムに適用した場合を例に挙げて説明する。なお、本発明のデバイスとは、キーボードデバイスやポインタデバイス以外の非標準デバイスを対象とする。
【0033】
図1に示すように、本発明の一実施形態に係るPOSシステム1(ネットワークシステム)は、オペレータによって商品情報が入力され、清算金額を算出する複数のPOS端末2(図1では2台)と、当該POS端末2とインターネット4で接続される共に、当該POS端末2を管理するPOSサーバ3(アプリケーション実行サーバ)とから構成されている。POSサーバ3をインターネット4上に設置することで、POS端末2の設置場所に拘らずアクセスすることが可能となり、多数のユーザに同一品質のPOSサービスを提供することができる。
【0034】
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(データベース)が記憶されている。
【0035】
POSサーバ3とPOS端末2(ブラウザ51)との通信は、HTTPサーバ21により、ハイパーテキスト転送プロトコル(HTTP)に基づいて行われる。つまり、POSサーバ3のCPU11は、POS端末2(ホスト装置31)からのアプリケーション実行要求を、通信インターフェース18を介してHTTPリクエストとして受信し、当該アプリケーション実行要求の実行結果をHTML形式やXML形式のデータ(ページ)としてPOS端末2に送信(応答)する。また、CPU11は、POS端末2からデバイス動作を含むアプリケーション実行要求を受信した場合、その応答データとして、当該アプリケーション実行要求の実行結果、動作対象となるデバイス5(例えば、印刷装置34、スキャナ等の周辺機器)を特定するデバイス特定情報(当該デバイス5のIPアドレス)、デバイス5の動作を指定する動作情報(例えば、デバイス操作のためのAPI等の情報)、デバイス動作に関する各種パラメタ等をタグとして挿入したデータ(ページ)をPOS端末2に送信する。
【0036】
POSアプリケーション22は、POS端末2からの要求に基づいて決済処理を行うためのものである。例えば、POS端末2から商品の入力情報が送信されると、CPU11は、POSアプリケーション22を実行し、当該入力情報に基づいて、商品マスタ23から商品コード、商品名、金額に関する情報を抽出し、レシートの印刷およびPOS端末2のカスタマディスプレイ32の表示に用いる商品データを生成する。また、CPU11は、POS端末2からの入力情報や生成した上記商品データからレシートに印刷するための決済情報印刷データを生成する。これらの生成したデータは、POSアプリケーション22の実行結果としてPOS端末2側に送信され、印刷処理や表示処理が行われる。なお、ここで生成される各データは、HTML形式、若しくはXML形式のデータである。
【0037】
また、POSサーバ3のCPU11は、POS端末2を使用するユーザ(従業員)のアカウント管理を行い、ユーザの識別を行う。CPU11は、POS端末2から送信されるユーザIDおよびパスワードを受信し、POSサーバ3に登録されているものと一致するか否かを認証する。認証が成功した場合は、POSサーバ3へのアクセスを許可し、失敗した場合は、再度ユーザIDおよびパスワードを入力させる、あるいはアクセス拒否通知を送信するなどの処理を実行する。
【0038】
一方、POS端末2は、POSサーバ3から商品データを取得するホスト装置31(クライアント端末)と、商品名や売上金額等を表示するカスタマディスプレイ32(デバイス本体)と、カスタマディスプレイ32をホスト装置31にネットワーク接続するためのデバイスアダプタ33と、レシートに決済情報を印刷する印刷装置34と、を備え、これらはLAN35により接続されている(図1参照)。
【0039】
図2に示すように、ホスト装置31は、CPU41、ROM42、RAM43、HDD44、入出力インターフェース45、標準入力デバイス46、通信インターフェース47を備え、HDD44には、ブラウザ51(Webブラウザ)が記憶されている。CPU41は、ROM42内に記憶された制御プログラムに従って、RAM43内のデータの処理を行う。標準入力デバイス46としては、キーボード52、バーコードスキャナ53(バーコードリーダ)を備え、CPU41は、キーボード52による入力およびバーコードスキャナ53による読み取りによって、POSサーバ3から商品コードや商品名、金額等に関する商品データを取得する。
【0040】
ブラウザ51は、プラグインモジュールを有さない単機能ブラウザ(標準ブラウザ)であり、CPU41は、このブラウザ51を使用して、通信インターフェース47を介してネットワーク接続(インターネット接続、またはLAN接続)されたPOSサーバ3、およびカスタマディスプレイ32(デバイスアダプタ33)や印刷装置34等のデバイス5と通信を行う。この通信は、HTTPに基づいて行われ、http(s)://x.x.x.x/のようなURIを指定することで、POSサーバ3および各デバイス5と接続することにより行われる。
【0041】
CPU41は、ブラウザ51を使用して、標準入力デバイス46からの入力情報に基づき、POSサーバ3にアプリケーション実行要求を送信する(実行要求手段)。この時、POSサーバ3からの応答データをカスタマディスプレイ32に表示、あるいは印刷装置34で印刷する等のデバイス動作を伴う場合は、上記アプリケーション実行要求にデバイス動作を伴う旨の情報を含めて送信する。そして、CPU41は、POSサーバ3から入力情報に対応する商品コードや商品名、金額等に関する情報、および動作対象となるデバイス5(カスタマディスプレイ32や印刷装置34等)を特定する情報(デバイス特定情報)、デバイス5の動作を指定する動作情報、デバイス動作に関する各種パラメタ等をタグとして挿入したHTML形式、若しくはXML形式の応答データを受信(取得)する(実行結果受信手段)。その後、CPU41は、受信した応答データに基づいて、対象となるデバイス5に対してデバイス動作要求を送信する(動作要求手段)。また、CPU41は、デバイス5からデバイス動作要求に対する動作結果を含む応答データを受信し(動作結果受信手段)、この応答データによりデバイス5の動作結果を判別し、所定の処理を行う。つまり、デバイス5を動作させる場合、ホスト装置31は、ブラウザ51を使用して、デバイス動作要求(HTTPリクエスト)をデバイス5に送信するだけでよく、従来のようにホスト装置31自身でデバイス5を制御する必要がない。これにより、ホスト装置31には、ホスト装置31の環境(OSの種類等)に依存したデバイスドライバが不要となる。また、ブラウザ51は、単機能ブラウザ51でよく、プラグインモジュールを必要としないため、ホスト装置31の環境に依存することなく、デバイス5にアクセスすることができる。
【0042】
なお、デバイス5の応答データには、デバイス動作の成功/失敗の情報のみならず、デバイス5が生成したデータ(画像データや、文書データ等)も含まれる。この場合、ホスト装置31のCPU41は、当該データをPOSサーバ3に送信(アップロード)することが可能である。また、応答データ内に、デバイス5に関する情報(デバイス5のアドレス)を含むタグが挿入されているため、POSサーバ3とデバイス5とのドメインが異なる場合でも、問題なくデバイス5にアクセスが可能(クロスサイトアクセスが可能)となり、POSサーバ3とデバイス5とがシームレスに連携することができる。これにより、ユーザは、デバイス5に関する情報を意識することなくデバイス5にアクセスすることができる。なお、当該タグは、POSサーバ3側で応答データ内に挿入しても良いし、あるいは、ホスト装置31側でタグを生成し、動的に応答データに挿入するようにしてもよい。
【0043】
カスタマディスプレイ32は、標準入力デバイス46により入力された(読み取られた)商品情報を表示し、顧客に対して購入商品の一覧、金額等を提示する。本実施形態で説明するカスタマディスプレイ32は、単体ではネットワーク接続が不可能なものを想定しており、ホスト装置31とはデバイスアダプタ33を介してLAN35で接続される。これにより、ネットワーク接続ができないデバイス5であっても、ホスト装置31からネットワークを介して使用することができる。
【0044】
デバイスアダプタ33は、CPU61、記憶部62および通信インターフェース63を有し、記憶部62には、HTTPサーバ65およびファームウェア66を備えている。CPU61は、HTTPサーバ65により、通信インターフェース63を介してLAN35で接続されたホスト装置31(ブラウザ51)から、HTTPに基づいてデバイス動作要求(HTTPリクエスト)を受信し、その要求に対する動作結果をホスト装置31に送信する。この場合、CPU61は、ファームウェア66により、ホスト装置31から送信されたHTML形式、若しくはXML形式のデバイス動作要求を解釈してカスタマディスプレイ32に対応したコマンドに変換し、カスタマディスプレイ32に所望の文字や画像を表示させる。そして、デバイスアダプタ33は、カスタマディスプレイ32の表示結果(正常に表示できたか否か等)をホスト装置31に送信する。
【0045】
なお、上記では、デバイスアダプタ33をハードウェアとして構成いるが、これに限らず、ソフトウェアとして構成してもよい。この場合、ソフトウェアデバイスアダプタ36をホスト装置31に組み込み、カスタマディスプレイ32に所望の情報を表示させることが好ましい(図3参照)。
【0046】
印刷装置34は、レシート上に決済情報を印刷するレシートプリンタであり、CPU81、記憶部82、印刷部83および通信インターフェース84を備え、通信インターフェース84を介してホスト装置31とLAN35で接続されている。また、記憶部82には、HTTPサーバ85と、ファームウェア86と、を有している(図2参照)。印刷装置34とホスト装置31(ブラウザ51)との通信は、HTTPサーバ85により、HTTPに基づいて行われる。CPU81は、ホスト装置31からのデバイス動作要求(HTTPリクエスト)を受信し、その要求に基づいて印刷装置34の動作を制御する。この時、CPU81は、ファームウェア86によりデバイス動作要求を解釈して印刷装置34に対応したコマンドに変換すると共に、印刷対象となるデータ(例えば、文書データ)を当該印刷装置34で印刷可能なデータ(印刷データ)に変換し、これらに基づいて印刷部83を制御して印刷処理を行う。そして、CPU81は、印刷処理の結果(成功/失敗等)をホスト装置31に送信する。
【0047】
また、印刷装置34は、自身の初期設定や環境設定(プロパティ設定等)を行うための設定サービスを備え、ホスト装置31等にデバイス設定機能を提供する(デバイス設定手段)。この設定サービスは、例えば、WebページによるUI(User Interface)やWebサービスAPI(Application Program Interface)として提供することが好ましい。これにより、印刷装置34(デバイス5)に入力装置を設ける必要がなく、簡単に且つ低コストで印刷装置34(デバイス5)の設定を行うことができる。
【0048】
次に、図4を参照して、本発明のPOSシステム1において、ホスト装置31からデバイス5を動作させる手順について説明する。ここでは、対象となるデバイス5として、印刷装置34を例に挙げ、入力された商品情報に基づいてレシートを印刷する手順について説明する。まず、ホスト装置31がPOSサーバ3に接続すると、POSサーバ3は、ホスト装置31を使用するユーザの認証処理を行う(S01、詳細は後述)。ユーザ認証終了後、ホスト装置31は、標準入力デバイス46(キーボード52やバーコードスキャナ53)により商品情報を入力(読み取り)し、POSサーバ3に対して入力した商品情報に基づくレシート印刷要求(アプリケーション実行要求)を送信する(S02,実行要求手段)。このレシート印刷要求は、ホスト装置31のブラウザ51から、HTTPリクエストとしてPOSサーバ3(HTTPサーバ21)に送信される。
【0049】
POSサーバ3は、レシート印刷要求を受信し(S03)、当該要求に基づいてPOSアプリケーション22を実行し、HTML形式(若しくはXML形式)の第1応答データ(ページ)を生成する(S04)。この第1応答データには、対象となる商品情報をレシートに印刷するための決済情報印刷データ、印刷装置34の特定情報(IPアドレス等)、印刷装置34の起動に関する情報(起動用のAPI名等)、印刷装置34からのコールバックを受けるためのJavaScript(登録商標)の関数が埋め込まれている。そして、POSサーバ3は、ホスト装置31に対して当該第1応答データ(ページ)を送信する(S05)。
【0050】
第1応答データを受信したホスト装置31(ブラウザ51)は(S06,実行結果受信手段)、当該第1応答データに基づいて、印刷装置34(HTTPサーバ85)に対してHTTPリクエストとして印刷装置起動要求(デバイス起動要求)を送信する(S07,動作要求手段)。
【0051】
印刷装置34は、ホスト装置31からの印刷装置起動要求を受信すると(S08)、ファームウェア86を介して印刷装置起動要求を解釈すると共に、決済情報印刷データを印刷装置34で出力可能なデータに変換し、印刷部83を動作させて印刷処理を行う(S09)。その後、印刷装置34は、印刷処理の実行結果(成功/失敗等)および印刷装置34の状態に関する情報を第2応答データとして生成する(S10)。この第2応答データは、JSONP(JSON with Padding)によりJavaScript(登録商標)のコールバック関数として生成される。そして、印刷装置34は、当該第2応答データをホスト装置31に送信する(S11)。
【0052】
第2応答データを受信したホスト装置31は(S12,動作結果受信手段)、当該第2応答データに基づき、印刷装置34の動作結果を判別する(S13)。具体的には、ホスト装置31は、第2応答データのJavaScript(登録商標)を実行し、コールバック関数を呼び出すことで、印刷装置34の動作結果を取得し、判別する。印刷処理が正常に終了した場合(S14:Yes)、ホスト装置31は、印刷装置34での印刷処理が正常終了した旨をPOSサーバ3に通知し(S15)、POSサーバ3は、その通知を受信する(S16)。一方、印刷処理が正常終了しなかった場合(S14:No)、ホスト装置31は、印刷装置34に、再度、印刷装置起動要求を送信したり、あるいは印刷装置34の状態に基づいたエラー処理を行う(S17)。
【0053】
次に、図5を参照して、ホスト装置31を使用するユーザの認証の手順について説明する。まず、ホスト装置31は、ユーザによりユーザIDおよびパスワード(以下、認証情報)が入力されると(S21)、当該認証情報をPOSサーバ3に送信する(S22)。認証情報を受信したPOSサーバ3は、認証用データベース(図示省略)を参照し、当該ユーザIDに対するパスワードが登録されたものと一致するか認証を行う(S23)。認証が成功した場合(S24:Yes)、POSサーバ3は、当該ユーザ(ホスト装置31)にPOSアプリケーション22の使用を許可する(S25)。一方、認証が失敗した場合(S24:No)、POSサーバ3は、ホスト装置31(ユーザ)に対してその旨を通知し(例えば、認証情報の入力画面を再表示する等)、ホスト装置31(ユーザ)は、再度ユーザIDおよびパスワードを入力し(S26)、再入力したユーザIDおよびパスワードをPOSサーバ3に送信する(S22)。なお、パスワードを連続して所定回数間違って入力した場合、POSサーバ3への接続を切断したり、あるいは、当該ユーザIDを無効にする等の処理をすることが好ましい。
【0054】
次に、図6を参照して、印刷装置34に障害が発生した場合の動作手順について説明する。まず、印刷装置34は、エラー(障害)を検出すると(S31)、印刷装置34は、自身の印刷動作を停止する(S32)。そして、印刷装置34は、自身のイベント情報やステータス情報等に基づいて、JSONP(JSON with Padding)によりJavaScript(登録商標)のコールバック関数として応答データを生成し(S33)、当該応答データをホスト装置31に送信する(S34)。ホスト装置31は、印刷装置34からの応答データを受信すると(S35,動作結果受信手段)、コールバック関数を呼び出して印刷装置34の状態を判別し(S36)、その状態(エラー内容)に応じたエラー処理を行う(S37)。このエラー処理は、ホスト装置31のブラウザ51上で動作するスクリプトで処理を完結できるため、POSサーバ3が介在する必要はない。
【0055】
次に、図7を参照して、印刷装置34の印刷動作の一時停止動作、復旧動作、中止動作の動作手順について説明する。なお、これらの動作手順は、送受信するデータの内容が異なるだけで、基本的に同一であるため、ここでは、印刷装置34の一時停止動作について説明する。まず、ホスト装置31は、ブラウザ51を使用し、POSサーバ3(HTTPサーバ21)に対して、HTTPリクエストとして印刷動作一時停止要求(アプリケーション実行要求)を送信する(S41,実行要求手段)。
【0056】
POSサーバ3は、印刷動作一時停止要求を受信し(S42)、当該印刷動作一時停止要求に基づいて、POSアプリケーション22を実行してHTML形式(若しくはXML形式)の第1応答データ(ページ)を生成する(S43)。この第1応答データには、印刷装置34の特定情報(IPアドレス等)、印刷装置34の一時停止に関する情報(一時停止用のAPI名等)、印刷装置34からのコールバックを受けるためのJavaScript(登録商標)の関数が埋め込まれている。そして、POSサーバ3は、ホスト装置31に対して当該第1応答データ(ページ)を送信する(S44)。
【0057】
第1応答データを受信したホスト装置31(ブラウザ51)は(S45,実行結果受信手段)、当該第1応答データに基づいて、印刷装置34(HTTPサーバ85)に対してHTTPリクエストとして印刷装置一時停止要求(デバイス動作要求)送信する(S46,動作要求手段)。印刷装置34は、ホスト装置31からの印刷装置一時停止要求を受信すると(S47)、ファームウェア86を介して印刷装置一時停止要求を解釈し、自身の動作(印刷動作等)を一時停止する(S48)。その後、印刷装置34は、一時停止処理の結果(成功/失敗等)および印刷装置34の状態(ステータス)に関する情報を第2応答データとして生成する(S49)。この第2応答データは、JSONP(JSON with Padding)によりJavaScript(登録商標)のコールバック関数として生成される。そして、印刷装置34は、当該第2応答データをホスト装置31に送信する(S50)。
【0058】
第2応答データを受信したホスト装置31は(S51,動作結果受信手段)、当該第2応答データに基づき、印刷装置34の動作結果を判別する(S52)。具体的には、ホスト装置31は、第2応答データのJavaScript(登録商標)を実行し、コールバック関数を呼び出すことで、印刷装置34の動作結果を取得し、判別する。一時停止処理が正常に終了した場合(S53:Yes)、ホスト装置31は、印刷装置34の一時停止に係る処理を完了する(S54)。一方、一時停止処理が正常終了しなかった場合(S53:No)、ホスト装置31は、印刷装置34に、再度、印刷装置一時停止要求を送信したり、あるいは印刷装置34の状態に基づいたエラー処理を行う(S55)。なお、印刷動作を中止させる場合、印刷装置34は、上記の処理に合わせて、中止対象となる印刷動作の印刷ジョブを削除する処理を行う。
【0059】
このように、本実施形態によれば、ホスト装置31が、デバイス動作を伴うアプリケーション実行要求を送信すると、POSサーバ3は当該アプリケーション実行要求に対する実行結果を応答データとしてホスト装置31に送信する。そして、ホスト装置31は、当該応答データに基づいてデバイス5に動作要求を送信し、デバイス5は、ファームウェア66(86)により当該動作要求を解釈して自身を動作させると共に、その動作結果をホスト装置31に返信する。これにより、ホスト装置31にデバイスドライバをインストールすることなく、ホスト装置31からの動作要求に基づき、デバイス5を使用することができる。また、ホスト装置31にデバイスドライバが不要になるため、デバイス5の使用に係るホスト装置31の処理の負荷を軽減することができる。さらに、デバイスメーカにとっては、各ホスト装置31のOSの種類毎にデバイスドライバを作成する必要がなくなり、これに係る開発コストを削減できる。
【0060】
また、各POS端末2(ホスト装置31)にPOSアプリケーション22やデバイスドライバをインストールする必要がないため、POS端末2(ホスト装置31)の低廉化を図ることができると共に、保守・管理に要する時間やコストを軽減できる。
【0061】
なお、図8に示すように、上述したPOSシステム1に、POSサーバ3が異常状態の場合にホスト装置31からの処理を代理実行する代理POSサーバ91(アプリケーション代理実行サーバ)を導入し、POSサーバ3とPOS端末2とを同一LAN35上に、代理POSサーバ91をインターネット4上に設置するようにしてもよい。この場合、POSサーバ3と代理POSサーバ91との間で、ホスト装置31からの実行要求の処理状況、商品マスタ23の情報、認証情報(ユーザIDやパスワード)等のデータの同期を所定間隔で取り、POSサーバ3が異常状態になり、代理POSサーバ91に処理が移行した場合においても、確実に処理が引き継がれるようにする。これにより、ホスト装置31は、POSサーバ3に実行要求した場合の実行結果と同一の実行結果を代理POSサーバ91から取得することができる。また、代理POSサーバ91をPOSサーバ3のバックアップサーバとして使用することができると共に、ホスト装置31はPOSサーバ3の不具合を意識することなく、アプリケーション実行要求や実行結果の取得を行うことができる。また、POSサーバ3とホスト装置31とを同一のLAN35に設置するため、POSサーバ3がインターネット4上に設置される場合と比べ、POSサーバ3とホスト装置31との間の応答速度を早くすることができ、POSシステム1全体の処理効率を向上させることができる。なお、異常状態とは、正常状態でない状態であり、例えば、POSサーバ3のPOSアプリケーション22からの応答がない場合や、POSサーバ3が故障した場合をいう。
【0062】
また、本実施形態では、デバイス5として、カスタマディスプレイ32や印刷装置34(レシート印刷装置)を例に挙げて説明したが、これに限らず、家庭用プリンタ、イメージスキャナ、各種ストレージ等のコンシューマ向けデバイス、オフィス向けデバイスおよび業務用デバイスに適用することが可能である。
また、上述した実施例のPOSシステム1は一例であり、用途は限定されない。例えば、オフィスにおいてレーザプリンタとイメージスキャナを使用した帳票入出力システム等に、本発明は適用可能である。
【0063】
また、上記の例に示した、POSシステム1の機能をプログラムとして提供することも可能である。また、そのプログラムを記憶媒体(図示省略)に格納して提供することも可能である。記録媒体としては、CD−ROM、フラッシュROM、メモリカード(コンパクトフラッシュ(登録商標)、スマートメディア、メモリースティック等)、コンパクトディスク、光磁気ディスク、デジタルバーサタイルディスクおよびフレキシブルディスク等を利用することができる。
【0064】
また、上述した実施例によらず、POSシステム1の装置構成や処理工程等について、本発明の要旨を逸脱しない範囲で、適宜変更も可能である。
【符号の説明】
【0065】
1…POSシステム 2…POS端末 3…POSサーバ 4…インターネット 5…デバイス 21、65、85…HTTPサーバ 31…ホスト装置 32…カスタマディスプレイ 33…デバイスアダプタ 34…印刷装置 35…LAN 51…ブラウザ 66、86…ファームウェア 91…代理POSサーバ

【特許請求の範囲】
【請求項1】
アプリケーションを実行する1以上のアプリケーション実行サーバと、当該アプリケーション実行サーバに前記アプリケーションの実行を要求する1以上のクライアント端末と、当該クライアント端末の操作に伴って動作する1以上のデバイスと、を有し、少なくとも前記アプリケーション実行サーバと前記クライアント端末、前記クライアント端末と前記デバイスがそれぞれネットワーク接続されたネットワークシステムであって、
前記クライアント端末は、
前記アプリケーション実行サーバに対し、前記デバイスの動作を伴うアプリケーション実行要求を送信する実行要求手段と、
前記アプリケーション実行要求に対する前記アプリケーション実行サーバの実行結果を含む第1応答データを受信する実行結果受信手段と、
前記第1応答データの受信に伴って、前記デバイスに対しデバイス動作要求を送信する動作要求手段と、
前記デバイス動作要求に対する前記デバイスの動作結果を含む第2応答データを受信する動作結果受信手段と、を備え、
前記デバイスは、
前記クライアント端末からの前記デバイス動作要求を解釈し、前記デバイスに対応したコマンドに変換して前記デバイスを動作させるファームウェアを備え、
前記ファームウェアは、前記デバイスの動作結果を前記クライアント端末に送信することを特徴とするネットワークシステム。
【請求項2】
前記アプリケーション実行サーバおよび前記デバイスは、HTTPサーバを備え、
前記クライアント端末は、プラグイン機能を有しない単機能ブラウザを備え、
前記実行要求手段、前記実行結果受信手段および前記動作要求手段は、前記アプリケーション実行サーバおよび前記デバイスと、前記単機能ブラウザとの間で、ハイパーテキスト転送プロトコルに基づいて通信を行うことを特徴とする請求項1に記載のネットワークシステム。
【請求項3】
前記第1応答データには、少なくとも前記デバイスを特定するデバイス特定情報がさらに含まれており、
前記動作要求手段は、前記第1応答データに含まれる情報に基づいて、前記デバイス動作要求を送信することを特徴とする請求項1または2に記載のネットワークシステム。
【請求項4】
前記動作要求手段は、受信した前記第1応答データに、少なくとも前記デバイスを特定するデバイス特定情報を含めた前記デバイス動作要求を送信することを特徴とする請求項1または2に記載のネットワークシステム。
【請求項5】
前記デバイスは、デバイス本体と、前記ファームウェアを有するデバイスアダプタと、で構成され、
前記デバイス本体は、前記デバイスアダプタを介して前記クライアント端末と接続され、
前記デバイスアダプタは、前記クライアント端末からの前記デバイス動作要求に基づき、前記デバイス本体を制御することを特徴とする請求項1ないし4のいずれか1項に記載のネットワークシステム。
【請求項6】
前記アプリケーション実行サーバと前記クライアント端末とは、インターネット接続されていることを特徴とする請求項1ないし5のいずれか1項に記載のネットワークシステム。
【請求項7】
前記アプリケーション実行サーバは、POSサーバとして機能し、
前記クライアント端末は、POS端末として機能することを特徴とする請求項1ないし6のいずれか1項に記載のネットワークシステム。
【請求項8】
前記アプリケーション実行サーバに接続されると共に、当該アプリケーション実行サーバと同様の処理を行うアプリケーション代理実行サーバを、さらに備え、
前記アプリケーション実行サーバは、前記クライアント端末および前記デバイスと接続され、
前記アプリケーション代理実行サーバは、
前記アプリケーション実行サーバが異常状態となった場合、前記アプリケーション実行サーバの処理を代理実行することを特徴とする請求項1ないし7のいずれか1項に記載のネットワークシステム。
【請求項9】
前記アプリケーション実行サーバと、前記アプリケーション代理実行サーバとの間で、前記アプリケーションに係る情報の同期を取ることを特徴とする請求項8に記載のネットワークシステム。
【請求項10】
前記アプリケーション代理実行サーバと前記アプリケーション実行サーバとは、インターネット接続され、
前記アプリケーション実行サーバ、前記クライアント端末および前記デバイスは、LAN接続されていることを特徴とする請求項8または9に記載のネットワークシステム。
【請求項11】
前記デバイスは、当該デバイスの設定サービスを行うためのデバイス設定手段を備え、
前記クライアント端末は、前記デバイス設定手段による前記設定サービスを使用し、前記デバイスの設定を行うことを特徴とする請求項1ないし10のいずれか1項に記載のネットワークシステム。
【請求項12】
コンピュータを、請求項1ないし11のいずれか1項に記載のネットワークシステムにおける前記アプリケーション実行サーバの各手段として機能させるためのプログラム。
【請求項13】
コンピュータを、請求項8ないし11のいずれか1項に記載のネットワークシステムにおける前記アプリケーション代理実行サーバの各手段として機能させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2012−146333(P2012−146333A)
【公開日】平成24年8月2日(2012.8.2)
【国際特許分類】
【出願番号】特願2012−97441(P2012−97441)
【出願日】平成24年4月23日(2012.4.23)
【分割の表示】特願2007−179323(P2007−179323)の分割
【原出願日】平成19年7月9日(2007.7.9)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】