java logo Otras plataformas JAVA
Versión: 2.0, Septiembre, 2006

Juan Manuel Fernández Luna
Web: http://decsai.ugr.es/~jmfluna, Mail: jmfluna@decsai.ugr.es
IndiceInicioPerl

(C) Decsai
Web: http://decsai.ugr.es

Existen otras tecnologías Java, guiadas por sus propias especificaciones, que están fuera de J2ME, para desarrollar aplicaciones en dispositivos distintos a los que se dedica J2ME. Veamos brevemente algunas de ellas.

JavaCard

La tecnología JavaCard tiene por objeto permitir el desarrollo de aplicaciones en Java que puedan ser usadas en tarjetas inteligentes. Las principales complicaciones tienen que ver con lo limitado de los recursos de hardware, mientras que las ventajas se relacionan con la posibilidad de ocupar un lenguaje de alto nivel en un ambiente en que lo usual es programar en algún tipo de ensamblador difícil de depurar.

Algunas tarjetas del estilo a las de crédito se les está dotando de un microprocesador o un chip de memoria. Algunas de estas tarjetas inteligentes "smart  cards" poseen la capacidad de procesar, por sí mismas, datos almacenados en ella. Otras necesitan la asistencia de un lector, pero contienen un repertorio de instrucciones para manipular los datos.  Además, no necesitan acceder a sistemas remotos, como es el caso de las de banda magnética. Típicamente, las tarjetas tiene 1 Kbyte de memoria RAM, 16 Kbyte de EEPROM y 24 Kbytes de ROM.

Las aplicaciones de estas tarjetas se están extendiendo velozmente, ya que por ejemplo las están utilizando ya varias entidades bancarias, gobiernos para sustituir tarjetas de identificación o carnets de conducir o empresas de transporte para sustituir los sistemas actuales de tarjetas magnéticas.

JavaCard fue diseñado para ofrecer una solución fiable a la protección de datos y recursos mediante Java. Teniendo en cuenta el reducido entorno para el que ha sido pensado, JavaCard elimina ciertas construcciones de Java consideradas como demasiado complejas o no aplicables para la programación de tarjetas inteligentes no son incorporadas y por otro lado se agregan facilidades específicas para el manejo de transacciones con tarjetas inteligentes (atomicidad de un grupo de operaciones, objetos persistentes, etc.). Las políticas de seguridad de Java (conocidas como el sandbox model) que prohíben cualquier interacción entre objetos de diferentes applets fueron modificadas, y en algunos casos, debilitadas: JavaCard, por ejemplo, permite que un objeto sea compartido por diferentes applets.

Cuando una tarjeta que contiene uno o varios applets se inserta o presenta de alguna forma a un lector de tarjetas, la máquina virtual de esta plataforma identifica el applet con el que se quiere comunicar y el lector le envía una serie de mandatos a ejecutar.

La tecnología JavaCard está compuesta por tres componentes: la máquina virtual (JCVM), el entorno de ejecución (JCRE) -que actúa como sistema operativo- y el API. La máquina virtual la forman un conversor, es decir, una máquina virtual fuera de la tarjeta (residente en un PC, por ejemplo) y otra intérprete que reside en la tarjeta.  La primera convierte ficheros de clases de Java en los conocidos como Converted Applets, que son ejecutados por el intérprete.

EmbeddedJava

Este tipo de Java está dirigido a desarrollar aplicaciones relacionadas con el acceso a red, concretamente con la entrega de servicios bajo demanda. Para conseguirlo, un servidor de Java embebido se integra en cualquier dispositivo de red específico, como por ejemplo, una pasarela, máquinas de venta en la calle, dispensadores de gasolina, automóviles, de tal forma que el servicio se efectúe a través de la red.  La máquina virtual no requiere más de 500 Kbytes.

JavaPhone

Es un API desarrollado para dos tipos nuevos de teléfonos: los teléfonos inteligentes y los teléfonos con pantalla para Internet.  Los primeros conjugarán comunicaciones por voz, fax, correo electrónico, comunicación vía radio, paginación, acceso a Internet, planificación de tareas al estilo de los PDAs y muchas otras funciones que los teléfonos móviles, PDAs y paginadores presentan. Los segundos, son pantallas de vídeo y opcionalmente teclados  que permiten comunicaciones personales en Internet. JavaPhone ofrece una biblioteca de clases para desarrollo de aplicaciones en estos teléfonos futuristas.

Java TV

El API de Java para la televisión digital interactiva ofrece una plataforma para escribir programas Java para controlar la televisión y los "set-top boxes" creados para el entretenimiento digital, de manera que sean independientes de la tecnología subyacente de emisión.  Entre algunas de las aplicaciones podemos destacar la posibilidad de seleccionar la cámara desde la que queremos ver un partido de fútbol o una jugada concreta, o seleccionar vídeos o juegos bajo demanda. Java TV se compone de una máquina virtual Java estándar y varias bibliotecas del propio lenguaje Java y específicas.