论文摘要
分布式系统是这样一个系统,系统中作为组件的不同计算机之间通过传递消息的方式互相协作、调用来共同完成特定任务的系统。通过分布式系统的应用,多个计算机可以在合理分工的情况下完成更加复杂的应用。而随着网络技术的提高和计算机应用的发展,分布式的系统得到了越来越广泛的应用。如何使分布式系统的架构更加灵活、简便、高效,这已成为当前的研究热点之一。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服务器与音乐推荐服务器之间的远程调用。实践表明该框架可以较好地满足该音乐网站对于一个轻量型远程调用框架的要求。