VNAアーキテクチャと今後の展開

「VNAアーキテクチャ」
慶應義塾大学
政策・メディア研究科 博士課程1年
中澤 仁
VNAアーキテクチャの概要

サービス統合ミドルウエア





サービス:情報家電機器あるいは計算機ソフト
ウエアの機能を制御するコンポーネント
VNAとVNAコンポーネント、機能テンプレート
VNAドメインと論理VNAドメイン
Virtual Plug&Play
Bottom-up構成とTop-down構成
VNAとVNAコンポーネント
VNAコンポーネント:機器の持つ機能
VNA:VNAコンポーネントの組み合わせ


VNA
C
VNAコンポーネント
A
A
Audio
Player
Power
Tape
I/O
Audio
Player
Timer
Audio
Player
Tuner
TV VNA
B
Power
Timer
Power
B
Tape
I/O
Timer
Power
VCR VNA
Audio
Player
Power
Phone VNA
VNAコンポーネントの構築

各機器内あるいは機器が接続されている
計算機内で動作するオブジェクト


現在の実装ではJava言語で構築される。
複数の入出力ポート



メディアタイプ
プロトコル
名前
Power
Audio
Player
Tuner
TV VNA
VNAコンポーネントの構築

記述ベース(VNA Markup Language)




名前:ヒューマンリーダブルな文字列
機能の説明:上に同じ
プロファイル
関連URL
名前:チューナ
説明:BSデジタルチューナ
ポート
BS Digital
VNAコンポーネント
ベンダ:東芝
バージョン:1.0
URL:http://~
ポート:in, out,
識別子:vna://~
位置:居間
VNAドメイン
Aggregated VNA Domain
一つのホームネットワークを
表す概念オブジェクト
VNAランタイム
VNA Domain/VNA
1台の情報家電機器を
表す概念オブジェクト
VNA Component
VNAコンポーネントディレクトリ



ディレクトリサーバは存在しない
ランタイム間でVNAコンポーネントの
プロファイルを共有
結果として



ドメイン内の全ランタイムがディレクトリを共有
ネットワーク負荷、メモリ負荷:高い
ユーザへの負荷:低い
論理VNAドメイン
Logical VNA Domain
VNAの構築

VNA Markup Language



VNAの構成要素である
VNAコンポーネントを機
能テンプレートによって
指定
機能テンプレート
位置:居間|ここ
説明:BSデジタル
小型の記憶媒体に入れて持ち運び、配布
ネットワーク上で配布、ダウンロード
VNAの構築

Bottom-up



複数のVNAコンポーネントを指定して、それら
の持つポート間の接続を定義
ユーザが自分自身でVNAを構築
Top-down


VNAを指定し、実行
あらかじめ定義されたVNAをユーザがダウン
ロードしてランタイムにロード
仮想Plug&Play

仮想情報家電機器をVNAドメインに指す


仮想Plug&Play
動作




VNAの読み込み
機能テンプレートの解析
VNAコンポーネントを発見
ポートを接続
実装

すべてJava言語により実装





JDK1.1.8以上
今後はC言語による実装を考察中
VNAコンポーネントとVNAの実装
機能テンプレートの実装
VNAドメイン/論理VNAドメインの実装
ユーザ、エリア、ドメイン

プロトタイプ


ドメインのみを扱った
今後

ユーザマネジメント


認証、嗜好、アクセス制御
エリアマネジメント

位置情報管理、エリア全体の嗜好
まとめ

次回のミーティングではデモを予定。
VNAコンポーネントとVNAの実装

VNAコンポーネント

jp.ac.keio.sfc.ht.jin.vna.serdget.Serdget
出力ポート
入力ポート
•VNA通信路端点
•VNA通信路識別子
•プロトコル未定義

VNAコンポーネント
•VNA通信路端点
•VNA通信路識別子
•プロトコル未定義
VNA

jp.ac.keio.sfc.ht.jin.vna.system.VNA
機能テンプレートの実装

機能テンプレート



「変体コンポーネント」



jp.ac.keio.sfc.ht.jin.vna.serdget.MetamorphicSerdget
jp.ac.keio.sfc.ht.jin.vna.serdget.LookupSerdget
与えられたヒントに合致する機能を提供するVNAコン
ポーネントに変体する。
1対1マッピング
「検索コンポーネント」


与えられたヒントに合致する機能を提供するすべての
VNAコンポーネントを検出する。
1対多マッピング
VNAドメイン/論理VNAドメインの
実装

VNAドメイン




論理VNAドメイン


VNAコンポーネント「DomainManager」として実装
ランタイムごとに一つのインスタンスが存在し、ランタ
イム内の全VNAコンポーネントを階層構造で管理。
発注仕様書:VNAコンポーネント表
VNAの実装クラスが論理VNAドメインを提供
ドメインアグリゲーション

「DomainManager」がTreeSynchronizerクラスを提供

IPマルチキャストで到達可能なネットワーク上に存在する
VNAドメインの階層を共有する。
Elapsed time (msec)
評価1:バイトコードサイズと
Serdgetのロード時間
10
9
8
7
6
5
4
3
2
1
0
1.1
1.4
1.6
1.9
2.1
2.3
2.6
Bytecode size (KBytes)
2.8
3.1
3.3
Elapsed time (msec)
評価2:jarファイルサイズと
Serdgetロード時間
10
9
8
7
6
5
4
3
2
1
0
0.2
0.4
0.6
0.8
1.0
1.2
1.4
Size of jar file (MBytes)
1.6
1.8
2.0
評価3:機能テンプレート数と
Virtual Plug&Play時間
45
Elapsed Time (msec)
40
35
30
25
20
15
10
5
0
1
2
3
4
5
6
7
Number of MetamorphicSerdgets
8
9
10
評価4:Serdget数とVNAドメイン
アグリゲーション所要時間
Elapsed time (msec)
3000
2500
2000
Average
Maximum
Median
Minimum
1500
1000
500
0
6
16
26
36
46
Number of Serdgets
56