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

Java EJB与执行相同功能的其他技术的主要区别是什么?,java,ejb,ejb-3.0,ejb-3.1,Java,Ejb,Ejb 3.0,Ejb 3.1,EJB和其他执行相同功能的技术之间有什么主要区别,为什么会把重点放在支持或不支持的技术上,而不是其他系统将“支持EJB”称为一种功能,也不是吗?EJB的最初概念更接近于现在所谓的微服务,在微服务中,各个组件可以跨各种不同的服务器(EJB容器)部署 然而,现代的微服务大多使用HTTP调用或消息队列,EJB通信是通过一个名为的Java特定协议进行的,该协议使用Java序列化在网络上或多或少透明地路由方法调用。这个网络中介是需要接口的原因(在早期版本的EJB中,它甚至更复杂!):在“本地”方面,接口背

EJB和其他执行相同功能的技术之间有什么主要区别,为什么会把重点放在支持或不支持的技术上,而不是其他系统将“支持EJB”称为一种功能,也不是吗?

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

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


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

为什么?那是意见的问题@StephenC甚至对这个问题更开放的解释是“为什么设计者在EJB中投入了这么多”是可以回答的,这是一个历史背景问题。但这是一个编程问答网站,EJB规范的历史并不能真正帮助OP。基本上,Dan问了一个错误的问题。。。如果目标是理解EJB概念和/或确定EJB是否是某个项目所需的。关于EJB的历史或其“设计原则”或“为什么某些产品没有实现它”等问题,最好在软件工程网站上提问。请注意,几乎所有的子问题都是关于为什么>>人>人可能没有太多意义。(依我看)重写仍然“太宽”。等等,你是说会有一个服务器,部署EJB,没有web前端接收HTTP,只有RMI?“那么这是一个很大的区别吗?”当然。可能在某个地方有HTTP服务器,但也可能有使用各种接口的组件(CORBA、消息传递、EDI、从spool目录读取文件),而HTTP只是许多常见的集成点之一,与今天的主导地位相比还不算什么。我想你给出的答案正是我所寻求的。我问得不是很清楚,但我真的不知道怎么问。非常感谢!