(57)【特許請求の範囲】
【請求項１】
デバイスと接続したＰＯＳ端末装置であって、
前記ＰＯＳ端末装置が備える制御部は、排他制御プログラムとアプリケーションプログラムとを実行し、
前記排他制御プログラムは、
第１のポートを介して前記アプリケーションプログラムから前記アプリケーションプログラムが生成した要求電文を受信する機能と、第２のポートを介して前記ＰＯＳ端末装置に対してメンテナンスの作業を行う情報処理装置が実行するメンテナンスプログラムから前記メンテナンスプログラムが生成した要求電文を受信する機能とを有し、
前記第１のポートを介して前記アプリケーションプログラムから第１の要求電文を受信した場合、前記第１の要求電文に設定された第１の排他制御コードと前記デバイスに対する命令とを読み取り、
前記第１の排他制御コードが前記デバイスに対する命令を実行する権限である命令実行権限を有するか否かを判定し、
前記第１の排他制御コードが前記デバイスに対する前記命令実行権限を有する場合、前記デバイスがメンテナンスの作業中の状態であるか否かを判定し、
前記デバイスがメンテナンスの作業中の状態である場合、前記デバイスが使用中であることを示す値を設定した第１の応答電文を生成し、前記第１のポートを介して前記第１の応答電文を前記第１の要求電文の送信元である前記アプリケーションプログラムに送信し、
前記デバイスがメンテナンスの作業中の状態でない場合、前記第１の排他制御コードを用いて前記デバイスに対して前記命令を実行する要求を送信し、前記命令を実行した結果と前記第１の排他制御コードとを設定した第２の応答電文を生成し、前記第１のポートを介して前記第２の応答電文を前記第１の要求電文の送信元である前記アプリケーションプログラムに送信し、
前記アプリケーションプログラムは、
前記第１の応答電文を受信した場合、前記第１の応答電文に設定された前記デバイスが使用中であることを示す値を読み取り、前記第１の要求電文に設定された前記第１の排他制御コードを有効な値と認識し、
前記第１の要求電文に含まれる前記命令と前記命令を前記デバイスに継続して実行させる前記第１の排他制御コードとを設定した第２の要求電文を生成し、前記第１のポートを介して前記第２の要求電文を前記排他制御プログラムに送信し、
前記排他制御プログラムは、
前記第２の要求電文を受信した場合、前記第２の要求電文に設定された前記第１の排他制御コードが前記デバイスに対する前記命令を実行する権限を有するか否かを判定し、
前記第１の排他制御コードが前記デバイスに対する前記命令を実行する権限を有する場合、前記デバイスがメンテナンスの作業中の状態であるか否かを判定し、
前記デバイスがメンテナンスの作業中の状態でない場合、前記第１の排他制御コードを用いて前記命令を継続して実行する要求を前記デバイスに対して送信する、
ＰＯＳ端末装置。
【請求項２】
前記排他制御プログラムは、
前記第１のポートを介して前記アプリケーションプログラムから前記アプリケーションプログラムが生成した要求電文を受信した場合、
前記デバイスがメンテナンスの作業中の状態でない場合であり、前記要求電文に含まれる前記命令が前記デバイスに対する処理を開始する命令である場合、
前記デバイスに対する前記命令実行権限を有するデバイス排他制御コードを生成し、
前記デバイス排他制御コードを前記第１の排他制御コードとして設定した応答電文を生成し、
前記第１のポートを介して前記応答電文を前記要求電文の送信元である前記アプリケーションプログラムに送信する、
請求項１記載のＰＯＳ端末装置。
【請求項３】
前記排他制御プログラムは、
前記第２のポートを介して前記メンテナンスプログラムから前記メンテナンスプログラムが生成した要求電文を受信した場合、
前記要求電文に設定された前記デバイスに対する命令を読み取り、
前記命令が前記デバイスに対する処理を開始する命令である場合、前記デバイスに対するメンテナンスの作業を実行する権限である第２の排他制御コードを生成し、
前記第２の排他制御コードを設定した応答電文を生成し、
前記第２のポートを介して前記応答電文を前記要求電文の送信元である前記メンテナンスプログラムに送信する、
請求項１記載のＰＯＳ端末装置。
【請求項４】
前記排他制御プログラムは、
前記デバイスがメンテナンスの作業中の状態であるか否かを判定するための値であるメンテナンスフラグを予め記憶部に記憶し、
前記第２のポートを介して前記メンテナンスプログラムから前記メンテナンスプログラムが生成した要求電文を受信した場合、
前記要求電文に設定された前記デバイスに対する命令が前記デバイスに対する処理を開始する命令である場合、前記メンテナンスフラグの値にメンテナンスの作業中の状態を示す値を設定し、
前記要求電文に設定された前記デバイスに対する命令が前記デバイスに対する処理を終了する命令である場合、前記メンテナンスフラグの値にメンテナンスの作業中の状態でないことを示す値を設定する、
請求項１記載のＰＯＳ端末装置。
【請求項５】
デバイスと接続したＰＯＳ端末装置におけるＰＯＳ端末排他制御方法であって、
前記ＰＯＳ端末装置が備える制御部は、排他制御プログラムとアプリケーションプログラムとを実行し、
前記排他制御プログラムは、
第１のポートを介して前記アプリケーションプログラムから前記アプリケーションプログラムが生成した要求電文を受信する機能と、第２のポートを介して前記ＰＯＳ端末装置に対してメンテナンスの作業を行う情報処理装置が実行するメンテナンスプログラムから前記メンテナンスプログラムが生成した要求電文を受信する機能とを有し、
前記第１のポートを介して前記アプリケーションプログラムから第１の要求電文を受信した場合、前記第１の要求電文に設定された第１の排他制御コードと前記デバイスに対する命令とを読み取り、
前記第１の排他制御コードが前記デバイスに対する命令を実行する権限である命令実行権限を有するか否かを判定し、
前記第１の排他制御コードが前記デバイスに対する前記命令実行権限を有する場合、前記デバイスがメンテナンスの作業中の状態であるか否かを判定し、
前記デバイスがメンテナンスの作業中の状態である場合、前記デバイスが使用中であることを示す値を設定した第１の応答電文を生成し、前記第１のポートを介して前記第１の応答電文を前記第１の要求電文の送信元である前記アプリケーションプログラムに送信し、
前記デバイスがメンテナンスの作業中の状態でない場合、前記第１の排他制御コードを用いて前記デバイスに対して前記命令を実行する要求を送信し、前記命令を実行した結果と前記第１の排他制御コードとを設定した第２の応答電文を生成し、前記第１のポートを介して前記第２の応答電文を前記第１の要求電文の送信元である前記アプリケーションプログラムに送信し、
前記アプリケーションプログラムは、
前記第１の応答電文を受信した場合、前記第１の応答電文に設定された前記デバイスが使用中であることを示す値を読み取り、前記第１の要求電文に設定された前記第１の排他制御コードを有効な値と認識し、
前記第１の要求電文に含まれる前記命令と前記命令を前記デバイスに継続して実行させる前記第１の排他制御コードとを設定した第２の要求電文を生成し、前記第１のポートを介して前記第２の要求電文を前記排他制御プログラムに送信し、
前記排他制御プログラムは、
前記第２の要求電文を受信した場合、前記第２の要求電文に設定された前記第１の排他制御コードが前記デバイスに対する前記命令を実行する権限を有するか否かを判定し、
前記第１の排他制御コードが前記デバイスに対する前記命令を実行する権限を有する場合、前記デバイスがメンテナンスの作業中の状態であるか否かを判定し、
前記デバイスがメンテナンスの作業中の状態でない場合、前記第１の排他制御コードを用いて前記命令を継続して実行する要求を前記デバイスに対して送信する、
ＰＯＳ端末排他制御方法。
【請求項６】
デバイスと接続したＰＯＳ端末装置を含むＰＯＳシステムであって、
前記ＰＯＳ端末装置が備える制御部は、排他制御プログラムとアプリケーションプログラムとを実行し、
前記排他制御プログラムは、
第１のポートを介して前記アプリケーションプログラムから前記アプリケーションプログラムが生成した要求電文を受信する機能と、第２のポートを介して前記ＰＯＳ端末装置に対してメンテナンスの作業を行う情報処理装置が実行するメンテナンスプログラムから前記メンテナンスプログラムが生成した要求電文を受信する機能とを有し、
前記第１のポートを介して前記アプリケーションプログラムから第１の要求電文を受信した場合、前記第１の要求電文に設定された第１の排他制御コードと前記デバイスに対する命令とを読み取り、
前記第１の排他制御コードが前記デバイスに対する命令を実行する権限である命令実行権限を有するか否かを判定し、
前記第１の排他制御コードが前記デバイスに対する前記命令実行権限を有する場合、前記デバイスがメンテナンスの作業中の状態であるか否かを判定し、
前記デバイスがメンテナンスの作業中の状態である場合、前記デバイスが使用中であることを示す値を設定した第１の応答電文を生成し、前記第１のポートを介して前記第１の応答電文を前記第１の要求電文の送信元である前記アプリケーションプログラムに送信し、
前記デバイスがメンテナンスの作業中の状態でない場合、前記第１の排他制御コードを用いて前記デバイスに対して前記命令を実行する要求を送信し、前記命令を実行した結果と前記第１の排他制御コードとを設定した第２の応答電文を生成し、前記第１のポートを介して前記第２の応答電文を前記第１の要求電文の送信元である前記アプリケーションプログラムに送信し、
前記アプリケーションプログラムは、
前記第１の応答電文を受信した場合、前記第１の応答電文に設定された前記デバイスが使用中であることを示す値を読み取り、前記第１の要求電文に設定された前記第１の排他制御コードを有効な値と認識し、
前記第１の要求電文に含まれる前記命令と前記命令を前記デバイスに継続して実行させる前記第１の排他制御コードとを設定した第２の要求電文を生成し、前記第１のポートを介して前記第２の要求電文を前記排他制御プログラムに送信し、
前記排他制御プログラムは、
前記第２の要求電文を受信した場合、前記第２の要求電文に設定された前記第１の排他制御コードが前記デバイスに対する前記命令を実行する権限を有するか否かを判定し、
前記第１の排他制御コードが前記デバイスに対する前記命令を実行する権限を有する場合、前記デバイスがメンテナンスの作業中の状態であるか否かを判定し、
前記デバイスがメンテナンスの作業中の状態でない場合、前記第１の排他制御コードを用いて前記命令を継続して実行する要求を前記デバイスに対して送信する、
ＰＯＳシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＰＯＳ端末装置、ＰＯＳ端末排他制御方法及びＰＯＳシステムに関する。
【背景技術】
【０００２】
スーパーマーケット、コンビニエンスストア等の小売店等では、ＰＯＳ（Point Of Sale）端末装置が広く普及している。ＰＯＳ端末装置は、バーコードスキャナを備え、商品に付されたバーコードをスキャンし、商品コードを取得する。そして、ＰＯＳ端末装置は、取得した商品コードで商品情報ファイルを検索し、商品名や販売価格等の商品情報を取得し、商品情報をプリンタでレシートに印刷する。
【０００３】
ＰＯＳ端末装置が故障した場合において、ＰＯＳ端末装置の故障を検知し、故障の検知に基づいてＰＯＳ端末装置の周辺機器の入出力制御を行う通常制御から代理制御に切り替える技術が知られている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１２−００３４４５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ＰＯＳ端末装置に接続されている各種デバイス等の周辺機器の故障や不具合が発見されてから修理を行うのでは顧客対応として遅すぎるため、故障が発生する前に保守員が保守や点検等のメンテナンスの作業を行う必要がある。
【０００６】
また、周辺機器に対し処理を実行する要求が複数送信された場合、周辺機器は複数の処理を同時に実行することはできない。また、処理を実行中（使用中）の周辺機器について、メンテナンスの作業を実行するために実行中の処理を中断するのは、ＰＯＳシステムの運用上の問題として好ましくない。このため、保守員は、周辺機器について使用中であるか否かを判定し、使用中の周辺機器については使用終了後にメンテナンスの作業を行う必要がある。このため、ＰＯＳ端末装置に接続された周辺機器のメンテナンスの作業を行うために、多くの時間と労力が費やされていた。
【０００７】
ＰＯＳ端末装置の周辺機器について、実行中の処理を中断することを要せずに、メンテナンスの作業のための処理の実行が可能な技術が望まれている。
一側面では、本発明は、ＰＯＳ端末装置の周辺機器について実行中の処理を継続しつつメンテナンスの作業が可能なＰＯＳ端末装置、ＰＯＳ端末排他制御方法及びＰＯＳシステムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、以下に示すようなＰＯＳ端末装置を提供する。デバイスと接続したＰＯＳ端末装置が備える制御部は、排他制御プログラムとアプリケーションプログラムとを実行する。排他制御プログラムは、第１のポートを介してアプリケーションプログラムからアプリケーションプログラムが生成した要求電文を受信する機能と、第２のポートを介してＰＯＳ端末に対してメンテナンスの作業を行う情報処理装置が実行するメンテナンスプログラムからメンテナンスプログラムが生成した要求電文を受信する機能とを有し、第１のポートを介してアプリケーションプログラムから第１の要求電文を受信した場合、第１の要求電文に設定された第１の排他制御コードとデバイスに対する命令とを読み取り、第１の排他制御コードがデバイスに対する命令を実行する権限である命令実行権限を有するか否かを判定し、第１の排他制御コードがデバイスに対する命令実行権限を有する場合、デバイスがメンテナンスの作業中の状態であるか否かを判定し、デバイスがメンテナンスの作業中の状態である場合、デバイスが使用中であることを示す値を設定した第１の応答電文を生成し、第１のポートを介して第１の応答電文を要求電文の送信元であるアプリケーションプログラムに送信し、デバイスがメンテナンスの作業中の状態でない場合、第１の排他制御コードを用いてデバイスに対して命令を実行する要求を送信し、命令を実行した結果と第１の排他制御コードとを設定した第２の応答電文を生成し、第１のポートを介して第２の応答電文を第１の要求電文の送信元であるアプリケーションプログラムに送信する。アプリケーションプログラムは、第１の応答電文を受信した場合、第１の応答電文に設定されたデバイスが使用中であることを示す値を読み取り、第１の要求電文に設定された第１の排他制御コードを有効な値と認識し、第１の要求電文に含まれる命令と命令をデバイスに継続して実行させる第１の排他制御コードとを設定した第２の要求電文を生成し、第１のポートを介して第２の要求電文を排他制御プログラムに送信する。排他制御プログラムは、第２の要求電文を受信した場合、第２の要求電文に設定された第１の排他制御コードがデバイスに対する命令を実行する権限を有するか否かを判定し、第１の排他制御コードがデバイスに対する命令を実行する権限を有する場合、デバイスがメンテナンスの作業中の状態であるか否かを判定し、デバイスがメンテナンスの作業中の状態でない場合、第１の排他制御コードを用いて命令を継続して実行する要求をデバイスに対して送信する。
【発明の効果】
【０００９】
一態様によれば、ＰＯＳ端末装置の周辺機器について実行中の処理を継続しつつメンテナンスの作業が可能なＰＯＳ端末装置、ＰＯＳ端末排他制御方法及びＰＯＳシステムを提供できる。
【図面の簡単な説明】
【００１０】
【図１】第１の実施形態のＰＯＳシステムの構成の一例を示す図である。
【図２】第２の実施形態のＰＯＳシステムの構成の一例を示す図である。
【図３】第２の実施形態のＰＯＳ端末装置の外観の一例を示す図である。
【図４】第２の実施形態のキャッシャユニットのハードウェア構成の一例を示す図である。
【図５】第２の実施形態のチェッカユニットのハードウェア構成の一例を示す図である。
【図６】第２の実施形態のＰＯＳシステムのソフトウェア構成の一例を示す図である。
【図７】第２の実施形態の電文のフォーマットの一例を示す図である。
【図８】第２の実施形態のＰＯＳ排他制御処理のフローチャートを示す図である。
【図９】第２の実施形態の通常排他制御処理のフローチャートを示す図である（その１）。
【図１０】第２の実施形態の通常排他制御処理のフローチャートを示す図である（その２）。
【図１１】第２の実施形態のメンテナンス排他制御処理のフローチャートを示す図である。
【図１２】第２の実施形態のメンテナンス作業中処理のフローチャートを示す図である。
【発明を実施するための形態】
【００１１】
以下、実施形態について図面を参照して説明する。
［第１の実施形態］
まず、第１の実施形態のＰＯＳシステムについて図１を用いて説明する。図１は、第１の実施形態のＰＯＳシステムの構成の一例を示す図である。
【００１２】
ＰＯＳシステム１は、小売店等における取引の会計処理に用いられるシステムである。取引は、小売店等における商品の購入や、娯楽施設等におけるサービスの提供等を含む。
ＰＯＳシステム１は、１以上のＰＯＳ端末装置２ａと１以上の情報処理装置４ａとを含んで構成される。
【００１３】
情報処理装置４ａは、ＰＯＳ端末装置２ａに接続されたデバイス２ｅについて保守や点検等のメンテナンスの作業を実行するためのコンピュータである。情報処理装置４ａは、メンテナンスプログラム４ｂによって、メンテナンス作業を実行する。
【００１４】
メンテナンスプログラム４ｂは、保守員からメンテナンスの作業の処理の入力を受け付け、第２のポート３ｂを介して排他制御プログラム２ｃにメンテナンスの作業の要求電文を送信する。また、メンテナンスプログラム４ｂは、メンテナンスの作業の要求電文に対する応答電文を排他制御プログラム２ｃから受信する。
【００１５】
ＰＯＳ端末装置２ａは、商品のバーコードをスキャナで読み取り、商品の会計処理を行い、会計情報をディスプレイに表示し、会計情報をプリンタでレシートに印刷して出力し、ＰＯＳサーバにネットワーク７を介して取引に関する情報を送信する機能を有している。ＰＯＳ端末装置２ａは、デバイス２ｅと接続している。デバイス２ｅは、ＰＯＳ端末装置２ａに接続する周辺機器であり、スキャナやディスプレイやプリンタ等を含む。
【００１６】
ＰＯＳ端末装置２ａは、複数のプログラムが協働することによりデバイス２ｅに各種の処理を実行させる。ＰＯＳ端末装置２ａで実行するプログラムには、アプリケーション２ｂ、排他制御プログラム２ｃ、デバイスアクセスプログラム２ｄがある。なお、ＰＯＳ端末装置２ａおよび情報処理装置４ａで実行するプログラムには、ユーザインタフェースプログラムやオペレーティングシステムやデバイスドライバ等も含むが、これらについては図示を省略する。
【００１７】
アプリケーション２ｂは、ＰＯＳ端末装置２ａで実行するプログラムであり、ユーザインタフェースプログラム等を介してタッチパネルから会計処理の入力や、スキャナでのバーコード読み取り等を受け付ける。アプリケーション２ｂは、受け付けた内容に基づき、デバイス２ｅに対する処理を実行するための要求電文を第１のポート３ａを介して排他制御プログラム２ｃに送信する。アプリケーション２ｂは、排他制御プログラム２ｃから要求電文に対応する応答電文を受信する。
【００１８】
排他制御プログラム２ｃは、アプリケーション２ｂやメンテナンスプログラム４ｂからデバイス２ｅに対する処理を実行するための要求電文を受信し、デバイス２ｅに対する排他制御を行う。排他制御プログラム２ｃは、デバイスアクセスプログラム２ｄが生成したデバイス排他制御コード６ｄを取得し、デバイス２ｅに対する処理を実行する要求をデバイスアクセスプログラム２ｄに送信する。デバイス排他制御コード６ｄは、デバイスに対する命令を実行する権限（排他制御権）を示す値である。また、排他制御プログラム２ｃは、デバイス２ｅに対するメンテナンスの作業を実行する権限である第２の排他制御コードを生成し、メモリ等の記憶部に記憶する。
【００１９】
デバイスアクセスプログラム２ｄは、デバイス排他制御コード６ｄが設定された要求を受け付け、デバイスドライバ等を介してデバイス２ｅに対し処理の実行を要求する。
なお、これらのプログラムは、ＰＯＳ端末装置２ａ、情報処理装置４ａが備える図示しないＣＰＵ（Central Processing Unit）等の制御部によって実行されることにより、その処理機能が実現される。
【００２０】
ここで、ＰＯＳ端末装置２ａにおける排他制御プログラム２ｃが実行する排他制御について説明する。
ＰＯＳ端末装置２ａは、第１のポート３ａ又は第２のポート３ｂのいずれかのポートを介して要求電文を受信する。要求電文とは、ＰＯＳ端末装置２ａに接続されたデバイス２ｅに対する処理を実行するための要求電文である。
【００２１】
ＰＯＳ端末装置２ａは、第１のポート３ａを介して要求電文を受信した場合、要求電文に設定された第１の排他制御コード６ａとデバイス２ｅに対する命令とを読み取る。
ＰＯＳ端末装置２ａは、第１の排他制御コード６ａがデバイス２ｅに対する命令を実行する権限である命令実行権限を有するか否かを判定し、第１の排他制御コード６ａがデバイスに対する命令実行権限を有する場合、デバイス２ｅがメンテナンスの作業中の状態であるか否かを判定する。
【００２２】
例えば、メンテナンスの作業中の状態であるか否かは、デバイス２ｅがメンテナンスの作業中の状態であるか否かを判定するための値であるメンテナンスフラグ６ｃを予めメモリ等の記憶部に記憶し、メンテナンスフラグ６ｃの値により判定できる。
【００２３】
ＰＯＳ端末装置２ａは、第２のポート３ｂを介してデバイス２ｅに対する処理を開始する命令（メンテナンスの作業を開始する要求）を受信した場合に、デバイス２ｅがメンテナンスの作業中の状態であることを示す値「ＯＮ」をメンテナンスフラグ６ｃに設定する。メンテナンス作業を開始する要求を受信した場合とは、第２の排他制御コード６ｂとデバイス２ｅに対する処理を開始する命令とを設定した要求電文を第２のポート３ｂを介して排他制御プログラム２ｃが受信した場合である。
【００２４】
ＰＯＳ端末装置２ａは、第２のポート３ｂを介してデバイス２ｅに対する処理を終了する命令（メンテナンスの作業を終了する要求）を受信した場合に、デバイス２ｅがメンテナンスの作業中の状態でないことを示す値「ＯＦＦ」をメンテナンスフラグ６ｃに設定する。メンテナンスの作業を終了する要求を受信した場合とは、第２の排他制御コード６ｂとデバイス２ｅに対する処理を終了する命令とを設定した要求電文を第２のポート３ｂを介して排他制御プログラム２ｃが受信した場合である。
【００２５】
ＰＯＳ端末装置２ａは、デバイス２ｅがメンテナンスの作業中の状態である場合、デバイス２ｅが使用中であることを示す値（ビジー状態値）を設定した応答電文を生成する。
ＰＯＳ端末装置２ａは、デバイス２ｅがメンテナンスの作業中の状態でない場合、第１の排他制御コード６ａを用いてデバイス２ｅに対する命令を実行し、命令を実行した結果と第１の排他制御コード６ａとを設定した応答電文を生成する。ＰＯＳ端末装置２ａは、応答電文を要求電文の送信元に送信する。
【００２６】
要求電文の要求元がアプリケーション２ｂである場合、ＰＯＳ端末装置２ａの排他制御プログラム２ｃは、アプリケーション２ｂに応答電文を送信する。
アプリケーション２ｂは、ビジー状態値を有する応答電文を受信した後、第１の排他制御コード６ａを用いて排他制御プログラム２ｃを介してデバイス２ｅに対する処理を実行する要求電文を再度送信することが可能である。アプリケーション２ｂは、要求電文を送信後に異常値（エラー状態値）を有する応答電文を受信した場合、要求電文に設定した第１の排他制御コード６ａが無効な値として認識する。しかし、ビジー状態値を有する応答電文を受信した場合、デバイス２ｅが使用中であると認識し、第１の排他制御コード６ａは有効な値として認識する。また、排他制御プログラム２ｃは、第１の排他制御コード６ａが命令実行権限を有する場合、メンテナンスの作業中においても、第１の排他制御コード６ａを廃棄せず記憶部に記憶することで保持するからである。
【００２７】
これにより、アプリケーション２ｂは、デバイス２ｅに対してメンテナンスの作業が発生した場合であっても、継続して同一のデバイス２ｅに対する命令実行権限（排他制御権限）である第１の排他制御コード６ａを用いることができる。
【００２８】
このようにして、ＰＯＳ端末装置２ａの周辺機器について実行中の処理を継続しつつメンテナンスの作業が可能なＰＯＳ端末装置、ＰＯＳ端末排他制御方法及びＰＯＳシステムを提供できる。
【００２９】
［第２の実施形態］
次に、第２の実施形態のＰＯＳシステムについて図２を用いて説明する。図２は、第２の実施形態のＰＯＳシステムの構成の一例を示す図である。
【００３０】
ＰＯＳシステム１００は、ＰＯＳサーバ４００と１台または複数台のメンテナンス端末５００（図２では２台のメンテナンス端末５００，５１０を図示）と１台または複数台のＰＯＳ端末装置２００（図２では３台のＰＯＳ端末装置２００，２１０，２２０を図示）を備え、販売時点情報管理を行う。
【００３１】
ＰＯＳサーバ４００とＰＯＳ端末装置２００，２１０，２２０とメンテナンス端末５００，５１０とは、ネットワーク１５０を介して通信可能に接続される。ネットワーク１５０は、有線ネットワークであってもよいし、無線ネットワークであってもよい。
【００３２】
ＰＯＳサーバ４００は、ＰＯＳ端末装置２００，２１０，２２０により登録された販売情報等を管理する。
ＰＯＳ端末装置２００，２１０，２２０は、各種のデバイス（プリンタやスキャナやディスプレイ等）が接続されている。ＰＯＳ端末装置２００，２１０，２２０の詳細について、図３，図４および図５を用いて後で説明する。
【００３３】
メンテナンス端末５００，５１０は、ＰＯＳ端末装置２００，２１０，２２０に対し保守や点検等のメンテナンスを行うためのコンピュータであり、携帯端末やタブレット等であってもよい。メンテナンスを行う保守員は、メンテナンス端末５００，５１０を用いてＰＯＳ端末装置２００，２１０，２２０の不具合の有無の確認や、故障の修理等を行うために用いる。
【００３４】
次に、ＰＯＳ端末装置の外観について図３を用いて説明する。図３は、第２の実施形態のＰＯＳ端末装置の外観の一例を示す図である。
ＰＯＳ端末装置２００は、キャッシャユニット１０２と、チェッカユニット１０３とを有する。
【００３５】
キャッシャユニット１０２は、主として販売代金の受領作業を行うためのユニットである。キャッシャユニット１０２は、制御ユニット１４０と、キーボード１０５、自動釣銭機１０６、キャッシュドロア１０７、自動釣札機１０８、磁気カードリーダ１０９、タッチパネル１１０、ディスプレイ１１１、カスタマディスプレイ１１２、プリンタ１１３を有する。
【００３６】
制御ユニット１４０は、キャッシャユニット１０２を制御すると共に、ＰＯＳ端末装置２００を統括的に制御するコンピュータである。
自動釣銭機１０６は、顧客から受け取った硬貨の入金と、釣銭の出金とを行う。自動釣札機１０８は、顧客から受け取った紙幣の入金と、釣札の出金とを行う。キャッシュドロア１０７は、硬貨及び紙幣を収納する収納庫である。
【００３７】
ディスプレイ１１１は、取引作業を行うための所定のＧＵＩ（Graphical User Interface）を表示する。また、ディスプレイ１１１は、例えば、液晶ディスプレイである。ディスプレイ１１１は、タッチパネル１１０の下層に位置している。ディスプレイ１１１の表示する画像は、タッチパネル１１０を透過して、オペレータから視認可能である。オペレータは、ディスプレイ１１１によって表示された画像を見ながら、タッチパネル１１０に対するタッチ操作を行うことができる。キーボード１０５は、ディスプレイ１１１に表示されたＧＵＩを操作するための入力装置である。カスタマディスプレイ１１２は、顧客側に取引情報を表示する表示装置であり、例えば、商品購入代金の合計額、顧客からの預かり金額、釣銭金額等を表示する。磁気カードリーダ１０９は、クレジットカード、会員カード等が備える磁気ストライプに記録された情報を読み取る。プリンタ１１３は、顧客の精算処理結果をロール紙に印字してレシートを発行する印字手段である。
【００３８】
チェッカユニット１０３は、主として商品コードの入力作業を行うためのユニットである。チェッカユニット１０３は、レーン台１１５と、支柱１１６、スキャナ１２３、スピーカ１１８、多項目キーボード１１９、ディスプレイ１２０、カスタマディスプレイ１２１、タッチパネル１２２を有する。
【００３９】
レーン台１１５は、支柱１１６を支持する。また、レーン台１１５には、顧客が持参した買い物かごや、買い物かごに投入された商品が載置される。支柱１１６は、スキャナ１２３と、スピーカ１１８、多項目キーボード１１９、ディスプレイ１２０、カスタマディスプレイ１２１、タッチパネル１２２を支持する。
【００４０】
スキャナ１２３は、商品に付与されたバーコードを読み取るための装置である。オペレータは、商品に付されたバーコードをスキャナ１２３に向けてかざすことで、スキャナ１２３を入力装置とした商品コードの入力を行う。商品コードの入力結果は、ディスプレイ１２０に表示されて、オペレータが商品コードの入力結果を確認することができる。
【００４１】
タッチパネル１２２は、バーコードの付されていない商品（例えば、ばら売りの野菜や魚等の生鮮食料品や、惣菜等）をディスプレイ１２０に表示される商品群から選択する入力装置である。カスタマディスプレイ１２１は、顧客側に取引情報を表示する表示装置であり、例えば、商品コードを入力した商品の名称、単価等を表示する。また、スピーカ１１８により音声で入力結果を報知する。例えば、スピーカ１１８は、入力が正常になされたときと、入力についてオペレータに注意喚起をする必要があるとき等状態に応じて異なる態様の音声出力を行う。多項目キーボード１１９は、オペレータの操作を受け付ける。例えば、多項目キーボード１１９は、スピーカ１１８からの音声出力で注意喚起されたときに、操作の誤りを識別したオペレータによる訂正操作を受け付ける。
【００４２】
次に、キャッシャユニットのハードウェア構成について図４を用いて説明する。
図４は、第２の実施形態のキャッシャユニットのハードウェア構成の一例を示す図である。
【００４３】
キャッシャユニット１０２は、制御ユニット１４０に各種入出力装置を接続する。制御ユニット１４０は、ＣＰＵ１４０ａによって装置全体が制御されている。ＣＰＵ１４０ａには、バス１４０ｇを介してＲＡＭ（Random Access Memory）１４０ｂと、ＨＤＤ（Hard Disk Drive：ハードディスクドライブ）１４０ｃ、通信インタフェース１４０ｄ、グラフィック処理装置１４０ｅ、入出力インタフェース１４０ｆが接続されている。
【００４４】
ＲＡＭ１４０ｂには、ＣＰＵ１４０ａに実行させるＯＳ（Operating System）のプログラム、ＰＯＳ業務を実行するためのアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１４０ｂにはＣＰＵ１４０ａによる処理に必要な各種データが格納される。ＨＤＤ１４０ｃにはＯＳ、アプリケーションプログラムが格納される。
【００４５】
グラフィック処理装置１４０ｅには、ディスプレイ１１１及びカスタマディスプレイ１１２が接続されている。グラフィック処理装置１４０ｅはＣＰＵ１４０ａからの命令に応じて、画像をディスプレイ１１１及びカスタマディスプレイ１１２の画面に表示させる。
【００４６】
入出力インタフェース１４０ｆには、キーボード１０５と、自動釣銭機１０６、キャッシュドロア１０７、自動釣札機１０８、磁気カードリーダ１０９、タッチパネル１１０、プリンタ１１３が接続されている。また、入出力インタフェース１４０ｆは、可搬型記録媒体１２３への情報の書込み、並びに、可搬型記録媒体１２３への情報の読出しが可能な可搬型記録媒体インタフェースと接続可能になっている。入出力インタフェース１４０ｆは、キーボード１０５と、自動釣銭機１０６、キャッシュドロア１０７、自動釣札機１０８、磁気カードリーダ１０９、タッチパネル１１０、プリンタ１１３、可搬型記録媒体インタフェースからそれぞれ送られてくる信号をバス１４０ｇを介してＣＰＵ１４０ａに送信する。
【００４７】
通信インタフェース１４０ｄは、例えば、ＲＳ−２３２Ｃ（Recommended Standard 232 version C）、ＵＳＢ（Universal Serial Bus）接続の接続形式でチェッカユニット１０３に接続されている。通信インタフェース１４０ｄは、チェッカユニット１０３との間でデータの送受信を行う。
【００４８】
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。
次に、チェッカユニットのハードウェア構成の一例について図５を用いて説明する。
【００４９】
図５は、第２の実施形態のチェッカユニットのハードウェア構成の一例を示す図である。
チェッカユニット１０３は、制御ユニット１０４を備え、制御ユニット１０４によって各種入出力装置を統括的に制御している。制御ユニット１０４は、ＣＰＵ１０４ａによって装置全体が制御されている。ＣＰＵ１０４ａには、バス１０４ｇを介してＲＡＭ１０４ｂと、ＨＤＤ１０４ｃ、通信インタフェース１０４ｄ、グラフィック処理装置１０４ｅ、入出力インタフェース１０４ｆが接続されている。なお、ＲＡＭ１０４ｂと、ＨＤＤ１０４ｃ、通信インタフェース１０４ｄ、グラフィック処理装置１０４ｅ、入出力インタフェース１０４ｆは、キャッシャユニット１０２が備えるＲＡＭ１４０ｂと、ＨＤＤ１４０ｃ、通信インタフェース１４０ｄ、グラフィック処理装置１４０ｅ、入出力インタフェース１４０ｆと同様の構成であるために、これらの詳細な説明については省略する。
【００５０】
但し、入出力インタフェース１０４ｆには、スキャナ１２３と、スピーカ１１８、多項目キーボード１１９、タッチパネル１２２が接続されている。
スキャナ１２３は、例えば、撮像素子（ＣＣＤ（Charge Coupled Device）イメージセンサ、ＣＭＯＳ（Complementary Metal Oxide Semiconductor）イメージセンサ等）を備え、撮像素子が出力する画像情報から各種情報を取得する。また、入出力インタフェース１０４ｆは、可搬型記録媒体１２４への情報の書込み、及び可搬型記録媒体１２４への情報の読出しが可能な可搬型記録媒体インタフェースと接続可能になっている。入出力インタフェース１０４ｆは、スキャナ１２３と、スピーカ１１８、多項目キーボード１１９、タッチパネル１２２、並びに、可搬型記録媒体インタフェースから送られてくる信号を、バス１０４ｇを介してＣＰＵ１０４ａに送信する。
【００５１】
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。
また、キャッシャユニット１０２及びチェッカユニット１０３は、それぞれＦＰＧＡ（Field Programmable Gate Array）やＤＳＰ（Digital Signal Processer）等からなるモジュールを含んで構成することもでき、ＣＰＵ１４０ａ，１０４ａを有しない構成とすることもできる。その場合、制御ユニット１４０，１０４は、それぞれ不揮発性メモリ（例えば、ＥＥＰＲＯＭ（Electrically Erasable and Programmable Read Only Memory）、フラッシュメモリ、フラッシュメモリ型メモリカード等）を備え、モジュールのファームウェアを記憶する。不揮発性メモリは、可搬型記録媒体１２３，１２４、あるいは通信インタフェース１４０ｄ，１０４ｄを介してファームウェアを書き込むことができる。このように制御ユニット１４０，１０４は、不揮発性メモリに記憶されているファームウェアを書き換えることにより、ファームウェアの更新をすることもできる。
【００５２】
なお、ＰＯＳ端末装置２１０，２２０と、ＰＯＳサーバ４００と、メンテナンス端末５００，５１０も、このようなキャッシャユニット１０２及びチェッカユニット１０３と同様のハードウェア構成で実現できる。
【００５３】
次に、ＰＯＳシステムのソフトウェア構成について、図６を用いて説明する。図６は、第２の実施形態のＰＯＳシステムのソフトウェア構成の一例を示す図である。
図６では、ＰＯＳシステム１００に含まれるＰＯＳ端末装置２１０，２２０と、メンテナンス端末５００に着目して、ＰＯＳシステム１００のソフトウェア構成について説明する。
【００５４】
ＰＯＳ端末装置２１０において、業務アプリケーション３１０ａと、ＰＯＳ入出力サービスプログラム３２０ａが実行される。ＰＯＳ端末装置２２０において、業務アプリケーション３１０ｂと、ＰＯＳ入出力サービスプログラム３２０ｂと、ＰＯＳメンテナンスプログラム３５０が実行される。メンテナンス端末５００において、端末メンテナンスプログラム５８０が実行される。ＰＯＳ端末装置２１０，２２０およびメンテナンス端末５００において、オペレーティングシステムやデバイスドライバ等のプログラムも実行されるが、記載を省略する。
【００５５】
業務アプリケーション３１０ａ，３１０ｂは、ＰＯＳ端末装置２１０，２２０で実行されるアプリケーションプログラムであり、ユーザインタフェースプログラムやミドルウェア等と協働するプログラムである。
【００５６】
ＰＯＳ入出力サービスプログラム３２０ａ，３２０ｂは、ＰＯＳ端末装置２１０，２２０でミドルウェアとして実行されるプログラムである。ＰＯＳ入出力サービスプログラム３２０ａ，３２０ｂは、業務アプリケーション３１０ａ，３１０ｂと電文の送受信を行い、デバイスドライバ等を介してデバイスへの要求や、デバイスへのアクセスを排他制御するために用いるコードの生成等を行う。
【００５７】
ＰＯＳメンテナンスプログラム３５０は、ＰＯＳ端末装置２２０において、デバイスに対する要求を受け付け、排他制御を行う機能を有するミドルウェアである。ＰＯＳメンテナンスプログラム３５０は、業務アプリケーション３１０ａ，３１０ｂと端末メンテナンスプログラム５８０から同一のデバイスに対するアクセスの要求が発生し、アクセスが競合した場合に排他制御を行う。ＰＯＳメンテナンスプログラム３５０は、業務アプリケーション３１０ａ，３１０ｂと電文の送受信を行い、ＰＯＳ入出力サービスプログラム３２０ｂを介してデバイスへの要求の送信を行い、ＰＯＳ入出力サービスプログラム３２０ｂが付与するコードを受信する。ＰＯＳメンテナンスプログラム３５０の処理については、後で図８〜図１２を用いて説明する。
【００５８】
ＰＯＳシステム１００においては、ＴＣＰ／ＩＰ（Transmission Control Protocol ／ Internet Protocol）の通信プロトコルを用いて通信を行う。例えば、ＰＯＳ端末装置２１０のＩＰアドレスは「192.168.0.1」であり、ＰＯＳ端末装置２２０のＩＰアドレスは「192.168.0.2」であり、メンテナンス端末５００のＩＰアドレスは「192.168.0.5」である。各ＰＯＳ端末装置２１０，２２０およびメンテナンス端末５００のアクセスは、ＩＰアドレスとポートを指定して行う。ＰＯＳ端末装置２１０に対するアクセスは、ＩＰアドレス「192.168.0.1」ポート番号「7000」というようにＩＰアドレスとポート番号を指定する。例えば、ＰＯＳ端末装置２１０,２２０について、ＰＯＳシステム１００における通常の業務（プリンタでレシート印刷、スキャナで商品のバーコードをスキャン等）を行うためのアクセスはポート番号「7000」を指定して行う。また、ＰＯＳ端末装置２１０，２２０について、メンテナンスを行うためのアクセスはポート番号「8000」を指定して行う。メンテナンスを行うために用いるポートを、メンテナンスポート４５０とする。通常の業務を行うために用いるポートを、通常ポート４００，４１０とする。なお、ＩＰアドレスおよびポート番号は一例に過ぎず、他のアドレスおよびポートであってもよい。
【００５９】
ここで、ＰＯＳシステム１００における、ＰＯＳ端末装置２１０，２２０が備えるデバイスに対するアクセスを要求する電文の流れ（Ｒ１１，Ｒ２１，Ｒ３１，Ｒ５１）について説明する。リクエスト電文２５０は、業務アプリケーション３１０ａ，３１０ｂが送信するアクセスを要求する電文である。リクエスト電文５５０は、端末メンテナンスプログラム５８０が送信するアクセスを要求する電文である。また、レスポンス電文２６０，５６０は、ＰＯＳメンテナンスプログラム３５０が送信するアクセスの要求に応答する電文である。電文の内容については、後で図７を用いて説明する。
【００６０】
まず、ＰＯＳ端末装置２１０が、自機のデバイスであるプリンタ１１３ａにアクセスする場合の電文の流れ（Ｒ１１）について説明する。業務アプリケーション３１０ａは、通常ポート４００を介し、ＰＯＳ入出力サービスプログラム３２０ａにプリンタ１１３ａに対するアクセスを要求する電文を送信する。ＰＯＳ入出力サービスプログラム３２０ａは、アクセスを要求する電文を受信したことに伴い、プリンタ１１３ａに対するアクセスが競合しない場合、デバイスに対する排他制御を行うために用いるコードであるＰＯＳ入出力利用コードを生成する。ＰＯＳ入出力サービスプログラム３２０ａは、応答する電文にＰＯＳ入出力利用コードを設定し、業務アプリケーション３１０ａに送信する。業務アプリケーション３１０ａは、ＰＯＳ入出力サービスプログラム３２０ａから受信した電文に設定されたＰＯＳ入出力利用コードを用いて、プリンタ１１３ａにアクセスする。業務アプリケーション３１０ａは、ＰＯＳ入出力利用コードを取得することで、プリンタ１１３ａに対するアクセス権限を得られる。例えば、業務アプリケーション３１０ａは、レシートの印刷を要求する電文にＰＯＳ入出力利用コードを含めてプリンタ１１３ａに送信することにより、プリンタ１１３ａを用いたレシートの印刷が実行できる。このように、ＰＯＳ端末装置２１０において、ＰＯＳ入出力サービスプログラム３２０ａが付与するＰＯＳ入出力利用コードを有するアクセスが、排他制御権を有するアクセスとして許可され、デバイスにアクセスできる。
【００６１】
次に、ＰＯＳ端末装置２２０が、自機のデバイスであるプリンタ１１３ｂにアクセスする場合の電文の流れ（Ｒ２１）について説明する。ＰＯＳ端末装置２１０における電文の流れ（Ｒ１１）との違いは、業務アプリケーション３１０ｂとＰＯＳ入出力サービスプログラム３２０ｂとの間にＰＯＳメンテナンスプログラム３５０が介在する点である。ＰＯＳメンテナンスプログラム３５０は、業務アプリケーション３１０ｂからプリンタ１１３ｂに対するアクセスを要求する電文を通常ポート４１０を介して受信する。ＰＯＳメンテナンスプログラム３５０は、アクセスを要求する電文を受信したことに伴い、ＰＯＳ入出力サービスプログラム３２０ｂからＰＯＳ入出力利用コードを取得する。ＰＯＳメンテナンスプログラム３５０は、ＰＯＳ入出力利用コードを電文に設定し、業務アプリケーション３１０ｂに送信する。以降は、上述（Ｒ１１）と同様に、業務アプリケーション３１０ｂは、電文に設定されたＰＯＳ入出力利用コードを用いてプリンタ１１３ｂにアクセスする。
【００６２】
次に、ＰＯＳ端末装置２１０からＰＯＳ端末装置２２０のスキャナ１２３ｂにアクセスする場合の電文の流れ（Ｒ３１）について説明する。ＰＯＳ端末装置２１０の業務アプリケーション３１０ａは、通常ポート４１０を介してＰＯＳ端末装置２２０のスキャナ１２３ｂにアクセスを要求する電文を送信する。ＰＯＳメンテナンスプログラム３５０は、業務アプリケーション３１０ａからスキャナ１２３ｂに対するアクセスを要求する電文を通常ポート４１０を介して受信する。以降は、上述した電文の流れ（Ｒ２１）とほぼ同様であるため説明を省略する。
【００６３】
次に、メンテナンス端末５００からＰＯＳ端末装置２２０のスキャナ１２３ｂにアクセスする場合の電文の流れ（Ｒ５１）について説明する。メンテナンス端末５００は、保守員がＰＯＳ端末装置２２０のデバイスの保守や点検をするために用いるコンピュータである。端末メンテナンスプログラム５８０は、メンテナンスポート４５０を介してスキャナ１２３ｂにアクセスを要求する電文を送信する。ＰＯＳメンテナンスプログラム３５０は、電文を受信したことに伴い、スキャナ１２３ｂへのアクセスを試みるがスキャナ１２３ｂは既に業務アプリケーション３１０ａによって使用中であり、排他制御を要する。この場合のＰＯＳメンテナンスプログラム３５０の処理については、後で図８〜図１２を用いて説明する。
【００６４】
次に、電文のフォーマットについて図７を用いて説明する。図７は、第２の実施形態の電文のフォーマットの一例を示す図である。
図７（Ａ）は、ＰＯＳ端末装置２１０からＰＯＳ端末２２０に送信するリクエスト電文２５０のフォーマットの一例である。リクエスト電文２５０は、通常排他制御コード２５１、リクエストコマンド２５２、コマンド対応データ２５３を含む。
【００６５】
図７（Ｂ）は、ＰＯＳ端末装置２２０からＰＯＳ端末装置２１０に送信するレスポンス電文２６０のフォーマットの一例である。レスポンス電文２６０は、通常排他制御コード２６１、レスポンスコード２６２、コマンド対応データ２６３を含む。
【００６６】
図７（Ｃ）は、メンテナンス端末５００からＰＯＳ端末２２０に送信するリクエスト電文５５０のフォーマットの一例である。リクエスト電文５５０は、メンテナンス排他制御コード５５１、リクエストコマンド５５２、コマンド対応データ５５３を含む。
【００６７】
図７（Ｄ）は、ＰＯＳ端末２２０からメンテナンス端末５００に送信するレスポンス電文５６０のフォーマットの一例である。レスポンス電文５６０は、メンテナンス排他制御コード５６１、レスポンスコード５６２、コマンド対応データ５６３を含む。
【００６８】
通常排他制御コード２５１，２６１は、ＰＯＳシステム１００における通常の業務を行う場合に、デバイスに対するアクセスを制御するために用いるコードである。
通常排他制御コード２５１の初期値は「０」である。初期値とは、デバイスに対しアクセスを開始するために最初に送信されるリクエスト電文２５０に含まれる通常排他制御コード２５１の値である。ＰＯＳメンテナンスプログラム３５０は、アクセスを開始するためのリクエスト電文２５０を通常ポート４１０を介して受信したことに伴い、ＰＯＳ入出力サービスプログラム３２０ｂが生成したＰＯＳ入出力コードをレスポンス電文２６０の通常排他制御コード２６１に設定する。ＰＯＳメンテナンスプログラム３５０は、リクエスト電文の送信元である業務アプリケーション３１０ａ，３１０ｂに通常排他制御コード２６１を設定したレスポンス電文２６０を送信する。
【００６９】
リクエスト電文の送信元である業務アプリケーション３１０ａ，３１０ｂは、レスポンス電文２６０を受信し、受信したレスポンス電文２６０に設定された通常排他制御コード２６１を取得する。業務アプリケーション３１０ａ，３１０ｂは、取得した通常排他制御コード２６１を新たなリクエスト電文２５０の通常排他制御コード２５１に設定し、デバイスへのアクセスを要求する新たなリクエスト電文２６０を送信する。
【００７０】
このようにして、通常ポート４１０を介して排他制御のためのコードを設定したリクエスト電文２５０とレスポンス電文２６０を送受信することにより、デバイスに対して処理を実行するための排他制御が可能となる。
【００７１】
通常ポート４１０を介して２回目以降の電文を送受信する場合、言い換えると、通常の業務を実行中である場合、通常排他制御コード２５１，２６１の値は、ＰＯＳ入出力サービスプログラム３２０ａ，３２０ｂが生成した入出力コードの値と同じ値である。通常排他制御コード２５１，２６１は、デバイスに対しアクセスを終了するための電文が送信されアクセスが終了する際に廃棄される。
【００７２】
メンテナンス排他制御コード５５１，５６１は、ＰＯＳシステム１００におけるメンテナンスの業務を行う場合に、アクセスを制御するためにＰＯＳメンテナンスプログラム３５０が生成し、電文に設定するコードである。メンテナンス排他制御コード５５１の初期値は「０」である。初期値とは、デバイスに対し、メンテナンスを開始するために最初に送信されるリクエスト電文５５０に含まれるメンテナンス排他制御コード５５１の値である。
【００７３】
ＰＯＳメンテナンスプログラム３５０は、メンテナンスポート４５０を介してメンテナンスを行うに際しアクセスを開始するためのリクエスト電文５５０を受信したことに伴い、メンテナンス排他制御コードを生成し、レスポンス電文５６０のメンテナンス排他制御コード５６１に設定する。リクエスト電文５５０の送信元である端末メンテナンスプログラム５８０は、レスポンス電文５６０を受信し、受信したレスポンス電文５６０に設定されたメンテナンス排他制御コード５６１を取得する。端末メンテナンスプログラム５８０は、取得したメンテナンス排他制御コード５６１を新たなリクエスト電文５５０のメンテナンス排他制御コード５５１に設定する。端末メンテナンスプログラム５８０は、メンテナンスポート４５０を介してメンテナンスのためのアクセスを要求する新たなリクエスト電文５５０をＰＯＳメンテナンスプログラム３５０に送信する。
【００７４】
このようにして、メンテナンスポート４５０を介してメンテナンスのための排他制御のコードを設定したリクエスト電文５５０とレスポンス電文５６０を送受信することにより、メンテナンスのための排他制御が可能となる。
【００７５】
メンテナンスポート４５０を介して２回目以降の電文を送受信する場合、言い換えると、メンテナンスの作業を実行中である場合、メンテナンス排他制御コード５５１，５６１の値は、ＰＯＳメンテナンスプログラム３５０が生成したメンテナンス排他制御コードの値となる。メンテナンス排他制御コード５５１，５６１は、メンテナンスを終了するための電文を送信された際に廃棄される。
【００７６】
リクエストコマンド２５２，５５２は、リクエストコマンドとして用いられるコードであり、ＰＯＳ端末装置に接続したデバイスの名前やデバイスに対する要求を含む。例えば、ＰＯＳシステムにおける通常の業務においてリクエストコマンドとして用いられるコードの例として以下の（１）〜（３）がある。（１）スキャナの使用開始コード「０ｘ１０１０」、（２）スキャナの使用終了コード「０ｘ１０２０」、（３）プリンタの使用開始コード「０ｘ２０１０」。また、ＰＯＳシステムにおけるメンテナンスの業務においてリクエストコマンドとして用いられるコードの例として以下の（４）〜（７）がある。（４）スキャナのメンテナンス開始コード「０ｘ９０１０」、（５）プリンタのメンテナンス開始コード「０ｘＡ０１０」、（６）スキャナの使用開始コード「０ｘ１０１０」、（７）プリンタの使用開始コード「０ｘ２０１０」。
【００７７】
レスポンスコード２６２，５６２は、ＰＯＳ入出力サービスプログラム３２０ａ，３２０ｂからの戻り値が格納される。例えば、ＰＯＳ入出力サービスプログラム３２０ａ，３２０ｂにおいて、要求された処理が正常に実行された場合は「正常」、エラーが生じた場合は「異常」を示す値が格納される。
【００７８】
コマンド対応データ２５３，５５３は、リクエストコマンド２５２，５５２に対応して各種のデータが格納される。また、コマンド対応データ２６３，５６３は、レスポンスコード２６２，５６２に対応して各種のデータが格納される。例えば、プリンタのライト関数（印刷を実行する命令）のコマンドがリクエストコマンド２５２，５５２に格納された場合、コマンド対応データ２５３には印字データが格納される。また、レスポンスコード２６２，５６２に「異常」を示す値が格納された場合、コマンド対応データ２６３，５６３にエラーコードが格納される。
【００７９】
次に、ＰＯＳ排他制御処理について図８を用いて説明する。図８は、第２の実施形態のＰＯＳ排他制御処理のフローチャートを示す図である。
ＰＯＳ排他制御処理は、ＰＯＳ端末装置に接続されたデバイスにアクセスするための排他制御をＰＯＳメンテナンスプログラム３５０が行う処理である。ＰＯＳ排他制御処理は、ＰＯＳメンテナンスプログラム３５０がインストールされたＰＯＳ端末装置２２０の制御部（ＣＰＵ１４０ａまたはＣＰＵ１０４ａ）が実行する処理である。
【００８０】
［ステップＳ１１］制御部は、リクエスト電文を受信したか否かを判定する。制御部は、リクエスト電文を受信した場合にステップＳ１２にすすみ、受信しない場合にステップＳ１１にもどる。
【００８１】
［ステップＳ１２］制御部は、リクエスト電文を受信したポートがメンテナンスポート４５０であるか否かを判定する。制御部は、ポートがメンテナンスポート４５０でない場合にステップＳ１３にすすみ、メンテナンスポート４５０である場合にステップＳ１４にすすむ。
【００８２】
制御部は、リクエスト電文を通常ポート４１０で受信したか、メンテナンスポート４５０で受信したかを判定することで、通常のアクセスであるかメンテナンスの作業のためのアクセスであるかを判定できる。なお、一例として、通常ポート４１０のポート番号は「7000」、メンテナンスポート４５０のポート番号は「8000」と予め定め、ポート番号により受信したポートの判定をするが、これらは一例でありその他のものでもよい。
【００８３】
［ステップＳ１３］制御部は、通常排他制御処理を実行する。通常排他制御処理は、通常ポート４１０を介してリクエスト電文を受信した場合に、デバイスに対する排他制御を行う処理である。通常排他制御処理は、後で図９および図１０を用いて説明する。
【００８４】
［ステップＳ１４］制御部は、メンテナンス排他制御処理を実行する。メンテナンス排他制御処理は、メンテナンスポート４５０を介してリクエスト電文５５０を受信した場合に、デバイスに対する排他制御を行う処理である。メンテナンス排他制御処理は、後で図１１を用いて説明する。
【００８５】
［ステップＳ１５］制御部は、リクエスト電文２５０，５５０を送信した送信元（ＰＯＳ端末装置またはメンテナンス端末）に対して、レスポンス電文２６０，５６０を送信する。
【００８６】
［ステップＳ１６］制御部は、自機であるＰＯＳ端末装置に対してシャットダウンの指示があるか否かを判定する。制御部は、シャットダウンの指示が無い場合にステップＳ１１にもどり、シャットダウンの指示がある場合にＰＯＳ排他制御処理を終了する。
【００８７】
なお、通常排他制御処理、メンテナンス排他制御処理およびメンテナンス排他制御処理から呼び出す処理において、５つの変数（データＡ，データＢ，データＣ，データＤ，データＥ）を用いる。変数については、最初に用いる際に適宜説明をする。変数は、ＲＡＭ１０４ｂ，１４０ｂ等の記憶部に記憶される。変数の初期値は、全て「０」である。
【００８８】
次に、通常排他制御処理について図９および図１０を用いて説明する。図９は、第２の実施形態の通常排他制御処理のフローチャートを示す図である（その１）。図１０は、第２の実施形態の通常排他制御処理のフローチャートを示す図である（その２）。
【００８９】
通常排他制御処理は、ＰＯＳメンテナンスプログラム３５０が通常ポート４１０を介してリクエスト電文を受信した場合に、デバイスに対する排他制御を行う処理である。通常排他制御処理は、ＰＯＳ排他制御処理のステップＳ１３でＰＯＳメンテナンスプログラム３５０がインストールされたＰＯＳ端末装置２２０の制御部（ＣＰＵ１４０ａまたはＣＰＵ１０４ａ）が実行する処理である。
【００９０】
［ステップＳ２１］制御部は、受信したリクエスト電文に含まれる通常排他制御コードをデータＡに設定する。
データＡは、原則として、リクエスト電文に含まれている通常排他制御コードを記憶する変数である。なお、データＡは、後で説明するステップＳ３１，Ｓ３５においては、レスポンス電文の通常排他制御コードにＰＯＳ入出力コードを設定するためにも用いられる。
【００９１】
［ステップＳ２２］制御部は、データＡが初期値「０」であるか否かを判定する。制御部は、データＡが初期値である場合にステップＳ２６にすすみ、初期値でない場合にステップＳ２３にすすむ。
【００９２】
なお、リクエスト電文２５０において、デバイスに対するオープンコマンドの発行である初回のアクセス要求（デバイス開始要求）においては、通常排他制御コードは必ず初期値「０」となる。
【００９３】
［ステップＳ２３］制御部は、データＡとデータＣの値が等しいか否かを判定する。言い換えると、制御部は、受信したリクエスト電文に含まれる通常排他制御コードとＰＯＳ入出力サービスプログラムが生成した通常排他制御コード（ＰＯＳ入出力コード）とが同一の値であるか否かを判定する。制御部は、データＡとデータＣの値が等しい場合にステップＳ２６にすすみ、等しくない場合にステップＳ２４にすすむ。
【００９４】
データＣは、後で説明するステップＳ３０において、ＰＯＳ入出力サービスプログラムが生成したＰＯＳ入出力コードを記憶する変数である。ＰＯＳ入出力コードは、ＰＯＳ端末装置に接続しているデバイスにアクセスする際に用いる排他制御を行うためのコードである。
【００９５】
［ステップＳ２４］制御部は、データＡとデータＥの値が等しいか否かを判定する。制御部は、データＡとデータＥの値が等しい場合にステップＳ２６にすすみ、等しくない場合にステップＳ２５にすすむ。
【００９６】
データＥは、後で図１２を用いて説明するメンテナンス作業中処理のステップＳ６６において、メンテナンス作業中にデバイスへのアクセスに用いられていたＰＯＳ入出力コードを記憶するための変数である。
【００９７】
このように、制御部は、ステップＳ２３およびＳ２４において受信した通常排他制御コードとデータＣまたはデータＥに保存していたコードとを比較することで、受信したリクエスト電文に係る要求がデバイスへの排他制御の権限を有しているか否かを判定できる。
【００９８】
［ステップＳ２５］制御部は、レスポンス電文のレスポンスコードに異常値を設定する。また、制御部は、レスポンス電文のコマンド対応データにエラー番号等を設定できる。
［ステップＳ２６］制御部は、メンテナンスフラグがＯＮであるか否かを判定する。言い換えると、制御部は、受信したリクエスト電文によってアクセスの要求を受けたデバイスがメンテナンスの作業中であるか否かを判定する。
【００９９】
制御部は、メンテナンスフラグがＯＮでない場合にステップＳ２７にすすみ、ＯＮである場合にステップＳ２８にすすむ。
メンテナンスフラグは、メンテナンスが行われているか否かの状態を示すフラグであり、ＲＡＭ１０４ｂ，１４０ｂ等の記憶部に記憶される。メンテナンスフラグの初期値は、「ＯＦＦ」である。メンテナンスフラグが「ＯＮ」の場合、対象となるデバイスについてメンテナンスを実行している状態（メンテナンスの作業中）であることを示す。メンテナンスフラグが「ＯＦＦ」の場合、対象となるデバイスについてメンテナンスを実行していない状態であることを示す。メンテナンスフラグの値の変更は、後で図１１を用いて説明するメンテナンス排他制御処理のステップＳ４３およびステップＳ４６で行われる。
【０１００】
メンテナンスフラグは、デバイス毎に設定することができる。デバイス毎にメンテナンスフラグを設定することにより、制御部は、複数のデバイスそれぞれについてメンテナンスの作業が実行されている状態か否かを判定することができる。
【０１０１】
［ステップＳ２７］制御部は、データＣをパラメータ（排他制御を行うためのコード）として設定し、ＰＯＳ入出力サービスプログラムを呼び出し、ステップＳ２９にすすむ。言い換えると、制御部は、データＣに格納されていたＰＯＳ入出力コードを用いて、受信したリクエスト電文に基づきＰＯＳ入出力サービスプログラムに対しデバイスへのアクセスを要求する。
【０１０２】
例えば、制御部は、リクエスト電文２５０にプリンタ１１３ｂに対しアクセスを開始するコマンドが含まれる場合、ＰＯＳ入出力サービスプログラムに対しプリンタ１１３ｂへのアクセスの開始を要求する。また、制御部は、リクエスト電文２５０にプリンタ１１３ｂに対しアクセスを終了するコマンドが含まれる場合、ＰＯＳ入出力サービスプログラムに対しプリンタ１１３ｂへのアクセスの終了を要求する。また、制御部は、リクエスト電文２５０にプリンタ１１３ｂに対しレシートの印刷を実行するコマンドが含まれる場合、ＰＯＳ入出力サービスプログラムに対しプリンタ１１３ｂにレシートの印刷の実行を要求する。
【０１０３】
［ステップＳ２８］制御部は、レスポンス電文のレスポンスコードにビジー状態値を設定する。言い換えると、制御部は、アクセスの要求を受けたデバイスがメンテナンスの作業中のため、使用できない状態（ビジー状態）である旨を示す値をレスポンスコードに設定する。
【０１０４】
［ステップＳ２９］制御部は、ＰＯＳ入出力サービスプログラムの応答の種別を判定する。言い換えると、制御部は、ステップＳ２７においてＰＯＳ入出力サービスプログラムに要求を発行しており、要求に応じた応答をＰＯＳ入出力サービスプログラムから受信し、応答の種別を判定する。
【０１０５】
制御部は、応答の種別がデバイス開始要求に対するものである場合にステップＳ３０にすすみ、デバイス終了要求に対するものである場合にステップＳ３２にすすみ、その他である場合にステップＳ３４にすすむ。
【０１０６】
なお、応答の種別がデバイス開始要求に対するものである場合とは、ステップＳ２７でデバイスへのアクセスの開始をＰＯＳ入出力サービスプログラムに対して要求し、その要求に対する応答を受信した場合であることを意味する。また、応答の種別がデバイス終了要求に対するものである場合とは、ステップＳ２７でデバイスへのアクセスの終了をＰＯＳ入出力サービスプログラムに対して要求し、その要求に対する応答を受信した場合であることを意味する。また、応答の種別がその他である場合とは、ステップＳ２７でデバイスへのアクセスの開始または終了以外についてＰＯＳ入出力サービスプログラムに対して要求し、その要求に対する応答を受信した場合であり、例えば、デバイスを実行する要求に対する応答を受信した場合である。デバイスへのアクセスの開始または終了以外の要求とは、デバイスの実行、例えば、プリンタによるレシートの印刷やスキャナによるバーコード読み取り等である。
【０１０７】
［ステップＳ３０］制御部は、ＰＯＳ入出力サービスプログラムが生成したＰＯＳ入出力コードをデータＣに設定する。
なお、ＰＯＳ入出力コードは、ＰＯＳ入出力サービスプログラムが生成し、ＰＯＳ入出力サービスプログラムからＰＯＳメンテナンスプログラムに渡される値である。ＰＯＳ入出力コードは、同一のデバイスに対するアクセスの開始要求から終了要求に至るまで、同一の値が用いられる。言い換えると、アクセスの要求の対象となるデバイスが異なる場合には、異なるＰＯＳ入出力コードが生成される。これにより、デバイス毎の排他制御が可能となる。
【０１０８】
［ステップＳ３１］制御部は、データＣをデータＡに設定する。言い換えると、制御部は、生成したＰＯＳ入出力コードをデータＡに保存する。
［ステップＳ３２］制御部は、データＥを初期化する。言い換えると、制御部は、データＥに「０」を設定する。
【０１０９】
［ステップＳ３３］制御部は、データＣを初期化する。言い換えると、制御部は、データＣに「０」を設定する。
［ステップＳ３４］制御部は、レスポンス電文のレスポンスコードにＰＯＳ入出力サービスプログラムの戻り値（正常値または異常値）を設定する。
【０１１０】
なお、ＰＯＳ入出力サービスプログラムの戻り値が正常値となる場合は、デバイスに対する要求が正常に実行された場合である。また、ＰＯＳ入出力サービスプログラムの戻り値が異常値（エラー）となる場合は、デバイスに対する要求が正常に実行されなかった場合である。
【０１１１】
［ステップＳ３５］制御部は、データＡをレスポンス電文の通常排他制御コードに設定する。言い換えると、制御部は、ＰＯＳ入出力サービスプログラムが生成したＰＯＳ入出力コードを通常排他制御コードとしてレスポンス電文に設定する。これにより、当該レスポンス電文を受信した業務アプリケーションは、次回からデバイスへのアクセスを要求するリクエスト電文の通常排他制御コードに、レスポンス電文に設定された通常排他制御コードを用いてデバイスにアクセスをすることができる。
【０１１２】
次に、メンテナンス排他制御処理について図１１を用いて説明する。図１１は、第２の実施形態のメンテナンス排他制御処理のフローチャートを示す図である。
メンテナンス排他制御処理は、ＰＯＳメンテナンスプログラム３５０がメンテナンスポート４５０を介してリクエスト電文５５０を受信した場合に、デバイスに対する排他制御を行う処理である。
【０１１３】
メンテナンス排他制御処理は、ＰＯＳ排他制御処理のステップＳ１４でＰＯＳメンテナンスプログラム３５０がインストールされたＰＯＳ端末装置２２０の制御部（ＣＰＵ１４０ａまたはＣＰＵ１０４ａ）が実行する処理である。
【０１１４】
［ステップＳ４１］制御部は、受信したリクエスト電文のメンテナンス排他制御コードをデータＢに設定する。
データＢは、リクエスト電文に含まれているメンテナンス排他制御コードを記憶する変数である。
【０１１５】
［ステップＳ４２］制御部は、リクエスト電文の種別を判定する。言い換えると、制御部はリクエスト電文に含まれるリクエストコマンドの内容に基づき、リクエスト電文の種別を判定する。
【０１１６】
制御部は、リクエスト電文の種別がメンテナンス開始である場合にステップＳ４３にすすみ、種別がメンテナンス終了である場合にステップＳ４６にすすみ、種別がその他である場合にステップＳ５０にすすむ。
【０１１７】
なお、種別がその他の場合のリクエストコマンドとは、メンテナンス作業中において、プリンタ１１３でレシートを試し印刷をする場合の印刷を要求するコマンドや、ディスプレイ１２０を点検するための画面を表示する場合の画面表示を要求するコマンド等が含まれる。
【０１１８】
［ステップＳ４３］制御部は、メンテナンスフラグをＯＮに設定する。
［ステップＳ４４］制御部は、メンテナンス排他制御コードを生成し、データＤに設定する。データＤは、メンテナンス排他制御コードを記憶するための変数である。
【０１１９】
［ステップＳ４５］制御部は、データＤをレスポンス電文のメンテナンス排他制御コードに設定する。
［ステップＳ４６］制御部は、メンテナンスフラグをＯＦＦに設定する。
【０１２０】
［ステップＳ４７］制御部は、データＤをレスポンス電文のメンテナンス排他制御コードに設定する。
［ステップＳ４８］制御部は、データＢを初期化する。言い換えると、制御部は、データＢに「０」を設定する。
【０１２１】
［ステップＳ４９］制御部は、データＤを初期化する。言い換えると、制御部は、データＤに「０」を設定する。
［ステップＳ５０］制御部は、メンテナンス作業中処理を実行する。メンテナンス作業中処理は、ＰＯＳメンテナンスプログラム３５０がメンテナンスポート４５０を介してメンテナンスの作業を行うリクエスト電文５５０を受信した場合に、デバイスに対する排他制御を行う処理である。メンテナンス作業中処理は、後で図１２を用いて説明する。
【０１２２】
［ステップＳ５１］制御部は、レスポンス電文の戻り値に正常値を設定し、メンテナンス排他制御処理を終了する。言い換えると、制御部は、メンテナンスの開始または終了の処理が正常に処理されたことを示す値をレスポンス電文の戻り値に設定する。
【０１２３】
なお、メンテナンス開始を示すリクエスト電文を送信した端末メンテナンスプログラム５８０は、レスポンス電文を受信し、レスポンス電文に含まれる排他制御コードを用いてメンテナンス作業を開始することができる。
【０１２４】
次に、メンテナンス作業中処理について図１２を用いて説明する。図１２は、第２の実施形態のメンテナンス作業中処理のフローチャートを示す図である。
メンテナンス作業中処理は、ＰＯＳメンテナンスプログラム３５０がメンテナンスポート４５０を介してメンテナンスの作業を行うリクエスト電文５５０を受信した場合に、デバイスに対する排他制御を行う処理である。メンテナンス排他制御処理は、メンテナンス排他制御処理のステップＳ５０でＰＯＳメンテナンスプログラム３５０がインストールされたＰＯＳ端末装置２２０の制御部（ＣＰＵ１４０ａまたはＣＰＵ１０４ａ）が実行する処理である。
【０１２５】
［ステップＳ６１］制御部は、データＢとデータＤが等しいか否かを判定する。言い換えると、制御部は、受信したリクエスト電文に含まれるメンテナンス排他制御コードと、データＤに保存されているメンテナンス排他制御コードとが、等しいか否かを判定する。制御部は、データＢとデータＤが等しい場合にステップＳ６２にすすみ、等しくない場合にステップＳ７０にすすむ。
【０１２６】
なお、データＢとデータＤが等しい場合とは、メンテナンスの作業中の端末メンテナンスプログラム５８０から、メンテナンスの開始時に生成したメンテナンス排他制御コードを設定したリクエスト電文を制御部が受信した場合である。制御部は、データＢとデータＤとが等しい場合、端末メンテナンスプログラム５８０から、メンテナンスのための排他制御の権限を有するリクエスト要求を受信したと判定できる。
【０１２７】
［ステップＳ６２］制御部は、データＣをパラメータ（排他制御を行うためのコード）として設定し、ＰＯＳ入出力サービスプログラムを呼び出し、ステップＳ６３にすすむ。言い換えると、制御部は、データＣに格納されていたＰＯＳ入出力コードを用いて、受信したリクエスト電文に基づきＰＯＳ入出力サービスプログラムに対しデバイスへのアクセスを要求する。
【０１２８】
リクエスト電文に基づきアクセスを要求するとは、例えば、制御部は、リクエストコマンド５５２にスキャナ１２３ｂに対しメンテナンスのためのアクセスを開始するコマンドが含まれる場合、ＰＯＳ入出力サービスプログラムに対しスキャナ１２３ｂへのアクセスの開始を要求することである。
【０１２９】
［ステップＳ６３］制御部は、ＰＯＳ入出力サービスプログラムの応答の種別を判定する。言い換えると、制御部は、ステップＳ６２においてＰＯＳ入出力サービスプログラムに要求を発行しており、要求に応じた応答をＰＯＳ入出力サービスプログラムから受信し、応答の種別を判定する。
【０１３０】
制御部は、応答の種別がデバイス開始要求に対するものである場合にステップＳ６４にすすみ、デバイス終了要求に対するものである場合にステップＳ６５にすすみ、その他である場合にステップＳ６８にすすむ。
【０１３１】
なお、応答の種別がデバイス開始要求に対するものである場合とは、ステップＳ６２でデバイスへのアクセスの開始を要求し、その要求に対する応答を受信した場合であることを意味する。
【０１３２】
また、応答の種別がデバイス終了要求に対するものである場合とは、ステップＳ６２でデバイスへのアクセスの終了を要求し、その要求に対する応答を受信した場合であることを意味する。
【０１３３】
また、応答の種別がその他である場合とは、ステップＳ６２でデバイスへのアクセスの開始または終了以外の要求を行い、その要求に対する応答を受信した場合である。例えば、メンテナンスのためのデバイス実行の要求に対する応答を受信した場合である。
【０１３４】
［ステップＳ６４］制御部は、ＰＯＳ入出力サービスプログラムが生成したＰＯＳ入出力コードを受信し、ＰＯＳ入出力コードをデータＣに設定する。
なお、制御部は、デバイスへアクセスを開始し、デバイスの実行を行い、デバイスへのアクセスを終了するまで、同一のデバイスに対して同一のＰＯＳ入出力コードを用いる。
【０１３５】
［ステップＳ６５］制御部は、データＥが初期値「０」であるか否かを判定する。言い換えると、制御部は、データＥが初期値であるか、または、データＥにＰＯＳ入出力コードが設定されているかを判定する。
【０１３６】
制御部は、データＥが初期値である場合にステップＳ６６にすすみ、初期値でない場合にステップＳ６７にすすむ。
［ステップＳ６６］制御部は、データＣをデータＥに設定する。言い換えると、データＣにはＰＯＳ入出力コードが設定されており、ＰＯＳ入出力コードはデバイスに対するアクセスの開始要求から終了要求に至るまで同一の値が用いられる。このため、制御部は、データＣの値をデータＥに設定することにより、デバイスへのアクセスに使用していたＰＯＳ入出力コードをデータＥに保存することができる。
【０１３７】
［ステップＳ６７］制御部は、データＣを初期化する。言い換えると、制御部は、データＣに「０」を設定する。
［ステップＳ６８］制御部は、レスポンス電文のレスポンスコードにＰＯＳ入出力サービスプログラムの戻り値（正常値または異常値）を設定する。
【０１３８】
なお、ＰＯＳ入出力サービスプログラムの戻り値が正常値となる場合は、デバイスに対する要求が正常に実行された場合である。また、ＰＯＳ入出力サービスプログラムの戻り値が異常値となる場合は、デバイスに対する要求が正常に実行されなかった場合である。また、制御部は、異常値である場合、デバイスへのアクセスエラー等エラーの内容に応じたエラー番号を設定できる。
【０１３９】
［ステップＳ６９］制御部は、データＤをレスポンス電文のメンテナンス排他制御コードに設定する。言い換えると、制御部は、データＤに保存されているメンテナンス排他制御コードをレスポンス電文のメンテナンス排他制御コードとして設定する。
【０１４０】
［ステップＳ７０］制御部は、レスポンス電文のレスポンスコードに異常値を設定する。また、制御部は、レスポンス電文にエラー番号等を設定できる。
なお、制御部がレスポンスコードに異常値を設定する場合とは、受信したメンテナンス排他制御コードが誤りである場合である。
【０１４１】
［ステップＳ７１］制御部は、データＢをレスポンス電文のメンテナンス排他制御コードに設定する。言い換えると、制御部は、受信したリクエスト電文に含まれるメンテナンス排他制御コードをレスポンス電文のメンテナンス排他制御コードに設定する。制御部は、メンテナンス作業中処理を終了する。
【０１４２】
ここで、メンテナンス作業中処理に関連する排他制御の概要について図６を用いて説明する。業務アプリケーション３１０ａからスキャナ１２３ｂに対してアクセスが発生した後、端末メンテナンスプログラム５８０からスキャナ１２３ｂに対しメンテナンスの作業を開始するリクエスト電文が送信され、メンテナンス作業中であることを前提とする。
【０１４３】
ＰＯＳメンテナンスプログラム３５０は、メンテナンスの作業中において、端末メンテンスプログラム５８０からスキャナ１２３ｂのデバイスを終了させる要求があった場合について説明する。ＰＯＳメンテナンスプログラム３５０は、メンテナンス開始前に業務アプリケーション３１０ａが用いていたスキャナ１２３ｂを排他制御するためのＰＯＳ入出力コードであるデータＣをデータＥに保存する（ステップＳ６６）。
【０１４４】
ＰＯＳメンテナンスプログラム３５０は、業務アプリケーション３１０ａから通常ポート４１０を介しリクエスト電文を受信した場合に、リクエスト電文に含まれるＰＯＳ入出力コードであるデータＡと保存したＰＯＳ入出力コードであるデータＥとを比較する（ステップＳ２４）。
【０１４５】
ＰＯＳメンテナンスプログラム３５０は、データＡとデータＥが等しい場合（ステップＳ２４のＹＥＳ）、言い換えると通常の業務のリクエスト電文に含まれる通常排他制御コードとデータＥに保存したＰＯＳ入出力コードが等しい場合、メンテナンス作業中であるか否かを判定する（ステップＳ２６）。
【０１４６】
ＰＯＳメンテナンスプログラム３５０は、メンテナンス作業中である場合（ステップＳ２６のＹＥＳ）、レスポンス電文のレスポンスコードにビジー状態値を設定（ステップＳ２８）することで、通常ポート４１０からの要求元のＰＯＳ端末装置２２０を待ち状態とする。
【０１４７】
また、ＰＯＳメンテナンスプログラム３５０は、メンテナンス作業中でない場合（ステップＳ２６のＮＯ）、通常ポート４１０からのリクエスト電文を受け付け、ＰＯＳ入出力サービスプログラム３２０ｂを介してスキャナ１２３ｂへの要求を処理する（ステップＳ２７）。
【０１４８】
ＰＯＳメンテナンスプログラム３５０は、業務アプリケーション３１０ａがスキャナ１２３ｂへのアクセスのために用いているＰＯＳ入出力コードを保存し、スキャナ１２３ｂに対するメンテナンスの作業の実行を受け付ける。これにより、ＰＯＳメンテナンスプログラム３５０は、業務アプリケーション３１０ａから同じＰＯＳ入出力コードを用いて継続してスキャナ１２３ｂに対するアクセスの受け付けが可能になる。
【０１４９】
言い換えると、業務アプリケーション３１０ａは、新たな排他制御コードを取得する事を要せず、同一のＰＯＳ入出力コードを通常排他制御コードとして用いてスキャナ１２３ｂに対しアクセスすることが可能となる。業務アプリケーション３１０ａは、ビジー状態値を有するレスポンス電文を受信したとしても、ＰＯＳ端末装置２２０に同一のＰＯＳ入出力コードを設定したリクエスト電文を送信することで、再度のアクセスが可能となる。
【０１５０】
このようにして、ＰＯＳ端末装置２２０は、ＰＯＳメンテナンスプログラム３５０の機能を用いることで、メンテナンス端末５００からのメンテナンスの業務を行う要求を、ＰＯＳ端末装置２１０からの通常の業務を行う要求を中断させることなく受け付けることができる。また、ＰＯＳ端末装置２１０の業務アプリケーション３１０ａは、通常の業務を実行中にメンテナンス作業が発生した場合でも、同一の通常排他制御コードを継続して使用可能であり、通常の業務を中断することを要しない。
【０１５１】
ＰＯＳ端末装置２２０には複数のデバイスが接続されており、各デバイスが実行中であるか否かを保守員が判別し、実行中でないデバイスを探してメンテナンスを行うのは労力と時間を要する。しかし、ＰＯＳメンテナンスプログラム３５０の機能を用いることで、実行中のデバイスに対し、デバイスで実行中の業務を継続しながらメンテナンスの作業を行うことが可能となる。
【０１５２】
また、ＰＯＳ端末装置２２０は、ＰＯＳメンテナンスプログラム３５０の機能を用いることで、既存の業務アプリケーション３１０ａ，３１０ｂやＰＯＳ入出力サービスプログラム３２０ａ，３２０ｂやデバイスドライバ等に改変を加えることなく、メンテナンスのための排他制御を実行できる。
【０１５３】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、ＰＯＳ端末装置２ａ，２００，２１０，２２０、情報処理装置４ａ、メンテナンス端末５００，５１０が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。
【０１５４】
処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体には、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等がある。磁気記録装置には、ＨＤＤ、フレキシブルディスク（ＦＤ）、磁気テープ（ＭＴ）等がある。光ディスクには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc - Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）等がある。光磁気記録媒体には、ＭＯ（Magneto - Optical disk）等がある。半導体メモリには、ＵＳＢ（Universal Serial Bus）メモリ等のフラッシュメモリがある。
【０１５５】
上記プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体が販売される。また、プログラムをサーバコンピュータに格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１５６】
上記プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラム若しくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０１５７】
また、プログラムで記述された処理の一部または全てを、電子回路に置き換えることが可能である。例えば、上記の処理機能の少なくとも一部を、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、ＰＬＤ（Programmable Logic Device）等の電子回路で実現してもよい。
【符号の説明】
【０１５８】
１，１００  ＰＯＳシステム
２ａ，２００，２１０，２２０  ＰＯＳ端末装置
２ｂ  アプリケーション
２ｃ  排他制御プログラム
２ｄ  デバイスアクセスプログラム
２ｅ  デバイス
３ａ  第１のポート
３ｂ  第２のポート
４ａ  情報処理装置
４ｂ  メンテナンスプログラム
６ａ  第１の排他制御コード
６ｂ  第２の排他制御コード
６ｃ  メンテナンスフラグ
６ｄ  デバイス排他制御コード
７，１５０  ネットワーク
４００  ＰＯＳサーバ
５００，５１０  メンテナンス端末
【図１】
0006434896.tif 000002
【図２】
0006434896.tif 000003
【図３】
0006434896.tif 000004
【図４】
0006434896.tif 000005
【図５】
0006434896.tif 000006
【図６】
0006434896.tif 000007
【図７】
0006434896.tif 000008
【図８】
0006434896.tif 000009
【図９】
0006434896.tif 000010
【図１０】
0006434896.tif 000011
【図１１】
0006434896.tif 000012
【図１２】
0006434896.tif 000013