Use case

Multi File Transfer en BPMN: lógica de sincronización propia entre nubes y almacenamientos, con verificación de contenido

Lógica de sincronización propia entre nubes y almacenamientos como proceso BPMN: rutas y reglas a medida, opciones para revisar archivos en busca de virus y fugas de datos personales.

Edición ejecutiva

El problema

Los empleados de la empresa y los socios externos necesitan intercambiar archivos de forma segura. Cada uno puede utilizar una nube y una tecnología de almacenamiento distintas: compatible con S3, FTP, HTTP, etc. Por ello, los archivos deben sincronizarse entre distintos almacenamientos, de acuerdo con los requisitos de seguridad de la empresa.

Qué cambia

Con el ejemplo de SharePoint y SFTPGo:

  1. Un administrador de SharePoint mantiene las rutas en una sola lista — qué biblioteca va a qué carpeta de SFTPGo y viceversa — y puede pausar y reanudar una ruta, sin cambios de código.
  2. Un cambio en un archivo o un ciclo programado inicia el proceso; este lee los cambios página por página y planifica una transferencia por archivo y ruta.
  3. Cada transferencia resuelve el destino, lee el origen, carga en una ubicación temporal y solo entonces finaliza con el nombre definitivo: no queda ningún archivo a medio escribir en el destino.
  4. La posición de lectura solo avanza cuando todas las transferencias se han completado, de modo que no se omite nada.
  5. Tras un reinicio, los archivos completados no se transfieren de nuevo, y un segundo host asume el trabajo.
  6. El proceso reintenta automáticamente las transferencias fallidas. Un archivo cuya etiqueta de confidencialidad prohíbe la transferencia pasa a cuarentena, controlada por un servicio externo mediante ICAP (Internet Content Adaptation Protocol), y nunca llega a la zona del socio; el administrador de SFTPGo define la verificación ICAP como condición de publicación.

Qué valor aporta

  • Lógica de sincronización propia: distintas nubes y almacenamientos, rutas y reglas a medida, en un proceso BPMN y no en scripts para cada portal.
  • Opciones de control de contenido: un archivo se revisa en busca de virus y fugas de datos personales antes de llegar a su destino.
  • Un registro de transferencia por cada archivo, sin archivos a medio escribir; los archivos completados no se transfieren de nuevo tras un reinicio.

Qué aporta MEF.DEV

MEF.DEV BPMN Low-code sobre Enablement & Monetization Platform: procesos versionados con reintentos y recuperación, conectados a Microsoft Graph y SFTPGo.

Edición para arquitectos — Multi File Transfer en BPMN

Lugar en la arquitectura

La transferencia se ejecuta como procesos BPMN versionados en MEF.DEV BPMN Low-code sobre Enablement & Monetization Platform, no como una aplicación independiente. Los procesos heredan la alineación de la plataforma con ODA: las funciones de API corresponden al rol de los componentes ODA, y Kubernetes con entrega GitOps es el entorno de operación. El contrato de cada proceso es su frontera tipada.

Componentes

  • Lista de rutas Una lista de SharePoint con la ruta de origen, la ruta de destino, el modo de carga inicial y un indicador de actividad. La edita un administrador de SharePoint; la plataforma la lee al inicio de cada ciclo, la compara con la instantánea almacenada y escribe el estado.
  • Proceso de ciclo transfer_files atiende un drive durante un ciclo.
  • Proceso de archivo transfer_file mueve un archivo en cuatro operaciones tipadas.
  • Plugin de backend Ejecuta las operaciones contra Microsoft Graph y SFTPGo.
  • Worker de tareas Retoma el trabajo inconcluso tras un fallo.

Contratos

  • DriveWorkModel Entrada de un ciclo: clave del drive, posición almacenada (DeltaLink), rutas que atender y memoria de rutas.
  • FileTransferModel Entrada de una transferencia: operationId, transporte y ruta de origen, transporte y ruta de destino, nombre final.
  • OperationResult Estado con código de error, identificador de correlación y retryAfterSeconds. Un rechazo como FinalNameConflict se devuelve como resultado, y quien invoca decide según el estado.
  • Resultados del ciclo COMMITTED, NOT_COMMITTED, NO_DELTA_LINK y, en modo de depuración, PLANNED_ONLY.
  • Credenciales El valor de un access token no cruza la frontera BPMN: la credencial se aplica al contexto de la conexión. La aplicación utiliza Sites.Selected con consentimiento de administrador.

