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

Slides:



Advertisements
Similar presentations
ソフトウェア工学 理工学部 情報システム工学科 新田直也. 演習問題 1 の解答例  入庫処理の DFD 酒屋の在庫問題の DFD( 入庫処理 ) 更新情報 在庫ファイル 更新処理 倉庫係 在庫不足リスト 在庫ファイル 出庫指示書 新規出庫 判定 出庫指示書 作成処理 出庫依頼 積荷票.
Advertisements

ソフトウェア工学 知能情報学部 新田直也. オブジェクト指向パラダイムと は  オブジェクト指向言語の発展に伴って形成され てきたソフトウェア開発上の概念.オブジェク ト指向分析,オブジェクト指向設計など,プロ グラミング以外の工程でも用いられる.  ソフトウェアを処理や関数ではなくオブジェク.
モバイルエージェントシステムの実装 エージェント移動(状態とコードの一括移送) エージェント移動の特徴 システム構成 エージェントプログラム
6.4継承とメソッド 6.5継承とコンストラクタ 11月28日 時田 陽一
Remote Method Invocation
ROBOMEC2007チュートリアル RTミドルウエア講習会
オブジェクト指向プログラミング(4) 静的分析(2)
背景 我々の研究室で開発しているJavaプログラム解析フレ ームワークでは,解析情報はメモリ上に保持される 問題点
データマイニングのための柔軟なデータ取得、操作を支援するAPIの設計
COPPER/FINESSE System構築
Javaのインタフェース についての補足 2006年5月17日 海谷 治彦.
ユビキタス環境における コミュニケーション・ツール選択支援機構の提案
変数のスコープの設計判断能力 を育成するプログラミング教育
バイナリ形式コンポーネントの 収集・解析・検索システムの開発
視覚的な分散アプリケーション 構築ツールuBlockの開発
同期的にアドバイスを活性化できる分散動的アスペクト指向システム
インタフェース プログラミング 第14回 インタフェース プログラミング第14回.
アプレット プログラミング 第10回 アプレット プログラミング第10回.
RMI ソフトウェア特論 第6回 /
望月 祐洋,由良 淳一,楠本 晶彦 {moma, yurayura,
概要 Boxed Economy Simulation Platform(BESP)とその基本構造 BESPの設計・実装におけるポイント!
Stateful Session Beans
過負荷時の分散ソフトウェアの 性能劣化を改善する スケジューリングの提案
細かい粒度でコードの再利用を可能とするメソッド内メソッドのJava言語への導入
オブジェクト指向 プログラミング 第十四回 知能情報学部 新田直也.
ソフトウェア工学 知能情報学部 新田直也.
アルゴリズムとプログラミング (Algorithms and Programming)
マルチメディア・コンテンツの 配送・フィルタリング機構
オブジェクト指向 プログラミング 第十三回 知能情報学部 新田直也.
暗黙的に型付けされる構造体の Java言語への導入
第3回 2007年4月27日 応用Java (Java/XML).
ソフトウェア工学 知能情報学部 新田直也.
KMSF-CODEアーキテクチャ における動的QOS制御
オブジェクト指向プログラムにおける エイリアス解析手法の提案と実現
オブジェクト指向プログラムにおける エイリアス解析について
11 ソフトウェア工学 Software Engineering デザインパターン DESIGN PATTERNS.
Javaプログラムの変更を支援する 影響波及解析システム
アスペクト指向に基づく 拡張可能な MDAモデルコンパイラ
10-1 SAXの概要 10-2 Saxプログラミングの基礎 10-3 saxのプログラム例
社会シミュレーションのための モデル作成環境
高汐 一紀 慶應義塾大学 新しい空間の創出:uPlatea 新しい道具の創出: u-Photo 思考する家具・部材: u-Texture
オブジェクト指向言語論 第十一回 知能情報学部 新田直也.
オブジェクト指向言語論 第八回 知能情報学部 新田直也.
プログラミング言語論 第十四回 理工学部 情報システム工学科 新田直也.
オブジェクト指向言語論 第十一回 知能情報学部 新田直也.
tranService Next Generation
「マイグレーションを支援する分散集合オブジェクト」
マイグレーションを支援する分散集合オブジェクト
プログラミング言語論 第十三回 理工学部 情報システム工学科 新田直也.
ソフトウェア工学 知能情報学部 新田直也.
オブジェクト指向言語論 第十二回 知能情報学部 新田直也.
分散 Java プログラムのための アスペクト指向言語
Annotation EJB 3.0 コース 第3回 2006年8月4日.
System.AddInを利用したアプリケーション拡張 - アドインの開発 -
稚内北星学園大学 情報メディア学部 安藤 友晴
ユビキタスコンピューティングの ための ハンドオーバー機能付きRMIの実装
ゲームのタスクシステム 導入編 レベル2くまー By keychan.
状況に応じて適切な 例外処理が行なえる アスペクト指向分散環境実験の 支援ツール
プログラム分散化のための アスペクト指向言語
プログラミング基礎a 第9回 Java言語による図形処理入門(1) Javaアプレット入門
統合開発環境のための プログラミング言語拡張 フレームワーク
複雑度メトリクスを用いた JAVAプログラム品質特性の実験的評価
ソフトウェア工学 知能情報学部 新田直也.
コードクローン解析に基づく デザインパターン適用候補の検出手法
Javaとは Javaとはオブジェクト指向言語でJava VM(Java仮想マシン)と呼ばれるプログラム上で動作します。
セッション名: (35) システム化技術 講演番号 2P
オブジェクト指向言語における セキュリティ解析アルゴリズムの提案と実現
GluonJ を用いたビジネスロジックからのデータベースアクセスの分離
System.AddInを利用したアプリケーション拡張 - アドインの開発 -
Josh : バイトコードレベルでのJava用 Aspect Weaver
Presentation transcript:

ポゼッションシステム: Javaによる 適応的アプリケーション環境 P ssession 慶應義塾大学大学院 政策・メディア研究科 望月 祐洋  moma@sfc.keio.ac.jp

研究目的 環境や状況に応じてふるまいが変化する(適応する)アプリケーションの実現 環境・状況の変化を把握するために,各種センサやデバイスからの情報を利用する.また,それらを通じて外界へのフィードバックを行う 情報収集のフェーズとアプリケーションの適応動作と外界へのフィードバックのフェーズを結びつけるフレームワークの実現

関連研究 Context-Aware Computing System Support for Adaptation 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)

