SSR 産学戦略的研究フォーラム 平成26年度調査研究グループ 「大規模複雑な自己適応システムの 適応進化制御手法に関する調査研究」 研究成果 田原 康之 電気通信大学 2015/3/31.

Slides:



Advertisements
Similar presentations
紹介担当: 石尾 隆(大阪大学) Q11.  Feature Model によって定義される「プロダクトの集合」 (プロダクトライン)の振舞いを検証する手法の拡張 ◦ 通常の振舞い検証: たとえば Promela を使って,1プロダクトの 振舞いを表現したオートマトンの取りうる状態遷移を調べる ◦
Advertisements

ソフトウェア工学 知能情報学部 新田直也. オブジェクト指向パラダイムと は  オブジェクト指向言語の発展に伴って形成され てきたソフトウェア開発上の概念.オブジェク ト指向分析,オブジェクト指向設計など,プロ グラミング以外の工程でも用いられる.  ソフトウェアを処理や関数ではなくオブジェク.
関心事指向アーキテクチャモデリング環 境 Concern-oriented Architecture Modeling Environment 九州工業大学大学院情報工学府 情報科学専攻 鵜林研究室 M1 佐藤 友紀 1.
プログラミング言語論 第10回(演習) 情報工学科 木村昌臣   篠埜 功.
OWL-Sを用いたWebアプリケーションの検査と生成
Web アプリをユーザー毎に カスタマイズ可能にする AOP フレームワーク
シーケンス図の生成のための実行履歴圧縮手法
キャッシュ付PRAM上の 並列クィックソートと 並列マージソート
セキュリティ機構のオフロードを考慮した仮想マシンへの動的メモリ割当
全体ミーティング (4/25) 村田雅之.
中村孝介(九州工業大学) 光来健一(九州工業大学/JST CREST)
Myoungkyu Song and Eli Tilevich 発表者: 石尾 隆(大阪大学)
侵入検知システム(IDS) 停止 IDS サーバへの不正アクセスが増加している
条件式 (Conditional Expressions)
AspectScope によるアスペクトとクラスのつながりの視覚化
CSP記述によるモデル設計と ツールによる検証
ネストした仮想化を用いた VMの安全な帯域外リモート管理
リファクタリングのための 変更波及解析を利用した テスト支援ツールの提案
同期的にアドバイスを活性化できる分散動的アスペクト指向システム
ユーザ毎にカスタマイズ可能な Web アプリケーション用のフレームワークの実装
アスペクト指向プログラミングを用いたIDSオフロード
遠隔ポイントカット - 分散アスペクト指向プログラミング のための言語機構
プログラム実行履歴を用いたトランザクションファンクション抽出手法
概要 Boxed Economy Simulation Platform(BESP)とその基本構造 BESPの設計・実装におけるポイント!
AOP言語への 織り込みインターフェイスの導入 A Weaving-Interface for AOP Languages
型付きアセンブリ言語を用いた安全なカーネル拡張
細かい粒度でコードの再利用を可能とするメソッド内メソッドのJava言語への導入
細かい粒度で コードの再利用を可能とする メソッド内メソッドと その効率の良い実装方法の提案
暗黙的に型付けされる構造体の Java言語への導入
関心事ごとに視点を切り替えて プログラムを編集できる 統合開発環境の提案と実装
オブジェクト指向プログラムにおける エイリアス解析手法の提案と実現
インラインスクリプトに対するデータフロー 解析を用いた XHTML 文書の構文検証
ユーザ毎にカスタマイズ可能な Webアプリケーションの 効率の良い実装方法
アスペクト指向に基づく 拡張可能な MDAモデルコンパイラ
プログラム動作理解支援を目的とした オブジェクトの振舞いの同値分割手法
横断的関心事に対応したオブジェクト指向言語GluonJとその織り込み関係の可視化ツール
ソースコードの特徴量を用いた機械学習による メソッド抽出リファクタリング推薦手法
オブジェクト指向言語論 第八回 知能情報学部 新田直也.
アスペクト指向言語のための 独立性の高いパッケージシステム
アプリケーション依存の先読みが可能なO/Rマッピングツール
ソフトウェア保守のための コードクローン情報検索ツール
オブジェクト指向言語論 第六回 知能情報学部 新田直也.
プログラミング言語論 第六回 理工学部 情報システム工学科 新田直也.
プログラムの織り込み関係を可視化するアウトラインビューの提案と実装
コーディングパターンの あいまい検索の提案と実装
JAVAバイトコードにおける データ依存解析手法の提案と実装
ソフトウェア工学 知能情報学部 新田直也.
Josh : バイトコードレベルでのJava用 Aspect Weaver
統合開発環境によって表現された 言語機構によるコードのモジュール化
同期処理のモジュール化を 可能にする アスペクト指向言語
保守請負時を対象とした 労力見積のためのメトリクスの提案
様々なAOPメカニズムをモデル化する パラメータ化インタプリタ
アスペクト指向言語のための視点に応じた編集を可能にするツール
プログラムの差分記述を 容易に行うための レイヤー機構付きIDEの提案
クローン検出ツールを用いた ソフトウェアシステムの類似度調査
メソッドの同時更新履歴を用いたクラスの機能別分類法
ユビキタスコンピューティングの ための ハンドオーバー機能付きRMIの実装
状況に応じて適切な 例外処理が行なえる アスペクト指向分散環境実験の 支援ツール
統合開発環境のための プログラミング言語拡張 フレームワーク
開発者との対話を活かした 横断的構造の表現
強制パススルー機構を用いた VMの安全な帯域外リモート管理
エイリアス関係を考慮した Javaプログラム用静的スライシングツール
IPmigrate:複数ホストに分割されたVMの マイグレーション手法
回帰テストにおける実行系列の差分の効率的な検出手法
オブジェクト指向言語における セキュリティ解析アルゴリズムの提案と実現
ベイジアンネットワークと クラスタリング手法を用いたWeb障害検知システムの開発
GluonJ を用いたビジネスロジックからのデータベースアクセスの分離
強制パススルー機構を用いた VMの安全な帯域外リモート管理
オブジェクト指向言語論 第六回 知能情報学部 新田直也.
Josh : バイトコードレベルでのJava用 Aspect Weaver
Presentation transcript:

SSR 産学戦略的研究フォーラム 平成26年度調査研究グループ 「大規模複雑な自己適応システムの 適応進化制御手法に関する調査研究」 研究成果 田原 康之 電気通信大学 2015/3/31

内容 背景 研究方針 - 書換え論理とイベントベースアスペクト指 向プログラミングの利用 (予備的)実験評価 まとめと今後の課題

背景 - 調査結果中の技術マップ

背景 - 調査結果中の技術マップ 一部拡大

背景 - 調査結果中の技術マップ システム変更の粒度:システム変更において変更され る単位 システム変更のタイミングの多様性 パラメータ変更、コンポーネントの入替えなど 一般に詳細なほど多様な変更が可能なので望ましい システム変更のタイミングの多様性 ○:実行中の任意の時点 △:実行中のある程度決められた時点 プログラム中の特定箇所の実行中、など ×:停止中

背景 - 調査結果中の技術マップ 適応の正しさの理論的な保証:数学や自然科学の理 論に基づいた正しさ ○:理論的に厳密 △:部分的には理論的に厳密 たとえばコンポーネントの呼び出し関係だけは厳密など ×:保証は開発者の責任

背景 - 調査結果中の技術マップ 3項目に関し最適に近いもの しかし、 プログラムの一部を 実行中の任意のタイミングで変更して 理論的に厳密に正しく適応可能な手法はない

研究方針 プログラムの一部を任意のタイミングで変更 理論的に厳密に正しく適応 →モデル検査などの形式検証手法を採用 モデルを個別に用意せず、モジュール化した差分を用意 →アスペクト指向、プロダクトラインなどを利用 変更のタイミングを任意に制御 →リフレクションを利用可能な書換え論理を採用 理論的に厳密に正しく適応 →モデル検査などの形式検証手法を採用 →リフレクションとモデル検査を利用可能な書換え論理 を採用

書換え論理とは? 等式論理の拡張 等式論理とは? データを項で表す 項:(基本データ値を表す)定数、変数、(データ構造や関数を表 す)オペレータから構成した形式的表現 項の例:f(x, a), pop(push(a, push(b, empty))) a, b, empty は定数、x は変数、f, pop, push はオペレータ

書換え論理とは? 等式論理とは?(続き) システムの仕様を、項の間の等式で表す (条件付き)等式公理から推論規則により等式を導出 例 公理 pop(push(x, s)) = x (x と s は変数)より、等式 pop(push(a, push(b, empty))) = a を(置換推論規則により)導出

書換え論理とは? 等式論理に対し、項の間の書換え関係を追加 公理系に(条件付き)書換え規則(書換え関係の 公理)を追加 等式論理とほぼ同様な推論規則を追加 対称律(x = y ならば y = x)に当たるもの以外 書換え理論R から書換え関係 t => t’ が推論されると き、R |- t => t’ と書く

書換え論理によるシステムの振舞いのモデル化 システムの状態を項で表す システムの振舞いを、書換え関係で表される状態遷移とし てモデル化 例:カウンター 書換え規則 count(n) => count(n+1) if n < 5 (正確には (n < 5) = true) count(5) => count(0) 状態遷移:count(0) => count(1) => count(2) => … => count(5) => count(0) => …

リフレクションとは? 1種の階層構造 1階層(オブジェクトレベルと呼ぶ)の構造や振舞いを、 1つ上位の層(メタレベルと呼ぶ)が管理・制御 そのために、メタレベルはオブジェクトレベルの構造や振舞い の内部表現を保持 メタレベル オブジェクトレベル

