Java против Ruby для обработки SOAP - PullRequest
4 голосов
/ 04 мая 2011

Мне нужно принять решение между использованием Ruby и Java для интеграции SOAP.Все мое веб-приложение построено на Ruby on Rails, и существует значительный внутренний компонент, который должен интегрироваться с унаследованными системами с использованием SOAP.

Java имеет обширные библиотеки SOAP, такие как Apache Axis, и, кажется, хорошо интегрируетсяс этим типом «устаревших» веб-сервисов, в то время как в Ruby есть несколько драгоценных камней, таких как Savon и handSOAP.

Я склонен к использованию библиотек Ruby, но обеспокоен проблемами производительности / масштабируемости.Какие проблемы производительности / масштабируемости связаны с использованием Ruby?

Чтобы получить больше контекста, интеграция с унаследованной системой состоит из двух компонентов: ежедневного процесса, производительность которого менее важна, и механизма запросов в реальном времени,производительность очень важна, потому что пользователи ждут, пока обрабатывается запрос.

1 Ответ

5 голосов
/ 04 мая 2011

Я недавно столкнулся с той же проблемой. Изначально я работал с Java, но в итоге все перенес на Ruby, используя Builder для построения запросов и Nokogiri для анализа ответов. Я также использую SoapUI , чтобы помочь с разработкой / отладкой запросов.

Почему я перешел на Ruby поверх Java ...

  1. Упрощенная инфраструктура. Зачем использовать две разные парадигмы в вашей архитектуре, если она вам не нужна? Если ваш сайт - Ruby on Rails, зачем вводить в него Java, если он вам не нужен.
  2. В Java есть несколько хороших библиотек, таких как Axis, для преобразования SOAP-запросов в объекты. Но это на самом деле не большая проблема, но на самом деле это не такая уж большая победа, когда большая часть моей логики в Ruby. Мне было намного проще работать с DOM через Nokogiri, чем иметь промежуточные объекты Java.
  3. Вся моя логика (объекты модели ActiveRecord, валидация и т. Д.) Была на Java. Я столкнулся с необходимостью реплицировать логику, такую ​​как постоянство базы данных, для связи между кодом Java и кодом Rails ... boo
  4. Проблемы с производительностью кажутся красной селедкой. Если вы делаете запросы SOAP, сетевые издержки, скорее всего, станут вашим узким местом, а не языком синтаксического анализа / выполнения.
...