Sun Java System Instant Messaging 7.2 管理ガイド

Instant Messaging ユーザーパーティション分割アルゴリズム

Instant Messaging は、配備内のユーザーの最適な分割方法を決定し、ユーザーのグループ、つまりパーティションを作成します。Instant Messaging が使用するアルゴリズムは、次のとおりです。

  1. 配備内で 1 つ以上のユーザーセット、つまりユーザーネットワークと、それらの接続関係を決定します。次に、リダイレクトサーバーは各ユーザーをユーザーネットワークにマップするためのユーザー - ネットワーク間のマップと呼ばれるテーブルを作成します。

  2. 最大パーティションサイズよりも大きいユーザーネットワークが存在する場合、それらをもっとも弱い結合のところでパーティション分割します。このとき、分割後の各コンポーネントの最大サイズが設定されたパーティションサイズよりも大きくならないように留意します。分割する箇所として弱い結合を特定する際には、ユーザーネットワーク間で接続の数が少ない箇所を特定することが決め手の一つになるかもしれません。ただし、地理的な制約、ユーザーネットワークごとの接続数、管理者によって設定されたその他の制約といったほかのパラメータも、ユーザーネットワークのパーティション分割時に考慮されることがあります。

  3. これらのセットを、指定された数のほぼ同じサイズのパーティションに分配します。リダイレクトサーバーは、まずネットワーク - パーティション間テーブルをこのプロセスの一部として作成し、最後にユーザー - パーティション間テーブルを作成します。これらのテーブルをまとめたものが、リダイレクトデータベースです。リダイレクトデータベースは、各ユーザーを 1 つのパーティション ID にマップします。このデータベースを作成および管理するには、rdadmin コマンド行ユーティリティーを使用します。


例 7–1 Instant Messaging リダイレクトのイベントシーケンス

この例では、正常なクライアントリダイレクトが行われる場合のイベントシーケンスについて説明します。

  1. 管理者が、rdadmin を実行することで、リダイレクトデータベースの生成または更新、あるいはその両方を行います。

  2. ユーザーがリダイレクトサーバーに接続し、認証を試みます。

  3. リダイレクトサーバーが、そのユーザーのアイデンティティーを決定し、対応するユーザー ID をリダイレクトデータベース内で検索します。

  4. リダイレクトデータベース内でそのユーザー ID が見つからない場合、リダイレクトサーバーは (ラウンドロビン機構で決定される) 次のリダイレクトサーバーにアクセスし、そのユーザー ID を含むリダイレクトデータベースを探します。そのユーザー ID がリダイレクトデータベース内で見つかった場合、リダイレクトサーバーはそのユーザーが割り当てられているパーティション ID を取得します。

  5. リダイレクトサーバーが、ユーザーのリダイレクト先となるノードを、割り当てられたパーティション ID に基づいて決定します。

  6. リダイレクトサーバーは、リダイレクト先のノードを含むエラーをクライアントに返し、クライアントへの接続を閉じます。

    リダイレクトサーバーは、see-other-host ストリームエラーを使ってこの情報をクライアントに返します。詳細は、RFC 3920 を参照してください。

  7. クライアントがそのエラーを解釈し、そのエラーが返されたノードへの接続を確立します。

  8. リダイレクトサーバーはノードを継続的に監視し、そのパーティションからホストへのテーブルを必要に応じて更新します。