




已阅读5页,还剩88页未读, 继续免费阅读
(计算机系统结构专业论文)osgi框架研究与分布式应用实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
l 一 f 、 j l j :、- j - 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工 作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地 方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含 为获得电子科技大学或其它教育机构的学位或证书而使用过的材料。 与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明 确的说明并表示谢意。 论文使用授权 本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁 盘,允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文 的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或 扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后应遵守此规定) 签名:蚴导师签 日期: )f 心硼 ,年 朔1 l 日 摘要 摘要 现在,很多公司用j 2 e e 做企业级的应用,但随着应用的深入持久,往往会 发现现有的系统难以满足需求,这时再反过来改动系统却发现比登天还难。复杂 的结构,混乱的依赖关系,难以隔离的模块以及变更带来的不确定性都令开发人 员一筹莫展。有时候一个小的需求变化,就会造成整个应用项目的重新构建。除 此之外,随着用户的剧增,系统资源和系统响应时间也经常会遇到瓶颈,这时对 系统进行扩容就是不二的选择,由单一主机变成多个主机的这个过程最终又演变 成了程序员的噩梦。为什么一个微小的需求变化会带来如此巨大的蝴蝶效应? 为 什么在变化面前,很多号称优秀的框架和设计模式显得如此脆弱和无用? 带着这些问号,本人接触到了o s g i ,就像它所宣传的那样,“一个动态的j a v a 模块系统 ,彻底解除了本人的疑惑。首先o s g i 是一个基于微内核的框架,包括 核心和服务两个部分。任何基于o s g i 框架的系统都具备即插即用、热部署、即 删即无的能力。其次,o s g i 框架本身带来的就是松耦合、插件化、高可复用性、 扩展性以及动态性。最重要的是还有面向服务的特性,这解决了以往不同厂商不 同产品互相之间不能交互的问题。 本人从企业应用的角度出发,详细分析了o s g i 的内核及其运行机制,并针 对单一主机瓶颈问题,设计了分布式的解决方案。主要研究工作如下:( 1 ) 研究 o s g i 内核的原理,以及各个层次之间的内容和关系,总结出了o s g i 的设计理念。 ( 2 ) 通过分析现有开源o s g i 框架的实现e q u i n o x 和f e l i x ,解读了它们的工作机制。 鉴于目前还没有横向比较的测试方法,本人提出了一个新的测试框架,可以以量 化的数据作为支撑,为o s g i 框架的选择提供科学依据。( 3 ) 针对现有o s g i 框架 的不足提出一种定制框架的改进方法。( 4 ) 本人设计了一种基于o s g i 的分布式应 用框架( e q u i i l o x + s 研n 哥d m + c x f d o s g i ) 并加以论证。( 5 ) 本人通过一个零售店应 用系统的设计与实现,验证了此框架在分布式应用上的可行性,最后通过测试来 阐明本系统的优势。本人的这些研究工作对于o s g i 在分布式领域的应用具有一 定商用价值和指导作用。 关键词:o s g i ,核心,分布式,b u l l d l e ,热部署 j a b s t r a c t a bs t r a c t n o w a d a y s ,m a n yc 0 m p 越e sa r eu s i i l gj 2 e eo ne n t e 叩r i s el e v e ld e v e l o p m e n t n c v e r c l l e l e s ss y s t e mc r e a t e dw i mj 2 e ei sv e 巧i n c o n v e m e n tt om o d i 母、沛e i li ti sf o u n d d i 伍c u l tt om e e tm en e e d st m ) u 曲i n d 印ma i l dl o n 乎l a s t i n gu s i n g c o m p l e xs t n l c t i l r e s , c h a o t i cd 印饥d e n c e ,m ed i 伍砌够o fm o d u l e si s o l a t i o n ,锄dm eu n c e n a i n 锣o f m o d i f i c a t i o n - a 1 1o ft l l e mh a v ea b s o l u t e l yf h s 仃a t e dm ed e v e l o p e r s s o m 舐m e se v 饥a s m a l lc :h a n g ei 1 1d e m a l l dw i l lc a u s em e 饥t i r cp r o j e c tt 0b e 砖b u i l t 1 1 1a d d i t i o n ,s y s t e i i l r e s o u r c e sa n ds y s t e mr e s p o n s et i m ei sa l w a y sf a c i n gm eb o t t l e n ec :ka sar e s u l to ft l l e 蛔a t i ci n c r e a s i n g 锄o u i l to fu s e r s s y s t e me x p a n s i o ni st l l eo i l l yc _ h o i c e ;s t i l l ,t l l e p r o c e s so fs h i m n gs i n 百em a c :h j n et o 舢l t i p l em a c h i n e sw i l lb e c o m ean i 曲t n l a r eo f p r o 掣a n m e r s h o wc a no n es m a l lc h a n g eb r i n ga b o u ts u c hah u g eb u t t e m ye f i b c t 9 w h y a r et h ec u 盯e n t 丘锄e w o r k sa 1 1 dd e s i 印p a t t e m s ,w h i c hw e r ec 1 a i m e de x c e l l e n c e , s o 触百l e 觚du s e l e s sw h e i lf a c i n g 也ec h a l l g e ? w i t ht h e s eq u e s t i o n s ,il e 锄e da b o u to s a ,j u s t1 i 1 【ei t s s l o g a n ,”ad y n 锄i c m o d u l es y s t e n lf o rj a v a ”,o s g i 百v e sm et l l ea n s w c r f i r s t ,0 s g ii sam i c r o k e m e l 台锄e w o r k ,i n c l u d i n gc o r ea n ds e i c e s a n ys y s t e mb a s e d 0 no s g i 丘锄e w o r kh a s l e 缸1 砸o n ss u c ha sp 1 u ga 1 1 dp l a y h o td 印1 0 y m e n t ,u n p l u ga i l dd e l e t i o n s e c o n d l y o s g ii sa1 0 0 s e l yc o u p l e d ,p l u g i n s ,l l i 曲r 肌s a b i l i 吼s c a l a b i l i t ya n dd ) ,i l 锄i c i t y 缸吼e w o r k t h em o s ti m p a n tp o i n ti ss e i c 争o r i e n t e df e a t l l r e ,w h i c hm e a i l st l l e c o m m u i l i c a t i o ni s s u eb 舐e e nd i 矗e r e n tp r o d u c t so rd i f f e r e l l tm a i m f a c t u r e r sc a i lb e s 0 1 v e d f r o mm ep e r s p e c t i v eo fe n t e 印r i s ea p p l i c a t i o n s ,is t l l d i e do s g ic o r ea i l di t s o p e r a t i n gm e c h a i l i s mi nd e t a i l ,a n dg a v ead i s 仃i b u t e ds 0 1 u t i o nt os 0 1 v em eb o t t l e n e c k o fo n es i n 西em a c l l i n e t h ef o l l o w i n ga r em em a i l lp a r t so ft h i sr e s e a r c hw o r k :( 1 ) s t u d i e dt l l em e o r ) ,o fo s qc o r e ,l e 锄e da ta 1 1 1 e v e l so ft h ec 0 r ea n d 也er e l a t i o i l s l l i p s b e t 、7 l r e e n 1 e i n ,a 1 1 ds 1 1 i i l m e du p 廿1 ed e s i 盟c o n c e p to fo s g i ( 2 ) a 1 1 a l y z c dt h ee x i s t i n g 0 p 饥s o u r c e ;e q u i n o xa n df e l i ) 【,计l i c hi s t h ei i n p l 锄e n t a t i o no fo s g i 丘锄c w o r k r e a d 也ei n f 0 肌a t i o no ft l l e i rw o f i ( i n gm e c h 撕s mb ys o u r c ec o d ea 1 1 a l y s i s s i n c em e r e l a b s t r a ( 了r i sn ot e s t i n gw a yo fh o r i z o n t a lc 0 n t r a s t ,id e s i 髓e dan e wt e s t i n g 盘a m e w o r k ,w h i c hc a l l b es u p p o r t e db yq u a n t i t a t i v ed a a sas c i e l l t i f i cp r o o ff o rn l es e l e c 矗o no fo s g i 丘a m e w o r k ( 3 ) p r o p o s e dac u s t o m 舶m e w o r kb e c a u s eo ft 1 1 el a c ko fe x i s t i n g0 s g i 缸吼e w o r k ( 4 ) id e s i 朗e d 姐o s g i - b a s e dd i s t r i b u t e d 叩p l i c 撕o nm 吼e w o r k ( e q u i n o x + s p 血g d m + c ) 口d o s g i ) ,a 1 1 d 也髓d e m o n s 仃a t e di t ( 5 ) iv 耐丘e dt h ef e 袖i l i t yo f d i s t r i b u t e da p p l i c a t i o i l sm n i l i n go nt l l eo s g i 仔锄e w o r kb yar e t a i l s t o r ea p p l i c a t i o n s y s t e md e s i 朗弛di i i l p l e m e n t a t i o n ,a n dn l e i lt e s t e d 衄ss y s t e mt oc l 撕匆m e a d v a i l t a g e sa t1 a s t 1 1 1 i sr e s e a r c hw o r kh a s 伊e a tg u i d i n gs i 鲥f i c a l l c ea 1 1 dc o l l l 】m e r c i a l b e n e 6 to no s g j - b a s e dd i s t r i b u t e da r e a k e yw o r d s :o s g i ,c 0 r e ,d i s t r 伯u t e d ,b u n d l e ,h o td 印l o y m e n t i , 目录 目录 第一章绪论1 1 1 论文研究背景1 1 2 国内外o s g i 发展现状2 1 3 本人的工作内容2 1 4 论文组织结构说明3 第二章o s g i 相关技术介绍4 2 1o s g i 介绍4 2 1 1 发展历史4 2 1 2 基本概念- 5 2 1 30 s g i 框架的功能9 2 1 4 特点和优势1 1 2 2o s g ii 1 2 2 2 1 核心规范1 3 2 2 2 服务规范2 1 2 3o s g i 与其他j a v a 技术2 2 2 4o s g i 与分布式2 3 2 5o s g i 设计理念2 3 2 6 本章小结2 5 第三章开源o s g i 框架研究2 6 3 1e q u i l l o x 的研究。2 6 3 1 1e q u i l l o x 介绍2 6 3 1 2e q u i n o x 实现的功能2 6 3 1 3 模块层分析2 6 目录 3 1 4 生命周期层分析2 9 3 1 5e q u i n o x 总结3 l 3 2f e l i x 的研究。31 3 2 1f e l i x 介绍3 1 3 2 2f e l i x 实现的功能3 2 3 2 3 模块层分析3 2 3 2 4 生命周期层分析。3 4 3 2 5f e l i x 总结3 5 3 3 开源o s g i 框架的测试3 5 3 3 1 测试环境3 5 3 3 2 功能测试3 6 3 3 3 控制命令测试3 8 3 3 4 性能测试4 0 3 3 5 测试总结4 3 3 3 6 当前框架的不足4 3 3 4 当前框架的一种改进思路定制框架j 4 4 3 4 1 提出背景4 4 3 4 2 改进方法及测试4 5 3 4 3 改进总结4 5 3 5 其他开源o s g i 介绍4 5 3 6 本章小结4 6 第四章分布式应用系统的设计4 7 4 1 问题提出背景4 7 4 2 系统框架的选择4 7 4 2 1s p 血乎d m 介绍4 7 4 2 2s p d n 乎d m 的研究4 9 4 2 3s p 血争d m 的优势5 0 4 2 4a p a c h ec d i s t r i b u t e do s a 介绍。5 0 4 2 5c x f d o s g i 的研究51 v 目录 4 2 6c ) ( f d o s g i 的优势5 2 4 3 需求分析5 3 4 4 详细设计5 4 4 4 1 数据库设计5 4 4 4 2 模块划分5 6 4 4 3 分布式设计5 7 4 4 4 模块设计5 9 4 5 本章小结6 5 第五章分布式应用系统的实现6 6 5 1 开发环境搭建6 6 5 2 系统部署一6 8 5 2 1 打包6 8 5 2 2 分布式部署6 9 5 3 运行测试7 1 5 4 与传统j 2 e e 比较7 3 5 50 s g i 框架的不足与使用经验一7 4 5 6 本章小结7 5 第六章总结与展望7 6 6 1 本人工作总结7 6 6 2 展望7 6 致谢7 8 参考文献7 9 个人攻硕期间取得的成果8 2 第一章绪论 1 1 论文研究背景 第一章绪论 早在上个世纪7 0 年代中期,美国b r o o k s 博士的软件工程著作人月神话 就把软件项目开发比作陷入了焦油坑【l 】。直到今天,不断拖延的进度、不断变更 的需求、不断流失的成员、不断重复的劳动都成了软件从业者不能承受之痛。随 着互联网技术如山洪般的席卷全球,硬件技术在摩尔定律的魔咒下,倍速的发展, 面对复杂多变的商业社会环境,软件开发显得如此脆弱、不堪一击。在人们日常 使用的电脑中就可以真切的感受到,层出不穷的软件b u g 、数不胜数的各种补丁 以及时不时就当机的系统,软件水平落后的窘境可见一斑。相比之下,硬件系统 的表现却抢眼得多,十年八年不出问题的机器随处可见,而十年八年不用升级不 用补丁,而不出问题的软件却相形见绌【2 1 。 就像永动机不可能实现一样,人们很早也认识到了一劳永逸、包治百病的“银 弹”也肯定是不会出现了,但这并不代表人们甘愿陷入焦油坑而无法自拔【l 】。软 件业自然也不会停滞不前,从最初面向过程的编程方式到面向对象,再到面向服 务;从最初的函数模块到类、对象,再到组件化、插件化;从最初相互孤立的软 件系统到通用平台,跨平台的普遍使用,再到今天中间件的如日中天,软件行业 也在风风雨雨中摸爬滚打走了许多年。即便如此,软件从业者也一刻不敢轻松, 在用户需求越来越精细化,需求变更越来越频繁,对软件的实时响应要求越来越 高,对软件的快速部署、不停机升级版本等诸多要求的今天,现有的软件开发方 法只能是疲于奔命,应对不足,这点从我们每天昕到的关于程序员加班的抱怨声 中总以证实p j 。 直到一个叫做0 s g i ( 0 p e ns e i c eg a t e w a y1 1 1 i t i a t i v e ) 框架的横空出世,才得以 让软件业在寒冬中感到一丝暖意。当然,这样的说法略有些夸张,不可能因为一 个框架的出现就能解决所有的问题,但无论如何,一个旨在实现软件插件化、低 耦合、面向服务,软件“热拔插”的,听上去有些软件设计完美主义的框架都是 非常值得期待,值得去钻研的【4 】。 正是在这样的背景下,我对o s q 产生了浓厚的兴趣,并主要通过对o s g i 电子科技大学硕士学位论文 规范的学习,核心代码的分析,横向上相关技术和纵向上框架结构的研究,以及 实现的各种机制来深入理解o s g i 的内涵。 1 2 国内外0 s gi 发展现状 o s g i 早在2 0 0 0 年5 月就已经发布了第一个版本,最初的o s g i 只是针对设 备领域,1 o 版本很明显就是为智能家居方面而制定的。在随后的发展中,o s g i 逐步扩充到软件领域,直到使用了0 s g i 框架作为其插件化、动态化、模块化特 性的e c l i p s e3 o 推出之后,才对o s g i 产生了具有里程碑意义的深远影响,在j a v a 企业级应用领域人们开始越来越多的关注o s g i ,使用o s g i ,作为自己的平台架 构。 在国外,包括m m 、s u l l ( 现已被o r a c l e 收购) 、o r a d e 、s a p 等大型跨国巨头 在内的上百家知名企业宣称支持o s g i ,他们既是o s g i 框架的制定者,也是o s a 的使用者,他们在积极推动o s g i 发展的同时,也从应用o s g i 中获得好处。最 典型的莫过于应用服务器领域,诸如i b m 的w 曲s h p e r e 、o r a c l e 的w 曲1 0 百c 、s 1 l i l 的g 1 a s s f i s h 、j b o s s5 0 等,目前几乎所有的应用服务器都以o s g i 为标准。如果 说跨国公司是官方的话,那么在民间所谓的开源领域对于o s g i 的战役更是打得 如火如荼的展开,在本文第三章会有详细介绍。除此之外,基于o s g i 的b m w 的车控系统案例的成功实施,也使人们对于j a v a 速度慢,反映迟钝有了颠覆性的 认识。 在国内,o s a 起步明显要晚得多,直到2 0 0 6 年才有人开始关注。长期以来, 只有两篇o p e n d o c 作为中文o s g i 的入门资料。然而到了2 0 0 9 年,如雨后春笋般, 0 s g i 引起了国内业界的广泛关注,各大技术网站的博客中出现了大量关于o s g i 的文章,不过这其中大部分还是关于o s g i 的基础介绍和简单应用的,并没有很 好的实践。相比于民间松散凌乱的个人研究,国内互联网业的先驱如淘宝、阿里 巴巴已经开始使用了i 引。 总的来说,国内的o s g i 应用还很少,还很初始。我想,新技术学习的高额 成本以及使用新技术所带来的不确定性,还有o s g i 对于中小型项目不能带来立 竿见影的开发效率提升,这些都是制约国内o s g i 发展的因素。 1 3 本人的工作内容 2 第一章绪论 ( 1 ) 研究o s g i 框架原理,包括核心几个层和服务规范,以及现有开源o s g i 规范的实现,分析其源代码。 ( 2 ) 给出一个通用的o s g i 规范实现的测试框架,并给出量化数据,对各种实 现作出比较,为o s g i 框架的选择提供参考。 ( 3 ) 针对现有框架的不足,提出一种定制框架的改进思路。 ( 4 ) 研究基于o s g i 的分布式应用的架构选型。 ( 5 ) 研究s p r i n 磐d m 和a - p a c h ec x f d i s t r i b u t e do s g i 的功能和原理,它们之间 和e q u i i l o x 的集成方法以及和数据层、w 曲层的集成方法。 ( 6 ) 基于这种新的框架,给出一个基于o s g i 的分布式零售店应用系统的设计 与实现。 ( 7 ) 测试该系统,并阐明与传统j 2 e e 应用系统相比的优势。 1 4 论文组织结构说明 第一章:介绍研究背景和国内外o s g i 的发展状况。 第二章:首先对o s g i 的发展历史做了一个概括,然后介绍其基本概念和主 要功能,通过对o s a 第四版规范的详细解读,总结出o s g i 的设计思想。 第三章:通过对e q u i n o x 和f e l i x 的源代码分析来对o s g i 框架的实现做研究, 并给出能够量化的测试框架,以及提出对现有实现缺点的改进方法。 第四章:对基于o s g i 分布式应用设计一个框架,即e q u i n o x + s p r i n 争d m + c 7 d o s g i + m y s q l + j e 竹,并设计一个基于此框架的零售店系统。 第五章:讲述如何实现这个零售店系统,并进行测试,论述相比一般j 2 e e 应用系统的优势。最后总结了一些使用上的经验以及o s g i 的不足之处。 第六章:总结了本人研究工作的成果,展望未来的研究方向和今后o s g i 框 架的发展方向。 3 电子科技大学硕士学位论文 2 10 s gi 介绍 第二章0 s gi 相关技术介绍 o s g i t m 联盟始创于1 9 9 9 年3 月l8 日,是一个非营利组织,致力于为网络和 本地设备规定一个开放统一的网络管理服务标准,并为下一代互联网与住房、汽 车、手机、桌面应用、家庭办公等日常生活密切相关的应用制定服务的标准。或 者换句话讲,就是方便不同厂商不同设备之间的通信,屏蔽不同厂商产品的迥异, 有些类似于s o a 或l 之类的思想【5 1 。 2 1 1 发展历史 o s g i 服务平台核心标准( o s g is e r v i c ep 1 a t f o mc o r es p e c i 6 c a t i o n ) 从最初的 1 o 版本发展至今的4 2 版本已走过了1 0 年。本文将通过下表总结o s g i 的发展 历史和演变过程【6 1 。 表2 1 发展历史 时间版本内容服务 2 0 0 0 年 v 1 o初步制定了b u n d l e 、b 吼d l e 的生命仅有d e v i c ea c c e s s 5 月周期管理,以及o s g is e 州c e 的交 互方式 2 0 0 1 年 v 2 0 制定了s y s t 啪b u l l d l e 确定了o s g i增加了l o gs e 州c e 、 1 0 月微内核的结构 h t c ps e i c e 等常用服 制定了b u n d l e 加载类的过程务 2 0 0 3 年v 3 0增加了j a v a 自动i m p o r t 功能,注册 s t a r t l e v e ls e r 讥c e 、 3 月服务不再用e x p o n ,以及动态i m p o r tc o n f i g u r a t i o na d n 血 功能,这对后续版本起到非常重要 s e n ,i c e 等服务 的作用 2 0 0 5 年 v 4 o具有里程碑意义的版本,明确了增加了d e c l a r a t i v e 1 0 月o s g i 的五层结构,更重要的是明确s e r v i c e s ,这是v 4 o 版 4 1。一。 第二章o s g i 相关技术介绍 的把c o r e 和s e r v i c e 分开了。此外的一个重大改进 o s g i 还成为了j s i 匕3 2 和j s r 2 9 1 规范 2 0 0 7 年v 4 1在4 o 的基础上做了小许改动,如增加了企业级服务, 5 月查询b l m m ec l a s s 过程的优化,此外 a i u t o c o n f i g u r a t i o n , s e i c e r e 衔e i l c e 接口继承了d 印l o y m e n ta d m i i l , c o m p 砌l e ,方便多个服务时选择a p p l i c a t i o na d n l i n 第一个服务,s e 耐c e 等 2 0 0 9 年v 4 2为o s g if r a m e w o r k 实现定义了 b l u 印r i n t s e 耐c e , 9 月统一的启动方法和接口,为b l m d l eb u l l d l e 1 r a c k e r, 提供了勾入s e i c e 层相关操作的 r e m o t es e i v i c e s 方法,即服务钩子( s e i c eh o o k s ) , 以及安全性的强化【2 4 】【2 5 】 从上表可以很明显的看出,o s g i 所涉猎的范畴早已不是其最初的所表述的 意义了,引用官方的说法是“ad y n a m i cm o d u l es y s t e mf o rj a v a ,即一个动态的 j a v a 模块系统。s u n 也宣布将在j a v a 7 中支持o s g i ,由此可见未来的o s g i 发展 前景无限。 2 1 2 基本概念 2 1 2 1b u n dle b 1 1 1 1 m e 可以说是o s g i 最核心的概念之一。0 s g i 服务平台的核心是提供一个 通用、稳定、安全并且可控制的j a v a 框架,此框架中支持可扩展部署和更新的应 用程序就是b u n d l e 。简单理解就是一个个打包发布的j a r 包,就像是搭积木中一 块块的积木 7 1 。 b u n d l e 就是o s g i 中的模块,从实际使用上来说,就是在配置文件 m a n i f e s t m f 中描述了o s g i 特定内容的i a r 包。通过配置m a n e st m f 这个 文件,可以定义b u n d l e 的启动状态,各个b u n d l e 之间的依赖关系,系统版本信 息等内容。一个典型的m a n i f e s t m f 示例: m a i l i f e s t v e r s i o n :1 0 b u l l d l e m a n i f e s i o n :2 b u n d l 争v 如i o n :】0 o 电子科技大学硕士学位论文 b u n d l e - n 锄e :t e s tp 1 u 哥i n b u n d l e - s 灿o l i c n 锄e :t e s t b u n d l e r e q u i r e d e x e c u t i o l l :b n v 拍i l 】 i l e r l t :j 2 s e 一1 6 b u n d l e - a c t i v a 协r :o r g o s 百d e m o a c t i v a t o r b u l l d l e - v e n d o r :y k h i l p o r 卜p a c k a g e :o r g o s 百丘锄e w o r k ;v e r s i o n - ”1 3 o ” e x p o r t - p a c k a g e :o 硌o s 西d e m o t e s t 其中,b u n d l e a c t i v a t o r 字段表示启动或停止,“t e s tp 1 u g - 证”是b u n d l e 的名 字。h i l p o n - p a c k a g e 字段表示需要导入o r g o s g i 行锄e w o r k 这个包,e x p o n p a c k a g e 字段表示o r g o s 西d 锄o t e s t 是可以被导出的包,其含义是说这个包可以被其他的 b u l l d l e 导入并使用。也就是通过i m p o r t 和e x p o r t 来定义b u i l d l e 之间的依赖关系, 当然这种依赖关系可以是一对多,多对多的,这也是b u l l d l e 之间的一种交互的方 式。此外,还有另外一种通过s e i c e 的交互方式,一个b u n d l e 作为服务的提供 者,而需要使用这个服务的b u n d l e 可以直接查找到它。下图展示了相互联系的 b u n d 】e 【1 4 】。 图2 1b l l i l d l e 示例 6 第二章o s g i 相关技术介绍 2 1 2 2s e r v ic e o s g i 的每一个服务都要求注册,注册到o s g i 的框架后就相当于成为了一个 j a v a 对象,通常这些对象连接一个或多个j a v a 接口。b 1 1 1 1 d l e 可以通过上下文去注 册服务、获取注册服务的状态信息、注销服务以及查询服务。下图展示了服务模 型示例。 图2 2 服务模型示例 2 1 2 3s t a r t l e v e i s t 叭l e v e l 表示每个b u n d l e 的启动优先级,启动级别定义为一个自然数。启 动优先级别为0 表示框架已经关闭或还没有运行( 根据具体环境来确定是哪种状 态) 。当s t a n l e v e l 为o 时表示没有b u i l d l e 正在运行。更大的整数代表了更高的启 动优先级。例如,启动优先级5 要大于2 ,且优先级最大为2 “1 ,即最大值为 i n t e g e r n w ( v a l u e 。 框架有激活启动级别( a c t i v es t a r tl e v e l ) ,用于确定可以启动哪些b u i l d l e ( 要求 小于或等于框架的激活启动级别) 。所有的b u n d l e 都有一个b u l l d l e 启动级别。 2 1 2 4s o c m s o c m ( s e r 、,i c e o r i e n t e dc o m p o n e n tm o d e l ) ,中文字面意义为面向服务的组件 模型【9 】【1 2 】。实际上这个模型的核心是组件,组件和服务从定义上看并没有什么区 别,可以说组件就是服务的载体,任何j a v a 对象都可以通过修改配置文件的定义 而变成组件。这样做的好处在于不用在b u i l d l e 的实现代码中固定写死对服务的注 7 电子科技大学硕士学位论文 册和获取,而是通过配置文件来定义组件的方式实现b u n d l e 对外的服务和获取。 真正实现组件化开发,比注册服务的方法更加灵活多变18 1 。 图2 3s o c m 不意图 从上图可以看出,每个b u n d l e 内都有若干个组件,每个组件都可以提供独立 的服务,不同b u n d l e 间可以通过组件来交互。这样就形成了一个面向服务的组件 化设计。 2 1 2 5d s d s ( d e c l a r a t i v es e i c e ) 是o s g iv 4 0 的一个重大改进,是对核心框架的一个 改进与提升。首先,d s 是o s g i 核心框架的一个标准服务,在以前没有d s 的版 本中,o s g i 系统要通过b u l l d l e 的b 吼d l e a c t i v a t o r 来注册服务,采用的是m o d u l e 和s e 州c e 的方式,b 1 l i l d l e 通过上下文来注册服务。而d s 通过一个l 文件, 定义b u l l d l e 的哪些部分提供服务,哪些部分获取服务。当b u i l d l e 运行时,o s g i 根据x m l 文件注册服务,并不立即启动m o d u l e ,只有当b u n d l e 要获取一个注册 过的服务时,m o d u l e 才被激活,服务的方法才会执行,而执行完了之后m o d u l e 再次变为等待状态。 d s 就是这样让我们可以在b 1 1 n d l e 中定义组件,通过配置的方法发布服务、 获取服务,以实现前面的面向服务的组件模型。 8 第二章o s g i 相关技术介绍 2 1 30 s gi 框架的功能 1 支持模块化的动态部署 由于o s g i 采用的是微内核结构,类似于操作系统微内核的概念,所以模块 化的部署成为了o s g i 最重要的功能。基于o s g i 而构建的系统是以j a r 文件的方 式作为模块动态地部署到框架之中,从而达到扩展性、易修改、易升级等目标【8 】。 按照o s q 的规范要求,将工程创建为符合规范的b 1 l i l d l e ,或是打包成符合 规范的j a r 文件,从而按规则动态的部署到0 s g i 框架中。b u n d l e 的部署方式可 以有很多种,如命令行、w e b 界面、目录等等。下图分别展示了用命令行和w 曲 方式部署的界面。 。系统管理 。i 亘程系统管理 。已安装插件费b 莨 r 2 一。8 “ 。安装新插件| 图2 _ 4 命令行和w 曲方式部署的界面 2 支持模块化的封装和交互 以前我们在使用j a v a 时也会感觉到是在模块化的编程,不过在进行模块化的 封装和交互上是直接从一个模块调用另一个模块的接口或是类。这种看似合理的 方式,实际上使代码变得混乱且难以理解,维护起来十分困难。使用了o s q 以 后,模块从物理级别上隔离了,根据o s g i 规范,每个b u n d l e 可以通过声明 h 1 1 p o r t p a c k a g e 或e x p o m p a c k a g e 对外获取接口和类或提供访问此b u n d l e 的接口 和类,也可以把对外提供的功能声明为服务来实现面向接口、面向服务式的设计。 图2 5 展示了b u n d l e 交互的两种方式 此外,还可以通过事件服务( e v e n ts e r v i c e ) 来实现模块的交互,模块对外发布 为事件,订阅了此事件的模块就会收到对应的消息,然后进行处理。类似于j a v a 消息服务( j a v am e s s a g es e r v i c e ) ,j 2 e e 的消息机制。 9 电子科技大学硕士学位论文 图2 5 两种b l l i l d l e 交互的方式 3 支持模块的动态配置 一般的j a v a 应用都是在启动前设定好了配置,通常是写一个配置文件,无法 在使用中动态调整配置。而在
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 广场户外租赁合同范本
- 电梯安装加工合同范本
- 企业双方订立合同范本
- 旧改收购合同范本
- 设计合同范本电子档
- 调料配方供货合同范本
- 成品布订货合同范本
- 工厂销售加盟合同范本
- 签订长期用工合同范本
- 买房托管装修合同范本
- 育婴员理论模拟考试试题及答案
- 杨式85式太极拳现用图解
- YY/T 1095-2015肌电生物反馈仪
- SB/T 10460-2008商用电开水器
- GB/T 9124.1-2019钢制管法兰第1部分:PN系列
- GB/T 2480-2022普通磨料碳化硅
- GA 1800.2-2021电力系统治安反恐防范要求第2部分:火力发电企业
- 细胞生物学实验课件:细胞组分的分级分离
- 合理选择影像检查方法课件
- 欣旺集团种禽养殖管理制度手册
- 口服化疗药精品课件
评论
0/150
提交评论