Modelo de Soporte de Operaciones Offline en Dispositivos Móviles para una Biblioteca Digital-Edición Única

138  Descargar (0)

Texto completo

(1)

Lic. Arturo Azuara Flores:

Director de Asesoría Legal del Sistema

Por medio de la presente hago constar que soy autor y titular de la obra titulada

en los sucesivo LA OBRA, en virtud de lo cual autorizo a el Instituto Tecnológico y de Estudios Superiores de Monterrey (EL INSTITUTO) para que efectúe la divulgación, publicación, comunicación pública, distribución y reproducción, así como la

de la misma, con fines académicos o propios al objeto de EL INSTITUTO.

El Instituto se compromete a respetar en todo momento mi autoría y a otorgarme el crédito correspondiente en todas las actividades mencionadas anteriormente de la obra.

(2)

Modelo de Soporte de Operaciones Offline en Dispositivos

Móviles para una Biblioteca Digital-Edición Única

Title Modelo de Soporte de Operaciones Offline en Dispositivos

Móviles para una Biblioteca Digital-Edición Única

Authors Luis Ramiro Basto Díaz

Affiliation ITESM-Campus Monterrey

Issue Date 2006-05-01

Item type Tesis

Rights Open Access

Downloaded 19-Jan-2017 12:01:21

(3)

INSTITUTO TECNOLÓGICO Y DE ESTUDIOS SUPERIORES DE

MONTERREY

CAMPUS MONTERREY

PROGRAMA DE GRADUADOS EN TECNOLOGÍAS DE

INFORMACIÓN Y ELECTRÓNICA

MODELO DE SOPORTE DE OPERACIONES OFFLINE EN

DISPOSITIVOS MÓVILES PARA UNA BIBLIOTECA DIGITAL

TESIS

PRESENTADA COMO REQUISITO PARCIAL PARA

OBTENER EL GRADO ACADÉMICO DE:

MAESTRO EN CIENCIAS EN TECNOLOGÍA INFORMÁTICA

POR:

LUIS RAMIRO BASTO DÍAZ

(4)

INSTITUTO TECNOLÓGICO DE ESTUDIOS SUPERIORES DE

MONTERREY

DIVISIÓN DE TECNOLOGÍAS DE INFORMACIÓN Y ELECTRÓNICA

PROGRAMA DE GRADUADOS EN TECNOLOGÍAS DE INFORMACIÓN Y ELECTRÓNICA

Los miembros del comité de tesis recomendamos que la presente tesis del LCC.

LUIS RAMIRO BASTO DÍAZ sea aceptada como requisito parcial para obtener el grado

académico de Maestro en Ciencias en Tecnología Informática.

Comité de tesis:

______________________________

Dra. Lorena Guadalupe Gómez Martínez

Asesor

______________________________

Dr. Juan Carlos Lavariega Jarquín

Sinodal

______________________________

Dr. David A. Garza Salazar Sinodal

_________________________________________

Dr. David A. Garza Salazar

Director del Programa de Graduados en Tecnologías de Información y Electrónica

(5)

MODELO DE SOPORTE DE OPERACIONES OFFLINE EN

DISPOSITIVOS MÓVILES PARA UNA BIBLIOTECA DIGITAL

POR:

LUIS RAMIRO BASTO DÍAZ

TESIS

Presentada al Programa de Graduados en Tecnologías de Información y

Electrónica

Este trabajo es requisito parcial para obtener el grado de Maestro en Ciencias

en Tecnología Informática

INSTITUTO TECNOLÓGICO Y DE ESTUDIOS

SUPERIORES DE MONTERREY

(6)

Agradecimientos

Gracias a Dios

Por estar presente en mí en todo momento, y por no dejarme caer en aquellos instantes difíciles. ¡Por la Cruz, a la Luz!

A mi asesora

Por su apoyo brindado en este trabajo.

Al Dr. David Garza

Quede una u otra forma me apoyó, siempre de manera objetiva, durante este proyecto y en general durante la etapa de la maestría.

A mis compañeros de PDLib

Gracias por su valioso apoyo y aportaciones a este proyecto. Gracias especiales a Francisco

Álvarez, Miguel Arellano y Eugenio Flores.

A mis compañeros de maestría

(7)

Dedicatoria

Al gran amor de mi vida

A ti Vale, por tu paciencia y esmero. Porque sin tí, este logro no sería gratificante para mi. Te amo.

A mis padres,

Que siempre han estado conmigo y que con su amor me han apoyado en todos los proyectos de mi vida. Todo esto es por y para ustedes Gracias Papás.

A mis hermanas

Que siempre me han apoyado y alentado a seguir adelante, y que aún lejos de ustedes están pendientes de mí. Las quiero mucho.

A mis sobrinitos

(8)

Tabla de Contenido

RESUMEN ... 1

1.1PLANTEAMIENTO DEL PROBLEMA... 3

1.2ORGANIZACIÓN DE LA TESIS... 6

CAPÍTULO 2: ANTECEDENTES ... 7

2.1FUNDAMENTO TEÓRICO... 7

2.1.1 Características y Retos del Cómputo Móvil... 7

2.1.2 Dispositivos Móviles... 10

2.1.4 El proyecto PDLib: Personal Digital Library... 14

2.1.5 Lenguaje de Programación para Dispositivos Móviles... 19

2.1.6 Mecanismo de almacenamiento en J2ME... 21

2.1.7 Representación de datos con XML... 21

2.1.8 Protocolo de comunicación en ambientes móviles... 24

2.1.9 Uso de SyncML para la sincronización de datos... 25

2.1.10 XML como intermediario de representación de datos... 28

2.2OTROS PROYECTOS QUE MANEJAN EL CONCEPTO OFF-LINE... 28

2.2.1 Mecanismos de soporte a operaciones desconectadas en ambientes móviles... 28

2.2.2 Contratos de servicios para operaciones desconectadas... 29

2.2.3 CODA... 30

2.3RESUMEN... 31

CAPÍTULO 3: MODELO DE OPERACIONES OFFLINE... 33

3.1INTRODUCCIÓN... 33

3.2ESCENARIOS DEL MANEJO DE LAS OPERACIONES OFFLINE... 35

3.3MODELO DE LAS OPERACIONES OFFLINE... 37

3.3.1 Arquitectura... 37

3.3.2 Modelo de las operaciones offline realizadas en el mismo dispositivo... 39

3.3.3 Comunicación peer to peer entre dispositivos móviles... 41

3.4OPERACIONES OFFLINE EN PDLIB... 42

3.5SINCRONIZACIÓN DE DATOS... 45

3.6ESTRUCTURA DE LA BIBLIOTECA DIGITAL LOCAL (XML)... 54

3.7SINCRONIZACIÓN DESDE EL DISPOSITIVO HACIA EL MCM... 58

3.8RESUMEN... 65

CAPÍTULO 4: IMPLEMENTACIÓN DEL MODELO... 66

4.1INTRODUCCIÓN... 66

4.2OPERACIONES DISPONIBLES EN EL PROTOTIPO... 66

4.3SINCRONIZACIÓN... 67

4.3.1 Sincronización del Servidor al Cliente... 68

4.3.2 Sincronización del Cliente al Servidor... 83

4.4RESULTADOS DE LAS PRUEBAS... 84

4.5RESUMEN... 87

CAPÍTULO 5: CONCLUSIONES Y TRABAJO FUTURO... 88

5.1CONCLUSIONES... 88

5.2TRABAJO FUTURO... 89

GLOSARIO... 92

APÉNDICE ... 95

(9)

Lista de Figuras

Figura 2.1: Arquitectura de un sistema de base de datos móvil [1]... 8

Figura 2.2: Modelo de Datos de PDLib [7] ... 15

Figura 2.3 Arquitectura de PDLib [28]... 16

Figura 2.4 Tecnología J2ME [23]... 20

Figura 2.5. Ejemplo de un documento XML... 22

Figura 2.6: Funcionamiento del protocolo XML-RPC [22]... 24

Figura 2.7Código ejemplo, el cliente envía información al servidor ... 26

Figura 3.1 Conexión directa entre el cliente móvil y el MCM ... 33

Figura 3.2 Tipos de desconexiones entre el cliente móvil y el servidor de datos ... 34

Figura 3.3 Motivación en el trabajo propuesto ... 34

Figura 3.4 Comunicación entre: Clientes, MCM y el Servidor de Datos... 37

Figura 3.5: Arquitectura General de las operaciones offline... 38

Figura 3.6: Arquitectura de las operaciones offline... 39

Figura 3.7: Comunicación entre dispositivos y un servidor de datos... 46

Figura 3.8 Sincronización de Dispositivos Móviles con una Base de Datos... 47

Figura 3.9: El Servidor de Datos actualiza al cliente móvil mediante el MCM... 48

Figura 3.10: El cliente móvil actualiza al mediante el MCM... 48

