Cowboy Galaxy

Learner

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
        web Service是一个应用组件,它逻辑性的为其他应用程序提供数据与服务.各应用程序通过网络协议和规定的一些标准数据格式 (Http,XML,Soap)来访问Web Service,通过Web Service内部执行得到所需结果.Web Service可以执行从简单的请求到复杂商务处理的任何功能。一旦部署以后,其他Web Service应用程序可以发现并调用它部署的服务。

在构建和使用Web Service时,主要用到以下几个关键的技术和规则:   

1.XML:描述数据的标准方法.   

2.SOAP:表示信息交换的协议.   

3.WSDL:Web服务描述语言.   

4.UDDI(Universal Description, Discovery and Integration):通用描述、发现与集成,它是一种独立于平台的,基于XML语言的用于在互联网上描述商务的协议。

长项一:跨防火墙的通信

长项二:应用程序集成

长项三:B2B的集成

长项四:软件和数据重用

短处一:单机应用程序

短处二:局域网的同构应用程序 

(百度百科)

.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服务器

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

  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服务器

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

  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服务器
 

 

 

 

 

 

 

posted on 2011-01-23 01:00  WarLock!  阅读(273)  评论(0编辑  收藏  举报