(计算机应用技术专业论文)基于插入式模块的容器动态适应性研究.pdf_第1页
(计算机应用技术专业论文)基于插入式模块的容器动态适应性研究.pdf_第2页
(计算机应用技术专业论文)基于插入式模块的容器动态适应性研究.pdf_第3页
(计算机应用技术专业论文)基于插入式模块的容器动态适应性研究.pdf_第4页
(计算机应用技术专业论文)基于插入式模块的容器动态适应性研究.pdf_第5页
已阅读5页,还剩55页未读 继续免费阅读

(计算机应用技术专业论文)基于插入式模块的容器动态适应性研究.pdf.pdf 免费下载

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

文档简介

摘要 组件模型中,容器是组件的运行环境,为组件提供部署和运行所需要的技术 服务。随着各种新型计算平台的出现和i n t e r a c t 信息网络的飞速发展,组件在执 行期的环境变化越来越难于预测和控制,而现有的主流组件模型都使用注释静态 设置容器,无法满足系统动态适应环境变化的要求。定制容器己成为一种趋势。 目前国内外都已经启动了关于下一代容器样式的讨论和研究,并已取得了一些成 果,但是还没有完全解决对容器的基本设计模型的复用及其对动态适应性服务的 支持问题。 本文以现有的主流组件模型为基础,分析了组件模型的相关概念,系统地研 究了组件模型的工作机制及其支持技术,深入研究了组件与容器之间的交互机 制、容器机制及其关键技术,剖析容器为组件所提供的基本服务及其实现机制。 在此基础上给出了一个基于插入式模块的容器模型p m b c m ,同时对此模型引入 一种动态适应性框架,实现在运行期间可监听其自身的状态,并能根据指定环境 需求自适应地调整其自身功能。给出了p m b c m 关键技术的具体实现,并针对 e j b 容器的结构特征,对其进行了功能重构,使其对组件执行期的环境具有动态 适应性功能。最后提供一个案例分析,测试并验证p m b c m 在实际系统的应用效 果。 本文给出的容器模型较好地解决了应用系统对容器动态适应性的要求, p m b c m 插入式模块的设计思想使得整个设计过程更为灵活,并使得设计可以被 重用。另外,模块化设计所实现的体系结构可以比传统的环境更加迅速地进行系 统调整或者重构。 关键词:组件模型、容器、p m b c m 、动态适应性、重构 a b s t r a c t c o m p o n e n tm o d e l su s et h ec o m p o n e n t * c o n t a i n e r - s e r v e rf r a m e w o r k c o n t a i n e r i st h er u n - t i m ee n v i r o n m e n to fc o m p o n e n ta n dp r o v i d e st h et e c h n o l o g ys e r v i c e sf o r d e p l o y m e n ta n de x e c u t i o no fc o m p o n e n t s w i t hn e wt y p e so fc o m p u t i n gp l a t f o r m s a p p e a r i n ga n dr a p i dd e v e l o p m e n t o fi n t e m e t ,i ti sh a r d e ra n dh a r d e rt oa n t i c i p a t ea n d c o n t r o lt h ee x e c u t i o nc o n d i t i o n so f c o m p o n e n t s 。b u t i nt h em o s to fn o t a b l e c o m p o n e n tm o d e l s ,c o n f i g u r a t i o nb e t w e e nc o m p o n e n t sa n dm i d d l e w a r es e r v i c e si s o n l ys u p p o r t e d a td e p l o y m e n t - t i m eu s i n gad e c l a r a t i v ed e p l o y m e n t d e s c r i p t o r , w h i c h i sh a r dt os a t i s f yt h ed e m a n do fd y n a m i c a d a p t a b i l i t yi ne n t e r p r i s es y s t e m s s o i ti sa t r e n dt oc u s t o m i z ec o n t a i n e r s t h er e s e a r c ho rt h em o d eo fn e x t g e n e r a t i o n c o n t a i n e r sh a sb e e ns t a r t e d ,a n dh a ss o m ea c h i e v e m e n t sa l r e a d y b u ti tc a n n o ts e t t l e a l lt h ep r o b l e m sm e n t i o n e da b o v e ht h i st h e s i s 。t h ec o r r e l a t i v ec o n c e p t i o n sa b o u tc o m p o n e n tm o d e l sa 跫a n a l y z e d a n dt h ew o r km e c h a n i s ma n dt h et e c h n o l o g yo fc o m p o n e n tm o d e l sa r ei n v e s t i g a t e d a n dt h ea s s o c i a t i o nb e t w e e nc o m p o n e n t sa n dc o n t a i n e r , t h em e c h a n i s ma n dt h e t e c h n o l o g yo fc o n t a i n e ra r ea l ld e e p l ys t u d i e d b a s i r i gt h e s e w ed e s i g nac o n t a i n e r m o d e ln a m e dp m b c m 需u g - i nm o d u l e - - b a s e dc o n t a i n e rd e s i g nm o d e l ) t h e n i n t r o d u c eaf r a m e w o r kf o rd y n a m i ca d a p t a b i l i t yt op m b c m ,w h i c he n h a n c ei t b y a l l o w i n gc o m p o n e n t st ob ea w a r eo f , a n da d a p tt o ,v a r i a t i o n si nt h ee x e c u t i o nc o n t e x t a c c o r d i n g t ot h i s ,w ee x t e n dt h ef _ 2 bc o n t a i n e rf o ra d a p t a t i o ni nt h es a m ew a y , a n d g i v e a n e x a m p l e t ov a l i d a t ei t t h ec o n t a i n e rm o d e lp r e s e n t e di nt h i st h e s i ss a t i s f i e dt h ed e m a n do fd y n a m i c a d a p t a b i l i t yi ne n t e r p r i s es y s t e m s t h em e t h o d o fd e s i g n i n gp m b c mm a k e si te a s i e r t ob em u s e da n de x t e n d e dt h a nt r a d i t i o n a lm e t h o d s k e y w o r d s :c o m p o n e n tm o d e l ,c o n t a i n e r , p m b c m , d y n a m i ca d a p t a b i l i t y , a n d r e f a c t o r i n g 学锰论文独创擞声明, 本人糖主交婚学馕论文是我令人庄喜糖摆善下透露蟾霹究工罅 反取得的辫究成亲。尽我所知,除了文中特别加以标注和致谢的地方 外论文中不包含其他人已经霞表或撰写蟪的研究崴朵。与我一同工 捧糖霞事鸯本碍究卿馥蟾任镶赘献祷已衷论文幸作了嚼碡醣绕嚷并 畚囊? 谍意。耘不实,本人囊全部童强。 论文l 摹者f 签名,?2 0 0 4 毒3 月3 1 肆 学位论文使用授权说明 河滁大学、中国科学技术信息研究所、国家图书馆、中国学术期 聪( 光盘舨) 电子杂志猛有投保蜜本人所送交学像论文瓣复露终或邀 予文档,可以采用影印、缩印或其他复制手段保存论文。本人电子文 档的内容和纸质论文的内容相一致。除在保密期内的保密论文外,允 许论文被查阅和借阅。论文全部或郝分内容的公布( 包括稍登) 授权河 海大学磷究生院办理。 论文作者f 签名,2 0 0 4 牟3 蠢3 1 霉 河海大学硕士学位论文基于插入式模块的容器动态适应性研究 。 研究背景 第一章绪论 今天,人们聪临着大规模网络应用软件的出现带来的额闯题。面囱对象技术 静进步,特别是工业界开始采用藻于组件的软件歼发,绘软件工程发展带来了薪 的希望。组件模型决定了软件体系结构的思维逻辑,组 牛模型和中间件融成为当 今软件系统架构和软传技术发展的主导力量“1 。 组件体系结构都采用组件一容器一组件服务器这样的计算结构,其中容器是组 件的运行环境,洚组件搀供部署和运行所需要的援禾缀努。而随羞各种新鳌静诗 戴平台的出现和i n t e m e t 信息网络的飞速发展,缀件在逶行期的环境变化越来越 难子预溺帮控载,缓箨辩撬行期环境交纯熬动态逡应憝_ 力,成为麓予缢羚鹣获释 开发最为主要的挑战之一。容器是解决缎件动态适应性的关键。 瑶春静主滚缀箨模蘩使霜注释静态设囊容器所需搀供豹簸务,无法瀵跫系统 动态适应性的要求。目前国内外都已经启动了关于下一代容器的样式的讨论和研 究“3 ,势穗取褥了一些藏栗,毽怒对容器夔基本没诗摸鹜爱其对动态适疲性鼹务 的支持还缺少更为深入的研究。 1 2 问邋的提出 裂嚣 l 萋为止,缝转技术发展黪慧趋势就是三犬主滚筑箨模型:f a b 、c o m + 和c c m 。c c m 模型架构成熟,但它太复杂,未能被广大软件人员所接受,所以 瓣蔻企效应月系绞豹核心平台,簇本上帮是选恁j 2 e e 秘。n e t 。死大基餮l ;絮拇平 台的代表是:基于c o m j c o m + 的n e t 平台,基于f a b 的m m w e b s p h e r e 平台 鞠b e a w e b l o g i c 平台。这些平螽已成兔实现金效应用软锌秀发、部署、运行、 臀理、集成和安垒的一体化开放平台,可满足大多数应用软件所要求的可靠性、 w 孛缩性襄安全救豹需要。 但怒它们存在着一滗的局限性,都烙有很深的计算机软硬件系统的印记: c o m + 只瞻在w i n d o w s 乎台下使用例;c c m 的架构成熟,但它太复杂“,未能 被广大软件开发人员所接受;e j b 又限制于j a v a 语言“”。即使没有这些限制, 这些组件模型也不能完全满足各种系统的需求。髓着各种新型的计算平台的出现 和i n t e m e t 信息网络的飞速发展,对特殊环境,阮翔有限的内存、c p u 处瀵能力、 特制的硬件等的动态适皮性就是个对现代企业系统来说日益显著的要求。但是 璜有的缀侔模螫中容器掰提供的j # 功髓僚( 技术) 派务瑟瑟体实瑗都被隐藏超来, 配置这热服务受剿了严格的限制,只能使用注释静态地配置容器,不具备在运行 河海大学硕士学位论文 基于插入式模块的容器动态适应性研究 期间动态可重配置的能力,不能适应运行期环境的变化。因此使容器具有对执行 环境的动态配置和适应性的功能,并在一定程度上保证其可重用性和扩展性,已 是一个急需解决的问题。 1 3 本文主要工作 为解决容器定制时的对基本设计模型的复用和现有容器的动态适应性问题, 本文给出了一个基于插入式模块的基本容器设计模型,并为容器模型引入了一个 动态适应性服务的框架,使其对组件的运行时环境具有动态适应性。具体工作由 以下几个方面组成: l _ 通过系统地分析组件模型的相关概念,包括软件复用、组件定义、组件 体系结构原理等,为组件模型中容器机制的研究打下理论基础。 2 以现有的主流组件模型为基础,分析组件模型的工作机制。深入研究组 件的运行环境、组件与容器之间的交互机制,特别是容器机制及其关键 技术。为设计可复用的容器模型提供技术支持。 3 剖析容器为组件所提供的基本技术服务及其实现机制,并基于插入式模 块的设计思想给出一个基本的容器模型p m b c m 。然后为此模型引入一 个动态可适应性框架,分析该框架各部分的功能和原理,并给出p m b c m 的一个动态适应性功能扩充的重构模型。 4 针对p m b c m 的几个关键技术给出其在e j b 体系结构中的具体实现,并 对e j b 容器进行功能扩充,使其对组件执行期的环境具有动态适应性功 能。 5 最后使用电力物资管理信息系统作为一个案例分析,验证p m b c m 在实 际应用系统中的应用效果。 本文的研究目标p m b c m 旨在设计一个能满足系统动态适应性要求的容器 模型,并为定制容器寻求一种可复用和可扩展的容器模型方案。 1 4 本文组织 第一章,绪论。本章主要介绍本文的研究背景、面临的问题和本文的主要工 作以及文章组织。 第二章,组件模型。本章以现有的主流组件模型为基础,首先给出了相关概 念的解释,然后详细分析了组件模型的基本机构和工作机制,并深入分析组件实 现、组件运行环境、生命周期、注释等组件模型的主要技术。并在每一个概念后 都给出三种主流的组件实现模型( e j b 、c c m 及c o m + ) 对这些技术的支持。 为容器机制的深入研究打下了理论基础。 第三章,容器机制。本章在第二章的基础上,对组件模型中容器机制进行了 2 河海大学碗士学位论文基于插入式模块的容器动态适应性研究 更为深入的研究。包括容器所提供的技术服务、容器为实现这些技术服务所采用 的工作机制和关键技术等。为设计可复用的容器模型提供技术支持。 第四章,基于插入式模块的容器模型。本章在上文对主流组件模型,特别是 容器机制深入研究的基础上,利用插入式模块化的方法设计了一个容器模型 p m b c m ,同时为模型引入了动态适应性服务的框架,并对框架各个部分的功能 和原理进行了具体的分析。最后给出了p m b c m 的动态适应性功能重构模型。 第五章,p i d b c m 关键技术实现与案例分析。本章给出了p m b c m 的关键技术 在e j b 组件模型中的实现,并给出对e j b 容器重构的技术方案,使其具有动态 适应性功能。最后提供一个案例分析,测试并验证p m b c m 在实际应用系统中 的应用方法及其效果。 第六章,总结与展望。本章对论文的内容进行总结,指出存在的问题,并展 望了今后需要进一步完善和开展的工作。 3 滔海夭学硕士学佼论文基乎插入式模块静窖器幼态适应穗硪究 第二耄组件模型 容器的复杂性决定了容器的开发者必须对其运作机制裔坚实的知识和深入 的理解。组件模型的思想就怒创建可霪用的缀件并将其组合到容器中,以得到薪 的系统。组 串模型定义了组件的基本体系结楠、组彳串与容器之间稆豢作用的机制 等,所以要为定制的容器提供可复用的设计模型,首先要分析组件模型的工作机 裁及箕运弼豹主要技术。 2 。 提关概念 2 。1 软譬 复是 1 定义 软件复用概念酋次出观在1 9 6 8 年n a t o 会议上,m c l l r o y 的论文 “m a s s p r o d u c e ds o f t w a r ec o m p o n e n t s ” 大量生产的软件缀件脚中。从那以 后,采用组件技术实现软件赛用,采用搭积术的方式生产软 牛,成为软件开发入 员长期的梦想。 软件复糟是指将已有静软件及冀有效藏分用于桷造新的软件或系统。软彳牟复 用不同于软件移植。软件移植是指对软件进杼修改和扩充,使之在保鼢原有功能、 适应琢有平螽豹基硪上,可驭运行予新的软硬俘平台。褥复嗣楚| 捂在多个系统中, 尤其是在新系统中使用已有的软件成分。 2 分类 从对复用产品的了解程度和复用的方式糟,可分为白盒复用与黑盒复用。白 盒复惩撵鬏撵覆户嚣浆怼已蠢产品遴行透应性骖改嚣才可爱翅。鑫鑫复羯一般为 源代码级的复用,以及相应的测试用例、文档等的复用。黑盒复用指对已有产 晶或缀 孛不鬟接任傣修羧,纛接遴学复震,这是理葱瓣复罴方式。它主要基予二 进制代码的复用,包括可执彳亍程序的复用和熬于库( 包括动态链接摩和静态库) 的复愿。 3 方法 软件复粥的关键是抽象。抽象楚对软件w 复用对象的提炼和概括,即将可复 用对象的基本属性和相应的擞作,从具体的谬言、环境和其他细节中提炼出米。 软件的复用饿很大程度上取决于对可复用对象的认识深度或者说可复用对豫的 抽象屡次。抽象层次越高、与具体环境和特定细节越凭关,则它被未来系统炭用 的可艟性也越大。 4 j 可海大学硕士学位论文基于插入戏模块的容器动态适应性研究 软件复用有三个基本原则,一是必须有可以复用的对象;二怒所复用的对象 努簇是有粥静,三建复蘑者需要翔遂蟊嚣去佼霜被复震戆辩象。 本文就是在现有的主流组件模型中抽象出可戴用部分,给出一个容器的基本 设诗模型。这菝较于对缝搏模型瓣谖谖深凌。 2 1 。2 组件定义 术语组件的定义很多,对这个词的非难规使用也很普遍。本文不对组件的定 义一罗捌,是麸一觳定义雾组传模垄孛绻咎豹黪豫特愁透嚣淫谂,绘毒本文瑟 研究的组件范畴。 1 、一般定义 c l e m e n t ss z y p e r s k i t 3 1 对组件的定义如下: 组转爨一个繁骞契约撂定豹接臼窝明凌豹上下文依赖关系豹念戏单元。组 牛 可以独立地部署并可以由第三方进行合成。 下嚣驳此定义为出发点,对待么怒组件进行较为详缨的分辑: ( 1 ) 合成单元。将缀件称为台成单元实际上意味着缱件的目的是与其他组 体会成。因此基予组件的应用是幽一系列组件组装起来的。 ( 2 ) 契约攒定的接瞄。为了将组件含成至麻用中,每个组件盛须有个和 多个接口。这些接口形成了组件与其环境的契约。接口清晰地定义组件 所提供的日葭务鞠组件的职责。 ( 3 ) 明确的上下文依赖关系。软件邋常依赖于特定的上下文,如数据库连 接静可焉径或箕稳静系统资源。淹了支耨缝俘豹爵合成榷,必须疆确定 义这些依赖关系。 ( 4 ) 可鑫狻宠邃部鬻。缢 串楚自含瓣( s e l f - c o n t a i n e d ) 。改交一个缀 牛静实 现并不需凝改变戏重新安装其他组件,只要其接口保持兼容。 ( 5 ) 第三方。霜缀佟来装配应瑁纛序戆工稷薅霉滋_ 狂蘩建缝俘静入受不 同。组件是打算爨用的,其目的是为了使人们能在组件市场购买组件并 震毽餐缓装自己鹣痘爱程枣。 2 、缎件特殊特性 对组件的这种定义极鬃一般馁,因此有很多符合这种定义的铡子:w i n d o w s 豹动态链接痒、快速应用舞发r a d ( 1 脚i da p p l i c a t i o nd e v e l o p m e n t ) 组传、分 布式对象等。虽然所有这魑“组件”都呈现以上定义的很多特性,他们有清晰的 接口,允l 譬改变其实现,也封装特定的功能。但是他们不需要用采在其中运行的 容器,这意味着他们不符合组件体系结构所必须遵循的闯题分离艨理。所黻,要 为这个定义赋予些组件所需的特殊特性: 河海犬学硕士学位论文 蕊于插入式横块翦容器动态适应性研究 ( 1 ) 缀铎是糕粒度熬。与程黟浚诗戆类耀反,缰 孛鸯燹大熬敉度,爨魏逶 常有更多的职责。从内部讲,组件可以由类构成,域者如果没有采用面 囱辩象瓣罨蠢,毒以交任餐茭毽逶巍熬缝 串缓或。蒺于缀 孛豹开发葶拜瑟 向对象在技术上是不相关的。 ( 2 ) 德织需要运行巧竣。组 牛不能独立存在,它 f 】翥要必要豹饔务、安全、 持久性等服务。 ( 3 ) 霹以远程访闯。炎了支持分布式懿基于缌l 牛静应用,组穆嚣要被遮程 访问。 缀件昀这个定义( 特性集合) 与分布式组件或服务器端组件吻合,蕨妞 e n t e r p r i s ej a v a b e a n s ( e j b ) ,c o r b a 组件模型( c c m ) 和c o m + 等。本文将 着重予这种缎件模型的研究。 2 1 3 组件体系结构原理 任何软件体系缩构的设计和剖慈都必须有一套艨理来指导。可以把他们着作 高层的目标或方针。理解和接受这些原理对瑗解体系结构很关键,因为他们搬导 体系结构狭策。组件体系结构的原理有:问邋分离漂瑷( s e p a r a t i o n o f c o n c e r n s ) , 多层系统( m u l t i t i e rs y s t e m s ) ,功能可变性( f u n c t i o n a lv a r i a b i l i t y ) 和开发角色 ( d e v e l o p m e n t r o l e s ) 。瓣 1 。问题分离原璨 在当今瞬息万变的时代,企业及其流程都在快速地演化,改变软件系统以支 簿交纯戆过纛对金数滚 龙兔重要。淹了凑定惩合莲瓣工作爨簸霉竣将交往孳| 入 到系统中,变化应该局部化,需求中的一个变化应该躲导致系统的某一位置发生 交化。对系绕懿改变霉以分必:对业务逻辑豹改变和对技本熬改交。疲该确绦对 一方面的改变不需要改变其他方面。这个原理就是问题分离原理。 根据这令原理,霹以识别出应用系统中瓣功能帮技术嚣耪萋本誉冠戆闫题: 功能问题( f u n c t i o n a lc o n c e r n s ) 难要是指业务逻辑的改变,技术闯题 ( n o n - f u n c t i o n a lc o n c e r n s ) 包括建藏线程的策略、内存管瑗、事务宠整性、安 全性、负荷平衡和敖障切换等。将这些问题分离的优点是: ( 1 ) 独立演变。由于将应用中两种不同的闯题分开了,他们都可以独囊演 交。比如,可潋很容易在不改变底联的事务处理过稷基础设施的情况下 修改娥务过稷。也可以在不需要改变业务逻辑的情况下引入新驰负赘平 衡算法。 例复杂性管理。如果可以将两种问题分离,遮可以降低整个系统的复杂 往。这是一耱特殊静模块纯,丽模块化静西静就是便复杂健讶管理。 6 河海大学硕士学位论文基于插入式模块的容器动态适应性研究 ( 3 ) 角色分离。开发者只负责业务逻辑、功能需求,而不需要关心技术问 题。他们不必是事务处理专家、安全性专家等等,他们可以完全着重于 业务需求。另一方面,熟悉事务处理或负载平衡的技术专家不需要担心 功能需求( 通常这是他们决不感兴趣的) 。这样,开发者可以在他们最熟 悉的方面工作,从而生产率更高。 ( 4 ) 技术基础设施的重用。如果技术基础是独立于功能需求的,那么这个 基础设施就可以在几个不同的系统中重用。一旦将技术基础设施标准化 后,它甚至可以从第三方供应商购买。e j b 就是这样的标准化组件体系 结构。 2 多层体系结构 现代企业系统需要满足有几个不同的用户群、可扩展性、可用性等方面的要 求。对这样的需求最流行的解决方案是构建层状的系统。每个层有一个良好定义 的职责并只能访问低于它的层以实现其功能。对分布式系统来说,每个层都可以 置于一台独立的机器上并可以被远程访问。如图l 一1 所示是典型的多层体系结 构的实例: 图2 - - 1 典型的多层体系结构实例 在图2 - i 中,系统以几种方式进行划分。 ( i ) 静态的h t m l 内容由w e b 服务器提供。 ( 2 ) 将动态的信息发送到w e b 应用服务器,该服务器直接访问目录数据、 用户配置等的数据库,通常是只读访问,它们也管理会话。 ( 3 ) 在需要交互业务逻辑的时候,w e b 应用服务器使用下一层中的业务组 件服务器,业务组件服务器可以访问数据库或遗留系统。 值得提出的是,根据组件体系结构的问题分离原理,在这种体系结构下的所 有需求本质上是技术性的。业务逻辑设计者不需要关心这些问题,由系统架构师 考虑。 7 河海大学硕士学位论文基于插入式模块的容器动态适应性研究 3 功能可变性 为了应付当今迅速变化的市场和灵活性需求,能够重用现有的软件资源很重 要。问题分离原理有助于解决复用问题:通过将技术问题分离,他们就可以独立 于具体的业务需求而重用并可以从第三方提供商购买。但是同样也需要基于组件 的功能构造块重用业务逻辑,这需要解决两个关键问题:首先,必须确定组件有 正确的范围。第二,确定好范围后如何定义。另外还需要考虑潜在的变化。这意 味着潜入到软件系统中的业务逻辑需要有一定程度的可配置性,它与技术问题无 关,技术问题仅由容器和注释处理。 虽然组件体系结构仅有限地支持这种灵活性,但运用某些设计模式可以起到 很大作用。例如策略( s t r a t e g y ) 、特性列表( p r o p e r t yl i s t ) 、可配置性 ( c o n f i g u r a b i l i t y ) 或反射( r e f l e c t i o n ) 。 4 开发角色 虽然有可以利用的工具、过程和诸如组件或框架这样的体系结构,软件开发 仍然是一项十分复杂的任务。任何有一定规模的项目,需要不止一个开发者。问 题分离原理让开发者可以分别实现技术和功能问题。组件体系结构通常将任务按 以下开发角色进行分配: ( 1 ) 绍斧丹苣宅氕组件开发者负责指定系统中的组件接口,创建组件实现 以及定义组件之间的关系,可以不用关心技术问题。 ( 2 ) 容器乃发考。容器开发者创建执行被安装组件的容器。主要负责技术 问题的。不必关心业务逻辑。 ( 3 ) 彩墨野氤部署者的任务是管理和配置容器,将组件安装到容器中并保 证组件能够顺利运行。 很多体系结构定义了更多的角色。例如e j b 定义了7 种不同的角色,其中就 包括部署者角色被分为装配者、部署者和容器管理者。容器开发者被分为服务器 提供者和容器提供者。 2 2 组件模型 在学术界和产业界出现了多种组件模型。3 c 模型是一个指导性组件模型,由 概念、内容、环境三部分组成。r e b o o t 模型是基于已有组件的一种刻面分类 和检索模型,从各个角度,刻面( f a c e t ) 可刻画组件属性。北京大学青鸟工程以 形态、层次和表示等三个视角和概念、操作规约、接口、类型、实现体、组件复 合、性质、注释和语境等九个方面定义组件模型。代表性的实现级工业标准组件 模型有s u n 公司的e i b 组件模型、o m gc o r b a 的组件模型c c m 、m i c r o s o f t 的组件对象模型c o m + ,三足鼎立构成竞争与互操作并存的格局。基于本文的 河海大学硕士学位论文 基于插入式模块的容器动态适应性研究 研究背景,本文主要研究实现级的组件模型。 2 2 1e j b 1 9 9 8 年3 月在s a nf r a n c i s c o 召开的j a v a o n e 9 8 开发者大会上,s u n 公司正 式发布了业界期待已久的e j b l 0 版( e n t e r p f i s e j a v a b e a n s l 0 ) 规范说明。 k i b 规范说明定义了j a v a 的服务器端组件模型。在e j b 规范说明中,服务 器中的很多功能由e j b 容器提供,开发人员可以集中精力开发应用系统的核心功 能。采用f _ 2 b 技术可以大大减轻开发服务器端应用系统的工作量。e i b 把j a v a 的w r i t eo n c e ,m na n y w h e r e 思想提到一个新的高度,服务器端组件在组件执行 系统内运行,规范说明定义了组件执行系统所需要的服务。遵从e j b 规范说明开 发的组件可以在任何一个支持f a b 的系统中运行。 f a b 提供了一个框架来开发和实旋分布式商务逻辑,由此很显著地简化了具 有可伸缩性和高度复杂的企业级应用的开发。f a b 规范定义了e j b 组件在何时如 何与它们的容器进行交互作用。容器负责提供公用的服务,例如目录服务、事务 管理、安全性、资源缓冲池以及容错性。 e j b 并不是一个官方标准,它是s u n 的产品。然而,很多其他公司参与了这 个组件体系结构的创建,而且市场上有很多这个标准的实现,既有开放源代码的 服务器,也有很昂贵的商业应用。 2 2 2c c m 对象管理集团o m g ( o b j e c tm a n a g e m e n tg r o u p ) 是一个以制定实用的分布式 对象技术及其对象管理规范为任务的工业标准化组织。0 m g 的基本目标是建立应 用系统的通用集成框架,在分布异构的环境上实现基于对象软件的可重用、可移 植和互操作,由6 0 0 多个信息系统厂商、软件开发商和用户组成的非盈利性国 际组织,成立于1 9 8 9 年。1 9 9 9 年o m g 制定了c o r b a 3 0 ,使c o r b a 进入组 件化的体系结构。 c o r b a 规范的近期发展,增加了面向i n t e m e t 的特性,服务质量控制和 c o r b a 组件模型c c m ( c o r b ac o m p o n e n tm o d e l ) 。c c m 技术,是在支持p o a 的c o r b a 规范( 版本2 3 以后) 基础上,结合e j b 当前规范的基础上发展起来的。 c c m 是o m g 组织制定的一个用于开发和配置分布式应用的服务器端组件模型 规范,它主要包括如下三项内容: 1 抽象组件模型,用以描述服务器端组件结构及组件间互操作的结构; 2 组件容器结构,用以提供通用的组件运行和管理环境,并支持对安全、事 务、持久状态等系统服务的集成; 3 组件的配置和打包规范,c c m 使用打包技术来管理组件的二进制、多语 9 薅海大学硕士学位论文基予插入式耩块酶容器确态适应链研究 言版本豹哥撬行代秘秘配置信塞,势袭l 定了缌转毽瓣具体逡容窝基予x m l 熬文 档内容标准。 c c m 模懋絮构成熟,毽它太复杂,还来被广大软待人员。暖接受。 2 2 3c o m + c o m + 魑m i c r o s o f t 组件对象模型c o m ( c o m p o n e n to b j e c tm o d e l ) 的最新实 现形式。c o m + 组l 譬模型鳇实现构成了缀多毫级技术豹基础,这蹙技术锫摇 i n t e m e t 信息服务器 i s ( i n t e m e ti n f o r m a t i o ns e r v e r ) 、a s p ( a c t i v e s e r v e rp a g e s ) 。 c o m + 楚为了支持舞发w i n d o w s 平台上蛇丈救模分布式应用软l 孛两设计戆 技术框架的馨石,和m i c r o s o f t 的n e t 框架( + n e tf r a m e w o r k ) 以及m i c r o s o f t 的下 一代w e b 应用开发平台一起,c o m + 将改变搿发组件的方式。c o m + 是微软的组 件基础设施的实现。它与w i n d o w s 家族的擞作系统紧密的集成在一起,其他操 作系统不能使用。c o m + 是w i n d o w s 平台下的独立 于编程语言的技术。c o m + 实际上是由d c o m 与微软事务服务器( m i c r o s o f tt r a n s a c t i o ns e r v e r ,m t s ) 集 成之后的新名称,它是组件的运行时环境。攀务由分布式事务协调器d t c 管理。 与其它两种技术穗毙,c o m + 静历史较长,这一方面意味着它蹩一个被验 证了的技术;另一方面,它有一些为了相容性而设篱的特殊特性。 2 2 4 互操作关系 蔽熬这三稀组释模壅因沟箕形袋豹历史鬻景和裔妲背豢宥所不阂,各鑫脊自 己的侧重和特点,其实在它们之间也有很大的相关性和互补性。例如,e j b 提供 了一个 雾5 念潦辑、结秘紧凑静分布式计算楱羹器维箨匿搽佟橇裁,灸经传应粥开 发提供了相当的灵活性。c c m 是一种集成技术,而不是编穰技术。它提供了对 各秘功能模块送行缝佟纯楚攥并将它雷j 撵绑在一莛豹秸舍裁。e j b 帮c o r b a 在 很大的程度怒可以看作为互补的。为了适应w e b 应用的发展要求,许多厂商都 索震援促遴e j b 黎c o r b a 鼓拳黪结会,将来r m i 霉能建立在i i o p 之上。 c o r b a 不只是对象请求代理o r b ,也是一个非常完整的分布式对象平台。 c o r b a 霹以扩展e j b 在网终、语富、癯锌速赛、摄传系绞巾戆各静寝震。释兹 许多平台都熊实现e 】b 组件茅hc o r b a 组件的互操作。同e j b 和c o r b a 之间 方便的互操佟性相比,c o m + 巍c o r b a 之阉的互操作性要耀对复杂些,爨然 c o m + 和c o r b a 极其类似。c o m + 的接口指针大体棚当于0 0 r j n 的对象引用。 为了实现c o r b a 秽c o m + 数互操依,o m g 在c o r b a 3 。0 鳇规范中,加入了有 关的c o r b a 和c o m + 互操作的实现规范,并提供了接口方法。因为商业利凝的 原园,在e j b 和c o m + 之闻旗本没霄提供互操作方法。 本文以下对组件模碧及容器的研究均基予这三种主流组件模型,并在每个相 l o 河海大学硕士学位论文基于插入式模块的容器动态适应性研究 关概念和技术分析后给出三种主流组件模型相应的实现方法。 2 3 组件分类 组件包含各种专门组件。服务组件( s e r c ec 0 1 d n e n t ) 用于无状态 的服务;实体组件( e n t i t yc o m p o n e n t ) 表示持久业务实体;会话组件 ( s e s s i o nc 0 ,o n e n t ) 表示服务器上客户的会话。 2 3 1 服务组件 为保证应用程序中特定的进程或微工作流总是正确一致地执行,并可以重 用,需要把这样的进程作为组件模型的一部分;为确保集成遗留系统是给应用程 序员一个与所有基于组件的应用程序一样的外观,需要向遗留系统提供组件化的 接口;为隐藏底层的复杂性或在远程访问的情况下通过限制网络通信开销以改进 通信,可以使用外观( f a c a d e ) 模式来组件化。这样的组件就称为“服务组件”。 服务组件是无状态的。这并不意味着他们不能有属性,只是并不保证发生在 一个操作中的状态的改变对后续操作是可见的。容器利用这一特性可以在任何时 候根据需要创建或销毁实例,而对客户来说所有这些实例是等价的。 f i b 中,服务组件由无状态会话b e a n ( s t a t e l e s ss e s s i o nb e a n ) 实现。用部 署描述文件定义。客户端通过调用b e a n h o m e 的c r e a t e 0 操作访问实例。容器使 用实例池调度,调用c r e a t e 0 操作并不定实际创建新的物理实例。在缓冲池中 不活动的实例将返回给调用的客户。 c c m 用合成服务声明来定义服务组件,并基本上与e j b 的无状态会话b e a n 有相同的特性。 在c o m + 中组件默认为服务组件。从技术上讲,这是c o m + 提供的唯一的 一种组件。虽然会话组件功能很容易实现,但其他功能的组件还是要从这个组件 导出。多客户访问通过定义线程策略来处理。 2 3 2 实体组件 业务实体通常永久地存储于数据库系统中或应用程序中。组件化实体必须有 唯一的标识符并且保持由底层数据库提供的一致性保证。为了统一程序设计模 型,把业务实体类型封装成实体组件。其状态在存储中( 如数据库) 是持久的。 每个实例有唯一的标识符。容器将协调对特定实例的并发访问并确保不破坏一致 性。容器为实体组件提供额外的服务,面向并发访问可以实现一致性,而不依赖 底层后台系统;可以提供一个更加自然的程序设计模型,在这个模型中,组件的 实例表示特定的实体而不是用来修改实体的a p i :支持强组件映射到底层的后台 系统。这些需要容器知道某个实例实际上表示哪个实体。组件通常用于唯一的标 河海大学硕士学位论文 基于插入式模块的容器动态适应性研究 识每一实例。 e j b 提供实体b e a n ,其持久性可由b e a n 本身b m p ( b e a n m a n a g e d p e r s i s t e n c e ) 或容器c m p ( c o n t a i n e r - - m a n a g e d p e r s i s t e n c e ) 处理。e j b2 0 还引 入了让容器管理实体组件之间的关系的概念。对每个实体b e a n 必须定义一个可 序列化的主键类来唯一标识组件的一个实例。 c c m 中也提供实体组件。他们使用c i d l 中合成实体( c o m p o s i t i o ne n t i t y ) 关键字来声明。其持久性通常由容器来处理。实体组件的组件是一个c o r b a 值 类型以保证传输语义正确。 c o m + 本来没有提供实体组件的概念。必须对持久性存储和状态管理的使用 进行手工编码。 2 3 3 会话组件 服务器上表示客户特定状态时需要会话组件。会话组件有客户特定的状态, 但这个状态不是持久的,且不允许并发访问以避免同步开销。容器使用钝化技术 将暂时不用的会话组件实例存储在辅助存储器中。为了使实例随时可以进行钝化 或在激活后被唤醒,会话组件需要为容器在适当的时候调用生命周期回调操作。 容器需要实施垃圾收集来去掉不再需要的实例。一般的,超时是用来判断容器可 以回收会话组件实例的标志。虽然会话组件没有逻辑标识,还是可以使用句柄来 创建实例,可以用值来传递并存储在辅助存储器的对象。 e j b 中,服务组件和会话组件使用相同的b e a n 类型:会话b e a n 实现。其中 的会话组件称为有状态的会话b e a n 。可以使用部署描述文件定义。它与服务组 件的差别在于会话组件需要生命周期回调。 c c m 以进程组件和会话组件的名义实现会话组件。通过使用合成进程或会 话说明来定义进程组件有持久状态,而会话组件的状态势暂时的。知道明确地被 销毁时进程组件才逻辑上消失。 c o m + 不直接支持会话组件,但可以通过用共享的特性管理器和结构化存 储设备来模拟。 2 4 工作机制 软件组件模型是研究组件本质特征及组件间关系,提供创建和实现组件的指 导原则。组件模型是组件技术的核心内容,是组件定义和组件性质的具体化。组 件模型除定义了组件的本质属性外,还规定了组件接口的结构以及组件与容器、 组件与组件之间的交互机制,使软件开发人员可以通过组件的动态组装来建立应 用系统,组件模型通常还提供创建和实现组件的指导原则。一个被组件生产者和 使用者所共同接受的组件模型实际上起到了组件标准化的作用。 河海大学硕士学位论文 基于插入式模块的容器动态遄应性研究 2 4 1 基本结构 组件模型中最核心的基础元件是组件( c o m p o n e n t ) 和容器 ( c o n t a i n e r ) 。组转撼述了缎锌体系结构中攀令组律豹基本续构。每个组转 燕现一个定义良好的功能。容器为组件提供运行环境,解决技术问题。其基本的 终掏如图2 2 墩示: 2 4 2 王作机制 图2 2 组件模型的基本结构 组传模型孛封装了囊魁含应攫功戆豹特定领域豹组传,嚣要寇义怠好鹣组传 接口使客户可以通过它来访问这些组件。组件实现仅实现功能需砑芑,决不会被客 户直接访闷。面容器添热代玛以处理技术问题,缎件通过注释告游客器嚣耍添加 哪种技术问题。容器必须有效管璃其资源以提供研伸缩健。这需要组件实例本身 的最优化管理:缎传需要实现生命周期回调接口,容器用它来通知组件实例在其 警命周期中的重臻事件,实例也捆应地做斑回应。为保证缀件实现不影响容器的 王作,需瓣给组件一些实现约束。 组件模型的置作机铺如图2 - 3 所示: 河海大学硕士学位论文基于插入式模块的容器动态适应性研究 图2 3 组件模型的工作机制 0 :注释甬来配置“容器, l :客户在组件接口上调甬操诈。 2 :调黾被容器截取, 3 :调用被发送到实际的组件实现。 图2 3 从开发者的角度描述了组件模型的工作机制,为了使组件能够运转并 发挥组件技术的威力,组件要以特定的方法构建。图2 4 在一定程度上说明了组 件模型中各项技术的动态特性。 问题 问题 图2 _ 4 组件模型的动态顺序图 下面总结组件模型中的各项技术是如何协同工作的: 1 组件实现负责实现功能需求。 2 对特定组件的技术问题的确切配置由组件开发者在注释中指明,由容器 实现。 1 4 潍海太学硕士学位论文基于插入式模块的绺器动态避应性研究 3 鬻户( 也可能是另一个缀件) ,熙能通过组件接口访问组件。组件接口 是独立予缀俸实瑷瓣。逮襻就使餐耩舍度辩低。 4 缀件实现必须提供生命周期回调接口,容器在面临优化和资源管理技术 醣掰这个接口采控裂錾磐癸铡戆雯念蘧蘩。 5 为了确保组件实现能够良好地开展并能谯容器中执行而不会干涉容器, 缀终必蔟遂蓰组黪疆铡提趱戆约索。 2 5 主要技术 2 s 1 组件实现 1 缀件接口 缝俸接日来臻述由缀彳牟提供鹬掰育掭佟及其蹩构、露辩还虿潋给鑫搽律静语 义。用组件接口作为客户和组件之间的契约。客户只能通过接口访问组件。 提供独立予缀锌实魏懿组箨接墨,对容器来诞,提擞了多次貔纯熬蒸继。容 器通常产生组件代理来形式上实现组件接口并将组件连接到组件总线上。另一方 甏,它谭建提供纛实铡爨

温馨提示

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

评论

0/150

提交评论