Vous êtes sur la page 1sur 29

QU ES UN DISPOSITIVO MVIL

La era de la informacin ha llegado, y con ella, las comunicaciones han


mantenido la pauta en alta. Y para que exista comunicacin, aparte de todos
aquellos sistemas que la permiten, debe haber algunos en las manos de los
usuarios, que les posibiliten el acceso a estos sistemas. Si bien existen gran
cantidad de dispositivos que permiten este acceso (como los computadores,
telfonos y la televisin interactiva) las comunicaciones se han visto en la
necesidad de ser ubicuas (es decir, de poderse usar en cualquier momento y
lugar) por lo que una nueva gama de dispositivos han aparecido: Los
dispositivos mviles.
Para responder a la pregunta de qu son? solo debemos mirar a nuestro
alrededor. Celulares, Ipods, Iphones, Blackberrys, Ipad, y cualquier otro tipo de
artilugio comunicativo salta a la vista cuando estamos en una universidad, en
un transporte, o incluso en nuestras casas. Y esa es la primera caracterstica
de un dispositivo mvil: Su portabilidad. Son aparatos que se usan para
comunicarnos, y que son portables, que pueden llevarse de manera cmoda.
Esta comunicacin se da porque para estos dispositivos es posible conectarse
a una red, sea de datos, o de telefona, de manera permanente o intermitente.
Esta conexin implica tambin cierta capacidad de procesamiento de
informacin en el tiempo (al menos la que se enva y se recibe de la red), cierta
capacidad de almacenamiento de la misma (sino, no sera posible su
procesamiento en el tiempo, Dnde la tendramos mientras la vamos
procesando?) y aunque su funcin es la de la comunicacin, pueden prestar
servicios diferentes a este.
Podemos resumir entonces que un dispositivo mvil es un aparato portable,
con cierta capacidad de procesamiento y memoria, que tiene un

acceso

relativo a una red y cuyo propsito es el de comunicar principalmente, aunque


puede tener algn otro propsito.

Programacin de dispositivos mviles


Semana 1

Si, hasta un reloj que se conecte a internet es un dispositivo mvil. Si mi MP3 lo


hace, o se comunica con otro MP3, tambin lo es. Pero mi computador porttil,
aunque hace todo esto, no es tan portable como un celular, por lo que no
puede decirse que es un dispositivo mvil.
Clases de dispositivos mviles
Han aparecido una gran variedad de dispositivos mviles en el mercado, lo que
ha hecho necesaria la aparicin de estndares que agrupen la definicin de
dispositivos mviles. Estos estndares fueron definidos de la siguiente manera.
1. Dispositivo mvil de datos limitados: Son aquellos dispositivos que son
pequeos y que poseen una pantalla tipo texto (sin grficas,
monocromtica).

Estos dispositivos generalmente tienen solo los

servicios de SMS (mensajera) y WAP (Wireless acces protocol, o


portocolo de acceso a internet).
2. Dispositivo mvil de datos bsico: Dispositivos con una pantalla
mediana, y con la posibilidad de navegar a travs de un cursor por un
men visualizado en la pantalla. Prestan los mismos servicios que el
dispositivo limitado, ms otros como e-mail y un navegador bsico de
internet. En este grupo se pueden incluir los blackberrys y los
smartphones o telfonos inteligentes.
3. Dispositivos mviles de datos mejorados: Son aquellos dispositivos que
poseen las mismas funcionalidades que el bsico, pero poseen un
sistema operativo autnomo y aplicaciones complejas como office
mvil, entre otros.

Aunque

existen

muchas

variedades

de

dispositivos

mviles,

nos

concentraremos en estos 3 grupos, e iremos cerrando la brecha mientras


veamos las aplicaciones ms comunes, hasta llegar a un dispositivo objetivo.

Programacin de dispositivos mviles


Semana 1

Caractersticas de los dispositivos mviles del mercado


Los dispositivos mviles actuales se han vuelto muy robustos, presentando
diversas funcionalidades como la lectura de cdigo de barras, procesamiento
de texto, almacenamiento de datos, reconocimiento facial, lectura de mail, e
incluso, posibilidad de escoger diversas redes para transmitir sus datos.
Sin embargo, las caractersticas de dichos productos pueden reducirse a un
conjunto determinado de estructuras que permiten prestar los servicios
anteriormente mencionados. Cules son estas caractersticas? Si bien existen
muchas, solo nombraremos las que consideramos importantes para el
desarrollo de nuestro curso:

Pantalla: Todo dispositivo mvil tiene una pantalla. Esta es la puerta de


salida del aparato, la forma en la que se comunica con nosotros. Y
estas pantallas pueden posibilitar solo la visualizacin de letras,
imgenes sencillas, mens, y en los ltimos aos, fotos, videos y todo
tipo de contenido digital. Incluso, se han visto pantallas tctiles que
requieren un nuevo modelo de programacin de aplicaciones, que son
muy avanzadas para este curso.

Teclas: Estas son las entradas del dispositivo, por donde accedemos a
sus servicios o informacin. En los dispositivos clsicos, las teclas son
un teclado numrico con algunas otras teclas de control. En casos
actuales, las teclas han crecido hasta incluir un teclado alfanumrico
completo (se le llama teclado qwerty), y en los dispositivos ms
modernos, ha desaparecido para integrarse con la pantalla misma.

Conexin a red: Para transferir la informacin que se procesa a otro


dispositivo o a un operador, el aparato debe tener la posibilidad de
conectarse a una red de datos, sea celular, de internet por demanda, de
wifi, o de corto alcance.

Programacin de dispositivos mviles


Semana 1

Memoria: Para almacenar determinados datos (sean nmeros de


telfono, nombres, o incluso los propios datos del programa que dirige el
dispositivo), es necesaria una memoria en la que se puedan localizar
para usarlos. Estas memorias pueden variar, desde valores realmente
pequeos (5 o 6 Kbytes) hasta incluso varios Gigabytes con tarjetas de
expansin (Existen Iphones con memorias de 16 Gbytes, y este valor
seguir aumentando con el tiempo)

Capacidad de procesamiento: Si el dispositivo no puede procesar los


datos que tiene guardados en la memoria, difcilmente podr prestar
servicios, o no lo har en absoluto. Es por esto que los dispositivos,
independiente de su uso, siempre tendrn una capacidad interna de
procesamiento de informacin.

Si vemos todas estas partes como un todo, podemos percibir que son, en
suma, un computador de aplicacin especfica, ya que tiene puertos de
entrada, de salida, memoria y capacidad de procesamiento. Esta es la imagen
central que debemos recordar de un dispositivo mvil: Es un pequeo
computador, que est diseado para una o un nmero muy reducido de
funciones.

Plataformas usadas en los dispositivos mviles


Actualmente existen 2 grandes plataformas para programar aplicaciones en
dispositivos mviles, una desarrollada por Windows, y otra desarrollada por
Sun Mycrosystems. La primera, desarrollada por Windows, se hace llamar
.NET framework y permite la escritura del cdigo fuente del programa en
diversos lenguajes de programacin, que luego mediante el mismo framework,
es traducido en un cdigo intermedio que ser, finalmente, el que se ejecutar
en el procesador del dispositivo mvil. La segunda plataforma, se hace llamar
J2ME, y es una pequea porcin del lenguaje JAVA, dirigida a dispositivos

Programacin de dispositivos mviles


Semana 1

con limitada capacidad de memoria y procesamiento, como lo son los


dispositivos mviles. En el resto del curso, nos centraremos nicamente en
esta plataforma.

Freeware Versus Licencias


Por qu JAVA y no .NET para programacin? La respuesta es corta y sencilla:
JAVA es gratis. Al hacer una aplicacin en .NET, esta primero debe escribirse
en un lenguaje de programacin como Visual Basic,C#, J#, o cualquier otro.
Pero para usarlo en el framework, debemos hacerlo a travs de programas
licenciados, como los includos en el paquete de Visual Studio. En contraste
con esto, J2ME necesita solo el lenguaje JAVA para ser escrito (que es gratis)
y ejecutarlo sobre la plataforma (que tambin es gratis). El hecho de que J2ME
sea freeware, frente al .NET que es licenciado, le ha dado un gran impulso; es
tal la difusin que ha tenido el J2ME que en la mayora de aplicaciones para
dispositivos mviles con pantalla tctil, se lee en un Aplicaciones JAVA como
un sinnimo de Aplicaciones para dispositivos mviles. Por el precio y
cobertura, escogeremos esta plataforma.

PLATAFORMAS DE JAVA
JAVA es un lenguaje de programacin lanzado por la empresa Sun
Microsystems a inicios de los aos 90 para controlar de manera robusta
electrodomsticos, ya que era independiente de que plataforma ejecutara el
cdigo. Tambin se empez a usar en aplicaciones web y en aplicaciones
independientes, que fueron llamados Applets

Programacin de dispositivos mviles


Semana 1

Debido a la aplicabilidad que ha encontrado este lenguaje de programacin en


todos los mbitos, Sun ha desarollado diversas versiones para cada segmento
tecnolgico que lo usa.
Es as como han aparecido 3 versiones que, si bien usan el mismo lenguaje, no
se dirigen a los mismos fines. Dichas versiones son:

Java 2 Enterprise edition (J2EE): Software dirigido al entorno


empresarial. Se ejecuta no sobre un computador particular, sino sobre
una red de computadores, por lo que debe integrar datos que provienen
de

entornos

no

compatibles.

Debido

que

las

necesidades

empresariales son diferentes a las de un usuario casero, se ha creado


una extensin de JAVA para solucionar las necesidades de los
empresarios.

Java 2 Standar edition (J2SE): Es la edicin original de JAVA, dirigida


principalmente a computadores de uso personal, con herramientas
bsicas para desarrollar Applets, y con los aplicativos para realizar
interfaces grficas para los usuarios, redes, multimedia, etc.

Java 2 Micro edition (J2ME): Esta es la versin de JAVA diseada para


ser ejecutada en pequeos dispositivos con limitadas capacidades de
memoria y de procesamiento.

Nociones Bsicas de J2ME


Bueno, queremos programar un dispositivo mvil, y ahora qu? Antes que
nada, debemos conocer ciertas generalidades de JAVA para poder empezar a
programar.
Para poder empezar a crear un cdigo que podamos ejecutar en un dispositivo
mvil, debemos entender el proceso de compilacin y las herramientas usadas
para tal fin. Es por esto que agruparemos todas esas cosas en un entorno de

Programacin de dispositivos mviles


Semana 1

ejecucin. Nuestro entorno de ejecucin debe tener entonces los siguientes


elementos:

Una mquina virtual

Una configuracin

Un perfil

Unos paquetes opcionales.

Qu son cada uno de estos elementos? Veamos:

Una mquina virtual:


Qu es una mquina virtual? Cuando escribimos un cdigo o un programa
para determinado sistema, las palabras usadas en el mismo no son entendidas
por las mquinas. Es por esto que debe haber un intermediario o traductor,
que convierta el cdigo escrito por el programador, en un cdigo que entienda
la mquina. Esta es la labor de la mquina virtual. En java, la mquina virtual
es llamada Java virtual machine o JVM, y esta mquina presenta una ventaja
evidente con respecto a otros lenguajes: Independencia de la plataforma. Por
qu? Porque cada dispositivo tiene su propia mquina virtual, lo cual hace que,
no importa donde escribamos el cdigo, siempre correr en cualquier
plataforma. As, podemos decir que el cdigo es independiente de la
plataforma.
Otro aspecto importante en las mquinas virtuales es la cuestin del tamao.
La JVM es una aplicacin que se debe instalar en el dispositivo a programar,
y por tanto, requiere un espacio en memoria. Las mquinas virtuales varan de
tamao de acuerdo a su funcionamiento, por lo que JAVA cuenta con
diferentes mquinas virtuales para determinados dispositivos.

Programacin de dispositivos mviles


Semana 1

De qu depende el tamao de una mquina virtual si todas hacen lo mismo?


Ac debemos hacer una anotacin de JAVA como lenguaje, que responde esa
pregunta. Este programa, como muchos otros, trabaja con el concepto de
libreras o paquetes. Dichas libreras contienen los comandos que se deben
usar para hacer determinadas operaciones en el programa. Es as como una
biblioteca puede contener todos los comandos para hacer operaciones
aritmticas, otro paquete para hacer operaciones lgicas, etc. El traductor debe
entender estos comandos al tener esas bibliotecas en su banco de memoria,
y es por eso que determinadas JVM tienen tamaos diferentes, porque algunas
soportan unas bibliotecas y otras no. La mquina virtual tpica de JAVA mide
unos 20Mbytes, lo cual es muy grande para muchos dispositivos. Es por esto
que SUN cre su mquina ms pequea para dispositivos muy limitados,
llamada la KVM. La K viene de Kilobyte, pues esta mquina pesa alrededor
de 40-80 Kbytes. Su tamao la hace muy portable, rpida y pequea, pero al
mismo tiempo, limita bastante algunas caractersticas del lenguaje. Esto lo
veremos con ms detalle luego.
Existe otra mquina virtual, llamada la CVM (Compact virtual machine) que ha
sido creada para dispositivos de mayor gama, por lo que soporta las mismas
prestaciones que la KVM, aunque posee mayor cantidad de libreras.
Configuracin:
Una configuracin se define como el nmero mnimo de APIs de Java que
permiten desarrollar aplicaciones para diferentes dispositivos. Y, qu es un
API? Una API es, simplemente, una interfaz (API: Aplication

Programming

Interface). Esta interfaz contiene un conjunto de funciones y procedimientos


que le permiten a una biblioteca ser usada por otro programa, siendo una
especie de intermediario entre la biblioteca y el programa que usa la aplicacin.
Un ejemplo particular es la posibilidad de escribir Hola en la pantalla de un
computador. Puede, mediante lenguaje ensablador (el lenguaje que entienden

Programacin de dispositivos mviles


Semana 1

todas las mquinas),

indicar 1s y 0s en ciertas partes de la memoria del

computador, y luego volcar esta memoria en la pantalla para observar la


palabra deseada. O tambin puede, mediante una aplicacin (API), escribir en
html la orden de mostrar la frase Hola, y la misma se podr observar desde
cualquier navegador de internet. En JAVA existen 2 configuraciones tpicas, la
CDC y la CLDC. Veamos cada una:
CDC (Conected device configuration): Es la configuracin dirigida a
dispositivos con cierta capacidad computacional. Usa la CVM como
mquina virtual, que es muy similar a la mquina virtual usada por J2SE.
Los paquetes que posee esta configuracin se pueden observar a
continuacin:

Cada uno de estos paquetes son las libreras que permite la CVM usar a
travs de las APIs correspondientes.

CLDC (Conected limited device configuration): Es la configuracin dirigida a


dispositivos con muy pocas capacidades de procesamiento, y usa la

Programacin de dispositivos mviles


Semana 1

mquina KVM. Las libreras admitidas para esta configuracin son las
siguientes:

Perfiles:
Digamos que tenemos un conjunto de dispositivos que sirven para cocinar.
Algunos son muy bsicos tecnolgicamente, con temporizadores y opciones
sencillas. Otros, mucho ms complejos, permiten guardar configuraciones
propias, como estilos de cocina, temperaturas secuenciales, tipos de platos a
cocinar, entre otras cosas. Si bien estos dispositivos tienen un nivel tecnolgico
distinto, todos cumplen con un mismo propsito: cocinar. Esto hace que
aplicaciones como la posibilidad de conectarse con otros dispositivos, o
aplicaciones para dibujo, para tipologas de letras y otras, no sean muy
necesarias en este tipo de dispositivos. Esto, en suma es un perfil: Un
conjunto de APIs

que se encuentran orientados a determinado tipo de

actividades o tareas. A travs de un perfil, se puede identificar la funcionalidad


de un dispositivo, pues las APIs que contiene lo hacen pertenecer a un grupo
de dispositivos con una aplicacin similar.
Mientras

que

un

perfil

define

las

caractersticas

de

un

dispositivo

predeterminado, una configuracin lo hace pertenecer a una familia de


dispositivos. Esto significa que cuando nos proponemos la creacin de una
aplicacin, tenemos tanto las APIs de perfil como las de configuracin. Ac lo
importante es que los perfiles no son aislados, sino que dependen
primordialmente de la configuracin. Es decir, una configuracin carece de
funcionalidad si no tiene asignado un perfil determinado. Podemos decir

10

Programacin de dispositivos mviles


Semana 1

entonces que un perfil es un conjunto de APIs que dotan a una configuracin


de una utilidad y una funcionalidad.
Este conocimiento nos da las bases para saber cmo es un entorno de
ejecucin de Java Micro Edition. Sabemos que cada dispositivo debe tener una
mquina virtual en su memoria que traduzca el cdigo JAVA en lenguaje de
mquina. Sabemos que determinados dispositivos soportan algunos tipos de
mquinas virtuales dependiendo de sus capacidades de hardware. Que los
dispositivos con limitadas capacidades de hardware deben usar la KVM por su
tamao, y que dispositivos con mayores prestaciones pueden usar la CVM. Ya
sabemos tambin que sobre cada mquina virtual se debe incorporar una
configuracin especfica: la CDC se configura sobre CVM y la CLDC se
configura sobre la KVM. Esto mismo sucede con los perfiles. Hay perfiles que
solo pueden ser ejecutados sobre la CDC y otros sobre la CLDC. Veremos
entonces cules son estos perfiles y cules son las caractersticas de cada uno
de estos perfiles.

Para entender la configuracin de capas del entorno de ejecucin, vale la pena


estudiar el siguiente diagrama:

11

Programacin de dispositivos mviles


Semana 1

Ahora, veamos con ms detenimiento cules son los perfiles que se ejecutan
sobre las configuraciones, y cules son sus caractersticas bsicas

Perfiles de la configuracin CDC:

Foundation profile

Personal profile

RMI profile.

Perfiles de la configuracin CLDC:

PDA profile

Mobile information Device Profile (MIDP)

En este caso es necesario anotar algo: si bien podemos construir un perfil


sobre otro perfil en un dispositivo, dicho dispositivo solamente puede tener una
configuracin.

Veamos ahora los perfiles:

Foundation profile: Este perfil est dirigido a dispositivos que, aunque


usen las caractersticas robustas de la configuracin CDC, no requieren
de su interfaz grfica. Es por esto que el conjunto de paquetes que
contiene este perfil excluyen los paquetes usados por java para crear
ventanas, interfaces grficas, entre otras cosas. Algunos aparatos que
usan este perfil son, por ejemplo, los decodificadores de televisin
digital. Si alguno de estos aparatos necesitara una interfaz grfica
(tambin llamada GUI o graphic user interface) necesitara usar otro

12

Programacin de dispositivos mviles


Semana 1

perfil. Los paquetes que contiene este perfil se muestran en la tabla


siguiente.

Personal profile: este perfil es el encargado de proporcionar un entorno


grfico completo y funcional a un dispositivo. Le proporciona
capacidades web, soporte de Applets de java y, sobre todo, es un
entorno con soporte grfico AWT, que permite mediante coordenadas,
dibujar objetos en la pantalla del dispositivo. Para la ejecucin de este
perfil, debe implementarse anteriormente el foundation profile. Los
paquetes que contiene la personal profile se muestran en la siguiente
grfica:

13

Programacin de dispositivos mviles


Semana 1

RMI profile: Este perfil es un subconjunto de un perfil de J2SE, con


diversas limitaciones debido a las capacidades computacionales de los
dispositivos mviles que implementan la CVM. Debido a que esa
configuracin no est en los objetivos del curso entenderla, simplemente
comentaremos que la RMI profile es un subconjunto del perfil RMI para
J2SE, que necesita el foundation profile, y que no posee las siguientes
propiedades del RMI de J2SE:

o Java.rmi.server.disableHTTP.
o Java.rmi.activation.port.
o Java.rmi.loader.packagePrefix.
o Java.rmi.registry.packagePrefix.
o Java.rmi.server.packagePrefix.

Ahora veamos con ms detenimiento los perfiles de la configuracin CLDC. Se


insta al lector a prestar especial atencin a estos perfiles, en especial al ltimo,
pues en l basaremos el estudio del resto de nuestro curso.

14

Programacin de dispositivos mviles


Semana 1

PDA profile: Como su nombre lo indica, es un perfil construido para


PDAs, sobre todo las de gama baja, como palms con una pantalla y un
puntero. En sus inicios, soportaba una resolucin de al menos 20000
pixeles de pantalla y la presencia de un puntero, todo esto sobre CLCD.
Actualmente es una configuracin dirigida al manejo de informacin
personal, como agendas, y accede al calendario y a la base de datos de
contactos para hacer aplicaciones con ella.

Mobile Information Device Profile (MIDP): Este es nuestro perfil ms


importante. La primera configuracin definida para J2ME fue la CLDC, y
sobre esta, el primer perfil generado fue el MIDP. Esto hace que sea uno
de los perfiles ms completo y desarrollado hasta la fecha. Est dirigido
a un conjunto de dispositivos con caractersticas muy especficas, que
nombraremos a continuacin:
o Reducidas capacidades de memoria y de computacin
o Capacidades grficas muy limitadas (a lo sumo un display de
96x54 pixeles, sin colores)
o Conectividad limitada (aproximadamente de 9600bps, Bits per
second o Bits por segundo)
o Pocos datos alfanumricos permitidos.
o Al menos 128 Kb de memoria no voltil (es decir, memoria que no
se borra cuando es apagado el dispositivo, Tambin es conocida
como ROM) para instalar los componentes MIDP
o Al menos 8Kb de memoria no voltil para datos de aplicaciones
o 32 Kb de memoria voltil (aquella que se borra cuando el
dispositivo es apagado. Tambin es conocida como RAM) para la
pila JAVA.

A partir de estas caractersticas, podemos definir un conjunto de


dispositivos entre los cuales podemos incluir a los telfonos mviles, los

15

Programacin de dispositivos mviles


Semana 1

buscapersonas, PDAs de gama baja con conectividad, entre otros


dispositivos mviles. Este perfil determina las capacidades de los
dispositivos en los que est instalado. Estas capacidades estn
relacionadas directamente con las APIs que especifica, y son:

Semntica de las aplicaciones

Interfaz con el usuario

Almacenamiento repetitivo o persistente.

Conexin y trabajo entre dispositivos en red.

Temporizadores de aplicaciones

Los paquetes que posee esta configuracin se pueden observar en la


siguiente tabla:

Al crear una aplicacin usando un API, la llamamos Applets. Estos


applets son los usados principalmente como aplicaciones estndares de
java, y se pueden descargar de muchas pginas. Si en nuestro
computador necesitamos un programa en java que haga determinada
labor, usamos o programamos un Applet. En los dispositivos mviles, es
diferente. Por similitud, las aplicaciones creadas con MIDP son llamadas
MIDlets. Es as como podemos decir que un MIDlet es una aplicacin
creada usando el perfil MIDP sobre una configuracin CLCD. Como el

16

Programacin de dispositivos mviles


Semana 1

perfil de los dispositivos mviles ms usados (los celulares) cabe en este


perfil de java, de ahora en adelante nos centraremos en el perfil MIDP,
pero sabiendo que, para crear una aplicacin en otro dispositivo, solo
basta con configurar la mquina JAVA, el perfil y la configuracin
apropiada, y empezar a programar la aplicacin.

J2ME Y LA COMUNICACIN
Una de las caractersticas de los dispositivos mviles que se soportan en la
configuracin MIDP es que deben tener una conexin limitada. Es cierto que
muchos dispositivos tienen conexin similar a la explicada en el perfil, como los
GPS, y algunas palms, pero no se puede negar que los dispositivos que ms
provecho le estn sacando a las comunicaciones son los celulares. Esta es otra
de las razones por las cuales nos centraremos en el desarrollo de aplicaciones
para celulares, porque ltimamente estos dispositivos han tenido un desarrollo
vertiginoso en cuanto a aplicaciones que usan la comunicacin (no solo de voz)
para mejorar, por ejemplo, la productividad de las empresas, o para
simplemente entretener a los usuarios de estos dispositivos. Cules son los
protocolos de comunicacin que se han creado y que han sido aplicados en
MIDlets de java? Cmo pueden afectar estos protocolos el desarrollo de la
tecnologa J2ME? Veamos entonces los protocolos de comunicacin que han
surgido para entender el efecto que han tenido sobre la tecnologa JAVA.

Anteriormente, los celulares se haban creado con el nico propsito de


comunicar a las personas entre s. Eran una extensin de la telefona
inalmbrica, convirtindola en ubicua para todos los individuos. Tal vez la
primera aplicacin vital que dio pie a la creacin de toda una gama de
protocolos y libreras, fue la agenda telefnica. Tener una agenda, implicaba
ingresar datos al celular, que ste los almacenara incluso luego de apagar el

17

Programacin de dispositivos mviles


Semana 1

dispositivo, y que el mismo celular los desplegara en pantalla al buscarlos a


travs de un navegador. Esta interactividad bsica dio pie a los
programadores para pensar en aplicaciones ms complejas que usaran los
datos del celular con algn propsito diverso. Agendas con varios telfonos
para una misma persona aparecieron, y algunos incluso daban la posibilidad de
incluir tonos particulares a cada nombre. Luego surgi la necesidad de
comunicacin de datos. Mi celular, con memoria para almacenar contactos, ya
tena ms de la necesaria, y por tanto, esta misma se poda aprovechar para
personalizar el celular y hacerlo una herramienta mucho ms propia. Sin
embargo, De dnde puedo adquirir la informacin que deseo, y sobre todo,
cmo puedo conectarme al lugar en el que se encuentra esa informacin?
Viendo los operadores de telefona celular esta oportunidad como una
posibilidad de ampliar sus negocios, impulsaron la consolidacin de estudios
universitarios

en

redes

inalmbricas

protocolos

de

comunicacin

inalmbricos. Es as como nace la primera tecnologa de comunicacin, la


tecnologa WAP. WAP es la sigla de Wireless Application protocol, o protocolo
de aplicacin inalmbrica. Este protocolo surgi para dotar a los celulares de la
posibilidad de conectarse con un servidor remoto, o varios servidores remotos,
con el objeto de intercambiar informacin entre el cliente y servidor. Esta
conexin se haca a travs de un elemento que ya haba estado siendo
trabajado y actuallizado en computadores de escritorio: Un navegador. Se dot
entonces de un navegador bsico al dispositivo mvil con el objeto de
conectarlo con el servidor. Obviamente este desarrollo requiri todo un trabajo
ms profundo en protocolos de comunicacin, como un traductor entre el
cdigo HTTP del internet y las peticiones WAP, la creacin de una puerta de
enlace, o Gateway que sirviera como intermediaria entre la red y el celular,
entre otras cosas. Aunque WAP fue un gran avance en cuanto a conectividad,
no result ser el mejor medio de conexin, ya que la navegacin no era para
nada amigable, la introduccin de pginas de internet era demasiado incmoda
por el usuario, y el costo de navegacin se daba por tiempo, a lo que se poda

18

Programacin de dispositivos mviles


Semana 1

sumar el problema de que, si la red estaba muy saturada y uno estaba


conectado, uno no intercambiaba informacin pero la factura de cobro llegaba a
la orden del da. Finalmente, podemos anotar que, el costo de la tecnologa era
muy elevado para la capacidad de conectividad que tena la plataforma, que en
conclusin, no era la mejor.

Aprovechando la plataforma usada para WAP, otra nueva tecnologa tom


auge, la SMS. La SMS o Short Message System, es una tecnologa que
permite enviar mensajes de texto (o cadenas de caracteres) entre los Gaps o
huecos usados para transferir la informacin de la red. Esta comunicacin
result ser muy rpida y muy barata en comparacin con la WAP. Tambin, al
poder enviar y recibir mensajes de manera rpida, se gestaron las aplicaciones
de mensajera instantnea o Chat. Java permiti crear plataformas que
aprovecharan la tecnologa SMS para hacer aplicaciones de chat que se
instalaron en los telfonos celulares, y que ahora son la base de la
comunicacin por Blackberry.

La comunicacin sigui tomando auge, y los operadores implementaron


tecnologas que aumentaban tanto la banda como la velocidad de las
conexiones, generndose as tecnologas conocidas como generaciones. La
generacin 2 y la 2`5 son conocidas por otras 2 nuevas tecnologas de
comunicacin, como lo son la GSM y la GPRS

Mientras que GSM es una conexin telefnica que permite el intercambio de


datos entre clientes, la comunicacin GPRS se basa en una red nicamente de
datos, que mantiene una conexin entre el servidor y el cliente, en la que se
corrige el error de WAP, y se le cobra a los navegantes por cada Kbyte
transferido, en vez del cobro por tiempo de navegacin. Actualmente nos
movemos en plataformas de conexin que se basan en la 3ra generacin, con
tecnologas como UMTS, EDGE y 3.5g. En Japn, por ejemplo, se est

19

Programacin de dispositivos mviles


Semana 1

probando una plataforma montada sobre la 4ta generacin, que permite la


transmisin de datos, voz y video en tiempo real a travs del propio celular,
vislumbrando la videoconferencia como la tecnologa del futuro en la
comunicacin, y a JAVA como una de las herramientas ms importantes para
aprovechar las capacidades de conectividad de las redes de telefona celular.
Otras de las tecnologas de comunicacin, no basada en cliente - servidor
sino en cliente cliente, son las conocidas como redes PAN (personal area
network) y WAN (wireless area network), creadas por tecnologas usadas
actualmente por muchos celulares: La tecnologa bluetooth, la Wifi y la IRDa.
La bluetooth es una tecnologa que permite transferencias de informacin entre
dispositivos mviles en un radio de 0-100 metros, y que permite crear redes adhoc, o redes temporales. La Wifi permite conectar un celular a internet con
velocidades similares a las de un computador personal, y finalmente, la IRDa, o
red infrarroja, permite transferir informacin entre 2 elementos que posean este
protocolo. Todas estas tecnologas favorecen, entonces el uso y distribucin de
aplicaciones en JAVA y, sobre todo, MIDlets en JAVA.

OTA
Cuando uno necesita descargar una aplicacin para un dispositivo mvil,
gracias a las redes existentes en la actualidad, lo primero en que se piensa es
en una descarga de internet. Esto debido a que la tecnologa actual se basa en
el medio inalmbrico para transmitir contenidos (a pesar de que existan otro
tipo de medios de transmisin, como los cableados, y los inalmbricos
dirigidos). Este medio que permite garantizar la descarga de contenidos es
llamado OTA (Over The Air), es decir, OTA es el nombre que se le da al medio
areo necesario para descargar contenido.

20

Programacin de dispositivos mviles


Semana 1

A travs de este medio, e bajan los componentes de una aplicacin para


dispositivos mviles. Cules son esos componentes? Una aplicacin en J2ME
tiene 2 componentes fundamentales para su funcionamiento: Un archivo con
extensin .JAR, que contiene la aplicacin como tal, y un archivo .JAD, que
contiene algo similar a un manual de la aplicacin, es decir, contiene
informacin sobre la misma (No debemos confundir estos archivos. Pongamos
un ejemplo: Digamos que a su casa llega un paquete de un familiar suyo, un
televisor empacado. El televisor como tal, es equivalente a la aplicacin, y es el
archivo .JAR. El manual de instrucciones, que dice la marca del televisor, el
tamao, las especificaciones tcnicas y de ms, es el archivo .JAD. A este
archivo .JAD se le llama Descriptor). Para descargar los MIDlets Over the
air, se debe seguir un proceso organizado de pasos, y se deben tener en
cuenta unos requerimientos especficos, tanto funcionales como tcnicos de los
dispositivos que llevan a cabo estas descargas. Veamos entonces cules son
estos requerimientos.

Requerimientos funcionales
Si voy a descargar un MIDlet OTA, mi dispositivo debe tener alguna
herramienta que me permita encontrar el MIDlet buscado. Los dispositivos
cuentan con varias herramientas para esto. Anteriormente habamos
comentado que la comunicacin WAP requera un navegador que sirviera
como enlace (Puerta de enlace) entre el celular y la red. Pues este navegador
WAP es una de las opciones con las que cuentan los dispositivos mviles para
poder descargar los MIDlets. Otros celulares tienen aplicaciones propias,
diferente de los navegadores WAP, para identificar y descargar MIDlets
(anteriormente, los celulares contaban con una herramienta que le permita al
dispositivo conectarse con una base de datos del proveedor de MIDlets, que
generalmente era el operador, y a travs de un men en pantalla, descargar las
aplicaciones deseadas. Esto ha venido desapareciendo, ya que los celulares
actuales poseen altas capacidades y pueden ejecutar navegadores complejos

21

Programacin de dispositivos mviles


Semana 1

como el Internet Explorer, Google Chrome, entre otros). Tambin, como lo


habamos comentado antes, no todos los medios de transmisin de informacin
deben ser inalmbricos o relacionados con el internet. Tambin se pueden
usar cables de datos, redes Ad Hoc (BlueTooth), redes infrarojas, etc. Sin
embargo, siempre debe haber un software que permita manejar la descarga y
el ciclo de vida de los MIDlets. Este software es llamado el gestor de
aplicaciones o AMS (Application Management Software)

Lo anterior significa que nuestro dispositivo mvil, encargado de bajar un


MIDlet, debe tener la posibilidad de incorporar un AMS que localice el fichero y
lo baje a la memoria no voltil del mvil. Qu pasa si, para descargar el
fichero se debe usar contrasea? Pues que el gestor de aplicaciones debe
permitir enviar informacin a la plataforma donde se encuentra la aplicacin,
con el nombre de usuario y la contrasea pedida. Para el envo de informacin
OTA, se deben usar protocolos especficos de comunicacin de datos, como
HTTP 1.1, pero eso no lo abordaremos en este curso. Basta con saber que la
aplicacin debe enviar mensajes si el servidor lo requiere. Sin embargo, con el
MIDlet en el dispositivo, no hacemos nada, debemos instalarlo y, luego de eso,
ejecutarlo en nuestro celular. Y si nos aburrimos de la aplicacin? Pues el
dispositivo mvil debe darnos la posibilidad de eliminarlo. Es as como
podemos definir las especificaciones de un dispositivo mvil con perfil MIDP, ya
que el mismo debe cumplir los siguientes requerimientos:

a) Localizacin de archivos JAD y JAR en la red a travs del AMS


b) Descarga del JAD y el JAR desde un proveedor de servicios, un
servidor, u otro dispositivo con la aplicacin (sea por medio
inalmbrico o almbrico)
c) Envo de nombre de usuario y contrasea en caso de que sea
necesario.
d) Instalacin del MIDlet descargado.

22

Programacin de dispositivos mviles


Semana 1

e) Ejecucin del MIDlet instalado


f) Borrado o desinstalacin del MIDlet instalado.

Veamos ahora con ms detenimiento cada uno de estos requerimientos:

a. Localizacin de la Aplicacin
Lo primero que un dispositivo mvil debe hacer es localizar un MIDlet a
travs de la AMS. A este proceso se le llama descubrimiento. El
descubrimiento se realiza cuando el navegador muestra al usuario el enlace
en la red que permite bajar el MIDlet deseado, y que una vez seleccionado,
permite descargar e instalar el MIDlet. Recordemos que un MIDlet est
compuesto por un archivo .JAR y por un .JAD. Si el enlace que
encontramos en la red es un .JAR, el archivo y su URL se envan al AMS
para empezar el proceso de instalacin del MIDlet. Sin embargo, si el
enlace est referido a un archivo .JAD, se deben llevar a cabo los siguientes
pasos:

A travs del navegador, se transfiere el archivo .JAD y su direccin URL


al AMS, que es el que empieza la instalacin del MIDlet. Ac hay que
hacer una anotacin importante: No todos los MIDlets pueden ser
instalados en cualquier equipo, por lo que el AMS debe determinar si el
MIDlet bajado puede ser tanto instalado como ejecutado de manera
satisfactoria en el dispositivo mvil.

El descriptor, escrito en JAVA, debe ser entendido por el AMS, que no


necesariamente es una aplicacin de JAVA. Es por esto que para ser
entendido, debe ser traducido a formato Unicode antes de ser usado.
Veamos algo en este punto: un archivo .JAD es un conjunto de datos
relacionados con el .JAR, por lo que podemos decir que el .JAD es una

23

Programacin de dispositivos mviles


Semana 1

clase. Todas las clases tienen atributos de clase, y estos atributos, en


la .JAD, deben ser compresibles de acuerdo a la sintaxis del perfil MIDP.
Como el perfil MIDP es el que corre el MIDlet, los atributos requeridos
por este perfil deben estar presentes en el .JAD para que pueda usarlo.

Cuando la direccin llega a la AMS, se inicia la instalacin del MIDlet.


Sin embargo, por seguridad, el AMS debe tener la opcin de indicarle al
usuario si de verdad desea instalar dicha aplicacin. Y no solo eso, debe
estar en capacidad de saber si existe una versin similar o
desactualizada del mismo MIDlet instalado en el equipo, o si ste tiene
problemas para instalar MIDlets por falta de memoria. De esta manera,
el AMS puede ejecutar una herramienta para liberar memoria, e instalar
la aplicacin correspondiente.

b. Instalacin del MIDlet

Ya tenemos el .JAD en nuestro AMS con la respectiva direccin URL de


donde se descargar el MIDlet para ser instalado, ahora Qu sigue? La
etapa de instalacin. Esta etapa no es intervenida por el usuario, ya que la
genera internamente el dispositivo. Sin embargo, se deben tener en cuenta
varios mensajes que pueden salir en el proceso de chequeo que se genera
al instalar el MIDlet. Primero, debemos entender que la instalacin de un
MIDlet comprende el estado en el que el MIDlet es descargado y puede ser
usado por el cliente. Tambin debemos saber que un MIDlet puede estar
dentro de un paquete, y que este paquete puede tener diversidad de
MIDlets internos. Es decir, cuando tenemos la direccin URL y deseamos
bajar una aplicacin, esta puede estar compuesta de varios MIDlets. El
AMS debe indicar esta situacin y debe darle la posibilidad al usuario de
cancelar el proceso de instalacin en cualquier momento, dejando al
dispositivo como se encontraba antes de pasar por el proceso de
instalacin. Qu hace el AMS cuando se procede a instalar una

24

Programacin de dispositivos mviles


Semana 1

aplicacin? Verificar si el paquete contiene varios MIDlets internos e


indicarle al usuario el proceso de instalacin de los componentes, el nmero
de componentes a instalar, y la opcin de cancelar la instalacin. Tambin
debe llevar a cabo las siguientes actividades:

Si el archivo que se descarg inicialmente fue el .JAD, la URL de la que


se descarga el MIDlet, contenida ahora por el AMS (recordemos que ya
hallamos la aplicacin a instalar, y en ese proceso, se le asigna una URL
al AMS para la instalacin de la aplicacin) debe coincidir exactamente
con la URL que posee el .JAD

Si el servidor pide nombre de usuario y contrasea para autentificar al


usuario, el AMS debe enviar las credenciales correspondientes (los
datos correspondientes)

El MIDlet debe ser chequeado para saber si se puede instalar en el


dispositivo mvil. Este chequeo se extiende a todo el proceso de
instalacin, ya que pueden surgir una serie de errores que no permitan
que el MIDlet se instale. El AMS debe indicar todos estos errores
durante el proceso de instalacin de la aplicacin. Cules son esos
errores? Vemoslos:
o Si no hay memoria suficiente para instalar el MIDlet, se devuelve
el cdigo de estado 901
o Si el .JAR no se encuentra disponible en la URL que contiene el
JAD, , se develve el cdigo 907
o Si al descargarse el .JAR, este no coincide con el descrito en el
.JAD, se devuelve el cdigo 904
o Si no se pueden extraer los archivos necesarios para instalar el
.JAR, se devuelve el cdigo 907.
o Si los atributos del .JAD no coinciden con los que tiene el .JAR,
se devuelve el cdigo de error 905

25

Programacin de dispositivos mviles


Semana 1

o Si no se puede llevar a cabo la autenticacin del usuario (nombre


de usuario y contrasea) se devuelve el error 909
o Si falla por un motivo diferente al cualquiera de los anteriores,
debe devolver el error 911.
o Si mientras se descarga el MIDlet para instalarlo, se pierde la
conexin a internet, debe devolver el error 903

La instalacin finaliza en 2 casos: cuando tenemos el MIDlet exitosamente


instalado en nuestro dispositivo mvil, o cuando ha ocurrido un error
irrecuperable y no se ha podido instalar la aplicacin.

Puede darse el caso en que estemos instalando un MIDlet y ya tengamos una


versin previa del mismo. En ese caso, decimos que estamos actualizando el
MIDlet correspondiente, ya que estamos pasando de una versin anterior a una
versin ms reciente del mismo. El AMS debe indicarle al usuario si la versin
que desea instalar es menor, igual o mayor a la instalada en el dispositivo, y
debe obtener verificacin del usuario a la hora de ser instalada. Todo programa
a instalar posee una firma digital que indica su autenticidad y su validez como
archivo oficial y no modificado por terceros. Los archivos con firmas digitales
priman sobre aquellos que no la tengan, y nunca un dispositivo mvil debe
permitir instalar un MIDlet sin firma como reemplazo de una aplicacin que si la
tenga.

c. Ejecucin del MIDlet

Vamos a ejecutar el MIDlet en nuestro equipo. Al momento de ejecutarlo, lo


primero que se debe llevar a cabo es la carga de las clases referentes al perfil
CLDC y la configuracin MIDP. Recordemos que estamos cargando una
aplicacin de JAVA en un dispositivo mvil, y esto requiere tanto el perfil como
la configuracin para poder ser ejecutada. Es por esta razn que un dispositivo

26

Programacin de dispositivos mviles


Semana 1

debe tenerlas incluidas, porque si no las posee, no puede ejecutar ningn


MIDlet. Y recordemos tambin que dijimos que un paquete o una aplicacin
pueden tener diversos MIDlets. En caso de tenerlos, el dispositivo debe
permitirle al usuario escoger el MIDlet que desea ejecutar.

d. Eliminacin del MIDlet.

El proceso final que se puede llevar a cabo con un MIDlet es su eliminacin.


Para hacerlo, el usuario debe elegir la posibilidad de borrar la aplicacin
seleccionada. Cualquier cosa que ocurra en el proceso de instalacin debe ser
indicada al poseedor del dispositivo mvil, y en caso de que la aplicacin tenga
varios MIDlets incorporados, debe indicrsele al usuario que todos quedarn
eliminados.

Hemos visto hasta ahora todos los pasos por los que un MIDlet puede pasar a
travs de un dispositivo mvil. Ahora, veremos cules son las herramientas que
se necesitan para construir los MIDlets a disear, pero antes, debemos ver cul
es el proceso de creacin general de un MIDlet.

Proceso de creacin de un MIDlet.

Todos los MIDlets a desarrollar llevan a cabo casi el mismo proceso de


creacin, con algunos casos particulares. Veremos entonces cuales son los
pasos que hacen parte de ese proceso:

1. Desarrollo: en este estado, creamos el cdigo en JAVA de nuestro


MIDlet.
2. Compilacin: Nuestro cdigo es traducido a lenguaje de mquina a
travs de un compilador J2SE

27

Programacin de dispositivos mviles


Semana 1

3. Preverificacin: Examinamos el cdigo de JAVA para observar si no se


viola ninguna restriccin de seguridad de la plataforma en la cual se va a
ejecutar (J2ME).
4. Empaquetamiento: Se crea el archivo .JAR y el .JAD de nuestra
aplicacin.
5. Ejecucin: Se monta el MIDlet en un simulador o en un dispositivo mvil
para probar su funcionamiento.
6. Depuracin: Al observar la ejecucin del MIDlet, pueden observarse
fallos en su funcionamiento, la depuracin consiste en eliminar esos
fallos para corregir nuestra aplicacin.

El empaquetamiento y la preverificacin, al evaluarse violaciones de seguridad


en la plataforma J2ME y crearse archivo .JAR y .JAD, son pasos exclusivos en
el desarrollo de MIDlets. El resto de pasos, son generales para la creacin de
cualquier aplicacin en cualquier otro programa o lenguaje de programacin

HERRAMIENTAS DE DESARROLLO

Cmo se crea un MIDlet?, bsicamente a travs de 2 formas:

A travs de lneas de comando. Esto significa que copiaremos el


cdigo sin ningn tipo de ayuda adicional, aparte de la prestada
por el compilador para traducir el cdigo.

A travs de un entorno visual. Esto implica el uso de diversas


herramientas que facilitan la creacin de MIDlets, como veremos
ms adelante

28

Programacin de dispositivos mviles


Semana 1

En nuestro caso, usaremos un elemento visual para ejecutar nuestros MIDlets.


Este elemento se llama Dispositivo MID (Mbile information device). Esto
significa que no ejecutaremos nuestros cdigos directamente en mquinas
fsicas, sino en un simulador que ejecutar nuestra aplicacin.

El emulador a usar puede ser tanto un dispositivo genrico como un modelo


MID especfico (Por ejemplo, si queremos desarrollar aplicaciones JAVA para
el Iphone, debemos bajar un emulador que nos permita ejecutar nuestras
aplicaciones en este dispositivo.)

En este punto, entraremos de lleno en la forma de crear un MIDlet, y nos


iremos por ambas formas de construccin, abordando una primero, y luego la
otra. Se debe tener muy en cuenta el proceso de creacin de un MIDlet, porque
llevaremos a cabo manualmente cada uno de esos pasos. En este caso,
abordaremos el mtodo de lnea de comando

INSTALACIN DE COMPONENTES.

Qu componentes necesitamos para el desarrollo en lnea de comando?


Requerimos bsicamente los siguientes:

a) Un editor de texto para copiar el cdigo del MIDlet.


b) Un compilador estndar de JAVA. El compilador es proporcionado
gratuitamente por JAVA en la siguiente direccin:
http://java.sun.com/products/archive/j2se/1.4.1_07/
c) Las APIs de la configuracin CLDC y del perfil MIDP que se
pueden descargar de la pgina

29

Programacin de dispositivos mviles


Semana 1

Vous aimerez peut-être aussi