(57)【要約】【課題】ネットワークコンピューティングを利用したＰＯＳシステムの信頼性を向上させる。【解決手段】一実施形態に係る電子機器は、第１通信手段と、第２通信手段と、中継手段と、会計処理手段とを備える。上記第１通信手段は、商取引を会計するための会計処理を実行するサーバと通信する。上記第２通信手段は、上記会計処理に用いる周辺機器と通信する。上記中継手段は、上記第１通信手段による上記サーバとの通信が確立されている場合、上記サーバによる上記周辺機器の制御を中継する。上記会計処理手段は、上記第１通信手段による上記サーバとの通信が切断された場合、上記サーバによらずに上記周辺機器を直接制御して上記会計処理を実行する。【選択図】図５
2014149602.tif 000002
【特許請求の範囲】
【請求項１】
商取引を会計するための会計処理を実行するサーバと通信する第１通信手段と、
前記会計処理に用いる周辺機器と通信する第２通信手段と、
前記第１通信手段による前記サーバとの通信が確立されている場合、前記サーバによる前記周辺機器の制御を中継する中継手段と、
前記第１通信手段による前記サーバとの通信が切断された場合、前記サーバによらずに前記周辺機器を直接制御して前記会計処理を実行する会計処理手段と、
を備えることを特徴とする電子機器。
【請求項２】
前記周辺機器は、購入される商品又は役務に関する情報を入力する入力装置を含み、
前記中継手段は、前記第１通信手段による前記サーバとの通信が確立されている場合、前記入力装置が入力する情報を前記サーバに送信し、
前記第１通信手段による前記サーバとの通信が切断された場合、前記入力装置が入力する情報を記憶するメモリと、
前記第１通信手段による前記サーバとの通信が切断された後に当該通信が復旧した場合、前記メモリが記憶する情報を前記サーバに転送する転送手段と、
をさらに備えることを特徴とする請求項１に記載の電子機器。
【請求項３】
電子機器に対して、サーバと、商取引を会計するための会計処理に用いる周辺機器とを接続した会計システムであって、
前記サーバは、
前記周辺機器を制御するための制御データを前記電子機器に送信し、前記電子機器から送信される前記周辺機器からの入力データに基づいて前記会計処理を実行する第１会計処理手段、
を備え、
前記電子機器は、
前記電子機器と前記サーバとの通信が確立されている場合、前記サーバから受信する前記制御データに基づいて前記周辺機器を制御するとともに、前記周辺機器から入力される前記入力データを前記サーバに送信する中継手段と、
前記電子機器と前記サーバとの通信が切断された場合、前記制御データによらずに前記周辺機器を直接制御して前記会計処理を実行する第２会計処理手段と、
を備えることを特徴とする会計システム。
【請求項４】
前記周辺機器は、購入される商品又は役務に関する情報を入力する入力装置を含み、
前記中継手段は、前記第１通信手段による前記サーバとの通信が確立されている場合、前記入力装置が入力する情報を前記入力データとして前記サーバに送信し、
前記電子機器は、
前記第１通信手段による前記サーバとの通信が切断された場合、前記入力装置が入力する情報を記憶するメモリと、
前記第１通信手段による前記サーバとの通信が切断された後に当該通信が復旧した場合、前記メモリが記憶する情報を前記サーバに転送する転送手段と、
をさらに備え、
前記第１会計処理手段は、前記中継手段が送信した情報及び前記転送手段が転送した情報に基づいて前記会計処理を実行する、
ことを特徴とする請求項３に記載の会計システム。
【請求項５】
前記会計システムは、外部から受信した画面データに基づき前記会計処理に関する画面を表示する端末装置をさらに含み、
前記第１会計処理手段は、前記電子機器と前記サーバとの通信が確立されている場合に前記画面データを前記端末装置に送信し、
前記第２会計処理手段は、前記電子機器と前記サーバとの通信が切断された場合に前記端末装置に前記画面データを送信する、
ことを特徴とする請求項３又は４に記載の会計システム。
【請求項６】
商取引を会計するための会計処理を実行するサーバと通信する第１通信手段、及び、前記会計処理に用いる周辺機器と通信する第２通信手段を備える電子機器を、
前記第１通信手段による前記サーバとの通信が確立されている場合、前記サーバによる前記周辺機器の制御を中継する中継手段、及び、
前記第１通信手段による前記サーバとの通信が切断された場合、前記サーバによらずに前記周辺機器を直接制御して前記会計処理を実行する会計処理手段、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、電子機器、会計システム、及びプログラムに関する。
【背景技術】
【０００２】
近年、例えばクラウドコンピューティングなどのネットワークコンピューティングを利用することにより、迅速かつ安価にＰＯＳ（Point Of Sales）システムを構築できる環境が整いつつある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平７−９３６６７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ネットワークコンピューティングを利用したＰＯＳシステムにおいてサーバのダウンや、サーバとクライアントとの通信障害が発生した場合、ＰＯＳシステムを利用できなくなる。ＰＯＳシステムの運用が止まると、店舗の業務に多大な影響が及ぶ。
【０００５】
本発明が解決しようとする課題は、ネットワークコンピューティングを利用したＰＯＳシステムの信頼性を向上させることである。
【課題を解決するための手段】
【０００６】
一実施形態に係る電子機器は、第１通信手段と、第２通信手段と、中継手段と、会計処理手段とを備える。上記第１通信手段は、商取引を会計するための会計処理を実行するサーバと通信する。上記第２通信手段は、上記会計処理に用いる周辺機器と通信する。上記中継手段は、上記第１通信手段による上記サーバとの通信が確立されている場合、上記サーバによる上記周辺機器の制御を中継する。上記会計処理手段は、上記第１通信手段による上記サーバとの通信が切断された場合、上記サーバによらずに上記周辺機器を直接制御して上記会計処理を実行する。
【図面の簡単な説明】
【０００７】
【図１】一実施形態におけるＰＯＳシステムの構成を示す模式図。
【図２】同実施形態におけるＰＯＳ入出力装置の要部構成を示すブロック図。
【図３】同実施形態における第２登録バッファのデータ構造の一例を示す模式図。
【図４】同実施形態における監視処理のフローチャート。
【図５】同実施形態におけるクラウドＰＯＳとローカルＰＯＳのソフトウェア階層図。
【図６】同実施形態におけるクラウドＰＯＳによる会計処理のフローチャート。
【図７】同実施形態におけるローカルＰＯＳによる会計処理のフローチャート。
【図８】同実施形態におけるアップロード処理のフローチャート。
【発明を実施するための形態】
【０００８】
一実施形態につき、図面を参照しながら説明する。  
以下の実施形態においては、小売店において販売される商品の代金を会計するＰＯＳシステム（会計システム）を例示する。
【０００９】
図１は、本実施形態に係るＰＯＳシステムの構成を示す模式図である。  
当該ＰＯＳシステムは、店舗に配置されるＰＯＳ入出力ボックス（ＰＯＳ-ＩＯ-ＢＯＸ）１と、例えばＳａａＳ（Software as a Service）タイプのクラウドに含まれるサーバ２とを含む。ＰＯＳ入出力ボックス１は、本実施形態に係る電子機器として機能する。
【００１０】
さらに当該ＰＯＳシステムは、店舗に配置されるアクセスポイント３と、ハブ４と、端末装置５と、スキャナ６と、蛍光表示管７と、プリンタ８と、ドロワ９とを含む。アクセスポイント３とハブ４は、例えば通信ケーブルを介して相互通信可能に接続される。ハブ４とサーバ２は、例えばインターネットを介して相互通信可能に接続される。端末装置５とアクセスポイント３は、例えば電波を介して相互通信可能に接続される。スキャナ６、蛍光表示管７、プリンタ８、及びドロワ９とＰＯＳ入出力ボックス１は、例えばＵＳＢ（Universal Serial Bus）ケーブルを介して相互通信可能に接続される。
【００１１】
サーバ２は、ＡＰ（アプリケーション）ファイル２１、ＰＬＵ（Price Look Up）マスタ２２、第１登録バッファ２３、及び履歴ＤＢ（Data Base）２４を記憶する記憶装置を備える。ＡＰファイル２１は、店舗にて販売される商品を会計するための会計処理に関するアプリケーションＡを実現する。ＰＬＵマスタ２２は、店舗で販売される各商品に割り当てられた商品コードごとに、その商品の商品データ（商品名及び単価など）を関連付けたマスタである。第１登録バッファ２３は、１取引において客が購入する商品の商品コード及び商品データを一時的に保存するためのバッファである。履歴ＤＢ２４は、会計が完了した取引の履歴データを保存するためのデータベースである。履歴データは、取引ごとに割り当てられた取引ナンバ、その取引が行われた日時、及び、その取引にて販売された商品の商品コード及び商品データなどを含む。
【００１２】
アクセスポイント３及びハブ４は、ＰＯＳ入出力ボックス１及び端末装置５とサーバ２との通信を中継する。アクセスポイント３は、ＰＯＳ入出力ボックス１と端末装置５の通信を中継することもある。
【００１３】
端末装置５は、例えばディスプレイと、このディスプレイの表示面に対する操作を検知するタッチパネルとを含むタブレットＰＣである。端末装置５は、会計処理に関する画面（以下、会計画面）を表示する。
【００１４】
スキャナ６は、商品に付されたバーコードなどのコードシンボルを光学的にスキャンし、このスキャンにより得たデータを当該コードシンボルが表す商品コードにデコードする。
【００１５】
蛍光表示管７は、文字、数字、及び記号などを一行で表示する簡易ディスプレイである。
【００１６】
プリンタ８は、取引の明細情報（取引ナンバ、取引の日時、及び商品データなど）を含むレシートなどを用紙に印刷する。
【００１７】
ドロワ９は、紙幣及び硬貨を収納するための収納部と、収納部を引出し自在に収納するハウジングと、収納部のハウジングに対する開閉をロックするロック機構とを備える。
【００１８】
図２は、ＰＯＳ入出力装置１の要部構成を示すブロック図である。ＰＯＳ入出力装置１は、ＣＰＵ（Central Processing Unit）１０、メモリ１１，１２，１３，１４、通信装置１５、及びデバイスコネクタ１６などを備える。
【００１９】
メモリ１１は、例えばＤＲＡＭ（Dynamic Random Access Memory）であり、プログラムの実行エリアなどを生成する。
【００２０】
メモリ１２は、例えばブートＲＯＭ（Read Only Memory）であり、ＰＯＳ入出力装置１を起動するためのＢＩＯＳ（Basic Input Output System）を実現する起動プログラム１２０などを記憶する。
【００２１】
メモリ１３は、例えばＮＡＮＤ型フラッシュメモリであり、ＡＰ（アプリケーション）ファイル１３０及びドライバファイル１３１などを記憶する。ＡＰファイル１３０は、会計処理に関するアプリケーションＢを実現するためのアプリケーションプログラムなどを含む。ドライバファイル１３１は、サーバ２から送信されるデータに応じてＰＯＳ入出力ボックス１の周辺機器（スキャナ６、蛍光表示管７、プリンタ８、及びドロワ９など）を制御するデバイスドライバＡ、アプリケーションＢにより上記周辺機器を制御するデバイスドライバＢ、及び、サーバ２と端末装置５の通信状態を監視する監視ドライバＭを実現するためのドライバプログラムなどを含む。
【００２２】
メモリ１４は、例えばＳＲＡＭ（Static Random Access Memory）であり、第２登録バッファ１４０及びＰＬＵマスタ２２などを記憶する。メモリ１４のＰＬＵマスタ２２は、１日の業務の開始時などに、サーバ２からＰＯＳ入出力ボックス１にダウンロードされたものである。図３は、第２登録バッファ１４０のデータ構造の一例を示す模式図である。第２登録バッファ１４０は、第１登録バッファ２３と同じく１取引において客が購入する商品の商品コード及び商品データを一時的に保存するためのバッファである。具体的には、第２登録バッファ１４０は、客が購入する商品の商品コード、同商品の商品データ、及びフラグを含むレコードにて構成される。フラグは、レコードに係る商品コード及び商品データが第１登録バッファ２３に書き込まれているか否かを表す識別情報であり、書き込まれている場合には“０”となり、書き込まれていない場合には“１”となる。
【００２３】
通信装置１５は、本実施形態に係る第１通信手段として機能するものであり、アクセスポイント３と無線にて通信する。通信装置１５は、端末装置５と通信することもある。
【００２４】
デバイスコネクタ１６は、本実施形態に係る第２通信手段として機能するものであり、上述の周辺機器（スキャナ６、蛍光表示管７、プリンタ８、及びドロワ９など）と通信ケーブルを介して通信する。
【００２５】
ＣＰＵ１０は、起動プログラム１２０、ＡＰファイル１３０に含まれるアプリケーションプログラム、及びドライバファイル１３１に含まれるドライバプログラムなどを実行することにより、アプリケーションＢ、デバイスドライバＡ，Ｂ、及び監視ドライバＭなどの各種機能を実現する。
【００２６】
このような構成のＰＯＳシステムにおいて、ＰＯＳ入出力ボックス１、サーバ２、及び端末装置５は、ＰＯＳ入出力ボックス１とサーバ２がアクセスポイント３及びハブ４を介して通信接続され、かつサーバ２と端末装置５がアクセスポイント３及びハブ４を介して通信接続されるように動作する。
【００２７】
［クラウドＰＯＳ／ローカルＰＯＳの切り替え］
本実施形態に係るＰＯＳシステムは、サーバ２を会計処理の主体とするクラウドＰＯＳと、ＰＯＳ入出力ボックス１を会計処理の主体とするローカルＰＯＳを切り替える機能を備える。この切り替えに係る処理は、主に監視ドライバＭが実行する。
【００２８】
図４，図５を用いてクラウドＰＯＳとローカルＰＯＳの切り替えについて説明する。図４は、監視ドライバＭの制御の下でＣＰＵ１０が実行する監視処理のフローチャートである。図５は、クラウドＰＯＳとローカルＰＯＳの概略的なソフトウェア階層図である。
【００２９】
監視ドライバＭは、図４のフローチャートに示す監視処理を周期的に実行する。この処理において、先ず監視ドライバＭは、通信装置１５とサーバ２との通信が確立されているか否かを判定する（ステップＳ１０１）。通信が確立されていると判定した場合（ステップＳ１０１のＹｅｓ）、監視ドライバＭは、デバイスドライバＡを起動する（ステップＳ１０２）。ステップＳ１０２の実行時にデバイスドライバＡが既に起動されている場合、監視ドライバＭは、特に処理を実行する必要はない。ステップＳ１０２の実行時にデバイスドライバＢ及びアプリケーションＢが起動されている場合、監視ドライバＭはデバイスドライバＢ及びアプリケーションＢを終了する。
【００３０】
ステップＳ１０２の後、監視ドライバＭは、アップロード処理を実行する（ステップＳ１０３）。アップロード処理の詳細については後述する。
【００３１】
ステップＳ１０３を以って、監視ドライバＭは当該フローチャートに示す処理を終了する。
【００３２】
ステップＳ１０１において、通信装置１５とサーバ２の通信が確立されていないと判定した場合（ステップＳ１０１のＮｏ）、監視ドライバＭは、デバイスドライバＢを起動する（ステップＳ１０４）。ステップＳ１０４の実行時にデバイスドライバＢが既に起動されている場合、監視ドライバＭは、特に処理を実行する必要はない。ステップＳ１０４の実行時にデバイスドライバＡが起動されている場合、監視ドライバＭはデバイスドライバＡを終了する。
【００３３】
なお、通信装置１５とサーバ２の通信が確立されていない場合としては、サーバ２がダウンした場合や、アクセスポイント３或いはハブ４に障害が発生した場合などが想定される。
【００３４】
ステップＳ１０４の後、監視ドライバＭは、アプリケーションＢを起動する（ステップＳ１０５）。ステップＳ１０５の後、監視ドライバＭは、通信装置１５と端末装置５の通信接続を試行する（ステップＳ１０６）。端末装置５は、基本的には通信の接続先をサーバ２とし、サーバ２との通信が確立できない場合には通信の接続先をＰＯＳ入出力装置１とする。すなわち、サーバ２がダウンするなどしてサーバ２との通信が実行できない場合、端末装置５は、ＰＯＳ入出力装置１との通信接続を試行する。ＰＯＳ入出力装置１と端末装置５の双方が通信接続を試行した際に、通信を阻害する要因が存在しないならば、ＰＯＳ入出力装置１と端末装置５の通信が確立する。
【００３５】
ステップＳ１０６の後、監視ドライバＭは、通信装置１５と端末装置５の通信が確立されたか否かを判定する（ステップＳ１０７）。通信が確立されたと判定した場合（ステップＳ１０７のＹｅｓ）、デバイスドライバＭは、アプリケーションＢに端末装置５との通信が可能である旨を通知する（ステップＳ１０８）。一方、通信が確立されていないと判定した場合（ステップＳ１０７のＹｅｓ）、デバイスドライバＭは、アプリケーションＢに端末装置５との通信が不可能である旨を通知する（ステップＳ１０９）。
【００３６】
ステップＳ１０８或いはステップＳ１０９を以って、監視ドライバＭは当該フローチャートに示す処理を終了する。
【００３７】
以上のような監視ドライバＭの動作により、図５に示すソフトウェア階層が構成される。すなわち、ＰＯＳ入出力装置１とサーバ２の通信が確立されている場合（通常時）にはサーバ２のＣＰＵ２０が実現するアプリケーションＡを主体として、ＰＯＳシステムがクラウドＰＯＳとして機能する。このとき、ＰＯＳ入出力装置１のＣＰＵ１０が監視ドライバＭに加えてデバイスドライバＡを実現する。
【００３８】
一方、ＰＯＳ入出力装置１とサーバ２の通信が切断されている場合（サーバダウン時）にはＰＯＳ入出力装置１のＣＰＵ１０が監視ドライバＭに加えてデバイスドライバＢとアプリケーションＢを実現し、アプリケーションＢを主体としてＰＯＳシステムがローカルＰＯＳとして機能する。
【００３９】
［クラウドＰＯＳにおける会計処理］
次に、ＰＯＳシステムがクラウドＰＯＳとして機能している場合における会計処理の流れについて説明する。
【００４０】
クラウドＰＯＳにおいては、アプリケーションＡが図６のフローチャートに示す動作を繰り返し実行する。
【００４１】
先ずアプリケーションＡは、初期状態における会計画面の画像データを端末装置５に送信する（ステップＳ２０１）。端末装置５は、受信した画像データに基づく会計画面を表示する。この会計画面は、第１登録バッファ２３に書き込まれた商品データや取引の合計代金を表示するための表示エリア、小計指示を入力するための小計ボタン、客からの預り金額を入力するためのテンキー、締めコマンドを入力するための締めボタンなどを含む。
【００４２】
端末装置５に会計画面が表示された状態において、店員は、客が購入する商品に付されたバーコードをスキャナ６にてスキャンすることにより、当該商品の商品コードを入力する。ＰＯＳ入出力ボックス１のデバイスドライバＡは、当該入力された商品コードをスキャナ６から取り込み、サーバ２に送信する。
【００４３】
ステップＳ２０１の後、アプリケーションＡは、スキャナ６にて入力された商品コードを受信したか否かを判定する（ステップＳ２０２）。ＰＯＳ入出力ボックス１から商品コードを受信していると判定した場合（ステップＳ２０２のＹｅｓ）、アプリケーションＡは、サーバ２の記憶装置が記憶するＰＬＵマスタ２２から当該商品コードに対応する商品データを取得する（ステップＳ２０３）。さらにアプリケーションＡは、取得した商品データを第１登録バッファ２３のレコードに書き込む（ステップＳ２０４）。
【００４４】
ステップＳ２０４の後、アプリケーションＡは、ＰＯＳ入出力ボックス１から受信しんた商品コードとステップＳ２０３にて取得した商品データを端末装置５及びＰＯＳ入出力ボックス１に送信する（ステップＳ２０５）。端末装置５は、当該受信した商品コード及び商品データを会計画面に表示する。ＰＯＳ入出力ボックス１のデバイスドライバＡは、当該受信した商品データを蛍光表示管７に表示させる。さらに、ＰＯＳ入出力ボックス１の監視ドライバＭは、当該受信した商品コード及び商品データを第２登録バッファ１４０のレコードに書き込む。監視ドライバＭは、このレコードのフラグを“０”にセットする。
【００４５】
ステップＳ２０５の後、或いはステップＳ２０２にてＰＯＳ入出力ボックス１から商品コードを受信していないと判定した場合（ステップＳ２０２のＮｏ）、アプリケーションＡは、小計コマンドを受信したか否かを判定する（ステップＳ２０６）。端末装置５は、例えば店員が会計画面における小計ボタンを操作した場合に、サーバ２に小計コマンドを送信する。
【００４６】
小計コマンドを受信していないと判定した場合（ステップＳ２０６のＮｏ）、アプリケーションＡの動作はステップＳ２０２に戻る。
【００４７】
一方、小計コマンドを受信していると判定した場合（ステップＳ２０６のＹｅｓ）、アプリケーションＡは、第１登録バッファ２３の各レコードに書き込まれた商品データに基づいて当該取引の合計代金及び合計商品数量などを含む小計データを生成し、端末装置５及びＰＯＳ入出力ボックス１に送信する（ステップＳ２０７）。端末装置５は、受信した小計データが表す合計代金や合計商品数量を会計画面に表示する。ＰＯＳ入出力ボックス１のデバイスドライバＡは、当該受信した小計データが表す合計代金や合計商品数量を蛍光表示管７に表示させる。客は、例えば蛍光表示管７に表示された合計代金を見て、現金を支払う。
【００４８】
ステップＳ２０７の後、アプリケーションＡは、客からの預り金額を表すデータ及び締めコマンドを受信したか否かを判定する（ステップＳ２０８）。アプリケーションＡは、預り金額を表すデータ及び締めコマンドを受信するまでこの判定を繰り返す（ステップＳ２０８のＮｏ）。端末装置５は、例えば会計画面におけるテンキーの操作により預り金額が入力された状態で、当該会計画面における締めボタンが操作された場合に、サーバ２に当該入力された預り金額を表すデータと締めコマンドを送信する。
【００４９】
預り金額を表すデータ及び締めコマンドを受信したと判定した場合（ステップＳ２０８のＹｅｓ）、アプリケーションＡは、当該データが表す預り金額と合計代金に基づいて釣り銭額を算出するとともに、算出した釣り銭額を表すデータを端末装置５及びＰＯＳ入出力ボックス１に送信する（ステップＳ２０９）。端末装置５は、受信したデータが表す釣り銭額を会計画面に表示する。ＰＯＳ入出力ボックス１のデバイスドライバＡは、当該受信したデータが表す釣り銭額を蛍光表示管７に表示させる。
【００５０】
ステップＳ２０９の後、アプリケーションＡは、ドロワ９を開放するための開放コマンドをＰＯＳ入出力ボックス１に送信する（ステップＳ２１０）。ＰＯＳ入出力ボックス１のデバイスドライバＡは、開放コマンドを受信したことに応じてドロワ９のロック機構を解除する。
【００５１】
ステップＳ２１０の後、アプリケーションＡは、第１登録バッファ２３に書き込まれた商品データなどを含むレシートの印刷データを生成し、ＰＯＳ入出力ボックス１に送信する（ステップＳ２１１）。ＰＯＳ入出力ボックス１のデバイスドライバＡは、当該受信した印刷データに基づくレシートをプリンタ８に印刷させる。
【００５２】
店員は、例えば会計画面に表示された釣り銭額に相当する硬貨或いは紙幣をドロワ９から取り出し、プリンタ８が印刷したレシートとともに客に渡す。
【００５３】
ステップＳ２１１の後、アプリケーションＡは、第１登録バッファ２３に書き込まれた商品コード、商品データ、取引ナンバ、及び取引日時などを含む履歴データを履歴ＤＢ２４に保存する（ステップＳ２１２）。さらに、アプリケーションＡは、第１登録バッファ２３に書き込まれたデータを全て消去する（ステップＳ２１３）。なお、ステップＳ２１１にて送信された印刷データを受信したことに応じて、ＰＯＳ入出力ボックス１の監視ドライバＭが第２登録バッファ１４０のデータを全て消去する。
【００５４】
ステップＳ２１３を以って、アプリケーションＡは当該フローチャートに示す処理を終了する。
【００５５】
［ローカルＰＯＳにおける会計処理］
次に、ＰＯＳシステムがローカルＰＯＳとして機能している場合における会計処理の流れについて説明する。
【００５６】
ローカルＰＯＳにおいては、アプリケーションＢが図７のフローチャートに示す動作を繰り返し実行する。
【００５７】
先ずアプリケーションＢは、端末装置５との通信が確立されているか否かを判定する（ステップＳ３０１）。監視ドライバＭが実行した最近の監視処理において、端末装置５との通信が可能である旨が通知されている場合（ステップＳ１０８）、アプリケーションＢは端末装置５との通信が確立されていると判定する。一方、監視ドライバＭが実行した最近の監視処理において、端末装置５との通信が不可能である旨が通知されている場合（ステップＳ１０９）、アプリケーションＢは端末装置５との通信が確立されていないと判定する。
【００５８】
端末装置５との通信が確立されていると判定した場合（ステップＳ３０１のＹｅｓ）、アプリケーションＢは、初期状態における会計画面の画像データを端末装置５に送信する（ステップＳ３０２）。端末装置５は、受信した画像データに基づく会計画面を表示する。この会計画面は、ＰＯＳ入出力ボックス１の処理負担を抑えるべく、クラウドＰＯＳの場合における会計画面よりもデータサイズが小さいものとしてもよい。
【００５９】
ステップＳ３０２の後、或いはステップＳ３０１にて端末装置５との通信が確立されていないと判定した場合（ステップＳ３０１のＮｏ）、アプリケーションＢは、商品コードが入力されたか否かを判定する（ステップＳ３０３）。
【００６０】
スキャナ６により入力された商品コードをデバイスドライバＢが取り込んでいる場合、アプリケーションＢは商品コードが入力されていると判定する（ステップＳ３０３のＹｅｓ）。このとき、アプリケーションＢは、メモリ１４のＰＬＵマスタ２２から当該商品コードに対応する商品データを取得する（ステップＳ３０４）。さらにアプリケーションＢは、デバイスドライバＢが取り込んだ商品コードとステップＳ３０４にて取得した商品データを第２登録バッファ１４０のレコードに書き込む（ステップＳ３０５）。アプリケーションＢは、当該レコードのフラグを“１”にセットする。
【００６１】
ステップＳ３０５の後、アプリケーションＢは、端末装置５との通信が確立されているか否かを判定する（ステップＳ３０６）。判定手法はステップＳ３０１と同様である。端末装置５との通信が確立されていると判定した場合（ステップＳ３０６のＹｅｓ）、アプリケーションＢは、ステップＳ３０４にて取得した商品データを端末装置５に送信するとともに、デバイスドライバＢにより蛍光表示管７を制御して当該商品データに含まれる商品名や単価を表示させる（ステップＳ３０７）。
【００６２】
端末装置５との通信が確立されていないと判定した場合にも（ステップＳ３０６のＮｏ）、アプリケーションＢは、デバイスドライバＢにより蛍光表示管７を制御して当該商品データに含まれる商品名や単価を表示させる（ステップＳ３０８）。但しこの場合、アプリケーションＢは、商品データを端末装置５に送信しない。
【００６３】
ステップＳ３０７或いはステップＳ３０８の後、アプリケーションＢは、小計コマンドが入力されたか否かを判定する（ステップＳ３０９）。端末装置５は、例えば店員が端末装置５に表示された会計画面における小計ボタンを操作した場合に、ＰＯＳ入出力ボックス１に小計コマンドを送信する。小計コマンドは、例えばデバイスコネクタ１６に接続された周辺機器が備える操作ボタンの操作によって入力することもできる。スキャナ６にて専用のバーコードをスキャンすることにより小計コマンドが入力されてもよい。
【００６４】
小計コマンドが入力されていないと判定した場合（ステップＳ３０９のＮｏ）、アプリケーションＢの動作はステップＳ３０３に戻る。
【００６５】
一方、小計コマンドが入力されていると判定した場合（ステップＳ３０９のＹｅｓ）、アプリケーションＢは、端末装置５との通信が確立されているか否かを判定する（ステップＳ３１０）。判定手法はステップＳ３０１と同様である。端末装置５との通信が確立されていると判定した場合（ステップＳ３１０のＹｅｓ）、アプリケーションＢは、第２登録バッファ１４０の各レコードに書き込まれた商品データに基づいて当該取引の合計代金及び合計商品数量などを含む小計データを生成し、生成した小計データを端末装置５に送信するとともに、デバイスドライバＢにより蛍光表示管７を制御して合計金額などを表示させる（ステップＳ３１１）。端末装置５は、受信した小計データが表す合計代金や合計商品数量を会計画面に表示する。
【００６６】
端末装置５との通信が確立されていないと判定した場合にも（ステップＳ３１０のＮｏ）、アプリケーションＢは、デバイスドライバＢにより蛍光表示管７を制御して合計代金などを表示させる（ステップＳ３１２）。但しこの場合、アプリケーションＢは、小計データを端末装置５に送信しない。
【００６７】
ステップＳ３１１或いはステップＳ３１２の後、アプリケーションＢは、客からの預り金額を表すデータ及び締めコマンドが入力されたか否かを判定する（ステップＳ３１３）。アプリケーションＢは、預り金額を表すデータ及び締めコマンドが入力されるまでこの判定を繰り返す（ステップＳ３１３のＮｏ）。端末装置５は、例えば端末装置５に表示された会計画面におけるテンキーの操作により預り金額が入力された状態で、当該会計画面における締めボタンが操作された場合に、ＰＯＳ入出力ボックス１に当該入力された預り金額を表すデータと締めコマンドを送信する。預り金額及び締めコマンドは、例えばデバイスコネクタ１６に接続された周辺機器が備える操作ボタンの操作によって入力することもできる。スキャナ６にて専用のバーコードをスキャンすることにより締めコマンドが入力されてもよい。
【００６８】
預り金額を表すデータ及び締めコマンドを受信したと判定した場合（ステップＳ３１３のＹｅｓ）、アプリケーションＢは、端末装置５との通信が確立されているか否かを判定する（ステップＳ３１４）。判定手法はステップＳ３０１と同様である。端末装置５との通信が確立されていると判定した場合（ステップＳ３１４のＹｅｓ）、アプリケーションＢは、受信したデータが表す預り金額と合計代金に基づいて釣り銭額を算出し、算出した釣り銭額を表すデータを端末装置５に送信するとともに、デバイスドライバＢにより蛍光表示管７を制御して当該釣り銭額を表示させる（ステップＳ３１５）。端末装置５は、受信したデータが表す釣り銭額を会計画面に表示する。
【００６９】
端末装置５との通信が確立されていないと判定した場合にも（ステップＳ３１４のＮｏ）、アプリケーションＢは、デバイスドライバＢにより蛍光表示管７を制御して釣り銭額を表示させる（ステップＳ３１６）。但しこの場合、アプリケーションＢは、釣り銭額を表すデータを端末装置５に送信しない。
【００７０】
ステップＳ３１５或いはステップＳ３１６の後、アプリケーションＢは、デバイスドライバＢによりドロワ９のロック機構を解除する（ステップＳ３１７）。
【００７１】
ステップＳ３１７の後、アプリケーションＢは、第２登録バッファ１４０に書き込まれた商品データなどを含むレシートの印刷データを生成し、デバイスドライバＢによりプリンタ８を制御して当該印刷データに基づくレシートを印刷させる。（ステップＳ３１８）。
【００７２】
ステップＳ３１８の後、アプリケーションＢは、第２登録バッファ１４０に書き込まれた商品データ、取引ナンバ、及び取引日時などを含む履歴データを生成し、メモリ１４に保存する（ステップＳ３１９）。さらに、アプリケーションＢは、第２登録バッファ１４０に書き込まれたデータを消去する（ステップＳ３２０）。
【００７３】
ステップＳ３２０を以って、アプリケーションＢは当該フローチャートに示す処理を終了する。
【００７４】
以上のようなアプリケーションＢの動作により、サーバダウン時に商品コードが入力された商品の商品データは“１”にセットされたフラグとともに第２登録バッファ１４０に書き込まれる。サーバダウン以前に商品コードが入力された商品が存在する場合、上述したクラウドＰＯＳにおける会計処理により、その商品の商品データは“０”にセットされたフラグとともに第２登録バッファ１４０に書き込まれる。したがって、サーバ２の第１登録バッファ２３に書き込み済みの商品データと、未書き込みの商品データとを区別できる。さらに、アプリケーションＢにより会計が完了した取引の取引データがメモリ１４に記憶される。
【００７５】
［アップロード処理］
ステップＳ１０３におけるアップロード処理について説明する。  
図８は、アップロード処理における監視ドライバＭの動作を示すフローチャートである。
【００７６】
先ず監視ドライバＭは、第２登録バッファ１４０に商品データが書き込まれているか否かを判定する（ステップＳ４０１）。商品データが書き込まれていると判定した場合（ステップＳ４０１のＹｅｓ）、監視ドライバＭは、サーバ２の第１登録バッファ２３にアクセスし、第１登録バッファ２３に商品データが書き込まれているか否かを判定する（ステップＳ４０２）。第１登録バッファ２３に商品データが書き込まれていると判定した場合（ステップＳ４０２のＹｅｓ）、監視ドライバＭは、第１登録バッファ２３と第２登録バッファ１４０に書き込まれた商品データに係る取引が同一取引であるか否かを判定する（ステップＳ４０３）。
【００７７】
ステップＳ４０３の判定手法の一例について説明する。サーバ２の記憶装置に取引ナンバを管理するための第１カウンタを設け、ＰＯＳ入出ボックス１のメモリ１４に取引バッファを管理するための第２カウンタを設ける。クラウドＰＯＳでの会計処理において、アプリケーションＡは、商品データが書き込まれていない状態の第１登録バッファ２３に１つ目の商品データを書き込む際（１取引の開始時）に、第１カウンタの値を１だけインクリメントする。さらに、監視ドライバＭは、商品データが書き込まれていない状態の第２登録バッファ１４０に１つ目の商品データを書き込む際（１取引の開始時）に、第２カウンタの値を１だけインクリメントする。すなわち、ＰＯＳシステムがクラウドＰＯＳとして機能している間は、第１，第２カウンタが同じ取引ナンバを示す。ローカルＰＯＳでの会計処理において、アプリケーションＢは、商品データが書き込まれていない状態の第２登録バッファ１４０に１つ目の商品データを書き込む際（１取引の開始時）に、第２カウンタの値を１だけインクリメントする。すなわち、ＰＯＳシステムがローカルＰＯＳとして機能している間に１取引が完了した場合、第１，第２カウンタの取引ナンバが異なる値となる。ＰＯＳシステムが再びクラウドＰＯＳとして機能する場合に、第１カウンタの取引ナンバを第２カウンタの取引ナンバで更新することにより、取引ナンバの整合性を保つことができる。
【００７８】
監視ドライバＭは、このような第１，第２カウンタを用いてステップＳ４０３の判定を行う。すなわち、監視ドライバＭは、第１，第２カウンタが示す取引ナンバが同一である場合に同一取引であると判定する。一方、監視ドライバＭは、第１，第２カウンタが示す取引ナンバが異なる場合に同一取引でないと判定する。
【００７９】
同一取引でないと判定した場合（ステップＳ４０３のＮｏ）、監視ドライバＭは、第１登録バッファ２３に書き込まれたデータを全て削除する（ステップＳ４０４）。さらに監視ドライバＭは、第２登録バッファ１４０の各レコードのうち、フラグが“１”であるレコードに書き込まれた商品コード及び商品データを第１登録バッファ２３にアップロード（転送）する（ステップＳ４０５）。なお、ステップＳ４０３で同一取引でないと判定された場合においては、第２登録バッファ１４０の全てのレコードにおけるフラグが“１”である。ステップＳ４０５の後、監視ドライバＭは、第２登録バッファ１４０の各レコードのフラグを“０”にセットする（ステップＳ４０６）。
【００８０】
一方、同一取引であると判定した場合（ステップＳ４０３のＹｅｓ）、監視ドライバＭは、ステップＳ４０４を経ずにステップＳ４０５，Ｓ４０６を実行する。この場合、第１登録バッファ２３には、ＰＯＳシステムがクラウドＰＯＳとして機能している際に商品コードが入力された商品の商品データと、ＰＯＳシステムがローカルＰＯＳとして機能している際に商品コードが入力された商品の商品データとが混在する。すなわち、クラウドＰＯＳによる会計処理の途中でローカルＰＯＳに切り替わり、その後にクラウドＰＯＳに復旧した場合において、店員は商品コードを入力し直すことなく会計を継続できる。
【００８１】
ステップＳ４０２において第１登録バッファ２３に商品データが書き込まれていないと判定した場合にも（ステップＳ４０２のＮｏ）、監視ドライバＭは、ステップＳ４０４を経ずにステップＳ４０５，Ｓ４０６を実行する。
【００８２】
ステップＳ４０１において第２登録バッファ１４０に商品データが書き込まれていないと判定した場合（ステップＳ４０１のＮｏ）、監視ドライバＭは、第１登録バッファ２３にデータが書き込まれているならばそのデータを全て削除する（ステップＳ４０７）。
【００８３】
ステップＳ４０６或いはステップＳ４０７の後、監視ドライバＭは、メモリ１４に履歴データが保存されているか否かを判定する（ステップＳ４０８）。履歴データが保存されていると判定した場合（ステップＳ４０８のＹｅｓ）、監視ドライバＭは、当該履歴データを履歴ＤＢ２４にアップロードする（ステップＳ４０９）。複数の履歴データがメモリ１４に保存されている場合、監視ドライバＭは、それら全てをアップロードする。ステップＳ４０９の後、監視ドライバＭは、メモリ１４から全ての履歴データを削除する（ステップＳ４１０）。
【００８４】
ステップＳ４１０の後、或いはメモリ１４に履歴データが保存されていないと判定した場合（ステップＳ４０８のＮｏ）、監視ドライバＭはアップロード処理を終了する。このようなアップロード処理により、ＰＯＳシステムがローカルＰＯＳとして機能した際に入力された商品データを登録バッファ２３に補充できる。さらに、ＰＯＳシステムがローカルＰＯＳとして機能した際に処理された取引の履歴データを履歴ＤＢ２４に補充できる。
【００８５】
以上の説明から明らかなように、ＰＯＳ入出力ボックス１は、通信装置１５によるサーバ２との通信が確立されている場合にサーバ２による周辺機器の制御を中継する中継手段、通信装置１５によるサーバ２との通信が切断された場合にサーバ２によらずに周辺機器を直接制御して会計処理を実行する会計処理手段、及び、通信装置１５によるサーバ２との通信が切断された後に当該通信が復旧した場合、メモリ１４が記憶する商品データ等の情報をサーバ２に転送する転送手段として機能する。これら各手段としての機能は、主に監視ドライバＭ、デバイスドライバＡ，Ｂ、及びアプリケーションＢによって実現される。
【００８６】
また、サーバ２は、周辺機器を制御するための制御データをＰＯＳ入出力ボックス１に送信し、ＰＯＳ入出力ボックス１から送信される周辺機器からの入力データに基づいて会計処理を実行する会計処理手段として機能する。この手段としての機能は、主にアプリケーションＡによって実現される。
【００８７】
本実施形態に係るＰＯＳシステムによれば、サーバ２がダウンするなどしてＰＯＳ入出力ボックス１とサーバ２との通信が切断された場合であっても、ＰＯＳ入出力ボックス１を主体としたローカルＰＯＳとして会計処理を継続できる。したがって、ＰＯＳシステムの信頼性が向上する。
【００８８】
また、本実施形態に係るＰＯＳシステムは、クラウドＰＯＳによる会計処理にて入力された商品コードに係る商品データを第１登録バッファ２３と第２登録バッファ１４０の双方に書き込む。したがって、会計処理中にクラウドＰＯＳからローカルＰＯＳに切り替わった場合でも、再度の商品コード入力を要することなく、第２登録バッファ１４０に書き込まれた商品データを用いて会計処理を継続できる。
【００８９】
また、本実施形態に係るＰＯＳシステムは、ローカルＰＯＳによる会計処理にて第２登録バッファ１４０に書き込まれた商品データをＰＯＳ入出力ボックス１及びサーバ２間の通信が復旧した後にサーバ２に転送する。したがって、会計処理中にローカルＰＯＳからクラウドＰＯＳに切り替わった場合でも、再度の商品コード入力を要することなく、第１登録バッファ２３に書き込まれた商品データを用いて会計処理を継続できる。
【００９０】
また、本実施形態に係るＰＯＳシステムは、ローカルＰＯＳとして機能している際に、ＰＯＳ入出力ボックス１と端末装置５との通信が不可能な場合であっても、蛍光表示管７やプリンタ８などの周辺機器を用いて会計処理を継続できる。  
その他にも、本実施形態にて開示した構成からは、種々の好適な効果が得られる。
【００９１】
本実施形態に関するいくつかの変形例を示す。
【００９２】
本実施形態では会計システムの一例として、小売店において販売される商品の代金を会計するＰＯＳシステムを開示した。しかしながら、このＰＯＳシステムと同様の構成を、役務を提供する店舗（例えば飲食店）において役務の代金を会計する会計システムに適用することもできる。
【００９３】
また、会計システムは、ＰＯＳ入出力ボックス１に接続される周辺機器として、クレジットカード及びポイントカードなどのカードを読み取るカードリーダや、電子マネー媒体から電子マネーに関する情報を読み取る電子マネーリーダなどの装置を含んでもよい。
【００９４】
また、本実施形態ではクラウドを利用したＰＯＳシステムを例示した。しかしながら、店舗や本部に設置されたサーバを用いたクライアントサーバシステムのような他の形態のネットワークコンピューティングにより会計システムを構築してもよい。
【００９５】
本記実施形態ではＰＯＳ入出力ボックス１のメモリ１３がＡＰファイル１３０やドライバファイル１３１を予め記憶するとした。しかしながら、ＡＰファイル１３０やドライバファイル１３１は、必ずしもＰＯＳ入出力ボックス１などの電子機器に予め記憶されている必要はない。ＡＰファイル１３０やドライバファイル１３１は、ネットワークから電子機器にダウンロードされてもよいし、記録媒体に記録されたものが電子機器にインストールされてもよい。記録媒体は、ＣＤ−ＲＯＭ或いはメモリカードなどのようにデータを記憶でき、かつ装置が読み取り可能であれば、その形態は問わない。また、ＡＰファイル１３０やドライバファイル１３１のインストールやダウンロードにより得る機能は、電子機器のＯＳ（オペレーティング・システム）等と協働してその機能を実現させるものであってもよい。
【００９６】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００９７】
１…ＰＯＳ入出ボックス、２…サーバ、３…アクセスポイント、４…ハブ、５…端末装置、６…スキャナ、７…蛍光表示管、８…プリンタ、９…ドロワ、１０，２０…ＣＰＵ、１５…通信装置、１６…デバイスコネクタ、２１，１３０…ＡＰファイル、２２…ＰＬＵマスタ、２３…第１登録バッファ、２４…履歴ＤＢ、１３１…ドライバファイル、１４０…第２登録バッファ。
【図１】
2014149602.tif 000003
【図２】
2014149602.tif 000004
【図３】
2014149602.tif 000005
【図４】
2014149602.tif 000006
【図５】
2014149602.tif 000007
【図６】
2014149602.tif 000008
【図７】
2014149602.tif 000009
【図８】
2014149602.tif 000010