Sincronización bidireccional de archivos usando el mecanismo de pooling

Sincronización bidireccional de archivos usando el mecanismo de pooling

Georgii KapanadzeTechnical Leave a Comment

Introducción

¿Interesado en haber sincronizado varios sistemas de gestión de archivos como Dropbox, Microsoft OneDrive o Microsoft SharePoint? Permítanme presentarles algunos principios básicos, las mejores prácticas de la sincronización bidireccional de archivos y documentos, cómo reducir el tiempo de desarrollo y los costos financieros fuera de curso.

¿Qué es lo que necesitas?

Desde el principio debes encargarte de las interfaces de programa de aplicación (API) de cada sistema que quieras sincronizar. Para ocuparse de la autenticación, aprende la representación de esquemas y principios, la manipulación de datos y llévalos a un lenguaje común. Esto se puede lograr ya sea con el duro trabajo de un desarrollador aprendiendo cientos de páginas de documentación, o con una plataforma de integración.

Como sucede, ofrecemos una plataforma de integración con una tecnología única, por lo que podría considerar revisar más sobre nuestra Connect Bridge. Este software permite utilizar APIs de varios sistemas con el uso de un simple SQL (Standard Query Language). Y no importa si usted es un desarrollador de .NET o Java o cualquier otro lenguaje. El esquema se visualiza en la herramienta Query Analyzer de Connect Bridge y el desarrollador puede probar su consulta en esta herramienta y ver los resultados inmediatamente. Luego sólo tiene que controlar la base de datos para rastrear los cambios y ya está listo.

Mecanismo de agrupación

El principio del mecanismo de puesta en común es bastante sencillo: los datos de los sistemas de objetivos se recuperan y procesan una vez por período de tiempo especificado o por acción del usuario. Y eso es todo.

Ventajas

No todos los sistemas ofrecen la posibilidad de desencadenar acciones después de un cambio de archivo en tiempo real. Si uno de ellos no proporciona esta característica, puede causar serias complicaciones. Así que la principal ventaja es el control de los datos y el tiempo de sincronización de los archivos. Esto le da una visión más amplia de lo que está sucediendo y abre la posibilidad de evitar acciones innecesarias.

Desventajas

Cuanto más tiempo pase entre un grupo, más posibilidades hay de que haya conflictos entre los archivos.

Manejo de conflictos

En la sincronización bidireccional, cuando los sistemas se modifican entre sí, puede suceder que el mismo archivo se haya modificado al mismo tiempo en sistemas diferentes. ¿Pero qué sucede entonces? ¿Cuál es la versión correcta? En este caso es necesario especificar cuál es el sistema maestro y cuál el esclavo para decidir qué versión se anulará.

Principio del programa central

El reconocimiento de los cambios

Para rastrear los cambios es necesario tener una base de datos con los elementos mapeados de los sistemas objetivo que se han sincronizado. El reconocimiento de la actualización puede ser a través del tiempo o la versión de la modificación o lo que sea utilizable y proporcionado por los sistemas objetivo. Crear o eliminar es bastante sencillo: si el registro del elemento no existe en la base de datos, es nuevo y si el elemento no existe en el sistema de destino, pero tiene un registro en la base de datos, se ha eliminado en el sistema de destino. Y eso es todo. Algunos de los sistemas tienen la posibilidad de pedir cambios en un período de tiempo determinado, pero de todos modos habría que hacer un seguimiento de lo que se ha sincronizado debido a los fallos causados por los sistemas de destino o la conexión.

Motor de sincronización de archivos

Para que la lógica de sincronización principal funcione con los sistemas de destino es bueno crear una clase de proveedor para cada uno de ellos e implementar la interfaz común que especifica las operaciones básicas CRUD (Crear-Leer-Actualizar-Borrar). Entonces en el algoritmo principal no es necesario preocuparse de cuál es cuál. Puedes crear la lógica general de la sincronización bidireccional y las clases de proveedores se encargarán de la manipulación en sí. Si se implementa un buen algoritmo central, no importa cuántos sistemas estés sincronizando. Sólo puedes agregar la implementación de otros proveedores. Este algoritmo necesita seguir una jerarquía de maestros y esclavos para manejar los conflictos correctamente. Si se sincroniza por pares ordenados por superioridad debería estar bien.

Peformance

No se puede influir demasiado en las operaciones de creación y modificación, pero la parte más importante es la recuperación de datos. No hay necesidad de recuperar todos los datos. Puedes mantener la última hora de sincronización de los archivos y pedir al servidor sólo los elementos con una hora de creación y modificación más reciente. Las operaciones de eliminación dependen de la lógica del servidor. Algunas de ellas proporcionan operaciones de borrado en masa. Además, si se ha eliminado toda la carpeta y la lógica del servidor elimina todos los subelementos dentro del elemento eliminado, no tiene sentido eliminarlos uno por uno.

La seguridad de la consistencia de los datos

En primer lugar, no es una buena idea recuperar datos de diferentes lugares en lugares de código porque si se divide entre operaciones de larga duración como la carga de archivos, mientras tanto el usuario puede cambiar el contenido de los sistemas y estará trabajando con diferentes datos con el mismo contexto de programa lo que causará graves problemas y podría llevar a la pérdida de datos.

Durante el proceso, pueden ocurrir varias excepciones en las que no se puede influir, como un error del servidor interno de los sistemas de destino o la pérdida de conexión, etc. La mejor práctica es dividir la gestión de excepciones en unidades separadas que cubran el código que podría intentar ejecutarse hasta que todas las operaciones se hayan realizado, pero que no continúen en la siguiente unidad. Es una especie de árbol de niveles. Le daré un ejemplo: su sincronización descubre que había 10 archivos en 5 carpetas creadas en el primer sistema. Así que empezará a crear esas 5 carpetas en otros sistemas pero una de las operaciones de inserción lanza una excepción. Puede intentar crear esas otras 4 carpetas pero no debe empezar a insertar archivos porque las rutas de 2 archivos no existen. Puede ser manejado de manera diferente y más complicada pero confía en mí para mantenerlo lo más simple posible. El recuento de las variaciones de los posibles escenarios de error en la sincronización bidireccional de más sistemas es un número muy grande y además recursivo.


¿Le ha sido útil este artículo?

Únete a los más de 6000 suscriptores de nuestro boletín con noticias frescas del mundo de la integración de sistemas y software de negocios!

100% privacidad. No hacemos spam.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

For security, use of Google's reCAPTCHA service is required which is subject to the Google Privacy Policy and Terms of Use.

I agree to these terms.