2009-07-10 4 views
4

Можете ли вы привести примеры того, как вы использовали gSOAP и насколько хорошо он был интегрирован в существующую архитектуру? Вы обнаружили узкие места разработки с помощью gSOAP?Где вы использовали gSOAP?

ответ

2

Мы использовали gSOAP на веб-сервере на C++ около 4 лет назад. В целом он работал нормально. Единственная серьезная проблема заключалась в том, что интерфейс был в C и процедурный (я понимаю, что сложно разработать хороший непроцедурный интерфейс). Во время реализации интерфейса может существовать много повторяющегося кода, для которого вам, возможно, придется использовать макросы (мы не изучали вариант шаблонов слишком далеко).

1

Мы используем gSoap для развертывания веб-службы на встроенном Linux-устройстве с процессором ARM MX.

1

Мы используем gSOAP для использования веб-службы на основе WCF из приложения, развернутого на Linux-устройстве, работающем на процессоре ARM. Опыт хорош в значительной степени.

3

Мы использовали gSOAP для связки клиентов ARM для связи с сервером веб-службы AXIS. Плюсы gSOAP:

  • очень мощный, поддерживает почти все веб-службы создает
  • проста в использовании, его абстракции WS вызывает в функции удаляет всю сложность веб-службы для программиста
  • элегантные интерфейсы в обоих C и C++

Однако мы столкнулись несколько узких мест развития:

  • при использовании пользовательские типы данных, такие как карты или наборы, достаточно взломать, чтобы заставить компилятор gSOAP обрабатывать их (маршал/unmarshalling). Особенно плохо с динамическими структурами данных.
  • Отладка жесткая из-за ее внутренней сложной сети, анализа и распределения памяти. Сделайте все возможное, чтобы придерживаться статического распределения памяти.
  • список рассылки жив, но разработчики не очень активны на нем. На простые вопросы можно получить быстрый ответ, но самые трудные проблемы часто остаются без ответа.
  • забыть о оптимизации. Соединение в gSOAP ест около 1 МБ памяти во время выполнения (-O). Производительность Runtime отлично работает на нашей 32MB-платформе ARM на базе Linux, но вам действительно мало что нужно сделать для оптимизации.
0

Мы использовали gSOAP на веб-сервере на ARM9 400MHz устройстве. Демон gSOAP подключен к демону базы данных через библиотеку zeromq, которая запускается на том же устройстве.

Он поддерживает более 1000 базовых запросов, которые не требуют подключения к базе данных.

Отключение поддержки опции SOAP с несколькими ссылками с помощью определения WITH_NOIDREF помогло уменьшить время сериализации примерно в 4 раза быстрее при больших запросах с большим количеством узлов сериализации.