プログラム分散化のための アスペクト指向言語

Slides:



Advertisements
Similar presentations
1 プリミティブ Web サービスの 入出力データに関する一考察 2005 年 3 月 21 日 松江工業高等専門学校 情報工学科 奈良先端科学技術大学院大学 情報科学研究科 越田高志 電子情報通信学会 2005年総合 大会.
Advertisements

Web アプリケーション開発 ~図書館管理システム~ 北海道情報大学 情報メディア学 部 情報メディア学科 新井山ゼミ 高橋 隼.
ソフトウェア工学 理工学部 情報システム工学科 新田直也. 演習問題 1 の解答例  入庫処理の DFD 酒屋の在庫問題の DFD( 入庫処理 ) 更新情報 在庫ファイル 更新処理 倉庫係 在庫不足リスト 在庫ファイル 出庫指示書 新規出庫 判定 出庫指示書 作成処理 出庫依頼 積荷票.
ソフトウェア工学 知能情報学部 新田直也. オブジェクト指向パラダイムと は  オブジェクト指向言語の発展に伴って形成され てきたソフトウェア開発上の概念.オブジェク ト指向分析,オブジェクト指向設計など,プロ グラミング以外の工程でも用いられる.  ソフトウェアを処理や関数ではなくオブジェク.
プログラミング基礎I(再) 山元進.
オブジェクト指向プログラミング(4) 静的分析(2)
第4回 iPhoneアプリ開発勉強会 Objective-C 基礎講座 -クラス- 鷲見政明.
VBA(Visual Basic Application)を使ったプログラミングの初歩概説
プログラミング演習3 第4回 ミニプロジェクト.
変数のスコープの設計判断能力 を育成するプログラミング教育
リファクタリングのための 変更波及解析を利用した テスト支援ツールの提案
(B2) 親: minami, kazuki 多様な認証機器に対応する 認証システム (B2) 親: minami, kazuki.
RMI ソフトウェア特論 第6回 /
アスペクト指向プログラミングと Dependency Injection の融合
第6回独習Javaゼミ 第6章 セクション4~6 発表者 直江 宗紀.
プログラミング演習3 第2回 GUIの復習.
既存Javaプログラムの バイトコード変換による 機能分散
望月 祐洋,由良 淳一,楠本 晶彦 {moma, yurayura,
遠隔ポイントカット - 分散アスペクト指向プログラミング のための言語機構
概要 Boxed Economy Simulation Platform(BESP)とその基本構造 BESPの設計・実装におけるポイント!
オブジェクト指向 プログラミング 第十四回 知能情報学部 新田直也.
RPC:Remote Procedure Call Protocol Specification
その他の図 Chapter 7.
オブジェクト指向 プログラミング 第八回 知能情報学部 新田直也.
オブジェクト指向 プログラミング 第十一回 知能情報学部 新田直也.
オブジェクト指向 プログラミング 第十三回 知能情報学部 新田直也.
アスペクト指向の 分散化支援ツール 西澤無我、千葉滋 東京工業大学 SPA summer 2002, Hakone.
暗黙的に型付けされる構造体の Java言語への導入
理学部 情報科学科 指導教官 千葉 滋 助教授 学籍番号 03_03686 内河 綾
オーバレイ構築ツールキットOverlay Weaver
オブジェクト指向プログラムにおける エイリアス解析手法の提案と実現
オブジェクト指向 プログラミング 第十四回 知能情報学部 新田直也.
Java Bytecode Modification and Applet Security
プログラミング演習3 第2回 GUIの復習.
プログラム動作理解支援を目的とした オブジェクトの振舞いの同値分割手法
既存Javaプログラム向け 分散化支援システムの開発
オブジェクト指向言語論 第八回 知能情報学部 新田直也.
Addistant:アスペクト指向の 分散プログラミング支援ツール
アプリケーション依存の先読みが可能なO/Rマッピングツール
オブジェクト指向 プログラミング 第十ニ回 知能情報学部 新田直也.
オブジェクト指向 プログラミング 第六回 知能情報学部 新田直也.
Java における 先進的リフレクション技術
環境モデリングによるモデル検査スクリプトの自動生成
アルゴリズムとプログラミング (Algorithms and Programming)
オブジェクト指向 プログラミング 第九回 知能情報学部 新田直也.
「マイグレーションを支援する分散集合オブジェクト」
マイグレーションを支援する分散集合オブジェクト
オブジェクト指向プログラミング クラス 継承
オブジェクト指向 プログラミング 第八回 知能情報学部 新田直也.
ソフトウェア工学 知能情報学部 新田直也.
分散 Java プログラムのための アスペクト指向言語
オブジェクト指向 プログラミング 第六回 知能情報学部 新田直也.
プログラミング言語論 第十一回 理工学部 情報システム工学科 新田直也.
計算機プログラミングI 木曜日 1時限・5時限 担当: 増原英彦 第1回 2002年10月10日(木)
「マイグレーションを支援する分散集合オブジェクト」
アスペクト指向言語のための視点に応じた編集を可能にするツール
ソフトウェア制作論 平成30年11月28日.
ユビキタスコンピューティングの ための ハンドオーバー機能付きRMIの実装
状況に応じて適切な 例外処理が行なえる アスペクト指向分散環境実験の 支援ツール
プログラミング基礎a 第9回 Java言語による図形処理入門(1) Javaアプレット入門
エイリアス関係を考慮した Javaプログラム用静的スライシングツール
ソフトウェア工学 知能情報学部 新田直也.
知識ベースの試作計画 ●●●研究所 ●●●技術部 稲本□□ 1997年1月.
Javaとは Javaとはオブジェクト指向言語でJava VM(Java仮想マシン)と呼ばれるプログラム上で動作します。
オブジェクト指向言語論 第七回 知能情報学部 新田直也.
プログラミング言語論 第九回 理工学部 情報システム工学科 新田直也.
オブジェクト指向言語論 第七回 知能情報学部 新田直也.
オブジェクト指向 プログラミング 第六回 知能情報学部 新田直也.
計算機プログラミングI 第2回 2002年10月17日(木) 履習登録 複習 ライブラリの利用 (2.6-7) 式・値・代入 (2.6-8)
Josh : バイトコードレベルでのJava用 Aspect Weaver
Presentation transcript:

プログラム分散化のための アスペクト指向言語 西澤無我 学籍番号 98-2072-7

動機 – 既存プログラムの分散化 既存プログラムの各機能を複数のマシンに分散させたい そのためには 既存の分散プログラミング支援ツール ex. 遠隔 GUI の操作    遠隔ホストのディスプレイに    JFrameオブジェクトを表示、etc そのためには プログラムを機能により分割 分割した各パーツがお互いに    通信しながら動作するように書き換える 既存の分散プログラミング支援ツール ex. JavaRMI 遠隔ホスト アプリケーション ホスト

JavaRMI による分散化 JavaRMIの制約に従って以下のプログラムを手で記述し、利用する これらの作業は大変骨が折れる 遠隔クラスのメソッドをインターフェースとして定義 遠隔サービスを利用するクライアントクラスを記述 独自のコンパイラでスタブまたはスケルトンを生成 etc … これらの作業は大変骨が折れる

Addistant プロジェクト 既存プログラムをバイトコ ード変換により自動的に 分散化することができる 分散化の指針を既存プロ    bytecode アプリケーション ホストbytecode bytecode 変換 遠隔ホスト 分散化の   指針 既存プログラムをバイトコ ード変換により自動的に   分散化することができる 分散化の指針を既存プロ   グラムと分離したファイル   に書くことができる

分散化の指針の分離 既存プログラムから分散化に関する記述を分離する必要性 プログラム全体の保守性が高まる 既存プログラムの可読性が保持される 分散環境の修正、変更があれば、分散化の指針のみを修正、変更すればよい Advanced Separation of Concerns として近年注目されている技術である

Addistant の分散化モデル 旧版モデル 既存プログラムの セマンティクスを保持 しながら分散させる 例えば、 2 つの遠隔ホスト 上で対戦する Tic-Tac-Toe を作れない 元々1つの Window を2つに アプリケーション ホスト 遠隔ホスト2 遠隔ホスト1 異なる分散化モデルも必要

研究の成果 : ORB の差し換え機能の実現 ORB の役割 ORB が分散化モデルを実装 以下の機能を実現 遠隔オブジェクト生成 変換後 bytecode ORB アプリケーション ホスト 遠隔 ネットワーク ORB の役割 以下の機能を実現 遠隔オブジェクト生成 遠隔メソッド呼び出し   などの分散オブジェクトのリクエストを作成、受信のための手段を提供している ORB が分散化モデルを実装 ユーザ定義の ORB クラスで、Addistant のデフォルト ORB を差し換えることができるようにした ユーザ定義の ORB クラスは RequestBrokable インターフェースを実装

ユーザ定義 ORBの例: 多重化ORB 標準ORBの 分散化 多重化ORBの分散化 TicTacToe Windowを1個生成 二重に生成 遠隔ホスト アプリケーション ホスト 二重に生成 TicTacToe ORB Windowを1個生成 遠隔ホスト1 多重化ORB ORB アプリケーション ホスト 遠隔ホスト2

ユーザ定義 ORBの例: 多重化ORB 標準ORBの 分散化 多重化ORBの分散化 TicTacToe メソッド呼出 同じ引数で 二重に呼出 遠隔ホスト アプリケーション ホスト 同じ引数で 二重に呼出 TicTacToe ORB メソッド呼出 遠隔ホスト1 多重化ORB ORB アプリケーション ホスト 遠隔ホスト2

分散化の指針の記述 分散化の指針 多重化ORBの実装 <remote name=“rmt”> <orb classname=“RequestMultiplyingBroker”>  <remote name=“rmt”> <host name=“taro” …/> <host name=“yulian” …/>    </remote> invokeRemoteMethod(…) { for (int i = 0;i < stdorb.length; ++i) { stdorb[i].invokeRemoteMethod(…); }

実装状況 旧版の Addistant に相当の機能はほぼ完成 ORB の差し換え機能を実現 全部で 3700 行 Tic-Tac-Toe の実装が完成 全部で 3700 行 動作している対戦型 Tic-Tac-Toe

まとめ 新版 Addistant を設計・実装した 異なる分散化モデルに対応できる ORB の実装をユーザ定義のクラスにより差し換え可能にした ユーザ定義ORBの例 多重化ORB 対戦型 Tic-Tac-Toe を作成した

今後の方針 オブジェクト配置の指定を、new 式のあるクラスやメソッドの種類といった生成文脈に応じて細かく指定 ネットワーク・ストリームの実装の差し換え