3

我需要在使用 Ruby 与 Java 进行 SOAP 集成之间做出决定。我的整个 Web 应用程序都是基于 Ruby on Rails 构建的,并且有一个重要的后端组件必须使用 SOAP 与遗留系统集成。

Java 拥有广泛的 SOAP 库,例如 Apache Axis,并且似乎与这种类型的“传统”Web 服务集成得非常好,而 Ruby 拥有一些宝石,例如 Savon 和 handSOAP。

我偏向于使用 Ruby 库,但我担心性能/可伸缩性问题。使用 Ruby 会带来哪些性能/可扩展性问题?

为了获得更多上下文,与遗留系统的集成有两个组件:一个日常流程,其性能不太重要,以及一个实时查询引擎,其性能非常重要,因为用户在处理查询时正在等待。

4

1 回答 1

4

我最近也面临同样的挑战。我最初使用 Java,但最终将所有内容都移植到 Ruby 上,使用Builder构建请求并使用Nokogiri解析响应。我还使用SoapUI来帮助开发/调试请求。

为什么我最终选择了 Ruby 而不是 Java...

  1. 更简单的基础设施。如果您不需要它,为什么要在您的架构中使用两种不同的范例。如果您的网站是 Ruby on Rails,除非您需要,否则为什么要在其中引入 Java。
  2. Java 有一些不错的库,例如 Axis,可以将 SOAP 请求转换为对象。但这真的不是什么大问题。但是当我的大部分逻辑都在 Ruby 中时,这真的不是什么大问题。对我来说,通过 Nokogiri 使用 DOM 比使用中间 Java 对象要容易得多。
  3. 我所有的逻辑(ActiveRecord 模型对象、验证等)都在 Java 中。我最终不得不复制诸如数据库持久性之类的逻辑来在 Java 代码和 Rails 代码之间进行通信......嘘
  4. 性能问题似乎是一个红鲱鱼。如果您正在发出 SOAP 请求,网络开销可能是您的瓶颈,而不是语言解析/执行。
于 2011-05-04T19:24:22.113 回答