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


    相关阅读:

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

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

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

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

    同进程查找JDNI服务
    比如说我们通过JNDI来查找Tomcat中配置的DataSource,代码如下
    Context context = new InitialContext();
    DataSource ds = (DataSource)context.lookup("java:/comp/env/jdbc/oracleds");
    将这两行代码放到JSP页面中,在new InitialContext()之后,就能在JNDI服务上查到DataSource
    这是因为JSP和JNDI服务是在同一个进程里的。但如果不是同一个进程,则不能new InitialContext()
    这就好像是两间屋子里面的资源无法共享一样,除非穿墙,否则是无法拿到对面屋子里的资源的
    所以在main()方法中是无法有效的执行这两行代码的
    因为在运行main()方法时,它会在一个进程中启动JVM来解析class,而Tomcat那里又是另外一个进程
    所以在这两个进程之间,只是通过简单的new InitialContext()是找不到JNDI服务的,事实上这个过程就是在远程调用
    其实所谓的远程,并不是说跨机器、跨网络就是远程,只要是两个进程之间的调用,就算是远程调用了
    也就是说只要是不在同一个JVM里面(更准确的来说是不在同一个地址空间内)的调用,它就是远程调用
    也就是说如果我们在同一个机器上,启动两个进程,然后进行互相调用,那么这个过程就已经是远程调用了

    文章来源:爱上123 原文地址:http://www.ishang123.com/jishubowen/java/2012-09-20/235.html

    分布式通信的基本原理


    主要是使用客户端上的Stub(存根)和远程对象上的Skeleton(骨架)作为中介,来实现分布式通信的
    在客户端会有一个叫做Stub(存根)的东西,其实现采用的是非常典型的代理模式,是远程对象在客户端的代理
    Stub会封装所交互的数据的访问细节(如何压缩、压包、编码等),然后通过相应的协议与Skeleton(骨架)交换数据
    对于Java领域的分布式通信技术,较常见的有EJB技术、CORBA技术、WebService技术等等
    如果是EJB技术,那么Stub就会采用RMI-IIOP协议来传送数据给Skeleton
    如果是CORBA技术,那么Stub就会采用IIOP协议来传送数据给Skeleton
    如果是WebServices技术,那么Stub就会通过SOAP(搜魄)协议来传送数据给Skeleton
    也就是说Stub会按照特定协议将信息传送给Skeletion
    而Skeleton会将Stub传送过来的数据解析成特定的语言对象并发送给远程对象,即服务端
    比如说服务端是采用Java开发的,那么Skeleton就会将接收到的数据解析成Java对象,再传送给服务端
    同理若服务端是采用C#开发的,那么Skeleton就会将接收到的数据解析成C#对象,再传送给服务端
    接着服务端就会返回信息给客户端,于是Skeleton就会将所要返回的信息进行压缩编码并通过相应的协议传送给Stub
    接着Stub就会将Skeleton传送过来的信息解开,再传送给客户端,所以客户端就获得了相应的服务端的返回信息了
    这里的客户端对象和远程对象是位于不同的JVM中的,或者说是不同的系统平台中,此即分布式通信
    它主要就是靠StubSkeleton来通讯,说白了,分布式通信也就是Stub和Skeleton之间的通信

  • 相关阅读:
    Java多线程简介
    Java同步简介
    java enum的用法详解
    Instrumentation(3)
    持久化类的三种实例状态
    依赖注入和控制反转
    事务的4个要素及其工作原理
    mysql创建表与索引
    SpringAOP所支持的AspectJ切点指示器
    使用Spring的命名空间p装配属性-摘自《Spring实战(第3版)》
  • 原文地址:https://www.cnblogs.com/ishang/p/2697927.html
Copyright © 2020-2023  润新知