2012-10-16 44 views
0

我有一個動態Web項目,它使用相當複雜的消息(通過Web服務交付)處理基於消息類型的消息數據。該應用程序可以處理十五到二十種不同的消息類型。大約有四十種不同的實體類型被持久化爲消息處理的一部分。EJB的複雜性

作爲替代方案,我發現架構上每種消息類型都可以由單獨的EJB處理,並且一個EJB接收消息。我認爲EJB背後的概念之一是它們針對的是「單一」功能。它是否正確?另外,一個EJB的功能可能是多麼「複雜」?我的整個應用程序是否可以放在一個單一的通用EJB中。

我想,這些問題實際上只是哲學設計問題,但任何意見/建議都可以幫助我發展我對應用程序體系結構的理解。

+0

所以我加了'design'標籤... – home

回答

1

你的問題有點不準確。有一些EJB不應該做的事情,比如創建自己的新線程(它必須使用Java EE框架來做到這一點),但是本質上EJB可以做你做它的任何事情,而且它們是不一定針對單一功能。對複雜性也沒有固有的限制。

通常,EJB旨在爲應用程序域中的特定區域執行業務邏輯。您可以使用多個方法創建一個EJB,每個方法處理一個消息類型,或者爲每個消息類型分別創建一個EJB,或者爲消息類型組分別創建單獨的EJB ......這些選項是無窮無盡的。

+1

是的,我想我太籠統了,不管我認爲你的回答給了我一些見解。所以我們可以有一個單獨的函數EJB,它提供了一個認證服務,或者在我的情況下,處理多種消息類型和持久化數據的更復雜的任務。 – skyman