1: 2008-12-21 (日) 03:29:18 iseki  |
現: 1970-01-01 (木) 18:00:00  |
- | ** 情報サーバの動作 [#ye7399f6] | |
| | | |
- | *** 情報収集サーバ[#y11a7c4b] | |
- | | |
- | 情報サーバ([[sl_info]])は,起動すると最初に情報収集サーバと呼ばれるプロセスを1個だけforkします.これは [[sl_cache]]のキャッシュPUTサーバと同じ考え方です.~ | |
- | 情報収集サーバはキャッシュPUTサーバと同様にSIMの情報をDBへ保存します.情報収集サーバにSIMの情報を集約しするのは2つの理由からです. | |
- | | |
- | +データ保存時のファイルロックの問題を避けるため(書き込むプロセスが1個だけならファイルロックの問題は生じない). | |
- | +情報収集サーバへ接続できるのは localhost のみとし,これによりある程度のセキュリティを確保する. | |
- | | |
- | DBに保存されるSIMのデータは | |
- | - SIM名(最大31文字まで) 32Byte | |
- | - SIMのGUID 40Byte | |
- | - SIMのリージョンハンドル. 8Byte | |
- | - SIMのIPアドレス.バイナリ4Byte | |
- | - SIMのアクセス属性 2Byte | |
- | - 保存されているデータの状態 2Byte | |
- | - SIMのポジション(X座標) | |
- | - SIMのポジション(Y座標) | |
- | - 更新時間 (Linuxタイム) | |
- | | |
- | 送られて来るSIMの情報は,現在のところ,Viewer(アバター)がハンドシェイクしたSIMの情報のみです.従って,ホワイトフィルタの制限がかかっている状態のアバターからは新しいSIMの情報が送られてくることはありません.~ | |
- | なぜならば,ホワイトリストの制限がかかっている状態とは,以下のような状態のことだからです. | |
- | - アバターが訪れることのできるSIMはデータベースにデータが存在し,かつそのSIMがホワイトリストにより許可されている場合だけである. | |
- | - 訪れることのできないSIMは,ハンドシェイクができないということなので,それらの情報を得ることはできない. | |
- | | |
- | 新しいSIMの情報を集める場合は,ホワイトリストの制限のかかっていないアバターを使用しなけばなりません.なお,[[sl_relay]]での収集自体は特別な操作を行うことはありません.訪れたことのないSIMの辺りをアバターが飛び回っているだけで,自動的に情報が情報収集サーバに送られます. | |
- | | |
- | | |
- | 情報収集サーバはSIM情報の他に,sl_relayを利用しているユーザ(アバター)の情報も収集します(ただしDBには保存されません).~ | |
- | 収集するアバター情報は以下の通りです. | |
- | - アバターの名前 | |
- | - アバターのエージェントID | |
- | - ViewerのIPアドレス | |
- | - アバターが現在いる SIMの名前 | |
- | - 情報の更新時間 (Linux時間) | |
- | | |
- | 「アバターが現在いるSIMの名前」については,データベース上にそのSIMのデータがないと情報を得ることはできません. | |
- | | |
- | sl_info を ''-l'' オプションで起動した場合,収集したアバタの情報は指定されたログファイルに保存されます.~ | |
- | デフォルトは ''/var/sl_proxy/sl_info_agent.log'' です. | |
- | | |
- | *** sl_relay とのネゴシエーション [#y86b782b] | |
- | リレーサーバ([[sl_relay]]) は ''-is'' または ''-wf'' のオプション付で起動された場合,[[Second Life]]へのログイン処理の途中で情報サーバ([[sl_info]])に接続をしてきます.[[sl_relay]]から接続を受けた情報サーバはコントロール用プロセスをforkします.forkされたコントロール用プロセスはsl_relayとネゴシエーションを行い,それぞれの使用ポート番号や接続用のパスワードを交換します.~ | |
- | 従って情報サーバのコントロールプロセスは[[sl_relay]]を利用するアバター毎に起動されます. | |
- | | |
- | 情報サーバのコントロールプロセスはその後,情報収集サーバへ情報を転送する中継プロセスを forkします.このプロセスは sl_relayからのアバターとSIMの情報データを受信し,情報収集サーバへそのまま転送します.~ | |
- | | |
- | コントロールプロセスはその後ループに入り,情報提供サーバとして,(UDP/HTTPS)中継コントローラーからのリクエストを待ちます. | |
- | | |
- | *** 情報提供サーバ [#l702a61f] | |
- | 情報サーバのコントロールプロセスは,情報収集サーバへ情報を転送する中継プロセスをforkした後,情報提供サーバとして作動します.~ | |
- | 情報提供サーバは以下の情報を提供することができます.現バージョン(1.5.1)の[[sl_relay]]では,情報提供サーバは専らホワイトリストの検索に使用します. | |
- | + リージョンハンドルに対応したSIMの名前 | |
- | + SIM名によるホワイトリストの検索(ホワイトリストに該当SIMが含まれているかどうか) | |
- | + リージョンハンドルによるホワイトリストの検索(ホワイトリストに該当SIMが含まれているかどうか) | |
- | | |
- | ホワイトリストに関する事柄は 「[[ホワイトリストフィルタ>../White List Filter]]」 を参照してください. | |