2012-01-07 44 views
0

我知道應用程序服務器在Web應用程序中被大量使用。在這裏你有一個瘦客戶端(瀏覽器)與tomcat或jboss等應用服務器進行通信。是否值得與胖客戶端一起使用應用服務器?

我現在仔細看看一個商業軟件,它也使用應用程序服務器和胖/胖客戶端。 (< 100個用戶)在這裏,一個胖客戶端與在應用服務器上運行的服務器軟件(例如tomcat,jboss,...)通信

我看不到爲什麼有人會將應用服務器與胖客戶端一起使用。

解決方案b對解決方案a有什麼好處?

一)豐富的客戶< - >簡單的服務器在JVM上運行

二)豐富的客戶< - >服務器如Tomcat或JBoss應用服務器上運行

感謝

+0

胖客戶端通過讓服務器將部分工作負載(至少是UI)分配給客戶端來節省服務器上的負載。隨着用戶數量的增加,這一點變得更加明顯。 – cHao 2012-01-07 04:07:44

+0

對不起,如果我的問題是誤導。可以說胖/胖客戶是必須的。現在您必須決定是否要使用應用程序服務器。你將使用應用服務器有什麼好處? – cenobit 2012-01-07 14:57:23

+0

「應用程序服務器」是指胖客戶端要與之通話的服務器,還是Web界面或類似的東西? – cHao 2012-01-07 15:45:28

回答

1

具有胖客戶端的應用程序服務器提供與具有Web應用程序的應用程序相同的功能。如果應用程序服務器僅對web應用程序有用,那麼即使對於web應用程序也沒有任何意義:只需要一個簡單的Tomcat或Jetty服務器就足夠了。

一個完整的Java EE應用服務器的優點如下的:

  • 聲明式事務管理
  • 分佈式事務(在多個數據庫和/或一個數據庫和一個JMS服務器,例如)
  • 聲明和編程安全
  • 線程池
  • 併發處理
  • 持久性
  • 異步通信JMS支持
  • 資源管理(連接池等)
  • 暴露會話bean作爲Web服務
  • 依賴注入
能力JPA支持

無論用戶界面是否基於Web,所有這些功能都很有用。如果您的應用程序沒有使用所有這些功能,那麼您不需要應用程序服務器。如果你不需要所有這些,並且喜歡自己整合各種組件(一個事務管理器,一個JPA引擎,一個JMS服務器等),那麼你可以使用Spring,有或沒有像Tomcat或Jetty這樣的Web容器。

+0

好吧,我認爲應用程序服務器主要用於網絡應用程序,因爲它的「網站託管」功能。因此,在更厚的客戶端上,設置開銷會比在應用程序服務器上的實際優勢更大。感謝你的付出。 – cenobit 2012-01-07 19:08:21

0

該服務器將有三個目的:

  • 充當守門人並確保客戶行事正常;
  • 做任何你不委託給客戶的處理;和
  • 提供了一箇中心 - 一個集中的地方,其中保存相關數據,並在需要時客戶可以相互交流。

如果客戶端自己做所有事情,並且不需要直接與對方通信,那麼您並不需要應用服務器。但是你有更多的用戶,他們需要更多地協調他們的行動。通過特定的應用程序,客戶踐踏彼此工作的風險超過了分散模式的最大收益。在那個時候,組合服務器會更有意義。

如果您需要示例,請使用Microsoft Access。我們可能會同意它是一個胖客戶端數據庫應用程序。它直接修改數據庫(對於Jet/ACE數據庫而言),並且可以與其他進程共享一個數據庫。但是,由於用戶過多,特別是通過網絡訪問共享數據庫文件,腐敗現象幾乎迫在眉睫。但是,如果您引入SQL Server來處理數據庫,並讓Access執行用戶界面工作並生成查詢等,則獲得大部分同樣的好處,而且數據庫被摧毀的風險要小得多。

至於獨立服務器比Tomcat中的Web應用程序是好還是壞:其中一個容器中的應用程序具有與運行在Tomcat中的Web應用程序相比具有獨立Java Web應用程序......您不必擔心底層細節。你處理請求和響應,而不是套接字和數據包。另外,使用HTTP等已知和標準協議可以使其他軟件(包括自己的軟件的新版本)更易於與您進行通信。但是,作爲回報,您必須根據您的特定容器的內容來適應您的應用程序的通信。您是否可以或應該這樣做完全取決於您。

+0

與應用程序服務器我的意思是像tomcat,jboss或dm服務器。 – cenobit 2012-01-07 17:12:29

+0

相同的概念適用 - 只是代替SQL服務器,你會與其他軟件交談。在Tomcat或其他的情況下,你會通過HTTP請求與某些Web服務進行通信。如果你想要一個更清晰的答案,你需要提出一個更清晰的問題。 – cHao 2012-01-07 18:23:42

+0

我希望我的問題現在更清楚。感謝你的付出。 – cenobit 2012-01-07 18:54:59

相關問題