Conceptos de la programación de replicación
Se aplica a: SQL Server
Azure SQL Instancia administrada
Antes de desarrollar una aplicación que utilice funcionalidades de replicación, debería seguir los pasos de planeamiento generales siguientes:
Definir la topología de replicación.
Definir la funcionalidad de la aplicación.
Planear la seguridad.
Elegir un entorno de desarrollo.
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.
Si no está familiarizado con la replicación de Microsoft SQL Server, consulte Tipos de 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 habitual ampliar la aplicación mediante la combinación de funcionalidades de replicación con otras funcionalidades proporcionadas por 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 del servidor mediante objetos de administración de SQL Server (SMO) | Una aplicación que permite que un administrador adjunte y configure una base de datos como publicador en una topología de replicación. |
Acceso a datos mediante 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:
Ver y modificar la configuración de seguridad de la replicación
Centro de seguridad para el Motor de base de datos de SQL Server y Azure SQL Database
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 las aplicaciones de SQL Server. Las interfaces de replicación administradas permiten la programación de la administración de replicación de forma orientada a objetos sin tener que conocer Transact-SQL y también proporciona algunas funcionalidades de devolución de llamada al ejecutar agentes de replicación que no están disponibles en scripts. El código administrado es el mejor entorno para desarrollar componentes reutilizables y aplicaciones de interfaz de usuario.
Scripting
Aplicaciones sencillas que ejecutan una serie de comandos como procedimientos almacenados del sistema de replicación en scripts de Transact-SQL o comandos en archivos por lotes. Aunque puede ejecutar scripts en un entorno administrado mediante el proveedor administrado de SQL Server en proceso, la misma funcionalidad se puede obtener mediante interfaces de replicación administradas, que también proporcionan funcionalidades de devolución de llamada. El scripting es el mejor entorno para ejecutar tareas que se ejecutarán solo 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 usan en la replicación de SQL Server o Compatibilidad con versiones anteriores de replicación.
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 elegido. En la tabla siguiente se muestran las interfaces de programación de la replicación disponible.
Interfaz | Entorno | Usos |
---|---|---|
Replication Management Objects Concepts | 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) | Scripting | Administración y supervisión. |
Conceptos de los ejecutables del Agente de replicación | Scripting | Sincronización. |
Ejemplo
En Adventure Works, los datos deben publicarse para 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:
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.
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.
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 implementa la sincronización web, use una conexión con la Seguridad de la capa de transporte (TLS), conocida anteriormente como Capa de sockets seguros (SSL). Para más información, consulte Configure Web Synchronization.
Para aprovechar las características de .NET Framework, la aplicación se desarrolla mediante un lenguaje de código administrado.
Según estos requisitos, la interfaz administrada de Replication Management Objects (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 la aplicación de ejemplo AdventureWorks que se puede descargar para SQL Server.