我知道EJB是业务逻辑的企业应用程序中的事实标准。但是,osgi声明式服务可以完成EJB所做的许多事情。两者都由容器管理,两者都可以用作单身人士,都可以与CDI一起使用。我发现的差异是:业务逻辑:EJB与OSGi声明式服务
- EJB已经有RMI机制但DS没有。
- EJB有线程池,但DS不
- DS可以只需要OSGi的,但需要EJB容器的JavaEE(例如,如果我们使用的JavaEE容器将很难开发独立的应用程序,因为它要么导致性能开销,或者必要从JavaEE的实现(EXM的GlassFish)提取EJB容器
它有什么用标准解释EJB的其他重要优势
编辑:?
原因为什么我问这个问题如下 - 我们想开发一些可以用于SE和EE平台的业务逻辑。这就是为什么DS似乎是更好的解决方案。然而,EJB和DS是两个宇宙,我们害怕错过重要的东西。
通过非常简单的理解,您可以将OSGi服务视为EJB轻量级。使用EJB,J2EE容器容器将为您提供很多支持(远程调用,管理安全上下文,池化,事务处理等)。您可以在OSGi容器上实现相同的功能,但您必须预先进行配置。 – gusto2
投票结束这主要基于意见。 StackOverflow不适用于人气竞赛。 –
无论如何,所有这些点都是不正确的。 DS/OSGi具有远程服务,请参阅规格。 DS有线程池(只需为'ExecutorService'定义'@ Reference',就完成了)。最后,DS实际上并不需要在OSGi上运行(但为什么不呢?)。 –