发布网友 发布时间:2024-09-05 10:36
共1个回答
热心网友 时间:2024-10-04 13:00
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 元素中包含一个或多个元素,可以是任何内容,只要接受者理解就行了。