ポゼッションシステムとは? ポゼッションモデルに基づくアプリケーション環境 アプリケーションの適応支援 分散アプリケーションを構成するオブジェクトをSoul(魂)とBody(肉体)とpossession(憑依)というアナロジに基づき抽象化 アプリケーションの構成およびオブジェクト同士の協調関係を単純操作で動的に変更可能にする アプリケーションの適応支援 利用状況に応じてアプリケーション(プロセス)単位での切り替えを行うのではなく,SoulとBodyというコンポーネントレベルでの粒度の細かい適応支援を行う

ポゼッションモデルの概念図 以下,各項目について順次説明 (1) Soul (2) Body (3) possession Body + Body Soul possess

(1) Soulについて 「計算コンポーネント」を抽象化 Bodyとリモートインタフェースを共有する オブジェクトの動作(Thread of control)を記述 Bodyとリモートインタフェースを共有する Bodyインタフェースを実装 possess操作で,憑依対象(制御対象)となるBodyを選択・登録する Soulのメソッド呼び出しで,possession中のBodyのメソッドを呼び出す Runnableインタフェース,Serializableインタフェース,Remoteインタフェースを実装したJavaクラスのインスタンス

(2) Bodyについて 「資源コンポーネント」を抽象化 Bodyリモートインタフェースを実装 各種デバイス,センサへのラッパー 各種グラフィックコンポーネント Bodyリモートインタフェースを実装 Bodyインタフェースを実装したJavaクラスインスタンス(Java Beans)

