(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022167181
(43)【公開日】2022-11-04
(54)【発明の名称】デバイス制御装置及びその制御プログラム
(51)【国際特許分類】
G06F 13/14 20060101AFI20221027BHJP
G06F 13/00 20060101ALI20221027BHJP
【FI】
G06F13/14 310A
G06F13/14 310E
G06F13/00 353C
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2021072797
(22)【出願日】2021-04-22
(71)【出願人】
【識別番号】000003562
【氏名又は名称】東芝テック株式会社
(74)【代理人】
【識別番号】100108855
【弁理士】
【氏名又は名称】蔵田 昌俊
(74)【代理人】
【識別番号】100103034
【弁理士】
【氏名又は名称】野河 信久
(74)【代理人】
【識別番号】100179062
【弁理士】
【氏名又は名称】井上 正
(74)【代理人】
【識別番号】100075672
【弁理士】
【氏名又は名称】峰 隆司
(74)【代理人】
【識別番号】100153051
【弁理士】
【氏名又は名称】河野 直樹
(74)【代理人】
【識別番号】100162570
【弁理士】
【氏名又は名称】金子 早苗
(72)【発明者】
【氏名】王 小舟
【テーマコード(参考)】
5B089
【Fターム(参考)】
5B089GA08
5B089GA21
5B089GB02
5B089HA06
5B089HA10
5B089HB05
5B089JA35
5B089JB10
5B089KA13
5B089KB04
5B089KC59
5B089KG03
5B089KG07
5B089KG10
5B089MC06
(57)【要約】
【課題】クライアント端末によってデバイスが占有され続けるのを未然に防ぐ。
【解決手段】デバイス制御装置は、登録部、設定部、更新部、解除部を備える。登録部は、いずれかのクライアント端末から占有要求のあったデバイスが他のクライアント端末に占有されていない場合に、占有要求のあったデバイスを登録する。設定部は、登録されたデバイスの占有を解除する時間を設定する。更新部は、登録されたデバイスと通信が発生するか、当該デバイスを占有するクライアント端末と通信が発生すると、当該デバイスの占有を解除する時間を延長方向に更新する。解除部は、登録されたデバイス及び当該デバイスを占有するクライアント端末と通信が発生することなく当該デバイスの占有を解除する時間が経過すると、当該デバイスの登録を解除する。
【選択図】
図2
【特許請求の範囲】
【請求項1】
ネットワークを介して2以上のクライアント端末と接続する通信インターフェースと、
少なくとも1つのデバイスとローカル接続するデバイスインターフェースと、
いずれかのクライアント端末から占有要求のあったデバイスが他のクライアント端末に占有されていない場合に、占有要求のあったデバイスを登録する登録部と、
前記登録された前記デバイスの占有を解除する時間を設定する設定部と、
前記登録された前記デバイスと通信が発生するか、当該デバイスを占有する前記クライアント端末と通信が発生すると、当該デバイスの占有を解除する時間を延長方向に更新する更新部と、
前記登録された前記デバイス及び当該デバイスを占有する前記クライアント端末と通信が発生することなく当該デバイスの占有を解除する時間が経過すると、当該デバイスの登録を解除する解除部と、
を具備するデバイス制御装置。
【請求項2】
前記解除部で登録が解除されたデバイスを占有していた前記クライアント端末に対し、デバイスの占有が解除されたことを通知する通知部と、
をさらに具備する請求項1記載のデバイス制御装置。
【請求項3】
前記登録部は、いずれかのクライアント端末から複数のデバイスの占有要求があった場合、各々のデバイスが他のクライアント端末に占有されていないことを条件に、占有要求のあった複数のデバイスを一括して登録し、
前記更新部は、前記複数のデバイスの中の少なくとも1つのデバイスと通信が発生すると、当該デバイスを含む複数のデバイスの占有を解除する時間を延長方向に更新する、請求項1又は2記載のデバイス制御装置。
【請求項4】
前記登録部は、いずれかのクライアント端末から複数のデバイスの占有要求があった場合、各々のデバイスが他のクライアント端末に占有されていないことを条件に、占有要求のあった複数のデバイスを個別に登録し、
前記更新部は、前記複数の中の少なくとも1つのデバイスと通信が発生した場合には、当該デバイスの占有を解除する時間だけを延長方向に更新し、前記複数のデバイスを占有する前記クライアント端末と通信が発生した場合には、当該複数のデバイスの占有を解除する時間を延長方向に更新する、請求項1又は2記載のデバイス制御装置。
【請求項5】
前記更新部は、デバイスの占有を解除する時間を、当該デバイスの種類に応じた時間だけ延長方向に更新する、請求項1乃至4のうちいずれか1項記載のデバイス制御装置。
【請求項6】
前記デバイスインターフェースは、同一種類のデバイスを接続可能であり、
前記デバイスから識別情報を取得する取得部、
をさらに具備し、
前記登録部は、占有要求のあったデバイスを、当該デバイスから取得した識別情報と関連付けて登録する、請求項1乃至5のうちいずれか1項記載のデバイス制御装置。
【請求項7】
ネットワークを介して2以上のクライアント端末と接続する通信インターフェースと、少なくとも1つのデバイスとローカル接続するデバイスインターフェースとを備えたデバイス制御装置にコンピュータを、
いずれかのクライアント端末から占有要求のあったデバイスが他のクライアント端末に占有されていない場合に、占有要求のあったデバイスを登録する登録手段、
前記登録された前記デバイスの占有を解除する時間を設定する設定手段、
前記登録された前記デバイスと通信が発生するか、当該デバイスを占有する前記クライアント端末と通信が発生すると、当該デバイスの占有を解除する時間を延長方向に更新する更新手段、及び、
前記登録された前記デバイス及び当該デバイスを占有する前記クライアント端末と通信が発生することなく当該デバイスの占有を解除する時間が経過すると、当該デバイスの登録を解除する解除手段、
として機能させるための制御プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、デバイス制御装置及びそのプログラムに関する。
【背景技術】
【0002】
近年、プリンタ、ディスプレイ、スキャナ等のコンピュータ周辺機器、いわゆるデバイスをローカル接続したデバイス制御装置をネットワークに接続し、複数のクライアント端末がネットワーク経由でデバイス制御装置に接続されたデバイスを共用するデバイス制御システムが普及している。デバイス制御システムは、クライアント端末の台数と比較してデバイスの台数を少なくできるので、設備コストを削減できる等の利点がある。
【0003】
この種のデバイス制御装置は、クライアント端末からデバイスの占有要求を受けると、そのデバイスが他のクライアント端末によって占有されていない場合に占有を許可する。その後、クライアント端末からデバイスの開放要求を受けると、デバイス制御装置は、デバイスの占有状態を解除する。かくしてクライアント端末は、デバイスを独占して使用することができる。
【0004】
しかしながら、クライアント端末によって占有されたデバイスは、そのクライアント端末から開放されないと、占有状態が解除されない。このため、例えばクライアント端末の電源が落ちる等のトラブルが発生して開放要求が出力されないと、他のクライアント端末はそのデバイスをいつまでも利用することができない。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】国際公開第2014/106882号
【特許文献2】特開2019-074935号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
本発明の実施形態が解決しようとする課題は、デバイスが占有され続けるのを未然に防ぐことができるデバイス制御装置及びその制御プログラムを提供しようとするものである。
【課題を解決するための手段】
【0007】
一実施形態において、デバイス制御装置は、通信インターフェースと、デバイスインターフェースと、登録部と、設定部と、更新部と、解除部とを備える。通信インターフェースは、ネットワークを介して2以上のクライアント端末と接続する。デバイスインターフェースは、少なくとも1つのデバイスとローカル接続する。登録部は、いずれかのクライアント端末から占有要求のあったデバイスが他のクライアント端末に占有されていない場合に、占有要求のあったデバイスを登録する。設定部は、登録されたデバイスの占有を解除する時間を設定する。更新部は、登録されたデバイスと通信が発生するか、当該デバイスを占有するクライアント端末と通信が発生すると、当該デバイスの占有を解除する時間を延長方向に更新する。解除部は、登録されたデバイス及び当該デバイスを占有するクライアント端末と通信が発生することなく当該デバイスの占有を解除する時間が経過すると、当該デバイスの登録を解除する。
【図面の簡単な説明】
【0008】
【
図2】デバイスサーバの要部回路構成を示すブロック図。
【
図3】デバイス管理テーブルのデータ構造を示す模式図。
【
図4】セッションレコードのデータ構造を示す模式図。
【
図5】有効期限レコードのデータ構造を示す模式図。
【
図6】リクエストレコードのデータ構造を示す模式図。
【
図7】デバイスサーバのプロセッサが制御プログラムに従って実行する主要な情報処理の手順を示す流れ図。
【
図8】デバイスサーバのプロセッサが制御プログラムに従って実行する主要な情報処理の手順を示す流れ図。
【
図9】デバイスサーバのプロセッサが制御プログラムに従って実行する主要な情報処理の手順を示す流れ図。
【
図10】デバイスサーバのプロセッサが制御プログラムに従って実行する主要な情報処理の手順を示す流れ図。
【
図11】第2実施形態に係る有効期限レコードのデータ構造を示す模式図。
【
図12】第2実施形態において、デバイスサーバのプロセッサが制御プログラムに従って実行する主要な情報処理の手順を示す流れ図。
【
図13】第3実施形態に係るデバイスサーバの説明図。
【
図14】第3実施形態に係るデバイス管理テーブルのデータ構造を示す模式図。
【
図15】第3実施形態において、デバイスサーバのプロセッサが制御プログラムに従って実行する主要な情報処理の手順を示す流れ図。
【発明を実施するための形態】
【0009】
以下、デバイス制御装置及びその制御プログラムの実施形態について、図面を用いて説明する。
(第1実施形態)
初めに、第1実施形態について、
図1乃至
図10を用いて説明する。
【0010】
[デバイス制御システムの説明]
図1は、第1実施形態に係るデバイス制御システム100の概略構成図である。デバイス制御システム100は、アクセスポイント10とデバイスサーバ20とをネットワークNWに接続してなる。ネットワークNWは、インターネット、WAN(Wide Area Network)又はLAN(Local Area Network)である。ネットワークNWは、有線回線であってもよいし、無線回線であってもよい。ネットワークNWは、有線回線と無線回線とが混在していてもよい。
【0011】
アクセスポイント10は、ネットワークNWに接続されるデバイスサーバ20と、2以上のクライアント端末30との間で、無線LANを通じてデータ通信を行う際の中継拠点として要所に設置された通信設備である。無線LANは、例えばWi-Fi(登録商標)の規格に準拠したものである。なお、
図1では、アクセスポイント10を1つのみ示しているが、アクセスポイント10の数は、1つに限定されない。施設の規模、レイアウト等を考慮して2以上のアクセスポイント10をネットワークNWに接続してもよい。
【0012】
デバイスサーバ20は、コンピュータ周辺機器いわゆるデバイスをローカル接続して制御するコンピュータ機器である。デバイスサーバ20は、デバイス制御装置の一態様である。デバイス制御システム100は、1台以上のデバイスサーバ20をネットワークNWに接続してなる。本実施形態では、2台のデバイスサーバ20がネットワークNWに接続されている。
【0013】
各デバイスサーバ20は、それぞれデバイスをローカル接続して制御する。各デバイスサーバ20が制御するデバイスは、1種類に限定されない。各デバイスサーバ20は、それぞれ2種類以上のデバイスをローカル接続して制御してもよい。その際に、一方のデバイスサーバ20と他方のデバイスサーバ20とがそれぞれ接続するデバイスの種類が異なっていてもよい。
図1では、各デバイスサーバ20がそれぞれデバイスA、デバイスB、デバイスC、デバイスD及びデバイスEを接続した状態を示している。
【0014】
クライアント端末30は、ネットワークNWを介して接続されるデバイスサーバ20に処理を依頼し、また、デバイスサーバ20からサービスを受けることが可能なコンピュータ端末である。クライアント端末30は、入力デバイスと表示デバイスとを備える。またクライアント端末30は、無線回路を内蔵する。例えばタブレット端末、スマートフォン、ノートパソコン等がクライアント端末30となり得る。また、クライアント端末30は、据置型のコンピュータ端末であってもよい。
【0015】
かかる構成のデバイス制御システム100は、例えば店員がPOSアプリケーションをインストールしたクライアント端末30を用いて接客業務、検品業務等を行う小売店に構築される。すなわち、クライアント端末30はPOS端末として機能する。この種の小売店では、接客業務又は検品業務の際、店員は、商品に付されたバーコードをスキャナで読み取る。商品にRFタグが付されていた場合には、店員は、RFIDリーダでそのRFタグを読み取る。また、店員がレシートの発行を指示すると、プリンタから買上レシートあるいは検品レシートが発行される。また、接客業務において客がクレジットカードまたは電子マネー等の非現金取引を希望される場合には、店員は、クレジット端末又は電子マネー端末を用いて決済を行う。ここで、クライアント端末30がスキャナ、RFIDリーダ、プリンタ、クレジット端末、電子マネー端末、釣銭機等のデバイスを備えていない場合、接客業務または検品業務を行うためには必要な外部のデバイスを利用する必要がある。このため、デバイス制御システム100は、デバイスA、デバイスB、デバイスC、デバイスDあるいはデバイスEとして、例えば、スキャナ、RFIDリーダ、プリンタ、クレジット端末、電子マネー端末、釣銭機等のデバイスをデバイスサーバ20に接続し、各クライアント端末30がデバイスサーバ20を介して所望のデバイスを占有して利用できるようにする。このように本実施の形態では、複数のクライアント端末30がネットワークを介してデバイスサーバ20に接続された各種デバイスを共用する。
【0016】
[デバイスサーバの説明]
図2は、デバイスサーバ20の要部回路構成を示すブロック図である。デバイスサーバ20は、プロセッサ21、メインメモリ22、補助記憶装置23、時計24、通信インターフェース25、複数のデバイスインターフェース261,262,263,264,265及びシステムバス27を備える。システムバス27は、アドレスバス、データバス等を含む。デバイスサーバ20は、システムバス27に、プロセッサ21、メインメモリ22、補助記憶装置23、時計24、通信インターフェース25及び各デバイスインターフェース261,262,263,264,265を直接又は信号入出力回路を介して接続する。かくしてデバイスサーバ20は、プロセッサ21、メインメモリ22及び補助記憶装置23と、これらを接続するシステムバス27とによってコンピュータを構成する。
【0017】
プロセッサ21は、上記コンピュータの中枢部分に相当する。プロセッサ21は、オペレーティングシステム、アプリケーションプログラム等に従って、デバイスサーバ20としての各種の機能を実現するべく各部を制御する。プロセッサ21は、例えばCPU(Central Processing Unit)である。
【0018】
メインメモリ22は、上記コンピュータの主記憶部分に相当する。メインメモリ22は、不揮発性のメモリ領域と揮発性のメモリ領域とを含む。メインメモリ22は、不揮発性のメモリ領域ではオペレーティングシステム、アプリケーションプログラム等のプログラムを記憶する。またメインメモリ22は、プロセッサ21が各部を制御するための処理を実行する上で必要なデータを不揮発性又は揮発性のメモリ領域で記憶する場合もある。メインメモリ22は、揮発性のメモリ領域を、プロセッサ21によってデータが適宜書き換えられるワークエリアとして使用する。不揮発性のメモリ領域は、例えばROM(Read Only Memory)である。揮発性のメモリ領域は、例えばRAM(Random Access Memory)である。
【0019】
補助記憶装置23は、上記コンピュータの補助記憶部分に相当する。例えばEEPROM(Electric Erasable Programmable Read-Only Memory)、HDD(Hard Disc Drive)、あるいはSSD(Solid State Drive)等が補助記憶装置23として使用される。補助記憶装置23は、プロセッサ21が各種の処理を行う上で使用するデータ、又はプロセッサ21での処理によって生成されたデータを保存する。補助記憶装置23は、上記のアプリケーションプログラムを記憶する場合もある。
【0020】
時計24は、デバイスサーバ20の時刻情報源として機能する。プロセッサ21は、時計24によって計時される時刻情報を基に、現在の日付及び時刻を取得する。
【0021】
通信インターフェース25は、ネットワークNWを接続する。通信インターフェース25は、ネットワークNWに接続された他の機器と所定の通信プロトコルに従いデータ通信を行う。通信プロトコルは、例えばHTTPプロトコルである。他の機器は、典型的には、アクセスポイント10を介して接続されるクライアント端末30と、他のデバイスサーバ20である。他の機器は、クライアント端末30又は他のデバイスサーバ20以外の機器を含んでいてもよい。
【0022】
複数のデバイスインターフェース261,262,263,264,265は、それぞれ種類の異なるデバイスを接続する。例えばデバイスインターフェース261はデバイスAを通信ケーブルで接続し、デバイスインターフェース262はデバイスBを通信ケーブルで接続し、デバイスインターフェース263はデバイスCを通信ケーブルで接続し、デバイスインターフェース264はデバイスDを通信ケーブルで接続し、デバイスインターフェース265はデバイスEを通信ケーブルで接続する。各デバイスインターフェース261,262,263,264,265は、それぞれ通信ケーブルで接続されたデバイスと所定の通信プロトコルに従って通信を行う。通信プロトコルは、例えばパブリッシュ・サブスクライブ型通信で用いられるMQTTプロトコルである。
【0023】
かかる構成のデバイスサーバ20は、プロセッサ21が、登録部211、設定部212、更新部213、解除部214及び通知部215としての機能を有するように、制御プログラムを実装している。
【0024】
制御プログラムは、例えば補助記憶装置23にインストールされている。制御プログラムは、例えばメインメモリ22にインストールされていてもよい。制御プログラムをメインメモリ22又は補助記憶装置23にインストールする方法は特に限定されない。リムーバブルな記録媒体に制御プログラムを記録して、あるいはネットワークを介した通信により制御プログラムを配信して、メインメモリ22又は補助記憶装置23にインストールすることができる。記録媒体は、CD-ROM、メモリカード等のようにプログラムを記憶でき、かつ装置が読み取り可能であれば、その形態は問わない。
【0025】
登録部211は、いずれかのクライアント端末30から占有要求のあったデバイスが他のクライアント端末30に占有されていない場合に、占有要求のあったデバイスを登録する機能である。登録部211は、クライアント端末30から複数のデバイスの占有要求があった場合、各々のデバイスが他のクライアント端末30に占有されていないことを条件に、占有要求のあった複数のデバイスを一括して登録する。デバイスの登録先は、後述するセッションフォルダ221である。登録部211は、登録手段と言い換えることもできる。
【0026】
設定部212は、登録されたデバイスの占有を解除する時間を設定する機能である。時間の設定先は、後述する有効期限フォルダ222である。設定部212は、設定手段と言い換えることができる。
【0027】
更新部213は、登録されたデバイスと通信が発生するか、当該デバイスを占有するクライアント端末30と通信が発生すると、当該デバイスの占有を解除する時間を延長方向に更新する機能である。更新部213は、登録部211において複数のデバイスが一括して登録されている場合には、その複数のデバイスの中の少なくとも1つのデバイスと通信が発生すると、当該デバイスを含む複数のデバイスの占有を解除する時間を延長方向に更新する。更新部213は、更新手段と言い換えることができる。
【0028】
解除部214は、登録されたデバイス及び当該デバイスを占有するクライアント端末30と通信が発生することなく当該デバイスの占有を解除する時間が経過すると、当該デバイスの登録を解除する機能である。デバイスの占有を解除する時間は、設定部212で設定され、更新部213で更新された時間である。解除部214は、解除手段と言い換えることができる。
【0029】
通知部215は、解除部214で登録が解除されたデバイスを占有していたクライアント端末30に対し、デバイスの占有が解除されたことを通知する機能である。通知は、ネットワークNWを介して行われる。通知部215は、通知手段と言い換えることができる。
【0030】
デバイスサーバ20は、上記の各機能を実現するために、補助記憶装置23の記憶領域の一部をデバイス管理テーブル231の領域としている。またデバイスサーバ20は、メインメモリ22の記憶領域の一部を、セッションフォルダ221、有効期限フォルダ222及びリクエストフォルダ223の記憶領域としている。
【0031】
デバイス管理テーブル231は、デバイスインターフェース261~265を介して接続される各デバイスを管理するのに必要なデータを記述するための領域である。
図3は、デバイス管理テーブル231のデータ構造を示す模式図である。デバイス管理テーブル231は、種別コードのカラムと、占有時間TXのカラムと、更新時間TYのカラムと、ステータスSTのカラムと、占有端末IDのカラムとを含む。
【0032】
種別コードは、デバイスサーバ20に接続される各デバイスの種類を識別するためのコードである。
図3において、種別コードは、“A”、“B”、“C”、…で表されている。例えば、種別コード“A”は、
図1におけるデバイスAの種別コードである。種別コード“B”,“C”等についても同様である。
【0033】
占有時間TXは、クライアント端末30がデバイスを占有する時間である。
図3において、種別コード“A”のデバイスAの占有時間TXは、”TXa”で表されており、種別コード“B”のデバイスBの占有時間TXは、”TXb”で表されており、種別コード“C”のデバイスCの占有時間TXは、“TXc”で表されている。
【0034】
更新時間TYは、クライアント端末30によって占有されているデバイスと通信が発生した場合、あるいはそのクライアント端末30と通信が発生した場合に占有時間を延長する時間である。
図3において、種別コード“A”のデバイスAの更新時間TYは“TYa”で表されており、種別コード“B”のデバイスBの更新時間TYは“TYb”で表されており、種別コード“C”のデバイスCの更新時間TYは“TYc”で表されている。
【0035】
ステータスSTは、デバイスが開放状態にあるのか占有状態にあるのかを識別する情報である。
図3において、種別コード“A”のデバイスAのステータスSTは“STa”で表されており、種別コード“B”のデバイスBのステータスSTは“STb”で表されており、種別コード“C”のデバイスCのステータスSTは“STc”で表されている。
【0036】
占有端末IDは、デバイスを占有しているクライアント端末30の識別情報である。各クライアント端末30には、それぞれ固有の端末IDが設定されている。
【0037】
因みに、占有時間TX及び更新時間TYは、デバイス毎に、その用途等に応じて任意の時間が設定される。更新時間TYは、占有時間TXと等しい時間であってもよい。その場合、デバイス管理テーブル231から更新時間TYのカラムを削除し、占有時間TXと更新時間TYを統一の時間としてもよい。
【0038】
セッションフォルダ221は、セッションレコード2211(
図4を参照)を保存するための領域である。セッションレコード2211は、クライアント端末30とそのクライアント端末30によって占有されているデバイスとを関連付けた情報である。
【0039】
図4は、セッションレコード2211のデータ構造を示す模式図である。セッションレコード2211は、セッションIDと、占有端末IDと、通信アドレスと、種別コードと、無効フラグとを含む。
【0040】
セッションIDは、クライアント端末30によるデバイスの占有状態、つまりは通信の開始から終了までのセッションが生じる毎に生成される識別情報である。占有端末IDは、デバイスを占有するクライアント端末30の識別情報である。通信アドレスは、そのクライアント端末30に設定されたネットワークNW上の通信アドレスである。種別コードは、クライアント端末30によって占有されるデバイスの識別情報である。1つのクライアント端末30が複数のデバイスを占有する場合、各々のデバイスの種別コードがセッションレコード2211に記述される。無効フラグは、セッションレコード2211が有効なデータであるか無効なデータであるかを識別するための1ビットデータである。本実施形態では、有効なデータであるときの無効フラグを“0”とし、無効なデータであるときの無効フラグを “1”とする。
【0041】
有効期限フォルダ222は、有効期限レコード2221(
図5を参照)を保存するための領域である。有効期限レコード2221は、クライアント端末30がデバイスを占有し得る時間を示す情報である。
【0042】
図5は、有効期限レコード2221のデータ構造を示す模式図である。有効期限レコード2221は、セッションIDと、開始日時DTSと、タイムアウト日時DTLと、無効フラグとを含む。
【0043】
セッションIDは、前述したとおりである。開始日時DTSは、クライアント端末30がデバイスの占有を開始した日時、つまりはセッションの開始日時である。タイムアウト日時DTLは、そのクライアント端末30がデバイスを占有し得る期間の終了日時、つまりはセッションの終了日時である。無効フラグは、有効期限レコード2221が有効なデータであるか無効なデータであるかを識別するための1ビットデータである。本実施形態では、有効なデータであるときの無効フラグを“0”とし、無効なデータであるときの無効フラグを “1”とする。
【0044】
リクエストフォルダ223は、リクエストレコード2231(
図6を参照)を保存するための領域である。リクエストレコード2231は、クライアント端末30からデバイスの占有要求があったが、他のクライアント端末30がそのデバイスを占有していたために要求を拒否した際の占有要求に関する情報である。
【0045】
図6は、リクエストレコード2231のデータ構造を示す模式図である。リクエストレコード2231は、要求端末IDと、通信アドレスと、リクエスト日時DTRと、種別コードと、無効フラグとを含む。
【0046】
要求端末IDは、占有要求のあったクライアント端末30の識別情報である。通信アドレスは、そのクライアント端末30に設定されたネットワークNW上の通信アドレスである。リクエスト日時は、そのクライアント端末30から占有要求を受けた日時である。種別コードは、クライアント端末30から占有要求があったデバイスの識別情報である。1つのクライアント端末30から複数のデバイスの占有要求があった場合、各々のデバイスの種別コードがリクエストレコード2231に記述される。無効フラグは、リクエストレコード2231が有効なデータであるか無効なデータであるかを識別するための1ビットデータである。本実施形態では、有効なデータであるときの無効フラグを“0”とし、無効なデータであるときの無効フラグを “1”とする。
[デバイスサーバの作用説明]
図7乃至
図10は、デバイスサーバ20のプロセッサ21が制御プログラムに従って実行する主要な情報処理の手順を示す流れ図である。以下、各図を用いてデバイスサーバ20の作用について説明する。この作用説明において、登録部211、設定部212、更新部213、解除部214及び通知部215としての機能の詳細を明らかにする。なお、流れ図によって示される情報処理の手順はそれに限定されるものではない。同等な機能を得られるのであれば、手順は適宜変更することができる。
【0047】
図7のACT1において、プロセッサ21は、通信インターフェース25又は各デバイスインターフェース261~265を監視する。そしてプロセッサ21は、ACT2として通信インターフェース25を介してクライアント端末30と通信があったか否かを確認する。クライアント端末30との通信がない場合、プロセッサ21は、ACT2においてNOと判定し、ACT3へと進む。プロセッサ21は、ACT3としていずれかのデバイスインターフェース261~265を介してデバイスと通信があったか否かを確認する。デバイスとの通信がない場合、プロセッサ21は、ACT3においてNOと判定し、ACT1へと戻る。すなわちプロセッサ21は、ACT1乃至ACT3において、通信インターフェース25又は各デバイスインターフェース261~265を介しての通信監視を継続する。
【0048】
この通信監視において、通信インターフェース25を介してクライアント端末30と例えばHTTPプロトコルによる通信があったことを確認すると、プロセッサ21は、ACT2においてYESと判定し、ACT4へと進む。プロセッサ21は、ACT4としてクライアント端末30との通信がデバイスの占有要求であるか否かを確認する。占有要求は、原則的にはデバイスを占有していないクライアント端末30から出力される。デバイスを占有しているクライアント端末30から他のデバイスの占有要求が出力される場合もあり得る。
【0049】
クライアント端末30との通信がデバイスの占有要求でない場合、プロセッサ21は、ACT4においてNOと判定し、ACT5へと進む。プロセッサ21は、ACT5としてクライアント端末30との通信がデバイスの開放要求であるか否かを確認する。開放要求は、デバイスを占有しているクライアント端末30から出力される。デバイスを占有していないクライアント端末30から開放要求が出力されることはない。
【0050】
クライアント端末30との通信がデバイスの開放要求でもない場合、プロセッサ21は、ACT5においてNOと判定し、ACT6へと進む。プロセッサ21は、ACT6としてデバイスを占有しているクライアント端末30との通信であるか否かを確認する。デバイスを占有しているクライアント端末30の端末IDは、デバイス管理テーブル231における占有端末IDのカラムに記述されている。プロセッサ21は、通信に含まれるクライアント端末30の端末IDが占有端末IDのカラムに記述されている場合、デバイスを占有しているクライアント端末30との通信であると判断する。
【0051】
デバイスを占有していないクライアント端末30との通信である場合、プロセッサ21は、ACT6においてNOと判定し、当該クライアント端末30との通信をエラーとする。なお、プロセッサ21は、通信をエラーとせず、クライアント端末30からの通信内容に応じた処理を実行してもよい。
【0052】
デバイスを占有しているクライアント端末30との通信である場合には、プロセッサ21は、ACT6においてYESと判定し、ACT7へと進む。そしてプロセッサ21は、ACT7乃至ACT12の処理を実行する。このACT7乃至ACT12の処理については後述する。その前に、クライアント端末30との通信がデバイスの占有要求であった場合の処理手順について説明する。
【0053】
クライアント端末30との通信がデバイスの占有要求であった場合、プロセッサ21は、ACT4においてYESと判定し、
図8のACT21へと進む。プロセッサ21は、ACT21としてクライアント端末30から占有要求があったデバイスの種別コードを認識する。クライアント端末30からの占有要求には、占有を希望するデバイスの種類を示す情報が含まれる。例えば、クライアント端末30が商品情報と特定するバーコードあるいはRFタグを読取る商品登録処理を行う場合、クライアント端末30は商品登録処理に必要となるバーコードスキャナあるいはRFIDスキャナの占有を要求する占有要求をデバイスサーバ20へ送信する。すなわち、バーコードスキャナあるいはRFIDスキャナを示す情報が占有要求に含まれる。例えば、クライアント端末30が商品登録処理を完了し、商品の代金の決済を行う決済処理を実行する場合、クライアント端末30は決済処理に必要となるクレジット端末、電子マネー端末、釣銭機及び/又はレシートプリンタの占有を要求する占有要求をデバイスサーバ20へ送信する。すなわち、クレジット端末、電子マネー端末、釣銭機及び/又はレシートプリンタを示す情報が占有要求に含まれる。なお、お客様の希望する決済方法に応じて占有するデバイスは決定されるとしてもよい。また、決済処理にレシートを印字するレシート印字処理を含めるかは、各店舗によって設定される。決済処理にレシート印字処理を含めない設定とする場合には、決済処理完了後に、レシート印字処理の実行をクライアント端末30において指示するとしてもよい。この場合、クライアント端末30は、クレジット端末、電子マネー端末及び/又釣銭機を占有するための占有要求とは別に、プリンタを占有するための占有要求をデバイスサーバ20へ送信する。プロセッサ21は、その情報から占有要求があったデバイスの種別コードを認識する。なお、情報は種別コードそのものであってもよいし、種別コード以外であってもよい。種別コード以外の場合には、プロセッサ21は、その情報によって特定されるデバイスの種別コードを取得することとなる。
【0054】
プロセッサ21は、クライアント端末30から占有要求があったデバイスの種別コードを認識すると、ACT22としてその種別コードで特定されるデバイスが開放状態にあるか否かを確認する。すなわちプロセッサ21は、デバイス管理テーブル231を参照して、当該種別コードに対応したステータスを調べる。その際、クライアント端末30から複数のデバイスの占有要求があった場合には、プロセッサ21は、各々のデバイスのステータスを調べる。その結果、すべてのステータスが開放状態を示す場合、プロセッサ21は、ACT22においてYESと判定し、ACT23へと進む。
【0055】
プロセッサ21は、ACT23として占有要求の送信元であるクライアント端末30の端末IDと通信アドレスを取得する。またプロセッサ21は、ACT24として時計24によって計時されている現在日時を取得する。そしてプロセッサは、ACT25としてその現在日時を占有の開始日時DTSとして決定する。
【0056】
プロセッサ21は、ACT26としてデバイス管理テーブル231参照して、占有要求のあったデバイスの種別コードに対応した占有時間TXを取得する。このとき、複数のデバイスの占有要求があった場合には、プロセッサ21は、各々のデバイスの種別コードに対応した占有時間TXを取得し、その中から最も長い占有時間TXを選択する。
【0057】
プロセッサ21は、ACT27としてタイムアウト日時DTLを算出する。具体的にはプロセッサ21は、開始日時DTSから占有時間TXを経過した日時をタイムアウト日時DTLとして算出する。例えば、クライアント端末30から占有要求があったデバイスがプリンタ単独であり、プリンタの占有時間TXが5分であると仮定すると、プロセッサ21は、開始日時DTSから5分後の日時をタイムアウト日時DTLとして算出する。例えば、クライアント端末30から占有要求があったデバイスがスキャナとRFIDリーダであり、スキャナの占有時間TXが2分、RFIDリーダの占有時間が3分であると仮定すると、プロセッサ21は、占有時間TXとしてRFIDリーダの占有時間3分を選択する。そしてプロセッサ21は、開始日時DTSから3分後の日時をタイムアウト日時DTLとして算出する。
【0058】
プロセッサ21は、ACT28としてセッションIDを生成する。例えばプロセッサ21は、開始日時DTSに、セッションIDを生成する毎にカウントアップされる連続番号を組み合わせて新規のセッションIDを生成する。
【0059】
プロセッサ21は、ACT29としてセッションレコード2211をセッションフォルダ221に登録する。すなわちプロセッサ21は、ACT28で生成したセッションIDと、ACT23で取得した端末ID及び通信アドレスと、ACT21で認識したデバイスの種別コードと、“0”の無効フラグとで構成されるセッションレコード2211を、セッションフォルダ221に登録する。
【0060】
プロセッサ21は、ACT30として有効期限レコード2221を有効期限フォルダ222に登録する。すなわちプロセッサ21は、ACT28で生成したセッションIDと、占有要求のあったクライアント端末30の端末IDと、ACT25で決定した開始日時DTSと、ACT27で算出したタイムアウト日時DTLと、“0”の無効フラグとで構成される有効期限レコード2221を、有効期限フォルダ222に登録する。
【0061】
プロセッサ21は、ACT31としてデバイス管理テーブル231に対し、ACT21で認識したデバイスの種別コードと対応するステータスを開放状態から占有状態に変更する。またプロセッサ21は、ACT32としてデバイス管理テーブル231に対し、ACT21で認識したデバイスの種別コードと対応する占有端末IDのカラムに、ACT23で取得した端末IDを記録する。
【0062】
以上で、プロセッサ21は、クライアント端末30から占有要求があったデバイスが開放状態にあるときの情報処理を終了する。プロセッサ21は、ACT1の通信監視状態に戻る。
【0063】
ここにデバイスサーバ20は、プロセッサ21がACT21、ACT22、ACT23、ACT28、ACT29及びACT31の処理を実行することにより、登録部211として機能する。また、デバイスサーバ20は、プロセッサ21がACT24、ACT25、ACT26、ACT27及びACT30の処理を実行することにより、設定部212として機能する。
【0064】
一方、クライアント端末30から占有要求のあったデバイスの少なくとも1つが占有状態にあった場合には、プロセッサ21は、ACT22においてNOと判定し、ACT33へと進む。プロセッサ21は、ACT33として占有要求の送信元であるクライアント端末30の端末IDと通信アドレスを取得する。そしてプロセッサ21は、ACT34としてその通信アドレスで特定されるクライアント端末30にデバイスの占有不可を通知するように通信インターフェース25を制御する。この制御により、占有要求の送信元であるクライアント端末30に対し、通信ネットワークNWを介してデバイスの占有不可が通知される。この通知を受けたクライアント端末30においては、例えば表示部にデバイスを占有できないことを示す表示がなされる。よって、クライアント端末30のオペレータは、デバイスを占有できないことを知り得る。
【0065】
ACT34の処理を終えたプロセッサ21は、ACT35として時計24によって計時されている現在日時を取得する。そしてプロセッサは、ACT36としてその現在日時をリクエスト日時DTRとして決定する。
【0066】
プロセッサ21は、ACT37としてリクエストレコード2231をリクエストフォルダ223に登録する。すなわちプロセッサ21は、ACT33で取得した端末ID及び通信アドレスと、ACT36で決定したリクエスト日時と、ACT21で認識したデバイスの種別コードと、“0”の無効フラグとで構成されるリクエストレコード2231を、リクエストフォルダ223に登録する。
【0067】
以上で、プロセッサ21は、クライアント端末30から占有要求があったデバイスが占有状態にあるときの情報処理を終了する。プロセッサ21は、ACT1の通信監視状態に戻る。
【0068】
このように、クライアント端末30から他のクライアント端末30に占有されていないデバイスの占有要求があった場合、プロセッサ21は、ACT23乃至ACT32の処理を実行する。その結果、セッションレコード2211がセッションフォルダ221に登録される。また、有効期限レコード2221が有効期限フォルダ222に登録される。さらには、デバイス管理テーブル231において、当該デバイスのステータスが開放状態から占有状態に変更される。また、当該デバイスの占有端末IDとして、占有要求を行ったクライアント端末30の端末IDが記述される。
【0069】
一方、クライアント端末30から、他のクライアント端末30に占有されているデバイスの占有要求があった場合には、プロセッサ21は、ACT33乃至ACT37の処理を実行する。その結果、リクエストレコード2231がリクエストフォルダ223に登録される。また、占有要求を行ったクライアント端末30に対しては、ネットワークNWを通じて占有不可が通知される。
【0070】
次に、デバイスを占有しているクライアント端末30からの通信が発生した場合のプロセッサ21の処理手順について説明する。
【0071】
デバイスを占有しているクライアント端末30から占有要求または開放要求以外の通信があると、プロセッサ21は、
図7のACT6においてYESと判定し、ACT7へと進む。プロセッサ21は、ACT7として通信元のクライアント端末30が占有しているデバイスを認識する。すなわちプロセッサ21は、デバイス管理テーブル231を参照して、当該クライアント端末30の端末IDが占有端末IDとして記述されているフィールドに対応した種別コードを認識する。
【0072】
プロセッサ21は、ACT8としてセッションフォルダ221から通信元のクライアント端末30の端末IDを含むセッションレコード2211を選択し、そのセッションレコード2211からセッションIDを取得する。そしてプロセッサ21は、ACT9としてそのセッションIDを含む有効期限レコード2221からタイムアウト日時DTLを取得する。またプロセッサ21は、ACT10としてデバイス管理テーブル231から、ACT7で認識した種別コードに対応した更新時間TYを取得する。このとき、複数のデバイスの種別コードを認識していた場合には、プロセッサ21は、各々の種別コードに対応した更新時間TYを取得し、その中から最も長い更新時間TYを選択する。
【0073】
プロセッサ21は、ACT11として更新時間延長後のタイムアウト日時DTLを算出する。すなわちプロセッサ21は、ACT8で取得したタイムアウト日時DTLから更新時間TYを経過した日時を更新時間延長後のタイムアウト日時DTLとして算出する。プロセッサ21は、ACT12として、ACT8で取得したセッションIDを含む有効期限レコード2221のタイムアウト日時DTLを、ACT11で算出した更新時間延長後のタイムアウト日時DTLに更新する。
【0074】
例えば、スキャナに対して更新時間TYが1分に設定されており、このスキャナだけを占有しているクライアント端末30との間で通信が発生した場合、該当する有効期限レコード2221のタイムアウト日時DTLは、その日時よりも1分延長した日時に更新される。また、スキャナとともにRFIDリーダも占有しており、RFIDリーダに対する更新時間が2分に設定されていた場合には、該当する有効期限レコード2221のタイムアウト日時DTLは、その日時よりも2分延長した日時に更新される。
【0075】
以上で、プロセッサ21は、デバイスを占有しているクライアント端末30との通信があった場合の情報処理を終了する。プロセッサ21は、ACT1の通信監視状態に戻る。
【0076】
次に、ACT1の通信監視状態において、クライアント端末30によって占有されているデバイスと通信が発生した場合のプロセッサ21の処理手順について説明する。
【0077】
クライアント端末30によって占有されているデバイスから通信があると、プロセッサ21は、
図7のACT3においてYESと判定し、ACT13へと進む。プロセッサ21は、ACT13として当該デバイスを占有しているクライアント端末30を認識する。すなわちプロセッサ21は、デバイス管理テーブル231を参照して、当該デバイスの種別コードに対応した占有端末IDを認識する。
【0078】
その後、プロセッサ21は、前述したACT8乃至ACT12の処理を実行する。すなわちプロセッサ21は、ACT8としてセッションフォルダ221から通信元のデバイスの種別コードを含むセッションレコード2211を選択し、そのセッションレコード2211からセッションIDを取得する。そしてプロセッサ21は、ACT9としてそのセッションIDを含む有効期限レコード2221からタイムアウト日時DTLを取得する。またプロセッサ21は、ACT10としてデバイス管理テーブル231から、セッションレコード2211に含まれる種別コードに対応した更新時間TYを取得する。このとき、複数のデバイスの種別コードが含まれていた場合には、プロセッサ21は、各々の種別コードに対応した更新時間TYを取得し、その中から最も長い更新時間TYを選択する。
【0079】
プロセッサ21は、ACT11として更新時間延長後のタイムアウト日時DTLを算出する。すなわちプロセッサ21は、ACT8で取得したタイムアウト日時DTLから更新時間TYを経過した日時を更新時間延長後のタイムアウト日時DTLとして算出する。プロセッサ21は、ACT12として、ACT8で取得したセッションIDを含む有効期限レコード2221のタイムアウト日時DTLを、ACT11で算出した更新時間延長後のタイムアウト日時DTLに更新する。
【0080】
例えば、更新時間TYが1分に設定されたスキャナと通信があり、当該スキャナを占有しているクライアント端末30は他のデバイスを占有していない場合、タイムアウト日時DTLは、スキャナの更新時間TYである1分を延長した日時に更新される。一方、クライアント端末30がスキャナとともに更新時間が2分のRFIDリーダも占有していた場合には、タイムアウト日時DTLは、スキャナとの通信であってもRFIDリーダの更新時間TYである2分を延長した日時に更新される。
【0081】
ここにデバイスサーバ20は、プロセッサ21がACT7~ACT13の処理を実行することにより、更新部213として機能する。
【0082】
次に、ACT1の通信監視状態において、デバイスを占有しているクライアント端末30から開放要求があった場合のプロセッサ21の処理手順について説明する。
【0083】
クライアント端末30からデバイスの開放要求があった場合、プロセッサ21は、
図7のACT5においてYESと判定し、
図9のACT41へと進む。プロセッサ21は、ACT41としてセッションIDを選択する。具体的にはプロセッサ21は、開放要求送信元のクライアント端末30の端末IDと、開放対象のデバイスの種別コードとが記述されたセッションレコード2211のセッションIDを選択する。開放要求には、開放対象のデバイスの種別コードが含まれている。
【0084】
プロセッサ21は、ACT42としてそのセッションレコード2211を無効化する。すなわちプロセッサ21は、ACT41で取得したセッションIDが記述されているセッションレコード2211の無効フラグを“0”から“1”に変更する。プロセッサ21は、ACT43として該当する有効期限レコード2221を無効化する。すなわちプロセッサ21は、ACT41で取得したセッションIDが記述されている有効期限レコード2221の無効フラグを“0”から“1”に変更する。
【0085】
プロセッサ21は、ACT44として開放対象のデバイスの種別コードを認識する。そしてプロセッサ21は、ACT45としてデバイス管理テーブル231に対し、ACT44で認識したデバイスの種別コードと対応するステータスを占有状態から開放状態に変更する。またプロセッサ21は、ACT46としてデバイス管理テーブル231から、その種別コードと対応して記録されている占有端末IDをクリアする。
【0086】
プロセッサ21は、ACT47としてリクエストフォルダ223をチェックする。そしてプロセッサ21は、ACT48として種別コードに対応したステータスが全て開放状態にある有効なリクエストレコード2231の有無をチェックする。有効なリクエストレコード2231とは、無効フラグが“0”に設定されているリクエストレコード2231である。因みに、リクエストレコード2231は、例えばリクエスト日時DTRから一定時間が経過すると、無効フラグが“0”から“1”に変更されて無効化される。
【0087】
該当するリクエストレコード2231が存在しない場合、プロセッサ21は、ACT48においてNOと判定し、ACT49及びACT50の処理をスキップする。
【0088】
該当するリクエストレコード2231が存在する場合には、プロセッサ21は、ACT48においてYESと判定し、ACT49へと進む。プロセッサ21は、ACT49としてリクエストレコード2231に含まれる通信アドレスで特定されるクライアント端末30にデバイスの開放を通知するように通信インターフェース25を制御する。この制御により、通信アドレスで特定されるクライアント端末30に対し、通信ネットワークNWを介してデバイスの開放が通知される。この通知を受けたクライアント端末30においては、例えば表示部にデバイスが開放されたことを示す表示がなされる。よって、クライアント端末30のオペレータは、占有したいデバイスが開放されたことを知り得る。
【0089】
プロセッサ21は、ACT50としてそのリクエストレコード2231の無効フラグを“0”から”1”に変更する。このようにリクエストレコード2231は、リクエスト日時DTRから一定時間が経過する前であっても、デバイスの開放通知に用いられた場合には無効化される。
【0090】
なお、該当するリクエストレコード2231が複数存在する場合には、プロセッサ21は、リクエスト日時DTRが最も古いリクエストレコード2231を選択する。そしてプロセッサ21は、そのリクエストレコード2231を基に、ACT49及びACT50の処理を実行する。
【0091】
以上で、プロセッサ21は、クライアント端末30との通信がデバイスの開放要求であった場合の情報処理を終了する。プロセッサ21は、ACT1の通信監視状態に戻る。
【0092】
ところでプロセッサ21は、
図7乃至
図9の流れ図で示す情報処理と並行して、
図10の流れ図で示す手順の情報処理を実行している。すなわちプロセッサ21は、ACT61として時計24で計時されている現在日時を取得する。そしてプロセッサ21は、ACT62としてその現在日時で有効期限フォルダ222をチェックする。プロセッサ21は、ACT63としてタイムアウト日時DTLが現在日時よりも前の有効な有効期限レコード2221を検索する。有効な有効期限レコード2221とは、無効フラグが“0”に設定されている有効期限レコード2221である。タイムアウト日時DTLが現在日時よりも前の有効な有効期限レコード2221を検出しなかった場合、プロセッサ21は、ACT63においてNOと判定し、ACT61へと戻る。プロセッサ21は、ACT61以降の処理を再度実行する。
【0093】
タイムアウト日時DTLが現在日時よりも前の有効な有効期限レコード2221を検出した場合には、プロセッサ21は、ACT63においてYESと判定し、ACT64へと進む。プロセッサ21は、ACT64としてその有効期限レコード2221からセッションIDを選択する。
【0094】
プロセッサ21は、ACT65としてそのセッションIDを含むセッションレコード2211の無効フラグを“0”から“1”に変更する。またプロセッサ21は、ACT66としてそのセッションIDを含む有効期限レコード2221の無効フラグを“0”から“1”に変更する。
【0095】
プロセッサ21は、ACT67として無効化したセッションレコード2211に含まれる通信アドレスで特定されるクライアント端末30にデバイスの占有期限切れを通知するように通信インターフェース25を制御する。この制御により、該当するクライアント端末30に対し、通信ネットワークNWを介してデバイスの占有期限切れが通知される。この通知を受けたクライアント端末30においては、例えば表示部にデバイスの占有期限が切れたことを示す表示がなされる。よって、クライアント端末30のオペレータは、デバイスの占有期限が切れたことを知り得る。
【0096】
プロセッサ21は、ACT68として無効化したセッションレコード2211に含まれるデバイスの種別コードを認識する。そしてプロセッサ21は、ACT69としてデバイス管理テーブル231に対し、ACT68で認識したデバイスの種別コードと対応するステータスを占有状態から開放状態に変更する。またプロセッサ21は、ACT70としてデバイス管理テーブル231から、その種別コードと対応して記録されている占有端末IDをクリアする。
【0097】
例えば、デバイスを占有していたクライアント端末30の電源が落ちる等のトラブルが発生し、そのクライアント端末30から開放要求が出力されない場合、タイムアウト日時DTLが経過した時点でデバイスが開放される。そして、クライアント端末30に対して占有期限切れが通知される。
【0098】
ここにデバイスサーバ20は、プロセッサ21がACT61乃至ACT66の処理を実行することにより、解除部214として機能する。またプロセッサ21は、プロセッサ21がACT67の処理を実行することにより、通知部215として機能する。
【0099】
ACT70の処理を終えると、プロセッサ21は、ACT71乃至ACT74として、
図9のACT47乃至ACT50の処理と同様の処理を実行する。したがって、デバイスの占有要求が拒否されたクライアント端末30のオペレータは、そのデバイスが開放されたことを知り得る。
【0100】
以上でプロセッサ21は、
図10の流れ図に示す手順の処理手順を終了する。その後、プロセッサ21は、再びACT61から同様の処理を開始する。
【0101】
このように、デバイスサーバ20は、登録部211、設定部212、更新部213及び解除部214としての機能を有する。したがって、登録部211によってデバイスを占有するセッションが登録されたクライアント端末30において、電源が落ちる等のトラブルが発生し、そのクライアント端末30からデバイスの開放要求が出力されない場合でも、そのセッションに対して設定されたタイムアウト日時DTLが経過すると、解除部214によってデバイスが開放される。したがって、いつまでもデバイスが開放されず、他のクライアント端末がそのデバイスを利用できないという不都合を未然に防ぐことができる。
【0102】
ここで、タイムアウト日時DTLは、セッションの開始時刻から占有対象のデバイスに対して設定された占有時間TXが経過した時刻である。また、セッションの対象であるクライアント端末とデバイスとの通信が発生した場合には、その通信の発生時刻から当該デバイスに対して設定された更新時間TYが経過した時刻である。したがって、クライアント端末30のオペレータが占有状態にあるデバイスを利用している間にそのデバイスが開放されてしまう不具合は起こり得ない。
【0103】
またデバイスサーバ20は、通知部215としての機能を有している。したがって、例えば電源断によりデバイスが強制的に開放されたクライアント端末30のオペレータは、電源復帰後にデバイスが開放されたことを容易に知り得るメリットがある。
【0104】
(第2実施形態)
次に、第2実施形態について、
図11及び
図12を用いて説明する。
図11は、第2実施形態に係るセッションレコード2212のデータ構造を示す模式図である。第1実施形態に係るセッションレコード2211とは、そのレコードに含まれる種別コードの数が異なる。すなわち第1実施形態では、1つのクライアント端末30が複数のデバイスを占有する場合、各デバイスの種別コードをセッションレコード2211に記述する。すなわち、1つのクライアント端末30が占有する全てのデバイスを1つのグループとしてまとめて管理する。これに対し、第2実施形態では、1つのクライアント端末30が複数のデバイスを占有する場合、デバイスの数だけセッションレコード2212を作成する。そして、各セッションレコード2212に、占有するデバイスの種別コードをそれぞれ記述する。
【0105】
このように、第2実施形態においては、1つのクライアント端末30が複数のデバイスを占有する場合、デバイス毎にクライアント端末30とのセッションを分けて管理する。このような管理は、第1実施形態において、
図8を用いて説明した情報処理の手順を、
図12に示す手順となるように変更することで可能となる。
【0106】
図12は、クライアント端末30との通信がデバイスの占有要求であった場合におけるプロセッサ21の情報処理手順を示す流れ図である。なお、
図8と共通するステップには同一符号を付している。
【0107】
第1実施形態では、プロセッサ21は、クライアント端末30から占有要求があったデバイスが全て開放状態にある場合、ACT22においてYESと判定し、ACT23へと進んだ。第2実施形態では、プロセッサ21は、ACT22においてYESと判定し、ACT81へと進む。プロセッサ21は、ACT81として占有要求があったデバイスの数をデバイスカウンタNの初期値とする。その後、プロセッサ21は、ACT23へと進み、ACT23乃至ACT32の処理を前述したのと同様に実行する。
【0108】
ここで、複数のデバイスの占有要求であった場合、プロセッサ21は、ACT26においていずれか1つのデバイスを選択し、そのデバイスの占有時間TXを取得する。またプロセッサ21は、ACT29において、その選択したデバイスの種別コードだけを含むセッションレコード2212をセッションフォルダ221に登録する。ACT31においては、プロセッサ21は、その選択したデバイスの種別コードに対応するステータスが開放状態から占有状態に変更される。ACT32においては、プロセッサ21は、その選択したデバイスの種別コードに対応して、クライアント端末30の端末IDを占有端末IDとして記録する。
【0109】
ACT32の処理を終えると、プロセッサ21は、ACT82としてデバイスカウンタNを“1”だけカウントダウンする。そしてプロセッサ21は、ACT83としてデバイスカウンタNが“0”になったか否かを確認する。デバイスカウンタNが“1”以上の場合、プロセッサ21は、ACT83においてNOと判定し、ACT23へと戻る。プロセッサ21は、先に選択したデバイス以外のデバイスを選択して、ACT23乃至ACT32の処理を実行する。
【0110】
デバイスカウンタNが“0”になると、プロセッサ21は、ACT83においてYESと判定し、
図12に示す手順の情報処理を終了する。
【0111】
第2実施形態において、例えば、クライアント端末30からスキャナとRFIDリーダの占有要求があった場合、セッションフォルダ221には、当該クライアント端末30の端末IDとスキャナの種別コードとを関連付けた第1のセッションレコード2212-1と、当該クライアント端末30の端末IDとRFIDリーダの種別コードとを関連付けた第2のセッションレコード2212-2とが登録される。また、有効期限フォルダ222に対しては、第1のセッションレコード2212-1のセッションIDを含む第1の有効期限レコード2221-1と、第2のセッションレコード2212-2のセッションIDを含む第2の有効期限レコード2221-2とが登録される。
【0112】
ここで、第1の有効期限レコード2221-1のタイムアウト日時DTLは、現在日付からスキャナの占有時間TXが経過した後の日時である。第2の有効期限レコード2221-2のタイムアウト日時DTLは、現在日付からRFIDリーダの占有時間TXが経過した後の日時である。
【0113】
そして、当該クライアント端末30との通信が発生した場合、第1の有効期限レコード2221-1のタイムアウト日時DTLは、スキャナの更新時間TYが経過した後の日時に更新される。また、第2の有効期限レコード2221-2のタイムアウト日時DTLは、RFIDリーダの更新時間TYが経過した後の日時に更新される。
【0114】
スキャナとの通信が発生した場合には、第1の有効期限レコード2221-1のタイムアウト日時DTLがスキャナの更新時間TYが経過した後の日時に更新される。第2の有効期限レコード2221-2のタイムアウト日時DTLは、更新されない。
【0115】
RFIDリーダとの通信が発生した場合には、第2の有効期限レコード2221-2のタイムアウト日時DTLがRFIDリーダの更新時間TYが経過した後の日時に更新される。第1の有効期限レコード2221-1のタイムアウト日時DTLは、更新されない。
【0116】
第1の有効期限レコード2221-1のタイムアウト日時DTLが経過した場合には、スキャナの占有状態が解除される。RFIDリーダの占有状態は解除されない。第2の有効期限レコード2221-2のタイムアウト日時DTLが経過した場合には、RFIDリーダの占有状態が解除される。スキャナの占有状態は解除されない。
【0117】
したがって、例えばスキャナとRFIDリーダとを占有したクライアント端末30のオペレータが、スキャナだけを利用して接客業務又は検品業務等を実行した場合、RFIDリーダは、対応するタイムアウト日時DTLが経過した時点で開放される。したがって、RFIDリーダを利用して業務を実行したい他のクライアント端末30のオペレータは、開放されたRFIDリーダを直ぐに占有することができる。従って、デバイスを利用した業務の効率化を図ることができる。
【0118】
(第3実施形態)
次に、第3実施形態について、
図13乃至
図15を用いて説明する。
図13は、第3実施形態に係るデバイスサーバ200の説明図である。デバイスサーバ200は、プロセッサ21が、登録部211、設定部212、更新部213、解除部214及び通知部215としての機能に加えて、取得部216としての機能を有するように、制御プログラムを実装している。
【0119】
取得部216は、デバイスサーバ200の管理下にあるデバイスから識別情報を取得する機能である。本実施形態において、識別情報は、デバイス毎に設定されるデバイスIDである。デバイスIDは、種別コードが同一のデバイスであっても異なる一意の情報である。
【0120】
図13は、デバイスサーバ200に対して、デバイスA、デバイスB、デバイスC、デバイスD及びデバイスEの5種類のデバイスが管理下にあり、さらに、デバイスAについては、デバイスID“0001”のデバイスAaと、デバイスID“0002”のデバイスAbの2台が管理下にある場合を例示する。因みに、デバイスBのデバイスIDは“ID0003”であり、デバイスCのデバイスIDは“0004”であり、デバイスDのデバイスIDは“0005”であり、デバイスEのデバイスIDは“0006”である。
【0121】
図14は、デバイス管理テーブル231のデータ構造を示す模式図である。第1実施形態とは、デバイスIDのカラムが追加されている点が異なる。そして、同じ種別コードであっても、デバイスID毎に、占有時間TX、更新時間TY、ステータスST及び占有端末IDを記録できるようになっている。
【0122】
図15は、クライアント端末30との通信がデバイスの占有要求であった場合におけるプロセッサ21の情報処理手順を示す流れ図である。なお、
図8と共通するステップには同一符号を付している。
【0123】
第1実施形態では、プロセッサ21は、ACT22において、デバイス管理テーブル231を参照して、クライアント端末30から占有要求があったデバイスの種別コードに対応したステータスを調べた。この点に関して、第3実施形態では、占有要求があったデバイスがデバイスサーバ20に複数接続されていた場合、そのデバイスの種別コードに対応した複数のステータスを調べる。そして、少なくとも1つのステータスが開放状態である場合、プロセッサ21は、そのデバイスが占有状態にないと認識する。
【0124】
そして、占有要求があったデバイスが開放状態にある場合、プロセッサ21は、ACT22においてYESと判定し、ACT91へと進む。プロセッサ21は、ACT91としてステータスが開放状態であるデバイスからデバイスIDを取得する。
【0125】
その後、プロセッサ21は、ACT23へと進み、ACT23乃至ACT32の処理を前述したのと同様に実行する。ここで、ACT31においては、デバイスの種別コードとACT91において当該デバイスから取得したデバイスIDとに対応するステータスを開放状態から占有状態に変更する。また、同デバイスIDに対応する占有端末IDのカラムにクライアント端末30の端末IDを記述する。
【0126】
例えば
図13に示すように、デバイスAに関して、デバイスIDが“0001”のデバイスAaと、デバイスIDが“0002”のデバイスAbの2台が管理下にあり、デバイスAa及びデバイスAbがいずれも開放状態にあると想定する。この場合において、クライアント端末30からデバイスAの占有要求があると、デバイスAa又はデバイスAbのいずれか一方、例えばデバイスAaが選択される。そして、このデバイスAaが占有状態となり、クライアント端末30とのセッションが開始される。
【0127】
次いで、このセッションが継続している間に、別のクライアント端末30からデバイスAの占有要求があると、開放状態にあるデバイスAbが選択される。そして、このデバイスAbが占有状態となり、クライアント端末30とのセッションが開始される。
【0128】
次いで、両セッションが継続している間に、さらに別のクライアント端末30からデバイスAの占有要求があると、その占有要求は拒否される。
【0129】
このように、第3実施形態によれば、1つのデバイスサーバ20に同一種類のデバイスを複数接続して管理することができる。そして、その場合においても、第1実施形態又は第2実施形態と同様に、クライアント端末30の電源断等のトラブルによってデバイスが不要に占有され続けるのを未然に防ぐことができる効果を奏し得る。
【0130】
(他の実施形態)
前記実施形態では、有効期限レコード2221がタイムアウト日時DTLを含む。他の実施形態としては、有効期限レコード2221が経過時間を示す時間データを含む。経過時間は、ACT30の有効期限レコードの登録時には開始日時DTSからの経過時間である。ACT8のセッションIDを取得したときには、その時点からの経過時間である。そして、
図10のACT3においては、プロセッサ21は、経過時間が該当するデバイスの占有時間TXに達すると、期限切れと判断する。このような構成を採用しても、前記実施形態と同様な作用効果を奏し得る。
【0131】
以上、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態及びその変形は、発明の範囲に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0132】
10…アクセスポイント、20…デバイスサーバ、21…プロセッサ、22…メインメモリ、23…補助記憶装置、24…時計、25…通信インターフェース、30…クライアント端末、100…デバイス制御システム、211…登録部、212…設定部、213…更新部、214…解除部、215…通知部、216…取得部、221…セッションフォルダ、222…有効期限フォルダ、223…リクエストフォルダ、231…デバイス管理テーブル、261~265…デバイスインターフェース。