`
dannyhz
  • 浏览: 398188 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

WebService 与 RMI 的区别

阅读更多
引用


Web Service提供的服务是基于web容器的,底层使用http协议,类似一个远程的服务提供者,比如天气预报服务,对各地客户端提供天气预报,是一种请求应答的机制,是跨系统跨平台的。就是通过一个servlet,提供服务出去。

          首先客户端从服务器的到WebService的WSDL,同时在客户端声称一个代理类(Proxy Class) 这个代理类负责与WebService服务器进行Request 和Response 当一个数据(XML格式的)被封装成SOAP格式的数据流发送到服务器端的时候,就会生成一个进程对象并且把接收到这个Request的SOAP包进行解析,然后对事物进行处理,处理结束以后再对这个计算结果进行SOAP包装,然后把这个包作为一个Response发送给客户端的代理类(Proxy Class),同样地,这个代理类也对这个SOAP包进行解析处理,继而进行后续操作。这就是WebService的一个运行过程。
Web Service大体上分为5个层次:
1. Http传输信道
2. XML的数据格式
3. SOAP封装格式
4. WSDL的描述方式
5. UDDI  UDDI是一种目录服务,企业可以使用它对Webservices进行注册和搜索

RMI 采用stubs 和 skeletons 来进行远程对象(remote object)的通讯。stub 充当远程对象的客户端代理,有着和远程对象相同的远程接口,远程对象的调用实际是通过调用该对象的客户端代理对象stub来完成的,通过该机制RMI就好比它是本地工作,采用tcp/ip协议,客户端直接调用服务端上的一些方法。优点是强类型,编译期可检查错误,缺点是只能基于JAVA语言,客户机与服务器紧耦合;
        JRMP是Java持有的,基于流的协议,完成一个对象的Java到Java的远程调用;IIOP是CORBA对象请求代理之间交流的协议,Java中使得程序可以和其他语言的CORBA实现互操作性的协议,和JRMP互补。
        优点:支持分布式对象、跨平台,stubs/skeletons机制;缺点:不能跨语言。

分享到:
评论

相关推荐

    Java访问c#开发的webservice

    import java.rmi.RemoteException; public class CallWeb { public static void main(String[] args) throws RemoteException { WebService1SoapProxy wpxy = new WebService1SoapProxy(); int r = wpxy.add(8, ...

    WebService简介

    这种访问涉及到客户端(ClientSite)与服务端(ServerSite)之间的交互。在这个过程中,会涉及到代理类(Proxy Class)的创建以及业务逻辑类(Business Class)的调用。为了实现这一过程,数据需要通过序列化处理后...

    WebService接口开发与调用

    ### WebService接口开发与调用 #### 一、概述 在现代软件开发中,不同系统间的通信至关重要。WebService作为一种开放标准的服务实现方式,允许不同语言编写的程序进行交互。本文档将详细介绍如何在两个Web项目中...

    WebService.ppt

    虽然WebService和RESTful都属于Web服务的一种形式,但它们有着本质的区别。RESTful服务强调使用HTTP方法(如GET、POST、PUT、DELETE)来表示对资源的操作,更加强调资源的定位和操作。相比之下,WebService更加注重...

    Spring,RMI,thread,hibernate, webservice attachment

    标题中的关键词包括“Spring”、“RMI”、“thread”、“Hibernate”和“Webservice”,这些是Java编程中的核心概念,尤其在企业级应用开发中尤为重要。接下来,我们将详细探讨这些技术。 1. **Spring**:Spring 是...

    JAVA 调用SAP SOAP webservice.docx

    import java.rmi.RemoteException; public class TestSAPWebservice { public static void main(String args[]) throws RemoteException { ZTEST_MATNR_NOAUTHProxy zp = new ZTEST_MATNR_NOAUTHProxy(); String...

    用Java程序访问Net WebService.doc

    * Java EE 5 中,使用标注(annotation)减少了 Web Services 的代码量与部署工作:在 Java EE 5 中,可以使用标注(annotation)来减少 Web Services 的代码量与部署工作,从而简化WebService 的开发和部署过程。

    webservice

    中间件如DCOM、CORBA、RMI等都需要客户端与服务端之间的紧密耦合,这导致了扩展性和可维护性问题。而WebService支持松散耦合的通信方式,它能够将企业内部系统与外部系统通过互联网连接起来,进行信息的交换和业务...

    asp.net通过WebService调用Java接口全过程

    - Java接口的实现类通常运行在RMI服务器端,当ASP.NET通过WebService发送请求时,这些请求会被转发到RMI服务器,执行相应的Java方法。 - RMI服务器处理请求并返回结果,结果再通过WebService返回给ASP.NET客户端。...

    webservice.zip

    - **RMIClient.zip**:虽然不是标准的WebService概念,但可能包含了一个RMI(Remote Method Invocation)客户端示例,RMI是另一种Java的远程调用机制,与WebService有相似但不完全相同的目的。 - **WebService.zip**...

    基于XML的SOAP_WebService分布式系统架构的研究和实现

    传统的分布式计算解决方案如DCOM、CORBA和Java RMI等虽然在局域网内表现良好,但在跨越不同网络环境(特别是Internet)时面临诸多挑战。为了解决这些问题,一种基于XML的SOAP/WebService架构应运而生。这种架构不仅...

    WEBService

    ### WebService概述与实践 #### 一、为什么需要WebService? 在传统的分布式应用程序开发中,开发者通常采用DCOM、CORBA或RMI等技术来构建分布式对象模型。这些技术虽然能够提供丰富的本地资源和精确控制,但它们...

    java调用webservice接口.zip

    通常,`java.rmi.RemoteException`和`javax.xml.rpc.soap.SOAPFaultException`是与WebService通信相关的常见异常。 **六、优化和最佳实践** 1. **配置连接池**: 对于频繁调用的服务,可以使用连接池来提高性能和...

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

    这个技术允许客户端和服务端通过HTTP协议进行通信,实现远程方法的调用,类似于RMI(Remote Method Invocation)但更具有Web友好性。下面将详细阐述Spring框架如何帮助开发者实现这一功能。 首先,我们要理解Spring...

    javawebservice例子.pdf

    2. 定义一个接口`HelloClientInterface`,它扩展`java.rmi.Remote`并声明`getName`方法。 3. 在客户端代码`TestHelloClient.java`中,使用`javax.xml.rpc.ServiceFactory`从WSDL URL创建服务代理,然后通过调用接口...

Global site tag (gtag.js) - Google Analytics