[iPhone и веб-сервисы]: ОТДЫХ против SOAP - PullRequest
12 голосов
/ 07 декабря 2009

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

  • веб-сайт (для «обычных» пользователей);
  • веб-сервис (для мобильных соединений) на базе TomCat и Axis2;
  • БД mySQL для хранения пользовательских данных.

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

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

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

Ответы [ 4 ]

10 голосов
/ 07 декабря 2009

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

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

4 голосов
/ 07 декабря 2009

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

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

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

0 голосов
/ 10 декабря 2009

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

0 голосов
/ 07 декабря 2009

Google Buffers

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

Этот вопрос должен помочь вам начать работу с Objective-C.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...