![]() Versión: 2.0, Septiembre, 2006 Juan Manuel Fernández Luna Web: http://decsai.ugr.es/~jmfluna, Mail: jmfluna@decsai.ugr.es |
![]() ![]() ![]() (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.
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.
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.
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.
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.