Principes directeurs
Afin de préserver la vision originale de GTFS-realtime, nous avons établi un certain nombre de principes directeurs à prendre en compte lors de l'extension de la spécification :
Les flux doivent être efficaces afin de permettre une production et une consommation en temps réel.
L'information en temps réel est un flux continu et dynamique de données qui exige nécessairement un traitement efficace. Nous avons choisi Protocol Buffers comme base pour la spécification, car ce format offre un bon compromis en termes de facilité d'utilisation pour les développeurs et d'efficacité pour la transmission des données. À la différence du format GTFS, nous n'imaginons pas les agences éditer manuellement les flux GTFS-realtime. Le choix de Protocol Buffers s'appuie sur l'hypothèse que la plupart des flux GTFS-realtime seront créés et consommés de manière programmée.
La spécification concerne l'information des passagers.
Comme GTFS auparavant, GTFS-realtime concerne principalement l'information des passagers. Autrement dit, les spécifications doivent inclure des informations permettant avant tout d'alimenter des outils à l'attention des usagers. Il y a potentiellement une grande quantité d'informations orientées sur les opérations que les agences peuvent vouloir transmettre en interne entre les systèmes. GTFS-realtime n'est pas prévu à cet effet et il existe probablement d'autres normes de données axées sur les opérations susceptibles d'être plus appropriées.
Les modifications apportées aux spécifications doivent être rétrocompatibles.
Lorsque nous ajoutons des fonctionnalités aux spécifications, nous tentons d'éviter les modifications susceptibles de rendre les flux existants non valides. Nous ne souhaitons pas alourdir la charge de travail des éditeurs de flux existants, tant qu'ils n'ajoutent pas de fonctionnalités à leurs flux. Dans la mesure du possible, nous souhaitons par ailleurs que les analyseurs existants puissent continuer à lire les parties les plus anciennes des flux les plus récents. Les conventions pour l'extension de Protocol Buffers imposent une rétrocompatibilité, dans une certaine limite. Cependant, nous souhaitons éviter les changements sémantiques des champs existants, ce qui pourrait aussi rompre la rétrocompatibilité.
Les fonctionnalités spéculatives sont déconseillées.
Chaque nouvelle fonctionnalité accroît la complexité de la création et de la lecture des flux. C'est pourquoi nous souhaitons uniquement ajouter des fonctionnalités qui s'avèrent utiles. Idéalement, toute proposition aura été testée en générant des données pour un véritable système de transports en commun qui utilise la nouvelle fonctionnalité ainsi qu'un logiciel d'écriture pour la lire et l'afficher.
Nous utiliserons des extensions, décrites dans la section suivante, pour mettre en œuvre de nouvelles fonctionnalités. Les fournisseurs et les consommateurs de flux GTFS-realtime peuvent d'abord tester une nouvelle fonctionnalité dans l'espace d'extension. Lorsque la fonctionnalité est prête pour l'adoption officielle, nous l'ajoutons à la proto-définition du format GTFS-realtime officiel.