Flujo de un ciclo

  1. Una notificación solo señala un cambio. El ciclo lee los cambios mediante Microsoft Graph página por página desde la posición almacenada.
  2. Un cambio posterior de un archivo reemplaza al anterior, de modo que un archivo se transfiere como máximo una vez por ruta en cada ciclo.
  3. El ciclo planifica una transferencia por archivo y ruta y llama a transfer_file para cada una, una tras otra.
  4. Cada transferencia resuelve el destino, lee el origen, carga en una ubicación temporal y finaliza con el nombre definitivo. El archivo solo se vuelve visible en el destino en ese último paso.
  5. La nueva posición, junto con la memoria de rutas, se confirma solo cuando todas las transferencias se han completado; de lo contrario, el ciclo siguiente vuelve a empezar desde la posición anterior.

Recuperación

  • El estado de cada llamada se guarda: tras un reinicio, los archivos completados no se transfieren de nuevo y el paso interrumpido se ejecuta otra vez desde el principio.
  • Un worker retoma la tarea inconclusa y continúa la misma instancia principal; un segundo host asume el trabajo cuando el primero se detiene.
  • Un reinicio no reanuda los bytes desde un desplazamiento, y una operación posterior al último estado guardado puede repetirse.

Puntos de integración

  • Microsoft 365 HTTPS saliente hacia Microsoft Graph a través de un forward proxy con allowlist; un endpoint HTTPS entrante en el reverse proxy de la DMZ (Demilitarized Zone) para las notificaciones.
  • SFTPGo Para cada ruta, el administrador de SFTPGo define las zonas staging, published y quarantine, una cuenta técnica, una regla de evento de carga hacia el broker de mensajes y una verificación ICAP como condición de publicación. Los socios solo ven published.
  • Plataforma Un broker de mensajes, una base de datos para el registro de transferencias, los cursores y las suscripciones, y un planificador para la renovación de suscripciones y un ciclo de control diario.

Personas al mando

El administrador de SharePoint es responsable de las rutas y las pausa o reanuda. El proceso reintenta automáticamente las transferencias fallidas, y un servicio externo controla la cuarentena mediante ICAP.

Límites

  • Una ruta es unidireccional; el sentido opuesto es una ruta aparte con carpetas aparte.
  • Las eliminaciones no se propagan, y un archivo renombrado se considera nuevo.
  • Los permisos, el historial de versiones y los metadatos de SharePoint no se transfieren.
  • No se conserva el orden entre archivos; el modo de carga inicial se fija al crear la ruta.

Alcance de la solución

El alcance de la cuarentena y de los ciclos de control descritos arriba se acuerda en el proyecto.

Detalle técnico en platform.mef.dev →

Lo mismo para cada lector

TM Forum ODA · Open API

TM Forum ODA y Open APIs

MEF.DEV expone TM Forum Open APIs, sigue los principios de ODA y figura en el TM Forum ODA Component Directory.

BSL 1.1

Licencia

Business Source License 1.1: gratuita para uso interno en producción; Enterprise Modules mediante clave de licencia; cada versión pasa a Apache 2.0 a los cuatro años.

UE · on-premises · nube

Seguridad, datos y jurisdicción

Empresa de la UE; despliegue en su infraestructura, acceso mediante SSO estándar; desarrollo, entrega y soporte bajo un sistema de calidad ISO 9001:2015.

ISO 9001:2015

Desarrollo y seguridad certificados

WideCoup Convergent BSS y MEF.DEV se desarrollan, entregan y soportan bajo un sistema de gestión de calidad ISO 9001:2015; MEF.DEV superó una auditoría de seguridad independiente y una prueba de penetración.

Certificados y auditoría →

Solicitud de documento

 

Los avisos acompañan al material: así sigue siendo gratuito. Cada aviso incluye un enlace para darse de baja.

Al enviar este formulario, acepta la Política de privacidad, Condiciones de uso y cookies funcionales y analíticas.