Какую технику использовать для спорадических подключений к удаленной программе - PullRequest
0 голосов
/ 04 октября 2019

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

  • в какой конфигурации экземпляр
  • вызывает специфические методы для экземпляра

, и мне интересно, какой способ подключения будет наилучшим. Названные трубы? RPC? что-то еще?

Подробности

Программа представляет собой нечто вроде видеоплеера, работающего на разных клиентских машинах. Показываемое видео варьируется от дневного (разные видео ночью), а также от даты (разные видео на Рождество). Иногда нашей сервисной команде необходимо проверить, все ли в порядке, особенно, если кто-то подает заявку. В этом случае клиент должен иметь возможность подключиться к удаленному экземпляру программы, посмотреть, какие файлы использовались для конфигурации, и изменить дату для расчета дисплея.

1 Ответ

0 голосов
/ 04 октября 2019

Используйте центральный сервер для сбора данных.

Установите центральное приложение, к которому ваши клиенты будут подключаться. Предоставьте каждому клиенту UUID и некоторый токен доступа для проверки того, что этот UUID действительно принадлежит этому компьютеру.

Это может быть сервер HTTP (-S):

  • Клиенты всегда должны «пульсировать» на центральном сервере.
  • Когда вам это нужно - запрашивать данные с него.

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

Это может быть сервер сокетов / веб-сокетов:

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

Почему централизация?

Обычно клиентские машиныскрытые за маршрутизаторами / брандмауэрами, и большинство людей не знают, как сделать переадресацию портов.

Что, если вы не хотите централизации?

Сделать каждое устройство сервером. Настройте веб-сервер с некоторым типом API. Составьте список устройств или найдите список устройств автоматически, отсканировав их по всей локальной сети.

Если вам нужен хороший сервер WebAPI / RESTful - используйте ASP.NET Core. Или вы можете использовать простой HttpListener.

Почему HTTP?

  • Это просто.
  • Каждый язык имеет реализацию HTTP-взаимодействий
...