- 1、本文档共30页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Addistantアスペクト指向の 散プログラミング支援ツール
July 26, 2001 SWoPP 2001 PRO, Okinawa Addistant:アスペクト指向の分散プログラミング支援ツール 立堀道昭 (筑波大) 千葉滋 (東工大) 板野肯三 (筑波大) 概要 Java による分散プログラミングの支援ツール Addistant 特に機能分散を行うプログラム開発を対象に 言語処理系と実行系で実現 既存の Java virtual machine (JVM) を活用 Addistant の特徴 アスペクト指向の導入 拡張クラスローダによる実現 分散プログラミングの障害 非分散のロジックに分散のためのコードが絡み合い各所にちらばっている Crosscutting concerns 低いモジュラリティ 分散プログラミングを難しくしているものの1つ 分散に関する事項がプログラム全体に四散しており、簡潔に記述できない 絡み合ったコードの保守?変更は困難 Crosscutting Distribution Concerns (1/2) 機能分散プログラム中、分散オブジェクトを配置するコードは散在する Crosscutting Distribution Concerns (2/2) 配置換えに伴い、散在するコードの書き換えが必要 プログラミング技法による対処の限界 Abstract Factory デザイン?パターン 常に Factory クラスを通してインスタンスを生成し、Factory のサブクラスで生成を制御 Factory method はコンテキスト分、数多く必要 生成されるクラスは共通の親をもたねばならない 提案するツールAddistant 機能分散プログラムの開発を支援 絡み合う分散配置コードの分離 抽象化による分散配置記述の簡素化 実現手段 既存の Java 仮想機械 (JVM) を利用 ソースコードの変更が不可能なクラスにも対処 Addistant の基本設計 クラス単位のインスタンスの配置方針 開発者が配置アスペクトとして宣言的記述 例: GUI のクラスはあちら、その他のユーザクラスはこちら クラスローダによるバイトコード変換 java.lang.ClassLoader のサブクラス 第三者によって提供されたソースコードのないクラスライブラリにも対応できる ロード時のバイトコード変換 与えられた配置アスペクトに従って、Addistant の処理系が Java プログラムを自動的に変換 Java クラス?ローダ機構を利用 JVMにクラスをロードする前にバイトコードを書き換える バイトコード変換にはJavassist[Chiba00] を利用 分散配置アスペクト言語 独立したポリシーファイルに記述 配置クラス指定子 配置するクラスを、あるまとまりで指定できる パッケージ、サブパッケージ サブクラス ただし、重複する場合、上方の宣言が有効 現実的なシステムに向けて プロキシ?マスタ方式の限界 遠隔オブジェクト(マスタ)に対応して、手元では代理のオブジェクト(プロキシ)を用いる Java RMI など、多くのORB で使われている方式 従来の ORB の実装法をそのまま適用は無理… システム?クラスの存在 プロキシ?マスタ方式 クラス定義またはクラスを使う側のコードの変更が必要 システムクラスの場合バイトコード変換禁止 例:プロキシクラスを元のクラスのサブクラスとする実装法 元のクラスが final クラスのときは使えない、など Addistant のプロキシ実装方式 クラス毎に異なる実装法で遠隔参照を実現 実装法により、変更が必要なコードの範囲が異なる システムクラスの変更を避けるように実装法を選択 アスペクト言語で宣言的に指定 ?置き換え」、「名前変更」、?サブクラス」、?複製」 「置き換え」手法(例:ユーザクラス) 対象クラスをプロキシに置き換え 元のクラスを変更できる場合 ひとつのJVM上には、プロキシかマスタのどちらか一方のみ 「名前変更」手法(例:java.awt.Window) コード中に現れた対象クラス名をプロキシクラスのものに変更 元のクラスを変更できない場合 使っている側のコードを変更する 「サブクラス」手法(例:java.util.Vector) 対象クラスのサブクラスとしてプロキシクラスを定義 1つのJVM上にプロキシとマスタを混在させたい場合 「複製」手法(例:java.lang.String) プロキシクラスは作らず、遠隔メソッド呼び出しの際、オブジェクトを移送して複製を渡す Shallow copy 変則版 - 「書き戻し複製」手法 配列オブジェクトに用いる 関連研究 - AOP As
您可能关注的文档
- 3nV√Hz、低功耗仪表放大器.pdf
- 3一种新颖的DCDC变换器的设计与实现.pdf
- 3捷联惯性导航系统原理.pdf
- 3节数量积与向量积.pdf
- 4.3直流斩波器在电力传动中的应用-go.pdf
- 4.5斩控式交流调压器-go.pdf
- 4.10布洛赫电子在恒定磁场中的准经典运动.pdf
- 400KW重庆康明斯柴油发电机组技术规格参数稳态电压调整率≤±0.5%.pdf
- 4006-01-9999中国建设银行全真模拟试题.pdf
- 4A三节锂电池充电管理集成电路+0%.pdf
- 2023年张家港行分析报告:立足小微,本地异地齐头并进.pdf
- 2023年普莱柯分析报告:创新驱动研发实力强劲,多点突破产品未来可期.pdf
- 2024年汽车五金冲压模具金属结构件企业发展战略和经营计划.docx
- 2024年床垫企业发展战略和经营计划.docx
- 新巨丰关联交易管理制度.PDF
- 2023年智翔金泰分析报告:自免广阔天地,新星展智飞翔.pdf
- 2024年塑料橡胶改性剂企业发展战略和经营计划.docx
- 2024年PMOLED电子纸模组与硅基OLED微显示器企业发展战略和经营计划.docx
- 2024年诺思格分析报告:临床CRO领跑者,赋能创新药研发历程.pdf
- 2024年大型重工装备铸件企业发展战略和经营计划.docx
文档评论(0)