Параметры для связи клиент-сервер в Android

В настоящее время я нахожусь в исследовательской фазе моего диссертационного проекта.

Мой проект представляет собой систему бронирования билетов для мобильного устройства, и я выбрал Android.

Я предполагаю потребность в клиент-серверной архитектуре с центральным сервером, поэтому в настоящее время изучаю, как Android может взаимодействовать с таким сервером. Сервер предоставит клиенту доступ к информации о билетах, а клиент отправит информацию о бронировании билетов на сервер. Я смотрю на Java EE для сервера, так как Java — это язык, с которым я больше всего разбираюсь.

Я знаю, что Android поставляется с пакетами java.nio и java.net, а также некоторыми пакетами org.apache, но я также ищу библиотеки/технологии, которые можно было бы использовать с Android.

До сих пор я не нашел ничего очень полезного в Интернете, поэтому я вижу, что может предложить SO.

В частности, мне интересно знать:

  1. What support is there for various middleware technologies in Android? e.g.
    • RPC based middleware
    • КОРБА
    • Промежуточное ПО на основе сообщений
    • Веб-службы, такие как XML-RPC, SOAP, REST
  2. Насколько хорошо (или плохо) работают существующие библиотеки Java при использовании на платформе Android? (например, если бы я хотел использовать библиотеку/API, предназначенную для Java SE, а не для Android, с какими проблемами я мог бы столкнуться?)

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


person chrisbunney    schedule 06.11.2009    source источник


Ответы (1)


Какая поддержка существует для различных технологий промежуточного программного обеспечения в Android?

Мое личное мнение — хотя я не чувствую, что я один так думаю — состоит в том, что только протоколы, специально разработанные для работы в Интернете, подходят для удаленного использования с мобильным клиентом. Итак, из вашего списка я бы даже развлекся только одним:

Веб-службы, такие как XML-RPC, SOAP, REST

Некоторые люди поддерживают порт kSOAP2 для Android. Однако у меня сложилось отчетливое впечатление, что большинство разработчиков Android, работающих в этой области, склонялись к REST и REST-протоколам. По крайней мере, это то, что все забавные веб-сайты и службы используют для API, особенно по сравнению с XML-RPC (старым) и SOAP (старым и неприглядным).

Я успешно использовал библиотеки java.net.URLConnection и Apache HTTPClient в Android для связи с конечными точками в стиле REST — как напрямую, так и через сторонние JAR-файлы — без реальных проблем, связанных с Android.

Насколько хорошо (или плохо) работают существующие библиотеки Java при использовании на платформе Android?

Абстрактно ответить на этот вопрос сложно. Android реализует значительное подмножество JavaSE, но не весь JavaSE, поэтому есть шанс, что любой конкретный JAR будет ожидать чего-то, чего Android не предлагает. Точно так же Android не использует переменные среды, переключатели командной строки или множество других вещей, которые разработчики, ориентированные на настольные компьютеры, могли бы ввести в качестве полутребований. Итак, некоторые вещи у меня работали только после перекомпиляции (Beanshell), некоторые вещи работали у меня после удаления избыточных классов (JTwitter), а некоторые вещи выглядели так, как будто они будут ужасно работать (JavaMail). .

person CommonsWare    schedule 06.11.2009
comment
Этот вопрос немного устарел, но по-прежнему привлекает много взглядов. Ваш ответ все еще актуален или среда Android изменилась за последние 3 года по сравнению с исходным вопросом? - person chrisbunney; 14.09.2012
comment
@chrisbunney: Кто-то заставил JavaMail работать, так что это больше не проблема. HttpUrlConnection — это рекомендуемый подход для клиентов REST через Apache HTTPClient. В противном случае, я думаю, что мои рекомендации того времени все еще довольно точны. - person CommonsWare; 14.09.2012