smart client cliene superinteligente

10
El termino sincronizar denota que un “evento ocurre al mismo tiempo que otro”. En ambientes de Computación, la sincronización de datos representa el proceso de hacer que dos conjuntos de datos sean aparentemente idénticos. Los objetivos a cumplir para realizar la sincronización de datos en sistema de dispositivos móviles son los siguientes: Mantener cada sistema con los datos actualizados: Si se piensa en una red donde sus datos están distribuidos, es indispensable que cada sistema cuente con datos actualizados. Reducir la carga sobre la red: El flujo de datos de la red puede ser reducido considerablemente si en lugar de consultar un servidor central, se accede a datos locales sincronizados. Datos consistentes: A pesar de que los clientes móviles contienen sus propios datos locales sincronizados, no siempre están conectados a la red. En esos momentos que no se posee conexión, el cliente móvil debe ser capaz de seguir operando sus sistemas con los datos locales obtenidos en la última sincronización. Resolver los conflictos surgidos: Cuando en una red existen varios clientes que utilizan los mismos sistemas sobre el mismo conjunto de datos, es posible que existan conflictos al querer sincronizar sus datos con los demás. Entregar Servicio de Calidad: Aplicaciones como voz y video, necesitan ir al mismo tiempo con cada entrega de información. Si las aplicaciones no pueden entregar el mínimo servicio de calidad requerido, las aplicaciones no podrán operar en forma óptima.

Upload: jose-de-jesus

Post on 16-Jan-2016

214 views

Category:

Documents


0 download

DESCRIPTION

desarrollo de aplicaciones moviles

TRANSCRIPT

Page 1: Smart Client cliene superinteligente

El termino sincronizar denota que un “evento ocurre al mismo tiempo que otro”. En

ambientes de Computación, la sincronización de datos representa el proceso de hacer

que dos conjuntos de datos sean aparentemente idénticos.

Los objetivos a cumplir para realizar la sincronización de datos en sistema de dispositivos

móviles son los siguientes:

Mantener cada sistema con los datos actualizados: Si se piensa en una red donde

sus datos están distribuidos, es indispensable que cada sistema cuente con datos

actualizados.

Reducir la carga sobre la red: El flujo de datos de la red puede ser reducido

considerablemente si en lugar de consultar un servidor central, se accede a datos

locales sincronizados.

Datos consistentes: A pesar de que los clientes móviles contienen sus propios

datos locales sincronizados, no siempre están conectados a la red. En esos

momentos que no se posee conexión, el cliente móvil debe ser capaz de seguir

operando sus sistemas con los datos locales obtenidos en la última sincronización.

Resolver los conflictos surgidos: Cuando en una red existen varios clientes que

utilizan los mismos sistemas sobre el mismo conjunto de datos, es posible que

existan conflictos al querer sincronizar sus datos con los demás.

Entregar Servicio de Calidad: Aplicaciones como voz y video, necesitan ir al mismo

tiempo con cada entrega de información. Si las aplicaciones no pueden entregar el

mínimo servicio de calidad requerido, las aplicaciones no podrán operar en forma

óptima.

Continuando, basados en cómo será la sincronización, se puede clasificar en dos

categorías : Sincronización Lenta (Slow sync) y Sincronización Rápida (Fast sync).

Sincronización Lenta: Durante la sincronización lenta, también conocida como

sincronización completa, todas las entradas de un dispositivo son enviadas hacia

el otro dispositivo. Una vez enviadas todas las entradas, se descartan todas las

entradas duplicadas y se detectan las nuevas o modificadas para finalmente

actualizar los restantes dispositivos. Este es un proceso largo y costoso en

recursos, pero a veces necesario según el dispositivo.

Sincronización Rápida: La sincronización rápida involucra el envío de los datos

que sólo han sido modificados. Las entradas modificadas sobre el servidor pueden

ser rastreadas en intervalos de tiempo. Similarmente en el cliente, se puede utilizar

Page 2: Smart Client cliene superinteligente

un indicador para saber si la entrada ha sido modificada. Mientras se realiza la

sincronización, todas las entradas en el cliente son enviadas y una vez terminada

la sincronización exitosa, se eliminan esos indicadores de las entradas. Este

mecanismo puede provocar la existencia de conflictos durante la sincronización.

Algunos conflictos pueden ser resueltos automáticamente combinando ambas

entradas y otros requieren que sus conflictos sean resueltos manualmente.

La sincronización de datos sobre dispositivos móviles no es tarea sencilla. Al encontrarse

sus datos dispersos sobre los dispositivos móviles y la pérdida de conexión que sufren los

mismos, es probable que se produzcan colisiones y conflictos entre los datos a

