北风首页专栏登陆RSS收藏

简述WebS简述WebService与.NET Remoting的区别及适应场合

作者:libin_8745 发布于:2009年03月11日 16:51

为了能清楚地描述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的一种特例。

比较
再次我们对WebService 以及Remoting做一个比较
WebService的特点是:平台独立性(Platform-independent)、跨语言(只要能支持Xml的语言都可以) 以及穿透企业防火墙;.Net   webservice是基于http的是无状态的;
但是它的缺点也很明显,就是需要部署一台Web Server;而且速度比较慢;

.Net Remoting的特点是
他的优点是用户既可以使用TCP信道方式进行二进制流方式通信,也可以使用HTTP信道进行SOAP格式的性通信
效率相对WebService要高不少;
remoting可以用于有状态的情况;
但是它的缺点也很明显,.Net remoting只能应用于MS 的.Net framework之下。

使用场合
 如果互动双方都是支持   .Net技术的环境,并且在操作系统上能提供一致的验证机制,而且很重视沟通双方作业的效率,就是   .Net   Remoting上场的时机。相反的,如果沟通双方是异质环境,又或沟通的模式就是无状态的情况,持续进行的互动作业前后是没有关联的,Web   Service就是理想选择了。

以上文章转载自互联网

作者:libin_8745
来源:北风技术专栏
原文链接:http://column.ibeifeng.com/libin_8745/20090311290.shtml

( 内容完 )

添加收藏到:

您可能还对这些文章感兴趣:

  • 类(class) PK 结构(struct)
  • ewebeditor使用教程(一)
  • Hibernate+Struts的J2EE应用开发
  • ExtJS第一步:揭开ExtJS的神秘面纱
  • 推荐几本学习java的书
  • Asp.net2.0 中自定义过滤器对Response内容进行处理
  • 按值传递还是按引用传递
  • 隐私策略
  • 博客系统第一讲:课程介绍和系统分析
  • 修改对象私有属性
  • 没有评论, 我来评论

    小贴士:评论需要管理员审核后才会显示。请不要发布与国家法律相抵触的言论,北风网将保留追究责任的权利。
    类似“顶”、“沙发”、“支持”之类没有营养的文字,对勤劳贡献的作者来说是令人沮丧的反馈信息。
    请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
    如果您发现自己的评论没有被审核或者不见了,请参考以上三条。

    每周之星

    陈臣陈臣

    七年Java和JEE开发经验,JEE应用设计和高级架构师,拥有Sun的多项Java和J2EE方面的技能认证,多年项目经理、技术部经理的管理经验。拥有全面、扎实的Java和JEE理论知识,丰富的JEE应用开发经验。

    更多作者:

  • Adam
  • ikon999
  • libin_8745
  • lifengxing
  • taohuang100
  • xingkong
  • 呆子
  • 子晨
  • 小白
  • 张章
  • 张维亮
  • 陈臣
  • 陶宝哥
  • 风风
  • 最新内容

    推荐内容

    标签

    分类

    北风专栏测试中,有任何问题请联系我们