没有合适的资源?快使用搜索试试~ 我知道了~
运行时反射设计与动态适应软件系统开发和维护
理论计算机科学电子笔记127(2005)55-58www.elsevier.com/locate/entcs相关设计-概述罗伯特·赫希菲尔德1DoCoMo通信实验室欧洲德国RalfLammel2Vrije Universiteit Centrum voor Wiskunde en Informatica荷兰阿姆斯特丹摘要我们渲染运行时系统的设计级的概念,使运行系统可以适应和检查在更高的抽象层次的适应。总体思路是将设计决策表达为在运行时执行的设计运算符的应用程序。设计操作符可以实现在运行时使用的设计模式。 设计算子的应用显式作为运行系统中的设计元素,以便它们可以被跟踪、重新定位和撤销。我们的方法使反射设计成为可能:一方面,设计操作员采用反射,执行运行时适配;另一方面,设计元素提供了一个额外的反射协议来检查和配置已执行的适配。我们的方法有助于理解不能容忍停机或频繁的关闭-修改-启动周期的软件系统的开发和维护。我们有积累一类图书馆为编程与反射设计于Squeak/Smalltalk。这个库采用了反射和动态的面向方面编程。我们还实现了在运行时不断适应的系统中导航的工具支持注:本扩展摘要总结了我们的全文[7]。关键词:相对设计,自适应,设计元素,设计操作符,设计模式,相对,方法调用拦截,元编程,面向对象编程,动态编织,动态组合,ANOWS,Squeak,Smalltalk,元对象协议1电子邮件:hirschfeld@doco mo lab-e uro. C om2电子邮件:ralf. cwi.nl1571-0661 © 2005由Elsevier B. V.出版在CC BY-NC-ND许可下开放访问。doi:10.1016/j.entcs.2004.08.03356河赫希费尔德河Lämmel/Electronic Notes in Theoretical Computer Science 127(2005)55系统自适应我们在反射式设计方面的工作涉及到软件系统在运行时的适应性,如动态组件协调[11]、运行时系统配置[1]、动态服务适应[5,6]和快速原型化而无需关闭-修改-启动循环[12]。对于具有强可用性要求的系统,如电信系统,自适应性是至关重要的。这种系统的停机时间几乎不能容忍。软件的维护和演化必须在运行的系统中进行反射式设计通过运行时系统适配技术增强了面向对象的设计和有两个关键概念:设计元素和设计操作符,我们将依次解释。设计元素我们认为,程序是根据设计决策来构造的我们要求设计决策在程序中明确表示因此,软件设计将在程序中可追溯。我们甚至要求设计决策在运行的系统中显式地表示出来.我们使用术语设计元素来表示程序中设计决策的表示。事实上,我们要求设计元素能够被反射,这样设计决策就可以在运行时被观察和修改。 因此,运行时系统适配的概念可以归结为设计元素的显式构造、修改和退休。设计元素可以被检查和(重新)确认。在这里,检查和(重新)配置是在内省和代祷的意义上使用的。正常的面向对象的内省和调解涉及对象的字段和方法。设计级内省和调解涉及设计级概念,例如给定设计元素的参与者对参与者的检查是设计级内省的范例。参与者及其角色的配置是设计级调解的范例。此外,对于运行系统中的每个对象,我们可以内省有效的适配,即,设计元素的列表,一个直观的对象在手。设计操作员与使用元对象协议[8]等基本技术相比,设计元素的使用使运行时系统适应性更有规律,更易于管理。为此,我们提供了以可重用的方式捕获常见设计元素的抽象。此类应用R. 赫希费尔德河 Lämmel/Electronic Notes in Theoretical Computer Science 127(2005)55-5857抽象在设计层次上执行系统适配;因此,我们称它们为设计操作符。我们的工作,到目前为止,集中在运营商的模型实现的共同设计模式。“设计模式作为操作者”的观点我们的工作的新颖之处在于,我们的运营商服务于运行时系统的适应,和运行时recruection的设计。我们至少可以区分出三种操作符。加法运算符把附加的结构或行为加到正在运行的软件系统上.减法运算符定义并删除运行中的软件系统中的行为或结构片段。重构操作符以语义保持的方式修改正在运行的系统。很明显,设计运算符只能在一个非常有效的程序设计系统。设计算子的实际应用会产生两个结果。首先,构建了相应的设计要素。第二,系统设计运算符的应用可以通过停用相应的设计元素来撤消如果一个不活跃的元素再也不需要了,我们可以让这个元素退休。使用Squeak/Smalltalk我们已经开发了反射设计框架作为Squeak/Smalltalk的类库该实现最初使用了反射的基础设施,方法包装器[3],以及使用AIBOS的动态面向方面编程[4]。反射设计框架涉及几个抽象层,而这些层作为API呈现给程序员。其思想是,抽象级别越高的层执行的级别越低建议。 使用反射设计框架,我们已经练习了运行时系统适配的一些场景。我们还提供了交互式工具支持,用于相应的设计。相应地,我们扩展了一些现有的工具,如正常的系统浏览器,我们已经提供了新的工具,如一个专门的“重新设计中心”。工具扩展是特别有趣的,因为到目前为止,我们已经将它们实现为反射设计框架的自应用,例如,系统浏览器通过适当的设计元素来适配总结发言我们相信,这种方法的设计和原型实现为进一步研究运行时系统提供了有用的输入58河赫希费尔德河Lämmel/Electronic Notes in Theoretical Computer Science 127(2005)55适应今后工作的主要方向如下。首先融合反射设计和重构转换应该完成我们注意到,到目前为止,我们的工作其次,通过专门的系统分析和回滚机制来提高反射设计的鲁棒性第三,我们对相应设计的实际做法需要得到正式支持的补充。最终的目标是一种方法,在这种方法中,运行时系统的适应性与今天的静态元程序一样强大和健壮引用[1] Akkawi , F. , A. Bader 和 T.Elrad , Dynamic Weaving for Building ReconfigurableSoftware Systems ( 2001 ) , 在 OOPSLA 2001 Workshop on Advanced Separation ofConcerns in Object-Oriented Systems中的在线论文集。[2] Aßmann,U., 以设计模式作为元编程操作符的AOP,Technical Report 28,Un iversit?tKarlsruhe(1997)。[3] Brant,J., B. 富特河Johnson和D. Roberts,Wrappers to the Rescue,in:E. 七月,编辑,ECOOP396-417.[4] 赫 希 菲 尔 德 河 , Applies-Applies-Aksit , M. Mezini 和 R.Unland , editors , Objects ,Components , Architectures , Services , and Applications for a Networked World ,LNCS2591(2003),pp.216-232[5] 赫 希 费 尔 德 河 和 K. Kawamur , Dynamic Service Adaptation , in : Proc. DARES(ICDCSW290-297.[6] 赫希菲尔德河,K. Kawamura和H.林志玲,动态服务自适应系统扩展,载于:R。Battiti,M.Conti 和 R. Lo Bogno , editors , Wireless On-Demand Network Systems , LNCS2928(2004),pp. 227-240.[7] Hirschfeld,R.和河。Lüammel,ReectiveDesigns,IEE Proceedings Software(2004),Special Issue on ReusableSoftwareLibraries。地出现。可在www.example.com上获得http://homepages.cwi.nl/~ralf/rd/。[8] Kiczales,G.,J. des Rivieres和D. Bobrow,[9] Krishnamurthi,S.,Y.-- D. Erlich和M.Felleisen,将结构属性表示为语言构造,在:S。Swierstra,编辑,Proc. ESOP'99,编号1576在LNCS,1999年,pp。258-272。[10] Ludwig,A. ,“A u toma t is che T ra n sforma t io n g r oße r S of t wares y st e me,“Ph.D. 她的妹妹,《卡尔斯鲁厄大学》(2002年)。[11] 平托,M.,L. 丰特斯,M。Fayad 和J.Troya ,Separation of Coordination in a DynamicAspect Oriented Framework,in:Proc. AOSD134-140。[12] Popovici,A.,T. Gross和G. Alonso,面向方面编程的动态编织,在:Proc. AOSD141-147[13] 沙利文,G.,可执行设计模式的高级编程语言功能,技术报告AIM-2002-005,麻省理工学院人工智能实验室(2002年)。[14] von Dincklage,D.,Making Patterns Explicit With Metaprogramming,in:Proc. GPCE287-306[15] Zimmer,W. ,“Frame w or k s un d E n t w ur fs m u s t er,“P h. D. Thesis,UniversitéatKarlsruhe(1997).
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C++标准程序库:权威指南
- Java解惑:奇数判断误区与改进方法
- C++编程必读:20种设计模式详解与实战
- LM3S8962微控制器数据手册
- 51单片机C语言实战教程:从入门到精通
- Spring3.0权威指南:JavaEE6实战
- Win32多线程程序设计详解
- Lucene2.9.1开发全攻略:从环境配置到索引创建
- 内存虚拟硬盘技术:提升电脑速度的秘密武器
- Java操作数据库:保存与显示图片到数据库及页面
- ISO14001:2004环境管理体系要求详解
- ShopExV4.8二次开发详解
- 企业形象与产品推广一站式网站建设技术方案揭秘
- Shopex二次开发:触发器与控制器重定向技术详解
- FPGA开发实战指南:创新设计与进阶技巧
- ShopExV4.8二次开发入门:解决升级问题与功能扩展
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功