java应用程序.ear 包括:1、web应用程序*.war 和2、ejb应用程序*.jar
分布式开发:1,网络通信 2 分布式事务的集群
ejb没出现之前,用cobar组建。。需要400-500行代码
而用ejb解决分布式开发,紧紧只需几分钟,代码量非常少
ejb用专门的fwq,tomcat是不可以的。
而ejb最底层的核心机制为rmi机制!
借助rmi机制实现简单的远程调用开发
远程调用:指运行在两个不同的jvm进程java程序之间的通信,可以在一台机器上实现,当然进程是不同的,也是两个java虚拟机
---------------------------------------------------------------------------------------------------------------------------------------
两个角色:1、server端程序:a 将远程对象进行公布 server端对象,将对象和名字绑定~!(类似注册)
b 接受这样一个客户端的调用
2,browers程序
和java虚拟机建立连接
通过jndi机制以命名方式去查找远程对象,获得这样一个远程对象的引用
rmi原理,它的模型图
client----------------X-------------- server(远程对象,定义:实现了Remote接口的对象)
| |
| |
stub(本机代理)---- 网络------------- skelton(远程代理)
stub是服务于客户端的:
1、stub在远程调用之前和server的java虚拟机(JVM)建立连接
2、客户端调用方法时,stub将调用参数进行编组(序列化),stub调用skelton对象的方法
3、skelton将值返回(字节流),stub将字节还原最终结果给客户端!
skelton是服务于服务器断的:
1、接受stub调用,将调用的参数进行序列化,然后调用其真实对象(远程对象)
2、远程对象执行业务逻辑后,将值返回给skelton对象,skelton对象将值进行序列化传递给stub对象~!
rmi编程:
rmi编程规范
1,编写远程接口(声明被远程调用的方法,继承Remote接口,方法的声明,必须声明RemoteException
2, 提供远程对象,实现远程接口的方法,还必须继承UnicastRemoteObject
JVM可以自动导出stub和skelton对象
3,编写服务器程序,创建远程对象,将远程对象和名字绑定在一起,公布远程对象!
4,客户端程序:查找这样一个远程对象,获得远程对象的引用,调用远程方法!
先写一个接口:
HelloRemote extends Remote
写一个sayHellow方法,这个方法有可能出错,throws RemoteException
再写一个HelloImpl实现类 继承UnicastRemoteObject implements HelloRemote 接口
public HelloImpl()throws RemoteException{
super();
}//它父类UnicastRemoteObject 的构造方法抛不出异常,我们自己重新写一个新的可以抛异常的构造方法
最后在:
服务器端程序 HelloServer
public static void main(String[] args)throws Exception{
HelloRemote remote=new HelloImpl();
LocateRegistry.createRegistry(8818);//实现通信端口的占领
Naming.rebind("//localhost:8818/helloObject",remote);//将对象跟命名绑定在一起
}
客户端程序:
HelloClient中
public static void main(String[] args){
HelloRemote remoteObject=(HelloRemote)Naming.lookup("//localhost:8818/helloObject");//根据命名绑定得到服务器对象
System.out.println(remoteObject.sayHello("zhongxin"));
}
}
相关推荐
在这个“rmi学习”资料中,我们可以深入探讨RMI的基础知识、工作原理以及如何通过实例来学习和应用RMI。 一、RMI基础知识 1. RMI架构:RMI系统由三部分组成——远程接口、远程对象和RMI注册表。远程接口定义了远程...
Java RMI(Remote Method Invocation,远程方法调用)是一种在分布式环境中实现对象间通信的技术,允许Java应用程序调用运行在不同 JVM(Java Virtual Machine)上的对象的方法。在本示例中,我们将深入理解RMI的...
在这个“RMI学习例子”中,我们有两个关键部分:服务端和客户端,它们都是使用Java 1.5编写的,因此不需要通过`rmic`命令来手动生成存根(stub)和 skeletons 文件。 首先,让我们深入理解RMI的工作原理。RMI的核心...
Java RMI(Remote Method Invocation)--Java的远程方法调用是Java所特有的分布式计算技术,它允许运行在一个Java虚拟机上的对象调用运行在另一个Java虚拟机上的对象的方法,从而使Java编程人员可以方便地在网络环境...
Java Remote Method Invocation (RMI) 是Java平台提供的一种强大的分布式计算技术,允许在不同网络节点上的Java对象之间进行远程调用。RMI是构建分布式Java应用程序的基础,它简化了跨网络通信的过程,使得开发者...
在提供的学习资料中,"rmi入门教程,简单明了(转).htm"和"RMI基础教程 - 深海有约 - BlogJava.htm"很可能是两篇关于RMI基础知识的教程,它们可能涵盖了RMI的基本概念、设置步骤、示例代码以及常见问题。"RMI基础...
Java RMI,全称为Remote Method Invocation,是一种在Java编程环境中实现分布式应用程序的关键技术。自JDK 1.1起,RMI就成为Java标准库的一部分,它提供了远程对象调用的能力,使得不同地址空间的对象能够像本地调用...
RMI(Remote Method Invocation,远程方法调用)是Java提供的一种分布式计算模型,它允许一个Java应用程序通过网络调用另一个远程计算机上的对象的方法。RMI是Java开发分布式应用的重要工具,使得开发者可以像调用...
Java RMI(Remote Method Invocation)是Java平台提供的一种分布式计算技术,它允许Java对象在不同的JVM(Java Virtual Machine)之间进行通信,从而实现远程方法调用。在Java RMI中,服务器端和客户端通过特定的...
Java Remote Method Invocation(RMI)是Java平台中用于构建分布式应用...学习RMI不仅涉及技术细节,还需要对网络编程和并发编程有深入的理解。通过实践和实验,你可以更好地掌握RMI的精髓,并将其应用于实际项目中。
RMI(Remote Method Invocation...虽然RMI的学习曲线相对陡峭,但它为构建复杂、可扩展的分布式Java应用程序提供了强大工具。通过熟练掌握RMI,开发者能够构建出跨越多个计算节点的高性能应用,实现系统间的高效协作。
### RMI基础知识与实践 #### 一、Java RMI简介 Java Remote Method Invocation (RMI) 是Java平台提供的一种分布式计算技术,允许开发者在不同Java虚拟机(JVM)之间调用远程对象的方法,从而实现分布式应用程序的...
Java远程方法调用,即Java RMI(Java Remote Method Invocation)是Java编程语言里,一种用于实现远程过程调用的应用程序编程接口。它使客户机上运行的程序可以调用远程服务器上的对象。远程方法调用特性使Java编程...
学习这个简单的RMI示例,可以帮助你了解如何在Java中设置和使用RMI,包括创建远程接口,实现远程对象,注册到RMI注册表,以及在客户端进行远程方法调用。这将为你构建更复杂的分布式系统打下基础。
学习和理解Java RMI对于开发分布式Java应用至关重要,它可以帮助你构建可扩展、高性能的应用程序,尤其适用于服务器集群和云环境。通过实践提供的"rmi"代码示例,你可以深入理解RMI的工作原理,并掌握如何在实际项目...
本篇文章将深入探讨“RMI一步一步学习”这个主题,通过分析给定的文件列表,我们将了解RMI的基本原理和实现步骤。 首先,我们看到`Calculator`类,这是RMI中的接口,它定义了可以在远程服务器上执行的方法。例如,...
Java RMI(远程方法调用)是Java编程语言中的一项核心技术,自JDK 1.1版本起就被引入...虽然现代的Java框架如Spring、EJB等提供了更高级别的分布式服务,但理解RMI的基本原理对于深入学习Java分布式系统仍然是必要的。