基于动态代理的Java远程调用框架的研究

基于动态代理的Java远程调用框架的研究

论文摘要

分布式系统是这样一个系统,系统中作为组件的不同计算机之间通过传递消息的方式互相协作、调用来共同完成特定任务的系统。通过分布式系统的应用,多个计算机可以在合理分工的情况下完成更加复杂的应用。而随着网络技术的提高和计算机应用的发展,分布式的系统得到了越来越广泛的应用。如何使分布式系统的架构更加灵活、简便、高效,这已成为当前的研究热点之一。Java环境下的分布式系统的远程调用通常有几种方法来实现,有相对高效却不便使用和扩展的RMI(Remote Method Invocation),也有便于扩展但属于重量级应用的EJB(Enterprise Java Bean)以及适用性突出但效率略显低下的Web Service,还有以简易性见长的轻量型框架Hessian/Burlap。在此背景下,本文研究和提出了一种轻量级的Java远程调用框架――Summer,并将之应用于实际项目中。在Summer框架中,RMI是远程调用的通讯基础,它所采用的基于Socket的通讯方式相对于其他基于Http进行通讯的架构来说保持了通讯效率的优越性。为了解决RMI调用不便并且不利于拓展带来的不便,本框架使用Java动态代理技术去除了远程业务接口对RMI框架的依赖,框架使用者不需要将被远程调用的业务接口按照RMI规定实现RMI的Remote接口。框架客户端由实现了业务接口的代理对象向框架使用者提供业务服务,而代理对象再调用底层RMI远程接口与框架服务端进行通讯。此种方式将框架通讯核心进行了封装,使得框架的使用者可以容易地把普通的Java服务类配置成可供远程调用远程对象服务类,很好的解除了调用者对框架的依赖。同时由于遵循AOP(Aspect Oriented Programming)思想设计的应用越来越多,为了能够提供针对业务服务横切面的编程,Summer框架也应用Java动态代理技术使本框架可以方便的配置针对远程调用的拦截服务,通过对业务方法增加拦截器的方式对原业务接口进行增强,同时这些业务对象不需要因为拦截器而做出任何改变。与RMI不同,Summer框架不再需要提供远程服务的业务服务接口实现REMOTE接口,也简化了建立RMI连接、暴露RMI服务所需要的繁琐步骤;和Web Service相比,在减少了配置远程服务所需要的工作量的同时,基于RMI的通讯方式也使得Summer框架比基于Http的Web Service和Hessian/Burlap框架有更好的通讯效率。目前,Summer框架已在一个音乐网站的音乐推荐软件项目中进行了实际应用,我们利用框架完成了网站Web服务器与音乐推荐服务器之间的远程调用。实践表明该框架可以较好地满足该音乐网站对于一个轻量型远程调用框架的要求。

论文目录

  • 摘要
  • ABSTRACT
  • 1 绪论
  • 1.1 研究背景
  • 1.2 研究目的和意义
  • 1.3 研究目标和内容
  • 1.4 论文结构
  • 2 研究现状分析
  • 2.1 基础的RMI 远程调用方案
  • 2.1.1 远程调用的访问过程
  • 2.1.2 远程调用方案的分析
  • 2.1.3 小结
  • 2.2 使用EJB 来进行远程调用
  • 2.2.1 EJB 的概念
  • 2.2.2 EJB 的一些讨论
  • 2.2.3 小结
  • 2.3 通过Web Service 来进行远程调用
  • 2.3.1 Web Service 工作原理
  • 2.3.2 Web Service 的讨论
  • 2.3.3 小结
  • 2.4 其他基于Http 协议的一些轻量级方案
  • 2.4.1 使用Hessian/Burlap 远程调用的过程
  • 2.4.2 Hessian/Burlap 的分析
  • 2.4.3 小结
  • 2.5 本章小结
  • 3 关键问题及解决方案
  • 3.1 面临的挑战
  • 3.2 高效的数据传输
  • 3.3 将远程服务接口与通讯框架解耦
  • 3.4 远程对象管理
  • 3.4.1 服务端的业务对象管理及业务方法的调用
  • 3.4.2 客户端的业务对象管理
  • 3.4.3 远程业务对象方法调用的过程
  • 3.5 框架的可扩展性增强
  • 3.6 本章小结
  • 4 框架的需求分析
  • 4.1 框架的作用
  • 4.2 框架的API
  • 4.3 框架的非功能需求
  • 4.4 应用场景
  • 4.5 本章小结
  • 5 框架的设计
  • 5.1 框架API 的契约设计
  • 5.2 框架的总体设计
  • 5.3 框架客户端的设计
  • 5.3.1 框架客户端的静态逻辑设计
  • 5.3.2 框架客户端的动态逻辑设计
  • 5.4 框架服务端的设计
  • 5.4.1 框架服务端的静态逻辑设计
  • 5.4.2 框架服务端的动态逻辑设计
  • 5.4.3 框架服务器端用户需要配置的远程服务定义文件
  • 5.5 框架的部署视图
  • 5.6 本章小结
  • 6 框架的应用实践
  • 6.1 项目简介
  • 6.2 项目中框架的应用
  • 6.2.1 框架的应用
  • 6.2.2 框架服务端的配置
  • 6.3 项目部署
  • 6.4 框架应用的效果评价
  • 6.5 本章小结
  • 7 总结与展望
  • 7.1 本文工作小结
  • 7.2 展望
  • 参考文献
  • 致谢
  • 攻读学位期间发表的学术论文
  • 相关论文文献

    标签:;  ;  ;  ;  ;  

    基于动态代理的Java远程调用框架的研究
    下载Doc文档

    猜你喜欢