Java y Brew para el desarrollo inalámbrico
Os mostramos las similitudes y diferencias entre Java y BREW.
Dos modelos
Internet inalámbrico es algo más que el acceso a Internet sin cables. Incluye diferentes tipos de pequeños dispositivos móviles y la capacidad de proporcionar en cualquier momento y en cualquier lugar acceso a la información de manera fácil. Hasta ahora, WAP ha sido más o menos el único estándar que ofrecía un acceso básico a los servicios basados en web utilizando un micronavegador en el dispositivo móvil. No obstante, losa dispositivos de próxima generación, como los llamados smart phones o teléfonos inteligentes, están aumentando las funcionalidades de las aplicaciones. Dos vendedores, Sun y Qualcomm, están intentando cumplir el reto ofreciendo un nuevo modelo de acceso online a las aplicaciones inalámbricas.
Java 2 Micro Edition (J2ME) de Sun y Binary Runtime Environment for Wireless (BREW) de Qualcomm son dos tecnologías que proporcionan un nuevo modelo para acceso online permitiendo que las aplicaciones sean descargadas desde la web. La clave es que las aplicaciones pueden tomar más datos de la web o ser ejecutadas offline. Estas tecnologías proporcionan a la comunidad de desarrolladores enormes oportunidades para construir y distribuir aplicaciones móviles e inalámbricas.
Los principales beneficios de J2ME y BREW incluyen una interfaz de usuario mejor, mejorar el uso de las aplicaciones en pantallas pequeñas, y la capacidad de descargar y almacenar nuevas aplicaciones que puedan ejecutarse offline, lo que elimina la necesidad de estar constantemente conectado a la red.
J2ME
J2ME es una tecnología hecha a medida de pequeños dispositivos con limitaciones de memoria, procesador, pantalla o capacidades de entrada/salida. La arquitectura J2ME está basado en familias y categorías de dispositivos y tiene la siguiente estructura.
Java Virtual Machina (JVM) se ejecuta por encima del sistema operativo del dispositivo y su tamaño y complejidad dependerá de la particular configuración de J2ME que soporte. En este sentido, se especifican determinadas librerías que la JVM debería tener en un dispositivo específico, de forma que se establecen determinadas funcionalidades Java para unas categoría de dispositivos específico.
J2ME define dos configuraciones. Connected Limited Device Configuration (CLDC) para dispositivos con potencia, memoria y capacidades de conectividad a redes limitadas. La correspondencia de JVM para esta configuración es la optimizada K Virtual Machine. Connected Device Configuration (CDC) para dispositivos más avanzados con procesadores de 32 bit y más de 2MB de memoria y su correspondencia con JVM es la C Virtual Machine.
La capa de perfil debe ser la más relevante para los desarrolladores de aplicaciones. Define un conjunto de APIs para una categoría de dispositivos particular. Una aplicación escrita para un perfil determinado puede ejecutarse en cualquier otro dispositivo que soporte ese perfil. Mobile Information Device Profile (MIDP) es importante para los dispositivos móviles inalámbricos como teléfonos móviles y PDAs. Incluye un conjunto de APIs relacionadas con el interfaz de usuario, almacenamiento y capacidad de conexión de redes (HTTP). También es interesante el perfil J2ME Bluetooth, que proporciona APIs estandarizadas para incluir capacidades Bluetooth.
BREW, una alternativa
BREW es una plataforma de ejecución de aplicaciones que se ejecuta al nivel de firmware (chipset CDMA) y que está especialmente dirigida a aplicaciones inalámbricas que pueden ser descargadas y ejecutadas en dispositivos móviles. Este entorno de ejecución es muy similar a la máquina virtual (Virtual Maquine) en Java, excepto porque no está diseñado para ofrecer portabilidad de un dispositivo a otro. Actualmente BREW sólo está disponible en aquellos dispositivos inalámbricos basados e CDMA que incluyen los procesadores de Qualcomm. La plataforma presume de capacidades mejoradas que incluyen GPS, VOIP, Bluetooth 1.1, MP3 y MIDI. El hecho de que la plataforma de ejecución BREW se ejecute a nivel de chipset significa una mejora en las capacidades de comunicación y multimedia de los dispositivos móviles mejor que J2ME.
La suite de servicios BREW incluyen comunicaciones TCP/UDP, soporte HTTP, mensajería SMS, servicios de telefonía avanzada y soporte para acceso a sistemas de archivo. BREW ofrece desarrollo de software C/C++, y el BREW C/C++ SDK se integra fácilmente con en entorno de desarrollo Visual C++ de Microsoft.
Por otra parte, se puede ejecutar J2ME sobre BREW gracias a la implementación de la máquina virtual de J2ME sobre BREW. Con BREW conceptualmente actuando como una capa debajo de JVM, es posible desarrollar aplicaciones Java que pueden ser descargadas y ejecutadas sobre los dispositivos BREW utilizando la BDS
Al final, BREW no es muy diferente de Java. Para el usuario se presenta como un tipo de aplicación similar, y para un desarrollador un modelo de desarrollo más o menos similar.
No obstante, hay una importante diferencia: La filosofía de J2ME es esencialmente la filosofía de Java, que permite a los desarrolladores escribir aplicaciones que pueden funcionar sin alteraciones en diferentes dispositivos. J2ME, por tanto, se enfoca en los dispositivos de consumo generales y dispositivos embebidos. BREW, por su parte, se enfoca exclusivamente en dispositivos inalámbricos (específicamente teléfonos CDMA).