Подтвердить что ты не робот

[iPhone и веб-службы]: REST и SOAP

Я начал свой дипломный проект, мобильное приложение, подходящее для iPhone, Android и (в ближайшем будущем) Symbian. Архитектура сервера следующая:

  • веб-сайт (для "стандартных" пользователей);
  • веб-сервис (для мобильных подключений), основанный на TomCat и Axis2;
  • mySQL DB для хранения данных пользователей.

Серфинг через Интернет, я прочитал много дискуссий о взаимодействии между iPhone и веб-сервисами, и я должен сказать, что я не имею четкого представления о том, что я могу сделать, а что нет. Давайте начнем с протокола, используемого для извлечения данных из БД: приложение на стороне Android использует протокол SOAP, могу ли я сделать то же самое с iPhone? Существуют ли какие-то ограничения или проблемы?

Я также прочитал об использовании REST вместо SOAP, возможно ли это с описанной выше архитектурой сервера? Каковы основные преимущества/недостатки?

Извините, если эти вопросы звучат "n00b", но это мой первый реальный опыт работы с iPhone и множество информации, найденной в Интернете, перепутали мой разум, и я боюсь запутаться. Простите меня за любую ошибку.

4b9b3361

Ответ 1

SOAP просто слишком тяжел для мобильной связи. Почему вся работа по обертке запросов в дополнительном XML-слое вам придется анализировать? Вы отправляете больше данных, чем вам нужно, и накладываете большую нагрузку на процессор на клиент и сервер.

Используйте REST. Если вы выполняете кросс-платформенный проект, JSON делает большой контейнер полезной нагрузки, иначе плиты хорошо работают для отправки данных с сервера.

Ответ 2

Вы можете определенно сделать SOAP на iPhone. Вот хороший учебник по этому вопросу. В конце концов, SOAP - это протокол HTTP, и у вас есть все библиотеки, необходимые для HTTP на iPhone.

Сказав, что RESTful API > проще SOAP, так что вы может захотеть их рассмотреть. Они также HTTP, поэтому у вас не будет никаких проблем при работе с iPhone. На стороне сервера, если вы используете Java, вам нужно будет использовать JAX-RS для реализации этой части.

Надеюсь, что это поможет.

Ответ 3

Буферы Google

Если вы ищете агностическое решение для языка и платформы, посмотрите Google Buffers. Вы можете легко сериализовать объекты для передачи по кабелю.

Этот question должен начинаться с Objective-C.

JSON

Я также с большим успехом использовал JSON в приложениях для iPhone. Опять же, относительно язык и платформа агностик, но гораздо проще, чем Google Buffers.

Ответ 4

SOAP с Fast Infoset подходит для небольших устройств:

JAX-WS 2.0 и его эталонная реализация поддерживают Fast Infoset и MTOM/XOP. Эта статья содержит информацию о производительности веб-службы для Fast Infoset и MTOM/XOP:

http://www.devx.com/xml/Article/35385/1954

Fast Infoset оптимизирован для небольших устройства с полосой пропускания ограничений и поддерживается многими таких как Microsoft.NET и .NET CF, Sun GlassFish, BEA WebLogic, IBM SDK для Java 6.0 и др.

http://en.wikipedia.org/wiki/Fast_Infoset