惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Engineering at Meta
Engineering at Meta
C
Cyber Attacks, Cyber Crime and Cyber Security
博客园 - 司徒正美
月光博客
月光博客
Hugging Face - Blog
Hugging Face - Blog
T
Tailwind CSS Blog
罗磊的独立博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园 - 三生石上(FineUI控件)
博客园_首页
博客园 - 【当耐特】
Cisco Talos Blog
Cisco Talos Blog
J
Java Code Geeks
C
CXSECURITY Database RSS Feed - CXSecurity.com
S
SegmentFault 最新的问题
人人都是产品经理
人人都是产品经理
Jina AI
Jina AI
AWS News Blog
AWS News Blog
S
Schneier on Security
NISL@THU
NISL@THU
F
Fortinet All Blogs
L
LINUX DO - 热门话题
Google DeepMind News
Google DeepMind News
量子位
IT之家
IT之家
T
The Exploit Database - CXSecurity.com
爱范儿
爱范儿
GbyAI
GbyAI
T
The Blog of Author Tim Ferriss
T
Tor Project blog
V
Vulnerabilities – Threatpost
V
Visual Studio Blog
宝玉的分享
宝玉的分享
Spread Privacy
Spread Privacy
L
Lohrmann on Cybersecurity
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Y
Y Combinator Blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
P
Privacy International News Feed
S
Securelist
P
Palo Alto Networks Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
A
Arctic Wolf
T
Tenable Blog
B
Blog
C
CERT Recently Published Vulnerability Notes
P
Proofpoint News Feed
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
T
Threat Research - Cisco Blogs
T
Threatpost

博客园 - 碧海蓝天

SQL Server 附加数据库时报1813错误的解决方案 SQL Server连接数据库记录清除 CSS 滤镜 各大搜索引擎网站登录入口 Windows 7安装SQL2008的顺序 如何判断搜索引擎机器人(蜘蛛)有没有爬行你的站点? - 碧海蓝天 - 博客园 Windows服务端口大全 Kubuntu下root登录 用于中文 VS2008 的 Microsoft Silverlight Tools Beta 2发布 jQuery.ajax - 碧海蓝天 - 博客园 IE Version Vector - 碧海蓝天 主流浏览器引擎简介 IE、Firefox、Opera和Safari对CSS样式important和*的支持 - 碧海蓝天 - 博客园 今天俺也Hi了一把 Asp.net中DataBinder.Eval用法的总结 - 碧海蓝天 - 博客园 javascript refresh page jQuery Intellisense for Visual Studio 2008 验证手机号码的js代码 Linux自动安装命名
Remoting和WebService有什么区别
碧海蓝天 · 2008-05-14 · via 博客园 - 碧海蓝天

其实现的原理并没有本质的区别,在应用开发层面上有以下区别:

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的一种特例。

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

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

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

.NET对这两种样式的实现就是Web Service 和Remoting .