Упорядочение данных
|
|
Начиная с 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, получать и обрабатывать упорядоченные данные.