書換え論理によるリフレクションの モデル化 オブジェクトレベルの対象(項や書換え規則など)を、 メタレベルで項により表現 A のメタレベル表現:A f(x, a) = f ['x, 'a] = _[_,_]('f, 'x, 'a) (アンダースコア “_” を各引数で置き換え) メタレベル =>('f ['x, 'a], 'f ['x, 'b]) オブジェクトレベル f (x, a) => f (x, b)

書換え論理によるリフレクションの モデル化 特別な書換え理論U と演算子記号@ オブジェクトレベルで R |- t => t’ は、 メタレベルで U |- t @R => t’@R と同値 等式も同様 メタレベル U =>('f ['x, 'a], 'f ['x, 'b]) オブジェクトレベル f (x, a) => f (x, b)

アスペクト指向プログラミングとは? Aspect-Oriented Programming (AOP) 目的:ソフトウェア中の横断的関心事を分離しモ ジュールとして扱うことにより、保守性を向上させる 横断的関心事:ソフトウェア中の複数のモジュールに わたって散在する、1まとまりの独立した機能や概念 例:アクセスログ出力 public class Example { protected void access1() { ... System.out.println("Access done."); } protected void access2() { 重複しているため 保守性が低い

アスペクト指向プログラミングとは? アスペクトとは?:モジュール化した横断的関心事 アスペクト指向プログラミング言語の例:AspectJ Java のアスペクト指向拡張 public class Example { protected void access1() {...} protected void access2() {...} } public aspect logPrint { pointcut log() : execution(protected void Example.access*()); after() : log(){ System.out.println("Access done."); アスペクト(Aspect) ポイントカット(Pointcut) アドバイス(Advice)

AOP 利用自己適応システムの例 TRAP/J [Sadjadi et al. 2004]:リフレクションを利用し たアスペクト動的織込み [Morin et al. 2008]:システム変更時にアスペクトモデ ルの織込みによりモデルの整合性を維持 [Tallabaci and Souza 2013]:既存の自己適応フレーム ワーク(Zanshin)の適応機構の効率的な実装に利用 [Truyen and Joosen 2008]:イベントベース AOP (EAOP)を利用

EAOP の適用 システム変更・復帰のタイミング:イベントの生成と 伝達 システム変更の実施:アスペクトを全ての必要な箇所 に織込み  伝達 システム変更の実施:アスペクトを全ての必要な箇所 に織込み 数学的なモデルを持つため、厳密な動作の検証が   可能

EAOP の適用例 ネットワーク利用サービスにおける、クライアント側 キャッシュストレージ サービスへのアクセス結果を一時的に保持 ・・・

EAOP の適用例 キャッシュ使用・不使用の切り替え キャッシュ不使用時 キャッシュ使用時 サービス クライアント データ データ 読み出し サービス キャッシュ 読み出し 失敗 キャッシュ更新

EAOP の適用例 次の状況をイベントで制御 キャッシュアクセス動作をアスペクトとして切り出し 切り替えタイミング キャッシュからの読み出し失敗時のサービスアクセス キャッシュアクセス動作をアスペクトとして切り出し データ クライアント データ 読み出し サービス キャッシュ 読み出し 失敗 キャッシュ更新

書換え論理による EAOP のモデル化 自己適応システムにおける外部アプローチを採用 管理システムの属性 変更を実施する管理システム(Managing System)と、変更を 受ける被管理システム(Managed System)に分離 管理システムの属性 発生中のイベント アスペクトに関する情報 被管理システムのメタレベル表現項 項の要素:被管理システムの状態と振舞いの仕様

書換え論理による EAOP のモデル化 管理システムの振舞い オブジェクトレベルの振舞いをシミュレート 書換え理論U を利用 アスペクトの織込み・解きほぐしをイベントで制御 サービス クライアント データ イベント イベント データ クライアント データ 読み出し サービス キャッシュ 読み出し 失敗 キャッシュ更新

モデル検査の適用 書換え論理に基づいた仕様記述言語 Maude のツー ルのモデル検査機能を利用 状態爆発への対応:抽象化 リフレクションを用いていても利用可能 状態爆発への対応:抽象化 メタレベルの抽象化は困難 オブジェクトレベルの抽象化をメタレベルに反映

実験評価 実験の設定 「キャッシュ使用クライアントのアクセスにはそのうち 返信が送られる」ことを検証 1クライアントがキャッシュ使用の可能性 他のクライアントはキャッシュ不使用 上記2種類は別のサーバにアクセス 「キャッシュ使用クライアントのアクセスにはそのうち 返信が送られる」ことを検証 1クライアント サーバ 他のクライアント キャッシュ ・・・

実験評価 抽象化の有無で2種類の仕様を用意 アスペクト織込みタイミングでさらに2種類の仕様を 用意 都合2×2 = 4種類の仕様を用意 キャッシュ不使用クライアントの振舞いは、キャッシュ使用ク ライアントの振舞いに影響しないので、抽象化により削除 仕様 1:抽象化なし、仕様 2:抽象化あり アスペクト織込みタイミングでさらに2種類の仕様を  用意 仕様 A:始動直後に織り込み 仕様 B:他のクライアントが動作中の任意のタイミングで織り 込み ただしキャッシュ使用クライアントは始動前 都合2×2 = 4種類の仕様を用意

実験評価 仕様ごとにキャッシュ不使用クライアントの台数を変 えて検証時間を計測 実験環境 すべての場合で検証は成功 インテル Xeon CPU E5640 @ 2.67GHz× 4 メモリ 11.7 GB Ubuntu 14.04 LTS OS.

実験結果

実験結果 抽象化なし→検証時間は台数に関し指数的に増加 抽象化の結果はすべて同一の仕様のため、検証時 間も同じ 織込みタイミングの違いの影響は定数倍(1.5~2倍)

まとめ イベントベースアスペクト指向プログラミング(EAOP) により、動的に変更されるシステムのモデル検査手法 の提案 書換え論理の活用 Maude ツールのモデル検査機能を利用 抽象化による状態爆発問題への対処 本成果は FSE 2015 投稿中

今後の課題 AOP の自己適応システムへの適用は実はあまり多くない (特に最近) →他の動的変更技術への適用を検討 RE@runtime への適用は検討済み(RE 2015 投稿中) 他の状態爆発問題解決手段の適用 他の抽象化 モジュラー検証 SAT, SMT ソルバ 検証支援ツールの開発 書換え論理や Maude よりも開発者が取組み容易とすることを目指 す 大規模・複雑な例題