Visión general de la investigación aplicada
Procedencia y custodia
AnyTrace
Un registro de por dónde ha pasado una cosa vale lo que valga su capacidad de absorber un informe que llega tarde, sin reescribir lo que ya estaba registrado.
Estado: Concepto de investigación · prototipo no publicado
La pregunta de investigación
¿Cómo pueden la procedencia y la custodia de una cosa y de su evidencia seguir siendo reconstruibles a medida que llegan eventos, tarde y desordenados, desde distintos sistemas y organizaciones?
- ¿De dónde vino?
- ¿Qué le pasó?
- ¿Quién lo tuvo, y desde cuándo?
- ¿Qué evidencia entró en la traza, y cuándo?
El modelo, de forma interactiva
Un lote de café verde pasa de una cooperativa a un almacén de exportación y de ahí a un barco. El almacén comunica su recepción con seis horas de retraso, cuando el barco ya ha registrado la carga. Elija una ordenación y después seleccione un evento.
Seleccione un evento para ver quién tenía el lote antes y después, y qué evidencia llegó con él.
Almacén de exportación
- Ocurrió
- 10:00
- Registrado
- 16:00
- Poseedor anterior
- Cooperativa
- Poseedor siguiente
- Naviera
- Evidencia adjunta
- Recibo de almacén
- Comunicado por
- Informe del almacén, enviado tarde
Añadido a la cadena a las 16:00 con su hora real, las 10:00. Entra en la reconstrucción en su lugar, y la cadena sigue mostrando cuándo llegó. El poseedor actual no retrocede: un informe tardío de un movimiento anterior no significa que el lote volviera atrás.
Un escenario, paso a paso
Lo que registra el sistema cuando los informes de custodia llegan desordenados.
Paso 1 de 5: Registrar el lote
El lote se convierte en un caso de traza con sus identificadores. Todavía no se sabe nada de su custodia, y la proyección lo dice.
Un evento de custodia a las 09:00. La cadena gana una entrada; el poseedor actual pasa a ser la cooperativa.
Un evento de custodia a las 14:00 del transportista. El poseedor actual pasa a ser la naviera.
A las 16:00 el almacén comunica una recepción a las 10:00. Se añade al final de la cadena con su hora real e is_current = false, porque es anterior al poseedor ya registrado.
Leída por tiempo, la custodia va de la cooperativa al almacén y al barco. Leída por cadena, el informe tardío se ve tardío. Ambas lecturas salen de los mismos registros, y ninguno se editó.
Primitivas centrales
Entidad rastreable
AnyTraceEntity + kernel caseLa cosa a la que se sigue, con sus identificadores y una proyección de quién la tiene ahora. La verdad es la cadena de eventos; la proyección es una comodidad.
Evento de custodia
custody.recordedUna transferencia con su hora real, el poseedor anterior y el siguiente, y una marca explícita de si cambió el poseedor actual.
Fuente de evidencia
attach_sourceLo que una fuente dijo sobre la cosa, adjuntado con su propia custodia y vigencia, nunca sobrescrito.
Enlace de linaje
derived_fromUna cosa rastreada hecha a partir de otra. Los enlaces son tipados, así que un recorrido del grafo puede decir cómo se relacionan las cosas, no solo que se relacionan.
Línea temporal encadenada por hashes
kernel_eventsCada evento se añade con el hash del anterior, por orden de llegada. La reconstrucción lee el tiempo; la cadena conserva el orden.
Recorrido acotado del grafo
graph, lineageEl vecindario de un caso hasta una profundidad declarada, sin contenidos, e indicando cuándo se detuvo antes de tiempo.
Qué lo distingue
- AnyVerify
Su pregunta
¿Sostiene la evidencia una afirmación concreta?
Por qué esto no es aquello
AnyTrace registra por dónde ha pasado una cosa y qué se dijo sobre ella. No decide si algo de eso es cierto.
- AnyValid
Su pregunta
¿Qué dijo una fuente autorizada, y sigue vigente?
Por qué esto no es aquello
AnyTrace no pregunta nada a ninguna autoridad. Sus fuentes son las partes de la cadena.
- AnyDPP
Su pregunta
¿Cómo se convierte la evidencia en un pasaporte publicado?
Por qué esto no es aquello
Un pasaporte es un resultado posible de una traza. AnyTrace termina en un registro reconstruible.
Qué existe y qué no
En el repositorio
- app/products/anytrace/service.py: registrar, adjuntar fuente, registrar custodia, enlazar, grafo, linaje, cerrar
- Tabla anytrace_entities, sobre los casos, eventos y evidencia del núcleo
- 9 rutas autenticadas, 404 mientras el módulo está desactivado
- tests/any_family/test_anytrace.py: identidad, custodia tardía, linaje sin contenidos (20 pruebas)
- tests/any_family/test_cross_module_reuse.py: una historia a través de cinco módulos a partir de un recorrido del grafo
Agenda de investigación, no construido
- Conectores que reciban eventos de custodia de sistemas de socios
- Cualquier evidencia de comportamiento en un grafo grande
- Detección de custodias contradictorias, dos poseedores a la vez
Dónde se sitúa en AnyLAI
AnyTrace
- Application kernelAñade un vocabulario a los casos, la cadena, la evidencia y los enlaces del núcleo; nada propio por debajo de eso.
- AnyVerifyUn caso de verificación enlaza con el caso de traza que verifica.
- AnyUSMCACada línea de la lista de materiales apunta al caso de traza de ese insumo.
- Any2DPPUna ejecución de correspondencia enlaza con el caso de traza cuyos datos mapea.
- COADFLa cadena lleva la forma de registro de auditoría que nombra la regla 6 de COADF; es una influencia, no una declaración de conformidad.
- enlace entre casos a través del núcleo
- uso directo de otro módulo o sistema
- llamada en modo sombra: registrada, nunca ejecutada
Límites y objetivos excluidos
- Registra lo que comunicaron las partes. No establece que ningún informe sea cierto.
- Nunca reordena ni edita la cadena. Una corrección es un evento nuevo, no un cambio en uno antiguo.
- El recorrido del grafo está acotado y no se ha ejecutado sobre un grafo grande.
- Hoy ningún sistema de socios le envía eventos.
Estado actual
Estado de la investigación
- Concepto de investigación · prototipo no publicado
- No publicado: rutas desactivadas
- Sin uso en producción, sin datos reales
- 20 pruebas en el repositorio
Un módulo prototipo sobre el núcleo compartido: el servicio, la tabla, las rutas y las pruebas existen en el repositorio. Está desactivado, no tiene ruta pública y no se ha usado con datos reales.
Batería de pruebas: python-backend/tests/any_family/test_anytrace.py
Proyecto de investigación · I+D independiente · No es una oferta comercial
