(57)【要約】【課題】分散処理における負荷をより軽減可能な情報処理装置、システム、プログラム及び制御方法を提供する。【解決手段】依頼元の情報処理装置の処理の代理実行を要求する代理実行要求を受信する受信手段と、受信手段により、代理実行要求を受信すると、依頼元の情報処理装置の処理の一部または全部を代理実行可能か否かを判定する実行判定手段と、実行判定手段により、代理実行可能と判定された場合に、依頼元の情報処理装置の処理を実行する代理実行手段と、代理実行する処理の対象となる処理対象情報を複数の情報処理装置に分配可能か否かを判定する分配判定手段と、分配判定手段により、分配可能と判定された場合に、処理対象情報を代理実行する情報処理装置に分配する分配手段と、を有する。【選択図】図１１
2020160793.tif 000002
【特許請求の範囲】
【請求項１】
依頼元の情報処理装置の処理の代理実行を要求する代理実行要求を受信する受信手段と、
前記受信手段により、前記代理実行要求を受信すると、依頼元の情報処理装置の処理の一部または全部を代理実行可能か否かを判定する実行判定手段と、
前記実行判定手段により、代理実行可能と判定された場合に、前記依頼元の情報処理装置の処理を実行する代理実行手段と、
代理実行する処理の対象となる処理対象情報を複数の情報処理装置に分配可能か否かを判定する分配判定手段と、
前記分配判定手段により、分配可能と判定された場合に、前記処理対象情報を代理実行する情報処理装置に分配する分配手段と、
を有する情報処理装置。
【請求項２】
前記実行判定手段により、代理実行不可能と判定された場合には、前記代理実行要求を、前記依頼元の情報処理装置とは異なる他の情報処理装置に転送する請求項１に記載の情報処理装置。
【請求項３】
前記実行判定手段により、一部の処理を実行可能と判定された場合には、一部の処理を実行可能であることを示した前記代理実行要求を、前記依頼元の情報処理装置とは異なる他の情報処理装置に転送可能である請求項１または請求項２に記載の情報処理装置。
【請求項４】
前記代理実行要求を転送可能な情報処理装置の性能および状態を示すリストに基づき前記代理実行要求を転送する請求項２または請求項３に記載の情報処理装置。
【請求項５】
前記実行判定手段により、一部の処理を代理実行可能と判定され、かつ前記分配判定手段により、分配可能と判定された場合には、前記依頼元の情報処理装置の処理を実行するとともに、前記処理対象情報を代理実行する情報処理装置に分配する請求項１から請求項４のいずれか１項に記載の情報処理装置。
【請求項６】
前記分配手段により、代理実行する情報処理装置に前記処理対象情報が分配された場合には、分配された情報処理装置から代理処理の処理結果を受信し、当該処理結果を前記依頼元の情報処理装置に送信する請求項１から請求項５のいずれか１項に記載の情報処理装置。
【請求項７】
複数の情報処理装置を含むシステムであって、
処理の代理実行を要求する情報処理装置は、
処理の代理実行を要求する代理実行要求を送信する送信手段を備え、
前記代理実行要求を受信する情報処理装置は、
前記代理実行要求を受信する受信手段と、
前記受信手段により、前記代理実行要求を受信すると、依頼元の情報処理装置の処理の一部または全部を代理実行可能か否かを判定する実行判定手段と、
前記実行判定手段により、代理実行可能と判定された場合に、前記依頼元の情報処理装置の処理を実行する代理実行手段と、
代理実行する処理の対象となる処理対象情報を複数の情報処理装置に分配可能か否かを判定する分配判定手段と、
前記分配判定手段により、分配可能と判定された場合に、前記処理対象情報を代理実行する情報処理装置に分配する分配手段と、
を有するシステム。
【請求項８】
コンピュータに、
依頼元の情報処理装置の処理の代理実行を要求する代理実行要求を受信する受信ステップと、
前記受信ステップにより、前記代理実行要求を受信すると、依頼元の情報処理装置の処理の一部または全部を代理実行可能か否かを判定する実行判定ステップと、
前記実行判定ステップにより、代理実行可能と判定された場合に、前記依頼元の情報処理装置の処理を実行する代理実行ステップと、
代理実行する処理の対象となる処理対象情報を複数の情報処理装置に分配可能か否かを判定する分配判定ステップと、
前記分配判定ステップにより、分配可能と判定された場合に、前記処理対象情報を代理実行する情報処理装置に分配する分配ステップと、
を実行させるためのプログラム。
【請求項９】
情報処理装置の制御方法であって、
依頼元の情報処理装置の処理の代理実行を要求する代理実行要求を受信する受信ステップと、
前記受信ステップにより、前記代理実行要求を受信すると、依頼元の情報処理装置の処理の一部または全部を代理実行可能か否かを判定する実行判定ステップと、
前記実行判定ステップにより、代理実行可能と判定された場合に、前記依頼元の情報処理装置の処理を実行する代理実行ステップと、
代理実行する処理の対象となる処理対象情報を複数の情報処理装置に分配可能か否かを判定する分配判定ステップと、
前記分配判定ステップにより、分配可能と判定された場合に、前記処理対象情報を代理実行する情報処理装置に分配する分配ステップと、
を有する制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、システム、プログラム及び制御方法に関する。
【背景技術】
【０００２】
サーバの負荷を分散する技術として、特許文献１には、ネットワークに接続されたサーバが連携して処理を実行するシステムが開示されている。特許文献２には、他の装置に処理の実行を代行させる技術が開示されている。特許文献３には、処理を複数の処理ノードに分割処理させるとともに、処理の依頼元の処理ノードで処理ノードに割り当てる処理の調整を行う技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】国際公開第２０１７／１４５３８９号
【特許文献２】特開２００６−２６８１６６号公報
【特許文献３】特開２００６−２０１８９６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
依頼元の装置は、処理の負荷を分散させるために複数の他の装置に処理を依頼しても、処理の割り当てに関する負荷が発生し、依頼元の装置の負荷がさほど軽減されないという課題があった。
【０００５】
そこでこの発明は、分散処理における負荷をより軽減可能な情報処理装置、システム、プログラム及び制御方法を提供することを目的としている。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、本発明は、依頼元の情報処理装置の処理の代理実行を要求する代理実行要求を受信する受信手段と、前記受信手段により、前記代理実行要求を受信すると、依頼元の情報処理装置の処理の一部または全部を代理実行可能か否かを判定する実行判定手段と、前記実行判定手段により、代理実行可能と判定された場合に、前記依頼元の情報処理装置の処理を実行する代理実行手段と、代理実行する処理の対象となる処理対象情報を複数の情報処理装置に分配可能か否かを判定する分配判定手段と、前記分配判定手段により、分配可能と判定された場合に、前記処理対象情報を代理実行する情報処理装置に分配する分配手段と、を有する。
【０００７】
上記目的を達成するために、本発明の別の態様によれば、複数の情報処理装置を含むシステムであって、処理の代理実行を要求する情報処理装置は、処理の代理実行を要求する代理実行要求を送信する送信手段を備え、前記代理実行要求を受信する情報処理装置は、前記代理実行要求を受信する受信手段と、前記受信手段により、前記代理実行要求を受信すると、依頼元の情報処理装置の処理の一部または全部を代理実行可能か否かを判定する実行判定手段と、前記実行判定手段により、代理実行可能と判定された場合に、前記依頼元の情報処理装置の処理を実行する代理実行手段と、代理実行する処理の対象となる処理対象情報を複数の情報処理装置に分配可能か否かを判定する分配判定手段と、前記分配判定手段により、分配可能と判定された場合に、前記処理対象情報を代理実行する情報処理装置に分配する分配手段と、を有する。
【０００８】
上記目的を達成するために、本発明の別の態様によれば、コンピュータに、依頼元の情報処理装置の処理の代理実行を要求する代理実行要求を受信する受信ステップと、前記受信ステップにより、前記代理実行要求を受信すると、依頼元の情報処理装置の処理の一部または全部を代理実行可能か否かを判定する実行判定ステップと、前記実行判定ステップにより、代理実行可能と判定された場合に、前記依頼元の情報処理装置の処理を実行する代理実行ステップと、代理実行する処理の対象となる処理対象情報を複数の情報処理装置に分配可能か否かを判定する分配判定ステップと、前記分配判定ステップにより、分配可能と判定された場合に、前記処理対象情報を代理実行する情報処理装置に分配する分配ステップと、を実行させるためのプログラムである。
【０００９】
上記目的を達成するために、本発明の別の態様によれば、情報処理装置の制御方法であって、依頼元の情報処理装置の処理の代理実行を要求する代理実行要求を受信する受信ステップと、前記受信ステップにより、前記代理実行要求を受信すると、依頼元の情報処理装置の処理の一部または全部を代理実行可能か否かを判定する実行判定ステップと、前記実行判定ステップにより、代理実行可能と判定された場合に、前記依頼元の情報処理装置の処理を実行する代理実行ステップと、代理実行する処理の対象となる処理対象情報を複数の情報処理装置に分配可能か否かを判定する分配判定ステップと、前記分配判定ステップにより、分配可能と判定された場合に、前記処理対象情報を代理実行する情報処理装置に分配する分配ステップと、を有する。
【発明の効果】
【００１０】
本発明によれば、分散処理における負荷をより軽減可能という効果が得られる。
【図面の簡単な説明】
【００１１】
【図１】本発明の一実施形態の構成を示す情報処理システムの構成例を示す図である。
【図２】サーバの構成を示すブロック図である。
【図３】サーバ一覧ＤＢ、履歴ＤＢ、メッセージフォーマットを示す図である。
【図４】適用例（その１）を示すシーケンス図である。
【図５】適用例（その２）を示すシーケンス図である。
【図６】適用例（その３）を示すシーケンス図である。
【図７】依頼元サーバの処理の流れを示すフローチャートである。
【図８】代理実行要求を受信したときの受信サーバの処理の流れを示すフローチャートである。
【図９】代理実行応答を送信した後の受信サーバの処理の流れを示すフローチャートである。
【図１０】代理実行応答を送信した後の受信サーバの処理の流れを示すフローチャートである。
【図１１】本実施形態による情報処理装置の最小構成を示す図である。
【発明を実施するための形態】
【００１２】
以下、本発明の一実施形態による情報処理システムを図面を参照して説明する。図１は、本発明の一実施形態の構成を示す情報処理システム１００の構成例を示す図である。本実施形態では、情報処理システムの一例として、カメラで撮像された画像に所定の被写体が含まれる場合に、パトライト（登録商標）を点灯させるシステムを例にしている。
【００１３】
情報処理システム１００は、バックエンドサーバ１、および複数台のサーバ２Ａ、２Ｂ、２Ｃ、２Ｄを含む。以下、サーバ２Ａ、２Ｂ、２Ｃ、２Ｄのそれぞれを特に区別しない場合には任意の１台をサーバ２と表現する。サーバ２は、情報処理装置の一例である。また、サーバ２は、エッジサーバを想定している。エッジサーバは一般的に、他のサーバと比較して処理能力が低いことが多い。
【００１４】
サーバ２Ａ、２Ｂ、２Ｃ、２Ｄには、それぞれカメラ１０２Ａ、１０２Ｂ、１０２Ｃ、１０２Ｄが接続されている。サーバ２Ａ、２Ｂ、２Ｃ、２Ｄには、それぞれパトライト２０２Ａ、２０２Ｂ、２０２Ｃ、２０２Ｄが接続されている。以下、カメラ１０２Ａ、１０２Ｂ、１０２Ｃ、１０２Ｄのそれぞれを特に区別しない場合には任意の１台をカメラ１０２と表現する。パトライト２０２Ａ、２０２Ｂ、２０２Ｃ、２０２Ｄのそれぞれを特に区別しない場合には任意の１台をパトライト２０２と表現する。
【００１５】
バックエンドサーバ１とサーバ２は、ネットワーク１０で接続され、互いに通信可能である。バックエンドサーバ１は、サーバ２に他のサーバ２と通信するための後述するサーバ情報を提供する。
【００１６】
サーバ２は、カメラ１０２およびパトライト２０２を制御する。サーバ２は、カメラ１０２で撮像された画像を示す画像データに所定の被写体が含まれているか否かを判定する画像判定処理を実行する。画像判定処理の処理結果は、所定の被写体が含まれているか否かを示す。サーバ２は、画像判定処理の結果、所定の被写体が含まれている場合に、パトライト２０２を点灯させる。サーバ２は、上記画像判定処理の代理実行を他のサーバ２に要求することが可能である。他のサーバ２への代理実行の要求を代理実行要求と表現することがある。
【００１７】
代理実行要求を受信したサーバ２は、処理の一部または全部を代理実行可能か否かを判定する。サーバ２は、代理実行不可能と判定した場合には、代理実行要求を、依頼元のサーバ２とは異なる他のサーバ２に転送する。
【００１８】
一方、処理の一部または全部を代理実行可能と判定した場合には、サーバ２は、３つの動作モードのいずれかで動作する。代理実行に関してサーバ２が実行する主な処理として、上述した画像判定処理、分配処理、および処理結果送信処理がある。このうちの分配処理は、画像判定処理の対象となる処理対象情報（本実施形態では、カメラ１０２で撮像された画像を示す画像データ）をいくつかのサーバに分配する処理である。処理結果送信処理は、画像判定処理の処理結果を依頼元のサーバ２に送信する処理である。サーバ２は、分配処理によって他のサーバ２に画像情報を分配した場合には、処理結果送信処理において、分配したサーバ２から処理結果を受信し、受信した処理結果を依頼元のサーバ２に送信する。
【００１９】
動作モードには、全処理モード、一部処理（分配あり）モード、一部処理（分配なし）モード、および分配モードの４つのモードがある。このうちの全処理モードは、代理実行要求で要求された処理の全てを自らのサーバで処理するモードである。全処理モードで動作する場合、サーバ２は、１台で上記画像判定処理、および処理結果送信処理を実行する。
【００２０】
一部処理（分配あり）モードは、画像判定処理の一部の処理を実行するとともに、他のサーバ２に処理対象情報を分配する処理を実行するモードである。例えば、サーバＡが画像判定処理の５０％を実行し、サーバＢが残りの５０％を実行するものとする。そして、サーバＢが一部処理（分配あり）モードで動作する場合には、サーバＢは依頼元のサーバから処理対象情報を受信し、サーバＡに５０％分を分配し、自らも５０％分の画像判定処理を実行する。
【００２１】
一部処理（分配なし）モードは、画像判定処理の一部の処理を実行するが、分配する処理は実行しないモードである。例えば、上記サーバＡが一部処理（分配なし）モードで動作している。
【００２２】
分配モードは、分配処理のみを行うモードである。例えば、上記サーバＢが一部処理（分配なし）モードで動作するとし、サーバＡが５０％の処理を実行可能で、サーバＢが５０％の処理を実行可能であることを示した代理実行要求をサーバＣに転送したものとする。サーバＣは、サーバＡ、Ｂで合わせて１００％の画像判定処理が実行されることから、自らが画像判定処理を実行する余地はないため、分配モードで動作するか否かを判定することとなる。サーバＣが分配モードで動作する場合には、サーバＣは依頼元のサーバから処理対象情報を受信し、サーバＡ、Ｂに５０％ずつ分配する。サーバＣは、サーバＡ、Ｂから処理結果を受信し、処理結果送信処理を実行する。
【００２３】
図２は、サーバ２の構成を示すブロック図である。サーバ２は、メッセージ受信部５０１、結果確認部５０２、指示取得部５０３、判定部５０４、デバイス指示作成部５０５、状態更新部５０６、状態反映部５０７、メッセージ送信部５０９、要求作成部５１０、指示作成部５１１、結果作成部５１２、処理実行部５１４、ライト制御部５１６、および画像取得部５１５を含む。サーバ２は、サーバ一覧ＤＢ５０８、履歴ＤＢ５１３を含む。サーバ一覧ＤＢ５０８、履歴ＤＢ５１３におけるＤＢはデータベースを示す。サーバ一覧ＤＢ５０８は、代理実行要求を送信するサーバ２を定めるときに用いられるデータベースであり、詳細については後述する。履歴ＤＢ５１３は、実行した処理概要を示すデータベースであり、詳細は後述する。
【００２４】
メッセージ受信部５０１は、ネットワーク１０から各種情報を受信する。メッセージ受信部５０１は、他のサーバ２から画像判定処理の処理結果を受信した場合には、処理結果を結果確認部５０２に出力する。なお、処理結果とともに、当該処理を実行したサーバ２の状態や性能に関するサーバ情報が受信されるので、当該サーバ情報も出力される。サーバ情報の詳細については後述する。メッセージ受信部５０１は、他のサーバ２から処理対象情報を受信した場合には、指示取得部５０３に出力する。指示取得部５０３は、取得した処理対象情報を処理実行部５１４に出力する。メッセージ受信部５０１は、他のサーバ２から代理実行要求を受信した場合には、判定部５０４に出力する。なお、代理実行要求とともに、他のサーバ２のサーバ情報が受信されるので、当該サーバ情報も出力される。
【００２５】
結果確認部５０２は、処理結果を確認し、当該処理結果をデバイス指示作成部５０５に出力する。デバイス指示作成部５０５は、処理結果に基づき、パトライト２０２に対する指示を作成し、当該指示をライト制御部５１６に出力する。ライト制御部５１６は、指示に基づき、パトライト２０２を制御する。また、結果確認部５０２は、サーバ情報を状態更新部５０６に出力する。状態更新部５０６は、サーバ情報に基づき、サーバ一覧ＤＢ５０８を更新する。
【００２６】
判定部５０４は、代理実行要求を受信すると、依頼元のサーバ２の処理の一部または全部を代理実行可能か否かを判定する。さらに、判定部５０４は、処理対象情報を複数のサーバ２に分配可能か否かを判定する。また、判定部５０４は、サーバ情報を状態反映部５０７に出力する。状態反映部５０７は、サーバ情報を、サーバ一覧ＤＢ５０８に反映する。
【００２７】
メッセージ送信部５０９は、ネットワーク１０に各種情報を送信する。要求作成部５１０は、依頼元のサーバ２として動作する場合に、サーバ一覧ＤＢ５０８および履歴ＤＢ５１３を参照して、代理実行要求をメッセージ送信部５０９によって他のサーバ２に送信する。また、要求作成部５１０は、判定部５０４による判定結果が、他のサーバ２に代理実行要求を送信する必要がある場合、サーバ一覧ＤＢ５０８および履歴ＤＢ５１３を参照して、他のサーバ２に代理実行要求をメッセージ送信部５０９によって転送する。
【００２８】
デバイス指示作成部５０５は、依頼元のサーバ２として動作する場合に、他のサーバ２に処理対象情報をメッセージ送信部５０９によって転送する。なお、処理対象情報は、画像取得部５１５により取得される。結果作成部５１２は、代理実行した画像判定処理の処理結果をメッセージ送信部５０９によって送信する。また、結果作成部５１２は、他のサーバ２に処理対象情報を分配する場合には、分配する処理対象情報をメッセージ送信部５０９によって送信する。
【００２９】
処理実行部５１４は、画像取得部５１５が取得した処理対象情報や、指示取得部５０３が出力した処理対象情報に対し、画像判定処理を実行する。画像判定処理の処理結果は、結果作成部５１２に出力される。処理実行部５１４は、画像判定処理の処理結果に基づき、パトライト２０２に対する指示を作成し、当該指示をライト制御部５１６に出力する。
【００３０】
処理実行部５１４は、画像判定処理の実行実績（データサイズ等）を履歴ＤＢ５１３に出力する。処理実行部５１４は、指示取得部５０３が出力した処理対象情報を、他のサーバ２に分配するために分割する。分割された処理対象情報は、結果作成部５１２に出力される。
【００３１】
画像取得部５１５は、カメラ１０２で撮像された画像を示す画像データを処理実行部５１４に出力したり、サーバ一覧ＤＢ５０８を経由して各部に提供する。ライト制御部５１６は、指示に基づき、パトライト２０２を制御したり、パトライト２０２の状態を取得する。
【００３２】
次に、上述したサーバ一覧ＤＢ５０８と履歴ＤＢ５１３について説明する。図３（Ａ）は、サーバ一覧ＤＢ５０８の一例を示す図である。サーバ一覧ＤＢ５０８は、サーバ名、ＩＰアドレス、性能情報、状態、および最終更新時刻で構成される。このうちのサーバ名、ＩＰアドレス、性能情報、および状態がサーバ情報である。
【００３３】
サーバ名は、サーバ２の名称を示す。ＩＰアドレスは、サーバ２のＩＰアドレスを示す。性能情報には、ＣＰＵ（Central Processing Unit）の動作周波数（Ｈｚ）とコア数の情報が含まれる。状態は、サーバ２の状態を示す。状態には、アイドル、制御中、代理実行中がある。このうちの制御中は、代理実行ではなく自身の処理を実行している状態を示す。代理実行中は、他のサーバ２の処理を実行している状態を示す。最終更新時刻は、サーバ情報が更新された時刻を示す。なお、時刻に加えて年月日を記憶してもよい。
【００３４】
図３（Ａ）において、例えばサーバＤは、ＩＰアドレスが１９２．１６８．０．３で、ＣＰＵの動作周波数は１．５Ｇ  Ｈｚで、コア数は４つであり、４時２２分時点での状態は代理実行中であることがわかる。
【００３５】
図３（Ｂ）は、履歴ＤＢ５１３の一例を示す図である。履歴ＤＢ５１３は、データサイズ、ＣＰＵ使用率、および処理時間で構成される。データサイズは、処理対象情報のデータサイズを示し、単位はキロバイトやメガバイト等が用いられる。ＣＰＵ使用率は、処理対象情報に対して画像判定処理を実行したときのＣＰＵ使用率を示し、単位は％が用いられる。処理時間は、画像判定処理の実行に要した時間であり、単位は秒が用いられる。図３（Ｂ）に示される履歴を有するサーバ２の処理能力は、ＣＰＵ使用率が１００％だとすると約１００ＫＢ／秒であることわかる。
【００３６】
図３（Ｃ）は、代理実行要求のメッセージフォーマットを示す図である。代理実行要求は、依頼元、処理量、処理時間、および０個以上の代理実行情報で構成される。このうちの依頼元は、依頼元のサーバ２のＩＰアドレスである。処理量は、代理実行を依頼する処理対象情報のデータサイズである。処理時間は、依頼元が指定する、画像判定処理に要する時間であり、当該時間内に処理を終えることが要求される。
【００３７】
代理実行情報は、サーバ情報と、処理量とで構成される。代理実行情報は、代理実行要求を受信したサーバ２の数だけ設けられる。代理実行情報は、サーバ２が受信した元のメッセージに、新たに代理実行情報を追加して他のサーバ２に転送する。代理実行情報におけるサーバ情報は、代理実行情報を受信したサーバ２のサーバ情報であり、処理量はサーバ情報に示されるサーバ２が処理する処理量である。受信したサーバ２が代理実行を全く行わない場合は、処理量を０として代理実行情報を追加する。
【００３８】
依頼元は、サーバ一覧ＤＢ５０８を参照して、代理実行要求の送信先を決定する。このサーバ一覧ＤＢ５０８は、サーバ２の起動時と、代理実行要求を受信したときなどに更新されたり、処理結果を受信した場合に反映される。サーバ２の起動時には、上述したバックエンドサーバ１から他のサーバ２のサーバ情報が提供されるので、このときサーバ一覧ＤＢ５０８が作成される。バックエンドサーバ１が提供するサーバ情報は、提供されるサーバ２に隣接するサーバ２や、システム管理者により設定されたサーバ２のサーバ情報であってもよい。なお、隣接するサーバ２とは、例えば物理的に最も近いサーバ２や、ネットワーク遅延が少ないサーバ２や、同一のハブに接続されているサーバ２をいう。
【００３９】
また、本実施形態によれば、依頼元のサーバ２は、依頼元が代理実行要求を送信したサーバ２が更に転送するサーバ２のサーバ情報を記憶する必要がないこととなる。また、サーバ一覧ＤＢ５０８には、バックエンドサーバ１が提供するサーバ情報や、代理実行要求を受信したときに加わるサーバ情報が記憶されるので、必要以上にサーバ情報が記憶されることがない。
【００４０】
これにより、サーバ２は、多くのサーバ情報を記憶する必要がないので、サーバ２のハードウェアリソースを有効に利用でき、また全サーバ情報を記憶するようなサーバも必要ない。
【００４１】
依頼元のサーバ２は、サーバ一覧ＤＢ５０８に複数のサーバ２が記憶されている場合、代理実行要求の送信先として、アイドル状態のサーバ２や、性能の良い（例えば動作周波数とコア数の積が大きいなど）サーバ２を優先的に決定する。
【００４２】
代理実行要求を受信したサーバ２は、上記代理実行要求の処理量や自らの状態等に基づき代理実行可能か否かを判定する（換言すると、処理可能量（０％〜１００％）を判定する）。例えば、代理実行要求による画像判定処理を実行したとき、以下の（ａ）、（ｂ）のいずれかの条件を満たす場合に、代理実行可能と判定する。
（ａ）サーバ２が元々実行する必要のある計算やパトライト２０２の制御処理と代理実行要求による画像判定処理を並行して実行しても、そのサーバ２での各種制御のリアルタイム性を損なわないこと
（ｂ）サーバ２が元々実行する必要のある計算やパトライト２０２の制御処理を行う必要のない時間内に画像判定処理が終了すること
【００４３】
（ａ）の場合は、例えばサーバ２は、履歴ＤＢ５１３を参照し、画像判定処理を実行したときのＣＰＵ使用率の最大値と、パトライト２０２の制御中のＣＰＵ使用率の最大値のいずれか大きい方のＣＰＵ使用率を求める。このＣＰＵ使用率と、これから代理実行を行った場合の代理実行によるＣＰＵ使用率とを合わせてもＣＰＵ使用率が１００％以下となる場合に、（ａ）を満たすと判定する。（ｂ）は、例えば、これから１０分程度アイドル状態が継続することが予めわかっているときになどに有効な条件となる。
【００４４】
次に、具体的な適用例や処理の流れについてシーケンス図やフローチャートを用いて説明する。以下の説明では、分かりやすくするために、依頼元のサーバ２を依頼元サーバと表現し、代理実行要求を受信するサーバ２をサーバＡ、Ｂ、Ｃや受信サーバなどと表現する。
【００４５】
図４は、適用例（その１）を示すシーケンス図である。依頼元サーバは、サーバＡに代理実行要求を送信する（ステップＳ１０１）。代理実行要求を受信したサーバＡは、実行不可能と判定し、サーバＢに代理実行要求を転送する（ステップＳ１０２）。代理実行要求を受信したサーバＢは、処理の全部を代理実行可能と判定し、代理実行応答を依頼元サーバに送信する（ステップＳ１０３）。これにより、サーバＢは、全処理モードで動作する。
【００４６】
依頼元サーバは、処理対象情報をサーバＢに送信する（ステップＳ１０４）。サーバＢは、画像判定処理を代理実行し、処理結果を通知する結果通知を依頼元サーバに送信し（ステップＳ１０５）、処理を終了する。図４の適用例において、サーバＡ、サーバＢは代理実行要求受信時にサーバ一覧ＤＢ５０８を更新可能で、依頼元サーバは代理実行応答受信時または結果通知受信時にサーバ一覧ＤＢ５０８を更新可能である。これから説明する他の適用例においても、同様にサーバ一覧ＤＢ５０８を更新可能である。
【００４７】
図５は、適用例（その２）を示すシーケンス図である。依頼元サーバは、サーバＡに代理実行要求を送信する（ステップＳ２０１）。代理実行要求を受信したサーバＡは、処理量の３０％を実行可能と判定し、サーバＢに代理実行要求を転送する（ステップＳ２０２）。代理実行要求を受信したサーバＢは、残りの処理量の７０％を代理実行可能と判定し、さらに分配も可能と判定し、代理実行応答を依頼元サーバに送信する（ステップＳ２０３）。これにより、サーバＡは、一部処理（分配なし）モードで動作し、サーバＢは、一部処理（分配あり）モードで動作する。
【００４８】
依頼元サーバは、処理対象情報をサーバＢに送信する（ステップＳ２０４）。サーバＢは、処理対象情報の３０％をサーバＡに送信し（ステップＳ２０５）、また７０％分の画像判定処理を代理実行する。サーバＡは３０％分の画像判定処理を代理実行し、結果通知をサーバＢに送信する（ステップＳ２０６）。サーバＢは、自らの処理結果とサーバＡの処理結果を通知する結果通知を依頼元サーバに送信し（ステップＳ２０７）、処理を終了する。
【００４９】
図６は、適用例（その３）を示すシーケンス図である。依頼元サーバは、サーバＡに代理実行要求を送信する（ステップＳ３０１）。代理実行要求を受信したサーバＡは、処理量の３０％を実行可能と判定し、サーバＢに代理実行要求を転送する（ステップＳ３０２）。代理実行要求を受信したサーバＢは、残りの処理量の７０％を代理実行可能と判定するが、分配は不可能と判定し、サーバＣに代理実行要求を転送する（ステップＳ３０３）。
【００５０】
代理実行要求を受信したサーバＣは、分配可能と判定し、代理実行応答を依頼元サーバに送信する（ステップＳ３０４）。これにより、サーバＡ、サーバＢは、一部処理（分配なし）モードで動作し、サーバＣは、分配モードで動作する。
【００５１】
依頼元サーバは、処理対象情報をサーバＣに送信する（ステップＳ３０５）。サーバＣは、処理対象情報の３０％をサーバＡに送信し（ステップＳ３０６）、処理対象情報の７０％をサーバＢに送信する（ステップＳ３０７）。サーバＡは３０％分の画像判定処理を代理実行し、結果通知をサーバＣに送信する（ステップＳ３０８）。サーバＡは３０％分の画像判定処理を代理実行し、結果通知をサーバＣに送信する（ステップＳ３０８）。サーバＢは７０％分の画像判定処理を代理実行し、結果通知をサーバＣに送信する（ステップＳ３０９）。サーバＣは、サーバＡの処理結果とサーバＢの処理結果を通知する結果通知を依頼元サーバに送信し（ステップＳ３１０）、処理を終了する。
【００５２】
上述した適用例に示されるように、依頼元サーバは、代理実行要求を送信し、処理対象情報を送信し、結果通知を待っていればよい。このように、依頼元サーバは、依頼先を何度も探す必要がなく、また受信サーバが実行する処理の割り当てに関する負荷（処理対象情報の分配による負荷など）も発生しないため、分散処理における負荷をより軽減可能となる。
【００５３】
また、受信サーバにおいても、受信サーバが可能な範囲で代理処理を実行でき、また分配のみを実行可能など、受信サーバの性能や状態に応じて柔軟に対応できるため、負荷を軽減できるだけではなく、より実態に応じた分散処理を行うことができる。
【００５４】
次に、依頼元サーバや受信サーバの処理の流れをフローチャートを用いて説明する。図７は、依頼元サーバの処理の流れを示すフローチャートである。依頼元サーバは、サーバ一覧ＤＢ５０８を参照し、代理実行を要求する受信サーバを決定する（ステップＳ４０１）。依頼元サーバは、決定した受信サーバに、代理実行要求を送信する（ステップＳ４０２）。
【００５５】
依頼元サーバは、受信サーバからの代理実行応答を待ち、代理実行応答を受信すると（ステップＳ４０３：ＹＥＳ）、代理実行応答を送信した受信サーバに処理対象情報を送信する（ステップＳ４０４）。依頼元サーバは、受信サーバからの結果通知を待ち、結果通知を受信すると（ステップＳ４０５：ＹＥＳ）、処理結果に応じた制御を実行し（ステップＳ４０６）、処理を終了する。
【００５６】
図７に示されるように、依頼元サーバは、代理実行要求を送信し、処理対象情報を送信し、結果通知を待っていればよい。また、フローチャートに示されるように非常に軽い処理であるため、依頼元サーバの負荷をより軽減可能となる。
【００５７】
次に、受信サーバの処理の流れを説明する。図８は、代理実行要求を受信したときの受信サーバの処理の流れを示すフローチャートである。受信サーバは、代理実行要求を受信すると、代理実行情報がある場合には、代理実行情報に示される処理量の総和を求め、残処理量は０％以外か否かを判定する。代理実行情報がない場合には残処理量は１００％である。
【００５８】
残処理量は０％以外の場合には（ステップＳ５０１：ＹＥＳ）、受信サーバは、処理可能量を判定し（ステップＳ５０２）、判定された処理可能量で分岐する（ステップＳ５０３）。処理可能量が０％の場合、すなわち全く処理できない場合、受信サーバは、サーバ一覧ＤＢ５０８を参照して、代理実行要求の転送先を決定する（ステップＳ５０４）。受信サーバは、決定した転送先に代理実行要求を転送して（ステップＳ５０５）、処理を終了する。
【００５９】
上記ステップＳ５０２において、処理可能量が１００％と判定された場合、受信サーバは全処理モードで動作し（ステップＳ５０６）、依頼元に代理実行応答を送信し（ステップＳ５１１）、処理を終了する。
【００６０】
上記ステップＳ５０２において、処理可能量が一部（０％より大きく、１００％未満）と判定された場合、受信サーバは、この処理可能量により残処理量が０となるか否かを判定する（ステップＳ５０７）。残処理量が０となる場合には、受信サーバは、処理対象情報の分配処理も可能か否かを判定する（ステップＳ５０８）。分配処理も可能場合には（ステップＳ５０８：ＹＥＳ）、受信サーバは、一部処理（分配あり）モードで動作し（ステップＳ５０９）、依頼元に代理実行応答を送信し（ステップＳ５１１）、処理を終了する。
【００６１】
分配処理が不可能場合には（ステップＳ５０８：ＮＯ）、受信サーバは、一部処理（分配なし）モードで動作し（ステップＳ５１０）、受信サーバは、サーバ一覧ＤＢ５０８を参照して、代理実行要求の転送先を決定する（ステップＳ５０４）。受信サーバは、決定した転送先に代理実行要求を転送して（ステップＳ５０５）、処理を終了する。
【００６２】
上記ステップＳ５０１において、残処理量は０％の場合には（ステップＳ５０１：ＮＯ）、受信サーバは、分配モードで動作可能か否かを判定する（ステップＳ５１２）。分配モードで動作不可能な場合には（ステップＳ５１２：ＮＯ）、受信サーバは、サーバ一覧ＤＢ５０８を参照して、代理実行要求の転送先を決定する（ステップＳ５０４）。受信サーバは、決定した転送先に代理実行要求を転送して（ステップＳ５０５）、処理を終了する。
【００６３】
一方、分配モードで動作可能な場合には（ステップＳ５１２：ＹＥＳ）、受信サーバは、分配モードで動作し（ステップＳ５１３）、依頼元に代理実行応答を送信し（ステップＳ５１１）、処理を終了する。
【００６４】
次に、図９を用いて、全処理モードまたは一部処理（分配あり）モードで動作する受信サーバの処理の流れを説明する。図９は、代理実行応答を送信した後の受信サーバの処理の流れを示すフローチャートである。受信サーバは、処理対象情報を受信すると（ステップＳ６０１：ＹＥＳ）、全処理モードで動作しているか否かを判定する（ステップＳ６０２）。
【００６５】
全処理モードで動作している場合には（ステップＳ６０２：ＹＥＳ）、受信サーバは、代理処理を実行し（ステップＳ６０７）、依頼元サーバに結果通知を送信し（ステップＳ６０６）、処理を終了する。
【００６６】
全処理モードで動作していない場合には（ステップＳ６０２：ＮＯ）、一部処理（分配あり）モードで動作しているため、受信サーバは、分配先にデータ通知を送信する（ステップＳ６０４）。次いで、受信サーバは、代理処理を実行し（ステップＳ６０４）、分配先からの結果通知を待ち、結果通知を受信すると（ステップＳ６０５）、自らの処理結果と分配先の処理結果を通知する結果通知を依頼元サーバに送信し（ステップＳ６０６）、処理を終了する。
【００６７】
このように、複数のサーバ２によって分散処理される場合であっても、処理結果は１つのサーバ２によって送信される。したがって、依頼元サーバは、代理実行するサーバ２の各々から処理結果を待たなくてもよいため、分散処理に係る負荷をより低減可能となる。
【００６８】
次に、図１０を用いて、分配モードで動作する受信サーバの処理の流れを説明する。図１０は、代理実行応答を送信した後の受信サーバの処理の流れを示すフローチャートである。受信サーバは、処理対象情報を受信すると（ステップＳ７０１：ＹＥＳ）、分配先にデータ通知を送信する（ステップＳ７０２）。次いで、受信サーバは、分配先からの結果通知を待ち、結果通知を受信すると（ステップＳ７０３：ＹＥＳ）、分配先の処理結果を通知する結果通知を依頼元サーバに送信し（ステップＳ７０４）、処理を終了する。
【００６９】
このように、分配のみを実行することを可能とすることで、代理実行要求を受信したサーバ２は、その負荷に応じて、画像判定処理を実行するか、または分配のみを実行するかを柔軟に決定することができる。
【００７０】
上述した実施形態では、一例としてカメラとパトライトを制御するサーバを例にしたが、これに限るものではない。例えばフラッパーゲートなど、サーバが制御可能な装置であれば、制御対象はどのような装置であってもよい。
【００７１】
図１１は本実施形態による情報処理装置６００の最小構成を示す図である。本実施形態による情報処理装置６００は少なくとも受信手段６０１と、実行判定手段６０２と、代理実行手段６０３と、分配判定手段６０４と、分配手段６０５とを有していればよい。
【００７２】
受信手段６０１は、依頼元の情報処理装置の処理の代理実行を要求する代理実行要求を受信する。実行判定手段６０２は、前記受信手段６０１により、前記代理実行要求を受信すると、依頼元の情報処理装置の処理の一部または全部を代理実行可能か否かを判定する。代理実行手段６０３は、前記実行判定手段６０２により、代理実行可能と判定された場合に、前記依頼元の情報処理装置の処理を実行する。分配判定手段６０４は、代理実行する処理の対象となる処理対象情報を複数の情報処理装置に分配可能か否かを判定する。分配手段６０５は、前記分配判定手段６０４により、分配可能と判定された場合に、前記処理対象情報を代理実行する情報処理装置に分配する。
【００７３】
上述の情報処理装置６００は内部に、コンピュータシステムを有している。そして、上述した図４−図１０に示される処理の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。ここでコンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、半導体メモリ等をいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしても良い。
【００７４】
なお、図１１における情報処理装置６００の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより図４−図１０に示される処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、ホームページ提供環境（あるいは表示環境）を備えたＷＷＷシステムも含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。
【００７５】
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【産業上の利用可能性】
【００７６】
本発明は、情報処理装置、システム、プログラム及び制御方法に関する。
【符号の説明】
【００７７】
１  バックエンドサーバ
２  サーバ
１０  ネットワーク
１０２  カメラ
２０２  パトライト
５０１  メッセージ受信部
５０２  結果確認部
５０３  指示取得部
５０４  判定部
５０５  デバイス指示作成部
５０６  状態更新部
５０７  状態反映部
５０８  サーバ一覧ＤＢ
５０９  メッセージ送信部
５１０  要求作成部
５１１  指示作成部
５１２  結果作成部
５１３  履歴ＤＢ
５１４  処理実行部
５１５  画像取得部
５１６  ライト制御部
６００  情報処理装置
６０１  受信手段
６０２  実行判定手段
６０３  代理実行手段
６０４  分配判定手段
６０５  分配手段
【図１】
2020160793.tif 000003
【図２】
2020160793.tif 000004
【図３】
2020160793.tif 000005
【図４】
2020160793.tif 000006
【図５】
2020160793.tif 000007
【図６】
2020160793.tif 000008
【図７】
2020160793.tif 000009
【図８】
2020160793.tif 000010
【図９】
2020160793.tif 000011
【図１０】
2020160793.tif 000012
【図１１】
2020160793.tif 000013