Komponentenarchitektur
ThingWorx Navigate Zusammensetzung von Komponenten
ThingWorx Navigate Komponenten sind Verbundkomponenten. Sie bestehen aus kleineren Unterkomponenten, die zusammen leistungsfähige Komponenten mit Mehrwert ergeben.
Jede ThingWorx Navigate Komponente besteht für gewöhnlich aus zwei Unterkomponenten, einer Benutzeroberflächen-Unterkomponente und einer Geschäftslogik-Unterkomponente.
Benutzeroberflächen-Unterkomponente
Es gibt zwei Typen von Benutzeroberflächen-Unterkomponenten:
• Mashup – Ein ThingWorx Mashup mit mehreren Widgets und Bindungen
• Widget – Ein einzelnes Widget, das außerhalb von ThingWorx erstellt und in ThingWorx importiert wird. Für gewöhnlich ist ein Widget in Web-Komponenten-Technologie geschrieben.
Die Benutzeroberflächen-Unterkomponente kommuniziert mit der Geschäftslogik-Unterkomponente über Dienste.
Geschäftslogik-Unterkomponente
Die Geschäftslogik-Unterkomponente ruft die Geschäftsdaten aus den Backend-Systemen ab und verarbeitet sie. Die Geschäftslogik-Unterkomponente besteht aus ThingWorx Entitäten wie Dingformen, Dingvorlagen und Dingen. Sie kommuniziert mit der Benutzeroberflächen-Unterkomponente über Dienste.
Die Geschäftslogik-Unterkomponenten wurden entwickelt, um leistungsstarke Anpassungen zu ermöglichen. Sie bieten folgende Möglichkeiten:
1. Anpassen der Geschäftslogik, die die Daten abruft und verarbeitet
2. Hinzufügen neuer Konfigurationspunkte, um die Geschäftslogikanpassung zu unterstützen
Geschäftslogik-Unterkomponenten folgen dem allgemeinen ThingWorx Modell für das Ermöglichen von Anpassungen. Eine abstrakte Dingvorlage, die als Basis-Geschäftslogik bezeichnet wird, enthält alle gängigen Funktionen für die Geschäftslogik-Unterkomponente. Jede spezifische Implementierung erfolgt in einer Dingvorlage, die als Geschäftslogik-Implementierung bezeichnet wird. Da ThingWorx Dienste nur für ein Ding ausgeführt werden können, muss jede Geschäftslogik-Implementierungs-Dingvorlage von einem Ding implementiert werden.
Komponentenkonfiguration
Die ThingWorx Navigate Komponenten sind grundsätzlich konfigurierbar. Wenn Sie zur Entwurfszeit eine Komponente zum Mashup hinzufügen, so können alle Konfigurationsparameter für die Komponente als ein einziges JSON-Konfigurationsobjekt angegeben werden. Zukünftig ist eine Benutzeroberfläche geplant, die es ermöglicht, jeden Parameter einzeln festzulegen.
Die Struktur des JSON-basierten Konfigurationsobjekts wird innerhalb der Basis-Geschäftslogik definiert. Diese Konfigurationsstruktur-Definition wird als Komponentendefinition bezeichnet. Sie dient als Schema für die JSON-Definition und definiert, welche Konfigurationsparameter zulässig sind, ob bestimmte Parameter obligatorisch sind und wo sich jeder Parameter in der Konfigurationsstruktur befindet.
Die Basis-Geschäftslogik enthält auch bestimmte Punkte in der Komponentendefinition, die erweitert werden können. Diese Punkte werden als Definitions-Hooks bezeichnet. Überschreibbare Hook-Dienste werden an diese Punkte angehängt. Die Geschäftslogik-Implementierung verwendet diese Hook-Dienste, um die Komponentendefinition zu erweitern und zusätzliche Konfigurationsparameter zu akzeptieren, die für die spezifische Implementierung erforderlich sind. Diese erweiterte Komponentendefinition wird als Implementierungsdefinition bezeichnet.
ThingWorx Navigate Komponenten sind robust konzipiert. Daher besteht ein typisches JSON-Konfigurationsobjekt aus Dutzenden konfigurierbarer Parameter. Um die Arbeit zu beschleunigen und unnötige Fehler zu vermeiden, sendet ThingWorx Navigate eine oder mehrere vordefinierte Konfigurationen mit jeder Komponente. Jede der vordefinierten Konfigurationen hat einen Namen und kann beim Konfigurieren einer Komponente ausgewählt werden. Nachdem Sie eine vordefinierte Konfiguration ausgewählt haben, wird die gesamte JSON-Konfiguration automatisch in das Konfigurationsfeld gefüllt. Sie können kleinere Änderungen an der Konfiguration vornehmen, ohne die gesamte JSON-Konfiguration erstellen zu müssen.
Beispiel
Betrachten wir die Komponente "Elementliste", um die oben beschriebene Architektur zu veranschaulichen.
Elementliste