EJB建立在RMI之上。两者都暗示Java客户端和bean。如果您的客户需要以其他方式编写(例如.NET,PHP等),则可以使用Web服务或其他使用与平台无关的有线协议的方式,例如HTTP或HTTP或SOAP上的XML。
如果选择RMI,则不需要Java EE
EJB应用服务器。您必须使客户端和服务器JVM保持同步。您不升级服务器就无法升级客户端。您必须编写EJB应用服务器为您提供的所有服务(例如,连接池,命名和目录服务,池,请求队列,事务等)。
考虑到它,RMI是相当低的水平。您为什么一路回到CORBA?
相对于Spring,EJB 3.0是更好的选择。这取决于您是否喜欢POJO开发,是否需要除ORM和JPA之外的其他关系技术选择。
您可以购买Java
EE应用服务器(例如WebLogic,WebSphere)或使用开源服务器(JBOSS,Glassfish和OpenEJB和ActiveMQ),也可以坚持使用Spring并在Tomcat,Jetty,Resin或任何其他servlet上进行部署。
/ JSP引擎。
通过与技术无关,Spring提供了很多选择:持久性(Hibernate,iBatis,JDBC,JDO,JPA,Toplink),远程处理(HTTP,Hessian,Burlap,RMI,SOAP
Web服务)等。
EJB 3.0是许多供应商的规范。只能从Spring Source获得Spring。
我建议春天。它非常坚固,具有很大的吸引力,不会随处可见。它使所有选项保持打开状态。
Web服务在理论上很棒,但是您需要注意一些陷阱:
- 潜伏。福勒的分布式物体的第一定律:“不要!” 由许多细粒度的分布式SOAP服务组成的体系结构将像糖蜜一样优雅,优美和缓慢。分发前请仔细考虑。
- 从XML到对象进行封送处理会消耗CPU周期,除了允许您的客户说出与平台无关的协议外,CPU周期不会提供任何商业价值。
- SOAP是一个每天变得越来越膨胀和复杂的标准,但是它具有许多工具支持。供应商喜欢它,因为它有助于推动ESB的销售。REST很简单,但还不是很了解。工具不支持。
Spring的Web服务模块非常好,但是在选择以这种方式部署时要小心。按照POJO服务接口编写。这些将使您获得所需的概念隔离,将部署选择推迟到最后一刻,并且如果第一个想法不能很好地执行,您可以改变主意。



