笔者在一家公司做的时候的一些回忆。
什么是Web service ?
http://blog.sina.com.cn/s/blog_51dc0fba0100amyj.html
功能全面的web services平台是XML +HTTP+SOAP+WSDL+UDDI.
◆SOAP(Simple Object Access Protocol ,远程调用)
◆UDDI(Universal Description , Discovery and Integration Service
贸易,目录服务)
◆WSDL(描述服务特征)
◆XLANG/XAML(为包括多种web services的复杂web 事务提供支持)
◆XKMS(XML Key Management Specification) -支持认证和注册,这个工
作还在进展之中
Remoting与Webservice性能测试报告
http://www.cnblogs.com/lxsfg/articles/581076.html
http://blog.csdn.net/nizhigang2000/archive/2004/07/21/47743.aspx
在相同的环境下Remoting的效率是Webservice的3 倍
感觉WebService比EJB 的RMI 方法要消耗约15% 左右的效率。
remoting和webservice有什么区别
http://www.cnblogs.com/lmjob/articles/1200024.html
其实现的原理并没有本质的区别,在应用开发层面上有以下区别:
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 服务器
SOAP都是没规定和传输协议的关系,它只是一种XML 规范。
Web Services Enhancements , or WSE , and often pronounced as "Wizzy,
" is a developer tool that abstracts you away from much of the specification
detail when incorporating security into your connected system applications.
WSE is primarily focused on bringing message-level security to distributed
application development. The article, Why WSE?, describes such scenarios.
Essentially WSE is about more flexible development of application architectures.
If you look across the WS-* specifications you see a trend where functionality
is being elevated from the transport protocol level (security, reliability,
session management) to the message protocol level(WS-Security , WS-ReliableMessaging,
WS-SecureConversation ) and when combined with agreed specifications
for data exchange (XML , XML Schema , SOAP , WSDL ) and existing
transport protocols (HTTP, TCP, UDP) this enables adaptable and extensible
applications that also deliver on the goals on interoperability and integration.
ws支持http tcp smtp msmq的确没错