2009-09-15 126 views
15

我了解web服务,并具有一定的远程处理知识。 这两个概念调用客户端机器上的方法,所以在哪里存在差异?网络服务和远程处理有什么区别?

通过远程访问,我们也可以执行远程机器和相同的功能的方法,可以通过Web服务也可以实现..

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

+0

好的问题大多是相同的。 – kenny 2009-09-15 10:14:51

回答

20

两者都支持分布式应用。

Web服务是跨平台的,使用通用标准并通过防火墙工作。他们还根据消息而不是对象 - 向服务发送消息,并得到答复。

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

+0

远程处理还没有死,只是不推荐使用。 – 2009-09-15 11:49:38

+8

好吧,它非常非常不适合然后:) – blowdart 2009-09-15 12:20:47

0

WebServices是一种远程处理形式,因为您正在其他地方或同一台机器上有效地执行代码。

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

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

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

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

-1

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

+1

Web服务不是通过HTTP实现的,除非您提到一个非常具体的实现。 W3C定义的Web服务独立于传输协议。实际上,许多Web服务框架提供了通过TCP,SMTP(例如Metro)的传输 – wierob 2009-09-15 10:27:32

+0

嗯,我确定这个人正在讨论.net Web服务 – 2009-09-15 10:50:46

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服务。

0

远程处理模拟了作为本地方法调用的外部方法,接受相同类型的参数,因此所需要的只是对对象进行严格的调用,并且调用远程方法(使用相同的语言或平台)并提供响应。

Web服务(SOAP服务)以RPC术语处理跨平台方法调用,但可以使用Document风格服务进一步改进,这里语言或平台不是障碍,因为XML通过编组和消除本机和XML表示。

1

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

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

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

2

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

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

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

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

相关问题