Princípios de orientação

Princípios de orientação

Para preservar a visão original da GTFS Realtime, foram estabelecidos vários princípios de orientação que devem ser levados em consideração ao se estender a especificação:

Os feeds devem ser eficientes para produção e consumo em tempo real.

Informações em tempo real são um fluxo de dados contínuo e dinâmico que exigem, necessariamente, processamento eficiente. Escolhemos Buffers de protocolo como a base da especificação, porque eles oferecem um meio-termo entre facilidade de uso para desenvolvedores e eficiência na transmissão dos dados. Diferentemente da GTFS, não imaginamos que muitas agências editarão manualmente os feeds da GFTS Realtime. A escolha de Buffers de protocolo reflete a conclusão de que a maioria dos feeds de GTFS Realtime serão produzidos e consumidos de forma programática.

A base da especificação é informar os passageiros.

Assim como a GTFS, a GTFS Realtime preocupa-se, principalmente, em informar os passageiros. Isto é, a especificação tem como objetivo principal e primordial incluir informações que possam alimentar ferramentas para passageiros. As agências de transporte público podem querer transmitir internamente uma grande quantidade de informações operacionais entre seus sistemas. A GTFS Realtime não tem essa finalidade, e já devem existir outros padrões de dados operacionais mais adequados.

As alterações feitas na especificação devem ser compatíveis com versões anteriores.

Quando recursos são adicionados à especificação, devemos evitar alterações que possam tornar inválidos feeds existentes. Não queremos dar mais trabalho para os editores até que eles queiram adicionar recursos aos seus feeds. Além disso, sempre que possível, queremos que os analisadores existentes continuem a ler as partes mais antigas dos feeds mais recentes. Até certo ponto, as convenções para a ampliação dos Buffers de protocolo impõem a compatibilidade com versões anteriores. No entanto, queremos evitar também alterações semânticas em campos existentes que poderiam interromper a compatibilidade com versões anteriores.

Não é recomendável adicionar recursos especulativos.

Cada novo recurso aumenta a complexidade de criação e leitura de feeds. Portanto, queremos adicionar apenas recursos reconhecidamente úteis. O ideal é que qualquer proposta tenha sido testada por meio da geração de dados usando um sistema de transporte público real que utilize os novos recursos e da criação de um software que leia e exiba o novo recurso.

Para oferecer suporte a novos recursos, faremos uso das extensões descritas na seção a seguir. Produtores e consumidores da GTFS Realtime podem testar um novo recurso primeiro no espaço de extensões. Quando o recurso estiver pronto para ser adotado oficialmente, ele será adicionado à própria definição de protótipo da GTFS Realtime.