Базовые технологии и архитектура для приложения на основе Angular Map - PullRequest
0 голосов
/ 03 марта 2019

Моя команда и я разрабатываем веб-приложение с использованием Angular 7, которое обрабатывает очень динамические данные, состоящие из графиков и аналогичных данных.Приложение отображает данные в режиме реального времени на карте, используя Cesiumjs и (своего рода) таблицу, что позволяет пользователям выполнять различные операции над объектами.

В настоящее время приложение опрашивает один сервер, написанный наJava для нескольких типов сущностей через разные HTTP-запросы для каждого типа каждые 500 миллисекунд и получает все состояние приложения (наиболее обновленное состояние графиков, дорожек и т. Д.) В виде json.Затем приложение распространяет его через приложение с помощью Ngrx Store.

Существует также служба nodejs, которая обрабатывает действия пользователя и проблемы, связанные с аутентификацией.

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

  • Служить прослушивателем внешней сети Pub-Sub, которая публикует данные, относящиеся к приложению.
  • Объединяет данные и сохраняет их в контейнерах классовтаким образом, который подходит клиенту
  • Служить HTTP-сервером для запроса клиента.

Мои вопросы следующие:

  1. Согласнопоследнее слово в технологиях на стороне сервера, что было бы хорошим способом для разработки и реализации серверной части для приложения реального времени, как я только что описал?Ограничение состоит в том, что по крайней мере какая-то часть должна быть в Java из-за внешней сети Pub-sub.
  2. Каков наилучший способ получения и обработки данных в приложении Angular, которое работает с хранилищем Ngrx?Должны ли мы извлекать все состояние каждого HTTP-запроса и «заменять» все состояние данных каждый цикл, или мы должны перейти только к получению соответствующих обновлений и обработке их по-другому на клиенте?Может быть, есть третий и лучший способ решения этой проблемы?

Большое спасибо!

1 Ответ

0 голосов
/ 03 марта 2019

Взгляните на nest.js .Это инфраструктура node.js с базовым экспресс-экземпляром, которая предлагает очень четкую структуру, очень похожую на приложение Angular, отличные инструменты тестирования ... Поддерживаются различные протоколы обмена сообщениями ( rabbitmq , nats , mqtt , redis , ...).(Почему java является обязательным требованием? Pub / Sub должен быть независимым от языка?!)

Рассматривали ли вы использование ngrx/entity для обработки ваших обновлений данных?Я думаю, что трудно сделать общее предложение здесь, но только отправка обновлений кажется хорошей идеей.Таким образом, вы можете использовать запомненные селекторы и избежать ненужных вычислений и визуализации.

...