JP4612961B2 - 分散処理方法および分散処理システム - Google Patents
分散処理方法および分散処理システム Download PDFInfo
- Publication number
- JP4612961B2 JP4612961B2 JP2001072907A JP2001072907A JP4612961B2 JP 4612961 B2 JP4612961 B2 JP 4612961B2 JP 2001072907 A JP2001072907 A JP 2001072907A JP 2001072907 A JP2001072907 A JP 2001072907A JP 4612961 B2 JP4612961 B2 JP 4612961B2
- Authority
- JP
- Japan
- Prior art keywords
- client
- work
- request
- distributed processing
- clients
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Images
Landscapes
- Multi Processors (AREA)
- Computer And Data Communications (AREA)
Description
【産業上の技術分野】
本発明は、ネットワークを介して相互に接続された複数のマシンによる分散処理およびその制御に関する。
【0002】
【従来の技術】
ネットワークを介して複数のマシンを接続し、ある作業をこれら複数のマシンが処理する分散処理が実現されている。一般に、分散処理システムにおいては、マシンの位置付けに主従(マスタ/スレーブ)の関係があった。
たとえば、ネットワークレンダリングにおいては、マスタのマシンが、スレーブのマシンのうち、プロセスの空いているマシンに対して、静止画一枚分のデータ処理を割り振り、スレーブマシンにてデータ処理が実行されて、作成された静止画が共有されたフォルダに収容される。これにより、多数の静止画を分散して、並列的に作成することが可能となり、三次元画像を高速に得ることができる。
【0003】
【発明が解決しようとする課題】
しかしながら、上記主従関係のある分散処理システムにおいては、マスタのマシンのみが、スレーブへの作業の割り当ての権利を有しているため、スレーブマシンを柔軟に利用することは難しかった。また、ネットワークレンダリングの例にあるように、スレーブのマシンは処理を引き受ける役割に固定されており、スレーブのマシンで他のアプリケーションを実行させることを考慮していなかった。したがって、場合によっては、スレーブのマシンが稼動せず、その処理能力を発揮していないことも起こりうる。
【0004】
その一方、主従関係のない分散システム、たとえば、「http://www.beowulf.org」に開示されているベオウルフ(beowulf)は、独立して複数の計算機をネットワークで結合して処理を実行できるように構成されている。しかしながら、このようなシステムは、完全に分散処理専用であり、各計算機の空き時間を利用して当該計算機自身の処理を実行することなどが考慮されていない。したがって、柔軟なシステム運用が困難であるという問題点があった。
本発明は、各クライアントが、アプリケーションを対面して使用可能な状態に保ちつつ、その処理能力を効率的に利用して、全体として高い処理能力を持たせることが可能なシステムを提供することを目的とする。
【0005】
【課題を解決するための手段】
本発明の目的は、ネットワークを介して相互に接続された複数のクライアントにおいて、所定の作業を分散して実行する分散処理方法であって、
各クライアントにおいて、自己の状態を、ネットワークに接続されている所定のマシンに通知するステップと、
前記所定のマシンにおいて、各クライアントの状態を保持するステップと、
依頼主となる何れかのクライアントにおいて、作業指示に応答して、前記所定のマシンにアクセスして、他のクライアントのうち、作業依頼を受諾可能なクライアントを示す情報を受理するステップと、前記情報を参照して、特定のクライアントの各々に、作業依頼および作業内容を、前記所定のマシンを介して伝達するステップと、
前記特定のクライアントの各々において、前記作業依頼を受理することに応答して、当該作業を受諾可能か否かを判断し、判断結果を前記所定のマシンに伝達するとともに、前記作業依頼にかかる処理を実行するステップと、
前記所定のマシンにおいて、判断結果を作業の依頼主であるクライアントに伝達するとともに、当該特定のクライアントの各々の状態を、判断結果に基づき更新するステップと、
前記特定のクライアントにおいて、作業が終了した場合に、作業終了を示す通知を前記所定のマシンに伝達するステップと、
前記所定のマシンにおいて、作業終了を示す通知を依頼主であるクライアントに伝達するとともに、当該特定のクライアントの各々の状態を、前記通知に基づき更新するステップとを備えたことを特徴とする分散処理方法により達成される。
【0006】
本発明によれば、所定のマシンにおいて各クライアントの状態が把握され、これに基づき、依頼主となるクライアントが、作業依頼を受諾可能なクライアントに対して、作業を依頼することができる。これにより、主従の関係を持たすことなく、各クライアントは、依頼主となることもでき、かつ、作業依頼を受諾して、当該作業を実行する作業クライアントとなり、柔軟なシステム運用が可能となる。また、各マシンの処理能力を十分に発揮することが可能となる。
【0007】
本発明の好ましい実施態様においては、さらに、前記依頼主であるクライアントにおいて、なすべき作業の処理単位である作業単位を画定するステップを備え、前記作業内容が、作業単位数を含む。すなわち、この実施態様では、依頼主であるクライアントにおいて特定のクライアントにて処理すべき作業単位数を決定している。
【0008】
より好ましい実施態様においては、さらに、前記特定のクライアントにおいて、前記作業にかかる処理を実行中に、所定のタイミングで、作業の進捗状況を示す報告を、前記所定のマシンに伝達するステップと、前記所定のマシンにおいて、前記作業の進捗状況を示す報告を依頼主であるクライアントに伝達するステップとを備えている。
上記実施態様において、依頼主であるクライアントにおいて、特定のクライアントに関して、進捗状況を示す報告が伝達されない場合、或いは、所定の期間内に作業終了を示す通知が伝達されない場合に、前記クライアントにおける作業が中断していると判断するステップと、判断に基づき、他の特定のクライアントへの作業割り当てを再形成するステップとを備えているのがより望ましい。
【0009】
本発明の別の好ましい実施態様においては、上記クライアントの状態は、作業を受諾可能であることを示す第1の状態、依頼された作業を実行中であることを示す第2の状態、および、作業を受諾不可能であることを示す第3の状態の何れかであり、所定のマシンにおいて、作業依頼を受諾可能な特定のクライアントとして、第1の状態であるクライアントを選択して、当該特定のクライアントに関するリストを作成し、特定のクライアントからの判断結果が作業を受諾するものである場合に、当該特定のクライアントの状態を第2の状態に設定し、その一方、作業を受諾しないものである場合に、当該特定のクライアントの状態を第3の状態に設定し、かつ、前記作業終了を示す通知の受理に応答して、関連する特定のクライアントの状態を第1の状態に設定する。
【0010】
別の実施態様においては、さらに依頼主であるクライアントにおいて、なすべき作業の処理単位である作業単位を画定するステップと、作業単位ごとの作業内容を示すテーブルを、当該クライアント内、或いは、ネットワークに接続された何れかのマシン内に設けるステップと、前記特定のクライアントにおいて、前記テーブル中に、自己が処理する作業内容を示すデータを与えるステップとを備えている。
所定のマシンは、ネットワークに接続されたサーバであっても良いし、或いは、何れかのクライアントであっても良い。
【0011】
また、本発明の目的は、ネットワークを介して相互に接続された複数のクライアントを備え、当該複数のクライアントにより分散処理を実現するコンピュータシステムであって、
前記各クライアントが、少なくとも初期的に自己の状態を、ネットワークに接続された所定のマシンに登録する状態登録手段と、他のクライアントに対して作業を依頼することを、前記のマシンに伝達するとともに、他のクライアントのうち、特定のクライアントに対して作業を依頼する作業依頼処理手段と、自己が作業を依頼された場合に、当該依頼された作業に関する情報を前記所定のマシンに伝達する作業情報伝達手段とを有し、
前記ネットワークに接続された所定のマシンが、各クライアントから伝達された当該クライアントの状態や、当該クライアントからのデータを受理して、当該クライアントを特定するクライアント特定手段と、前記データに基づき当該クライアントの状態を判断するクライアント状態判断手段と、前記クライアントの状態を記憶するクライアント管理データベースと、作業の依頼主であるクライアントの依頼にしたがって、前記クライアント状態データベースを参照して、作業依頼を受諾可能なクライアントのリストを作成するリスト作成手段とを備え、
前記クライアント状態判断手段が、作業に関する情報に基づき、前記クライアント管理データベースを更新することを特徴とする分散処理システムにより達成される。
【0012】
さらに、本発明の目的は、ネットワークを介して相互に接続された複数のクライアントにおいて、所定の作業を分散して実行する分散処理を実行するために各クライアントにて実行させるコンピュータプログラムであって、前記ネットワークに接続されたマシンのうちの何れかを、仲介用のマシンとして認識するステップと、自己の状態を、ネットワークに接続されている仲介用のマシンにおいて保持させるために通知するステップと、自己が作業の依頼主となる場合に、与えられた作業指示に応答して、前記仲介用のマシンにアクセスして、他のクライアントのうち、作業依頼を受諾可能なクライアントを示す情報を受理するステップと、
前記情報を参照して、特定のクライアントの各々に、作業依頼および作業内容を、前記仲介用のマシンを介して伝達するステップと、作業依頼が前記仲介用のマシンを介して伝達された場合に、その受理に応答して、当該作業を受諾可能か否かを判断し、判断結果を、前記仲介用マシンを介して作業の依頼主であるクライアントに伝達するとともに、可能である場合に前記作業依頼にかかる処理を実行するステップと、作業が終了した場合に、作業終了を示す通知を、前記仲介用マシンを介して前記作業の依頼主であるクライアントに伝達するステップとをクライアントに実行させることを特徴とするコンピュータプログラムにより達成される。
【0013】
好ましくは、上記コンピュータプログラムは、さらに、前記作業依頼にかかる処理が実行される場合に、当該処理の実行中に、所定のタイミングで、作業の進捗状況を示す報告を、前記仲介用のマシンを介して、作業の依頼主であるクライアントに伝達するステップをクライアントに実行させる。より好ましくは、さらに、自己が作業の依頼主となる場合に、進捗状況を示す報告が伝達されない場合、或いは、所定の期間内に作業終了を示す通知が伝達されない場合に、当該伝達されない報告或いは通知にかかるクライアントにおける作業が中断していると判断するステップと、当該判断に基づき、他のクライアントへの作業割り当てを再形成するステップとをクライアントに実行させる。
【0014】
また、本発明の目的は、ネットワークを介して相互に接続された複数のクライアントにおいて、所定の作業を分散して実行する分散処理を実行するために当該ネットワークに接続された仲介用マシンにて実行させるコンピュータプログラムであって、クライアントから伝達された状態を、当該クライアントと関連付けて記憶するステップと、作業の依頼主となるクライアントからの要求に応答して、前記記憶された状態を参照して、作業依頼を受諾可能なクライアントを示す情報を送信するステップと、作業の依頼主となるクライアントからの作業依頼を、他のクライアントに転送するステップと、当該他のクライアントの各々から、作業を受諾可能か否かを示す判断結果を受理して、判断結果を作業の依頼主であるクライアントに伝達するとともに、前記判断結果に基づき、他のクライアントの各々の状態を更新するステップと、前記他のクライアントのうち、作業依頼を受諾したクライアントから作業終了を示す通知を受理した場合に、当該通知を作業の依頼主であるクライアントに伝達するとともに、前記通知に基づき、当該他のクライアントの状態を更新するステップとを前記仲介用マシンに実行させることを特徴とするコンピュータプログラムにより達成される。
【0015】
【発明の実施の形態】
以下、添付図面を参照して、本発明の実施の形態につき説明を加える。図1は、本発明の実施の形態にかかるシステムの概略を示すブロックダイヤグラムである。図1に示すように、本実施の形態にかかるネットワークコンピュータシステムは、複数のクライアント12−1、12−2、・・・、12−nと、データ処理により生成されたデータ等を記憶するファイルサーバ14と、各クライアントの状況を示す情報を記憶するとともに、クライアントマシン間のデータ通信を仲介する他のサーバ16とを有している。これらクライアント12、サーバ14、16はLAN等のネットワーク18を介して接続されている。
本明細書において他のサーバ16を、クライアントの状況や負荷を把握するものであるため、便宜上「ロードバランサー」と称する。
【0016】
クライアント12は、それぞれ、主従の関係を有するものではなく、それぞれ、ユーザによりコマンドの入力にしたがって必要な作業を実行することができる。また、各クライアントは、他のクライアントからの作業依頼を受けて、当該他のクライアントのための処理を実行することができる。たとえば、図2に示すように、あるクライアント12−1からロードバランサー16を介してクライアント12−iに作業依頼が与えられると(符号202参照)、当該クライアント12−iは、作業可能であれば、クライアント12−1からの依頼にしたがって必要な処理を実行する(符号203)。このように他のクライアントからの依頼にしたがって作業をするクライアントを、本明細書において「作業クライアント」と称する。
【0017】
作業依頼を受けたクライアントである作業クライアントは、当該クライアント自身の作業(たとえば文書の作成等)を実行しつつ、与えられた処理を実行し、与えられた処理が終了すると、作業の終了をロードバランサー16を介して依頼主のクライアント12−1に通知する(符号204参照)。これにより、作業クライアントは、通常のクライアントに戻ることになる(符号205参照)。
図3(a)は、依頼主であるクライアントにて実行される処理を示すフローチャートである。ここでは、クライアント12−1が依頼主となり、他の所定のクライアントが作業クライアントとなると考える。
【0018】
オペレータが入力装置を操作して、データ作成、たとえば、部品リストの作成指示を入力すると、クライアント12−1がこれを受理して(ステップ301)、データ作成のための情報を収集する(ステップ302)。たとえば、ファイルサーバ14から、部品リストを作成するために必要な情報が、このステップ302にて取得される。次いで、クライアント12−1は、取得した情報に基づき、作業単位を画定させる(ステップ303)。ここでは、作成されるデータの総量を見積もって、あるデータ量を一つの作業単位としても良いし、所定数の処理ステップを一つの作業単位としても良い。なお、ここで、作業クライアントに割り当てる作業単位数等を概ね決定しておいても良い。
【0019】
さらに、クライアント12−1は、ファイルサーバ中に中間ファイルを作成する(ステップ304)。本実施の形態においては、図3(b)に示すように、ファイルサーバ14に、ワーキングディレクトリが設けられ、ここで各クライアントが中間ファイルを収納するためのディレクトリを作成できるようになっている。クライアント12−1は、ワーキングディレクトリの下位に、上記データ作成処理用のディレクトリ311(\WorkDir\CL001)を作成する。この下位には、クライアント12−1自体の実際の作業領域となるディレクトリ312−1(\WorkDir\CL001\CL001)や、後述する作業クライアントの作業領域となるディレクトリ312−2、・・・312−iが作成される。ステップ304においては、作成されたディレクトリ312−1(\WorkDir\CL001\CL001)中に作成された中間ファイルが収容される。
【0020】
このようにして、依頼主のクライアント12−1における前処理が終了すると、ロードバランサーを介して、各クライアントに対して処理依頼が伝達される。図12に示すように、本実施の形態にかかる通信システム10においては、大まかには、各クライアント12−1、12−2、12−3(図中、「クライアント1〜3」と表記する。)における起動およびシステムへのログイン(符号1201参照)、依頼主であるクライアント12−1による他のクライアントへの作業依頼(符号1202参照)、作業クライアントによる進捗状況や処理終了の報告(符号1203参照)、および、最終的に全ての作業が終了したときのログオフ(符号1204)という手順が設けられる。
これらの各々について以下に詳細に説明を加えるが、これに先立ち、本実施の形態にかかるロードバランサー16につき説明を加える。
【0021】
図4(a)は、本実施の形態にかかるロードバランサー16の構成を示すブロックダイヤグラムである。図4(a)に示すように、ロードバランサー16は、LANに接続され、クライアント12とのデータ授受を制御する通信制御部20と、データが伝達されたクライアントを識別するクライアント識別部22と、クライアントから与えられたコマンドを受理して必要な処理を実行するコマンド処理部24と、クライアントを識別するクライアント番号(クライアントID)やクライアントに関する種々のデータを記憶するクライアント管理データベース(DB)26とを有している。本実施の形態においては、クライアントから作業クライアントを含む他のクライアントへのデータ通信は、ロードバランサー16を介して行われる。ロードバランサー16はデータ授受に介在して、これに基づき、各クライアントの状態を把握することが可能となる。
【0022】
図4(b)は、クライアント管理DB26中のデータの例を示す図である。図4(b)に示すように、クライアント管理DB26においては、クライアント番号(符号401)と、これに関連付けられた、当該番号が付与されたクライアントの状態を示すデータ(クライアント状態データ:符号411)および作業ログ(符号412)とを含むデータの組400が記憶される。このようなデータの組400は、クライアントごとに設けられている。
【0023】
本実施の形態において、クライアント状態データとして、他のクライアントからの作業依頼を受け入れて分散処理の実行が可能な状態(ステータス)である「コントラクト(Contract)」、作業依頼に基づき分散処理を実行中である「ビジー(Busy)」、および、作業依頼の受け入れを拒否する「リジェクション(Rejection)」の3つを設定できるようになっている。したがって、ロードバランサー16は、クライアントからのデータに基づき、適宜、このステータスを変更するようにクライアント管理DB36を更新する。
【0024】
このように構成されたデータ通信システムにおける処理について以下に説明を加える。図5(a)は、クライアント12が起動してログインする際に実行される処理を示すフローチャートである。クライアント12の起動により、ロードバランサー16に、ホスト名(クライアント番号)にてログインする(ステップ501)。ロードバランサー16のクライアント識別部22が、クライアント番号に基づきクライアントを識別してログイン応答を返送する(ステップ502)。次いで、クライアント12は、上述した3つのステータスのうち何れかを、自己のステータスとしてロードバランサー16に伝達する(ステップ503)。ロードバランサー16は、クライアント番号に基づき、クライアント管理DB26中のデータの組400を特定して、伝達されたステータスを記憶する(ステップ504)。これによりクライアント12が登録される。
【0025】
図6は、クライアントが起動されて、ロードバランサー16に対するログイン処理を実行する状態を示すフローチャートである。図6に示すように、たとえば、クライアント12−1(図中、「クライアント1」と表記している)に関しては、ログインおよびログイン応答(ステップ601、602)の後に、ステータス「コントラクト(Contract)」が通知されている(ステップ603)。ロードバランサー16は、これに基づき、第1のクライアントのステータスを「コントラクト(Contract)」とするべくクライアントDB26を更新している(ステップ611)。
【0026】
同様に、クライアント12−2(図中「クライアント2」と表記している。)においても、ステータス「コントラクト(Contract)」が通知され、これがクライアントDB26に登録される(ステップ621〜623、ステップ612)。その一方、クライアント12−i(図中「クライアントi」と表記している)は、ログインの際に、既に分散処理を実行している最中であるため、ステータス「ビジー(Busy)」をロードバランサー16に通知している(ステップ631〜633)。また、クライアント12−n(図中、「クライアントn」と表記している)は、何らかの理由、たとえば、オペレータが設定することなどにより、ステータス「リジェクション(Rejection)」を通知している(ステップ641〜643)。これらステータスが受理されるごとに、ロードバランサー16は、クライアント管理DB26を更新している(ステップ612〜614)。
【0027】
次に、図3に示す前処理が終了した後に依頼主であるクライアントから、分散処理の割り当てを要求する際の処理につき、図5(b)を参照して説明を加える。依頼主であるクライアント12−1は、ロードバランサー16に対して分散処理割り当て要求を伝達する(ステップ511)。ロードバランサー16のクライアント識別部22が、要求を伝達したクライアントを特定する(ステップ512)。次いで、クライアント管理DB26が検索されて(ステップ513)、他のクライアントに関するデータの組を参照して、そのステータスが「コントラクト(Contract)」であるものが存在するか否かが判別される。作業依頼を受理可能な他のクライアントが存在しない場合には(ステップ514でノー(No))、割り当て不可能であることがクライアント12−1に通知される(ステップ515)。その一方、作業依頼を受理可能な他のクライアントが存在する場合には(ステップ514でイエス(Yes))、ステータスが「コントラクト(Contract)」であるクライアントのリストがクライアントに伝達される(ステップ516)。
【0028】
図7は、図5に引き続いて実行される処理を示すフローチャートである。依頼主であるクライアント12−1(図中「クライアント1」と表記する)は、受理したリストを参照して(ステップ700)。作業依頼をすべきクライアントおよび依頼にかかる作業単位を決定する。
クライアント12−1は、依頼すべきクライアントを特定して、そのクライアント番号と作業単位を含む作業依頼とをロードバランサー16を介して、依頼先であるクライアント12−2(図中「クライアント2」と表記する)に伝達する(ステップ701、702)。クライアント12−2は、作業依頼を受理して、これを受諾することが可能であれば、受諾応答を、ロードバランサー16に返送する(ステップ703)。次いで、作業依頼に応答して、必要な作業を開始する(ステップ704)。ここで、クライアント12−2は、上記作業に関して作業クライアントとなる。無論、クライアント12−2は、依頼された作業に専従する必要は無く、たとえば、オペレータの指示にしたがった他の処理を実行できることは言うまでも無い。
【0029】
ロードバランサー16は、クライアント12−1に対して、クライアント12−2が受諾したことを示す受諾報告705を送信し(ステップ705)、次いで、クライアント12−2のステータスを「ビジー(Busy)」とするようにクライアント管理DB26を更新する(ステップ706)。クライアント12−1も、クライアント12−2が作業クライアントして、作業の一部の分散処理を担うことを記憶するのが望ましい(ステップ707)。
図7においては、他のクライアント12−3(図中「クライアント3」と表記する)についても、作業依頼がなされ(ステップ711、712)、クライアント12−3は、作業依頼を受諾して(ステップ713)、これにより、当該作業に関して作業クライアントとなる。クライアント12−3も、依頼内容に応じた作業を開始する。ロードバランサー16は、受諾報告を依頼主であるクライアント12−1に伝達するとともに、クライアント12−3のステータスを「ビジー(Busy)」にするようにクライアント管理DB26を更新する(ステップ716)。クライアント12−1においても、ステップ707と同様に、作業依頼の結果を記憶しておく(ステップ717)。
【0030】
その一方、図8に示すように、依頼主であるクライアント12−1が、リストにしたがってクライアント12−i(図中「クライアントi」と表記する)に作業依頼をしたものの(ステップ801、802)、何らかの理由によりこれが拒否される場合がある(ステップ803)。このような作業依頼に対する拒否の応答も、クライアント12−iから、まず、ロードバランサー16に伝達される(ステップ803)。
【0031】
ロードバランサー16は、作業依頼が拒否されたことを示す報告をクライアント12−1に伝達する(ステップ804)とともに、クライアント12−iのステータスを、「リジェクション(Rejection)」とするように、クライアント管理DB26を更新する(ステップ805)。
また、拒否報告を受理したクライアント12−1は、これを記憶するとともに、必要な場合には、作業割り当て(作業クライアントに割り当てる作業単位量など)を再形成するための処理を実行する。
【0032】
図9は、作業クライアントにて作業が開始されてから(図7のステップ704参照)実行される処理を示すフローチャートである。図9に示すように、作業クライアントは、作成されていない場合には、ファイルサーバ14にアクセスして、ワーキングディレクトリ内にホスト名(クライアント番号等)のディレクトリを作成する(ステップ900)。本実施の形態においては、図3(b)に示すように、ワーキングディレクトリ中に作成された中間ファイル311(\WorkDir\CL001)の下位に、たとえば、中間ファイル312−2(\WorkDir\CL002)が作成される。
次いで、作業クライアントは、作業依頼において指定された作業単位を特定して、依頼主であるクライアント12−1の中間ファイル312−1(\WorkDir\CL001\CL001)から特定した作業単位に対応するファイルを、先に作成した中間ファイルに移動する(ステップ902)。
【0033】
このような前処理の後、作業クライアントにおいては作成依頼にしたがったデータ処理が実行される(ステップ903)。データ処理による処理結果(たとえば、部品リスト)は、指定された中間ファイル311(\WorkDir\CL001)に出力される(ステップ904)。
また、作業クライアントは、所定のタイミングで、ロードバランサー16に進捗状況を通知する(ステップ905)。無論、このような処理の間にも、オペレータの指示等に基づく作業クライアント自身の処理(本来の処理)が実行され得ることはいうまでもない。ステップ903ないし905の処理は、依頼された作業(データ処理)が終わるまで繰り返される(ステップ906参照)。依頼された作業が完了すると、作業クライアントは、処理の終了をロードバランサー16に通知する(ステップ907)。
【0034】
図10は、作業クライアントからの進捗状況の通知や処理終了の通知に関するデータ通信処理を示すフローチャートである。前述したように、作業クライアントであるクライアント12−2(図中、「クライアント2」と表記する)におけるデータ処理(ステップ1001(ステップ903))において、所定のタイミングで進捗状況が、ロードバランサー16に通知される(ステップ1002)。ロードバランサー16は、これを依頼主であるクライアント12−1(図中、「クライアント1」と表記する)に伝達する(ステップ1003)とともに、クライアント管理DB26におけるクライアント12−1に関するデータの組を見出して、その作業ログに必要な情報(データ処理中であることなど)を記憶する(ステップ1004)。
【0035】
依頼主であるクライアント12−1は、進捗状況の通知を受理すると、作業クライアントの進捗状況を確認して、この進捗情報を作業クライアントと関連付けて記憶する(ステップ1005)。
また、作業クライアントにおいて処理が終了して(ステップ1011(ステップ907))、終了通知がロードバランサー16に伝達されると(ステップ1012)、ロードバランサー16はこれをクライアント12−1に伝達する(ステップ1013)とともに、クライアント管理DB26を更新する(ステップ1014)。ここでは、クライアント12−2のステータスが「ビジー(Busy)」から「コントラクト(Contract)」に変更される。また、依頼主であるクライアント12−1においては、クライアント12−2(作業クライアント)によるデータ処理が終了したことが記憶される(ステップ1015)。このような処理が、作業クライアントとなった他のクライアントに関しても実行される。
【0036】
依頼主のクライアント12−1においては、進捗状況の通知に関して、図11に示す処理が実行される。作業を依頼している作業クライアントのうち、処理の対象となる作業クライアントが特定されると(ステップ1101)、依頼主であるクライアント12−1は、当該作業クライアントについて所定のタイミングで進捗状況に関する通知があったか否かを判断する(ステップ1102)。ステップ1102でイエス(Yes)と判断された場合には、次の作業クライアントに関する作業に進む(ステップ1106参照)。その一方、ステップ1102でノー(No)と判断された場合には、クライアント12−1は、当該作業クライアントにおいて何らかの理由により作業が中断していると判断して、作業クライアントと関連付けて判断結果を記憶する(ステップ1104)。次いで、作業クライアントに依頼した作業を他のクライアントに割り当てるなど、作業の再割り当てに必要な処理を実行する(ステップ1105)。このような処理が作業を依頼している全てのクライアントに関して実行される。
【0037】
また、依頼主のクライアント12−1は、作業の終了に関しても、図11に示すような処理を実行しても良い。すなわち、所定の時間が経過したにもかかわらず、ある作業クライアントから終了通知が与えられない場合には、当該作業クライアントにおいて何らかの原因により作業が中断したものと判断し、その結果を記憶するように構成しても良い。
本発明は、以上の実施の形態に限定されることなく、特許請求の範囲に記載された発明の範囲内で、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
【0038】
たとえば、前記実施の形態においては、依頼主であるクライアントが、作業単位を画定し、必要な数の作業単位を含む作業依頼を、作業クライアントとなるべき他のクライアントに伝達した。すなわち、作業の割り当てを作業クライアントにて決定し、この割り当てを作業クライアントに伝達しているが、これに限定されるものではなく、作業クライアントが、自己が可能な作業単位数を判断して、当該作業単位数だけの作業を実行するようにしても良い。この場合には、たとえば、ロードバランサーにおいて、何れかのクライアントがどれだけの作業単位を分担しているかを含むテーブルを用意し、これを作業クライアント等が更新するように構成しても良い。
【0039】
また、前記実施の形態において、ファイルサーバにおいて、作業対象となる中間ファイルを用意し、また、処理結果もファイルサーバ中の所定の中間ファイルに格納するように構成したが、これに限定するものではなく、依頼主のクライアント中に中間ファイルを用意し、また、処理結果を収容するように構成しても良い。
【0040】
さらに、前記実施の形態において、ロードバランサー16をクライアント12とは別に設けているがこれに限定されるものではない。すなわち、何れかのクライアント12がロードバランサーとして機能するように構成し、他のクライアントからのデータ通信を、ロードバランサーとして機能するクライアント12を介して実現するような構成をとってもよい。
なお、本明細書において、一つの手段の機能が、二つ以上の物理的手段により実現されても、若しくは、二つ以上の手段の機能が、一つの物理的手段により実現されてもよい。
【0041】
【発明の効果】
本発明によれば、各クライアントが、アプリケーションを対面して使用可能な状態に保ちつつ、その処理能力を効率的に利用して、全体として高い処理能力を持たせることが可能なシステムを提供することが可能となる。
【図面の簡単な説明】
【図1】 図1は、本発明の実施の形態にかかるシステムの概略を示すブロックダイヤグラムである。
【図2】 図2は、本実施の形態にかかるクライアントおよび作業クライアントの関係を説明するための図である。
【図3】 図3は、本実施の形態にかかるクライアントにて実行される処理のフローチャートおよびファイルサーバにおけるファイルの構成を説明する図である。
【図4】 図4は、本実施の形態にかかるロードバランサーの構成を示すブロックダイヤグラムおよびデータ構成図である。
【図5】 図5は、本実施の形態にかかるデータ通信システムにおけるデータ通信手順を示すフローチャートである。
【図6】 図6は、本実施の形態にかかるデータ通信システムにおけるデータ通信の例を示すフローチャートである。
【図7】 図7は、本実施の形態において作業依頼の際に実行される処理の例を示すフローチャートである。
【図8】 図8は、本実施の形態において作業依頼の際に実行される処理の例を示すフローチャートである。
【図9】 図9は、本発明の実施の形態にかかる作業クライアントにて実行される処理を示すフローチャートである。
【図10】 図10は、本実施の形態における進捗状況の通知の例を示すフローチャートである。
【図11】 図11は、本実施の形態において、依頼主であるクライアントにて実行される処理の例を示すフローチャートである。
【図12】 図12は、本システムにて実行される処理の概略を示すフローチャートである。
【符号の説明】
12 クライアント
14 ファイルサーバ
16 ロードバランサー
18 LAN
20 通信処理部
22 クライアント識別部
24 コマンド処理部
26 クライアント管理DB
Claims (10)
- ネットワークを介して相互に接続された複数のクライアントにおいて、所定の作業を分散して実行する分散処理方法であって、
各クライアントにおいて、作業依頼に基づく分散処理の実行の可否を示す自己の状態を、ネットワークに接続されている所定のマシンに通知するステップと、
前記所定のマシンにおいて、各クライアントの、前記作業依頼に基づく分散処理の実行の可否を示す当該クライアントの状態を、当該所定のマシンのデータベースに保持するステップと、
依頼主となる何れかのクライアントにおいて、作業指示に応答して、前記所定のマシンにアクセスして分散処理の割り当て要求を送信するステップと、
前記所定のマシンにおいて、前記データベースから、その状態が、作業依頼に基づく分散処理の実行が可能であるような他のクライアントを検索し、当該作業依頼を受諾可能な当該他のクライアントを示す情報を、前記依頼主となる何れかのクライアントに送信するステップと、
前記依頼主となる何れかのクライアントにおいて、作業依頼を受諾可能な当該他のクライアントを示す情報を受理するステップと、
前記他のクライアントを示す情報を参照して、他のクライアントから選択された特定のクライアントの各々に対する作業依頼および作業内容を、前記所定のマシンに伝達するステップと、
前記所定のマシンにおいて、前記特定のクライアントの各々に対する作業依頼および作業内容を受理すると、当該特定のクライアントの各々に対して、作業依頼および作業内容を伝達するステップと、
前記特定のクライアントの各々において、前記作業依頼を受理することに応答して、当該作業依頼を受諾可能か否かを判断し、判断結果を前記所定のマシンに伝達するとともに、可能である場合に前記作業依頼および作業内容にかかる処理を実行するステップと、
前記所定のマシンにおいて、前記判断結果を作業の依頼主であるクライアントに伝達するとともに、前記判断結果に基づき、前記データベース中の前記作業依頼を受諾可能である特定のクライアントの状態を、作業依頼に基づく分散処理の実行が不可能であることを示すものに更新するステップと、
前記作業依頼および作業内容にかかる処理を実行している特定のクライアントにおいて、前記処理が終了した場合に、作業終了を示す通知を前記所定のマシンに伝達するステップと、
前記所定のマシンにおいて、前記作業終了を示す通知を依頼主であるクライアントに伝達するとともに、前記通知に基づき、前記データベース中の、前記作業終了を示す通知を送信した特定のクライアントの状態を、作業依頼に基づく分散処理の実行が可能であることを示すものに更新するステップと、を備えたことを特徴とする分散処理方法。 - さらに、前記依頼主であるクライアントにおいて、なすべき作業の処理単位である作業単位を画定するステップを備え、
前記作業内容が、作業単位数を含むことを特徴とする請求項1に記載の分散処理方法。 - さらに、前記作業依頼および作業内容にかかる処理を実行している特定のクライアントにおいて、前記処理を実行中に、所定のタイミングで、作業の進捗状況を示す報告を、前記所定のマシンに伝達するステップと、
前記所定のマシンにおいて、前記作業の進捗状況を示す報告を依頼主であるクライアントに伝達するステップとを備えたことを特徴とする請求項1または2に記載の分散処理方法。 - さらに、前記依頼主であるクライアントにおいて、特定のクライアントに関して、進捗状況を示す報告が伝達されない場合、或いは、所定の期間内に作業終了を示す通知が伝達されない場合に、前記特定のクライアントにおける作業が中断していると判断するステップと、
当該判断に基づき、他の特定のクライアントへの作業割り当てを再形成するステップとを備えたことを特徴とする請求項3に記載の分散処理方法。 - 前記データベース中の前記状態が、作業を受諾可能であることを示す第1の状態、依頼された作業を実行中であることを示す第2の状態、および、作業を受諾不可能であることを示す第3の状態の何れかであり、
前記所定のマシンにおいて、作業依頼を受諾可能な特定のクライアントとして、第1の状態であるクライアントを選択して、当該特定のクライアントに関するリストを作成し、
特定のクライアントからの判断結果が作業を受諾するものである場合に、前記データベース中の当該特定のクライアントの状態を第2の状態に設定し、その一方、作業を受諾しないものである場合に、当該特定のクライアントの状態を第3の状態に設定し、かつ、
前記作業終了を示す通知の受理に応答して、前記データベース中の関連する特定のクライアントの状態を第1の状態に設定することを特徴とする請求項1ないし4の何れか一項に記載の分散処理方法。 - 前記所定のマシンが、ネットワークに接続されたサーバであることを特徴とする請求項1ないし5の何れか一項に記載の分散処理方法。
- 前記所定のマシンが、何れかのクライアントであることを特徴とする請求項1ないし5の何れか一項に記載の分散処理方法。
- ネットワークを介して相互に接続された複数のクライアントを備え、当該複数のクライアントにより分散処理を実現するコンピュータシステムであって、
前記各クライアントが、作業依頼に基づく分散処理の実行の可否を示す自己の状態を、ネットワークに接続された所定のマシンに登録する状態登録手段と、
他のクライアントに対する分散処理の割り当て要求を、前記所定のマシンに伝達するとともに、前記所定のマシンを介して、前記他のクライアントのうち、特定のクライアントに対して作業依頼および作業内容を伝達する作業依頼処理手段と、
自己が作業を依頼された場合に、当該作業依頼を受諾可能か否かの判断結果、および、受諾した作業依頼および作業内容にかかる処理の作業終了を示す通知を含む、当該作業依頼に関する情報を前記所定のマシンに伝達する作業情報伝達手段と、を有し、
前記ネットワークに接続された前記所定のマシンが、
前記クライアントについての、作業依頼に基づく分散処理の実行の可否を示す状態を記憶するクライアント管理データベースと、
作業の依頼主であるクライアントからの分散処理の割り当て要求にしたがって、前記クライアント状態データベースを参照して、作業依頼を受諾可能なクライアントのリストを作成して、作業の依頼主であるクライアントに伝達するリスト作成手段と、
前記作業の依頼主であるクライアントの作業依頼処理手段からの、リストから選択された特定のクライアントに対する作業依頼および作業内容に基づき、当該特定のクライアントの各々に対して、作業依頼および作業内容を伝達する作業依頼伝達手段と、
前記特定のクライアントからの、前記判断結果、および、作業依頼に関する情報に基づき、前記クライアント管理データベースを更新するデータベース更新手段と、を備え、
前記データベース更新手段が、
前記判断結果に基づき、前記データベース中の前記作業依頼を受諾可能である特定のクライアントの状態を、作業依頼に基づく分散処理の実行が不可能であることを示すものに更新するとともに、
前記作業終了を示す通知に基づき、前記作業終了を示す通知を送信した特定のクライアントの状態を、作業依頼に基づく分散処理の実行が可能であることを示すものに更新するように構成されたことを特徴とする分散処理システム。 - 前記所定のマシンが、前記ネットワークに接続されたサーバであることを特徴とする請求項8に記載の分散処理システム。
- 前記所定のマシンが、前記クライアントの何れかであることを特徴とする請求項8に記載の分散処理システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001072907A JP4612961B2 (ja) | 2001-03-14 | 2001-03-14 | 分散処理方法および分散処理システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001072907A JP4612961B2 (ja) | 2001-03-14 | 2001-03-14 | 分散処理方法および分散処理システム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002269060A JP2002269060A (ja) | 2002-09-20 |
JP4612961B2 true JP4612961B2 (ja) | 2011-01-12 |
Family
ID=18930422
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001072907A Expired - Lifetime JP4612961B2 (ja) | 2001-03-14 | 2001-03-14 | 分散処理方法および分散処理システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4612961B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220027200A1 (en) * | 2020-07-22 | 2022-01-27 | National Applied Research Laboratories | System for operating and method for arranging nodes thereof |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1634176B1 (de) | 2003-06-18 | 2014-07-02 | Fujitsu Technology Solutions Intellectual Property GmbH | Clusteranordnung für dezentrale lastverteilung |
US7631225B2 (en) | 2004-10-01 | 2009-12-08 | Cisco Technology, Inc. | Approach for characterizing the dynamic availability behavior of network elements |
US7620714B1 (en) | 2003-11-14 | 2009-11-17 | Cisco Technology, Inc. | Method and apparatus for measuring the availability of a network element or service |
US8180922B2 (en) * | 2003-11-14 | 2012-05-15 | Cisco Technology, Inc. | Load balancing mechanism using resource availability profiles |
US7974216B2 (en) | 2004-11-22 | 2011-07-05 | Cisco Technology, Inc. | Approach for determining the real time availability of a group of network elements |
EP1862904A4 (en) * | 2005-03-22 | 2009-06-03 | Fujitsu Ltd | DISTRIBUTED PROCESS MANAGEMENT DEVICE, DISTRIBUTED PROCESS MANAGEMENT METHOD, AND DISTRIBUTED PROCESS MANAGEMENT PROGRAM |
JP2013097548A (ja) * | 2011-10-31 | 2013-05-20 | Pfu Ltd | 情報処理システム、情報処理装置、クライアント端末、情報処理方法、及びプログラム |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08235127A (ja) * | 1995-02-28 | 1996-09-13 | Chugoku Nippon Denki Software Kk | 自動負荷分散方法および装置 |
JPH09167135A (ja) * | 1995-12-15 | 1997-06-24 | Fujitsu Ltd | 処理分担決定システムと装置と方法 |
JPH09218842A (ja) * | 1996-02-14 | 1997-08-19 | Fujitsu Ltd | ロードシェアシステム |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6920475B1 (en) * | 1999-04-23 | 2005-07-19 | Oracle International Corporation | Communication architecture for distributed computing environment |
-
2001
- 2001-03-14 JP JP2001072907A patent/JP4612961B2/ja not_active Expired - Lifetime
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08235127A (ja) * | 1995-02-28 | 1996-09-13 | Chugoku Nippon Denki Software Kk | 自動負荷分散方法および装置 |
JPH09167135A (ja) * | 1995-12-15 | 1997-06-24 | Fujitsu Ltd | 処理分担決定システムと装置と方法 |
JPH09218842A (ja) * | 1996-02-14 | 1997-08-19 | Fujitsu Ltd | ロードシェアシステム |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220027200A1 (en) * | 2020-07-22 | 2022-01-27 | National Applied Research Laboratories | System for operating and method for arranging nodes thereof |
US11513858B2 (en) * | 2020-07-22 | 2022-11-29 | National Applied Research Laboratories | System for operating and method for arranging nodes thereof |
Also Published As
Publication number | Publication date |
---|---|
JP2002269060A (ja) | 2002-09-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5870604A (en) | Job execution processor changing method and system, for load distribution among processors | |
US8812682B2 (en) | Concurrent web based multi-tasks support for computer system | |
US7065526B2 (en) | Scalable database management system | |
JP3977698B2 (ja) | 記憶制御装置、記憶制御装置の制御方法、及びプログラム | |
US20080229320A1 (en) | Method, an apparatus and a system for controlling of parallel execution of services | |
WO2007023726A1 (ja) | 情報処理システム | |
WO2012063478A1 (ja) | セッション管理方法、セッション管理システム及びプログラム | |
JP4612961B2 (ja) | 分散処理方法および分散処理システム | |
US20050021511A1 (en) | System and method for load balancing in database queries | |
JP4663528B2 (ja) | 計算機割当システム | |
US6922832B2 (en) | Execution of dynamic services in a flexible architecture for e-commerce | |
EP1816565B1 (en) | Computer system and information processing method | |
CN107172149A (zh) | 大数据即时调度方法 | |
JP4434408B2 (ja) | 情報処理装置 | |
JP4792936B2 (ja) | 情報処理システムおよびライセンス管理方法 | |
JP2003330826A (ja) | 通信サーバシステムおよびそれを用いた通信方法 | |
KR101728873B1 (ko) | 그래프 질의 언어 분산처리시스템 및 그 질의 언어 분산처리방법 | |
JP6502872B2 (ja) | ネットワークシステム、システム管理方法およびシステム管理プログラム | |
KR102335687B1 (ko) | 클러스터링 구성 및 원격제어가 가능한 스케줄러 서버 시스템 | |
US20230176908A1 (en) | Systems, methods and computer program products for job management | |
JP2693460B2 (ja) | 分散ネットワーク・システム | |
JPH07101387B2 (ja) | データ処理装置 | |
JP2024074529A (ja) | 情報処理装置、情報処理システム、ジョブ割り付け方法とプログラム | |
EP3994575A1 (en) | Distributed system that promotes task-machine affinity | |
JPH03122715A (ja) | プリンタ選択装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080313 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100527 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100622 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100728 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100817 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100921 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20101012 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20101018 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131022 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4612961 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131022 Year of fee payment: 3 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131022 Year of fee payment: 3 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |