(计算机应用技术专业论文)基于pluggable+aspect+component的反射中间件核心框架研究与实现.pdf_第1页
(计算机应用技术专业论文)基于pluggable+aspect+component的反射中间件核心框架研究与实现.pdf_第2页
(计算机应用技术专业论文)基于pluggable+aspect+component的反射中间件核心框架研究与实现.pdf_第3页
(计算机应用技术专业论文)基于pluggable+aspect+component的反射中间件核心框架研究与实现.pdf_第4页
(计算机应用技术专业论文)基于pluggable+aspect+component的反射中间件核心框架研究与实现.pdf_第5页
已阅读5页,还剩110页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 摘要 对于分布式系统,国内外已进行了长时间的研究。通常采用中间件的解决方 案,来解决异种环境中的互操作性。研发前期,人们主要将精力集中于系统的跨 平台、跨环境的互操作问题的研究,而很少考虑系统的自适应性和可配置性等问 题。但随着分布式应用环境越来越复杂,中间件很少能够在设计期就把所有问题 考虑进去,这对反射中间件系统的自适应性和高可配置性提出了更高的要求。 传统的反射中间件系统,采用纯面向对象的设计思想,对些正交的关注点 进行封装,而对一些非f 交的横切关注点只有采用一些复杂的模式来处理,这对 系统的维护性、自适应性和可配置性带来了许多问题。因此,对高度自适应性和 可配置性的反射中f s j 件系统的研究一直是业界研究的热点。 本文从理论和实践两个方面对基于c c m 和a o p 技术的反射中间件技术进 行了较为深入的研究和探索。其中作者主要的工作如下: ( 1 ) 本文首先理清了开放实现、反射、a o p 及相关术语的概念。开放实现 是一种新的抽象思想。采用开放实现的系统,将其实现开放出来,允许客户通过 元接口进行检查和调整。但是,这种开放必须是有约束的、局部化的。反射是一 个系统推理和作用于自身的能力,所谓反射系统是支持因果相联的自表示的系 统。a o p 技术是对面向对象技术的更高层次抽象,提供了反向注入接口的能力。 文中还对相关概念进行了辨析; ( 2 ) 分析反射中间件件的应用特点,结合组件技术和a o p 技术给出一种基 于p l u g g a b l ea s p e c tc o m p o n e n t 的反射中间件模型,并论证其可行性; ( 3 ) 通过分析p l u g g a b l e a s p e c tc o m p o n e n t 反射中间件的模型,给出了一个 基于微内核软总线反射中间件核心框架; ( 4 ) 在分析j m x 的特性,并结合a c c m 反射中间件的需求的基础上,扩 展j m x ,设计了一个高可配置反射中间件a c c m 的微内核软总线。 ( 5 ) 通过分析j a v a 传统类装载器的缺陷,设计并实现了微内核软总线的热 部署器及类装载器架构; ( 6 ) 通过a c c m 泛型组件的元架构设计,设计并实现了基于d y n a m i cp r o x i e s 的远程调用框架和基于拦截器的p l u g g a b l ea s p e c tc o m p o n e n t 容器。 文章通过反射中间件a c c m 的研究与实现,展示了组件思想、a o p 技术和 反射技术在中间件设计中的可行性和重要价值。 摘要 关键词:分布式系统,中间件,c o r b a ,c c m ,反射系统,a o p ,服务组件 元对象,j m x i l 一 ! 坚翌里 a b s t r a c t r e s e a r c ho nt h ed i s t r i b u t e ds y s t e mh a sb e e n c a r r y i n g o u tf o ra l o n gt i m e t od e a l w i t ht h ei n t e r o p e r a b i l i t yp r o b l e mf o r h e t e r o g e n e o u ss y s t e m ,m i d d l e w a r ew a su s e d i n t h ee a r l y - d a y sw o r k ,r e s e a r c h e r sf o c u s e do ns o l v i n gt h ep r o b l e m so f i n t e r o p e r a b i l i t y a m o n gh e t e r o g e n e o u sp l a t f o r m s a n de n v i r o n m e n t s ,a n ds e l d o mt o o ka c c o u n to f a t t r i b u t e so f a d a p t a b i l i t y , c o n f i g u r a b l i l i t ya n do t h e r s b u tw i t ht h er a p i dd e v e l o p m e n t a n d w i d e l y u s eo fd i s t r i b u t e da p p l i c a t i o n a l le n v i r o n m e n ti s s u e sc a l ln o tb et a k e ni n t o a c c o u n td u r i n gt h ed e s i g nt i m eo fm i d d l e w a r es y s t e m ,w h i c he n f o r c em o r e c h a l l e n g e o i lt h ed e s i g no f a d a p t i v ea n dh i 曲l y r e c o n f i g u r a b l em i d d l e w a r e t h et r a d i t i o n a lm i d d l e w a r es y s t e mw a sd e s i g n e dw i t ht h e p r i n c i p l eo fp u r e o b j e c t - o r i e n t e dt e c h n o l o g y , w h i c he n c a p s u l a t e s d a t aa n d o p e r a t i o n i n o r t h o d o x y m a n n e r , w h i l et od e a lw i t ht h eu n o r t h o d o x yc o n c e r n ( c r o s s c u tc o n c e r n ) ,c o m p l e x p a t t e r nm u s tb ea p p l i e d ,w h i c hb r o u g h tt h ep r o b l e m so fm a i n t a i n s ,a d a p t a t i o na n d r e c o n f i g u r a b i l i t y t h e r e f o r e ,h o wt od e s i g nan o v e la r c h i t e c t u r ef o rh i g h l ya d a p t i v e a n dr e c o n f i g u r a b l er e f l e c t i v em i d d l e w a r ei sb e c o m i n gah o tt o p i c i nt h et h e s i s ,t h es o l u t i o nf o rt h eh i g h l ya d a p t i v ea n dr e c o n f i g u r a b l er e f l e c t i v e m i d d l e w a r ei sd i s c u s s e di n t h e o r y a n di n p r a c t i c e w e f o c u so nt w o m a j o r a r c h i t e c t u r a lp a r t so fa c c m :i t sm i d d l e w a r ec o m p o n e n tm o d e l ,b a s e do nt h ej m x a n dc c m m o d e l ,a n di t sm e t a l e v e la r c h i t e c t u r ef o rg e n e r a l i z e dc c mc o m p o n e n t s t h ef o r m e rr e q u i r e san o v e lc l a s sl o a d i n gm o d e l t h el a t t e ri n c l u d e sap o w e r m la n d f l e x i b l er e m o t em e t h o di n v o c a t i o nm o d e l ,b a s e do nd y n a m i cp r o x i e s ,a n dr e l i e s0 1 1 s y s t e m a t i cu s a g eo f i n t e r c e p t o r s a sa s p e c t o r i e n t e dp r o g r a m m i n ga r t i f a c t s t h em a i nw o r k sd o n eb yt h ea u t h o ra r el i s t e db e l o w : ( 1 ) t h en o t i o n o f o p e ni m p l e m e n t a t i o n ,a s p e c t o r i e n t e dp r o g r a m m i n g a n d r e f l e c t i o na r ed e f i n e d o p e ni m p l e m e n t a t i o ni san e wa b s t r a c t i o np r i n c i p l ew h i c h m e a n st oo p e nt h eu n d e r l y i n gi m p l e m e n t a t i o no ft h er e s e a r c h e do b j e c t b u tw h a ti s i m p o r t a n ti s t h a tt h i sk i n do f o p e n n e s ss h o u l db er e s t r i c t i v ea n de f f e c t i v e r e f l e c t i o n i sa l l a b i l i t y o f s y s t e m t or e a s o na b o u ta n da c t u p o ni t s e l f a s p e c t o r i e n t e d p r o g r a m m i n gi san e w a b s t r a c t i o np r i n c i p l ef o ro b j e c t o r i e n t e dp r o g r a m m i n g ,w h i c h i sc a p a b l eo f i n j e c t i n gi n t e r f a c ei n v e r s e l y ( 2 ) t h es o c a l l e dp l u g g a b l ea s p e c tc o m p o n e n t r e f l e c t i v em i d d l e w a r ep r o t o t y p e l j ! 堕翌里 i sp r e s e n t e dw h i c h c o u p l ew i t hc o m p o n e n ta n da o p t e c h n o l o g i e s ( 3 ) a m i c r ok e r n e lb a s e ds o f t w a r eb u sf o rr e f l e c t i v em i d d l e w a r ew a sg i v e nb v a n a l y z i n gt h ep l u g g a b l ea s p e c tc o m p o n e n tr e f l e c t i v em i d d l e w a r e p r o t o t y p e ( 4 ) aj m xe x t e n d e dm i c r ok e r n e ls o t t w a r eb u si sd e s i g n e d w h i c hi s s p i n ef o r a c c m t h i ss o f t w a r eb u s p r o v i d e ds e r v i c ec o m p o n e n t s e r v e r ( 5 ) t oa d d r e s st h ec l a s sl o a d e ri s s u e ,w h i c hm a yc a u s ep r o b l e mo fs h a r i n go f c l a s s e sa c r o s sd e p l o y m e n tu n i t s ,n o v e lc l a s sl o a d e ra r c h i t e c t u r ei sp r e s e n t e d ,w h i c ha l l c l a s s e sl o a d e ds h a r ea s i n g l ef l a tc l a s sl o a d e rn a m e s p a c e ( 6 ) r e m o t ei n v o c a t i o na r c h i t e c t u r ea n dc o n t a i n e ra r ed e s i g n e da n di m p l e m e n t e d , w h i c ha r eb a s e du p o nm e t a - a r c h i t e c t u r e t h r o u g ht h ei m p l e m e n t a t i o no f t h er e f l e c t i v em i d d l e w a r ea c c m ,t h e f e a s i b i l i t y a n dv a l u a b i l i t yo ft h ea p p l i c a t i o no ft h ec o m p o n e n tc o n c e p t i o n ,a o p t e c h n o l o g ya n d t h er e f l e c t i o nt e c h n o l o g yi nm i d d l e w a r e d e s i g na r ep e r f e c t l yi l l u s t r a t e d k e y w o r d :d i s t r i b u t e ds y s t e m ,m i d d l e w a r e ,c o r b a ,c c m ,r e f l e c t i v es y s t e m , a s p e c t o r i e n t e dp r o g r a m m i n g ,s e r v i c ec o m p o n e n t ,m e t ao b j e c t ,j m x 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工 作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地 方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含 为获得电子科技大学或其它教育机构的学位或证书而使用过的材料。 与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明 确的说明并表示谢意。 签名:垂鱼 日期:w 牛年l 月玎日 关于论文使用授权的说明 本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁 盘,允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文 的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或 扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后应遵守此规定) 孺 拔 龌i 笪 日期:知中年投月影曰 缩略语 a o p a o p c c m c o r b a c s d c e d c o m ) l o p i o r j 2 s d k j m x j r m p j v m m b e a r l o m g 0 0 p p o a q o s r m i s o c u c l 缩略语 a s p e c t o r i e n t e dp r o g r a m m i n g a p p l i c a t i o np r o g r a m i n t e r f a c e c o r b a c o m p o n e n t m o d e l c o m m o no b j e c tr e q u e s tb r o k e ra r c h i t e c t u r e c l i e n t s e r v e r d i s t r i b u t e dc o m p u t i n ge n v i r o n m e n t d i s t r i b u t e dc o m p o n e n to b j e c tm o d e l i n t e r f a c ed e f i n i t i o nl a n g u a g e i n t e r n e ti n t e r - 0 r bp r o t o c o l i n t e r o p e r a b l eo b j e c tr e f e r e n c e j a v ap l a t f o r m2s t a n d a r dd e v e l o p m e n t k i t s j a v am a n a g e m e n te x t e n s i o n j a v ar e m o t em e t h o dp r o t o c 0 1 j a v av i r t u a lm a c h i n e m a n a g e d b e a n o b j e c tm a n a g e m e n tg r o u p o b j e c t o r i e n t e dp r o g r a m m i n g p o r t a b l eo b j e c t a d a p t e r q u a l i t y o fs e r v i c e r e m o t em e t h o di n v o c a t i o n s e p a r a t i o n o fc o n c e r n s 1 a n i f i e dc l a s sl o a d e r v 电子科技大学硕士论文:基于p l u g g a b l e a s p e c tc o m p o n e n t 的反射中间件核心框架研究与实现 1 1 研究背景和对象 第一章绪论 1 9 4 6 年2 月1 5 日,美国成功研制出世界上第一台通用电子数字计算机 ( e n i a c ) ,开创了数字时代的新纪元。由于早期的计算机庞大而又昂贵,大多 数机构只有寥寥几台,人们只能通过与主机相连接的哑终端来使用计算机资源, 所有的任务都在主机上执行,这时信息资源都集中在主机上。七十年代末、八十 年代初出现了个人计算机( p c ) ,并且其功能一直以惊人的速度发展。目前许多 个人计算机都具有了以前大型机的计算能力,但价格却只是它的几十分之一甚至 几百分之一,因此个人计算机得到了广泛的普及和发展。随着计算机的大量出现, 信息的数量极速递增,人们迫切希望具有不受人员、数据以及机器的物理分布限 制的资源共享。另一方面,网络技术的发展使计算机互连成为可能,由此产生了 将计算任务分解到多台计算机执行的分布式计算模式。 分布式计算系统相对于集中式系统来讲,具有下述优势:通过互连、互通和 互操作可以提高系统的协作能力;通过并行处理可以提高系统的性能;通过复制 技术可以提高系统的可靠性和可用性;通过模块化技术可以提高系统的可伸缩 性;通过动态配置技术和重新配置功能可以提高系统的可扩展性;通过资源共享 可以提高系统的性能价格比。因此,传统的基于主机的集中式计算模式正在逐步 向分布式计算模式转变。 近年来,随着分布式应用的普及,特别是互联网技术的日益成熟发展,网络 规模正不断膨胀扩大。系统集成商基于性能、价格、服务等方面的考虑,通常在 同一系统中集成了来自不同厂商的硬件设备、操作系统、数据库平台、网络协议 及不同的编程语言等,由此带来的异构性给应用软件的互操作性、兼容性以及平 滑升级能力带来了严重问题。 另外,随着基于网络的业务不断增多,传统的客户服务器( c s ) 模式的分 布式应用方式越来越显示出在运行效率、系统网络安全性和系统升级能力等方面 的局限性。 大规模分布式系统的异构性不仅是不可避免的,也是永远无法消除的。只有 异种实体的存在,才能更好地满足不同用户和不同应用的各种不同要求。如果强 制性地消除异构实体,这就不可避免地削弱分布式系统的诸多优势。因此,如何 使大规模分布式系统中的异构实体能够相互协作,实现跨平台资源的透明性互操 作和协同计算,一直都是业乔研究的热点。过去的研究表明,解决这问题的关 第一章绪论 键在于为分布式应用的开发提供好的工具,并为相应的分布式应用的运行提供好 的环境。目前支持分布式计算的环境主要有两类:基于过程的分布式计算和面向 对象的分布式计算。 基于过程的分布式计算环境主要是o s f 协会制订的d c e ( d i s t r i b u t e d c o m p u t i n ge n v i r o n m e n t ) 。o s f 是一个非赢利性的协会组织,它的成员包括许多 i t 和通信公司,例如h p 、i b m 、s i e m e n s 、s o n y 等。o s f 支持分布式计算的思 路是,选择并集成所需的软件技术,并向最终用户证明该技术的稳定性和可持续 性。基于这种思路,o s f 采用r f t ( r e q u e s tf o rt e c h n o l o g y ) 制$ t 了d c e 标准。 d c e 具有传统的客户服务器体系结构,包括线程、r p c 、时间、命名和安全等 服务,为分布式应用提供了一个与硬件平台、操作系统和网络无关的开发环境。 它刚推出时备受欢迎,曾被工业界视为最好的提供分布式编程环境的软件平台, 但随着技术的发展,已经呈现出较多局限和不足,目前业界看好的则是面向对象 的分布式计算环境。 目前在面向对象的分布式计算中,国际上主要有c o r b a 、 c o m d c o m c o m + 和e j b 的规范。c o r b a ( c o m m o n0 b i e c tr e q u e s tb r o k e r a r c h i t e c t u r e ) 是o m g ( o b j e c tm a n a g e m e n tg r o u p ) 组织为解决不同软硬件产品之间 互操作而提出的一种解决方案。简单的说,c o r b a 是一个面向对象的分布式计 算平台,它允许不同的程序之间可以透明的进行互操作,而不用关心对方位于何 处、由谁来设计、运行于何种软硬件平台以及用和种语言实现等。 白1 9 9 1 年o m g 确定了c o r b a 规范的1 1 版本以来,c o r b a 技术不断的 吸收各种新的思想,不断加以优化( 当然,其中也有一部分是出于商业的考虑) , 9 4 年c o r b a2 0 规范被采纳,从而实现了真正意义上的互操作性。因为o m g 组织是由众多的著名厂商共同组成,因此c o r b a 具有很好的开放性,得到了工 业界的广泛支持,并推出了相应的产品,如1 0 n a 公司的o r b i x 系列,i n p r i s e 公 司的v i s i b r o k e r 等。 对我国软件业而言,c o r b a 产品的国产化、自主化具有非常重要的意义。 首先,它与操作系统、数据库一样,都是重要的系统软件,采用国外厂商提供的 系统软件容易带来潜在的安全隐患。其次,国内拥有自主产权的c o r b a 产品对 市场竞争是非常有利的,由于c o r b a 平台开发难度较大国外大型软件厂商具 有较强的竞争能力,如果完全让国外企业占领国内市场,国内用户只能无条件地 使用国外的产品。因此,对c o r b a 进行研究并开发自己的产品具有非常重要的 意义。 电子科技大学倾:匕论史:基于p l u g g a b l e a s p e c t c o m p o n e n t 的反射中间件核心框架研究与实现 1 2 研究内容与现状 当开发分布式应用的时候,我们不仅很难预测程序的最终运行环境,同时也 不能做一些确定的运行环境假设。例如:一些如对象持久化、容错、日志等属性 是需要在具体的运行环境中进行调整的。而且,当应用程序的性能是主要的衡量 标准时候,我们必须考虑大量动态的因素。例如,无线环境中q o s 服务,实时 传播媒体流等。同时,应用程序运行环境还依赖于用户交互的行为,一个使用无 线网络移动的用户也许就会采用不同的加密通信协议。 传统的解决方案是通过构建冗余系统解决这类问题。这种方案主要的思想是 对关键的、需要自适应的的予系统提供多种不同的实现,然后通过参数化实现系 统的静态反射。虽然这种方案行之有效,但也存在以下一些问题:首先,冗余系 统需要关注某一个子系统的版本更新。其次,在运行时对冗余系统的切换相当困 难。如果在系统切换时出错时该如何处理? 是否也需要对切换机制建立冗余? 最 后,冗余的软硬件设备增大了项目开支。 为满足以上的这类需求就要求分布式应用不仅仅具有很好的伸缩性,而且要 具备动态的自适应性。这一自适应的能力必须能满足应用的大部分方面,同肘也 必须足够的灵活。很显然,虽然自适应行为的能力可以由客户程序使用一些特殊 的机制来单独实现,但是我们只是把责任推到了客户程序开发者身上。而且,我 们所需要的是一种通用的应用程序框架以允许开发人员用更抽象的方法方便建 立自适应程序。 1 3 作者的主要工作 本论文是在国防预研项目( 新型系统体系结构) 中完成的。作者从理论和实 践两个方面对基于c c m 和a o p 技术的反射中间件技术进行了较为深入的研究 和探索,本论文就是作者部分研究的总结。从论文中可以看出,作者的主要工作 如下: ( 1 ) 本文首先理清了开放实现、反射、a o p 及相关术语的概念。开放实现 是一种新的抽象思想。采用开放实现的系统,将其实现开放出来,允许客户通过 元接口进行检查和调整。但是,这种开放必须是有约束的、局部化的。反射是一 个系统推理和作用于自身的能力,所谓反射系统是支持因果相联的自表示的系 统。a o p 技术是对o o 技术的更高层次抽象,提供了反向注入接口的能力。文 中还对相关概念进行了辨析; ( 2 ) 分析反射中间件件的应用特点,结合组件技术和a o p 技术给出一种基 第一章绪论 于p l u g g a b l e a s p e c tc o m p o n e n t 的反射中间件模型,并论证其可行性; ( 3 ) 通过分析p l u g g a b l e a s p e c t c o m p o n e n t 反射中间件的模型,给出了一个 基于微内核软总线反射中间件核,心框架; ( 4 ) 通过分析j m _ x 的特性,并结合a c c m 反射中间件的需求,扩展j m x , 设计了一个高可配置反射中间件a c c m 的微内核软总线。 ( 5 ) 通过分析j a v a 传统类装载器的缺陷,设计并实现了微内核软总线的热 部署器及类装载器架构; ( 6 ) 通过a c c m 泛型组件的元架构设计,设计并实现了基于d y n a m i cp r o x i e s 的远程调用框架和基于拦截器的p l u g g a b l e a s p e c tc o m p o n e n t 容器。 1 4 本文的章节安排 第二章对开发实现、反射、a o p 及相关概念实时系统的特征进行了分析。 第三章介绍了中间件以反射中间件的概念,并结合c c m 及a o p 技术给出了一 个p l u g g a b l ea s p e c tc o m p o n e n t 的高可配置反射中间件模型。第四章通过反射中 间件a c c m 的设计分析,给出了a c c m 的总体框架。第五章在第四章给出a c c m 框架的基础上,分析微内核软总线的设计与实现,其中包括j m x 服务组件扩展、 热部署器架构、类装载器架构、容器及远程调用框架等。第六章是对全文的总结 以及本论文工作需要进一步完善和深入研究的地方。 电子科披大学硕士论文:基于p l u g g a b l e a s p e c t c o m p o n e n t 的反射中间件核心框架研究与实现 2 1 开放实现 第二章反射 软件设计在传统上遵循“黑箱”( b l a c k b o x ) 抽象的原则,即一个模块应该 向客户呈现其功能而隐藏其自身实现 d i j k s t r a 6 8 p a m a s 7 2 。这点已成为处理 计算机领域中许多重要问题,如可移植性、可重用性等的基本对策和理念 l i s k o v 8 3 】 i s 0 8 4 w i n h 7 4 。尽管黑箱抽象有许多优点,但事实表明,如果 模块仅呈现其功能性接口,那么在重用这些模块时,有可能导致令人感到棘手的 性能缺陷问题。这引发了关于“一个模块到底应该向客户呈现哪些方面”的问题 的研究,并逐渐形成了一个新型的抽象模型 l e v i n 7 5 s h a w 8 0 c l a r k 9 0 p a t t e r s o n 9 3 g u y 9 3 】【k i c z a l e s 9 4 a 甚于开放实现( o p e ni m p l e m e n t a t i o n 或简 称0 i ) 的抽象模型 k i c z a l e s 9 2 【k i c z a l e s 9 4 b 】 k i c z a l e s 9 6 。 传统的黑箱抽象原则是基于以下三个基本原则的 p a r n a s 7 2 1 : 抽象可用于处理复杂性。在这个意义上,抽象是各个工程领域,事实上也 是人类认识世界的基本方法。所以要这样做是由于人们难于同时掌握复杂事物的 方方面面,因此最有效的办法是通过建立突出某些特性方面的模型( 抽象接口) 去认识它,而屏蔽掉暂时不关心的问题。 在系统中,抽象接口首选的位置是放在对某个实现所特有的行为面与对全 部实现所公有的行为面之间。 这种抽象接口也正是需要呈现给客户的;而接口的实现则不是客户所关心 的,应该对客户完全隐藏。 在系统设计中这种传统形式的抽象体现为三个主要的组件一黑箱 ( b l a c k b o x ) 、客户( c l i e n t ) 和接口( i n t e r f a c e ) ,如图所示。黑箱具体实现某种 抽象,并在接口上提供功能或服务给客户。接口将客户与实现相分离,并提供具 体实现的抽象的表示;客户仅能使用接1 3 去操作和控制抽象实现的黑箱。 - - i n t e r f a c e 图2 - 1 传统的黑箱抽象模型 5 第二章反射 黑箱抽象展示出了两个重要特性。第一,分离( s e p a r a t i o n ) 将抽象的表示与 它的实现细节分隔开来,允许客户使用个抽象而无需了解其下的细节。第二, 通用化( g e n e r a l i z a t i o n ) 将接口所表示的抽象与某个抽象的具体实现区分开来, 所以可以改变实现而不必改动抽象( 因此也无需改动依照这个抽象编码的客户) 。 通过以这种方式运用分离和通用化,可以对系统模块化,并重用各组件。 运用上述思想,既可以达到可移植性、可重用性等目标,实际上也反映出系 统软件应遵循的设计理念。内存分配器、文件系统、窗口系统、数据库、编程语 言等,都是给出了它们通用的抽象接口,而使客户与其实现隔离开来。因此各种 客户可以使用这种抽象,而不考虑其实现。可移植性就在于将客户与实现细节隔 离开来,因此可以将客户代码移植到该抽象的不同实现上。对可重用性则体现为, 这种抽象愈通用,它所能服务的客户种类也就愈多。 软件开发中的抽象的概念,来自数学中的抽象。但是,在软件中我们实际提 供的抽象并不完全类同于数学中的“抽象”,它只是下层实现的可见部分,也正 因为是这样,抽象的实现实际上约束着抽象的行为方式。抽象的任何( 正确的) 实现只要遵循约束抽象的规范,就会以“同样”的方式运作;但是,不同的实现 策略则将导致不同的性能特性、内存使用模式等等。 在有些环境下,抽象本身能满足客户的功能性要求,但其实现效率低下,或 在其它方面不满足应用的特殊需求。这些问题的根源,可以用映射决策( m a p p i n g d e c i s i o n s ) 、映射冲突( m a p p i n gc o n f l i c t s ) 和映射难题( m a p p i n gd i l e m m a s ) f k i c z a l e s 9 4 b 来解释。抽象的实现者,当某个内部实现机制有多种可能策略时, 需要做出映射决策( 即,将高层抽象的某些方面映射到低层的实现结构上) 。当 实现者已经做出了某个决策,而事实上另一种决策才能更好地满足另一个客户的 要求时,就发生了映射冲突。如果同一实现的两个客户要求不同的映射选择:那 么无论做出何种决策,都会导致映射冲突,这就是所谓的映射难题。 解决上述问题的传统方法,通常可分为两类:代码冗余( c o d e h e m a t o m a s ) 和混杂编码( c o d i n g b e t w e e nt h el i n e s ) k i c z a l e s 9 2 。 1 ) 代码冗余 代码冗余在接口之上,由应用程序自己重新实现所需的功能。这种重实现, 使编程人员根据已知的应用程序的属性,确定不同的映射决策,以保证性能满足 他们的特定需要,如下图( a ) 所示。这个接1 :3 之上的库是一种冗余,因为很有 可能又重编写了大量的下层实现中已存在的代码;而且这种新方案,可能也仅解 决了适合这类应用程序的一、两种映射决策。 一生主型苎茎堂堡主丝壅! 茎至! 坐竖! ! ! 垒! 苎! ! 竺! ! ! 堡! ! ! 型些垦堑! 坚壁堡:堂堡丝型塑兰壅型 ( a ) 冗余代码 ( b ) 图2 2 代码冗余与混杂编码 2 ) 混杂编码 另一种解决方案是混杂编码,它涉及到用一种特殊的方式编写客户代码,如 上图( b ) 所示。这个方案依赖于客户编程人员要对抽象实现者的映射决策和选择 有一定的了解。这种了解可来自直接经验,或简单地得益于通常的实践。但是, 抽象自身不会提供任何信息,接口只会告诉客户能做什么( d o w h a t ) ,并不能告 诉客户如何做( h o w ) 。 以上两种方法虽然实现了应用程序的特殊需求,但也使代码晦涩难懂,并降 低了可重用性和移植性。人们传统的抽象观点与现实的编程始终会有定的矛 盾。我们设计了隐藏实现的、简练而有力的抽象,然后使用这些抽象,而不考虑 其实现,去构造更高层的功能。然而现实是,实现不能总是被隐藏,比如性能问 题就不可避免地表露出来,而且严重地影响着客户程序的质量。 新的抽象模型应该尽量保留传统抽象模型中的及必要方面,即三个基本原则 中的前两条,又要解决第三条原则与实践之间的矛盾。传统的黑箱抽象本身已有 足够的表达能力,但在对付内部实现方面有定不足。因此研究者们提出:将实 现开放出来,为客户提供有约束的访问,以检查和控制在接口之下的实现,即所 谓“开放实现( o p e ni m p l e m e n t a t i o n ) ” k i c z a l e s 9 6 。 2 _ 2 反射 反射的概念最初由s m i t h 在1 9 8 2 年提, 一, s m i t h 8 2 s m i t h 8 4 。他在文中指出: ”i na sm u c ha sac o m p u t a t i o n a lp r o c e s sc a l lb ec o n s t r u c t e dt or e a s o na b o u ta n e x t e m a lw o r l di nv i r t u e o f c o m p r i s i n g a l l i n g r e d i e n tp r o c e s s ( i n t e r p r e t e r )f o r m a l l ym a n i p u l a t i n g r e p r e s e n t a t i o n s o ft h e w o r l d ,s o t o oa c o m p u t a t i o n a lp r o c e s sc o u l d b em a d et or e a s o na b o u ti t s e l fi nv i r t u eo f c o m p r i s i n g a l l i n g r e d i e n tp r o c e s s ( i n t e r p r e t e r ) f o r m a l l ym a n i p u l a t i n gr e p r e s e n t a t i o n so f t h ew o r l d , s ot o oac o m p u t a t i o n a lp r o c e s sc o u l db em a d et or e a s o na b o u ti t s e l fi nv i r t u eo f 7 第二章反射 c o m p r i s i n ga l li n g r e d i e n tp r o c e s s ( i n t e r p r e t e r ) f o r m a l l ym a n i p u l a t i n gr e p r e s e n t a t i o n s o f i t so w do p e r a t i o n sa n ds t r u c t u r e s ” “既然一个计算过程能够被构造成凭借含有一个成分( 解释器) 去形式化 地修改外部世界的表示,以推理外部世界;那么类似地,一个计算过程也可以 设计成借助于含有一个成分( 解释器) 去形式化地修改其自身的操作和结构 来推理其自身。” 这段话的本质在于:通过反射,一个程序可以访问( a c c e s s ) 、推理( r e a s o n a b o u t ) 和改变( m a n i p u l a t e ) 自身的解释。 这个观点,在计算机科学界,引发了大量的关于反射应用的研究。最初,相 关工作局限在编程语言设计这个领域,特别是在l i s p 和面向对象这两个方面。 这些工作的成果集合在c o m m o n l i s p o b j e c ts y s t e m ( c l o s ) 的设计中 p a e p c k e 9 3 充分得到了体现。有些研究人员已经考虑到了反射在并发对象语言、基于逻辑的 语言和基于规则的语言中的影n 自 d e m e r s 9 5 】。近年来,反射的运用已扩展到窗1 :3 系统 r a 0 9 1 、操作系统 y o k o t e 9 2 和分布式系统 m c a f f e r 9 6 等领域。随着反射应 用的多样化,关于术语“反射”一词,难于给出其精确定义。下面从不同角度进 行深入探讨。 2 2 1 从开放实现到反射 所有的反射系统都以开放实现为目的。软件工程中的传统观点是通过抽象来 处理复杂性,在这种方式中,实现细节由于特定的抽象而对用户屏蔽。相应结果 就是应用组件的开发是典型的“黑箱”模式,这种方式常被认为可以提高代码的 重用性。而事实上,常常不可能或也不期望对用户屏蔽所有的实现细节。其中根 本问题在于:要隐藏实现细节就必须替应用确定( 支持应用的系统的) 实现策略。 但是,应用可能会包含一些极重要的信息,如使用某特定模块系统才能更有效地 支持应用。开放实现的目的就是通过暴露模块的某些实现细节来解决这个问题。 不过必须有原则地去区分开模块提供的功能和模块的内部实现。前者被称为一个 模块的基接口( b a s e i n t e r f a c e ) ,后者为元接口( m e t a i n t e r f a c e ) 。 2 2 2 定义及含义 反射,抽象地说,是系统的一种推理( r e a s o na b o u t ) 和作用于( a c tu p o n ) 自身的能力。 反射系统,是指这样种系统:它提供了针对于自身行为的表示,这种表示 可以被检查和调整,且与它所描述的系统行为存在着因果相联( c a u s a l l y c o n n e c t e d ) 。因果相联,意味着对于自表示( s e l f - r e p r e s e n t a t i o n ) 的改动将立即反 电子科技大学硕士论文:基于p l u g g a b l ea s p e c tc o m p o n e n t 的反射中问件核心框架研究与实现 映到系统的实际状态和行为中去( 这也是使用“反射”这个词的由来) ;反之亦 然。因此可以简单地说,反射系统是存在

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论