




已阅读5页,还剩54页未读, 继续免费阅读
(计算机应用技术专业论文)方面化中间件内核容器及动态服务组织管理研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 在按需定制计算问题背景下,本文首先介绍了3 种国内外主流的 方面化中间件平台的内核结构及a o p 实现方式,并从框架扩展性、依 赖关系可管理性和a o p 支持粒度的角度分析了其优缺点,总结出了它 们共同存在的不足。 然后,针对这些不足,提出了一种新的方面化中间件模型双 核方面化中间件模型( d c a m ) 。该模型采用分层结构,分为内核层、服 务层、应用层和方面层,将a o p 功能支持纳入内核,使得方面构件不 仅能贯穿应用层,也可以作用于服务层;引入了基于声明式的服务声 明周期管理机制用于降低服务与平台的耦合性,提高服务可扩展性及 兼容性,基于包装的容器结构为引入i o c 容器管理组件依赖关系提供 了扩展基础,这些机制使模型具有更好的可扩展性、依赖关系管理能 力和细粒度a o p 支持,同时还加入了组件移动功能支持,更好地满足 按需定制计算需求。 随后,本文阐述了模型中各层的设计与实现。各层的核心实体搭 建了原型系统的运行基础,而4 种核心服务则提供了平台协商、组件 移动和客户端调用辅助功能,实现d c a m 的设计思想。 最后,本文展示了原型系统的运行示例截图,并对该系统的优缺 点进行了分析说明,此外,还从系统启动时间及组件处理2 个角度进 行了实验,通过实验分析框架设计思想在带来各种特性的同时,所付 出的代价。 关键词按需定制计算,方面化中间件,双核结构,d c a m a b s t r a c t u n d e rt h eb a c k g r o u n do fo n d e m a n dc o m p u t i n gp r o b l e m ,t h i s p a p e rf i r s t l y i n t r o d u c e s t h e a r c h i t e c t u r ea n d a s p e c t - o r i e n t e d p r o g r a m m i n g ( a o p ) i m p l e m e n t a t i o n o ft h r e e t y p i c a l m i d d l e w a r e p l a t f o r m s ,a n a l y z e s t h e p r o s a n dc o n so ft h e mo na r c h i t e c t u r e e x t e n s i b i l i t y , d e p e n d e n c yr e l a t i o n s h i pm a n a g e m e n ta n da o ps u p p o r t i n g g r a n u l a r i t y , a n dc o n c l u d e st h e i rc o m m o nd i s a d v a n t a g e s t h e n ,f o ra b o v ed i s a d v a n t a g e s ,t h i sp a p e rp u t sf o r w a r dan e wm o d e l o na s p e c t u a lm i d d l e w a r e - d u a lc o r ea s p e c t u a lm i d d l e w a r em o d e l ( d c a m ) ,w h i c hc o n s i s t so fc o r el a y e r , s e r v i c el a y e r ,a p p l i c a t i o nl a y e r a n da s p e c tl a y e r t h em o d e la p p l i e sa o pf u n c t i o n a ls u p p o r tt ot h ec o r e l a y e rt os u p p o r ta s p e c t u a lc o m p o n e n t sw o r k i n go ns e r v i c el a y e ra sw e l la s a p p l i c a t i o nl a y e r i ta l s o u s e st h ed e c l a r a t i o n b a s e ds e r v i c e l i f e c y c l e m a n a g e m e n tm e c h a n i s mt or e d u c et h ec o u p l e dd e g r e e sb e t w e e ns e r v i c e s a n dp l a t f o r ma n di m p r o v et h ee x t e n s i b i l i t ya n dc o m p a t i b i l i t yo fs e r v i c e s m o r e o v e r ,t h ew r a p p e r - b a s e dc o n t a i n e rs t r u c t u r ep r o v i d e st h ee x t e n s i b l e f o u n d a t i o no fd e p e n d e n c yr e l a t i o n s h i pm a n a g e m e n tf o rc o m p o n e n t s b a s e do ni o cc o n t a i n e r s a l la b o v em e c h a n i s m sm a k et h em o d e lm o r e e f f e c t i v eo ne x t e n s i b i l i t y , d e p e n d e n c y r e l a t i o n s h i pm a n a g e m e n ta n d f i n e - g r a n u l a ra o ps u p p o r t ,a sw e l la so no n d e m a n dc o m p u t i n gb e c a u s e o ft h ec o m p o n e n tm o b i l es u p p o r t n e x t ,t h ed e s i g na n di m p l e m e n t a t i o no ft h em o d e li ss t a t e d t h ec o r e e n t i t i e so fe a c hl a y e rh a v eb u i l tu pt h er u n n i n gb a s i so ft h ep r o t o t y p e s y s t e m , a n df o u rs e r v i c e sa r e s u p p l e m e n t e d t o p r o v i d e p l a t f o r m n e g o t i a t i o n ,c o m p o n e n tm o b i l i t ya n dc l i e n t - s i d ei n v o c a t i o nt o f u l f i l lt h ed c a m d e s i g ni d e a s f i n a l l y , t h i sp a p e rd i s p l a y st h er u n n i n gs a m p l e ss c r e e n s h o t so ft h e p r o t o t y p es y s t e m ,a n di l l u s t r a t e s i t s p r o s a n dc o n s f u r t h e r m o r e ,i t a n a l y s e st h ep r i c ep a i df o rt h es e v e r a lf e a t u r e si nt h ef r a m e w o r kd e s i g n s t h r o u g he x p e r i m e n t s ,w h i c ha r ec a r r i e do u tf r o mt h ep e r s p e c t i v e so f s y s t e m b o o t s t r a pt i m ea n dc o m p o n e n t p r o c e s s i n gt i m e k e yw o r d so n - d e m a n dc o m p u t i n g ,a s p e c t u a lm i d d l e w a r e ,d u a l c o r es t r u c t u r e ,d c a m i i 原创性声明 本人声明,所呈交的学位论文是本人在导师指导下进行的研究 工作及取得的研究成果。尽我所知,除了论文中特别加以标注和致谢 的地方外,论文中不包含其他人已经发表或撰写过的研究成果,也不 包含为获得中南大学或其他单位的学位或证书而使用过的材料。与我 共同工作的同志对本研究所作的贡献均已在论文中作了明确的说明。 作者签名: 喀墨揸 日期:鱼鱼年月坐目 学位论文版权使用授权书 本人了解中南大学有关保留、使用学位论文的规定,即:学校 有权保留学位论文并根据国家或湖南省有关部门规定送交学位论文, 允许学位论文被查阅和借阅;学校可以公布学位论文的全部或部分内 容,可以采用复印、缩印或其它手段保存学位论文。同时授权中国科 学技术信息研究所将本学位论文收录到中国学位论文全文数据库, 并通过网络向社会公众提供信息服务。 作者签名:划导师签名皇燮 日期:三竺正年上月型日 硕士学位论文 第一章绪论 1 1 研究背景 第一章绪论 i n t e r n e t 正以前所未有的速度发展着,目前已经成为世界上覆盖面最广、 规模最大、信息资源最丰富的计算机信息网络。同时,计算机网络技术和通信技 术的发展,大大促进了i n t e r n e t 上的新服务、新应用的出现,如w e b 服务、 w a p ( w i r e l e s sa p p li c a t i o np r o t o c 0 1 ) 等技术。虽然i n t e r n e t 已经逐渐从传统 的信息发布与共享媒体演变成为一个大规模的分布式计算平台,但是,传统的 i n t e r n e t 应用,大都是包含多种功能的单一软件包,用户很难根据自己的需要 扩展或定制系统的功能。并且,考虑到用户所处网络环境、资源条件和需求的多 样性,很难用同一个解决方法来满足所有用户的需求。而w e b 服务也一般由固定 的计算模块提供,无法根据数据传输和处理的需要灵活选择。也就是说,在 i n t e r n e t 中缺乏一种自动根据用户需要搜索、加载、并运行计算程序的智能化 机制,因而无法满足应用层次和网络层次按需定制计算的需求n 1 。要解决上述 问题,需要改变i n t e r n e t 上服务和应用的实现与提供方式,细化所提供服务的 粒度,使用户能根据需要选择合适的服务功能,并引入关注点的动态搜索、传输, 编织和加载机制,支持新服务、新应用的按需创建。改变用户只能被动使用现有 服务的应用模式,使网络能够按照用户或数据传输的需要,动态组合、编织计算 模块,提高i n t e r n e t 服务的智能化程度。 目前,解决按需定制计算问题存在两大技术难点:第一个难点是主流的分布 式计算标准,如:j 2 e e ( j a v a2e n t e r p r i s ee d i t i o n ) ,c o r b a ( c o m m o no b j e c t r e q u e s tb r o k e ra r c h i t e c t u r e ) 等中间件不支持按需定制计算需求:首先,中间 件不能根据需要扩展其支持服务,或者快速、便捷地部署第三方提供的服务功能 h 1 ;其次,中间件中只能部署业务逻辑构件,而全局性约束功能构件不能部署到 中间件中去,限制了构件提供服务的能力,同时中间件对网络的要求比较高,在 不稳定网络环境中无法正常工作。第二个难点是基于面向对象软件开发的系统只 能较好地实现对业务逻辑的封装,而对于诸如;安全验证、日志、调试、授权和 异常处理等全局性约束的功能要横切系统的多个模块,造成了代码的分散和纠 缠。导致了软件系统很难具备重用性、扩展性以适应需求的变化巧刊。 针对上述技术难点,面向方面软件开发( a s p e c t o r i e n t e ds o f t w a r e d e v e l o p m e n t ,a o s d ) 提供了一种可行的方法嵋吲。面向方面软件开发通过分离横 切到构件中的方面来控制关注点的纠缠,有效地分离关注点,简化构件的编织。 同时基于构件的开发通过分离以不同方式连接和组装的可重用构件,支持软件的 硕十学位论文第章绪论 开发盯吨3 。将面向方面和基于构件开发两者的优点结合起来,创建方面化构件, 利用方面编织技术简化方面化构件的编织,这就为按需定制计算问题中软件功能 的动态编织和组合提供了技术支持。 1 2 国内外研究现状 文献 9 j 介绍了3 种用于c o r b a 中间件的面向方面支持方法和工具,分别使 用分块对象、通知和基于角色的协议层次等方式与a o p ( a s p e c t o r i e n t e d p r o g r a m m i n g ) 思想迎合。同样的基于已有中间件或组件模型,并尝试与a o p 进行 结合的研究还包括:文献 1 0 ,1 2 ,1 3 ,1 4 ,1 5 。文献 1 0 基于e j b ( e n t e r p r i s e j a v ab e a n ) 、c c m ( c o r b ac o m p o n e n tm o d e l ) 等组件模型的共性,提出了基于 a s p e c t j n 门的构件抽象层,用于实施模型无关组件编程模式。通过a s p e c t j 编写 通用的抽象方面层,作用到组件共同的事件中,并在最小改动下与其他同类平台 快速自适应;文献 1 2 利用a m t ( a s p e c tm i n i n gt o o l s ) 工具分析o r b a c u s 、 o p e n o r b 等中间件产品中的横切关注点,并使用a s p e c t j 重构原框架,通过实验 证实使用a o p 能更有效地降低中间件框架的复杂度;文献 1 3 基于o p e n c o m 编程 模型,从接口、拦截与架构3 个语言无关元模型出发,提出了一种构建语言与平 台无关的基于反射的动态a o p 方法;文献 1 4 设计了针对a f p a c 动态适应中间件 平台设计了细粒度编织器,基于拦截器技术为应用集成提供动态适应能力;文献 1 5 提出了一种作用于c o r b a 架构下s h l ( s o c k e t h a n d l i n gl a y e r ) 层上的旁路 某些中间层的方法,该方法基于b d l ( b y p a s s i n gi d l ) 方面描述语言,通过扩展 s h l 层,拦截和分析调用请求,并根据切入点配置信息直接调用相应功能,避免 逐层传递消息。这些研究为a o p 与中间件的结合进行了各种探索,其使用的方法 和工具为本课题研究提供了辅助思路,但是由于中间件平台或组件模型本身并非 对h o p 良好支持,因此,h o p 支持力度仍然很有限,此外,部分方法与特定语言 有很强的依赖性,降低了该方法的扩展性。 文献 1 6 从概念上比较了反射式中间件与自适应中间件,前者使用反射实现 细粒度的元模型支持中间件的核心服务,如服务质量( q u a l i t yo fs e r v i c e ,q o s ) 等,而基于a o p 的自适应中间件虽然一般都与具体语言有关,但是能把安全、命 名等分布式核心模块组合起来,高度抽象,降低耦合度。其所提及的反射式中间 件,使用反射支持元模型的自适应和扩展性,可以与a o p 思想进行结合,从其他 角度阐述关注点分离的研究还包括:文献 1 7 ,1 8 ,1 9 ,2 0 ,2 1 ,2 3 ,2 4 。文献 1 7 从软件工程设计角度,介绍了应用方面与组件的设计方案;文献 1 8 提出了 基于产品线和动态编织构建具体应用,实现高度可配置和自适应的中间件;文献 1 9 提出了一种形式化设计分析框架,用于从设计阶段开始执行非功能需求建 2 硕士学位论文第一章绪论 模;文献 2 0 提出了一种从软件架构层次支持方面分离的架构描述语言 a o - r a p i d e 。文献 2 1 基于一种新的分布式a o p 语言a w e d 雎2 j ,提出了一种针对分 布式应用的入侵模式,使用该模式可以为分布式应用提供常用模式的组合,解决 分布式应用中缺乏模式定义灵活度的问题;文献 2 3 对分布式规格说明语言 o c s i d 进行了面向方面扩展,添加了方面叠加和组合的形式化描述,以验证规格 说明的时态属性和系统行为,为分布式系统规格说明的方面扩展提供了形式化基 础;文献 2 4 使用方面实体封装基于各种交互协议的通信功能,并基于 m u l t i t e l 、m a l a c a 等平台基础设施支持,将交互协议与计算逻辑编织起来,解 决分布式应用的软件实体中计算逻辑与通信逻辑纠缠在一起的问题。这些文献从 软件架构、软件设计及软件运行的各个角度进行研究,力争将关注点分离的思想 贯穿到软件开发的各个阶段中,这些研究工作对本课题的进一步研究方向提供了 借鉴思路。 文献 2 5 针对传统的软件重用设计模式,阐述了面向方面软件重用模式设计 方法,并给出了具体的设计步骤和方面的结构层次,展示了采用面向方面软件重 用模式能够带来巨大的开发效率提高。文献 2 6 结合a o p 技术与组件技术,提出 了一个插件式方面组件的反射中间件模型。文献 2 7 提出了一种基于s p r i n g 框 架结合j m x ( j a v am a n a g e m e n te x t e n s i o n ) 盟8 3 管理总线的j 2 e ew e b 中间件,并且 使用s p r i n g 的a o p 框架和容器管理组件,提高平台组件的可扩展性和低依赖性。 文献 2 9 基于c a r ( c o m p o n e n ta s s e m b l yr u n ti m e ) 构件系统提供的上下文环境, 引入面向方面上下文构件和方面构件,在请求构件实例化阶段添加方面构件接 口,支持动态增加上下文功能;文献 3 0 进一步使用容器动态生成技术,在运行 时将x m l ( e x t e n s i b l em a r k u pl a n g u a g e ) 配置中声明的方面构件与业务构件进行 关联,将构件的调用转换为容器的调用,而不对原始组件进行修改。文献 2 9 , 3 0 支持非侵入性的编织概念,即组件和方面的耦合并没有在编译阶段或加载阶 段通过修改组件代码实现,这种方法与基于生成代理的方法类似,不仅保持了组 件本身的一致性,同时也融入了a o p 支持,为组件和方面的融合机制研究提供了 其他思路。但是该方法只能针对基于组件实例请求的应用组件有效,不能作用到 服务层次。 文献 3 1 介绍了j a s c o 平台,通过引入方面b e a n 和连接器的概念,通过新 的j a s c o 语言实现a o p 功能,将c b s d ( c o m p o n e n t b a s e ds o f t w a r ed e v e l o p m e n t , 基于组件软件开发) 与a o s d 组合起来。文献 3 2 提出了一种无侵入性的集成c b s d 与a o s d 技术的组件模型c a m ( c o m p o n e n t a s p e c tm o d e l ) ,将组件和方面定义为 第一位的实体,通过d a o p ( d y n a m i ca s p e c t o r i e n t e dp l a t f o r m ) 口羽平台支持, 在运行时执行方面与组件的结合。文献 3 1 及文献 3 2 所阐述的平台从其底层设 硕士学位论文 第一章绪论 计就与a o p 思想迎合,其可扩展性与自适应性都大大提高了,但是平台需要开发 人员熟悉j a s c o 或d a o p 语言,延缓了开发人员的学习曲线,并且与平台语言的 高度耦合也降低了平台间的可重用性。 文献 3 4 介绍了面向方面语言c a e s a r j 。文献 3 5 从概念模型与具体模型介 绍了j b o s s 应用服务器的结构,并对j b o s s 架构进行了评估。以文献 3 4 与 3 5 为代表的各种语言和平台的研究是目前成果较多的一个领域。因此,对这些成果 进行总结和对比为促进进一步的研究提供了基础,这种总结性的研究工作包括文 献 3 6 ,4 1 。文献 3 6 分析了基于耦合度、效率等6 个比较准则,对 a s p e c t w e r k z 口7 删、j b o s s 、p r o s e 口9 3 和n a n n i n g h 们等4 种面向方面系统进行了比较 和评价;文献 4 1 提出了针对可重用性、模块性、评估性和可靠性等因素的一系 列评估方面化组件模型的标准,并将这些标准应用到a s p e c t j 、c a e s a r j 、j a s c o 和c a m d a o p 。 1 3 论文研究内容和组织 论文主要研究的内容有: 1 ) 方面化中间件平台核心层框架建立。核心框架的搭建是为了得到方面化 中间件平台的逻辑架构,架构是整个平台的核心结构,因而这是所有工作的一个 重点,同时也是一个难点。 2 ) 中间件平台内核服务组织和管理机制。由于中间件平台是面向服务架构 的,因此内核服务的组织和管理机制是整个中间件平台的基础。重点在于研究若 干系统服务统一组织形式,及服务管理机制,在此基础上才能使中间件平台更好 地发挥s o a ( s e r v i c e - o r i e n t e da r c h i t e c t u r e ) 的优势。 3 ) 动态发布服务模型研究。在统一服务管理基础上,本课题的另一个重点 是研究服务可动态扩展技术实现,服务可以在运行时加入平台,实现平台功能扩 充。基于服务管理机制,制定一套适合本中间件平台的服务扩展模型。 4 ) 中间件平台组件管理模型和原型实现及性能比较。中间件平台的主要元 素就是业务逻辑组件,组件之间又存在各种依赖关系。本课题中考虑到组件之间 的依赖关系以及组件横切功能的实现,需要制定一套综合的管理模型,降低组件 之间的耦合度。在平台支持下实现组件的移动功能,以便于进行进一步地研究工 作。实现原型系统,并与j b o s s 、p k u a s 等主流平台的对应模块进行性能对比研 究。 本论文共分6 章,每章的主要内容如下: 第一章绪论。首先回顾了研究的背景,指出传统的i n t e r n e t 应用无法满足 应用层次和网络层次按需定制计算需求,而方面化中间件能有效解决按需定制计 4 硕十学位论文第一章绪论 算的主要难点,指明了这一课题的研究意义。并介绍了国内外最近几年这一课题 的研究现状,最后介绍了本文的论文研究内容和组织结构。 第二章方面化中间件平台。介绍了国内外主流的方面化中间件平台,从a o p 实现机制,平台内核结构及优缺点三个方面进行了阐述,这几个平台的架构和实 现为我们的研究开展提供了基础。 第三章双核方面化中间件模型d c a m ( d u a lc o r ea s p e c t u a lm i d d l e w a r e ) 。 本章阐述了一种新的方面化中间件模型,把a o p 核心层与服务核心层都置于内核 中,使得服务与一般应用组件都能适应a o p 编程范型,把横切关注点抽象出来, 在运行时编织在一起,从而提高组件复用性,降低耦合性。 第四章框架设计与实现。本章在第三章的框架模型基础上,采用j a v a 编程 语言实现了框架原型系统,并对关键模块的实现列出了实现函数、接口和数据结 构。 第五章原型系统分析。介绍了原型系统的优缺点,并与j b o s s 等平台在同 等条件下进行了启动时间比较,此外,还分析了本系统启动时间与加载的组件数 目的关系。 第六章结束语。对本文进行了总结。并对今后的工作,方面化中间件的发 展方向做了展望。 硕+ 学位论文第二章方面化中间件平台 第二章方面化中间件平台 传统的遵循j 2 e e 标准的应用服务器,如w e b l o g i c 和w e b s p h e r e 等不能很好 支持按需定制计算要求,由于其架构设计不能解决诸如扩展中间件的支持服务、 部署全局性功能构件等问题。目前国内外主流的遵循j 2 e e 标准的应用服务器在 一定程度上缓解了上述难题,下面分别对j b o s s h2 j 、s p r i n g h 3 3 和p k u a s n 钔的架构 进行介绍。 2 1j b o s s j b o s s 是一个免费的丌放源码的j 2 e e 实现,它的架构是基于高标准模块化 和插入式设计,并在4 0 1 版本之后融合了a o p 功能支持。j b o s s 是第一个融合 了a o p 功能支持的j 2 e e 应用服务器,也是发展最为迅速的应用服务器。 图2 1j b o s s 层次框架 如图2 1 所示,j b o s s 的架构是分层的,其核心层基于并扩展了t 丁m x 微内核, 微内核之上的服务层采用可管理b e a n ,即m b e a n 对象模型实现,j b o s s 功能模块 都被实现为m b e a n s ,由j m x 底层进行管理。j m x 微内核中的核心组件m b e a ns e r v e r 是平台启动时第一个被创建的对象,其他服务m b e a n s 通过配置文件中的信息进 行加载,m b e a n 组件只有在m b e a ns e r v e r 中注册后才能被视为插入了j b o s s 平 台中h 5 刮。j b o s s 自定义了基于m b e a ns e r v e r 的连接器和适配器组件,扩展了 j m x 标准中分布式服务层的结构,使m b e a ns e r v e r 对外提供的接口服务与具体 通信协议无关,丰富了系统管理途径。 使用j b o s sa o p 功能可以实现在服务层与应用层之间生成方面层,部署全局 约束功能。j b o s s 自定义了类加载器及a o p 概念模型的实现方式,基于j a v a s s i s t 元编程技术,提供静态和动态编织策略。部署m b e a n 中的a o p d e p l o y e r 服务是支 持方面与应用组件关联的基础,通过x m l 文档配置或代码中标注的方式声明方面 与应用组件的关系,a o p d e p l o y e r 服务依据该关系,在应用组件实例外围形成一 6 硕士学位论文第二章方面化中间件平台 个方面层,解决全局约束部署问题h 7 。4 9 3 。 2 2 s p rin g s p r i n g 是轻量级的低侵入的j 2 e e 应用程序框架,它致力于解决传统j 2 e e 应用的开发效率低,应用服务器厂商对各种技术的支持不完全统一,应用开发与 具体服务器紧密耦合的问题。s p r i n g 作为开源的中间件,并不是想取代已有的 应用框架,而是以高度的可扩展性与它们无缝整合。 s p r i n ga o p a o p c o r e a o pa l l i e n c e a s p e c o s o u r c e 1 e v e l m e t a d a t a 图2 - 2s p r i n g 框架 如图2 2 所示,s p r i n g 框架是基于模块的,由7 个定义良好的模块组成, 模块之间是松散耦合的,各个模块可以自由组合形成子框架咖1 。s p r i n g 是一个 轻量级的i o c ( i n v e r s i o no fc o n t r o l ,控制反转) 和a o p 容器框架,其核心是实 现了i o c 模式的容器,核心容器提供了框架的基础功能,采用工厂模式实现i o c 的b e a n f a c t o r y 类将系统的配置和依赖关系从代码中独立出来。应用代码不再需 要显式实例化其依赖的对象,只需要把依赖关系写入配置文件中,在代码中以构 造函数或设置属性的方式提供注入点,s p r i n g 框架就可以透明的注入依赖的组 件,返回满足依赖关系的实例。基于核心容器的上下文模块a p p l i c a t i o nc o n t e x t 扩展了b e a n f a c t o r y ,添加了对国际化、系统生命周期事件以及验证的支持,此 外该模块还提供j n d i ( j a v an a m i n ga n dd i r e c t o r yi n t e r f a c e ) 访问、e j b 集成、 远程调用等企业级服务,并且支持与模板框架的集成。 s p r i n g 的a o p 模块引入了s p r i n g 的m e t a d a t a 编程技术,且模块基于a o p a l l l a n c e 的a p i ( a p p l i c a t i o np r o g r a m m i n gi n t e r f a c e ) 开发,确保与其它a o p 框架之间的互通,例如与a s p e c t j 互通。s p r i n ga o p 功能基于动态代理技术实 现,实现策略包括基于j 2 s e ( j a v a2s t a n d a r de d i t i o n ) 的动态代理和c g l i b ( c o d e g e n e r a t i o nl i b r a r y ) 畸类库继承2 种2 粕3 。全局约束功能使用a o p 模块实现后, 通过对专用于生成相应动态代理的b e a n 注入应用实例的方式,为应用程序包装 不同的运行环境,从而实现a o p 功能。以事务管理为例,首先声明用于事务管理 7 硕士学位论文第二章方面化中间件平台 的具体管理器b e a n ,然后配置s p r i n g 框架已有的生成事务动态代理的组件 t r a n s a c t i o n p r o x y f a c t o r y b e a n 的相关属性,就可以为应用代码提供事务支持, 而事务支持本身对应用程序是透明的,事务管理使用的具体管理器是基于配置 的,便于进行修改。 2 3p k u a s p k u a s 是北京大学独立开发的j 2 e e 应用服务器,已经成功通过了j 2 e e 认证 测试,是一款面向领域的中间件平台。 p k u a s 也是架构于3 m x 微内核之上,主要模块包括服务、容器系统和管理工 具插件。p k u a s 所基于的丁m x 微内核,仅负责系统构件的装载、配置、卸载及启 动、停止、挂起等状态管理,系统的非功能性约束,如通信、安全、事务等都由 服务模块实现。容器系统提供了应用系统的运行环境,平台的管理采用管理工具 插件的方式,通过基于j m x 部署新的插件来增加平台的管理功能。p k u a s 的连接 子结构借鉴了a o p 思想实现,连接子由2 个部分组成:源端和宿端,分别对应于 a o p 概念中的连接点( j o i n tp o i n t ) 和方面( a s p e c t ) ,源端和宿端连接子之间存 在一个抽象的横切层,用于实现具体的通知( a d v i c e ) 操作陆4 | 。当构件进行业务调 用时,利用拦截器技术,源端和宿端连接子截取构件请求,调用横切关注层上的 通知实现全局约束,动态地将通知与构件业务方法集成在一起。 2 。4 分析对比 j b o s s 、s p r i n g 和p k u a s 这3 个框架在抽象模型和具体应用上都不尽相同, 每个框架都有其优缺点,本文不去讨论每一个框架的优缺点,由于框架扩展性、 组件管理性以及a o p 功能实现方式对于研究按需计算平台具有重要意义,因此将 从这几个侧面入手,分析和比较这3 种主流平台。 1 ) 框架扩展性 j b o s s 的框架扩展性包括以下3 方面:应用层扩展、方面层扩展和服务层扩 展。应用层扩展是指j b o s s 可以作为不同领域都适用的应用服务器,领域内的应 用组件都可以在服务器上得到很好的支持;方面层扩展是指j b o s s 可以对应用层 的全局约束问题灵活处理,通过对方面类的修改,或者修改x m l 配置文件,扩展 作用到应用层上的方面功能,新的全局约束只需要配套地新增方面类和配置文件 就可以透明地作用到应用组件中;服务层扩展则是指j b o s s 通过m b e a ns e r v e r 部署新的m b e a n 或修改、删除已有m b e a n 的方式对平台提供的服务进行扩展。 s p r i n g 的框架扩展性则指功能模块的扩展以及a o p 模块的扩展。s p r i n g 基 于i o c 容器,模块之问松散耦合,这就使得该框架具备了很好的可扩展性和裁剪 8 硕士学位论文第二章方面化中间件平台 性。结合s p r i n g 已有的7 个模块,可以方便地组合出各种子框架,此外,还可 以基于s p r i n g 已有模块开发出新的面向领域的模块,形成新的框架。此外, s p r i n g 的a o p 模块可以扩展新的全局约束,例如基于声明式的安全服务,全局 约束又可以基于i o c 容器方便地与其它模块集成。 p k u a s 框架扩展性主要包括管理插件扩展、服务扩展和通信协议扩展。基于 m b e a n 实现的管理插件可以方便地通过j m x 进行扩展,便于丰富用户管理方式; 服务扩展则可以添加新的全局约束服务,为容器系统中的应用提供支持;通信协 议扩展是指p k u a s 在通信层与其适用的具体协议之间进行了抽象,新的通信协议 可以在不修改代码的情况下无缝插入,应用层并不知道具体的通信实现细节。 2 ) 组件管理性 j b o s s 服务m b e a n 都采用基于j m x 标准的管理方式,由m b e a ns e r v e r 统一 管理,服务需要实现m b e a n 接口,与j b o s s 平台紧密耦合,此外,应用组件依赖 于e j b 容器提供生命周期和全局约束功能,组件与服务之间紧密耦合。 s p r i n g 由于实现了i o c 模式,在组件依赖关系上有很大的优势。依赖关系 从代码转移到了配置文件中,组件的实例化过程不直接使用n e w 操作,而转由 i o c 容器利用反射注入依赖并实例化对象。 p k u a s 利用管理插件管理容器系统以及服务,提高了组件的可视化管理能 力,组件之间的依赖关系以及组件对服务的依赖都在代码中紧密耦合。 3 ) a o p 功能实现方式 j b o s sa o p 提供静态和动态编织两种方式,使用自定义类加载器通过静态或 动态修改字节代码,插入方面钩子,实现全局约束。j b o s sa o p 功能比较全面, 提供方法和成员变量切入点的编织,以及m i x i n 等特性,此外还支持加载时编织 和热部署特性。j b o s sa o p 作用于应用层上,对于系统服务本身不能提供任何支 持。 s p r i n ga o p 只提供动态编织,且只能针对方法级别上的粗粒度编织。尽管 s p r i n g 的a o p 支持可以被用于从系统核心逻辑中分离横切关注,但是其主要任 务是作为s p r i n g 对声明式事务支持的基础,其他框架可以使用s p r i n ga o p 模块 基础提供诸如声明式安全服务等企业级服务支持。 p k u a s 的a o p 实现则是通过抽象出源端和宿端连接子实现,方面并不是编织 在应用代码中,而是通过容器拦截方法调用触发通知,方面与业务逻辑的关联通 过连接子配置,由于连接子分为源端和宿端,因此通知代码也分作用到源端与宿 端2 种。 9 硕士学位论文 第二章方面化中间件平台 表2 - 1 :3 种平台按需定制功能支持优缺点比较 综合以上几点,从表2 1 可以直观地看出,j b o s s 在a o p 功能支持粒度上具 有较大优势,而主要的不足在于服务模型与平台紧密耦合,方面不能对系统服务 提供支持,缺乏组件依赖关系管理。s p r i n g 具有良好的依赖关系管理能力,但 a o p 功能支持粒度较粗,对服务全局约束支持有限。p k u a s 支持容器和互操作协 议的定制和扩展,另一方面,连接子模型也不能对系统服务提供支持,同时,也 缺乏组件依赖关系管理。从满足按需定制需求出发,3 种平台存在的共同问题包 括: 1 ) a o p 功能主要用于应用层,而为系统服务分离全局约束能力不足。 2 ) 在资源受限条件下,缺乏组件移动支持机制。 3 ) 服务应具有更高的复用性,与平台松散耦合,服务和应用组件都应有依 赖管理机制。 2 5 本章小结 本章介绍了目前国内外主流的方面化中间件平台j b o s s 、s p r i n g 和p k u a s , 从平台架构、a o p 实现机制等角度进行了阐述,并结合按需定制计算的需求,对 这几个平台的优缺点进行了比较,总结了亟需解决的3 个问题。 1 0 硕士学位论文第三章双核方面化中间件模型d c a m 第三章双核方面化中间件模型d c a m 细粒度的a o p 功能支持、组件在资源受限情况下的移动以及依赖关系管理3 个方面是按需定制计算平台必有的特性。通过对前面主流方面化中间件平台的分 析可知,目前的平台还不完全满足按需定制计算平台特性。因此,本文提出一种 新的方面化中间件模型双核方面化中间件模型( d c a m ) 。 3 1 整体模型 图3 1 双核中间件模型 如图3 - 1 所示,双核中间件模型也是一个层次模型,由内核、服务层、方面 层和应用层组成,具体描述如下: 1 ) 服务层 该层用于部署平台核心的功能模块,为平台实现各种功能提供基础设施,并 为上层应用组件提供功能支持。由于服务层中功能模块管理十分重要,通常服务 必须实现特定的接口,这些接口封装了框架管理功能入口等基础特性,这种做法 虽然为服务扩展减少了大量重复编码工作,但是也导致了服务与平台紧密耦合, 降低了服务可重用性等结果。因此,为了提高平台可扩展性,降低服务与平台的 耦合度,更好地适应按需定制计算需求,在双核中间件模型中,服务不需要实现 特定的功能接口也可以快速部署到服务层中来,而诸如移动服务、协商服务等系 统内置服务也最小限度与平台耦合,且其实现能灵活替换。 2 ) 应用层 该层用于部署业务计算组件,计算组件封装业务逻辑实现,从而为客户端提 供计算功能调用。组件运行在容器环境中,组件本身不用与容器产生耦合,容器 只是外部平台管理组件的一个窗口。通常应用层中的一个关键问题就是复杂应用 环境下,组件之间会产生大量的依赖,而这种依赖使得组件替换等功能实现变得 硕十学位论文 第三章双核方面化中间什模犁d c a m 十分复杂,不符合面向对象的设计初衷。i o c 模式的提出为解决这个问题提供了 良好的模板,通过容器注入组件依赖可以大大降低管理组件依赖关系的成本,且 组件本身的结构也更清晰,可读性更高。双核中间件模型在应用层中也引入了 i o c 容器,从而降低组件间的耦合度,提高可重用性。 3 ) 方面层 无论是服务层,还是应用层,模块都包括系统关注点和横切关注点功能,a o p 的提出就是为了弥补o o p ( 0 b j e c t o r i e n t e dp r o g r a m m i n g ) 在解耦系统关注与横 切关注问题上的能力不足。方面层中的方面构件封装了横切关注点,贯穿服务与 应用,分别为服务层和应用层提供了横切视角,以组件的形式封装全局约束代码。 引入方面层,既可以有效降低服务与应用组件中业务逻辑与全局约束的紧密耦 合,又可以分别提高业务组件和方面组件的可重用性。 4 ) 内核 包括方面核心和服务核心,内核提供了连接平台各部分的逻辑总线,也是服 务层、方面层与应用层之间的纽带。服务核心支持服务层与应用层的运行,方面 核心则在初始化时把业务逻辑与全局约束关联起来,组成一个完整的平台功能实 体。 该模型把a o p 功能支持纳入内核层中,与服务核心协同工作,形成双核结构。 服务与应用组件开发可以更关注于业务逻辑,而把纠缠和散乱的全局约束代码封 装为可复用的方面构件,这种业务逻辑与全局约束分离的编程范型在提高了构件 可重用性的同时,也为平台管理和扩展全局约束提供了方便。与其他中间件模型 相比,该模型的特点在于良好的管理和扩展能力,其关键机制主要包括方面编织 模型、内核结构、依赖关系管理、服务模型及生命周期管理、组件移动管理。 3 2a o p 内核 方面层与服务层和应用层协同工作需要方面编织模型作为支撑,在双核模型 中采用的是基于b c e l ( b y t ec o d ee n g i n e e r i n gl i b r a r y ) 啼别类库的动态方面编织 模型畸引,支持静态和动态编织。 如图3 2 所示,x m l 格式的方面配置文件定义业务逻辑与全局约束的耦合关 系,基于b c e l 的方面编织内核依据配置对业务逻辑代码进行操作,静态或动态 修改类文件,把全局约束代码与业务逻辑代码绑定到一起。由于全局约束代码使 用方面容器间接调用,方面构件与业务逻辑组件之间仍然是松散耦合的。通过动 态修改方面构件或与业务逻辑的耦合关系,可以实现在运行时动
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 金融合同金融租赁资金信托合同5篇
- 2025健身房转让合同模板格式
- 2025成都诺克衣柜经销商合同范本
- 2025全日制用工新劳动合同书
- 任务二 超市、菜场购物说课稿-2023-2024学年初中劳动八年级下册浙教版
- 第5课 画多边形教学设计-2023-2024学年小学信息技术(信息科技)第三册黔教版
- 2025成都劳动合同样本(合同版本)
- 2025年个人汽车质押担保借款合同范本
- 2025关于租地合同
- DNA是主要的遗传物质-教学设计
- 苏科版九年级上册数学第一次月考试卷附答案
- 银川能源学院《高等数学文》2023-2024学年第一学期期末试卷
- 2025年蜀道集团招聘笔试参考题库含答案解析
- DB45T 2844-2024 轻型汽车车架总成技术规范
- 人工智能设计伦理知到智慧树章节测试课后答案2024年秋浙江大学
- 设备供货安装方案
- 电信明厨亮灶合同范本
- 职业本科《大学英语》课程标准
- 2024年承包建设工程合同
- 英语语法课程教学大纲
- 《陆上风电场工程概算定额》NBT 31010-2019
评论
0/150
提交评论