以下、本実施の形態について図面を参照しながら説明する。なお、機能が同じ構成要素及び処理には全図面を通して同じ符合を付与し、重複する説明を省略する。
図1は、本実施の形態に係る情報処理システム100の一例を示す構成図である。図1に示すように、情報処理システム100は、複数の情報処理装置10と、複数の通信機器20と、サーバ30を備える。各々の情報処理装置10とサーバ30は通信回線2によって接続され、各々の情報処理装置10と各々の通信機器20は無線回線8によって接続される。
情報処理装置10は大別して2つの機能を有する。1つは情報処理装置10が設置される理由となった、情報処理装置10が有する本来の機能である。もう1つは、通信機器20からデータを受信し、受信したデータをサーバ30に転送するデータの中継機能である。
情報処理装置10に備えられる本来の機能はどのようなものであってもよく、特定の機能に限定されない。以降では、情報処理装置10に備えられる本来の機能を「主要機能」ということにする。
一例として本実施の形態に係る情報処理装置10は、指定されたファイルの内容を記録媒体に形成する画像形成機能、原稿に記載された内容を光学的に読み取るスキャン機能、読み取った原稿の内容を記録媒体に画像として形成するコピー機能、及び公衆回線を介して画像データを送受信するファクシミリ機能等の複数の機能のうち少なくとも1つの機能を主要機能として備える。
本実施の形態では、複数の情報処理装置10を区別して説明する場合には、情報処理装置10の後ろにアルファベットの符号を付加して表記する。各々の情報処理装置10を区別せずにまとめて説明する場合には、「情報処理装置10」のようにアルファベットの符号を付加せずに表記する。図1の例では情報処理装置10A、10Bの2台が示されているが、情報処理システム100に含まれる情報処理装置10は複数であればよく2台に限定されない。
通信機器20は、無線回線8を経由して情報処理装置10にデータを送信する電子機器であり、「IoT(Internet of Things)機器」又は「デバイス」とも呼ばれる。無線回線8には、例えば無線LAN(Local Area Network)、又はブルートゥース(登録商標)等が用いられる。
通信機器20は、無線回線8を経由して情報処理装置10と通信を行う通信機能、及び情報処理装置10に送信するデータを記憶する記憶機能を有するものであれば、どのような種類の電子機器であってもよい。
具体的には、通信機器20は、例えばタブレット型端末、スマートフォン、及びウェアラブル端末のようにユーザに携帯され、ユーザと共に使用場所が変化するコンピュータであってもよく、また、例えば通信機能及び記憶機能が備えられた空調機器、時計、及びシュレッダーのように設置場所が固定され、従来では無線回線8との接続が前提とされていない電子機器であってもよい。
なお、窓の鍵、及び机の引き出しのように、それ自体は電子機器でなくても、後から通信機能及び記憶機能が備えられた通信ユニットを接続することで無線回線8と接続されるようになった構造物及び家具等も本実施の形態における通信機器20に含まれる。
通信機器20は同報送信(「ブロードキャスト送信」とも言われる)によって情報処理装置10にデータを送信する。データを受信した情報処理装置10では、後述する登録処理によって設定された登録情報を参照して、データを受信した情報処理装置10のうち、何れか1台の情報処理装置10が受信したデータをサーバ30に転送する。
本実施の形態では、複数の通信機器20を区別して説明する場合には、通信機器20の後ろにアルファベットの符号を付加して表記する。各々の通信機器20を区別せずにまとめて説明する場合には、「通信機器20」のようにアルファベットの符号を付加せずに表記する。
図1の例では通信機器20A〜通信機器20Fで表される複数の通信機器20が示されているが、情報処理システム100に含まれる通信機器20の台数に制約はなく、少なくとも1台あればよい。
サーバ30は、情報処理装置10から通信機器20が送信したデータを受信し、受信したデータを記憶する。情報処理装置10とサーバ30を接続する通信回線2は有線回線であっても無線回線であってもよく、また、特定の装置だけが接続される専用回線であっても、不特定多数の装置が接続される公衆回線であってもよい。
図2は、情報処理装置10におけるデータの中継機能に関する機能構成例を示す図である。上述したように、情報処理装置10にはデータの中継機能の他、主要機能も含まれるが、以降ではデータの中継機能に注目して情報処理装置10の説明を行うため、図2では主要機能に関する機能構成例は省略している。
図2に示すように情報処理装置10は、受信部12、中継部14、送信部16、及び設定部18の各機能部と、デバイスリスト4及び優先リスト6を含む。
受信部12は通信機器20を検知し、検知した通信機器20と接続を行うと共に、接続後の通信機器20からデータが送信された場合にはデータを受信する。また、受信部12は、後述する登録状況電文、デバイス検知電文、及び応答電文を他の情報処理装置10から受信する。
<通信機器からのデータ受信>
受信部12は接続後の通信機器20からデータを受信した場合、デバイスリスト4を参照して、データを送信した通信機器20と対応付けられている情報処理装置10を取得する。
図3は、デバイスリスト4の一例を示す図である。デバイスリスト4には、何れの情報処理装置10が何れの通信機器20のデータをサーバ30に転送するかを対応付けた登録情報が含まれる。一例として「10A:20A」の表記は、情報処理装置10Aが通信機器20Aのデータを受信してサーバ30に転送することを示している。
ここでは、情報処理装置10及び通信機器20を一意に識別する識別情報として、便宜上、各々の装置に割り当てられた符号を用いて説明するが、例えば各々の装置に割り当てられたIPアドレス、MACアドレス、又は製造番号等、他の装置と重複しない識別情報が用いられる。
なお、通信機器20に対して、通信機器20のデータをサーバ30に転送する情報処理装置10を一意に設定することを、情報処理装置10と通信機器20を「対応付ける」という。また、デバイスリスト4に通信機器20と情報処理装置10との対応付けが記載されていることを「通信機器20がデバイスリスト4に登録されている」という。デバイスリスト4では、情報処理装置10には複数の通信機器20が対応付けられるが、通信機器20には1台の情報処理装置10が対応付けられる。
また、デバイスリスト4は、後述する登録処理によって通信機器20と情報処理装置10との対応付けが変化する動的リスト4Xと、通信機器20と情報処理装置10との対応付けがユーザによって予め定められ、後述する登録処理では通信機器20と情報処理装置10との対応付けが変化しない静的リスト4Yが含まれる。
情報処理装置10と通信機器20を対応付けるデバイスリスト4は、本実施の形態に係る登録情報の一例であり、ユーザが変更するまで情報処理装置10と通信機器20との対応付けが変化しない静的リスト4Yは、本実施の形態に係る固定登録情報の一例である。
受信部12は、データの送信元である通信機器20が自身の情報処理装置10と対応付けられている場合、受信したデータを中継部14に通知する。
中継部14は、受信部12からデータを受け付けると、受け付けたデータを含む送信電文を生成して送信部16に通知する。
送信部16は、中継部14から受け付けた送信電文をサーバ30に送信する。
一方、受信部12は、データの送信元である通信機器20が自身の情報処理装置10とは異なる情報処理装置10と対応付けられている場合、受信したデータを破棄する。
<デバイス検知電文の送信>
受信部12は、接続した通信機器20が何れの情報処理装置10とも対応付けられていない場合は、接続した通信機器20を一意に識別する識別情報を設定部18に通知する。
設定部18は、通信機器20の識別情報を受け付けると、デバイスリスト4に自身の情報処理装置10と受け付けた通信機器20を一時的に対応付ける仮登録を行う。そして、設定部18は、他の情報処理装置10に通信機器20を新たに検知したことを通知するデバイス検知電文を生成して、生成したデバイス検知電文を送信部16に通知する。デバイス検知電文には新たに検知した通信機器20の識別情報が含まれる。
送信部16は設定部18からデバイス検知電文を受け付けると、情報処理システム100に含まれる他の情報処理装置10の各々にデバイス検知電文を送信する。
<デバイス検知電文の受信と登録状況電文の送信>
受信部12は、他の情報処理装置10からデバイス検知電文を受信した場合、受信したデバイス検知電文を設定部18に通知する。
設定部18はデバイス検知電文を受け付けると、デバイス検知電文に含まれる識別情報によって表される通信機器20のデバイスリスト4における登録の有無を示す登録状況と、データの受信に関する優先度を規定した優先リスト6を含む登録状況電文を生成する。
図4は優先リスト6の一例を示す図である。優先リスト6は情報処理装置10毎に予め設定される。優先リスト6は、複数の情報処理装置10で同じ通信機器20からデータを受信した場合に、受信したデータをサーバ30に転送する情報処理装置10を複数の情報処理装置10から1台選択するために用いられる優先情報の一例である。複数の情報処理装置10で同じ通信機器20からデータを受信した場合に、何れの情報処理装置10でサーバ30にデータを送信すればよいかを選択するために規定された情報を「データの受信に関する優先度」という。
図4(A)は、情報処理装置10Aの優先リスト6Aの一例であり、図4(B)は、情報処理装置10Bにおける優先リスト6Bの一例である。
図4において、“General”は情報処理装置10の優先度を表す。情報処理装置10の優先度とは、当該情報処理装置10がデータをサーバ30に送信する処理(以降、「中継処理」という)を実行するのにどの程度適しているのかといった適任度合いを表す情報であり、例えば数値で表される。本実施の形態では一例として、General値が小さいほど情報処理装置10の優先度が高いことを表している。したがって、図4の例の場合、情報処理装置10Aの方が、情報処理装置10Bよりも情報処理装置10の優先度が高いことを表している。
また、図4において、“Type”は、通信機器20の種別による優先度を表す。通信機器20の種別とは、例えば機能、利用形態、用途、及び送信データ量といった通信機器20に関する属性の少なくとも1つの観点から通信機器20を区分した場合の、各々の区分に割り当てられた識別子である。例えば“Type−A”は、スマートフォンのように使用場所が変化する通信機器20であり、“Type−B”は、例えば空調機器のように一度設置されると次のレイアウト変更までその場所で使用し続けることを前提とした通信機器20である。
したがって、通信機器20の種別による優先度とは、情報処理装置10における中継処理の適任度合いを、通信機器20の区分毎に表した情報である。図4(A)の優先リスト6Aの場合、情報処理装置10Aは、Type−Bの通信機器20よりもType−Aの通信機器20の中継処理に適していることを表しており、図4(B)の優先リスト6Bの場合、情報処理装置10Bは、Type−AよりもType−Bの通信機器20の中継処理に適していることを表している。
すなわち、図4に示した優先リスト6A、6Bの場合、情報処理装置10の優先度と通信機器20の種別による優先度によって、各々の情報処理装置10A、10Bにおけるデータの受信に関する優先度が規定されている。
なお、優先リスト6A、6Bにおいて、“Type”が第1キーで“General”が第2キーである。キーの番号はキーの優先度を表しており、キーの番号が小さいほどキーの優先度が高いことを示す。すなわち、第2キーの優先度が同じ場合、第1キーの優先度が高い方の情報処理装置10に通信機器20が対応付けられる。逆に、他の情報処理装置10より第2キーの優先度は高いが第1キーの優先度が低い場合、第1キーの優先度がより高い他の情報処理装置10に通信機器20が対応付けられる。
情報処理装置10の優先度、及び通信機器20の種別による優先度は、通信機器20からのデータの受信に伴う情報処理装置10の主要機能への影響度合いから予め決定される。通信機器20からのデータをサーバ30に転送しても主要機能への影響度合いが低い情報処理装置10ほど、情報処理装置10の優先度が高く設定される。また、特定の区分に分類される通信機器20からのデータをサーバ30に転送しても主要機能への影響度合いが低い情報処理装置10ほど、当該特定の区分に分類される通信機器20の種別による優先度が高く設定される。
送信部16は、設定部18から登録状況電文を受け付けると、受信したデバイス検知電文の送信元である情報処理装置10に登録状況電文を送信する。
<登録状況電文の受信>
受信部12は、他の情報処理装置10から登録状況電文を受信した場合、受信した登録状況電文を設定部18に通知する。
設定部18は登録状況電文を受け付けると、後述する登録処理によって、登録状況電文に含まれる他の情報処理装置10の優先リスト6と自身の情報処理装置10(「自装置10」という場合がある)の優先リスト6を参照し、通信機器20が最も優先順位の高い情報処理装置10に対応付けられるようにデバイスリスト4を設定する。
<確認電文の送受信>
送信部16は、例えば予め定めた間隔(以降、「待機時間」という)毎に、情報処理システム100に含まれる他の情報処理装置10の各々に、情報処理装置10の稼働状態を確認するための確認電文を送信する。
一方、受信部12は他の情報処理装置10から確認電文を受信すると、中継部14を経由して送信部16に確認電文を受け渡す。確認電文を受け付けた送信部16は、確認電文の送信元である情報処理装置10に応答電文を送信する。
確認電文を送信した情報処理装置10の受信部12は、確認電文を送信してから予め定めた応答規定時間以内に他の情報処理装置10から応答電文を受信しなかった場合、応答電文を受信しなかった情報処理装置10の識別情報を含む稼働停止通知を設定部18に通知する。
設定部18は、受信部12から稼働停止通知を受け付けると、後述する確認処理によって、応答電文を受信しなかった情報処理装置10と通信機器20との対応付けをデバイスリスト4から削除する。
図5は、情報処理装置10における電気系統の要部構成例を示す図である。情報処理装置10は、例えばコンピュータ40を用いて構成される。
コンピュータ40は、図2に示した本実施の形態に係る情報処理装置10の各部を担うCPU(Central Processing Unit)41、プログラムを記憶するROM(Read Only Memory)42、CPU41の一時的な作業領域として使用されるRAM(Random Access Memory)43、不揮発性メモリ44、及び入出力インターフェース(I/O)45を備える。そして、CPU41、ROM42、RAM43、不揮発性メモリ44、及びI/O45がバス46を介して各々接続されている。
不揮発性メモリ44は、不揮発性メモリ44に供給される電力が遮断されても、記憶した情報が維持される記憶装置の一例であり、例えば半導体メモリが用いられるが、ハードディスクを用いてもよい。
I/O45には、例えば通信ユニット11、操作ユニット13、画像形成ユニット15、スキャンユニット17、及びファクシミリユニット19が接続される。
通信ユニット11は通信回線2と接続し、他の情報処理装置10及びサーバ30とそれぞれ通信を行う通信プロトコルを備えると共に、無線回線8と接続し、通信機器20と通信を行う通信プロトコルを備える。
操作ユニット13はユーザに情報処理装置10とのインターフェースを提供するユニットであり、入力ユニット13A及び表示ユニット13Bを含む。
入力ユニット13Aは、ユーザからの指示を受け付けてCPU41に通知する入力装置であり、例えばボタン及びタッチパネル等が用いられる。CPU41はユーザから指示された機能を実行する。
表示ユニット13Bは、CPU41によって処理された情報を画像として表示する表示装置であり、例えば液晶ディスプレイ又は有機EL(Electro Luminescence)ディスプレイ等が用いられる。
上述したように情報処理装置10は、画像形成機能、スキャン機能、コピー機能、及びファクシミリ機能を主要機能として備えており、画像形成ユニット15、スキャンユニット17、及びファクシミリユニット19によって、情報処理装置10の主要機能が実現される。
具体的には、画像形成ユニット15は、CPU41の指示に従って、受け付けた画像を紙等の記録媒体に形成する装置である。画像形成ユニット15における画像形成方式はどのような方式であってもよく、例えば電子写真方式であっても、インクジェット方式であってもよい。画像形成ユニット15は、画像形成機能、コピー機能、及びファクシミリ機能の実行に伴い用いられる。
スキャンユニット17は、CPU41の指示に従って、例えば図示しないプラテンガラスに置かれた原稿の内容を光学的に読み取り、原稿の内容を画像データに変換する装置である。スキャンユニット17はスキャン機能の実行に伴い用いられる。
ファクシミリユニット19は図示しないファクシミリ回線を介して、ファクシミリ機能を有する他の装置との間で画像データを送受信する装置である。また、CPU41は、ファクシミリ回線から受信した画像データを画像形成ユニット15を用いて記録媒体に画像として形成する。
なお、コピー機能は、CPU41がスキャンユニット17で得られた画像データを、画像形成ユニット15で記録媒体に形成させることによって実現される。
I/O45に接続されるユニットは図5に例示した各ユニットに限定されない。例えば、ユーザの声を認識する音声認識ユニット等をI/O45に接続してもよい。この場合、CPU41はユーザの指示を音声で受け付けてもよい。
次に、図6を参照して、情報処理システム100の動作について説明する。
図6は、通信機器20から接続要求を受け付けた場合に、CPU41によって実行される登録処理の流れの一例を示すフローチャートである。
接続要求は通信機器20によるデータの送信に先立って、通信機器20が情報処理装置10との間で無線回線8を確立するために送信する電文である。通信機器20は、通信機器20の識別情報を含んだ接続要求を同報送信する。したがって、情報処理システム100に含まれる各々の情報処理装置10は、通信機器20の接続要求を検知する。
なお、情報処理装置10から通信機器20の有無を検知する検知信号を同報送信し、検知信号を検知した通信機器20が検知信号に応答する形で接続要求を情報処理装置10に送信してもよい。
登録処理を規定する情報処理プログラムは、例えば情報処理装置10のROM42に予め記憶されている。情報処理装置10のCPU41は、ROM42に記憶される情報処理プログラムを読み込み、登録処理を実行する。
まず、ステップS10において、CPU41は、接続要求に含まれる識別情報がデバイスリスト4に登録されているか否かを判定する。識別情報がデバイスリスト4に登録されている場合、ステップS50に移行する。
ステップS50において、CPU41は、識別情報で表される通信機器20と対応付けられている情報処理装置10が自装置10か否かを判定する。識別情報で表される通信機器20と対応付けられている情報処理装置10が自装置10の場合にはステップS60に移行する。自装置10が接続要求を受け付けた通信機器20と対応付けられている場合、自装置10が当該通信機器20からのデータをサーバ30に転送する役目を担っていることになる。
したがって、ステップS60において、CPU41は、自装置10と対応付けられている通信機器20からデータを受信した場合、受信したデータをサーバ30へ送信して図6に示す登録処理を終了する。
一方、ステップS50の判定処理で、識別情報で表される通信機器20と対応付けられている情報処理装置10が他の情報処理装置10であると判定された場合には、ステップS70に移行する。この場合、他の情報処理装置10が当該通信機器20からのデータをサーバ30に転送する役目を担うため、ステップS70において、CPU41は、当該通信機器20からデータを受信しても、受信したデータを破棄して図6に示す登録処理を終了する。
一方、ステップS10の判定処理で、識別情報がデバイスリスト4に登録されていないと判定された場合、ステップS20に移行する。
ステップS20において、CPU41は、一時的に識別情報で表される通信機器20と自装置10とを対応付け、デバイスリスト4に登録する仮登録を行う。具体的には、CPU41は、動的リスト4Xに識別情報で表される通信機器20と自装置10との対応付けを記載する。
ステップS30において、CPU41は、接続要求に含まれていた通信機器20の識別情報を含むデバイス検知電文を生成する。
ステップS40において、CPU41は、ステップS30で生成したデバイス検知電文を、情報処理システム100に含まれる他の情報処理装置10の各々に送信する。これにより、当該情報処理装置10でデバイスリスト4に登録されていない新たな通信機器20を検知したことが、情報処理システム100に含まれる他の情報処理装置10の各々に通知される。以降では、情報処理装置10で接続要求を受け付けた通信機器20を「検知した通信機器20」ということにする。
なお、ステップS10において、CPU41は、デバイスリスト4の動的リスト4X及び静的リスト4Yを共に参照する。仮に、動的リスト4Xと静的リスト4Yの両方に同じ通信機器20が登録されていた場合には、CPU41は、ステップS50の判定処理において、静的リスト4Yで通信機器20と対応付けられている情報処理装置10が自装置10か否かを判定する。
すなわち、CPU41は、まず静的リスト4Yを参照し、静的リスト4Yに識別情報で表される通信機器20が登録されていない場合に動的リスト4Xを参照する。このように、静的リスト4Yは動的リスト4Xに優先する。
したがって、図3のデバイスリスト4の例において、通信機器20Eのデータは動的リスト4Xの内容に関わらず、情報処理装置10Aからサーバ30に転送される。
また、識別情報で表される通信機器20が、静的リスト4Yにおいて“never”と対応付けられている場合には、CPU41はステップS50の判定処理において、識別情報で表される通信機器20と対応付けられている情報処理装置10は他の情報処理装置10であると判定する。静的リスト4Yにおいて“never”はデータの転送を禁止する記号であり、情報処理システム100に含まれる何れの情報処理装置10も、“never”と対応付けられた通信機器20のデータは他の情報処理装置10がデータの転送を担うと判定する。すなわち、静的リスト4Yにおいて“never”と対応付けられた通信機器20のデータは、何れの情報処理装置10からもサーバ30に転送されない。
したがって、図3のデバイスリスト4の例において、通信機器20Fのデータは動的リスト4Xの内容に関わらず、サーバ30に転送されない。なお、動的リスト4Xには“never”の記号は用いられない。
図7は、図6のステップS40で通信機器20から接続要求を受け付けた他の情報処理装置10が送信したデバイス検知電文を受信した場合に、CPU41によって実行される登録処理の流れの一例を示すフローチャートである。
ステップS100において、CPU41は、デバイス検知電文に含まれる識別情報によって表される通信機器20が自装置10のデバイスリスト4に登録されているか否かを示す登録状況と、自装置10の優先リスト6を含んだ登録状況電文を生成する。
デバイスリスト4に識別情報によって表される通信機器20が含まれる場合には、登録状況は「登録済み」となり、含まれない場合には、登録状況は「未登録」となる。
ステップS110において、CPU41は、ステップS100で生成した登録状況電文を、デバイス検知電文の送信元である情報処理装置10に送信する。これにより、デバイス検知電文を送信した情報処理装置10では、情報処理システム100に含まれる他の情報処理装置10の各々が送信した登録状況電文を受信することになる。
図8は、デバイス検知電文を送信した情報処理装置10のCPU41によって実行される登録処理の流れの一例を示すフローチャートである。
図7で説明したように、デバイス検知電文を送信した情報処理装置10には、情報処理システム100に含まれる他の情報処理装置10の各々から登録状況電文が送信される。したがって、ステップS200において、CPU41は、登録状況電文を受信したか否かを判定する。登録状況電文を受信していない場合にはステップS200の判定処理を繰り返し実行して、登録状況電文の受信を監視する。一方、登録状況電文を受信した場合にはステップS210に移行する。
ステップS210において、CPU41は、情報処理システム100に含まれる他の全ての情報処理装置10から登録状況電文を受信したか否かを判定する。まだ全ての情報処理装置10から登録状況電文を受信していない場合にはステップS200に移行し、登録状況電文を送信していない情報処理装置10からの登録状況電文を監視する。一方、情報処理システム100に含まれる他の全ての情報処理装置10から登録状況電文を受信した場合にはステップS220に移行する。
ステップS220において、CPU41は、各々の情報処理装置10から送信された登録状況電文に含まれる登録状況を参照して、検知した通信機器20が、他の情報処理装置10で登録済みとなっているか否かを判定する。
情報処理システム100に含まれる他の情報処理装置10の少なくとも1台が、検知した通信機器20をデバイスリスト4に登録している場合、ステップS230に移行する。
図6のステップS20で、CPU41は検知した通信機器20をデバイスリスト4に仮登録していることから、このままでは自装置10と他の少なくとも1台の情報処理装置10が、同じ通信機器20から受信したデータをサーバ30に転送することになる。すなわち、複数の情報処理装置10が同じ通信機器20からのデータを重複して収集することになる。
したがって、ステップS230において、CPU41は、登録状況が「登録済み」となっている各々の登録状況電文に含まれる優先リスト6と自装置10の優先リスト6を比較して、情報処理装置10の優先順位を決定する。
例えば、図1に示した情報処理システム100の例において、情報処理装置10Aが通信機器20Aを検知し、情報処理装置10Bにデバイス検知電文を送信した場合に、情報処理装置10Bから登録状況が「登録済み」の登録状況電文を受信したとする。
なお、通信機器20Aの区分は“Type−A”とする。また、情報処理装置10Aの優先リスト6は図4(A)に示した優先リスト6Aであり、情報処理装置10Bの優先リスト6は図4(B)に示した優先リスト6Bとする。
この場合、情報処理装置10Aは“Type”及び“General”の両方で、情報処理装置10Bよりも優先度が高いことがわかる。したがって、情報処理装置10Aの優先順位が1位となり、情報処理装置10Bの優先順位が2位となる。
ステップS240において、CPU41は、ステップS230で決定した情報処理装置10の優先順位に基づいて、自装置10の優先順位が1位か否か、すなわち、自装置10が優先装置か否かを判定する。自装置10が優先装置の場合にはステップS250に移行する。
ステップS250において、CPU41は、図6のステップS20でデバイスリスト4に登録した仮登録を正式な登録として確定させる。これにより、接続要求を行った通信機器20が自装置10と対応付けられ、以降、当該通信機器20のデータは自装置10がサーバ30に転送する。
なお、ステップS220の判定処理で、検知した通信機器20が情報処理システム100に含まれる他の何れの情報処理装置10も未登録であると判定された場合、同じ通信機器20からのデータを重複して収集する情報処理装置10は存在しないことになる。
したがって、ステップS250に移行して、CPU41は、図6のステップS20でデバイスリスト4に登録した仮登録を正式な登録として確定させる。
一方、ステップS240の判定処理で、自装置10が優先装置でないと判定された場合にはステップS260に移行する。
自装置10が優先装置でないということは、自装置10よりも検知した通信機器20から受信したデータの中継処理に適した情報処理装置10が他に存在することになる。したがって、ステップS260において、CPU41は、図6のステップS20でデバイスリスト4に登録した仮登録を削除する。
そして、ステップS270において、CPU41は、検知した通信機器20とステップS230で優先順位が1位となった他の情報処理装置10を対応付けて、デバイスリスト4の動的リスト4Xに登録する。これによって当該通信機器20からデータを受信しても、図6のステップS70でデータを破棄することになるため、複数の情報処理装置10が同じ通信機器20からのデータを重複して収集することがなくなる。
以上により、図8に示した登録処理を終了する。
図6〜図8に示した登録処理では、デバイスリスト4の動的リスト4Xが設定される。デバイスリスト4の静的リスト4Yは、操作ユニット13を介してユーザが登録内容を更新した場合、及び、情報処理装置10が起動した場合に、CPU41によって情報処理システム100に含まれる他の情報処理装置10に送信される。静的リスト4Yを受信した情報処理装置10は、自装置10の静的リスト4Yが受信した静的リスト4Yと同じになるように、自装置10の静的リスト4Yを設定する。すなわち、静的リスト4Yを受信した情報処理装置10は、自装置10の静的リスト4Yを受信した静的リスト4Yで置き換える。
なお、場合によっては、図8のステップS230において、優先順位が1位となる情報処理装置10が複数存在してしまうことも考えられる。したがって、デバイス検知電文を受信した情報処理装置10は優先リスト6の他に、通信機器20からのデータの受信に伴う主要機能への影響度合いを示す指標を登録状況電文に含めてもよい。
具体的には、登録状況電文にCPU41の負荷率を含めてもよい。CPU41の負荷率は情報処理装置10で実行中の処理の処理量を示す指標の一例である。CPU41の負荷率が低いほど、中継機能のように主要機能以外の他の処理を実行する余裕があることを示していることから、他の情報処理装置10に比べてCPU41の負荷率が低い情報処理装置10に検知した通信機器20を対応付ければよい。
また、登録状況電文にRAM43及び不揮発性メモリ44の少なくとも一方の残容量を含めてもよい。RAM43及び不揮発性メモリ44の残容量は、情報処理装置10における記憶装置の残容量を示す指標の一例である。RAM43又は不揮発性メモリ44の残容量が多いほど、中継処理を行ってもメモリスワップが発生しにくくなるため、主要機能の実行に与える影響度合いが抑制されることになる。したがって、他の情報処理装置10に比べて記憶装置の残容量が多い情報処理装置10に検知した通信機器20を対応付ければよい。
また、登録状況電文に検知した通信機器20との距離を示す指標を含めてもよい。具体的には、情報処理装置10と通信機器20との距離が短いほど無線回線8におけるデータの受信強度は強くなるため、登録状況電文にデータの受信強度を含めればよい。データの受信強度が強いほどデータの受信エラー率は低くなるため、データの再送要求等が実行されずに主要機能の実行に与える影響度合いが抑制されることになる。
また、登録状況電文に通信機器20から送信される単位時間あたりのデータの受信量を含めてもよい。ここで「通信機器20から送信される単位時間あたりのデータの受信量」とは、通信機器20から正しく受信した単位時間あたりのデータの受信量のことをいう。上述したように、情報処理装置10と通信機器20との距離が短くなるほどデータの受信強度が強くなり、データの受信エラー率が低くなる。したがって、他の情報処理装置10に比べて、検知した通信機器20から送信される単位時間あたりのデータの受信量が多い情報処理装置10に検知した通信機器20を対応付ければよい。
なお、受信エラー率も通信機器20との距離を示す指標の一例であり、登録状況電文に通信機器20から送信されたデータの受信エラー率を含めてもよい。
更に、デバイス検知電文を受信した情報処理装置10は優先リスト6の他に、情報処理装置10の稼働度合いを示す指標を登録状況電文に含めてもよい。情報処理装置10の稼働度合いは、例えば情報処理装置10の1日あたりの稼働時間の平均値や平均稼働率によって表される。また、情報処理装置10が稼働しているとは、情報処理装置10に電源が投入され、通信機器20からのデータをサーバ30に転送する中継機能の実行準備が整っている状態をいう。
他の情報処理装置10に比べて稼働度合いが低い情報処理装置10は、他の情報処理装置10に比べて電源がオフされている時間が長い。電源がオフされている情報処理装置10に対応付けられた通信機器20からデータが送信された場合、当該通信機器20から送信されたデータはサーバ30に転送されないことになる。したがって、他の情報処理装置10に比べて稼働度合いが高い情報処理装置10に通信機器20を対応付けることが好ましい。
なお、情報処理装置10が例えばファクシミリ機能を備えている場合、当該情報処理装置10はファクシミリ受信に備えるため、ファクシミリ機能を備えていない他の情報処理装置10と比べて電源をオフにする期間が短くなる傾向が見られる。したがって、登録状況電文にファクシミリ機能の有無を示す指標を含めて、ファクシミリ機能を有する情報処理装置10に検知した通信機器20を対応付ければよい。他の情報処理装置10と比べて電源をオフにする期間が短くなる傾向が見られる情報処理装置10としては、例えば外部の装置からの要求に対して応答を送信するサーバ機能が稼働している情報処理装置10、サーバ機能を備えた外部のサーバ装置と接続されている情報処理装置10、及び他の情報処理装置10に比べてより多くのサーバ装置と接続されている情報処理装置10が存在する。したがって、登録状況電文に情報処理装置10がこうした特徴を有しているか否かを示す指標を含めてもよい。また、複数の情報処理装置10の間に主従関係が存在する場合には、主として動作する情報処理装置10の方が従として動作する情報処理装置10に比べて電源がオフにされる期間が短くなる傾向が見られることから、登録状況電文に情報処理装置10の主従関係を示す指標を含めてもよい。
このようにCPU41は、上述したCPU41の負荷率、RAM43及び不揮発性メモリ44の少なくとも一方の残容量、通信機器20との距離を示す指標、及び情報処理装置10の稼働度合いを示す指標の少なくとも1つを登録状況電文に含めてもよい。上記の説明では、優先リスト6とこれらの指標をそれぞれ個別に登録状況電文に含める例を示したが、優先リスト6にこれらの指標を含めてもよいことは言うまでもない。
なお、上述したように、電源がオフされている情報処理装置10と対応付けられている通信機器20がデータを送信した場合、当該通信機器20から送信されたデータはサーバ30に転送されないことになる。したがって、情報処理システム100では、データの中継機能が動作していない情報処理装置10を検知し、データの中継機能が動作していない情報処理装置10に通信機器20が対応付けられないようにする仕組みを備えている。
図9は、情報処理装置10の電源が投入された場合に、CPU41によって実行される確認処理の流れの一例を示すフローチャートである。図9に示す確認処理は、情報処理システム100に含まれる各々の情報処理装置10で実行される。
確認処理を規定する情報処理プログラムは、例えば情報処理装置10のROM42に予め記憶されている。情報処理装置10のCPU41は、ROM42に記憶される情報処理プログラムを読み込み、確認処理を実行する。
なお、情報処理装置10は、情報処理システム100に含まれる他の情報処理装置10の各々に後述する確認電文を送信するが、図9に示す確認処理は、情報処理システム100に含まれる何れか1台の情報処理装置10に確認電文を送信する処理を示したものである。すなわち、情報処理システム100に含まれる他の情報処理装置10の各々に対して、図9に示す確認処理がそれぞれ実行される。
ステップS300において、CPU41は、情報処理システム100に含まれる他の情報処理装置10に、情報処理装置10の稼働状態を確認する確認電文を送信する。確認電文の内容はどのようなものであってもよいが、確認電文を送信した情報処理装置10の識別情報が含まれる。
確認電文を受信した情報処理装置10は、確認電文に対する応答電文を確認電文の送信元である情報処理装置10に送信する。応答電文の内容もどのようなものであってもよいが、応答電文を送信した情報処理装置10の識別情報が含まれる。
したがって、ステップS310において、CPU41は、ステップS300で確認電文を送信した情報処理装置10から応答電文を受信したか否かを判定する。応答電文を受信していない場合にはステップS320に移行する。
ステップS320において、CPU41は、ステップS300で確認電文を送信してから応答電文を受信するまでの時間が、応答規定時間を経過したか否かを判定する。
「応答規定時間」とは情報処理装置10の稼働状態を判定するために用いられる閾値であり、応答規定時間を経過しても応答電文を送信しない情報処理装置10は稼働していないことを示す。応答規定時間は、情報処理システム100の実機による実験や情報処理システム100の設計仕様に基づくコンピュータシミュレーション等により予め求められ、例えば不揮発性メモリ44に予め記憶される。
ステップS320の判定処理において、まだ応答規定時間を経過していない場合にはステップS310に移行して、応答電文の受信状況を監視する。一方、応答規定時間を経過した場合にはステップS330に移行する。
応答規定時間を経過しても応答電文が受信されなかったことから、確認電文の送信先の情報処理装置10は稼働していないとみなされる。
したがって、ステップS330において、CPU41は、確認電文の送信先の情報処理装置10と通信機器20との対応付けをデバイスリスト4の動的リスト4Xから削除する。これにより、稼働していない情報処理装置10との対応付けが解消される。なお、CPU41は、静的リスト4Yにも確認電文の送信先の情報処理装置10と通信機器20との対応付けが存在する場合には、当該対応付けも静的リスト4Yから削除してもよいが、性的リスト4Yから削除したことを表示ユニット13Bに表示して、静的リスト4Yから削除したことをユーザに通知する。これにより、ユーザが静的リスト4Yの登録内容を見直せばよい。
一方、ステップS310の判定処理で応答電文を受信したと判定された場合、又はステップS330の処理が実行された場合にはステップS340に移行する。
ステップS340において、CPU41は、操作ユニット13の操作により、ユーザから確認処理の終了指示を受け付けたか否かを判定する。終了指示を受け付けていない場合はステップS350に移行する。
ステップS350において、CPU41は、待機時間が経過するまで待機する。「待機時間」とは確認電文の送信間隔を規定する時間であり、例えば不揮発性メモリ44に予め記憶される。待機時間の設定値に制約はないが、短い値に設定するほど他の情報処理装置10における稼働状態の確認間隔が短くなる。本実施の形態では、例えば数十秒程度に設定される。なお、応答規定時間と待機時間には「応答規定時間<待機時間」の大小関係がある。
待機時間が経過するとステップS300に移行し、情報処理システム100に含まれる他の情報処理装置10に確認電文を再度送信する。すなわち、待機時間で規定された間隔毎に、他の情報処理装置10における稼働状態が確認される。
一方、ステップS340の判定処理で、ユーザから確認処理の終了指示を受け付けたと判定された場合には、図9に示す確認処理を終了する。
これにより、稼働していない情報処理装置10と対応付けられていた通信機器20がデバイスリスト4から削除される。したがって、デバイスリスト4から削除された通信機器20が接続要求を行った場合、接続要求を検知した情報処理装置10の各々で図6〜図8に示した登録処理が実行され、情報処理装置10の優先順位に従って、デバイスリスト4から削除された通信機器20と対応付けられる新たな情報処理装置10がデバイスリスト4の動的リスト4Xに設定される。
なお、図9に示した確認処理では、1回でも応答規定時間以内に応答電文が受信されなければ、応答電文を送信しなかった情報処理装置10をデバイスリスト4から削除したが、例えば中継機能よりも優先度の高い主要機能を実行していたために、実際には稼働していたが応答規定時間以内に応答電文を送信しなかった情報処理装置10が存在する場合も考えられる。したがって、連続して応答規定時間以内に応答電文を受信しなかった回数が予め定めた回数に達した場合に、応答電文を送信しなかった情報処理装置10をデバイスリスト4から削除してもよい。
このように本実施の形態に係る情報処理システム100によれば、デバイスリスト4に登録されていない通信機器20から接続要求を検知した場合、情報処理装置10の間で登録状況電文が送受信される。そして、情報処理装置10は、登録状況電文に含まれる優先リスト6に基づいて決定された優先順位が最も高い情報処理装置10に、検知した通信機器20を対応付ける。
図10は、情報処理装置10でのソフトウエア構造の一例を示す図である。図10に示すように、情報処理装置10のソフトウエアは、主要機能を実行するアプリケーション層及びセッション層と、図6〜図8に示した登録処理及び図9に示した確認処理を担うデバイスドライバを含む階層構造となっている。
通信機器20はデータを同報送信するため、各々の情報処理装置10でデータを受信することになるが、下位層のデバイスドライバによって、自装置10と対応付けられていない通信機器20のデータは破棄される。したがって、セッション層以上の階層に、自装置10と対応付けられていない通信機器20のデータが通知されることがないため、アプリケーション層で自装置10と対応付けられていない通信機器20のデータを破棄する場合と比較して、主要機能への影響度合いが抑制されることになる。
以上、実施の形態を用いて本発明について説明したが、本発明は実施の形態に記載の範囲には限定されない。本発明の要旨を逸脱しない範囲で実施の形態に多様な変更又は改良を加えることができ、当該変更又は改良を加えた形態も本発明の技術的範囲に含まれる。例えば、本発明の要旨を逸脱しない範囲で処理の順序を変更してもよい。
また、本実施の形態では、一例として登録処理及び確認処理をソフトウエアで実現する形態について説明したが、図6〜図9に示したフローチャートと同等の処理を、例えばASIC(Application Specific Integrated Circuit)に実装し、ハードウエアで処理させるようにしてもよい。この場合、登録処理及び確認処理をソフトウエアで実現した場合と比較して、処理の高速化が図られる。
また、上述した実施の形態では、情報処理プログラムがROM42にインストールされている形態を説明したが、これに限定されるものではない。本発明に係る情報処理プログラムは、コンピュータ読み取り可能な記憶媒体に記録された形態で提供することも可能である。例えば、本発明に係る情報処理プログラムを、CD(Compact Disc)−ROM、又はDVD(Digital Versatile Disc)−ROM等の光ディスクに記録した形態で提供してもよい。また、本発明に係る情報処理プログラムを、USBメモリ及びフラッシュメモリ等の半導体メモリに記録した形態で提供してもよい。更に、情報処理装置10は通信回線2に接続される図示しない外部装置から本発明に係る情報処理プログラムを取得するようにしてもよい。