(57)【特許請求の範囲】
【請求項１】
複数の端末装置と、計算依頼を分割して前記複数の端末装置に分配する分配結合装置とを備える分散計算システムであって、
各端末装置は、
前記分配結合装置から分配された計算依頼を自端末装置の負荷状態に応じて計算する計算手段と、
前記計算手段が計算した計算結果と、自端末装置の負荷状態を示す端末状態情報とを、コンテンツを要求するコンテンツリクエストとともに、前記分配結合装置に送信する送信手段と、を有し、
前記分配結合装置は、
各端末装置から受信した端末状態情報を保持する端末状態保持手段と、
前記端末状態保持手段に保持された各端末装置の端末状態情報に応じて、前記計算依頼を分割する分割手段と、
前記コンテンツリクエストを送信した端末装置に、当該端末装置用に分割した計算依頼を、前記コンテンツリクエストで指定されたコンテンツとともに送信するコンテンツ配信手段と、を有すること
を特徴とする分散計算システム。
【請求項２】
請求項１記載の分散計算システムであって、
前記分配結合装置のコンテンツ配信手段は、各端末装置に対して、前記端末状態保持手段に保持された当該端末装置の端末状態情報または初期値の端末状態情報を、前記分割した計算依頼および前記コンテンツとともに送信し、
各端末装置の前記計算手段は、前記分配結合装置から送信された端末状態情報および現在の端末状態に応じて、前記計算依頼を計算すること
ことを特徴とする分散計算システム。
【請求項３】
請求項１または２記載の分散計算システムであって、
前記分配結合装置の分割手段は、前記複数の端末装置の少なくとも１つから前記計算結果が取得できない場合、前記計算結果が取得できない計算依頼について再分割し、
前記コンテンツ配信手段は、前記再分割された計算依頼を、前記計算結果が取得できない端末装置以外の少なくとも１つの端末装置に送信すること
を特徴とする分散計算システム。
【請求項４】
請求項１から３のいずれか一項に記載の分散計算システムであって、
各端末装置は、前記分配結合装置が提供するサイトにアクセスするウェブ・クライアントであること
を特徴とする分散計算システム。
【請求項５】
請求項４記載の分散計算システムであって、
前記分配結合装置から各端末装置に分配される計算依頼には、各端末装置で計算を行うためのデータおよび計算手順が含まれること
を特徴とする分散計算システム。
【請求項６】
請求項４または５記載の分散計算システムであって、
各端末装置から前記分配結合装置へ送信される計算結果は、ウェブ・ブラウザがコンテンツリクエストを送信するタイミングで、前記分配結合装置に送信され、
前記分配結合装置から各端末装置へ送信される計算依頼は、前記コンテンツリクエストに対するレスポンスに含まれて送信されること
を特徴とする分散計算システム。
【請求項７】
請求項４から６のいずれか一項に記載の分散計算システムであって、
前記分配結合装置が提供するサイトは動画投稿サイトであり、前記分配結合装置が分割する計算依頼は、前記動画投稿サイトに動画を登録するために前記動画を変換する処理であること
を特徴とする分散計算システム。
【請求項８】
計算依頼を分割して複数の端末装置に分配する分配結合装置であって、
依頼端末から計算依頼を受信する計算依頼受信手段と、
受信した計算依頼を分割する計算依頼分割手段と、
分割された計算依頼をコンテンツとともに複数の端末装置に送信するコンテンツ配信手段と、
前記コンテンツ配信手段が送信した計算依頼に対する各端末装置からの計算結果と当該端末装置の負荷状態を示す端末状態情報とを、コンテンツリクエストとともに受信するコンテンツリクエスト受信手段と、
各端末装置から受信した計算結果を結合する計算結果結合手段と、
結合された計算結果を前記依頼端末に送信する計算結果送信手段と、
前記コンテンツリクエスト受信手段が受信した各端末装置の前記端末状態情報を保持する端末状態保持手段と、を有し、
前記計算依頼分割手段は、前記端末状態保持手段に保持された各計算端末の端末状態情報に応じて、前記計算依頼を分割し、
前記コンテンツ配信手段は、各計算端末から受信したコンテンツリクエストに対するレスポンスに前記分割された計算依頼を埋め込んで、送信すること
を特徴とする分配結合装置。
【請求項９】
分配結合装置から送信された計算依頼を処理する端末装置が実行する計算プログラムであって、
前記分配結合装置が送信したコンテンツから、計算依頼を抽出する計算依頼抽出手段、
当該端末装置の負荷状態を示す端末状態情報を保持する端末状態保持手段、
前記抽出した計算依頼を前記端末状態保持手段に保持された端末状態情報に応じて複数の計算依頼に分割する計算依頼分割手段、
分割された各計算依頼で指定された計算を行う計算手段、
分割された各計算依頼の計算結果を結合する計算結果結合手段、および
前記計算結果結合手段が結合した計算結果を、前記コンテンツに埋め込む計算結果埋め込み手段、として機能させ、
前記計算依頼分割手段は、前記計算手段が分割された計算依頼の計算に要した時間から、当該端末装置の負荷状態を算出し、算出した負荷状態で前記端末状態保持手段の端末状態情報を更新し、
前記計算結果埋め込み手段は、前記結合された計算結果とともに、前記端末状態保持手段の更新後の端末状態情報を前記コンテンツに埋め込み、コンテンツリクエストを送信するタイミングで前記計算結果および前記端末状態情報を前記分配結合装置に送信すること
を特徴とする計算プログラム。
【請求項１０】
請求項９記載の計算プログラムであって、
前記計算依頼分割手段は、前記計算依頼抽出手段が抽出した計算依頼のすべてが計算されていない場合、前記計算手段が分割された計算依頼の計算に要した時間から当該端末装置の負荷状態を算出し、当該負荷状態に応じて、未計算の部分の計算依頼をさらに分割すること
を特徴とする計算プログラム。
【請求項１１】
請求項９または１０記載の計算プログラムであって、
前記計算プログラムは、当該端末装置のウェブ・ブラウザにより起動され、
前記計算依頼抽出手段は、前記分配結合装置から受信したコンテンツから、当該端末装置の前回の端末状態情報または初期値の端末状態情報を抽出し、抽出した端末状態情報で前記端末状態保持手段を更新すること
を特徴とする計算プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の計算端末により分散して計算を行う分散計算システム、分配結合装置および計算プログラムに関する。
【背景技術】
【０００２】
近年、動画投稿サイトへの動画の投稿が盛んになってきている。動画投稿サイトとは、ユーザからの動画のアップロードを受け付け、アップロードされた動画をＷｅｂ上で公開できる形式に変換し、変換後の動画をユーザが閲覧できるように公開しているＷｅｂ上のサイトである。動画投稿サイトを利用することにより、多くのユーザによって創作された多様な動画を閲覧することが可能である。これにより、ユーザの創作活動を活発にし、動画を用いた新たなビジネスの創出や新たな文化の醸成が期待される。
【０００３】
しかし、動画投稿サイト側でアップロードされた動画の変換を行うため、動画投稿サイトのサーバの負荷が大きくなる。これにより、動画投稿サイトの運用コストの増大が問題となる。
【０００４】
一方、負荷の大きな計算を行う技術として、複数の計算機を用いる分散コンピューティング技術が知られている。複数の計算機で同時並行的に計算を行うことで、１つの計算機で計算を行うよりも早く、計算を完了することができる。分散コンピューティング技術については、たとえば、特許文献１、２に開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００５−７８２８４号公報
【特許文献２】特開２００５−１２２６１６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
分散コンピューティング技術を動画投稿サイトの動画の変換に用いることで、サーバの負荷を分散することが考えられる。動画投稿サイトの運営者が、複数の計算機を用意し、分散コンピューティング技術を利用することで、サーバの計算リソースを確保することが可能である。しかし、利用者の増大による、動画投稿サイトの運用コストの増大を抑えることはできない。
【０００７】
そこで、ユーザの端末も計算機であることから、ユーザの端末を利用することが考えられるが、Ｗｅｂ閲覧中のユーザの端末の負荷を、Ｗｅｂ閲覧に支障が出るほど上げることはできない。また、ユーザの端末に対して計算依頼を送信したり、計算結果を受信したりするときの通信が回線に影響をあたえることが懸念される。
【０００８】
本発明は、上記事情に鑑みてなされたものであり、本発明の目的は、ユーザの端末のリソースを、ユーザの処理に支障が生じないように利用するとともに、回線への影響を抑える分散計算システム、分配結合装置および計算プログラムを提供することにある。
【課題を解決するための手段】
【０００９】
上記目的を達成するため、本発明は、複数の端末装置と、計算依頼を分割して前記複数の端末装置に分配する分配結合装置とを備える分散計算システムであって、各端末装置は、前記分配結合装置から分配された計算依頼を自端末装置の負荷状態に応じて計算する計算手段と、前記計算手段が計算した計算結果と、自端末装置の負荷状態を示す端末状態情報とを、コンテンツを要求するコンテンツリクエストとともに、前記分配結合装置に送信する送信手段と、を有し、前記分配結合装置は、各端末装置から受信した端末状態情報を保持する端末状態保持手段と、前記端末状態保持手段に保持された各端末装置の端末状態情報に応じて、前記計算依頼を分割する分割手段と、前記コンテンツリクエストを送信した端末装置に、当該端末装置用に分割した計算依頼を、前記コンテンツリクエストで指定されたコンテンツとともに送信するコンテンツ配信手段と、を有する。
【００１０】
本発明は、計算依頼を分割して複数の端末装置に分配する分配結合装置であって、依頼端末から計算依頼を受信する計算依頼受信手段と、受信した計算依頼を分割する計算依頼分割手段と、分割された計算依頼をコンテンツとともに複数の端末装置に送信するコンテンツ配信手段と、前記コンテンツ配信手段が送信した計算依頼に対する各端末装置からの計算結果と当該端末装置の負荷状態を示す端末状態情報とを、コンテンツリクエストとともに受信するコンテンツリクエスト受信手段と、各端末装置から受信した計算結果を結合する計算結果結合手段と、結合された計算結果を前記依頼端末に送信する計算結果送信手段と、前記コンテンツリクエスト受信手段が受信した各端末装置の前記端末状態情報を保持する端末状態保持手段と、を有し、前記計算依頼分割手段は、前記端末状態保持手段に保持された各計算端末の端末状態情報に応じて、前記計算依頼を分割し、前記コンテンツ配信手段は、各計算端末から受信したコンテンツリクエストに対するレスポンスに前記分割された計算依頼を埋め込んで、送信する。
【００１１】
本発明は、分配結合装置から送信された計算依頼を処理する端末装置が実行する計算プログラムであって、前記分配結合装置が送信したコンテンツから、計算依頼を抽出する計算依頼抽出手段、当該端末装置の負荷状態を示す端末状態情報を保持する端末状態保持手段、前記抽出した計算依頼を前記端末状態保持手段に保持された端末状態情報に応じて複数の計算依頼に分割する計算依頼分割手段、分割された各計算依頼で指定された計算を行う計算手段、分割された各計算依頼の計算結果を結合する計算結果結合手段、および前記計算結果結合手段が結合した計算結果を、前記コンテンツに埋め込む計算結果埋め込み手段、として機能させ、前記計算依頼分割手段は、前記計算手段が分割された計算依頼の計算に要した時間から、当該端末装置の負荷状態を算出し、算出した負荷状態で前記端末状態保持手段の端末状態情報を更新し、前記計算結果埋め込み手段は、前記結合された計算結果とともに、前記端末状態保持手段の更新後の端末状態情報を前記コンテンツに埋め込み、コンテンツリクエストを送信するタイミングで前記計算結果および前記端末状態情報を前記分配結合装置に送信する。
【発明の効果】
【００１２】
本発明によれば、ユーザの端末のリソースを、ユーザの処理に支障が生じないように利用するとともに、回線への影響を抑えることができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施の形態に係る分散計算システムの構成を示すブロック図である。
【図２】分配結合装置の構成例を示すブロック図である。
【図３】計算端末の構成例を示すブロック図である。
【図４】計算プログラムの構成例を示すブロック図である。
【図５】分配結合装置の動作を説明するシーケンス図である。
【図６】計算端末の動作を説明するシーケンス図である。
【発明を実施するための形態】
【００１４】
以下、本発明の実施の形態について、図面を参照して説明する。
【００１５】
［構成例］
図１は、本発明の実施の形態に係る分散計算システムの構成を示すブロック図である。図示する分散計算システムは、依頼端末１と、分配結合装置２と、複数の計算端末３−１〜３−３とを備え、これらは、ネットワークを介して接続される。ここでは依頼端末１および分配結合装置２をそれぞれ１台だけ示しているが、これらはそれぞれ１台に限定されるものではなく、複数台備えることもできる。また、複数の計算端末３−１〜３−３も、３台に限定されるものではない。
【００１６】
依頼端末１は、計算を依頼する端末装置である。依頼端末１は、計算を行わせるための計算依頼を、分配結合装置２に送信する。その後、依頼端末１は、計算結果を分配結合装置２から受信する。計算依頼には、計算対象のデータ、計算の手法が記述されたスクリプト、結合の手法が記述されたスクリプト等が含まれる。
【００１７】
分配結合装置２は、依頼端末１から計算依頼を受信し、受信した計算依頼を分割して複数の計算端末３−１〜３−３に分割後の計算依頼を、コンテンツと計算プログラムと端末状態情報とともに分配する。また、分配結合装置２は、計算依頼などを分配した計算端末３−１〜３−３から計算結果をコンテンツリクエストと共に受信し、受信した計算結果を結合し、結合した計算結果を最終的な計算結果として、依頼端末１に返送する。分配結合装置２から計算端末３−１〜３−３に送信する計算依頼には、分配結合装置２によって分割された計算対象のデータと計算の手法が書かれたスクリプトと、結合の手法が書かれたスクリプト等が含まれる。
【００１８】
計算端末３−１〜３−３（以下、個々に区別する必要がない場合は、単に、「計算端末３」と称する）は、例えばユーザが使用する端末装置であり、分配結合装置２からの計算依頼を自端末の負荷状態に応じて処理する。
【００１９】
また、各計算端末３は、分配結合装置２からの計算依頼を処理することにより得られた計算結果を、自端末の負荷状態を示す端末状態情報と共に分配結合装置２に送信する。分配結合装置２は、各計算端末３から受信した端末状態情報を保持し、保持された端末状態情報に応じて、依頼端末１から受信した計算依頼の分割および各計算端末３への分配を行う。
【００２０】
［ウェブ・クライアントによる計算］
ここで、計算端末３として、ウェブ・クライアントを利用する場合を考える。すなわち、計算端末３として、ウェブ・ブラウザがインストールされたパーソナルコンピュータを利用する。計算端末３は、分配結合装置２(ウェブ・サーバ)が提供する所定のサイトにアクセスし、所望のコンテンツ（ウェブ・ページ）をダウンロードして表示する。
【００２１】
この分配結合装置２からダウンロードしたコンテンツには、計算プログラムと、計算依頼と、端末状態情報とが含まれている。計算プログラムは、例えば、Ｆｌａｓｈ（登録商標）やＪａｖａＳｃｒｉｐｔ（登録商標）等で記述されている。この計算プログラムは、コンテンツが計算端末３に表示されると、計算依頼をコンテンツから抽出し、当該計算端末３の負荷状態に応じて、計算端末３を使用するユーザのウェブ閲覧に支障をきたさない程度のリソースで、計算依頼に従って計算・処理を行う。
【００２２】
また、計算プログラムは、計算依頼の計算を実行したときの計算時間から自端末の負荷状態を計算し、計算依頼に対する計算結果と、自端末の負荷状態を表す端末状態情報とをコンテンツに埋め込む。その後、計算端末３のユーザが、次にコンテンツ（ウェブ・ページ）のリクエストを分配結合装置２に送信する際に、同時にコンテンツに埋め込まれた計算結果と端末状態情報とが、リクエストと共に分配結合装置２に送信される。
【００２３】
計算依頼で指定された計算をコンテンツに含まれる計算プログラムにより処理することから、計算端末３が当該コンテンツ（ウェブ・ページ）を一旦閉じて再度開いたときには、自端末の端末状態情報が失われている可能性がある。そこで、分配結合装置２が計算端末３に計算依頼を送る際には、計算依頼と共に、前回の計算依頼に対して当該計算端末から受信して保持している当該計算端末の端末状態情報、または当該計算端末の端末状態情報が保持されていない場合には初期値の端末状態情報を送信する。
【００２４】
この端末状態情報には、計算端末３を使用するユーザのウェブ閲覧に支障をきたさずに処理できるデータ量に関する情報が含まれる。各計算端末３は、分配結合装置２から受信した端末状態情報と現在の自端末の負荷状態とに応じて、分配結合装置２から送信された計算依頼を処理する。
【００２５】
なお、分配結合装置２が提供するサイトは、例えば動画投稿サイトであって、この場合、分配結合装置２が依頼端末１から受信し、各計算端末３に分散する計算依頼は、投稿された動画をウェブ上で公開できる形式に変換するための変換処理、すなわち投稿された動画を動画投稿サイトに登録するために変換する処理である。動画投稿サイトは、ユーザからの動画のアップロードを受け付け、アップロードされた動画をウェブ上で公開できる形式に変換し、変換後の動画をユーザが閲覧できるように公開しているウェブ上のサイトである。また、この場合の計算依頼には、計算対象のデータとして投稿された動画データ、計算の手法としては動画データの変換方式、結合の手法としては動画データの再生開始からの経過時刻に基づく結合方法等が含まれる。
【００２６】
［分配結合装置］
図２は、図１に示した分配結合装置２の構成例を示すブロック図である。この分配結合装置２は、計算依頼受信部２１と、計算依頼分割部２２と、端末状態保持部２３と、コンテンツ配信部２４と、コンテンツリクエスト受信部２５と、計算結果受信部２６と、計算結果結合部２７と、計算結果送信部２８とを備える。
【００２７】
計算依頼受信部２１は、依頼端末１からの計算依頼を受信し、図示しない記憶部に保持するとともに、計算依頼分割部２２に送出する。
【００２８】
計算依頼分割部２２は、計算依頼受信部２１から受信した計算依頼を、コンテンツ配信部２４からの要求（計算依頼要求）に応じて、各計算端末３の負荷状態に応じて分割する。このとき、計算依頼に含まれる計算対象のデータの分割は、端末状態保持部２３から取得した端末状態情報に応じて、すなわち各計算端末３の負荷状態に応じて行われる。そして、計算依頼分割部２２は、分割後の計算依頼をコンテンツ配信部２４に返送する。
【００２９】
分割後の計算依頼には、例えば、分割後の計算対象のデータと、計算の手法が書かれたスクリプトと、結合の手法が書かれたスクリプト等が含まれる。また、計算依頼分割部２２は、計算結果受信部２６から再計算依頼を受信すると、同様に分割してコンテンツ配信部２４に送出する。
【００３０】
端末状態保持部２３は、複数の計算端末３の負荷状態を示す端末状態情報を保持する。たとえば、各計算端末３でのユーザのウェブ閲覧に支障をきたさない程度の計算データ量の値や、単位データ量の計算に要する時間などが含まれる。
【００３１】
コンテンツ配信部２４は、コンテンツリクエスト受信部２５からコンテンツリクエストを受信すると、受信したコンテンツリクエストに対応するコンテンツを取得し、当該コンテンツに計算プログラム３００と端末状態情報と計算依頼とを埋め込み、コンテンツリクエストを送信した計算端末３に送信する。このとき、コンテンツ配信部２４は、計算依頼を計算依頼分割部２２から取得し、端末状態保持部２３から当該計算端末３の端末状態情報を取得する。
【００３２】
コンテンツリクエスト受信部２５は、計算端末３からコンテンツリクエストと計算結果と端末状態情報とを取得し、コンテンツリクエストをコンテンツ配信部２４に送出し、計算結果と端末状態情報とを計算結果受信部２６に送出する。
【００３３】
計算結果受信部２６は、コンテンツリクエスト受信部２５から計算結果と端末状態情報とを受信し、受信した端末状態情報で端末状態保持部２３の当該計算端末３の内容を更新する。計算結果受信部２６は、送信されたすべての計算依頼に対する計算結果を受信すると、それらの計算結果を計算結果結合部２７に送信する。このときの端末状態情報は、当該計算端末３が計算結果を算出するために要した時間から算出され、当該計算端末３のユーザのＷｅｂ閲覧に支障をきたさない程度の計算データ量の値、単位データ量の計算にかかる時間などが含まれる。計算結果受信部２６は、あらかじめ定めた所定の予想時間までにすべての計算端末３から計算結果を受信できなかった場合、受信できていない計算結果に対応する計算依頼の再計算依頼を、計算依頼分割部２２に送出する。
【００３４】
計算結果結合部２７は、計算結果受信部２６から受信した計算結果を結合し、計算結果送信部２８に送信する。計算結果結合部２７による計算結果の結合は、計算依頼受信部２１に保持されている計算依頼に含まれている結合の手法が書かれたスクリプトを用いて行われる。計算結果送信部２８は、計算結果結合部２７から受信した計算結果を依頼端末１に送信する。
【００３５】
なお、上述した分配結合装置２は、例えば、ＣＰＵと、メモリと、ＨＤＤ等の外部記憶装置と、入力装置と、出力装置とを備えた汎用的なコンピュータシステムを用いることができる。このコンピュータシステムにおいて、ＣＰＵがメモリ上にロードされた分配結合装置２用のプログラムを実行することにより、分配結合装置２の各機能が実現される。このプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ−ＲＯＭなどのコンピュータ読取り可能な記録媒体に記憶することも、ネットワークを介して配信することもできる。また、分配結合装置２は、複数のサーバから構成される装置であってもよい。
【００３６】
［計算端末］
図３は、図１に示す計算端末３の構成例を示すブロック図である。計算端末３は、コンテンツ表示部３１０を備える。コンテンツ表示部は、例えばウェブ・ブラウザに相当し、ユーザの指示を受け付けて分配結合装置２にコンテンツリクエストを送信し、それに対するコンテンツを受信し、受信したコンテンツを当該計算端末３のディスプレイに表示する。なお、分配結合装置２に送信するコンテンツリクエストには、計算結果と端末状態情報とが付加される。また、分配結合装置２から受信するコンテンツには、計算依頼と、計算プログラムと、端末状態情報とが含まれている。
【００３７】
図４は、図１に示す計算プログラム３００の詳細な構成例を示すブロック図である。図示する計算プログラム３００は、計算依頼抽出部３１と、計算依頼分割部３２と、端末状態保持部３３と、計算部３４と、計算結果結合部３５と、計算結果埋め込み部３６とを備える。これらの各部は、計算端末３上で動作するコンテンツ表示部３１０（ウェブ・ブラウザ）の機能により動作する。すなわち、計算端末３のウェブ・ブラウザが分配結合装置２の所定のサイトにアクセスし、所望のコンテンツ（ウェブ・ページ）をダウンロードする際に、当該コンテンツには計算プログラムが含まれるため、コンテンツとともに計算プログラムもダウンロードされ、ウェブ・ブラウザ上で当該計算プログラムを実行することで、上述の各部が実現される。なお、計算プログラム３００は、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ−ＲＯＭなどのコンピュータ読取り可能な記録媒体に記憶することも、ネットワークを介して配信することもできる。
【００３８】
計算依頼抽出部３１は、分配結合装置２から受信したコンテンツの中から計算依頼と端末状態情報とを抽出し、計算依頼を図示しない記憶部に保持するとともに、計算依頼と端末状態情報とを計算依頼分割部３２に送出する。
【００３９】
計算依頼分割部３２は、計算依頼抽出部３１から受信した計算依頼を自端末の負荷に応じて分割し、受信した端末状態情報で端末状態保持部３３の内容を更新する。このとき、計算依頼に含まれる計算対象のデータを、計算依頼抽出部３１から受信した端末状態情報に応じて分割する。そして、計算依頼分割部３２は、分割後の計算依頼を計算部３４に送出する。分割後の計算依頼には、たとえば、分割後の計算対象のデータと、計算の手法が書かれたスクリプト等が含まれる。
【００４０】
また、計算依頼分割部３２は、計算部３４から計算結果を受信すると、計算にかかった時間を算出し、算出された計算時間で端末状態保持部３３に記憶された端末状態情報を更新する。
【００４１】
その後、すべての計算依頼の計算が完了していない場合は、更新された端末状態保持部３３の端末状態情報に応じて計算依頼（残りの計算対象データ）を分割し、計算部３４に送信し、計算依頼の計算が完了するまで繰り返す。計算依頼の計算が完了すると、計算依頼分割部３２は、すべての計算結果を計算結果結合部３５に送出する。
【００４２】
端末状態保持部３３は、自端末の負荷状態を示す端末状態情報を記憶・保持する。たとえば、自端末のユーザのウェブ閲覧に支障をきたさない程度の計算データ量の値や、単位データ量の計算にかかる時間などが含まれる。
【００４３】
計算部３４は、計算依頼分割部３２からの計算依頼を処理し、その計算結果を計算依頼分割部３２に返送する。
【００４４】
計算結果結合部３５は、計算依頼分割部３２から受信した計算結果を結合し、計算結果埋め込み部３６に送信する。計算結果結合部３５は、計算依頼抽出部３１に保持されている計算依頼に含まれている結合の手法が書かれたスクリプトを用いて計算結果の結合を行い、結合後の計算結果を計算結果埋め込み部３６に送出する。
【００４５】
計算結果埋め込み部３６は、計算結果結合部３５から計算結果を受信し、端末状態保持部３３から端末状態情報を取得し、受信した計算結果と取得した端末状態情報とをコンテンツのリクエストに関する記述の部分に埋め込む。これにより、コンテンツ表示部３１０が、分配結合装置２に次のコンテンツをリクエストする際に、計算結果と端末状態情報も分配結合装置２に送信される。
【００４６】
ここで、コンテンツがHTMLドキュメントの場合について具体的に説明する。計算端末３のウェブ・ブラウザ（コンテンツ表示部３１０）は、ウェブ・サーバ（分配結合装置２）からJavaScript等で記述された計算プログラムと、JavaScriptとXML等で記述された計算依頼と、XML等で記述された端末状態情報と、が埋め込まれたHTMLドキュメントをダウンロードする。そして、ウェブ・ブラウザ上で動作する計算プログラムがHTMLドキュメントに埋めこまれている計算依頼と端末状態とを抽出し、計算し、計算結果をHTMLドキュメント内のAタグやFORMタグの部分に埋め込む。ウェブ・ブラウザは、ユーザがリンクをクリックする、フォームからPOSTするなどの操作指示を受け付けて、これにより生じるHTTPリクエストにのせて計算結果と端末状態とが埋め込まれたHTMLドキュメントをウェブ・サーバに送信する。
【００４７】
［分配結合装置の動作］
図５は図２に示す分配結合装置２の動作を説明するシーケンス図である。
【００４８】
コンテンツ配信部２４は、予め計算プログラム３００を図示しない記憶部から取得しておく（Ｓ１１）。その後、コンテンツリクエスト受信部２５は、計算端末３からコンテンツリクエストを受信すると（Ｓ１２）、当該コンテンツリクエストをコンテンツ配信部２４に送出する（Ｓ１３）。コンテンツリクエストを受信したコンテンツ配信部２４は、コンテンツリクエストに応じたコンテンツをコンテンツ記憶部（不図示）から取得する（Ｓ１４）。そして、コンテンツ配信部２４は、計算依頼分割部２２に計算依頼要求を送出する（Ｓ１５）。
【００４９】
一方、Ｓ１１からＳ１５との処理とは非同期に、計算依頼受信部２１は、依頼端末１から計算依頼（計算対象のデータ、計算の手法が書かれたスクリプト、結合の手法が書かれたスクリプト等）を受信し（Ｓ１６）、受信した計算依頼を記憶部に保持するとともに（Ｓ１７）、受信した計算依頼を計算依頼分割部２２に送出する（Ｓ１８）。
【００５０】
そして、計算依頼分割部２２は、コンテンツ配信部２４から計算依頼要求を受け付けると（Ｓ１５）、Ｓ１２でコンテンツリクエストを送信した計算端末３に対応する端末状態情報を端末状態保持部２３から取得し（Ｓ１９）、取得した端末状態情報を用いて、当該計算端末が一定の時間で計算できる量の計算依頼を分割する（Ｓ２０）。そして、計算依頼分割部２２は、分割した計算依頼をコンテンツ配信部２４に送出する（Ｓ２１）。
【００５１】
なお、分割した計算依頼を送信する計算端末３が、初めて計算依頼を実施する端末の場合（すなわち、端末状態保持部２３に端末状態情報が保持されていない端末の場合）、当該端末には、予め定めた所定の計算量（最小の計算量、一般的な端末で支障をきたさないと推定される程度の計算量など）に分割した計算依頼を送信する。
【００５２】
コンテンツ配信部２４は、計算依頼分割部２２から分割された計算依頼を受け付けると、端末状態保持部２３からＳ１２でコンテンツリクエストを受信した計算端末３の端末状態情報を取得し（Ｓ２２）、分割された計算依頼と、端末状態情報と、Ｓ１１で取得しておいた計算プログラム３００と、Ｓ１４で取得したコンテンツとを、Ｓ１２のコンテンツリクエストのレスポンスとして、計算端末３に送信する（Ｓ２４）。
【００５３】
なお、初めて計算依頼を送信する計算端末３に対しては、端末状態保持部２３には以前の端末状態情報がないので、所定の初期値の端末状態情報（たとえば一般的な端末装置において推定される負荷状態の端末状態情報）を送信する。
【００５４】
この後、コンテンツリクエスト受信部２５は、計算端末３から、計算結果と端末状態情報とが埋め込まれたコンテンツリクエストを受信し（Ｓ２５）、計算結果と端末状態情報とを計算結果受信部２６に送出するとともに（Ｓ２６）、コンテンツリクエストをコンテンツ配信部２４に送出する（Ｓ２７）。コンテンツ配信部２４は、コンテンツリクエストに対応するコンテンツをコンテンツ記憶部から取得する（Ｓ２８）。計算結果受信部２５は、端末状態保持部２３の当該計算端末３の端末状態情報を、Ｓ２６で受信した端末状態情報に更新する（Ｓ２９）。
【００５５】
なお、Ｓ１２からＳ２９の処理は、各計算端末３からコンテンツリクエストが送信される度に行われる処理である。
【００５６】
そして、計算結果受信部２５は、Ｓ２４で計算依頼等を含むコンテンツを送信したすべての計算端末３から計算結果を受信したか否、および、Ｓ１６で依頼端末から送信された計算依頼の全ての計算結果を受信したかを確認する（Ｓ３０）。そして、所定の予想時間を越えて計算結果が受信されない計算端末３がある場合、または、未計算の計算依頼がある場合、未計算の計算依頼の計算をするために、再計算依頼を計算依頼分割部２２に送出する（Ｓ３１）。
【００５７】
計算依頼分割部２２は、計算結果受信部２５から再計算依頼を受信すると、コンテンツ配信部２４からの計算依頼要求を受け付けて（Ｓ１５）、再度、計算依頼の分割を行う。すなわち、少なくとも１つの計算端末３からの計算結果が得られない場合には、その計算結果が得られていない計算依頼について、再度分割して、計算結果が得られていない端末以外の少なくとも１つの計算端末３に送信する。なお、コンテンツ配信部２４は、計算結果が得られない計算端末３からＳ１２のコンテンツリクエストを再度受信した場合、Ｓ１５の計算依頼要求を計算依頼分割部２２に送信しないようにする。
【００５８】
一方、計算結果受信部２５は、すべての計算依頼の計算結果を受信した場合には、受信したすべての計算結果を計算結果結合部２７に送出する（Ｓ３２）。計算結果結合部２７は、計算結果受信部２５から計算結果を受信すると、計算依頼受信部２１がＳ１７で保持した計算依頼の中の結合の手法を参照し（Ｓ３３）、当該結合の手法に従って受信した計算結果を結合し（Ｓ３４）、結合後の計算結果を計算結果送信部２８に送出する（Ｓ３５）。計算結果送信部２８は、計算結果結合部２７から計算結果を受信すると、その計算結果を依頼端末１に送信する（Ｓ３６）。
【００５９】
［計算端末の動作］
図６は、図３に示す計算端末３と、図４に示す計算プログラム３００の動作を説明するシーケンス図である。
【００６０】
コンテンツ表示部３１０は、分配結合装置２からコンテンツと共に計算依頼と端末状態情報と計算プログラム３００とを受信し（Ｓ４１）、コンテンツをディスプレイに表示するとともに、計算プログラム３００を起動する（Ｓ４２）。
【００６１】
計算プログラム３００を動作させることにより、計算依頼抽出部３１は、Ｓ４１で受信したコンテンツから計算依頼と端末状態情報とを抽出し（Ｓ４３）、抽出した計算依頼を図示しない記憶部に保持するとともに（Ｓ４４）、計算依頼と端末状態情報とを計算依頼分割部３２に送出する（Ｓ４５）。
【００６２】
計算依頼分割部３２は、計算依頼抽出部３１から計算依頼と端末状態情報とを受信すると、受信した端末状態情報で端末状態保持部３３の内容を更新する（Ｓ４６）。そして、計算依頼分割部３２は、更新した端末状態保持部３３を参照し（Ｓ４７）、参照した端末状態情報に応じて、受信した計算依頼を分割する（Ｓ４８）。そして、計算依頼分割部３２は、分割後の計算依頼を、計算部３４に送出する（Ｓ４９）。
【００６３】
計算部３４は、計算依頼分割部３２から計算依頼を受信すると、その計算依頼に従って計算を行い（Ｓ５０）、計算結果を計算依頼分割部３２に送出する（Ｓ５１）。
【００６４】
計算依頼分割部３２は、計算部３４から計算結果を受信すると、計算にかかった時間に応じて、端末状態保持部３３の端末状態情報を更新する（Ｓ５２、Ｓ５３）。計算依頼のすべての計算が終了していない場合は（Ｓ５４：ＮＯ）、計算依頼分割部３２は、再度、計算依頼の分割を行う。
【００６５】
計算依頼のすべての計算が終了している場合には（Ｓ５４：ＹＥＳ）、計算依頼分割部３２は、すべての計算結果を計算依頼結合部３５に送出する（Ｓ５５）。
【００６６】
計算結果結合部３６は、計算依頼分割部３２から計算結果を受信し、計算依頼抽出部３１の計算依頼を参照して（Ｓ５６）、計算結果を結合する（Ｓ５７）。そして、計算結果結合部３６は、結合後の計算結果を計算結果埋め込み部３６に送出する（Ｓ５８）。
【００６７】
計算結果埋め込み部３６は、計算結果結合部３５から計算結果を受信すると、端末状態保持部３３から端末状態情報を取得し、計算結果と端末状態情報とをＳ４１で受信したコンテンツに埋め込み、コンテンツ表示部３１０に送出する（Ｓ６０）。コンテンツ表示部３１０は、ユーザが次のコンテンツを取得するための操作指示を入力することにより、コンテンツリクエストを送信するタイミングで、当該コンテンツリクエストとともに前記計算結果および前記端末状態情報が埋め込まれたコンテンツを分配結合装置２に送信する（Ｓ６１）。
【００６８】
［効果の説明］
以上説明した本実施形態によれば、計算端末３が計算依頼を自端末の負荷状態に応じて計算依頼を分割して処理することができ、また、計算端末３に計算依頼を送信する分配結合装置２も、計算端末３から受信した端末状態情報に応じて計算依頼の分割および分配を行うので、計算端末３の計算リソースを、ユーザの処理に支障が出ない程度に利用することができる。
【００６９】
また、計算端末３としてウェブ・クライアントを利用する場合、特定のサイトにアクセスしたユーザの端末装置を、ユーザの許可を得た上で、分散コンピューティングに利用することができる。このとき、ウェブ・ブラウザ（コンテンツ表示部３１０）の機能を利用することで、計算端末３の負荷状態（端末状態情報）を特別なプロトコルを用いることなく送受信することができる。ここで送受信される負荷状態の精度は、計算端末３の負荷状態の変化などを考慮すると、それほど高くはないと考えられる。しかし、おおよその目安とはなるので、ユーザのウェブ閲覧に支障が出るほどの負荷を回避することができる。
【００７０】
また、計算依頼と計算結果の送受信を、既存のHTTPリクエスト、HTTPレスポンスに相乗りして行うため、回線への負荷を抑えることができる。
【００７１】
また、本実施形態の分散計算システムを動画投稿サイトの分散計算に適用することができる。すなわち、動画投稿サイトにアクセスするユーザの端末装置を計算端末３として利用し、その動画投稿サイトに動画を登録するために必要な計算依頼を分割して、計算端末３で計算することができる。
【００７２】
なお、本発明は上記実施形態に限定されるものではなく、その要旨の範囲内で数々の変形が可能である。例えば、上記実施形態では、計算端末３の負荷状態を示す端末状態情報として、計算に要した時間を用いることとしたが、本発明はこれに限定されるものでなく、例えば、スレッド数、ＣＰＵ利用率などを用いることとしてもよい。
【符号の説明】
【００７３】
１  ：依頼端末
２  ：分配結合装置
２１：計算依頼受信部
２２：計算依頼分割部
２３：端末状態保持部
２４：コンテンツ配信部
２５：コンテンツリクエスト受信部
２６：計算結果受信部
２７：計算結果結合部
２８：計算結果送信部
３、３−１〜３−３：計算端末（端末装置）
３１：計算依頼抽出部
３２：計算依頼分割部
３３：端末状態保持部
３４：計算部
３５：計算結果結合部
３６：計算結果埋め込み部
【図１】
0005512606.tif 000002
【図２】
0005512606.tif 000003
【図３】
0005512606.tif 000004
【図４】
0005512606.tif 000005
【図５】
0005512606.tif 000006
【図６】
0005512606.tif 000007