`
dannyhz
  • 浏览: 379161 次
  • 性别: 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机制;缺点:不能跨语言。

分享到:
评论

相关推荐

    Spring,RMI,thread,hibernate, webservice attachment

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

    用Java程序访问Net WebService.doc

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

    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...

    webservice.zip

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

    webservice教程

    WebService是一种跨编程语言和跨操作系统...除了WebService外,常见的远程调用技术还有RMI(Remote method invoke)和CORBA,由于WebService的跨平台和跨编程语言特点,因此比其他两种技术应用更为广泛,但性能略低。

    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创建服务代理,然后通过调用接口...

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

    asp.net通过WebService调用Java接口全过程。 asp.net---->WebService(SOAP)------>Java接口---->Java接口实现类------>RMI(Java远程方法调用)----->RMI服务器端------->RMI返回结果给asp.net

    基于Java RMI的分布式数据库系统开发与应用.pdf

    3. Java中的分布式开发:Java可以实现分布式开发,主要通过RMI、EJB、WebService等方式来实现不同系统和节点之间的数据交互。 4. Java RMI的特点:允许客户机上的程序调用远程服务上的对象,实现分布式操作。 5. ...

    java代理实现webservice接口拦截器功能

    本文根据java代理实现CXF拦截器异常时只能进入fault拦截器而不能继续向下执行的问题。 利用java代理让RMI具有拦截器的功能。

    多种webService的完整实例

    与XML-based的SOAP相比,Hessian更高效,因为它使用二进制格式传输数据,减少了网络开销。Hessian支持远程方法调用(RMI),使得服务调用更加便捷快速。在项目中,你将学习如何利用Hessian创建服务和客户端,体验其...

    Webservice axis 整理好的示例文档

    在Axis中,可以通过RMI/IIOP(Internet Inter-ORB Protocol)实现Web服务与客户端之间的通信,提供高效的数据交换。 5. **RMI方式远程调用的重复提及**:在描述中RMI被提到了两次,这可能是强调其重要性。RMI调用...

    WebService合集

    这是一个zip包,里面包含有“5对”独立的WebService项目,包含了各种WebService技术:包括Apache的JAX、Hessian、HttpInvoker、SpringJAX、RMI的客户端和服务器端的部署方式。无需任何数据库配置,每项WS技术包含有...

    WebService另一种轻量级实现—Hessian 学习笔记.rar

    Hessian与RMI(Remote Method Invocation)、gRPC等轻量级RPC框架相比,各有优劣。RMI适用于纯Java环境,而gRPC基于HTTP/2和Protocol Buffers,提供了更现代的解决方案。选择哪种方案取决于具体的应用场景和需求。 ...

    webservice

    - 创建服务接口,并确保它继承自 `java.rmi.Remote`。 - 使用 Axis 提供的工具或API创建该接口的代理实例。 - 通过代理对象调用远程服务的方法。 在上述示例中,没有给出使用动态代理的完整代码,但基本流程是先...

    EJB,JPA,JSF,UML,WebService以及图形界面代码

    综合以上知识点,我们可以看到这些技术涵盖了企业级应用开发的多个方面,包括后端业务逻辑处理(EJB、JPA)、前端用户界面展示(JSF)、系统设计与建模(UML)、以及不同系统间的互操作性(WebService)。...

    JDK动态代理在EJB3(包括WebService)中的应用

    标题 "JDK动态代理在EJB3(包括WebService)中的应用" 暗示了本文将探讨Java开发中的一种重要技术——JDK动态代理,以及它如何在企业级JavaBean (EJB) 3.x版本及其相关的Web服务实现中发挥作用。EJB3是Java EE平台的...

Global site tag (gtag.js) - Google Analytics