EJB 与执行相同功能的其他技术的主要区别?

EJB Major Distinctions from other Technologies that perform the same function?

EJB 与执行相同功能的其他技术之间有哪些主要区别,为什么如此关注受支持或不受支持的技术,而不是其他系统,例如“支持 EJB”作为一项功能是否存在?

EJB 的最初概念更接近现在所谓的微服务,其中各个组件可以部署在各种不同的服务器(EJB 容器)上。

虽然现代微服务大多使用 HTTP 调用或消息队列,但是,EJB 通信是通过称为 RMI 的 Java-specific 协议进行的,该协议使用 Java 序列化来路由方法调用网络或多或少透明。这个网络中介是需要接口的原因(在 EJB 的早期版本中,它甚至更复杂!):在“本地”方面,接口后面的对象实际上是一个代理,它将序列化您的方法调用并传输它到部署 EJB 实现的任何地方。

Java EE(企业版)包含一系列功能,涵盖各种“企业”操作,包括事务、服务目录、持久性、Web (Servlet) 和分布式方法调用。 Tomcat 指出虽然它实现了 Servlet API,它是 Java EE 的一部分,但它没有实现所有这些其他组件,如果你需要它们,你'您将需要不同的容器,例如 GlassFish 或 WildFly。