RSS/1b サーチエンジン システム構成解説書
Copyright (C)2001,2002,2003 satoshi akabane(akabane@logical-paradox.org)


RSS/1b サーチエンジンは，下記のモジュールで構成されている．システムの開発は
モジュール単位になるため，特定のモジュールが存在しなくても，ある程度は動作を
検証することができる．


システム名:【探索ノード】

探索ノードは，下記のモジュールで構成されている:

・探索ロボット
・探索エージェント
・経路ナビゲータ
・ローカルコンテンツ管理システム


	モジュール名:[探索ロボット]

	探索ロボットは，探索エージェントの取りまとめを行なう．
	探索ロボットが起動する際，コンフィグで指定された数量のエージェントと，
	経路ナビゲータを生成される．探索ロボットは経路ナビゲータを介して，
	探索の経路を受け取ったり，取得したコンテンツの転送を行なう．

	モジュール名:[探索エージェント]

	探索エージェントは，探索ロボットによって生成される．
	探索エージェントは，単に指定されたURLにアクセスし，コンテンツを取得する
	だけの作業を行なう．
	取得したコンテンツは，探索ロボットに対して転送する．

	モジュール名:[経路ナビゲータ]

	経路ナビゲータは，探索ロボットによって生成される．
	経路ナビゲータは，経路決定ノードと通信をして，探索経路を決定したり，
	探索の状況を通知したり，あるいは探索ノードから，他の探索ノードの探索情報
	を受信したりする．
	また，ローカルコンテンツ管理システムと通信を行ない，探索されたコンテンツを
	ローカルのコンテンツ管理システムへ転送したりする．

	モジュール名:[ローカルコンテンツ管理システム]

	ローカルコンテンツ管理システムは，経路ナビゲータとリモートのコンテンツ
	管理ノードに接続される(standalone設定になっている場合，リモートの
	コンテンツ管理ノードには接続されない)．
	ローカルコンテンツ管理システムの目的は，探索とコンテンツ転送を非同期化
	することにある．
	経路ナビゲータから渡されたコンテンツは，コンテンツ管理システム内部に一時
	的に保管され，適当なタイミングでリモートのコンテンツ管理ノードへ転送
	される．
	ローカルのコンテンツ保有限界量を超えた場合，経路ナビゲータに探索を停止
	させ，ローカルに保有している全てのコンテンツをリモートのコンテンツ管理
	ノードに転送する．転送が完了した場合，探索を開始させる．



システム名:【経路決定ノード選択子】

	経路決定ノード選択子は，探索ノードがどの経路決定ノードに割り当てられるかを
	選択する．また，経路決定ノードの割り当て状況を一元管理するシステムでもある．
	全ての探索ノードは，このシステムを介して経路決定ノードを選択し，また解放
	する．
	同時に，全ての経路決定ノードクライアント生成子は，このシステムにバインドされる．



システム名:【経路決定ノード】

経路決定ノードは，下記のモジュールで構成されている:

・経路決定ノードクライアント生成子
・経路決定ノードクライアント
・経路決定ノードクライアントクライアント

	モジュール名:[経路決定ノードクライアント生成子]

	経路決定ノードクライアント生成子(経路決定ノードクライアントファクトリ)は，経路決定ノードの中核をなす
	モジュールをなす．
	経路決定ノードクライアント生成子は，経路決定ノード1つに対して1つだけ生成され，探索ノードの
	要求に合わせて経路決定ノードクライアントを生成したり，割り当てたりする．
	また，経路決定ノード間での情報共有/交換処理なども行なう．
	経路決定ノードクライアント生成子は，必ず経路決定ノードクライアント選択子にバインドする必要がある．

	モジュール名:[経路決定ノードクライアント]

	経路決定ノードクライアントは経路決定ノードクライアント生成子によって生成される．
	経路決定ノードクライアントはスレッドとして動作する．
	経路決定ノードクライアント1つに対して，複数の探索ノードが割り当てられる．
	経路決定ノードクライアントは，複数の探索ノードの取りまとめを行ない，探索ノード間での
	情報共有/交換を行なう．また，経路決定ノードクライアント生成子と通信を行ない，別の
	経路決定ノードとの情報共有/交換も行なう．経路決定ノードクライアントないし経路決定ノードクライアント
	生成子間での情報共有処理は，適当なタイミングで，他のモジュールとは
	非同期的に行なわれる．
	経路決定ノードクライアントは，経路決定ノード内外での情報共有の中核をなす．


	モジュール名:[経路決定ノードクライアントクライアント]

	経路決定ノードクライアントクライアントは，経路決定ノードクライアントによって生成され，探索ノードと
	1対1で割り当てられる．
	探索ノードの経路ナビゲータは，このリモートインターフェースを介して
	経路決定ノードとの全ての通信を行なう．



システム名:【リモートコンテンツ管理ノード】

リモートコンテンツ管理ノードは，下記のモジュールで構成されている:

・リモートコンテンツ管理システム
・コンテンツレジスタサービス
・コンテンツアクセサ
・コンテンツ登録エージェント


	モジュール名:[リモートコンテンツ管理システム]

	リモートコンテンツ管理システムは，1つのリモートコンテンツ管理ノードに
	1つだけ生成される．
	リモートコンテンツ管理システムは，コンテンツ登録サービスと，コンテンツ
	検索サービスを外部に提供する．
	リモートコンテンツ管理システムが起動する際に，コンテンツレジスタサービスや
	コンテンツ検索サービスが指定数生成され，サービス登録される．
	また，コンテンツデータストレージエンジン(多くの場合，RDBMS)に対する
	アクセサも生成する．
	サービス利用状況に応じて，コンテンツレジスタサービスやコンテンツ検索
	サービスの数量などを調整する．

	モジュール名:[コンテンツレジスタサービス]

	コンテンツレジスタサービスは，リモートコンテンツ管理システムによって
	生成され，同システムと同じJVM上に配置される．
	コンテンツレジスタサービス1つあたり，多くの場合，複数のローカルコンテンツ
	管理システムに接続される(つまりコンテンツレジスタサービス1つを複数の
	探索ノードが共有する形になる)．
	コンテンツレジスタサービスは，ローカルコンテンツ管理システムから配送された
	コンテンツを，リモートコンテンツ管理ノードに1つだけ存在するコンテンツ
	キューに対して蓄積する．
	実際のコンテンツ登録作業は，コンテンツレジスタサービスが持つコンテンツ
	登録エージェントが行なう．

	モジュール名:[コンテンツ登録エージェント]

	コンテンツ登録エージェントは，コンテンツキューに格納されているコンテンツを
	非同期的にコンテンツデータストレージエンジンに登録する．
	コンテンツ登録は，コンテンツアクセサを介して行なわれる．

	モジュール名:[コンテンツアクセサ]

	コンテンツアクセサは，コンテンツデータストレージエンジンと通信するための，
	インターフェースとして機能する．
	コンテンツアクセサがどのような種類のストレージエンジンに対して接続される
	かは，どのコンテンツアクセサファクトリクラスを選択したかに依存する．
	または，コンテンツアクセサファクトリクラスの実装に依存する．

