2012-01-07 28 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

相关问题