25
ポポポポポポポポポポ : Java ポポポ ポポポポポポポポポポポポポ ポポポポポポポポポ ポポ ポポポポポポポ ポポ ポポ [email protected] P ssession

ポゼッションシステム:   Java による  適応的アプリケーション環境

  • Upload
    kata

  • View
    57

  • Download
    0

Embed Size (px)

DESCRIPTION

P ssession. ポゼッションシステム:   Java による  適応的アプリケーション環境. 慶應義塾大学大学院 政策・メディア研究科 望月 祐洋  [email protected]. 研究目的. 環境や状況に応じてふるまいが変化する(適応する)アプリケーションの実現 環境・状況の変化を把握するために,各種センサやデバイスからの情報を利用する.また,それらを通じて外界へのフィードバックを行う 情報収集のフェーズとアプリケーションの適応動作と外界へのフィードバックのフェーズを結びつけるフレームワークの実現. 関連研究. - PowerPoint PPT Presentation

Citation preview

Page 1: ポゼッションシステム:   Java による  適応的アプリケーション環境

ポゼッションシステム :   Java による

 適応的アプリケーション環境

慶應義塾大学大学院 政策・メディア研究科

望月 祐洋 [email protected]

P ssession

Page 2: ポゼッションシステム:   Java による  適応的アプリケーション環境

研究目的

環境や状況に応じてふるまいが変化する ( 適応する ) アプリケーションの実現

環境・状況の変化を把握するために,各種センサやデバイスからの情報を利用する.また,それらを通じて外界へのフィードバックを行う

情報収集のフェーズとアプリケーションの適応動作と外界へのフィードバックのフェーズを結びつけるフレームワークの実現

Page 3: ポゼッションシステム:   Java による  適応的アプリケーション環境

関連研究

Context-Aware Computing– Ubiquitous computing (Xerox PARC)

System Support for Adaptation– Odyssey (CMU)– Service Proxy (JAIST)– Ad-hoc Mobile Service (UCB)– Multi-layered mobile multimedia arch. (OGI)

Object Model– Shaped Object (NEC)– StratOSphere (UCSB)

Page 4: ポゼッションシステム:   Java による  適応的アプリケーション環境

ポゼッションシステムとは ?

ポゼッションモデルに基づくアプリケーション環境– 分散アプリケーションを構成するオブジェクトを

Soul( 魂 ) と Body( 肉体 ) と possession( 憑依 ) というアナロジに基づき抽象化

– アプリケーションの構成およびオブジェクト同士の協調関係を単純操作で動的に変更可能にする

アプリケーションの適応支援– 利用状況に応じてアプリケーション ( プロセス ) 単位で

の切り替えを行うのではなく, Soul と Body というコンポーネントレベルでの粒度の細かい適応支援を行う

Page 5: ポゼッションシステム:   Java による  適応的アプリケーション環境

ポゼッションモデルの概念図

以下,各項目について順次説明– (1) Soul– (2) Body– (3) possession

Bodypossess

SoulSoul

+Body

Page 6: ポゼッションシステム:   Java による  適応的アプリケーション環境

(1) Soul について 「計算コンポーネント」を抽象化

– オブジェクトの動作 (Thread of control) を記述 Body とリモートインタフェースを共有する

– Body インタフェースを実装 possess 操作で,憑依対象 ( 制御対象 ) となる Body を選

択・登録する Soul のメソッド呼び出しで, possession 中の Body の

メソッドを呼び出す Runnable インタフェース, Serializable インタフェー

ス, Remote インタフェースを実装した Java クラスのインスタンス

Page 7: ポゼッションシステム:   Java による  適応的アプリケーション環境

(2) Body について

「資源コンポーネント」を抽象化– 各種デバイス,センサへのラッパー– 各種グラフィックコンポーネント

Body リモートインタフェースを実装 Body インタフェースを実装した Java

クラスインスタンス (Java Beans)

Page 8: ポゼッションシステム:   Java による  適応的アプリケーション環境

(3) Possession 操作

Soul が Body に対して実行し,対象となる Body の選択および制御を行う

同種 (homogeneous)Body のポゼッション– e.g.) 複数ホスト上のプレゼンテーションソフ

ト ウェアの同時制御 異種 (heterogeneous)Body のポゼッション

– e.g.) ビデオビューワアプリケーション機能の     実現.ビデオキャプチャ Body から入力を 受け,ビデオビューワ Body に出力

Page 9: ポゼッションシステム:   Java による  適応的アプリケーション環境

Soul-Body 間インタラクション

Soul は Java RMI(Remote Method Invocation) で Body のメソッドを呼び出す

Body から Soul に対しては callback メソッドを用意

S0B0

B0S0

RMI (Body Interface)

