Conceptos de la programación de replicación

Antes de desarrollar una aplicación que utilice funcionalidades de replicación, debería seguir los pasos de planeamiento generales siguientes:

  1. Definir la topología de replicación.

  2. Definir la funcionalidad de la aplicación.

  3. Planear la seguridad.

  4. Elegir un entorno de desarrollo.

  5. Elegir la interfaz de programación de la replicación adecuada.

El resto de este tema describe estos pasos con más detalle. Para ayudar a mostrar el proceso de planeamiento, se ha incluido un ejemplo.

Definir la topología de replicación

El primer paso para programar la replicación es definir la topología de replicación de la aplicación. Si está creando una aplicación que vaya a usar una topología de replicación existente, por ejemplo una aplicación cliente que tiene acceso a los datos de un suscriptor existente, debería continuar en el paso siguiente.

Nota

En algunos casos, implementar la topología de replicación será la única finalidad de la aplicación.

La topología de replicación que defina depende de muchos factores, como son los siguientes:

  • Si los datos replicados tienen que estar actualizados y quién debe actualizarlos.

  • Las necesidades de distribución de los datos con respecto a la coherencia, autonomía y latencia.

  • El entorno de replicación, incluidos los usuarios empresariales, la infraestructura técnica, la red y la seguridad, y las características de los datos.

  • Los tipos y las opciones de replicación.

  • Las topologías de replicación y cómo se alinean con los tipos de replicación.

Para obtener más información sobre cómo diseñar una topología de replicación que satisfaga mejor las necesidades de su empresa, vea Consideraciones sobre el diseño de la solución (replicación). Si carece de experiencia con la replicación de Microsoft SQL Server, vea Introducción (replicación).

Definir la funcionalidad de la aplicación

Una vez definida la topología de replicación, debería decidir las funcionalidades que la aplicación proporcionará. Estas funcionalidades pueden abarcar desde un script que sincronice una suscripción a una aplicación con una interfaz de usuario para configurar la replicación. La replicación admite las tareas generales de programación siguientes:

  • Configurar la replicación.

  • Sincronizar suscripciones.

  • Mantener una topología de replicación.

  • Supervisar una topología de replicación.

  • Solucionar problemas de la replicación.

También es común ampliar la aplicación combinando las funcionalidades de replicación con otras funcionalidades que se proporcionan a través de SQL Server. En la tabla siguiente se resaltan algunas funcionalidades extendidas que podría proporcionar en la aplicación de replicación.

Funcionalidad

Ejemplo

Administración de servidor con Objetos de administración de SQL Server(SMO)

Una aplicación que permite que un administrador asocie y configure una base de datos como publicador en una topología de replicación.

Acceso a datos con ADO.NET

Una aplicación que permite que los usuarios obtengan acceso mediante programación y cambien los datos de ventas replicados en una base de datos de suscriptor local mientras está sin conexión y, a continuación, conecten y sincronicen la suscripción de extracción haciendo clic en un botón.

Planear la seguridad

La seguridad es importante en cualquier aplicación y su planeamiento se debería completar antes de escribir ningún código. La seguridad de la aplicación puede dividirse en tres partes principales: proteger la base de datos, proteger la replicación y escribir código seguro.

Los siguientes temas proporcionan información sobre la seguridad:

Elegir un entorno de desarrollo

Al desarrollar una aplicación de replicación, hay que considerar tres entornos de desarrollo básicos. Cada uno tiene acceso a las mismas funcionalidades de replicación con algunas excepciones. Las aplicaciones de replicación se pueden desarrollar en cada uno de los entornos siguientes.

  • Código administrado

    Entorno de desarrollo orientado a objetos que aprovecha las ventajas de la programación de .NET Framework y Common Language Runtime (CLR) de .NET. El código administrado es el entorno de programación recomendado para el desarrollo de .NET y para las aplicaciones de SQL Server. Las interfaces de replicación administradas habilitan la programación de la administración de la replicación de una manera orientada a objetos sin tener que conocer Transact-SQL y también proporcionan algunas funcionalidades de devolución de llamada al ejecutar agentes de replicación que no están disponibles en los scripts. El código administrado es el mejor entorno para desarrollar componentes reutilizables y aplicaciones de interfaz de usuario.

  • Scripts

    Aplicaciones sencillas que ejecutan una serie de comandos como procedimientos almacenados del sistema de replicación en scripts o comandos de Transact-SQL en archivos por lotes. Aunque puede ejecutar los scripts en un entorno administrado utilizando el proveedor administrado en proceso de SQL Server, la misma funcionalidad se puede obtener mediante interfaces de replicación administradas, que también proporcionan funcionalidades de devolución de llamada. Los scripts son el entorno mejor para ejecutar tareas que se ejecutarán sólo algunas veces y en las que no se requieren las funcionalidades de devolución de llamada, como instalar un servidor de replicación.

  • Código nativo

    El CLR no administra el entorno de desarrollo orientado a objetos que utiliza el acceso directo al sistema o a los objetos COM como ese código. Las interfaces de replicación de código nativo han quedado obsoletas o han dejado de utilizarse. Para obtener más información, vea Características que ya no se utilizan en la replicación de SQL Server o Funcionalidad no incluida en la replicación de SQL Server.

Elegir la interfaz de programación de replicación adecuada

El último paso del planeamiento es elegir la interfaz de programación de la replicación adecuada que implementa la funcionalidad de replicación deseada para el entorno de desarrollo escogido. En la tabla siguiente se muestran las interfaces de programación de la replicación disponible.

Interfaz

Entorno

Usos

Conceptos de los Objetos de administración de replicación (RMO)

Código administrado

Administración, supervisión y sincronización.

Microsoft.SqlServer.Replication

Código administrado

Sincronización.

Microsoft.SqlServer.Replication.BusinessLogicSupport

Código administrado

Creación de controladores de lógica de negocios para integrar la lógica personalizada con el proceso de sincronización de mezcla.

Procedimientos almacenados de replicación (Transact-SQL)

Scripts

Administración y supervisión.

Conceptos de los ejecutables del Agente de replicación

Scripts

Sincronización.

Ejemplo

En Adventure Works, tienen que publicarse los datos de 200 representantes de ventas de todo el mundo. Los representantes de ventas viajan a menudo y necesitan utilizar equipos portátiles o asistentes digitales personales (PDA) para cambiar los datos de los clientes y agregar los pedidos nuevos. A continuación, los cambios tendrán que sincronizarse con el publicador cuando el representante de ventas conecte el portátil a la red.

Para esta aplicación, los pasos de planeamiento podrían ser similares a los siguientes:

  1. La topología de replicación de esta aplicación ya existe. Sin embargo, debe crearse una suscripción de extracción nueva en el cliente. La publicación debería utilizar filtros parametrizados para replicar un conjunto único de datos para cada representante de ventas.

  2. Además del acceso a datos típico requerido para una aplicación de ventas, esta aplicación debería permitir que un vendedor sincronizara la suscripción de extracción a petición haciendo clic en un botón. Puesto que un representante de ventas instalará y ejecutará la aplicación, también necesita poder configurar una suscripción y aplicar la instantánea inicial en el cliente. Opcionalmente, la aplicación utilizará la infraestructura que proporciona Windows para detectar la conectividad inalámbrica y sincronizar automáticamente la suscripción cuando se descubra una conexión.

  3. Siga todas las instrucciones de seguridad para la replicación, incluido el uso de la autenticación de Windows y una red privada virtual (VPN) al conectarse al publicador. Si está implementando la sincronización web, utilice una conexión de capa de sockets seguros (SSL). Para obtener más información, vea Configurar la sincronización web.

  4. Para aprovechar las características de .NET Framework, la aplicación se desarrolla utilizando un lenguaje de código administrado.

  5. Según estos requisitos, la interfaz administrada de Objetos de administración de la replicación (RMO) puede proporcionar toda la funcionalidad de la replicación que se necesita para esta aplicación.

Este escenario de ejemplo se ha implementado en una aplicación de ejemplo que se distribuye con SQL Server. Para obtener más información, vea AdventureWorks Sales Orders Sample for Merge Replication.