我知道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上運行(但爲什麼不呢?)。 –