• Java 分布式通信的几种方式及其特点


    相关阅读:

     1. Java 分布式通信的几种方式及其特点

     2. Java WebService异构系统通信的原理及特点:SOAP与WSDL

     3.Java EJB、CORBA、Webservices分布式通信基本原理及特点

     4. Java 远程调用与分布式通信的区别

     假设有两个服务器,本地的服务器采用的是Java开发的远程的是一个采用C#开发的天气预报的服务器,二者可以通过以下几种方式通信
    1、如果二者不采用某些技术来通信的话,也是可以的
         比如远程服务器开放数据库表,然后本地服务器使用JDBC访问这个开放的数据库表,也能够实现分布式通信
         只不过开放数据库表的做法,不太好。会暴露表结构、安全性也不是特别好、并且也是不标准的
         另外有些数据,并不是单纯的一张表就能体现出来的,可能要通过一定的算法计算出来结果的
    2、如果二者采用WebServices通信的话,那么就是使用SOAP协议来交互数据,该数据就是采用HTTP协议传送XML文件
         但此时双方进行通信的过程中,由于采用的是SOAP协议,所以双方交换的数据是大文本(通常是XML文件)文件
         这时就有一个问题:假设需要请求10000条数据,那么所交换的这个大文本文件的体积,将会是非常大的,传送的过程就会很耗时
         有一个解决办法是:可以让Java通过它的ZIP  API压缩该XML文件,然后上传到FTPServer上,服务端再下载这个压缩后的XML文件
         接着服务端再解压缩这个XML文件,然后读取,再进行相应的处理,这也是解决SOAP协议传递大文本文件的速度特别慢的办法之一
    3、可以令远程服务器把天气预报的数据,定时的上报到某一个FTPServer,然后客户端的Java程序也定时的到FTPServer上取数据
    4、第三种方式的缺点是不实时。我们也可以让客户端发送消息给远程的服务端,服务端会侦听,然后再发送消息返回给客户端
    5、二者采用纯粹的IIOP(属于CORBA技术架构)协议来通信
    6、如果远程服务器是采用EJB开发的,那么二者可以通过RMI-IIOP协议通信。而RMI-IIOP协议采用的是二进制传输,效率会更快
         由于EJB也应用了CORBA的IIOP协议,所以在异构系统整合的时候,CORBA的互通性会比较好
         步骤大致是服务器端先把EJB注射到JNDI树上,然后客户端的Java程序lookup这个JNDI树上对应的名字,这样EJB就传过来了
         也就是说此时Stub就动态的传到客户端的Java程序中了,然后客户端就调用Stub,接下来就是Stub和Skeleton打交道了
         另外EJB只能使用Java来写,但是可以使用CORBA技术来调用EJB

    在EJB1.X的时候,对于分布式通信的服务的支持还很差
    比如写一个EJB的话,则至少要写三个类,然后编译,编译成Stub和Skeleton,这时大约会编译出来5、6个类
    后来有所改善,最先改的就是JBOSS。开发JBOSS的EJB容器的这个人,在Java技术上是非常厉害的一个人,传说中的大牛吧
    引入了JDK的动态代理来完成Stub的自动生成,所以EJB的开发就简单了一些,只写三个类就可以了,存根会在运行时生成
    也就是在把EJB注射到JNDI上之后,我们就可以在另一个JVM里面lookup这个JNDI的名字,这样便得到了EJB
    然后它就会序列化的把EJB传送到客户端它传的就是Stub,而它在JVM内存里面是看不见的
    当我们在客户端调用相应方法的时候,其实在内存里面调用的就是Stub,然后Stub再与远端打交道

  • 相关阅读:
    神经网络-FPN 19
    机器学习
    神经网络-DenseNet 18
    神经网路骨架:各自的特点统计
    转载:一步一步制作根文件系统
    设计模式博客
    【转】PowerPC平台linux设备移植
    【收藏】自己动手写编译器、连接器
    查看pthread线程库中锁的持有者方法
    【转】深入 Linux 的进程优先级
  • 原文地址:https://www.cnblogs.com/joyous-day/p/6889532.html
Copyright © 2020-2023  润新知