我們目前正在爲大學開發一個Web應用程序,我們希望有更有經驗的開發人員提供一些建議。我們應該使用ApacheCXF還是EJB來傳遞邏輯和Web模塊?
我們有一個使用Hibernate在MySQL數據庫上運行的後端。另一個項目是使用由後端提供的API的Web UI(註冊用戶,獲取與某些配置文件關聯的數據等)。我們使用JSF框架(RichFaces)作爲用戶界面。一切都是使用Maven構建的。
我們無法決定的技術是用於UI和邏輯模塊之間的通信。第一種選擇是使用ApacheCXF來提供UI可以作爲客戶端的SOAP Web服務。第二種選擇是使用EJB從UI模塊調用後端方法。
什麼方法更廣泛使用?就我們在Web上閱讀的內容而言,使用EJB比SOAP webservices更快。另一方面,我們對使用Tomcat的EJB沒有任何經驗(我們更喜歡使用Tomcat,因爲它似乎是一個更便宜的選項,但是我們不知道爲了在Tomcat中使用EJB而必須做什麼)。此外,從一開始就使用web服務將允許我們添加對不同平臺(例如Android)的支持。
我們正在討論的另一個方面是應該如何部署應用程序。我們現在考慮的替代方案是:
- 將其部署爲單個WAR項目(這將解決我們關於將UI與應用程序的後端進行通信的問題)。
- 使用webservices將兩個WAR項目部署到同一個服務器中,以便在項目之間進行通信。 (我們有一個使用Tomcat服務器部署的這種方法的原型)
- 部署一個WAR項目和EJB項目。
- 部署一個EAR項目,該項目將包含對WAR和EJB項目的引用。 (我們有一個使用這種方法在Glassfish服務器上部署的原型)
該項目現在開始,所以我們現在只能處理幾百個用戶。但是,如果項目成功,我們需要處理幾百萬用戶。
任何意見,將不勝感激。謝謝。
編輯:那麼關於如何部署項目的任何意見?是否有必要使用EAR?如果我們將項目部署爲EAR模塊,是否有優勢?
編輯2:我們發現我們需要在此線程的建議:我們使用ApacheCXF工作Deploying java applications (Tomcat/Glassfish)
我們正在討論獲取託管服務或雲服務來部署我們的應用程序的成本。另一位用戶從stackoverflow讀取另一個線程,如果您需要glassfish服務器,建議使用Jelastic。瀏覽定價部分後,似乎有一個glassfish服務器將消耗更多的資源(因此更昂貴)。 – user2100776 2013-02-24 21:45:05
你必須明白,tomcat只是一個servlet容器。我確信那裏有一些tomcat頑固分子,但我會懷疑在開發環境之外使用tomcat。默認情況下,tomcat可能看起來更輕,但是當您開始部署大型EJB樣式應用程序時會發生什麼?可能沒有看起來那麼快。你可以使用Spring框架,它提供了javaee的所有功能,但它只是將大量的jar複製到Glassfish默認提供的tomcat中。 – greenkode 2013-02-25 08:54:05