【发布时间】:2011-09-07 00:06:56
【问题描述】:
Web 服务是一种面向服务的架构实现。
但是,我们可以说 CORBA、RMI 和 Java EE 平台也是 SOA 的实现吗?
【问题讨论】:
标签: soa
Web 服务是一种面向服务的架构实现。
但是,我们可以说 CORBA、RMI 和 Java EE 平台也是 SOA 的实现吗?
【问题讨论】:
标签: soa
如果你说 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 的协议越来越受欢迎的原因。
【讨论】:
是的。 WS-* 是实现 SOA 最常用的方法之一。
【讨论】: