×

corba or

Corba很有用么?什么是 CORBA

admin admin 发表于2022-09-02 16:30:40 浏览129 评论0

抢沙发发表评论

本文目录

Corba很有用么


是公共的标准对象语言,应该是很有用的,可以将不同语言的对象进行统一,最后相互通信!我在学习JAVA中的EJB、JMS、JNDI中有接触到!实际应用中就不明白了!因为我没有接触到相关的需要将不同语言编写的对象通信的例子!你自己试试看吧,网上好多CORBA与其他语言通信的例子!

什么是 CORBA


CORBA(Common Object Request Broker Architecture公共对象请求代理体系结构)是由OMG组织制订的一种标准的面向对象应用程序体系规范。或者说 CORBA体系结构是对象管理组织(OMG)为解决分布式处理环境(DCE)中,硬件和软件系统的互连而提出的一种解决方案;OMG组织是一个国际性的非盈利组织,其职责是为应用开发提供一个公共框架,制订工业指南和对象管理规范,加快对象技术的发展。
OMG组织成立后不久就制订了OMA(Object Management Architecture,对象管理体系结构)参考模型,该模型描述了OMG规范所遵循的概念化的基础结构。OMA由对象请求代理ORB、对象服务、公共设施、域接口和应用接口这几个部分组成,其核心部分是对象请求代理ORB(Object Request Broker)。对象服务是为使用和实现对象而提供的基本服务集合;公共设施是向终端用户应用程序提供的一组共享服务接口;域接口是为应用领域服务而提供的接口;应用接口是由开发商提供的产品,用于它们的接口,不属于OMG标准的内容。ORB提供了一种机制,通过这种机制,对象可以透明的发出请求和接收响应。分布的、可以互操作的对象可以利用ORB构造可以互操作的应用。
CORBA标准由对象管理组织(OMG)设立并进行控制,CORBA定议了一系列API,通信协议,和物件/服务信息模型用于使得异质应用程序能够互相操作,这些应用程序用不同的程序语言编写,运行在不同的平台上。CORBA因此为定义明确的物件提供了平台和位置的透明性,这些物件是分布式计算平台的基础。
CORBA分布计算技术,是由绝大多数分布计算平台厂商所支持和遵循的系统规范技术,具有模型完整、先进,独立于系统平台和开发语言,被支持程度广泛的特点,已逐渐成为分布计算技术的标准。COBRA标准主要分为3个层次:对象请求代理、公共对象服务和公共设施。最底层是对象请求代理ORB,规定了分布对象的定义(接口)和语言映射,实现对象间的通讯和互操作,是分布对象系统中的“软总线“;在ORB之上定义了很多公共服务,可以提供诸如并发服务、名字服务、事务(交易)服务、安全服务等各种各样的服务;最上层的公共设施则定义了组件框架,提供可直接为业务对象使用的服务,规定业务对象有效协作所需的协定规则。
CORBA(公共对象请求代理架构):这是个和微软com,com+齐名的同类软件技术规范,由OMT提出。
用于在不同进程(程序)之间,甚至是不同物理机器上的进程(程序)之间通讯。底层技术依靠RPC[远程过程调用]实现。
面向对象的软件,以数据为中心设计,对象类既具有模块的封装性和类属等特性,还具有继承特性
,极大地提高了类的可扩充性和可再用能力。对象类较之于传统软件的功能模块而另具有的优点是:
(1)易于理解,具有完整的语义特征;
(2)易于扩充和修改,具有较高的通用性和适应性;
(3)易于构造组装,具有规范的外部接口。
开发应用组件必须遵循标准,以保证软件组件的互操作性,只有遵循统一的标准,不同厂商的、不同时期的、不同程序设计风格的、不同编程语言的、不同操作系统的、不同平台上的软件或软件部件才能进行交流与合作。为此,OMG(ObjectManageGroup)提供了一个对象标准CORBA,它定义了一个网连对象的接口,使得对象可以同时工作。基于CORBA的对象请求代理ORB为客户机/服务器开发提供了中间件的新格式。
作为OMG成员的微软公司撇开CORBA而另辟了COM(ComponetObjectModel),即组件对象模型,并把COM定位成基于对象的软件开发模型,尽管COM被认为是微软鼓噪出来的技术,但支持COM的开发工具却不断增多,其中大部分来自于微软,包括VisualBasic和VisualC ++。
公共对象请求代理结构:CORBA标准
全球性网络使线上的所有设备和软件成为全球共享的浩瀚的资源,计算机环境也从集中式发展到分布式环境,开放式系统的发展使用户能够透明地应用由不同厂商制造的不同机型不同平台所组成的异构型计算资源,因此,分布式处理和应用集成自然而然地成为人们的共同要求,那么什么是分布式处理和应用集成呢?它们的功能和关键技术是什么呢?简单地讲,分布式处理和应用集成就是指在异构的、网络的、物理性能差别很大的、不同厂商的、不同语言的信息资源的基础上构建信息共享的分布式系统,并且能够有效地进行应用系统和分布式处理的集成。分布式处理的关键在于定义可管理的软件构件,即面向对象技术中的“对象”。应用集成的关键在于为跨平台、跨机种、跨编程语言的产品提供统一的应用接口。OMG组织针对当今信息产业的要求,公布了CORBA标准,即公共对象请求代理体系结构(Common Object Request Broker Architecture),这是一个具有互操作性和可移植性的分布式面向对象的应用标准。
CORBA的核心是对象请求代理ORB,它提供对象定位、对象激活和对象通讯的透明机制。客户发出要求服务的请求,而对象则提供服务,ORB把请求发送给对象、把输出值返回给客户。ORB的服务对客户而言是透明的,客户不知道对象驻留在网络中何处、对象是如何通讯、如何实现以及如何执行的,只要他持有对某对象的对象引用,就可以向该对象发出服务请求。
CORBA允许用户以两种不同的方式提出对象请求:
1)静态调用:
通过给定接口的存根,在编译了对象代码后,进入客户端的程序。因此,静态调用必须在编译时就知道对象及其类型。
2)动态调用:
通过ORB的动态调用接口DII,在运行时生成访问对象的代码。
不管客户以哪一种形式提出请求,ORB的任务是:找出所要对象的位置,激活该对象,向对象传递此请求。对象执行所请求的服务后,把输出值返回给ORB,然后再由ORB返回给客户。
CORBA的重要概念是:
1.对象连接
CORBA广泛地支持对象的实现,在单服务器系统中也可以实现由接口定义语言定义的接口。ORB的灵活性既可以直接集成已有的应用,又不会使新对象受某些原则的制约。
对象连接提供了有不同类型对象实现时,使用ORB服务的方法,服务包括:对象引用、方法调用、安全控制、对象实现的激活与静候等。
2.接口定义语言(IDL)
CORBA用IDL来描述对象接口,IDL是一种说明性语言,它的语法类似于C++。
IDL提供的数据类型有:基本数据类型、构造类型、模板类型、和复合类型、操作说明。这些类型可以用来定义变元的类型和返回类型,操作说明则可以用来定义对象提供的服务。
IDL还提供模块构造,其中可以包含接口,而接口是IDL各类型中最重要的,它除了描述CORBA对象以外,还可以用作对象引用类型。
IDL提供了接口继承性,派生接口可以继承其基类接口所定义的操作与类型。IDL的接口继承性有其特殊性,此处不赘述。
总之,CORBA的IDL是一种说明性语言,描述面向对象系统开发所遵循的接口与实现相分离的基本原则。
3.动态调用接口
把IDL说明编译成面向对象程序设计语言的实代码后,客户可以调用已知对象的操作。在某些应用中,用户并不了解应用接口编译信息,但也要求调用对象的操作,这时就要动态调用接口来调用用户的操作了。例如,图形用户接口应支持用户浏览接口公共库,以获得每个对象所支持的操作信息,用户可根据自己的需求从浏览对象中挑选出所需的对象操作,具体的对象操作的调用实际上是用动态调用接口来完成的。
4.接口公用库
接口公用库持久地存储IDL的接口说明,借助于接口公用库,可以实现对象继承性层次结构的导航,并且提供了有关对象支持的所有操作的描述。接口公用库最常见的功能是为接口浏览器提供信息,帮助应用开发者找出潜在的可重用的软件部件。ORB可以利用接口公用库检查运行时的操作参数类型,但接口公用库的基本功能是提供类型信息,为动态调用接口发送请求提供信息支持。
java 2是sun公司提供的现在更明为java EE 企业级的应用开发,是一种跨平台的语言,
.NET平台是微软件提代的一种跨语言的的编程语言.

