您的当前位置:首页正文

利用语言与平台特性改进RMI分布计算框架(精)

2021-09-07 来源:步旅网
利用语言与平台特性改进RMI分布计算框架

new ReconnectProxy(server, HelloWorld.NAME)); hw =

(HelloWorld)Proxy.newProxyInstance(HelloWorld.getClass().getClassLoader(), new Class[] { HelloWorld.class }, new PerformanceProxy(hw)); Naming.bind(HellotWorld.NAME, server); 上面仅为示例,我们在打算在服务器端添加一个LogProxy,在客户端添加 ReconnectProxy和PerformanceProxy。决定到底是否是客户端拦截器的是是否使用

UnicastRemoteObject.exportObject导出远程对象,因为RMI规范规范没有将Stub与名字绑定的对象,在远程引用的时候,直接将远程对象自身序列化到客户端,而不是它的Stub,这里实施了一个Trick。 5.我们可以看到上面使用了大量的拦截器。事实上,拦截器主要的功能就是实施特殊应需求,并且传递调用。最基本的要求,它们需要继承InvocationHandler,并且implements Serializable 。 LogProxy示例: public class LogProxy

implementsInvocationHandler, java.io.Serializable, LinkedProxy

{ /* …… … … */ public Object invoke(Objectproxy, Method method, Object[] args) throws Throwable{ /** 省略:具体的LogProxy拦截器行为在这里实施 **/ try{ return method.invoke(next, args); }

catch(InvocationTargetException e){ throw e.getTargetException(); /** 省略:next 相关的操作 **/ } } }

5结语:改进的意义和应用 RMI作为目前最为优秀的分布计算框架之一,应用非常广泛,特别是企业级的系统基础架构。而企业级架构中事务特性、日记、性能评价、设计上优秀的扩展性、网络范围管理的便利等等都是很必要的。Interceptor-RMI框架正是为了适应了这一需求而设计的。它为企业分布计算基础架构提供了一个优秀的参考。 参考文献

[1]SunMicroSystems,inc. RMI Specification[R]. Sun MicroSystems, 2003. [2]JINI核心技术 机械工业出版社 2000 [3]Ed Roman,Scott Ambler. 精通EJB[M]. 北京:电子工业出版社,2002. [4]Marko Boger. Java与分布式系统[M]. 北京:机械工业出版社,2003. [5] Rickard Öberg. 精通RMI-Java与EJB企业级应用开发. 北京:机械工业出版社,2003. [6] 朱刚等. Linux网络编程. 北京:科学出版社,2000. [7]Don Box. COM本质论. 北京:中国电力出版社,2002. [8] 何炎祥,陈莘萌. Agent和多Agent系统的设计和应用. 武汉:武汉大学出版社,2001.

因篇幅问题不能全部显示,请点此查看更多更全内容