博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
简述WebService与.NET Remoting的区别及适应场合
阅读量:5360 次
发布时间:2019-06-15

本文共 1533 字,大约阅读时间需要 5 分钟。

为了能清楚地描述Web Service 和Remoting之间得区别,我打算从他们的体系结构上来说起:
Web Service大体上分为5个层次:
1. Http传输信道
2. XML的数据格式
3. SOAP封装格式
4. WSDL的描述方式
5. UDDI
总体上来讲,.NET 下的 Web Service结构比较简单,也比较容易理解和应用:
一般来讲在.NET结构下的WebService应用都是基于.net framework以及IIS的架构之下,所以部署(Deployment)起来相对比较容易点.
从实现的角度来讲:
首先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)并部署(Deployment)自己喜欢的宿主服务器,所以从这些方面上来讲WebService其实上是.net Remoting的一种特例。
再次我们对WebService 以及Remoting做一个比较
WebService的特点是:平台独立性(Platform-independent)、跨语言(只要能支持XML的语言都可以) 以及穿透企业防火墙
但是它的缺点也很明显,就是需要部署一台Web Server;而且速度比较慢;
.net Remoting的特点是  他的优点是用户既可以使用TCP信道方式进行二进制流方式通信,也可以使用HTTP信道进行SOAP格式的通信  效率相对WebService要高不少;
它的缺点也很明显,.net remoting只能应用于MS 的.net framework之下。  从性能上来讲Remoting的效率和传统的DCOM、COM+的性能很相近!
最后我们介绍它们的使用场合:
如果互动双方都是支持.NET技术的环境,并且在操作系统上能提供一致的验证机制,而且很重视双方作业的效率,就是.NET Remoting上场的时机。相反的,如果沟通双方是异质的环境,又或沟通的模式是无状态的情况,持续进行的互动作业前后是没有关联的,Web Service就是理想选择了。

转载于:https://www.cnblogs.com/MaxWoods/archive/2012/07/18/2597491.html

你可能感兴趣的文章
ffmepg的基本使用
查看>>
Python字符串倒序-7. Reverse Integer
查看>>
通过SSDT HOOK实现进程保护和进程隐藏
查看>>
pygame学习笔记(1)——安装及矩形、圆型画图
查看>>
【alpha冲刺】随笔合集
查看>>
Linux
查看>>
1.谈谈对Java平台的理解
查看>>
HDU.5985.Lucky Coins(概率DP)
查看>>
UOJ399 CTSC2018 假面 期望、DP
查看>>
python中字符串的常用(部分)处理方法
查看>>
Openstack Neutron:三层技术和实现
查看>>
IIS中遇到无法预览的问题(HTTP 错误 401.3 - Unauthorized 因为 Web server上此资源的訪问控制列表(ACL)配置或加密设置,您无权查看此文件夹或页面。)...
查看>>
ImageLoader配置(凝视)
查看>>
nginx 配置隐藏index.php效果
查看>>
lay-verify进行非必填项校验
查看>>
ecshop移动端支付宝支付对接
查看>>
项目管理--简介
查看>>
线段树 区间更新(加减乘)模板
查看>>
asp.net中HttpCookie操作cookie的方法
查看>>
etcd:从应用场景到实现原理的全方位解读 转自infoq
查看>>