sincronizar. Esto último y otros temas más, los integra la herramienta que se propone en

este informe la cual se detalla a continuación.

ARQUITECTURA PARA APLICACIONES MÓVILES

La arquitectura que proponemos para las aplicaciones móviles consiste en incorporar un

administrador de la sincronización de datos, que denominamos Motor de Sincronización,

cuya función es permitir trabajar a las aplicaciones locales sin conexión y administrar las

tareas de la actualización de los datos

Este componente, motor de sincronización, está formado a su vez de subcomponentes o

módulos que pueden trabajar independientemente: uno que trabaja con la aplicación local

del dispositivo móvil y el otro que centraliza los datos de las aplicaciones. La componente

del motor de sincronización que reside en el dispositivo móvil, trabaja directamente con la

aplicación local del mismo y cuenta con lógica que le permite operar independientemente

al estado de la conexión del dispositivo. La otra componente del motor de sincronización,

es la encargada de centralizar los datos de las aplicaciones de los dispositivos móviles,

denominada componente central. Como se puede apreciar , tanto en la componente

central, como en la componente del dispositivo móvil, se cuenta con un motor de

sincronización. Con el fin de lograr diferenciarlos entre ellos, denominaremos Motor de

Sincronización Cliente al módulo que reside en el dispositivo móvil; y Motor de

Sincronización Servidor al módulo que está en la componente central.

Page 3: Smart Client cliene superinteligente

Arquitectura Smart Client

Por ahora usted probablemente sabe que las aplicaciones cliente inteligentes difieren

significativamente de cliente ligero, soluciones inalámbricas basadas en el navegador.

Como regla general, las aplicaciones cliente inteligentes permiten al usuario acceder a los

datos cuando se desconecta de la red. Hay muchas maneras en que esto se puede

lograr, pero para los propósitos de esta sección, vamos a centrarse en la creación de

aplicaciones que incorporan un almacén de datos persistente, y no sólo el uso de

mecanismos de caché simples.

La arquitectura de cliente inteligente se ilustra en la Figura 7.1. En el cliente, usted tiene la

interfaz de usuario, la lógica de negocio, así como un almacén de datos persistente. Esta

aplicación se comunica con una fuente de datos back-end, a menudo a través de un

servidor de sincronización intermedia. El propio flujo de la comunicación puede funcionar

ya sea inalámbrica oa través de una conexión alámbrica. Dependiendo de la tecnología

que se utilice, la conexión puede requerir una red basada en IP o una capa adicional de

comunicación para el proceso de sincronización.

Cuando este tipo de solución se implementa, rápidamente se hace evidente por qué se

llama una solución de cliente inteligente. Mediante la implementación de una aplicación

para el dispositivo en sí, usted tiene la capacidad de dar a la aplicación cliente de algún

"inteligencia", o la lógica. Esta lógica dicta muchos aspectos de la aplicación. Se

determina que la aplicación obtiene que los datos de (ya sea a nivel local o de una ida y

vuelta al servidor), ¿cómo se presenta y se almacenan los datos, así como el conjunto de

Page 4: Smart Client cliene superinteligente

datos que necesita ser comunicada de nuevo a los sistemas de la empresa a través de un

proceso de sincronización. En el espacio inalámbrico, el impacto de tener la lógica de

negocio en el dispositivo a menudo se pasa por alto como muchos vendedores y

desarrolladores se centran en las características técnicas de bajo nivel de una solución en

lugar de satisfacer las necesidades del usuario móvil.

El Cliente

Aplicaciones cliente inteligentes proporcionan muchas características atractivas para los

usuarios finales. Muchas de estas características residen en la aplicación cliente sí

mismo. Al proporcionar una interfaz de usuario con el almacenamiento de datos

persistente, las aplicaciones cliente inteligentes son adecuados para una gran variedad de

aplicaciones corporativas. Vamos a echar un vistazo más de cerca a cada uno de los

componentes que conforman el cliente de aplicaciones de cliente inteligente.

Interfaz de usuario

Inicialmente, la interfaz de usuario puede no parecer importante en el desarrollo de

aplicaciones móviles, como la mayoría de la gente siente que no siempre va a ser un

compromiso entre tamaño y facilidad de uso. Pero esta compensación no siempre tiene

que tener lugar. Aplicaciones cliente inteligentes pueden tener interfaces de usuario muy

sofisticadas. En la mayoría de los casos, que se programan utilizando herramientas de

desarrollo que cuentan con marcos amplios componentes. La incorporación de tablas,

listas desplegables, botones de opción y gráficos son operaciones sencillas. Esto

contrasta con las capacidades disponibles para la mayoría de las aplicaciones de Internet

