Conceptos
Introducción
A alto nivel, el Debulker transformará un archivo entrante en elementos individuales en el almacén de componentes. Este proceso se inicia ya sea sondeando el archivo o recibiendo una notificación de que hay un archivo nuevo disponible para Debulking. Luego el archivo puede transmitirse (streamed) y pasarse por el splitter apropiado, el cual publicará un flujo de eventos que contienen partes más pequeñas (componentes) y se guardarán en almacenamiento a largo plazo (el Component Store).
Conceptos clave
Los siguientes son conceptos clave que se exploran con más detalle en las secciones de funcionalidades enlazadas. Aquí se explican para mostrar cómo estos conceptos y funcionalidades se relacionan entre sí.
Debulking Configuration
Cada tipo de archivo agrupado que se vaya a procesar requiere una configuration específica para indicar al Debulker qué formato de archivo esperar (por ejemplo, XML, Json) y, de forma crucial, una jerarquía de componentes que proporciona la estructura en árbol de ese tipo específico de archivo. Esto le indica al Debulker cómo descomponer el archivo, dividirlo, en sus partes componentes.
File Notification
Hay dos maneras de que el Debulker sepa que hay un archivo listo para procesar. La primera es mediante una notification, se proporciona una API que es esencialmente un conector receptor. El Debulker viene con una implementación en Kafka de este conector receptor, por lo que una implementación podría tener otro proceso o script que envíe un evento de Kafka a un tópico específico notificando que un archivo nuevo está listo para procesarse.
File Polling
La segunda forma de alimentar un archivo al procesamiento del Debulker es configurar un File Poller (proporcionado como funcionalidad central de IPF), que sondeará con una frecuencia definida en busca de nuevos archivos. El File Poller también puede utilizarse para recoger archivos que se pasaron por alto, pudiendo configurarse para buscar archivos aún no procesados (útil en el caso de que no se puedan enviar notificaciones de archivos de forma confiable).
Input Stream
El file manager proporciona un componente acoplable (pluggable) cuyo propósito es tomar un FileDefinition y devolver un InputStream. Esto desacopla el Debulker de los detalles subyacentes del almacenamiento del archivo y permite una variedad de opciones de almacenamiento (por ejemplo, sistema de archivos local o bucket S3).
File Processing Uniqueness
Normalmente queremos que los archivos se procesen una sola vez, por lo que el Debulker tiene la opción configurable de realizar un duplicate check. Esto se basa en el contenido completo del archivo y detendrá el procesamiento de un archivo que ya haya visto antes.
Component Store
El File Component Store es un componente "plugable" y representa el lugar donde se almacenan los componentes de pago. Normalmente será un almacén respaldado por Mongo, pero podría ser cualquier otra implementación.
Client Processing Notification
Esto se habilita usando un componente acoplable que envía notifications a un cliente indicando que los componentes generados por el Debulker están listos para procesarse.
Housekeeping
La funcionalidad de Housekeeping existe para eliminar componentes que hayan sido procesados por los flujos del cliente.
Debulking Orchestration
El proceso de debulking se gestiona mediante un MPS flow predefinido.