Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.
Menu Docs

Sincronização de dados de tarefa tática para ATAK

Crie aplicativos táticos no Enterprise Advanced e conecte-os ao Dito para sincronização de dados de tarefa local-first em ambientes desconectados.

Casos de uso: ambientes desconectados

Setores: Edge e Mobile,

Produtos e ferramentas: MongoDB Enterprise Advanced

Parceiros: Ditto

Operações de campo desconectadas criam um problema de dados. As equipes de campo precisam compartilhar atualizações de localização, itens de mapa, alertas, arquivos e mensagens.

Uma arquitetura dependente da nuvem pode fazer com que esses fluxos de trabalho confiem em conectividade persistente. Esse requisito é difícil de manter em operações do mundo real. Quando a conectividade falha, as equipes perdem o acesso às informações atuais.

Os programadores enfrentam um problema relacionado. Eles devem oferecer suporte ao armazenamento local, sincronização, gerenciamento de conflitos e visibilidade do centro de comando. O desenvolvimento desses recursos separadamente adiciona complexidade a cada aplicação.

Esta solução mostra como criar aplicativos táticos que continuam funcionando quando a conectividade é limitada. Ele usa o MongoDB como camada de dados, conecta uma plataforma de sincronização de borda ao MongoDB e usa a camada de dados para aumentar as capacidades.

Use o Enterprise Advanced como camada de dados confiável para o aplicação. Armazene entidades de tarefa como documentos BSON e organize-as em collections que correspondam ao fluxo de trabalho operacional. O MongoDB suporta diferentes formas de documento no mesmo banco de dados. Armazene dados de posição, objetos de mapa, mensagens de chat, alertas e arquivos sem forçá-los a um esquema rígido.

Aproveite esse modelo flexível de documento para criar todos os recursos do seu aplicação em uma plataforma de dados. Use o MongoDB para atender a dashboards, APIs, fluxos de trabalho de comando e sistemas downstream. Adicione novas entidades de tarefa sem redesenhar todo o banco de dados.

Use a Dito, uma plataforma de sincronização de borda, como parceira de sincronização de borda. O plug-in Ditter ATAK conecta dispositivos ATAK a uma rede peer-to-peer que prioriza o local. O ATAK constitui o aplicação de campo para compartilhamento de dados de localização, mapa, bate-papo e tarefa. O Dito sincroniza os dados da tarefa em dispositivos próximos quando o acesso à rede muda ou falha.

Em seguida, conecte o Dito ao MongoDB com o Conector Dito MongoDB. O conector sincroniza documentos entre Dito e MongoDB e resolve alterações simultâneas entre os dois sistemas.

Execute o Enterprise Advanced localmente no centro de comando. Use a camada de dados do MongoDB para criar o dashboard do centro de comando e outros aplicativos de tarefa. Com as camadas de dados e de acesso em vigor, concentre-se nos recursos do aplicação em vez de criar serviços separados de armazenamento e sincronização.

Use este padrão para:

  • Armazene dados diversos de tarefas como documentos.

  • Conecte aplicativos ao MongoDB com drivers e APIs padrão.

  • Integre com o Dito para sincronização desconectada.

  • Exponha uma camada de dados compartilhada a aplicativos de centro de comando.

  • Amplie o aplicação à medida que novos fluxos de trabalho de tarefa surgem.

A arquitetura usa o Enterprise Advanced como camada de dados do aplicação para o centro de comando. O MongoDB armazena documentos de tarefa e atende ao dashboard, APIs e fluxos de trabalho operacionais. O MongoDB Ops Manager gerencia a implantação local do MongoDB .

O Conector Dito MongoDB vincula o MongoDB ao Servidor Dito. O servidor Dito conecta a camada de dados do MongoDB à malha ponto a ponto na borda tática do ATAK por meio do plug-in Dito ATAK. Em seguida, as alterações são sincronizadas entre MongoDB e Dito sem conflitos entre os dois sistemas.

Camada de dados do centro de comando Enterprise Advanced conectada via Conector MongoDB a uma Mesh peer-to-peer para dispositivos ATAK.

Gráfico 1. Arquitetura mostrando o Enterprise Advanced como a camada de dados do centro de comando, conectada por meio do conector Ditho MongoDB a uma malha ponto a ponto Ditho que atende a dispositivos de campo ATAK

A borda tática, a camada em que os dispositivos de campo criam e trocam dados de tarefa perto do ponto de ação, inclui usuários e dispositivos que operam onde a conectividade pode mudar ou falhar.

O ATAK fornece o aplicação de campo para compartilhamento de dados de localização, mapa, bate-papo e tarefa. O plug-in Dito ATAK captura esses dados e os sincroniza em dispositivos próximos por meio da malha ponto a ponto. O Dito usa transportes disponíveis, como caminhos compatíveis com , Wi-Fi, Wi-Fi ponto a ponto e compatíveis com MANET. O Dito também pode retransmitir dados entre vários dispositivos na malha.

A borda atua como outra fonte de dados do aplicação . Dito mantém esses dados disponíveis e os move entre dispositivos. O MongoDB armazena os documentos sincronizados e os disponibiliza para aplicativos do centro de comando.

O Enterprise Advanced fornece a camada de dados do aplicação central. O dashboard lê dados de tarefa do MongoDB e os apresenta por meio de mapas, visualizações de status de nó e feeds de comunicações.

O conector Ditho MongoDB escuta alterações em Ditho e MongoDB. Ele aplica essas alterações no outro sistema e mantém os dois armazenamentos de dados alinhados.

Os aplicativos criados na MongoDB consultam e atualizam documentos de operações sem se conectarem diretamente aos dispositivos ATAK. A Dito lida com a entrega de e para dispositivos de borda desconectados. Essa integração permite que você crie o aplicação de centro de comando no MongoDB em vez de diretamente nos dispositivos ATAK.

O MongoDB armazena os dados da tarefa. Dito mantém os dispositivos de campo sincronizados. O ATAK fornece o aplicação de campo . O conector vincula ambos os ambientes e resolve alterações simultâneas.

Essa separação permite que cada tecnologia se concentre em uma responsabilidade. O MongoDB fornece a camada de dados do aplicação , Dito sincroniza dados em toda a borda tática e ATAK fornece a experiência de campo .

Esse design permite que você crie recursos de aplicação em relação ao modelo de documento do MongoDB sem implementar um modelo de armazenamento separado para cada dispositivo ou condição de rede.

Armazene cada entidade de mensagem em um documento que corresponda a como o aplicação a utiliza.

Atualizações de posição, objetos de mapa e mensagens de chat têm campos e padrões de atualização diferentes. Armazene-os em coleções separadas em vez de forçar cada entidade em um esquema rígido. Essa abordagem mantém o modelo de dados próximo aos dados gerados pela borda e reduz o código de transformação entre o Dito e o MongoDB. Esses documentos podem ser usados para análises em tempo real e queries de IA na borda desconectada.

O plug-in Dito ATAK grava o esquema Dito ATAK v2. O esquema usa nomes de campo compactos para dados baseados em CoT. Os exemplos a seguir mostram os campos mais relevantes para o desenvolvimento do aplicação .

Utilize a collection track para dados de posição e status dos atores de campo . Consulte esses documentos para exibir os dispositivos atuais e obsoletos no mapa do centro de comando.

{
"_id": "ANDROID-4486046569cda611", // document identifier
"_r": false, // soft-delete flag
"c": "MDB Actor 2", // display name
"d": "ANDROID-4486046569cda611", // source device
"e": "MDB Actor 2", // actor callsign
"j": 19.451227, // latitude
"l": -99.139832, // longitude
"o": 1776886448640, // stale time
"w": "a-f-G-U-C" // CoT type
}

O esquema compacto mantém o documento sincronizado próximo aos dados produzidos pelo ATAK. O MongoDB armazena o documento sem exigir uma camada de mapeamento relacional separada.

Use a coleção chat para mensagens trocadas entre usuários de campo e fluxos de trabalho de comando. A coleção usa uma forma diferente da faixa, com campos para texto de mensagem, remetente, quarto e carimbo de data/hora.

{
"_id": "b547f0b4-c371-4aff-ac1d-3bafe110a9e1", // message identifier
"_r": false, // soft-delete flag
"authorType": "a-f-G-U-C", // sender CoT type
"b": 1776735193948, // message timestamp
"d": "COMMAND-VEHICLE", // source device
"e": "COMMAND", // sender callsign
"msg": "Command", // message text
"room": "Ditto", // room name
"roomId": "ChatContact-Ditto" // room identifier
}

O MongoDB permite que o aplicação armazene documentos de mensagens, juntamente com documentos track, sem adicionar campos de localização vazios ou forçar ambas as entidades na mesma estrutura.

Use a coleção mapitem para gráficos de mapa persistentes e objetos de tarefa compartilhados.

Use o modelo de documento do MongoDB para armazenar cada entidade de tarefa na forma que seu aplicação precisa. Mantenha track, mapitem e chat em collections separadas porque representam dados e padrões de acesso diferentes. Essa abordagem permite criar recursos de mapa, status e comunicação sem forçar todos os dados da tarefa em um esquema rígido.

collection
Propósito
Exemplo de uso do aplicação

track

Dados de posição e status

Renderize atores do campo e nós obsoletos.

mapitem

Objetos de mapa persistentes

Exiba marcadores compartilhados e gráficos de mapa.

chat

Metadados de mensagens e conversas

Mostrar comunicações no dashboard do centro de comando.

Use cada coleção para uma função de tarefa e mantenha todas as coleções em uma camada de dados MongoDB . Adicione campos ou novas entidades de tarefa sem redesenhar as coleções existentes.

Crie dashboards, APIs e fluxos de trabalho de centro de comando no MongoDB. Consulte cada coleção de acordo com sua finalidade e preserve a estrutura do documento que chega da borda.

Use esta abordagem para:

  • Reduza a transformação de dados entre Ditho e MongoDB.

  • Mantenha cada entidade de tarefa fácil de consultar.

  • Adicione novos campos sem redesenhar documentos não relacionados.

  • Amplie o aplicação sem criar um modelo de armazenamento separado para cada dispositivo ou fluxo de trabalho.

Use o repositório tak-stuational-demo do GitHub para implementar e explorar a solução.

1

Certifique-se de atender aos seguintes requisitos antes de prosseguir:

  • Configure dois ou mais dispositivos Android.

  • Certifique-se de que cada dispositivo execute o Android 13 ou superior com um mínimo de 4 GB de RAM.

  • Instale o ATAK CIV em cada unidade e aprove todas as permissões de dispositivo necessárias, incluindo acesso ao DNS.

  • Obtenha o plug-in Dito ATAK e carregue o aplicação em cada telefone.

  • Una cada dispositivo ao ambiente Wi-Fi local hospedando a estação de comando.

2

Certifique-se de atender aos seguintes requisitos antes de prosseguir:

  • Instale Docker, kind, kubectl e Helm. Os scripts de automação incorporados criam o sistema Kubernetes automaticamente.

  • Aloque 32 GB de memória do sistema. Os sistemas exigem 24 GB no mínimo, pois o Ops Manager, os registros do Ditter Server e o Enterprise Advanced combinados ultrapassam os limites de 16 GB.

  • Reserve 30 GB de capacidade de armazenamento local para imagens de container e volumes de dados persistentes.

  • Limpe as portas 80 e 443 para rotear o tráfego para a exibição operacional da web e os componentes do servidor Ditter.

3

Execute make setup a partir da pasta raiz. Você pode executar novamente esse script com segurança após qualquer erro, pois ele continua de onde parou. Inicializa componentes sequencialmente:

  • O operador Kubernetes por meio de Controladores MongoDB para Kubernetes.

  • MongoDB Ops Manager operando em cluster para gerenciar o Enterprise Advanced.

  • Um conjunto de réplicas Enterprise Advanced , provisionado por meio do Ops Manager.

  • O operador Dito ao lado de uma instância auto-hospedada do servidor Dito.

  • O conector Ditho MongoDB , provisionado como um objeto nativo do Kubernetes.

  • O aplicação de dashboard do centro de comando.

Este script cria o banco de dados, os usuários e as coleções para esta solução. Aguarde 25 a 35 minutos na configuração inicial.

Após a conclusão, o resultado exibe o URL do painel, uma string de conexão do Compass , as credenciais do Ops Manager e os valores de emparelhamento necessários para dispositivos de borda.

Execute make verify para validar seu ambiente. Esta etapa insere um documento no MongoDB e o recupera por meio do Dito Server, verificando a sincronização bidirecional.

Para obter comandos completos, detalhes de configuração e manifestos de implantação, revise docs/RUN_LOCAL.md no repositório de demonstração da situação do TAK.

4

Automatize a configuração usando o conector Dito MongoDB . Declare o conector como um recurso BigPeerDataBridge do Kubernetes para sincronizar as collections track, mapitem, chat, file e alert bidirecionalmente entre unidades táticas e aplicativos de centro de comando.

Host Dito Server no mesmo cluster Kubernetes que MongoDB para rotear o tráfego internamente. Conecte-se por meio de connection strings padrão do MongoDB sem expor endpoints públicos ou gerenciar listas de permissões de IP.

Verifique estas condições de pré-requisito antes de inicializar o conector:

  • Confirme se existem bancos de dados e collections de destino.

  • Conceda permissões readWrite ao usuário do conector.

  • Habilite o changeStreamPreAndPostImages em todas as collections sincronizadas para manter a consistência causal entre plataformas.

Aplique sinalizadores de exclusão reversível (_r: true) para marcar documentos obsoletos. Remoções rígidas no MongoDB acionam operações de limpeza permanentes no Dito. Consultar dados operacionais usando filtros _r: false.

Revise a documentação do Conector MongoDB do Ditter Operator para obter opções adicionais.

5

Inicie a interface do usuário operacional e clique em Adicionar dispositivo. A sobreposição exibe um código QR junto com estes parâmetros de texto: ID do aplicativo, endpoint de autenticação, endpoint WebSocket e token de playground. Execute o make pair para exibir estas credenciais no terminal.

Inicie o ATAK e o plug-in Dito ATAK em cada unidade de hardware de destino. Digitalize o código QR gerado ou insira as variáveis de conexão nas preferências do plugin-in . Desative a sincronização do Dito Cloud para direcionar o tráfego de rede para seu sistema local do Dito Server.

Ative os serviços de localização para que o ATAK produza telemetria de posição. Repita estas etapas de configuração para cada unidade que se junta à rede de mesclagem local. As atualizações de telemetria são renderizadas no mapa do painel central rapidamente.

Revise o docs/RUN_LOCAL.md no repositório da demonstração da situação do TAK para obter instruções de integração do dispositivo passo a passo.

6

Acesse o dashboard operacional em http://localhost. A interface de mapeamento exibe atores de campo e reduz nós inativos. O painel de telemetria fornece indicativos ativos, enquanto a janela de bate-papo transmite transmissão de campo .

Despache mensagens ou solte marcadores de mapa diretamente da interface central. O dashboard grava novos documentos no MongoDB e o conector transmite atualizações por meio do Servidor Dito para cada unidade manual emparelhada na camada de dados compartilhados.

Conecte o MongoDB Compass ao localhost:27017 para inspecionar os documentos brutos do aplicação e abra o Ops Manager para monitorar o cluster como um administrador de produção.

  • Construa primeiro a camada de dados do aplicação : Use o Enterprise Advanced para armazenar e servir dados de tarefa para painéis, APIs e fluxos de trabalho do centro de comando.

  • Entidades de tarefa de modelo como documentos: use coleções do MongoDB para armazenar dados de posição, objetos de mapa, mensagens de bate-papo, arquivos e alertas sem forçar um esquema rígido.

  • Conecte o MongoDB à borda: Use o conector Ditho MongoDB para estender os aplicativos apoiados MongoDB para dispositivos ATAK desconectados.

  • Simplifique o desenvolvimento de aplicação : crie recursos de aplicação em uma camada de dados do MongoDB , em vez de criar modelos de armazenamento separados para cada dispositivo ou condição de rede.

  • Design para operações desconectadas: combine o armazenamento durável de documento do MongoDB com a sincronização local e o gerenciamento de conflitos da Dito.

  • Timóteo Marques, MongoDB

  • Alberto Camarena Rodriguez, MongoDB