【问题标题】:EJB Vs WebService? Performance point of viewEJB 与 Web 服务?性能观点
【发布时间】:2010-09-09 10:18:12
【问题描述】:

好吧,我们现在有情况要决定。我认为 stackoverflow 是讨论的最佳场所。

背景:

我们有 2 个 JVM 企业应用程序服务器,每个服务器上部署了一个应用程序。我们需要启用从一台机器到另一台机器的业务功能调用。假设一个是客户端,另一个是服务器。

现在从性能的角度来看,哪种方法更适合设计服务器应用程序。

牢记以下几点:

我有两个选择:

  1. 纯 EJB 应用程序是指 EJB 客户端和 EJB 服务器组件

  2. WebService 纯 Java 方法(没有基于 EJB 的 Web 服务,因为它简直是一团糟)

我的性能指标: 速度:哪种设计方法可以更快地处理请求。我的业务应用程序肯定会部署在 32 位机器上!

还要注意有2个JVM,一个是32位的,一个是64位的(现在避免这种情况是不可避免的)

请提供您的反馈

问候

车坛

【问题讨论】:

  • 为您的问题添加了 java 标签。
  • EJB 支持的 Web 服务有什么问题?
  • @BlaiseDoughan 很抱歉跑题了,但是让 EJB 支持的 Web 服务是个好习惯?
  • @MyTitle - 是的,EJB 支持 Web 服务是很好的做法。

标签: java web-services ejb performance


【解决方案1】:

如果您所说的“Web 服务”是指 SOAP Web 服务,那么无论您如何操作,EJB 都应该更快。

优点:

  • Java 序列化比 XML Web 服务更快
  • 序列化和解析 XML 比直接序列化使用更多内存,EJB 节省内存
  • EJB 以直接的 Java 接口和值对象表示。对于 Web 服务,您可能必须添加一个映射层,例如 XmlBeans 或 JAXB。
  • 大多数 EJB 协议让您可以轻松地在调用之间重用 TCP/IP 连接

缺点:

  • 首先进行适当的设计 XML 消息定义将使客户端和服务器解耦
  • 考虑到额外的间接层,更容易更改消息格式
  • EJB 实现历来庞大而缓慢,比 Web 服务堆栈更大(但像 Apache OpenEJB 等较新的 EJB 实现体积小、重量轻且可嵌入)

但如果您不需要分布式事务处理,只需使用 RMI。它具有 EJB 的优点,但没有 EJB 的缺点。它已经存在了很长时间,但它仍然很有效。

【讨论】:

  • 非常感谢您提供的详细信息。我正在寻找一种更快的 2 JVM 之间的通信方式。 EJB是我感觉的。特别是在我的应用程序中,我不想因为两端的 XML 解析而失去性能。
【解决方案2】:

它不必是一个或另一个。您可以在 EJB 中拥有所有业务逻辑,还可以提供 Web 服务外观来访问 EJB。还要记住,有不同类型的 Web 服务架构。大多数人在听到“Web 服务”时会想到 SOAP,但您可能还想看看 JAX-RS。

通过 HTTP 以 XML 格式发送数据效率极低。另一方面,它在客户端为您提供了更多更多的灵活性。几乎可以从任何平台或编程语言使用 Web 服务。

【讨论】:

  • 谢谢迈克。如果我在 EJB 上使用 SOAP,XML 处理会严重影响我的性能。因为我的 xml 有效负载大部分在 60 到 100KB 左右。
  • Mike 建议发送 XML 而不是 SOAP 消息的 JAX-RS。示例见:bdoughan.blogspot.com/2010/08/…
猜你喜欢
  • 2011-11-11
  • 2013-07-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-09
  • 2013-04-18
  • 1970-01-01
  • 2011-06-12
相关资源
最近更新 更多