(57)【特許請求の範囲】
【請求項１】
リスト作成装置によって作成されたリストと、処理すべきタスクの種類とに基づいて、前記処理の分散先となる処理装置を決定する分散先決定部を備え、
前記リスト作成装置は、所定の情報を取得するデバイスから取得された前記所定の情報に対して処理を行う処理装置のリソースに関する情報であるリソース情報を取得し、取得された前記リソース情報に含まれるリソースの情報を、前記処理装置毎に分類することによって前記リストを作成し、
前記分散先決定部は、決定した前記処理の分散先となる処理装置に対して前記処理の要求を行い、
前記分散先決定部は、前記タスクを処理するために必要となるライブラリを、前記処理の分散先となる処理装置に対して送信することを、ライブラリを配信する装置であるライブラリ配信装置に要求し、
他の処理装置から前記要求がなされた場合に、自装置のリソースに応じて前記要求を受託するか否か判定する処理判定部をさらに備え、
前記分散先決定部は、前記要求を受託することによって自装置の処理に要するリソースが閾値以上となった場合には、自装置が処理すべきタスクのうち他の処理装置に分散するタスクを決定する、
処理装置。
【請求項２】
所定の情報を取得するデバイスから取得された前記所定の情報に対して処理を行う複数の処理装置と、ライブラリ配信装置と、を備え、
前記処理装置は、
前記処理装置のリソースに関する情報であるリソース情報を取得するリソース情報取得部と、
取得された前記リソース情報に含まれるリソースの情報を、他の処理装置毎に分類することによってリストを作成するリスト作成部と、
前記リストと、処理すべきタスクの種類とに基づいて、前記処理の分散先となる処理装置を決定する分散先決定部と、
を備え、
前記ライブラリ配信装置は、前記タスクを処理するために必要となるライブラリである処理ライブラリを、要求に応じて前記処理装置に配信する装置であり、
前記処理装置の前記分散先決定部は、決定した前記処理の分散先となる処理装置に対して前記処理の要求を行い、
前記処理装置の前記分散先決定部は、前記処理すべきタスクの実行に必要となる処理ライブラリを、前記処理の分散先となる処理装置に対して送信することを、前記ライブラリ配信装置に要求し、
前記処理装置は、他の処理装置から前記要求がなされた場合に、自装置のリソースに応じて前記要求を受託するか否か判定する処理判定部をさらに備え、
前記処理装置の前記分散先決定部は、前記要求を受託することによって自装置の処理に要するリソースが閾値以上となった場合には、自装置が処理すべきタスクのうち他の処理装置に分散するタスクを決定する、
分散処理システム。
【請求項３】
情報処理装置が、所定の情報を取得するデバイスから取得された前記所定の情報に対して処理を行う処理装置のリソースに関する情報であるリソース情報を取得するリソース情報取得ステップと、
情報処理装置が、取得された前記リソース情報に含まれるリソースの情報を、前記処理装置毎に分類することによってリストを作成するリスト作成ステップと、
情報処理装置が、前記リストと、処理すべきタスクの種類とに基づいて、前記処理の分散先となる処理装置を決定する分散先決定ステップと、
を有し、
前記分散先決定ステップにおいて、決定した前記処理の分散先となる処理装置に対して前記処理の要求を行い、
前記分散先決定ステップにおいて、前記タスクを処理するために必要となるライブラリを、前記処理の分散先となる処理装置に対して送信することを、ライブラリを配信する装置であるライブラリ配信装置に要求し、
情報処理装置が、他の処理装置から前記要求がなされた場合に、自装置のリソースに応じて前記要求を受託するか否か判定する処理判定ステップをさらに有し、
前記分散先決定ステップにおいて、前記要求を受託することによって自装置の処理に要するリソースが閾値以上となった場合には、自装置が処理すべきタスクのうち他の処理装置に分散するタスクを決定する、
分散処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、他の装置のリソースに関する情報を取得する技術に関する。
【背景技術】
【０００２】
近年、ＩｏＴ（Internet Of Things）が注目されている。ＩｏＴでは、多くのセンサなどのデバイスがネットワークに接続され、装置に関する情報を遠隔地で取得することが可能となる。センサから得られる数値等の情報のみでは状況の把握が困難であるため、映像のデータを遠隔地に送信する技術（例えば特許文献１参照）を用いることによって、撮影装置によって撮影された映像もネットワークを介して取得されることがある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−１１４６４９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、ＩｏＴにおいてデバイスを収容するゲートウェイ（ＧＷ：GateWay）等は、タスクを処理するためのハードウェアリソースが少ない。そのため、リアルタイムでのタスク処理や、上記の映像のように演算量が多いタスクの処理が集中してしまうと処理に時間を要してしまう。そこで、ネットワークに接続される他の装置にタスクを分散することが考えられるが、他の装置のリソースが不明であるためタスクを分散することができない場合があった。なお、このような問題は、ＧＷ装置に限らず、情報を取得するデバイスから取得した情報に対して処理を行う装置全般に共通する問題である。
【０００５】
上記事情に鑑み、本発明は、情報を取得するデバイスから取得した情報に対して処理を行う装置を複数備えるシステムにおいて、各装置が他の装置のリソースに関する情報を取得することができる技術の提供を目的としている。
【課題を解決するための手段】
【０００６】
本発明の一態様は、所定の情報を取得するデバイスから取得された前記所定の情報に対して処理を行う処理装置のリソースに関する情報であるリソース情報を取得するリソース情報取得部と、取得された前記リソース情報に含まれるリソースの情報を、前記処理装置毎に分類することによってリストを作成するリスト作成部と、を備えるリスト作成装置である。
【０００７】
本発明の一態様は、上記のリスト作成装置であって、前記リソース情報取得部は、自律的にリソース情報を送信している前記処理装置から前記処理装置のリソース情報を取得する。
【０００８】
本発明の一態様は、上記のリスト作成装置であって、前記リソース情報取得部は、複数の前記処理装置のリソース情報を収集する監視装置から複数の前記処理装置のリソース情報を取得する。
【０００９】
本発明の一態様は、上記のリスト作成装置であって、前記リソース情報取得部は、前記処理装置のリソース情報を収集する複数の監視装置のうち、自装置が接続している監視装置から前記監視装置に接続される前記処理装置のリソース情報及び他の監視装置に接続される前記処理装置のリソース情報を取得する。
【００１０】
本発明の一態様は、上記のリスト作成装置によって作成された前記リストと、処理すべきタスクの種類とに基づいて、前記処理の分散先となる処理装置を決定する分散先決定部を備える処理装置である。
【００１１】
本発明の一態様は、上記の処理装置であって、前記分散先決定部は、決定した前記処理の分散先となる処理装置に対して前記処理の要求を行い、他の処理装置から前記要求がなされた場合に、自装置のリソースに応じて前記要求を受託するか否か判定する処理判定部をさらに備える。
【００１２】
本発明の一態様は、上記の処理装置であって、前記分散先決定部は、前記要求を受託することによって自装置のリソースが閾値以上となった場合には、自装置が処理すべきタスクのうち前記他の処理装置に分散するタスクを決定する。
【００１３】
本発明の一態様は、所定のタイミングで取得された自装置のリソース情報を他の処理装置に送信する通信部を備える処理装置である。
【００１４】
本発明の一態様は、所定の情報を取得するデバイスから取得された前記所定の情報に対して処理を行う複数の処理装置を備え、前記処理装置は、前記処理装置のリソースに関する情報であるリソース情報を取得するリソース情報取得部と、取得された前記リソース情報に含まれるリソースの情報を、他の処理装置毎に分類することによってリストを作成するリスト作成部と、を備えるリソース情報取得システムである。
【００１５】
本発明の一態様は、所定の情報を取得するデバイスから取得された前記所定の情報に対して処理を行う複数の処理装置を備え、前記処理装置は、前記処理装置のリソースに関する情報であるリソース情報を取得するリソース情報取得部と、取得された前記リソース情報に含まれるリソースの情報を、他の処理装置毎に分類することによってリストを作成するリスト作成部と、前記リストと、処理すべきタスクの種類とに基づいて、前記処理の分散先となる処理装置を決定する分散先決定部と、を備える分散処理システムである。
【００１６】
本発明の一態様は、所定の情報を取得するデバイスから取得された前記所定の情報に対して処理を行う処理装置のリソースに関する情報であるリソース情報を取得するリソース情報取得ステップと、取得された前記リソース情報に含まれるリソースの情報を、前記処理装置毎に分類することによってリストを作成するリスト作成ステップと、を有するリスト作成方法である。
【００１７】
本発明の一態様は、所定の情報を取得するデバイスから取得された前記所定の情報に対して処理を行う処理装置のリソースに関する情報であるリソース情報を取得するリソース情報取得ステップと、取得された前記リソース情報に含まれるリソースの情報を、前記処理装置毎に分類することによってリストを作成するリスト作成ステップと、前記リストと、処理すべきタスクの種類とに基づいて、前記処理の分散先となる処理装置を決定する分散先決定ステップと、を有する分散処理方法である。
【発明の効果】
【００１８】
本発明により、情報を取得するデバイスから取得した情報に対して処理を行う装置を複数備えるシステムにおいて、各装置が他の装置のリソースに関する情報を取得することが可能となる。
【図面の簡単な説明】
【００１９】
【図１】第一実施形態における処理分散システム１００のシステム構成の例を表すシステム構成図である。
【図２】第一実施形態における処理装置２００の構成の詳細を示す図である。
【図３】リストの具体例を示す図である。
【図４】指標値テーブルの具体例を示す図である。
【図５】ライブラリテーブルの具体例を示す図である。
【図６】第一実施形態における処理分散システム１００の動作のうち、リソース情報の通知の流れを示すシーケンスチャートである。
【図７】第一実施形態における処理分散システム１００の動作のうち、タスクの分散処理の流れを示すシーケンスチャートである。
【図８】処理分散システム１００の適用例を説明するための図である。
【図９】第二実施形態における処理分散システム１００ａのシステム構成の例を表すシステム構成図である。
【図１０】第二実施形態における処理装置２００ａの構成の詳細を示す図である。
【図１１】監視装置７００の構成の詳細を示す図である。
【図１２】第二実施形態における処理分散システム１００ａの動作のうち、タスクの分散処理の流れを示すシーケンスチャートである。
【図１３】第三実施形態における処理分散システム１００ｂのシステム構成の例を表すシステム構成図である。
【図１４】第三実施形態における監視装置７００ｂの構成の詳細を示す図である。
【発明を実施するための形態】
【００２０】
以下、本発明の一実施形態を、図面を参照しながら説明する。
［第一実施形態］
図１は、第一実施形態における処理分散システム１００のシステム構成の例を表すシステム構成図である。処理分散システム１００は、複数の処理装置２００を備える。処理装置２００は、ネットワーク４００を介して他の処理装置２００と通信可能に接続される。ネットワーク４００は、どのようなネットワークで構築されてもよい。例えば、ネットワーク４００は、インターネットで構成されてもよい。また、一つの処理装置２００には、一つ又は複数のデバイス３００が接続される。
【００２１】
デバイス３００は、所定の情報を取得し、取得した所定の情報を処理装置２００に出力する。デバイス３００は、例えばセンサや、撮影装置などである。デバイス３００がセンサである場合、デバイス３００は例えば温度を測定するセンサであってもよいし、気圧を測定するセンサであってもよいし、音量を測定するセンサであってもよいし、風速を測定するセンサであってもよい。この場合、デバイス３００は、温度、気圧、音量及び風速などの環境に関する情報を所定の情報として取得する。デバイス３００が撮影装置である場合、デバイス３００は撮影した画像、映像、音を所定の情報として取得する。画像は、静止画像である。映像は、動画像である。音は、音声や機械の音などである。
【００２２】
処理装置２００は、自身に接続されるデバイス３００から出力された所定の情報に対して処理を行う。処理装置２００は、例えばＧＷ装置、デジタルサイネージ装置、映像配信装置、映像符号化装置などである。例えば、デバイス３００が撮影装置である場合、処理装置２００はデバイス３００から出力された画像、映像及び音に対してエンコード等の処理を行う。処理装置２００は、自装置のリソース情報を他の処理装置２００に送信する。リソース情報は、例えばＣＰＵリソース、メモリーリソース、ＨＤＤリソース、ネットワークリソース、演算処理リソース、グラフィックス処理リソース及び搭載ライブラリリソースに関する情報である。なお、リソース情報に含まれるリソースは、上記のリソースに限定される必要はなく、処理装置２００が有することができるリソースであればどのようなリソースが含まれてもよい。リソース情報についての説明は後述する。
【００２３】
また、処理装置２００は、他の処理装置２００から送信された他の処理装置２００のリソース情報（以下、「他リソース情報」という。）を、処理装置２００毎に分類してリストとして保持する。これにより、処理装置２００は、他の処理装置２００のリソースに関する情報を取得する。例えば、処理装置２００は、他の処理装置２００の各リソースの使用率や、処理装置２００が有するライブラリや、処理装置２００が使用可能なライブラリなどを取得する。処理装置２００は、所定の条件が満たされると、自身が処理すべきタスクの一部を他の処理装置２００に分散する。所定の条件は、自身が処理すべきタスクの種類に応じて得られた指標値と、タスクの処理による実行データから得られる処理装置２００の負荷状況及び残りのタスク処理能力と、装置間（例えば、処理装置２００間）のネットワークのスループットと、を評価して得られる評価値が所定の閾値以上となることが挙げられる。指標値は、タスクの種類毎にどのくらいのリソースや時間を要するのかについて得られた統計結果から、タスクの種類毎に処理に使用するリソースの負荷及び時間を評価することにより得られた値である。
【００２４】
図２は、第一実施形態における処理装置２００の構成の詳細を示す図である。以下、図２を用いて処理装置２００の構成について詳細に説明する。
処理装置２００は、バスで接続されたＣＰＵ（Central Processing Unit）やメモリや補助記憶装置などを備え、処理分散プログラムを実行する。処理分散プログラムの実行によって、処理装置２００は、第一通信部２０１、第二通信部２０２、リソース情報取得部２０３、リスト作成部２０４、リスト記憶部２０５、リソース情報通知部２０６、リソース比較部２０７、指標値記憶部２０８、バッファ２０９、処理実行部２１０、ライブラリ記憶部２１１、分散先決定部２１２、処理判定部２１３を備える装置として機能する。なお、処理装置２００の各機能の全て又は一部は、ＡＳＩＣ（Application Specific Integrated Circuit）やＰＬＤ（Programmable Logic Device）やＦＰＧＡ（Field Programmable Gate Array）等のハードウェアを用いて実現されてもよい。また、処理分散プログラムは、コンピュータ読み取り可能な記録媒体に記録されてもよい。コンピュータ読み取り可能な記録媒体とは、例えばフレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置である。また、処理分散プログラムは、電気通信回線を介して送受信されてもよい。
【００２５】
第一通信部２０１は、通信インタフェース等の通信機器を用いて構成される。第一通信部２０１は、デバイス３００との間で通信する。第一通信部２０１は、有線通信を行ってもよいし、無線通信を行ってもよい。第一通信部２０１は、例えばデバイス３００によって取得された所定の情報をデバイス３００から受信する。第一通信部２０１は、受信した所定の情報をバッファ２０９に蓄積する。
【００２６】
第二通信部２０２は、通信インタフェース等の通信機器を用いて構成される。第二通信部２０２は、ネットワーク４００を介して他の処理装置２００との間で通信する。第二通信部２０２は、有線通信を行ってもよいし、無線通信を行ってもよい。第二通信部２０２は、例えば自装置の電波が届く範囲内に位置する他の処理装置２００に自装置のリソース情報を送信する。また、第二通信部２０２は、例えば他リソース情報を他の処理装置２００から受信する。
【００２７】
リソース情報取得部２０３は、第二通信部２０２によって受信された情報の中から他リソース情報を取得する。リソース情報取得部２０３は、取得した他リソース情報をリスト作成部２０４及びリソース比較部２０７に出力する。また、リソース情報取得部２０３は、所定のタイミングで、自装置のリソース情報を取得する。所定のタイミングとは、定期的なタイミング（例えば、１分毎、１０分毎など）であってもよいし、デバイス３００から出力された所定の情報が受信されたタイミングであってもよいし、その他のタイミングであってもよい。リソース情報取得部２０３は、取得した自装置のリソース情報をリソース情報通知部２０６、リソース比較部２０７及び処理判定部２１３に出力する。
リスト作成部２０４は、リソース情報取得部２０３から出力された他リソース情報に基づいて、他の処理装置２００毎のリストを作成する。
【００２８】
リスト記憶部２０５は、磁気ハードディスク装置や半導体記憶装置などの記憶装置を用いて構成される。リスト記憶部２０５は、リスト作成部２０４によって作成されたリストを記憶する。リスト記憶部２０５は、例えば各リソースの情報が行及び列で表されるリストを記憶する。なお、リスト記憶部２０５が記憶する情報は行及び列で表されるリストの構造である必要は無い。
【００２９】
リソース情報通知部２０６は、第二通信部２０２を制御して、リソース情報取得部２０３から出力された自装置のリソース情報を他の処理装置２００に送信する。また、リソース情報通知部２０６は、第二通信部２０２を制御して、リソース比較部２０７の比較結果に応じて、自装置のリソース情報のみ、又は、自装置のリソース情報及び他リソース情報を他の処理装置２００に送信する。
【００３０】
リソース比較部２０７は、リソース情報取得部２０３によって取得された自装置のリソース情報及び他リソース情報に基づいて、自装置の各リソースと他の処理装置２００の各リソースとを比較する。例えば、リソース比較部２０７は、自装置の各リソースの使用率と他の処理装置２００の各リソースの使用率とを比較する。また、例えば、リソース比較部２０７は、自装置の各リソースの種別（例えば、ＧＰＵ（Graphics Processing Unit）の有無、ＧＰＵの種類、グラフィックライブラリの有無、グラフィックライブラリの種類、グラフィック以外のライブラリの有無及びグラフィック以外のライブラリの種類）と他の処理装置２００の各リソースの種別とを比較してもよい。リソース比較部２０７は、比較結果をリソース情報通知部２０６に出力する。
【００３１】
指標値記憶部２０８は、磁気ハードディスク装置や半導体記憶装置などの記憶装置を用いて構成される。指標値記憶部２０８は、タスクの種類と、リソースの負荷と、タスクを処理するために要する時間と、指標値との対応関係を示す情報を記憶する。指標値記憶部２０８は、例えばタスクの種類と、リソースの負荷と、時間と、指標値との関係を示すテーブル（以下、「指標値テーブル」という。）を記憶する。なお、指標値記憶部２０８が記憶する情報は行及び列で表されるテーブルの構造である必要は無い。
【００３２】
バッファ２０９は、第一通信部２０１によって受信された所定の情報を蓄積する。また、バッファ２０９は、他の処理装置２００から要求されたタスクの対象となる所定の情報を蓄積する。
【００３３】
処理実行部２１０は、バッファ２０９に蓄積された所定の情報に対するタスクを処理する。処理実行部２１０は、処理すべきタスクと、指標値記憶部２０８に記憶されている指標値テーブルと、タスクの処理による実行データから得られる処理装置２００の負荷状況及び残りのタスク処理能力と、装置間（例えば、処理装置２００間）のネットワークのスループットと、に基づいて所定の条件が満たされたか否か判定する。具体的には、処理すべきタスクと、指標値記憶部２０８に記憶されている指標値テーブルと、タスクの処理による実行データから得られる処理装置２００の負荷状況及び残りのタスク処理能力と、装置間（例えば、処理装置２００間）のネットワークのスループットとを評価することによって得られる評価値が閾値以上である場合、処理実行部２１０は所定の条件が満たされたと判定する。一方、評価値が閾値未満である場合、処理実行部２１０は所定の条件が満たされなかったと判定する。
【００３４】
所定の条件が満たされた場合、処理実行部２１０は他の処理装置２００にタスクの一部を分散する必要があると決定する。この場合、処理実行部２１０は、タスクの分散先の候補となる他の処理装置２００（以下、「分散先候補装置」という。）を決定するように分散先決定部２１２に要求する。一方、所定の条件が満たされていない場合、処理実行部２１０はバッファ２０９内に蓄積された所定の情報に対するタスクの処理を行う。処理実行部２１０は、デバイス３００から出力された所定の情報に対する処理としてどのような処理を行うのか記憶していてもよい。例えば、処理実行部２１０は、デバイス３００（例えば、撮影装置）から出力された所定の情報（例えば、映像）に対する処理としてどのような符号化方式でエンコードを行うのか記憶していてもよい。
【００３５】
ライブラリ記憶部２１１は、磁気ハードディスク装置や半導体記憶装置などの記憶装置を用いて構成される。ライブラリ記憶部２１１は、特殊命令と、特殊命令を実行するために必要となるライブラリの情報との対応関係を示す情報を記憶する。ライブラリ記憶部２１１は、例えば特殊命令とライブラリの情報との関係を示すテーブル（以下、「ライブラリテーブル」という。）を記憶する。なお、ライブラリ記憶部２１１が記憶する情報は行及び列で表されるテーブルの構造である必要は無い。
【００３６】
分散先決定部２１２は、処理実行部２１０から出力された要求に従って、リスト記憶部２０５に記憶されているリストと、ライブラリ記憶部２１１に記憶されているライブラリテーブルとに基づいて、分散先候補装置を決定する。
処理判定部２１３は、他の処理装置２００からのタスクの分散処理の要求に応じて、要求を受託するか否か判定する。
【００３７】
図３は、リストの具体例を示す図である。図３に示されるように、一つのリスト１０には、処理装置２００の識別情報に対応付けて、ＣＰＵリソース、メモリーリソース、ＨＤＤリソース、ネットワークリソース、演算処理リソース、グラフィックス処理リソース及び搭載ライブラリリソースの情報が記録されている。各リソースの情報について具体的に説明する。ＣＰＵリソースには、ＣＰＵの名前、型番、実行可能な特殊命令及びＣＰＵの使用率の情報が含まれる。メモリーリソースには、メモリの種類、容量及びメモリの使用率の情報が含まれる。ＨＤＤリソースには、回転数、容量及びＨＤＤの使用率の情報が含まれる。ネットワークリソースには、通信帯域、ＮＩＣ（Network Interface Card）のドライバ、チップの種類及びネットワークリソースの使用率の情報が含まれる。演算処理リソースには、ＧＰＵの有無、ＧＰＵの種類及び演算処理リソースの使用率の情報が含まれる。グラフィックス処理リソースには、グラフィックライブラリの有無、グラフィックライブラリの種類及びグラフィックス処理リソースの使用率の情報が含まれる。搭載ライブラリリソースには、グラフィック以外（例えば、音声）のライブラリの有無、グラフィック以外のライブラリの種類及び搭載ライブラリリソースの使用率の情報が含まれる。本実施形態においてライブラリとは、所定の処理を提供するプログラムである。なお、図３に示されるリストは一例であり、リストは各リソースの情報が一つにまとめられていればどのようなリストであってもよい。
【００３８】
図４は、指標値テーブルの具体例を示す図である。指標値テーブルは、複数の指標値レコード２０を有する。指標値レコード２０は、タスクと、リソースの負荷と、時間と、指標値とを有する。タスクは、処理装置２００が実行する処理を表す。リソースの負荷は、タスクを処理するために生じるリソースの負荷を表す。時間は、タスクを処理するために要する時間を表す。指標値は、タスクの種類毎にどのくらいのリソースや時間を要するのかについて得られた統計結果から、タスクの種類毎に処理に使用するリソースの負荷及び時間を評価することにより得られた値を表す。なお、指標値は、定期的に更新されてもよいし、不定期（任意のタイミング）に更新されてもよい。
【００３９】
図５は、ライブラリテーブルの具体例を示す図である。ライブラリテーブルは、複数のライブラリレコード３０を有する。ライブラリレコード３０は、特殊命令と、ライブラリとを有する。特殊命令は、処理装置２００が実行可能なタスクの処理に対する命令を表す。ライブラリは、特殊命令を実行するためのライブラリに関する情報を表す。
【００４０】
図６は、第一実施形態における処理分散システム１００の動作のうち、リソース情報の通知の流れを示すシーケンスチャートである。なお、図６では、三つの処理装置２００（処理装置２００−１、２００−２及び２００−３）を用いて説明する。また、一例として、図６では処理装置２００−２は処理装置２００−１の電波が届く範囲内に位置し、処理装置２００−３は処理装置２００−２の電波が届く範囲内に位置しているものとする。
【００４１】
まず、処理装置２００−１のリソース情報取得部２０３は、所定のタイミングになると、自装置のリソース情報を取得する（ステップＳ１０１）。リソース情報取得部２０３は、取得したリソース情報をリソース情報通知部２０６に出力する。処理装置２００−１のリソース情報通知部２０６は、第二通信部２０２を制御して、リソース情報取得部２０３から出力されたリソース情報を自装置の電波が届く範囲内に位置する処理装置２００−２に送信させる。第二通信部２０２は、リソース情報通知部２０６の制御に従ってリソース情報を処理装置２００−２に送信する（ステップＳ１０２）。
【００４２】
処理装置２００−２の第二通信部２０２は、処理装置２００−１から送信されたリソース情報（他リソース情報）を受信する。処理装置２００−２のリソース情報取得部２０３は、第二通信部２０２によって受信された他リソース情報を取得する。リソース情報取得部２０３は、取得した他リソース情報をリスト作成部２０４及びリソース比較部２０７に出力する。また、処理装置２００−２のリソース情報取得部２０３は、自装置のリソース情報を取得し、取得したリソース情報をリソース比較部２０７に出力する。処理装置２００−２のリスト作成部２０４は、リソース情報取得部２０３から出力された他リソース情報に基づいて、処理装置２００−１に対応するリストを作成する。具体的には、リスト作成部２０４は、処理装置２００−１に対応する他リソース情報を列挙することによって処理装置２００−１に対応するリストを作成する。その後、リスト作成部２０４は、作成したリストをリスト記憶部２０５に記憶させる（ステップＳ１０３）。
【００４３】
また、処理装置２００−２のリソース比較部２０７は、リソース情報取得部２０３から出力された自装置のリソース情報と、他リソース情報とを用いて、リソースの空き状態を比較する（ステップＳ１０４）。リソース比較部２０７は、比較の結果、他の処理装置２００のリソースに比べて自装置のリソースの空きが多いか否か判定する（ステップＳ１０５）。自装置のリソースの空きが多いと判定した場合（ステップＳ１０５−ＹＥＳ）、リソース比較部２０７は自装置のリソースの空きが多いことを示す通知をリソース情報通知部２０６に出力する。この場合、処理装置２００−２のリソース情報通知部２０６は、リソース比較部２０７から出力された通知が自装置のリソースの空きが多いことを示すため、第二通信部２０２を制御して、処理装置２００−１に対して自装置のリソース情報を送信させる。第二通信部２０２は、リソース情報通知部２０６の制御に従って、自装置のリソース情報を処理装置２００−１に送信する（ステップＳ１０６）。
【００４４】
処理装置２００−１の第二通信部２０２は、処理装置２００−２から送信されたリソース情報（他リソース情報）を受信する。処理装置２００−１のリソース情報取得部２０３は、第二通信部２０２によって受信された他リソース情報を取得する。リソース情報取得部２０３は、取得した他リソース情報をリスト作成部２０４に出力する。処理装置２００−１のリスト作成部２０４は、リソース情報取得部２０３から出力された他リソース情報に基づいて、処理装置２００−２に対応するリストを作成する。その後、リスト作成部２０４は、作成したリストをリスト記憶部２０５に記憶させる（ステップＳ１０７）。
【００４５】
ステップＳ１０５の処理において、自装置のリソースの空きが多くないと判定した場合（ステップＳ１０５−ＮＯ）、リソース比較部２０７は自装置のリソースの空きが多くないことを示す通知をリソース情報通知部２０６に出力する。この場合、処理装置２００−２のリソース情報通知部２０６は、リソース比較部２０７から出力された通知が自装置のリソースの空きが多くないことを示すため、第二通信部２０２を制御して、自装置のリソース情報及び処理装置２００−１のリソース情報を自装置の電波が届く範囲内に位置する処理装置２００−３に送信させる。第二通信部２０２は、リソース情報通知部２０６の制御に従って、自装置のリソース情報及び処理装置２００−１のリソース情報を処理装置２００−３に送信する（ステップＳ１０８）。
【００４６】
処理装置２００−３の第二通信部２０２は、処理装置２００−２から送信されたリソース情報（他リソース情報）を受信する。処理装置２００−３のリソース情報取得部２０３は、第二通信部２０２によって受信された他リソース情報を取得する。リソース情報取得部２０３は、取得した他リソース情報をリスト作成部２０４に出力する。処理装置２００−３のリスト作成部２０４は、リソース情報取得部２０３から出力された他リソース情報に基づいて、処理装置２００−１及び処理装置２００−２それぞれに対応するリストを作成する。その後、リスト作成部２０４は、作成したリストをリスト記憶部２０５に記憶させる（ステップＳ１０９）。
【００４７】
図７は、第一実施形態における処理分散システム１００の動作のうち、タスクの分散処理の流れを示すシーケンスチャートである。なお、図７では、一つのデバイス３００と、二つの処理装置２００（処理装置２００−１及び２００−２）とを用いて説明する。
【００４８】
デバイス３００は、所定の情報を取得し、取得した所定の情報を、自装置が接続している処理装置２００−１に出力する（ステップＳ２０１）。
処理装置２００−１の第一通信部２０１は、デバイス３００から出力された所定の情報を受信する。第一通信部２０１は、受信した所定の情報をバッファ２０９に蓄積する。処理実行部２１０は、処理すべきタスクと、指標値記憶部２０８に記憶されている指標値テーブルと、タスクの処理による実行データから得られる処理装置２００の負荷状況及び残りのタスク処理能力と、装置間（例えば、処理装置２００間）のネットワークのスループットと、に基づいて評価値を取得する（ステップＳ２０２）。具体的には、まず処理実行部２１０は、指標値テーブルを参照し、バッファ２０９に蓄積されている所定の情報に対するタスクに対応付けられている指標値を取得する。そして、処理実行部２１０は、取得した指標値と、実行データから得られる処理装置２００の負荷状況及び残りのタスク処理能力と、装置間のネットワークのスループットとを評価することによって評価値を取得する。処理実行部２１０は、取得した評価値に基づいて、所定の条件が満たされたか判定する（ステップＳ２０３）。
【００４９】
所定の条件が満たされた場合（ステップＳ２０３−ＹＥＳ）、処理実行部２１０は分散先決定部２１２に対して分散先候補装置を決定するように指示する。分散先決定部２１２は、処理実行部２１０からの指示に従って分散先候補装置を決定する（ステップＳ２０４）。具体的には、分散先決定部２１２は、リスト記憶部２０５に記憶されているリストと、ライブラリ記憶部２１１に記憶されているライブラリテーブルと、タスクとに基づいて、以下の五つのパラメータの総合評価を算出することによって分散先候補装置を決定する。例えば、分散先決定部２１２は、以下の五つのパラメータに基づいて算出された総合評価値が最も高い他の処理装置２００を分散先候補装置に決定してもよい。
【００５０】
１．残りのタスク処理能力の空き
２．ネットワークの評価値
３．他の処理装置２００が処理できるタスクの種類（例えば、割り当てようとしているタスクが処理できるライブラリを持っていれば優先など）
４．予約された未来のタスクの有無や量
５．予約されていないが、予測機能から割り出された予測のタスクの有無や量
【００５１】
ここで、処理装置２００−２が分散先候補装置に決定されたとする。分散先決定部２１２は、第二通信部２０２を制御して、決定した処理装置２００−２に対してタスクの処理要求を送信させる。第二通信部２０２は、分散先決定部２１２の指示に従って、処理装置２００−２に対してタスクの処理要求を送信する（ステップＳ２０５）。処理要求には、タスクの種類を示す情報が含まれる。
【００５２】
処理装置２００−２の第二通信部２０２は、処理装置２００−１から送信された処理要求を受信する。第二通信部２０２は、受信した処理要求を処理判定部２１３に出力する。処理判定部２１３は、第二通信部２０２から出力された処理要求に基づいて、処理要求を受託するか否か判定する。例えば、処理判定部２１３は、処理要求を受託することによって、自装置のリソースの使用率が閾値を超えない場合に、処理要求を受託すると判定してもよい。その後、処理判定部２１３は、第二通信部２０２を制御して、受託するか否かを示す決定結果を含む応答を処理装置２００−１に対して送信させる。第二通信部２０２は、処理判定部２１３の指示に従って、処理装置２００−１に対して応答を送信する（ステップＳ２０６）。
【００５３】
処理装置２００−１の第二通信部２０２は、処理装置２００−２から送信された応答を受信する。第二通信部２０２は、受信した応答を分散先決定部２１２に出力する。分散先決定部２１２は、出力された応答に基づいて処理要求が許可されたか否か判定する（ステップＳ２０７）。処理要求が許可された場合（ステップＳ２０７−ＹＥＳ）、分散先決定部２１２は第二通信部２０２を介して処理装置２００−２にタスクの対象となる所定の情報を送信する（ステップＳ２０８）。
【００５４】
処理装置２００−２の第二通信部２０２は、処理装置２００−１から送信された所定の情報を受信する。第二通信部２０２は、受信した所定の情報を、処理判定部２１３を介してバッファ２０９に蓄積する。処理実行部２１０は、バッファ２０９に蓄積されている所定の情報を処理する（ステップＳ２０９）。その後、処理実行部２１０は、処理がなされた所定の情報を、第二通信部２０２を介して要求元の処理装置２００−１に送信する。
【００５５】
ステップＳ２０３の処理において、所定の条件が満たされなかった場合（ステップＳ２０３−ＮＯ）、処理装置２００−１の処理実行部２１０はバッファ２０９に蓄積されている所定の情報を処理する（ステップＳ２１０）。
【００５６】
また、ステップＳ２０７の処理において、要求が許可されなかった場合（ステップＳ２０７−ＮＯ）、分散先決定部２１２は分散先候補装置として一度決定した処理装置２００とは異なる他の処理装置２００の中から再度分散先候補装置を決定する（ステップＳ２０４）。例えば、分散先決定部２１２は、ステップＳ２０４の処理において算出された総合評価値が高い順に他の処理装置２００の中から分散先候補装置を決定する。その後、ステップＳ２０５以降の処理が実行される。
【００５７】
以上のように構成された処理分散システム１００では、各処理装置２００は、自装置のリソース情報を、ネットワーク４００で接続可能な他の処理装置２００に送信する。他の処理装置２００から送信されたリソース情報を受信した処理装置２００は、自装置のリソースと、受信したリソース情報に含まれるリソースとを比較して自装置のリソースの空きが多い場合には、送信元の処理装置２００に自装置のリソース情報を送信する。一方、相手のリソースが多い場合には、自装置の近隣に位置する他の処理装置２００に自装置のリソース情報と、受信したリソース情報とを送信する。このような処理が繰り返し実行されることによって、各処理装置２００に他の処理装置２００のリソース情報が通知される。そのため、デバイス３００から取得した所定の情報に対して処理を行う処理装置２００を複数備えるシステムにおいて、各処理装置２００が他の処理装置２００のリソースに関する情報を取得することが可能になる。
【００５８】
また、以上のように構成された処理分散システム１００では、各処理装置２００は、自装置でタスクの処理が困難である場合（実施形態における評価値が閾値以上となった場合）に自装置が処理すべきタスクの一部を他の処理装置２００に分散する。そのため、可能な限り早く処理を完了させることが可能になる。また、処理を他の処理装置２００に分散するため、一つの処理装置２００にかかる処理負荷を低減させることができる。
【００５９】
また、以上のように構成された処理分散システム１００では、処理装置２００のリソース情報が処理装置２００毎にリスト化される。そのため、処理装置２００は、各処理装置２００のリソースに関する情報を容易に取得することができる。
【００６０】
＜変形例＞
各処理装置２００は、同一の装置であってもよいし、異なる装置であってもよい。また、各処理装置２００は、同一のスペックであってもよいし、異なるスペックであってもよい。
本実施形態では、リソース情報には複数のリソースに関する情報が含まれる例を示したがリソース情報には１つのリソースに関する情報が含まれていてもよい。
処理装置２００が備える機能部の一部が別の装置に実装されてもよい。例えば、リソース情報取得部２０３、リスト作成部２０４及びリスト記憶部２０５は、処理装置２００と別の装置であるリスト作成装置として実装されてもよい。
【００６１】
処理装置２００は、タスクを受託することによって、自装置のリソースが閾値以上となった場合には、自装置が処理すべきタスクのいずれかを他の処理装置２００に分散するように構成されてもよい。このように構成される場合、分散先決定部２１２は、自装置が処理すべきタスクのうち他の処理装置２００に分散するタスク及び分散先候補装置を決定する。分散先決定部２１２は、例えば受託したタスクを他の処理装置２００に分散してもよいし、リアルタイムな処理が必要なタスクを他の処理装置２００に分散してもよいし、他の処理装置２００がライブラリを有しているタスクを他の処理装置２００に分散してもよいし、ランダムに決定したタスクを他の処理装置２００に分散してもよいし、その他の方法で決定したタスクを他の処理装置２００に分散してもよい。分散先候補装置を決定する方法としては、本実施形態に記載の方法と同様の方法が用いられてもよい。
【００６２】
このように構成されることによって、タスクを受託したことでリソースが閾値を超えてしまった場合であってもリソースを分散することができる。そのため、リソースが閾値を超えたことによる処理速度の低下を低減することができる。
【００６３】
本実施形態では、分散先決定部２１２が分散先候補装置として一つの処理装置２００を決定する構成を示したが、分散先決定部２１２は分散先候補装置として複数の処理装置２００を決定するように構成されてもよい。このように構成される場合、分散先決定部２１２は、総合評価値が最も高い順に複数の処理装置２００をそれぞれ分散先候補装置に決定してもよい。
分散先決定部２１２は、以下のように動作してもよい。具体的には、まず分散先決定部２１２は、リスト記憶部２０５に記憶されているリストと、ライブラリ記憶部２１１に記憶されているライブラリテーブルとに基づいて得られる総合評価値が最も高い順に複数の処理装置２００それぞれに対して優先順位を割り当てる。次に、分散先決定部２１２は、割り当てた優先順位に関する情報を要求対象リストとして保持する。そして、分散先決定部２１２は、要求対象リストに基づいて、分散先候補装置が決定するまで優先順位が高い順にタスクの処理を要求する。例えば、優先順位が最も高い処理装置２００に受託されなかった場合、分散先決定部２１２は次に優先順位が高い処理装置２００にタスクの処理を要求する。このように、分散先決定部２１２は分散先候補装置が決定するまで処理を繰り返し実行する。このように構成されることによって、受託されなかった場合に評価値などの再計算を行う必要がない。そのため、処理負荷を軽減することができる。さらに、次の要求を出すまでの時間を短縮することができ、タスクの処理時間を短縮することができる。なお、優先順位は、総合評価値が最も高い順に割り当てられる必要はなく、予め優先順位が決定されていてもよいし、処理装置２００毎に総合評価値に重み付けすることによって優先順位が決定されてもよいし、その他の方法で決定されてもよい。
【００６４】
処理分散システム１００は、ライブラリ配信装置を備えるように構成されてもよい。ライブラリ配信装置は、処理装置２００の要求に応じて、タスクを処理するために必要となるライブラリ（以下、「処理ライブラリ」という。）を配信する。このように構成される場合、以下のような動作が行われる。
【００６５】
まず、分散先決定部２１２は、分散先候補装置として決定した処理装置２００が、処理ライブラリを有していない場合に、リストに記録されているＣＰＵリソースの情報からタスクを処理するための命令が実行可能であるか否か判定する。例えば、分散先決定部２１２は、分散先候補装置として決定した処理装置２００が、動画圧縮規格の一つであるＨ．２６５の規格に準じたエンコードの処理をするためのライブラリを有していない場合に、リストに記録されているＣＰＵリソースの情報からＨ．２６５の処理をするための命令が実行可能であるか否か判定する。タスクを処理するための命令が実行可能であるか否かの判定は、ＣＰＵリソースに含まれる実行可能な特殊命令に基づいてなされる。例えば、分散先決定部２１２は、ＣＰＵリソースに含まれる実行可能な特殊命令にタスクを処理するための命令が記録されている場合に、タスクを処理するための命令が実行可能であると判定する。一方、分散先決定部２１２は、ＣＰＵリソースに含まれる実行可能な特殊命令にタスクを処理するための命令が記録されていない場合に、タスクを処理するための命令が実行可能ではないと判定する。
【００６６】
タスクを処理するための命令が実行可能である場合、分散先決定部２１２はライブラリ記憶部２１１に記憶されているライブラリテーブルを参照し、タスクを処理させるための特殊命令に対応するライブラリに関する情報を取得する。その後、分散先決定部２１２は、取得したライブラリに関する情報と、分散先候補装置に対してライブラリの配信を要求するための配信要求を、第二通信部２０２を介してライブラリ配信装置に送信する。ライブラリ配信装置は、処理装置２００から送信された配信要求に応じて、指定された分散先候補装置に対して対応するライブラリを配信する。分散先候補装置は、ライブラリ配信装置から配信されたライブラリを受信し、受信したライブラリを自装置で実行可能に配置する。その後、分散先候補装置は、処理装置２００から送信された所定の情報に対するタスクを処理する。
【００６７】
次に、処理分散システム１００の適用例について、具体例を挙げて説明する。図８は、処理分散システム１００の適用例を説明するための図である。
図８では、デバイス３００が撮影装置であり、処理装置２００−１〜２００−３が撮影装置によって撮影された画像、映像及び音（所定の情報）に対してエンコードの処理を行う映像符号化装置とする。この場合、処理装置２００−１は、以下のパラメータの状況を判断し、自装置上でエンコード処理方法を変更し、他の処理装置２００にタスクの処理を分散する。パラメータの例として、コンテンツの種別（動きが多い、映像サイズが大きいなど）、コンテンツのエンコードパラメータ（画質、映像サイズ、ビットレート等）、他の処理装置２００とのネットワークの空き帯域や利用予測情報やネットワーク的な距離の遠近、他の処理装置２００のリソースの空き状況や利用予約状況や利用予測情報及び選択できるエンコードライブラリの種別（例えば、Ｈ．２６３、Ｈ．２６４、Ｈ．２６５、ＶＰ８、ＶＰ９、ＭＰ３（MPEG Audio Layer-3）など）が挙げられる。
【００６８】
また、図８では、処理分散システム１００に映像変換装置５００が新たに備えられている。映像変換装置５００は、処理装置２００によって処理がなされた所定の情報を、出力装置で出力可能なファイル形式に変換する。例えば、出力装置が符号化された所定の情報を出力できない場合、映像変換装置５００は符号化された所定の情報を出力装置が出力可能なファイル形式（例えば、ＦＬＶ（Flash Video））に変換する。また、図８では、指定された時間内に、処理装置２００−１及び２００−２それぞれで所定の情報に対して符号化の処理を施した結果を処理装置２００−３に送信し、処理装置２００−３が各処理装置２００−１及び２００−２から符号化された所定の情報を受信し、受信した所定の情報に対して必要に応じて最終的な処理を施して映像変換装置５００に対して出力する場合について説明する。
【００６９】
処理装置２００−１は、指標値テーブルを記憶している。この指標値テーブルには、上記のようにタスクの種類毎のリソースの負荷、時間及び評価値が登録されている。そのため、処理装置２００−１は、ある映像サイズの映像に対するＨ．２６５での演算処理にどのくらいの時間がかかるのか、Ｈ．２６４からＨ．２６５への変換処理にどのくらいの時間がかかるのか等に関する評価値を取得することができる。また、処理装置２００−１〜２００−３は、互いのリソース情報の交換を行っているため、互いにリソースの状態に関する情報を取得している。ここで、処理装置２００−１がＨ．２６５の処理が可能であり、処理装置２００−２がＨ．２６４の処理が可能であり、処理装置２００−３がＨ．２６５の処理が可能であるとする。処理装置２００−１は、指標値テーブルを参照し、自装置が処理すべきタスク毎に評価値を取得する。例えば、処理装置２００−１は、Ｈ．２６４の演算処理が評価値“３”、Ｈ．２６４からＨ．２６５への変換が評価値“１”、Ｈ．２６５の演算処理が評価値“５”等の評価値を取得する。
【００７０】
処理装置２００−１は、取得した評価値に基づいて、処理装置２００−２にＨ．２６４の演算処理を実行させて、処理装置２００−３にＨ．２６４からＨ．２６５への変換処理を実行させたほうが処理の完了が速いと判断する。そして、処理装置２００−１は、処理装置２００−２に対してタスクの一部を分散する。処理装置２００−１は、自装置が処理すべきタスクについてＨ．２６５の演算処理を施して処理装置２００−３に演算処理を施した所定の情報を送信する。処理装置２００−２は、処理装置２００−１からの要求に応じて、要求されたタスクについてＨ．２６４の演算処理を施して処理装置２００−３に演算処理を施した所定の情報を送信する。処理装置２００−３は、処理装置２００−１及び２００−２から送信された所定の情報を受信する。処理装置２００−３は、処理装置２００−２から送信された所定の情報についてＨ．２６５の演算処理を施す。そして、処理装置２００−３は、Ｈ．２６５の処理が施された所定の情報をまとめて映像変換装置５００に送信する。映像変換装置５００は、処理装置２００−３から送信された所定の情報のファイル形式を出力装置が出力可能なファイル形式に変換して出力装置に出力する。
【００７１】
以上のように、分散処理を行うことによって所定の時間以内に処理を完了させることができるようになる。
【００７２】
［第二実施形態］
図９は、第二実施形態における処理分散システム１００ａのシステム構成の例を表すシステム構成図である。処理分散システム１００ａは、処理装置２００に代えて処理装置２００ａを備える点、監視装置７００を備える点で第一実施形態における処理分散システム１００と異なる。デバイス３００については、処理分散システム１００ａと処理分散システム１００とは同様である。処理装置２００ａは、ネットワーク４００ａを介して監視装置７００及び他の処理装置２００と通信可能に接続される。ネットワーク４００ａは、どのようなネットワークで構築されてもよい。例えば、ネットワーク４００ａは、インターネットで構成されてもよい。以下、第一実施形態における処理分散システム１００と異なる点に関して、処理分散システム１００ａについて説明する。
【００７３】
処理装置２００ａは、リソース情報を監視装置７００に送信する。処理装置２００ａは、所定の条件が満たされると、監視装置７００に対してタスクの分散を要求する。
監視装置７００は、パーソナルコンピュータ等の情報処理装置を用いて構成される。監視装置７００は、各処理装置２００ａからリソース情報を取得する。監視装置７００は、処理装置２００ａからの要求に応じて分散先候補装置を決定する。
【００７４】
図１０は、第二実施形態における処理装置２００ａの構成の詳細を示す図である。以下、図１０を用いて処理装置２００ａの構成について詳細に説明する。
処理装置２００ａは、バスで接続されたＣＰＵやメモリや補助記憶装置などを備え、処理分散プログラムを実行する。処理分散プログラムの実行によって、処理装置２００ａは、第一通信部２０１、第二通信部２０２ａ、リソース情報取得部２０３、リソース情報通知部２０６ａ、指標値記憶部２０８、バッファ２０９、処理実行部２１０ａ、処理判定部２１３を備える装置として機能する。なお、処理装置２００ａの各機能の全て又は一部は、ＡＳＩＣやＰＬＤやＦＰＧＡ等のハードウェアを用いて実現されてもよい。また、処理分散プログラムは、コンピュータ読み取り可能な記録媒体に記録されてもよい。コンピュータ読み取り可能な記録媒体とは、例えばフレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置である。また、処理分散プログラムは、電気通信回線を介して送受信されてもよい。
【００７５】
処理装置２００ａは、リスト作成部２０４、リスト記憶部２０５、リソース比較部２０７、ライブラリ記憶部２１１及び分散先決定部２１２を備えない点、第二通信部２０２に代えて第二通信部２０２ａを備える点、リソース情報通知部２０６に代えてリソース情報通知部２０６ａを備える点、処理実行部２１０に代えて処理実行部２１０ａを備える点で処理装置２００と構成が異なる。処理装置２００ａは、他の構成については処理装置２００と同様である。そのため、処理装置２００ａ全体の説明は省略し、第二通信部２０２ａ、リソース情報通知部２０６ａ及び処理実行部２１０ａについて説明する。
【００７６】
第二通信部２０２ａは、通信インタフェース等の通信機器を用いて構成される。第二通信部２０２ａは、ネットワーク４００を介して監視装置７００との間で通信する。第二通信部２０２ａは、有線通信を行ってもよいし、無線通信を行ってもよい。第二通信部２０２ａは、例えば自装置のリソース情報を監視装置７００に送信する。
リソース情報通知部２０６ａは、第二通信部２０２ａを制御して、リソース情報取得部２０３から出力された自装置のリソース情報を監視装置７００に送信する。
【００７７】
処理実行部２１０ａは、バッファ２０９に蓄積された所定の情報に対するタスクを処理する。処理実行部２１０は、処理すべきタスクと、指標値記憶部２０８に記憶されている指標値テーブルと、タスクの処理による実行データから得られる処理装置２００ａの負荷状況及び残りのタスク処理能力と、装置間（例えば、処理装置２００間）のネットワークのスループットと、に基づいて所定の条件が満たされたか否か判定する。所定の条件が満たされた場合、処理実行部２１０ａは他の処理装置２００ａにタスクの一部を分散する必要があると決定する。この場合、処理実行部２１０ａは、監視装置７００に対してタスクの分散先候補装置の決定を要求する。この際、処理実行部２１０ａは、分散するタスクの種類の情報と、タスクに対応する所定の情報とを要求に含める。一方、所定の条件が満たされていない場合、処理実行部２１０ａはバッファ２０９内に蓄積された所定の情報に対するタスクの処理を行う。
【００７８】
図１１は、監視装置７００の構成の詳細を示す図である。以下、図１１を用いて監視装置７００の構成について詳細に説明する。
監視装置７００は、バスで接続されたＣＰＵやメモリや補助記憶装置などを備え、監視プログラムを実行する。監視プログラムの実行によって、監視装置７００は、通信部７０１、リソース情報取得部７０２、リスト作成部７０３、リスト記憶部７０４、ライブラリ記憶部７０５、分散先決定部７０６を備える装置として機能する。なお、監視装置７００の各機能の全て又は一部は、ＡＳＩＣやＰＬＤやＦＰＧＡ等のハードウェアを用いて実現されてもよい。また、監視プログラムは、コンピュータ読み取り可能な記録媒体に記録されてもよい。コンピュータ読み取り可能な記録媒体とは、例えばフレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置である。また、監視プログラムは、電気通信回線を介して送受信されてもよい。
【００７９】
通信部７０１は、通信インタフェース等の通信機器を用いて構成される。通信部７０１は、ネットワーク４００ａを介して処理装置２００ａとの間で通信する。通信部７０１は、有線通信を行ってもよいし、無線通信を行ってもよい。通信部７０１は、例えば分散先決定部７０６によって決定された分散先候補装置に対して、タスクの処理要求を送信する。また、通信部７０１は、例えば処理装置２００ａのリソース情報を処理装置２００ａから受信する。
【００８０】
リソース情報取得部７０２は、通信部７０１によって受信された情報の中から処理装置２００ａから送信された処理装置２００ａのリソース情報を取得する。リソース情報取得部７０２は、取得したリソース情報をリスト作成部７０３に出力する。
【００８１】
リスト作成部７０３は、リソース情報取得部７０２から出力されたリソース情報に基づいて、処理装置２００ａ毎のリストを作成する。
リスト記憶部７０４は、磁気ハードディスク装置や半導体記憶装置などの記憶装置を用いて構成される。リスト記憶部７０４は、リスト作成部７０３によって作成されたリストを記憶する。リスト記憶部７０４は、例えば各リソースの情報が行及び列で表されるリストを記憶する。なお、リスト記憶部７０４が記憶する情報は行及び列で表されるリストの構造である必要は無い。
【００８２】
ライブラリ記憶部７０５は、磁気ハードディスク装置や半導体記憶装置などの記憶装置を用いて構成される。ライブラリ記憶部７０５は、特殊命令と、特殊命令を実行するために必要となるライブラリの情報との対応関係を示す情報を記憶する。ライブラリ記憶部７０５は、例えばライブラリテーブルを記憶する。なお、ライブラリ記憶部７０５が記憶する情報は行及び列で表されるテーブルの構造である必要は無い。
【００８３】
分散先決定部７０６は、処理装置２００ａからの要求に従って、リスト記憶部７０４に記憶されているリストと、ライブラリ記憶部７０５に記憶されているライブラリテーブルとに基づいて、分散先候補装置を決定する。
【００８４】
図１２は、第二実施形態における処理分散システム１００ａの動作のうち、タスクの分散処理の流れを示すシーケンスチャートである。なお、図１２では、一つのデバイス３００と、二つの処理装置２００ａ（処理装置２００ａ−１及び３００ａ−２）と、一つの監視装置７００とを用いて説明する。また、図７と同様の処理については、図１２において図７と同様の符号を付して説明を省略する。
【００８５】
ステップＳ２０１からステップＳ２０３までの処理が実行された後、ステップＳ２０３の処理において評価値が閾値以上である場合（ステップＳ２０３−ＹＥＳ）、処理実行部２１０ａは第二通信部２０２ａを介して監視装置７００に対してタスクの分散を要求する（ステップＳ３０１）。
【００８６】
通信部７０１は、処理装置２００ａから送信された要求を受信する。通信部７０１は、受信した要求を分散先決定部７０６に出力する。分散先決定部７０６は、通信部７０１から出力された要求に応じて分散先候補装置を決定する（ステップＳ３０２）。分散先候補装置の決定方法は、第一実施形態と同様である。ここで、処理装置２００ａ−２が分散先候補装置に決定されたとする。分散先決定部７０６は、通信部７０１を制御して、決定した処理装置２００ａ−２に対してタスクの処理要求を送信させる。通信部７０１は、分散先決定部７０６の指示に従って、処理装置２００ａ−２に対してタスクの処理要求を送信する（ステップＳ３０３）。処理要求には、分散の対象となるタスクの種類を示す情報が含まれる。
【００８７】
処理装置２００ａ−２の第二通信部２０２ａは、監視装置７００から送信された処理要求を受信する。第二通信部２０２ａは、受信した処理要求を処理判定部２１３に出力する。処理判定部２１３は、第二通信部２０２ａから出力された処理要求に基づいて、処理要求を受託するか否か判定する。その後、処理判定部２１３は、第二通信部２０２ａを制御して、受託するか否かを示す決定結果を含む応答を監視装置７００に対して送信させる。第二通信部２０２ａは、処理判定部２１３の指示に従って、監視装置７００に対して応答を送信する（ステップＳ３０４）。
【００８８】
監視装置７００の通信部７０１は、処理装置２００ａ−２から送信された応答を受信する。通信部７０１は、受信した応答を分散先決定部７０６に出力する。分散先決定部７０６は、出力された応答に基づいて処理要求が許可されたか否か判定する（ステップＳ３０５）。処理要求が許可された場合（ステップＳ３０５−ＹＥＳ）、分散先決定部７０６は通信部７０１を介して処理装置２００ａ−２に所定の情報を送信する（ステップＳ３０６）。
【００８９】
処理装置２００ａ−２の第二通信部２０２ａは、監視装置７００から送信された所定の情報を受信する。第二通信部２０２ａは、受信した所定の情報を、処理判定部２１３を介してバッファ２０９に蓄積する。処理実行部２１０ａは、バッファ２０９に蓄積されている所定の情報を処理する（ステップＳ３０７）。その後、処理実行部２１０ａは、処理がなされた所定の情報を、第二通信部２０２ａを介して要求元の処理装置２００ａ−１に送信する。なお、ステップＳ３０５の処理において、要求が許可されなかった場合（ステップＳ３０５−ＮＯ）、監視装置７００の分散先決定部７０６は、一度決定した処理装置２００ａとは異なる他の処理装置２００ａの中から再度分散先候補装置を決定する。その後、ステップＳ３０３以降の処理が実行される。
【００９０】
以上のように構成された処理分散システム１００ａでは、各処理装置２００ａを監視する監視装置７００に各処理装置２００ａのリソース情報が収集される。これにより、監視装置７００は、各処理装置２００ａのリソースに関する情報を取得することができる。
【００９１】
また、以上のように構成された処理分散システム１００ａでは、各処理装置２００ａのリソースに関する情報を取得する監視装置７００が設けられる。そして、監視装置７００は、処理装置２００ａからのタスクの分散要求に応じて、各処理装置２００ａのリソース状況や、ネットワークの状態などを含めて評価することでタスクを割り振る最適な処理装置２００ａを決定することができる。したがって、各処理装置２００ａは、他の処理装置２００ａのリソース状態に関する情報の取得や、分散先候補装置を決定しなくて済む。これにより、一つの処理装置２００ａにかかるコストを削減することが可能になる。
【００９２】
また、以上のように構成された処理分散システム１００ａでは、各処理装置２００ａは、自装置でタスクの処理が困難である場合（実施形態における評価値が閾値以上となった場合）に自装置が処理するタスクの一部を他の処理装置２００ａに分散する。そのため、可能な限り早く処理を完了させることが可能になる。また、処理を他の処理装置２００ａに分散するため、一つの処理装置２００ａにかかる処理負荷を低減させることができる。
【００９３】
また、以上のように構成された処理分散システム１００ａでは、処理装置２００ａのリソース情報が処理装置２００ａ毎にリスト化される。そのため、監視装置７００は、各処理装置２００ａのリソースに関する情報を容易に取得することができる。
【００９４】
＜変形例＞
第二実施形態は、第一実施形態と同様に変形例されてもよい。
監視装置７００が備える機能部の一部が別の装置に実装されてもよい。例えば、リソース情報取得部７０２、リスト作成部７０３及びリスト記憶部７０４は、監視装置７００と別の装置であるリスト作成装置として実装されてもよい。
また、本実施形態では、監視装置７００が、各処理装置２００ａのリソース情報を収集して、分散の要求に応じて監視装置７００が分散先候補装置を決定する構成を示したが、これに限定される必要はない。例えば、監視装置７００が、作成した処理装置２００ａ毎のリストを各処理装置２００ａに送信して、各処理装置２００ａで分散先候補装置を決定するように構成されてもよい。このように構成される場合、監視装置７００は、ライブラリ記憶部７０５及び分散先決定部７０６を備えない。この場合、処理装置２００ａは、ライブラリ記憶部７０５、分散先決定部７０６及びリスト記憶部を備える。ライブラリ記憶部７０５及び分散先決定部７０６は、第一実施形態の処理装置２００のライブラリ記憶部２１１及び分散先決定部２１２と同様の処理を行う。
【００９５】
このように構成されることによって、各処理装置２００ａは、監視装置７００から送信されたリストを受信することによって他の処理装置２００ａのリソースに関する情報を容易に取得することができる。さらに、処理装置２００ａは、受信したリストに基づいて、分散先候補装置を決定し、タスクを分散することができる。
【００９６】
本実施形態では、処理装置２００ａが、分散するタスクの種類の情報と、タスクに対応する所定の情報とを要求に含めて監視装置７００ａに送信する構成を示したが、処理装置２００ａは分散するタスクの種類の情報のみを要求に含めるように構成されてもよい。このように構成される場合、要求が受託されると、監視装置７００ａはタスクに対応する所定の情報を要求元の処理装置２００ａから取得し、取得した所定の情報を、要求を受託した分散先候補装置に送信する。
【００９７】
［第三実施形態］
図１３は、第三実施形態における処理分散システム１００ｂのシステム構成の例を表すシステム構成図である。処理分散システム１００ｂは、処理装置２００ａに代えて処理装置２００ｂを備える点、監視装置７００に代えて複数の監視装置７００ｂを備える点、管理装置８００を備える点で処理分散システム１００ａと異なる。デバイス３００の構成については、処理分散システム１００ｂと処理分散システム１００ａとは同様である。処理装置２００ｂは、第一ネットワーク４０１を介して監視装置７００ｂ及び他の処理装置２００ｂと通信可能に接続される。監視装置７００ｂは、第二ネットワーク４０２を介して管理装置８００と通信可能に接続される。第一ネットワーク４０１及び第二ネットワーク４０２は、どのようなネットワークで構築されてもよい。例えば、第一ネットワーク４０１及び第二ネットワーク４０２は、インターネットで構成されてもよい。以下、処理分散システム１００ａと異なる点に関して、処理分散システム１００ｂについて説明する。
【００９８】
処理装置２００ｂは、第一ネットワーク４０１を介して監視装置７００ｂ及び他の処理装置２００ｂと通信を行うことを除けばその他の機能は処理装置２００ａと同様である。
監視装置７００ｂは、パーソナルコンピュータ等の情報処理装置を用いて構成される。監視装置７００ｂは、自装置に接続される各処理装置２００ｂからリソース情報を取得する。また、監視装置７００ｂは、他の監視装置７００ｂに接続される処理装置２００ｂのリソース情報を管理装置８００から取得する。監視装置７００ｂは、自装置に接続される処理装置２００ｂからのタスクの分散処理の要求に応じて分散先候補装置を決定する。
【００９９】
管理装置８００は、各処理装置２００ｂのリソース情報を各監視装置７００ｂから取得する。管理装置８００は、取得した各処理装置２００ｂのリソース情報を各監視装置７００ｂに送信する。例えば、管理装置８００は、ある監視装置７００ｂに対して、他の監視装置７００ｂに接続される処理装置２００ｂのリソース情報を送信する。
【０１００】
図１４は、第三実施形態における監視装置７００ｂの構成の詳細を示す図である。以下、図１４を用いて監視装置７００ｂの構成について詳細に説明する。
監視装置７００ｂは、バスで接続されたＣＰＵやメモリや補助記憶装置などを備え、監視プログラムを実行する。監視プログラムの実行によって、監視装置７００ｂは、リソース情報取得部７０２ｂ、リスト作成部７０３、リスト記憶部７０４、ライブラリ記憶部７０５、分散先決定部７０６ｂ、第一通信部７０７、第二通信部７０８を備える装置として機能する。なお、監視装置７００ｂの各機能の全て又は一部は、ＡＳＩＣやＰＬＤやＦＰＧＡ等のハードウェアを用いて実現されてもよい。また、監視プログラムは、コンピュータ読み取り可能な記録媒体に記録されてもよい。コンピュータ読み取り可能な記録媒体とは、例えばフレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置である。また、監視プログラムは、電気通信回線を介して送受信されてもよい。
【０１０１】
監視装置７００ｂは、通信部７０１を備えない点、リソース情報取得部７０２に代えてリソース情報取得部７０２ａを備える点、分散先決定部７０６に代えて分散先決定部７０６ｂを備える点、第一通信部７０７及び第二通信部７０８を備える点で監視装置７００と構成が異なる。監視装置７００ｂは、他の構成については監視装置７００と同様である。そのため、監視装置７００ｂ全体の説明は省略し、リソース情報取得部７０２ｂ、分散先決定部７０６ｂ、第一通信部７０７及び第二通信部７０８について説明する。
【０１０２】
第一通信部７０７は、通信インタフェース等の通信機器を用いて構成される。第一通信部７０７は、第一ネットワーク４０１を介して処理装置２００ｂとの間で通信する。第一通信部７０７は、有線通信を行ってもよいし、無線通信を行ってもよい。第一通信部７０７は、例えば分散先決定部７０６ｂによって決定された分散先候補装置に対して、タスクの処理要求を送信する。また、通信部７０１は、例えば処理装置２００ｂのリソース情報を処理装置２００ｂから受信する。
【０１０３】
第二通信部７０８は、通信インタフェース等の通信機器を用いて構成される。第二通信部７０８は、第二ネットワーク４０２を介して管理装置８００との間で通信する。第二通信部７０８は、有線通信を行ってもよいし、無線通信を行ってもよい。第二通信部７０８は、例えばリソース情報取得部７０２ｂによって取得された自装置に接続される処理装置２００ｂのリソース情報を管理装置８００に送信する。また、第二通信部７０８は、例えば分散先決定部７０６ｂによって決定された分散先候補装置に対して、タスクの処理要求を送信する。また、第二通信部７０８は、例えば他の監視装置７００ｂが取得した他の監視装置７００ｂに接続される処理装置２００ｂのリソース情報を管理装置８００から受信する。
【０１０４】
リソース情報取得部７０２ｂは、通信部７０１によって受信された情報の中から処理装置２００ｂから送信されたリソース情報を取得する。また、リソース情報取得部７０２ｂは、第二通信部７０８によって受信された情報の中から管理装置８００から送信された他の監視装置７００ｂに接続される処理装置２００ｂのリソース情報を取得する。リソース情報取得部７０２ｂは、取得したリソース情報をリスト作成部７０３に出力する。
【０１０５】
分散先決定部７０６ｂは、処理装置２００ｂからの要求に従って、リスト記憶部７０４に記憶されているリストと、ライブラリ記憶部７０５に記憶されているライブラリテーブルとに基づいて、分散先候補装置を決定する。そして、分散先決定部７０６ｂは、決定した分散先候補装置が自装置に接続されている処理装置２００ｂである場合には第一通信部７０７を制御して分散先候補装置に処理要求を送信させる。一方、分散先決定部７０６ｂは、決定した分散先候補装置が他の監視装置７００ｂに接続されている処理装置２００ｂである場合には第二通信部７０８を制御して分散先候補装置に処理要求を送信させる。
【０１０６】
以上のように構成された処理分散システム１００ｂでは、第二実施形態と同様の効果を得ることができる。
また、以上のように構成された処理分散システム１００ｂでは、一つの監視装置７００は、自装置に接続される処理装置２００ｂのリソース情報のみならず、他の監視装置７００ｂに接続される処理装置２００ｂのリソース情報も収集することができる。これにより、監視装置７００は、第一実施形態より広範囲の処理装置２００ｂのリソースに関する情報を取得することができる。
【０１０７】
また、以上のように構成された処理分散システム１００ｂでは、処理装置２００ｂのリソース情報が処理装置２００ｂ毎にリスト化される。そのため、監視装置７００は、各処理装置２００ｂのリソースに関する情報を容易に取得することができる。
【０１０８】
＜変形例＞
第三実施形態は、第一実施形態及び第二実施形態と同様に変形例されてもよい。
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
＜その他＞
処理装置２００は、以下のように構成されてもよい。
自装置のリソース情報と、他の処理装置から取得されたリソース情報とに基づいて、自装置のリソースと、他の処理装置のリソースとを比較するリソース比較部をさらに備え、前記通信部（第二通信部２０２）は、比較結果に応じて、自装置のリソースのみ、又は、自装置のリソース情報及び他の処理装置のリソース情報を他の処理装置に送信する。
【符号の説明】
【０１０９】
２００、２００ａ、２００ｂ…処理装置，  ２０１、７０７…第一通信部，  ２０２、２０２ａ、７０８…第二通信部，  ２０３、７０２、７０２ｂ…リソース情報取得部，  ２０４、７０３…リスト作成部，  ２０５、７０４…リスト記憶部，  ２０６、２０６ａ…リソース情報通知部，  ２０７…リソース比較部，  ２０８…指標値記憶部，  ２０９…バッファ，  ２１０、２１０ａ…処理実行部，  ２１１、７０５…ライブラリ記憶部，  ２１２、７０６、７０６ｂ…分散先決定部，  ２１３…処理判定部，  ３００…デバイス，  ４００、４００ａ…ネットワーク，  ４０１…第一ネットワーク，  ４０２…第二ネットワーク，  ５００…映像変換装置，  ６００…ライブラリ配信装置，  ７００、７００ｂ…監視装置，  ７０１…通信部，  ８００…管理装置
【図１】
0006693764.tif 000002
【図２】
0006693764.tif 000003
【図３】
0006693764.tif 000004
【図４】
0006693764.tif 000005
【図５】
0006693764.tif 000006
【図６】
0006693764.tif 000007
【図７】
0006693764.tif 000008
【図８】
0006693764.tif 000009
【図９】
0006693764.tif 000010
【図１０】
0006693764.tif 000011
【図１１】
0006693764.tif 000012
【図１２】
0006693764.tif 000013
【図１３】
0006693764.tif 000014
【図１４】
0006693764.tif 000015