cxyxxg
|
发表于: 5/13/2002 - 07:02 |
现在的分布式框架很多,windowsDNA,corba,webservice,j2ee,对应的技术为com/com+,orb/corba,soap,ejb\javabean。当我们一般的应用好象他们都合适,甚至说可以用cgi机制来实现,如rmi,servlet,等等。我以为要采用一个真正适应于某个软件的软件构架,就要清楚地知道这个构架应用在该软件的优势。
试问各位高人:如何挖掘corba的真正优势:
最好从如下方面分析:
1。软件的可扩展性
2。软件性能
3。软件的健壮性
4。软件的开发难易度(影响开发周期)
5。软件的可移植性
6。软件成本
等等,欢迎大家提出更多的分析
[编辑 - 5/13/02 作者: cxyxxg] ____________________
学习是无止境的 |
|
mep
|
发表于: 5/14/2002 - 13:21 |
跨平台是CORBA的一个最大的优势。
java也可以,可惜太慢了(当然在分布计算领域中java本身的执行速度有时不是瓶颈):(
|
|
cxyxxg
|
发表于: 5/17/2002 - 04:58 |
我也这样认为,只有当系统集成时遇到跨平台的问题,它的优势才最大(也只有选择它来做集成),其实这样做的直接表现就是client和server端的平台和语言不限。 ____________________
学习是无止境的 |
|
Allen
|
发表于: 6/19/2002 - 11:07 |
CORBA强大的分布式处理机制使它成为高端应用的首选,其核心ORB屏蔽了以下具体细节:对象位置、对象实现、对象的执行状态、对象所使用的通信机制和数据的表示方式。
其扩展的CORBA服务在大量的高端市场有着非常好的应用和表现。
如在电信方面,CORBA的应用已无处不在。
目前正在学习CORBA在电信网管、智能网方面的应用,希望有更多的朋友参与讨论 |
|
suby007
初级会员
贴子数量 : 51
注册日期 : 5/20/2002 在线情况 : 离线
|
发表于: 6/19/2002 - 13:09 |
CORBA是Common Object Request Broker Architecture的缩写,它是分布计算机技术的发展结果,CORBA技术的成功在于,它除了能够解决由于多个系统层次上的异构带来的“孤岛”问题,还在理论和技术上扩展了客户/服务器的模式,使系统具有良好的可伸缩性,便于系统的开发与升级,保护已有投资。 CORBA的核心是ORB(Object Request Broker,对象请求代理),它作为转发消息的中间件,实现了对象间的无缝集成和互操作。CORBA的平台无关性使其可以跨越不同的网络、不同的机器和不同的操作系统实现分布对象之间的互操作,并提高了软件的安全性和可重用性。CORBA已经在诸如企业管理、电信等诸多领域得到了成功应用。实践已充分证明符合CORBA规范的软件产品在构造分布式计算系统中所起的作用。
2.1 CORBA体系的主要内容
CORBA体系的主要内容包括以下几部分,
图(1) CORBA体系结构的主要内容
(1) 对象请求代理ORB(Object Request Broker):负责对象在分布环境中透明地收发请求和响应,它是构建分布对象应用、在异构或同构环境下实现应用间互操作的基础。
(2) 对象服务(Object Services):为使用和实现对象而提供的基本对象集合,这些服务应独立于应用领域。主要的CORBA服务有:名录服务(Naming Service)、事件服务(Event Service)、生命周期服务(Life Cycle Service)、关系服务(Relationship Service)、事务服务(Transaction Service)等。这些服务几乎包括分布系统和面向对象系统的各个方面,每个组成部分都非常复杂。
(3) 公共设施(Common Facilities):向终端用户提供一组共享服务接口,例如系统管理、组合文档和电子邮件等。
(4) 应用接口(Application Interfaces):由销售商提供的可控制其接口的产品,相应于传统的应用层表示,处于参考模型的最高层。
(5) 领域接口(Domain Interfaces):为应用领域服务而提供的接口。如OMG组织为PDM系统制定的规范。
CORBA除了上述将到的几点之外,还有非常重要的一点是IDL(Interface definition language,接口定义语言),IDL是一种通用的语言。它能够让用某种语言写成的对象和另外一种语言产生的对象进行通信。在分布式对象技术里,关键的问题在于怎样把一个新建的对象放到另外一种环境中去调用。现在人们普遍用IDL语言写成的ORB(对象请求中介)程序来解决这个问题。IDL语言通过说明对象的接口来定义对象。一个接口包括一组命名的操作和相应于这些操作的参数。IDL语言是一种描述性语言,客户要能真正使用IDL源文件中所定义的对象,必须把这些对象映射到指定的程序设计语言实现的对象。这部分工作由IDL编译器完成。CORBA 2.0规范中定义了OMG IDL语言到具体编程语言的映射。
2.2 CORBA与传统分布式体系特点的对比及优势
CORBA的产生有其特定的背景,它是在面向对象的技术兴起,客户/服务器模式普遍得到应用的前提下,为屏蔽通信和实现细节的需求,继承已有系统,消除“孤岛”现象而产生的。他弥补了传统分布处理系统的不足(如RPC等),具有很多新的特色:
(1) 引入代理(Broker)概念。代理起到如下作用:完成对客户方提出的抽象服务请求的映射;自动发现和找到服务器;自动设定路由,实现服务方程序的执行。
(2) 客户方程序与服务方程序完全分离。用传统的客户/服务器方式有很大的不同,客户将不再与服务方发生直接的联系,而仅需要与代理发生联系,客户与服务器方都可方便升级。
(3) 提供“软件总线”机制。任何应用系统只要提供符合CORBA系统定义的一组接口规范,就可以方便的集成到CORBA系统中,这个接口规范独立于任何实现语言和环境。如此,客户应用于服务对象之间可以透明地交互运行,实现应用软件在“软件总线”上的“即插即用”。
(4) 分层的设计原则和实现方式。CORBA系统的底层核心是一个精练的系统,各种复杂系统和应用可以由核心扩展和延伸。
CORBA技术是先进技术发展的结果,它将面向对象的概念揉合到分布计算中,使得CORBA规范成为开放的、基于客户/服务器模式的、面向对象的分布计算的工业标准。基于CORBA规范,用户可以透明地访问信息,不需要知道信息存在于什么软件中、使用什么硬件平台以及位于企业网络的什么地方。作为面向对象系统的通信核心,CORBA为网络计算带来了真正的互操作性。另外,软件开发人员开发基于CORBA的分布式应用程序不需要了解太多有关网络协议的技术细节,使得软件开发周期大大缩短,同时也加大了代码可重用性。
2.3 CORBA中间件的核心技术
ORB是一个中间件(middleware),它可以建立对象之间的client/server关系。无论在OMA还是在CORBA中,ORB都是最重要的部分,它是CORBA的核心,许多ORB版本不带CORBA Services或CORBA Facilities,用户可以自制(或购买)商用对象,但是,没有ORB,CORBA应用程序绝对无法工作,因此,ORB是CORBA中唯一必须提供的部分。通过ORB,一个client可以透明的引用同一台机器上或网络上的一个server对象的方法。ORB解释该调用并负责查找一个实现该请求的对象,找到后,把参数传给该对象,调用它的方法,最后返回结果。client并不清楚该对象的位置,它的编程语言,它的操作系统以及其它不是对象接口的系统信息。 ORB能实现分布环境中位于不同机器上的应用之间的互操作以及多对象系统之间的无缝连接。
在传统的client/server)应用中,开发者使用自己设计的标准或通用标准来定义设备之间的协议。协议定义与实现的语言、网络传输及其它因素有关。ORB简化了这一过程,它使用IDL来定义应用接口之间的协议。ORB允许程序员选择通用操作系统,运行环境和编程语言。更重要的是,它能集成现存元素。
图(2)ORB通信机制
ORB是对象总线,它可以保证对象之间的通信,无论这些对象是位于同一台机器上,还是位于通过网络连接起来的不同机器上。CORBA ORB最基本的功能是对应用程序或是其他ORB的请求予以响应,在CORBA应用程序运行期间,ORB可能被请求做许多不同的事情,包括:
1. 查找并调用远程计算机上的对象;
2. 负责不同编程语言之间的参数转换(如C++到JAVA);
3. 可超越本机界限的安全管理;
4. 为其它的ORB收集并发布本地对象的metadata;
5. 用下载的代码中描述的静态方法调用去激活远程对象中的方法;
6. 用动态方法调用激活远程对象;
7. 自动激活一个当前没有装入内存运行的对象;
8. 将回调方法导向其管理之下的本地对象;
ORB的一个重要优点是实现细节对软件开发者透明,用户只需在代码中提供相应的对象,用于初始化ORB并向ORB登记该应用程序,就可以将该应用程序和大量分布式对象建立联系。
ORB是透明地实施客户,对象通信,在客户请求一项服务时,ORB对客户隐藏提供服务的对象的位置、实现方法和执行过程中所处的状态。客户不知道ORB在向对象传递请求和向客户返回响应是采用何种方法调用,对提供服务请求的客户没有影响。ORB支持环境主要实现CORBA规范要求的三种最基本的服务:对象生命周期服务、对象命名服务、以及对象事件服务,这些操作在ORB环境内进行。在对象初次启动时,需要找到ORB上的其它对象,这就是命名服务的功能。生命周期服务维持对象的生命期,如使用期限、消亡以及再定位,使用户可以创建对象,传送对象,以及撤消对象等。事件服务在匿名对象之间提供异步交互作用,当ORB上发生重要事情时用户将得到通知。
____________________
有一种精神叫执着…有一种品质叫责任…有一种态度是积极…有一种美德是宽容…有一种结果是成功! |
|
ray_linn
|
发表于: 7/23/2002 - 07:50 |
Corba对于COM+ EJB有什么优势呢?特疑惑地说。
虽然COM+ EJB身上有Corba的影子,但是想不出有什么特别的理由需要去学习Corba.Corba能干的,好象EJB COM+也能干得非常出色。而且成熟的产品又比Corba多多了。
[编辑 - 7/23/02 作者: ray_linn] |
|
minghuali
新手上路
贴子数量 : 17
注册日期 : 6/6/2002 在线情况 : 离线
|
发表于: 7/29/2002 - 09:07 |
CORBA在很多方面都非常出色,它有很多的services和facilities。它跨平台,跨语言。只要接口设计好,也可以达到很好的性能。还可以完成对象的定位和激活,实现负载平衡。有很好的扩展性,还可以重用以前的程序,而不用重新改写。开发起来比其他的容易,成本也低了。所以,综合来说CORBA最好了!我个人观点。 |
|
netsky
新手上路
贴子数量 : 10
注册日期 : 3/22/2002 在线情况 : 离线
|
发表于: 8/8/2002 - 10:14 |
Corba在跨平台方面优势比较突出,除了这个方面,还能有什么呢?
COM、COM+在windows平台下得心应手。开发非常轻松,反观Corba
在大规模的开发中,也许我是固陋少闻把,在100万行以上的代码开发之中,似乎没有什么先烈,一个原因也许是Corba还不是很成熟,
虽然Corba3。0规范看来不错,但是现在还没有一家商业的中间件予以支持。因此就目前来说更多的开发是应用Java的Ejb或者就是COM、COM+了。
|
|
gxy
新手上路
贴子数量 : 1
注册日期 : 8/12/2002 在线情况 : 离线
|
发表于: 8/12/2002 - 09:51 |
正在学习中....... ____________________
---最可靠的还是自己诚实地努力-- |
|
cpy
新手上路
贴子数量 : 15
注册日期 : 4/1/2002 在线情况 : 离线
|
发表于: 8/15/2002 - 01:37 |
"Corba在跨平台方面优势比较突出,除了这个方面,还能有什么呢? COM、COM+在windows平台下得心应手。开发非常轻松,反观Corba 在大规模的开发中,也许我是固陋少闻把,在100万行以上的代码开发之中,似乎没有什么先烈,一个原因也许是Corba还不是很成熟, 虽然Corba3。0规范看来不错,但是现在还没有一家商业的中间件予以支持。因此就目前来说更多的开发是应用Java的Ejb或者就是COM、COM+了。"
CORBA应该是始于1989年,到现在已经有十几年的历史了,应该说EJB
还在成长。知道COM和CORBA的关系吗?原来MICROSOFT也是OMG的成员,后来为了WINDOWS上的个人利,才另外开发了一个比较简单的
类似CORBA的COM,这也是为了WINDOWS上的开发比较简单。应该说
DCOM是为了简单化分布式开发的CORBA的一个简易版本。你现在在使用的手机,所有的有名的手机产商都是使用基于CORBA结构的产品。
你可以到其产家网站去看看。
|
|