Figura 3.11: El cliente móvil y el servidor de mediante el MCM datos actualizan su información... 48

Figura 3.12: Diagrama de secuencia para obtención del skeleton ... 50

Figura 3.13: Diagrama de secuencia para la ejecución de las operaciones offline... 51

Figura 3.14 Estructura lógica de la biblioteca digital (Skeleton) ... 54

Figura 3.15 Ejemplo de la estructura lógica de una biblioteca digital (Skeleton.xml) ... 56

Figura 3.16 Sintaxis de la operación Collection Retrieval... 57

Figura 3.17 Sintaxis de la operación Document Retrieval... 57

Figura 3.18 Formato del documento XML de operaciones offline... 58

Figura 3.19 Sintaxis de la operación Create Collection ... 59

Figura 3.20 Sintaxis de la operación Delete Collection... 59

Figura 3.21 Sintaxis de la operación Move Collection ... 60

Figura 3.22 Sintaxis de la operación Create Document... 61

Figura 3.23 Sintaxis de la operación Delete Document ... 61

Figura 3.24 Sintaxis de la operación Copy Document ... 62

Figura 3.25 Sintaxis de la operación Email ... 63

Figura 3.26 Sintaxis de la operación Set Collection MetadataSet ... 63

Figura 3.27 Sintaxis de la operación Create Document... 64

Figura 3.28 Sintaxis de las operaciones Set Collection/Document Permission ... 64

Figura 4.1 Opciones de sincronización ... 68

Figura 4.2 Forma para la autenticación de usuarios... 69

Figura 4.3 Estructura de la biblioteca digital local ... 70

Figura 4.4 Navegación por las colecciones... 70

Figura 4.5 Menú de operaciones ... 71

Figura 4.6 Ver permisos de una colección ... 72

Figura 4.7 Opción crear documentos... 72

Figura 4.8 Editar metadatos... 73

Figura 4.9. Opción compose document ... 73

Figura 4.10 Etiquetas de la operación Create Document ... 74

Figura 4.11 Editor del contenido del documento ... 74

Figura 4.12 vista del documento creado ... 74

Figura 4.13 Opción ver documentos ... 75

Figura 4.14 Información del documento seleccionado... 76

Figura 4.15 Ver contenido del documento... 77

Figura 4.16 Ver metadatos ... 77

(10)

Figura 4.18 Copiar o Mover el documento ... 78

Figura 4.19 Opción de crear colecciones... 79

Figura 4.20 Pantalla de crear colecciones... 79

Figura 4.21 Vista de la nueva colección... 80

Figura 4.22 Alerta al crear colección ... 80

Figura 4.23 etiquetas de la operación Create Collection... 80

Figura 4.24 Opción de eliminar colecciones... 81

Figura 4.25 Aviso de eliminar colección ... 81

Figura 4.26 Etiquetas de la operación Delete Collection ... 81

Figura 4.27 Opción de eliminar documentos ... 82

Figura 4.28 Aviso de eliminar documentos ... 82

Figura 4.29 Etiquetas de la operación Delete Document... 82

(11)

Lista de Tablas

Tabla 2.1 Servicios en dispositivos Móviles ... 10

Tabla 2.2: porcentaje de ventas de las PDA’s por compañía [17]... 12

Tabla 2.3 Ventajas y desventajas de Palm OS y Windows CE ... 13

Tabla 2.4 Características principales de Palm OS y Windows CE ... 13

Tabla 2.5 Ventas de PDA’s por Sistema Operativo en el primer cuarto del 2005 [17] ... 14

Tabla 2.6: Operaciones en PDLib ... 18

Tabla 3.1: Operaciones en PDLib que pueden manejarse fuera de línea ... 44

Tabla 4.1: Operaciones implementadas en el prototipo... 67

Tabla 4.2 Memoria utilizada en la aplicación y el parseo del Skeleton ... 84

Tabla 4.3 Número de Colecciones y documentos en una biblioteca de 770KB ... 85

Tabla 4.4 Tiempos de obtención y parseo de la estructura de una biblioteca de 770KB ... 85

Tabla 4.5 Colecciones y documentos en una biblioteca de 1.82MB... 86

(12)

Resumen

El campo de las bibliotecas digitales ha evolucionado con el tiempo, ya que a principios solo se podía tener acceso a documentos o archivos de texto digitalizados, sin embargo hoy en día, la información puede ser almacenada de muchas formas, documentos de texto, sonidos, imágenes fijas y en movimiento. Debido a esto, existe la necesidad de poder contar con repositorios para almacenar dicha información y poder consultarla en cualquier momento. En el proyecto PDLib (Personal Digital Library) que se realiza en el ITESM campus Monterrey, se propone una arquitectura para las bibliotecas digitales con soporte a dispositivos móviles (PDA’s, TabletPC, Laptop). En PDLib, el usuario móvil puede realizar operaciones o puede obtener servicios que el servidor le ofrece solamente cuando existe una conexión activa entre estos elementos, es decir, si el usuario móvil no cuenta con una conexión con el servidor en un momento determinado, entonces no podrá obtener los servicios de su biblioteca digital. Debido a esto, nace la necesidad de crear un mecanismo para soporte de operaciones offline en bibliotecas digitales personales soportadas por dispositivos móviles.

(13)

Capítulo 1: Introducción

La tecnología inalámbrica, se ha convertido en uno de los principales puntos de estudio en relación a la transmisión de voz y datos, sobretodo en aquellos lugares donde no es posible instalar las redes alámbricas. La variedad en su aplicación es muy amplia, desde conectarse con una computadora en una WLAN, o comunicaciones vía satélite tipo GPS. La tecnología inalámbrica ha ayudado a cubrir la necesidad de movilidad, logrando unir usuarios de computadoras portátiles manteniendo la conexión a la red aún cuando están en movimiento, a este tipo de tecnología se le ha llamado cómputo móvil [27].

El cómputo móvil apareció a principio de los 90’s con el campo de los sistemas distribuidos y con la aparición de las laptops y de las redes inalámbricas. Se refiere a la interconexión de varios dispositivos los cuales tienen acceso a diferentes redes de información, estos dispositivos están conectados en cualquier lugar, y en cualquier momento [1].

Los dispositivos móviles como su nombre lo indica, pueden estar moviéndose por un área específica y aún así mantener una conexión con la red y con otros dispositivos, ya sea móviles (como las laptops, Asistentes Personales Digitales o PDA’s, TabletPC’s, teléfonos celulares etc.), o a dispositivos fijos (servidores, estaciones de trabajo, impresoras, etc.). Los dispositivos fijos a diferencia de los móviles, necesitan cableado físico, para conectarse a la red.

Con el crecimiento del cómputo móvil y la disponibilidad de los dispositivos móviles se ha creado un ambiente de cómputo global que tiene un papel importante en las actividades diarias de millones de personas en el mundo entero. Los usuarios pueden: comunicarse, trabajar y en general usar todos los dispositivos conectados a la red que provee el acceso a datos u otros dispositivos independientemente de su ubicación geográfica.

Algunas de las características principales del cómputo móvil y que lo hacen interesante son [27]:

1. Proporcionar un soporte para las notificaciones rápidas en los eventos críticos. 2. Acceso a repositorios de información en cualquier lugar y en cualquier momento.

3. Comunicación adaptable

4. y sobre todo la cooperación entre los usuarios.

(14)

Los dispositivos de hoy en día pueden conectarse con relativa facilidad a una red inalámbrica, aunque son muy reducidos en tamaño y poder de cómputo su portabilidad los hace ser de gran beneficio para los usuarios que están en movimiento constante, sin embargo estas características traen consigo nuevos retos para el campo de la informática.

Un concepto innovador en el ambiente móvil es el que se presenta en [28], donde se propone el acceso a una biblioteca digital con soporte a clientes móviles a través de un middleware. Este concepto, provee a los usuarios móviles acceder a bibliotecas digitales desde cualquier lugar y en cualquier tiempo.

1.1 Planteamiento del Problema

El ambiente móvil ha impuesto nuevos retos para el campo de la informática. Estos retos hacen que los sistemas móviles sea un área de investigación prometedora. Los retos fundamentales en el cómputo móvil son los siguientes [5]:

1. Adaptación de conexión

2. Recursos limitados

3. Movilidad

4. Seguridad

Estos problemas repercuten en el diseño de sistemas con soporte de dispositivos móviles, ya que incrementan la complejidad en el desarrollo debido a la capacidad del cliente contra la capacidad de los servidores de datos. Así, los dispositivos móviles con su baja confiabilidad requieren los servicios de los servidores fijos.

En el manejo de operaciones, el cómputo móvil introduce nuevas características que no eran presentadas en sistemas de proceso de transacciones. Algunos conceptos importantes sobre transacciones en ambientes móviles son los siguientes [6]:

ƒ Consideraciones de ancho de banda y tasa de transferencia de datos

