Next: Ninf サーバ
の選択
Up: メタサーバ
Previous: メタサーバ
の設計方針
上記の要件をみたすようにメタサーバ
を以下の様に設計した。
- メタサーバ
は、クライアントからのリクエストをNinf サーバ
に中継する。
メタサーバ
には複数のNinf サーバ
を登録することができ、
メタサーバ
は、計算のリクエストを適切なNinf サーバ
に対して
委譲する。 ``適切''なNinf サーバ
に関しては後で述べる。
- メタサーバ
は他のメタサーバ
と通信し、情報を共有する。
メタサーバ
を単体のサーバとして設計すれば、情報の管理は
集中するため容易になるが、将来的にボトルネックになることは
容易に想像がつく。
複数のメタサーバ
を独立して立てることも考えられるが、
新たにNinf サーバ
を立てる際には、可能な限り多くの
メタサーバ
に登録してもらわなければならない。これは
繁雑である。これを避けるために、メタサーバ
間での通信の
プロトコルを作成し、メタサーバ
間での情報の共有を可能にした。
これにより、Ninf サーバ
を立てる際には、最寄りのメタサーバ
に対して
登録を行なえば、その情報は自然に伝搬するため、世界中からアクセス
されることが可能になる。
- 並列実行を実現するために、クライアントプログラムに計算のトランザクション
という概念を導入する。
トランザクションは、いくつかの連続する Ninf計算の呼びだしであり、
ユーザによって明示的に定義される。
クライアントは、トランザクションを一括して、メタサーバ
に投げる。
メタサーバ
はトランザクションを構成する計算を適宜スケジューリングし、
Ninf サーバ
に計算を依頼する。
トランザクションの設定はプログラムへのわずかな変更で行なえる。
メタサーバ
の構造を図5に示す。
図: メタサーバ
ネットワーク
Hidemoto Nakada
Tue Feb 20 18:17:47 JST 1996