Microsoft Sync Framework

Microsoft Sync Framework es una completa plataforma de sincronización que habilita la colaboración y el acceso sin conexión para las aplicaciones, servicios y dispositivos. Ofrece tecnologías y herramientas que habilitan la movilidad, el uso compartido y la capacidad necesaria para poner los datos fuera de conexión. Mediante Sync Framework, los programadores pueden generar ecosistemas de sincronización que integran cualquier aplicación con cualquier dato de cualquier almacén que use un protocolo a través de una red.

Sync Framework está formado por las siguientes tecnologías, las tres primeras se pueden instalar con SQL Server 2008:

  • Sync Services for ADO.NET se puede utilizar para sincronizar bases de datos en escenarios sin conexión y de colaboración.

  • Sync Services for ADO.NET puede utilizar los componentes básicos de Sync Framework con el fin de sincronizar las bases de datos y también se pueden utilizar para crear proveedores de sincronización para otros tipos de almacenes de datos.

  • Sync Services para FeedSync se puede utilizar para sincronizar fuentes RSS y Atom con los datos de un almacén local.

  • Sync Services for File Systems se puede utilizar para sincronizar los archivos y carpetas en un sistema de archivos.

  • Metadata Storage Service se puede utilizar para almacenar los metadatos de sincronización en SQL Server Compact 3.5.

El resto de este tema proporciona información general de Sync Services for ADO.NET e incluye una comparación con otras tecnologías de Microsoft. Para obtener la documentación completa de Sync Services for ADO.NET y Sync Framework, visite Microsoft Sync Framework Developer Center.

Instalar Microsoft Synchonization Framework y Synchonization Services for ADO.NET

Sync Framework se puede instalar con el asistente para instalar SQL Server 2008 o utilizando las opciones de instalación de la línea de comandos. Para instalar Sync Framework con el asistente, en la página Selección de características, seleccione Microsoft Synchonization Framework. Para obtener más información sobre cómo instalar SQL Server y los componentes relacionados, vea Información general sobre la instalación de SQL Server.

Información general y escenarios de sincronización

La capacidad de admitir trabajadores móviles y remotos adquiere cada día más importancia para las organizaciones. Asegurarse de que los trabajadores tienen acceso a la misma información de que disponen cuando están en la oficina es esencial en las organizaciones. En la mayoría de los casos, estos usuarios tendrán un equipo portátil, un equipo de escritorio en la oficina, un smartphone o un PDA. Desde estos dispositivos, a menudo los usuarios pueden tener acceso directamente a sus datos utilizando una conexión VPN o algún otro método de conexión directa a la red corporativa. Esta solución no resulta muy satisfactoria para la mayoría de los usuarios remotos debido a las desventajas importantes apreciables en las siguientes áreas:

  • Requisitos de red

    Para permitir a los usuarios el acceso a la información, el dispositivo remoto debe disponer de una conexión constante a la red corporativa mientras está teniendo acceso a los datos. Para algunos trabajadores, por ejemplo para los que trabajan desde casa, esto podría no constituir un problema. Para otros, como los vendedores que están constantemente en movimiento, esto podría ser más difícil. Por ejemplo, si el vendedor está visitando a un cliente y no puede obtener acceso a los datos del inventario porque no hay conectividad de red, no puede hacer su trabajo eficazmente.

  • Velocidades de acceso a datos

    En un entorno corporativo cliente-servidor típico, los usuarios tienen redes de alta velocidad que permiten el acceso rápido a la información. Sin embargo, los trabajadores remotos normalmente se conectan a través de redes cableadas o inalámbricas lentas y no confiables. Si se usa una solución típica, cada dato que un usuario desee obtener se debe descargar siempre que se solicite porque no hay forma de conservar los datos en el dispositivo. Por ejemplo, si un vendedor debe descargar su lista de productos cada vez que abre una aplicación, el retraso exigido para rellenar la aplicación con la información podría resultar irritante.

  • Único punto de error

    Con este tipo de solución, todos los usuarios emplean un único servidor. Si esa base de datos no está disponible debido al tiempo planeado de inactividad o a los errores del servidor, todos los trabajadores remotos estarán desconectados de sus datos.

  • Escalabilidad del servidor

    Cuantas más personas trabajen remotamente, mayor será la repercusión en el rendimiento de los servidores corporativos y mayor será la cantidad de hardware que podría tener que agregarse.

Aplicaciones conectadas ocasionalmente

Una alternativa a la solución que se ha descrito en la sección anterior es implementar una aplicación conectada ocasionalmente. Una aplicación que se conecta de vez en cuando permite a un trabajador remoto continuar teniendo acceso a los datos. Sin embargo, a diferencia del escenario anterior en el que el usuario debía tener acceso directamente a la base de datos corporativa para obtener la información que deseaba, esta se almacena de forma local en un dispositivo. Para rellenar una base de datos local, una aplicación conectada ocasionalmente suele usar la sincronización de datos.

La sincronización de datos consiste en la capacidad de tomar periódicamente la información que está almacenada en una base de datos cliente (como SQL Server Compact 3.5) y sincronizar los cambios con una base de datos servidor (como SQL Server). Una solución basada en la sincronización proporciona la ventaja de que un usuario ya no tiene que disponer de una conexión de red constante para obtener acceso a la información. Dado que los datos están almacenados localmente, un usuario tiene acceso constante a los mismos mientras el procesamiento se descarga de la base de datos central. Además, dado que la velocidad de la red ya no es un factor limitador, ahora un usuario puede obtener acceso a los datos a la velocidad del dispositivo.

Synchonization Services for ADO.NET

Sync Services for ADO.NET habilita la sincronización entre las bases de datos. Proporciona una API intuitiva y flexible que le permite generar aplicaciones destinadas a escenarios sin conexión y de colaboración. Sync Services for ADO.NET habilita la sincronización entre dos elementos del mismo nivel, por ejemplo entre bases de datos de SQL Server o entre una base de datos cliente de SQL Server Compact 3.5 y cualquier base de datos servidor para las que se disponga de un proveedor ADO.NET. La API le permite utilizar todos los componentes que se proporcionan o sólo algunos, dependiendo de la arquitectura y los requisitos de una aplicación.

Las ilustraciones siguientes muestran ejemplos de aplicaciones que están conectadas ocasionalmente en las que los datos (representados por una base de datos verde) se conservan de forma local en el dispositivo de un trabajador remoto. El primer ejemplo muestra un sistema de base de datos independiente en el que la información se almacena directamente en el dispositivo del usuario. El segundo ejemplo muestra una oficina remota en la que la información se almacena en una base de datos de grupo de trabajo dentro de esta oficina remota, para que varios trabajadores locales puedan tener acceso a los datos.

Escenario sin conexión de Sync Services

Una extensión común de este tipo de aplicación conectada ocasionalmente es la capacidad de admitir escenarios de colaboración. Se trata de escenarios en los que dos bases de datos se pueden sincronizar punto a punto sin tener que pasar por un concentrador central. Como se muestra en la ilustración siguiente, una base de datos remota puede intercambiar información con cualquier otra. Este tipo de solución es útil cuando trabajadores remotos (por ejemplo, auditores financieros in situ) trabajan en grupo en una ubicación remota. Estos trabajadores deben compartir a menudo información entre sí. Sin embargo, dado que no tienen conectividad con la base de datos central, deben compartir la información a través de algún tipo de red punto a punto.

Escenario de colaboración de Sync Services

Usar Synchonization Services for ADO.NET con SQL Server

Sync Services for ADO.NET admite bases de datos de las maneras siguientes:

  • En escenarios sin conexión, la base de datos cliente debe ser de la versión 3.5 de SQL Server Compact 3.5 o posteriores. El servidor puede ser cualquier base de datos para la que se disponga de un proveedor ADO.NET.

  • En escenarios de colaboración, cada base de datos del mismo nivel debe ser de SQL Server 2000 Service Pack 4 o una versión posterior.

SQL Server es una base de datos de clase empresarial que proporciona un base sólida para las aplicaciones que requieren sincronización. SQL Server 2008 proporciona el seguimiento de cambios, una de las características más útiles para los programadores de sincronización. Sync Services for ADO.NET ofrece una API para sincronizar los cambios pero, en realidad, no realiza el seguimiento de los cambios en el servidor ni en la base de datos del mismo nivel. ((SQL Server Compact 3.5 realiza el seguimiento de los cambios en la base de datos cliente). Puede crear un sistema de seguimiento de cambios personalizado, pero esto suele introducir una complejidad significativa y sobrecarga en el rendimiento. Recomendamos usar el seguimiento de cambios de SQL Server 2008, porque resulta fácil de configurar y su rendimiento es elevado. Para obtener más información, vea Realizar el seguimiento de los cambios de datos.

Comparar Synchonization Services for ADO.NET con otras tecnologías

Microsoft proporciona varias tecnologías que están diseñadas para las aplicaciones que realizan la sincronización. Por consiguiente, comparar Sync Services for ADO.NET con otras tecnologías que se utilizan en escenarios sin conexión y de colaboración resulta de utilidad.

Sincronización sin conexión

Las tecnologías más importantes de Microsoft para la sincronización sin conexión son las siguientes:

  • Acceso a datos remotos (RDA). Se utiliza para sincronizar una base de datos de SQL Server Compact 3.5 con una base de datos de otra edición de SQL Server. Para obtener más información, vea los Libros en pantalla de SQL Server Compact 3.5.

  • Replicación de mezcla. Se utiliza para sincronizar ediciones diferentes de SQL Server, incluido SQL Server Compact 3.5. Para obtener más información, vea Información general sobre la replicación de mezcla y Seleccionar el tipo de replicación apropiado.

Utilice la tabla siguiente para ayudarle a determinar qué tecnología es adecuada para las aplicaciones que desea generar.

Característica clave

RDA

Replicación de mezcla

Synchronization Services

Sincronización con una arquitectura orientada a servicios o n-tier

No

No

Admite bases de datos heterogéneas

No

No

Seguimiento de cambios incremental

No1

Detección y resolución de conflictos

No

Sí2

Creación de vistas de datos en el cliente con facilidad

No

No

Inicialización automática del esquema y los datos

Admite conjuntos de datos grandes

El procesador de consultas está disponible localmente

Propagación automática de los cambios del esquema

No

No

Creación de nuevas particiones de los datos automáticamente

No

No

Se usa en dispositivos

1 RDA admite cargas incrementales, pero las descargas siempre son una instantánea que actualiza todos los datos en el cliente.

2 La replicación de mezcla proporciona un sistema integrado de resolución de conflictos; mientras que Sync Services for ADO.NET proporciona un marco de trabajo para generar un esquema de resolución de conflictos.

Sincronización de colaboración

La tecnología más significativa para realizar la comparación en lo que se refiere a la sincronización de colaboración es la replicación transaccional punto a punto, que se utiliza para sincronizar dos o más bases de datos de SQL Server Enterprise. Tanto Sync Services for ADO.NET como la replicación transaccional admiten la sincronización punto a punto: la replicación transaccional es más adecuada para mantener una alta disponibilidad y escalar la actividad de lectura a través de varios servidores, mientras que Sync Services for ADO.NET es más conveniente para las aplicaciones en las que los usuarios trabajan en colaboración con los mismos datos.

La tabla siguiente puede ayudarle a determinar qué tecnología es apropiada para las aplicaciones que desea generar. Para obtener más información sobre la replicación transaccional punto a punto, vea Replicación transaccional del mismo nivel.

Característica clave

Replicación transaccional punto a punto

Synchronization Services

Sincronización con una arquitectura orientada a servicios o n-tier

No

Admite bases de datos heterogéneas

No

Seguimiento de cambios incremental1

Detección y resolución2 de conflictos

Inicialización automática del esquema y los datos

Admite conjuntos de datos grandes

El procesador de consultas está disponible localmente

Propagación automática de los cambios del esquema

No

Se usa en dispositivos

No

No en esta versión

Se utiliza con SQL Server Compact 3.5.

No

No en esta versión

1Sync Services for ADO.NET utiliza el seguimiento de cambios de red, en el que se sincroniza la última versión de una fila. Con la replicación transaccional punto a punto, todos los cambios de una fila se aplican en orden en cada nivel.

2 La replicación proporciona un sistema integrado de resolución de conflictos; mientras que Sync Services for ADO.NET proporciona un marco de trabajo para generar un esquema de resolución de conflictos.

Determinar el tipo de tecnología que se debe utilizar

Sync Services for ADO.NET proporciona la flexibilidad de un modelo de programación, como son los conjuntos de datos sin conexión, y un conjunto de características de sincronización más variadas, como las que se encuentran en la replicación. La funcionalidad de Sync Services for ADO.NET es superior a RDA. La replicación está destinada a los administradores de bases de datos y se ha diseñado principalmente para sincronizar las bases de datos de SQL Server. La replicación proporciona una funcionalidad significativa cuya configuración se puede realizar a través de asistentes, procedimientos almacenados y su propia API. Sync Services for ADO.NET está destinada a los programadores y admite bases de datos heterogéneas y la sincronización a través de servicios, como Windows Communication Foundation (WCF). Si una aplicación implica la sincronización con bases de datos que no son de SQL Server o si debe tener componentes independientes para habilitar la sincronización a través de transportes o servicios diferentes, utilice Sync Services for ADO.NET.

En algunas aplicaciones, la decisión de qué tecnología se ha de utilizar es fácil: si debe sincronizar un origen de datos que no es una base de datos de SQL Server, Sync Services for ADO.NET es la solución. Si es administrador de bases de datos y desea configurar la sincronización sin programar demasiado, la replicación podría ser la mejor opción. Finalmente, debe considerar cuidadosamente los requisitos de la aplicación y determinar si la API de Sync Services for ADO.NET es la tecnología adecuada. Si desea algo más que replicar un esquema y sus datos de una base de datos en otra, recomendamos usar Sync Services for ADO.NET.

Vea también

Conceptos