У нас есть серверное приложение (реализовано на 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 и т.д., поэтому документы уже будут обработаны, и вам просто нужно будет добавлять фильтры и другие вещи, как требуется на клиенте.
Сообщите мне, если вы хотите больше помочь в этом.