Sync Services for ADO.NET vs. Sync Framework vs. … ¿Live Mesh?

Sync, sync, sync…

El panorama de los sistemas de sincronización ofrecidos por Microsoft ultimamente crece muy rápidamente lo que nos deja a los programadores con la duda de qué sistema escoger y si hemos hecho bien al escoger uno u otro. Desde siempre ha existido en Windows el servicio de replicación de ficheros, usado normalmente por los adminitradores de la red para replicar archivos relacionados con los perfiles de usuario y demás. Aunque es un servicio de replicación genérico, no es común verlo en otros escenarios.

En el caso de replicación de datos de una base de datos, SQL Server ofrece desde hace mucho tiempo sus propios mecanismos de replicación. Merge, que funciona en modo de publicador-suscriptor permite que un servidor publique datos y que otros se suscriban a los mismos para recibir copias de la información. Este mecanismo está disponible también para replicar datos a SQL Server Compact Edition (SQLCE) muy usado en dispositivos móviles. Funciona muy bien pero todo el control está en manos del administrador del servidor de base de datos lo que crea en algunos casos problemas con los desarrolladores. Por otro lado existe RDA (Remote Data Access), útil para replicar datos igualmente entre SQL Server y SQLCE. Es un sistema más ligero, que no requiere configuración especial del servidor de base de datos ya que a éste sólo se le pasan consultas, pero ofrece menos posibilidades que el anterior en cuanto a seguimiento de los datos y resolución de conflictos. Estos dos sistemas además tienen la pega de que sólo funcionan con SQL Server y no con ningún otro tipo de bases de datos.

Recientemente han aparecido otros dos nuevos mecanismos de replicación, orientados a los desarrolladores pricipalmente.

Sync Services for ADO.NET permite replicar datos entre dos sistemas para los que existan proveedores ADO.NET permitiendo por ejemplo la replicación de datos entre SQLCE y Oracle o cualquier otro escenario similar. La idea inicial de este entorno es la de sustituir RDA mejorándolo en muchos aspectos. Este entorno está ya disponible también para dispositivos móviles.

A continuación, y siguiendo la misma filosofía, aparece Sync Framework. Este es un entorno más general, que engloba al anterior, y cuyo objetivo es el de permitir la sincronización de cualquier fuente de datos, sean bases de datos u otra cosa. De hecho en su primera versión pública se incluye a “Sync Services for ADO.NET”, a “Sync Services for File Systems” y a “Sync Services for FeedSync”, permitiendo la sicronización respectivamente de dos fuentes cualquiera de bases de datos para las que tengamos un proveedor ADO.NET, la sincronización de ficheros entre dos puntos, o la sincronización de “feeds” RSS o ATOM entre dos puntos. Como se puede imaginar lo que se proporciona es un mecanismo mediante el cual, si disponemos de los proveedores adecuados, se podrá sincronizar cualquier cosa sincronizable. Microsoft proporcionará inicialmente unos proveedores pero se le deja al programador la libertad de programarse sus propios proveedores para sincronizar cualquier tipo de información.

Finalmente se acaba de anunciar el lanzamiento de Live Mesh, siendo uno de sus objetivos la sincronización de datos. Según la información publicada, incialmente es capaz de sincronizar archivos de forma muy similar a como lo hace Groove, conectando dos o más puntos a través de Internet de forma transparente. Pero según se comenta, toda la plataforma estará disponible para que los desarrolladores puedan crear aplicaciones que sean capaces de sincronizar cualquier tipo de datos de forma igualmente transparente con lo que podría usarse en principio como sustituto de los métodos mencionados anteriormente. Si esto es así, este mecanismo tiene una gran ventaja con respecto a los anteriores. En los anteriores es necesaria una conexión explícila entre los puntos que sincronizan que sea direccionable, es decir, necesito saber desde el origen la dirección IP de destino. En el caso de Mesh, la localización de los diferentes dispositivos es transparente y se podrían sincronizar datos entre equipos que estén localizados tras NATs y firewalls sin problema lo que proporciona muchas ventajas a la hora de sincronizar datos sobre todo para dispositivos móviles.

En fin, cada vez hay más y más opciones. Esperemos a las versiones finales a ver cómo se consolidan las diferentes ofertas de sincronización.

Un comentario en “Sync Services for ADO.NET vs. Sync Framework vs. … ¿Live Mesh?”

  1. Bueno el artículo, esperemos que así como se amplía el espectro de sincronisación a diferentes bases de datos, tambien sea más genericas las herramientas de desarrollos tanto para Pocket Pc como Palms… osea que con cualquiera que se use sirva para ambos dispositivos.

Deja un comentario

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