(57)【特許請求の範囲】
【請求項１】
通信ネットワークに接続された自装置を含む複数のデータ処理装置の各々に関し、当該データ処理装置が受任可能な１以上のデータ処理の種類と、当該データ処理装置が利用可能な１以上のデータの種類とを示し、さらに、当該１以上のデータ処理の種類と当該１以上のデータの種類との組み合わせのうち１以上の各々に関し、当該データ処理装置が当該組み合わせに係る種類のデータを用いて当該組み合わせに係る種類のデータ処理を実行した際に当該データ処理に要するコストを示す、パフォーマンスデータを記憶する記憶手段と、
１以上の種類のデータ処理を実行可能な処理手段と、
データ処理の委任元のデータ処理装置から、委任される１以上のデータ処理の種類と、当該１以上のデータ処理の各々において用いられる１以上のデータの種類とを示す委任データを受信する受信手段と、
前記受信手段が受信した前記委任データにより委任されるデータ処理が分割できる場合、前記委任データにより委任されるデータ処理を複数のデータ処理に分割する分割手段と、
前記委任データにより委任されるデータ処理が分割できない場合は当該データ処理に関し、また、前記委任データにより委任されるデータ処理が分割できる場合は前記分割手段が分割した複数のデータ処理の各々に関し、前記パフォーマンスデータに基づき、当該データ処理を自装置で実行するか自装置以外のデータ処理装置に委任するかを決定し、当該データ処理を他のデータ処理装置に委任すると決定した場合、当該データ処理の委任先のデータ処理装置を決定する決定手段と、
前記決定手段が自装置以外のデータ処理装置に委任すると決定したデータ処理に関し、当該データ処理の委任を示す委任データを、前記決定手段が決定した委任先のデータ処理装置に送信する送信手段と
を備え、
前記処理手段は、前記決定手段が自装置で実行すると決定したデータ処理を実行し、
前記受信手段は、前記送信手段が送信した委任データに対する応答として委任先のデータ処理装置から送信されてくるデータ処理の結果を示す結果データを受信し、
前記送信手段は、前記受信手段が受信した委任データに対する応答として、前記処理手段が実行したデータ処理の結果を示す結果データおよび前記受信手段が委任先のデータ処理装置から受信した結果データの少なくとも一方を、委任元のデータ処理装置に送信する
データ処理装置。
【請求項２】
前記処理手段がデータ処理に要したコストに基づき、前記記憶手段に記憶されている自装置に関する前記パフォーマンスデータを変更し、前記送信手段が委任先のデータ処理装置に委任データを送信した後に当該委任データに対する応答として前記受信手段が結果データを受信するまでに前記通信ネットワーク及び前記複数のデータ処理装置の少なくとも１つが要したコストに基づき、前記記憶手段に記憶されている当該委任先のデータ処理装置に関する前記パフォーマンスデータを変更する変更手段
を備える請求項１に記載のデータ処理装置。
【請求項３】
前記決定手段は、或る種類のデータ処理に関し、前記パフォーマンスデータに基づき、当該或る種類のデータ処理が受任可能であるか否かが不明なデータ処理装置の有無を判定し、当該或る種類のデータ処理が受任可能であるか否かが不明なデータ処理装置が有る場合、当該或る種類のデータ処理が受任可能であるか否かが不明なデータ処理装置を当該或る種類のデータ処理の委任先のデータ処理装置として決定する
請求項１または２に記載のデータ処理装置。
【請求項４】
前記受信手段は、前記通信ネットワークを介してデータ通信が可能なデータ処理装置の各々から、当該データ処理装置が前記通信ネットワークを介して通信が可能なデータ処理装置の各々に関する前記パフォーマンスデータを受信し、
前記記憶手段は、前記受信手段が受信した前記パフォーマンスデータを記憶する
請求項１乃至３のいずれか１項に記載のデータ処理装置。
【請求項５】
通信ネットワークに接続された複数のデータ処理装置の各々が、自装置を含む前記複数のデータ処理装置の各々に関し、当該データ処理装置が受任可能な１以上のデータ処理の種類と、当該データ処理装置が利用可能な１以上のデータの種類とを示し、さらに、当該１以上のデータ処理の種類と当該１以上のデータの種類との組み合わせのうち１以上の各々に関し、当該データ処理装置が当該組み合わせに係る種類のデータを用いて当該組み合わせに係る種類のデータ処理を実行した際に当該データ処理に要するコストを示す、パフォーマンスデータを記憶するステップと、
前記複数のデータ処理装置の中のいずれかのデータ処理装置が、データ処理の委任元の装置から、委任される１以上のデータ処理の種類と、当該１以上のデータ処理の各々において用いられる１以上のデータの種類とを示す委任データを受信するステップと、
前記委任データを受信したデータ処理装置が、前記委任データにより委任されるデータ処理が分割できる場合、前記委任データにより委任されるデータ処理を複数のデータ処理に分割するステップと、
前記委任データを受信したデータ処理装置が、前記委任データにより委任されるデータ処理が分割できない場合は当該データ処理に関し、また、前記委任データにより委任されるデータ処理が分割できる場合は前記分割するステップにおいて分割した複数のデータ処理の各々に関し、前記記憶するステップにおいて記憶している前記パフォーマンスデータに基づき、当該データ処理を自装置で実行するか自装置以外のデータ処理装置に委任するかを決定し、当該データ処理を他のデータ処理装置に委任すると決定した場合、当該データ処理の委任先のデータ処理装置を決定するステップと、
前記決定するステップにおいて自装置で実行すると決定したデータ処理が有れば当該データ処理を実行するステップと、
前記決定するステップにおいて自装置以外のデータ処理装置に委任すると決定したデータ処理が有れば当該データ処理の委任を示す委任データを決定した委任先のデータ処理装置に送信するステップと、
前記委任データを送信するステップにおいて送信した委任データに対する応答として委任先のデータ処理装置から送信されてくるデータ処理の結果を示す結果データを受信するステップと、
前記委任データを受信するステップにおいて受信した委任データに対する応答として、前記実行するステップにおいて実行したデータ処理の結果を示す結果データおよび前記結果データを受信するステップにおいて委任先のデータ処理装置から受信した結果データの少なくとも一方を、前記委任元の装置に送信するステップと
を備えるデータ処理方法。
【請求項６】
通信ネットワークを介して他の装置との間でデータ通信を行う通信手段を備えるコンピュータに、
自装置および前記通信ネットワークに接続された複数のデータ処理装置の各々に関し、当該装置が受任可能な１以上のデータ処理の種類と、当該装置が利用可能な１以上のデータの種類とを示し、さらに、当該１以上のデータ処理の種類と当該１以上のデータの種類との組み合わせのうち１以上の各々に関し、当該装置が当該組み合わせに係る種類のデータを用いて当該組み合わせに係る種類のデータ処理を実行した際に当該データ処理に要するコストを示す、パフォーマンスデータを記憶する処理と、
データ処理の委任元の装置から、委任される１以上のデータ処理の種類と、当該１以上のデータ処理の各々において用いられる１以上のデータの種類とを示す委任データを受信する処理と、
前記委任データにより委任されるデータ処理が分割できる場合、前記委任データにより委任されるデータ処理を複数のデータ処理に分割する処理と、
前記委任データにより委任されるデータ処理が分割できない場合は当該データ処理に関し、また、前記委任データにより委任されるデータ処理が分割できる場合は前記分割する処理において分割した複数のデータ処理の各々に関し、前記パフォーマンスデータに基づき、当該データ処理を自装置で実行するか前記複数のデータ処理装置のいずれかに委任するかを決定し、当該データ処理を前記複数のデータ処理装置のいずれかに委任すると決定した場合、当該データ処理の委任先のデータ処理装置を決定する処理と、
前記決定する処理において自装置で実行すると決定したデータ処理が有れば当該データ処理を実行する処理と、
前記決定する処理において前記複数のデータ処理装置のいずれかに委任すると決定したデータ処理が有れば当該データ処理の委任を示す委任データを前記決定する処理において決定した委任先のデータ処理装置に送信する処理と、
前記委任データを送信する処理において送信した委任データに対する応答として委任先のデータ処理装置から送信されてくるデータ処理の結果を示す結果データを受信する処理と、
前記委任データを受信する処理において受信した委任データに対する応答として、前記実行する処理において実行したデータ処理の結果を示す結果データおよび前記結果データを受信する処理において委任先のデータ処理装置から受信した結果データの少なくとも一方を、前記委任元の装置に送信する処理と
を実行させるためのプログラム。
【請求項７】
通信ネットワークを介して他の装置との間でデータ通信を行う通信手段を備えるコンピュータに、
自装置および前記通信ネットワークに接続された複数のデータ処理装置の各々に関し、当該装置が受任可能な１以上のデータ処理の種類と、当該装置が利用可能な１以上のデータの種類とを示し、さらに、当該１以上のデータ処理の種類と当該１以上のデータの種類との組み合わせのうち１以上の各々に関し、当該装置が当該組み合わせに係る種類のデータを用いて当該組み合わせに係る種類のデータ処理を実行した際に当該データ処理に要するコストを示す、パフォーマンスデータを記憶する処理と、
データ処理の委任元の装置から、委任される１以上のデータ処理の種類と、当該１以上のデータ処理の各々において用いられる１以上のデータの種類とを示す委任データを受信する処理と、
前記委任データにより委任されるデータ処理が分割できる場合、前記委任データにより委任されるデータ処理を複数のデータ処理に分割する処理と、
前記委任データにより委任されるデータ処理が分割できない場合は当該データ処理に関し、また、前記委任データにより委任されるデータ処理が分割できる場合は前記分割する処理において分割した複数のデータ処理の各々に関し、前記パフォーマンスデータに基づき、当該データ処理を自装置で実行するか前記複数のデータ処理装置のいずれかに委任するかを決定し、当該データ処理を前記複数のデータ処理装置のいずれかに委任すると決定した場合、当該データ処理の委任先のデータ処理装置を決定する処理と、
前記決定する処理において自装置で実行すると決定したデータ処理が有れば当該データ処理を実行する処理と、
前記決定する処理において前記複数のデータ処理装置のいずれかに委任すると決定したデータ処理が有れば当該データ処理の委任を示す委任データを前記決定する処理において決定した委任先のデータ処理装置に送信する処理と、
前記委任データを送信する処理において送信した委任データに対する応答として委任先のデータ処理装置から送信されてくるデータ処理の結果を示す結果データを受信する処理と、
前記委任データを受信する処理において受信した委任データに対する応答として、前記実行する処理において実行したデータ処理の結果を示す結果データおよび前記結果データを受信する処理において委任先のデータ処理装置から受信した結果データの少なくとも一方を、前記委任元の装置に送信する処理と
を実行させるためのプログラムを前記コンピュータにより読み取り可能かつ持続的に記憶する記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のデータ処理装置を使って大量のデータを分散処理する技術に関し、より具体的には、当該分散処理における処理の分担を簡単に且つ効率良く決定する技術に関する。
【背景技術】
【０００２】
今般、インターネットに代表される通信ネットワークが普及している。通信ネットワークには多数のセンサーが接続されている。それらのセンサーにより得られる多数のデータを収集、分析して、その結果を活用することが行われている。
【０００３】
多数のセンサーから多数のデータを収集しようとする場合、通常、センサーは計測等により生成したデータに対し処理を加えずに、データの収集元のデータ処理装置（以下、「中央データ処理装置」という）に送信する。中央データ処理装置は、センサーから送信されてくる未処理のデータに対する処理を集中的に行う。
【０００４】
上記のように中央データ処理装置が集中的にデータの処理を行う方式（以下、「集中処理方式」という）には、多数のセンサーの構成を簡単にすることができる、という利点がある。一方、集中処理方式には、中央データ処理装置にデータ処理の負荷が集中する、という欠点がある。また、集中処理方式には、センサーにより生成されるデータが画像（静止画または動画）を表すデータのようにデータ量の大きいデータである場合、通信トラフィックの増大および集中を招く、という欠点もある。
【０００５】
上述した集中処理方式の欠点を解消する方式として、データ処理を複数のデータ処理装置に分散させる方式（以下、「分散処理方式」という）が実用化されている。図７は、広く採用されている分散処理方式におけるデータ処理装置の構成を模式的に示した図である。広く採用されている分散処理方式においては、１つの主データ処理装置２０１がデータ処理を分割し、複数の従データ処理装置（図７における従データ処理装置２０２〜２０５）に分割したデータ処理の割り当てを行う。この分散処理方式においては、データ処理が複数の従データ処理装置（図７における従データ処理装置２０２〜２０５）の各々により実行されるため、データ処理の負荷集中が生じない。
【０００６】
図７に示した構成の分散処理方式においては、主データ処理装置２０１がデータ処理の割り当てを集中管理する。すなわち、データ処理の内容、収集するデータや従データ処理装置の通信ネットワークにおける位置、従データ処理装置の稼働状況（データ処理の負荷等）等を主データ処理装置２０１が常に監視し、それらが変化する毎にデータ処理の割り当てを変更する。以下、図７に示した構成の分散処理方式を「中央管理型分散処理方式」という。中央管理型分散処理方式には、複数の従データ処理装置により行われるデータ処理を最適化しやすい、という利点がある。
【０００７】
一方、中央管理型分散処理方式には、データ処理の内容、収集するデータや従データ処理装置の通信ネットワークにおける位置、従データ処理装置の稼働状況（データ処理の負荷等）等が頻繁に変化する場合、データ処理の割り当てに伴うデータ処理が複雑となり、主データ処理装置２０１に高いデータ処理能力が求められる、という欠点がある。すなわち、データの所在数や従データ処理装置の数等の増加し、データ処理の割り当て管理に要するデータ処理の負荷が主データ処理装置２０１のデータ処理能力を超えると、システム全体が機能不全に陥る。また、主データ処理装置２０１と通信ネットワークとの間のデータ通信に不具合が生じた場合も、システム全体が機能不全に陥る。
【０００８】
上記の中央管理型分散処理方式の欠点、すなわち、主データ処理装置２０１におけるデータ処理の割り当て管理の負荷を軽減する方法を提案する特許文献として、例えば特許文献１がある。特許文献１には、データ処理の割り当て管理を行う主データ処理装置を設けず、データ処理の依頼元のデータ処理装置が通信ネットワークにおける周囲のデータ処理装置に対しデータ処理の依頼をブロードキャストすることにより、データ処理を分担するデータ処理装置を決定する方式が提案されている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開平１０−７４１４６号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
特許文献１に記載の方式によれば、データ処理の分担が簡易に決定される。しかしながら、特許文献１に記載の方式においては、データ処理全体の効率化が図られない。すなわち、特許文献１に記載の方式においては、必ずしもデータ処理に要するコスト（時間、データトラフィック、データ処理装置における処理負荷、データ通信料金等）が小さいデータ処理装置がデータ処理を分担するとは限らない。なお、本願において、データ処理に要するコストとは、データ処理に要する時間またはリソースの占有量を意味する。例えば、通信ネットワークの通信帯域やデータ処理装置におけるデータ処理能力はデータ処理に要するリソースの例であり、データ処理に要するデータトラフィック、データ処理装置の処理負荷等はデータ処理に要するコストの例である。
【００１１】
上記の事情に鑑み、本発明は、データ処理の集中を排した分散処理方式のデータ処理システムにおいて、複数のデータ処理装置により行われるデータ処理全体の効率化を実現する手段を提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明は、通信ネットワークに接続された自装置を含む複数のデータ処理装置の各々に関し、当該データ処理装置が受任可能な１以上のデータ処理の種類と、当該データ処理装置が利用可能な１以上のデータの種類とを示し、さらに、当該１以上のデータ処理の種類と当該１以上のデータの種類との組み合わせのうち１以上の各々に関し、当該データ処理装置が当該組み合わせに係る種類のデータを用いて当該組み合わせに係る種類のデータ処理を実行した際に当該データ処理に要するコストを示す、パフォーマンスデータを記憶する記憶手段と、１以上の種類のデータ処理を実行可能な処理手段と、データ処理の委任元のデータ処理装置から、委任される１以上のデータ処理の種類と、当該１以上のデータ処理の各々において用いられる１以上のデータの種類とを示す委任データを受信する受信手段と、前記受信手段が受信した前記委任データにより委任されるデータ処理が分割できる場合、前記委任データにより委任されるデータ処理を複数のデータ処理に分割する分割手段と、前記委任データにより委任されるデータ処理が分割できない場合は当該データ処理に関し、また、前記委任データにより委任されるデータ処理が分割できる場合は前記分割手段が分割した複数のデータ処理の各々に関し、前記パフォーマンスデータに基づき、当該データ処理を自装置で実行するか自装置以外のデータ処理装置に委任するかを決定し、当該データ処理を他のデータ処理装置に委任すると決定した場合、当該データ処理の委任先のデータ処理装置を決定する決定手段と、前記決定手段が自装置以外のデータ処理装置に委任すると決定したデータ処理に関し、当該データ処理の委任を示す委任データを、前記決定手段が決定した委任先のデータ処理装置に送信する送信手段とを備え、前記処理手段は、前記決定手段が自装置で実行すると決定したデータ処理を実行し、前記受信手段は、前記送信手段が送信した委任データに対する応答として委任先のデータ処理装置から送信されてくるデータ処理の結果を示す結果データを受信し、前記送信手段は、前記受信手段が受信した委任データに対する応答として、前記処理手段が実行したデータ処理の結果を示す結果データおよび前記受信手段が委任先のデータ処理装置から受信した結果データの少なくとも一方を、委任元のデータ処理装置に送信するデータ処理装置を第１の態様として提案する。
【００１３】
また、上記の第１の態様において、前記処理手段がデータ処理に要したコストに基づき、前記記憶手段に記憶されている自装置に関する前記パフォーマンスデータを変更し、前記送信手段が委任先のデータ処理装置に委任データを送信した後に当該委任データに対する応答として前記受信手段が結果データを受信するまでに前記通信ネットワーク及び前記複数のデータ処理装置の少なくとも１つが要したコストに基づき、前記記憶手段に記憶されている当該委任先のデータ処理装置に関する前記パフォーマンスデータを変更する変更手段を備える、という構成を第２の態様として提案する。
【００１４】
また、上記の第１または第２の態様において、前記決定手段は、或る種類のデータ処理に関し、前記パフォーマンスデータに基づき、当該或る種類のデータ処理が受任可能であるか否かが不明なデータ処理装置の有無を判定し、当該或る種類のデータ処理が受任可能であるか否かが不明なデータ処理装置が有る場合、当該或る種類のデータ処理が受任可能であるか否かが不明なデータ処理装置を当該或る種類のデータ処理の委任先のデータ処理装置として決定する、という構成を第３の態様として提案する。
【００１５】
また、上記の第１乃至第３のいずれかの態様において、前記受信手段は、前記通信ネットワークを介してデータ通信が可能なデータ処理装置の各々から、当該データ処理装置が前記通信ネットワークを介して通信が可能なデータ処理装置の各々に関する前記パフォーマンスデータを受信し、前記記憶手段は、前記受信手段が受信した前記パフォーマンスデータを記憶する、という構成を第４の態様として提案する。
【００１６】
また、本発明は、通信ネットワークに接続された複数のデータ処理装置の各々が、自装置を含む前記複数のデータ処理装置の各々に関し、当該データ処理装置が受任可能な１以上のデータ処理の種類と、当該データ処理装置が利用可能な１以上のデータの種類とを示し、さらに、当該１以上のデータ処理の種類と当該１以上のデータの種類との組み合わせのうち１以上の各々に関し、当該データ処理装置が当該組み合わせに係る種類のデータを用いて当該組み合わせに係る種類のデータ処理を実行した際に当該データ処理に要するコストを示す、パフォーマンスデータを記憶するステップと、前記複数のデータ処理装置の中のいずれかのデータ処理装置が、データ処理の委任元の装置から、委任される１以上のデータ処理の種類と、当該１以上のデータ処理の各々において用いられる１以上のデータの種類とを示す委任データを受信するステップと、前記委任データを受信したデータ処理装置が、前記委任データにより委任されるデータ処理が分割できる場合、前記委任データにより委任されるデータ処理を複数のデータ処理に分割するステップと、前記委任データを受信したデータ処理装置が、前記委任データにより委任されるデータ処理が分割できない場合は当該データ処理に関し、また、前記委任データにより委任されるデータ処理が分割できる場合は前記分割するステップにおいて分割した複数のデータ処理の各々に関し、前記記憶するステップにおいて記憶している前記パフォーマンスデータに基づき、当該データ処理を自装置で実行するか自装置以外のデータ処理装置に委任するかを決定し、当該データ処理を他のデータ処理装置に委任すると決定した場合、当該データ処理の委任先のデータ処理装置を決定するステップと、前記決定するステップにおいて自装置で実行すると決定したデータ処理が有れば当該データ処理を実行するステップと、前記決定するステップにおいて自装置以外のデータ処理装置に委任すると決定したデータ処理が有れば当該データ処理の委任を示す委任データを決定した委任先のデータ処理装置に送信するステップと、前記委任データを送信するステップにおいて送信した委任データに対する応答として委任先のデータ処理装置から送信されてくるデータ処理の結果を示す結果データを受信するステップと、前記委任データを受信するステップにおいて受信した委任データに対する応答として、前記実行するステップにおいて実行したデータ処理の結果を示す結果データおよび前記結果データを受信するステップにおいて委任先のデータ処理装置から受信した結果データの少なくとも一方を、前記委任元の装置に送信するステップとを備えるデータ処理方法を第５の態様として提案する。
【００１７】
また、本発明は、通信ネットワークを介して他の装置との間でデータ通信を行う通信手段を備えるコンピュータに、自装置および前記通信ネットワークに接続された複数のデータ処理装置の各々に関し、当該装置が受任可能な１以上のデータ処理の種類と、当該装置が利用可能な１以上のデータの種類とを示し、さらに、当該１以上のデータ処理の種類と当該１以上のデータの種類との組み合わせのうち１以上の各々に関し、当該装置が当該組み合わせに係る種類のデータを用いて当該組み合わせに係る種類のデータ処理を実行した際に当該データ処理に要するコストを示す、パフォーマンスデータを記憶する処理と、データ処理の委任元の装置から、委任される１以上のデータ処理の種類と、当該１以上のデータ処理の各々において用いられる１以上のデータの種類とを示す委任データを受信する処理と、前記委任データにより委任されるデータ処理が分割できる場合、前記委任データにより委任されるデータ処理を複数のデータ処理に分割する処理と、前記委任データにより委任されるデータ処理が分割できない場合は当該データ処理に関し、また、前記委任データにより委任されるデータ処理が分割できる場合は前記分割する処理において分割した複数のデータ処理の各々に関し、前記パフォーマンスデータに基づき、当該データ処理を自装置で実行するか前記複数のデータ処理装置のいずれかに委任するかを決定し、当該データ処理を前記複数のデータ処理装置のいずれかに委任すると決定した場合、当該データ処理の委任先のデータ処理装置を決定する処理と、前記決定する処理において自装置で実行すると決定したデータ処理が有れば当該データ処理を実行する処理と、前記決定する処理において前記複数のデータ処理装置のいずれかに委任すると決定したデータ処理が有れば当該データ処理の委任を示す委任データを前記決定する処理において決定した委任先のデータ処理装置に送信する処理と、前記委任データを送信する処理において送信した委任データに対する応答として委任先のデータ処理装置から送信されてくるデータ処理の結果を示す結果データを受信する処理と、前記委任データを受信する処理において受信した委任データに対する応答として、前記実行する処理において実行したデータ処理の結果を示す結果データおよび前記結果データを受信する処理において委任先のデータ処理装置から受信した結果データの少なくとも一方を、前記委任元の装置に送信する処理とを実行させるためのプログラムを第６の態様として提案する。
【００１８】
また、本発明は、通信ネットワークを介して他の装置との間でデータ通信を行う通信手段を備えるコンピュータに、自装置および前記通信ネットワークに接続された複数のデータ処理装置の各々に関し、当該装置が受任可能な１以上のデータ処理の種類と、当該装置が利用可能な１以上のデータの種類とを示し、さらに、当該１以上のデータ処理の種類と当該１以上のデータの種類との組み合わせのうち１以上の各々に関し、当該装置が当該組み合わせに係る種類のデータを用いて当該組み合わせに係る種類のデータ処理を実行した際に当該データ処理に要するコストを示す、パフォーマンスデータを記憶する処理と、データ処理の委任元の装置から、委任される１以上のデータ処理の種類と、当該１以上のデータ処理の各々において用いられる１以上のデータの種類とを示す委任データを受信する処理と、前記委任データにより委任されるデータ処理が分割できる場合、前記委任データにより委任されるデータ処理を複数のデータ処理に分割する処理と、前記委任データにより委任されるデータ処理が分割できない場合は当該データ処理に関し、また、前記委任データにより委任されるデータ処理が分割できる場合は前記分割する処理において分割した複数のデータ処理の各々に関し、前記パフォーマンスデータに基づき、当該データ処理を自装置で実行するか前記複数のデータ処理装置のいずれかに委任するかを決定し、当該データ処理を前記複数のデータ処理装置のいずれかに委任すると決定した場合、当該データ処理の委任先のデータ処理装置を決定する処理と、前記決定する処理において自装置で実行すると決定したデータ処理が有れば当該データ処理を実行する処理と、前記決定する処理において前記複数のデータ処理装置のいずれかに委任すると決定したデータ処理が有れば当該データ処理の委任を示す委任データを前記決定する処理において決定した委任先のデータ処理装置に送信する処理と、前記委任データを送信する処理において送信した委任データに対する応答として委任先のデータ処理装置から送信されてくるデータ処理の結果を示す結果データを受信する処理と、前記委任データを受信する処理において受信した委任データに対する応答として、前記実行する処理において実行したデータ処理の結果を示す結果データおよび前記結果データを受信する処理において委任先のデータ処理装置から受信した結果データの少なくとも一方を、前記委任元の装置に送信する処理とを実行させるためのプログラムを前記コンピュータにより読み取り可能かつ持続的に記憶する記録媒体を第７の態様として提案する。
【発明の効果】
【００１９】
本発明によれば、委任されたデータ処理が複数のデータ処理に分解され、複数のデータ処理装置の各々により分担されて実行される。その際、データ処理を委任されたデータ処理装置は、委任されたデータ処理に要するデータを利用可能であり、かつ、委任された種類のデータ処理をより低コストで実行できると推定されるデータ処理装置へ委任されたデータ処理の全てまたは一部を委任することができる。その結果、データ処理の分担を集中管理するデータ処理装置を要することなく、データ処理が複数のデータ処理装置により分散して実行されるとともに、データ処理全体の効率化が図られる。
【図面の簡単な説明】
【００２０】
【図１】一実施形態にかかるデータ処理システムの構成の一例を示した図である。
【図２】一実施形態にかかるデータ処理システムを構成するデータ処理装置の機能構成を示した図である。
【図３】一実施形態にかかるデータ処理装置において用いられるパフォーマンスデータの構成を例示した図である。
【図４】一実施形態にかかるデータ処理装置がデータ処理を実行すべきデータ処理装置を決定する方法を説明するための図である。
【図５】一実施形態にかかるデータ処理装置がデータ処理を実行すべきデータ処理装置を決定する方法を説明するための図である。
【図６Ａ】一実施形態にかかるデータ処理装置がデータ処理を実行すべきデータ処理装置を決定するための処理フローを例示した図である。
【図６Ｂ】一実施形態にかかるデータ処理装置がデータ処理を実行すべきデータ処理装置を決定するための処理フローを例示した図である。
【図７】従来技術にかかる分散処理方式におけるデータ処理装置の構成を模式的に示した図である。
【発明を実施するための形態】
【００２１】
［実施形態］
以下に、本発明の一実施形態に係るデータ処理システム１を説明する。データ処理システム１は、通信ネットワークに接続された複数のデータ処理装置を備え、それらの複数のデータ処理装置のいずれかが委任元の装置から、取得される位置が限定されているデータ（以下、「位置依存データ」という）を用いたデータ処理の委任を受けた場合、当該委任されたデータ処理を複数のデータ処理装置で分担して実行する。データ処理システム１が備える複数のデータ処理装置は各々、自律的にデータ処理の分担を決定する。従って、データ処理システム１は、データ処理の分担を集中管理する仕組みを持たない。
【００２２】
図１は、データ処理システム１の構成の一例を示した図である。図１に例示のデータ処理システム１は、データ処理装置１１０、１２０、１３０、１４０、１５０、１６０の計６つのデータ処理装置を備える。データ処理システム１を構成するデータ処理装置の数は限定されない。また、データ処理システム１を構成するデータ処理装置は任意のタイミングでデータ処理システム１から離脱できる。また、新たなデータ処理装置が任意のタイミングでデータ処理システム１に参加できる。従って、データ処理システム１を構成するデータ処理装置の数は、通常、流動的に変化する。
【００２３】
データ処理システム１を構成する複数のデータ処理装置のいずれかが、データ処理の委任元の装置（例えば、エンドユーザが使用する端末装置等）から、位置依存データを用いたデータ処理の委任を受けると、委任を受け取ったデータ処理装置は、委任されたデータ処理を複数のデータ処理に分割し、分割した複数のデータ処理の各々に関し、そのデータ処理を自装置で処理すべきか、他のデータ処理装置に委任すべきか、また、他のデータ処理装置に委任すべきであればどのデータ処理装置に委任すべきか、を自装置および自装置以外のデータ処理装置のパフォーマンスに基づき決定する。ただし、本願において、データ処理装置のパフォーマンスとは、委任を受けることができるデータ処理の種類、委任を受けることができるデータ処理の種類の各々に応じたコストの大小を示す指標、および、利用可能な位置依存データの種類を意味する。
【００２４】
データ処理の委任を受けたデータ処理装置は、自装置で処理すべきである、と決定したデータ処理を自装置で実行する。また、データ処理の委任を受けたデータ処理装置は、自装置以外のデータ処理装置へ委任すべきである、と決定したデータ処理を委任先として決定したデータ処理装置に委任する。データ処理の委任を行った場合、委任を行ったデータ処理装置は、委任先のデータ処理装置から、委任したデータ処理の結果を示す結果データを受信する。委任を行ったデータ処理装置は、自装置で実行したデータ処理の結果を示す結果データ、および委任先のデータ処理装置から受信した結果データの少なくとも一方を、委任元の装置へ送信する。
【００２５】
上述した、委任元の装置からデータ処理の委任を受けたデータ処理装置が行う処理は、当該データ処理装置からデータ処理の委任を受けたデータ処理装置においても同様に実行される。データ処理システム１においては、委任元の装置または自装置以外のデータ処理装置からデータ処理の委任を受けると、委任されたデータ処理の分割と、分割したデータ処理の各々の自装置における実行または他のデータ処理装置への委任と、委任したデータ処理の結果を示す結果データの委任元の装置への送信とが再帰的に行われる。その結果、データ処理の分担を管理するデータ処理装置を要することなく、データ処理が全体として効率的に実行されるように、複数のデータ処理装置の間で分担される。
【００２６】
データ処理の委任を受けたデータ処理装置が分割した複数のデータ処理の各々を行うデータ処理装置を決定する際に用いられる各データ処理装置のパフォーマンスを示すデータ（以下、「パフォーマンスデータ」という）は、過去に実行されたデータ処理において要したコストおよび過去に実行されたデータ処理において利用された位置依存データの種類に基づき生成されたデータであり、各データ処理装置に記憶されている。各データ処理装置は、新たなデータ処理の実行、または新たなデータ処理の委任およびその結果の受領を行う毎に、そのデータ処理に要したコストに基づき、自装置に記憶しているパフォーマンスデータを更新する。従って、データ処理システム１は、通信ネットワークにおける通信状態の変化、データ処理システム１に参加しているデータ処理装置の増減、通信ネットワークやデータ処理装置における障害の発生等にも柔軟に対応し、効率的にデータ処理を行うことができる。
【００２７】
なお、データ処理システム１を構成するデータ処理装置の各々が行う処理は、主に、上述したように、委任されたデータ処理の分割と、分割したデータ処理の各々の自装置における実行または他のデータ処理装置への委任と、委任したデータ処理の結果を示す結果データの収集および委任元の装置への送信、といった比較的単純な処理である。このように、データ処理装置の各々が比較的単純な処理は行うことにより、データ処理システム１が全体としてデータ処理を効率的に行う点にデータ処理システム１の特徴の一つがある。
【００２８】
データ処理システム１を構成するデータ処理装置の各々は、通信ネットワークを介して他の装置との間でデータ通信を行う通信手段を備える一般的なコンピュータである。すなわち、データ処理システム１を構成するデータ処理装置の各々は、少なくとも、プログラムを示すプログラムデータを含む各種のデータを記憶するメモリと、メモリに記憶されているプログラムデータが示すプログラムに従い各種のデータ処理を行うプロセッサと、通信ネットワークを介して他の装置との間でデータ通信を行うためのインタフェースである通信インタフェースを備える。
【００２９】
また、データ処理システム１を構成するデータ処理装置の少なくとも一部は、位置依存データを生成するセンサーから当該センサーが生成した位置依存データを受け取るためのインタフェースである入力インタフェースを備える。なお、通信ネットワークに接続されているセンサーが生成する位置依存データを受け取るデータ処理装置においては、通信インタフェースが入力インタフェースを兼ねる。
【００３０】
図１を用いて、データ処理システム１の動作を説明する。図１において、矢印は通信ネットワークを介してデータ処理装置の間で送受信されるデータの流れを示している。
【００３１】
図１に例示のケースにおいては、まず、データ処理装置１１０が図示せぬ委任元の装置からデータ処理の委任を示す委任データ１１４を受信する。委任データ１１４は、例として、Ｆ１（Ｆ２（Ｆ４（Ｄ１），Ｆ５（Ｄ２）），Ｆ３（Ｆ６（Ｄ３）））で表されるデータ処理の委任を示す。なお、関数Ｆ＃（）は＃で識別される種類のデータ処理を示し、データＤ＃は＃で識別される種類の位置依存データを示す。なお、委任されるデータ処理には、取得される位置が限定されないデータ（例えば、現在時刻を示す時刻データ等。以下、「位置非依存データ」という）を用いたデータ処理が含まれてもよい。以下、データｄ＃は、＃で識別される種類の位置非依存データを示す。
【００３２】
データ処理装置１１０は、委任データ１１４が示すデータ処理を、データ処理Ｆ１（）と、データ処理Ｆ２（Ｆ４（Ｄ１），Ｆ５（Ｄ２））と、データ処理Ｆ３（Ｆ６（Ｄ３））とに分割する。なお、データ処理Ｆ２（Ｆ４（Ｄ１），Ｆ５（Ｄ２））とデータ処理Ｆ３（Ｆ６（Ｄ３））は各々、データ処理Ｆ１（）の変数を生成するためのデータ処理である。
【００３３】
続いて、データ処理装置１１０は、データ処理装置１１０に記憶されているパフォーマンスデータに基づく決定方法（後述）に従い、データ処理Ｆ１（）は自装置（データ処理装置１１０）により実行すべきデータ処理であると決定し、データ処理Ｆ２（Ｆ４（Ｄ１），Ｆ５（Ｄ２））はデータ処理装置１２０に委任すべきデータ処理であると決定し、データ処理Ｆ３（Ｆ６（Ｄ３））はデータ処理装置１３０に委任すべきデータ処理であると決定する。データ処理装置１１０は、この決定に従い、データ処理装置１２０に対し、データ処理Ｆ２（Ｆ４（Ｄ１），Ｆ５（Ｄ２））の委任を示す委任データ１１６を送信し、データ処理装置１３０に対し、データ処理Ｆ３（Ｆ６（Ｄ３））の委任を示す委任データ１１８を送信する。
【００３４】
データ処理装置１２０は、委任データ１１６が示すデータ処理Ｆ２（Ｆ４（Ｄ１），Ｆ５（Ｄ２））をデータ処理Ｆ２（）と、データ処理Ｆ４（Ｄ１）と、データ処理Ｆ５（Ｄ２）とに分割する。続いて、データ処理装置１２０は、データ処理装置１２０に記憶されているパフォーマンスデータに基づく決定方法（後述）に従い、データ処理Ｆ２（）は自装置（データ処理装置１２０）により実行すべきデータ処理であると決定し、データ処理Ｆ４（Ｄ１）はデータ処理装置１４０に委任すべきデータ処理であると決定し、データ処理Ｆ５（Ｄ２）はデータ処理装置１５０に委任すべきデータ処理であると決定する。データ処理装置１２０は、この決定に従い、データ処理装置１４０に対し、データ処理Ｆ４（Ｄ１）の委任を示す委任データ１２６を送信し、データ処理装置１５０に対し、データ処理Ｆ５（Ｄ２）の委任を示す委任データ１２８を送信する。
【００３５】
データ処理装置１４０は、委任データ１２６が示すデータ処理Ｆ４（Ｄ１）を、それ以上の分割ができない処理であると判定する。そこで、データ処理装置１４０はデータ処理の分割は行わず、このデータ処理Ｆ４（Ｄ１）を、データ処理装置１４０に記憶されているパフォーマンスデータに基づく決定方法（後述）に従い、自装置（データ処理装置１４０）により実行すべきデータ処理であると決定する。そこで、データ処理装置１４０はデータ処理Ｆ４（Ｄ１）を実行し、データ処理の結果Ｆ４（Ｄ１）を示す結果データ１２７を、委任データ１２６に対する応答として、データ処理装置１２０に送信する。
【００３６】
データ処理装置１５０は、委任データ１２８が示すデータ処理Ｆ５（Ｄ２）を、それ以上の分割ができない処理であると判定する。そこで、データ処理装置１５０はデータ処理の分割は行わず、このデータ処理Ｆ５（Ｄ２）を、データ処理装置１５０に記憶されているパフォーマンスデータに基づく決定方法（後述）に従い、自装置（データ処理装置１５０）により実行すべきデータ処理であると決定する。そこで、データ処理装置１５０はデータ処理Ｆ５（Ｄ２）を実行し、データ処理の結果Ｆ５（Ｄ２）を示す結果データ１２９を、委任データ１２８に対する応答として、データ処理装置１２０に送信する。
【００３７】
データ処理装置１２０は、結果データ１２７が示す結果Ｆ４（Ｄ１）と、結果データ１２９が示す結果Ｆ５（Ｄ２）を用いて、自装置が実行すると決定したデータ処理Ｆ２（）（すなわち、データ処理Ｆ２（Ｆ４（Ｄ１），Ｆ５（Ｄ２）））を実行し、データ処理の結果Ｆ２（Ｆ４（Ｄ１），Ｆ５（Ｄ２））を示す結果データ１１７を、委任データ１１６に対する応答として、データ処理装置１１０に送信する。
【００３８】
一方、データ処理装置１３０は、データ処理装置１１０から委任データ１１８を受信すると、委任データ１１８が示すデータ処理Ｆ３（Ｆ６（Ｄ３））をデータ処理Ｆ３（）と、データ処理Ｆ６（Ｄ３）とに分割する。続いて、データ処理装置１３０は、データ処理装置１３０に記憶されているパフォーマンスデータに基づく決定方法（後述）に従い、データ処理Ｆ３（）は自装置（データ処理装置１３０）により実行すべきデータ処理であると決定し、データ処理Ｆ６（Ｄ３）はデータ処理装置１６０に委任すべきデータ処理であると決定する。データ処理装置１３０は、この決定に従い、データ処理装置１６０に対し、データ処理Ｆ６（Ｄ３）の委任を示す委任データ１３６を送信する。
【００３９】
データ処理装置１６０は、委任データ１３６が示すデータ処理Ｆ６（Ｄ３）を、それ以上の分割ができない処理であると判定する。そこで、データ処理装置１６０はデータ処理の分割は行わず、このデータ処理Ｆ６（Ｄ３）を、データ処理装置１６０に記憶されているパフォーマンスデータに基づく決定方法（後述）に従い、自装置（データ処理装置１６０）により実行すべきデータ処理であると決定する。そこで、データ処理装置１６０はデータ処理Ｆ６（Ｄ３）を実行し、データ処理の結果Ｆ６（Ｄ３）を示す結果データ１３７を、委任データ１３６に対する応答として、データ処理装置１３０に送信する。
【００４０】
データ処理装置１３０は、結果データ１３７が示す結果Ｆ６（Ｄ３）を用いて、自装置が実行すると決定したデータ処理Ｆ３（）（すなわち、Ｆ３（Ｆ６（Ｄ３）））を実行し、データ処理の結果Ｆ３（Ｆ６（Ｄ３））を示す結果データ１１９を、委任データ１１８に対する応答として、データ処理装置１１０に送信する。
【００４１】
データ処理装置１１０は、結果データ１１７が示す結果Ｆ２（Ｆ４（Ｄ１），Ｆ５（Ｄ２））と、結果データ１１９が示す結果Ｆ３（Ｆ６（Ｄ３））を用いて、自装置が実行すると決定したデータ処理Ｆ１（）（すなわち、Ｆ１（Ｆ２（Ｆ４（Ｄ１），Ｆ５（Ｄ２）），Ｆ３（Ｆ６（Ｄ３））））を実行し、データ処理の結果Ｆ１（Ｆ２（Ｆ４（Ｄ１），Ｆ５（Ｄ２）），Ｆ３（Ｆ６（Ｄ３）））を示す結果データ１１５を、委任データ１１４に対する応答として、図示せぬ委任元の装置に送信する。
【００４２】
以上が、データ処理システム１のデータ処理システム１の動作の説明である。
【００４３】
図２は、データ処理システム１を構成するデータ処理装置の機能構成を示した図である。すなわち、上述した通信ネットワークを介して他の装置との間でデータ通信を行う通信手段を備える一般的なコンピュータは、メモリに記憶されている本実施形態に係るプログラムに従うデータ処理を実行することにより、図２に示す構成部を備える装置として機能する。
【００４４】
データ処理システム１を構成するデータ処理装置の各々は、各種データを記憶する記憶手段３０１と、委任元の装置から委任データを受信し、また、委任先のデータ処理装置から結果データを受信する受信手段３０２と、委任データが示すデータ処理を複数のデータ処理に分割する分割手段３０３を備える。
【００４５】
また、データ処理システム１を構成するデータ処理装置の各々は、分割手段３０３が分割した複数のデータ処理の各々に関し、記憶手段３０１に記憶されるパフォーマンスデータ（後述）に基づき、当該データ処理を自装置で実行するか自装置以外のデータ処理装置に委任するかを決定し、当該データ処理を他のデータ処理装置に委任すると決定した場合、当該データ処理の委任先のデータ処理装置を決定する決定手段３０４を備える。
【００４６】
また、データ処理システム１を構成するデータ処理装置の各々は、１以上の種類のデータ処理を実行可能であり、決定手段３０４が自装置で実行すると決定したデータ処理を実行する処理手段３０５を備える。
【００４７】
また、データ処理システム１を構成するデータ処理装置の各々は、決定手段３０４が自装置以外のデータ処理装置に委任すると決定したデータ処理に関し、当該データ処理の委任を示す委任データを、決定手段３０４が決定した委任先のデータ処理装置に送信し、また、受信手段３０２が受信した委任データに対する応答として、処理手段３０５が実行したデータ処理の結果を示す結果データおよび受信手段３０２が委任先のデータ処理装置から受信した結果データの少なくとも一方を、委任元のデータ処理装置に送信する送信手段３０６を備える。
【００４８】
また、データ処理システム１を構成するデータ処理装置の各々は、処理手段３０５がデータ処理に要したコストに基づき、記憶手段３０１に記憶されている自装置に関するパフォーマンスデータ（後述）を変更し、また、送信手段３０６が委任先のデータ処理装置に委任データを送信した後に当該委任データに対する応答として受信手段３０２が結果データを受信するまでに通信ネットワーク及びデータ処理システム１を構成する複数のデータ処理装置の少なくとも１つが要したコストに基づき、記憶手段３０１に記憶されている当該委任先のデータ処理装置に関するパフォーマンスデータ（後述）を変更する変更手段３０７を備える。
【００４９】
また、データ処理システム１を構成するデータ処理装置の各々は、当該データ処理装置に接続されているセンサーにより生成された位置依存データや、自装置内で生成される時刻データ等の位置非依存データを取得する取得手段３０８を備える。なお、一部のデータ処理装置の取得手段３０８は、位置非依存データを取得するが位置依存データは取得しなくてもよい。
【００５０】
図３は、各データ処理装置の記憶手段３０１に記憶されているパフォーマンスデータの構成を例示した図である。なお、データ処理システム１を構成する複数のデータ処理装置の各々が記憶するパフォーマンスデータの内容は互いに異なる。
【００５１】
パフォーマンスデータは、自装置を含む複数のデータ処理装置の各々に関し、当該データ処理装置が受任可能なデータ処理の種類と、当該データ処理装置が利用可能なデータの種類と、当該データ処理装置が受任可能なデータ処理の種類の各々に関し当該種類のデータ処理に要するコストとを示すデータである。
【００５２】
図３に例示のパフォーマンスデータは、「データ」欄に示される種類の位置依存データを用いた、「処理」欄に示される種類のデータ処理が、「装置」欄に示されるデータ処理装置で過去に実行された際のコストを「コスト」欄に示している。ただし、「データ」欄が空欄であるデータレコードの「コスト」欄のデータは、位置非依存データを用いた、「処理」欄に示される種類のデータ処理が、「装置」欄に示されるデータ処理装置で過去に実行された際のコストを示している。
【００５３】
パフォーマンスデータの「コスト」欄に示されるデータは、例えば、自装置が実行したデータ処理に関しては当該実行に要した時間、他のデータ処理装置に委任したデータ処理に関しては委任データの送信から結果データの受信までに要した時間、データ処理に要した処理負荷（例えば、プロセッサ占有率の平均値等）、データ処理に伴い送受信されたデータ量（すなわちトラフィック量）等を用いて、所定の算出式に従い算出されるデータである。なお、データ処理に要した処理負荷や、データ処理に伴い送受信されたデータ量等の情報は、例えば、結果データにメタデータとして付加されることで、委任先のデータ処理装置から委任元のデータ処理装置へと通知される。
【００５４】
以下に、図４及び図５を用いて、データ処理装置の決定手段３０４がパフォーマンスデータ（図３）に基づきデータ処理を実行すべきデータ処理装置を決定する方法を説明する。図４は、データ処理装置４２０が分割手段３０３により分割したデータ処理の各々の委任先を決定しようとしている状態を示す。図４の状態において、データ処理装置４２０の分割手段３０３は、委任元の装置４０１から受信した委任データが示すデータ処理を親データ処理Ｆ０（）、子データ処理Ｆ１（）、および子データ処理Ｆ２（）に分割している。
【００５５】
なお、子データ処理とは、親データ処理の変数を結果として生成するデータ処理を意味する。
【００５６】
親データ処理Ｆ０（）は、子データ処理Ｆ１（）の結果と、位置依存データＤ１と、子データ処理Ｆ２（）の結果とを用いる。
【００５７】
親データ処理Ｆ１（）は、子データ処理Ｆ３（）の結果と、子データ処理Ｆ４（）の結果を用いる。また、親データ処理Ｆ３（）は位置依存データＤ３を用いる。この場合、データ処理装置４２０の決定手段３０４は、子データ処理Ｆ１（）の依頼先の決定において、データ処理Ｆ１（）を受任可能なデータ処理装置であり、かつ、位置依存データＤ３を利用可能なデータ処理装置のうち、コストが最も小さいデータ処理装置を、パフォーマンスデータを参照して特定する。
【００５８】
データ処理装置４２０は、上記のように特定した最も低コストのデータ処理装置４２１を子データ処理Ｆ１（）の委任先のデータ処理装置として決定する。なお、この場合、データ処理装置４２１は位置依存データＤ３をセンサーから直接は取得できないが、データ処理装置４２２に位置依存データＤ３を用いるデータ処理を委任するか、もしくは、データ処理装置４２２から位置依存データＤ３を受信することで、位置依存データＤ３を利用することができる。従って、データ処理装置４２１は位置依存データＤ３を用いたデータ処理の委任先となり得る。
【００５９】
データ処理装置４２０の分割手段３０３により分割されたもう一つの子データ処理である親データ処理Ｆ２（）は、位置依存データＤ２と、子データ処理Ｆ５（）の結果を用いる。また、親データ処理Ｆ５（）は、位置依存データＤ４を用いる。この場合、データ処理装置４２０の決定手段３０４は、子データ処理Ｆ２（）の依頼先の決定において、データ処理Ｆ２（）を受任可能なデータ処理装置であり、かつ、位置依存データＤ２を利用可能なデータ処理装置のうち、コストが最も小さいデータ処理装置を、パフォーマンスデータを参照して特定する。
【００６０】
なお、この実施形態においては、委任するデータ処理が複数の位置依存データを利用する場合、それらのうち最初に用いる位置依存データ（この場合、位置依存データＤ４よりも先に、位置依存データＤ２が用いられるため、位置依存データＤ２）が委任先のデータ処理装置の決定において考慮される。ただし、例えば、それらの位置依存データの両方が委任先のデータ処理装置の決定において考慮されてもよい。
【００６１】
データ処理装置４２０は、上記のように特定した最も低コストのデータ処理装置４２４をデータ処理Ｆ２（）の委任先のデータ処理装置として決定する。
【００６２】
図５は、データ処理装置４２１において、データ処理装置４２０から委任されたデータ処理を分割手段３０３が親データ処理Ｆ１（）、子データ処理Ｆ３（）、および子データ処理Ｆ４（）に分割し、決定手段３０４が子データ処理Ｆ３（）および子データ処理Ｆ４（）の委任先のデータ処理装置を決定しようとしており、また、データ処理装置４２４において、データ処理装置４２０から委任されたデータ処理を分割手段３０３が親データ処理Ｆ２（）、子データ処理Ｆ５（）に分割し、決定手段３０４が子データ処理Ｆ５（）の委任先のデータ処理装置を決定しようとしている状態を示している。
【００６３】
データ処理装置４２１の決定手段３０４は、子データ処理Ｆ３（）の委任先のデータ処理装置として、データ処理Ｆ３（）を受任可能なデータ処理装置であり、かつ、位置依存データＤ３を利用可能なデータ処理装置のうち、コストが最も小さいデータ処理装置を、パフォーマンスデータを参照して特定する。この場合、データ処理装置４２２が子データ処理Ｆ３（）の委任先として決定される。
【００６４】
また、データ処理装置４２１の決定手段３０４は、子データ処理Ｆ４（）の委任先のデータ処理装置として、データ処理Ｆ４（）を受任可能なデータ処理装置であり、かつ、コストが最も小さいデータ処理装置を、パフォーマンスデータを参照して特定する。この場合、データ処理装置４２３が子データ処理Ｆ４（）の委任先として決定される。
【００６５】
また、データ処理装置４２４の決定手段３０４は、子データ処理Ｆ５（）の委任先のデータ処理装置として、データ処理Ｆ５（）を受任可能なデータ処理装置であり、かつ、位置依存データＤ４を利用可能なデータ処理装置のうち、コストが最も小さいデータ処理装置を、パフォーマンスデータを参照して特定する。この場合、データ処理装置４２５が子データ処理Ｆ５（）の委任先として決定される。
【００６６】
続いて、図６Ａ及び図６Ｂ（以下、これらを「図６」という）のフローチャート用いて、データ処理装置がデータ処理を実行すべきデータ処理装置を決定するプロセスを説明する。
【００６７】
受信手段３０２が委任元の装置から委任データを受信すると（ステップ６０１）、分割手段３０３は委任データにより委任されたデータ処理を複数のデータ処理に分割する（ステップＳ６０２）。続いて、決定手段３０４は、分割された親データ処理が自装置の処理手段３０５により実行可能であるか否かをパフォーマンスデータに基づき判定する（ステップＳ６０３）。親データ処理を自装置で実行不可能な場合（ステップ６０３；Ｎｏ）、送信手段３０６は委任元の装置に対し処理不能であることを送信し（ステップ６１３）、データ処理装置は一連の処理を終了する（ステップＳ６１７）。
【００６８】
親データ処理が自装置で実行可能な場合（ステップ６０３；Ｙｅｓ）、決定手段３０４は全ての子データ処理が処理済みであるかどうかを判定する（ステップ６０４）。全ての子データ処理が完了している場合（ステップＳ６０４；Ｙｅｓ）、処理手段３０５はそれらの子データ処理の結果データを用いて親データ処理を実行し、その結果を示す結果データを生成する（ステップＳ６１４）。続いて、送信手段３０６は処理手段３０５が生成した結果データを要求元の装置に送信する（ステップ６１５）。続いて、変更手段３０７はデータ処理に要したコストを算出してパフォーマンスデータを更新する（ステップ６１６）。その後、データ処理装置は一連の処理を終了する（ステップＳ６１７）。
【００６９】
完了していない子データ処理がある場合（ステップＳ６０４；Ｎｏ）、決定手段３０４は未完了の子データ処理の中から１つを対象の子データ処理として選択し（ステップＳ６０５）、選択した対象の子データ処理の最上位のデータ処理と、選択した子データ処理が位置依存データを用いる場合、それらの位置依存データのうち選択した子データ処理において最初に用いられる位置依存データを特定する（ステップ６０６）。
【００７０】
続いて、決定手段３０４は、パフォーマンスデータから、ステップ６０６において特定したデータ処理が委任可能であり、かつ、ステップ６０６において位置依存データを特定した場合、当該位置依存データを利用可能なデータ処理装置を、対象の子データ処理を実行するデータ処理装置の候補として抽出する（ステップ６０７）。
【００７１】
ステップ６０７において１以上のデータ処理装置が候補として抽出された場合（ステップＳ６０８；Ｙｅｓ）、決定手段３０４は、それらの候補の中から、パフォーマンスデータが示すコストが最小のものを対象の子データ処理を実行するデータ処理装置として決定する（ステップＳ６０９）。
【００７２】
ステップＳ６０９において決定されたデータ処理装置が自装置である場合（ステップＳ６１０；Ｙｅｓ）、処理手段３０５は対象の子データ処理を実行し（ステップ６１１）、その結果を示す結果データを記憶手段３０１に一時的に記憶させる。その後、データ処理装置は処理をステップＳ６０４に戻す。
【００７３】
一方、ステップＳ６０９において決定されたデータ処理装置が自装置ではない場合（ステップＳ６１０；Ｎｏ）、送信手段３０６は委任先として決定されたデータ処理装置に対し委任データを送信し、その応答として送信されてくる結果データを受信手段３０２が受信する（ステップＳ６１２）。受信手段３０２は委任先のデータ処理装置から受信した結果データを記憶手段３０１に一時的に記憶させる。その後、データ処理装置は処理をステップＳ６０４に戻す。
【００７４】
ステップＳ６０７においてデータ処理装置の候補が抽出されなかった場合（ステップＳ６０８；Ｎｏ）、すなわち、対象の子データ処理を過去にいずれのデータ処理装置にも委任した実績がない場合、決定手段３０４は自装置以外のデータ処理装置の中から１つ、未選択のデータ処理装置を所定の規則に従い選択する（ステップ６１８）。ステップ６１８において決定手段３０４がデータ処理装置を選択する規則としては、例えば、対象の子データ処理において用いられる位置依存データが利用可能であるか否かは不明であるが、対象の子データ処理と同じ種類のデータ処理を受任可能であるデータ処理装置を優先的に選択する、という規則、対象の子データ処理と同じ種類のデータ処理を受任可能であるか否かは不明であるが、対象の子データ処理が用いる位置依存データを利用可能であるデータ処理装置を優先的に選択する、という規則、コストの平均値が低いものを優先的に選択する、という規則、ランダムに選択する、という規則などが考えられる。
【００７５】
送信手段３０６は、ステップ６１８において決定手段３０４が選択したデータ処理装置に対し委任データを送信する（ステップＳ６１９）。ステップＳ６１９に送信された委任データに対する応答として、委任したデータ処理の結果を示す結果データが送信されてきた場合（ステップ６２０；Ｙｅｓ）、受信手段３０２はその結果データを受信し、記憶手段３０１に一時的に記憶させる。その後、データ処理装置は処理をステップＳ６０４に戻す。
【００７６】
ステップＳ６１９に送信された委任データに対する応答として、委任したデータ処理の結果を示す結果データが送信されてこなかった場合（ステップ６２０；Ｎｏ）、決定手段３０４はステップ６１８において全てのデータ処理装置を選択したか否かを判定する（ステップ６２１）。ステップ６１８において未選択のデータ処理装置がある場合（ステップ６２１；Ｎｏ）、データ処理装置は処理をステップ６１８に戻す。
【００７７】
一方、ステップ６１８において全てのデータ処理装置が既に選択されている場合（ステップ６２１；Ｙｅｓ）、対象の子データ処理を実行可能なデータ処理装置は見つからなかったことを意味する。従って、送信手段３０６は委任元の装置に対し処理不能であることの通知を送信し（ステップ６１３）、データ処理装置は一連の処理を終了する（ステップＳ６１７）。
【００７８】
上記のステップ６１８〜６２０の処理により、過去に委任したことのなかったデータ処理に関し、受任可能なデータ処理装置が特定され、その実績がステップ６１６においてパフォーマンスデータに反映されることになる。
【００７９】
上述したデータ処理システム１によれば、データ処理の分担を集中管理するデータ処理装置を要することなく、データ処理が複数のデータ処理装置により分散して実行されるとともに、データ処理全体の効率化が図られる。
【００８０】
［変形例］
上述した実施形態は本発明の技術的思想の範囲内で様々に変形可能である。以下にそれらの変形の例を示す。
【００８１】
（１）上述した実施形態においては、データ処理装置が記憶手段３０１に記憶するパフォーマンスデータは、当該データ処理装置が通信ネットワークを介してデータ通信が可能なデータ処理装置に関するパフォーマンスを示す。パフォーマンスデータが、当該パフォーマンスデータを記憶するデータ処理装置が直接はデータ通信ができないデータ処理装置に関するパフォーマンスを示すデータを含んでもよい。
【００８２】
この変形例においては、受信手段３０２が、データ通信が可能なデータ処理装置の各々から、当該データ処理装置がデータ通信可能なデータ処理装置の各々に関するパフォーマンスデータを受信し、記憶手段３０１が当該パフォーマンスデータを記憶する。
【００８３】
この変形例によれば、決定手段３０４は、自装置が直接データ通信可能なデータ処理装置のパフォーマンスに加え、自装置が直接はデータ通信できないデータ処理装置のパフォーマンスに基づき、データ処理の委任先のデータ処理装置を決定することができる。従って、上述した実施形態における場合と比較して、データ処理全体の効率化が図られる。
【００８４】
（２）上述した実施形態においては、或るデータ処理に関し過去にいずれかのデータ処理装置に委任した実績があれば、そのデータ処理装置が繰り返し、そのデータ処理の委任先として選択される。従って、仮に他のデータ処理装置がより低コストで同じデータ処理を実行可能であっても、過去にそのデータ処理を実行した実績があるデータ処理装置が一時的にデータ処理システム１から離脱する等の状況が生じなければ、より低コストでデータ処理を実行可能なデータ処理装置が認識されない。
【００８５】
従って、決定手段３０４が、委任対象のデータ処理に関し過去に委任を試みたことのないデータ処理装置があれば、当該データ処理装置を優先的に委任先のデータ処理装置として選択し、データ処理の委任を試みることにより、データ処理装置のパフォーマンスに関する情報を積極的に収集する構成が採用されてもよい。
【００８６】
この変形例において、決定手段３０４は、対象の子データ処理に関し、パフォーマンスデータに基づき、当該対象の子データ処理が受任可能であるか否かが不明なデータ処理装置の有無を判定する。対象の子データ処理が受任可能であるか否かが不明なデータ処理装置が有る場合、処理手段３０５は当該データ処理装置を対象の子データ処理の委任先のデータ処理装置として決定する。
【００８７】
（３）上述した実施形態および変形例の説明において用いたデータ、処理フロー等は例示であって、本発明はそれらに限定されない。例えば、パフォーマンスデータが過去の実績に基づくデータ処理装置のパフォーマンスをデータ処理が行われた時刻又は時間帯に対応付けて示すデータとして構成されてもよい。この場合、決定手段３０４は、例えばパフォーマンスデータが示す値に、現在により近い時刻のデータにより大きいウェイトを乗じて加重平均等することにより、現時点の通信ネットワークやデータ処理装置の状態により応じたパフォーマンスを示す指標を得ることができる。また、決定手段３０４は、例えばパフォーマンスデータが示す値のうち、現在の時間帯に対応付けて記憶されているものを抽出して用いることにより、現材の時間帯に応じた通信ネットワークやデータ処理装置の状態により応じたパフォーマンスを示す指標を得ることができる。その結果、より適切な委任先のデータ処理装置の決定が行われ、データ処理が全体として効率化される。
【００８８】
（４）上述した実施形態にかかるデータ処理システムを構成するデータ処理装置をコンピュータにより実現させるためのプログラムは、インターネットなどの通信回線を介してコンピュータにダウンロードされて用いられてもよい。また、このプログラムは、記録媒体に持続的に記録され、当該記録媒体からコンピュータにより読み取られて用いられてもよい。また、当該プログラムを記録した記録媒体が頒布されてもよい。
【産業上の利用可能性】
【００８９】
本発明はデータ処理を提供するサービス業において利用される。
【符号の説明】
【００９０】
１…データ処理システム、１１０…データ処理装置、１２０…データ処理装置、１３０…データ処理装置、１４０…データ処理装置、１５０…データ処理装置、１６０…データ処理装置、２０１…主データ処理装置、２０２…従データ処理装置、２０３…従データ処理装置、２０４…従データ処理装置、２０５…従データ処理装置、３０１…記憶手段、３０２…受信手段、３０３…分割手段、３０４…決定手段、３０５…処理手段、３０６…送信手段、３０７…変更手段、３０８…取得手段、４０１…委任元の装置、４２０…データ処理装置、４２１…データ処理装置、４２２…データ処理装置、４２３…データ処理装置、４２４…データ処理装置、４２５…データ処理装置
【図１】
0006742777.tif 000002
【図２】
0006742777.tif 000003
【図３】
0006742777.tif 000004
【図４】
0006742777.tif 000005
【図５】
0006742777.tif 000006
【図６Ａ】
0006742777.tif 000007
【図６Ｂ】
0006742777.tif 000008
【図７】
0006742777.tif 000009