RMI (#callback)

Page 10: ポゼッションシステム:   Java による  適応的アプリケーション環境

Soul と Body の関係

S B

1 対 1 関係

S B

1 対多関係

B

B

BS

S

S

S

B

多対 1 関係

Page 11: ポゼッションシステム:   Java による  適応的アプリケーション環境

Soul による Body 制御S

B B B B

S

B B B B

HomogeneousRelationship

HeterogeneousRelationship

B B B B B B

S S S

SAggregation

Page 12: ポゼッションシステム:   Java による  適応的アプリケーション環境

Body と Soul でのリモートインタフェースの共

有Class BodyGraphicsImp extends BodyImp implements BodyGraphics { public synchronized void setImage(int[] data, Dimension dim) { bgcmp.setImage(data, dim); }}

Class BodyGraphicsImp extends BodyImp implements BodyGraphics { public synchronized void setImage(int[] data, Dimension dim) { bgcmp.setImage(data, dim); }}

Class SoulGraphicsImp extends SoulImp implements BodyGraphics { public synchronized void setImage(int[] data, Dimension dim) { for (Enumeration e = htPossessed.elements(); e.hasMoreElements();) { BodyGraphics body = (BodyGraphics)e.nextElement(); body.setImage(data, id); } }}

Class SoulGraphicsImp extends SoulImp implements BodyGraphics { public synchronized void setImage(int[] data, Dimension dim) { for (Enumeration e = htPossessed.elements(); e.hasMoreElements();) { BodyGraphics body = (BodyGraphics)e.nextElement(); body.setImage(data, id); } }}

interface BodyGraphics extends Remote { public void setImage(int[] data, Dimension dim);}

interface BodyGraphics extends Remote { public void setImage(int[] data, Dimension dim);}

Page 13: ポゼッションシステム:   Java による  適応的アプリケーション環境

応用領域

グループウェアへの応用– デスクトップ会議システム,遠隔教育システ

ム,遠隔プレゼンテーションシステム バーチャルオブジェクトの操作への応用

– アバターやエージェントの制御– 個人属性を反映する制御の実現

同一 Body に対して, A さんに最適化された Soulと B さんに最適化された Soul が憑依することで異なる動作を実現

Page 14: ポゼッションシステム:   Java による  適応的アプリケーション環境

GUI をともなう Body の例 Screenshot

MPEG1 Viewer Body

Video Viewer Body GPS Map Viewer Body

Image Viewer Body

Page 15: ポゼッションシステム:   Java による  適応的アプリケーション環境

プロトタイプアプリケーション

(1) ビデオ会議アプリケーション (2) 位置情報に基づく映像ソースの

動的変更 (3) PC カードの挿抜に基づく

アプリケーションの構成変更

Page 16: ポゼッションシステム:   Java による  適応的アプリケーション環境

デスクトップ会議アプリケーション

Screenshot

Page 17: ポゼッションシステム:   Java による  適応的アプリケーション環境

ビデオ会議アプリケーションの構成

既存アプリケーションの実現例

Sv BcSv Bc

BvBvBvBv

VideoViewerBody

Host A Host B

St

Bt Bt

St

BtBt

VideoCaptureBody

TextBody

Page 18: ポゼッションシステム:   Java による  適応的アプリケーション環境

位置情報に基づく映像ソースの切り替え 位置情報の利用例

D

B

D

B

D

BS2

S1

MPEGDecoderBody

VideoCaptureBody

VideoViewerBody

GPSBody

MH

MH

Location A

Location B

Page 19: ポゼッションシステム:   Java による  適応的アプリケーション環境

PC カードの挿抜に基づくアプリケーションの構成変更

insert/remove

pccardd

Bevent notification

B

SFreeBSD PC-cardManagement Daemon

PC-cardManagementBody

Soul as an EventManager

Script InterpreterBody

PC-cards

B

Script StorageBody

環境情報の利用例

Page 20: ポゼッションシステム:   Java による  適応的アプリケーション環境

ポゼッションシステムのアーキテクチャ

構成要素– Field

Medium の管理単位,各ホストに 1 つ存在 Soul の管理 : Body は Medium 単位で作成される

が, Soul は Field 単位で管理される→異なるMedium 上の Body にも等しくアクセスするため

– Medium Body の管理単位,必要に応じて随時作成可能

– Body と Soul

Page 21: ポゼッションシステム:   Java による  適応的アプリケーション環境

ポゼッションシステムのアーキテクチャ ( 続き )

Field

S S S

B BMedium

D D

Field

S

B

B

D D

BMedium

BMedium

Host A Host B

S

Page 22: ポゼッションシステム:   Java による  適応的アプリケーション環境

ポゼッションシェル

シェル自体を Body として実現– Jacl (Tcl インタプリタ in Java) を利用

シェルコマンド ( 一部抜粋 )

コマンド名 記述cd fieldID Change a target object

ls [-msb] List existing objects

rm objectID Delete an object

create [-msb] Create a new object

possess soulID bodyID Let a Soul possess a Body

Page 23: ポゼッションシステム:   Java による  適応的アプリケーション環境

ポゼッションシェル ( 続き )

スクリプトの記述例

set soul [create -s]set medium [create -m]set body [create -b $medium]possess $soul device_scc0dvopen $soul sccpossess $soul $bodystart $soul

Page 24: ポゼッションシステム:   Java による  適応的アプリケーション環境

ポゼッションシェル ( 続き )

新規コマンドの定義例

proc postit {medium obj} { set body [create -b $medium] set soul [create -s] set host [lindex [split $medium /] 2] possess $soul rmi://$host/$body image $soul $obj}

Page 25: ポゼッションシステム:   Java による  適応的アプリケーション環境

まとめ

分散オブジェクトコンポーネントをSoul と Body として抽象化するポゼッションモデルを提案

プロトタイプとしてポゼッションシステムを設計・実装し,その上でのサンプルアプリケーションを示した