EJB 3.1 规范在第 10 章中陈述了以下内容。"本章描述了通过 EJB 2.1 远程客户机视图从分布在网络上的客户机访问企业 Bean 的互操作性支持,以及从作为 Java 平台企业版 (Java EE) 组件的远程客户机调用企业 Bean 的分布式互操作性要求。分布式互操作性不是为 EJB 3.x 远程客户端视图定义的。
这是否意味着从 EJB 3.x 开始,EJB 提供程序可以自由选择远程 EJB 调用的协议?还有为什么决定不定义 EJB 3.x 的互操作性?
是的,实现可以自由选择其协议。
软件行业已经(并且仍然)远离 RMI-IIOP/CORBA,这可能是唯一可以使用的可行协议,EJB 3 专家组(和供应商)可能无法证明指定(和实现)自定义协议所需的巨大努力是合理的。 我不清楚 EJB 3 是否应该定义@Remote
,而不仅仅是添加@RemoteHome
(即,只为现有功能定义一个等效的注释,而不是添加新功能),但我猜 EJB 专家组决定添加它只是为了保持一致性。