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

我知道Web服务并且对远程处理有一定的了解。 这两个概念都在客户机上调用方法,所以区别在哪里?

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

如果这是一个明显的问题,请原谅我..

两者都支持分布式应用

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

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

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

由于它的炒作,“Web服务”一词非常分散。 但我认为W3C定义适用于大多数情况。 它定义了WSDL作为接口描述和SOAP作为消息协议的使用。

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

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

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

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

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

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

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

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

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

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

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

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

WCF使用Pipes进行InterProcess通信使这变得更加简单。

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

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

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

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

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