分布计算环境课件_第1页
分布计算环境课件_第2页
分布计算环境课件_第3页
分布计算环境课件_第4页
分布计算环境课件_第5页
已阅读5页,还剩93页未读 继续免费阅读

下载本文档

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

文档简介

BeijingUniversityofPostsandTelecommunicationsPage1

Chapter3

面向对象的

分布计算环境

BeijingUniversityofPostsandTelecommunicationsPage2

主要内容

♦分布式系统中的面向对象技术

♦开放式分布处理ODP

♦CORBA技术

BeijingUniversityofPostsandTelecommunicationsPage3

绪论

♦OMG组织制定的一个工业规范,是一个体系结构和一

组规范。

♦目的:在分布式环境下实现应用的集成,使基于对象

的软件成员,在分布的、异构的环境下可重用、可移

植、可互操作。

■OMG的理念:不存在统一的硬件平台、不存在统一的操作系

统、编程语言、网络协议、应用模式,必须在互操作上达成

一致。

♦方法:提供一个框架,如果符合这一框架,就可以在

主要的硬件平台和操作系统上建立一个异质的分布式

应用。

♦CORBA结合了计算机工业中的两个重要趋势:面向

对象软件开发和客户机/服务器计算。

BeijingUniversityofPostsandTelecommunicationsPage4

主要内容

♦综述

♦基于CORBA的软件开发基本过程

♦RM-ODP与CORBA

♦总结

BeijingUniversityofPostsandTelecommunicationsPage5

综述

♦对象管理体系结构OMA

♦OMG的接口定义语言IDL

♦对象请求代理ORB

♦CORBA服务

♦ORB之间的互操作

♦CORBA规范

♦CORBA发展历程

BeijingUniversityofPostsandTelecommunicationsPage6

综述

♦对象管理体系结构OMA

♦OMG的接口定义语言IDL

♦对象请求代理ORB

♦CORBA服务

♦ORB之间的互操作

♦CORBA规范

♦CORBA发展历程

BeijingUniversityofPostsandTelecommunicationsPage7

对象管理体系结构OMA

薇缝缀皴法掇掇然皴绘漆修掇

]应用如对象

IApplicationObjec:s由CORBA支持的顶层业务对象鼻公用设施

和应用系统,是针对特定应用

开发的接口平公用设施

2

可用于大多数应用领域的面向

终端用户的工具接口

造水平公用设施:领域间可共享

-垂直公用设施:面向某个领域'

夕吗市程序b

基于力、加”刈豕刖万华世L

1都可能用到的通用服务的接口

an^TeieuuiiniIUInuciiiui

BeijingUniversityofPostsPage8

OMA

♦CORBA不只定义了面向对象的远程调用机制,

它还定义了不同抽象层次'盘'供了领域间共享或A

面向特定领域的服务

以面向对象的方式提供了

典型的系统级功能。

Object

facilities

Se?^ces

ORB

提供了网络编程

OS1复杂性的抽象

y

BeijingUniversityofPostsandTelecommunicationsPage9

综述

♦对象管理体系结构OMA

♦OMG的接口定义语言IDL

♦对象请求代理ORB

♦CORBA服务

♦ORB之间的互操作

♦CORBA规范

♦CORBA发展历程

BeijingUniversityofPostsandTelecommunicationsPage10

OMG接口定义语言IDL

♦仅定义接口,不定义实现

♦分隔“对象作什麽(WHAT)”与“如何

做(HOW)”

♦强类型、面向对象、语言中立的说明

(描述)型语言

♦ANSIC++的子集

♦支持多继承

♦支持到多种语言的映射

BeijingUniversityofPostsandTelecommunicationsPage11

RoleofCORBAIDL

BeijingUniversityofPostsandTelecommunicationsPage12

OMGIDL的组成要素

♦模块(module):含有许多功能进行分组的接口,形成

附加的分层结构,因此,模块定义了一个命名空间。

接口(interface):定义了数据和操作(方法),共

客户调用。接口中可以包括类型、常量、属性和异常

的声明。

♦操作(method):定义了客户可以调用的、处于对象中

的服务。操作特性(signature)指操作的参数和返

回的结果类型。

属性(attribute):接口中定义的数据。

♦数据类型:用于描述参数、属性、返回值以及异常等

的允许值。如:long,short,float,double,enum,

char,wchar>boolean,octet,any,struct,union,string,

wstring,sequence,fixed,objectreference,interface^

BeijingUniversityofPostsandTelecommunicationsPage13

OMGIDL的操作

♦操作名:

参数:in,out,inout;

♦返回结果:

♦异常:用来表示操作请求没有被成功地完成。

♦执行语义:

最多一次(at-most-once):如果操作请求能够成功地返回,

那么该操作只被执行一次(exactlyonce),如果返回异常,那

么该操作是最多执行一次(at-most-once)。没有oneway修饰符

的操作都属此类,即同步或延迟同步的操作调用方式都是这

种语义。

■最大努力(best-effort):不能返回任何结果,且请求者从不与

操作是否结束相同步。具有。neway修饰符的操作属此类。

♦上下文:请求的上下文提供了能够影响请求完成的附加的特定操

作信息。

BeijingUniversityofPostsandTelecommunicationsPage14

IDL与Java及C++的对应关系

CORBAIDLJavaC++

模块(Modu1e)包(Package)命名空间(Namespace)

接口(Interface)接口(Interface)纯抽象类(Pure

Abstractclass)

方法(method)方法(method)成员函数(member

function)

BeijingUniversityofPostsandTelecommunicationsPage15

一个实例(1)

ModuleBANK

(

InterfaceBANKAccount{

enumaccount_kind{checking,saving};

exceptionaccount_not_available{string.reason};

exceptionincorrect_PIN{};

readonlyattributefloatbalance;

attribueaccount_kindkind_of_account;

voidaccess(instringaccount,instringpin)

raises(accout_not_available,mcorrectjpin);

BeijingUniversityofPostsandTelecommunicationsPage16

一个实例(2)

voiddeposit(infloat「outfloatnew_balance)

raises(account_not_available);

voidwithdraw(infloatf,outfloatnew_balance)

raises(account_not_available);

onewayop1(ininti);

BeijingUniversityofPostsandTelecommunicationsPage17

IDL到编程语言的映射

♦定义相应编程语言所用到的数据类型的定义,如:

OMGIDLJava

shortshort

longlonglonglong

octetbyte

♦通过ORB能够进行对象访问的函数接口等。如:客户

存根接口的结构、对象适配器的结构、ORB接口的结

构等。

♦定义了对象调用和客户的控制线程之间的交互和实现,

以实现程序的控制线程和对象调用之间的同步

目前有:Ada、C、C++、Java、Lisp>COBOL>

Python、Smalltalk。

BeijingUniversityofPostsandTelecommunicationsPage18

IDL的使用

BeijingUniversityofPostsandTelecommunicationsPage19

综述

♦对象管理体系结构OMA

♦OMG的接口定义语言IDL

♦对象请求代理ORB

♦CORBA服务

♦ORB之间的互操作

♦CORBA规范

♦CORBA发展历程

BeijingUniversityofPostsandTelecommunicationsPage20

对象请求代理ORB

对象请求代理ORB(ObjectRequestBroker):

定义异构环境下对象透明地发送请求和接收响

应的基本机制。ORB为客户隐藏:

■对象位置

■对象实现方式

■对象执行状态

■对象通信机制

♦ORB并不需要作为一个单独的组件来实现。它

定义了一系列的接口,任何一种支持了该接口

的实现方式都是可行的。

BeijingUniversityofPostsandTelecommunicationsPage21

ORB体系结构

(服务器)

图3-3CORBAORB的体系结构

BeijingUniversityofPostsandTelecommunicationsPage22

主要内容

♦接口

♦对象引用

♦客户和对象实现

♦ORB核心

♦接口库和实现库

♦动态调用和静态调用

♦对象适配器

BeijingUniversityofPostsandTelecommunicationsPage23

主要内容

♦接口

♦对象引用

♦客户和对象实现

♦ORB核心

♦接口库和实现库

♦动态调用和静态调用

♦对象适配器

BeijingUniversityofPostsandTelecommunicationsPage24

接口

♦接口:

■客户程序与对象实现之间的界面,描述了客户可访

问的对象操作的一个集合;

今完全独立于对象所处的位置、实现对象的程序设计语言以

及对象接口中未反映的其他特性;

■客户程序只能通过对象的接口定义掌握对象的逻辑

结构,并通过发送请求来影响对象的行为与状态

■对象接口采用接口定义语言IDL定义;

BeijingUniversityofPostsandTelecommunicationsPage25

ORB的各种接口

(服务器)

图3-3CORBAORB的体系结构

BeijingUniversityofPostsandTelecommunicationsPage26

主要内容

♦接口

♦对象引用

♦客户和对象实现

♦ORB核心

♦接口库和实现库

♦动态调用和静态调用

♦对象适配器

BeijingUniversityofPostsandTelecommunicationsPage27

对象引用

♦对象引用一临时的不透明的句柄,标识

ORB中的一个对象实例。它用于定位响

应请求的对象实现。

♦可互操作的对象引用IOR:在异构ORB

间传递OR。

BeijingUniversityofPostsandTelecommunicationsPage28

对象引用的获取

♦从命名服务或交易服务中获取

♦使用工厂对象

♦使用对象引用字符串。转换为字符,串,

在文伟中、email等中传递。

Objecttostring。和stringtoobject();

♦特定ORB实现的方法

♦获取初始引用,如:

C0RBA::0RB::resolve_initial_referen

ces()

♦作为方法调用的返回值

BeijingUniversityofPostsandTelecommunicationsPage29

主要内容

♦接口

♦对象引用

♦客户和对象实现

♦ORB核心

♦接口库和实现库

♦动态调用和静态调用

♦对象适配器

BeijingUniversityofPostsandTelecommunicationsPage30

客户和对象实现

♦客户(Client)

■客户访问对象的对象引用,并且调用对象上的操作

■客户只知道对象的接口,通过调用感受对象的行为

对象实现(ObjectImplementation)

■通过为对象实例定义数据和为对象方法定义代码提

供对象的语义;

■对象可以具有不同的实现方式;

■对象实现不依赖于ORB或者客户调用对象的方式;

■一个对象的实现可以是其它对象的客户;

BeijingUniversityofPostsandTelecommunicationsPage31

服务器

♦服务器是一个(或一组)组件,能为其它组件

提供某种服务。即,如果某个组件创建了一个

对象,并能被其它组件通过对象引用来访问,

则拥有对象的组件就是该对象的服务器,其它

组件对这个对象的请求操作都将由创建该组件

的服务器来执行。

■例如一个进程;对象实现的实例:

BeijingUniversityofPostsandTelecommunicationsPage32

主要内容

♦接口

♦对象引用

♦客户和对象实现

♦ORB核心

♦接口库和实现库

♦动态调用和静态调用

♦对象适配器

BeijingUniversityofPostsandTelecommunicationsPage33

ORB核心

(服务器)

图3-3CORBAORB的体系结构

BeijingUniversityofPostsandTelecommunicationsPage34

ORB核心提供的接口

♦ORB内核提供的服务对象接口,同时为客户方

和对象实现方所见,可直接为应用程序所使用:

■对象引用操作:提供对象引用的串化和反串化及对

裹可用复制、删除、比较及探测对象引用存在与否

等操作o如object_to_string();release();

■ORB和对象适配器初始化:使应用得到指向ORB的

对象引用。如ORB_init();

■获取初始对象引用:ORB规定了客户对象在ORB初

始时获取初始对象引用的方法,如

resolve_initial_references();

BeijingUniversityofPostsandTelecommunicationsPage35

主要内容

♦接口

♦对象引用

♦客户和对象实现

♦ORB核心

♦接口库和实现库

♦动态调用和静态调用

♦对象适配器

BeijingUniversityofPostsandTelecommunicationsPage36

图3-3CORBAORB的体系结构

BeijingUniversityofPostsandTelecommunicationsPage37

主要功能

接口库(IFR,InterFaceRepository)

■ORB的一个组件,提供服务,用于接口定义的存储、

查找和管理;

■CORBA对其接口进行了定义;

实现库(IR,ImplemetationRepository)

■ORB的一个组件,用于存储对象实现的相关信息,

如;如何定位对象实现,如何激活对象实现,以及

其它的与ORB和操作系统相关的信息;

■OMG没有对其进行详细规范,与具体实现相关;

如OrbixWeb:

putit-hHostNameServerName-jServerAbsoluteClassName

BeijingUniversityofPostsandTelecommunicationsPage38

主要内容

♦接口

♦对象引用

♦客户和对象实现

♦ORB核心

♦接口库和实现库

♦动态调用和静态调用

♦对象适配器

BeijingUniversityofPostsandTelecommunicationsPage39

静态和动态调用

(服务器)

图3-3CORBA0RB的体系结构

BeijingUniversityofPostsandTelecommunicationsPage40

BeijingUniversityofPostsandTelecommunicationsPage41

静态调用:存根和骨架

♦OMGIDL编译器根据接口定义来产生客户方的存根和

服务方的骨架。

♦静态IDL存根(IDLstubs):

■编译时确定的的静态接口,位于客户对象本地,对客户

来说相当于远程的执行对象。由存根向ORB提交请求。

■负责对请求参数的封装和发送,以及对返回结果的接

收和解封装,并以适当的格式进行通信传输。

♦静态IDL骨架(IDLskeletons):

■在本地调用执行对象服务,并与ORB通信。

■针对执行对象来说,代表了远程客户。骨架接收经ORB

来的请求,将请求参数解封装,识别客户所请求的服务,

(向上)调用服务器中的对象实现,把执行结果封装,

并将结果返回给客户程序。

BeijingUniversityofPostsandTelecommunicationsPage42

动态调用:DII和DSI

♦动态调用接口(DII)和动态骨架接口(DSI):通用存

根和通用骨架,由ORB直接提供,不依赖于所调用对

象的接口。

♦DII一支持客户方的动态请求调用,使客户方应用可以

在运行时向任何对象发出请求,动态地选择对象的实

现接口和操作。

♦DSI-DII在Server方的对应。DSI允许用户在没有静态

骨架信息的条件下来获得对象实现。

♦一个由DII发起的请求可能由静态骨架来接受,也可以

由DSI来接受。一个静态存根发起的请求可以由DSI来

接受,也可以由静态骨架来接受。

BeijingUniversityofPostsandTelecommunicationsPage43

动态调用的大致过程

❷获阳接口名

℃」nterfjacc()

____K

■获得方法描逑,港请求对象上调用相应的方法,:

lookup_n»rr»tf

dcecribe()将请求发送出去。有三种方法:

■创建变元列表•同步:使用invokeO

•延迟同步:使用send_deferred()

ffget_response()

•单向调用:彳吏用send_oneway()

远程调用的

3种方法

BeijingUniversityofPostsandTelecommunicationsPage44

静态调用与动态调用的对比

♦静态调用:

■优点:

更易编程

今提供了更强的类型校验

今速度快

》自编文档

■缺点:不灵活,客户编译时需要存根

♦动态调用:

■优点:灵活、可扩展。客户可在调用时发现接口的

相关信息,不需在编译时了解。允许服务器端增加

新的类而无需在客户代码上进行修改。

■缺点:要对数据进行类型校验、速度慢

BeijingUniversityofPostsandTelecommunicationsPage45

静态调用还是动态调用

使用范例推荐的调用技术

客户频繁使用服务器对象,使用静态预编译存根

服务器对象无变化。

客户很少调用服务器对象可使用DII

客户在运行时发现服务器对象使用DII

客户在浏览器内运行,发现新对象使用Applet和静态存根

BeijingUniversityofPostsandTelecommunicationsPage46

主要内容

♦接口

♦对象引用

♦客户和对象实现

♦ORB核心

♦接口库和实现库

♦动态调用和静态调用

♦对象适配器

BeijingUniversityofPostsandTelecommunicationsPage47

对象适配器

Page48

CORBA对象和伺服对象

♦CORBA对象:

■可看作是一个具有对象标识、对象接口及对象实现

的抽象实体。

■从客户程序的角度看,IOR中包含了对象的标识、

接口类型及其他信息以查找对象实现。

♦伺服对象(Servant):

■指具体程序设计语言的对象实例或实体,通常存在

于一个服务程序进程之中。

对象适配器(ObjectAdaptor):

■一个重要的ORB组件,它负责将抽象的CORBA对

象映射到具体的伺服对象。

BeijingUniversityofPostsandTelecommunicationsPage49

主要功能

♦服务器利用对象实现创建伺服对象,然后将这些服务

端本地的对象实例转换为可供远程使用的CORBA对象:

■给该本地对象实例关联了对象标识、对象引用;

♦对象适配器是管理服务端伺服对象、对象标识、对象

引用及它们之间关联的主要工具。

■它负责决定在收到客户请求时应调用哪个伺服对象,然后调

用该伺服对象上的合适操作;

♦CORBA支持多种不同类型的对象适配器,但所有对象

适配器的主要作用都是创建对象引用,并将对象引用

与真正执行服务的程序设计语言伺服对象相关联。

BOA:BasicObjectAdapter

今伺服对象的注册和激活是进程级的;

POA:PortableObjectAdapter

“伺服对象的注册和激活是对象级的;

BeijingUniversityofPostsandTelecommunicationsPage50

/是ORB最关键的部分,

负责请求的通信设施:

0peration()

客户•对象的定位

ORB内核提供的服务对象接口,

M同时为客户方和对象实现方所见,

对象引用的可直接为应用程序所使用。

方法调用、所定义的ID

可用语言:,Java,

对象定不13^

da...

(国客户程序要调用远程对象上的方法时,首先要得到这个远程对象的引用,之后就可以\

像调用本地方法一样调用远程对象的方法。当发出一个调用时;实际上ORB会截取这个

调用(通过客户Stub完成),因为客户和服务器可能在不同的网络、不同的操作系统上

甚至用不同的语言实现,ORB还要负责将调用的名字、参数等编码成标准的方式

(称Marshaling)通过网络传输到服务器方(有时在同一台机器上也如此),并通过将参

薮Unmarshaling的过程,传到正确的对象上(这整个过程叫重定向,Redirecting),服务

既对象完成处理后,ORB通过同样的Marshaling/Unmarshaling方式将结果返回给客户。J

综述

♦对象管理体系结构OMA

♦OMG的接口定义语言IDL

♦对象请求代理ORB

♦CORBA服务

♦ORB之间的互操作

♦CORBA规范

♦CORBA发展历程

BeijingUniversityofPostsandTelecommunicationsPage52

CORBA服务

♦公共对象服务:系统级的对象框架。扩展了基

本的CORBA体系结构。

♦CORBA服务代表了一组预先实现的,软件开

发商通常需要的分布式对象。

BeijingUniversityofPostsandTelecommunicationsPage53

CORBA服务清单例

命名服务(NamingService):为客户程序通过名

字查找对象实现提供支持。

事件服务(EventService):使对象间的通信能够

以松耦合的方式进行。

生命周期服务(LifeCycleService):为对象的创

建、删除、拷贝和移动提供支持。

持久状态服务(PersistentStateService):为对象

持久状态的维护和管理提供支持。

事务服务(TransactionService):为事务处理提供

支持。

并发服务(ConcurrencyService):为多个客户协

调一致地同时访问共享资源提供支持。

BeijingUniversityofPostsandTelecommunicationsPage54

CORBA服务清单例(2)

关系服务(RelationshipService):为实体和它们之

间地关系的外在表示提供支持。

外部服务(ExternalizationService):为对象的外部

化(externalizing)和内在化(internalizing)提供支

持.

查询服务(QueryService)::为客户在对象集合中

查找满足某种查询标准的对象提供支持。

许可证服务(LicensingService):为软件许可证的

管理提供支持。

属性服务(PropertyService):为对象属性的定义和

操纵提供支持。

时间服务(TimeService):为客户获取当前时间以

及可能的误差提供支持。

安全服务(SecurityService):为基于CORBA的整

个系统的安全提供支持。

BeijingUniversityofPostsandTelecommunicationsPage55

CORBA服务清单例(3)

交易对象服务(TradingObjectService):为提

供和查找具有特定属性的对象提供支。

集合服务(CollectionsService):为创建以及操

纵各种常用集合类型提供支持。

通知服务(Noti行cationService):对事件服务

的扩展,支持事件的类型定义、过滤条件的设定、

服务质量的设定等。

增强的时间视图服务(EnhancedViewofTime

Service):为一致地使用具有各种自身特点的时

钟提供支持。

BeijingUniversityofPostsandTelecommunicationsPage56

命名服务

♦目的:为通过名字查找对象提供支持。

♦方法:定义了一系列的接口,使客户可以管理

对象的命名空间、在命名空间中查找对象。

♦基本概念:

命名上下文Namingcontext:一种命名空间,在该范

围内,所有名字是唯一的。

名字Name:一个有序的由组件(component)构成的

序列,也叫对象的复合名。在这个序列中,除最后

一个组件以外,其它都是一个命名空间的名字。最

后的组件是这个对象的简单名。

■名字绑定Namebinding:名字到对象的关连。

BeijingUniversityofPostsandTelecommunicationsPage57

支持分层命名的CORBA对象

CompoundName:

ResortsMexicoClubMedPlayaBlance

C0RBA0bjectsSupportHierachica1Naming

BeijingUniversityofPostsandTelecommunicationsPage58

命名服务的使用

使用NamingContext接口提供的API,可以:

将一个对象与一个名字绑定:

voidbind(inNamen,inObjectobj);

在一个命名空间中,删除一个对象绑定:

>voidunbind(inNamen);

通过名字查找一个对象:

Objectresolve(inNamen);

创建一个命名空间:

NamingContextbind_new_context(inNamen);

守守♦

♦使用Bindingiterator接口,可以在一个给定的命名空间

中漫游(Navigate)o

BeijingUniversityofPostsandTelecommunicationsPage59

小结

♦OMG为每个服务定义了标准API

■通过IDL定义

♦实现厂商提供支持这些API的具体产品,它们

的实现方法可能不同,但接口是一致的

♦用户购买、部署需要的服务产品

■买源代码或者可执行代码

■安装并在需要的时候实例化

♦在程序中使用时,首先获取服务中相应对象的

IOR,然后调用它的操作即可。

BeijingUniversityofPostsandTelecommunicationsPage60

综述

♦对象管理体系结构OMA

♦OMG的接口定义语言IDL

♦对象请求代理ORB

♦CORBA服务

♦ORB之间的互操作

♦CORBA规范

♦CORBA发展历程

BeijingUniversityofPostsandTelecommunicationsPage61

ORB的互操作

可互操作性(interoperability)是指在一

个系统中用不同工具或不同供应商的产

品开发出来的两个组件是否可以协调工

作。

■ORB之间的互操作

■与基于DCE、DCOM等的系统的互操作

BeijingUniversityofPostsandTelecommunicationsPage62

GIOP、HOP和ESIOP

♦为了不同的ORB间可以互操作,有必要制订传

输请求的统一标准,规定传输底层的数据表示

方法与消息格式,

■GIOP:通用ORB间协议,定义了传送语法和

消息格式的标准集,能够在任何面向连接的传

输上实现ORB间的互操作性。

■IIOP:InternetORB间协议,定义了如何在

TCP/IP传输上构建GIOP。GIOP和HOP之间的关

系类似于接口定义及其实现。

■ESIOP:能够针对已使用特定分布式计算基础

结构的特殊情况(例如DCE-CIOP)构建ORB。

BeijingUniversityofPostsandTelecommunicationsPage63

GIOP的基本组成部分

TheCommonDataRepresentation(CDR)definition:

通用数据表示定义,它实际上是IDL数据类型在网上

传输时的编码方案。它对所有IDL数据类型的映射都

作了规定。

GIOPMessageFormats:规定了Client和Server两个角

色之间要传输的消息格式。7种消息格式:Request>

Reply>CancelRequest>LocateRequest>LocateReply>

CloseConnection>MessageError>Fragmento

GIOPTransportAssumptions:主要规定在任何面向连

接的网络传输层上的一些操作规则。如:传输应该是

面向连接的;传输应是可靠的;在非正常情况下断开

连接时,传输应能提供某种通知机制等;

BeijingUniversityofPostsandTelecommunicationsPage64

CORBA对互操作性的支持

♦CORBA的目标是支持多个层次的可互操作性,

CORBA规范经过多次改进与发展才达到这一

目标。

■早期的CORBA版本强调不同平台与语言之间的可互操

作性,包括了IDL标准以及IDL到程序设计语言的映射。

使用同一供应商的ORB产品开发的客户程序与服务程序

之间可以交互,但使用不同供应商的ORB产品开发的客

户程序与服务程序则未必是可互操作的。

■CORBA2.0版引入GIOP和HOP,从而实现了不同供应

商的ORB产品之间的可互操作性,所有供应商的ORB产

品如果与CORBA2.0兼容则彼此之间可互操作。

BeijingUniversityofPostsandTelecommunicationsPage65

综述

♦对象管理体系结构OMA

♦OMG的接口定义语言IDL

♦对象请求代理ORB

♦CORBA服务

♦ORB之间的互操作

♦CORBA规范

♦CORBA发展历程

BeijingUniversityofPostsandTelecommunicationsPage66

CORBA规范

♦CORBA规范是一组规范的集合,通常包括:

■CORBAORB规范(“TheCommonObject

RequestBroker:ArchitectureandSpecification"),

主要包括:

-CORBACORE:包含ObjectOverview>IDL语法和语

义、ORB、动态调用(DII和DSI)、接口仓库

(InterfaceRepository),对象适配器POA等CORBA最

核心的概念。

fCORBAInteroperability(CORBA互操作性):主要规

定不同ORB间的互操作性,包括GIOP、HOP、Inter-

ORBBridge以及特定环境下的DCEESIOP(如CIOP)等。

♦CORBANetworking:规定和非CORBA系统的互联,

目前主要规定和Microsoft的COM、OLEAutomation以

及DCOM的互联。

“CORBA语言映射:规定OMGIDL到各种编程语言的

映射规则,目前规定了IDL到C、C++、JAVA、

SmallTalksAda、COBOL等语言的映射。

BeijingUniversityofPostsandTelecommunicationsPage67

CORBA规范(续)

♦CORBA公共月员务规范(CORBAservices

Specifications):17种服务对象。

♦CORBA设施规范(CORBAfacilities

Specifications):设施(facilities)处于公共服

务(Services)更高的一层,他们通常规定某个

领域应用的基础框架(通常称垂直公共设施),

或所有领域能公用的部分(通常称水平公共设

施)。如国际化时间和移动代理

♦CORBA行业规范(CORBAIndustries

Specifications):一些专用规范,和各行业紧密

相关。处于比垂直公共设施更高一层次上。如:

商业、金融、制造业、电信、交通、医疗保健

等。

BeijingUniversilyofPostsandTelecommunicationsPage68

综述

♦对象管理体系结构OMA

♦OMG的接口定义语言IDL

♦对象请求代理ORB

♦CORBA服务

♦ORB之间的互操作

♦CORBA规范

♦CORBA发展历程

BeijingUniversityofPostsandTelecommunicationsPage69

CORBA发展历程

♦这里指CORBAORB规范。

♦经历的主要版本:

■CORBA1:最早于1990提出,包括了ORB和IDL等

CORBA基本概念。

■CORBA2.0[95-07]:于1994底提出,95年成为规范,

主要贡献是IIOP,另外,规定了IDL到C和C++的映射

■CORBA2.0[96-07]:增加了到Smalltalk的映射,增加

了到COM和OLEAutomation的映射

■CORBA2.1[97-08]:增加了到COBOL和Ada的映射。

■CORBA2.2[98-02]:增加了POA(PortableObject

Adapter),以替代BOA;增加了AnyValues的动态管

理;增加了Interceptors(拦截器),用来实现安全特性;

增加了Java映射

BeijingUniversityofPostsandTelecommunicationsPage70

CORBA发展历程(续)

CORBA2.3[99-06]:增加了ValueTypeSemantics^Interface

Semantics.如定了在CORBA调用参数中传递对象(传递对

象值而非引用)以及一些复杂数据(如图片)时的一些规

则。

■CORBA2.3.1[99-10]:做了一些修订,没有增加新的东西

■CORBA2.4[00-10]:士曾加了CORBAMessaging,Minimum

CORBA,Real-TimeCORBA等。

■CORBA2.4.1[00-11],CORBA2.4.2[01-02]:做了一些修订,

没有增加新的东西。

■CORBA2.5[01-09]:士曾加了CORBAFaultTolerant,并对其

他的一些内容做了一些修订,如Real-TimeCORBA、

CORBAMessaging、PortableInterceptors

■CORBA3已经正式发布,集中于CORBAComponents技术。

目前最后正式发布版本为3.1(2008.1)

BeijingUniversityofPostsandTelecommunicationsPage71

主要的CORBA产品

Orbix(C++,Java)、ORBacus(C++>Java):IONA公司

■Orbix6.3SP3-EffectivedateJune30,2008

♦IBM

RationalSystemsDevelopersupportsCORBA

VisiBroker(C++,Java):原VisigenicSoft

温馨提示

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

评论

0/150

提交评论