Ordonnancement des données
|
|
A partir de ThingWorx 9.7, l'ordonnancement des données est disponible.
|
Avec les flux de données des périphériques sur le terrain, les événements et les abonnements sont en place pour la logique applicative, le traitement des données, et ainsi de suite. Les données traitées via un abonnement sont ingérées dans la base de données prise en charge. Le traitement des données dans ThingWorx s'exécute en parallèle pour prendre en charge de nombreux objets et valeurs de propriété associées.
Alors que les flux de données sont transférés vers ThingWorx et sont traités via des événements et des abonnements, des données ordonnées sont attendues pour le traitement séquentiel des événements sur les propriétés. Les données traitées doivent également être ingérées dans un ordre séquentiel dans la base de données.
Enoncé du problème
Si l'ordre des données n'est pas respecté, cela a un impact sur la génération d'événements, les abonnements et, en fin de compte, l'ingestion de données. Ce scénario est observé lors des déconnexions et reconnexions de Kepware, dans une configuration haute disponibilité (en présence d'un serveur de connexion pour équilibrer les connexions WebSocket). L'ordonnancement des données est pris en charge sur les déploiements de configuration sur serveur unique et haute disponibilité.
Solution
L'ordonnancement des données offre les avantages suivants :
• Pour le serveur de connexion, l'adhérence est conservée pour un objet spécifique à la paire d'ID ThingWorx et d'ID canal WebSocket (WS). Cela garantit que les mises à jour des valeurs de propriété d'un objet donné sont toujours envoyées vers des canaux WebSocket et ThingWorx spécifiques.
• L'eMessage Connector (eMC) utilise en interne le serveur de connexion pour communiquer avec ThingWorx Platform. Les modifications apportées au serveur de connexion permettent à l'eMessage Connector (eMC) d'envoyer les données ordonnées à ThingWorx.
• Dans ThingWorx Platform, l'acteur Akka est implémenté au niveau de chaque objet. Avec chaque valeur de propriété entrante d'un objet, un acteur est créé et la valeur de la propriété est transférée à la boîte de réception de l'acteur. L'acteur Akka extrait ensuite les messages de la file d'attente et les traite de manière séquentielle, garantissant un traitement de données ordonnées côté plateforme.
• Pour activer l'ordonnancement des données dans la section BasicSettings du fichier platform-settings.json, vous pouvez utiliser le paramètre suivant.
|
Paramètre
|
Type
|
Valeur
|
Valeur par défaut
|
|
EnableDataOrdering
|
BOOLEAN
|
vrai OU faux
|
faux
|
• La mesure thingworx_WSExecutionProcessingSubsystem_isDataOrderingEnabled au point de terminaison /Metrics vous permet de surveiller le paramètre d'ordonnancement des données :
|
Nom de la mesure
|
Type
|
Exemple
|
|
thingworx_WSExecutionProcessingSubsystem_isDataOrderingEnabled
|
jauge
|
# HELP thingworx_WSExecutionProcessingSubsystem_isDataOrderingEnabled Data ordering enabled # TYPE thingworx_WSExecutionProcessingSubsystem_isDataOrderingEnabled gauge thingworx_WSExecutionProcessingSubsystem_isDataOrderingEnabled{prefix="Platform.Core.Subsystems",category="WSExecutionProcessingSubsystem",platformid=""} 0.0
|
|
|
L'ordre des événements est une fonctionnalité disponible dans la version 9.5. Pour activer cette définition d'abonnement, cliquez sur Execute Events Sequentially.
|
Impact des autres composants
• Le SDK C et Java peuvent envoyer des valeurs de propriété à ThingWorx avec les API suivantes :
VirtualThing.setProperty()
VirtualThing.updateSubscribedProperties();
A l'aide des API précédentes, les propriétés sont envoyées dans l'ordre à ThingWorx Platform.
• Pour obtenir l'ordonnancement des données, si un serveur de connexion se trouve derrière l'équilibreur de charge, modifiez la configuration de l'équilibreur de façon qu'elle présente une adhérence. Sans ces données, l'ordonnancement ne peut être réalisé.
• Les correctifs relatifs à l'ordonnancement des données sont disponibles dans les composants suivants :
◦ Connection Server 9.3.0 et versions ultérieures
◦ eMessage Connector 2.6.0 et versions ultérieures
◦ Kepware 6.16 et versions ultérieures
Avantages
L'ordonnancement des données présente les avantages suivants :
• Les données sont traitées dans l'ordre et sont donc stockées et traitées avec plus de fiabilité.
• Les clients peuvent choisir entre le traitement parallèle à haut débit et le traitement sérialisé et ordonné des données.
• Les solutions ThingWorx qui ingèrent des données à partir de Kepware peuvent recevoir et traiter les données dans l'ordre.