ƒ Migración de lugar

ƒ Desconexiones frecuentes planeadas

ƒ Fallas frecuentes de la red

(15)

ƒ Recuperación de servicios

Una consideración importante es que los usuarios de dispositivos móviles, cambian de lugar constantemente y esto puede provocar desconexiones frecuentes. Debido a esto, si el usuario móvil realiza algunas operaciones durante ese movimiento algunas pueden resultar inconclusas o pueden perderse. De esta manera nace la necesidad de implementar mecanismos que soporten estas desconexiones y que todas las operaciones realizadas se ejecuten tarde o temprano.

Debido a las consideraciones hechas anteriormente se pueden presentar algunos de los problemas siguientes:

ƒ Si el dispositivo no está conectado a la red, no se puede realizar operación alguna.

ƒ El usuario no puede dejar las operaciones a medias, es decir, tiene que esperar a que terminen todas para desconectarse de la red.

ƒ Si el usuario móvil está realizando alguna operación y si hay algún tipo de

desconexión, la transacción se perderá.

Con los problemas mencionados, los clientes móviles también desean realizar algunas operaciones offline (fuera de línea o desconectados de la red). Debido a esto, resulta la necesidad de implementar mecanismos para el soporte de operaciones offline.

El objetivo general del presente trabajo es definir un modelo de soporte a operaciones offline en dispositivos móviles para bibliotecas digitales personales, en el contexto del proyecto PDLib.

El proyecto PDLib propone una arquitectura para las bibliotecas digitales con soporte a dispositivos móviles, el cual provee al usuario móvil una abstracción de una biblioteca digital personal en su dispositivo, el cual puede ser una PDA, una TabletPC, una Laptop o una computadora de escritorio [4].

Para lograr el objetivo de este trabajo, se definió un esquema de comunicación entre dispositivos móviles y una biblioteca digital, de manera que se permita que el cliente móvil realice operaciones o servicios en modo offline.

(16)

En este trabajo de tesis se desarrolló el manejo de operaciones offline, se basa en las operaciones que se realizan en el proyecto PDLib (Personal Digital Library) [4], el cual se desarrolla en el Centro de Investigación en Informática del Instituto Tecnológico de Estudios Superiores de Monterrey, Campus Monterrey. En el proyecto PDLib se han implementado algunos mecanismos que pueden ayudar a optimizar el esquema de las operaciones offline [3], sin embargo, estos mecanismos no se implementaron en el desarrollo de esta tesis ya que no es el objetivo principal. Estos mecanismos son:

1. Mecanismo de paginación, ayuda a realizar descargas de documentos sin sobrecarga de buffer y sin interrumpir la interacción con los clientes.

2. Mecanismo de cache, permite que la información requerida por el usuario le sea proporcionada más rápidamente.

Para el acceso a una biblioteca digital en PDLib, el usuario realiza algunas peticiones para ver el contenido de su biblioteca. El servidor de datos procesa las peticiones de los clientes y regresa los resultados. Lo que el servidor regresa es la información de los documentos o colecciones contenidos en la biblioteca digital. El usuario interactúa con PDLib creando y borrando colecciones, subiendo, moviendo, copiando o recibiendo documentos, además, puede definir los metadatos, los cuales describen el contenido de cada colección [28].

Las técnicas del manejo de operaciones offline que se presentan en este trabajo se basan en la idea de sincronización de la información, es decir, el concepto de que el cliente móvil puede ver la misma información en su dispositivo como en el servidor de datos sin necesidad de que el dispositivo tenga una conexión con el servidor. En la figura 1.1 se muestra la forma general en que el usuario interactúa con el servidor de datos. Al conectarse el usuario a PDLib, se hace la sincronización con el servidor, esto es, se obtiene información de colecciones y documentos que se encuentren en su biblioteca digital personal y se almacena en su dispositivo, así el usuario mantiene una “vista local” de las colecciones y documentos de su biblioteca personal (Vista Remota). Una vista local es una estructura lógica de la biblioteca digital que se encuentra almacenada en el dispositivo. La

vista remota es la biblioteca digital que está almacenada en el servidor, el usuario móvil puede acceder a ella solamente a través de una conexión de red con el servidor.

Figura 1.1 Vista local y vista remota de la información

Una vez que el usuario tiene una copia local de su biblioteca, trabaja directamente con ella y no con la que está en el servidor, de manera que, aunque tenga conexión con el

PDA Servidor

Vista Remota Vista Local

Send Digital Library Information

(17)

servidor, las operaciones que realice son en base a su copia local. Cabe aclarar que la copia de la biblioteca digital no es completa, es decir, no es toda la biblioteca digital que se almacena en el dispositivo, solamente información de los nombres de las colecciones y los metadatos de los documentos, no los documentos digitales. El usuario puede realizar algunas operaciones o servicios como lo haría si tuviera una conexión con el servidor, estas operaciones son almacenadas en el dispositivo para su futura ejecución. Así, cuando el usuario decide realizar esas operaciones, se conecta al servidor y le envía (sincroniza) las operaciones para su ejecución. De tal manera que es el usuario el que decide en que momento enviar las operaciones al servidor.

Los objetivos específicos de este trabajo de tesis son los siguientes:

ƒ Reducir la dependencia del usuario móvil con el servidor de datos.

ƒ Definir un mecanismo de sincronización entre cliente y servidor.

ƒ Identificación de la estructura lógica de PDLib y los metadatos que serán

almacenados en el cliente.

ƒ Definición de un mecanismo de almacenamiento de la información de una

biblioteca digital en el cliente móvil mediante el manejo de documentos XML.

ƒ Identificación de los servicios de PDLib que pueden ser realizados Offline.

ƒ Acceso del usuario a su biblioteca digital almacenada en el cliente a cualquier hora y en cualquier lugar sin necesidad de la conexión con el servidor.

ƒ Acceso a operaciones o servicios de PDLib (identificados en puntos anteriores) en su biblioteca aún sin tener conexión con el servidor de datos.

1.2 Organización de la Tesis

(18)

Capítulo 2: Antecedentes

En este capítulo se describen las características y retos principales del cómputo móvil, los distintos dispositivos móviles en el mercado recalcando a los Asistentes personales Digitales (PDA’s). Se describe de manera más amplia el proyecto PDLib, su arquitectura, los elementos que intervienen, las funciones de cada uno de esos elementos, y las distintas operaciones que el usuario móvil puede efectuar en PDLib.

Se presenta una descripción del lenguaje de programación para dispositivos móviles, así como la razón de porqué se escogió ese lenguaje. La representación de los datos por medio de XML y cómo este estándar ha evolucionado para el manejo e intercambio de información en la unión de otras tecnologías como lo es XML-RPC como protocolo de comunicación entre diferentes sistemas. Por último se mencionan varios trabajos que manejan el concepto de operaciones desconectadas u offline, presentando características y funciones de cada uno de ellos.

2.1 Fundamento Teórico

En esta sección se describirá a detalle la base teórica de este trabajo de tesis. Se inicia con las características del cómputo móvil, teniendo en cuenta sus características: como limitaciones o restricciones en el manejo. Se presentan las características de los distintos dispositivos en la actualidad, haciendo énfasis en las PDA’s, con características como memoria, almacenamiento, sistema operativo, compatibilidad con otros sistemas, etc.

En las últimas dos secciones se describe a detalle la estructura de PDLib ya que este trabajo está basado en él, se describen sus componentes, los elementos que intervienen, los lenguajes de programación y las herramientas que se utilizaron para el desarrollo del mismo.

2.1.1 Características y Retos del Cómputo Móvil

(19)

Figura 2.1: Arquitectura de un sistema de base de datos móvil [1]

Como se puede observar en la figura 2.1, un M-DBS está compuesto de host fijos (Fixed Host), Unidades móviles (MU), estaciones base (BS) y servidores de bases de datos (DBS)

[1]. Los host fijos pueden ser servidores o estaciones de trabajo, pero la característica especial de éstos es que tengan una conexión de red segura y que sus características de

hardware y software sean poderosas. Las unidades móviles se pueden considerar

computadoras con bajo poder de cómputo, como pueden ser dispositivos móviles como PDA’s, teléfonos móviles, pagers, etc, aunque también se puede considerar como unidades móviles a las laptop’s ya que pueden cambiar su ubicación de un momento a otro aunque no con tanta regularidad como los dispositivos anteriores. Las estaciones base, son equipos o computadoras que soportan la conexión con los dispositivos móviles, es decir, son el enlace entre los dispositivos móviles y las bases de datos. La célula es un área geográfica lógica cubierta por una estación base. Cada célula tiene una estación base.

Una unidad móvil se conecta a los componentes de la red alámbrica, a través de las estaciones base por medio de los canales inalámbricos. La unidad móvil puede cambiar de ubicación y de conexión de red mientras el host fijo, la estación base y los componentes del servidor de base de datos realizan las funciones del manejo de datos en su representación [1].

DBS

DBS Fixed Host

Fixed Host BS

MU

BS

MU Cell

Wireless Link MU

M-DBS: Mobile Database System DBS = Database Server

(20)

Los modos de conexión de un host en un sistema distribuido son [1]: conectado o totalmente desconectado, sin embargo en el cómputo móvil pueden ser:

ƒ Completamente conectado (Esta es la conexión normal)

ƒ Totalmente desconectado

ƒ Parcialmente conectado (conectado vía un ancho de banda bajo)

La característica esencial del cómputo móvil es precisamente su movilidad, sin embargo esto tiene su consecuencia y por ende trae consigo algunas restricciones, en [5] se proporcionan las cuatro restricciones de la movilidad:

ƒ Los elementos móviles tienen recursos limitados en comparación con los elementos fijos: Las consideraciones de hardware y software en los elementos móviles son menores a los elementos fijos, tales consideraciones pueden ser, peso, tamaño, velocidad de procesamiento, tamaño de memoria y capacidad del disco duro.

ƒ El peligro de la movilidad: Este punto se basa en la seguridad de los equipos, es mucho mas seguro un equipo fijo puesto en una oficina con llave que un dispositivo que se pueda estar moviendo en cualquier lugar y a cualquier hora de tal manera que esto lo hace mas susceptible a robo o daño.

ƒ La conectividad varía en cuestión de rendimiento y confiabilidad: Los dispositivos móviles normalmente se conectan con bajo ancho de banda, por lo tanto pueden sufrir desconexiones frecuentes y/o predecibles.

ƒ Los elementos móviles tienen energía limitada: A pesar de que se ha aumentado el poder en las baterías, aún así no deja de ser finita, esto es, su energía se agotará en un tiempo determinado, esto hace que los elementos se limiten en el manejo de su energía.

Los cuatro puntos anteriores se pueden ver como las restricciones generales del cómputo móvil. En [1] se proporciona un esquema donde se clasifican estos problemas, a continuación se presenta este esquema:

Conexión

ƒ Bajo ancho de banda

ƒ Desconexiones frecuentes

ƒ Variabilidad en el ancho de banda

ƒ Desconexiones predecibles

ƒ Comunicación asimétrica

Recursos Limitados

ƒ Bajo poder en la batería

ƒ Limitado poder de procesamiento

ƒ Memoria limitada

ƒ Pequeña tamaño de pantalla

(21)

Los problemas de desconexión, recursos limitados y movilidad serán de alguna manera atacados en este trabajo de tesis.

2.1.2 Dispositivos Móviles

Los dispositivos móviles son todos aquellos dispositivos en los cuales su característica esencial es la portabilidad y su conectividad a una red privada o Internet. Dentro de estos dispositivos se encuentran, los smart phones, asistentes personales digitales (PDA’s), computadoras personales como laptops, Tablet PC’s, entre otros [15,16].

Con el crecimiento del mercado móvil muchas empresas ven la necesidad de encarar la integración de sus sistemas en los dispositivos móviles ya que pueden ofrecer diversos servicios. Algunos de los servicios que estos dispositivos pueden ofrecer son descritos en la tabla 2.1 [10, 11, 12]:

Servicio PDA SmartPhone

Envío y recepción de

mensajes de texto X X

Envío y recepción de E-mail X X

Sincronización con el PC X X

Reproducir música X X

Despliegue de imágenes X X

Wi-Fi X

Lectura y edición de e-books X

Tabla 2.1 Servicios en dispositivos Móviles

Como se puede observar en la tabla 2.1 se puede acceder a e-mails desde muchos tipos de dispositivos móviles, y pueden usarse para navegar por Internet o la Intranet de una empresa. Pueden usarse para acceder a aplicaciones e información dentro de la red privada de una empresa, y tal información puede almacenarse en la PDA/teléfono. Los dispositivos móviles de alguna manera están siendo más funcionales y se pueden conectar más fácilmente a la red y a Internet.

Movilidad ƒ Rápido cambio de ubicación

ƒ Alta Susceptibilidad a ataques maliciosos

(22)

Algunas de las características que se han añadido a estos dispositivos y que a los usuarios le han sido de gran utilidad son las siguientes [16]:

ƒ La adición de teclados: Permite a los usuarios crear y modificar de manera rápida y sencilla, documentos, hojas de cálculo, notas, redacción de e-mails, etc.

ƒ Adición de soporte al protocolo TCP/IP: Conecta a los usuarios a Internet, envío y recepción de e-mails, incorporación de visor de Web y otras aplicaciones basadas en este protocolo.

ƒ Capacidad para almacenar sonido y video: La capacidad de almacenamiento ha aumentado de manera considerable. A los usuarios se les hace mas atractiva la idea de poder almacenar multimedia en sus dispositivos y cargar con ello en todo momento.

En general, los dispositivos móviles hasta cierto punto están emergiendo todo en uno, y los dispositivos más avanzados ahora tienen funciones que estaban solamente presentes en las computadoras de escritorio.

Algunos retos importantes con que se enfrentan las empresas al utilizar estos dispositivos, aunados a los que se mencionaron en la sección anterior son los siguientes [16]:

ƒ Compatibilidad entre la plataforma y la aplicación

Muchas empresas tienen un conjunto de aplicaciones dispuestas a interactuar con los dispositivos móviles, sin embargo, muchas veces, la plataforma o sistema operativo de estos dispositivos no son compatibles con estas aplicaciones. Hoy en día, los dispositivos móviles líderes en el mercado ofrecen los sistemas operativos PalmOS y Windows CE [16], y cada uno de ellos implementa aplicaciones que los hacen ser compatibles con una gran variedad de herramientas y/o aplicaciones de PC’s.

ƒ Velocidades de conexión remota

Las velocidades de conexiones de red han estado aumentando con los años, y en los dispositivos móviles no ha sido la excepción. Las empresas desean tener conexiones de ancho de banda mayores con el objetivo de transportar mayor cantidad de información en poco tiempo.

ƒ Sincronización de datos y seguridad

(23)

Este trabajo se desarrolla en el ambiente de las PDA’s, por lo tanto haremos énfasis a estos dispositivos, de cualquier manera, los otros dispositivos móviles tienen muchas de las características que se presentan en las PDA’s.

2.1.3 Características de los Asistentes Personales Digitales (PDA’s)

Las PDA’s son dispositivos móviles que se han orientado al manejo de la información, mas que del manejo de multimedia. Estos dispositivos enfocan sus tareas en el almacenamiento de la información, envío y recepción de correo y comunicación inalámbrica que puede ser de varios tipos, Wireless LAN (WLAN) [29], BlueTooth [30] y Wireless Wide Area Network [31].

Según estudios recientes [17], las ventas de las PDA’s se ha incrementado considerablemente, más de 3.4 millones de unidades en el primer cuatrimestre del año 2005, lo cual es el 25% más sobre el año anterior. Según estas investigaciones ese incremento se debe a la popularidad del correo electrónico en esos dispositivos y la implementación de los teclados QWERTY que involucra la posibilidad de ser usados con las dos manos. La siguiente tabla muestra el incremento de ventas de las PDA’s con los principales proveedores:

Compañía Porcentaje de Ventas

(1er Cuarto del 2005)

RIM 20.8 %

PalmOne 18 %

HP 17.6 %

Nokia 9.9 %

Dell 6.3 %

Others 27.3 %

Total 100%

Tabla 2.2: porcentaje de ventas de las PDA’s por compañía [17]

(24)

Ventaja Desventaja

Amplio rango de modelos Sistema Operativo e

interface no muy familiar para muchos usuarios

Batería de larga vida Difícil sincronizar con más

de una PC Palm OS

Sistema Operativo más ligero que Windows CE

Muchos modelos no tienen Wireless LAN como estándar

Ventaja Desventaja Vista familiar para los usuarios de

Windows Procesador de alto poder que reduce más rápido la

batería.

Amplio rango de modelos Difícil sincronizar con más

de una PC Windows CE

Pantalla de color de alta calidad

Tabla 2.3 Ventajas y desventajas de Palm OS y Windows CE

En [11, 12] se dan algunas características Windows CE y Palm OS, algunas de ellas se resumen en la tabla 2.4.

Característica Windows CE Palm OS

Propósito Brindar algunos servicios

que puede ofrecer una computadora, aún con sus capacidades limitadas.

Organizador personal

Administración de procesos Soporta hasta 32 tareas ejecutándose de manera simultánea.

Un solo proceso se puede ejecutar a la vez.

Portabilidad Se puede ejecutar en otros

dispositivos como en teléfonos móviles.

Solo está disponible para ejecutarse en dispositivos de la misma compañía.

Almacenamiento Provee una estructura de

almacenamiento similar a los sistemas operativos de Windows.

Cuenta con una Base de Datos, para almacenar los programas y los datos.

