Optimale Vorgehensweisen für die Entwicklung von Lösungen > Assets modellieren > Mit Ereignissen, Warnungen und Abonnements arbeiten
Mit Ereignissen, Warnungen und Abonnements arbeiten
Ereignisse werden verwendet, um eine Bedingungsänderung auf ThingWorx Platform anzugeben. Sie können durch eine Bedingung, die erfüllt wird, ausgelöst werden – durch einen Dienst- oder REST-Aufruf. In ThingWorx gibt es mehrere Standardtypen von Ereignissen, die basierend auf bestimmten Bedingungen ausgelöst werden, z.B. wenn sich der Wert einer Eigenschaft ändert (DataChange) oder wenn ein Ding gestartet wird (ThingStart).
Eine Warnung ist ein Standardereignistyp, der auf dem Status einer Eigenschaft basiert. Er wird automatisch ausgelöst, wenn der Eigenschaftswert eine bestimmte Bedingung erfüllt, die von einem Benutzer definiert wurde.
Ein Abonnement ist erforderlich, um zu reagieren, wenn ein Ereignis, einschließlich Warnungen, ausgelöst wird. Ein Abonnement ist ein spezieller Dienst, der ausgeführt wird, wenn das von ihm abonnierte Ereignis ausgelöst wird.
Ereignisse erfordern einen vordefinierten Data Shape. Der Data Shape speichert dem Ereignis zugeordnete Daten, auf das über ein Abonnement zugegriffen werden kann. Sie können einer Entität in einer Erweiterung Abonnements hinzufügen, um ein benutzerdefiniertes Verhalten auszuführen, wenn ein Ereignis ausgelöst wird.
Optimale Vorgehensweisen für das Erstellen von Ereignissen, Warnungen und Abonnements
Verwenden Sie beim Erstellen von Ereignissen, Warnungen und Abonnements die folgenden optimalen Vorgehensweisen:
Definieren Sie Benennungskonventionen für Ihre Ereignisse, Warnungen und Abonnements. Beachten Sie die folgenden Punkte:
Verwenden Sie eine Standardnomenklatur für Entitäten. Sie können beispielsweise ein eindeutiges Namespace-Präfix für verschiedene Entitätstypen verwenden, um Konflikte zu vermeiden.
Geben Sie den Entitäten aussagekräftige Namen.
Versuchen Sie, eine gute Beschreibung für jede Entität einzuschließen, die Sie erstellen.
Vermeiden Sie mehrdeutige Namen.
Vermeiden Sie lange Entitätsnamen, wenn möglich.
Weitere Informationen finden Sie im Abschnitt Entitäten benennen.
Definieren Sie alle Ereignisse und Abonnements auf einer Dingformebene.
* 
Es wird empfohlen, Dingformen zum Definieren der Eigenschaften und Dienste zu verwenden. Wenn Sie Eigenschaften und Dienste in einer Dingvorlage definieren, ist es schwierig, ihre Definitionen in eine Dingform zu verschieben.
Definieren Sie Warnungen für jede Eigenschaft des Dings, der Dingvorlage oder der Dingform einzeln.
Stellen Sie sicher, dass Ereignisse und Warnungen ein Abonnement haben, das mit ihnen verknüpft ist. Dadurch wird sichergestellt, dass bei jedem Auslösen eines Ereignisses oder einer Warnung die Funktion in der Lösung ausgeführt wird. Dies führt zu Datenfluss in der Lösung.
Verwenden Sie in einer HA-Umgebung die Funktion "Verteilte Abonnements", wenn Abonnements intensiv in Anspruch genommen werden. Dies ist beispielsweise der Fall, wenn viele Dinge dasselbe Zeitgeber- oder Scheduler-Ereignis abonnieren. Weitere Informationen finden Sie unter Dingabonnements.
Verwenden Sie die Funktion "Sortierte Abonnements und Abonnements mit Status", wenn Abonnements sequenziell ausgeführt werden sollen und wenn der vorherige Wert zwischen der Ausführung des Ereignisses abgefragt werden muss. Weitere Informationen finden Sie unter Dingabonnements.
* 
Sortierte Abonnements oder Abonnements mit Status können nicht ausgelöst werden, wenn die Entität, die das Abonnement enthält (direkt oder geerbt), ein Leerzeichen im Namen enthält.
Der Entitätsname darf nur ASCII-Buchstaben und die folgenden Sonderzeichen enthalten: -_.*$+:@&=,!~';.. Außerdem darf er nicht mit $ beginnen.
Beim Entwickeln der Lösung können Sie eine automatische Sicherung über das Scheduler-Abonnement ausführen.
Prüfen Sie beim Testen von Diensten, die in Abonnements definiert sind, die Lösungsprotokolle, um zu verifizieren, ob das Abonnement wie erwartet ausgeführt wird.
Informationen zu optimalen Vorgehensweisen beim Erstellen von Diensten für Abonnements finden Sie unter Dienste.
War dies hilfreich?