(计算机应用技术专业论文)jini技术实用化研究.pdf_第1页
(计算机应用技术专业论文)jini技术实用化研究.pdf_第2页
(计算机应用技术专业论文)jini技术实用化研究.pdf_第3页
(计算机应用技术专业论文)jini技术实用化研究.pdf_第4页
(计算机应用技术专业论文)jini技术实用化研究.pdf_第5页
已阅读5页,还剩136页未读 继续免费阅读

(计算机应用技术专业论文)jini技术实用化研究.pdf.pdf 免费下载

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

文档简介

a b s t r a c f a b s tr a c t n o w a d a y s ,a l o n gw i t ht h ep o p u l a t i o no fn e t w o r ka p p l i c a t i o n s ,al a r g ev a r i e t yo f d e v i c e sa r eb e i n gc o n n e c t e dc o n t i n u o u s l yi n t on e t w o r k m e a n w h i l e ,t h ec o m p l e x i t yo f n e t w o r ku s ea n dm a i n t e n a n c eb e c o m e sm o r ea n dm o r eg r e a t i ti s e x p e c t e dt h a t t h e s e r v i c e sp r o v i d e db yt h e s ed e v i c e sc a r lb eu s e di ns u c has i m p l yw a ya sp l u g a n d p l a y ( p n p ) o n c et h e s ed e v i c e sp l u gi n t on e t w o r k t os o l v et h i sp r o b l e m ,s u nm i c r o s y s t e m s s u g g e s t sa n e w d y n a m i c a l l y d i s t r i b u t e da r c h i t e c t u r e - - l i n t t h ej i n i s y s t e mf e d e r a t e s n e t w o r kd e v i c e sa n ds o f t w a r ec o m p o n e n t si n t ow h a t a p p e a r st ot h eu s e ra s as i n g l ea n dd y n a m i c a ls e r v i c es y s t e m ,t h u se n a b l e st h en e t w o r k e a s i l ya c c e s s i b l e ,m a n a g e a b l e a n dh i g hc o n f i g u r a b l e i naj i n i s y s t e m ,t h en e t w o r k r e s o u r c e sc a nb ej o i n e da n dd e l e t e dd y n a m i c a l l yt op r o v i d es e r v i c e sf o rh u m a nu s e r s , o t h e rh a r d w a r ed e v i c e sa n ds o f t w a r ec o m p o n e n t s t h ec l i e n to f t h es e r v i c e sd o e sn o tn e e d t ok n o wt h el o c a t i o no f t h e s es e r v i c e sb u ti tc a nf e e la n yc h a n g e so f t h es e r v i c e s t h et h e s i sf i r s t g i v e s t h ei n t r o d u c t i o nt ot h ej i n i a r c h i t e c t u r e ,t h e n s t u d i e s c o m p r e h e n s i v e l y t i l et h r e ep a r t so fj i n i i n f r a s t r u c t u r e ,p r o g r a m m i n gm o d e la n ds e l 。v i c e s t oi l l u s t r a t et h em e t h o d su s e db yj i n it oi m p l e m e n tt h ef u n c t i o no f p l u g a n d - p l a y j i n ii sb a s e do nj a v a t h er e s o u r c e sr e q u i r e dt or u nj i n if o rt h ed e v i c e sa r eh i g h l y p a i d s o m er e s o u r c e l i m i t e ds m a l ld e v i c e sc a l m o tj o i nj i n in e t w o r kd i r e c t l yd u et ot h e i n a d e q u a t ep r o c e s s o rp o w e r a n ds m a l lm e m o r ys i z e i no r d e rt oi m p l e m e n tt h ef u n c t i o no f p l u g - a n d p l a yf o rs u c hd e v i c e s ,t h ej i n is u r r o g a t ea r c h i t e c t u r et e c l m o l o g yc a n b eu s e d t h et h e s i ss t u d i e st h es c e n a r i o t h ec h o i c e so f d e s i g n i n gj i n is e r v i c e sa r c h i t e c t u r ea r ca n a l y z e da n d t h es e r v i c eu s e r i n t e r f a c ci ss t u d i e d s o m ec o n c r e t ea p p l i c a t i o n sa r ed e s i g n e da n di m p l e m e n t e do nt h eb a s i so ft h ea b o v e s t u d i e sa n da n a l y s i s e s a l s ot h eg r a p h i cu s e ri n t e r f a c eo fs e r v i c e si si m p l e m e n t e d t h e c l i e n tc a l lr i s es e r v i c e st h r o u g ht h eu s e ri n t e r f a c ev i aap l u g a n d - p l a ys e r v i c eb r o w s e r i ti s i n t e n d e dt h a ta l lt h e s es t u d i e sa b o v e c a l lf a c i l i t a t ea n d p r o m o t e t h ej i n ia p p l i c a t i o n s k e y w o r d s :j i n i ,p l u g m a d p l a y , j a v a ,s u r r o g a t ea r c h i t e c t u r e ,s e r v i c e u s e ri n t e r f a c e 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作 及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地方 外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含为 获得电子科技大学或其它教育机构的学位或证书而使用过的材料。与 我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的 说明并表示谢意。 + 签名:堡盘丕日期:年土月d 日 关于论文使用授权的说明 本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁盘, 允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文的全 部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描 等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后应遵守此规定) 签名:垃 娃子辩拄大学硬士论文: i n i 技术实嬲忙舔宠 第一章绪论 本章给出课题的来源、研究对象、舆体目标,以及论文的内容布局。 课题研究对象稻国内外觋究概况 课题来源和研究对象 本课题来源于瀚防科技预研基金项鳍,该项茸名为网上即插即雳技术及其窦现 研究( 整通用信息处理平台新一代体系结构骈究项窝的予课题) 。通用信息簸瑾平台 主要是用来为上层的军事应角掇供遮行场所,戳魏该平台中酌应稻支撵部分 以下简 称成爝支撑环麓) 至为麓簧。上述磺鹭簖在 湃究该通用倍怠簸毽平台内瘦其帮俺萃孛体 系结构形式的疲角支撵环境,戳及它翻将翔侮实蕴。 根据调查磷究,国乡 对c 4 i 系统豹新 弋瘫用支撑环境上静要求,已鼓过去豹 o p e ns y s t e ma r c h i t e c t u r e ( 汗敷系统体系结梅,以戴解决应愆之耀豹互搽作) 发攫成 为琥在蠡冬o p e n d i s t f i b u t e d p l u g a n d p l a y a r c h i t e c t u r e w i t h r e a l t i m e r e q u i r e m e n t ( 支 持实时获求虽其即捶靼羯功能豹开效式分毒体系结构) 。巍拢上述璎碧也以姥体系结 构作为磺究轻搽索的对象。其疑取德熬戏果必然霹爆寒大蝠发地渡善掰一代通用售息 处理平台鼹提供豹应用支撑环境,这最终将导致:应用农功能上靼性戆上能够于 级上 档,开发a 昃鸯应慰开发上获德工 磐高效,应用使用人爨在设备潺甩上德到及对瓤方 便。 本论文所研究的对象是上述新一代体系结构中应具有的一葶中功能即插即用 功能及其应用实现。虽然这只是一个局部性的技沭,但却是一个极富创意且极具实用 价值的新技术。不论对军方,还是对民用都是如此。 国内外研究概况 自计算机出现以来,怎样将计算机曩连起来以熨好地利用资源,高效完成各种信 息处理,一直是人们所思考和探索的问题:从五十年代计算机互连概念的出现到七十 年代早期,是单主机的时代;从七十年代早期t 1 ) t 十年代中期这段时间,贝f j 怒通过专 用网络绒a r p a n e t 将小型机逐接起来的时代;从八十年代中期到九十年代华期,则 是工作站通过l a n 连接超来占主等地位:从九十年代草期耍0 近期,贝u 通过l a b 、 w a n 和i n t e r n e t 将工作站服务器和瘦客户机连接起来;现在,服务器和客户视的概 念逐步消失,入们认为两络就楚计算税,国现了种全新分布式计算概念,帮:任何 计算设施不需预先配置稻安装,便可在任何时阊任何施点加入网络,并虽能和网络中 已有的各种软硬件趋协调工作完成分布式计算。正是在这一历史瀚流的指 l 娃子辩拄大学硬士论文: i n i 技术实嬲忙舔宠 第一章绪论 本章给出课题的来源、研究对象、舆体目标,以及论文的内容布局。 课题研究对象稻国内外觋究概况 课题来源和研究对象 本课题来源于瀚防科技预研基金项鳍,该项茸名为网上即插即雳技术及其窦现 研究( 整通用信息处理平台新一代体系结构骈究项窝的予课题) 。通用信息簸瑾平台 主要是用来为上层的军事应角掇供遮行场所,戳魏该平台中酌应稻支撵部分 服务提供者将创建一个s e r v i c e l t e m 对象,并且作为r e g i s t e r ( ) 方法的参数用于 服务注册。 第一个参数s e r v i c e i d 在服务第一次注册时为n u l l ,注册成功后查找服务会返 回一个s e r v i c e r e g i s t r a t i o n 对象,包括服务i d ,服务再次注册时就使用返回的 1 d 。 第二个参数是服务用来输出到查找服务的服务对象( s e r v i c eo b j e c t ) ,该对象是 由服务提供者创建,将被序列化,并在客户请求时下载到客户方。 第三个参数是服务用来输出到查找服务的属性对象,包含了对服务功能的一些 描述。 3 13 3 服务注册接口( s e r v ic e r e g is tr a t i o i l in t e r f a c e ) p a c k a g en e t d i n i c o r e 1 0 0 k u p ; p u b l i ci n t e r f a c es e r v i c e r e g i s t r a t i o n s e r v i c e l dg e t s e r v i c e l d 0 ; l e a s eg e t l e a s e ( ) ; v o i da d d a t t r i b u t e s ( e n t r y a t t r s e t s ) t h r o w su n k n o w n l e a s e e x c e p t i o n , r e m o t e e x c e p t i o n v o i dm o d i f y a t t r i b u t e s ( e n t x y a t t r s e t t e m p l a t e s ,e n t r y 】a t t r s e t s ) t h r o w su n k n o w n l e a s e e x c e p t i o n ,r e m o t e e x c e p t i o m v o i ds e t a t l r i b u t e s ( e n t r y a t t r s e t s ) t h r o w s u n k n o w n l e a s e e x c e p t i o n ,r e m o t e e x c e p t i o n ; ) 服务提出注册请求后,查找服务将创建一个s e r v i c e r e g i s t r a t i o n 类型对象返回给 服务,用于控制服务输出到查找服务中的服务对象。服务可以用它的g e t s e r v i c e l d ( ) 方法获得服务i d ,同时也可以用 v o i da d d a t t r i b u t e s ( e n t r y a t t r s e t s ) ; v o i dm o d i f y a t t r i b u t e s ( e n t r y a t t r s e t t e m p l a t e s ,e n t r y 】a t t r s e t s ) ; v o i d s e t a t t r i b u t e s ( e n t r y a t t r s e t s ) ; 等方法来修改已输出到查找服务中的服务属性。 第三章j i n i 技术的深入分析 3 1 4 客户搜寻 服务请求者( 客户) 在通过发现协议找到查找服务后,将通过服务匹配找到自己 所需要的服务。 3 1 4 1 服务注册器接口( s e r v i c e r e g is t r a r in t e r f a c e ) 服务请求者( 客户) 无论使用单播发现还是组播发现方式发现查找服务后,将从 查找服务中返回一个s e r v i c e r e g i s t r a r 对象,服务通过该对象的l o o k u p ( ) 方法在查找 服务中搜寻所需的服务。l o o k u p ( ) 方法使用服务模板( s e r v i c e t e m p l a t e ) 来匹配服务。 p a c k a g en e t j i n i c o r e 1 0 0 k u p ; p u b l i ci n t e r f a c es e r v i c e r e g i s t r a r p u b l i cj a v a 1 a n g o b j e c tl o o k u p ( s e r v i c e t e m p l a t et m p l ) t h r o w s j a v a r m i r e m o t e e x c e p t i o n ; p u b l i cs e r v i c e m a t c h e sl o o k u p ( s e r v i c e t e m p l a t et m p l ,i mm a x m a t c h e s ) t h r o w s j a v a r m i r e m o t e e x c e p t i o n ; 其它部分此处省略 ) 3 1 4 2 服务模板类( s e r v i c e t e m p i a t e c ia s s ) p a c k a g en e t j i n i c o r e 1 0 0 k u p ; p u b l i c c l a s ss e r v i c e t e m p l a t e p u b l i cs e r v i c e l ds e r v i c e i d ; p u b l i cj a v a 1 a n g c l a s s 】s e r v i c e t y p e s ; p u b l i ce n t r y 】a t t r i b u t e s e t t e m p l a t e s ; s e r v i c e t e m p l a t e ( s e r v i c e l ds e r v i c e l d ,j a v a 1 a n g c l a s s s e r v i c e t y p e s , e n t r y 】a t t r s e t t e m p l a t e s ) ; ) 客户使用模板中的三个字段来匹配服务:服务i d ,服务类型,属性。如果三者 都为空值,则将匹配查找服务中的任何服务。 服务类型是指服务输出到查找服务上的服务对象所实现的接1 3 ,该接口是由j a v a 类封装的。若客户要通过服务类型找到所需的服务,则必须明确知道服务代理对象实 现的接口类。 客户可以在属性字段中指出它想要查找的e n t r y 的属性,通过与服务对象属性 的匹配找到感兴趣的服务。 电子科技大学硕士论文:j i n i 技术实用化研究 3143 服务匹配类( s er v ic e m a t c h e s0 la s s ) 若客户试图得到符合需要的多个服务,则需要使用l o o k u p ( ) 的第- - e e 方法,即通 过设置参数中的最大匹配数,返回一个s e r v i c e m a t c h e s 对象。 p u b l i cc l a s ss e r v i c e m a t c h e s p u b l i cs e r v i c e i t e m i t e m s ; p u b l i ci n tt o t a l m a t c h e s ;, s e r v i c e m a t c h e s ( s e r i v c e l t e m i t e m s ,i n tt o t a l m a t c h e s ) ;构造函数 ) 其中s e r v i c e l t e m 数组中为返回的匹配服务的代理,t o t a l m a t c h e s 为返回的成功匹 配服务的数量。 3 1 5 安全 j i n i 作为一个基于服务的动态分布式体系结构,在设计时考虑到了j i n i 应用的安 全问题。j i n i 的安全性建立在j a v a 平台的安全性基础之上,充分利用了j a v a 平台提 供的安全模型。 31 51 j a v a 平台安全模型 由j a v a 虚拟机( m ) 表示的j a v a 平台将安全作为其集成属性。作为支持类型 安全的语言,j a v a 提供了多种安全a p i ,支持数字签名、j a r 文件( j a v a 归档文件) 、 消息摘要、访问控制列表( a c l ) 等。 作为一个操作平台,j a v a 建立了相应的机制可以检查、查看和限制某个应用程序 的执行。在j a v a 平台中,任何程序的执行与传统的操作系统中一般二进制执行有所 不同,所有程序代码在载入到类装载器之前都必须利用字节码校验器通过一个静态的 验证过程,安全管理器则完成运行时( 动态的) 校验。 下图显示了j a v a 平台的安全模型。 电子科技大学硕士论文:j i n i 技术实用化研究 3143 服务匹配类( s er v ic e m a t c h e s0 la s s ) 若客户试图得到符合需要的多个服务,则需要使用l o o k u p ( ) 的第- - e e 方法,即通 过设置参数中的最大匹配数,返回一个s e r v i c e m a t c h e s 对象。 p u b l i cc l a s ss e r v i c e m a t c h e s p u b l i cs e r v i c e i t e m i t e m s ; p u b l i ci n tt o t a l m a t c h e s ;, s e r v i c e m a t c h e s ( s e r i v c e l t e m i t e m s ,i n tt o t a l m a t c h e s ) ;构造函数 ) 其中s e r v i c e l t e m 数组中为返回的匹配服务的代理,t o t a l m a t c h e s 为返回的成功匹 配服务的数量。 3 1 5 安全 j i n i 作为一个基于服务的动态分布式体系结构,在设计时考虑到了j i n i 应用的安 全问题。j i n i 的安全性建立在j a v a 平台的安全性基础之上,充分利用了j a v a 平台提 供的安全模型。 31 51 j a v a 平台安全模型 由j a v a 虚拟机( m ) 表示的j a v a 平台将安全作为其集成属性。作为支持类型 安全的语言,j a v a 提供了多种安全a p i ,支持数字签名、j a r 文件( j a v a 归档文件) 、 消息摘要、访问控制列表( a c l ) 等。 作为一个操作平台,j a v a 建立了相应的机制可以检查、查看和限制某个应用程序 的执行。在j a v a 平台中,任何程序的执行与传统的操作系统中一般二进制执行有所 不同,所有程序代码在载入到类装载器之前都必须利用字节码校验器通过一个静态的 验证过程,安全管理器则完成运行时( 动态的) 校验。 下图显示了j a v a 平台的安全模型。 第三章j i n i 技术的深入分析 315 2 d in i 安全策略 图3 5j a v a 平台安全模型 j i n i 应用的安全性建立在j a v a 平台的安全模型基础之上,涉及到两个安全内容; 一个是文件许可,另一个是套接字许可。文件许可设定了对相关的文件进行访问,如 类文件、i a r 文件以及相关的文件,套接字许可设定了在规定的端口进行网络访问的 权限。 一般情况下,存在一个j a v a p o l i c y 文件( 称为策略文件) ,其中包括了与j a v a 运 行时环境相关的许可。所有特定应用的策略需要在一个单独的策略文件中设定,并在 应用执行时指定该策略文件。j a v a 策略文件的语法为: g r a n t 、 p e r m i s s i o n f i l eo rp a c k a g eo rs o c k e tn a m e ,p e r m i s s i o na l l o w e d ; ) 其中,p e r m i s s i o n 表示要对后面所跟的文件或包或套接字授予权限,p e r m i s s i o n a l l o w e d 则为这些文件或包或套接字所得到的权限,权限可取值有r e a d 、w r i t e 、d e l e t e 、 l i s l e n 、c o n n e c t 或a c c e p t ,权限的取值可以采用组合的形式。 1 文件许可权限 所有的代码都通过一个代码基( c o d e b a s e ) 而被授予一组对文件的操作权限。代 码基是一个涉及地址的u r l 集合,代码可以由此得到加载。 2 套接字许可权限 j i n i 的发现和加入协议建立在组播u d p 和t c p 基础之上,服务和服务请求者能 够创建并利用套接字实现通信和监听,n 止g 确定与套接字有关的权限变得很重要。默 认的套接字策略为: g r a n t p e r m i s s i o n j a v a n e t s o c k e t p e r m i s s i o n “+ :1 0 2 4 6 5 5 3 5 ”,”c o n n e c t ,a c c e p t ”; p e r m i s s i o n j a v a n e t s o c k e t p e t l n i s s i o n “+ :10 2 4 一”,”l i s t e n ”; ; 电子科技大学硕士论文:j i n i 技术实用化研究 第一条语句为所有非系统保留的端口授予了连接( c o n n e c t ) 和接受( a c c e p t ) 权 限,第二:条语句则授权可监听所有非限定端口。 3 1 6r m i 环境 为了完全参与到j i n i 网络中,一个服务必须运行在支持r m i 的环境中,可以从 以下几个方面说明这一点: 分布式事件中涉及的对象实现了j a v a r m i r e m o t e 接口; 同样的,事务处理中涉及的对象实现了j a v a r m i r e m o t e 接口; 如果采用s u n 公司实现的查找服务( r e g g i e ) ,在使用发现协议查找附近可用 的查找服务时,查找服务返回的代理对象中包含r m i 引用。 j i n i 的代码动态下载特性是通过对象串行化( s e r i a l i z a t i o n ) 和r m i 来实现的( 尽 管可以采用你自己实现的协议来做到这一点,但这增加了编程的复杂性) 。 远程方法调用( r m i ) 在j d k l 1 时就已经出现在j a v a 之中,在j a v a2 版本出 现后则得到显著增强和扩充。j i n i 利用了很多只有j a v a2 版本的r m i 中才有的类和 特性,因此j i n i 是建立在j a v a 和r m i 的基础之上的。 3 1 6 1 刚i 概述 r m i 使软件开发人员能够编写这样的分布式程序:在这个分布式程序中,其远程 对象的方法能够被运行在不同主机上的、其它j a v a 虚拟机( j v m ) 的方法所调用。 r v i i 非常类似于其它系统中的r p c 机制,但是比r p c 更易用。当所有参数被传送给 远程目标并且被解释,然后将结果返回给调用者时,程序员会有一个错觉,以为是从 本地类文件中调用一个本地方法。相对于过程调用级的r p c ,r m i 可以实现编程级 对象之间的方法调用。下图说明了本地调用与远程调用之间的不同。 瓤 v 祷) 、 本划调用 鼢毒 、 应用程序j = 一 - 6 两 机器a机器b 316 2r m l 的目标 图3 6 本地与远程方法调用 r m i 规范中列出了r m i 系统的目标 电子科技大学硕士论文:j i n i 技术实用化研究 第一条语句为所有非系统保留的端口授予了连接( c o n n e c t ) 和接受( a c c e p t ) 权 限,第二:条语句则授权可监听所有非限定端口。 3 1 6r m i 环境 为了完全参与到j i n i 网络中,一个服务必须运行在支持r m i 的环境中,可以从 以下几个方面说明这一点: 分布式事件中涉及的对象实现了j a v a r m i r e m o t e 接口; 同样的,事务处理中涉及的对象实现了j a v a r m i r e m o t e 接口; 如果采用s u n 公司实现的查找服务( r e g g i e ) ,在使用发现协议查找附近可用 的查找服务时,查找服务返回的代理对象中包含r m i 引用。 j i n i 的代码动态下载特性是通过对象串行化( s e r i a l i z a t i o n ) 和r m i 来实现的( 尽 管可以采用你自己实现的协议来做到这一点,但这增加了编程的复杂性) 。 远程方法调用( r m i ) 在j d k l 1 时就已经出现在j a v a 之中,在j a v a2 版本出 现后则得到显著增强和扩充。j i n i 利用了很多只有j a v a2 版本的r m i 中才有的类和 特性,因此j i n i 是建立在j a v a 和r m i 的基础之上的。 3 1 6 1 刚i 概述 r m i 使软件开发人员能够编写这样的分布式程序:在这个分布式程序中,其远程 对象的方法能够被运行在不同主机上的、其它j a v a 虚拟机( j v m ) 的方法所调用。 r v i i 非常类似于其它系统中的r p c 机制,但是比r p c 更易用。当所有参数被传送给 远程目标并且被解释,然后将结果返回给调用者时,程序员会有一个错觉,以为是从 本地类文件中调用一个本地方法。相对于过程调用级的r p c ,r m i 可以实现编程级 对象之间的方法调用。下图说明了本地调用与远程调用之间的不同。 瓤 v 祷) 、 本划调用 鼢毒 、 应用程序j = 一 - 6 两 机器a机器b 316 2r m l 的目标 图3 6 本地与远程方法调用 r m i 规范中列出了r m i 系统的目标 第三章j i n i 技术的深入分析 支持对存在于不同j a v a 虚拟机上对象的无缝的远程调用; 支持服务器对客户的回调; 把分布式对象模型自然地集成到j a v a 语言里,尽可能地从语义上保留j a v a 的 面向对象的特性; 使分布式对象模型和本地j a v a 对象模型间的不同表面化; 使编写可靠的分布式应用程序尽可能简单; 保留j a v a 运行时环境提供的安全性。 316 3 r m i 的体系结构 r m i 体系结构由三层组成:桩框架层( s t u b s k e l e t o n ) 、远程引用层( r e m o t e r e f e r e n c e ) 、传输层( t r a n s p o r t ) 。下图为r m i 系统结构: ( 客户 j 服务器 j 工工 l桩十匡架 l远程引用层 l传输层 图3 7 r m i 系统结构 每一层都是由特定的接口和协议来定义的,因此,每一层相对于它的相邻层而言 是独立的。也就是说,某一层在实现上的改变,是不会影响到其它层的。例如在r m l 系统中,当前传输层是基于t c p 的,它可以被基于u d p 的传输层所替换。 1 桩框架层 桩框架层是应用程序与系统其它部分的接口。当开发了一个服务器应用程序后, 就使用r m i 的r m i c 编译器产生桩框架。桩是客户内部完成打包数据和管理网络连接 工作的本地对象,在客户调用远程对象上的方法时,它实际调用的是本地存根对象上 的方法。在远程虚拟机上,每一个远程对象都可能有一个相应的框架。框架负责接收 并解包远程方法调用为本地方法调用。 一个远程对象客户端的桩要负责处理多项任务:初始化并与远程对象所在的远程 虚拟机连接;将参数打包( m a r s h a l s ) ,然后传递到远程虚拟机;等待方法调用的结果; 解包( u n n l a r s h a l s ) 返回值和异常;将值返回给调用者。 另一方面,服务器端的框架要负责处理:解包客户端输入的远程方法的参数;调 用实际的远程对象的方法;将结果打包返回给调用者。 2 远程引用层 远程引用层是桩框架层和传输层的中间层。它负责为独立于客户桩和服务器框 架的多种形式的远程引用和调用协议提供支持。例如,单点传送协议可能提供点对点 ( p o i n t t o p o i n t ) 的调用,多点传送协议可能提供对复制的( r e p l i c a t e d ) 成组对象的 3 0 u 了科技火学 i ! j j 论文:j i n i 技术实用化研究 调用。而另外一些协议则可能要处理特定的复制策略或对远程对象的持久性引用,例 如使能远程对象激活。然而,并不是所有这些功能都被p d v l i 系统的所有版本支持。 例如,j i ) k 11 中的r m i 系统就不支持远程对象激活,而j a v a2 中的r m i 系统则支 持。 3 传输层 传输层是一个低级的层,它在不同的地址空间内传输序列化的字节流。传输层负 责建立到远程地址空间的连接,管理连接,监听外来调用,维护驻留于同一个地址空 间的远程对象表,为外来的调用建立连接,以及根据远程调用的目的定位调度程序, 并传递连接到该调度程序。 在这一层,远程对象引用通过一个对象标识符和一个结束点( e n d - p o i n t ) 来表示, 它被称为活动引用( 1 i v er e f e r e n c e ) 。在个给定的远程对象的活动引用中,对象标识 符指出了远程调用的对象是什么,结束点则建立了到远程对象所驻留的地址空间的连 接。前面曾经介绍过,r m i 使用基于t c p 的传输,但由于对于每一个地址空间,传 输层支持多个传输协议,所以也可以使用基于u d p 的传输。因此,在同一个地址空 间或虚拟机上,可以支持t c p 和u d p 两种协议。 3 1 6 4r m l 中的序列化 桩和框架负责网络上通信的细节,如将数据打包和解包、与远程方法交换数据等。 对远程方法需要的参数和返回值,桩和框架负责把它们转化为字节流( 即序列化) , 从而可以在网络上传送并可在另外一端重建( 即逆序列化) 。 如果没有序列化,r i v l i 将无法通过网络传送复杂的j a v a 对象。在j a v a 语言中, 实现了i a v ai o s e r i a l i z a b l e 接口的对象可以被转换成字节流并重建,s e r i a l i z a b l e 是一 个“标志”接口,用于告知j a v a 某个给定的类可被序列化。某些原始类型如i n t 、b o o l e a n 等,被认为是可以序列化的,因此在r m i 调用中可发送或返回这些类型。若需要使 一个类可被序列化,需要满足三个条件: 实现s e r i a l i z a b l e 接口。 保证类有一个公共的、无参数的构造方法。 保证类不包含对不可序列化对象的引用。 3165r m l 中的动态代码加载 序列化只是将对象中的数据成员打包,而不能将实现对象的代码打包。为解决这 个问题,r m i 允许在需要时动态下载类的实现,这也是它和“传统”远程过程调用或 其它分布式系统之间差别之一。 动态代码加载的工作过程为:j a v a 应用搜索它的类路径来找到所需类的实现,类 第三章j i n i 技术的深入分析 路径就是包含所需类文件的一组目录和j a r 文件。r m i 的在这方面的基本思想是通 过代码基( c o d e b a s e ) 的概念来进行了扩充。代码基可被认为是为j a v a 程序动态提供 类文件的新位置,j a v a 程序通过这些文件来访问以前未知的新实现的类。 在r m i 中,任何要输出供其它实体下载的类的程序都必须设置代码基以指出这 些类的实现在何处。代码基并不是用来告诉执行输出的程序到哪里获取类,相反是被 标记到序列化的对象数据上送到执行下载的程序。在接收者获得了序列化的对象后, 它就可以重建对象,并能当类在本地不可用时,从代码基提供的位置下载程序。 r v l l 本身并不处理类代码在网络中的传输,而是使用外部的功能( j a v a 程序有 从指定的u r l 复制字节码并安全执行的能力) 来提供可下载代码。在大多数情况下, 可下载代码放置在一个h t t p 服务器的工作目录中,任何输出可下载代码的程序都要 设置代码基,使其包含该h t t pu r l 以指出类的位置。 3 2 编程模型 j i n i 扩展了j a v a 编程模型的功能。j i n i 定义了以下的一组编程模型: 分布式事件模型:定义了分布式环境下的事件通知模型; 租用模型:定义了分布式环境下资源的分配和回收; 事务模型:在j i n i 环境中对分布式服务提供了一组接口从而可以处理事务。 3 2 1 分布式事件模型 3 21 ,1 本地事件与分布式事件 从软件的角度来讲,事件一般可以理解为某个软件实体( 如对象) 状态上的改变。 本地事件可以理解为在同一地址空间上软件实体状态的改变,而分布式事件可以理解 为不同的地址空间中两个或者多个软件实体所发生的状态的改变。本地事件 具有分发速度快、可靠、良序性、可类型化等特性。而对于分布式事件来说,由于存 在网络延迟、带宽限制、网络失败以及不正确的路由等因素的影响,分布式事件存在 分发速度慢、不可靠、不具有良序性、类型多变等特性。 3 2 1 2j in i 对分布式事件的处理 j i n i 的事件模型沿用了j a v aa w t 和j a v a b e a n s 的事件委托模型,但是j i n i 针对 分布式事件的特性,对分布式事件做了抽象。在j i n i 系统中,将所有的事件类型都抽 象为远程事件( r e m o t e e v e n t ) 。远程事件对象包括事件序列号、生成事件的源对象的 引用、事件类型标识符、远程对象等属性。所有的事件都只有一种监听者类型,称之 第三章j i n i 技术的深入分析 路径就是包含所需类文件的一组目录和j a r 文件。r m i 的在这方面的基本思想是通 过代码基( c o d e b a s e ) 的概念来进行了扩充。代码基可被认为是为j a v a 程序动态提供 类文件的新位置,j a v a 程序通过这些文件来访问以前未知的新实现的类。 在r m i 中,任何要输出供其它实体下载的类的程序都必须设置代码基以指出这 些类的实现在何处。代码基并不是用来告诉执行输出的程序到哪里获取类,相反是被 标记到序列化的对象数据上送到执行下载的程序。在接收者获得了序列化的对象后, 它就可以重建对象,并能当类在本地不可用时,从代码基提供的位置下载程序。 r v l l 本身并不处理类代码在网络中的传输,而是使用外部的功能( j a v a 程序有 从指定的u r l 复制字节码并安全执行的能力) 来提供可下载代码。在大多数情况下, 可下载代码放置在一个h t t p 服务器的工作目录中,任何输出可下载代码的程序都要 设置代码基,使其包含该h t t pu r l 以指出类的位置。 3 2 编程模型 j i n i 扩展了j a v a 编程模型的功能。j i n i 定义了以下的一组编程模型: 分布式事件模型:定义了分布式环境下的事件通知模型; 租用模型:定义了分布式环境下资源的分配和回收; 事务模型:在j i n i 环境中对分布式服务提供了一组接口从而可以处理事务。 3 2 1 分布式事件模型 3 21 ,1 本地事件与分布式事件 从软件的角度来讲,事件一般可以理解为某个软件实体( 如对象) 状态上的改变。 本地事件可以理解为在同一地址空间上软件实体状态的改变,而分布式事件可以理解 为不同的地址空间中两个或者多个软件实体所发生的状态的改变。本地事件 具有分发速度快、可靠、良序性、可类型化等特性。而对于分布式事件来说,由于存 在网络延迟、带宽限制、网络失败以及不正确的路由等因素的影响,分布式事件存在 分发速度慢、不可靠、不具有良序性、类型多变等特性。 3 2 1 2j in i 对分布式事件的处理 j i n i 的事件模型沿用了j a v aa w t 和j a v a b e a n s 的事件委托模型,但是j i n i 针对 分布式事件的特性,对分布式事件做了抽象。在j i n i 系统中,将所有的事件类型都抽 象为远程事件( r e m o t e e v e n t ) 。远程事件对象包括事件序列号、生成事件的源对象的 引用、事件类型标识符、远程对象等属性。所有的事件都只有一种监听者类型,称之 第三章j i n i 技术的深入分析 路径就是包含所需类文件的一组目录和j a r 文件。r m i 的在这方面的基本思想是通 过代码基( c o d e b a s e ) 的概念来进行了扩充。代码基可被认为是为j a v a 程序动态提供 类文件的新位置,j a v a 程序通过这些文件来访问以前未知的新实现的类。 在r m i 中,任何要输出供其它实体下载的类的程序都必须设置代码基以指出这 些类的实现在何处。代码基并不是用来告诉执行输出的程序到哪里获取类,相反是被 标记到序列化的对象数据上送到执行下载的程序。在接收者获

温馨提示

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

评论

0/150

提交评论