(计算机应用技术专业论文)基于corba的改良访问控制模型研究.pdf_第1页
(计算机应用技术专业论文)基于corba的改良访问控制模型研究.pdf_第2页
(计算机应用技术专业论文)基于corba的改良访问控制模型研究.pdf_第3页
(计算机应用技术专业论文)基于corba的改良访问控制模型研究.pdf_第4页
(计算机应用技术专业论文)基于corba的改良访问控制模型研究.pdf_第5页
已阅读5页,还剩53页未读 继续免费阅读

(计算机应用技术专业论文)基于corba的改良访问控制模型研究.pdf.pdf 免费下载

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

文档简介

摘要 随着可扩展和开放的计算环境的需求,分布式应用正扮演着日益重要的角 色。当应用从企业环境转移到i n t e r n e t 上,安全和信任机制的缺乏所带来的危 害逐渐显露出来。在电子商务、协同工作特别是分布式对象技术被作为主要应用 时,安全是一个关键性的需求。 c o r b a 。1 是由o m g 组织提出作为一种标准的基于分布式对象计算的面向对象 应用程序体系规范,同样也面临着安全问题以及对相应安全服务的修订,其中访 问控制是一个重要韵部分。 多数分布式环境下需要应用层访问控制,原有的c o r b a 安全服务规范( c o r b a s e c u r i t ys e r v i c e ss p e c i f i c a t i o n ) ”1 却不支持,由此产生了资源访问决策 ( r e s o u r c ea c c e s sd e c i s i o n ) ”1 工具。虽然r a d 工具提供了细粒度的应用层访 问控制,但在策略管理方面还存在一些缺陷。另外,基于应用特定域的考虑授权 逻辑应该与应用分离,这就需要授权服务作为一个外部组件集成到应用中。 本文在分析了c o r b a 安全规范和r a d 技术不足的基础上,介绍了采用改良的 r a d 技术将外部的p m i ( p r i v i l e g em a n a g e m e n ti n f r a s t r u c t u r e ) “1 服务集成到 c o r b a 应用的基本思想,并结合二者提出了一种新的基于c o r b a 的访问控制模型。 模型主要由p m i 授权服务、策略管理工具和p m i r a d 三个模块组成。p m i 授 权服务模块实现了属性证明同访问控制功能的分离,通过发行用户属性证书完成 资源的授权管理。策略管理模块不但能对文档结构、属性、数据类型等约束进行 充分的描述、通过元数据传递语义信息以实现应用程序不同模块间的相互协调, 还能够通过对策略实施模块化定义和参数化操作来增强策略的表达力并在一定 程度上实现策略的高效求值。p m i r a d 模块在以上模块的基础上通过对受保护资 源的详细语义描述实现了资源的动态定位,并通过将原r a d 中策略的定位、组合 和求值功能合并起来,得到最终的决策结果。 模型使用基于) ( m l r d f 模式嘲“3 的语义描述对策略、被访问资源和授权三方 面进行定义和改进,有效的解抉了原有访问控制模型的不足,可以灵活的来应对 多样化的资源,动态、透明的改变访问控制参数以及能依据对象信息自动的制定 访问条件,在一定程度上提高了系统的性能。 关键词:c o r b a 安全服务;访问控制;资源访问决策;p m i a b s t r a c t d i s t r i b u t e da p p l i c a t i o n sa r ep l a y i n ga r li n c r e a s i n g l yi m p o r t a n tr o l em o t i v a t e db y t h en e e do fs c a l a b l ea n do p e ne n v i r o n m e n t st h a t s u p p o r tc i i s t r i b u t c dc o m p u t i n g a s a p p l i c a t i o n sm o v e f r o mc o r p o r a t ee n v i r o n m e n t st ot h ei n t e r a c t ,t h el a c ko f s e c u r i t ya n d t r u s t w o r t h y m e c h a n i s m sb e c o m e s e v i d e n t s e c u r i t y i sac r i t i c a l r e q u i r e m e n t i n s c e n a r i o ss u c ha se l e c t r o n i cc o n l m e r c ea n dc o l l a b o r a t i v e w o r k ,e s p e c i a l l yi f d i s t r i b u t e d o b j e c tt e c h n o l o g yi su s e da sab a c k b o n e c o r b ai sa na r c h i t e c t u r a ls p e c i f i c a t i o nf o ro b j e c t - o r i e n t e da p p l i c a t i o nb a s e do n d i s t r i b u t e dc o m p u t i n gp r o v i d e db yo m gw h i c ha l s of a c i n gs e c u r i t ya n dr e v i s ef o ri t s s e c u r i t ys e r v i c e a c c e s sc o n t r o l sa r e ,p r o b a b l y ,t h em o s ti m p o r t a n t o n e s a p p l i c a t i o n - l e v e la c c e s sc o n t r o li sa ni m p o r t a n tr e q u i r e m e n ti nm a n y d i s t r i b u t e d e n v i r o n m e n t s b u tc o r b a s e c u r i t ys e r v i c e ss p e c i f i c a t i o ni s n o ts u p p o r t e d a n da r e s o u r c ea c c e s sd e c i s i o nf a c i l i t yc o m e si n t ob e i n g a l t h o u g hp a d f a c i l i t yp r o v i d ea m e t h o df o rf i n e - g r a i n e da p p l i c a t i o n - l e v e la c c e s sc o n t r o l ,b u tt h e r eh a v eal i m i t a t i o ni n p o l i c em a n a g e m e n t i na d d i t i o n ,c o n s i d e r i n ga p p l i c a t i o nd o m a i n s p e c i f i cf a c t o r s , a u t h o r i z a t i o nl o g i cs h o u l db es e p a r a t e df r o ma p p l i c a t i o nl o g i c i tn e e d sa u t h o r i z a t i o n s e r v i c ea sa l le x t e r n a lc o m p o n e n tt ob ei n t e g r a t e di n t oa p p l i c a f i o n s t h i sp a p e ra n a l y s e st h el i m i t a t i o no f e x i s t i n gc o r b a s e c a n dr a d ,i n t r o d u c e s t h eb a s i ci d e at oi n t e g r a t et h es e r v i c e so fa ne x t e r n a lp m ii n t oc o r b a a p p l i c a t i o n s u s i n gt h ei m p r o v e dr a df a c i l i t y ,a n dp r e s e n t sa n e wa c c e s sc o n t r o lm o d e lb a s e do n c o r b a t h i sm o d e lh a st h r e em o d u l e sa sp m ia u t h o r i z a t i o ns e r v i c e ;p o l i c ym a n a g e m e n t t o o l sa n dp m i r a d p m ia u t h o r i z a t i o ns e r v i c em o d u l es e p a r a t et h ec e r t i f i c a t i o no f a t t r i b u t e sf r o ma c c e s sc o n t r o lf u n c t i o n a l i t i e sa n dm a n a g et h e a u t h o r i z a t i o nf o r r e s o u r c e sb yi s s u i n ga t t r i b u t ec e r t i f i c a t e s p o l i c ym a n a g e m e n t t o o l sm o d u l en o to n l y d e s c r i b et h er e s t r i c t i o n si ns u c ha sd o c u m e n ts t r u c t u r e s a t t r i b u t e sa n dd a t at y p e s u f f i c i e n t l yb u ta l s oh a r m o n i z e e a c hp r o c e d u r ev i at r a n s f e r r i n gs e m a n t i ci n f o r m a t i o n , a d d i t i o n a l l y , i te n f o r c e t h eh i g h l ye x p r e s s i v el a n g u a g eo fp o l i c e sb ye n a b l i n gt h e m o d u l a rd e f i n i t i o na n dt h ep a r n m e t e r i z e dp o l i c e s p m i - r a dm o d u l e r e a l i z et h e d y n a m i ca l l o c a t i o no fp o l i c e st or e s o u r c e sb y s u f f i c i e n ts e m a n t i cd e s c r i p t i o nt os e c u r e d r e s o u r c e sa n dg e tt h ef i n a ld e c i s i o nv i ac o m b i n i n gt h ef u n c t i o n a l i t i e so fa l l o c a t i o n , c o m b i n a t i o na n de v a l u a t i o ni no r i g i n a lr a d s e r v i c e 1 1 i tc a r lf a c et h e h e t e r o g e n e o u si 陀s o l u c e s f l e x i b l y , c h a n g e t h ea c c e s sc o n t r o l p a r a m e t e r s d y n a m i c a l l y a n dt r a n s p a r e n t l y , a n d e s t a b l i s ha c c e s sc o n d h i o n si na n a u t o m a t i cw a yb a s e do ni n f o r m a t i o na b o u tt h e o b j e c t sb yd e f i n i n ga n di m p r o v i n g p o l i c e s ,a c c e s s e dr e s o u r c ea n da u t h o r i z a t i o ns e r v i c eu s i n gs e m a n t i cd e s c r i p t i o nb a s e d o nx m la n dr d fs c h e m e s oi ti n c r e a s e st h ep e r f o r m a n c eo f s y s t e mb yr e s o l v i n g s o m e d e f i c i e n c yo f p r e v i o u s a c c e s sc o n t r o lm o d e l k e y w o r d s :c o r b a s e c :a c c e s sc o n t r o l ;p a d ;p m i i l 原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师的指导下,独立进 行研究所取得的成果。除文中已经注明引用的内容外,本论文不包含任何 其他个人或集体已经发表或撰写过的科研成果。对本文的研究作出重要贡 献的个人和集体,均已在文中以明确方式标明。本声明的法律责任由本人 承担。 论文作者签名:日期: 建! 兰! 关于学位论文使用授权的声明 本人完全了解山东大学有关保留、使用学位论文的规定,同意学校保 留或向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅 和借阅;本人授权山东大学可以将本学位论文的全部或部分内容编入有关 数据库进行检索,可以采用影印、缩印或其他复制手段保存论文和汇编本 学位论文。 ( 保密论文在解密后应遵守此规定) 论文作者签名:导师签名b 蕉磕日 期:盍生暨:! : 第一章绪论 1 1 课题背景、研究的目的和意义 随着i n t e r n e t 的普及,将各种应用从局域网扩展到广域网甚至i n t e r n e t 上 已成为用户的普遍需求,如电子商务、协同工作等,其中重要的实现途径就是采 用分布式计算技术。基于分布式计算技术开发的分布式软件,几乎包含了 i n t e r n e t 程序开发、使用、维护、管理等各个方面,从而使得分布式对象的信息 安全问题面l | 缶着严峻的挑战,其安全和信任机制的建立变得十分必要。c o r b a 是 由o m g 组织提出作为一种标准的基于分布式对象计算的面向对象应用程序体系规 范,同样也面临着安全问题以及对相应安全服务的修订,其中访问控制是一个重 要的部分。 在分布式环境下存在一些普遍的问题。最相关的主要问题之一是资源被身份 不明用户访问,这就需要一个外部的授权机制来解决它。另外相关的问题是能否 高度灵活的来应对多样化的资源,能否动态、透明的改变访问控制参数以及能否 依据对象信息自动的制定访问条件等。 在分布式系统中的授权往往是依赖于传统的访问控制管理模式,而这种方式 有很多明显的缺点如不能有效的应对安全性攻击和容错、请求处理易造成瓶颈从 而降低系统性能以及不能在不同种类的用户组中很好的使用多种访问控制机制 等等。而分布式访问控制的授权方式由于不能提供分布式对象系统所需的灵活性 和可管理性也是一个大问题。为了解决这个问题,可以使用属性证书( a t t r i b u t e c e r t i f i c a t e s ) “1 ,它是一种包含用户权限标准化的独立数据对象类型。 然而属性证书和p m i 的使用也不能完全解决所有的问题。在多数分布式计算 环境下需要应用层访问控制。1 ,这是因为一些授权决策是基于应用特定域上( 应 用程序可以控制调用应用程序的对象或主体实施自己的访问策略以控制谁能调 用应用程序) 。而把授权逻辑嵌入应用程序的方法不能促进协同能力,同时会增 加人为出错的机会和加大安全管理的开支。因此,当同时考虑安全性、扩展性和 协同能力时,最好的解决方法是将属性的证明同访问控制分开,这样访问控制系 统就会需要一个外部的组件来提供属性证明的功能。同时,针对应用层访问控制, 基于c o r b a 标准的资源访问决策( r a d ) 工具提供了比c o r b a s e c 更强大的功 能。所以,将资源访问决策( r a d ) 和权限管理基础设施( p m i ) 这两个外部访 问控制工具集成极大的解决了上述提出的普遍问题。 另外剩下的就是关于在分布式系统中安全策略的管理问题。实际上,在拥有 很多对象的大型复杂的系统当中正确的管理安全策略是非常困难的。为了解决这 个问题,我们对被访问资源的语义信息进行扩展使用以及定义允许模块化、参数 化和策略动态分配的访问控制语言。 1 2 论文所做的工作及创新点 论文所做的最主要工作是通过使用改良的r a d 技术将外部的p m i 服务集成到 c o r b a 应用。r a d 采用对c o r b a 对象透明的方式从p m i 请求并验证属性证书,这 种使用p m i 授权服务的方式可以使系统有更好的扩展性。同时,模型考虑了不同 应用访问策略的实效性,通过对策略的采用语义描述增强了原有的r a d 工具的功 能实现了细粒度的应用层访问控制。 另外,对p m i 授权服务的语义描述也促成了p m i 和r a d 的集成,这种方法也 可以被应用到其他中间件系统,其中心思想对诸如网络服务、网格计算等分布式 系统应用也是很有价值的。 安全策略管理的问题也是本文解决的重要内容。对被访问资源的语义信息的 扩展使用以及定义具有表达力的访问控制语言是本文所提出的解决方案。它和属 性证书的使用实现了策略的模块化定义以及策略对被访问资源对象的动态定位。 另外,在模型中提供了一系列工具可以帮助安全管理员对策略进行语义和上下文 的检查,以便更好的管理策略。 这样,通过对策略、被访问资源和授权进行细致、有针对性的语义描述,就 可以在c o r b a 环境下实现既能满足应用层访问控制又实现了授权逻辑同应用逻辑 分离的一个灵活访问异构资源,动态、透明的改变访问控制参数,集安全性、扩 展性和协同性于一体的访问控制模型。 1 3 论文结构 本论文共分六章: 第一章:绪论。首先简要介绍了本课题的背景,说明了本人在课题所做的实 际工作和进行的理论研究,最后列出了本论文的组织结构。 第二章:分布式对象技术和c o r b a 体系结构。主要介绍分布式对象技术、c o r b a 体系结构产生的背景,c o r b a 规范的一些重要概念。 第三章:c o r b a 安全。首先介绍安全性的相关概念:接着把对象安全性与普通 安全性作比较,分析对象安全性的复杂性及解决之道;最后简要地介绍了c o r b a s e c u r i t y 规范。 第四章:访问控制。本章首先介绍了与访问控制相关的认证和授权的概念及 在c o r b as e c u r i t y 下相应的实现方式;然后分析了c o r b a s e c u r i t y 中访问控制 模型的具体相关细节。 第五章:x m l r d f 技术。本章详细介绍了瑚l 、模式语言d t d 和s c h e m a 以及 资源描述框架r d f 与元数据。为访问控制模型中策略管理语言提供了依据。 第六章:本章在前面诸章理论准备的基础上,提出基于c o r b a 的改良控制模 型的解决方案。首先给出了r a d 工具在应用层访问控制和授权逻辑与应用逻辑方 面的特点,然后分析了属性证书在分布式应用下的可能性。最后通过针对r a d 工 具进行技术上的改进将p m i 集成到c o r b a 下建立了p m i - r a d 模型。随后通过例子 对模型的各个模块、工作流程以及系统实现做了详细介绍,最后总结了本模型的 特点。 第二章分布式对象技术和c o r b a 体系结构 2 1 分布式系统概述 2 1 1c ii e n t s e r v e r 结构 p c 机的出现使基于大型机的单一结构受到强烈冲击,c l i e n t s e r v e r 结构浮出 水面,应用结构有了戏剧性的提升。和原有系统不同的是,不必再由服务器来完 成所有处理,c l i e n t s e r v e r 结构的应用允许部分处理由p c 机完成。和c l i e n t s e r v e r 同时出现的是u n i x 服务器,因为这个时候服务器要做的处理少了好多,它就不 必具备大型机那么超强的处理能力,使用这些基于u n i x 系统的服务器就更经济。 c l i e n t s e r v e r 结构的出现鼓励一些部门配置、管理它们自己的服务器,这样它们 在开发自己的应用时可以与它们自己的特定需求紧密挂钩,而不必像原来那样考 虑到太多与自己无关的因素。3 。 典型的c l i e n t s e r v e r 应用会把组件分布化,我们会发现一个系统中数据库在 服务器上( 可能是u n i x 服务器或大型机) ,用户接口在客户机上,商业逻辑可 能在服务器上,也可能在客户机上,或者两个上面都有。 c l i e n t s e r v e r 结构在许多方面都算得是革命性的,它解决了基于大型机应用 中的弊病,但它并不是完全的白玉无暇,比如说:数据访问功能( 如嵌入式数据 库查询) 和商务逻辑通常是包含与客户组件中的,任何商务逻辑、资料访问层的 改动,或者只是数据库本身的改动,都需为该应用的所有用户重新安装、配置新 的客户端组件,通常情况下,这样的改动都会肢解老板本的客户端应用,从而导 致应用的脆弱性。 传统c l i e n t s e r v e r ( 现在一般称之为“双层”c l i e n t s e r v e r ) 的这些问题可以 由多层c l i e n t s e r v e r 来解决。理论上讲,一个应用可以分成任意层,但最为常见 的结构是三层,它把系统分为三个逻辑层:用户接口层、商务逻辑层和数据访问 层。 多层c l i e n t s e r v e r 结构中层与层之间的绝缘性很好,大大地提高了应用的健 壮性。用户接口层只和商务逻辑层通信,而不会直接和数据访问层打交道。同时, 商务逻辑层一边和用户接口层通信,在另一边又和数据访问层通信。也就是说, 对数据访问层的修改不会影响到用户接口层,因为它们是相互绝缘地。这种结构 使得在修改应用时能尽量少的修改客户组件。 多层c l i e n t s e r v e r 结构与传统结构相比,把应用拆分成更多组件,使配置应 用的工作变得更为方便。例如:一个三层结构的系统中,商业逻辑层和数据访问 层虽然被分成不同的逻辑个体,却可以放置于间一台机器上,同样,也可以把每 个服务组件放到不同的机器上。事实上,单个应用中可以创建多个逻辑组件,以 实现一个健壮、易升级的应用。 2 1 2 分布式对象系统 紧接着应用结构进化到分布式系统模型。由多层c l i e n t s e r v e r 的概念很自然 地就导出了这种结构:分布式系统模型只是简单地把应用的所有功能划归为对 象,而不是如c l i e n t s e r v e r 中那样分为商务逻辑和数据访问模块。分布式系统中 的每个对象可以调用同一个系统中( 甚至是另一个系统中) 其他对象提供的任何 服务。该结构抹去了“客户”和“服务器”之间的严格界限,客户组件也可以创 建有服务功能的对象n ”。 分布式系统结构中使用明确的组件接口定义,从而大大提高了系统的灵活 性。组件接口向其他组件声明本组件提供哪些服务,它们又该如何使用。只要一 个组件的接口保持不变,则无论它的具体实现细节如何修改,都不会影响到其他 组件。例如:一个为某个公司提供管理信息的组件可以把这些信息存放于一个关 系数据库中:系统使用过程中,由于需求的改变,应用的设计人员觉得在该系统 中使用面向对象的数据库会更合适。他可以对该组件的实现作任意的修改,只要 接口定义不变,系统中原有的其他组件都不会感觉到它的变化。 接口中定义的是系统中两个不同组件相互通信时的通信协议。( 理论上讲, 这些组件几乎可以是任何东西,如不同的进程,不同的对象,某个用户或某个应 用任何需要相互通信的个体) 接口描述一个组件提供什么样的服务以及调用 这些服务的约定。对于一个对象而言,接口可以看作是对象定义的所有方法的集 合,包括方法的输入、输出参数。从某种意义上讲,一个接口可以看成是一个约 定,组件单方面承诺会满足对其接口中定义的所有服务的调用。 分布式系统是真正的多层c l i e n t s e r v e r 系统1 ,其中严格意义上的客户和服 务器的个数理论上讲可以是无限大。一个很重要的区别在于分布式系统总是提供 额外的服务,如目录服务:组件通过该服务定位,并找到其它组件。 总之,商业应用经历了从古板的单一结构到非常灵活的分布式结构的进化过 程,这样的发展过程中,组件接口定义和应用的可升级使应用结构更健壮。 2 1 3c o r b a 应运而生 上述商业应用结构进化的过程中,还没有提及c o r b a ,那么c o r b a 算是 什么结构呢? 前面提到,分布式系统依赖于组件间接口的定义和系统提供的服务 ( 比如目录注册及搜索) 。c o r b a 提供一种定义组件间接口的标准机制,同时还 包括一些工具,它们帮助用户使用特定的语言实现上述接口“”。另外o m g ( o b j e c t m a n a g e m e n tg r o u p ,对象管理组,负责规范、改进c o r b a 的国际非盈利组织) 规范了大量的标准服务,如:目录和命名服务,永久对象服务,事务服务。这些 服务的定义完全符合c o r b a 规范,因此所有c o r b a 应用都可以使用它们。当 然c o i 出a 的能耐还远不止于此,c o r b a 区别于普通分布式系统的两个最显著 的特性是平台无关性和语言无关性。平台无关性意味着c o r b a 对象在任何装有 c o i m ao r b 的平台上都能运行。语言无关性意味着c 0 砌j a 服务和客户可以用 任何语言实现,一个c o r b a 对象无需知道正与自己交谈的另一个c o r b a 对象 是用什么语言实现的。 o m g 成立于1 9 8 9 年,1 9 9 0 年它就推出了c o r b a l 0 规范,紧接着1 9 9 1 年 c o r b a l 1 面世,其中新定义了i d 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 ) 和应用、o r b 之间通信的a p i 。在对象协同工作能力方面,c o r b a l x 版本迈出了关键的一步, 允许不同机器上、基于不同结构、用不同语言编写的对象相互会话。 c o r b a l x 并不是一个完整的规范,虽然它提供了i d l 和应用访问o r b 的 标准,却同时存在着一个致命的缺陷:没有定义不同o r b 交互的标准协议。这 样,一个厂商提供的c o r b ao r b 就不能与来自另一厂家的o r b 交谈,大大限 制了分布式对象之间的协同合作。如果不能很好解决这个问题,c o r b a “规范” 就是一纸空文。1 9 9 4 年1 2 月份,c o r b a 2 0 发布,它的主要成就就是定义了不 同o r b 交互的标准协议:i i o p ( i n t e m e ti n t e r - o r bp r o t o c 0 1 ) ,任何要开发符合 c o r b a 2 0 标准的o r b 的厂商都必须提供这个协议的具体实现。本质上讲,i i o p 确保了不同厂商的o r b 可以很好地合作,以使c o r b a 应用做到与厂商无关。 2 2c o r b a 技术概览 要设计实现分布式应用,c o r b a 当然不是唯一的选择,我们还可以由其它 机制,比如s o c k e t 编程、r p c 、d c e 、d c o m 及j a v ar m i 等,这些机制都有各 自的优势,然而终有其狭隘性。c o r b a 不同于一般分布式对象结构之处在于其 平台无关性和语言无关性。下面在概念层次上就c o r b a 技术作简单的介绍。 2 2 1 平台无关性和语言无关性的实现 2 2 1 1o r b 平台无关性的确切含义是客户和服务器可以工作于不同的操作系统上, 6 c o r b a 中的o r b ( o b j e c t r e q u e s t b r o k e r ,对象请求代理) 使平台无关性成为可 能。 当某个应用组件想使用另一组件提供的服务时,它首先必须得到提供该服务 的对象的引用( o b j e c tr e f e r e n c e ) ,得到这个对象引用后,该组件就能调用那个 对象的方法、访问对象提供的服务。o r b 的主要任务就是帮忙找到特定远程对象 的对象引用,在对象组件之间建立链接。 一旦组件得到另一对象的对象引用,它就能调用该对象的方法,通常,这些 方法带有输入、输出参数。o r b 的另一责任就是从调用该方法的组件中获得输入 参数,并对这些参数进行调度,也就是把这些参数翻译成一定的格式( 有时称为 “在线格式”) ,使其可以从网络中传送到远程对象;o r b 还要负责返回参数的 “反调度”;把它们从在线格式转换成调用组件自己能理解的格式。整个调度、 反调度的过程无需程序员的干预。客户应用只是简单地调用某个想调用的远程方 法在c l i e n t 看来,它就像是一个本地方法一调用结束时,也会像本地方法 样,返回一个结果。从调度输入参数、初始化服务器上的方法调用,到“反调 度”返回参数,这整个过程都由o r b 自动、透明地完成,c l i e m 和s e r v e r 对此毫 不知情。因此开发人员无需去注意调度和反调度的机制,这无疑简化了c o r b a 应用的开发。 调度和反调度过程中,参数被转换成平台无关的格式传输出去( c o r b a 中 包含有在线格式的定义) ,而在接收时,再转换到特定平台支持的格式,所以调 度、反调度的最突出成就就是实现了组件间通信的平台无关性。这就意味着一个 运行于m a c i n t o s h 系统上的客户程序能调用一个u n i x 系统上的服务程序的方法。 2 2 1 2i d l 如果说o r b 算得上是c o r b a 结构的一个基石的话,i d l 就得算是另一个。 i d l ( i n t e r f a c e d e f m i t i o n l a n g u a g e ) ,顾名思义,是定义应用组件间接口的语言。 值得注意的是i d l 不属于编程语言,它只能用于定义接口,而不能实现它。c + 十 程序员可以把i d l 定义的内容( 就是接口) 想象成类似于类的头文件。典型的头 文件只描述类的接口,是不会包含有类的任何实现细节的。j a v a 程序员可能把i d l 定义的接口想象成和j a v a 中的接口差不多。 i d l 是标准c o r b a 规范的一部分,独立于任何编程语言。它通过语言映射 ( l a n g u a g em a p p i n g ,说明如何把i d l 语言结构映射至u 特定的编程语言的结构) 的方式实现语言无关性。o m o 为许多通用的语言定义了标准的语言映射,包括c 、 c + + 、c o b o l 、j a v a 及s m a l l t a l k 。 语言无关性是c o r b a 的一个非常重要的特性。c o r b a 并没有指定使用某 门特定的语言开发c o r b a 应用,这就给应用开发人员很大的自由度,由他们根 据应用的实际需要来选择最合适的语言;同样的,他们甚至可以用多种语言来开 发c o r b a 应用。举个例子,某应用的客户组件可能是用j a v a 实现的,而为了使 服务器组件获得更好的性能,可能用c + + 来开发它。c o r b a 使得用不同语言实 现的组件之间的交流成为可能。 z z 1 3b o a 为了便于o r b 的实现,c o r b a 中又有对象适配器的概念。在c o r b a 中, 对象适配器可作为服务程序和o r b 之间的纽带,正像适配器设计类型所说明的 那样,一个对象适配器是一个对象,它将一个对象接口配置给调用程序所需要的 不同接口。也就是说,一个对象适配器是一个插入式对象,它用来作为代理,允 许调用程序在不知道对象实际接口情况下调用一个对象的请求。c o r b a 对象适 配器满足下面三项基本要求:它们创建允许客户机对对象寻址的对象引用;它们 确保每个目标对象都应由一个服务程序来具体化;它们获取由一个服务器端的 o r b 所调度的请求,并进一步将请求直接传送给已具体化为目标对象的服务程 序。如果没有对象适配器,o r b 将不得不直接提供这些特性以及所有其它的责任。 它将会有一个非常复杂的接口,这将给o m g 的管理带来很大的困难,并且会限 定可实现的服务程序实现方式。 b o a ( b a s i co b j e c ta d a p t e r ) 为c o r b a 对象提供了一些常用的方法来访问 o r b 功能。根据c o r b a 规范说明,每个o r b 实现中都该有b o a ,事实确实如 此,几乎所有的c o r b a 产品都提供有b o a 。 c o r b a 2 2 版引入了可移植的对象适配器( p o r t a b l eo b j e c ta d a p t e r ,p o a ) 来取代b o a 。因为可移植的对象适配器强调,在维护应用程序的可移植过程中, 应确保c o r b a 对象和与编程语言有关的服务程序能够完全交互,所以p o a 规范 的性能远比b o a 来的优越。 2 2 2c o r b a 通信模型网络协议无关性 c o r b a 标准中的o i o p ( g e n e r a li n t e r - o r bp r o t o c 0 1 ) 给出了不同c o r b a o r b 和组件间通信的标准。g i o p ,顾名思义,只是一个广义协议;c o r b a 标准 还给出了一些附加协议。让g i o p 使用特定的网络传输协议,如基于g i o p 的使 用t c p i p 和d c e 的协议。此外,厂家还可以定义并使用自己的协议。 最最流行的基于g i o p 的协议是适用于t c p i p 网络的i i o p ( i n t e r a c t i n t e 卜o r bp r o t o c 0 1 ) 。c o r b a 2 0 规范中包含有i i o p ,每个符合该规范的产品就 得使用同一种语言,这就要求各厂商要实现i i o p ,这个要求能够确保不同厂商的 c o r b a 产品能很好地合作。当然还有其它o r b 间通信的协议,但i i o p 很快就 成为最受欢迎的,首先因为它是标准,另一方面,它面向的协议是t c p f i p ,目前 最流行的网络协议。就c o r b a 标准而言,它是与网络协议无关的,至少从理论 上讲它可以运行于任何类型的网络协议之上。 2 2 3c o r b a 对象模型 每个面向对象结构都要给出一个对象模型,它描述系统中如何表示对象。 c o r b a 是面向对象的结构,当然也有自己的对象模型。c o r b a 同时又是分布式 结构,因此它的对象模型与我们熟悉的传统对象模型( 如c + + 、j a v a 的对象模型) 会有一定的差别。其中的最主要的三个差别是:c o r b a 对对象分布的“半透明” 支持,对对象引用的处理,以及使用对象适配器( o b j e c t a d a p t e r ) 尤其是基本对 象适配器( b a s i co b j e c t a d a p t e r ,通常称之为b o a ) 。 对于一个c o r b a 客户而言,一个远程方法的调用看上去就像是本地调用( 这 得归功于客户桩) ,远程对象的分布特性对于客户来说就是透明的;客户根本不 知道自己正在跟一个分布在网络上的远程对象打交道。 在一个分布式应用中,某应用组件想访问另一进程中的某个对象时,可能有 两种方式:一种方式是通过引用传递。这种方式中,进程a 把某个对象的引用传 递给进程b ,进程b 调用该对象的方法时,由进程a 来执行该方法,因为它拥有 该对象( 对象存在于进程a 的内存和进程空间中) ,进程b 只是能够看到它并请 求进程a 代替它执行方法而已。第二种方式是通过值传递对象,在这种方式中, 对象的实际状态( 诸如成员变量的值) 被传到发出请求的组件。当进程b 调用对 象的方法时,执行它们的是进程b 而不是进程a 。原始对象还呆在进程a 中。此 外,因为对象是通过值传递的,原始对象的状态并不会改变,被修改的只是它的 拷贝( 由进程b 拥有) 。通常开发人员要负责编写代码以完成值传递对象的工作。 c o r b a 对象模型一个重要概念是所有对象都是通过引用传递的( 不久的将 来,o m g 会考虑在c o r b a 标准中加上值传递的功能) 。对于一个使用值传递的 分布应用,把对象的状态通过网络传递出去之外,接收方还得为该对象的方法提 供方法的实现,这一点对于引用传递是没有必要的。 2 2 4 一个c o r b a 请求、响应的过程 通常在一个c l i e n t s e r v e r 应用中,服务器是一个组件( 或多个组件) ,它为应 用中其它组件提供服务;客户是指使用服务器提供的服务的组件。c o r b a 比传 统c l i e n t s e r v e r 结构先进的地方在于:它提供了c l i e n t s e r v e r 的灵活性:也就是 一个c l i e n t 也可以是另一个c l i e n t 的s e r v e r ,角色是不固定的。一个组件可以具 有双重人格:即是客户又是服务器“。 客户机通过发送消息来控制对象,每当客户机调用一个操作时,o r b 发送一 个消息给对象。为了发送一个消息给对象,客户机必须拥有该对象的对象引用。 o r b 定义了客户方程序和对象实现间静态和动态两种调用方式。 2 2 4 1 桩和框架 开发者用i d l 写好一个组件接1 2 1 的定义后,用i d l 编译器处理它。i d l 编译 器将生成客户桩和服务框架( s t u b sa n ds k e l e t o n s ) 。客户桩和服务框架充当胶水 的角色,把语言无关的i d l 接口与特定语言的实现代码粘接起来。接口的客户桩 提供给要使用接口的客户,它包含的实际是接口中所有方法的虚拟实现,虚拟实 现的确切含义是,客户桩中提供的方法并不是真的执行服务功能,只是简单的和 o r b 进行交互,完成参数调度和反调度的工作。桩通过与客户方程序一起连编, 把客户应用和o r b 连接起来,使得客户调用远程对象就像调用本地对象或本地 函数一样。 同样的,服务框架提供的是一个框架,服务器就在其基础上创建,对于每个 接口中的方法,i d l 编译器为其在服务框架中生成一个空的方法,由开发者编码 完成具体的实现。服务框架对用户请求进行译码,定位所请求的对象的方法,执 行该方法,并把执行结果或异常信息编码后发送回客户。 2 2 4 2 动态调用接口d i i 与动态构架接口d s i d i i ( d y n a m i c i n v o c a t i o ni n t e r f a c e ) 为客户提供了动态调用方式,d s i ( d y n a m i c s k e l e t o ni n t e r f a c e ) 为服务提供了动态实现方式,客户预先不知道服务对象的接口 信息时,需要通过查询或其它手段获取服务对象的接口描述信息,然后利用d i i 动态调用o r b 核心接口的方法来构造客户请求并发送到对象实现;对象实现可 以使用d s i 动态分发用户请求的机制,以便动态地处理客户方的请求。 2 2 4 3 请求调用的过程 当一个客户要使用某个对象实现所提供的服务时,其操作步骤大致如下:客 户通过某种方式找到特定对象实现的对象引用:如果该客户程序有相应的i d l 桩, 则客户可以通过该i d l 桩向对象实现发送请求,否则,在接1 :1 库的协助下,客户 可以使用动态调用接1 2 1 来向对象实现发送请求;当对象调用请求通过i d l 桩或动 态调用接口到达o r b 核心以后,o r b 核心负责请求的传送,将其送给相应的对 山东大学硕士学位论文 象适配器,其具体的请求传递方式由o r b 的具体实现决定;对象适配器接到请 求后,判断一下所请求的对象实现是否有i d l 构架存在,如果有,则对象适配器 通过i d l 构架调用执行对象实现中的操作,否则,对象适配器将通过d s i 中的动 态实现例程来调用对象实现中的操作;对象实现的特定操作执行完成后,结果将 按照对象请求传递和执行路径逆向返回给客户对象。 第三章c o r b a 安全 现代商务依赖于信息技术。企业系统之间内部网和公用的i n t e m e t 相连。雇 员通过各种接口( 内部的和公用的) 来访问公司数据。顾客通过基于1 1 1 t c m e t 的 电子商务系统购买商品,通过在线银行服务进行金融业务。既然信息在今天是如 此的关键,那么又该如何保护这种重要的财富呢? c o r b a 服务提供了对信息资源进行访问的能力“”,通常是

温馨提示

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

评论

0/150

提交评论