`
pangyi
  • 浏览: 33936 次
  • 性别: Icon_minigender_1
  • 来自: 古城西安
社区版块
存档分类
最新评论

Java远程通讯可选技术及原理(二)

阅读更多
RMI

  RMI 是个典型的为java定制的远程通信协议,我们都知道,在single vm中,我们可以通过直接调用java object instance来实现通信,那么在远程通信时,如果也能按照这种方式当然是最好了,这种远程通信的机制成为RPC(Remote Procedure Call),RMI正是朝着这个目标而诞生的。

  来看下基于RMI的一次完整的远程通信过程的原理:

  1、客户端发起请求,请求转交至RMI客户端的stub类;

  2、stub类将请求的接口、方法、参数等信息进行序列化;

  3、基于socket将序列化后的流传输至服务器端;

  4、服务器端接收到流后转发至相应的skelton类;

  5、skelton类将请求的信息反序列化后调用实际的处理类;

  6、处理类处理完毕后将结果返回给skelton类;

  7、Skelton类将结果序列化

,通过socket将流传送给客户端的stub;
  8、stub在接收到流后反序列化,将反序列化后的Java Object返回给调用者。

  来看jboss-remoting对于此过程的一个更好的图示:

  根据原理来回答下之前学习应用级协议带着的几个问题:

  1、传输的标准格式是什么?

  是Java ObjectStream。

  2、怎么样将请求转化为传输的流?

  基于Java串行化机制将请求的java object信息转化为流。

  3、怎么接收和处理流?

  根据采用的协议启动相应的监听端口,当有流进入后基于Java串行化机制将流进行反序列化,并根据RMI协议获取到相应的处理对象信息,进行调用并处理,处理完毕后的结果同样基于java串行化机制进行返回。

  4、传输协议是?

  Socket。

XML-RPC

  XML-RPC也是一种和RMI类似的远程调用的协议,它和RMI的不同之处在于它以标准的xml格式来定义请求的信息(请求的对象、方法、参数等),这样的好处是什么呢,就是在跨语言通讯的时候也可以使用。

  来看下XML-RPC协议的一次远程通信过程:

  1、客户端发起请求,按照XML-RPC协议将请求信息进行填充;

  2、填充完毕后将xml转化为流,通过传输协议进行传输;

  3、接收到在接收到流后转换为xml,按照XML-RPC协议获取请求的信息并进行处理;

  4、处理完毕后将结果按照XML-RPC协议写入xml中并返回。

  图示以上过程:

  同样来回答问题:

  1、传输的标准格式是?

  标准格式的XML。

  2、怎么样将请求转化为传输的流?

  将XML转化为流。

  3、怎么接收和处理流?

  通过监听的端口获取到请求的流,转化为XML,并根据协议获取请求的信息,进行处理并将结果写入XML中返回。

  4、传输协议是?

  Http。

  --------------------------------------------------------------------------------------------------------------------------------------------------

Binary-RPC

  Binary-RPC看名字就知道和XML-RPC是差不多的了,不同之处仅在于传输的标准格式由XML转为了二进制的格式。

  同样来回答问题:

  1、传输的标准格式是?

  标准格式的二进制文件。

  2、怎么样将请求转化为传输的流?

  将二进制格式文件转化为流。

  3、怎么接收和处理流?

  通过监听的端口获取到请求的流,转化为二进制文件,根据协议获取请求的信息,进行处理并将结果写入XML中返回。

  4、传输协议是?

  Http。

  --------------------------------------------------------------------------------------------------------------------------------------------------
  SOAP

  SOAP 原意为Simple Object Access Protocol,是一个用于分布式环境的、轻量级的、基于XML进行信息交换的通信协议,可以认为SOAP是XML RPC的高级版,两者的原理完全相同,都是http+XML,不同的仅在于两者定义的XML规范不同,SOAP也是Webservice采用的服务调用协议标准,因此在此就不多加阐述了。

  --------------------------------------------------------------------------------------------------------------------------------------------------
   CORBA

  Common Object Request Broker Architecture(公用对象请求代理[调度]程序体系结构),是一组用来定义“分布式对象系统”的标准,由OMG(Object Menagement Group)作为发起和标准制定单位。CORBA的目的是定义一套协议,符合这个协议的对象可以互相交互,不论它们是用什么样的语言写的,不论它们运行于什么样的机器和操作系统。
  CORBA在我看来是个类似于SOA的体系架构,涵盖可选的远程通信协议,但其本身不能列入通信协议这里来讲,而且CORBA基本淘汰,再加上对CORBA也不怎么懂,在此就不进行阐述了。
分享到:
评论

相关推荐

    Java远程通讯可选技术及原理(一)

    Java远程通讯可选技术及原理(一)

    Java实现远程控制技术(附完整源代码)

    在IT行业中,远程控制技术是一种重要的工具,尤其在在线教育、技术支持和远程协作等领域中扮演着关键角色。本文将深入探讨如何使用Java实现远程控制功能,并结合提供的源代码进行解析。 首先,Java作为一种跨平台的...

    java 读取远程文件目录 及文件方式

    本文件是将 Java 中 通过远程url访问 转换成 HTML 文件 ,通过 dom4j转换成Java对象元素

    Java实现调用远程桌面示例

    此项目旨在提供一个稳定且可扩展的平台,以便开发者能够在Java应用程序或Web应用中集成远程桌面功能。 首先,我们来看如何在普通的Java程序中使用`properJavaRDP`。这通常涉及到以下步骤: 1. **添加依赖**:将`...

    在java中实现对access数据库的远程访问

    (java 中实现对 access 数据库的远程访问) java 中实现对 access 数据库的远程访问是指在 java 中通过远程访问 access 数据库,以满足项目中的需求。在实际项目中,可能会遇到这样的问题:A 服务器上的应用程序需要...

    Java实现远程桌面连接

    Java实现远程桌面连接的properjavardp源码工程,可直接运行。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。...

    java远程调用方法总结

    Java远程方法调用(Remote Method Invocation,简称RMI)是Java平台中用于分布式计算的核心技术。它允许一个Java对象在一台机器上调用另一台机器上的对象的方法,仿佛这些方法是在本地对象上调用一样。本篇文章将对...

    java串口通讯demo源码.zip

    java串口通讯demo源码,内有注解。可实现通过javaWeb页面控制串口,调用串口数据,发送串口指令等操作。可同时监听多个串口,并同时向多个串口发送和接收消息。内含已经写好的串口监听类,定时器,以及串口数据转换...

    本地java实现远程oracle备份还原

    此外,为了简化操作,可以将这些步骤封装成一个可重用的Java类或库,提供易于调用的接口。 这个过程中可能涉及到的Java类和接口包括`DriverManager`, `Connection`, `Statement`, `ResultSet`, `File`, `URL`, `...

    java远程读写服务器文件

    主要实现的是登录服务器操作服务器的中的文件数据,支持读写的操作。主要使用的方法getProperties是设置配置的login(参数一是访问服务器的配置,参数二是设置读还是写)方法是读写连接服务器

    java 远程控制客户端和服务器端代码详细

    在Java编程领域,远程控制是一种常见且实用的功能,它允许用户通过网络操作远程计算机,实现类似于本地操作的效果。本文将详细讲解如何使用Java实现客户端和服务器端的远程控制功能,包括屏幕共享、鼠标和键盘操作,...

    Java远程控制系统2 桌面控制 (类似net-meeting)毕业设计 源代码

    Java远程控制系统,如同标题所提及的“Java远程控制系统2 桌面控制”,是一种基于Java技术实现的桌面共享和远程管理...通过深入研究和实践,开发者不仅可以掌握远程控制软件的基本原理,还能进一步熟悉Java的相关技术。

    Java实现远程桌面(参赛作品)

    在IT领域,远程桌面连接是一种常见的技术,它允许用户通过网络访问并控制另一台计算机的桌面环境。在这个项目中,"Java实现远程桌面"是一个使用纯Java编程语言编写的远程桌面解决方案,它使得用户能够在一台计算机上...

    java实现远程协助小例子

    在IT领域,远程协助是一种非常实用的技术,它允许专家通过网络连接到用户的计算机上,进行实时的故障诊断和问题解决。在这个场景下,我们将探讨如何使用Java编程语言来实现一个简单的远程协助应用。Java的Socket编程...

    java,jsp读取远程图片到本地服务器

    在Java和JSP开发中,有时我们需要处理在线编辑器上传的内容,这可能涉及到从Web页面中获取远程图片并将其保存到本地服务器。这样的功能对于确保网站的性能和用户体验至关重要,因为将图片本地化可以减少加载时间,...

    JAVA读取远程网页文件并保存本地

    JAVA读取远程网页文件并保存本地 从远程URL地址获取网页文件下载到本地 这个方法可以生成静态HTML文件使用!

    java远程屏幕监控系统(精华)

    一、Java远程屏幕监控系统的技术原理 1. Java RMI(Remote Method Invocation):Java远程方法调用是Java平台提供的用于分布式计算的关键技术。RMI使得一个Java对象可以调用另一个位于不同JVM中的对象的方法,这...

    java通过代码登录远程linux服务器并执行linux命令源码以及jar包

    在Java编程中,有时我们需要实现一个功能,即通过代码远程登录Linux服务器并执行特定的Linux命令。这在自动化运维、远程脚本执行等场景中非常常见。本篇将详细讲解如何实现这一目标,并提供相关源码及jar包。 首先...

    java研究生毕业设计一个汽车远程通讯系统项目源码.zip

    java研究生毕业设计一个汽车远程通讯系统项目源码。论文里表述的是Redis存储键值对 实际代码做一定的修改用配置文件appliction.propertities 涵盖全局变量 com.lyl.netty_mybatis_obd_01.redis.testClass 与之绑定 ...

    Java OCR 图像智能字符识别技术,可识别中文

    Java OCR(Optical Character Recognition,光学字符识别)技术是一种计算机视觉领域的应用,它能将图像中的文字转换成可编辑的文本格式。这项技术在各种场景下都有广泛应用,比如文档扫描、车牌识别、发票处理等。...

Global site tag (gtag.js) - Google Analytics