请问corba和RMI有什么区别啊


RMI定义了一组远程接口,可以用于生成远程对象。客户机可以象调用本地对象的方法一样用相同的语法调用远程对象。RMI API提供的类和方法可以处理所有访问远程方法的基础通信和参数引用要求的串行化。
远程方法调用类似于Sun公司1985年提出的远程过程调用(RPC)特征。RPC也要求串行化参数和返回数值数据,但由于没有涉及对象,情况比较简单。Sun开发了外部数据表示(XDR)系统,支持数据串行化。RPC和RMI之间的一个重要差别是RPC用快速而不够可靠的UDP协议,RMI用低速而可靠的TCP/IP协议。
远程方法调用(RMI)和CORBA都是分布式计算技术,在进行分布式时各有其优缺点,为了有助于了解RMI的特点和用途,有必要讨论一下CORBA和RMI的区别。
CORBA(Common Object Request Broker Architecture)是OMG的Object Management Architecture(对象管理结构),它是面向对象的分布式系统建立所依据的标准。CORBA被设计成一个能供所有编程语言使用的一个开放性说明,就是说一个机器上的Java客户可以要求另一个用SmallTalk或C++的机器服务。正是由于这种语言的独立性使得CORBA这么灵活和吸引人。为了适应语言独立性,CORBA采用了非常通用的标准作为其接口。在不同的语言中,远程调用、签名和对象的引入有各自不同的定义,所以CORBA必须尽可能的中立和开放。正是这种通用性是CORBA的一个弱点。当开发人员都采用CORBA时,他们要用一种新的标准定义语言接口,它要求开发者学习新的编程接口,从而减小了远程模型的透明性。
RMI是为仅在Java对Java的分布式计算中而开发的。远程调用的标准是为了Java和应用Java的自然Java签名和调用而开发的,这使得RMI对Java的开发者相当透明而且易于实现。RMI用Java语言紧密集成从而同CORBA相比能够提供非常好的容错能力及对异常的处理。尽管Java的RMI标准不像CORBA那样语言独立,但Java本身是一个独立的平台,这就使RMI在跨平台的分布软件开发中是一个很好的选择。
IIOP
它是一个用于CORBA 2.0及兼容平台上的协议。这个协议的最初阶段是要建立以下几个组件部分:一个IIOP到HTTP的网关,使用这个网关可以让CORBA客户访问WWW资源;一个HTTP到IIOP的网关,通过这个网关可以访问CORBA资源;一个为IIOP和HTTP提供资源的服务器,一个能够将IIOP作为可识别协议的浏览器。
-corba

基于corba的电子商务系统有哪些


目前,电子商务只是在对通用方针和平台意见一致的参与者间的封闭组织内进行。例如,电子数据交换(EDI)被用来在一个机构的多个分支之间,或者在建立了契约联系的机构之间安全地传输数据。而在这些早期阶段,电子商务系统只处理某几个方面的完全商务事务。
当客户可以通过他们的Web浏览器来使用的第一批基于web的商店出现时,建立了电子商务的一个更全面的概念作为Internet上传递货物和价格的方式。现在,大多数电子商务系统是基于web的,并且允许客户通过他们的web浏览器购买货物并用信用卡结帐。然而,基于web的应用程序的局限功能使得很难向客户提供全范围的服务。
未来,电子商务解决方案的需求将超过当前级别。将来的系统将必须通过多个自治的服务提供商来满足动态开放式环境中的需求,电子商务将成为一个包含多个交易实体间复杂的交互作用的分布式过程。在一个开放式市场中,有许多独立的货物和服务的供应商,并且可能有通过合并第三方提供的服务来提供服务的调解者。客户本身也可能合并随选(on-demand)产品或者服务来实现合成包。因此,现代的电子商务系统必须能集成不同种类参与系统和不同政策领域中互相不信任的用户。
CORBA安全服务规范提供了消息层完整性和负责者的鉴定/认可,这两项对电子商务应用程序都很关键。然而,OMG的电子商务域任务组织(OMG-ECDTF)为电子商务系统识别另外几种安全需求。CORBA规范中并没有下面的需求,或者由于它们仍未被提出,或者由于它们超出了CORBA所能达到的范围:
l 事务审核:CORBA安全规范提供了审核数据产生,但没有提供所需数据和粒度。
l 基于角色的存取控制:尽管好的粒度或者灵敏的商务交易中需要单独的存取控制,但电子商务把基于角色的存取控制作为主要形式。CORBA安全性没有提供基于角色的存取控制。
l 认可:CORBA规定根据的生成,但是不提供存储根据、恢复根据和确认根据的工具。电子商务所需的完全的认可功能包括根据生成、确认、存储、恢复和递送权力。这个服务可以提供创造、起源、接收、服从、赞成、递送和行为的认可。
l 完整性:应该提供将数据变成完整性所保护的数据、将完整性所保护的数据转变回原始数据、检查是否遗失完整性的功能。另外,也需要着手一些另外的完整性问题。例如,需要有一些用来防止恶意的软件,例如防止计算机病毒所做未验证的修改的机制。除消息层完整性以外,CORBA没有提供任何电子商务系统需要的其他层上的完整性功能。
l 授权:CORBA提供了使得个别责任变得容易的“扮演的授权“。然而,电子商务需要别的授权选项,例如简易授权,复合授权,组合特权授权(不允许把这些特权来追溯回某些中间节点),和追溯授权(提供了链中的授权追溯)。目前,CORBA并不要求提供这些授权模式。
l 授权在安全性审核中发挥作用。它支持将一条复杂的对象请求链追溯回最初的用户。
l 安全性审核库管理:审核服务可以用来保证所有的用户对他们发起的安全相关事项负责任,并保证建立、保持和保护安全相关事项的审核跟踪。另外,必须提供警告设施,并且收集、剖面、过滤、分析和查询审核数据也是可能的。CORBA目前没有提供任何审核管理功能。
l 安全性管理:电子商务安全性管理应该关心以下三个范畴:管理功能的安全性、安全服务管理和安全机制管理。当前,CORBA并没有提供任何安全性管理工具。
7.基于CORBA的电子商务
CORBA作为电子商务系统的底层结构有许多优点,本节概述其中几个优点。
开放式电子商务系统的两个主要需求是互操作性和完整性。所有的客户和供应商应用程序都应该可以在一个灵活的、动态的、开放的框架中,越过不同平台,不同编程语言和商业布局来互操作。CORBA可以从开放的电子商务环境的复杂性中抽象出来。CORBA方便了电子商务系统和其它系统之间的交互作用,比如股票管理系统、会计系统、行销系统等,并使得和以前的应用程序的之间集成变得容易,例如,一个旧的股票数据库系统。
从软件开发者的观点来看,CORBA使得一切都变得比较简单,尤其是如果打算进行不同的商店配置时。CORBA抽象了网络和动态的远程商店调用,允许应用程序开发者集中精力在实际的程序上,而不是集中在底层结构的内部工作方式上。应用程序开发者可以再利用已存在系统中的部分(例如安全性系统)来开发新程序。CORBA的灵活结构也使得开发者可以实现整个商业街的一部分来迎合特殊的贸易需求,并为进一步增强系统和容易地升级这部分商业街软件提供坚实的基础。将来,个别基于CORBA的可定制的商业街组件就可用了,可以购买它,并可以很容易的将之即插即用进已存在的商业街中,来增强或升级商店系统,。
为了使得商店组件的动态互用性运转起来,一套定义良好的标准服务需要在电子商务环境下可用。例如,用来描述对象(例如货物、服务、合同、发票或帐单等)的语义需要广泛定义。因此,OMG和商业网(CommerceNet)共同定义了一系列电子商务服务的需求,也就是说,语义数据工具,选择/商议工具和支付服务。语义数据工具提供了对电子市场参与者之间语义信息交换的支持,商议服务提供了一组从事商业事务的参与者,在服务或工具的选择和配置上相互协定的支持,而电子支付工具关注支付协议的调用。
实际上,CORBA还是经常被认为是一项不成熟的技术,尤其是CORBA没有实现许多服务,例如安全性服务。除了与不成熟的ORB实现相关的问题外,软件开发者也往往没有完全训练到可以熟练编写基于CORBA的组件的地步。就本地程序来说,基于CORBA的应用程序开发几乎与普通的应用程序开发相同,因此并没有真正造成问题,但是例如实现一个透明的提供了ORB层安全性的安全性服务就需要专业知识。
目前,对基于CORBA的电子商务系统的评价使得这些开发足以为一些公司盈利了。例如,银行配置基于CORBA的个人银行业,或者股票交易系统可能因为它是顾客的最主要地边缘技术的服务提供者而获益。
8.结论
许多CORBA的核心概念对电子商务系统是有用的,例如,互操作性和综合性,平台、编程语言和安全机制等的灵活性,底层组件布局和网络的抽象,安全性功能的透明性,安全性的自动增强。
然而,目前可用的CORBA实现相当不成熟,而且并没有实现最初指出的所有的功能。例如,目前没有一个完全的安全性服务实现是可以定制使用的。这样把实现自定义的安全服务的工作留给了应用程序开发者,他们需要有安全性和所使用CORBA产品的内部运转机制的专业知识。
即使是未来CORBA功能没有消弱,也没被别的什么东西(例如Java RMI和COM+)来代替,本文描述的基本概念也将成为任何电子商务中件的核心需求。如果CORBA如许多人推测,变成了电子商务的新的Internet标准的话,提供基于CORBA的商业街和服务越快的商务,获益越多。因此,为了当分布式对象中件广为使用时获得竞争优势,软件开发者很明显现在就得熟悉CORBA概念。
-or

