以下、本発明の実施例を図面に基づいて詳細に説明する。
なお、以下の実施例において、説明の便宜上必要があるときは、複数のセクションまたは実施例に分割して説明するが、特に明示した場合を除き、それらはお互いに無関係なものではなく、一方は他方の一部又は全部の変形例、詳細、補足説明などの関係にある。
また、以下の実施例において、要素の数など(個数、数値、量、範囲などを含む)に言及する場合、特に明示した場合及び原理的に明らかに特定の数に限定される場合などを除き、その特定の数に限定されるものではなく、特定の数以上でも以下でもよいものとする。
さらに、以下の実施例において、その構成要素(要素ステップなどを含む)は、特に明示した場合及び原理的に明らかに必須であると考えられる場合などを除き、必ずしも必須のものではないことは言うまでもない。
図1は、本実施例の情報装置制御システム1000の構成の例を示す図である。本実施例の情報装置制御システム1000は、システム全体の運用管理を実施する運用管理サーバ10と、ロボットを含む情報処理装置によるサービスを制御するサービス制御サーバ20、ロボット以外の機器を制御する外部機器制御サーバ30、が配置される運用管理センタ100と、移動機器として自律移動可能な情報処理装置であるロボットを含む情報処理装置70と、ロボット70以外の機器である外部機器80と、が配置されるサービス拠点110を有して構成される。ここでは、情報処理装置70を自律移動可能な情報処理装置であるロボットを含む情報処理装置70として説明するが、情報処理装置は移動機能を持つロボットに限定されるものではなく、移動機能を持たないロボットやタブレットやパソコンといった機器も含まれる。また、情報装置制御システム1000は、情報処理装置70を制御する主体として、運用管理サーバ10、サービス制御サーバ20、外部機器制御サーバ30等のサーバを用いているが、必ずしもサーバを用いる必要はなく、様々なコンピュータや機器を含む、情報処理装置70を制御可能な制御装置であればよい。また、各サーバにより実行される機能は、必ずしも各サーバで実行される必要はなく、あるサーバの1または複数の機能を他の1または複数のサーバにより実行させてもよい。
運用管理センタ100とサービス拠点110はネットワーク50で接続される。また、サービス拠点110内は構内LAN(Local Area Network)60で接続される。構内LANの接続方式は、例えば有線LAN、無線LAN、短距離無線であり、複数の接続方式を併用してもよい。
図2は、運用管理サーバ10の構成の例を示す図である。運用管理サーバ10で実行される処理の主体となるコンテンツは、一般的なコンピュータの補助記憶装置104にプログラム(ソフトウェア)の形で格納され、CPU(Central Processing Unit)102が、補助記憶装置104から読み出したプログラムをメモリ101上に展開して、実行する。運用管理サーバ10は、ネットワークI/F105を介して他のサーバやサービス機器、ロボット等の情報処理装置70と通信する。
I/O(入出力インタフェース)103は、ユーザが運用管理サーバ10に指示を入力し、プログラムの実行結果などをユーザに提示するためのユーザインタフェースである。I/O103には、入出力デバイス(例えば、キーボード、マウス、タッチパネル、ディスプレイ、プリンタなど)が接続される。I/O103は、ネットワークを経由して接続された管理端末によって提供されるユーザインタフェースが接続されてもよい。
CPU102は、メモリ101に格納されたプログラムを実行するプロセッサである。メモリ101は、不揮発性の記憶素子であるROM(Read Only Memory)及び揮発性の記憶素子であるRAM(Random Access Memory)を含む。ROMは、不変のプログラム(例えば、BIOS:Basic Input Output System)などが格納される。RAMは、DRAM(Dynamic Random Access Memory)のような高速かつ揮発性の記憶素子であり、補助記憶装置102に格納されたプログラム及びプログラムの実行時に使用されるデータが一時的に格納される。
具体的に、メモリ101は、通信監視プログラム111、サービス監視プログラム112、障害判定プログラム113、サービス開始プログラム114、リソース監視プログラム115が格納される。
通信監視プログラム111は、通信監視処理(図4参照)を実行するためのプログラムである。サービス監視プログラム112は、サービス監視処理(図5参照)を実行するためのプログラムである。障害判定プログラム113は、障害判定処理(図6参照)を実行するためのプログラムである。サービス開始プログラム114は、サービス開始処理(図7参照)を実行するためのプログラムである。リソース監視プログラム115は、リソース監視処理(図8参照)を実行するためのプログラムである。
また、メモリ101には、情報処理装置情報DB121(図3参照)、サービス状態情報DB122(図3参照)、外部機器情報DB123(図3参照)、リソース情報DB124(図3参照)、サービス情報DB125(図3参照)が格納される。
補助記憶装置104は、例えば、磁気記憶装置(HDD:Hard Disk Drive)、フラッシュメモリ(SSD:Solid State Drive)などの大容量かつ不揮発性の記憶装置である。また、補助記憶装置104は、CPU102により実行されるプログラム及びプログラムの実行時に使用されるデータが格納される。すなわち、プログラムは、補助記憶装104から読み出されて、メモリ101にロードされ、CPU102によって実行される。
運用管理サーバ10は、物理的に一つの計算機上で、又は、論理的又は物理的な複数の計算機上で構成される計算機システムであり、メモリ101に格納されたプログラムが、同一の計算機上で別個のスレッドで動作してもよく、複数の物理的計算機資源上に構築された仮想計算機上で動作してもよい。また、運用管理サーバ10と他の装置が一つの物理的又は論理的計算機に収容されてもよい。なお、プログラムの実行によって実現される処理の全部又は一部の処理をハードウェア(例えば、FPGA:Field−Programmable Gate Array)によって実現してもよい。
図3は、運用管理サーバ10のメモリ101に存在する各種のデータベースの構造を表す。情報処理装置情報DB121は情報処理装置70の状態に関する情報を管理するデータベースであり、情報処理装置70の識別子を示す情報処理装置識別子、情報処理装置70が設置されているサービス拠点110の拠点識別子、拠点マップ、情報処理装置70のマップ内のX座標およびY座標、ロボットパラメータ1〜Nを含む。図3では、情報処理装置情報DB121の一例としてロボットに関する情報を示しているが、上述したサービス機器についても同様に記憶される。
拠点識別子は拠点を一意に識別する識別子であり、端的には拠点の名称、あるいはシステムの命名規則に従って設定された文字列等が指定される。拠点マップはサービス拠点110の形状、広さ、見取り図など、拠点の物理的構造に関する情報であり、情報処理装置70の設置時に情報の初期設定が行われる。情報処理装置70が移動可能なロボットである場合には自己位置推定機能があり、レーザーレンジファインダ等を用いて周囲の壁と自身の距離を測定することで、サービス拠点90内の自身の位置(X座標,Y座標)を判定できる。ロボットパラメータはロボットの機能や性能を示すパラメータであり、ロボットが移動可能又は不可、対話が可能又は不可といった機能と、移動速度や処理性能といった性能を示すパラメータである。
サービス状態情報DB122は情報処理装置70が提供中のサービスの情報を管理するデータベースであり、一つのレコードは、サービスを一意に特定するサービス識別子、サービスの提供にあたり判断すべき要素を定めたサービスパラメータ、実行中のサービスの状態を管理するためのサービス状態パラメータ、ロボットを一意に識別するためのロボット識別子、ロボットが外部機器を利用するサービスを実施している場合に外部機器を一意に識別するための外部機器識別子を含む。
外部機器情報DB123は外部機器80の情報を管理するデータベースであり、外部機器80を一意に特定する機器識別子、機器の種類を表す機器種別、外部機器がサービス拠点110内で設置されている位置のX座標およびY座標、外部機器80を制御するために利用可能なパラメータのリスト(機器制御パラメータ1〜機器制御パラメータN)を含む。機器制御パラメータの内容は対象となる外部機器80の種別によって変化する。例えば、外部機器がデジタルサイネージのような出力機器であれば、機器制御パラメータとしては画面のオン/オフ、画面に表示するコンテンツの識別子、コンテンツにおける表示箇所(ページ数、URL等)が指定される。外部機器がカメラであれば、機器制御パラメータにはカメラの角度(パン・チルト)を設定することができる。外部機器がエレベータであれば、機器制御パラメータはエレベータへの移動要求、階数指定が考えられる。
リソース情報DB124はシステムが持つ全体のリソースを管理するデータベースであり、機器間の通信リソースを表す通信リソース情報、機器のCPUのリソース量を表すCPUリソース情報、機器のメモリのリソース量を表すメモリリソース情報、機器のI/Oのリソース量を表すI/Oリソース情報を含む。
サービス情報DB125は情報処理装置70が実行可能なサービスの情報を管理するデータベースであり、サービスを一意に特定するサービス識別子、サービスを開始する順番を決定するためのサービスの優先度、サービスに必要なロボットの機能や性能、機器のCPUの数やメモリの数といったパラメータを表すサービスパラメータ、サービスに対応する代替機能を示す代替機能識別子を含む。上記優先度は、例えば、サービスごとに優先度が高いほど値が小さい数値(例えば、「1」)が記憶されており、同時に複数のサービスを提供する必要がある場合には、当該値の小さいサービスが優勢して提供される。
なお、優先度は、あらかじめ管理者等により定められてもよいし、例えば、情報処理装置70の位置情報(情報処理装置情報DB121のX座標,Y座標)に応じて定めてもよい。例えば、情報処理装置70がイベント会場に配置された自律移動可能なロボットである場合には、当該イベント会場の入り口付近に配置されたロボットが提供するサービスを、イベント会場内部で提供されるサービスよりも優先するように上記値を定める。これにより、イベント会場内部で提供されるサービスよりも、イベント会場に入場する人に対するサービスを優先して提供することができるため、入場者が比較的スムーズにイベント会場に入場することができる。
図4は、通信監視処理の例を示すフローチャートである。通信監視処理は、通信監視プログラム111が運用管理サーバ10のCPU102で実行されることにより行われる処理である。通信監視プログラム111は、運用管理サーバ10が、定期的、あるいは運用管理サーバ10への状態情報を取得することにより行われる処理である。
通信監視プログラム111は、運用管理サーバ10から情報処理装置70に通信監視メッセージを送信し(S401)、情報処理装置70からの応答があるか否か判定を行う(S402)。通信監視プログラム111は、情報処理装置70からの応答がないと判定した場合は(S402;No)、障害判定処理(図6参照)を実行し、処理を終了する。一方、通信監視プログラム111は、情報処理装置70からの応答があると判定した場合は(S402;Yes)、通信監視メッセージを送信してから応答があるまでの応答時間と通信量を計測し(S403)、応答時間が閾値1を下回るか否かを判定する(S404)。通信監視プログラム111は、応答時間が閾値1を下回らないと判定した場合は(S404;No)、障害判定処理(図6参照)を実行し、処理を終了する。一方、通信監視プログラム111は、応答時間が閾値1を下回ると判定した場合は(S404;Yes)、通信量と閾値2を比較し、通信量が閾値2を下回るか否かを判定する(S405)。通信監視プログラム111は、通信量が閾値2を下回らないと判定した場合は(S405;No)、障害判定処理(図6参照)を実行し、処理を終了する。一方、通信監視プログラム111は、通信量が閾値2を下回ると判定した場合は(S405;Yes)、処理を終了する。
図5は、サービス監視処理の例を示すフローチャートである。サービス監視処理は、サービス監視プログラム112が運用管理サーバ10のCPU102で実行されることにより行われる処理である。サービス監視プログラム112は、運用管理サーバ10が、定期的、あるいは情報処理装置からサービス状態情報の取得が行われると実行される処理である。
まず、サービス監視プログラム112は、情報処理装置70からサービス状態情報を取得し(S501)、サービス状態情報DB122を更新する(S502)。サービス監視プログラム112は、図12で説明するサービスの経過時間と、サービス状態情報DB122のサービスパラメータに含まれるサービスの標準的な経過時間と、を比較し、サービスの経過時間がサービスの標準的な経過時間を上回るか否かを判定する(S503)。サービス監視プログラム112は、サービスの経過時間がサービスの標準的な経過時間を上回ると判定した場合は(S503;Yes)、障害判定処理(図6参照)を実行し、処理を終了する。一方、サービス監視プログラム112は、サービスの経過時間がサービスの標準的な経過時間を上回らないと判定した場合は(S503;No)、サービスパラメータが正常か否かを判定する(S504)。サービスパラメータが正常であるか否かは、例えば、サービスに必要なロボットの機能や性能、機器のCPUの数やメモリの数が、あらかじめ定められたサービスを提供する基準(例えば、サービスごとに定められたCPUの周波数やメモリ容量の基準値)を満たしているか否かにより判断される。サービス監視プログラム112は、サービスパラメータが正常である、すなわち所定の基準を満たしていると判定した場合、当該サービスを提供することが適切であると判断する。
サービス監視プログラム112は、サービスパラメータが正常でないと判定した場合は(S504;No)、障害判定処理(図6参照)を実行し(S505)、処理を終了する。一方、サービス監視プログラム112は、サービスパラメータが正常であると判定した場合は(S504;Yes)、何もせずに処理を終了する。
図6は、障害判定処理の例を示すフローチャートである。障害判定処理は、障害判定プログラム113が運用管理サーバ10のCPUで実行されることにより行われる処理である。
障害判定プログラム113では、まずリソース監視処理(図8参照)を実行し(S601)、残りのリソース量と実行するサービスに必要なリソース量を比較し、サービスに必要なリソース量が残りのリソース量を上回るか否かを判定する(S602)。障害判定プログラム113は、サービスに必要なリソース量が残りのリソース量を上回らないと判定した場合は(S602;No)、サービスを継続することとし、処理を終了する。一方、障害判定プログラム113は、サービスに必要なリソース量が残りのリソース量を上回ると判定した場合は(S602;Yes)、サービスを停止し(S603)、サービス開始処理(図7参照)を実行し(S604)、処理を終了する。
図7は、サービス開始処理の例を示すフローチャートである。サービス開始処理は、サービス開始プログラム114が運用管理サーバ10のCPUで実行されることにより行われる処理である。
サービス開始プログラム114では、まずサービス情報DBから開始するサービスの情報を取得し(S701)、リソース判定処理(図8参照)を実行する(S702)。サービス開始プログラム114は、次にサービスに必要なリソース量と残りのリソース量を比較し、サービスに必要なリソース量が残りのリソース量を下回るか否かを判定する(S703)。サービス開始プログラム114は、サービスに必要なリソース量が残りのリソース量を下回ると判定した場合は(S703;Yes)、サービス開始メッセージを情報処理装置70に送信し、処理を終了する。一方で、サービス開始プログラム114は、サービスに必要なリソース量が残りのリソース量を下回らないと判定した場合は(S703;No)、サービスを待機するメッセージを情報処理装置70に送信し、処理を終了する。なお、図7に示したサービス開始処理は、サービス管理プログラム112やリソース監視プログラム115等、他のプログラムが実行してもよい。
図8は、リソース監視処理の例を示すフローチャートである。リソース監視処理は、リソース監視プログラム115が運用管理サーバ10のCPUで実行されることにより行われる処理である。
リソース監視プログラム115では、まずリソース情報DB124からシステム全体のリソース量を取得し(S801)、サービス状態情報DB122から実行している全てのサービスのリソース量の総計を計算する(S802)。リソース監視プログラム115は、システム全体のリソース量と実行している全てのサービスのリソース量との差から、残りのリソース量を計算し(S803)、処理を終了する。
図9は、情報処理装置70の構成の例を示す図である。情報処理装置70で実行される処理の主体となるコンテンツは、一般的なコンピュータの補助記憶装置704にプログラム(ソフトウェア)の形で格納され、CPU702が、補助記憶装置704から読み出したプログラムをメモリ701上に展開して、実行する。情報処理装置70は、LAN I/F705を介して他の機器と通信する。さらに情報処理装置70は、頭、腕、脚といったロボットの機構部分である機構部706と、機構部を制御する機構制御部707と、音声を発するスピーカ708と、音声を収集するマイク709と、カメラやレーザによる距離測定器などの位置測定用のセンサ720とを備える。
I/O(入出力インタフェース)703は、ユーザが情報処理装置70に指示を入力し、プログラムの実行結果などをユーザに提示するためのユーザインタフェースである。I/O703には、入出力デバイス(例えば、キーボード、マウス、タッチパネル、ディスプレイ、プリンタなど)が接続される。I/O703は、ネットワークを経由して接続された管理端末によって提供されるユーザインタフェースが接続されてもよい。
CPU702は、メモリ701に格納されたプログラムを実行するプロセッサである。メモリ701は、不揮発性の記憶素子であるROM及び揮発性の記憶素子であるRAMを含む。ROMは、不変のプログラム(例えば、BIOS)などが格納される。RAMは、DRAMのような高速かつ揮発性の記憶素子であり、補助記憶装置702に格納されたプログラム及びプログラムの実行時に使用されるデータが一時的に格納される。
具体的に、メモリ701は、通信監視プログラム711、サービス監視プログラム712、情報処理装置制御プログラム713、障害復旧プログラム714が格納される。
通信監視プログラム711は、通信監視処理(図11参照)を実行するためのプログラムである。サービス監視プログラム712は、サービス監視処理(図12参照)を実行するためのプログラムである。情報処理装置制御プログラム713は、情報処理装置制御処理(図13参照)を実行するためのプログラムである。障害復旧プログラム714は、障害復旧処理(図14参照)を実行するためのプログラムである。
また、メモリ701は、情報処理装置状態情報DB721(図10参照)、情報処理装置情報DB722(図10参照)、障害時動作情報DB723(図10参照)が格納される。
補助記憶装置704は、例えば、磁気記憶装置(HDD)、フラッシュメモリ(SSD)などの大容量かつ不揮発性の記憶装置である。また、補助記憶装置704は、CPU702により実行されるプログラム及びプログラムの実行時に使用されるデータが格納される。すなわち、プログラムは、補助記憶装置704から読み出されて、メモリ701にロードされ、CPU702によって実行される。
情報処理装置70の計算機システムは、物理的に一つの計算機上で、又は、論理的又は物理的な複数の計算機上で構成される計算機システムであり、メモリ701に格納されたプログラムが、同一の計算機上で別個のスレッドで動作してもよく、複数の物理的計算機資源上に構築された仮想計算機上で動作してもよい。なお、プログラムの実行によって実現される処理の全部又は一部の処理をハードウェア(例えば、FPGA)によって実現してもよい。
図10は、情報処理装置70のメモリ701に存在する各種のデータベースの構造を表す。
情報処理装置状態情報DB721は情報処理装置70の状態を管理するデータベースであり、情報処理装置70と一意に特定するロボット識別子、ロボットが設置されているサービス拠点110を一意に特定する拠点識別子、サービス拠点110の地図情報を示す拠点マップ、情報処理装置の拠点マップ内の位置を示すX座標およびY座標、情報処理装置70が実行中のサービスを一意に特定する実行中サービス識別子、サービスのステート情報を示すサービスステートを含む。図10では、情報処理装置状態情報DB721の一例としてロボットに関する情報を示しているが、上述したサービス機器についても同様に記憶される。
情報処理装置情報DB722は情報処理装置70の情報を管理するデータベースであり、情報処理装置70を一意に特定するロボット識別子、情報処理装置70に対しての制御情報を受信した場合に動作するためのパラメータのリスト(制御動作1〜制御動作N)を含む。図10では、情報処理装置情報DB722の一例としてロボットに関する情報を示しているが、上述したサービス機器についても同様に記憶される。
障害時動作DB723は情報処理装置70の障害時の動作を管理するデータベースであり、障害時の動作を一意に特定する障害時動作識別子、障害時動作のリスト(障害時動作1〜障害時動作N)、障害時動作を実行する際のパラメータである障害時動作パラメータ、障害時に行う動作の優先度である障害時動作優先度を含む。
図11は、通信監視処理の例を示すフローチャートである。通信監視処理は、通信監視プログラム711が情報処理装置70のCPU702で実行されることにより行われる処理である。通信監視プログラム711は、情報処理装置70が、定期的、あるいは運用管理サーバ10への状態情報を送信することにより行われる処理である。
通信監視プログラム711は、情報処理装置70から運用管理サーバ10に通信監視メッセージを送信し(S1101)、運用管理サーバ10からの応答があるか否かの判定を行う(S1102)。通信監視プログラム711は、運用管理サーバ10からの応答がないと判定した場合は(S1102;No)、情報処理装置制御処理(図13参照)を実行し(S1106)、処理を終了する。一方、通信監視プログラム711は、運用管理サーバ10からの応答があると判定した場合は(S1102;Yes)、通信監視メッセージを送信してから応答があるまでの応答時間と通信量を計測し(S1103)、応答時間が閾値1を下回るか否かを判定する(S1104)。通信監視プログラム711は、応答時間が閾値1を下回らないと判定した場合は(S1104;No)、情報処理装置制御処理(図13参照)を実行し(S1106)、処理を終了する。
一方、通信監視プログラム711は、応答時間が閾値1を下回ると判定した場合は(S1104;Yes)、通信量と閾値2を比較し、通信量が閾値2を下回るか否かを判定する(S1105)。通信監視プログラム711は、通信量が閾値2を下回らないと判定した場合は(S1105;No)、情報処理装置制御処理(図13参照)を実行し(S1106)、処理を終了する。一方、通信監視プログラム711は、通信量が閾値2を下回ると判定した場合は(S1105;Yes)、処理を終了する。
図12は、サービス監視処理の例を示すフローチャートである。サービス監視処理は、サービス監視プログラム712が情報処理装置70のCPU702で実行されることにより行われる処理である。サービス監視プログラム712は、情報処理装置70が、定期的、あるいは運用管理サーバ10からサービス状態情報の取得が行われると実行される処理である。
まず、サービス監視プログラム712は、情報処理装置状態情報DB721からロボット状態情報を取得し(S1201)、当該ロボット状態情報のサービス状態に含まれるサービスの経過時間と当該サービスの標準的な経過時間を比較し、サービスの経過時間がサービスの標準的な経過時間を下回るか否かを判定する(S1202)。サービス監視プログラム712は、サービスの経過時間がサービスの標準的な経過時間を下回らないと判定した場合(S1202;No)、情報処理装置制御処理(図13参照)を実行し(S1204)、処理を終了する。
一方、サービス監視プログラム712は、サービスの経過時間がサービスの標準的な経過時間を下回ると判定した場合(S1202;Yes)、サービスパラメータが正常か否かを判定する(S1203)。サービス監視プログラム712は、サービスパラメータが正常でないと判定した場合(S1203;No)、情報処理装置制御処理(図13参照)を実行し(S1204)、処理を終了する。一方、サービス監視プログラム712は、サービスパラメータが正常であると判定した場合(S1203;Yes)、何もせずに処理を終了する。
図13は、情報処理装置制御処理の例を示すフローチャートである。情報処理装置制御処理は、情報処理装置制御プログラム713が情報処理装置70のCPU702で実行されることにより行われる処理である。情報処理装置制御プログラム713は、情報処理装置70で情報処理装置の制御を実行する際に呼び出される処理である。
まず、情報処理装置制御プログラム713は、情報処理装置制御処理が呼び出された契機を取得する(S1301)。情報処理装置制御プログラム713は、情報処理装置制御処理が通信監視処理またはサービス監視処理から呼び出されたか否かを判定し(S1302)、情報処理装置制御処理が通信監視処理またはサービス監視処理から呼び出されたと判定した場合は(S1302;Yes)、障害復旧処理(図14参照)を実行し、処理を終了する。一方、情報処理装置制御プログラム713は、情報処理装置制御処理が通信監視処理またはサービス監視処理から呼び出されていない、すなわちこれら以外の処理から呼び出されたと判定した場合は(S1302;No)、サービスを開始するメッセージを運用管理サーバ10に送信し、処理を終了する。
図14は、障害復旧処理の例を示すフローチャートである。障害復旧処理は、障害復旧プログラム714がロボット70のCPU702で実行されることにより行われる処理である。障害復旧プログラム714は、情報処理装置70が、運用管理サーバ10が通信またはサービスに障害があると判定した際に実行される処理である。
まず、障害復旧プログラム714は、障害時動作情報DB723を参照し(S1401)、障害時動作実行パラメータ、障害時動作優先度に応じて実行する障害時動作を選択し、障害時動作を実行する(S1402)。次に、障害復旧プログラム714は、運用管理サーバ10に障害復旧メッセージを送信する(S1403)。障害復旧プログラム714は、運用管理サーバ10からの応答があるか否かを判定し(S1404)、運用管理サーバ10からの応答がないと判定した場合(S1404;NO)、S1402に戻り障害時動作を実行する。一方、障害復旧プログラム714は、運用管理サーバ10からの応答があると判定した場合(S1404;Yes)、運用管理サーバ10からサービスを再開する応答があったと判断し、サービスを開始する(S1405)。
図15は、運用管理サーバ10がサービスの監視を実行する際の処理の例を示すシーケンス図である。運用管理サーバ10は、通信監視プログラム111を実行し、通信状況の監視を行う(S1501)。次に運用管理サーバ10は、サービス監視プログラム112を実行し、サービス状況の監視を行う(S1502)。次に運用管理サーバ10は、障害判定プログラム113を実行し、通信監視プログラム111とサービス監視プログラム112の実行結果から、システムに障害があるか否かを判定する(S1503)。運用管理サーバ10は、障害があり、サービスを再開すると判定した場合は(図5S505、図6S604)、リソース監視プログラム115を実行し(図7S702、図8)、システム全体のリソースを取得する(S1504)。運用管理サーバ10は、サービス再開に支障がないと判定した場合は障害判定プログラム113を実行し、情報処理装置70に障害復旧リクエストを送信する(図6S604、図7S704、S1505)。
情報処理装置70は、障害復旧リクエストに応じて障害復旧プログラム714を実行し、障害時動作を実行する(図13S1303、図14、S1506)。情報処理装置70は、障害時動作を実行する際、運用管理サーバ10に応答メッセージを送信する(図14S1403、S1507)。運用管理サーバ10はサービス監視プログラム112を実行し、サービス制御サーバ20にサービス開始要求メッセージを送信し(S1509)、サービス制御サーバ20はサービス制御プログラムを実行してサービスを開始するメッセージを情報処理装置70に送信し(S1510、S1511)、情報処理装置70は情報処理装置制御プログラム713を実行することで、サービスを開始する(S1512)。
図16は、情報処理装置70がサービスの監視と制御を実行する際の処理の例を示すシーケンス図である。情報処理装置70は、通信監視プログラム711を実行し(S1601)、通信状況の監視を行った結果と、サービス監視プログラム712を実行し(S1602)、サービス状況の監視を行った結果から、システムに障害があるか判定する。障害があった場合は情報処理装置制御プログラム713を実行し、障害復旧リクエスト(S1604)を運用管理サーバ10に送信する。
運用管理サーバ10は障害復旧リクエストを受信するとリソース監視プログラム115を実行し、サービスを開始するために必要なリソースがあるか判定する(S1605)。運用管理サーバ10はサービスを開始可能な場合には障害判定プログラム113を実行し(S1606)、サービス制御サーバ20にサービスを開始するリクエストを送信する(S1607)。サービス制御サーバ20はサービス制御プログラムを実行し(S1608)、情報処理装置70に障害復旧応答を送信し(S1609)、情報処理装置70が障害復旧プログラム714を実行することでサービスを開始する(S1610)。
このように、本実施例によれば、1または複数の自立移動可能な装置(例えば、ロボット)を含む情報処理装置70を有した情報装置制御システム1000において情報処理装置70を制御する制御装置(例えば、運用管理サーバ10)では、図7のS702、図8、図15のS1504等に示したように、リソース監視部(例えば、リソース監視プログラム115)が、情報処理装置70がサービスを提供する際に利用する情報装置制御システム1000のリソース量を算出し、サービス監視部(例えば、サービス管理プログラム112)が、情報処理装置70がサービスを提供する際に利用する上記リソース量が、情報装置制御システム1000が提供可能なリソース量の範囲内であるか否かを判定するので、サービスを復旧することでリソースに影響がないかあらかじめ把握することができる。
また、図15のS1508等に示したように、上記サービス監視部は、上記リソース量が提供可能なリソース量の範囲内であると判定した場合に、情報処理装置70にサービスの提供を実行させるので、情報装置制御システム1000が提供可能なリソース量を利用するサービスについては、確実に当該サービスを提供することができる。
また、上記サービス監視部は、情報処理装置が前記サービスを提供する際に、同時に複数のサービスを提供する必要がある場合、サービスの優先度(例えば、サービス情報DB125の優先度)に基づいて、提供するサービスの開始順位を変更するので、優先度の高いサービスから順にユーザに提供することができる。また、上記サービス監視部は、上記サービスの優先度を、情報処理装置70の位置情報を用いて定めるので、位置情報(例えば、サービス拠点90内のロボットの位置)に応じて、優先度の高いサービスを提供することができる。
すなわち、ロボット、あるいはロボットを含む情報処理装置が制御装置と接続されるシステムにおいて、情報処理装置と制御装置、あるいは制御装置のリソースと、情報処理装置で実施されるサービス内容に応じてサービスを開始する順番を変更し、機器及びネットワークのリソースを管理することができる。
また、図15のS1503、S1504に示したように、情報装置制御システム1000に障害が生じたか否かを判定する障害判定部(例えば、障害判定プログラム113)を備え、上記リソース監視部は、情報装置制御システム1000に障害が発生したと判定された場合に、情報装置制御システム1000のリソース量を算出するので、障害時におけるシステム全体のリソース量を把握することができる。
上記障害判定部は、情報処理装置70に対する応答時間および通信量が所定の条件(例えば、応答時間が図4に示した閾値1未満であり、通信量が図4に示した閾値2未満であるという条件)を満たさない場合、または前記情報処理装置が提供するサービスが所定の提供基準(例えば、図5に示したサービスの経過時間が標準時間内であり、サービス状態パラメータが正常であるという条件)を満たさない場合に、情報装置制御システム1000に障害が生じたと判定するので、所定の基準を満たしたサービスのみをユーザに提供することができる。
また、図15のS1504、S1505、S1508に示したように、上記サービス監視部は、上記障害判定部が情報装置制御システム1000に障害が生じたと判定した場合に、情報処理装置70に障害復旧処理を実行させ、サービスの提供を再開させるので、情報装置制御システム1000に障害が生じた場合でも、その後自動的にサービスを継続して提供することができる。