Транспорт: различия между версиями
User (обсуждение | вклад) |
User (обсуждение | вклад) (→WCF) |
||
Строка 42: | Строка 42: | ||
WCF протокол Транспорта DPA - это бинарный протокол, использующий стек TCP/IP. | WCF протокол Транспорта DPA - это бинарный протокол, использующий стек TCP/IP. | ||
В настройках WCF протокола два ключевых параметра - IP-адрес и порт подключения. DPA сервер использует эти параметры чтобы установить соединение к получателю ''Событий'', которым как правило выступает DPA хост. | В настройках WCF протокола два ключевых параметра - IP-адрес и порт подключения. DPA сервер использует эти параметры чтобы установить соединение к получателю ''Событий'', которым как правило выступает DPA хост. | ||
+ | |||
+ | В качестве IP-адреса получателя можно указать localhost (если DPA хост и DPA сервер установлены на одну машину), а так же сетевое имя. По умолчанию используется TCP-порт 45618. | ||
== MSMQ == | == MSMQ == |
Версия 05:22, 24 ноября 2019
Содержание
Архитектура Транспорта DPA
Транспорт DPA отвечает за пересылку данных по событиям драйверов от DPA сервера в DPA хост.
Так как частота опроса оборудования может составлять 100-500 миллисекунд, количество снапшотов на один драйвер может составлять 10-20 штук, и на один DPA сервер может приходиться до 100 драйверов, то суммарная частота и объем пересылаемых данных между DPA сервером и DPA хостом может быть существенной. Поэтому Транспорт DPA использует механизмы оптимизации трафика.
Минимальной единицей обмена является Событие, которое содержит данные одного Снапшота или одного Состояния драйвера.
Как правило, новое Событие формируется при каждой операции чтения Снапшота, то есть при получении данных от оборудования, либо при каждой операции вычисления Состояния, если Событие отвечает за отправку данных по Состоянию.
Перед отправкой, Событие попадает во внутреннюю FIFO очередь Транспорта. Из очереди событие будет отправлено получателю - DPA хосту.
По различным источникам данных частота обновления может быть совершенно разной. Например, Событие, отвечающее за данные Нагрузки на шпиндель, будет получать новые значения текущей нагрузки при каждом чтении с оборудования. То есть частота изменения этих данных может быть очень высокой.
С другой стороны, События, отвечающие, например, за данные по Режиму работы или Корректору скорости подачи, будут получать обновленные данные не так часто.
В целях оптимизации, Событие помещается во внутреннюю FIFO очередь Транспорта только тогда, когда по нему приходит значение, отличное от предыдущего. Это позволяет существенно сократить объем пересылаемых данных, и избежать отправку повторных значений.
Отдельная пересылка индивидуального События так же была бы крайне не эффективной. Объем "полезных" данных по Событию был бы меньше или сравним с накладными расходами самого протокола. Поэтому для отправки События объединяются в Пакеты ("Package"). На количество Событий, которые попадут в один Пакет отправки влияет настройка Период отдыха.
=> => DPAhost \ DPAserver \ Транспорт \ WCF
По умолчанию, Период отдыха составляет 1 секунду, то есть между отправками Пакетов должно пройти не менее 1 секунды. Именно в течение этого времени внутренняя FIFO очередь Транспорта будет наполняться Событиями, прежде чем будет сформирован и отправлен очередной Пакет.
Отследить работу Транспорта можно по счетчикам производительности:
=> => DPAhost \ DPAserver \ Транспорт \ WCF => Счетчики производительности
Выбрать счетчики Package Size, Sent packages total per second.
В данном примере Пакет в среднем содержит от 50 до 150 Событий. Отправка одного Пакета происходит каждую секунду.
Инициатором отправки данных по Транспорту DPA всегда выступает DPA сервер. DPA хост выступает в роли пассивного получателя Пакетов.
Протоколы
WCF
WCF протокол Транспорта DPA - это бинарный протокол, использующий стек TCP/IP. В настройках WCF протокола два ключевых параметра - IP-адрес и порт подключения. DPA сервер использует эти параметры чтобы установить соединение к получателю Событий, которым как правило выступает DPA хост.
В качестве IP-адреса получателя можно указать localhost (если DPA хост и DPA сервер установлены на одну машину), а так же сетевое имя. По умолчанию используется TCP-порт 45618.