Automated Mobile Applications Generator for Remote Database

Anuncio
Generador Automatizado de Aplicaciones Móviles para
Acceder a Bases de Datos Remotas
Automated Mobile Applications Generator for Remote Database
Access
Mabel Vázquez-Briseno
Pierre Vincent
Universidad Autónoma de Baja
California
Km. 103 carretera Tijuana-Ensenada
Ensenada, BC, México
MobKit
70, rue de Madagascar
59000 Lille France
[email protected]
[email protected]
Juan-Iván Nieto-Hipólito &
Juan-de-Dios Sánchez-López
Universidad Autónoma de BC
Km. 103 carretera Tij-Ens s/n
Ensenada, BC, México
[email protected]
[email protected]
ABSTRACT
RESUMÉN
Nowadays many mobile applications and services require accessing
remote databases in order to obtain data to be displayed and
managed in mobile devices. Many of these applications are
implemented using similar basic functions like establishing a remote
connection and retrieving information. Due to this, mobile
applications developers are continuously required to implement
applications that perform similar tasks and that must fit different
devices since today mobile devices heterogeneity is very large. In
this paper an automated mobile applications generator called
GAAMov is presented. GAAMov is intended to ease developers’
work by generating mobile applications that require accessing a
remote database. GAAMov generates the client and server side
applications using a very friendly web interface. For the client-side it
generates Java ME applications that use the Record Management
System (RMS).The remote databases are managed using PHP and
MySQL.
Hoy en día una gran variedad de servicios y aplicaciones móviles
requieren acceder a bases de datos remotas con el fin de obtener
datos que serán procesados en el dispositivo móvil. Debido a esto,
los programadores de dichos servicios requieren continuamente
generar aplicaciones que realicen tareas similares, las cuales
incluyen establecer conexiones remotas y manipular datos
provenientes de una base de datos. Los programadores deben
además generar aplicaciones eficientes que se adecuen a dispositivos
con diversas características y capacidades. En este artículo se
presenta el diseño e implementación de un sistema genérico
denominado GAAMov (Generador Automatizado de Aplicaciones
Móviles), el cual facilita y agiliza el desarrollo de aplicaciones
móviles que requieren el acceso a bases de datos remotas. Para ello
se utiliza el sistema de gestión de registros RMS (Record
Management System) de Java ME, el cual es soportado por la
mayoría de los dispositivos móviles actualmente y el manejador de
bases de datos MySQL en el sistema remoto.
Categories and Subject Descriptors
H.3.4 [Information
distributed systems.
Systems]:
Systems
and
Software
–
Palabras clave
Computación móvil, Bases de datos, Java ME, RMS, Software.
General Terms
1. INTRODUCCIÓN
Design, Languages.
El uso de dispositivos móviles, tales como teléfonos celulares y
Asistentes Personales Digitales (PDA, Personal Digital Assistant),
ha evolucionado considerablemente en los últimos años. En sus
inicios fueron utilizados meramente como dispositivos de
comunicación, pero hoy en día, estos dispositivos son elementos
cruciales en el desarrollo de múltiples aplicaciones y servicios
tales como comercio electrónico, servicios de información,
notificación de emergencias entre otros. Un servicio móvil
consiste siempre en tres componentes: Una aplicación móvil que
funciona como cliente, una conexión de red inalámbrica y un
servidor que provee la funcionalidad o información (contenido)
requerida por la aplicación. En este contexto, una aplicación es
móvil si es ejecutada en un dispositivo móvil y requiere estar
conectada ocasional o permanentemente a una red. Dicho de otra
manera, las aplicaciones móviles corresponden en sí a la solución
Keywords
Mobile computing, database, Java Me, RMS, Software.
Permission to make digital or hard copies of all or part of this work for
personal or classroom use is granted without fee provided that copies are
not made or distributed for profit or commercial advantage and that
copies bear this notice and the full citation on the first page. To copy
otherwise, or republish, to post on servers or to redistribute to lists,
requires prior specific permission and/or a fee.
Euro-American Conference on Telematics and Information Systems
September 22–24, 2010, Panama City, Panama.
Copyright ACM 1-58113-000-0/00/0004…$5.00.
implementada en el dispositivo, mientras que los servicios se
asocian normalmente a proveedores externos o servidores remotos
[13] .
En los últimos años han surgido varias tecnologías y plataformas
que permiten el desarrollo de aplicaciones móviles. Entre ellas se
encuentran: BREW (Binary Runtime Environment for Wireless)
desarrollado por QualComm [1], Java Platform Micro Edition
(Java ME) de Sun [4], .NET Compact Framework de Microsoft
[7], y más recientemente la plataforma ANDROID presentada
oficialmente en Noviembre del 2007 por la Open Handset
Alliance [10]. Entre estas tecnologías, Java ME (anteriormente
conocida como J2ME) es actualmente la más popular debido a
que la mayoría de los dispositivos móviles actualmente en el
mercado la soportan.
A pesar de estas herramientas, el desarrollo de aplicaciones
móviles representa nuevos retos de diseño e implementación para
los programadores, ya que deben implementar aplicaciones que se
adapten a la diversidad de dispositivos en el mercado, con
memoria limitada y diferentes capacidades. El desarrollador debe
considerar además que la manera en que los usuarios interactúan
con los servicios es también muy diferente cuando se trata de
aplicaciones móviles, ya que la interfaz de interacción humana
que proveen difiere considerablemente de las utilizadas en las
computadoras personales. Este aspecto es de suma importancia
cuando se requiere presentar información en el dispositivo que ha
sido recabada de un sistema remoto, tal como una base de datos.
La información debe ser procesada de manera que sea compatible
con el ambiente restringido del dispositivo móvil, en cuanto a
espacio en memoria y despliegue en pantalla.
El principal objetivo del sistema presentado en este artículo es
facilitar el trabajo de los desarrolladores de aplicaciones y
servicios móviles, ofreciéndoles una plataforma que agilice su
trabajo de manera eficiente. Esta plataforma consiste en una
herramienta
denominada
Generador
Automatizado
de
Aplicaciones Móviles (GAAMov), la cual es configurable de
acuerdo a las necesidades de diversos proyectos que tengan en
común el requerimiento de manipular información obtenida de
una base de datos remota. GAAMov genera aplicaciones Java ME
que deben ser instaladas en el dispositivo móvil a utilizar. De
igual manera, se encarga de la generación de las utilerías
necesarias para manipular la base de datos remota. Para ello se
utiliza el sistema de gestión de bases de datos MySQL, en
conjunto con el lenguaje PHP, los cuales garantizan eficiencia y
compatibilidad en el sistema remoto [14]. El resto del artículo
está organizado de la siguiente manera: En la sección 2 se
describen los principales componentes de la plataforma Java ME
que fueron utilizados para desarrollar este trabajo. La sección 3
explica en detalle la arquitectura de GAAMov. La sección 4
muestra un ejemplo del funcionamiento de la misma y finalmente
en la sección 5 se menciona las conclusiones y trabajo futuro.
Virtual Machine) por su tamaño de unos cuantos kilobytes. El uso
de una máquina virtual es particularmente útil en el ambiente de
dispositivos móviles, donde la heterogeneidad es muy grande, ya
que permite separar el hardware de la aplicación, garantizando
compatibilidad entre diversos dispositivos.
Java ME está compuesta de un conjunto de APIs separadas en dos
niveles: Configuraciones y Perfiles. El primero de ellos,
Configuraciones, define las clases básicas tomadas de la versión
estándar de Java. La configuración que corresponde a los
dispositivos pequeños es conocida como CLDC (Connected
Limited Device Configuration). El segundo nivel, Perfiles, se
refiere a las clases específicas creadas para los dispositivos
móviles, es decir define el conjunto básico que corresponde a un
grupo particular de dispositivos [3]. Un Perfil tiene dos
propósitos básicos: La especialización en un tipo de dispositivo y
garantizar la compatibilidad entre dispositivos similares. El perfil
MIDP (Mobile Information Device Profile) está especialmente
diseñado para teléfonos celulares y es además soportado por
algunos PDAs. MIDP contiene paquetes de clases definidas para
realizar tareas específicas. Especialmente útiles para el desarrollo
de servicios móviles son las clases que permiten realizar
conexiones remotas y administrar el sistema de almacenamiento
persistente de datos en los dispositivos. Las aplicaciones basadas
en MIDP son conocidas como MIDlets y pueden ser instaladas
directamente en los dispositivos móviles que soportan este perfil.
2.1 Conexiones Remotas
El manejo de conexiones remotas en Java ME se realiza a través
de la Plataforma Genérica de Conexiones o GCF (Generic
Connection Framework), la cual establece conexiones de manera
flexible para adaptarse a diversos dispositivos. La principal idea
de la GCF es definir abstracciones de las principales operaciones
de red y conexiones remotas, dejando la implementación a los
proveedores de dispositivos. La figura 1 muestra las conexiones
definidas en la GCF.
Connection
DatagramConnection
StreamConnectionNotifier
InputConnection
ServerSocketConnection
OutputConnection
StreamConnection
ContentConnection
ContentConnection
UDPDatagramConnection
SocketConnection
SocketConnection
MIDP 1.0
2. PLATAFORMA DE DESARROLLO
JAVA ME
La plataforma Java Micro Edition (Java ME) puede considerarse
como una versión reducida de la plataforma estándar de Java:
Java Standard Edition (J2SE). Al igual que ésta, Java ME
proporciona una máquina virtual, conocida como KVM (Kilo
HTTPConnection
HttpConnection
MIDP 2.0
CLDC 1.0
HTTPSConnection
Figura 1. Jerarquía de interfaces de la Plataforma Genérica de
Conexiones (GCF)
El Protocolo de Transferencia de HiperTexto (HTTP) es
soportado desde la primera versión de MIDP a través de la
interface conocida como HTTP connection. El soporte del
protocolo HTTP es obligatorio en todas las implementaciones de
MIDP. A partir de la especificación MIDP 2.0 se agregó soporte
para conexiones de bajo nivel incluyendo sockets TCP
(Transmission Control Protocol) y datagramas UDP (User
Datagram Protocol), por lo que las aplicaciones tienen ahora
mayores posibilidades de establecer conexiones remotas, sin
embargo no todos los dispositivos soportan estas nuevas
interfaces [8].
2.2 Sistema de Almacenamiento Persistente de
Datos
El almacenamiento persistente de datos en Java ME se realiza a
través del Sistema de Administración de Registros o RMS
(Record Management System). Este sistema se encarga de
almacenar y administrar información que es colocada en una zona
dependiente de la plataforma, a la cual las aplicaciones
generalmente no tienen acceso directo [5]. El sistema crea un
conjunto de registros conocidos como recordStores y provee
métodos y funciones capaces de manipular esta información. El
paquete de clases javax.microedition.rms se utiliza para manipular
la información almacenada. Cada recordStore en RMS consiste en
un encabezado y bloques de datos o registros que están
estructurados como una lista enlazada, tal como se muestra en la
figura 2. El encabezado mantiene un enlace al primer bloque de
datos y otra al primer bloque de espacios libres [6]. El encabezado
también contiene información acerca del conjunto de registros:
Numero de versión, fecha de la última modificación, un
identificador de registro conocido como recordId, entre otros.
proporcionando una solución automatizada para implementar las
aplicaciones. De esta manera, GAAMov lleva el desarrollo de
software móvil a un nivel más abstracto, que ayuda
considerablemente a la realización exitosa de éstas aplicaciones,
ya que elimina los problemas de depuración de errores y
construcción de clases con funciones repetitivas.
GAAMov se encarga de generar la aplicación móvil para el lado
del cliente orientada a dispositivos CLDC/MIDP. Debido a que
los recursos en estos dispositivos son escasos, GAAMov permite
también un mejor uso del espacio, al crear proyectos que
comparten un conjunto de funciones y métodos básicos, y que
pueden ser reutilizados además, por otras aplicaciones. De igual
forma, GAAMov se encarga de generar los manipuladores de la
base de datos remota con los cuales se comunica la aplicación
para obtener la información requerida. Estos manipuladores
consisten en librerías PHP que deberán ser utilizadas en un
servidor remoto con una instalación del manejador de bases de
datos MySQL.
La comunicación entre la aplicación móvil y el servidor se realiza
a través de conexiones HTTP y/o HTTPS de acuerdo a los
atributos especificados por el programador. Ambas conexiones
garantizan su funcionamiento en una gran variedad de
dispositivos móviles, debido a que son obligatorias en todos los
dispositivos MIDP y parte básica de la GCF. Una vez que la
información es leída de la base de datos remota, ésta es
transformada en un conjunto de registros RMS para poder ser
manipulada eficientemente en el dispositivo. La figura 3 muestra
el esquema general de una aplicación generada con GAAMov.
La principal ventaja del sistema es la automatización en la
creación de las clases Java ME y manipuladores PHP. El
desarrollador requiere conocer únicamente las características
generales del proyecto que desea implementar, ésto es, la base de
datos y registros remotos que desea manipular en el dispositivo
móvil. Esta información es manejada en GAAMov como los
atributos del proyecto. A partir de estos datos GAAMov genera
de manera automatizada los componentes cliente y servidor
necesarios para implementar el servicio o aplicación móvil.
Figura 2. Organización de registros en el sistema RMS
El sistema RMS es de gran utilidad para almacenamiento
persistente de datos en el dispositivo, sin embargo, no está basado
en el modelo relacional, por lo que la información no se almacena
como en una base de datos [2]. Esto puede causar
incompatibilidad si se desea procesar la información desde un
servidor de bases de datos remoto.
3. DESCRIPCIÓN DEL SISTEMA
El Generador Automatizado de Aplicaciones Móviles (GAAMov),
es una herramienta que provee un conjunto de clases cooperativas
y librerías para la generación de aplicaciones móviles. El principal
objetivo del sistema es facilitar el trabajo de los desarrolladores,
Figura 3. Funcionamiento general de una aplicación móvil
generada con GAAMov
Los datos son leídos desde la base de datos utilizando conexiones
seguras HTTP. Cada proyecto generado incluye al menos tres
clases Java ME básicas que se encargan de manipular la
información. Éstas son:

DBRecord: Corresponde a la interfaz de usuario que
muestra los registros leídos de la base de datos en el
dispositivo, utilizando cuadros de texto (TextFields), cajas de
texto (TextBox) o cuadros de fechas (DateFields) que son los
elementos básicos de salida por pantalla definidos en Java ME.

httpDBoper: Establece la comunicación con el
servidor remoto para leer los registros de la base de datos
MySQL.

DBInterface: Se encarga de convertir el conjunto de
registros leídos en un archivo de texto, que es transformado en
un recordStore para ser procesado localmente en el dispositivo
móvil.
Un proyecto generado con GAAMov puede consistir en un sólo
MIDlet o varios. Incluso cada MIDlet puede requerir acceso a
tablas o bases de datos diferentes. En cualquiera de los casos estas
tres clases básicas pueden ser compartidas por todas las
aplicaciones, de manera que sea posible generar proyectos que
requieran el menor uso de memoria posible. La figura 4 muestra
los principales componentes de GAAMov. Información del
proyecto corresponde a los elementos que el programador debe
proveer para crear la aplicación o servicio. Para ello se utiliza una
herramienta Web que facilita la utilización del sistema. De esta
manera, GAAMov puede ser utilizado incluso por programadores
novatos que solo deberán instalar los componentes generados en
el cliente y servidor. Programadores más experimentados pueden
utilizar las clases generadas como base para proyectos más
grandes o complejos.
Con la finalidad de garantizar la adaptabilidad del sistema, se
utilizaron herramientas libres y de código abierto para su diseño e
implementación. La herramienta Web fue programada utilizando
xHTML y PHP. El Generador de Clases fue implementado
utilizando J2SE y patrones de Velocity [12] y el Constructor de
Aplicaciones se basa en Apache ANT [11]. A continuación se
describen cada uno de los componentes de GAAMov.
Entre otras cosas, estos atributos permiten definir los parámetros
para tener acceso a la base de datos remota, el orden de los
registros, y los elementos (TextFields, DateFields) que serán
utilizados para mostrar la información en el dispositivo móvil.
Una vez que el programador termina de capturar la información
del proyecto, la herramienta Web se encarga de generar código
propio de GAAMov. Este código es utilizado por el GCG y el
GPG para construir la aplicación correspondiente.
Atributos
Configuración
del servidor
Nombre_MIDlet
Orden_Registros
Nombre_DB
TextField
DateField
Name
Label
Text
Lenght
Constraints
DB_Field
inTitle
Name
Label
Mode
DB_Field
inTitle
Figura 5. Atributos de configuración para la creación de
proyectos con GAAMov
3.2 Generador de Clases de GAAMov (GCG).
El Generador de Clases de GAAMov (GCG) está escrito en
lenguaje Java. Este componente se encarga de interpretar el código
generado por la Herramienta Web, descrita en la sección anterior.
Con esta información el GCG crea todas las clases fuente Java ME
tomando como base patrones diseñados utilizando Velocity, el cual
es parte del proyecto Apache Jakarta. La figura 6 muestra el
diagrama de bloques del GCG.
Código
propio de
GAAMov
Importador de
Patrones
Generador de
Clases
Descriptor de
Clases
Descriptor de
Atributos
Aplicación Cliente
Patrones
Velocity
GCG
Código Java
ME
Figura 4. Principales componentes de GAAMov.
3.1 Herramienta Web de GAAMov
La Herramienta Web permite al programador proveer los datos de
entrada necesarios para crear proyectos móviles de una manera
amistosa y clara. La información requerida corresponde a una
serie de atributos que permitirán crear las clases Java ME así
como los manipuladores remotos necesarios. Los atributos básicos
de entrada se muestran en la figura 5.
Figura 6. Diagrama de bloques del Generador de Clases de
GAAMov
Como se mencionó anteriormente, cada proyecto generado con
GAAMov puede consistir en una aplicación (un sólo MIDlet) o un
conjunto de aplicaciones. Cada aplicación incluida en el proyecto
es generada en base a un Descriptor de Clase y a un Descriptor de
Atributos. El GCG mezcla el Descriptor de Atributos de cada
aplicación con los patrones Velocity incluidos en el sistema. Esta
operación crea todas las clases requeridas para generar cada MIDlet
en el proyecto. Las clases que realizan tareas básicas, tales como el
establecimiento de conexiones HTTP, son agregadas una sola vez
al proyecto y son compartidas por los MIDlets que las requieren.
3.3 Constructor de Proyectos de GAAMov
(CPG).
El Constructor de Proyectos de GAAMov (CPG) está basado en
Apache ANT. Recibe como parámetro inicial un archivo de
configuración conocido como build.xml, el cual en GAAMov es
generado por la Herramienta Web. Este archivo contiene
información importante sobre el proyecto que deberá generarse.
El CPG es el encargado de ejecutar cada una de las operaciones
necesarias para crear las aplicaciones cliente y servidor. La figura
7 muestra el diagrama de bloques del CPG.
Generación
de clases
(GCG)
Compilación
Archivos
Cliente/
Servidor
Archivo de
configuración
Preverificación
Generación
de archivos,
JAD, JAR
Preparación
de
aplicaciones
CPG
debe realizar una verificación ligera y más rápida, que no requiere
gran capacidad de procesamiento. El kit de desarrollo Java ME
proporcionado por Sun (Sun’s Wireless ToolKit) incluye una
utilería para realizar la preverificación. El CPG utiliza esta
utilería, ejecutándola después de compilar las clases.
El CPG también se encarga de generar el archivo Manifiesto y los
paquetes JAD y JAR que contienen la aplicación generada y que
deben ser instalados en el dispositivo móvil. Finalmente el CPG
se encarga de generar los manejadores PHP que deben ser
instalados en el servidor, tomando como base una serie de
librerías incluidas en GAAMov.
4. CASO DE ESTUDIO
Como prueba de la utilidad de GAAMov varios proyectos fueron
generados, entre ellos el Proyecto de Servicios Móviles a
Estudiantes. Este sistema fue desarrollado con la intención de
proveer información escolar a estudiantes universitarios. El
objetivo del proyecto es ofrecer una aplicación móvil que los
estudiantes puedan utilizar para acceder a información de la
Universidad, tal como:
 Información sobre cursos específicos, incluyendo profesor
de la asignatura, horario y libros de referencia.
 Información sobre los edificios de la Universidad,
incluyendo su localización y funcionalidad.
 Tener acceso a su horario personal registrado en la base de
datos de alumnos.
El proyecto consiste en tres aplicaciones o MIDlets: Cursos,
Edificios, y Horario_Estudiante. Para su creación el
programador definió los atributos correspondientes a cada una de
ellas utilizando la Herramienta Web de GAAMov. Esta utilería
permite ingresar la información llenando un conjunto de
formularios Web como se muestra en la figura 8.
Figura 7. Diagrama de bloques del Constructor de
Proyectos de GAAMov
GAAMov
Utileria
Web
Como primera tarea se encarga de la ejecución del GCG
incluyendo al llamarlo todos los argumentos obtenidos de la
Herramienta Web. Una vez que el GCG ha generado las clases
fuente Java ME, el CPG se encarga de compilarlas y
preverificarlas. La preverificación es una nueva fase incluida en
el desarrollo de aplicaciones Java ME. Debido a que los
dispositivos MIDP generalmente no cuentan con suficiente
espacio en memoria, el proceso de verificación de clases
requerido por Java ha sido dividido en dos etapas. La primera
corresponde a la preverificación, la cual es realizada antes de
instalar la aplicación en el dispositivo, la segunda la realiza la
máquina virtual de Java una vez que la aplicación ha sido
instalada. Durante la Preverificación se realizan ciertas
anotaciones en el código de bytes de Java, de esta manera, cuando
la máquina virtual se dispone a ejecutar la aplicación, primero
revisa las anotaciones hechas en el código. Las anotaciones
adecuadas garantizan a la máquina virtual que el código fue
revisado apropiadamente durante la compilación, por lo que sólo
GCG
CPG
Programador
Instalar
aplicaciones
en cliente y
en servidor
Figura 8. Programador generando el Proyecto de Servicios
Móviles a Estudiantes
Algunos de estos atributos son: las bases de datos a utilizar,
configuración del sistema, los registros que serán manipulados en
el dispositivo de acuerdo a los campos existentes en la base de
datos remota y el orden en que desean visualizarse. Como
requerimiento inicial los alumnos deberán estar registrados en la
base de datos escolar para poder leer información utilizando el
proyecto generado. Esto garantiza un acceso limitado y seguro a la
base de datos. Una vez que la información es capturada, GAAMov
genera automáticamente el proyecto, conformado por los archivos
a instalar en el cliente móvil y en el servidor. Las aplicaciones son
generadas de manera automatizada con GAAMov y el
programador finalmente solo debe instalarlas en las localidades
correspondientes. La figura 9 muestra la aplicación móvil
ejecutándose en el simulador proporcionado por la compañía Sun.
seleccionadas debido a que son obligatorios en todos los
dispositivos MIDP, lo que garantiza la portabilidad de la
aplicación. Una ventaja importante de GAAMov es que genera
aplicaciones que comparten clases básicas para establecer
conexiones HTTP y lectura de registros de la base de datos.
Debido a que los recursos de memoria son aún limitados en los
dispositivos móviles, esta es una ventaja importante, ya que el
programador puede generar proyectos que incluyan varias
aplicaciones (MIDlets), sin requerir gran capacidad de
almacenamiento.
Como trabajo futuro se ha considerado la realización de un
sistema similar a GAAMov, pero utilizando la plataforma
ANDROID de Google, la cual ha sido presentada recientemente
por la Open Handset Alliance. ANDROID se basa en el sistema
operativo Linux y promete un mejor control del hardware del
dispositivo que las plataformas anteriores [9], lo que facilita el
acceso a los medios de almacenamiento de los dispositivos.
6. REFERENCIAS
[1]
Figura 9. Pantallas del Proyecto Servicios a Estudiantes,
generado con GAAMov
Las aplicaciones Cursos y Edificios muestran los registros
correspondientes a la base de datos Universidad, mientras que la
aplicación Horario_Estudiante accede a la base de datos
remota Escolares. Una vez que los registros correspondientes son
leídos de la base de datos, éstos son convertidos en recordStores
del sistema RMS. De esta manera el usuario puede realizar
operaciones para manipular la información
sin requerir
conexiones remotas constantes a la base de datos
5. CONCLUSIONES Y TRABAJO FUTURO
En esta artículo se ha presentando la implementación y
funcionamiento del Generador Automatizado de Aplicaciones
Móviles, GAAMov. Este sistema está orientado a facilitar el
desarrollo de servicios y aplicaciones móviles que requieren
comunicación con bases de datos remotas. La principal idea es
lograr la automatización del desarrollo de estos proyectos,
proporcionando una herramienta de fácil utilización para los
programadores. Para cubrir esta objetivo, la interfaz de usuario de
GAAMov consiste en una herramienta web, que permite al
programador definir los parámetros o atributos para generar un
proyecto utilizando una serie de formularios. Una vez que el
programador ingresa la información, el sistema genera
automáticamente las aplicaciones cliente y servidor del proyecto.
La aplicación cliente consiste en una aplicación MIDP, la cual
permite acceder y visualizar la información contenida en una base
de datos MySQL. Esta aplicación transforma los datos leídos en
registros RMS que pueden ser manipulados en el dispositivo
móvil incluso sin requerir comunicación continúa con la base de
datos remota. Para el lado del servidor, GAAMov genera
manipuladores PHP que se encargan de leer la información de la
base de datos y que se comunican con la aplicación móvil
utilizando conexiones HTTP y HTTPS. Estas conexiones fueron
[2]
[3]
[4]
[5]
[6]
[7]
[8]
[9]
[10]
[11]
[12]
[13]
[14]
BREW (Binary Runtime Environment for Wireless)
reference. Recuperado el 15 de Dic. de 2009 de:
http://brew.qualcomm.com/brew/
Date, C.J. Introducción a los sistemas de bases de datos:
Pearson Educación de México, 2001.
Helal, S., “Pervasive Java”. Pervasive Computing, IEEE,
Vol.1, Issue 1. February 2002
Java ME reference. Recuperado el 8 de Enero de 2010 de:
http://java.sun.com/javame/index.jsp
Knudsen, J., Wireless Java: Developing with J2ME, The
Author’s Press, 2003.
Muchow J.W., Core J2ME Technology and MIDP, Sun
MicroSystems Press, 2001. ISBN: 0130669113
.NET Compact Framework reference. Recuperado el 9 de
Enero de 2010 de: http://msdn2.microsoft.com/enus/netframework/default.aspx
Quasay M., “J2ME Low-level Network Programming with
MIDP 2.0”. Recuperado el 13 de Enero de 2010 de:
http://developers.sun.com/mobility/midp/articles/midp2netw
ork
Reto
M.,
Professional
ANDROID
Application
Development. Wrox, 2008. ISBN: 0470344717
Rogers R. y Lombardo J., Mednieks Z., Blake M., Android
Application Development: Programming with the Google
SDK , O'Reilly Media, Inc.., 2009
The Apache ANT Project manual. Recuperado el 8 de Enero
de 2010 de: http://ant.apache.org
The Apache Velocity Project reference. Recuperado el 8 de
Enero de 2010 de: http://velocity.apache.org
Verkasalo, Hannu. “Empirical Observations on the
Emergence of Mobile Multimedia Services and
Applications in the U.S. and Europe”. Proceedings of the
5th International Conference on Mobile and Ubiquitous
Multimedia, Stanford, California, Diciembre 2006.
Williams H. y Lane D., Web Database Applications with
PHP and MySQL, O'Reilly Media, Inc., 2nd edition. Mayo
2009.
Descargar