Descripción del proyecto y Arquitectura - mje-pda

Anuncio
Descripción del proyecto
En nuestro proyecto se pretende implementar un sistema de consulta flexible en un
entorno de computación móvil en el que el usuario, a través de un dispositivo móvil (tal
como un PDA, o incluso un teléfono móvil) equipado con un GPS, obtenga una lista de
los restaurantes más próximos, según las preferencias del usuario (consulta flexible).
Arquitectura Utilizada
Para el desarrollo del proyecto, necesitamos los siguientes elementos:
 Un sistema de gestión de bases de datos. En dicho sistema se encontrará la base
de datos difusa sobre la que realizaremos las consultas.
 Un dispositivo móvil, en el que se encontrará instalado el sistema que vamos a
desarrollar. El dispositivo debe contar con un sistema GPS para obtener la
posición de usuario en cada momento.
 Un entorno de desarrollo que nos permita trabajar con dispositivos móviles y
con sistemas de bases de datos. Además, dada la gran variedad y diversidad en
cuanto a sistemas operativos (Windows CE,Symbian ,Palm Os…etc) y
lenguajes de programación, tratamos de buscar aquel entorno que nos permita
abarcar la mayor cantidad de dispositivos móviles.
Entornos de Desarrollo estudiados
Nuestro objetivo es, como hemos comentado antes, el lograr un producto que
pueda utilizarse en la mayoría de los dispositivos móviles. Por ello, lo que buscamos, es
una arquitectura lo más parecida a la de Java; es decir, disponer de una máquina virtual,
de modo que el sistema finalmente implementado sea multiplataforma.
De todos los lenguajes y entornos de programación existentes, nos limitamos a
estudiar los siguientes:
Java Micro Edition
La versión de Java para dispositivos móviles. Se trata de una versión de Java reducida
para poder ser ejecutada en entornos de computación embebidos.
Esta pensado para dispositivos embebidos como PDA’s , teléfonos móviles, dispositivos
embebidos de TV y una gran cantidad de dispositivos. Una de sus principales virtudes
es su generalidad, en cuanto a que se trata de un entorno de desarrollo genérico y
multiplataforma.
Hemos de tener en cuenta que se trata de una herramienta de desarrollo libre, y por lo
tanto, el software que se genere con ella es también libre.
Sin embargo, esta generalidad del entorno de desarrollo hace que no dispongamos de
una serie de librerías específicas para, por ejemplo leer los datos del GPS.
SuperWaba
Un entorno de programación pensado exclusivamente para dispositivos móviles. Basado
en Java (utiliza una máquina virtual) y adaptable a prácticamente cualquier tipo de
dispositivo y plataforma (combinación de sistema operativo y procesador). Además, las
librerías de desarrollo, cuentan con funciones específicas de estos dispositivos móviles.
De este modo, la labor de desarrollo se facilita enormemente.
Consultado la API que posee, encontramos funciones que actúan como interfaz de
conexión con el GPS, funciones que permiten realizar consultas SQL sobre un tipo
especial de archivos denominados catálogos, y una gran cantidad de utilidades
específicas para los dispositivos móviles.
Hemos de destacar la existencia de dos versiones de este producto: una versión
denominada “para la comunidad” de carácter gratuito, en la que encontramos una
librería de desarrollo “incompleta” y una documentación acorde a la librería de
desarrollo que se proporciona. Asimismo, existe una versión de pago, en la que el
desarrollador paga una licencia para poder utilizar la librería de desarrollo completa.
En el caso de la versión para la comunidad, el software que se desarrolla es también
libre.
C# .NET
La versión de la plataforma de desarrollo de Microsoft para dispositivos móviles.
La elección de esta plataforma presenta dos inconvenientes:
El primero es debido a que se trata de una plataforma de desarrollo propietaria, y por lo
tanto, no libre, de modo que, en el caso de que nos decantáramos por ésta, tendríamos
que pagar la licencia a Microsoft. Este problema, podría subsanarse, debido a la
existencia de una plataforma de desarrollo libre en lenguaje C# para Linux, Windows y
otros sistemas operativos, con la que podríamos realizar el proceso de desarrollo.
El segundo y quizás el más importante, desde nuestro punto de vista es la dificultad de
exportar el software que creemos a otras plataformas que no utilicen los sistemas
operativos Windows.
Hemos centrado nuestra elección en los siguientes valores:
 Producción de un producto multiplataforma.
 Producción de un código libre.
 Coste de implementación no excesivamente alto.
Por ello, elegimos la plataforma de desarrollo SuperWaba, (en concreto la versión de
desarrollo denominada “para la comunidad”) en la que todas estas características se
verifican. Pasamos a explicar detalladamente las características del entorno elegido.
SuperWaba es un lenguaje de programación que utiliza la sintaxis y la semántica de
Java, de hecho el código fuente que se programa para la máquina virtual de SuperWaba,
ha de compilarse primeramente con el compilador de Java. Aunque, SuperWaba no es
100% Java, ya que hemos de utilizar las restricciones que nos impone la máquina virtual
que utiliza. El proceso de desarrollo de una aplicación SuperWaba sigue los siguientes
pasos:
 Primeramente, escribimos el código fuente, adaptado a las bibliotecas (API) de
SuperWaba. Este código, se compila con un compilador de Java, teniendo en
cuenta que el código objeto que nos genere el compilador ha de ser el
correspondiente a la versión 1.2 de la máquina virtual de Java (que es la versión
de la SDK de Java con la que se implementó SuperWaba).
 Seguidamente, utilizamos un programa llamado Warp (superWaba Aplication
Resource Packager) , que toma todos los archivos de código objeto (.class)
obtenidos en el proceso de compilación anterior, así como todos los archivos
necesarios para la aplicación y los transforma en un único archivo de tipo pdb.
Este archivo es el que utiliza la máquina virtual para poder ejecutar el programa.
En el caso que vayamos a ejecutar nuestro programa en el emulador para PC, el
proceso de compilación habrá terminado aquí.
 En el caso que queramos construir nuestra aplicación para su uso en un
dispositivo móvil, hemos de realizar un paso adicional en el proceso de
compilación, en este caso se trata de ejecutar un programa denominado Exegen
(launch executable generator). A este programa, le pasamos el archivo pdb
creado en el proceso anterior y la arquitectura objetivo (sistema operativo y
procesador) para la que queremos crear el lanzador.
Hemos de decir también, que para poder ejecutar las aplicaciones que desarrollemos en
el dispositivo móvil, hemos de instalar en éste, la máquina virtual de SuperWaba. Una
vez que tenemos la máquina virtual instalada, basta con pasarle el ejecutable que se
genera en el último proceso de compilación.
Gráficamente, podemos ver el proceso de desarrollo de una aplicación en SuperWaba de
la siguiente manera:
Desarrollamos el programa en Java con la Api de SuperWaba, lo compilamos con el
compilador de Java, obtenemos los diferentes archivos .class que componen nuestra
aplicación, y finalmente lo empaquetamos todo en un archivo pdb. Esto es todo lo
necesario para tener una aplicación lista para ejecutar en la máquina virtual de
SuperWaba.
En el caso que queramos llevar nuestra aplicación a nuestro dispositivo móvil,
necesitamos dar un paso adicional, crear el lanzador de nuestra aplicación que lo instala
en nuestro dispositivo móvil:
SISTEMA DE GESTION DE BASE DE DATOS
Se ha de escoger un Sistema de Gestion de Base de Datos con objeto de que sirva de
interfaz entre la base de datos creada, el usuario y las aplicaciones que la utilizan, con el
proposito de que maneje de manera clara, sencilla y ordenada el conjunto de
información contenida en la base de datos, y que se componga de un lenguaje de
definición de datos, de un lenguaje de manipulación de datos y de un lenguaje de
consulta. Las principales funciones que debe cumplir un SGBD se relacionan con la
creación y mantenimiento de la base de datos, el control de accesos, la manipulación de
datos de acuerdo con las necesidades del usuario, el cumplimiento de las normas de
tratamiento de datos, evitar redundancias e inconsistencias y mantener la integridad.
Además de un Sistema de Gestión de Base de Datos, necesitamos un sistema que
nos permita manipular los datos en el dispositivo móvil que vayamos a utilizar. Por ello
estudiamos, además de los posibles sistemas de gestión de bases de datos, los distintos
formatos y opciones para exportar los datos a un dispositivo móvil.
Entre los diferentes Sistemas de Gestion de Base de Datos disponibles, se ha
realizado un estudio para evaluar cual de ellos es el que mas se adecua a las necesidades
del proyecto a realizar:
Oracle
Oracle es uno de los SGBD comerciales mas completos, destacando su soporte
de transaciones, estabilidad (bajo nivel de fallos), escalabilidad (preparado para
afrontar crecimientos sin perder calidad) y por ser multiplataforma, teniendo asi la
capacidad o característica de poder funcionar o mantener una interoperabilidad de
forma similar en diferentes sistemas operativos o plataformas, entre ellas
dispositivos moviles, que es el caso del proyecto que se desarrolla y para el cual se
emplearia como SGBD Oracle Lite.
Aunque su dominio en el mercado de servidores empresariales es muy elevado,
su mayor defecto es su carencia de licencia libre y su elevado precio, lo cual es un
aspecto a tener en cuenta a la hora de pensar en establecerlo como SGBD para el
proyecto en desarrollo ya que puede ser un inconveniente con vistas a futuros
usuarios del proyecto. Otro aspecto negativo es la seguridad de la plataforma, y las
políticas de suministro de parches de seguridad, modificadas a comienzos de 2005 y
que incrementan el nivel de exposición de los usuarios.
Microsoft SQL Server Compact Edition
Es un SGBD basado en el lenguaje SQL, capaz de poner a disposición de
muchos usuarios grandes cantidades de datos de manera simultánea. Así tiene unas
ventajas que aportan sus caracteristicas, entre las que se pueden detacar:
 Soporte de transacciones
 Gran estabilidad
 Gran seguridad
 Escalabilidad
 Soporta procedimientos almacenados
 Incluye también un potente entorno gráfico de administración, que permite el
uso de comandos DDL y DML gráficamente.
 Permite trabajar en modo cliente-servidor donde la información y datos se
alojan en el servidor y las terminales o clientes de la red sólo acceden a la
información.
 Además permite administrar información de otros servidores de datos
Este sistema incluye una versión reducida, llamada MSDE con el mismo motor
de base de datos pero orientado a proyectos mas pequeños.
Constituye la alternativa de Microsoft a otros potentes sistemas gestores de
bases de datos como son Oracle. Pero al contrario de su más cercana competencia,
no es multiplataforma, ya que sólo está disponible en Sistemas Operativos de
Microsoft.
MySQL
MySQL es un sistema de gestión de base de datos, multihebra y multiusuario.
Existen varias APIs que permiten, a aplicaciones escritas en diversos lenguajes de
programación, acceder a las bases de datos MySQL.
MySQL AB desarrolla MySQL como software libre en un esquema de
licenciamiento dual. Por un lado lo ofrece bajo la GNU GPL, pero, empresas que
quieran incorporarlo en productos privativos pueden comprar a la empresa una
licencia que les permita ese uso.
Al contrario de proyectos como el Apache, donde el software es desarrollado por
una comunidad pública, y el copyright del código está en poder del autor individual,
MySQL está poseído y patrocinado por una empresa privada, que posee el copyright
de la mayor parte del código. Esto es lo que posibilita el esquema de licenciamiento
anteriormente mencionado. Además de la venta de licencias privativas, la compañía
ofrece soporte y servicios.
La licencia GNU GPL de MySQL obliga a distribuir cualquier producto
derivado (aplicación) bajo esa misma licencia. Si un desarrollador desea incorporar
MySQL en su producto pero no desea distribuirlo bajo licencia GNU GPL, puede
adquirir la licencia comercial de MySQL que le permite hacer justamente eso.
Finalmente, nos decantamos por MySql, en base a su tipo de licencia, y dado que se
trata de un producto multiplataforma que no nos limita en este sentido,como en el caso
de los productos de Microsoft.
En cuanto a los formatos de exportación de la base de datos al dispositivo móvil,
hemos considerado las siguientes opciones:
SuperWaba.pdb
En un primer momento y ya decido que SuperWaba es el lenguaje empleado, se
considero la posibilidad de emplear el lenguaje de consulta SQL sobre ficheros
*.pdb donde se encontraria almacenada la informacion de la base de datos. Ante esta
posibilidad surge el inconveniente de que los paquetes de SuperWaba incluidos en
SuperWaba.pdb y necesarios para llevar a cabo esto no estan disponibles en la
versión gratuita de SuperWaba a la que podemos tener acceso, encontrandose en la
versión extendida de pago, lo cual supone un inconveniente y por tanto da lugar al
descarte de esta posibilidad.
Class Catalog de SuperWaba
Ante el inconveniente encontrado en almacenar los datos en ficheros *.pdb sobre
los que hacer las consultas, otra opción que aporta SuperWaba es la clase Catalog,
una clase de almacenamiento de datos que permite el uso de catalogos, que son
conjuntos de registros a los que se referencia como si se tratase de una base de datos
almacenada en un dispositivo pequeño como puede ser un PDA, pudiendo leer
desde dichos registros que componen un catalogo los datos almacenados en ellos.
El principal inconveniente de esta opción es la dificultad para extraer la base de
datos del sistema gestor de bases de datos al formato de un catálogo.
Microsoft SQL Lite
Entre otras ventajas, se caracteriza por ser de dominio publico, no presentando
asi los inconvenientes especificados a ese respecto en las opciones plateadas
anteriormente , ser muy rápido y fundamentalmente porque permite utilizar un
amplio subconjunto del lenguaje de consulta estándar SQL. Su potencia se basa
fundamentalmente en la simplicidad, pero es una solucion a descartar en entornos de
trafico muy elevado o alto acceso concurrente a datos.
El principal inconveniente de este producto es que sólo se puede utilizar en
dispositivos que utilicen el sistema operativo de Microsoft, y por tanto limita nuestra
intención de desarrollar un producto multiplataforma.
XML
Ante los inconvenientes encontrados en las anteriores propuestas, buscamos una
opción que nos solventase los problemas encontrados. Por ello pensamos en XML,
dada su gran difusión en la actualidad y su facilidad para exportarlo a cualquier
sistema.
Arquitectura Utilizada
En esta primera versión de la aplicación, la interacción con el usuario es la siguiente:
El sistema gestor de bases de datos se encuentra en un PC de sobremesa utilizando el
sistema Mysql. En dicho sistema se encuentra la base de datos con el restaurante y las
preferencias del usuario. El usuario selecciona qué perfil de la base de datos desea
cargar en su dispositivo pda, exportando la base de datos resultante en xml. Una vez que
tenemos la base de datos en xml en el PDA, podemos ejecutar el programa en el que
introducimos las coordenadas en las que nos encontramos así como un radio de
búsqueda. Finalmente, el programa nos muestra como resultado un listado de los
restaurantes que se encuentran próximos.
En una primera versión de la aplicación, nuestra aplicación contiene los siguientes
elementos:
 Un sistema de base de datos en el que almacenar los datos relativos a los
restaurantes y las preferencias del usuario. La base de datos difusa se encontrará
en este sistema.
 Un mecanismo de exportación de la base de datos del sistema gestor de la base
de datos hacia el PDA en formato xml.
 Un programa desarrollado en SuperWaba que se ejecutará en el PDA y que, a
partir de la base de datos en xml, sea capaz de encontrar los restaurantes que se
encuentren más cercanos dada una posición
Procesamiento BD difusa
con preferencias del usuario
Servidor con sistema gestor
de base de datos MySql
Exporta BD a XML
Dispositivo PDA con
programa en SuperWaba
Descargar