【发布时间】:2010-12-07 20:59:18
【问题描述】:
我试图了解 .NET 远程处理(和类似技术)与 SOA 之间的概念(相似点和不同点)。谁能详细解释一下?
【问题讨论】:
标签: .net web-services remoting soa
我试图了解 .NET 远程处理(和类似技术)与 SOA 之间的概念(相似点和不同点)。谁能详细解释一下?
【问题讨论】:
标签: .net web-services remoting soa
它们没有可比性。
.NET 远程处理是一种(已过时,使用 WCF)技术,用于调用远程服务。您可以在 SOA 环境以及纯客户端-服务器通信(更可能是客户端-服务器通信)中使用 .NET 远程处理。 .NET 远程处理不讨论为什么他们彼此交流,只是如何交流。
SOA 是一个关于几个不同服务如何相互合作的概念(或企业架构)。它并没有过多地谈论使用什么技术,而是谈论如何将不同的服务与统一的业务对象和统一的接口连接起来的结构。 SOA 是一个如何对那些通用接口和通用业务对象进行建模和提取的过程。
【讨论】:
SOA 比远程处理更具企业规模——在 SOA 中,您可能有许多组件可以实现服务发现、工作负载和方法调用管理以及资源管理等。
【讨论】:
简单来说,Remoting 具有紧密耦合的组件,而 SOA 具有松散耦合的组件。
在 Remoting 中,它只是 .Net 或 Java(或 C++ 等)中常见的过程调用开发风格的扩展,扩展为允许远程过程调用。双方(客户端和服务器)通常构建在同一平台上,并且调用并非旨在与其他平台互操作。
在 SOA 中,服务的构建意图是调用它们的客户端可能不会构建在同一平台上。通常,SOA 解决方案是围绕这样一种思想构建的,即客户端和服务器之间的调用被视为一条消息,并且消息本身与操作一样重要。
将客户端到服务器的调用视为消息的好处是,当消息从客户端路由到服务器时,可以使用其他服务与消息进行交互,从而更容易注入新功能,而无需重写客户端或服务器。您可以使用 Remoting 来完成其中的一些工作,但它不像 SOA 那样简单,因为客户端和服务器端的构建可能都没有考虑到这种可扩展性。话虽如此,SOA 确实增加了架构的复杂性。不复杂的复杂性可能不值得额外投资。优秀的架构师会帮助您确定项目中每种开发风格的优缺点,帮助确定何时使用每种风格。
【讨论】: