Introducción

¿Qué es la Tecnología Java?

Java es un lenguaje de programación que ha desarrollado Sun Microsystems en un intento de obtener un lenguaje que tuviese un código bien estructurado y además resolviese los problemas que se le plantean a los desarrolladores de software por la proliferación de arquitecturas incompatibles, y teniendo en mente el desarrollo de aplicaciones por y para la Red de Redes, es decir, Internet.

El camino de Java no ha sido un camino recto ni mucho menos, inicialmente el lenguaje Java fue pensado para introducirlo en los chips de los electrodomésticos pero esto no dio los frutos esperados por lo que después de un tiempo Sun MycroSystem tomó la determinación de enfocar este lenguaje a un nueva tecnología en la que podía competir con el gigante Microsoft, Internet.El desarrollador del lenguaje Java, James Gosling, decidió crear un lenguaje de programación que fuese orientado a objetos pero que no tuviese los problemas que proporciona C++ a los desarrolladores, por lo que basándose en éste creó el Java. Es por todo esto que la plataforma Java está basada en el poder de las redes y en la idea de que el mismo software se debería poder ejecutar en muchos tipos distintos de ordenadores, aparatos de usuario y otros dispositivos.

Desde su liberación comercial en 1995, la tecnología Java ha crecido en popularidad y utilización debido a su verdadera portabilidad. Cualquier aplicación Java puede ser enviada por Internet, o cualquier otra red, sin problemas de compatibilidad con sistemas operativos o plataformas de hardware. Por ejemplo, podríamos ejecutar una aplicación Java sobre un PC, un Mac, un ordenador de red, o incluso en nuevas tecnologías como dispositivos de mano con acceso a Internet.

Además la plataforma Java fue diseñada para ejecutar programas de forma segura en la red, lo que significa que se integra de forma segura con los sistemas existentes en nuestras redes.
Para hacer que el Java fuese independiente de los ordenadores y de las plataformas los programas desarrollados en Java se ejecutan en un componente de la plataforma de Java llamado 'Máquina Virtual Java' (o JVM) -- un especie de traductor que convierte las instrucciones de la plataforma Java en comandos personalizados que hacen que el dispositivo haga su trabajo.Esto quiere decir que Java es un lenguaje interpretado, al contrario que C o C++, cuando se compila una aplicación Java no se genera código máquina, sino que se generan 'bytecode' que la Máquina Virtual Java convertirá en código máquina durante la ejecución de la aplicación.

Esto tiene ventajas y inconvenientes:

  • Ventaja: Al no crear código máquina las aplicaciones son altamente portables, lo que quiere decir que podemos desarrollar nuestra aplicación en Linux y luego se podrá ejecutar en cualquier ordenador que disponga de una JVM.
  • Inconveniente: La velocidad de ejecución. Al no crear código máquina, la aplicación debe cargar primero la JVM y luego ésta debe leer e interpretar los bytecode lo que provoca una menor velocidad de proceso, pero esto es una razón que cada vez pesa menos debido a la potencia y rapidez que desarrollan las nuevas máquinas.
Durante los años de existencia, Java ha sufrido transformaciones y cambios en las diferentes versiones que han salido al mercado: Las últimas versiónes incorporan nuevos paquetes para el desarrollo de aplicaciones , aparte de los que ya existían en las versiones anteriores, en algunos casos mejorados. A grandes rasgos esta versión incorpora los paquetes para:
  • Paquetes básicos del lenguaje (java.lang,...);-Paquete que contiene utilidades para poder manejar estructuras de datos complejas (java.util,...);
  • Paquetes que nos proporcionan constantes y funciones matemáticas (java.math);
  • Paquetes para manejar ficheros y flujos de datos y la entrada (java.io);
  • Los nuevos paquetes para manejar los ficheros y las entradas y salidas de flujos (java.nio,...)
  • Paquetes para la creación de applets (java.applet);
  • Paquetes para la creación de GUI (java.awt, java.swing, ....);
  • Paquetes que nos facilitan la interacción con las bases de datos relacionales (java.sql);
  • Paquetes que con los que podremos crear componentes reusables (java.bean,...);
  • Paquetes especializados en la comunicación en redes locales (java.net);
  • Paquetes para la creación de aplicaciones remotas (java.rmi);
  • Paquetes para el trabajo con la seguridad (java.security,....);
Además de estos paquetes existen otros que sirven para crear aplicaciones CORBA (org.omg.CORBA...), para manejar ficheros XML (org.xml), así hasta un total de 135 paquetes y 2758 clases e interfaces. Tranquilo, no hay que conocer todas las clases que existen, cada programador se especializa en una parte más o menos extensa de Java y es ahí donde suele desarrollar su trabajo.

Pese que Java es un lenguaje pensado para Internet curiosamente el entorno de desarrollo para este área es una plataforma “independiente” del JDK (j2sdk.0) y es lo que Sun Microsystem denomina J2EE (Java 2 Enterprise Edition ).

En realidad J2EE es una especificación escrita por Sun Microsystem para el desarrollo de aplicaciones para empresas. J2EE 1.3 (la última versión, por ahora) nos permite crear aplicaciones con acceso a Base de Datos (JDBC), utilización de ficheros distribuidos (JNDI), acceso a métodos remostos (CORBA, RMI), funciones de correo electrónico (JavaMail) y aplicaciones Web (Servlets , JSP y EJB). De manera que ahora, mediante el J2EE, se puede crear aplicaciones para empresas e implementar servicios Web de una forma mucho más funcional.

¿Qué se puede hacer con Java?

Con Java se puede hacer lo mismo que con cualquier otro lenguaje de programación como C o C++, pero de una forma más segura:

La JVM tiene cuidado de las aplicaciones y applets Java no realicen operaciones que deban realizar. Además debido a su gran portabilidad el aspecto de nuestros interfaces de usuario será prácticamente idéntico en cualquier plataforma en la que ejecutemos nuestra aplicación. Con Java se pueden crear:

  • Aplicaciones independientes, como programas de tratamientos de imágenes del tipo GIMP
  • ·
  • Applets, para que nuestras páginas web sean más atractivas, como los que puedes encontrar en http://www.javapowered.com/werks.html.
  • Aplicaciones Web desarrolladas con tecnologías J2EE, como los Servlets, las JavaServer Pages, etc. que se salen fuera del ámbito de este curso.

¿Que es la GUI?

¿Qué es la GUI?

Dentro de Java hay una serie de paquetes destinados a la creación de aplicaciones con un Interface

Gráfico de Usuario, es decir, son aplicaciones compuestas de ventanas, menús que se pueden desplegar, iconos para las distintas funciones, sonidos, etc.

En definitiva, con la GUI se pueden hacer una aplicación como las que estamos acostumbrados a ver habitualmente.

JFC son la siglas para las Clases de la Fundación de JavaTM, que engloban un grupo de características para ayudar a construir los Interfaces Gráficos de los Usuarios en las aplicaciones (GUIs).Las clases de la fundación de Java (JFC) son un sistema de bibliotecas de clases que Java proporciona, como parte de J2SE, al interfaz utilizador de los gráficos (GUI) para dar funcionalidad a los gráficos y para los diferentes usos que se puedan dar en las tecnologías basadas en Java del cliente.

JFC incluye un sistema extenso de tecnologías que permiten a los programadores crear una interfaz muy rica e interactiva del usuario para con las aplicaciones que no sólo pueden funcionar en Microsoft Windows, sino que también en otras plataformas cada vez más populares, tales como mac OSX y Linux.

Es importante hacer notar que, al decidir que tipo de tecnología se va a utilizar para crear una aplicación, la JFC es desplegada muy fácilmente en la red y, por tanto, no es necesario depender del HTML.

Las características de JFC incluyen:

  • Caja de herramientas Abstracta Para las Ventanas (AWT): APIs que permite a los programas integrar en el sistema un interfaz gráfico además incluye un APIs para el Drag and Drop, que español es algo así como arrastrar y soltar (parecido a la forma de trabajo del Visual Basic y muchos otros programas en la actualidad).
  • Java 2D: APIs para permitir trabajar con gráficos avanzados 2D, proyección de imágenes, y para el tratamiento del texto y su impresión.
  • Swing Componentes del GUI: APIs que amplía el AWT para proveer de una biblioteca de componentes para el GUI pero con componentes menos pesados (que van más deprisa) y más vistosos.
  • Accesibilidad: se compone de unas APIs y las tecnologías de asistencia para asegurar un uso correcto para los usuarios con discapacidades.
  • Internacionalización: Todas las tecnologías de JFC incluyen la ayuda para crear las aplicaciones de modo que pueden obrar recíprocamente con los usuarios alrededor del mundo usando la propia lengua y convenciones culturales del usuario.
  • Estas cinco tecnologías se diseñan para ser utilizadas juntas para permitir a los programadores construir las aplicaciones completamente funcionales con la ventaja de que funcionan e integran en cualquier máquina cliente que se apoye en el J2SE y su máquina virtual, incluyendo Microsoft Windows, Solaris, Linux, y el mac OSX. El lanzamiento más reciente que contiene JFC API es Java 2 SDK, edición estándar, (J2SE) y está disponible para Microsoft Windows, Solaris, y Linux.
¿Qué es el trabajo en Red?

El lenguaje Java dentro del paqute java.net nos proporciona mecanismos muy eficientes y fáciles de manejar para construir programas para redes tales como Internet. Dentro de este paquete existen clases como URL en un nivel superior y las clases Socket y ServerSocket a un nivel más bajo, que nos permiten la comunicación entre ordenadores conectados a una red.

Los sockets son un sistema de comunicación entre procesos de diferentes máquinas de una red. Es decir, mediante la clase Socket podemos crear conexiones de flujo, que son los que utilizan el protocolo TCP, entre dos ordenadores. El tipo de datos en la comunicación puede ser cualquiera, y por ello el protocolo TCP es usado por http, ftp, telnet, etc.

Los Sockets son como las conexiones telefónicas pero entre dos ordenadores remotos, la comunicación es continúa y finaliza cuando uno de los dos ordenadores cierra su conexión.