inalámbricos, donde la interfaz de usuario es a menudo basado en texto con soporte

limitado para componentes gráficos.

Ya sea que usted está desarrollando para Palm OS, Windows CE, Symbian OS, o un

sistema basado en Java, se dará cuenta de que el desarrollo de la interfaz de usuario es

una parte muy importante de una aplicación exitosa. Cuando el tamaño de la pantalla es

limitado, como lo es para los dispositivos de mano, el desarrollador debe aprovechar al

máximo el espacio disponible. Además, poniendo especial énfasis en la navegación a

través de una aplicación es esencial. Los usuarios de aplicaciones móviles son a menudo

las mismas personas que han estado usando la aplicación basada en Windows avanzado

durante años; por lo tanto, tienen ciertas expectativas de usabilidad que se deben cumplir.

Una de las principales razones dadas por los consumidores por su lenta aceptación de

Page 5: Smart Client cliene superinteligente

aplicaciones inalámbricas es la complejidad de las soluciones disponibles. Esta

complejidad se debe generalmente al diseño de aplicaciones pobres, en lugar de

limitaciones técnicas. La obtención de la retroalimentación del usuario final durante la fase

de desarrollo a través de un prototipo puede ayudarle a abordar las preocupaciones de

usabilidad en una etapa temprana en el proceso de desarrollo de aplicaciones. En la

sección de sistemas operativos móviles más adelante en este capítulo, vamos a echar un

vistazo a los sistemas operativos móviles más populares y revisar los tipos de

aplicaciones que cada sistema operativo puede soportar.

Sincronización de Datos

En la mayoría de las arquitecturas de cliente inteligente, la mayor parte del trabajo de

sincronización de datos se ejecuta, no en el cliente, pero en un servidor de sincronización.

Sin embargo, todavía se requiere la aplicación cliente para tener una cierta cantidad de

conocimientos de sincronización. Como mínimo, el cliente tiene que conocer la ubicación

del servidor de sincronización, los detalles sobre el flujo de comunicación con el servidor,

qué datos tiene que ser sincronizada, y cómo manejar los datos entrantes desde el

servidor.

Si está desarrollando capa la sincronización de usted mismo, usted tendrá que tener en

cuenta estas cuestiones en el diseño de la aplicación. Si usted va a utilizar el software

disponible en el mercado, la mayoría de los proveedores ofrecen un módulo de cliente de

sincronización que incorpora la funcionalidad requerida con varios niveles de sofisticación.

(Capítulo 10, "Integración de la empresa a través de sincronización" ofrece una mirada

más cercana a las opciones disponibles para la sincronización de datos, tanto para el

cliente y el servidor.)

Mensajería

Aplicaciones cliente inteligentes también pueden tomar ventaja de los sistemas

inteligentes de mensajería de aplicación a aplicación de comunicar los datos. Para ello, un

componente de cliente tiene que ser capaz de enviar y recibir estos mensajes. Al recibir

un mensaje, tiene que ser lo suficientemente inteligente como para transmitir la

información de manera adecuada. Esta comunicación puede implicar notificar al usuario

directamente o, posiblemente, la actualización de un conjunto de los datos en el almacén

de datos cliente. De aplicación a aplicación de mensajería puede ser importante para las

aplicaciones que requieren una comunicación frecuente con los sistemas empresariales.

Page 6: Smart Client cliene superinteligente

Synchronization Fundamentals

In the previous chapter, we learned how persistent data storage enables users to access

enterprise data without being connected to a network. Without enterprise synchronization,

the data on the devices would quickly become stale, hence unsuitable for many corporate

applications. The synchronization process allows you to execute bidirectional updates on

the required data. Any changes that have been made on the client device can be

transmitted to the server database, and any changes on the server can be transmitted to

the client device. In this way, you can keep the data on the client and the server

synchronized.

Note

The term replication is often used in conjunction with synchronization, leading to some

confusion. Replication is the process of making a copy of something (a replica). In

database terminology, replication can be used to describe two processes: first, the

bidirectional transfer of data between systems, in which use it is a pseudonym for

synchronization; second, the one-way copying of data from one system to another,

wherein it is quite different from synchronization. To be consistent, we will use

synchronization, not replication, to describe the data transfer process.

Whether you are synchronizing over wireless networks or a wireline connection,

synchronization offers many important benefits over an always-connected solution,

namely:

Reduced data transfer over the network, often leading to reduced transmission costs.

Reduced loads on the enterprise server.

Faster data access, because the user does not have to constantly wait for data to

download.

Increased control over data availability.

In the following pages, we will take a look at how synchronization works and introduce

features you should consider as part of an enterprise synchronization solution.