技术开发 频道

RMI应用高级篇:扩展RMI框架

【IT168 技术文档】

1  扩展RMI框架

1.1  使用Java XML扩展应用程序服务器与客户端接口

   在进阶篇中,应用程序服务器返回给客户端的数据集需要用户自己管理,而不是标准的容器,可能会影响客户端的开发效率。但是如果将返回的数据集采用Java XML技术进行包装,就可以较好地扩展RMI框架的应用。即通过XML定义来实现数据集的管理,那么RMI应用框架可以扩展为:


图6:使用XML管理数据集的应用框架示意图

   在客户端和应用程序服务器之间加了XML提供服务器,将应用程序服务器返回的数据集用XML进行包装后再提供给客户端,而客户端使用标准XML解析器对数据进行使用。

   或者可以将XML提供服务器当作应用程序服务器的扩展部分,这样甚至可以把应用程序服务器当作完成的SOAP服务器来看待(当然在应用程序服务端也添加XML Parser),这样客户端与应用程序服务器之间的交互手段就更加多样了(通过XML进行数据查询,更新操作等)。

   关于XML封装数据集可以参考另外一篇文章《深入实践XML驱动数据加载》。

1.2  通过JNDI和Broker技术扩展应用程序服务器与后台服务器的连接

   在大型的数据应用中为了实现对应多变的业务扩展,在后台服务器之上往往添加了JNDI服务。而在很多的商务应用中,为了实现7×24的服务,用到了Broker技术,以对应系统故障和负载平衡。那么扩展后的RMI将是:


图7:使用JNDI和Broker技术扩展后的RMI应用框架

   需要说明的是,JNDI和Broker只是起到牵线搭桥的作用,并不影响后台服务器与应用程序服务器和应用程序服务器与客户端的连接。

   对于JNDI技术,所有的可用服务信息都将注册在JNDI服务器,让客户端通过RMI机制调用应用程序服务器远程接口时,应用程序服务器就会根据JNDI服务器的服务注册信息定位到相应的服务提供连接,等待应用程序服务器与后台服务器连接形成之后,JNDI将不再参与到连接当中(JNDI可以理解为注册服务提供)。

   对于Broker机制,可用的应用服务器主机信息都存放在Broker服务器端,当客户端请求连接时, Broker服务器根据应用程序服务器主机的工作状态来选择应答的应用程序服务器,以实现负载平衡。

1.3  结论

   Java RMI通过序列化机制,实现了客户端对远程方法的调用,满足了分布式处理的要求。并且通过屏蔽调用细节,做到了调用远程方法和使用本地方法一样简单。但是Java良好的可扩展性和开放性使得RMI的应用更为显著:

   (1)RMI应用体系可以具有良好的安全性,通过序列化检查和安全策略文件等保证了RMI系统的稳健,另外RMI可以穿透防火墙,也利于企业安全部署。

   (2)RMI应用体系可以结合Java XML,JNDI等技术进行扩展,完全满足企业分布式处理和SOA相关应用。

相关文章: 

RMI进阶篇:实现Multi-Tier框架

RMI应用实战篇:远程信息查询

RMI应用入门篇:部署框架和实现步骤

0
相关文章