`

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

     

     

    《二》

    webservice和remoting在分布式程序中的应用
    1、.net remoting使用HttpChannel,可以和WebService一样使用Http协议的各种好处,比如传透防火墙,但WebService是一个跨平台的东东,Java和.Net可以互相提供和引用对方的WebService,.net remoting就限制于.net平台使用。我觉得.net remoting比web service在现阶段更具有实用性。

    2、remoting是有状态的,是紧密耦合;web service是无状态的,是松散耦合;总的来说remoting适合局域网内,对性能和响应效率要求较高的场合;而web service适合跨网络,跨系统,对移植性和通用性要求较高的场合;remoting和web service严格的说都不是和J2EE的EJB对应的技术,如果一定要比较,那么部署在COM+/MTS的.net remoting组件可以和EJB对应。公允的说,目前DotNet在企业级应用上的结构还不完整。

    3  Remoting的数据传输会是用自己定义的格式,而WebService用的SOAP协议。 

     

     

    《三》

    通常用到的Remoting的概念有:
    Remoting Channel:这是指客户端和服务器端的通信协议,如我们可以使用TCP, HTTP协议。
    Serializer:这是指在传输时采用何种格式来传输数据,如我们可以采用Binary,也可以采用SOAP来传输XML格式的数据.
    Remoting和Web Service区别
    Remoting和Web Servcie到底有什么样的差别呢?下表是一个简单的比较:
    Webservice和Remoting的区别
    由于Web Service是一个简单的松耦合结构,所以对于对象的状态不予保存。这一点有点像Remoting中的Single Call对象。同样,Web Service目前还不支持Event和回调函数。相比较来说,Remoting还支持效率较高的Binary编码方式。
    但是,Remoting只能够运行在.NET Framework之上,而Web Service相应就享有更多、更灵活的选择。

    分享到:
    评论

    相关推荐

      remoting与webservice的区别

      remoting与webservice的区别

      深入浅出对比remoting与webservice的区别

      深入浅出对比remoting与webservice的区别 很详细的说明2种技术使用场景

      C#.net remoting和webservice

      C#.NET Remoting与Web服务是两种不同的分布式应用程序通信机制,它们都允许.NET应用程序在不同进程或计算机之间共享数据和功能。理解这两种技术的核心概念、差异以及适用场景是提升开发能力的关键。 首先,C#.NET ...

      Remoting和Webservice的详细介绍及区别

      Remoting和Webservice区别: 其实现的原理并没有本质的区别,在应用开发层面上有以下区别: 1、Remoting可以灵活的定义其所基于的协议,如果定义为HTTP,则与Web Service就没有什么区别了,一般都喜欢定义为TCP,...

      Webservice和Remoting的区别

      Webservice与Remoting的区别 Webservice和Remoting都是用于实现远程调用和数据交换的技术,但是它们在设计、实现和应用方面有着很大的不同。Webservice是一种基于SOAP、WSDL和UDDI的技术,用于实现不同平台和应用...

      remoting服务自动转变为webservice服务

      6. **测试和调试**:使用工具如Postman或Web Service客户端测试你的新Web Service,确保其功能与原始的Remoting服务相同。 7. **更新客户端**:最后,更新所有依赖于原Remoting服务的客户端代码,使它们指向新的Web...

      WCF 与WebService 和Remoting性能比较

      **标题:“WCF 与WebService 和Remoting性能比较”** **描述分析:** 该主题旨在探讨Windows Communication Foundation (WCF)、Web Services (WebService)以及Remoting这三种.NET框架下的远程通信技术在性能上的...

      c#WINFORM与WEB的直接交互非webservice方法

      "C# WinForm与Web的直接交互非WebService方法"是一个重要的主题,因为它涉及到不同应用层之间的通信,而无需通过传统的Web服务作为中介。 WinForms是.NET Framework的一部分,它提供了构建用户界面的控件和事件处理...

      .NET Remoting学习笔记

      .NET Remoting 与 WCF 和 WebService 在用途和技术实现上有显著差异: 1. **与 WebService 的区别**: - WebService 是一种标准化技术,使用 XML 和 SOAP 进行通信,支持多种平台和语言。 - .NET Remoting 是非...

      WebService技术在分布式开发中的应用与实现

      .NET平台提供了强大的工具和库来开发和实现WebService,本文将着重分析.NET下三种分布式开发技术:WebService、Remoting和MSMQ,以及它们在具体项目中的应用实现。 首先,WebService技术主要依赖于SOAP协议(简单...

      WebService数据交互事例

      通过这种方式,Flex客户端可以与.NET的WebService无缝对接,实现数据的获取和交互。这种交互方式在跨平台项目中尤其有用,因为它允许Flex应用调用远程服务,从而实现更复杂的功能,而不受限于特定的后端技术。 总结...

      WCF和webservice例子

      WCF是微软提出的一种全面的服务架构,它集成了.NET Framework中的多种通信技术,如.NET Remoting、Web Services、Message Queuing(MSMQ)等,提供了一种统一的方式来创建和部署跨网络、进程甚至跨计算机的分布式...

      Hession与Webservice的区别共2页.pdf.zip

      标题中的“Hession与Webservice的区别”提示我们讨论的主题是两种不同的服务通信协议:Hession和Web服务(通常指的是SOAP或RESTful Web服务)。这两者都是用于不同应用程序之间交换数据的方式,但它们在实现方式、...

      WebService简介

      .NET Framework提供了强大的工具和服务,使得开发人员能够轻松地集成WebService。 #### 7. ASP程序如何呼叫WebService ASP(Active Server Pages)程序也可以调用WebService。这通常通过编写适当的脚本来实现,...

      自己弄的三层框架Spring.net,Remoting

      1, DataAccess 数据访问层, 使用Ado.Net和Sql2005交互..数据访问层基本的Model, 单表基本操作存储过程, Dao代码可以由"动软代码生成工具修改版"生成 2, WebService 调用数据访问层, 提供Web层需要的数据. 使用...

      spring使用注解暴露remoting服务

      在Spring框架中,注解是实现服务暴露和远程调用(Remoting)的重要方式,它极大地简化了配置,提高了代码的可读性和可维护性。本文将深入探讨如何使用注解来实现Spring中的Remoting服务。 首先,让我们理解什么是...

      RemotingAndWebService

      Remoting 和 WebService 是两种在分布式环境中进行数据传输和交互的技术。它们都是.NET框架中用于实现跨进程通信的重要工具,但各自有其特点和适用场景。在这个名为"RemotingAndWebService"的示例工程中,我们可以...

      使用spring远程调用服务端接口实现WebService功能

      HttpInvokerServiceExporter会自动处理请求的序列化和反序列化,使得远程调用过程简化。 1. **服务提供者端配置**:在服务端,你需要创建一个实现了特定业务接口的bean,并使用HttpInvokerServiceExporter来暴露这...

      。netRemoting 实例

      Remoting和WebService都是.Net提供的远程访问的方法,Remoting具有以下几个优点 1、Tcp通道的Remoting速度非常快 2、虽然是远程的,但是非常接近于本地调用对象 3、可以做到保持对象的状态 4、没有应用程序限制,...

    Global site tag (gtag.js) - Google Analytics