Каков наилучший протокол обмена клиентскими серверами для использования в Android и iOS?

У нас есть серверное приложение (реализовано на Java), которое предоставит некоторые данные для наших мобильных приложений. Приложения будут созданы для Android и iOS.

Каков наилучший протокол/библиотека для этой цели? Накладные расходы протокола должны быть как можно меньше.

Спасибо.

Изменить: это должен быть запрос- > ответ szenario. Потеря данных неприемлема. Ответ может содержать длинный список данных и, следовательно, требуется меньше накладных расходов.

Клиент запрашивает данные (указанный ключ и некоторые определенные параметры), например. "Дайте мне весь файл из папки x, у которого есть расширение y". Сервер отвечает со списком.

Первая идея заключалась в использовании XMLRPC, но сгенерированные ответы слишком велики.

Ответ 1

Для большинства приложений HTTP (S) - лучший протокол для использования. Накладные расходы (то есть заголовки) довольно малы, передача может быть gzipped, соединение может быть защищено (через SSL). Кроме того, порты 80 (HTTP) и 443 (HTTPS) будут открыты в 99% случаев. Других портов нет - например, некоторые несущие блокируют все остальные порты, если вы не платите дополнительно.


Что касается реализации, я предлагаю веб-службу RESTful с помощью JSON. JSON хорошо стандартизирован, имеет небольшие накладные расходы, и у вас есть хорошие библиотеки для работы с ним на любом языке (проверьте org.json, который входит в комплект с Android, но может быть загружен как отдельный для других приложений). Проверьте этот вопрос тоже:

Ответ 2

Использовать парсера Джексона или парсера Gson вместо JSON Parser.

1. Jackson в 2 раза быстрее, чем JSON, и подходит для синтаксического анализа сложных и чрезвычайно больших jsons.

2. Gson конкурентоспособнее быстрее, чем JSON.

Ответ 3

В моем мнении вы должны использовать веб-службы REST/SOAP на основе ориентированных на документ структур, это будет полезно в большом ответе.

Вы также можете интегрировать Apache SOLR для этого Назначения, который используется для индексирования больших наборов данных и даже намного быстрее, и он также включен REST, вы можете индексировать свои данные в ядрах SOLR, а затем создавать вызовы REST от клиента, т.е. IOS, Android, PHP и т.д., поэтому документы уже будут обработаны, и вам просто нужно будет добавлять фильтры и другие вещи, как требуется на клиенте.

Сообщите мне, если вы хотите больше помочь в этом.