EJB与WebService?绩效观点

Che*_*tan 11 java performance web-services ejb

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

背景:

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

现在从性能角度来看哪种方法更好地设计服务器应用程序.

记住以下事项:

我有2个选择:

  1. 纯EJB应用程序意味着EJB客户端和EJB服务器组件

  2. WebService Plain Java方法(没有基于EJB的Web服务,因为它简直就是混乱)

我的绩效指标:速度:哪种设计方法可以更快地处理请求.我的业务应用程序将部署在32位机器上!

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

请提供您的反馈

问候

阿赫亚

Jes*_*rSM 8

如果"Web服务"是指SOAP Web服务,那么无论您如何操作,EJB都应该更快.

优点:

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

缺点:

  • 正确设计第一个XML消息定义将解耦客户端和服务器
  • 给定额外的间接层更容易更改消息格式
  • EJB实现在历史上一直是巨大而缓慢的,因为它比Web服务堆栈更大(但是像Apache OpenEJB这样的新EJB实现是小型,轻量级和可嵌入的)

但是,如果您不需要分布式事务处理,只需使用RMI即可.它有专业但没有EJB的缺点.它已经存在了很长时间,但它仍然只是花花公子.