|
|
|
|
| |
| |
Por
Crowley
crowley@-QUITA-ESTO-mexicoextremo.com.mx
http://www.mexicoextremo.com.mx
* © Copyright 2000-2003 Crowley - Grupo Alternativo
-.* Se otorga el permiso para copiar, distribuir y modificar este documento
bajo los términos de la Licencia de Documentación Libre del
GNU <http://www.gnu.org/copyleft>, versión 1.1 o cualquier
otra posterior publicada por Free Software Foundation <http://www.fsf.org/>;
este documento no consta de secciones invariantes ni con portadas o contraportadas.
Una copia de la licencia <http://www.mexicoextremo.com.mx/fdl.txt>
se incluye en la documentación del sitio. Linux® es una marca
registrada de Linus Torvalds, LinuxPPP® es una marca registrada de José
Neif Jury Fabre, RedHat® Linux, RPM y GLINT son marcas registradas de
RedHat Software, Unix® es marca registrada de X/Open. Apache® es
una marca registrada de The Apache Group. Otras marcas registradas son propiedad
intelectual de sus autores o propietarios. La información contenida
en este documento se proporciona tal cual es y el autor no asumirá
responsabilidad alguna por el mal uso que se haga de esta. |
|
| |
| Presente
y futuro de Java |
| |
Más de cinco años han pasado desde el
lanzamiento de este portable lenguaje de programación, mucho se ha
dicho al respecto, tanto a favor como en contra, pero lo cierto es que se
ha convertido, a pesar de sus fallas y detractores, en un estándar
de la industria y que es utilizado ampliamente por muy diversos sectores
para crear desarrollos de misión crítica, aplicaciones de
Intranet/Internet y explotación de bases de datos.
Para los que no lo recuerdan, Java (http://www.javasoft.com) es un
lenguaje de programación orientado a objetos, desarrollado por Sun
Microsystems (http://www.sun.com) cuya principal ventaja sobre otras
propuestas es que es escrito sólo una vez y es capaz de trabajar
donde sea, sin importar la plataforma de origen ni de destino, puesto que
trabaja mediante una "Máquina Virtual de Java" (JVM) que
ejecuta las rutinas. Prácticamente cualquier sistema operativo moderno
(Windows, Macintosh, Linux, Unix, Solaris, etc.) cuenta con una JVM. Despúes
de varios intentos fallidos para colocar el producto en otros nichos, se
optó por liberarlo gratuitamente por Internet, siendo Netscape
Navigator 2.0 (http://home.netscape.com) el primero en implementarlo
para ver este tipo de programas.
Tal es su importancia actual, que es necesario que veamos algunas de sus
propuestas y cambios más interesantes, mismos que están fundamentando
una nueva plataforma, completa e integral, para desarrollos basados en redes
e Internet que ofrezcan muchas de las promesas que otras tecnologías
todavía no consiguen igualar.
Java y XML -La pareja de oro-
Por estar pensado para ser de plataforma abierta, Java siempre ha sido un
favorito para realizar desarrollos y moverlos de máquina en máquina
sin problema, sin embargo, su portabilidad propia no era extensiva a su
contenido, es decir, la información generada no podía ser
transportada a otros medios sin necesitar un proceso, a veces lento, de
transformación de datos. Entonces llegó el XML.
XML o Lenguaje de Marcación Extendida, creado por el World
Wide Web Consortium (http://www.w3.org) es una tecnologías orientada
principalmente al intercambio de datos sin importar su origen, ya que formatea
la información original para crear versiones que pueden ser leídas
por otros dispositivos en otros ambientes de trabajo. Debido a esta característica,
ya se están creando servicios completos donde Java procesa y produce
la información y los análisis, mientras que XML genera un
formato exportable a otros medios. Su ventaja, en conjunto es que pueden
trabajar sobre cualquier plataforma, lo cual elimina las preocupaciones
sobre hardware y sistema operativo de red, dado que ambos utilizan protocolos
de Internet.
Ya existe herramientas que combinan ambas tecnologías, como es
Bolero 3.1, de Software AG (http://www.softwareag.com), que construye
aplicaciones Java con soporte a otros lenguajes y plataformas mediante XML
y aunque todavía tiene camino por andar, van bien.
Las diferentes ediciones
Debido a que se está enfocando a nichos diferentes, con requerimientos
técnicos específicos, se han creado varias ediciones a partir
de la plataforma Java 2 (versión 1.2), encontrando tres variedades.
Java[tm] 2 Platform, Enterprise Edition (J2EE), http://java.sun.com/j2ee/.
Orientado al desarrollo de aplicaciones de misión crítica
en la empresa, integra la tecnología de Sun BluePrints[tm] Design
Guidelines y prubas de compatibilidad para reducir la complejidad, tiempo
y costo de los desarrollos.
Java[tm] 2 Platform, Micro Edition (J2ME), http://java.sun.com/j2me/.
Dirigido al mercado de handhelds y dispositivos móviles, integra
un Java runtime enviroment optimizado para que trabaje en este tipo de equipos,
que tradicionalmente tiene poco espacio y memoria de trabajo.
Java[tm] 2 Platform, Standard Edition (J2SE), http://java.sun.com/j2se/1.3/.
Pensado para el desarrollo de aplicaciones Internet/Intranet en cualquier
organización, incluye el Java[tm] 2 Software Development Kit (SDK)
para el desarrollo y el Java[tm] 2 RuntimeEnvironment para la ejecución
en el sistema operativo.
Estos kits siempre fueron pensados para Windows 95 o superior y Solaris
(sistema operativo Unix de Sun), pero ya se tienen versiones para Linux
y Macintosh, algunas con costo y otras gratuitas. Ligas para descargarlas
se presentarán al final del artículo.
Java Beans
Aquellos que alguna vez han programado, especialmente en Visual Basic o
Delphi, han de estar familiarizados con este concepto. Los Java Beans
son componentes de software reutilizables para Java.
La importancia que revisten es la siguiente; varios lenguajes de programación,
como C o C++ de donde se derivó Java, requieren que todos los módulos
y rutinas sean escritos para cada proyecto, una vez terminado éste
el código no podía reutilizarse por cuestiones de lenguaje,
los "frijoles" (beans) son componentes que pueden tenerse a la
mano como librerías para reciclar ciertas funciones, dando tanta
flexibilidad que un programa creado en C con más de un millón
de líneas de código, puede reducirse a 200,000 líneas,
dicho por propias áreas de desarrollo.
Un buen documento introductorio lo pueden encontrar en http://developer.java.sun.com/developer/onlineTraining/Beans/Beans1/index.html,
cortesía de Sun Microsystems.
Servlets
Un concepto que debe ser bien entendido es que Java es en general un lenguaje
interpretado, lo que quiere decir que al momento de leer el código,
la computadora está "convirtiendo" la programación
en un proceso o animación entendible para el ser humano. El opuesto
es un lenguaje compilado, como Basic, Delphi o Clipper, donde se crea un
programa ejecutable que trabaja en una computadora. Esto entra a colación
porque los applets son programas interpretados por el navegador de
Internet directamente en la máquina del usuario, pues bien, los servlets
son programas que dan ciertas funciones y procedimientos a los servidores,
debido a que son de plataforma abierta se pueden migrar facilmente de una
servidor a otro sin que se modifique su funcionamiento.
Un requerimiento en este caso es utilizar el Java Servlet Development Kit
(JSDK), que es el conjunto de herramientas para crear servlets; ojo, es
diferente al utilizado para crear applets. También es requisito instalar
el API de los Servlets en el servidor Web, que pueden encontrar en el sitio
de Java.
Vean un interesante curso de Servlets en http://developer.java.sun.com/developer/onlineTraining/Servlets/Fundamentals/introduction.html
Otro curso es http://archive.coreservlets.com/, que cubre además
Java Server Pages y Tecnologías Soportadas..
Pueden ver los documentos de la especificación del API en http://java.sun.com/aboutJava/communityprocess/first/jsr053/index.html.
Java Server Pages
En esta época en que los sitios Web dinámicos mandan, con
tecnologías como PHP del grupo PHP, ASP de Microsoft
o Cold Fusion de Allaire, Sun ofrece esta especificación para
crear páginas dinámicas, Java Server Pages o JSP,
que aparentemente es más flexible que las opciones antes mencionadas.
Su primera diferencia radica en que las etiquetas para codificar no están
limitadas a un conjunto creado por el fabricante, sino que se pueden crear
etiquetas propias, similar al XML, dando lugar a librerías completas
que se peuden transportar de un servidor a otro. Otra ventaja es que es
multiplattaforma, al trabajar tanto en servidores Windows como Solaris,
Netscape, Linux y muchos otros. Y por si faltara algo, pueden reutilizar
Java Beans, Servlets y applets de forma transparente. El broche de oro es
que soporta la especificación completa de Java, por lo que puede
acceder a servicios de bases de datos, de redes con directorios ligeros,
seguridad contra crashes y encriptación en caso necesario.
Se debe admitir que es una tecnología muy nueva, por lo que todavía
falta mucho camino por andar antes que compita en términos reales
contra otras aplicaciones que están más maduras, pero su promesa
es muy interesante.
Una comparación de JSP sobre ASP, se puede encontrar en http://java.sun.com/products/jsp/jsp-asp.html.
Jakarta
Y después de toda esta tecnología, lo más lógico
sería tener un servidor que ejecute todo esto de forma transparente,
para lo que tenemos al servidor TOMCAT @ JAKARTA, que es un servidor
que ejecuta de forma transparente toda la tecnología Java, lo que
acelera su procesamiento para el usuario.
Propiamente, Jakarta (http://jakarta.apache.org) es parte del proyecto
Apache (http://www.apache.org) para crear un servidor de calidad
comercial pero basado en software libre, mientras que Tomcat (http://jakarta.apache.org/tomcat/)
es la tecnología que ejecuta los JSP y Servlets, especificaciones
que fueron proporcionadas por Sun Microsystems para que se incorporaran
a su proyecto.
Jini, Jiro y otros
Aunado a todo lo anterior, existen otras aplicaciones muy interesantes,
como es Jini (http://www.sun.com/jini/), que busca conectar todo
tipo de dispositivo, informático y no informático, en una
sola red, que permita intercambiar información y compartir recursos
de forma transparente y automática. Otro es Jiro (http://www.sun.com/software/jiro/index.html),
la primera aplicación de Jini para crear redes de almacenamiento
en LAN y se espera que se tengan muchas otras aplicaciones en el futuro.
Tampoco podemos olvidar que existen un par de iniciativas para crear un
sistema operativo basado en Java, los cuales continuan en fase Alfa de desarrollo
pero que podrán ofrecer otra opción más al rico universo
de las Tecnologías de Información.
Los etcéteras son infinitos y sólo hemos husmeado la superficie,
seamos o no desarrolladores, conozcamos o no este lenguaje, es casi seguro
que nos afectará antes de que nos demos cuenta.
|
|
|
|
| |
|