用于SOAP处理的Java与Ruby

Nic*_* M. 4 ruby java axis soap savon

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

Java拥有广泛的SOAP库,如Apache Axis,似乎可以很好地与这种"遗留"Web服务集成,而Ruby有一些像Savon和handSOAP这样的宝石.

我偏向于使用Ruby库,但我担心性能/可伸缩性问题.使用Ruby附带的性能/可伸缩性问题是什么?

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

Rob*_*rco 5

我最近面临同样的挑战.我最初使用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请求,网络开销可能是您的瓶颈,而不是语言解析/执行.