2010-05-24 89 views
5

可以使用pojos而不是EJB或Servlets ???在App Server遠程中實現業務邏輯。主要思想是應用3層模型,其中客戶端既可以是Web瀏覽器也可以是桌面應用程序,並且它們在App Server中共享業務邏輯。在Spring應用服務器中實現業務邏輯

這將是架構

瀏覽器-----> Web服務器--------> |應用服務器(業務邏輯通用)| -------> | RDBMS普通|
桌面應用程序(例如Swing) - > | App Server(商業邏輯通用)| -------> | RDBMS常見|

回答

5

您可以使用Spring而不是EJB。我推薦它!

但是,這兩種方案都能以極好的方式處理企業功能,如事務處理和安全性。

使用Spring或沒有,你仍然需要一個Servlet容器爲你的網頁。如果您配置Servlet容器的web.xml文件正確,Servlet容器可以啓動Spring容器。

事務處理與春例如:

@Transactional 
public void execute(..) {..} 

並與EJB 3.X:

@TransactionAttribute 
public void execute(..) {..} 

正如你看到的,兩種替代方案爲您提供了企業添加功能聲明。

它可能有一臺服務器上所有的業務邏輯:

閱讀HenryOS的評論後更新。

一個解決方案可以是在客戶端(WEB服務器和胖Swing客戶端)之間使用Web服務。這是一個非常好的鬆耦合解決方案。

如果您需要更多速度,可以考慮使用Google的Protocol Buffer或類似技術。

一個有趣的事情是,對於Web服務或協議緩衝區,您仍然需要在服務器上使用業務邏輯的Tomcat或Jetty之類的Web容器,因爲它必須爲客戶端提供Web服務。所有Web服務框架(如Spring WS,CXF和Apache Axis 2)都使用Servlet。

說到層次,我會在WEB服務器上推薦兩層,因爲在將數據發送到業務服務器之前,您只能呈現和檢索數據。在業務服務器上,我會推薦三層。處理Web服務的頂層,中間的業務層以及底層的針對數據庫和其他企業系統的集成層。最後,如果您將CXF或Spring WS與JAXB一起使用,那麼業務服務器上的所有類都可以寫爲POJO!它也適用於其他幾個寫得很好的Web服務框架。

我希望這能回答你的問題!

+0

首先是任何事情,thx爲您的迴應......並且我明白你說什麼,但我的問題是否有沒有servlets/JSP/EJB的業務邏輯是可能的..即只有pojos。 我想要在Web服務器中使用Servlet/JSP(Web瀏覽器的表示層),並且在另一個服務器(App Server)上使用由Application Client使用的業務邏輯公共(服務對象,數據訪問對象和域對象)桌面(直接)和Web瀏覽器(通過到servlets/jsp) – HenryOS 2010-05-24 14:56:54

+0

非常感謝您的回覆。 so .. to finish ..如果我需要爲JSP/Servlet(在Web服務器上)或應用程序桌面客戶端提供業務邏輯服務,則唯一方法是實現Web服務意味着servlet,因此應用服務器上實現Web容器??? – HenryOS 2010-05-24 16:44:52