ejb 原理
来源:互联网 发布:淘宝二手钢琴被坑了 编辑:程序博客网 时间:2024/06/09 17:22
首先,我想先说说RMI的工作原理,因为EJB毕竟是基于RMI的嘛。废话就不多讲了,RMI的本质就是实现在不同JVM之间的调用,工作原理图如下:
它的实现方法就是在两个JVM中各开一个Stub和Skeleton,二者通过socket通信来实现参数和返回值的传递。
有关RMI的例子代码网上可以找到不少,但绝大部分都是通过extend the interface java.rmi.Remote实现,已经封装的很完善了,不免使人有雾里看花的感觉。下面的例子是我在《Enterprise JavaBeans》里看到的,虽然很粗糙,但很直观,利于很快了解它的工作原理。
1. 定义一个Person的接口,其中有两个business method, getAge() 和getName()
Java代码
public interface Person {
}
2. Person的实现PersonServer类
Java代码
public class PersonServer implements Person {
}
3. 好,我们现在要在Client机器上调用getAge()和getName()这两个business method,那么就得编写相应的Stub(Client端)和Skeleton(Server端)程序。这是Stub的实现:
Java代码
import java.io.ObjectOutputStream;
import java.io.ObjectInputStream;
import java.net.Socket;
public class Person_Stub implements Person {
}
注意,Person_Stub和PersonServer一样,都implements Person。它们都实现了getAge()和getName()两个business method,不同的是PersonServer是真的实现,Person_Stub是建立socket连接,并向Skeleton发请求,然后通过Skeleton调用PersonServer的方法,最后接收返回的结果。
4. Skeleton实现
Java代码
import java.io.ObjectOutputStream;
import java.io.ObjectInputStream;
import java.net.Socket;
import java.net.ServerSocket;
public class Person_Skeleton extends Thread {
}
Skeleton类 extends from Thread,它长驻在后台运行,随时接收client发过来的request。并根据发送过来的key去调用相应的business method。
5. 最后一个,Client的实现
Java代码
public class PersonClient {
}
Client的本质是,它要知道Person接口的定义,并实例一个Person_Stub,通过Stub来调用business method,至于Stub怎么去和Server沟通,Client就不用管了。
- EJB原理
- EJB原理
- EJB 原理
- EJB原理
- ejb 原理
- EJB调用原理分析
- EJB 工作原理
- EJB调用原理分析
- EJB的工作原理
- EJB 工作原理
- EJB原理与开发
- EJB 工作原理
- EJB 调用原理分析
- EJB工作原理
- EJB工作原理
- ejb调用原理
- EJB工作原理
- EJB调用原理分析
- 软件测试的设计与组织
- 火狐在需要获取div的高度时,往往需要用到offsetHeight为0的解决方法
- 关于幻灯片配置问题和大家分享一下
- In App Purchase 个人使用总结
- 不明觉厉的spring(3)---Aop
- ejb 原理
- Why ternary operator more efficient than if-else
- 软件测试
- 金山软件笔试题
- 软件测试过程管理实践
- PHP exit函数介绍
- 深入浅出Node.js(四):Node.js的事件机制
- Undefined exploded archive location Tomcat之项目不能发布
- Qt数据库操作