CORBA对象服务


Corba的对象命名服务就是给对象实例提供一个名称,以便用户通过这些名称来获取对象的实例。对象命名服务是ORB上的对象找到其它对象的基本机制。名字是用来识别一个对象的可人工辨认的值,命名服务将这些名字映射到对象标记,名字-对象关联叫做名字联编。命名语言环境是一个名字空间,对象名字在这里是独一无二的。每个对象都有一个独一无二的参考标识符。可以有选择地将一个或多个名字与一个对象标记关联起来。相对于其命名语言环境始终定义一个名字。利用命名服务可以创建命名分层结构,客户可以搜寻不同的命名语言环境树,查找所要的对象。来自不同域的名字语言环境可以一起使用,为对象创建联合命名服务。CORBA命名分层结构不需要一个“统一”的根目录。一般情况下,用户可以规定对象的命名原则,表示对象所在的主机,功能等一系列的信息,这些信息主要包括如下三个方面的内容。
(1) Corba对象的句柄定义成如URL(统一资源定位)的形式,从而允许ORB(Object Request Broker)来调用基于Corba的服务或者远程ORB上的对象实例
(2) 任何一个厂商的ORB都可以通过配置客户端的ORB来初始化根命名服务的上下文对象(NamingContext)。
(3) 对于Corba对象的复合命名。定义一个标准的语法规则。这样服务器端和客户端就可以通过相同的格式来进行读写消息。
下面将分别讨论Corba命名服务的一些特点。
一.Corba对象的统一资源定位(URL):Corbaloc
在Internet上,你可以在浏览器中直接输入地址,即Url,就可以到你指定的网站区,这项技术在Corba中也得到了运用。
通常的做法是把一个Corba的服务器放在一台有指定域名地址和端口的机器上。Corba的服务器要为许多的Corba对象服务。一般我们需要在对象实例的URL地址后加上特定的对象健值(Object Key ID)或对象名字,这些对象的名字或健值就指明了我们所需要的特定的服务。如下所示:
Corbaloc:yourdomain.com/NameService
其中Corbaloc是Corba URL的关键字,用于对象实例和对象句柄的转换yourdomain.com是所在机器的域名地址或IP地址,/后面的NameService是对象健值.
1.对象的健值
对象的健值是接口对象仓库的一部分,主要用于表示客户端调用的特定对象实例。对象健值由ORB在生成对象句柄的过程中生成,并由特定的生成该对象健值的ORB来使用,因此Corba对于它的形式和内容没有做任何的标准化工作。
对象健值也不一定是一个单词,它也可以是一个字符串序列。在主域名或IP地址后面,紧跟/的都是对象健值。如:
Corbaloc:yourdomain.com/dev/sand/box/corba/nameservice
其对象健值为dev/sand/box/corba/nameservice
2.Corbaloc的完整格式和IIOP(Internet Inter-ORB protocal)
(1) Corbaloc URL的完整格式
Corbaloc URL的完整格式如下:
Corbaloc:IIOP:1.2@yourdomain.com:2809/pub/nameservice
即Corbaloc后面的是协议的类型(IIOP是默认的协议类型,可以省略),另一种协议是RIR(Resolove Initial References).1.2是该协议的版本号。由于每一个协议都定义了特定的消息格式,从而来查询目标对象,因此具体的地址信息包括了特定的协议类型,该协议的版本号,域名地址和端口号。IONA(Internet Association Naming Authority)注册的默认端口号是2809,在上例中的地址为:
IIOP:1.2@yourdomain.com:2809,再后面的是对象健值。

