Обновление свойства объекта в реальном времени для передачи объекта в веб-интерфейс - PullRequest
0 голосов
/ 19 июня 2020

Этот вопрос будет конкретным c и требует определенного количества справочной информации, так что держитесь.

Проект, над которым я работаю, имеет (для упрощения) 4 основных компонента: OP C Сервер UA (OP C UA - протокол связи), веб-интерфейс (используемый для отображения данных и получения действий пользователя), сложная структура объектов, служба «реального времени» для связи последних трех компонентов.

Я создаю этот проект (в основном) в Visual Studio, используя C# проектов.

OP C Сервер UA

Этот компонент существует вне моего достичь, и я просто собираюсь запросить данные с него, используя протокол OP C UA. Эта конкретная c часть моего проекта все еще находится в разработке, но я знаю, что нужно сделать, это просто вопрос написания кода.

Веб-интерфейс

Этот компонент будет получать и запрашивать данные из службы реального времени. Как и сервер OP C UA, эта часть находится в разработке и является далеко не самой сложной частью проекта.

Сложная структура объекта

У меня есть сложная объектная структура, основанная на «главном» объекте, который я называю тегом. Ниже представлен макет структуры тега ( Примечание : система общих c классов используется в фоновом режиме, но пока работает правильно). Эта структура объекта в настоящее время основана на проекте библиотеки классов.

public class Tag
{
    // TagConfiguration derives into a generic class
    public TagConfiguration Configuration; // This contains a lot of properties which is what makes a Tag complex
    public object CurrentValue; // This is where one of the generic uses comes in
    public object Alarm; // This is also where the generic comes in
    // Constructors and methods (not required for my issue)
}

Служба в реальном времени

В этом и заключается моя проблема. Эта служба должна выполнить 5 основных заданий:

  • Прочитать файл конфигурации для создания списка объектов Tag
  • Запрашивать данные с OP C UA-сервера через регулярные промежутки времени
  • Записывать данные в свойство CurrentValue тега
  • Периодически (на основе TagConfiguration свойств pu sh объектов тега во внешнюю SQL базу данных
  • Получение запрашивать из веб-интерфейса и обслуживать их (включая вводимые пользователем данные)

Теперь, когда структура объяснена, я ищу две части информации:

  • Какой тип службы для использования (WCF, Windows, Other?) и рекомендации по ее правильной реализации
  • Какой тип проекта. NET использовать для хранения обновляемых объектов тегов и отправки в веб-интерфейс и база данных SQL, поскольку я предполагаю, что библиотека классов - это не решение 'go to'.
...