Por qué usar JAVA en la telefonía móvil? Más facilidad para añadir nuevas funciones Soporta TCP/IP – Más facilidad para programar aplicaciones que se comuniquen directamente con el móvil Capacidad de JAVA para trabajar con diferentes plataformas Podemos bajar programas directamente de la red, melodías, …
Qué edición de JAVA utilizar? Antes ? Teléfonos móviles no tenían suficiente capacidad para ejecutar JAVA Actualidad ? Sí, pero con algunas limitaciones J2ME (Java 2 Micro Edition)
JAVA 2 Micro Edition Edición de JAVA limitada ? Menos sofisticiación en elementos de menor relevancia en la telefonía móvil – Acceso a bases de datos limitado – Capacidades gráficas limitadas ? Sustitución de la JVM (Java Virtual Machine) por la KVM (K Virtual Machine). – KVM es una JVM con las funcionalidades reducidas
JAVA 2 Micro Edition
Ediciones de Java 2 y sus mercados:
J2ME: Configuraciones y perfiles J2ME soporta configuraciones mínimas de la JVM y de las Java APIs, que engloben las necesidades básicas de un determinado tipo de dispositivo. Configuración: Define las características mínimas que debe tener el lenguaje Java, la JVM y las librerías de clases, para un determinado tipo de dispositivo. Perfil: Complemento a una configuración. Proporciona un conjunto de herramientas para el desarrollo de aplicaciones específicas para un determinado tipo de dispositivo.
CLDC: Connected, limited device configuration CLDC: Especifica un estándar de plataforma Java para dispositivos pequeños y de recursos limitados. CLDC: Especificación de la configuración mínima necesaria para que un determinado tipo de dispositivo pueda soportar J2ME. CLDC: Define las siguientes características: Características del lenguaje Java y de la JVM. Librerías Java básicas (java.lang.* y java.util.*). Entrada / Salida. Red. Seguridad.
MIDP: Mobile information device profile MIDP: Es un complemento a la configuración CLDC. MIDP: Perfil que proporciona un conjunto de herramientas para el desarrollo de aplicaciones Java orientadas a telefonía móvil. MIDP: También engloba las características del teléfono móvil en el que está instalado el perfil, como por ejemplo el tamaño de la pantalla o la potencia de la batería. MIDP: Las aplicaciones se programaran sobre la base de herramientas proporcionadas por el perfil, y se podrán ejecutar en cualquier dispositivo en el que esté instalado dicho perfil.
KVM: Kilo(byte) Virtual Machine KVM: Es una implementación concreta de Java Virtual Machine que cumple la especificación CLDC. KVM: Esta diseñada para correr en dispositivos pequeños y de recursos limitados. KVM: Características: Implementada en lenguaje C. Orientada a procesadores de 16 y 32 bits. Ocupa entre 40 y 80 Kbytes de memoria. Altamente portable entre diferentes dispositivos pequeños y de recursos limitados.
KVM: Software vs. Hardware La tecnología Java puede ser implementada en software o en hardware. Software: Se instala la Virtual Machine sobre el sistema operativo del dispositivo. La Virtual Machine se encargará de traducir las instrucciones Java a las instrucciones nativas que puede ejecutar la CPU. Inconveniente de la solución software: Al tratarse de dispositivos pequeños y limitados, la baja velocidad de la CPU puede afectar la velocidad de ejecución de las aplicaciones Java.
KVM: Software vs. Hardware Hardware: Para implementar la tecnología Java mediante hardware, existen dos posibilidades: Ampliando el juego de instrucciones de la CPU para que ejecute el bytecode Java directamente. Incorporando en el dispositivo un chip especializado para que ejecute el bytecode Java. Coste de la solución hardware: El diseño de un chip especializado es más barato que la ampliación del juego de instrucciones de la CPU principal. La incorporación de un nuevo chip en el dispositivo encarece su proceso de fabricación. Esta es la principal duda que se plantean los fabricantes.
Otros productos relacionados MicroChaiVM (Hewlett-Packard) ? Un “clon” de la JVM pero que no necesita licencia de Sun. SavaJe OS (SavaJe) ? Optimización de las librerías de J2SE. ZeoSphere Developer (Zeosoft) ? Permite crear aplicaciones que soportan Entreprise Java Beans. Esto simplifica la programación de aplicaciones que se comunican y ejecutan entre servidores y teléfonos móviles
Bibliografía: Web Sun Microsystem: java.sun.com/j2me/docs. Articulo revista Computer: Moving Java To Mobile Phones.