(2)Cobarloc和RIR协议
除了IIOP协议,还有一个RIR协议,通过RIR,可以用URL来访问ORB的服务把字符串Corbaloc:rir@yourdomain.org/nameservice传给string_to_object后,返回与之相对应的对象句柄,在Corbaloc:rir中调用的对象健值,可以是任何一个在resolve_initial_references中定义的健值。
3.编码以及Corbaloc的使用
每一个ORB都有一个标准的接口,用来把类似URL的字符串,通过string_to_object转化为对象句柄。同时返回给一个session的句柄给客户端,这个session的句柄和你所需要的NameService,TradeService或任何对象健值实现一一的映射。
再服务器端,可以使用两种方法实现对客户端的响应。
(1) 通常一个Corba命名或事务的对象实例会接受客户端的请求,然后把处理的结果返回给客户,服务器端的程序只要运行在特定端口的网关机器上,接受用户的请求即可。
(2) 或者为了减轻网关的负担,可以在你的网关上安装一个小的代理软件,不所有来自客户端的请求通过Locate_forward来重定向到一个比较稳定的服务器上来处理,在把处理好的结果返回给客户,网关起到了一个Proxy的作用。
二.对象URL的命名(CorbaName)
CorbaName运行在Corbaloc之上,用来解析远程命名服务。如下所示:
CorbaName::yourdomain.org/pub/catalog#year2000/Menswear/outdoors.obj

在#之前,除了CorbaName这个表识符,其它的就是Corbaloc的URL,#之后的就是对象命名的字符串。
把URL的字符串传给string_to_object函数,ORB把Corbaloc部分解析为主机命名服务的命名上下文(NamingContext)的一个实例。例如,客户端的ORB来解析名字上下文pub/catalog实例上的Menswear/outdoors.obj字符串,这些名字实例驻留在域名为yourdomain.org的Corba服务器上。
三.配置初始的服务和对象的句柄
在客户端的程序启动时要对根命名的上下文做一些配置。例如,把所有用户的ORB指向同一个根;组织和分配服务器上所有的名字空间,是所有的用户都可以相互交换对象的信息,而不同的用户也可以组织和分配他们自己的根名字空间和名字空间。客户端的程序可以通过list_initial_services来查询已经初始化好的服务。INS(Interoperable Name Service)对也命名服务器中的初始化对象句柄的设置提供了如下的三种方式。
1. 管理设置
把一个在该ORB上的服务,配置成为一个返回远程对象的句柄
2. ORBInitRef
启动ORB时,传递给系统如下的参数,来设置服务的对象句柄,如下所示:
-ORBInitRef 《object_ID》=《object URL》
其中Object Idk可以是一个已经初始化好的服务,也可以是一个Object ID,即在ORB还没有写进去之前来初始化一个新的服务号。
Object URL可以是任何的Corba::ORB::string_to_object所支持的URL,如
-ORBInitRef NameService=IOR::0023021ABCS1
也可以用字符形式的Corba IOR来配置命名服务,如
-ORBInitRef NotificationService=Corbaloc::Tele/NotificationService
3. ORBDefaultInitRef
用ORBDefaultInitRef可以定义默认的URL形式的对象句柄的位置。如下所示:
-ORBDefaultInitRef corbaloc::yourdomain.com
ORG启动时会调用resolve_initial_references(“NotificationService“),然后生成如下的完整的URL,如下所示:
Corbaloc::yourdomain.com/NotificationService
然后把这个完整的URL传给string_to_object,获取服务的session句柄,这样就可以和服务器端进行通信了。
四.总结
通过对象命名服务,可以简化ORB客户端和服务器端的通信,提高通信的质量和效率。对提高Corba在Internet在应用起了很大的作用。
-corba

