Seleccionar los componentes apropiados de Sync Framework
En este tema se describen los componentes que se deben utilizar para los escenarios comunes de sincronización; así mismo, describe la arquitectura de alto nivel de Sync Framework.
Componentes de Sync Framework
Sync Framework incluye un tiempo de ejecución, un conjunto de proveedores de sincronización para los almacenes de datos concretos y una API para escribir proveedores. Un proveedor es un componente de software que ofrece comunicación entre un origen de datos y otros componentes en el sistema de sincronización. Si sincroniza un almacén de datos que disponga de un proveedor que le hayamos proporcionado, recomendamos vivamente que utilice ese proveedor. Los proveedores proporcionan extensibilidad, de forma que se puedan ajustar a su aplicación. Si sincroniza un almacén de datos para el que no le hayamos proporcionado un proveedor, o si necesita una implementación diferente, resulta adecuado utilizar un proveedor personalizado.
La ilustración siguiente muestra las relaciones entre todos los componentes que ofrece Sync Framework.
Los componentes de la ilustración son los siguientes:
Proveedores de sincronización de bases de datos (denominados Sync Services for ADO.NET en versiones anteriores). Estos proveedores se incorporan en Microsoft.Synchronization.dll, Microsoft.Synchronization.Data.dll, Microsoft.Synchronization.Data.Server.dll, Microsoft.Synchronization.Data.SqlServer.dll y Microsoft.Synchronization.Data.SqlServerCe.dll. Se pueden utilizar para sincronizar las bases de datos en los siguientes tipos de escenario:
Escenarios de colaboración. Por ejemplo, en una aplicación que permite a los usuarios compartir las notas de un proyecto, los miembros del equipo del proyecto suelen necesitar una copia local de los datos para trabajar con ella. Cuando realizan modificaciones, pueden sincronizar con otro miembro del equipo para intercambiar los cambios y también para sincronizar los cambios con un servidor central.
Escenarios sin conexión. Por ejemplo, un vendedor necesita tener acceso a datos sobre productos en la oficina de un cliente y también tiene que cargar pedidos. El vendedor podría sincronizar con el servidor central cada mañana para asegurarse de que cuenta con los productos y precios más recientes y sincronizar por la tarde para cargar los pedidos del día.
Para obtener más información, vea Sincronizar bases de datos. Los proveedores sin conexión inicialmente formaban parte de Synchronization Services for ADO.NET 1.0, que se lanzó al mercado antes de Sync Framework 1.0. Los proveedores de colaboración se generan sobre la API básica y el tiempo de ejecución, pero los proveedores sin conexión no. Los proveedores sin conexión no pueden formar parte de topologías con otros tipos de proveedores de Sync Framework.
Proveedor de sincronización de archivos (denominado Sync Services for File Systems en versiones anteriores). Este proveedor se incorpora en FileSyncProvider2.dll y Microsoft.Synchronization.Files.dll. Se puede utilizar para sincronizar archivos y carpetas en sistemas de archivos NTFS, FAT o SMB. Los directorios que se sincronizan pueden ser locales o remotos, y no es necesario que estén en el mismo sistema de archivos. Una aplicación puede usar filtros estáticos para excluir o incluir archivos, bien sea incluyéndolos de forma explícita en una lista o bien mediante caracteres comodín (como * .txt). O bien, la aplicación también puede establecer filtros para excluir subcarpetas enteras. Además, una aplicación se puede registrar para recibir una notificación del progreso de la sincronización de los archivos. Para obtener más información, vea Sincronizar archivos.
Componentes de sincronización de fuentes web (denominados Sync Services for FeedSync en versiones anteriores). Estos componentes se incorporan en FeedSync2.dll y Microsoft.Synchronization.dll. Las componentes se pueden usar de dos formas:
Los servicios de proveedor de sincronización de fuentes web se pueden utilizar para escribir un proveedor que represente un archivo XML de FeedSync como su réplica. Para obtener más información sobre FeedSync, vea el sitio web de FeedSync.
El productor de fuentes web y los componentes de consumidor se pueden utilizar para sincronizar los datos de otro tipo de réplica (como un sistema de archivos) con una fuente RSS o Atom.
Para obtener más información, vea Sincronizar fuentes web.
Proveedores personalizados. Estos componentes se incorporan en Synchronization2.dll y Microsoft.Synchronization.dll; así como en SimpleProviders2.dll y Microsoft.Synchronization.SimpleProviders.dll. Se pueden utilizar para crear proveedores de sincronización para cualquier tipo de almacén de datos. Por ejemplo, si una aplicación incluye un sistema de almacenamiento personalizado para realizar seguimientos de contratos con clientes, puede utilizar un proveedor simple o un proveedor personalizado completo para integrar esos datos en sus aplicaciones. Para obtener más información, vea Sincronizar almacenes de datos utilizando proveedores personalizados.
Metadata Storage Service. Este componente se incorpora en MetaStore2.dll y Microsoft.Synchronization.MetadataStorage.dll. Los proveedores personalizados lo pueden utilizar como un método cómodo para almacenar y procesar metadatos de sincronización, sobre todo para las réplicas que no podrían almacenar los metadatos a través de otros métodos. Metadata Storage Service utiliza una base de datos confiable y ligera que tiene una memoria y un disco de pequeño tamaño; además se puede redistribuir junto con el proveedor. La API separa claramente el almacén de metadatos de las interfaces y los métodos que se utilizan para tener acceso al almacén, de modo que se puedan implementar almacenes alternativos y utilizar con un cambio mínimo del proveedor. Para obtener más información, vea Sync Framework Metadata Storage Service.
API básica y tiempo de ejecución. Estos componentes se incorporan en Synchronization2.dll y Microsoft.Synchronization.dll. Todos los componentes menos los proveedores de bases de datos sin conexión utilizan la API básica y el tiempo de ejecución. Para obtener más información acerca de estos componentes, vea Sincronizar almacenes de datos utilizando proveedores personalizados.
Para obtener más información acerca de la instalación de los componentes, vea Instalación, redistribución y compatibilidad de versiones.
Sync Framework proporciona un conjunto completo de componentes para habilitar la sincronización para una gran variedad de aplicaciones. En este tema se ha ofrecido una introducción básica de cada componente, con el fin de ayudarle a escoger los componentes adecuados para sus aplicaciones. Para las aplicaciones que implican más de un tipo de almacén de datos, el paso siguiente es leer Integrar datos de proveedores diferentes.
Arquitectura de Sync Framework
Sync Framework utiliza una arquitectura basada en proveedor. Los proveedores protegen otros componentes de sincronización frente a las complejidades y a la implementación concreta de cada almacén de datos. Esta arquitectura, acoplada con el uso de metadatos de sincronización especializados, permite a Sync Framework sincronizar cualquier tipo de almacén de datos para el que se haya escrito un proveedor. Sync Framework incluye proveedores para los almacenes de datos comunes, como bases de datos y el sistema de archivos NTFS y le permite escribir proveedores para otros tipos de almacenes. El proveedor es el punto de integración principal en Sync Framework.
En la ilustración siguiente se muestra la arquitectura de alto nivel de Sync Framework. La sincronización siempre se produce entre dos réplicas (o nodos) tal como se muestra en la ilustración, pero las comunidades de sincronización (o topologías) pueden tomar cualquier forma, como por ejemplo, de concentrador y radio, de punto a punto, etc. Con algunas excepciones, cada par de participantes puede sincronizar sobre una arquitectura de dos niveles o de n niveles, según las necesidades de la aplicación. La documentación para cada componente de Sync Framework ofrece más información detallada sobre las arquitecturas adecuadas y las consideraciones de seguridad.
Los elementos de la ilustración son de tres tipos:
Elementos que escribe el desarrollador.
La aplicación llama a los métodos de sincronización, responde a los eventos y administra otras tareas según los requisitos de la aplicación.
El almacén de datos podría ser un sistema de archivos, una base de datos relacional, un almacén de contactos de archivo plano o cualquier otro almacén de datos que deba sincronizarse.
El protocolo de transferencia de datos determina la forma en la que se transmiten los cambios de datos entre dos proveedores.
Elementos que se proporcionan a través de Sync Framework.
En función de si se utiliza código nativo o código administrado, la aplicación se comunica con una sesión de sincronización o con un organizador de la sincronización que, posteriormente, se comunica con cada proveedor de sincronización.
El tiempo ejecución de la sincronización dirige el proceso de sincronización e informa a la aplicación cliente sobre el estado, conflictos y errores.
Elementos que escribe el desarrollador o que proporciona Sync Framework, en función del escenario.
El proveedor es específico para el tipo de datos que se sincronizan. En algunas situaciones, una aplicación requiere un proveedor personalizado que debe escribir el desarrollador. Sync Framework proporciona varias API para que este proceso sea más sencillo, así como diversos componentes que prestan asistencia con las partes más difíciles de la sincronización, como la detección de conflictos.
El almacén de metadatos contiene los metadatos que utiliza Sync Framework para determinar los cambios que debería seleccionar cada proveedor en el almacén de datos que abastece y aplicarlos a tal almacén de datos. La forma en la que se almacenan los metadatos y su funcionamiento depende del proveedor que se utilice. Por ejemplo, los proveedores para bases de datos almacenan por lo general los metadatos en tablas de seguimiento y en la misma base de datos que el almacén de datos. Para los proveedores personalizados, puede crear un almacén de metadatos o utilizar un servicio que se incluye con Sync Framework. La documentación para cada componente Sync Framework proporciona más información detallada sobre los metadatos.
Vea también
Conceptos
Microsoft Sync Framework
Ventajas de utilizar Sync Framework