Remoting和Webservice的区别

Remoting和Webservice的区别

其实现的原理并没有本质的区别,在应用开发层面上有以下区别:
1、Remoting可以灵活的定义其所基于的协议,如果定义为HTTP,则与Web Service就没有什么区别了,一般都喜欢定义为TCP,这样比Web Service稍为高效一些
2、Remoting不是标准,而Web Service是标准;
3、Remoting一般需要通过一个WinForm或是Windows服务进行启动,而Web Service则需要IIS进行启动。
4、在VS.net开发环境中,专门对Web Service的调用进行了封装,用起来比Remoting方便

我建议还是采用Web Service好些,对于开发来说更容易控制
Remoting一般用在C/S的系统中,Web Service是用在B/S系统中
后者还是各语言的通用接口
相同之处就是都基于XML

  • 为了能清楚地描述Web Service 和Remoting之间得区别,我打算从他们的体系结构上来说起: 
    Web Service大体上分为5个层次: 
    1. Http传输信道 
    2. XML的数据格式 
    3. SOAP封装格式 
    4. WSDL的描述方式 
    5. UDDI

    总体上来讲,.NET 下的 Web Service结构比较简单,也比较容易理解和应用: 
    一般来讲在.NET结构下的WebService应用都是基于.net framework以及IIS的架构之下,所以部署(Dispose)起来相对比较容易点. 
    从实现的角度来讲,

    首先WebService必须把暴露给客户端的方法所在的类继承于:System.Web.Services.WebService这个基类 
    其次所暴露的方法前面必须有[WebMethod]或者[WebMethodAttribute]

    WebService的运行机理 
    首先客户端从服务器的到WebService的WSDL,同时在客户端声称一个代理类(Proxy Class) 
    这个代理类负责与WebService服务器进行Request 和Response 
    当一个数据(XML格式的)被封装成SOAP格式的数据流发送到服务器端的时候,就会生成一个进程对象并且把接收到这个Request的SOAP包进行解析,然后对事物进行处理,处理结束以后再对这个计算结果进行SOAP包装,然后把这个包作为一个Response发送给客户端的代理类(Proxy Class),同样地,这个代理类也对这个SOAP包进行解析处理,继而进行后续操作。

    这就是WebService的一个运行过程。

    下面对.net Remoting进行概括的阐述: 
    .net Remoting 是在DCOM等基础上发展起来的一种技术,它的主要目的是实现跨平台、跨语言、穿透企业防火墙,这也是他的基本特点,与WebService有所不同的是,它支持HTTP以及TCP信道,而且它不仅能传输XML格式的SOAP包,也可以传输传统意义上的二进制流,这使得它变得效率更高也更加灵活。而且它不依赖于IIS,用户可以自己开发(Development)并部署(Dispose)自己喜欢的宿主服务器,所以从这些方面上来讲WebService其实上是.net Remoting的一种特例。
    Remoting的两种通道
      Remoting的通道主要有两种:Tcp和Http。在.Net中,System.Runtime.Remoting.Channel中定义了 IChannel接口。IChannel接口包括了TcpChannel通道类型和Http通道类型。它们分别对应Remoting通道的这两种类型

    1. remoting 是MarshByReference的,可以传变量的引用,直接对服务器对象操作。速度快,适合intranet(企业内部互联网)。
     webservice 是MarshByValue的,必须传对象的值。速度慢,可以过FIREWALL,配置比较简单,适合internet(因特网)。

  • 2. 一般来说,remoting是和平台相关的,需要客户和服务器都是.NET,但可配置特性比较好,可以自定义协议。web service可以做到跨平台通信,但必须采用SOAP协议。

    3. Soap消息有rpc和文档两种样式。 文档样式的body元素中包含一个或多个元素,可以是任何内容,只要接受者理解就行了。rpc样式的的body元素中包含调用的方法或远程过程的名称,以及代表方法参数的元素。

    .net对这两种样式的实现就是web service 和remoting .

概括的说Remoting与Web Services的区别是:
(1)既支持TCP信道又支持HTTP信道,传输速度快
(2)即可传输XML的SOAP包又可传输二进制流,效率高
(3)Remoteing主要用于C/S结构项目
(4)不一定要依赖IIS服务器

时间: 2024-10-08 11:03:46

Remoting和Webservice的区别的相关文章

WCF与WebService的区别

1.WebService:严格来说是行业标准,不是技术,使用XML扩展标记语言来表示数据(这个是夸语言和平台的关键).微软的Web服务实现称为ASP.NET Web Service.它使用Soap简单对象访问协议来实现分布式环境里应用程序之间的数据交互.WSDL来实现服务接口相关的描述.此外Web services 可以注册到UDDI中心.供其客户查找使用.     后来微软做了ASP.NET Web Service的安全,性能,数据加密.解密,托管宿主等多方面的扩展,称为WSE系列,这个是过度

WCF与 WebService的区别

根据自己的理解总结一下wcf与webservice的区别吧其中也有其他的园友的一些观点,记录下来... WCF不依赖于IIS. WCF可以配置BasicHttpBinding来兼容WS. WCF可以基于TCP或MessageQueue来传输数据. WCF可以使有状态的并且支持事务. WCF 支持多种通信协议 Http/Https .TCP/UDP.MSMQ.命名管道.对等网.消息可达性.事务流等. WCF支持多种消息传输格式Text,JSON,Motom,Binary WCF 支持多种会话模式:

Remoting&WebService的区别之处

Remoting与Web Services的区别是:(1)既支持TCP信道又支持HTTP信道,传输速度快(2)即可传输XML的SOAP包又可传输二进制流,效率高(3)Remoteing主要用于C/S结构项目(4)不一定要依赖IIS服务器 remoting与平台相关,需要客户和服务器都支持.net framework框架,可配置特性比较好,可以自定义协议. web service可以做到跨平台通信,但必须采用SOAP协议.

浅谈.net remoting 与 webservice

1. .NET Remoting .NET Remoting是微软随.NET推出的一种分布式应用解决方案,被誉为管理应用程序域之间的 RPC 的首选技,它允许不同应用程序域之间进行通信(这里的通信可以是在同一个进程中进行.一个系统的不同进程间进行.不同系统的进程间进行). 更具体的说,Microsoft .NET Remoting 提供了一种允许对象通过应用程序域与另一对象进行交互的框架.也就是说,使用.NET Remoting,一个程序域可以访问另外一个程序域中的对象,就好像这个对象位于自身内

Hessian与Webservice的区别

Hessian:hessian是一个轻量级的remoting onhttp工具,使用简单的方法提供了RMI的功能,相比WebService,Hessian更简单.快捷. 采用的是二进制RPC协议,因为采用了二进制协议,所以它很适合于发送二进制数据,Hessian主要作面向对象的消息通信. Hessian的初衷就是支持动态类型,格式紧凑,跨语言.Hessian是使用自己的序列化机制实现的编组和反编组,其支持的数据类型是有限制的,不支持复杂的对象,可以穿透防火墙.  在这里不得不说一下RMI:RMI

深入理解.net remoting 与webservice

1. .NET Remoting .NET Remoting是微软随.NET推出的一种分布式应用解决方案,被誉为管理应用程序域之间的 RPC 的首选技,它允许不同应用程序域之间进行通信(这里的通信可以是在同一个进程中进行.一个系统的不同进程间进行.不同系统的进程间进行). 更具体的说,Microsoft .NET Remoting 提供了一种允许对象通过应用程序域与另一对象进行交互的框架.也就是说,使用.NET Remoting,一个程序域可以访问另外一个程序域中的对象,就好像这个对象位于自身内

WCF和webservice的区别

1.WebService:严格来说是行业标准,不是技术,使用XML扩展标记语言来表示数据(这个是夸语言和平台的关键).微 软的Web服务实现称为ASP.NET Web Service.它使用Soap简单对象访问协议来实现分布式环境里应用程序之间的数据交互. WSDL来实现服务接口相关的描述.此外Web services 可以注册到UDDI中心.供其客户查找使用.    后来微软做了ASP.NET Web Service的安全,性能,数据加密.解密,托管宿主等多方面的扩展,称为WSE系列,这个是过

MQ与webservice的区别,MQ的区别

Webservice 和MQ(MessageQueue)都是解决跨平台通信的常用手段,两者有哪些区别呢? 个人认为最本质的区别在于 Webservice近乎实时通信,而MQ却通常是延时通信. 什么意思呢? 因为webservice其实就是本地服务器程序调用远程服务器上的方法,属于两者之间的交互,请求的时候需要等被请求的服务器做出回应后,另一端才会有所动作,也就是说,如果你请求的service服务器关闭了,或者中断了,那么你这边肯定就得不到答复了,你的这次请求就算是打水漂丢失了. 而MQ 则相当于

HttpClient和WebService的区别和介绍

1. HTTP 协议可能是现在 Internet 上使用得最多.最重要的协议了,越来越多的 Java 应用程序需要直接通过 HTTP 协议来访问网络资源.  HttpClient用来调用服务,它是模拟一个浏览器,发送Http的请求,服务器会返回请求的一个响应结果,      Httpclient然后把响应的结果取出来.HttpClinet相当于一个客户端,    使用Http协议调用系统中的方法 HttpClient 是 Apache Jakarta Common 下的子项目,用来提供高效的.最