CORBA是什么用途是什么


CORBA是一种远程分布式方法调用,是服务器端和客户端传输数据的方式。不知道你了解RMI吗?它和CORBA差不多也是另外一种传输方式。CORBA的好处在于IDL接口规范,于是这种传输方式可以跨平台、跨语言(如Java、C++、smalltalk都只需要IDL定义好了就可以生成接口),我最近也在看这个,写了一些实例的代码。不知道你的英文怎么样,给你看一篇我觉得比较好的文章,来自sun官方网站:
我是一名大四学生,希望能一起探讨。
-or

CORBA是什么


CORBA(Common Object Request Broker Architecture,公共对象请求代理体系结构,通用对象请求代理体系结构)是由OMG组织制订的一种标准的面向对象应用程 序体系规范。
-corba

webservices,corba,jms,rpc,rmi的区别和概述


1、web service体系结构
首先客户端从服务器的到WebService的WSDL,同时在客户端声称一个代理类(Proxy Class)
这个代理类负责与WebService服务器进行Request 和Response
当一个数据(XML格式的)被封装成SOAP格式的数据流发送到服务器端的时候,就会生成一个进程对象并且把接收到这个Request的SOAP包进行解析,然后对事物进行处理,处理结束以后再对这个计算结果进行SOAP包装,然后把这个包作为一个Response发送给客户端的代理类(Proxy Class),同样地,这个代理类也对这个SOAP包进行解析处理,继而进行后续操作。这就是WebService的一个运行过程。
Web Service大体上分为5个层次:
1. Http传输信道
2. XML的数据格式
3. SOAP封装格式
4. WSDL的描述方式
5. UDDI
2、RCP
客户机对服务器的RPC调用,其内部操作大致有如下十步:
1.调用客户端句柄;执行传送参数、
2.调用本地系统内核发送网络消息、
3.消息传送到远程主机
4.服务器句柄得到消息并取得参数、
5.执行远程过程、
6.执行的过程将结果返回服务器句柄
7.服务器句柄返回结果,调用远程系统内核、
8.消息传回本地主机、
9.客户句柄由内核接收消息、
10.客户接收句柄返回的数据
3、webservices/corba/jms/rpc/rmi区别
web service提供的服务是基于web容器的,底层使用
-or

为什么corba适用于分布式应用系统


CORBA:CORBA是Common Object Request Broker Architecture的缩写,它是分布计算机技术的发展结果,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系统制定的规范。 DCOM:Microsoft的分布式COM(DCOM)扩展了组件对象模型技术(COM),使其能够支持在局域网、广域网甚至Internet上不同计算机的对象之间的通讯。使用DCOM,应用程序可以在位置上达到分布性,从而满足客户和应用的需求。 DCOM是组件对象模型(COM)的进一步扩展。COM定义了组件和它们的客户之间互相作用的方式。它使得组件和客户端无需任何中介组件就能相互联系。 EJB:它是Java服务器端服务框架的规范,软件厂商根据它来实现EJB服务器。应用程序开发者可以专注于支持应用所需的商业逻辑,而不用担心周围框架的实现问题。 EJB规范详细地解释了一些最小但是必须的服务,如事务,安全和名字等。软件厂商根据这些规范要求以保证一个enterprise bean能使用某个必需的服务。规范并没有说明厂商如何实现这些服务。这使得通过阅读规范来学习EJB更加困难,因为它允许厂商在不牺牲核心服务的可移植性的前提下来提供一些增强功能。 Enterprise JavaBeans体系结构 EJB服务器是管理EJB容器的高端进程或应用程序,并提供对系统服务的访问。EJB服务器也可以提供厂商自己的特性,如优化的数据库访问接口,对其他服务(如CORBA服务)的访问,对SSL 3.0的支持等。一个EJB服务器必须提供对可访问JNDI的名字服务和事务服务支持。一些可能的EJB服务器的例子如: 数据库服务 应用服务器 中间件服务器 EJB容器是一个管理一个或多个EJB类/实例的抽象。它通过规范中定义的接口使EJB类访问所需的服务。容器厂商也可以在容器或服务器中提供额外服务的接口。 现在没有EJB服务器和EJB容器间接口的规范。因为目前容器通常由EJB服务器来提供,所以一旦接口标准化了,厂商就可能提供可以在任何兼容的EJB服务器上运行的容器。 Home接口列出了所有定位、创建、删除EJB 类实例的方法。Home对象是home接口的实现。EJB类开发者必须定义home接口。容器厂商应该提供从home接口中产生home对象实现的方法。 远程接口(remote interface)列出了EJB类中的商业方法。EJBObject实现远程接口,并且客户端通过它访问EJB实例的商业方法。EJB类开发者定义远程接口,容器开发商提供产生相应的EJBObject的方法。客户端不能得到EJB实例的引用,只能得到它的EJBObject实例的引用。当客户端调用一个方法,EJBObject接受请求并把它传给EJB实例,同时提供进程中必要的包装功能。客户端应用程序通过home对象来定位、创建、删除EJB类的实例,通过EJBObject来调用实例中的商业方法。客户端可以用Java来编程,通过Java RMI来访问访问home对象和EJBObject,或用其他语言编程并通过CORBA/IIOP访问,使得部署的服务器端组件可以通过CORBA接口来访问。
-corba