Arquitetura e componentes

A implementação do rastreamento de frete envolve o trabalho com vários componentes da solução Last Mile Fleet, como o Fleet Engine, a biblioteca Shipment Tracking do JavaScript e o SDK do Driver:

  • O Fleet Engine é o serviço de back-end da solução Last Mile Fleet. Ele é responsável por gerenciar tarefas e o estado do veículo. Ele processa a interação entre o SDK do driver, a biblioteca JavaScript Shipment Tracking e o serviço de back-end, que pode se comunicar com o Fleet Engine fazendo chamadas REST ou gRPC.

  • É possível integrar a biblioteca JavaScript Shipment Tracking no seu app para consumidores. Com ela, você oferece aos clientes uma visualização da localização do veículo e do HEC.

  • O SDK do Driver é uma biblioteca integrada ao app do motorista. Ele é responsável por atualizar o Fleet Engine com a localização do motorista, o trajeto, a distância restante e o HEC. Ele também se integra ao SDK de navegação, que fornece instruções de navegação guiada para o motorista. Para mais informações, consulte Navegação com o Google Maps.

O diagrama a seguir mostra a relação entre esses componentes:

Arquitetura

Veículos de entrega e tarefas

A criação de um aplicativo de rastreamento de frete para modelar a coleta e a entrega de remessas envolve:

  • O veículo de entrega usado para transportar a remessa.
  • As tarefas de coleta e entrega de remessas

Veículos de entrega

Os veículos de entrega transportam remessas de um depósito para um local de entrega e de um local de retirada para o depósito. Em alguns casos, eles também podem transportar uma remessa diretamente do local de retirada para o local de entrega.

Tarefas

Cada veículo tem tarefas atribuídas a ele. Eles podem incluir tarefas de retirada ou entrega, intervalos necessários para os motoristas ou paradas programadas em caixas de coleta ou em outros locais. Cada tarefa precisa ter um ID exclusivo, mas pode compartilhar o mesmo ID de acompanhamento. As tarefas e a ordem em que são agendadas são usadas para calcular os ETAs para cada tarefa.

As tarefas de envio estão relacionadas à coleta ou ao desembarque. Você deve especificar um número de rastreamento ou ID ao criar uma tarefa de envio. Também é necessário especificar um tempo de permanência para contabilizar o tempo adicional para concluir a tarefa, procurar estacionamento ou caminhar até o local de entrega.

  • Crie uma tarefa de retirada para retirar uma remessa, especificando o local de retirada e o número de rastreamento ou ID.
  • Crie uma tarefa de entrega para entregar uma remessa, especificando o local de entrega e o número de rastreamento ou ID.

Você também pode criar uma tarefa de indisponibilidade para um período em que o veículo não esteja disponível para retiradas ou entregas e tarefas de parada programadas para modelar paradas a serem feitas por um veículo de entrega. No entanto, não é possível atribuir um "tracking_id" a uma tarefa de indisponibilidade ou parada programada. Por isso, não é possível executar diretamente o rastreamento de remessa em uma tarefa de indisponibilidade ou parada programada.

Fluxo de amostra

O diagrama de sequência a seguir mostra o fluxo típico de rastreamento de remessas.

Diagrama de fluxo

Para começar a implementar o Shipment Tracking, consulte Rastrear envios com a biblioteca Shipment Tracking do JavaScript .