La clase ServerSocket es una clase incluida en java.net que sirve para atender peticiones de conexiones, lo cual es útil a la hora de crear un servidor. Es decir, un ordenador que está esperando continuamente a que algún otro se conecte con él y le haga una petición de algún servicio http, ftp, telnee, etc.

Conceptos
  • J2SE (Java 2 Standard Edition) o la plataforma Java: Es un conjunto formado por el Lenguaje Java, La Máquina Virtual Java y los llamados API.
  • JDK(Java Development Kit): Es el conjunto de componentes necesarios para desarrollar en Java, es decir, es el J2SE.
  • SDK(Standard Development Kit): Viene a ser lo mismo que los anteriores conceptos
  • Lenguaje Java: Es un lenguaje de alto nivel que está basado en la Programación Orientado a Objetos
  • JRE(Java Runtime Environment): Este es el “ambiente” (software necesario) que necesita un ordenador para poder ejecutar cualquier programa Java.
  • API (Aplication Programing Interface): Java esta compuesto de el lenguaje de programación propiamente dicho, es decir, los mecanismos propios de todo lenguaje para poder hacer sentencias de bifurcación (if...else...), bucles (for, while,....), comentarios, etc. Y además posee una estructura de package (paquetes) en los que están estructurados las clases e interfaces absolutamente necesarias para poder hacer las aplicaciones en Java. También se le suele llamar API a la información que proporciona Sun Microsystem de estos paquetes y las clases que contienen.
  • paquetes: Es la forma en que java estructura sus clases e interfaces, son como carpetas en los que guardamos las clases e interfaces que están relacionadas entre ellas.
  • java.lang: es el paquete básico en donde se encuentran las clases fundamentales para poder programar en Java. Este paquete incluye la clase java.lang.Object, que es la clase fundamental de la que heredan o extienden todas las clases en java.
  • Código fuente: Conjunto de instrucciones que componen un programa escrito en Java, este archivo tendrá una extensión .java.
  • Compilar: El código fuente no puede ser interpretado por el sistema operativo, por lo que hay que traducirlo a un “idioma” que entienda el ordenador, este archivo tendrá una extensión .class
  • Código bytecodes: Una vez que hemos compilado el programa se genera un archivo que podrá ser interpretado por la maquina virtual de Java y el sistema operativo a través de esta JVM puede ejecutar las instrucciones del código fuente.
  • JVM: Máquina Virtual Java, esta “máquina” es un programa que traduce todos los programas java en un código que pueda entender cada uno de los distintos Sistemas Operativos.
  • Sistema Operativo: Es un intermediario entre los componentes físicos del ordenador (Hardware) y los programas que hay instalados en el ordenador (Software)
  • Lenguajes de alto nivel: Lenguajes independientes de la máquina sobre la que se ejecutan. Se componen de sentencias que se asemejan al lenguaje humano.
  • IDE’s: Java proporciona dentro de su “entorno de desarrollo” una serie de herramientas para poder compilar y depurar los programas; pero este entorno es muy “austero” son comandos que se ejecutan dentro de la consola de MS-DOS (javac, appletviewer,...) por lo que tanto Sun Mycrosystem como otras compañías han desarrollado aplicaciones para el desarrollo con interfaces con el usuario gráficos que facilitan la programación de grandes aplicaciones.
  • Archivos .jar: Son los archivos que se utilizan en java para poder llevar los proyectos en archivos compilados y así que ocupen menos espacio, en realidad son muy parecidos a los archivos .zip o .rar.
  • Archivos .war(Web Archive): Son archivos parecidos a los .jar pero que sirven además para desplegar apicaciones en los servidores Web de una forma automática.
  • JavaScript: Este es un lenguaje que se enmarca únicamente en el entorno de las páginas web, es decir, son programas que para poder ser ejecutados deben implantarse dentro de las páginas HTML y el encargado de hacerlos funcionar es un navegador compatible con este lenguaje (IE, Netscape,...). Por lo que la único parecido entre Java y JavaScript es la sintaxis y desde luego el nombre.
  • Pascal: En 1971, Niklaus Wirth desarrolló un lenguaje para facilitar la enseñanza de la programación estructurada. Lo llamó Pascal, en honor al matemático francés.
  • Basic: La primera versión del lenguaje BASIC (Beginners All-purpose Symbolic Instruction Code) fue creada por John Kemeny y Thomas E. Kurtz en 1964. Este lenguaje estaba destinado a la enseñanza de la programación a un nivel básico. Como curiosidad, BASIC fue el lenguaje que Bill Gates y Paul Allen emplearon para desarrollar un primitivo sistema de operación para el procesador ALTAIR 8800 en 1975
  • C: El lenguaje C nació en los Laboratorios Bell de AT&T. En 1972, Dennis Ritchie crea el lenguaje C, modificando el lenguaje B escrito por Ken Thompson en 1970, y reescribe el sistema operativo UNiX en su lenguaje C.
Más Información sobre Java y J2EE



Nombre:

Email:

Comentario: