Applets en la actualidad

orangeboxRecuerdo cuando hace unos cuantos años atras, cuando estaba adentrandome en la programación orientada a objetos y posteriormente en el desarrollo web. escuche hablar de los applets, en aquel entonces muchos hacian muy mala cara cuando escuchaban ese nombre, y decian que se trataba de algo pasado de moda, de lo cual unicamente quedaba como el recuerdo de un intento de llevar las applicaciones JAVA a la web.

Lógicamente ellos tenían una idea de lo que eran los applets, mas no su funcionalidad total y posibilidades que ofrecían.

Para todos aquellos informáticos que inician su carrera y que no llegaron a conocer los applets en su auge déjenme contarles que en efecto. un applet “embebido” era una de las maneras antiguas de poner una aplicacion en un navegador. seria lo equivalente a poner un objeto como un flash o un reproductor multimedia en la actualidad.

Cada vez es menos común ver los java por la red, por lo que crei que jamas los veria de nuevo en mi vida. pero la historia no fue asi. recientemente me toco trabajar unos applets para un sistema web de la empresa donde trabajo, por supuesto mi primera impresión fue una cara de asombro porque no me esperaba tal cosa.

De seguro algunos de ustedes se deben preguntar ¿si existen tantas tecnologias en la actualidad para el desarrolo web, porque los applets aun se utilizan? la respuesta es sencilla y es esa la razon por la que decidi escribir este post.

Los applets pueden brindar información a las aplicaciones web la cual no podrían tener por ellas mismas; las aplicaciones web modernas y los applets se comportan de diferente manera. ¿a que me refiero con esto? pues es cuestión de ver como esta creada cada una.

Muchas de las aplicaciones web modernas trabajan utilizando capas, muchas de ella siguiendo el modelo vista controlador (MVC) y tambien funcionan corriendo sobre un servidor de aplicaciones comun(GlassFish, Tomcat, Webphere, Jboss, etc). Por otro lado los Applets pueden funcionar incluso en una pagina HTML común sin necesidad de un servidor de aplicaciones, dado que son applicaciones java comunes que tienen autonomía aunque con permisos restringidos.

Los applets al ser aplicaciones java comunes, deben ser descargados temporalmente en las maquinas cliente y luego ejecutados, por lo que siempre antes de hacerlo, cada cliente debe aceptar que el applet pueda hacerlo.

warning

En el momento en que el applet es ejecutado en una maquina cliente puede tener permisos diferentes a los que cualquier applicacion web pueda tener(cada vez que el applet intente realizar una acción se enviara una advertencia). y puede tener acceso a información de la maquina cliente donde fue instalado si el usuario lo permite, como estructura de archivos, impresores instalados, la mac address de la maquina, uso de hardware, etc.

El hecho de los permisos restringidos, o permisos concedidos por el usuario según la acción, y la dependecia de un navegador o applet viewer son las principales diferencia entre un applet y una aplicación StandAlone, de hecho que los applets son considerados como código poco confiable(a menos que contenga una firma digital).

fbapplets

Uno de los applets mas comunes con el que se convive casi a diario es el applets de upload de fotos en facebook

Un java applet tiene la facultad de enviar esa información a la aplicación web que la necesita, desgraciadamente esta comunicación es bastante limitada y debe hacerse por medio de una URL o haciendo uso de Serialización, lo cual aveces puede volverse un poquitin molesto.

Otro dato importante (como mencione antes) es el hecho de que para que un applet pueda ser perfectamente ejecutado en la maquina cliente este debe ser firmado utilizando un certificad, el cual puede ser fácilmente creado utilizando el keytool y jarsigner que vienen con la JDK de Java, de esta forma podran crear un Aplet de confianza firmado por ustedes.

Así que cuando escuchen hablar de los applets, no piensen que es algo pasado de moda, sino que son una herramienta poco usada, un tanto olvidada, pero que puede ayudarte a salir de algunos apuros cuando necesites interactuar directamente con tus maquinas cliente.

y recuerden que por muchas tecnologías de punta que conozcan siempre en algún momento pueden necesitar de soluciones clásicas.