Ste*_*n C 45
仍有一些情况下CORBA可能是一个很好的答案:
但话说回来,有些替代方案可以做到CORBA所做的,只有更好......或者他们声称.例如ZeroC的ICE
EDIT @fnieto会说(或暗示)ICE不是免费的,但是TAO是.
这是不准确和误导的.
ICE的缺点是缺乏与CORBA中间件堆栈的互操作性,但根据我的经验,不同CORBA实现的互操作性也可能存在问题.(事情可能在那个方面有所改善......但是自2002年以来我没有做任何CORBA工作,所以我有点脱节.)
Chr*_*and 31
从现有的答案来看,这几乎成了一个宗教话题.人们可以像半空/半满玻璃一样看待CORBA:一方面,CORBA是传统的遗留物,另一方面,它相对稳定,有几种可用的实现和"你知道的魔鬼".
在我的工作中,我看到CORBA部署在嵌入式系统,实时系统(CORBA具有RT扩展)等.AFAIK的替代品并不多.
CORBA的另一个"优势"是具有多种高质量开源实现,例如TAO,MICO,JacORB等,具有不同的许可和支持模型.还有商业版本.
关于用Java实现的"大多数"CORBA应用程序 - 根据我的经验情况并非如此.虽然CORBA到Java的语言映射是最好的(可能不是很多),但Java已经拥有了一个非常好的分布式计算模型,它提供了超越CORBA的丰富性,而且所有Java应用程序使用的不仅仅是CORBA.我见过的绝大多数CORBA开发都是用C++编写的(这也是最糟糕的语言映射).
最后,CORBA以AMI的形式提供标准化的异步客户端调用,但从未在服务器端提供异步处理.TAO提供了一种名为AMH的非标准服务器端实现.
And*_*ell 19
我相信Corba有点像原始EJB规范那样复兴,因为EJB可以通过一些配置轻松转换为CORBA bean.我怀疑大多数Corba部署实际上是用Java实现的.
至于受欢迎程度,我认为可能会有一些高端部署仍然存在数十年,但对于大多数人来说,Corba已经死了.
有很多非常性感的方法来做同样的事情(除了上面提到的高端).
但当然你的Milage May Vary.
iai*_*ain 15
显然,这取决于您正在考虑的服务器类型和进程间通信.而且我认为Stephen C和Chris Cleeland很好地报道了Corba的积极因素.
我们的应用程序已经使用CORBA(Orbix)超过10年,所以现在已经遗留下来了.而对于如何编写CORBA是一项很好的技术.但是,如果我重新开始,我可能不会使用CORBA:
现在,根据我想要的沟通类型,我可能会考虑:
这更多地基于寻找员工和专业知识,第三方支持和利用开源库以及CORBA的技术质量,我每天都使用它,如果有点麻烦,它是强大的.
小智 11
这里没有人提到的一件事是OPEN,OPEN STANDARDS.在所有存在的技术中(除了SOAP),它是唯一真正的开放白皮书标准.该标准不依赖于任何一种组织技术.RMI(Sun/Oracle),DCOM(现已解散 - 微软).它完全是供应商和语言中立的.除了SOAP之外,没有其他DOS(分布式对象技术)技术
我是一名软件架构师,经常不得不选择在系统设计中应该使用哪个DOS.如果不是我每次面对的宗教战争,那么它将是一个妈妈或CORBA.
以这种方式看待它,如果它已经死了,3/4G网络都不会起作用.3GPP完全是CORBA指定的.欧洲卫星系统是指定的CORBA.问你自己为什么?这是因为它们必须基于供应商和语言中立的架构!
我要说的是,Web服务(包括REST)和Java世界EJB(甚至可能使用CORBA)的当前成熟度涵盖了分布式企业系统所需的内容.
我建议您应该仔细查看的一个方面是您在分布式系统中需要的异步交互程度.我假设任何非平凡规模的分布式系统都需要异步通信,所选择的基础设施应支持异步处理,通常意味着队列.
这与使用WebServices(或者实际上是CORBA)并不矛盾,但它确实指出了您的产品选择的一个方面,在最初兴奋的一些分布式处理过程中可能会被忽略
| 归档时间: |
|
| 查看次数: |
20204 次 |
| 最近记录: |