Arquitetura de referência de mensagens automotivas, dados e análise
Essa arquitetura de referência foi projetada para dar suporte a OEMs automotivos e provedores de mobilidade no desenvolvimento de aplicativos de veículos conectados avançados e serviços digitais. Sua meta é fornecer uma infraestrutura de mensagens, dados e análise confiável e eficiente. A arquitetura inclui processamento de mensagens, processamento de comandos e recursos de armazenamento de estado para facilitar a integração de vários serviços por meio de APIs gerenciadas. Ela também descreve uma solução de dados e análise que garante o armazenamento e a acessibilidade dos dados de maneira escalonável e segura para engenharia digital e compartilhamento de dados com o ecossistema de mobilidade mais amplo.
Arquitetura
O diagrama de arquitetura de alto nível mostra os principais blocos lógicos e serviços de uma solução de mensagens automotivas, dados e análises. Mais detalhes podem ser encontrados nas seguintes seções.
- O veículo contém uma coleção de dispositivos. Alguns desses dispositivos são definidos por software e podem executar cargas de trabalho de software gerenciadas na nuvem. O veículo coleta e processa uma ampla variedade de dados, desde informações de sensor de dispositivos eletromecânicos, como o sistema de gerenciamento de bateria até arquivos de log de software.
- Os serviços de mensagens do veículo gerenciam a comunicação de e para o veículo. Ele é responsável por processar mensagens, executar comandos usando fluxos de trabalho e mediar o back-end de gerenciamento de veículos, usuários e dispositivos. Ele também controla o registro e o provisionamento de veículos, dispositivos e certificados.
- O back-end de gerenciamento de veículos e dispositivos é formado pelos sistemas OEM que acompanham a configuração do veículo desde a fábrica até o reparo e a manutenção.
- O operador tem operações e TI para garantir a disponibilidade e o desempenho dos veículos e back-end.
- Os serviços de dados e análise fornecem armazenamento de dados e permitem processamento e análise para todos os usuários de dados. Ele transforma dados em insights que impulsionam melhores decisões de negócios.
- O fabricante do veículo fornece serviços digitais como valor agregado ao cliente final, desde aplicativos complementares até aplicativos de reparo e manutenção.
- Vários serviços digitais exigem integração de negócios a sistemas de back-end, como sistemas de Gerenciamento de Revendedores (DMS), Gerenciamento de Relacionamentos com o Cliente (CRM) ou Planejamento de Recursos Empresariais (ERP).
- O back-end de gerenciamento de consentimento faz parte do gerenciamento de clientes e controla a autorização do usuário para coleta de dados de acordo com a legislação geográfica do país/região.
- Os dados coletados dos veículos são uma entrada para o processo de engenharia digital, com o objetivo de aprimoramentos contínuos de produtos usando análise e aprendizado de máquina.
- O ecossistema de mobilidade inteligente pode assinar e consumir telemetria dinâmica, bem como insights agregados para fornecer mais produtos e serviços.
A Microsoft é membro do grupo de trabalho Veículo Definido pelo Software Eclipse, um fórum para colaboração aberta usando código aberto para plataformas de software de veículo.
Fluxo de dados
A arquitetura usa o padrão de mensagens de editor/assinante para separar os veículos dos serviços.
Mensagens do veículo para a nuvem
O fluxo de dados do veículo para a nuvem é usado para processar dados de telemetria do veículo. Os dados de telemetria podem ser enviados periodicamente (estado do veículo, coleta de sensores do veículo) ou com base em um evento (gatilhos em condições de erro, reação a uma ação do usuário).
- O veículo é configurado para um cliente com base nas opções selecionadas usando as APIs de Gerenciamento. A configuração contém:
- Informações de provisionamento para veículos e dispositivos.
- Configuração inicial de coleta de dados do veículo com base em considerações de mercado e de negócios.
- Armazenamento das configurações iniciais de consentimento do usuário com base nas opções do veículo e na aceitação do usuário.
- O veículo publica mensagens de telemetria e eventos por meio de um cliente MQTT (Message Queuing Telemetry Transport) com tópicos definidos para o Recurso de Agente MQTT da Grade de Eventos do Azure nos serviços de mensagens do veículo.
- A Grade de Eventos roteia mensagens para diferentes assinantes com base nos atributos de tópico e mensagem.
- Mensagens de baixa prioridade que não exigem processamento imediato (por exemplo, mensagens de análise) são roteadas diretamente para o armazenamento usando uma instância dos Hubs de Eventos para buffer.
- Mensagens de alta prioridade que exigem processamento imediato (por exemplo, status alterações que devem ser visualizadas em um aplicativo voltado para o usuário) são roteadas para uma função do Azure usando uma instância dos Hubs de Eventos para buffer.
- As mensagens de baixa prioridade são armazenadas diretamente no data lake usando a captura de eventos. Essas mensagens podem usar decodificação e processamento em lote visando obter custos ideais.
- Mensagens de alta prioridade são processadas com uma função do Azure. A função lê as configurações de consentimento do veículo, do dispositivo e do usuário do Registro de Dispositivo e executa as seguintes etapas:
- Verifica se o veículo e o dispositivo estão registrados e ativos.
- Verifica se o usuário deu consentimento para o tópico da mensagem.
- Decodifica e enriquece o conteúdo.
- Adiciona mais informações de roteamento.
- O Hub de Eventos de Telemetria Dinâmica na solução de dados e análise recebe as mensagens decodificadas. O Azure Data Explorer usa ingestão de streaming para processar e armazenar mensagens conforme elas são recebidas.
- A camada de Serviços digitais recebe mensagens decodificadas. O Barramento de Serviço fornece notificações para aplicativos sobre alterações/eventos importantes no estado do veículo. O Azure Data Explorer fornece o último estado conhecido do veículo e o histórico de curto prazo.
Mensagens da nuvem para o veículo
O fluxo de dados da nuvem para o veículo geralmente é usado para executar comandos remotos no veículo de um serviço digital. Esses comandos incluem casos de uso, como portas de bloqueio/desbloqueio, controle de clima (definir temperatura preferencial da cabine) ou alterações de configuração. A execução bem-sucedida depende do estado do veículo e pode exigir algum tempo para ser concluída.
Dependendo dos recursos do veículo e do tipo de ação, há várias abordagens possíveis para execução de comando. Abordaremos duas variações:
- Direcionar mensagens de nuvem para dispositivo (A) que não exigem verificação de consentimento do usuário e com um tempo de resposta previsível. Isso abrange mensagens para veículos individuais e múltiplos. Um exemplo inclui notificações meteorológicas.
- Comandos de veículo (B) que usam o estado do veículo para determinar o êxito e exigem o consentimento do usuário. A solução de mensagens deve ter uma lógica de fluxo de trabalho de comando que verifica o consentimento do usuário, controla o estado de execução do comando e notifica o serviço digital quando concluído.
Os comandos de usuários de fluxo de dados a seguir emitidos de um aplicativo complementar de serviços digitais como exemplo.
As mensagens diretas são executadas com a quantidade mínima de saltos para o melhor desempenho possível (A):
- O aplicativo complementar é um serviço autenticado que pode publicar mensagens na Grade de Eventos.
- A Grade de Eventos verifica se há autorização para o Serviço de aplicativo complementar para determinar se ele pode enviar mensagens para os tópicos fornecidos.
- O aplicativo complementar assina as respostas da combinação de veículo/comando específica.
Quando os comandos dependentes do estado do veículo exigem o consentimento do usuário (B):
- O proprietário/usuário do veículo fornece consentimento para a execução de funções de comando e controle para um serviço digital (neste exemplo, um aplicativo complementar). Isso normalmente é feito quando o usuário baixa/ativa o aplicativo e o OEM ativa sua conta. Ele dispara uma alteração de configuração no veículo para assinar o tópico de comando associado no Agente MQTT.
- O aplicativo complementar usa o comando e a API gerenciada de controle para solicitar a execução de um comando remoto.
- A execução do comando pode ter mais parâmetros para configurar opções como tempo limite, opções de armazenamento e encaminhamento, etc.
- A lógica de comando decide como processar o comando com base no tópico e em outras propriedades.
- A lógica do fluxo de trabalho cria um estado para acompanhar o status da execução
- A lógica de fluxo de trabalho do comando verifica as informações de consentimento do usuário para determinar se a mensagem pode ser executada.
- A lógica de fluxo de trabalho do comando publica uma mensagem na Grade de Eventos com o comando e os valores de parâmetro.
- O módulo de mensagens no veículo é inscrito no tópico de comando e recebe a notificação. Ele roteia o comando para a carga de trabalho correta.
- O módulo de mensagens monitora a carga de trabalho para conclusão (ou erro). Uma carga de trabalho é responsável pela execução (física) do comando.
- O módulo de mensagens publica relatórios de status do comando para a Grade de Eventos.
- O módulo de fluxo de trabalho está inscrito nas atualizações de status do comando e atualiza o estado interno da execução do comando.
- Depois que a execução do comando for concluída, o aplicativo de serviço receberá o resultado da execução sobre o comando e a API de controle.
Provisionamento de veículos e dispositivos
Este fluxo de dados abrange o processo de registro e provisionamento de veículos e dispositivos para os serviços de mensagens do veículo. O processo normalmente é iniciado como parte da fabricação de veículos.
- O Sistema de Fábrica comissiona o dispositivo do veículo para o estado de construção desejado. Ele pode incluir a instalação e a configuração iniciais de firmware e software. Como parte desse processo, o sistema de fábrica obterá e gravará o certificado do dispositivo, criado a partir do provedor de Infraestrutura de Chave Pública.
- O Sistema de Fábrica registra o veículo e dispositivo usando a API de Provisionamento de Dispositivos e Veículos.
- O sistema de fábrica dispara o cliente de provisionamento de dispositivos para se conectar ao registro do dispositivo e provisionar o dispositivo. O dispositivo recupera informações de conexão para o agente de MQTT.
- O aplicativo de registro de dispositivo cria a identidade do dispositivo com agente de MQTT.
- O sistema de fábrica dispara o dispositivo para estabelecer uma conexão com o agente de MQTT pela primeira vez.
- O agente MQTT autentica o dispositivo usando o Certificado Raiz da AC e extrai as informações do cliente.
- O agente de MQTT gerencia a autorização para tópicos permitidos usando o registro local.
- Para a substituição de bloco, o Sistema de Revendedor OEM pode disparar o registro de um novo dispositivo.
Observação
Os sistemas de fábrica geralmente são locais e não têm conexão direta com a nuvem.
Análise de Dados
Esse fluxo de dados abrange a análise de dados do veículo. Você pode usar outras fontes de dados, como operadores de fábrica ou workshop, para enriquecer e fornecer contexto aos dados do veículo.
- A camada de serviços de mensagens do veículo fornece telemetria, eventos, comandos e mensagens de configuração da comunicação bidirecional com o veículo.
- A camada TI e Operações fornece informações sobre o software em execução no veículo e os serviços de nuvem associados.
- Vários pipelines fornecem processamento dos dados em um estado mais refinado
- Processamento de dados brutos para dados de veículos enriquecidos e duplicados.
- Agregação de dados do veículo, principais indicadores de desempenho e insights.
- Geração de dados de treinamento para aprendizado de máquina.
- Diferentes aplicativos consomem dados refinados e agregados.
- Visualização usando o Power BI.
- Fluxos de trabalho de Integração Comercial usando Aplicativos Lógicos com integração ao Dataverse.
- Os Dados de Treinamento Gerados são consumidos por ferramentas como o ML Studio para gerar modelos de ML.
Escalabilidade
Uma solução de dados e veículos conectados pode ser dimensionada para milhões de veículos e milhares de serviços. É recomendável usar o padrão Selos de Implantação para obter escalabilidade e elasticidade.
Cada unidade de escala de mensagens de veículo dá suporte a uma população de veículos definida (por exemplo, veículos em uma região geográfica específica, particionados por ano modelo). A unidade de escala de aplicativos é usada para dimensionar os serviços que exigem envio ou recebimento de mensagens para os veículos. O serviço comum é acessível de qualquer unidade de escala e fornece serviços de gerenciamento de dispositivos e assinatura para aplicativos e dispositivos.
- A unidade de escala de aplicativo assina aplicativos para mensagens de interesse. O serviço comum manipula a assinatura dos componentes da unidade de escala de mensagens do veículo.
- O veículo usa o serviço de gerenciamento de dispositivos para descobrir sua atribuição a uma unidade de escala de mensagens de veículo.
- Se necessário, o veículo é provisionado usando o fluxo de trabalho de Provisionamento de veículos e dispositivos.
- O veículo publica uma mensagem para o agente de MQTT.
- A Grade de Eventos roteia a mensagem usando as informações de assinatura.
- Mensagens que não exigem verificação de processamento e declarações são roteadas para um hub de entrada na unidade de escala do aplicativo correspondente.
- As mensagens que exigem processamento são roteadas para a lógica de processamento D2C para decodificação e autorização (consentimento do usuário).
- Os aplicativos consomem eventos da instância de hubs de eventos de entrada do aplicativo.
- Os aplicativos publicam mensagens para o veículo.
- As mensagens que não exigem mais processamento são publicadas no agente de MQTT.
- As mensagens que exigem mais processamento, controle de fluxo de trabalho e autorização são roteadas para a lógica de processamento C2D relevante em uma instância dos Hubs de Eventos.
Componentes
Essa arquitetura de referência faz referência aos seguintes componentes do Azure.
Conectividade
- A Grade de Eventos do Azure permite a integração de dispositivos, AuthN/Z e pub-sub por meio do MQTT v5.
- O Azure Functions processa as mensagens do veículo. Ele também pode ser usado para implementar APIs de gerenciamento que exigem execução de curta duração.
- O Serviço de Kubernetes do Azure (AKS) é uma alternativa quando a funcionalidade por trás das APIs Gerenciadas consiste em cargas de trabalho complexas implantadas como aplicativos conteinerizados.
- O Azure Cosmos DB armazena as configurações de consentimento do veículo, do dispositivo e do usuário.
- O Gerenciamento de API do Azure fornece um gateway de API gerenciado para serviços de back-end existentes, como o gerenciamento do ciclo de vida do veículo (incluindo o OTA) e o gerenciamento de consentimento do usuário.
- O Lote do Azure executa tarefas grandes com uso intensivo de computação com eficiência, como ingestão de rastreamento de comunicação do veículo.
Dados e análises
- Os Hubs de Eventos do Azure permitem processar e ingerir grandes quantidades de dados de telemetria.
- O Azure Data Explorer fornece exploração, curadoria e análise de dados de telemetria de veículos baseados em série temporal.
- O Armazenamento de Blobs do Azure armazena documentos grandes (como vídeos e rastreamentos) e dados de veículos coletados.
- O Azure Databricks fornece um conjunto de ferramentas para manter soluções de dados de nível empresarial em escala. Necessário para operações de longa duração em grandes quantidades de dados de veículo.
Integração de back-end
- Os Aplicativos Lógicos do Azure executam fluxos de trabalho automatizados para integração de negócios com base em dados de veículos.
- O Serviço de Aplicativo do Azure fornece aplicativos Web voltados para o usuário e back-ends móveis, como o aplicativo complementar.
- O Cache do Azure para Redis fornece cache na memória de dados frequentemente usados por aplicativos voltados para o usuário.
- O Barramento de Serviço do Azure fornece a intermediação que separa a conectividade de veículos de serviços digitais e integração de negócios.
Alternativas
A seleção do tipo certo de computação para implementar o processamento de mensagens e as APIs gerenciadas depende de uma infinidade de fatores. Selecione o serviço certo usando o guia Escolher um serviço de computação do Azure.
Exemplos:
- Azure Functions para processos de curta duração controlados por eventos, como ingestão de telemetria.
- Lote do Azure para tarefas de computação de alto desempenho, como decodificar arquivos de rastreamento/vídeo CAN grandes
- Serviço de Kubernetes do Azure para orquestração gerenciada e completa de lógica complexa, como o gerenciamento de fluxo de trabalho de controle e comando.
Como alternativa ao compartilhamento de dados baseado em eventos, também é possível usar o Azure Data Share se o objetivo for executar a sincronização em lote no nível do data lake.
Detalhes do cenário
Os OEMs automotivos estão passando por uma transformação significativa à medida que mudam da produção de produtos fixos para a oferta de veículos conectados e definidos por software. Os veículos oferecem uma variedade de recursos, como atualizações remotas, diagnóstico remoto e experiências personalizadas do usuário. Essa transição permite que os OEMs melhorem continuamente seus produtos com base em dados e insights em tempo real e, ao mesmo tempo, expandam seus modelos de negócios para incluir novos serviços e fluxos de receita.
Essa arquitetura de referência permite que fabricantes automotivos e provedores de mobilidade:
- Usem dados de comentários como parte do processo de engenharia digital para impulsionar o aprimoramento contínuo do produto, abordar proativamente as causas raiz dos problemas e criar um novo valor do cliente.
- Forneçam novos produtos e serviços digitais e digitalizem operações com a integração de negócios com sistemas de back-end, como o Enterprise Resource Planning (ERP) e o Gerenciamento de Relacionamento com o Cliente (CRM).
- Compartilhem dados com segurança e atendendo aos requisitos específicos do país/região para o consentimento do usuário com os ecossistemas de mobilidade inteligente mais amplos.
- A integração com sistemas de back-end para gerenciamento de ciclo de vida e gerenciamento de consentimento do veículo simplifica e acelera a implantação e o gerenciamento de soluções de veículos conectados usando uma Cadeia de Ferramentas de DevOps de Veículo Definida por Software.
- Armazenem e forneçam computação em escala para veículos e análises.
- Gerenciem a conectividade de veículos para milhões de dispositivos de maneira econômica.
Possíveis casos de uso
Os casos de uso automotivo do OEM têm o objetivo de melhorar o desempenho, a segurança e a experiência do usuário do veículo.
- Melhoria contínua do produto: aprimoramento do desempenho do veículo analisando dados em tempo real e aplicando atualizações remotamente.
- Validação da frota de teste de engenharia: garantir a segurança e a confiabilidade do veículo coletando e analisando dados de frotas de teste.
- Aplicativo Complementar e Portal do Usuário: habilitar o acesso e o controle de veículos remotos por meio de um aplicativo personalizado e portal da Web.
- Reparo Proativo e Manutenção: prever e agendar a manutenção do veículo com base em insights controlados por dados.
Os casos de uso mais amplos do ecossistema expandem os aplicativos de veículos conectados para melhorar as operações de frota, seguros, marketing e assistência à beira da estrada em todo o cenário de transporte.
- Operações de frota comercial conectada: otimizar o gerenciamento de frota por meio de monitoramento em tempo real e tomada de decisões controlada por dados.
- Seguro de Veículo Digital: personalizar prêmios de seguro com base no comportamento de condução e fornecer relatórios imediatos de acidentes.
- Marketing baseado em localização: entregar campanhas de marketing direcionadas aos drivers com base em sua localização e preferências.
- Assistência Rodoviária: fornecer suporte e assistência em tempo real aos motoristas necessitados, usando a localização do veículo e os dados de diagnóstico.
Considerações
Estas considerações implementam os pilares do Azure Well-Architected Framework, que é um conjunto de princípios de orientação que podem ser usados para aprimorar a qualidade de uma carga de trabalho. Para obter mais informações, confira Microsoft Azure Well-Architected Framework.
Confiabilidade
A confiabilidade garante que seu aplicativo possa cumprir os compromissos que você assume com seus clientes. Para obter mais informações, confira Visão geral do pilar de confiabilidade.
- Considere o dimensionamento horizontal para aumentar a confiabilidade.
- Use unidades de escala para isolar regiões geográficas com regulamentos diferentes.
- Dimensionamento automático e instâncias reservadas: gerencie recursos de computação dimensionando dinamicamente com base na demanda e otimizando os custos com instâncias pré-alocadas.
- Redundância geográfica: replicar dados em várias localizações geográficas para tolerância a falhas e recuperação de desastres.
Segurança
A segurança fornece garantias contra ataques deliberados e o abuso de seus dados e sistemas valiosos. Para saber mais, confira Visão geral do pilar de segurança.
- Proteção da conexão do veículo: confira a seção sobre gerenciamento de certificados para entender como usar certificados X.509 para estabelecer comunicações de veículos seguras.
Otimização de custo
A otimização de custos é a análise de maneiras de reduzir as despesas desnecessárias e melhorar a eficiência operacional. Para obter mais informações, confira Visão geral do pilar de otimização de custo.
- Considerações sobre custo por veículo: os custos de comunicação devem depender do número de serviços digitais oferecidos. Calcule o RoI dos serviços digitais em relação aos custos de operação.
- Estabeleça práticas para análise de custo com base no tráfego de mensagens. O tráfego de veículos conectados tende a aumentar com o tempo à medida que mais serviços são adicionados.
- Considere os custos de rede e dispositivos móveis
- Use o alias do tópico MQTT para reduzir o volume de tráfego.
- Use um método eficiente para codificar e compactar mensagens de conteúdo.
- Manipulação de tráfego
- Prioridade da mensagem: os veículos tendem a ter padrões de uso repetidos que criam picos de demanda diários/semanais. Use as propriedades da mensagem para atrasar o processamento de mensagens não críticas ou analíticas para suavizar a carga e otimizar o uso de recursos.
- Dimensionamento automático com base na demanda.
- Considere por quanto tempo os dados devem ser armazenados quentes/mornos/frios.
- Considere o uso de instâncias reservadas para otimizar os custos.
Excelência operacional
A excelência operacional abrange os processos de operações que implantam um aplicativo e o mantêm em execução na produção. Para obter mais informações, confira Visão geral do pilar de excelência operacional.
- Considere monitorar o software do veículo (logs/métricas/rastreamentos), os serviços de mensagens, os serviços de dados e análise e os serviços de back-end relacionados como parte de operações unificadas de TI.
Eficiência de desempenho
A eficiência do desempenho é a capacidade de dimensionar sua carga de trabalho para atender às demandas colocadas por usuários de maneira eficiente. Para saber mais, confira Visão geral do pilar de eficiência de desempenho.
- Considere usar o conceito de escala para soluções que dimensionam acima de 50.000 dispositivos, especialmente se várias regiões geográficas forem necessárias.
- Considere cuidadosamente a melhor maneira de ingerir dados (mensagens, streaming ou em lote).
- Considere a melhor maneira de analisar os dados com base no caso de uso.
Próximas etapas
- Crie uma solução de Operações de Veículo Autônomo (AVOps) para uma visão mais ampla da engenharia digital automotiva para condução autônoma e assistida.
Recursos relacionados
Os artigos a seguir abordam alguns dos conceitos usados na arquitetura:
- O Padrão de Verificação de Declaração é usado para dar suporte ao processamento de mensagens grandes, como uploads de arquivo.
- Os Selos de Implantação abrangem os conceitos gerais necessários para dimensionar a solução para milhões de veículos.
- A limitação descreve o conceito necessário para lidar com um número excepcional de mensagens de veículos.
Os artigos a seguir descrevem interações entre componentes na arquitetura: