@egorkozelskij

Как правильно спроектировать работу сервера?

Здравствуйте!

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

Суть проекта:

Есть много модулей - можно считать что это мини программа, которая выполняется на сервере, а результат виден на клиенте + модуль одного пользователя может обращаться к методам модуля другого пользователя через сервер.

1) Сами клиенты - андроид + веб.
2) У каждого свой набор модулей, свои настройки. Все это хранится в БД.

Получается, что здесь есть как простое: клиент попросил сервер дать ему какие JSON данные.
Там и ситуации, где один клиент хочет обратиться к другому через сервер: То есть сервер должен уметь оповестить клиентов.

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

В итоге получился ряд требования к серверу (поправьте, если не прав):
  • Прием команды и ответ JSON форматом
  • Обработка модулей в потоках в "пространстве пользователя" (Хранение активного списка пользователей, модулей и настроек)
  • Оповещение клиентов по требованию модулей (например оповещение в определенное время)
  • Все это в многопоточном режиме (Много запросов - много ответов)
  • Какая то защита от левых запросов


Подскажите, что для этого оптимальней всего использовать?
  • Вопрос задан
  • 201 просмотр
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы