您的位置:首页 > 其它

CORBA 学习一(概念了解)

2011-09-30 10:36 176 查看
一、概述
  CORBA(Common Object Request Broker Architecture, 公共对象请求代理体系结构)是由OMG(对象管理组织,Object Management Group)提出的应用软件体系结构和对象技术规范,其核心是一套标准的语言、接口和协议,以支持异构分布应用程序间的互操作性及独立于平台和编程语言的对象重用。
  CORBA经过近十多年的发展,已逐步走向成熟,并成功地应用在我国许多大型的软件系统中,由此产生了对掌握CORBA技术的软件开发人员的大量需求。在此,我们应广大读者的要求组织了本次讲座。
二、CORBA 
   CORBA规范充分利用了现今软件技术发展的最新成果,在基于网络的分布式应用环境下实现应用软件的集成,使得面向对象的软件在分布、异构环境下实现可重用、可移植和互操作。其特点可以总结为如下几个方面:
  1、引入中间件(MiddleWare)作为事务代理,完成客户机(Client)向服务对象方(Server)提出的业务请求(引入中间件概念后分布计算模式;
  2、实现客户与服务对象的完全分开,客户不需要了解服务对象的实现过程以及具体位置;
  3、提供软总线机制,使得在任何环境下、采用任何语言开发的软件只要符合接口规范的定义,均能够集成到分布式系统中;
   4、CORBA规范软件系统采用面向对象的软件实现方法开发应用系统,实现对象内部细节的完整封装,保留对象方法的对外接口定义。
  在以上特点中,最突出的是中间件的引入, 在CORBA系统中称为对象请求代理(ORB,Object Request Broker)和采用面向对象的开发模式。
  对象模型是应用开发人员对客观事物属性和功能的具体抽象。由于CORBA使用了对象模型,将CORBA系统中所有的应用看成是对象及相关操作的集合,因此通过对象请求代理(ORB),使CORBA系统中分布在网络中应用对象的获取只取决于网络的畅通性和服务对象特征获取的准确程度,而与对象的位置以及对象所处的设备环境无关。
  CORBA体系的主要内容包括以下几部分:
  (1) 对象请求代理ORB(Object Request Broker):负责对象在分布环境中透明地收发请求和响应,它是构建分布对象应用、在异构或同构环境下实现应用间互操作的基础。
  (2) 对象服务(Object Services):为使用和实现对象而提供的基本对象集合,这些服务应独立于应用领域。主要的CORBA服务有:名录服务(Naming Service)、事件服务(Event Service)、生命周期服务(Life Cycle Service)、关系服务(Relationship Service)、事务服务(Transaction Service)等。这些服务几乎包括分布系统和面向对象系统的各个方面,每个组成部分都非常复杂。
  (3) 公共设施(Common Facilitites):向终端用户提供一组共享服务接口,例如系统管理、组合文档和电子邮件等。
  (4) 应用接口(Application Interfaces):由销售商提供的可控制其接口的产品,相应于传统的应用层表示,处于参考模型的最高层
  (5) 领域接口(Domain Interfaces):为应用领域服务而提供的接口。如OMG组织为PDM系统制定的规范。
  CORBA技术是先进技术发展的结果,它将面向对象的概念揉合到分布计算中,使得CORBA规范成为开放的、基于客户/服务器模式的、面向对象的分布计算的工业标准。
  在CORBA体系结构的中心部分是对象请求代理程序(Object Request Broker,ORB),它作为一个"软件总线"来连接网络上的不同对象。在客户端,ORB提供一个发送操作调用的接口;而在服务器端,ORB提供一个将操作调用传输到服务器的API。ORB的任务是定位一个合适的服务器,并且通过一个对象适配器(Object Adapter,OA)将操作调用传送给服务器。OA的目的是:给框架发送方法,调用并且支持服务器对象的生命周期(例如,对象的建立和删除)。老版本的CORBA规范包含一个基本对象适配器(Basic Object Adapter,BOA),就像它的名字一样,BOA是十分简单的。它定制的也不是很好,它禁止CORBA应用程序的可移植性。作为CORBA标准的版本2.2,BOA被可对象适配器(Portable Object Adapter,POA)所取代。MICO支持BOA和POA。
  在客户端,ORB提供一个一般的API,它是一个动态调用接口(Dynamic Invocation Interface,DII)来发送操作调用。在服务器端,OA通过动态框架接口(Dynamic Skeleton Interface,DSI)来传输一个操作调用,它为服务器端镜像DII的行为。一个在客户和服务器之间的静态接口通过一种接口定义语言(Interface Definition Language,IDL)来定义。虽然DII和DSI代表到ORB的一般接口,并且通常被用于桥,但一个IDL规范可以用于产生到ORB的类型安全的、应用特定的接口。
  在客户端,客户与ORB之间的静态接口被称为静态调用接口(Static Invocation Interface,SII),在服务器端,这个接口被称为静态框架接口(Static Skeleton Interface,SSI)。一个IDL编译器从一个IDL规范来生成一个存根stub和一个框架skeketon。存根的功能类似于一个客户代理,而框架负责发送一个操作调作给一个真正的此操作的实现程序。
  CORBA也定义了两个运行时的数据库。接口存储库(Interface Repository,IR)包含运行时所需要的IDL规范。IR可以查询用户定义的IDL类型的详细情况,从而提供一个基本类型映射机制。第二个数据库被称为实现存储库(Implementation Repository,IMR),并且它包含服务器的详细信息(即,哪一个执行程序需要被放置到哪一个服务器上)。OA需要这个信息来自动激活服务器。
  CORBA标准也包含一个ORB之间的协议,它被称为互联网ORB之间的协议(Internet Inter-ORB Protocol,IIOP),它描述了基本的和结构化的IDL类型的在线表示,以及协议所需的协议数据单元。设计IIOP的目的是使它保持简单、可升级并且通作。IIOP使用TCP/IP来在不同的ORB之间传输操作调作和它们的参数。
  最后,需要说明一点,CORBA是一个规范而不是一个程序实现。CORBA提供了一个允许在分布式和异构型环境中的应用程序之间进行互操作的框架,但是关于如何实现CORBA标准的特定技术,它并没有给出任何规定。因此,目前在市场上有许许多的CORBA程序实现,如Iona的Orbix,Inprise的VisiBroker。

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: