Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Antes de desarrollar una aplicación que use funcionalidades de replicación, debe seguir los siguientes pasos de planeamiento general:
Defina la topología de replicación.
Defina la funcionalidad de la aplicación.
Planee la seguridad.
Elija un entorno de desarrollo.
Elija la interfaz de programación de replicación adecuada.
En el resto de este tema se describen estos pasos con más detalle. Para ayudar a ilustrar el proceso de planeación, se ha incluido un ejemplo.
Definición de la topología de replicación
El primer paso de la replicación de programación es definir la topología de replicación para la aplicación. Si va a escribir una aplicación que usará una topología de replicación existente, como una aplicación cliente que accede a los datos de un suscriptor existente, debe pasar al paso siguiente.
Nota:
En algunos casos, la implementación de la topología de replicación será el único propósito de la aplicación.
La topología de replicación que defina depende de muchos factores, incluidos los siguientes:
Si es necesario actualizar o no los datos replicados y quién.
Las necesidades de distribución de datos con respecto a la coherencia, la autonomía y la latencia.
El entorno de replicación, incluidos los usuarios empresariales, la infraestructura técnica, la red y la seguridad, y las características de datos.
Los tipos de opciones de replicación y replicación.
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.
Definición de la funcionalidad de la aplicación
Una vez definida la topología de replicación, debe decidir las funcionalidades que ofrecerá la aplicación. Estas funcionalidades pueden variar desde un script que sincroniza una suscripción a una aplicación con una interfaz de usuario para configurar la replicación. La replicación admite las siguientes tareas de programación generales:
Configuración de la replicación.
Sincronización de suscriptores.
Mantenimiento de una topología de replicación.
Supervisión de una topología de replicación.
Solución de problemas de 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 puede 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 a un administrador adjuntar y configurar una base de datos como publicador en una topología de replicación. |
| Acceso a datos mediante ADO.NET | Una aplicación que permite a los usuarios acceder mediante programación y cambiar los datos de ventas replicados en una base de datos de suscriptor local mientras está sin conexión y, a continuación, conectar y sincronizar la suscripción de extracción haciendo clic en un botón. |
Planeación de la seguridad
La seguridad es importante en cualquier aplicación y se debe completar el planeamiento de la seguridad antes de escribir cualquier código. La seguridad de las aplicaciones se puede dividir en tres partes principales: proteger la base de datos, proteger la replicación y escribir código seguro.
Los temas siguientes proporcionan información sobre la seguridad:
Elección de un entorno de desarrollo
Al desarrollar una aplicación de replicación, hay tres entornos de desarrollo básicos que se deben tener en cuenta. Cada entorno de desarrollo 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 siguientes entornos.
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.
programación de scripts
Aplicaciones simples que ejecutan una serie de comandos como procedimientos almacenados del sistema de replicación en Transact-SQL scripts 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 unas pocas veces y en los que no se requieren funcionalidades de devolución de llamada, como la instalación de un servidor de replicación.
Código nativo
Entorno de desarrollo orientado a objetos que utiliza acceso directo al sistema o objetos COM, de modo que clR no administra el código. Las interfaces de replicación de código nativo están en desuso o se descontinuan. Para obtener más información, vea Características en desuso en replicación de SQL Server o compatibilidad con versiones anteriores de replicación.
Elegir la interfaz de programación de replicación adecuada
El paso de planeación final es elegir la interfaz de programación de 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 replicación disponibles.
| Interfaz | Medio ambiente | Usa |
|---|---|---|
| Conceptos de objetos de gestión de replicación | 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 lógica personalizada con el proceso de sincronización de mezcla. |
| Procedimientos almacenados de replicación (Transact-SQL) | Escritura de scripts | Administración y supervisión. |
| Conceptos de los ejecutables del Agente de replicación | Escritura de scripts | 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 tendrán que usar equipos portátiles o asistentes digitales personales (PDA) para cambiar los datos de los clientes y agregar nuevos pedidos. 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 planeación pueden tener un aspecto similar al siguiente:
La topología de replicación de esta aplicación ya existe. Sin embargo, se debe crear una nueva suscripción de extracción en el cliente. La publicación debe usar filtros con parámetros para replicar un conjunto único de datos en cada representante de ventas.
Además del acceso a datos típico necesario para una aplicación de ventas, esta aplicación debe permitir que un vendedor sincronice la suscripción de extracción a petición haciendo clic en un botón. Dado que un representante de ventas instalará y ejecutará la aplicación, también debe poder configurar una suscripción y aplicar la instantánea inicial en el cliente. Opcionalmente, la aplicación usará la infraestructura proporcionada por Windows para detectar la conectividad inalámbrica para sincronizar automáticamente la suscripción cuando se detecta una conexión.
Siga todas las directrices 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 de capa de sockets seguros (SSL). Para obtener más información, vea Configurar sincronización web.
Para aprovechar las características de .NET Framework, la aplicación se desarrolla mediante un lenguaje de código administrado.
En función de estos requisitos, la interfaz administrada Replication Management Objects (RMO) puede proporcionar toda la funcionalidad de replicación necesaria para esta aplicación.
Este escenario de ejemplo se ha implementado en una aplicación de ejemplo que se incluye con SQL Server.