Grundprinzipien

Grundprinzipien

Um dem ursprünglichen Ziel von GTFS Realtime gerecht zu werden, wurden einige Grundprinzipien festgelegt, die beim Erweitern der Spezifikation zu berücksichtigen sind:

Feeds sollten effizient erstellt und in Echtzeit genutzt werden können.

Echtzeit-Informationen sind ein kontinuierlicher, dynamischer Datenstrom, der effizient verarbeitet werden muss. Wir haben Protokollzwischenspeicher als Grundlage für die Spezifikation gewählt, weil sie einen guten Kompromiss zwischen Nutzerfreundlichkeit für Entwickler und Effizienz bei der Datenübertragung darstellen. Im Gegensatz zu GTFS gehen wir nicht davon aus, dass viele Betreiber GTFS Realtime-Feeds von Hand bearbeiten. Wir haben uns für Protokollzwischenspeicher entschieden, weil wir zu dem Ergebnis gekommen sind, dass die meisten GTFS Realtime-Feeds programmatisch erstellt und verarbeitet werden.

Die Spezifikation bezieht sich auf Fahrgastinformationen.

Wie schon bei GTFS geht es bei GTFS Realtime in erster Linie um Fahrgastinformationen. Die Spezifikation sollte also Informationen enthalten, die sich vor allem für Tools für Fahrgäste eignen. Unter Umständen möchte ein Betreiber eine große Menge an betriebsbezogenen Daten intern zwischen Systemen übertragen. GTFS Realtime ist nicht für diesen Zweck gedacht und es gibt möglicherweise andere Standards für solche Daten, die sich hierfür besser eignen.

Änderungen an der Spezifikation sollten abwärtskompatibel sein.

Wenn der Spezifikation neue Funktionen hinzugefügt werden, möchten wir vermeiden, dass bestehende Feeds durch diese Änderungen ungültig werden. Vorhandenen Feed-Publishern sollte kein zusätzlicher Aufwand entstehen, es sei denn, sie möchten ihren Feeds neue Funktionen hinzufügen. Außerdem sollten Parser nach Möglichkeit weiterhin die älteren Segmente neuerer Feeds lesen können. Durch die Möglichkeit, Protokollzwischenspeicher zu erweitern, wird die Abwärtskompatibilität bis zu einem gewissen Grad sichergestellt. Wir möchten jedoch semantische Änderungen an vorhandenen Feldern vermeiden, die auch die Abwärtskompatibilität beeinträchtigen können.

Von spekulativen Funktionen wird abgeraten.

Durch jede neue Funktion wird das Erstellen und Lesen von Feeds komplexer. Deshalb möchten wir nur neue Funktionen hinzufügen, von denen wir wissen, dass sie nützlich sind. Idealerweise werden alle Vorschläge getestet, indem Daten für ein Verkehrssystem in der realen Welt generiert werden, das die neue Funktion nutzt, und Software zum Lesen und Darstellen dieser Daten entwickelt wird.

Neue Funktionen werden mithilfe von Erweiterungen hinzugefügt (siehe Beschreibung im folgenden Abschnitt). Ersteller und Nutzer von GTFS Realtime-Feeds können eine neue Funktion zuerst im Erweiterungsbereich testen. Sobald die Funktion offiziell eingeführt werden kann, nehmen wir sie in die offizielle GTFS Realtime-Protokolldefinition auf.