Tabla 2.4 Características principales de Palm OS y Windows CE

La diferencia principal entre la arquitectura Palm y Windows CE es que la Palm provee software libre, tal como su kit de desarrollo y documentación, para desarrollar nuevas aplicaciones en sus dispositivos [11].

(25)

prefieren. El mercado entre estos dos sistemas era muy parejo, sin embargo, las tendencias para este año son favorables para Windows CE tal y como lo muestra la tabla 2.5 [17].

Compañía Ventas Porcentaje de Ventas

(1er Cuarto del 2005)

Windows CE 1,573,062 46.0 %

RIM 711,000 20.8 %

Palm OS 684,750 20 %

Symbian 340,000 9.9 %

Linux 27,300 0.8 %

Others 83,000 2.4 %

Total 3,419,112 100%

Tabla 2.5 Ventas de PDA’s por Sistema Operativo en el primer cuarto del 2005 [17]

2.1.4 El proyecto PDLib: Personal Digital Library

A continuación se presentarán las características principales del proyecto PDLib, la arquitectura, los diversos servicios que brinda, y su relación con este trabajo propuesto.

2.1.4.1 Introducción

Antes de definir y dar las características del proyecto PDLib, se define lo que son las bibliotecas digitales.

El término biblioteca digital ha sido empleado para definir un gran almacén de información digital accesible a través de las redes de computadoras. Al igual que una biblioteca tradicional, una biblioteca digital sirve como un archivo de conocimientos que abarca muchos temas. Dado que la información puede ser almacenada de muchas formas, una biblioteca digital puede contener texto, sonidos, imágenes fijas y en movimiento, así como conversaciones [13,14]. Las bibliotecas digitales poseen características como: Creación de documentos digitales, indexamiento y búsquedas, administración y control de acceso, personalización, distribución de la información, interfaz adecuada para presentar los resultados, etc.

(26)

Los servicios que ofrece PDLib son los siguientes:

ƒ Clasificación e indexamiento

ƒ Búsqueda y recuperación de documentos

ƒ Distribución de documentos almacenados

ƒ Administración y control de acceso para evitar el uso no autorizado

ƒ Personalización de preferencias para cada usuario

En PDLib una biblioteca contiene una o mas colecciones, a su vez una colección puede contener documentos o más colecciones y se asocia a un conjunto de metadatos. El conjunto de metadatos está compuesto de una o más definiciones de metadatos. En la figura 2.2 se ilustra el modelo de datos de PDLib.

Figura 2.2: Modelo de Datos de PDLib [7]

A continuación se define cada uno de los elementos del modelo de datos de PDLib:

Colecciones: Son contenedores o carpetas para el usuario que pueden incluir otras colecciones y documentos.

Documentos: Son documentos físicos que el usuario puede obtener de su biblioteca.

Conjunto de Metadatos: Se compone de una o más definiciones de metadatos. Ejemplo: name = “Autor”, type = “Text”, name = “Titulo”, type = “Text”.

Metadatos de documentos: Son las definiciones de los metadatos de los documentos, por ejemplo Name=“Autor”, Value=“Luis Basto”, Name=“Título”, Value=“Soporte de Operaciones Offline en una Biblioteca Digital”, etc. Los campos que componen los metadatos de documentos están determinados por el conjunto de metadatos de la colección.

(27)

• Personal. Donde el acceso es solo para el propietario de la biblioteca,

• Incoming. A otros usuarios se les permite crear documentos y colecciones,

• Outgoing. A otros usuarios se les permite ver las colecciones y recibir documentos,

• Update. A otros usuarios se les permite actualizar documentos y metadatos, pero no se permite que puedan crear o borrar documentos, por último

• Shared, que es compartido entre otros usuarios.

Un documento puede tener uno o más formatos de documentos, estos formatos pueden ser: Texto, PDF, Doc, etc.

2.1.4.2 Arquitectura PDLib

La arquitectura de PDLib se compone básicamente de tres capas (Figura 2.3), la capa de clientes, capa del servidor y la capa de interoperabilidad.

Figura 2.3 Arquitectura de PDLib [28]

La capa del cliente (Client tier) está integrada por los clientes móviles (PDA’s, Celulares, Laptop’s y Tablet PC) y los no móviles (computadoras de escritorio), en este trabajo por la naturaleza del mismo, solo nos enfocaremos a los dispositivos móviles. La capa de Servidor se encarga de proveer los servicios a los clientes móviles y se compone del Mobile Connection Middleware (MCM), el servidor de datos y el Web Front-End. Con

(28)

Como se puede apreciar en la figura 2.3, los clientes móviles se comunican con el MCM por medio de la red inalámbrica (líneas punteadas) y este a su vez se comunica con el Servidor de Datos (Data Server). Todos los clientes móviles pasan por el MCM para poder comunicarse con el Servidor de Datos, esto es porque se tiene un mecanismo de adaptación entre el cliente y el servidor de datos [3] implementado en el MCM.

García [3] presenta la implementación del MCM que actúa como intermediario entre los clientes móviles y el servidor de datos. La implementación de este componente ayuda a liberar de carga pesada al servidor y al cliente. Es el encargado de adaptar las tareas o peticiones del cliente y enviárselas al servidor y de igual manera el servidor al enviar información al cliente lo hace a través del middleware. De esta manera el cliente y el servidor de datos no se comunican directamente y el middleware funciona como servidor al cliente y como cliente para el servidor de datos.

Otros tipos de clientes que no son móviles como las PC’s se conectan con el servidor de datos por medio del Web Front-End. Las Laptop’s y las TabletPC’s caen en las dos categorías, en las de clientes móviles y clientes fijos, esto es dependiendo del tipo de conexión que realicen ya sea inalámbrica o alámbrica. En la figura 2.3 se muestra las distintas conexiones, tomando en consideración las líneas punteadas como conexiones inalámbricas y las líneas normales como las conexiones alámbricas.

Para fines de este trabajo la capa de interoperabilidad no la tomaremos en cuenta, ya que no es relevante para el desarrollo del mismo, solo nos es de importancia la comunicación de los dispositivos móviles con el servidor de datos tomando al MCM como intermediario. Tampoco se tomarán en cuenta los dispositivos que se conectan por una red alámbrica, es decir, este trabajo se centra en las operaciones que puedan realizar los dispositivos móviles que cuenten con una conexión inalámbrica y por lo tanto tengan una comunicación directa con el MCM.

2.1.4.3 Manejo de operaciones en PDLib

(29)

Objetos Servicios

Library Creation, Retrieval, Update and Deletion

Collection Creation, Retrieval, Update, Deletion, Copy and Move

Document Submission, Retrieval, Update, Deletion, Send, Search, Email, and

Copy

Document Format Submission, Retrieval, Update, Deletion and Conversion

Metadata Set Creation, Retrieval, Update, Deletion, and Get/Set Collection

Metadata Set

Document Metadata Update Document Metadata

Permission Get/Set Collection Permission and Get/Set Document Permission

Tabla 2.6: Operaciones en PDLib

En las versiones más recientes del servidor de datos se tienen todas las operaciones

anteriores, sin embargo las operaciones de Document Submission y Document Format

Submission no se tienen implementadas en el cliente móvil, solo en el cliente Web.

Algunos de los servicios básicos proveídos por PDLib, son los siguientes:

ƒ Operaciones CRUD (Creation, Retrieval, Update y Deletion): Estas son las

operaciones generales que se pueden realizar con la biblioteca, colecciones, documentos, formatos de documentos, y los metadatos.

ƒ Copiar o Mover colecciones (Copy and Move): Se proveen para duplicar o

recolectar colecciones en la biblioteca.

ƒ Copiar documentos (Copy): Copia un documento de una biblioteca a otra, o de una colección a otra en la misma biblioteca.

ƒ Búsqueda de documentos (Search): Se efectúa una búsqueda booleana y clasificada. Para las operación de búsquedas se tienen algunas variantes:

o Búsqueda Simple

o Búsqueda Avanzada

o Búsqueda por texto completo

o Búsqueda recursiva

o Búsqueda multi-bibliotecas digitales

ƒ Enviar documentos a otros usuarios (Send): Con este servicio se pueden enviar

(30)

ƒ Enviar documentos por e-mail (Email): Si una persona no cuenta con una biblioteca digital, se puede enviar documentos a su dirección de correo electrónico por medio de este servicio.

ƒ Recibir o asignar un conjunto de metadatos a una colección dada (Get/Set

Collection Metadata Set): En esta parte es donde se definen los metadatos para cada colección.

ƒ Conversión de Formato de Documento (Conversion): Se realizan las conversiones

de los formatos de los documentos, por ejemplo, de texto plano a PDF, o de PS a PDF.

ƒ Actualizar los metadatos de un documento (Update Document Metadata).

ƒ Permitir a los usuarios otorgar o revocar permisos a otros usuarios de colecciones y/o documentos (Get/Set Collection Permission, Get/Set Document Permission). Los tipos de permison son: (a) Personal, el acceso es restringido al propietario de la biblioteca; (b) Incoming, se les permite a otros usuarios crear documentos y colecciones, solo es aplicable a colecciones. (c) Outgoing, se les permite a otros usuarios ver las colecciones y recibir información de los documentos, (d) Update, se les permite a otros usuarios actualizar documentos, sus metadatos asociados y los formatos de los documentos, pero no pueden crear documentos o borrarlos. (e) Shared, se les permite el acceso total a los documentos y colecciones.

ƒ En la operación de subir documentos y formatos (Submission), el usuario puede

añadir documentos y formatos de documentos a su biblioteca. Como se mencionó anteriormente, estas operaciones solo están disponibles por el momento en el cliente Web.

2.1.5 Lenguaje de Programación para Dispositivos Móviles

Las aplicaciones de los dispositivos móviles por su arquitectura y sus limitaciones necesitan ser programados con herramientas que tengan un bajo costo en procesamiento y almacenamiento.

(31)

J2ME es un conjunto estándar de configuraciones para dispositivos pequeños. En J2ME se definen configuraciones (Configuraciones de modelos de hardware con soporte de software) y perfiles (Soporte de APIs de software) que permiten que Java sea usado en los dispositivos móviles [23]. En la figura 2.4 se muestra la arquitectura de la tecnología J2ME y enseguida se describen sus elementos.

Figura 2.4 Tecnología J2ME [23]

En las configuraciones se definen dos tipos: Connected Limited Device Configuration (CLDC) y connected Device Configuration (CDC).

La configuración CLDC, es la más pequeña de las dos configuraciones y está diseñada para dispositivos con conexiones de red intermitentes, procesadores lentos, y con memoria limitada. Algunos ejemplos de dispositivos con este tipo de configuración son: Teléfonos móviles, PDA’s y Pagers de dos vías.

La configuración CDC está diseñada para dispositivos como: TV set-up boxes, gateways residenciales, etc. Estos dispositivos cuentan normalmente con mayor cantidad de memoria, procesadores más rápidos y ancho de banda mayor que en dispositivos CLDC. Realmente no existe una cantidad de memoria o procesamiento específico para decidir que configuración utilizar para cada dispositivo, simplemente se especificó de acuerdo al tipo de dispositivo. Cabe mencionar que CDC contiene API’s que los CLDC no contienen y esto lo hace ser más apto para dispositivos con mayor capacidad de procesamiento que la mayoría de los dispositivos móviles como PDA’s, celulares y Pagers.

(32)

MIDP o MID está diseñado para teléfonos móviles y PDA’s, ofrece la funcionalidad requerida por aplicaciones móviles como la interfaz de usuario, la conectividad de la red, almacenamiento local y la administración de la aplicación. MIDP minimiza el uso de la memoria y el consumo de energía en el dispositivo. El perfil PDA es para PDA’s de mediana a alta capacidad de procesamiento y almacenamiento y el perfil POS (Point of Sale) es para sistemas de puntos de venta.

El perfil MID se utiliza para dispositivos limitados, como pueden ser las PDA’s y celulares y es precisamente el que se utiliza en el proyecto PDLib por las características antes mencionadas. Los otros perfiles, Foundation profile y Personal profile, se utilizan para dispositivos con mucho mayor poder de procesamiento o de almacenamiento, pero no para dispositivos gráficos, es decir, no tienen una pantalla de visualización.

2.1.6 Mecanismo de almacenamiento en J2ME

Los dispositivos móviles normalmente tienen dos tipos de memoria: memoria para correr las aplicaciones y memoria para el almacenamiento persistente. El almacenamiento persistente permite que los datos manejados por las aplicaciones se almacenen de manera definitiva en el dispositivo, tales datos pueden ser, configuraciones y/o información que posteriormente puede ser cambiado dinámicamente [20].

Por definición una base de datos es una colección de datos dinámicos que provee algunas operaciones para describir, establecer, manipular y accesar estos datos. J2ME

define un sistema de base de datos simple orientado a registros, llamado Record

Management System (RMS). Cada tabla de la base de datos es llamado un record store, y cada entrada en un record store es llamado registro [38].

El RMS es una poderosa herramienta para almacenamiento de datos en un dispositivo móvil, sin embargo toda la información almacenada esta en un solo nivel, no se cuenta con una estructura jerárquica tipo un sistema de archivos como FAT, FAT32 ó NFS de Windows o de otros sistemas.

En este trabajo de tesis, se utilizaron varios record stores (RMS) para el almacenamiento de diversa información necesaria para la ejecución de las operaciones offline. En capítulos posteriores se mencionan y describen cada uno de estos RMS’s.

2.1.7 Representación de datos con XML

(33)

papel muy importante en el intercambio y compartición de una amplia variedad de datos en Internet y sobre todo en el Web.

La mayor ventaja de XML es que es un lenguaje que provee un formato estándar independiente de sistema para que precisamente se pueda intercambiar la información a través de la red y en diferentes plataformas y en diferentes aplicaciones. Si podemos pensar desde el punto de vista del programador, el lenguaje de programación Java es multiplataforma, es decir, es independiente del sistema operativo que se esté utilizando y por lo tanto hace a las aplicaciones portables entre diferentes plataformas, XML hace los datos portables entre diferentes aplicaciones, haciendo más fácil la comunicación entre distintas aplicaciones programadas en diversos lenguajes.

Un documento XML está formado por etiquetas, estas etiquetas definen la estructura de los elementos dato. La sintaxis del XML es muy similar al del lenguaje HTML. Un ejemplo de la estructura de un documento XML se presenta en la figura 2.5.

<?xml version="1.0" ?> <mail>

<From> Luis Basto</From> <To> Pdlib group</To> <Cc> </Cc>

<Date> 18-9-2005</Date> <Subject> Thesis</Subject> <Body language= “English”> Send my thesis.

<Signature>LCC. Luis Basto</Signature> </Body>

</mail>

Figura 2.5. Ejemplo de un documento XML

Como se puede observar en la figura 2.5, el documento XML asemeja una estructura del envío de un correo electrónico. Las etiquetas definen la estructura y los límites de ésta.

En general hay cuatro componentes asociados con un documento XML: Elementos, atributos, entidades y DTD’s [18,19]:

1. Un elemento, es lo que describe a un dato, el elemento se compone de las etiquetas y el contenido dentro de las etiquetas. En el ejemplo anterior la etiqueta From con su contenido forma un elemento: <From> Luis Basto</From>.

2. Un atributo se usa para proveer información adicional acerca del elemento. Normalmente se usa dentro de la etiqueta de inicio del elemento. En la figura 2.5 la etiqueta Body tiene el atributo language: <Body language= “English”>.

(34)

4. Una Definición de Tipo de Documento (DTD), es una parte opcional de un documento XML el cual define la estructura que será permitido para la creación de un XML, es decir, podemos pensar que el DTD es una plantilla, la cual define los elementos y atributos que serán utilizados en un XML.

Como se observa en la figura 2.5 el documento XML tiene una estructura de árbol. Esta estructura lo hace comparable con una tabla de una base de datos en el modelo relacional, es decir, la estructura XML se puede “mapear” a una tabla en el modelo relacional en donde cada elemento de un documento XML puede mapearse como los campos en la tabla. [18,19]. Las anidaciones en la estructura refleja que las etiquetas pueden contener otras etiquetas y debido a eso forma una estructura de árbol.

Se ha descrito la forma de cómo se crea un XML con su estructura de etiquetas, sin embargo, el XML por si mismo no arroja funcionalidad alguna; para que el XML logre su objetivo se debe tener un mecanismo que analice el documento y que devuelva la información contenida en sus etiquetas. A este mecanismo se le llama “parseo” del documento XML y a las aplicaciones que realizan este análisis se les llama parsers, así el programador solamente tiene que saber utilizar estas aplicaciones. Existen dos tipos de parsers [20]:

Parser basado en eventos: Este tipo de parser le reporta los eventos ocurridos directamente a la aplicación a través de métodos de comunicación de vuelta o callbacks. El acceso al documento es serial y las aplicaciones que utilizan este tipo de parsers deben de implementar el manejador de interfaces para poder recibir los eventos. Un ejemplo de este tipo de parser es el SAX (Simple API for XML).

Parser basado en estructura de árbol: Este tipo de parser lee un documento XML completo y forma una estructura de árbol en memoria. Cada nodo del árbol representa una pieza de datos. Como todo el documento lo mantiene en memoria, esto permite a la aplicación manipular de manera fácil y rápida la información. Un ejemplo de este parser es el DOM (Document Object Model).

(35)

insuficiente durante el parseo, sin embargo si se restringe a cierto tamaño del documento o capacidad de memoria el DOM es muy rápido y eficiente.

2.1.8 Protocolo de comunicación en ambientes móviles

Desde el nacimiento de Internet se han definido una serie de reglas para la comunicación entre diferentes sistemas de computadoras. Estas reglas o protocolos se han definido con el fin de que la comunicación sea adecuada y fluida. En los dispositivos móviles la comunicación también es posible. Se puede tener un sistema que provea información (servidor) a los dispositivos (clientes) y estos a su vez se comuniquen con el servidor. Para lograr esta comunicación es necesario utilizar algún protocolo. Los dispositivos móviles de hoy en día, soportan HTTP, que es el protocolo de hipertexto que se utiliza para comunicación en el Web entre computadoras clientes y servidores. Para la comunicación entre aplicaciones en los dispositivos móviles y aplicaciones remotas que pueden estar en un servidor o bien en otro dispositivo móvil existen algunos protocolos que toman en cuenta la capacidad de los dispositivos.

Salinas [21] hace una comparación de dos protocolos para el intercambio de información entre sistemas: SOAP [34] y XML-RPC [22].

SOAP (Simple Object Access Protocol) es un protocolo de intercambio de información entre sistemas en un ambiente distribuido [34]. Se basa en una estructura XML que puede

ser intercambiado entre los diferentes protocolos fundamentales y XML-RPC es un

protocolo con una serie de implementaciones que permiten invocar procedimientos remotos (RPC por sus siglas en inglés de Remote Procedure Call) enviando mensajes con formato de documentos XML [22].

XML-RPC utiliza el protocolo HTTP como medio de transporte y utiliza XML como medio de codificación de datos. Aunque permite estructuras de datos complejas para ser transmitidas, procesadas y devueltas, XML-RPC está diseñado para ser lo más simple posible. Su funcionamiento lo describe la figura 2.3 obtenida de [22].

(36)

Salinas [21], en su análisis, concluye que XML-RPC es un protocolo compacto y muy ligero, tomando en cuenta que el overhead de comunicación y el intercambio de información son mínimos.

PDLib utiliza este mecanismo de transporte y comunicación entre el cliente y el MCM y entre el MCM con el servidor de datos, así, en este trabajo de tesis se utiliza el mismo mecanismo (XML-RPC) para la comunicación entre los clientes móviles y el MCM y es el medio por el cual se envían y reciben los documentos XML entre clientes y MCM.

2.1.9 Uso de SyncML para la sincronización de datos

A mediados del año 2000 grandes compañías como IBM, Lotus, Motorota, Nokia, Palm, Psion y Starfish y muchos más, se unieron para crear un consorcio para desarrollar un protocolo estándar abierto para la sincronización de datos: Synchronization Markup Language (SyncML) [24]. SyncML es un protocolo estándar basado en el XML para la sincronización de información móvil a través de una variedad de múltiples redes, plataformas y dispositivos. Su objetivo original fue crear un lenguaje universal desde muchos propietarios de protocolos de sincronización usados en dispositivos móviles y proveer un conjunto de funcionalidades de sincronización para futuros dispositivos [20].

Algunos de los objetivos de SyncML son los siguientes [24]:

ƒ Usado como lenguaje común, algún dispositivo debería ser capaz de

sincronizarse con algún servidor o repositorio de datos de red.

ƒ Cualquier servidor que utilice SyncML debería ser capaz de sincronizarse con

algún dispositivo que utilice SyncML.

ƒ Los protocolos deben tener en cuenta las limitaciones de los dispositivos

móviles específicamente con respecto al almacenamiento.

ƒ Soportar una amplia variedad de protocolos tales como HTTP, SMTP, Bluetooth

y otros.

ƒ Los comandos utilizados para sincronización deben ser comunes a todos los

dispositivos.

ƒ Construido sobre tecnologías estándares tales como XML

ƒ Soportar comunicación asíncrona y manejo de errores, debido a la latencia de

Internet

Para la sincronización de datos, SyncML involucra varios elementos [20]:

(37)

sincronización incluyen: Add, Alert, Atomic, Copy, Delete, Exec, Get, Map, Replace, Search, Sequence y Sync.

Protocolo de sincronización: Se enfoca en manejar las operaciones de sesión de la sincronización. Define el flujo del mensaje entre los clientes SyncML y el servidor durante una sesión de sincronización.

Protocolo de transporte: SyncML está basado en HTTP, WSP (Wireless Session Protocol) el cual es parte del conjunto de protocolos WAP, o (OBEX) Object Exchange Protocol para conectividad local.

La estructura de un mensaje SyncML consiste de un encabezado de sincronización <SyncHdr> y un cuerpo <SyncBody>. El encabezado contiene información básica acerca de la petición, tales como comandos de autenticación, manejo de sesión, identificadores de mensaje y la versión del DTD de SyncML. El cuerpo contiene las peticiones actuales, el Identificador de Recursos Uniforme (URI) fuente <Source> y destino <Target>, además de que contiene uno o más comandos a ejecutar.

En la figura 2.7 se da un ejemplo de un mensaje SyncML, en donde el cliente envía las operaciones add y replace al servidor de datos.

<SyncML> <SyncHdr>

<VerDTD>1.1</VerDTD>

<VerProto>SyncML/1.1</VerProto> <SessionID>104050403</SessionID> <MsgID>5</MsgID>

<Cred>...</Cred> </SyncHdr>

<SyncBody>

<Status>...</Status> <Sync>

<Target>http://www.servidor.com</Target> <Source> luisbasto </Source>

<Add>Datos a adicionar </Add>

<Replace>Datos para reemplazar o actualizar</Replace> </Sync>

</SyncBody> </SyncML>

(38)

Existen siete tipos de sincronización en el lenguaje SyncML [24]:

ƒ Sincronización de dos vías: el cliente y el servidor se intercambian información. En esta parte los clientes envían primero la información al servidor.

ƒ Sincronización lenta: Es un tipo de sincronización de dos vías, en la cual todos los campos en la base de datos del servidor son revisados uno por uno, esto se realiza cuando hay alta latencia entre el cliente y el servidor.

ƒ Sincronización de una vía, solo el cliente: Aquí, solo el cliente envía la información al servidor, el servidor únicamente actualiza la información que le llegó.

ƒ Sincronización de renovación desde el cliente: Los clientes envían la base de datos completa al servidor. Aquí el servidor no se sincroniza, reemplaza toda la base de datos que tiene por la que se le ha enviado.

ƒ Sincronización de una vía, solo el servidor: Solo el servidor envía la información al cliente, el cliente recibe la información del servidor y no envía sus modificaciones.

ƒ Sincronización de renovación desde el servidor: El servidor envía toda su información a la base de datos del cliente y este sustituye su base de datos completamente sin realizar actualizaciones.

ƒ Sincronización de alertas del servidor: el servidor envía al cliente comandos para que éste inicie algún tipo de sincronización con el servidor. Aquí el servidor es remotamente controlado por el cliente.

La sincronización de dos vías es el tipo más utilizado y el más deseable en muchos casos en la cual el cliente y el servidor intercambian información de manera conjunta. En el caso de SyncML el cliente es siempre el dispositivo el cual envía primero sus modificaciones, es decir, el cliente tiene información que es prioritaria ante la información del servidor. De acuerdo a la información que el cliente envíe, el servidor procesa la petición y los datos del cliente son comparados y unificados con los datos que almacena el servidor. Después de esto el servidor envía los datos modificados al dispositivo, el cual actualiza su información almacenada.

(39)

2.1.10 XML como intermediario de representación de datos

En [26] se da una extensa descripción y justificación de porqué XML es muy eficiente en el manejo de datos y representación de los mismos a través de un elemento intermedio como lo es un middleware. Uno de los puntos más importantes para justificar esta afirmación es el intercambio de mensajes que se da entre servidores y dispositivos móviles, estos mensajes tienen un formato binario, y si los dispositivos no soportan este tipo de mensajes simplemente no se podrá realizar la comunicación entre ellos. Para ello en [26], se describe cómo el formato XML es muy eficiente en el intercambio de mensajes entre clientes que accesan un servidor por medio de una red inalámbrica. XML puede intercambiar mensajes entre diferentes sistemas independientes del harwdare, sistema operativo que tengan y el lenguaje de programación usados para la aplicación.

Para la comunicación entre los clientes móviles y un servidor en [26] se plantea un la creación de un middleware con servicio inalámbrico (Wireless Middleware) que habilita a las aplicaciones móviles accesar la información del servidor. Este middleware es capaz de interpretar los mensajes que lleguen del cliente y mandarlos al servidor y de la misma manera interpretar los mensajes del servidor a los clientes, es decir se adopta un mecanismo de comunicación entre clientes móviles y servidor por medio de un middleware mediante el paso de mensajes con XML.

Este trabajo aporta ideas como el envío y recepción de mensajes entre dispositivos móviles y el servidor por medio de XML, de tal manera que me ayudó a decidir implementar el mecanismo de sincronización entre el cliente y el servidor por medio de mensajes o documentos XML ya que en PDLib, que es la base de nuestro trabajo, se tiene implementado el middleware (MCM) pero sin estas características de soporte de mensajes XML.

2.2 Otros proyectos que manejan el concepto off-line

A continuación se describen otros trabajos de investigación que manejan de alguna manera el concepto de operaciones offline o desconectadas.

2.2.1 Mecanismos de soporte a operaciones desconectadas en

ambientes móviles

(40)

datos necesarios para poder correr la aplicación en modo desconectado. Otro mecanismo, permite manejar las operaciones desconectadas, así puede realizarse un intercambio de modos desconectados a conectados o viceversa de manera que sea transparente este cambio para el usuario.

Para ello se definieron tres modos o tres estados de los clientes:

Desconectados: Cuando la petición es solo realizados por la copia local en el cliente.

Conectado: Cuando la petición es solo realizado por un objeto en la computadora conectada (servidor).

Parcialmente conectado: Cuando las peticiones son realizadas por la copia local que transmite las llamadas al objeto remoto.

Las copias locales no realizan operaciones cuando la aplicación está directamente conectada al servidor remoto, por lo tanto la información no está actualizada al momento. Cuando la aplicación está desconectada o parcialmente desconectada, la copia local realiza las operaciones y se actualiza, excepto para los mensajes que fueron recibidos por el servidor.

El objetivo principal de este trabajo [40] es investigar como los mecanismos estándares de CORBA pueden ser usados para mejorar herencia de aplicaciones distribuidas basadas en CORBA para soportar desconexiones voluntarias e involuntarias en ambientes móviles. Estos mecanismos de alguna manera son de gran ayuda para este trabajo de tesis, ya que nos provee información de los diversos modos que pueden comunicarse los dispositivos móviles con los servidores. En este trabajo[40], se tomaron algunas ideas sobre las copias locales que se tienen en cada uno de los clientes y la manera de interactuar con el servidor

2.2.2 Contratos de servicios para operaciones desconectadas

Este trabajo se basa en los servicios de Web que en la actualidad predomina y que conocemos como comercio electrónico [25]. Algunos de los servicios del comercio electrónico son: tiendas en línea de manejo de seguros de auto, tiendas virtuales de ropa, librerías en línea etc. Todos estos servicios son manejados mientras el usuario esté conectado, sin embargo, muchas veces el usuario no tiene mucho tiempo de decisión para realizar su transacción, es decir, no puede pensar si tomará una decisión correcta y tampoco tiene la oportunidad de analizar otras alternativas.

En este trabajo [25] se propone el concepto de “contrato” que el usuario puede bajar a su dispositivo o computadora, este contrato es un documento XML y es donde se especifican las reglas de interacción entre el cliente y el proveedor de servicio.

(41)

Se crea el contrato para que el cliente pueda bajarlo: El cliente pide los catálogos del servidor del proveedor mientras esté conectado con el servidor. Selecciona uno o más servicios o catálogos para ver, durante este proceso se va creando un contrato personal para manejarse durante las operaciones offline. Cuando se baja el contrato el cliente lo parsea y lo presenta al usuario.

Operaciones desconectadas del lado del cliente: El cliente en esta etapa utiliza el contrato ya parseado, de manera que puede realizar sus compras en modo desconectado de acuerdo al catálogo de productos que bajó con el contrato. Es decir puede seleccionar que productos comprar.

El cliente envía de nuevo el contrato al proveedor para realizar la operación: Una vez que el cliente tenga conexión de nuevo con el servidor, le envía el contrato de nuevo y con esto la orden de compra. El servidor lo recibe y verifica si no hubo alguna error de acuerdo a las reglas del contrato, si hay error rechaza la orden de compra y se lo notifica al cliente si no hay error ejecuta la orden de compra y le notifica al cliente que la transacción se realizó con éxito.

Las limitaciones que se identificó en este trabajo [25] son: Los contratos son relativamente pequeños y de estructura sencilla, el usuario está limitado a nada más seleccionar en el contrato cuales productos desea, es decir, son muy pocas las operaciones que se pueden realizar. Si hay alguna compra errónea de algún producto en particular toda la orden de compra se rechaza. En este trabajo de tesis los documentos XML que se manejan aunque tienen una estructura sencilla pueden llegar a ser muy grandes, ya que es la estructura de toda una biblioteca digital que se maneja.

La ideas que aporta [25] para este trabajo de tesis, fueron: El concepto de envío y recepción de documentos XML (contrato) entre el cliente y el servidor, la idea de realizar operaciones (compras) fuera de línea, es decir, modificar el contrato (documento XML) aún que no esté conectado al servidor y que posteriormente cuando se tenga conexión con el servidor se puedan ejecutar.

2.2.3 CODA

Este proyecto permite acceso a archivos a través de soporte de operaciones con una conexión débil a la red o sin ella, es decir, su objetivo fue pensando en realizar transacciones sobre una red que no es fiable. El proyecto se basa en obtener información en sistemas distribuidos, inició antes de que se tuviera la necesidad de soportar el cómputo móvil, sin embargo sus características mismas lo han hecho adaptarse a estos sistemas [41].

Figure

Figura 2.1: Arquitectura de un sistema de base de datos móvil [1]

Figura 2.1:

Arquitectura de un sistema de base de datos móvil [1] p.19
Tabla 2.3 Ventajas y desventajas de Palm OS y Windows CE

Tabla 2.3

Ventajas y desventajas de Palm OS y Windows CE p.24
Figura 2.3 Arquitectura de PDLib [28]

Figura 2.3

Arquitectura de PDLib [28] p.27
Figura 3.9: El Servidor de Datos actualiza al cliente móvil mediante el MCM

Figura 3.9:

El Servidor de Datos actualiza al cliente móvil mediante el MCM p.59
Figura 3.11: El cliente móvil y el servidor de mediante el MCM datos actualizan su información

Figura 3.11:

El cliente móvil y el servidor de mediante el MCM datos actualizan su información p.59
Figura 3.12: Diagrama de secuencia para obtención del skeleton

Figura 3.12:

Diagrama de secuencia para obtención del skeleton p.61
Figura 3.15 Ejemplo de la estructura lógica de una biblioteca digital (Skeleton.xml)

Figura 3.15

Ejemplo de la estructura lógica de una biblioteca digital (Skeleton.xml) p.67
Figura 3.22 Sintaxis de la operación Create Document

Figura 3.22

Sintaxis de la operación Create Document p.72
Figura 3.25 Sintaxis de la operación Email

Figura 3.25

Sintaxis de la operación Email p.74
Figura 3.27 Sintaxis de la operación Create Document

Figura 3.27

Sintaxis de la operación Create Document p.75
Tabla 4.1: Operaciones implementadas en el prototipo

Tabla 4.1:

Operaciones implementadas en el prototipo p.78
Figura 4.1 Opciones de sincronización

Figura 4.1

Opciones de sincronización p.79
Figura 4.2 Forma para la autenticación de usuarios

Figura 4.2

Forma para la autenticación de usuarios p.80
Figura 4.4 Navegación por las colecciones

Figura 4.4

Navegación por las colecciones p.81
Figura 4.3 Estructura de la biblioteca digital local

Figura 4.3

Estructura de la biblioteca digital local p.81
Figura 4.5 Menú de operaciones

Figura 4.5

Menú de operaciones p.82
Figura 4.7 Opción crear documentos

Figura 4.7

Opción crear documentos p.83
Figura 4.6 Ver permisos de una colección

Figura 4.6

Ver permisos de una colección p.83
Figura 4.8 Editar metadatos

Figura 4.8

Editar metadatos p.84
Figura 4.11 Editor del contenido del documento

Figura 4.11

Editor del contenido del documento p.85
Figura 4.10 Etiquetas de la operación Create Document

Figura 4.10

Etiquetas de la operación Create Document p.85
Figura 4.13 Opción ver documentos

Figura 4.13

Opción ver documentos p.86
Figura 4.14 Información del documento seleccionado

Figura 4.14

Información del documento seleccionado p.87
Figura 4.15 Ver contenido del documento

Figura 4.15

Ver contenido del documento p.88
Figura 4.18 Copiar o Mover el documento

Figura 4.18

Copiar o Mover el documento p.89
Figura 4.17 Enviar documento por E-mail

Figura 4.17

Enviar documento por E-mail p.89
Figura 4.20 Pantalla de crear colecciones

Figura 4.20

Pantalla de crear colecciones p.90
Figura 4.21 Vista de la nueva colección

Figura 4.21

Vista de la nueva colección p.91
Figura 4.29 Etiquetas de la operación Delete Document

Figura 4.29

Etiquetas de la operación Delete Document p.93
Figura 4.30 Opción de Sincronizar del dispositivo al Servidor

Figura 4.30

Opción de Sincronizar del dispositivo al Servidor p.94