GTNet
Die Implementierung von GTNet ist noch nicht vollständig abgeschlossen. Diese Dokumentation beschreibt die geplante und teilweise bereits umgesetzte Funktionalität.
Work in Progress
Konzept und Funktionsweise
GTNet verbindet verschiedene Grafioschtrader-Instanzen miteinander und ermöglicht den gegenseitigen Austausch von Kursdaten. Dabei kann jede Instanz selbst entscheiden, ob sie Daten bereitstellt, empfängt oder beides gleichzeitig tut. Der Austausch erfolgt automatisiert über eine sichere Maschine-zu-Maschine-Kommunikation (M2M).
Arten des Datenaustauschs
GTNet unterstützt drei Arten von Daten für den Austausch:
- Intraday-Kurse: Aktuelle Tageskurse für Wertpapiere und Währungspaare mit OHLCV-Daten (Eröffnung, Hoch, Tief, Schluss, Volumen).
- Historische Kurse: Tägliche Schlusskurse für die Vergangenheit.
- Wertpapier-Metadaten: Stammdaten von Wertpapieren wie ISIN, Name, Anlageklasse, Börseninformationen und Konnektoreinstellungen. Dies ermöglicht das Übernehmen von Wertpapierkonfigurationen aus anderen GTNet-Instanzen.
Verbindungsaufbau und Authentifizierung
Der Verbindungsaufbau zwischen zwei GTNet-Instanzen erfolgt über ein Handshake-Verfahren. Beim ersten Kontakt werden Authentifizierungstoken ausgetauscht, die für die weitere sichere Kommunikation verwendet werden. Jede Instanz kann selbst entscheiden, ob sie unbekannte Server automatisch akzeptiert oder nur vordefinierte Server zulässt.
Die Token können später erneuert werden. Weil beide Seiten das neue Token nicht im selben Augenblick übernehmen, bleibt das abgelöste Token noch eine begrenzte Zeit gültig. Geht die Antwort auf eine Erneuerung unterwegs verloren, bricht die Verbindung deshalb nicht ab, sondern wird beim nächsten Versuch von selbst wieder in Ordnung gebracht.
Freigabe des Datenaustauschs
Ein abgeschlossener Handshake bedeutet nur, dass sich zwei Instanzen kennen und miteinander sprechen dürfen. Er berechtigt noch zu keinen Kursdaten. Für Intraday-Kurse und historische Kurse muss zusätzlich je Datenart eine Datenanfrage gestellt und von der Gegenseite bewilligt worden sein. Ohne diese Bewilligung weist die angefragte Instanz die Anfrage ab, auch wenn sie die betreffende Datenart grundsätzlich anbietet.
Wertpapier-Metadaten sind davon ausgenommen. Sie werden bei Bedarf einzeln abgefragt und nicht als laufender Austausch vereinbart; hier genügt die eigene Einstellung, ob solche Anfragen angenommen werden.
Wird eine Datenanfrage abgelehnt oder eine bestehende Bewilligung widerrufen, endet der Austausch auf beiden Seiten im gleichen Zustand. Beide Instanzen zeigen die Datenart danach wieder als nicht vereinbart an, und für eine erneute Aufnahme braucht es eine neue Datenanfrage.
Bestehende Verbindungen
Gegenparts, mit denen bereits Kursdaten ausgetauscht wurden, behalten ihre Bewilligung beim Versionswechsel automatisch. Nur wer bisher lediglich einen Handshake, aber nie einen Austausch hatte, muss eine Datenanfrage stellen.
Nachrichten und Statusmeldungen
GTNet nutzt ein nachrichtenbasiertes Kommunikationsprotokoll für verschiedene Zwecke:
- Handshake-Nachrichten: Zum Herstellen und Bestätigen von Verbindungen zwischen Instanzen.
- Statusnachrichten: Zur Mitteilung von Änderungen wie Online/Offline-Status, Wartungsmodus oder Kapazitätsauslastung. Meldet sich ein Gegenpart beim Herunterfahren ab, wird er sofort als offline geführt; früher blieb er bis zum nächsten fehlgeschlagenen Versand als online eingetragen.
- Datenanfragen: Zum Anfordern und Bewilligen des Austauschs bestimmter Datenarten.
Wer darf was
GTNet betrifft die gesamte Instanz und nicht einen einzelnen Mandanten. Deshalb darf nur ein Benutzer mit Administratorrechten daran etwas verändern: Gegenparts erfassen, bearbeiten oder löschen, Nachrichten versenden und beantworten, Nachrichten löschen sowie die Regeln für die automatische Beantwortung pflegen. Alle übrigen angemeldeten Benutzer dürfen die GTNet-Ansichten lesen, also die Liste der Gegenparts mit deren Nachrichten, die angekündigten Wartungsfenster und das Austauschprotokoll.
Was einem Benutzer nicht erlaubt ist, wird ihm auch nicht angeboten: Die entsprechenden Menüpunkte und Dialoge erscheinen gar nicht, anstatt erst beim Speichern abgewiesen zu werden. Eine Ausnahme bilden die Austausch-Optionen einzelner Instrumente unter Austausch Preisdaten. Sie gehören zum Instrument und folgen dessen gewöhnlichen Bearbeitungsrechten: Ein Administrator und ein «Privilegierter Benutzer» dürfen jedes Instrument ändern, alle übrigen Benutzer nur die von ihnen selbst erfassten Instrumente.
Zwei Bereiche bleiben den Administratoren auch beim blossen Lesen vorbehalten. Die Automatische Nachricht legt offen, unter welchen Bedingungen diese Instanz einen Gegenpart aufnimmt, und der Export der GTNet-Daten gibt den gesamten Bestand auf einmal heraus. Admin-Nachrichten, die als «Nur Admin» gekennzeichnet sind, bleiben zudem in sämtlichen Ansichten den Administratoren vorbehalten — auch dort, wo die Nachrichten eines einzelnen Gegenparts aufgeklappt werden.
Ein als «Nur Admin» gekennzeichneter Gesprächsverlauf bleibt es für jede Nachricht darin. Eine Antwort kann ihn nicht öffnen — weder eine hier verfasste noch eine, die vom Gegenpart eintrifft, der ja nicht wissen kann, wie der von ihm beantwortete Verlauf eingestuft ist. Massgebend ist die Nachricht, die das Gespräch begonnen hat.
Eine Nachricht, die noch auf eine Antwort wartet, lässt sich nicht löschen, und der zugehörige Gegenpart ebenso wenig, solange die Antwort aussteht oder die Anfrage nicht abgelehnt wurde. Das gilt für jede Art von Anfrage, auch für jene, welche die Instanzen unter sich austauschen — etwa die Token-Erneuerung und den Abgleich der Austauscheinstellungen.
Abfragelimits und Laststeuerung
Um Server vor Überlastung zu schützen, kennt GTNet zwei Begrenzungen. Das Tägliche Abfragelimit legt fest, wie viele Anfragen ein einzelner Gegenpart pro UTC-Tag stellen darf; es wirkt in beide Richtungen, denn die eigene Instanz hört von selbst auf zu fragen, sobald das von einem Gegenpart veröffentlichte Kontingent aufgebraucht ist. Das Abfragelimit begrenzt je Austauschart, wie viele Instrumente eine einzelne Anfrage umfassen darf. Beide sind unter Abfragelimits beschrieben. Zusätzlich kann eine Instanz als «ausgelastet» markiert werden, wodurch nur noch Statusnachrichten kommuniziert werden.
Erste Schritte mit GTNet
Dieser Abschnitt bietet eine Schritt-für-Schritt-Anleitung zur Einrichtung Ihrer GT-Instanz für die Teilnahme am GTNet-Netzwerk.
Voraussetzungen
Für die Teilnahme am GTNet muss der eigene Grafioschtrader-Server von aussen über HTTPS erreichbar sein. Stellen Sie sicher, dass Ihr Server für die Maschine-zu-Maschine-Kommunikation (M2M) korrekt konfiguriert ist. Bei Problemen mit der externen Erreichbarkeit konsultieren Sie den Leitfaden zur Problemlösung im Wiki.
Schritt 1: GTNet in den globalen Einstellungen aktivieren
Aktivieren Sie zunächst die GTNet-Funktionalität über die Globalen Einstellungen GTNet:
- Setzen Sie g.gnet.use auf einen Wert grösser als 0, um GTNet zu aktivieren
- Optional können Sie g.gnet.use.log aktivieren, um den Datenaustausch zu protokollieren
Schritt 2: Eigene Instanz registrieren
Bevor die Kommunikation mit anderen Teilnehmern möglich ist, müssen Sie Ihren eigenen Server in der Ansicht GTNet Setup registrieren:
- Öffnen Sie die GTNet Setup-Ansicht
- Erstellen Sie einen Eintrag für Ihren eigenen Server mit Ihrer Domain-URL
- Nach dem Speichern wird Ihre Instanz-ID in der globalen Einstellung g.gnet.my.entry.id gespeichert
Tipp
Falls Sie eine bestehende Datenbank auf einen neuen Server migrieren, sollten Sie vor der Migration die GTNet-Daten auf dem alten Server exportieren und anschliessend auf dem neuen Server importieren. Dadurch bleiben Authentifizierungstoken, Peer-Verbindungen und Nachrichtenhistorie erhalten. Siehe Export und Import der GTNet-Daten für Details.
Schritt 3: Remote-Instanzen hinzufügen
Fügen Sie eine oder mehrere entfernte GTNet-Instanzen hinzu, um die Kommunikation aufzubauen:
- Fügen Sie in der Ansicht GTNet Setup Einträge für entfernte Server hinzu
- Empfehlung: Bevorzugen Sie PUSH_OPEN-Server, da diese einen aktiven Datenpool pflegen und bidirektionalen Austausch ohne lokale Instrumente ermöglichen
- Konfigurieren Sie das tägliche Anfragelimit und andere Einstellungen nach Bedarf
Schritt 4: Erste Verbindung herstellen
Fordern Sie direkt den Datenaustausch an, wodurch der Handshake-Prozess automatisch durchgeführt wird:
- Wählen Sie den Eintrag des entfernten Servers aus
- Verwenden Sie das Kontextmenü, um eine Anfrage für Datenaustausch-Nachricht zu senden
- Das System führt automatisch den Handshake und den Token-Austausch durch, falls dies der erste Kontakt ist
- Warten Sie auf die Antwort (Annahme oder Ablehnung)
- Nach der Annahme wird der Datenaustausch aktiviert und die Authentifizierungstoken werden für zukünftige Kommunikation gespeichert
Schritt 5: Automatische Antworten konfigurieren (Empfohlen)
Um nicht jede eingehende Anfrage manuell beantworten zu müssen, konfigurieren Sie automatische Antwortregeln in der Ansicht Automatische Antwort:
- Definieren Sie Regeln für verschiedene Nachrichtentypen (z.B. Erstkontakt, Datenaustausch-Anfragen)
- Legen Sie Bedingungen fest, z.B. Tageszeit, tägliche Anfragezahl oder Domain-Muster
- Bestimmen Sie, ob Anfragen automatisch akzeptiert oder abgelehnt werden sollen
- Konfigurieren Sie Wartezeiten nach Ablehnungen, um wiederholte Anfragen zu verhindern
Tipp
Ohne automatische Antwortregeln erfordert jede eingehende Anfrage eine manuelle Genehmigung durch den Administrator. Das Einrichten geeigneter Regeln reduziert den administrativen Aufwand erheblich.
Schritt 6: Wertpapiere für den Austausch konfigurieren
Legen Sie fest, welche Instrumente am Datenaustausch teilnehmen sollen:
- Öffnen Sie die Ansicht Kursdaten austauschen
- Konfigurieren Sie für jedes Wertpapier oder Währungspaar die vier Austauschoptionen:
- Intraday-Kurse empfangen
- Historische Kurse empfangen
- Intraday-Kurse senden
- Historische Kurse senden
- Speichern Sie Ihre Änderungen
Wo GTNet verwendet wird
GTNet ist in verschiedene Teile der Anwendung integriert, sowohl automatisch durch das System als auch durch Benutzeraktionen.
Systemgesteuerte Verwendung
graph LR;
A[Anwendungsstart] -->|Broadcast| B[Server Online Nachricht]
C[Anwendungsbeendigung] -->|Broadcast| D[Server Offline Nachricht]
E[Einstellungen geändert] -->|Broadcast| F[Einstellungen aktualisiert Nachricht]
- Anwendungsstart: Wenn der GT-Server mit aktiviertem GTNet startet, wird automatisch ein «Online»-Status an alle verbundenen Peers gesendet
- Anwendungsbeendigung: Bei ordnungsgemässem Herunterfahren wird ein «Offline»-Status gesendet, um Peers zu informieren
- Einstellungsänderungen: Konfigurationsänderungen werden automatisch mit verbundenen Instanzen synchronisiert
Benutzergesteuerte Verwendung
- Watchlist-Aktualisierung: Beim Aktualisieren einer Watchlist können Instrumente, die für den GTNet-Austausch konfiguriert sind, Intraday-Kurse von verbundenen Peers empfangen. Siehe Letzter Kurs Austausch für Details.
- Laden historischer Daten: Beim Laden historischer Kursdaten kann GTNet Lücken aus Peer-Instanzen füllen. Siehe Historischer Kursaustausch für Details.
- Wertpapiererstellung: Beim Erstellen neuer Wertpapiere ermöglicht die GTNet Wertpapiersuche das Importieren von Wertpapier-Metadaten und Konnektoreinstellungen aus anderen GTNet-Instanzen.
GTNet überwachen
GTNet bietet mehrere Möglichkeiten, den Status und die Aktivität des Datenaustauschs zu überwachen.
Statische Übersicht: Kursdaten austauschen
Die Ansicht Kursdaten austauschen bietet eine statische Übersicht darüber, welche Instrumente für den Austausch konfiguriert sind und welche OPEN-Instanzen Daten liefern können:
- Alle Wertpapiere und Währungspaare mit ihren Austauscheinstellungen anzeigen
- Zeilen erweitern, um Lieferantendetails zu sehen (welche Peers Daten für jedes Instrument liefern können)
- Nützlich zum Verstehen des aktuellen Konfigurationsstatus
Dynamische Ansicht: Austauschprotokoll
Die Ansicht Austauschprotokoll bietet eine dynamische, zeitbasierte Übersicht über die tatsächliche Austauschaktivität:
- Statistiken für Intraday- und historischen Kursaustausch einsehen
- Lieferanten- und Verbraucherstatistiken pro verbundener Instanz verfolgen
- Aggregierte Daten nach Tag, Woche, Monat und Jahr anzeigen
- Erfordert die Aktivierung der Protokollierung über g.gnet.use.log in den Globalen Einstellungen
Hintergrundaufgaben
Mehrere Hintergrundaufgaben erledigen GTNet-Operationen automatisch. Diese können im Aufgaben-Datenänderungsmonitor überwacht werden:
| Aufgaben-ID | Name | Beschreibung |
|---|---|---|
| 20 | Online-Status verfolgen | Prüft kurz nach dem Serverstart einmalig den Online- und Ausgelastet-Status aller konfigurierten Peers; Online gilt nur bei einer erfolgreichen GTNet-Protokollantwort, Peers ohne abgeschlossenen ausgehenden Handshake werden auf «Unbekannt» gesetzt. Peers, die ausser Betrieb sind oder sich in einem angekündigten Wartungsfenster befinden, werden übersprungen. Eine einzelne Instanz kann jederzeit über den Kontextmenüpunkt «Status jetzt prüfen» in der GTNet-Server-Übersicht neu geprüft werden. |
| 22 | Austauschprotokolle aggregieren | Fasst Austauschprotokolleinträge zu täglichen, wöchentlichen, monatlichen und jährlichen Perioden zusammen |
| 23 | Konfigurationen synchronisieren | Synchronisiert Austauschkonfigurationen mit verbundenen Peers und aktualisiert Lieferantendetails |
| 24 | Einstellungsänderungen übertragen | Sendet Einstellungsaktualisierungen an alle verbundenen Peers bei lokalen Änderungen |
| 25 | Zukünftige Nachrichten zustellen | Verarbeitet geplante Nachrichten wie Wartungsankündigungen und setzt Instanzen, deren angekündigtes Datum der Betriebseinstellung erreicht ist, auf «Ausser Betrieb» |
Für detaillierte Beschreibungen jeder Aufgabe siehe Hintergrundaufgaben.
Einrichtungsseiten
Die detaillierte Einrichtung erfolgt über die folgenden Unterseiten: