Skip to content

Patrones y codigos Open-source para sincrozicación de datos de aplicaciones - Usando Node.js

Notifications You must be signed in to change notification settings

damiancipolat/App-Sync-Patterns

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

60 Commits
 
 
 
 
 
 
 
 

Repository files navigation

App-Sync-Patterns

El contenido teorico de este sitio fue sacado de appsync.org, obtenido del sig. enlace, los códigos fuentes son desarrollados por mí, usando la tecnologia NODE.JS. (El sitio de appsync.org ya no esta line almaceno el pdf en mi repositorio)

N|Solid

Casi todas las aplicaciones móviles necesitan sincronizar datos con un servidor o back-end (por ejemplo, "la nube" para hacerlo más elegante), sin embargo es difícil para encontrar patrones, algoritmos, estrategias o código de ejemplo para ayudar a los desarrolladores a implementar una estrategia óptima de sincronización de datos para aplicaciones que desarrollan.

Tipos de sincronizaciones:

N|Solid

Los datos solo se sincronizan desde el servidor a las aplicaciones (por ejemplo, la aplicación de noticias donde el contenido se sincroniza desde el servidor CMS a las aplicaciones) o los datos se sincronizan desde las aplicaciones a un servidor (por ejemplo, registro / análisis).

Los datos se sincronizan en dos direcciones, desde una aplicación hasta un backend y viceversa. P.ej. un usuario está conectado y puede administrar sus propios datos en un sitio web y en una aplicación (suponiendo que el usuario no pueda iniciar sesión en 2 dispositivos al mismo tiempo).

  • Sincronización multidireccional:

Los datos se sincronizan desde múltiples dispositivos a un servidor / backend y viceversa. Esto también significa que los datos de un dispositivo se sincronizan con el servidor y desde el servidor a otros dispositivos (por ejemplo, aplicaciones de colaboración ...).

Definiciones generales:

Lista de terminos relacionados a sincronización.

Definición Detalle
Dispositivo o cliente Dispositivo móvil (teléfono inteligente o tableta) que ejecuta una aplicación que sincronizará los datos con un servidor / backend / cloud.
Servidor (o backend, nube) Infraestructura centralizada que sincronizará datos con múltiples dispositivos.
Sincronización Envío de datos desde dispositivos a un servidor y viceversa, sin perder datos y sin transferencia de datos innecesarios. La sincronización es especialmente necesaria en aplicaciones móviles que tienen una base de datos local y que sincronizarán datos con un servidor cuando no estén desconectado.
Sincronización completa Sincronización de todos los datos (o todos los objetos del mismo tipo).
Sincronización incremental Sincronización de solo los datos que han cambiado desde la última sincronización.
Objeto Un único elemento de datos que se sincroniza entre dispositivos y un servidor, p. un registro de base de datos, un elemento de agenda o un objeto complejo incluyendo un cliente y todos sus pedidos y facturas (por ejemplo, en una aplicación ERP).
Filtrado Fuera del alcance de este proyecto Manejo de conflictos: hacer una elección entre dos versiones de un objeto, cuando el objeto cambiado en el servidor y en el cliente desde la última sincronización.
Clave principal (PK) Una propiedad del objeto que es única en todos los objetos del mismo tipo, p. Ej. la propiedad booking.data puede ser un PK cuando solo se puede hacer una reserva por día.
Conflicto PK Un conflicto de clave principal se produce cuando se crea un objeto con la misma PK en el servidor y en un dispositivo o en 2 diferentes dispositivos (por ejemplo, una reserva se crea en 2 dispositivos diferentes para la misma fecha, mientras que solo se permite una reserva por día).
GUID Una identificación única, que se genera automáticamente (usando dígitos aleatorios) para cada nuevo objeto. Los Guid están garantizados para ser únicos, incluso a través de dispositivos y servidores.
Contador Un concepto introducido en appSync, para realizar un seguimiento de los cambios de datos en el servidor y en cada dispositivo. El contador se incrementa en cada cambio de objeto (nuevo objeto, objeto de actualización, eliminar objeto).
Eliminación suave Cuando se elimina un objeto, su propiedad "isdeleted" se establece en 1, pero el objeto no se elimina físicamente en la base de datos. Esto se considera más seguro porque permite depurar y recuperar objetos cuando es necesario.
Marca de tiempo Para cada objeto, la marca de tiempo (fecha y hora) se almacena desde la creación del objeto (timestrampcreated) y el último cambio de objeto (timestamplastupdate). Las marcas de tiempo no se utilizan para decidir qué datos sincronizar porque las marcas de tiempo pueden ser inexactas (por ejemplo, cuando el dispositivo el reloj no es idéntico al reloj del servidor), pero las marcas de tiempo se pueden usar para determinar qué versión de objeto se debe conservar cuando se produce un conflicto.

About

Patrones y codigos Open-source para sincrozicación de datos de aplicaciones - Usando Node.js

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published