`

web service与远程调用(RPC)的区别

阅读更多
原文地址:http://blog.csdn.net/tekkenvs11/article/details/6280896
web service顾名思义就是一个运行在web上的服务。这个服务通过网络为我们的程序提供服务方法。类似一个远程的服务提供者。
比如,一个提供天气预报的网站需要随时更新天气情况,在WEB上挂上一个随时问讯最新天气情况的服务。我们的程序就可以从这个服务上获取到当前最新的天气信息。
Web Service 是一个能够实现远程数据交互的一个技术和协议,通过HTML进行通讯。 他实现了 不同系统不同平台,不同开发语言和开发技术实现的软件系统之间的通讯。

    根据例子运行后的感受到的区别:
Web service是一个运行在web上的服务。客户端不管是CS/BS,调用这个服务获得结果。
可以通过制作RPC的过程了解RPC的实质。
制作RPC的过程:
先做一个windows应用dll,然后“创建服务器”,使用Remoting命名空间,此“创建服务器”的项目可以是一个Console Application,最后制作“创建客户机”应用,那么服务器应用和客户机应用就可以通过网络来调用,但是服务要一直开着。简而言之:就是一个cs应用通过网络使用另外一个cs项目的方法。



其实现的原理并没有本质的区别,在应用开发层面上有以下区别:
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的一种特例。
分享到:
评论

相关推荐

    rpc远程调用使用说明&源码

    4. **代理类(Proxy Class)**:动态生成的类,实现了服务接口,内部调用RPC框架的调用逻辑。 5. **调用处理(Invocation Handler)**:处理实际的RPC调用,包括序列化、网络传输和反序列化。 深入理解RPC源码有助...

    WebServices服务接口调用---基于rpc方式应用

    在WebServices场景下,SOAP(Simple Object Access Protocol)协议通常与RPC模型结合,提供了基于XML的消息交换格式,以实现跨平台、跨语言的服务调用。 sun-jaxws.xml是Java中用于配置JAX-WS(Java API for XML ...

    Hessian Binary Web Service Protocol远程接口调用入门Demo

    Hessian二进制Web服务协议(Hessian Binary Web Service Protocol)是一种高效的、轻量级的远程过程调用(RPC)协议,它主要用于提高Web服务之间的通信效率。Hessian由Caucho Technology公司开发,旨在解决XML-RPC在...

    用Java实现基于SOAP的XML文档网络传输及远程过程调用(RPC).

    本文将深入探讨如何使用Java来实现基于SOAP的XML文档网络传输以及远程过程调用(RPC)。这是一项关键的技术,它允许不同系统间的无缝交互,即使这些系统采用不同的编程语言和平台。 SOAP是一种基于XML的协议,主要...

    ASP.net 中用C#调用Java web service 图解教程

    Web Service 是一种基于 XML 的远程 procedure 调用(RPC)机制,它允许多种语言和平台之间的交互操作。Web Service 的主要特点是: * 基于 XML 的数据交换 * 使用 SOAP 消息进行交互 * 可以跨语言、跨平台、跨网络...

    php rpc远程过程调用

    相比之下,PHP RPC提供了一种轻量级、更直接的远程调用方式,使得两个PHP应用程序之间可以像调用本地函数一样轻松地互相调用对方的方法。 **PHP RPC工作原理** 1. **客户端**:客户端拥有想要调用的远程方法的引用...

    使用spring远程调用服务端接口实现WebService功能

    HttpInvokerServiceExporter会自动处理请求的序列化和反序列化,使得远程调用过程简化。 1. **服务提供者端配置**:在服务端,你需要创建一个实现了特定业务接口的bean,并使用HttpInvokerServiceExporter来暴露这...

    分布式 rpc远程调用 dubbo

    标题“分布式rpc远程调用dubbo”直指Dubbo在分布式环境中的核心功能——RPC调用。Dubbo通过RPC实现了服务提供者(Provider)和服务消费者(Consumer)之间的透明通信。服务提供者发布服务到服务注册中心,如...

    rpc远程调用

    总结,RPC远程调用是分布式系统中服务间通信的关键技术,它简化了跨网络的调用复杂性,让开发者可以像调用本地方法一样调用远程服务。各种RPC框架如gRPC、Dubbo等提供了不同的实现方式和优化策略,以满足不同场景下...

    基于Spring的远程访问与Web Service

    标题与描述中提到的主题是“基于Spring的远程访问与Web Service”,这涉及到Spring框架在企业级应用中的关键特性——即其支持多种远程服务调用的方式,包括但不限于RMI、HTTP Invoker、Hessian、Burlap、JAX-RPC以及...

    java+hessian 远程调用

    Java Hessian远程调用是一种高效的、轻量级的RPC(Remote Procedure Call)解决方案,它允许Java应用程序通过网络进行跨语言的通信。Hessian是BEA Systems开发的一种二进制Web服务协议,它提供了序列化和远程方法...

    远程调用

    远程调用是分布式系统中的关键技术,它允许不同的计算资源(如服务器、进程或服务)之间进行通信和数据交换,仿佛它们是在同一台机器上运行。这一技术在大型网络应用、微服务架构以及云计算环境中尤为常见。现在,...

    典型的Web Service结构

    Web Service可以基于两种通信模式:远程过程调用(RPC)和消息传递。 **1. 远程过程调用(RPC)** - **概念**:RPC允许客户端像调用本地函数那样调用远程服务的方法。客户端实例化远程对象并调用其方法。 - **示例**:...

    web service ppt

    XML-RPC(XML Remote Procedure Call)是另一种简单的远程过程调用协议,它使用XML作为调用参数的包装格式。 数据绑定是Web Service中的一个重要概念,它涉及到将XML消息转换为编程语言中的对象,反之亦然。WS-...

    SAP web Service 基础教程

    SOAP 协议可以将远程过程调用(RPC)和消息传送结合起来,实现了 Web 服务之间的交互。SOAP 协议中增加了一些特定的 HTTP 消息头,来说明 HTTP 消息的内容格式。 二、WSDL 介绍 WSDL(Web Services Description ...

    web service reference

    1. **RPC (Remote Procedure Call)**:远程过程调用协议,它使一个程序可以调用另一个位于不同地址空间的程序,如同调用本地函数一样。 2. **XML (Extensible Markup Language)**:一种标记语言,用于定义数据结构和...

    soap规范web service调用

    ### SOAP规范Web Service调用详解 #### 一、SOAP简介 **SOAP**(Simple Object Access Protocol)是一种基于XML的标准协议,用于在分布式环境中交换结构化的信息。它定义了一种消息格式,使得不同应用之间可以通过...

    rpc,jax,Web Service....共享

    JAXP用于解析和生成XML文档,JAXB则将XML数据绑定到Java对象,而JAX-RPC则与RPC类似,提供了基于XML的远程调用能力,它是早期Java实现Web服务的方式之一。 **Web Service** Web服务是一种通过互联网进行通信的软件...

    SOA和Web_Service的区别

    ### SOA与Web Service的本质区别 尽管Web Service是实现SOA的重要工具之一,但两者有着本质的区别: 1. **范围不同**:Web Service专注于定义和实现具体的服务接口,而SOA是一种更广泛的架构模式,它涉及服务的...

    Web Service调用

    【Web Service调用】是指利用网络,特别是基于万维网技术,实现跨平台、跨语言的软件服务调用。Web Service允许一个公司的服务被其他公司通过互联网动态地使用,为全球电子商务提供了新的标准和架构。它基于一系列...

Global site tag (gtag.js) - Google Analytics