一直以来,面向对象的技术(Object Orientation,OO)是软件界努力追求的目标,传统的对象技术通过封装、继承及多态提供了良好的代码重用功能。但是这些对象只存在于一个程序中,外面的世界并不知道它们的存在,也无法访问它们。要解决这些问题就需要提供一个标准的构件框架,使不同厂家的软件通过不同的地址空间、网络和操作系统交互访问。该构件的具体实现、位置及所依附的操作系统对客户来说都是透明的。因此有关对象中间件的标准相继问世,像OMG组织(Object Management Group)的公用对象请求代理程序结构(Common Object Request Broker Architecture,CORBA)、Microsoft的构件对象模型(Componet Object Model,COM)以及IBM公司的系统对象模型(System Object Model,SOM)等,这些标准都极大地促进了对象中间件技术的发展。
CORBA概要描述
---- CORBA是OMG组织在1991年提出的公用对象请求代理程序结构的技术规范。CORBA有很广泛的应用,它易于集成各厂商的不同计算机,从大型机一直到微型内嵌式系统的终端桌面,是针对大中型企业应用的优秀的中间件。最重要的是,它使服务器真正能够实现高速度、高稳定性处理大量用户的访问。现在很多大型网站后端的服务器都运行CORBA,其中有些网站您可能每天都在访问。
---- CORBA的底层结构是基于面向对象模型的,由OMG 接口描述语言(OMG Interface Definition Language,OMG IDL)、对象请求代理 (Object Request Broker,ORB)和IIOP标准协议(Internet Inter-ORB Protocol,也称网络ORB交换协议)3个关键模块组成。
---- 使用接口描述语言编写的对象接口,使得与语言无关的独立性成为可能。IDL使得所有CORBA 对象以一种方式被描述,仅仅需要一个由本地语言(C/C++、CORBA或Java)到IDL的“桥梁”。CORBA对象的互通信要以对象请求代理为中介,这种互通信可以在多种流行通信协议(如TCP/IP或IPX/SPX)之上实现。在TCP/IP上,来自于不同开发商的ORB用IIOP标准协议进行通讯。
---- 我们知道,为了保持CORBA的商业中立性和语言中立性,必须有一个中介,存在于像C++ CORBA 服务器代码和Java CORBA客户机这样的实体中间,这就是IDL。一个底层对象的若干相关方法和属性被IDL集入一个单一接口。一旦IDL接口定义完成,它可以以Stub码或框架代码的形式编译成所选用的语言。在所有的ORB中都有IDL编译器。
---- 值得注意的一点是,IDL不同于其他的面向对象程序设计语言,我们不能用它指定所定义的类或方法的具体实现。因此,仅仅将它作为一种定义底层对象接口的语言要好得多。
ORB接口结构
---- 为了创建一个遵从CORBA规范的应用程序,ORB是CORBA必须提供的。没有ORB,CORBA应用程序就无法工作。CORBA ORB最显著的功能,是对应用程序或是其他ORB的请求予以响应。实现细节对软件开发者的透明性,是ORB的一个杰出的特性。
---- 在CORBA应用程序运行期间,ORB可能被请求做许多不同的事情,包括查找并调用远程计算机上的对象、负责不同编程语言之间的参数转换( 如C++到Java)、用动态方法调用激活远程对象等等。
---- 图1所示为一个独立的ORB的结构,箭头说明ORB的调用关系。为了提出一个请求,客户端可以使用动态调用接口(Dynamic Invocation)或者客户端的Stub程序。客户端也可以直接和ORB交互。
---- 对象的实现(Object Implementation)通过IDL静态骨架(IDL Static Skeleton)或动态骨架(Dynamic Skeleton)的调用来接受请求。
---- 图2所示为一个远程调用过程。为了调用远程的对象实例,客户端首先获取它的对象参数。客户端在进行远程请求时使用与本地请求相同的代码,只不过用对象参数代替了远程实例。当ORB检测对象参数并发现目标是远程对象的时候,它会调度这些参数,把请求转移到网络上,从而连接到远程对象的ORB上。ORB可以从对象参数中判断出目标对象是远程的,客户端却做不到这一点。当客户端发出请求时,对象参数不用去分辨目标对象的位置。这保证了对象位置的透明性??CORBA的这些基本原理简化了分布式对象的计算机应用的设计。
基于CORBA应用的优点
---- 使用CORBA到底有什么好处呢?就像不同部门间需要协同工作来获取最大利润一样,不同的计算机应用之间也需要协同工作。CORBA能完成这些任务。它是开放式的、独立于厂商、用于网络上计算机应用的底层结构。任何厂家、计算机、操作系统、编程语言及网络环境下的基于CORBA的应用均使用IIOP标准协议,所以任何基于CORBA的应用均能协同工作。
---- 在小型的Client/Server模式的应用系统中使用CORBA,能给系统提供可靠的、标准的底层结构。可以使用CORBA来构建、运行在不同平台上的、用不同编程语言实现的客户端及服务器端的应用程序。如果企业广泛使用基于CORBA的应用,会带来巨大的商业利益。企业中的不同的应用系统都有不同的功能,能够处理不同的数据,这些系统如果能结合起来协同工作,就会产生更大的商业价值。如果应用系统都是用CORBA来实现,就可以容易地移植到网上,企业内部可以通过网络协同工作,产品订货单就会滚滚而来了。
---- 随着业务的不断扩展,公司的电子商务站点的负载会不断增大,总有一天负载量会超过系统预先设计的支持能力。可以使用CORBA来制作基于对象模型的服务器端的应用系统,解决系统负载的问题。考虑到当前的负载及以后可能达到的负载情况,可以选择ORB,它可以在多个服务器之间实现负载均衡。它是基于OMG可移动对象适配器的,当系统负载较重时(比如运行基于Web的应用),可以更充分地利用系统硬件资源。
---- 如果应用系统需要很高的稳定性(比如股票或证券方面的应用),可以利用CORBA提供的容错机制。CORBA的容错机制不仅能实现负载均衡,还能使每一个对象同时在两个或多个服务器上运行,当其中的一个出现故障时,系统能自动切换到另一个服务器。如果多个服务器的硬件配置相同,服务器会拥有很高的稳定性。
---- CORBA对象可以用任何一种CORBA软件开发商所支持的语言,如C、C++、Java、Ada和Small talk等等来编写。同样,CORBA对象可以运行在任何一种CORBA软件开发商所支持的平台上,如Solaris、Windows 95/NT、Open VMS、Digital Unix、HP-UX 或AIX 等。这意味着可以在Windows 95下运行Java应用程序,同时动态调入并使用C++对象,而实际上该对象可能存储于一个在Internet上的Unix Web服务器上。
---- 目前,对于较为流行的编程语言(包括C++、Smalltalk、Java和Ada 95),已经有了许多第三方的ORB。随着其他语言的逐渐流行,CORBA开发商毫无疑问地要做出相应的ORB来支持它们。
CORBA应用前景
---- 成上千万的站点依赖于CORBA搭建企业应用、Internet应用及其他应用,有许多成功使用CORBA的案例。
---- CNN正在使用一个基于CORBA事件服务的应用系统。系统用于把那些不同来源的、不同格式的、不同类型的机器上的大量新闻资料分发给所有的新闻编辑。新闻编辑再利用一个自动过滤程序来审核这些发来的消息,并把那些与自己工作方向相符合的重要稿件做上标志,过滤出来。波音公司把接收订单、制造、交货和维修4个最重要的制造系统方面的应用集成在一个综合的CORBA底层结构上,这些系统担负着飞机生产的整个过程。Charles Schwab公司构建了一个基于CORBA的商业应用,利用该系统来与5000个客户保持联系,处理的业务额高达数亿美元。
---- 对象中间件技术发展迅速,各大软硬件厂商都在积极参与有关标准的制定和产品开发工作,像IBM、HP、DEC、AT&T、ICL、Microsoft等都制定了相应的战略。许多对象中间件的专门厂商也相继诞生,未来的对象中间件市场将会出现群雄逐鹿的局面。
分享到:
相关推荐
CORBA(Common Object Request Broker Architecture,公共对象请求代理体系结构)是用于分布式计算的一种标准,它允许不同系统间的软件对象进行交互,就像它们在同一个进程内一样。在C++环境中进行CORBA开发可以帮助...
Java CORBA,全称为Java Common Object Request Broker Architecture(Java通用对象请求代理架构),是一种用于分布式计算的技术,允许不同网络上的对象或服务之间进行交互。它实现了对象请求代理(ORB)的概念,...
** Ultra Corba Simulator 1.3.6:深入理解与应用** Ultra Corba Simulator是一款针对Corba技术的专业模拟工具,版本为1.3.6。Corba,全称为Common Object Request Broker Architecture(通用对象请求代理架构),...
CORBA公共对象请求代理结构 CORBA(Common Object Request Broker Architecture)是一种基于对象的分布式计算架构,旨在提供一种通用的、平台独立的、语言独立的对象请求代理机制。CORBA的主要思想是采用标准的接口...
【标题】:CORBA程序源代码 【描述】:这些源代码示例涵盖了多个使用CORBA(Common Object Request Broker Architecture)技术的程序,包括Java RMI(Remote Method Invocation)、Inprocess通信、简单的HELLO世界...
### CORBA原理及应用知识点详解 #### 一、CORBA简介 - **CORBA**(Common Object Request Broker Architecture,通用对象请求代理体系结构)是一种分布式计算标准,旨在提供跨网络和平台之间的对象交互能力。 - **...
CORBA(Common Object Request Broker Architecture)标准,即通用对象请求代理体系结构,是由OMG(Object Management Group)定义的分布式计算的关键技术之一。CORBA标准旨在提供一种机制,允许不同的软件组件...
Java 编写的通用Corba Client是一种强大的工具,用于测试和交互与Corba(Common Object Request Broker Architecture)服务。Corba是一种标准的中间件技术,它允许不同操作系统、编程语言和网络环境中的对象相互通信...
UCS Ultra Corba Simulator 中文使用说明书 UCS Ultra Corba Simulator 是一个模拟器工具,旨在帮助用户快速学习和掌握 Corba 技术。下面是对 UCS 用户手册的详细解释和知识点总结: 项目背景 UCS Ultra Corba ...
### CORBA技术详解 #### 一、CORBA技术概述 CORBA(Common Object Request Broker Architecture,通用对象请求代理体系)是一种分布式计算环境下的标准技术框架,由OMG(Object Management Group,对象管理组织)...
CORBA(Common Object Request Broker Architecture,公共对象请求代理体系结构)是一种分布式计算技术,它允许在不同的操作系统、网络环境和编程语言之间进行无缝通信。CORBA技术系列丛书之"CORBA服务"着重于深入...
实时CORBA实现机制深入解析 实时CORBA(Common Object Request Broker Architecture)作为分布式计算环境中的关键技术,其在金融、电信、保险、医疗、制造业等领域的应用日益广泛,为提升系统性能与可靠性做出了...
CORBA(Common Object Request Broker Architecture,通用对象请求代理体系结构)是一种面向对象的中间件标准,由对象管理组织(OMG)制定。它允许不同语言编写的程序在不同的平台上进行通信,实现分布式计算环境下...
标题“jbi4corba-0.8.1”指的是一个特定版本的开源项目,它致力于在Java Business Integration (JBI)环境中实现Common Object Request Broker Architecture (CORBA)的集成。这个项目的主要目标是使CORBA服务能够与...
"CORBA 计算器实例"是一个经典的IT教学资源,旨在帮助初学者快速理解和应用CORBA(Common Object Request Broker Architecture)技术。CORBA是一种标准的中间件技术,它允许不同计算机上的应用程序通过网络进行通信...
**CORBA核心规范——一个简单的CORBA/Java示例** **一、CORBA基础** **CORBA(Common Object Request Broker Architecture)**,即公共对象请求代理架构,是一种跨平台、跨语言的分布式计算模型,旨在解决不同系统...
【CORBA概述】 CORBA(Common Object Request Broker Architecture,公用对象请求代理体系结构)是一种分布式计算框架,旨在解决不同计算平台上的对象之间的交互问题。它由Object Management Group(OMG)组织提出...
### CORBA技术详解与实践案例 #### 一、CORBA技术概述 CORBA(Common Object Request Broker Architecture,通用对象请求代理系统)是一种分布式计算环境下的软件架构标准,它由OMG(Object Management Group,...