More Related Content More from harmonylab (20) godo m2. 背景
単体としての組み込みデバイス
組み込みシステムの多様化
ネットワーク構造の一部を担う組み込みデバイス
“部品”としての組み込みデバイス
携帯電話,オーディオプレイヤー
自動車,FA
Device As A Service(DAAS)
傾向
ネットワークに接続された組み込みデバイスを
別のプロセッシングユニットから使用する考え方
ネットワーク
プロセッシング ユニット
アクチュエータ
センサ
・ロードバランス,ロバスト
・デバイス利用の多様化
課題
・構成変更に伴う管理
・デバイスの操作方法統一
分散ネットワーク型での例
組み込み デバイス
被管理
デバイス
プロセッシングユニット
利点
センサ
アクチュエータ 3. Autonomic Computing Architecture
Monitor
Analyze
Planning
Execution
knowledge
policy
MAPEループ
分散ネットワークシステムの自己管理を目指す アーキテクチャ
-MAPEループによって構成される知識ベース の管理システム
エンタプライズ系のシステムを対象
先行研究
[IBM,秋山一人,2007]
-Javaや非リポジトリベースのアーキテクチャの提案と,複合機によるプロトタイプの実装
-更にエンタプライズ系のシステムのAMとの連携が可能なことを示した.
(情報の保持方式と通信の仕様について)
組み込みデバイスのためのオートノミック・コンピューティング・アーキテクチャ
ACアーキテクチャの柔軟性を,組み込みデバイスで扱うためには,
組み込みデバイス固有の仕様差を吸収するアーキテクチャの拡張が望まれる.
-Knowledge内の動作policyの変更による
動作変更の柔軟性 5. 目的
分散ネットワーク型組み込みシステムでの自己管理機能の実現
1.プロセッシングユニットの取り外し
③被管理デバイスの操作継承
①監視によって通信の不通を認識
②情報の共有と分析によって取り外しと認識
2.ネットワークインタフェースの切り替え
P
P
P
①インタフェース変更の認識
③代替通信手段の確立
②情報の共有
①認識
①認識
②共有
③通信確立
③通信確立
ネットワーク
P
P
P
①認識
①認識
②共有
③操作継承
AC Architecture
の枠組みで対応
デバイス操作
方法の仕様差
インターフェース 間の差異 6. DLL #2
デバイスの仕様差を吸収する技術
SQLparserメインプログラム
インタフェース
ソケット通信
被管理デバイス#1
被管理デバイス#2
DLL #1
②内部変数の変更
③内部変数の変更に応じた操作
SQL parser
操作可能なデバイスの
拡張を容易にできる.
Select
Update
descript
柔軟なデバイス操作を可能に
SQLクエリ
デバイスのアクセス方式の多様性を
吸収することを目的としたミドルウェア
SQLクエリによってデバイスの操作
[TripodWorks社]
DLLファイルにデバイスの操作記述
secure SQL parser 8. アーキテクチャの提案
M
A
P
E
knowledge
プロセッシングユニット
secure
SQL
parser
Interface#1
Device
#1
Device
#2
Device
#3
Application
Daemon#1
#1
#2
#3
デバイス操作の
差異を吸収
アーキテクチャの全体像
DLL
MAPEループによる
操作の自律化
実環境で利用する際に環境からの影響や,複数の協調を実現した場合の
振る舞いは予測が困難であるため,検証が必要であるといえる.
Interface#2
Daemon#2
他プロセッシングユニット
Dispatcher
インタフェース間の
差異を吸収 10. プロトタイピング全体図
プロトタイピングの構成と機材についての説明
NXT
TriBOARD
Bluetooth connection
Ethernet connection
ネットワーク
P
P
P
プロセッシング ユニット
被管理デバイス
ネット ワーク
T提案
アーキテクチャ
MindStrom NXT
―前方の距離を測ることができる
(超音波センサーを使用)
―地面の色の判別ができる
(光センサーを使用)
―BluetoothによるTriBOARDとの 通信が可能
TriBOARD(マイコン)
―Arm9(400MHz)
―Memory 128Mbyte
―外付けbluetoothドングル(planex)
―Ethernetポート
ネット ワーク
一定距離を保ち
ライントレース 11. プロトタイピング全体図
プロトタイピングの構成と機材についての説明
NXT
TriBOARD
Bluetooth connection
ネットワーク
P
P
P
プロセッシング ユニット
被管理デバイス
ネット ワーク
MindStrom NXT
―前方の距離を測ることができる
(超音波センサーを使用)
―地面の色の判別ができる
(光センサーを使用)
―BluetoothによるTriBOARDとの 通信が可能
TriBOARD(マイコン)
―Arm9(400MHz)
―Memory 128Mbyte
―外付けbluetoothドングル(planex)
―Ethernetポート
・前方との測距情報を取得
・管理するTriBOARDに送る
・出力量の制御はTriBOARDが行う
Ethernet connection
・他のTriBOARDからの疎通監視
・取得した情報(疎通,距離)をTriBOARDへ送信
・管理するNXTの出力量制御を行う
T提案
アーキテクチャ
一定距離を保ち
ライントレース 12. プロトタイピング全体図
プロトタイピングの構成と機材についての説明
NXT
TriBOARD
Bluetooth connection
ネットワーク
P
P
P
プロセッシング ユニット
被管理デバイス
ネット ワーク
MindStrom NXT
―前方の距離を測ることができる
(超音波センサーを使用)
―地面の色の判別ができる
(光センサーを使用)
―BluetoothによるTriBOARDとの 通信が可能
TriBOARD(マイコン)
―Arm9(400MHz)
―Memory 128Mbyte
―外付けbluetoothドングル(planex)
―Ethernetポート
Ethernet connection
T提案
アーキテクチャ
・他のTriBOARDからの疎通監視
・取得した情報(疎通,距離)をTriBOARDへ送信
・管理するNXTの出力量制御を行う
・前方との測距情報を取得
・管理するTriBOARDに送る
・出力量の制御はTriBOARDが行う
操作の継承 13. デバイス間の仕様差を吸収するミドルウェアの実装
↑secure SQL parser
データテーブル
ID
Name
Value
0
Output
30
1
Dist
70
2
Status
STOP
プロトタイプシステム実装
1.MindStormNXT制御量の送信
2.計測距離の取得
3.MindStormとのBluetoothコネクション接続・切断
secure SQL parserを用いた操作
update NXT_Config#1 set
Value=‘40’
where Name=‘Output’
制御量の設定
select Value from NXT_Config#1
Where Name = ‘Dist’;
計測距離取得
update NXT_Config#1 set Value=‘START’
where Name=‘Status’;
Bluetoothコネクション
デバイス操作
Bluetoothパケット
アプリケー ション・MAPE
MindStormNXT 14. プロトタイプシステム実装
MindStormNXTの状態監視機能
Monitoring
別プロセス
A.MindStorm NXTの監視機能
1.secureSQLparserを経由して距離の取得
2.取得した距離情報を距離キューへプッシュ
3.他TriBOARDへの距離情報送信と受け取り
Sミリ秒間隔で,問い合わせSQLクエリstrを送信
情報
値
距離問い合わせ間隔s[ms]
500
問い合わせクエリstr
select Value from NXT_Config where Name = “Dist”;
距離キュー j j={0..2}
0~255
関連するknowledge
A.NXTの監視
B.通信の監視 15. プロトタイプシステム実装
MAPEループ内のネットワーク監視機能
Monitoring
別プロセス
B.通信の監視機能
1.通信疎通確認のための通知
2.他TriBOARDとの通信疎通の判定
nミリ秒間隔でハートビット(HB)データ送信
過去m秒以内に通信が無い
TriBOARDが存在するか?
No
Yes
不通のTriBOARDに対 応したシンプトン値を
キューにプッシュ
A.NXTの監視
B.通信の監視
情報
値
TriBOARDのID:i
{0,1,2}
HB送信間隔n[ms]
1000
不通閾値m[ms]
3000
TriBOARD# jへ不通シンプトン
j
シンプトンキューj
{0,1,2}
関連knowledge
3.他TriBOARDとのシンプトン共有
―発生したシンプトンは全TriBOARDに送信
―TriBOARD#Jからシンプトンを受けた
シンプトンキューjにプッシュ
シンプトンは自身が発行したものと
共有したものを利用できる 16. symptonと状態から変更要求の導出
プロトタイプシステム実装
関連するknowledge
基本動作
Monitoringが発行,共有したシンプトン
1
2
シンプトン0
シンプトン#1
シンプトン#2
“現在のネットワーク状態“を出力
アナライズポリシ1
変更要求としてa{a∈N}を出力
NXT管理情報
0
0
(通信の不通による非対称性がある)
TriBOARD ID : i
a
アクションの要求意味
0
NXTの操作放棄
1
NXT#0の操作継承
2
NXT#1の操作継承
3
NXT#2の操作継承
アナライズポリシ2
TriBOARD#0の 持つシンプトン
TriBOARD#1,2の 持つシンプトン
0が不通
情報
値
アナライズポリシ1
(デシジョンテーブル)
アナライズポリシ2
(デシジョンテーブル)
NXT管理情報j {j=0,1,2}
{0,1,2} 17. プロトタイプシステム実装
基本的な動作管理を行うMAPEループ
Planing:アクションから処理コードへの写像
Execution:処理コード
Planningの動作
入力
変更要求a
入力
出力
0
0
1
1,2,1,1,5
2
1,3,1,1,5
3
1,4,1,1,5
出力
処理コードID列
処理コードID
割り当てコード
0
NXT操作放棄
1
1秒待機
2
NXT#0とBluetoothでSPP接続開始
3
NXT#1とBluetoothでSPP接続開始
4
NXT#2とBluetoothでSPP接続開始
5
継承したNXT監視の開始
Executionの動作コード
情報
値
プランポリシ
(デシジョンテーブル)
関連knowledge
実行順序やタイミングの管理も
可能にできる
Executionは
処理コードID列の 処理を順に実行 18. 実験
プロセッシングユニットが外れるユースケースでの有効性検証
ネットワーク
P
P
P
①認識
①認識
②共有
③操作継承
TriBOARDを任意の順で2台Ethernetから切り離して,
NXTの操作を継承できるか検証する
―平常時の情報の共有は正常に行えているか
―ネットワークから切り離し時に操作の継承が正常に行われるか
NXT#1が取得する距離情報の監視ログを見ることで継承ができたか検証する
プロセッシングユニットが外れるユースケースについて
提案アーキテクチャの実環境での有効性を検証したい 19. 情報共有と操作継承
NXT#1の管理者情報
NXT#2の管理者情報
2
1
NXT#2の操作放棄
(TriBOARD#2)
NXT#1の操作放棄
TriBOARD#1
NXT#1の継承完了
(TriBOARD#0)
101
82
156
167
NXT#1について距離データ
時系列(1=500ms)
NXT#2の継承完了
(TriBOARD#0) 20. 情報共有と操作継承
NXT#1の管理者情報
NXT#2の管理者情報
2
1
NXT#2の操作放棄
(TriBOARD#2)
NXT#1の操作放棄
TriBOARD#1
NXT#1の継承完了
(TriBOARD#0)
101
82
156
167
NXT#1について距離データ
時系列(1=500ms)
NXT#2の継承完了
(TriBOARD#0)
NXT#1の継承後も
NXT#1の管理は
正常に行えた 25. デバイス間の仕様差を吸収するミドルウェアの実装
update NXT_Config#1 set Value=‘40’
NXTの出力量の変更クエリ
NXTに含ませた意図的な仕様差
20
0
30
0
0
…
0
NXT#0
NXT#1
20
0
0
30
0
…
0
20
0
0
0
30
…
0
NXT#2
↑作成したsecureSQLparserのデータテーブル (NXT_Config#1 ~NXT_Config#2)
ID
Name
Value
0
Output
30
1
Dist
255
2
Status
STOP
プロトタイプシステム実装
出力30%の出力値指定のパケット 26. デバイス間の仕様差を吸収するミドルウェアの実装
update NXT_Config#1 set Value=‘40’;
NXTの出力量の変更クエリ
NXTに含ませた意図的な仕様差
20
0
30
0
0
…
0
NXT#0
NXT#1
20
0
0
30
0
…
0
20
0
0
0
30
…
0
NXT#2
出力30%の出力値指定のパケット
↑作成したsecureSQLparserのデータテーブル
(NXT_Config#1 ~NXT_Config#2)
ID
Name
Value
0
Output
40
1
Dist
255
2
Status
STOP
20
0
0
40
0
…
0
パケット送信
プロトタイプシステム実装
NXT_Config#1.so 27. デバイス間の仕様差を吸収するミドルウェアの実装
select Value from NXT_Config#1
where Name = ‘Dist’;
NXTの距離データの要求
NXTに含ませた意図的な仕様差
20
0
255
0
0
…
0
NXT#0
NXT#1
20
0
0
255
0
…
0
20
0
0
0
255
…
0
NXT#2
↑作成したsecureSQLparserのデータテーブル
(NXT_Config#1 ~NXT_Config#2)
ID
Name
Value
0
Output
30
1
Dist
255
2
Status
STOP
プロトタイプシステム実装
距離データ要求パケット 28. デバイス間の仕様差を吸収するミドルウェアの実装
select Value from NXT_Config#1
where Name = ‘Dist’;
NXTの距離データの要求
NXTに含ませた意図的な仕様差
20
0
255
0
0
…
0
NXT#0
NXT#1
20
0
0
255
0
…
0
20
0
0
0
255
…
0
NXT#2
↑作成したsecureSQLparserのデータテーブル
(NXT_Config#1 ~NXT_Config#2)
ID
Name
Value
0
Output
30
1
Dist
255
2
Status
STOP
プロトタイプシステム実装
距離データ要求パケット
NXT_Config#1.so
20
0
0
255
0
…
0
パケット送信 29. デバイス間の仕様差を吸収するミドルウェアの実装
select Value from NXT_Config#1
where Name = ‘Dist’;
NXTの距離データの要求
NXTに含ませた意図的な仕様差
20
0
255
0
0
…
0
NXT#0
NXT#1
20
0
0
255
0
…
0
20
0
0
0
255
…
0
NXT#2
↑作成したsecureSQLparserのデータテーブル
(NXT_Config#1 ~NXT_Config#2)
ID
Name
Value
0
Output
30
1
Dist
70
2
Status
STOP
プロトタイプシステム実装
距離データ要求パケット
NXT_Config#1.so
20
0
0
70
0
…
0
距離データ受信
70