Соедините два приложения для Android через http REST и EJB3 - PullRequest
1 голос
/ 16 мая 2011

Я пишу приложение для Android, где два устройства должны общаться друг с другом через Интернет.В дополнение к этой задаче они также общаются с сервером EJB3 через REST.Поэтому я решил убить двух зайцев одним выстрелом и использовать REST + EJB3 для передачи данных между двумя сопряженными устройствами Android.Итак, сценарий, который я реализовал, выглядит примерно так:

  • Оба устройства подключаются к серверу и получают идентификатор сеанса.
  • Первое устройство отправляет данные на второе устройство
  • Сервер получает данные, но не завершает запрос http, вместо этого он помещает в пул ожидания
  • Второе устройство запрашивает данные
  • Сервер передает данные на второе устройство и освобождает ожидающее соединение (иthread) для первого устройства.
  • Если нет запросов на первое или второе устройство, тогда противник ожидает тайм-аут на стороне сервера, а затем снова отправляет запрос.Нам нужно дождаться, чтобы данные на стороне сервера немедленно восстановились после получения данных.

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

Что лучшеПрактическое решение для такой проблемы?

PS: Забыл упомянуть, что два устройства должны обмениваться данными как можно более плавно и быстро.

...