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

相关阅读:

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里面(更准确的来说是不在同一个地址空间内)的调用,它就是远程调用也就是说如果我们在同一个机器上,启动两个进程,然后进行互相调用,香港空间,那么这个过程就已经是远程调用了

分布式通信主要是使用客户端上的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中的,或者说是不同的系统平台中,此即分布式通信它主要就是靠Stub和Skeleton来通讯,说白了,分布式通信也就是Stub和Skeleton之间的通信

有些人注定是等待别人的,有些人是注定被人等的。

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

相关文章:

你感兴趣的文章:

标签云: