网络计算分布式对象计算.ppt
《网络计算分布式对象计算.ppt》由会员分享,可在线阅读,更多相关《网络计算分布式对象计算.ppt(273页珍藏版)》请在三一办公上搜索。
1、第2章 分布式对象计算,2.1 三种典型的分布式对象技术 2.2 CORBA简介 2.3 CORBA的基本结构 2.4 ORB间互操作性 2.5 CORBA服务和CORBA公共设施 2.6 CORBA编程 2.7 CORBA发展趋势 2.8 CORBA3 的新特性,2.1 三种典型的分布式对象技术,目前主要的分布式对象计算互操作标准有OMG组织的CORBA标准、Microsoft公司的COM/DCOM标准和Sun公司的Java EJB。,CORBA是三者中出现最早的标准。1991年OMG颁布了COBRA 1.0标准;从最初的COM发展成现在的DCOM及COM,Microsoft形成了一套分布式
2、对象的计算平台;而Sun公司的Java平台,在其最早推出时,只提供了远程的方法调用,在当时并不能被称为分布式对象计算,只是属于网络计算里的一种。接着推出的JavaBean,也还不足以和上述两大流派抗衡。其目前的版本J2EE中推出了EJB,其中除了语言外还有组件的标准以及组件之间协同工作通讯的框架。于是,也就形成了目前的三大流派。,COBRA标准主要分为3个层次:对象请求代理、公共对象服务和公共设施。最底层是对象请求代理(ORB,Object Request Broker),规定了分布式对象的定义(接口)和语言映射,实现对象间的通讯和互操作,是分布式对象系统中的软总线;在ORB之上定义了很多公共
3、服务,可以提供诸如并发服务、名字服务、事务(交易)服务、安全服务等各种各样的服务;最上层的公共设施则定义了组件框架,提供可直接为业务对象使用的服务,规定业务对象有效协作所需的协定规则。,总之,CORBA的特点是大而全,互操作性和开放性非常好。目前CORBA的最新版本是3.0,增加了有关Internet集成和传输质量控制等内容。CORBA的缺点是庞大而复杂,并且技术和标准的更新相对较慢,COBRA规范从1.0升级到2.0所花的时间非常短,而再往上的版本的发布就十分缓慢了。,相比之下,Java标准的制定就快得多,Java是Sun公司自己定的,演变得很快。Java的优势是纯语言的,跨平台性非常好。J
4、ava分布式对象技术通常指远程方法调用(RMI,Remote Method Invoke)和企业级JavaBean(EJB,Enterprise Java Beans)。RMI提供了一个Java对象远程调用另一Java对象的方法,与传统RPC类似,只能支持初级的分布式对象互操作。Sun公司基于RMI,提出了EJB。基于Java服务器端组件模型,EJB框架提供了像远程访问、安全、交易、持久和生命期管理等多种支持分布式对象计算的服务。目前,Java技术和CORBA技术有融合的趋势。,COM技术是Microsoft独家做的,是在Windows 3.1中最初为支持复合文档而使用的OLE技术上发展而来的
5、,经历了OLE 2/COM、ActiveX、DCOM和COM等几个阶段,目前COM把消息通讯模块MMQS(Microsoft Message Queue Server)和解决关键业务的交易模块MTS(Microsoft Transaction Servervice)都加进去了,是分布式对象计算的一个比较完整的平台。Microsoft的COM平台效率比较高,同时它有一系列相应的开发工具支持,应用开发相对简单。,但它有一个致命的弱点就是COM的跨平台性较差,如何实现与第三方厂商的互操作性始终是它的一大问题。从分布式对象技术发展的角度来看,普遍认为COM竞争不过COBRA。在这种情况下,2002年M
6、icrosoft推出了.NET,很好地解决了跨平台性和语言互操作性问题。下面从对象模型、对象总线、对象服务及其他方面比较COM/DCOM和CORBA在实现上的异同。,1对象模型 CORBA基于经典对象模型,支持多继承、封装和多态;而COM/DCOM基于对象,只支持封装机制,并不支持IDL描述的多继承。COM组件可以支持多个接口,并可以通过封装内部组件的接口和将它们展示给客户来实现复用,即COM通过包含、代理和聚合而不是继承实现对象复用。CORBA通过事件服务支持发送接口;COM则通过可链接对象支持发送接口。,CORBA和COM的对象实例都具有全局惟一ID。CORBA的运行对象具有惟一的引用,而
7、COM则没有对象引用的概念,所有客户程序不能在运行时重新链接相同的对象,若要重新链接相同的对象,则需要通过Moniker机制来实现。CORBA的组件可以是黑盒也可以是白盒,白盒可以通过继承补充;而COM的组件只能是黑盒的。,2对象总线 CORBA和COM对象总线都支持本地和远程的静态方法调用。CORBA总线支持本地和远程的动态调用;COM通过IDispatch支持本地的动态调用,DCOM支持远程的动态调用。CORBA和COM都将对象的接口和实现分离,并要求所有接口由接口定义语言描述。它们的接口都是客户与服务器之间的协定,都支持跨地址空间的函数调用。COM的IDL是DCE IDL的扩展,而COR
8、BA的IDL则完全基于OMG IDL。,CORBA IDL是语言中立的,提供客户和服务器的语言映射,已有C、Java等多种语言映射;在语法上,CORBA IDL类似于C的声明,但它不是C的;且CORBA IDL没有指针类型。COM IDL不是语言中立的,COM只是进程间通信的二进制互操作标准,不提供语言映射;COM IDL支持包括指针和基于指针数据的结构在内的所有C的数据类型;COM IDL没有定义能够被所有目标语言访问的一组通用的数据类型。,CORBA的对象总线使用接口库来管理和维护IDL元数据信息,可以在本地或远程访问。COM的接口库是类型库,只能在本地访问。COM的实现库是Windows
9、的注册库。CORBA和COM对象总线都支持组件的封装。,3对象服务 CORBA规范了名字、事件、生命期、持久对象、事务、并发控制、关系、外表化、查询、许可、属性、时间、安全等多个对象服务,多数已经实现。COM目前已经支持名字、事件、持久、生命期、流、许可和特性等服务。此外,COM还支持CORBA所没有的垃圾回收服务。,4其他 CORBA在技术的完整性和先进性上要优于COM/DCOM。对于含有大量定制式应用系统的分布式计算环境,选用CORBA技术和标准支持应用系统较为合理。COM/DCOM的发展历程是先有主导产品后成为标准。Microsoft以其庞大的用户群和应用开发商来左右组件标准,其标准具有
10、实用性强等特点,产品具有较好的一致性,因此在Windows平台上采用COM/DCOM技术实现分布式组件是用户的首选。,COM/DCOM提供了核心的安全和验证机制,但配置客户端的DCOM和让DCOM透过防火墙相当麻烦。而CORBA提供了系统性的安全策略,规范了识别、验证和安全审计等多种安全机制。CORBA是一个跨平台的开放式标准,配置比DCOM方便。CORBA本身的负载均衡、名字服务和事件服务可以让开发者构建更稳定和扩展性更强的分布式系统。目前经常谈到的分布式对象技术主要就是这三种,COM和EJB的模型、规范、标准和实现可以参考有关书籍。,2.2 CORBA简介,2.2.1 CORBA的产生 公
11、共对象请求代理体系结构(CORBA,Common Object Request Broker Architecture)是由对象管理组织(OMG,Object Management Group)提出的应用软件体系结构和对象技术规范。,对象管理组织(OMG)成立于1989年,作为一个非营利性的组织,一直致力于开发在技术上具有先进性、在商业上具有可行性并且独立于厂商的软件互联规范,推广面向对象模型技术,增强软件的可移植性(Portability)、可重用性(Reusability)和互操作性(Interoperability)。该组织成立之初,成员包括Unisys、Sun、Cannon、Hewle
12、tt-Packard、Philips等在业界享有声誉的软硬件厂商,目前该组织拥有800多家成员。,OMG成立后不久就制定了对象管理体系结构(OMA,Object Management Architecture)参考模型,该模型描述了OMG规范所遵循的概念化的基础结构。OMA由对象请求代理(ORB)、对象服务、公共设施、域接口和应用接口这几个部分组成,其核心部分是对象请求代理(ORB)。对象服务是为使用和实现对象而提供的基本服务集合;公共设施是向终端用户应用程序提供的一组共享服务接口;域接口是为应用领域服务而提供的接口;应用接口是由开发商提供的产品的接口,不属于OMG标准的内容。ORB提供了一种
13、机制,通过这种机制,对象可以透明地发出请求和接收响应。分布的、可以互操作的对象能够利用ORB构造应用。,ORB可看作是在对象之间建立客户/服务关系的一种中间件。基于ORB,客户可以透明地调用服务对象提供的方法,该服务对象可以与客户运行在同一台机器上,也可以运行在其他机器上通过网络与客户进行交互。ORB接收客户发送的请求,并负责在该软件总线上找到实现该请求的服务对象,然后完成参数、方法调用,并返回最终结果。,CORBA的发展历程为(1)1990年11月,OMG发表对象管理体系指南,初步阐明了CORBA的思想。(2)1991年10月,OMG推出1.0版,其中定义了接口定义语言(IDL)、对象管理模
14、型以及基于动态请求的API和接口仓库等内容;1991年12月,OMG推出了CORBA 1.1版,在澄清了1.0版中存在的二义性的基础上,引入了对象适配器的概念,定义了IDL接口定义语言,开发出对象请求代理(ORB)中间件,在客户机/服务器结构中,ORB通过一定的应用程序接口(API),实现对象之间的交互。,(3)1994年12月OMG完成了CORBA2.0,提出了对象请求代理间协议(IIOP,Internet Inter-ORB Protocol),用以规范不同厂家的ORB之间的真正互通,同时增加了互操作性和对C及SmallTalk的匹配,OMG期望通过上述规范建立一种“连接世界的体系结构”。
15、(4)1996年8月,OMG基于以前的升级版本,完成了2.0版的开发,该版本中重要的内容是IIOP的引入,用以实现不同厂商的ORB真正意义上的互通。,(5)1998年9月,OMG发布了CORBA 2.3版,增加了支持CORBA对象的异步实时传输、服务质量规范等内容。目前,宣布支持CORBA 2.3版规范的中间件厂商包括Inprise(Borland)、Iona、BEA System等著名的CORBA产品生产商。(6)2001年9月,OMG发布了CORBA2.5版,在这个版本中,加入了一些新的内容,包括CORBA容错(Fault Tolerant CORBA),实时CORBA(Real-Time
16、 CORBA),并修改了部分CORBA Messaging和Portable Interceptors的内容。,(7)2001年12月,OMG发布CORBA2.6版,在2.5版的基础上新增了一章“Secure Interoperability”,并对部分内容作了修改。(8)最新版本是2002年9月发布的CORBA 3.0版。,2.2.2 什么是CORBA 随着互联网技术的日益成熟,公众及商业企业正享受着高速、低价网络信息传输所带来的高品质数字生活。但是,由于网络规模的不断扩大以及计算机软硬件技术水平的飞速提高,给传统的应用软件系统的实现方式带来了巨大挑战。CORBA已经被证实是近年来网络技术发
17、展中最重要的革新之一,它致力于解决当前信息系统存在的两大难题:难于快速集成现有软硬件系统和新的应用;开发客户/服务器程序困难。,首先,在企业级应用中,硬件系统集成商基于性能、价格、服务等方面的考虑,通常在同一系统中集成来自不同厂商的硬件设备、操作系统、数据库平台和网络协议等,由此带来的异构性给应用软件的互操作性、兼容性以及平滑升级能力带来了严重问题。另外,随着基于网络的业务不断增多,传统的Client/Server模式的分布式应用方式越来越显示出在运行效率、系统网络安全性和系统升级能力等方面的局限性。,为了解决DCE中不同硬件设备和软件系统的互联,增强网络间软件的互操作性,解决传统分布式计算模
18、式中的不足等问题,对象管理组织提出了公共对象请求代理体系结构,以增强软件系统间的互操作能力,使构造灵活的分布式应用系统成为可能。正是基于面向对象技术的发展和成熟、客户/服务器软件系统模式的普遍应用以及集成已有系统等方面的需求,推动了CORBA技术的成熟与发展。作为面向对象系统的对象通信的核心,CORBA为当今网络计算环境带来了真正意义上的互联。,CORBA是一个分布式对象技术的规范,它是针对多种对象系统在分布式计算环境中如何以对象方式集成而提出的,它为对象管理定义了一个对象模型OMG参考模型(OMG Reference Model)及其框架结构。该模型由ORB、对象服务、公共设施、领域接口及应
19、用对象等5个主要部分组成。该模型及其框架结构将面向对象技术与客户/服务器计算模式结合起来,有效地解决了对象封装和分布式计算环境中资源共享、代码可重用、可移植以及应用间的互操作性等问题。从最顶层来看,CORBA规范指的是对象管理结构(OMA,Object Management Architecture),该结构如图2.1所示的5部分组成。,图2.1 OMA参考模型,(1)对象请求代理(ORB)。ORB是CORBA的核心,它路由OMA结构中其他部件之间的请求,起到对象通信“软总线”的作用。ORB是构建分布式对象应用、在异构或同构环境下实现应用间互操作的基础。(2)CORBA对象服务。CORBA对象
20、服务(Object Services)是为使用和实现对象而提供的基本服务集合。在构建任何分布式应用时经常会使用到这些服务,而且这些服务独立于应用领域。例如生命周期服务定义了对象的创建、删除、拷贝和移动的方法,但它不规定如何在应用中实现这些对象。,CORBA对象服务由OMG COSS规范规定。COSS规范由一组接口(Interface)和服务行为描述构成,其接口一般使用OMG接口定义语言(IDL,Interface Definition Language)描述。目前COSS规范包括如下内容:命名服务(Naming Service)、事件服务(Event Service)、生命周期服务(Life
21、Cycle Service)、持久对象服务(Persistent Object Service)、并发控制服务(Concurrency Control Service)、外部化服务(Externalization Service)、关系服务(Relationship Service)、查询服务(Query Service)、许可服务(Licensing Service)、属性服务(Property Service)、安全服务(Security Service)和时间服务(Time Service)等。,(3)CORBA公共设施。CORBA公共设施(Common Facilities)提供了一组
22、更高层的函数,这些函数包括用户界面、信息管理等方面的通信设施,为终端用户提供一组共享服务接口,例如综合文档、系统管理和电子邮件服务等。这些服务不像对象服务那么基本。,(4)CORBA领域接口。CORBA领域接口(Domain Interface)与特定的应用领域有关,例如制造业、金融业、通信行业等,它为应用领域提供接口。目前,OMG为产品数据管理(PDM,Product Data Management)应用制定了规范。在该规范中定义了8个使能器,描述了12个功能模块及其接口,明确了PDM系统与其他应用系统之间交互的方式。(5)应用接口。应用接口(Application Interface)是由
23、销售商提供的、可控制其接口的产品,相当于传统的应用表示。OMG组织不对它们作标准化工作。应用接口位于参考模型的最高层。,2.2.3 CORBA对象模型 对象系统是一系列对象的集合,它通过精心定义的封装接口将服务的请求者(客户)和服务的提供者相分离,尤其是让客户与诸如数据的表示和可执行代码等服务的具体实现相分离。对象模型首先描述对客户有意义的概念,包括对象的产生、标识、请求和操作、类型以及特征标记(Signatures)等。其次,对象模型还要描述与对象实现有关的概念,包括方法、执行引擎和激活等。对象系统在一些概念上,做了很明确详细的规定,但对对象的实现只是建议性的,其目的在于最大程度上使用不同的
24、对象技术、方法来实现对象。,对象的语义包括对象、请求、对象的创建和删除、类型、接口及属性等。CORBA定义了一个软总线框架,制定了有标准接口的对象服务,利用CORBA我们可以集成和组合大型、复杂的分布式应用系统。CORBA对象参考模型描述了应用系统中遵循的概念化的基础结构。,1CORBA的对象参考模型 CORBA的对象参考模型的基础结构如图2.2所示。图中对象实现是指对象功能的具体实现,它将数据和施加在数据上的操作(或称为方法)捆绑在一起,封装在对象中,客户所能看到的只是对象的接口,因此对象实现的改变不会对客户程序产生任何影响。客户调用对象中的操作(或方法),首先要找到对象,即要找到该对象的对
25、象引用(Object Reference),通过组件访问方法引用对象实现。,图2.2 CORBA对象参考模型,CORBA采用接口定义语言(IDL)进行对象建模、IIOP进行客户和服务器之间通信。IIOP即因特网ORB互通协议,它是一个和其他网络协议一起运行在TCP/IP 之上的标准网络协议,使不同供应商提供的不同产品之间实现交互操作。,2CORBA的对象引用 一个应用组件通过两种机制访问另一组件中的对象:一种是通过值来传递对象,另一种是通过对象引用来传递对象。通过值传递对象机制的实现过程如图2.3(a)所示。(1)被调用的进程q将对象x本身从远端通过网络以0/1序列码的形式传递到主进程p中,建
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网络 计算 分布式 对象
链接地址:https://www.31ppt.com/p-6336032.html