(3) Possession操作 SoulがBodyに対して実行し,対象となるBodyの選択および制御を行う 同種(homogeneous)Bodyのポゼッション e.g.) 複数ホスト上のプレゼンテーションソフト ウェアの同時制御 異種(heterogeneous)Bodyのポゼッション e.g.) ビデオビューワアプリケーション機能の     実現.ビデオキャプチャBodyから入力を 受け,ビデオビューワBodyに出力

Soul-Body間インタラクション SoulはJava RMI(Remote Method Invocation)でBodyのメソッドを呼び出す BodyからSoulに対してはcallbackメソッドを用意 RMI (Body Interface) S0 B0 B0 S0 RMI (#callback)

SoulとBodyの関係 B S B S B 1対1関係 B B S 1対多関係 S B S 多対1関係 S

SoulによるBody制御 S S B B B B B B B B Homogeneous Relationship Heterogeneous Relationship S Aggregation S S S B B B B B B

BodyとSoulでの リモートインタフェースの共有 Class BodyGraphicsImp extends BodyImp implements BodyGraphics{ public synchronized void setImage(int[] data, Dimension dim) { bgcmp.setImage(data, dim); } } interface BodyGraphics extends Remote { public void setImage(int[] data, Dimension 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); }

応用領域 グループウェアへの応用 バーチャルオブジェクトの操作への応用 デスクトップ会議システム,遠隔教育システム,遠隔プレゼンテーションシステム バーチャルオブジェクトの操作への応用 アバターやエージェントの制御 個人属性を反映する制御の実現 同一Bodyに対して,Aさんに最適化されたSoulとBさんに最適化されたSoulが憑依することで異なる動作を実現

GUIをともなうBodyの例 Screenshot MPEG1 Viewer Body Video Viewer Body GPS Map Viewer Body Image Viewer Body

プロトタイプアプリケーション (1) ビデオ会議アプリケーション (2) 位置情報に基づく映像ソースの 動的変更 (2) 位置情報に基づく映像ソースの 動的変更 (3) PCカードの挿抜に基づく アプリケーションの構成変更

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

ビデオ会議アプリケーションの構成 既存アプリケーションの実現例 Sv Bc Bv St Bt Host A Host B Video Viewer Body Host A Host B St Bt Capture Text

位置情報に基づく 映像ソースの切り替え 位置情報の利用例 B Location A Location B S1 S2 D MH Video MPEG Decoder Body Video Capture Viewer GPS MH Location A Location B

PCカードの挿抜に基づく アプリケーションの構成変更 環境情報の利用例 Script Storage Body Script Interpreter Body B B insert/remove pccardd PC-cards S B event notification FreeBSD PC-card Management Daemon Soul as an Event Manager PC-card Management Body

ポゼッションシステムの アーキテクチャ 構成要素 Field Medium BodyとSoul Mediumの管理単位,各ホストに1つ存在 Soulの管理: BodyはMedium単位で作成されるが,SoulはField単位で管理される→異なるMedium上のBodyにも等しくアクセスするため Medium Bodyの管理単位,必要に応じて随時作成可能 BodyとSoul

ポゼッションシステムの アーキテクチャ (続き) Host A Host B B Medium Medium Medium B B B B B Field Field S S D D D D S

ポゼッションシェル シェル自体をBodyとして実現 Jacl (Tcl インタプリタ in Java)を利用 シェルコマンド (一部抜粋)

ポゼッションシェル(続き) スクリプトの記述例 set soul [create -s] set medium [create -m] set body [create -b $medium] possess $soul device_scc0 dvopen $soul scc possess $soul $body start $soul

ポゼッションシェル(続き) 新規コマンドの定義例 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 }

まとめ 分散オブジェクトコンポーネントをSoulとBodyとして抽象化するポゼッションモデルを提案 プロトタイプとしてポゼッションシステムを設計・実装し,その上でのサンプルアプリケーションを示した