- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
分散Javaプログラムのための アペクト指向言語
SWoPP2003, Matsue 分散 Java プログラムのためのアスペクト指向言語 西澤無我(東工大, CREST) 千葉滋(東工大, CREST) 本研究は 分散プログラミング支援ツールの開発 分散プログラムのモジュール化を促進 モジュール化は、プログラムの可読性の向上 プログラムをメンテナンスし易くなる DJcutter の提案 Java 用のアスペクト指向プログラミング言語 既存の技術ではモジュール化ができない処理 横断的関心事 オブジェクト指向技術では異なるモジュール間にまたがってしまう処理 横断的関心事が存在する分散プログラムの例 分散化した observer パターン Subject と observer が異なるクラス?ホストに存在 分散化した observer パターン グループ図形エディタの説明 分散化した observer パターン- モジュール化の困難さ 2 種類の横断的関心事 異なるクラス間を横断する関心事(AspectJ で対応可) 異なるホスト間を横断する関心事 分散版では… Observer 複数のScreen オブジェクトが各ホストに存在する Subject Point, Line オブジェクトの複製が各ホストに存在する(編集中の図形の情報のコピーが各ホストに存在) 異なるクラス間の横断的関心事 クラス図 異なるクラス間の横断的関心事のモジュール化 アスペクト指向技術(AOP) 横断的関心事をアスペクトと呼ばれるモジュールに分離する技術 AspectJ 汎用的な Java 用 AOP 言語 異なるクラス間の横断的関心事のモジュール化は可能 しかし、異なるホスト間の横断的関心事のモジュール化は困難 AspectJ によるモジュール化 AspectJ の言語仕様 Join point プログラム実行中の基本要素 例: メソッド呼び出し、メソッド実行、フィールドアクセス Advice 定義 散らばってしまうコードの断片 Before, after, around Pointcut 記述 Advice を実行する join point の指定 Pointcut 指定子 target, call Pointcut 引数: advice に渡す join point の情報 異なるホスト間の横断的関心事- 遠隔ホスト上の observer AspectJ は苦手 Subject の状態の変更を、すべてのホストのスクリーンに遠隔呼び出しで通知 異なるホスト間の横断的関心事- 散らばる advice 各ホストに Point や Line の複製を配置すると 各ホストに advice が散らばる 各 advice 内では、各ホスト上の Screen の遠隔参照(ポインタ)のコピーを保持していなければならない 散らばった advice の問題 各ホスト上に散った複数の advice が一つの関心事を実装 プログラミング上好ましくない 全 Screen の遠隔参照(ポインタ)を全 advice 間で共有 コピーを配布 一貫性の管理が面倒 集中管理 一部の advice は proxy?? Proxy の定義は単純だが面倒 DJcutter の提案 AspectJ の言語仕様を拡張 遠隔ホスト上の join point を pointcut できる 遠隔ホスト上のプログラム実行が join point に達したら advice を呼び出す Advice が分散しない DJcutter による分散 observer パターンのモジュール化 言語仕様 (1)- Pointcut 記述 AspectJ のサブセットをサポート Within(Type) それぞれのホスト上に存在する Type クラス内の全ての join point を指定 Target(Id) Id と同じ型を引数にとる join point を全て指定 Args(Id, …) Ids と同じ型を引数にとる join point を指定 Call(Signature) Sigunature に一致しているメソッド呼び出しを指定 言語仕様 (2)- Advice 定義 AspectJ と同様の機能をサポート Before 選択した join point の直前に advice を実行 After 選択した join point の直後に advice を実行 Around 選択した join point 自体に代わり advice を実行 拡張: 組み込み変数 $remotehost Advice を呼び出した join point の存在するホスト名を String 型で表す 言語仕様(3)- アスペクトフィールド
您可能关注的文档
最近下载
- 生命体征的观察与照护.pptx VIP
- 电力设计软件:CDEGS二次开发_(6).CDEGS模型创建与编辑.docx VIP
- 《县级(区域)医疗资源集中化运行规范 第2部分:医学影像会诊中心》.docx VIP
- 国有企业内部薪酬分配指引(2025年).docx VIP
- 铁路线路防护栅栏 通线(2023)8001.docx VIP
- 电力系统设计软件:CDEGS二次开发_(5).CDEGS模块深度应用.docx VIP
- 2025年银行业专业人员初级职业资格考试(银行业法律法规与综合能力)历年参考题库含答案详解.docx VIP
- 2021年自考06090人员素质测评理论与方法.pdf VIP
- 本科药理学教学大纲(72学时).doc VIP
- 2024年九年级上册道德与法治期中测试卷含答案.pdf VIP
原创力文档


文档评论(0)