3. Aplicaciones Java 2 Micro Edition (J2ME)
3.1. Fundamentos
El programador Java que tiene algo de experiencia ha utilizado J2SE, Java 2 Standard Edition.
J2SE es el conjunto básico de herramientas usadas para desarrollar Java Applets y
aplicaciones Java standalone. Sun Microsystems no se planteó hacer un conjunto de
herramientas estándar hasta la llegada de Java 2, pues coincidió con los planes de expansión
de Java para software empresarial.
El sofware empresarial tiene unas características propias marcadas: está pensado no para ser
ejecutado en un equipo sino para ejecutarse sobre una red de ordenadores de manera
distribuida de manera remota. De hecho, el sistema se monta sobre varias unidades o
aplicaciones. En muchos casos, además, el software empresarial requiere que sea capaz de
integrar datos provenientes de entornos heterogéneos. Para este entorno, para sus exigencias y
características, Sun ha diseñado J2EE, Java 2 Enterprise Edition.
Sun separó J2SE de J2EE porque este último exigía una caracteríticas muy pesadas o
especializadas de I/O, trabajo en red , etc. Por tanto, por razones de eficiencia separó ambos
productos. Hoy J2EE es un superconjunto de J2SE pues contiene toda la funcionalidad de este
y más características.
Sun ha separado J2ME, Java 2 Micro Edition por las mismas razones. Los dispositivos
inalambricos tienen menos potencia y mucha menor capacidad gráfica que los PC de
escritorio. Por ello, J2ME representa una versión simplificada de J2SE pensada para
dispositivos con estas limitaciones.
Por otro lado, es importante señalar que J2ME tiene la característica de tener una parte de su
API fija, es decir, aplicable a todos los dispositivos inalámbricos y una parte que es específica
para ciertos dispositivos; como ejemplo claro se puede ver la API especifica de Palm y la de
moviles, que evidentemente son distintas.
Recordemos que Wap es una tecnología que está funcionando para teléfonos moviles adaptados. Mucha
gente habla de la competencia que supone J2ME para WAP, cuando esta aseveración no tiene ningún
sentido. WAP es competencia para J2ME como lo es HTML a Java en el entorno web con cable. Es
decir: son cosas distintas y no pueden competir entre sí. J2ME es una tecnología que permite
la creación de aplicaciones que por ejemplo, reciban y envíen datos a través de redes inalámbricas.
WAP es sencillamente un protocolo para navegar a través de la web utilizando dispositivos móviles.
Por tanto, ambas tecnologías pueden coexistir y de hecho son complementarias.
3.2. Las configuraciones
Una configuración es un conjunto mínimo de APIs que son útiles para desarrollar aplicaciones para
un conjunto definido de dispositivos. Son muy importante porque describen las funcionalidades más
importantes requeridas para unos dispositivos determinados.
Hay una configuración estándar para dispositivos inalámbricos que se conoce como
Connected Limited Device Configuration o CLDC. Este estándar describe el conjunto de
funcionalidades mínimas de los dispositivos inalámbricos, de acuerdo a su potencia y a sus
características. CLDC es, en resumen, el conjunto de APIs básicas para construir aplicaciones para
dispositivos móviles.
Finalmente, CLDC establece los mínimos de hardware requeridos para J2ME. Estos son los
siguientes:
- 160kb de memoria disponible para Java
- Procesador de 16-bit
- Bajo consumo energético
- conexión a una red (a menudo de 96000 bps pero puede ser menor el ancho de banda)
Los dispositivos aptos para CLDC son teléfonos móviles, PDAs, ciertos electrodomésticos, etc.
Muchos otros se irán incorporando al estándar CLDC siempre y cuando cumplan los
mínimos marcados por el estándar e incorporen la máquina virtual.
3.3. Los perfiles
Ahora ya estamos preparados para entender el papel de las configuraciones dentro de la
arquitectura J2ME. En caunto a los perfiles, son también un conjunto de APIs pero que han sido
pensadas para un tipo concreto de dispositivos. Son una descripción de una familia de dispositivos
que añade un conjunto de APIs adicionales a la Configuración que son propias de las
funcionalidades especificas de estos dispositivos.
CLDC es, por lo tanto, la configuración básica de J2ME. MIDP lleva a CLDC más allá y
añade nuevos requerimientos y APIs obligatorios para dispositivos MIDP. Los requerimientos de
memoria de MIDP son:
- 128kb de memoria no volatil para las librerias MIDP API.
- 32kb de memoria volatil para el sistema Java runtime.
- 8kb de memoria no volatil para datos de aplicación persistente.
Respecto a CLDC, MIDP sólo incremente los 8kb destinados a datos persistentes. Los requerimientos
de entrada para MIDP exigen la existencia de un teclado o una pantalla tactil o ambos. No se exige
ratón (sería algo bastante raro en un teléfono movil).
Los requerimiento de salida para MIDP son algo más importantes, porque la pantalla es una
de las restricciones mayores de los dispositivos móviles. MIDP exige al menos una pantalla
de 97 x 54 pixels (anchura, altura) con 1-bit de profundidad de color (blanco y negro). El ratio
de salida debe ser 1:1.
MIDP tiene también requerimientos de red. El mínimo soporte de red exigido es disponer de
una conexión inalámbrica de 2 sentidos. Se supone que estos dispositivos pueden tener un
ancho de bando limitado (9600bps).
|