• 検索結果がありません。

ネットワークストリーミング管理 制御機構の実装

5 章 ネットワークストリーミング管理

5.2. CLIENT5章 ネットワークストリーミング管理制御機構の実装

5.2.1 実装環境

本機構におけるClient部の実装環境を表5.1に示す.

表 5.1: Client部: 開発環境 OS Linux kernel 2.6 開発言語 C言語 コンパイラ gcc 4.0.1 メディア転送 DVTS アプリケーション MPEG2-TS

5.2.2 取得部

取得部では,自ノードの機器情報を取得し,Managerへ登録可能な形に整形する.本実 装では,機器情報を機器情報設定ファイルから取得する.デフォルトの機器情報設定ファ イル名は,”node info.conf”とする.

5.2.3 通信部

通信部では,大きく分けて以下の処理を行う.

サービス解決

Managerのアドレスを自動的に取得

Managerとの通信

4.3.2項で述べたManagerへの登録処理,およびManagerとのkeepalive,Manager からの制御情報の受信

5.2.4 制御部

制御部では,Managerから受信した制御情報に基づき,メディアストリーミングに用 いられるアプリケーションの操作,および終了を行う.この際,Managerへは出入力機器 名を用いて登録しているため,出入力機器名と実行環境におけるデバイスファイル名との 対応情報をファイルから取得する.デフォルトの対応情報ファイル名は,”device.conf”と する.

5.3. MANAGER5章 ネットワークストリーミング管理制御機構の実装

5.3 Manager

本節では,Clientの情報を蓄積,および交換を行い,その情報に基づきClientの制御を

行うManager部の実装について述べる.

Managerは,Clientのサービス探索への応答部,Clientとの通信部,Clientのノード情 報管理部,Manager間の情報交換部,Web Interface部によって構成される.基本的な処 理の流れは,Clientからのコネクションを通信部が受け付け,Clientのノード情報を受信 する.情報管理部が,受信したClientのノード情報を処理し,データベースに情報を格 納する.情報交換部は,予め指定されたマルチキャストグループアドレスへJoinし,自 Managerが保持するClientのノード情報を送信し,また,他ManagerのClientのノード 情報を受信する.情報交換部が受信した他ManagerのClientのノード情報も,情報管理 部によってデータベースに格納される.Web Interface部は,データベースに格納された ノード情報を,Webから閲覧可能な形にする.Web Interfaceは,Clientノードを操作す る機能をもち,ユーザが操作をすると,情報管理部によりユーザの操作に対応するノード の情報が参照され,その情報に基づき,通信部がClientへ制御情報を送信する.

以下各項で,各部の実装について述べる.

5.3.1 実装環境

本機構におけるManager部の実装環境を表5.2に示す.

表 5.2: Manager部: 開発環境

OS Linux kernel 2.6

通信部開発言語 C言語 コンパイラ gcc 4.0.1

Web server Apache 2

Webインターフェイス開発言語 PHP 4 データベース MySQL

5.3.2 応答部

応答部では,Clientが送信したサービス探索リクエストを受信すると,リクエストに応 答し,Clientに自身のアドレスを通知する.

5.3.3 通信部

通信部では,Clientとの通信を行い,Clientからの登録要求の受付,およびClientとの keepalive,Clientへの制御情報の送信を行う.

5.3. MANAGER5章 ネットワークストリーミング管理制御機構の実装

5.3.4 情報管理部

情報管理部では,Clientや他Managerから受信したノード情報を処理し,データベー スに格納する.

情報管理部によって管理されるデータベースのテーブル構成を表5.3に示す.

表 5.3: database: MANAGER

table 説明

MANAGER INFO 他Manager情報

NODE INFO 自Managerで管理しているClientノード情報 FOREIGN NODE INFO 他Managerが管理しているClientノード情報

また,それぞれのテーブルにおける,フィールド構成をそれぞれ表5.4,表5.5,表5.6 に示す.

表 5.4: table: MANAGER INFO

Field Type 説明

manager id bigint 一意なID

manager addr varchar 情報を管理しているManagerのIPアドレス manager hostname varchar Managerのホスト名

表 5.5: table: NODE INFO

Field Type 説明

id bigint 一意なID

address varchar Clientノードのアドレス

hostname varchar 本機構で用いられるClientノードのホスト名

function varchar 映像転送における機能

format varchar 映像転送で利用可能なフォーマット

device varchar 映像の出入力に用いられる機器

port int ポート番号(optional)

subscribe date timestamp 登録日時

out av int 送信構成フラグ

in av int 受信構成フラグ

in use bigint 使用状況

5.3. MANAGER5章 ネットワークストリーミング管理制御機構の実装

表 5.6: table: FOREIGN NODE INFO

Field Type 説明

id bigint 一意なID

manager id bigint 情報を管理しているManagerのID foreign id bigint 管理しているManagerでのID

address varchar ClientノードのIPアドレス

hostname varchar 本機構で用いられるClientノードのホスト名

function varchar 映像転送における機能

format varchar 映像転送で利用可能なフォーマット

device varchar 映像の出入力に用いられる機器

port int ポート番号(optional)

subscribe date timestamp 登録日時

out av int 送信構成フラグ

in av int 受信構成フラグ

in use bigint 使用状況

5.3.5 情報交換部

情報交換部では,他Managerとのノード情報の交換を行う.ノード情報の交換に当たっ ては,以下のように処理を行う.

他Managerとのメッセージの交換

共有されたマルチキャストグループアドレスを用い,IPマルチキャスト通信によっ

てManager間でメッセージの交換を行う.また,自身が管理するノード情報に変更

が発生した場合にも,IPマルチキャスト通信によって,他Managerへ情報を配信 する.

他Managerとのノード情報の交換

新しくマルチキャストグループアドレスにJoinしたManagerへ,自身の管理する ノード情報を通知する.

5.3.6 Web Interface

Web Interface部では,情報管理部によってデータベースに格納されたノード情報を,

PHPを用いてユーザから閲覧可能な状態にする.また,ユーザはPHPを用いて表示され たノード情報を用いて,登録されたノードの操作ができる.

関連したドキュメント