RMI确实是Java很重要的一个基础概念,它实际是Proxy模式的体现,使用RMI,我们可以在编程时,无需关心A服务器对象如何调用B服务器对象,而在编程时,看成这些对象是在一个JVM中调用,部署运行后,实际是就多台服务器上运行,这就大大简化了编程的工作量,说白了,RMI可以将对象在多台服务器之间传送,通过RMI调用对象,可以象普通在本地调用对象一样,这是分布式计算和OO结合的一个了不起的技术,EJB就是利用了这些优点。
至于你感觉国内搞不是很多,那是因为使用EJB就有RMI了,只有在一些特殊情况下,比如我可能只需要EJB的分布式多计算机计算功能,不需要其分布式事务等功能,那么就可能需要直接使用RMI了,这就是组件的个性化使用,象一些分布式缓存也是使用RMI达到多服务器的集群,现在开始谈云计算cloud computing,RMI类似模式是缺少不了的,这也是OO思想在大型计算机群中的一个基础模式。
国内用不多还有其他原因,比如都是单机使用,都是围绕数据库的集中式主机系统,负载都集中到了数据库,成天想着如何提高中心数据库处理能力,没有想到使用性价比高的分布式计算,更没有想到将数据库系统变成OO系统,这两个条件缺一不可,分布式+OO就是一个崭新划时代的架构,很多人还停留在上个世纪。
另外,RMI和Web服务区别在于,RMI只能运行在Java平台,但是RMI无疑性能要高,没有XML的转换,高性能换来兼容性。
[该贴被banq于2008-04-19 10:20修改过]