Упорядочение данных
* 
Начиная с ThingWorx 9.7, доступно упорядочение данных.
При потоковой передаче данных с полевых устройств используются события и подписки для бизнес-логики, обработки данных и т. д. Данные, обработанные через подписку, подаются в поддерживаемую базу данных. Обработка данных в ThingWorx выполняется параллельно для поддержки многих вещей и соответствующих значений свойств.
В то время как потоки данных поступают в ThingWorx и обрабатываются через события и подписки, предполагается использовать упорядоченные данные для последовательной обработки событий для свойств. Обработанные данные должны также последовательно приниматься в базу данных.
Постановка задачи
Если данные не упорядочены, это влияет на создание событий, подписок и в итоге на прием данных. Этот сценарий наблюдается во время отсоединения и повторного соединения Kepware, при настройке высокой доступности (при наличии сервера соединений для балансировки соединений WebSocket). Порядок данных поддерживается в развертываниях с одним сервером и настройкой высокой доступности.
Решение
Упорядочение данных помогает выполнять следующие действия.
Для сервера соединений поддерживаются закрепления конкретной вещи с парой идентификатора ThingWorx и идентификатора канала WebSocket (WS). Это гарантирует, что обновления значения свойства для конкретной вещи всегда отправляются в конкретные места ThingWorx и конкретные каналы WebSocket.
Соединитель eMessage (eMC) внутренне использует сервер соединений для связи с ThingWorx Platform. Изменения для сервера соединений помогают соединителю eMessage (eMC) отправлять упорядоченные данные в ThingWorx.
В ThingWorx Platform примените для каждой вещи исполнитель Akka. Исполнитель создается для каждого входящего значения свойства для вещи, и значение свойства отправляется в почтовый ящик исполнителя. Затем исполнитель Akka извлекает сообщения из очереди и обрабатывает их последовательно, обеспечивая обработку упорядоченных данных на стороне платформы.
Чтобы включить упорядочение данных, можно использовать для BasicSettings в файле platform-settings.json следующую настройку.
Настройка
Тип
Значение
Значение по умолчанию
EnableDataOrdering
BOOLEAN
true ИЛИ false
false
Параметр thingworx_WSExecutionProcessingSubsystem_isDataOrderingEnabled в конечной точке /Metrics помогает отслеживать настройку упорядочения данных:
Наименование параметра
Тип
Пример
thingworx_WSExecutionProcessingSubsystem_isDataOrderingEnabled
gauge
# HELP thingworx_WSExecutionProcessingSubsystem_isDataOrderingEnabled Data ordering enabled
# TYPE thingworx_WSExecutionProcessingSubsystem_isDataOrderingEnabled gauge
thingworx_WSExecutionProcessingSubsystem_isDataOrderingEnabled{prefix="Platform.Core.Subsystems",category="WSExecutionProcessingSubsystem",platformid=""} 0.0
* 
Упорядочение событий - это функциональность, которая поставляется и доступна в 9.5. Чтобы включить эту конфигурацию в определении подписки, щелкните Execute Events Sequentially.
Влияние другого компонента
Java и C SDK могут отправлять значения свойств в ThingWorx со следующими интерфейсами API:
VirtualThing.setProperty()
VirtualThing.updateSubscribedProperties();
С помощью предыдущих интерфейсов API свойства отправляются в ThingWorx Platform последовательно.
Если сервер соединений находится за балансировщиком нагрузки, то для обеспечения упорядочения данных доработайте конфигурацию балансировщика нагрузки, чтобы обеспечить закрепление. Без этих данных невозможно выполнить упорядочение.
Исправления упорядочения данных доступны в следующих компонентах:
Connection Server 9.3.0 и более поздних версий
eMessage Connector 2.5.0 и более поздних версий
Kepware 6.16 и более поздних версий
Преимущества
Упорядочение данных обеспечивает следующие преимущества.
Данные обрабатываются в порядке, обеспечивающем надежное хранение и обработку данных.
Позволяет клиентам выбирать между обработкой с высокой пропускной способностью и последовательной и упорядоченной обработкой данных.
Позволяет решениям ThingWorx, принимающим данные из Kepware, получать и обрабатывать упорядоченные данные.
Было ли это полезно?