1. 首先什么是分布式应用?
简单的说就是客户端,应用服务器及数据库驻留在多台计算机上的应用。
就是我们常说的三层架构或n层架构。应用服务器就是业务逻辑层,又称基于构件的三层架构的中间层。
2. 三层架构的优势是什么?
二层架构就是我们常说的C/S架构,二层架构中如果我们把业务逻辑层并入客户端代码中就称为胖客户,反之则称为胖服务器。
1) 由于二层架构较早的建立与数据库的连接,所以当数据库的负载或连接达到饱和时,会造成数据库性能的下降,以及客户端的访问被拒绝。
2) 而三层架构由于有了中间层,它就会平衡负载,仅当客户需要访问数据库且其它连接资源被释放时,才会处理数据库连接。
3) 还有一点很重要:当代码需要大的改动是只需要更新中间层的代码,无须对客户端进行修改。
3. 由于需要处理分布式应用,公司引入了RMI(远程方法调用)。
4. RMI在中间层被实现。
5. 分布式RMI应用由两部分组成.
1) RMI服务器-----包含需要被远程调用的方法。服务器创建几个远程对象,并在RMI注册表中产生它们的引用(也就是用远程对象的唯一名注册,RMI注册是在RMI服务器上运行的服务),客户端只要得到这个远程对象的引用就可以调用服务器中的那些方法了。
2) RMI客户
6. RMI架构(Mirosoft有MTS架构)
1) 桩/骨架层Stub/Skeleton
2) 远程调用层Remote Reference Layer
3) 传输层Transport Layer
流程:
客户端请求从Stub开始,Stub是远程对象的客户代理,客户通过Stub与Skeleton通信,Skeleton为服务器端代理,负责与Stub的通信。
远程调用层RRL在客户端和服务器端都有,客户的RRL接受Stub的请求,组包(就是把数据转换为可在网络上传输的格式)之后,发送到服务器RRL,再拆包,传给Skeleton。
传输层负责客户RRL和服务器RRL的连接
7. 开发RMI步骤:
1) 定义远程接口-----远程接口类
2) 定义和实现服务器中远程方法-----服务器类
3) 定义与实现客户-----客户类
4) 编译
5) 生成Stub和Skeleton
6) 创建安全策略
7) 启动RMI远程注册表
8) 启动服务器
9) 启动客户
关于实际应用可以看我的几个RMI实例