`
willwen
  • 浏览: 25675 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

远程调用

 
阅读更多

       RMI

       作为所有java远程方案的根源,RMI是在JDK1.1中引入的。它基于java序列化机制,通信协议则是可接插的,其默认的协议是JRMP,RMI-IIOP则是晚些时候为兼容CORBA而引入的。这两种协议都是J2EE兼容的EJB容器必须实现的

       不管EJB还是JAX-RPC都是建立在RMI模型基础之上

       RMI标准的JRMP协议不提供授权、加密、压缩和HTTP隧道的支持,即使你需要它们,也不要自己实现RMI的通信协议,可以考虑选择别的替代方案,例如基于HTTP的远程工具或远程EJB

       标准的EJB并不适合与外部客户端和Internet服务器交互,因为大多数EJB通信协议都是针对Intranet使用而设计的,它们使用了非标准的端口。某些EJB容器(Jboss、Resin)提供EJB的HTTP调用器(HTTP invoker for EJB),借助基于HTTP的通信协议解决了防火墙问题。但无论如何,web services---借助SOAP或其他 基于HTTP的协议,才是跨越Internet进行服务调用的上上之选

      EJB

      经典的J2EE分布式解决方案是远程session bean

      EJB容器允许使用任何通信协议来进行EJB之间的远程调用。一般来说,应用程序的客户端需要访问哪个容器,就需要引入该容器特有的客户端jar文件,其中就实现了通信协议的客户端部分。J2EE规范要求支持IIOP,以便与CORBA客户端互操作,还要求支持JRMP,这是默认的Java RMI协议。很多服务器还附带提供了它们自己的、更加高效的通信协议,例如weblogic的T3和Resin的Hessian。当同一种J2EE服务器的多个实例之间需要进行远程调用时,厂商通常都会推荐他们专有的协议。

      远程EJB是通过J2EE容器的JNDI环境暴露出来,使用什么JNDI名称则是在厂商自己规定的部署描述符中配置

      在多次远程调用之间保持事务开启会是一个潜在的危险 

基于WSDL的web Services:JAX-RPC

      构建在WSDL和SOAP之上的web services是应用集成的重要选项,XML在web services的世界里扮演着核心的角色--它是WSDL和SOAP共同的基础。web services在设计上有一个明显的权衡,即互操作性和扩展性胜于易用性和性能。使用XML来实现SOAP就很明显证明这一权衡,用庞大的XML格式作为远程调用的通信协议,这很难说是一种好的选择。对于Java应用程序之间的交互,RMI/EJB或者Hessian/Burlap都是好的选择,而且很容易使用,更重要的是,它们的通信协议效率比SOAP要高得多

基于HTTP的轻量级远程访问协议

      Caucho公司开发两种简约的协议,一个是二进制协议Hessian,另一个是基于XML的Burlap。Resin企业版服务器允许用这两种协议作为EJB的通信协议,也可以在任何一个servlet容器中使用它们。

      Hessian和Burlap都是强大而灵活的基于HTTP的远程调用协议,它们对服务接口和服务实现没有任何限制。只要与标准的web容器结合,就可以满足各种无状态远程调用的需求,尤其是java应用程序之间的通信。它们特别适合用于跨越Internet与外部客户端通信,同时也能胜任服务器系统内部分布式组件之间的通信

      

      

 

 

 

分享到:
评论

相关推荐

    service_java接口远程调用_get、post、带参数远程调用_

    - 对于Java接口远程调用,通常会封装成服务类,如`RemoteRequestServiceImpl.java`和`RemoteRequetService.java`中的实现。服务类中会包含执行HTTP请求的方法,可能包括设置请求头、处理响应等逻辑。 4. **使用库...

    spring cloud feign实现远程调用服务传输文件的方法

    Spring Cloud Feign 实现远程调用服务传输文件的方法 在微服务架构中,服务之间的调用和文件传输是非常常见的场景。Spring Cloud Feign 是一个基于 Java 的声明式 RESTful 客户端,提供了一种简单、可靠的方式来...

    基于springboot的两个项目之间的远程调用

    本主题聚焦于"基于Spring Boot的两个项目之间的远程调用",这是一个常见的需求,特别是在分布式系统中。远程调用允许不同服务之间相互通信,实现数据共享和功能协同。 1. **什么是远程调用** 远程调用(Remote ...

    三种方式实现java远程调用(rmi),绝对可用

    Java远程调用(Remote Method Invocation,RMI)是Java平台中一种重要的分布式计算技术,它允许在不同网络环境中的Java对象之间进行透明的交互。在本文中,我们将深入探讨三种不同的RMI实现方法:原始方式、Spring...

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

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

    akka java实现tcp远程调用

    在Java中,Akka可以用来实现TCP远程调用,这使得不同系统之间能够通过网络进行通信。下面我们将深入探讨如何使用Akka与Java来实现TCP远程调用,以及其中涉及的关键知识点。 首先,我们需要理解Akka的Actor系统。...

    spring远程调用简单实例

    Spring框架的一大特色就是其远程调用能力,这使得分布式系统的开发变得更加便捷。本实例将深入探讨Spring的远程调用功能,通过一个简单的例子来帮助理解其工作原理和实施步骤。 首先,我们要明确Spring远程调用...

    远程调用服务框架

    远程调用服务框架是软件开发中的一个重要组成部分,它允许不同系统、不同网络环境下的应用程序之间进行通信,实现功能的解耦合和分布式系统的构建。在Java世界中,Spring框架提供了强大的支持来实现这一目标。本篇...

    C#远程调用简单示例

    在IT领域,远程调用是一种关键技术,它允许一个应用程序组件(客户端)调用另一个在不同地址空间运行的应用程序组件(服务器)的方法,就像它们在同一进程内一样。在本示例中,我们关注的是C#语言中的远程调用,具体...

    java远程调用kettle说明与代码.pdf

    Java远程调用Kettle说明与代码 Java远程调用Kettle是一种基于Java的ETL(Extract、Transform、Load)工具,能够对数据进行提取、转换、加载,以满足不同业务需求。Kettle提供了名为Carte的Web Server程序,也被称为...

    vbs-远程调用vbs-远程调用

    "vbs-远程调用"的标签指向了一个特定的技术主题:使用VBScript进行远程操作或通信。在这个场景中,远程调用通常指的是通过网络在一台计算机上执行的VBScript代码来控制或与另一台计算机上的资源交互。 标题和描述...

    C#简单的远程调用实例

    本篇文章将深入解析一个基于C#语言的简单远程调用实例,通过.NET框架中的Remoting技术实现,旨在帮助读者理解远程调用的基本原理及其实现步骤。 ### 核心概念:.NET Remoting .NET Remoting是Microsoft .NET ...

    ASP.NET远程调用

    ### ASP.NET远程调用 #### 一、为什么需要进行远程调用 随着互联网技术的不断发展以及现代工程项目规模的不断扩大,传统的本地调用模式在效率与安全性方面已经难以满足实际需求。本地调用的主要缺点包括: 1. **...

    java+hessian 远程调用

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

    c# 实现远程调用(rpc) remoting

    "c# 实现远程调用(rpc) remoting"是C#的一个关键特性,它允许对象在不同的进程甚至不同的计算机之间进行通信,仿佛它们是在同一个内存空间内操作。这个主题涉及到分布式系统开发,对于理解跨进程通信和提升系统的可...

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

    3. **服务消费者(ServiceConsumer)**:从服务注册中心获取服务接口的引用,实现远程调用。 4. **代理类(Proxy Class)**:动态生成的类,实现了服务接口,内部调用RPC框架的调用逻辑。 5. **调用处理(Invocation...

    Spring远程调用使用http方式

    在分布式系统中,远程调用是一个常见需求,允许不同的服务之间进行通信。本篇文章将详细探讨如何在Spring框架下实现基于HTTP的远程调用。 首先,我们需要理解什么是Spring远程调用。Spring Remote提供了一种机制,...

    基于动态代理的Java远程调用框架的研究1

    Java远程调用框架是分布式系统中关键的技术,它允许运行在不同计算机上的应用程序相互通信,协同完成任务。本文探讨的是一种基于动态代理的Java远程调用框架,旨在解决传统远程调用技术如RMI(Remote Method ...

    远程调用技术代码追踪

    远程调用技术是分布式系统中不可或缺的一部分,它允许不同计算机之间的程序进行通信和协作,实现数据交换和服务共享。代码追踪在此领域中起着至关重要的作用,帮助开发者理解、调试和优化远程调用的过程。以下是对...

    Http请求Restful风格的远程调用工具类

    Http请求Restful风格的远程调用,在远程调用的过程中会出现四种请求方式,这个工具把此部分代码给封装了一下。

Global site tag (gtag.js) - Google Analytics