CORBA、RMI 和 SOA

Posted

技术标签:

【中文标题】CORBA、RMI 和 SOA【英文标题】:CORBA, RMI and SOA 【发布时间】:2011-09-07 00:06:56 【问题描述】:

Web 服务是一种面向服务的架构实现。

但是,我们可以说 CORBA、RMI 和 Java EE 平台也是 SOA 的实现吗?

【问题讨论】:

【参考方案1】:

如果你说 SOA 意味着 WS-* 标准,那么答案是“不”。

但如果 SOA 意味着分布式组件使用商定​​的协议进行通信,那么答案是肯定的,您可以将 CORBA、RMI 和 Java EE 视为 SOA。 (我的建议是去掉“2”——它已经消失了很长时间。除非你想显得过时,否则请将其称为 Java EE。)

即使是 Web 服务也至少有两种风格:SOAP 和 REST。您还可以包括 XML-RCP。

所有情况的区别在于协议的选择。

SOAP 使用自己的基于 HTTP 的 XML 请求/响应惯用语。

REST 是直接的 HTTP - 每个请求的 GET、POST、URL。

CORBA 使用 OMG 标准协议。 ORB 之间的互操作性以及每种语言的不同绑定曾经是一个大问题。自从我使用 CORBA 以来已经很长时间了,以至于我对当前的技术状态一无所知。我不知道有谁再使用 CORBA。从我的角度来看,这是一种失败的、死气沉沉的技术。

RMI 是对 CORBA 的纯 Java 解决方案。所有端点都必须用 Java 实现并使用 RMI。

Java EE 使用 RMI 作为 EJB 的基础。

简单而开放的胜利:这就是基于 HTTP 的协议越来越受欢迎的原因。

【讨论】:

非常感谢您提供的清晰信息。就一件事 。当我们谈论 SOA 时,它不是关于任何特定的技术,所以 SOA 不是 WS-* 标准,但 WS-* 是一种 SOA 实现方式,是这样吗? 感谢您的支持 - 我将不胜感激,如果您认为它有帮助,请接受它。 我做到了,再次感谢您。请问我的评论呢:)?【参考方案2】:

是的。 WS-* 是实现 SOA 最常用的方法之一。

【讨论】:

以上是关于CORBA、RMI 和 SOA的主要内容,如果未能解决你的问题,请参考以下文章

Corba 的 RMI 是不是有任何“远程异常”?

将 rmi 接口转换为 CORBA .idl

通过 http 对 RMI 或 Corba 网络流量进行网络检查?

使用 java RMI 和 CORBA 的分布式计算

CORBA IDL 与 RMI 的优缺点? [复制]

RMI 需要 java.rmi.server.hostname 进行 NAT,那么像 CORBA 这样的其他技术解决 NAT 问题的方法是啥?