Web服务和远程处理有什么区别?

时间:2009-09-15 09:59:40

标签: c# .net wcf web-services .net-remoting

我了解网络服务并对远程处理有一定的了解。 这两个概念都在客户端机器上调用方法,所以差异在哪里?

通过远程处理,我们也可以在远程机器上执行该方法,同样的功能也可以通过Web服务实现。

如果这是一个显而易见的问题,请原谅我。

7 个答案:

答案 0 :(得分:21)

两者都支持分布式应用程序。

Web服务是跨平台的,使用通用标准并通过防火墙工作。他们还会根据消息而不是对象来思考 - 您向服务发送消息,然后您会收到回复。

远程处理是一种仅限MS的技术,它不是跨平台的,而是以二进制格式进行通信。它根据对象思考,在远程服务器上创建一个对象并使用它。它不适用于防火墙。 Remoting现在也已经死了,MS赞成WCF(包括网络服务)

答案 1 :(得分:2)

.NET Remoting concept是一种Microsoft / .NET特定的进程间通信技术。

“Web服务”一词因其炒作而非常分散。但我认为W3C definition在大多数情况下是有用的。它定义了WSDL作为接口描述和SOAP作为消息协议的使用。

根据Microsoft .NET Remoting: A Technical Overview on MSDN,Remoting使用二进制或XML编码。而XML编码使用SOAP。但据我所知,它不符合WS-I Basic Profile。因此,它提供了极其有限的Web服务互操作性。

这两个概念都允许进程间通信。如果您的应用程序仅使用.NET,那么使用.NET Remoting是一个不错的选择。

但是,如果您计划提供与其他编程语言的互操作性,那么应该使用Web服务。

答案 2 :(得分:2)

基于ASP.NET的Web服务只能通过HTTP访问。 .NET Remoting可以在任何协议中使用。

Web服务在无状态环境中工作,其中每个请求都会创建一个新对象来为请求提供服务。 .NET Remoting支持状态管理选项,可以关联来自同一客户端的多个调用并支持回调。

Web服务通过SOAP消息中包含的XML序列化对象,因此只能处理可以用XML完全表达的项目。 .NET Remoting依赖于包含有关数据类型信息的公共语言运行库程序集的存在。这限制了必须传递给对象的信息,并允许通过值或引用传递对象。

Web服务支持跨平台的互操作性,适用于异构环境。 .NET Remoting要求客户端使用.NET或其他支持.NET Remoting的框架构建,这意味着同构环境。

答案 3 :(得分:1)

远程处理和Web服务都是应用程序之间的通信方式。

远程处理 - 在远程处理中,通信过程中涉及的应用程序可能位于同一台计算机上,位于相同或不同网络中的不同计算机上。在远程处理中,两个应用程序都相互了解。在另一个应用程序上创建应用程序对象的代理。

Web服务 - 使用Web服务的应用程序之间的通信独立于平台并且独立于编程。使用Web服务的应用程序只需访问它,而无需知道该Web服务实际上是如何实现的。创建。

答案 4 :(得分:0)

Web服务是远程处理的一种形式,因为您有效地在AppDomain之外的同一台机器上执行代码。

在同一台机器上或通过网络进行远程处理(InterProcess),通过透明代理和序列化在AppDomain /平台边界之间制作对象是不同的。远程处理具有复杂性,很容易变得非常复杂。 WCF使维护更简单。性能方面,我没有比较两种方法,并且肯定会有兴趣看看在InterProcess环境中的两种情况。由于WCF可以与二进制绑定进行通信,因此不限于HTTP协议。

WCF使用管道进行进程间通信使这变得更加简单。

最终WebServices用于通过端口80(标准)进行通信HTTP和Remoting可以使用不同的序列化格式化器通过预定义的端口和通道进行通信。

现在它们已经被WCF升级,现在它为这些类型的通信提供了方法。

答案 5 :(得分:0)

远程处理是模拟作为本地方法调用的外来方法,接受相同类型的参数,因此它所需要的是对对象进行序列化并传输调用远程方法(使用相同的语言或平台),并提供相应的参数。 / p>

Web服务(SOAP服务)处理RPC术语中的跨平台方法调用,但是可以使用文档样式服务进一步改进,这里语言或平台不是障碍,因为XML将通过编组和解组本机来充当中间体和XML表示。

答案 6 :(得分:-1)

虽然WebService是通过HTTP实现的,但Remoting是通过TCP / UDP实现的。 因此,Remoting在速度方面表现更好。