Intercambiar datos con usuarios móviles
Proporcionar y recopilar datos de usuarios móviles es una parte fundamental de muchas aplicaciones. La mayoría de aplicaciones que admiten usuarios móviles forman parte de una de dos grandes categorías:
Administración de relaciones con clientes (CRM) y Automatización del personal de ventas (SFA)
Por ejemplo, un vendedor puede utilizar una aplicación SFA para incluir datos de un pedido cuando visita a un cliente. Estos datos se transmiten posteriormente a una ubicación central, como la oficina central de una empresa o un centro de datos.
Automatización del personal de campo (FFA)
Por ejemplo, el personal de campo (repartidores, personal de mantenimiento, inspectores y otros) puede utilizar una aplicación FFA en un dispositivo de mano para recopilar y transmitir datos desde ubicaciones remotas. Un repartidor podría proporcionar datos sobre entregas de paquetes en los sitios de entrega y transmitir de nuevo estos datos a una ubicación central.
Las dos categorías de aplicaciones requieren características de replicación muy similares. La diferencia principal entre las aplicaciones es si los datos son actualizados por varios usuarios. Este problema se trata en la sección "Requisitos comunes para este escenario" en este tema.
En los siguientes diagramas se ilustran dos métodos diferentes de entregar datos a usuarios móviles: en uno se utilizan equipos portátiles y en el otro se utilizan otros dispositivos (que ejecutan Microsoft SQL Server Compact 3.5 SP2). El primer método es el que se utiliza normalmente con aplicaciones SFA y CRM, y el segundo método se utiliza habitualmente con aplicaciones FFA. No obstante, podría utilizarse cualquier método en cada categoría de aplicaciones.
En el primer diagrama se ilustra un escenario en el que un grupo de usuarios con equipos portátiles se conecta directamente a un sitio central:
En el segundo diagrama se ilustra un escenario en el que los usuarios con dispositivos se conectan a un sitio central a través de servidores con Microsoft Windows Internet Information Services (IIS). Los servidores IIS son necesarios cuando se utiliza SQL Server Compact 3.5 SP2.
Ejemplos de Adventure Works Cycles
Adventure Works Cycles es una compañía ficticia que se utiliza para mostrar situaciones y conceptos de bases de datos. Para obtener más información, vea Bases de datos de ejemplo AdventureWorks2008R2.
Adventure Works Cycles tiene un gran equipo de ventas que invierte mucho tiempo en el campo trabajando directamente con los principales clientes de la compañía, distribuidores de bicicletas bajo franquicias e independientes. Los equipos de vendedores se asignan a regiones y cada vendedor normalmente controla sus propios clientes. No obstante, los directores y el personal de ventas pueden compartir los datos de clientes. El personal de ventas incluye los datos de los pedidos en sus equipos portátiles y los transmiten a la oficina central cuando conviene.
Adventure Works Cycles utiliza A-1 Shipping para las entregas de piezas y bicicletas completas. Todos los repartidores de A-1 Shipping utilizan dispositivos que ejecutan SQL Server Compact 3.5 SP2. Los repartidores incluyen los datos de cada entrega después de haberla realizado. Estos datos se replican en la oficinal central de A-1 Shipping y se eliminan del dispositivo. A continuación, los datos pasan a estar disponibles para Adventure Works Cycles a través de una extranet de cliente.
Requisitos comunes para este escenario
Normalmente, las aplicaciones CRM, SFA y FFA tienen las siguientes características, que debe cubrir una solución de replicación adecuada:
La sincronización de datos debe ser programable, para que una aplicación en un equipo portátil o dispositivo se pueda personalizar para incluir la sincronización sin necesidad de conocimientos de la replicación por parte de los usuarios finales.
En la mayoría de aplicaciones móviles, los datos se pueden incluir y actualizar en el sitio central y en los sitios remotos. En las aplicaciones FFA, la mayoría de datos se introducen en sitios remotos.
Los usuarios remotos incluyen y actualizan datos utilizando un equipo portátil, dispositivo o Tablet PC.
Los usuarios remotos deben poder realizar actualizaciones independientemente, sin necesidad de una conexión al sitio central.
Puesto que muchos usuarios podrían actualizar los mismos datos de forma independiente, pueden producirse conflictos de datos y éstos deben controlarse.
Algunos datos sólo se deben actualizar en el sitio central; por ejemplo, los datos de las tablas de precios de productos.
Los usuarios deben poder sincronizar datos a petición, en vez de sólo a horas programadas.
La aplicación debe controlar durante cuánto tiempo puede estar sin sincronizarse un sitio remoto.
Algunas tablas requieren filtros, por lo que cada usuario recibe diferentes datos de una o varias tablas. Por ejemplo, cada vendedor sólo recibe información de contacto de sus clientes.
Algunos datos deben tratarse como una unidad cuando se transfieren entre sitios. Por ejemplo, si se envía un pedido desde un usuario remoto al sitio central, el encabezado del pedido debe confirmarse antes que los detalles del pedido.
La aplicación puede necesitar que se ejecute lógica de negocios personalizada al sincronizar los datos.
La aplicación puede requerir que se sincronicen datos por Internet en vez de a través de una conexión de red de acceso telefónico VPN o IPSEC.
La principal diferencia entre las aplicaciones CRM y SFA y las aplicaciones FFA respecto a la replicación es si los datos son actualizados por más de un usuario (las actualizaciones por más de un usuario pueden provocar conflictos). La cantidad de datos que se actualizan por varios usuarios depende de la medida en que se filtran los datos. Por ejemplo, si los datos se filtran para que todos los usuarios sólo actualicen su propio conjunto de datos, no se producirían conflictos entre usuarios:
En aplicaciones CRM y SFA, los datos normalmente se filtran, pero algunos de ellos se actualizan en más de un sitio. Algunos datos únicamente se actualizan en la oficina central, otros son actualizados por un solo usuario remoto y algunos otros por varios usuarios remotos. En el siguiente diagrama se ilustra el filtrado común a aplicaciones CRM y SFA:
Lo habitual en aplicaciones FFA es recopilar los datos principalmente in situ y, después, cargarlos en la oficina central sin que se produzca ningún conflicto, ya que en este caso solamente un usuario remoto actualiza cada dato concreto. En el siguiente diagrama se ilustra el filtrado común a aplicaciones FFA:
Tipo de replicación que se debe utilizar en este escenario
SQL Server utiliza una metáfora del sector editorial para describir los componentes del sistema de replicación. Los componentes incluyen el publicador, los suscriptores, las publicaciones y artículos, y las suscripciones. En los dos diagramas anteriores, el sitio central es el publicador. Los datos en el sitio central son la publicación, donde cada tabla de datos es un artículo (los artículos también pueden ser otros objetos de base de datos, por ejemplo procedimientos almacenados). Cada equipo portátil del vendedor y dispositivo del repartidor es un suscriptor de la publicación y recibe el esquema y los datos como una suscripción. Para obtener más información sobre los componentes del sistema, vea Información general del modelo de publicación de replicación.
SQL Server ofrece diferentes tipos de replicación para distintos requisitos de aplicación: replicación de instantáneas, replicación transaccional y replicación de mezcla. La mejor implementación para este escenario es la replicación de mezcla, que se adapta perfectamente para controlar los requisitos descritos en la sección anterior. Para obtener más información sobre la replicación de mezcla, vea Información general sobre la replicación de mezcla y Cómo funciona la replicación de mezcla.
Opciones de la replicación de mezcla relacionadas con este escenario
La replicación de mezcla ofrece varias opciones para cubrir los requisitos descritos anteriormente en este tema. La siguiente lista presenta cada requisito y las opciones de la replicación de mezcla que lo cubren.
La sincronización de datos debe ser programable.
La replicación ofrece capacidad de programación mediante procedimientos almacenados y Objetos de administración de replicación (RMO). RMO se utiliza normalmente en aplicaciones móviles. Para obtener más información sobre cómo programar la replicación, vea Guía del desarrollador (replicación) y Sales Orders Sample Scenario.
En la mayoría de aplicaciones móviles, los datos se pueden incluir y actualizar en el sitio central y en los sitios remotos. En las aplicaciones FFA, la mayoría de datos se introducen en sitios remotos.
La replicación de mezcla proporciona esta capacidad sin especificar ninguna otra opción.
Los usuarios remotos incluyen y actualizan datos utilizando un equipo portátil, dispositivo o Tablet PC.
Los equipos portátiles y los Tablet PC pueden ejecutar SQL Server Standard y otras ediciones (incluyendo SQL Server Compact 3.5 SP2) pero los dispositivos Pocket PC requieren SQL Server Compact 3.5 SP2. La replicación de mezcla permite crear publicaciones y suscripciones que se pueden utilizar con SQL Server Compact 3.5 SP2. Para obtener más información, vea Replicar datos en SQL Server Compact.
Los usuarios remotos deben poder realizar actualizaciones independientemente, sin necesidad de una conexión al sitio central.
La replicación de mezcla proporciona esta capacidad sin especificar ninguna otra opción.
Puesto que muchos usuarios podrían actualizar los mismos datos de forma independiente, pueden producirse conflictos de datos y éstos deben controlarse.
La replicación de mezcla proporciona detección y resolución de conflictos en casos en los que se esperan conflictos de datos. Lo mejor es diseñar aplicaciones para evitar conflictos, pero si no es posible se puede seleccionar el mecanismo de resolución de conflictos predeterminado (el primero gana) o utilizar la resolución de conflictos personalizada. Para obtener más información, vea Detectar y resolver conflictos de replicación de mezcla.
Algunos datos sólo se deben actualizar en el sitio central; por ejemplo, los datos de las tablas de precios de productos.
La replicación de mezcla proporciona artículos de sólo descarga de aquellas tablas que deben actualizarse sólo en el publicador. Para obtener más información, vea Optimizar el rendimiento de la replicación de mezcla con artículos de sólo descarga.
Los usuarios deben poder sincronizar datos a petición, en vez de sólo a horas programadas.
La replicación ofrece dos tipos de suscripciones: suscripciones de inserción y suscripciones de extracción. Las suscripciones de extracción se adaptan mejor a la sincronización a petición. Para obtener más información sobre los tipos de suscripciones y la programación de la sincronización, vea Suscribirse a publicaciones y Sincronizar datos.
La aplicación debe controlar durante cuánto tiempo puede estar sin sincronizarse un sitio remoto.
La replicación de mezcla permite establecer un período de caducidad de la suscripción para asegurarse de que todos los suscriptores se han sincronizado en un período de tiempo determinado. Para obtener más información, vea Desactivación y caducidad de las suscripciones.
Algunas tablas requieren filtros, por lo que cada usuario recibe diferentes datos de una o varias tablas. Por ejemplo, cada vendedor sólo puede recibir información de contacto de sus clientes.
La replicación de mezcla permite filtrar columnas y filas. Los filtros de fila pueden ser estáticos o con parámetros. Un filtro estático sólo se aplica cuando se crea una publicación, lo que da como resultado un conjunto de datos. Un filtro con parámetros se aplica cada vez que un suscriptor se sincroniza, lo que da como resultado un conjunto de datos diferente para cada suscriptor. Las aplicaciones CRM y SFA con frecuencia utilizan filtros con parámetros, pero también pueden utilizar filtros estáticos. Para obtener más información, vea Filtrar datos publicados para la replicación de mezcla.
Algunos datos deben tratarse como una unidad cuando se transfieren entre sitios. Por ejemplo, si se envía un pedido desde un usuario remoto al sitio central, el encabezado del pedido debe confirmarse antes que los detalles del pedido.
La replicación de mezcla permite especificar que un conjunto de tablas relacionadas deben procesarse como una unidad. Esta unidad se conoce como registro lógico. Para obtener más información, vea Agrupar cambios en filas relacionadas con registros lógicos.
La aplicación puede necesitar que se ejecute lógica de negocios personalizada al sincronizar los datos.
La replicación de mezcla permite especificar código que se debe ejecutar durante la sincronización. Este código puede responder a una amplia variedad de eventos y tiene acceso a los datos que se van a sincronizar. Para obtener más información, vea Ejecutar la lógica de negocios durante la sincronización de mezcla.
La aplicación puede requerir que se sincronicen datos por Internet en vez de a través de una conexión dedicada.
Si se utiliza (SQL Server Compact 3.5 SP2), los datos se sincronizan a través de una conexión HTTP o HTTPS. En otros ediciones de SQL Server, puede utilizar la sincronización Web, que requiere HTTPS. Para obtener más información, vea Sincronización Web para la replicación de mezcla.
Pasos para implementar este escenario
Para implementar este escenario, primero debe crear una publicación y suscripciones y, a continuación, inicializar cada suscripción. Para obtener más información sobre cada paso, haga clic en los siguientes vínculos:
Cuando la suscripción se haya inicializado y los datos fluyan entre el publicador y los suscriptores, es posible que necesite consultar los siguientes temas para obtener información sobre tareas habituales de administración y supervisión: