Ir para o conteúdo

Projeto independente de P&D · Colônia

Visão geral da pesquisa aplicada

Procedência e custódia

AnyTrace

Um registro de por onde uma coisa passou só vale o quanto consegue absorver um informe que chega atrasado, sem reescrever o que já estava registrado.

Estado: Conceito de pesquisa · protótipo não publicado

A pergunta de pesquisa

Como a procedência e a custódia de uma coisa e das suas evidências podem continuar reconstituíveis à medida que os eventos chegam, atrasados e fora de ordem, de sistemas e organizações diferentes?

  • De onde veio?
  • O que aconteceu com ela?
  • Quem a teve em mãos, e desde quando?
  • Que evidência entrou no rastro, e quando?

O modelo, de forma interativa

Um lote de café verde vai de uma cooperativa para um armazém de exportação e dali para um navio. O armazém informa o recebimento com seis horas de atraso, depois de o navio já ter registrado o embarque. Escolha uma ordenação e selecione um evento.

Ordenar eventos por

Selecione um evento para ver quem tinha o lote antes e depois dele, e que evidência veio junto.

Armazém de exportação

Aconteceu
10:00
Registrado
16:00
Detentor anterior
Cooperativa
Detentor seguinte
Companhia de navegação
Evidência anexada
Recibo de armazém
Informado por
Informe do armazém, enviado com atraso

Acrescentado à cadeia às 16:00 com o seu horário real, 10:00. Ele entra na reconstrução no seu lugar, e a cadeia continua mostrando quando ele chegou. O detentor atual não volta atrás: um informe atrasado de uma movimentação anterior não significa que o lote voltou.

Um cenário, passo a passo

O que o sistema registra quando os informes de custódia chegam fora de ordem.

Passo 1 de 5: Registrar o lote

  1. O lote se torna um caso de rastreio com os seus identificadores. Ainda não se sabe nada sobre a custódia, e a projeção diz isso.

  2. Um evento de custódia às 09:00. A cadeia ganha uma entrada; o detentor atual passa a ser a cooperativa.

  3. Um evento de custódia às 14:00, vindo do transportador. O detentor atual passa a ser a companhia de navegação.

  4. Às 16:00 o armazém informa um recebimento às 10:00. Ele é acrescentado ao fim da cadeia com o seu horário real e is_current = false, porque é mais antigo do que o detentor já registrado.

  5. Lida pelo tempo, a custódia vai de cooperativa a armazém e a navio. Lida pela cadeia, o informe atrasado aparece visivelmente atrasado. As duas leituras vêm dos mesmos registros, e nenhum deles foi editado.

Primitivas centrais

  • Entidade rastreável

    AnyTraceEntity + kernel case

    A coisa acompanhada, com os seus identificadores e uma projeção de quem a tem agora. A verdade é a cadeia de eventos; a projeção é uma conveniência.

  • Evento de custódia

    custody.recorded

    Uma transferência com o seu horário real, o detentor anterior e o seguinte, e uma marcação explícita de se ela mudou o detentor atual.

  • Fonte de evidência

    attach_source

    O que uma fonte disse sobre a coisa, anexado com a sua própria custódia e atualidade, nunca sobrescrito.

  • Ligação de linhagem

    derived_from

    Uma coisa rastreada feita a partir de outra. As ligações são tipadas, de modo que um percurso no grafo pode dizer como as coisas se relacionam, e não apenas que se relacionam.

  • Linha do tempo encadeada por hashes

    kernel_events

    Cada evento é acrescentado com o hash do anterior, na ordem de chegada. A reconstrução lê o tempo; a cadeia guarda a ordem.

  • Percurso limitado no grafo

    graph, lineage

    A vizinhança de um caso até uma profundidade declarada, sem conteúdos, e dizendo quando parou antes do fim.

O que o diferencia

AnyVerify

A pergunta dele

A evidência sustenta uma afirmação específica?

Por que isto não é aquilo

O AnyTrace registra por onde uma coisa passou e o que foi dito sobre ela. Ele não decide se algo disso é verdade.

AnyValid

A pergunta dele

O que uma fonte com autoridade disse, e isso ainda está vigente?

Por que isto não é aquilo

O AnyTrace não pergunta nada a nenhuma autoridade. As suas fontes são as partes da cadeia.

AnyDPP

A pergunta dele

Como a evidência se torna um passaporte publicado?

Por que isto não é aquilo

Um passaporte é um resultado possível de um rastro. O AnyTrace termina em um registro reconstituível.

O que existe, e o que não existe

No repositório

  • app/products/anytrace/service.py: registrar, anexar fonte, registrar custódia, ligar, grafo, linhagem, encerrar
  • tabela anytrace_entities, sobre os casos, eventos e evidências do núcleo
  • 9 rotas autenticadas, 404 enquanto o módulo está desligado
  • tests/any_family/test_anytrace.py: identidade, custódia atrasada, linhagem sem conteúdos (20 testes)
  • tests/any_family/test_cross_module_reuse.py: uma história em cinco módulos a partir de um único percurso no grafo

Agenda de pesquisa, não construída

  • Conectores que recebam eventos de custódia de sistemas de parceiros
  • Qualquer evidência de comportamento em um grafo grande
  • Detecção de custódia contraditória, dois detentores ao mesmo tempo

Onde fica na AnyLAI

AnyTrace

  • Application kernelAcrescenta um vocabulário aos casos, à cadeia, às evidências e às ligações do núcleo; nada próprio abaixo disso.
  • AnyVerifyUm caso de verificação se liga ao caso de rastreio que ele verifica.
  • AnyUSMCACada linha da lista de materiais aponta para o caso de rastreio daquele insumo.
  • Any2DPPUma execução de mapeamento se liga ao caso de rastreio cujos dados ela mapeia.
  • COADFA cadeia carrega o formato de registro de auditoria que a regra 6 do COADF nomeia; isso é influência, não uma alegação de conformidade.
  • ligação entre casos pelo núcleo
  • uso direto de outro módulo ou sistema
  • chamada em modo sombra: registrada, nunca executada

Limites e não objetivos

  • Ele registra o que as partes informaram. Não estabelece que algum informe seja verdadeiro.
  • Ele nunca reordena nem edita a cadeia. Uma correção é um novo evento, não uma alteração de um antigo.
  • O percurso no grafo é limitado e não foi executado em um grafo grande.
  • Nenhum sistema de parceiro lhe envia eventos hoje.

Estado atual

Estado da pesquisa

  • Conceito de pesquisa · protótipo não publicado
  • Não publicado: rotas desligadas
  • Sem uso em produção, sem dados reais
  • 20 testes no repositório

Um módulo protótipo sobre o núcleo compartilhado: serviço, tabela, rotas e testes existem no repositório. Está desligado, não tem rota pública e não foi usado com dados reais.

Suíte de testes: python-backend/tests/any_family/test_anytrace.py

Projeto de pesquisa · P&D independente · Não é uma oferta comercial