Remoting和Webservice的详细介绍及区别

 更新时间:2016年11月26日 15:52:16   投稿:lqh  
这篇文章主要介绍了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服务器

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

相关文章

  • 合并网页中的多个script引用实现思路及代码

    合并网页中的多个script引用实现思路及代码

    为了更好的进行封装,每个实现不同功能的js代码应该有自己的js文件,这样如果一个网页中引用了多个js文件会很难管理,所以就出现了合并js这以说,感兴趣的朋友不妨参考下本文希望对你有所帮助
    2013-02-02
  • 解决WPF中空域问题(Airspace issuse)

    解决WPF中空域问题(Airspace issuse)

    空域问题是由于Winform与WPF在底层渲染机制上有所区别而导致的。下面小编给大家分享解决WPF中空域问题(Airspace issuse),需要的朋友参考下吧
    2017-04-04
  • DiscuzNT 论坛与主站的同步登录与退出

    DiscuzNT 论坛与主站的同步登录与退出

    首先我先说明一下,我参考了这篇文章:http://nt.discuz.net/showtopic-49836.html,在这篇文章启发下简单化。 我装的是2.5Beta版
    2009-03-03
  • 快速入门ASP.NET Core看这篇就够了

    快速入门ASP.NET Core看这篇就够了

    ASP.NET Core 是一个由微软创建的,用于构建 web 应用、API、微服务 的 web 框架。通过本文的学习就能快速的入门ASP.NET Core,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • ASP.NET通过byte正确安全的判断上传文件格式

    ASP.NET通过byte正确安全的判断上传文件格式

    本文介绍一种更安全的方式上传图片,他能有效的防止一些通过修改文件后缀或MIME来伪造的图片的上传,从而保证服务器的安全,希望对大家有所帮助。
    2016-03-03
  • ASP.NET 窗体间传值的方法

    ASP.NET 窗体间传值的方法

    这篇文章介绍了ASP.NET 窗体间传值的方法,有需要的朋友可以参考一下,希望对你有所帮助
    2013-07-07
  • asp.net Coolite 学习交流

    asp.net Coolite 学习交流

    近来不知什么原因,发现国人有不少开始学习Coolite了,对于有些人可能不知道什么是Coolite,这里先简单介绍一下
    2009-05-05
  • ASP.NET MVC生成静态页面的方法

    ASP.NET MVC生成静态页面的方法

    对于网站来说,生成纯html静态页面除了有利于seo外,还可以减轻网站的负载能力和提高网站性能。本篇文章主要介绍了ASP.NET MVC生成静态页面的方法,有兴趣的可以了解一下。
    2017-03-03
  • asp.net更新指定记录的方法

    asp.net更新指定记录的方法

    这篇文章主要介绍了asp.net更新指定记录的方法,涉及针对指定ID调用update语句的方法,是非常实用的技巧,需要的朋友可以参考下
    2014-11-11
  • 使用Fiddler调试visual studion多个虚拟站点的问题分析

    使用Fiddler调试visual studion多个虚拟站点的问题分析

    本篇文章小编为大家介绍,使用Fiddler调试visual studion多个虚拟站点的问题分析。需要的朋友参考下
    2013-04-04

最新评论