Microsoft Sync Framework es una plataforma de sincronización de datos de Microsoft que permite sincronizar datos entre múltiples almacenes de datos. Sync Framework incluye una arquitectura independiente del transporte, en la que se pueden integrar proveedores de sincronización específicos para cada almacén de datos, basados en la API de proveedores de datos de ADO.NET . Sync Framework permite el acceso sin conexión a los datos, trabajando con un conjunto de datos en caché y enviando los cambios a una base de datos maestra en lotes, así como la sincronización de cambios en un origen de datos entre todos los consumidores (sincronización de publicación/suscripción) y la sincronización punto a punto de múltiples orígenes de datos. Sync Framework cuenta con capacidades integradas para la detección de conflictos (si los datos que se van a modificar ya se han actualizado) y puede marcarlos para su inspección manual o utilizar políticas definidas para intentar resolver el conflicto. Sync Services incluye una base de datos SQL Server Compact integrada para almacenar metadatos sobre las relaciones de sincronización y sobre cada intento de sincronización. La API de Sync Framework está disponible tanto en código administrado , para su uso con aplicaciones .NET Framework , como en código no administrado, para su uso con aplicaciones COM . Su lanzamiento estaba previsto para finales de noviembre de 2007 junto con Visual Studio 2008. [ 1 ]
Arquitectura

El entorno de ejecución de Sync Framework proporciona funcionalidad de sincronización, sin estar vinculado a ningún protocolo de almacenamiento o transporte de datos. Al proporcionar proveedores de sincronización específicos para cada fuente de datos , se puede admitir cualquier fuente de datos. Por ejemplo, utilizando los proveedores de sincronización adecuados, se pueden sincronizar archivos entre equipos, actualizaciones de proyectos entre los participantes del proyecto o contenido multimedia entre dispositivos. Sync Framework incluye tres proveedores: Microsoft Sync Services para ADO.NET , Sync Services para sistemas de archivos y Sync Services para SSE . Sync Services se puede utilizar para sincronizar dispositivos proporcionando proveedores para cada uno. Del mismo modo, también se puede admitir software PIM como Microsoft Office Outlook y bibliotecas multimedia como Windows Media Player proporcionando los proveedores adecuados.
Los proveedores se utilizan para enumerar los elementos en un almacén de datos, cada uno identificado por un ID de elemento. Además, también deben mantener metadatos de sincronización y el estado del almacén de datos, para que los cambios se puedan enumerar rápidamente. Los metadatos se mantienen para cada instancia del almacén de datos ( réplica ) a la que está conectado el proveedor. Los metadatos mantenidos incluyen el ID de réplica, el contador de ticks (que representa el progreso en el tiempo), el registro de conflictos, el registro de marcadores de eliminación y el conjunto de cambios que ha visto el almacén de datos ( conocimiento ). Un par de ID de réplica y contador de ticks conforma un versiony codifica el estado del almacén de datos hasta ese momento. Sync Framework define un conjunto de operaciones para el Knowledgeobjeto de una réplica: Containsque determina si el almacén contiene un cambio específico, Unionpara fusionar dos conjuntos de conocimiento, Projectpara proyectar el conocimiento para un subconjunto de los elementos y Excludepara crear un nuevo conjunto de conocimiento sin los cambios para un subconjunto de los elementos. Los metadatos son administrados por el servicio de almacenamiento de metadatos , que utiliza una base de datos SQL Server Compact en proceso para almacenar los metadatos por proveedor.
La API de Servicios de Sincronización funciona creando una sesión de sincronización, representada por un Sessionobjeto. Una sesión de sincronización sincroniza datos entre dos proveedores de sincronización: uno para el almacén de datos de origen y otro para el de destino. Se pasan instancias de ambos proveedores al Sessionobjeto. Durante una sesión de sincronización, el proveedor de destino envía el conjunto de conocimiento del almacén. El proveedor de origen compara el conocimiento del destino con el conjunto de cambios en el origen para enumerar los cambios y luego transferirlos al destino. El proveedor de destino se asegura de que los cambios no sean conflictivos, los fusiona y actualiza el conocimiento.
- Sincronización de instantáneas (sincronización solo de descarga): Los datos de la fuente de datos (o un subconjunto de ella) se sincronizan con los clientes.
- Sincronización solo de carga: Los datos del cliente se fusionan con la réplica de origen.
- Sincronización bidireccional: Ambas fuentes de datos pueden modificarse de forma independiente y los cambios se sincronizan entre sí. Se logra una sincronización de n niveles mediante la realización de múltiples sincronizaciones bidireccionales.
Servicios de sincronización para ADO.NET

Microsoft Sync Services para ADO.NET es el proveedor de sincronización para sincronizar bases de datos mediante ADO.NET . Los conjuntos de datos de ADO.NET se sincronizan entre el origen y el destino, y luego se almacenan en un servidor de base de datos. También admite orígenes de datos distintos de las bases de datos relacionales , como bases de datos XML o servicios web, siempre que se proporcione un proxy para abstraer el origen de datos y haya un proveedor de datos disponible para dicho proxy.
El proveedor Sync Services para ADO.NET está diseñado para su uso en aplicaciones sin conexión, donde los datos de la base de datos central se almacenan en caché localmente. La aplicación trabaja con los datos en caché y los cambios se cargan en lotes. Además, el proveedor también se puede usar para aplicaciones colaborativas, donde cada aplicación trabajará con su conjunto de datos local, que se sincronizará periódicamente de forma punto a punto con los demás participantes. Localmente, los conjuntos de datos se pueden almacenar utilizando la base de datos SQL Server Compact o cualquier otro servidor de base de datos compatible con ADO.NET. Sync Services para ADO.NET permite el seguimiento incremental de cambios, lo que permite replicar solo los cambios en lugar de replicar la copia completa.
Servicios de sincronización para sistemas de archivos
El proveedor de servicios de sincronización para sistemas de archivos se utiliza para sincronizar dos ubicaciones de sistemas de archivos, que pueden ser carpetas locales o recursos compartidos de red. Además de replicar los archivos nuevos, también se sincronizan los cambios en los archivos existentes. Los cambios en los archivos se detectan mediante marcas de tiempo o, de forma opcional, mediante el cálculo del hash del contenido del archivo. Se detectan los cambios conflictivos en el mismo archivo y se puede configurar para que se resuelvan automáticamente. En caso de actualizaciones conflictivas en el mismo archivo, se conservará la edición más reciente. Si un archivo se elimina en una réplica pero se actualiza en otra, la actualización tendrá prioridad sobre la eliminación. Si se crean dos archivos con contenido diferente y el mismo nombre en dos réplicas durante la operación de sincronización, se conservará el que se creó más tarde. Si una operación de cambio de nombre provocó que los archivos tuvieran el mismo nombre, ambos se conservan cambiando el nombre de uno de ellos. Cualquier eliminación se puede configurar para mover el archivo a la Papelera de reciclaje , de modo que pueda recuperarse si es necesario. El proveedor de Sync Services for File Systems también ofrece un modo de vista previa que enumera las acciones que se realizarán para una operación de sincronización, sin ejecutarlas realmente, con el fin de permitir que los usuarios revisen los cambios que se realizarán. La sincronización se realiza de forma punto a punto . Ni Sync Framework ni el proveedor de Sync Services for File Systems realizan ninguna autenticación antes de acceder a los archivos; por lo tanto, la autenticación es responsabilidad de la aplicación que utiliza la API de Sync Framework. Los archivos se transfieren sin cifrado. Para utilizar el cifrado en tránsito, es necesario utilizar proveedores personalizados que utilicen una conexión TCP cifrada. El proveedor de Sync Services for File Systems también admite filtros estáticos para excluir archivos según comodines o atributos. Sin embargo, en la primera versión CTP , el proveedor de Sync Services for File Systems no sincroniza ni descriptores de seguridad NTFS ni flujos de datos alternativos .
Servicios de sincronización para FeedSync
El proveedor Sync Services for FeedSync permite sincronizar réplicas mediante la creación de un feed habilitado para FeedSync , ya sea en formato RSS o ATOM , al que pueden suscribirse las partes interesadas. Este proveedor también permite extraer elementos de un feed de FeedSync e integrar los cambios en el almacén de datos. Sync Services for FeedSync utiliza otro proveedor para conectarse al almacén de datos.
Los servicios de sincronización de FeedSync proporcionan herramientas para sincronizar los datos de una réplica con fuentes RSS y Atom. (Una réplica es un repositorio específico de información que se va a sincronizar). Mediante el servicio de productor de FeedSync, una aplicación de sincronización puede colaborar con un proveedor de sincronización para crear una lista de elementos de una réplica e insertarlos en un flujo XML RSS o Atom. Estos elementos se pueden publicar para los suscriptores interesados. De forma similar, el servicio de consumidor de FeedSync permite a una aplicación de sincronización tomar un flujo XML RSS o Atom de entrada, extraer elementos y, a continuación, utilizar un proveedor de sincronización para aplicar únicamente los cambios pertinentes a una réplica. Gracias a Sync Framework, el intercambio de elementos de las fuentes es fundamental, dos fuentes pueden suscribirse entre sí y sincronizarse fácilmente como pares en una comunidad de sincronización. (Una comunidad de sincronización es un conjunto de réplicas que mantienen sus datos sincronizados entre sí).
Licencias
Microsoft Sync Framework es gratuito en dispositivos Windows y Windows Mobile. El soporte para otras plataformas está disponible a través de licencias comerciales y kits de portabilidad. [ 2 ]
Véase también
Notas
Enlaces externos
- Centro para desarrolladores de Microsoft Sync Framework
- Presentamos Microsoft Sync Framework: Marco de sincronización de próxima generación - Code Magazine
- Tecnologías de acceso a datos ADO.NET
- Sincronización de datos
- Interfaces de programación de aplicaciones de Microsoft