設計
4.5 Usdl Control Server の設計
本節ではUsdl Control Serverの設計について解説する.Usdl Control ServerはuMe- diatorからの問合せに応答するuMediator処理系とUsdl Delivery Server(UDS)から の新規登録usdlファイル情報の処理を行うUDS処理系,データベース制御部,Usdl Informationデータベースにより構成される(図4.13).uMediator処理系はuMediator 接続待機部とuMediatorリクエスト応答部,UDS処理系はUDS接続待機部とUSDL 解析部より構成される.次項より各処理部の詳細を述べる.
図 4.13: Usdl Control Serverの構成
4.5.1 uMediator 接続待機部
uMediator接続待機部はuMediatorからの接続待ちを行う.uMediatorから接続依 頼があると新規チャネルを作成する.それにより複数の接続依頼があった場合にも個 別に対応可能になる.
4.5.2 uMediator リクエスト応答部
uMediatorリクエスト応答部はuMediator接続待機部からチャネルとして作成され,
uMediatorからのリクエストに応答する.まず,uMediatorからのリクエストメッセー
ジを受信し解釈する.リクエスト内容は指定idの継承リスト要求と関係性リスト要求 の二種類である.各要求を受けた場合,本処理部ではデータベース制御部(4.5.3項参 照)へ要求情報の取得を依頼し,Usdl Informationデータベース(4.5.4項参照)から 情報を取得する.取得情報をuMediatorに返信することでリクエストの応答を完了す る.取得情報の返信はリクエストを受信した際のコネクションを利用して行う.
4.5.3 データベース制御部
データベース制御部は4.5.4項で解説するUsdl Informationデータベースの制御を行 う処理部である.制御内容はuMediatorリクエスト応答部からの依頼に応じてinherit,
relationshipのデータ取得,またUSDL解析部で解析・取得した新規usdlファイル情 報の登録の二つである.
4.5.4 Usdl Information データベース
本Usdl Control Serverに属するUsdl Delivery Serverに登録されたusdlファイルの idと他のusdlファイルとの関係性を保存するデータベースである.また,本データベー スの操作はデータベース制御部からのみ行われる.
4.5.5 Usdl Delivery Server 接続待機部
UDS接続待機部はUsdl Delivery Serverからの接続待ちを行う.Usdl Delivery Server から接続依頼があると新規チャネルを作成する.それにより複数の接続依頼があった 場合にも個別に対応可能になる.また,uMediator接続待機部とは受信データの形体 が異なるため,別ポートで待機することで処理系統を分離しその後の処理を行いやす くする.
4.5.6 USDL 解析部
USDL解析部はUDS接続待機部からチャネルとして作成され,USDLデータを受信 しid要素とinherit要素, relationships要素の値を解析・取得し,データベース制御部を 利用しUsdl Informationデータベースに登録する.この際,inherit値とrelationships 値はそのまま登録するのではなく,既にデータベースに登録されているデータから補足 可能かどうか走査し,補足したデータを登録する.以下にinheritの走査とrelationship の走査について解説する.
inheritの走査
受信USDLデータから取得したinherit値の継承情報をデータベースから取得する.
つまり受信USDLデータの継承元idの継承情報をデータベースから取得する.取得 データがカンマ区切りで複数存在する場合は,それらが受信USDLデータの継承リス トである.ゆえに,それらをデータベースに登録する.また,取得値が一つの場合はさ らにその取得データに対し,inherit情報をデータベースから取得し値がカンマ区切り で一つ以上存在するか調べ,複数存在する場合は先ほどと同様に処理する.値が一つ の場合は,さらに取得値に対しinherit情報をデータベースから取得するということを 繰り返す.もし,inherit値が存在しなくなった場合はそこまでに走査した値をカンマ 区切りにしたものが継承リストとなる.ゆえにその継承リストをinherit値としてUsdl Informationデータベースに登録する.
relationshipの走査
受信USDLデータから取得したrelationships値をデータベースから取得する.取得 データに変数を含む式が存在する場合は,その変数を導く関係性の式も変数に代入し 新たな関係性の式になる.ゆえに,データベースから変数名を示すidのrelationship 値を取得し,それを代入した式も新たなリストとして追加する.これを再帰的に行い データベースに登録することで一つの変数に対して多くの関係性を式で表現すること が可能になり,欠如データ算出部での算出成功可能性を向上させることが可能になる.