Download Tecnología JAVA

Document related concepts
no text concepts found
Transcript
Facultad de Ciencias Naturales e Ingenierías
Tecnología en Desarrollo de Sistemas Informáticos
Planeación de Sistemas Informáticos
Página 1 de 13
TECNOLOGÍAS DE DESARROLLO: JAVA
Java es un lenguaje de programación de Sun Microsystems originalmente llamado
"Oak", que fue concebido bajo la dirección de James Gosling y Bill Joy, quienes
pertenecían a una subsidiaria de Sun, conocida como "FirstPerson Inc". Oak nació para
programar pequeños dispositivos electrodomésticos, como los asistentes personales
digitales PADs (Personal Digital Assistants) y un poco más adelante se utilizó para
ejecutar aplicaciones para televisores. Ninguno de estos productos tuvo éxito
comercial. Gosling y Joy se quedaron con una tecnología robusta, eficiente, orientada a
objetos, independiente de la arquitectura, pero hasta ese momento, sin ninguna
utilidad práctica.
¿QUE ES JAVA?
Java es una plataforma virtual de software desarrollada por sun microsystems de tal
manera que los programas creados en ella puedan ejecutarse sin cambios en
diferentes tipos de arquitecturas y dispositivos computacionales ( "diferentes
plataformas").
Funcionamiento de Java

Fuente Java : archivo .java
o Archivo utilizado durante la fase de programación.
o El único archivo realmente inteligible para el programador.
Facultad de Ciencias Naturales e Ingenierías
Tecnología en Desarrollo de Sistemas Informáticos
Planeación de Sistemas Informáticos

Página 2 de 13
Byte-Code Java : archivo .class
o Código objeto destinado a ser ejecutado en toda Máquina Virtual de Java
o Procede de la compilación del código fuente
 Máquina Virtual Java
o Interprete de java convirtiendo el código a un lenguaje entendible para la
máquina, ejecuta el Byte-Code Java.
Visión general y elementos básicos del lenguaje:
 En Java, prácticamente todo son clases (objetos). El lenguaje obliga a la
programación orientada a objetos y no permite la posibilidad de programar
mediante ninguna otra técnica que no sea ésta. Por esta razón, un programa estará
formado por uno o varios archivos fuente y en cada uno de ellos tendrá definida
una o varias clases.
 El lenguaje Java, distingue entre mayúsculas y minúsculas, por lo que es
importante transcribirlo literalmente.
 También hay que comentar que en el nombre del archivo fuente también se hace
distinción entre mayúsculas y minúsculas a la hora de compilarlo, aunque el
sistema operativo empleado no haga esta distinción. La extensión del mismo debe
ser .java
 CARACTERISTICAS DE JAVA
El Lenguaje de Programación JAVA es fuertemente tipado. Esto significa que se espera
que las cosas se hagan correctamente y en forma precisa. Así, si se está usando un
entero en una operación y se pretende asignar o ocupar un valor de punto flotante el
compilador se quejará.
En general, las características, entre otras, del Lenguaje JAVA son:
 Lenguaje Simple
Como ya lo hemos señalado, JAVA es un Lenguaje de Programación derivado de
C++ y está pensado como una mejora del mismo. En este sentido, JAVA elimina
Facultad de Ciencias Naturales e Ingenierías
Tecnología en Desarrollo de Sistemas Informáticos
Planeación de Sistemas Informáticos
Página 3 de 13
una serie de características de C++ y agrega otras para facilitar el aprendizaje y
la utilización del Lenguaje.
En JAVA no es necesario preocuparse de liberar memoria. Para ello existe una
implementación particular llamada "Garbage Collector" (Recolector de Basura
o Reciclador de Memoria), cuya función es buscar dinámicamente en memoria
aquellos objetos que no se encuentran actualmente en uso y liberar la memoria
ocupada por ellos para que esté disponible para nuevos objetos.
Tampoco existen en JAVA los punteros ni la aritmética de punteros para
referenciar zonas de memoria, no existen registros (struct), definiciones de
tipo (typedef), ni macros (#define), ni referencias como se entienden en C++. Si
embargo, todas estas posibles carencias son solventadas a través de la
implementación de las clases con lo cual podemos obtener una funcionalidad
similar.
Estas "carencias", que en otros lenguajes de programación, son fuente común
de errores que generan aplicaciones poco robustas y fiables. JAVA al eliminar
estas caracterÍsticas pretende la creación de aplicaciones con menos errores y
más confiables.
 Lenguaje Orientado a Objetos
JAVA utiliza y trabaja con Objetos y con Interfaces sobre los mismos. Además
cumple con los tres paradigmas de los Lenguajes Orientados a Objetos :
encapsulamiento, herencia y polimorfismo.
Como JAVA se basa en C++, hereda muchos de los conceptos de la Orientación a
Objetos de este lenguaje, como también de otros Lenguajes Orientados a
Objetos.
"La Programación Orientada a Objetos, es una forma de concebir los programas
de computadoras como un conjunto de objetos que interactúan."
 Soporta Programación Concurrente
Esto es varios procesos ejecutándose en paralelo y comunicándose entre sí
(Multithreaded), para así mejorar el rendimiento y permitir el uso constante de
los recursos del sistema. Esto se conoce, también, como programación con
"Hilos" o multitarea, es decir, varias tareas a la vez.
 Distingue Tipos Primitivos de los Tipos Creados por el Usuario
Facultad de Ciencias Naturales e Ingenierías
Tecnología en Desarrollo de Sistemas Informáticos
Planeación de Sistemas Informáticos
Página 4 de 13
JAVA dispone de tipos primitivos y además dispone de clases especiales que los
implementan. Una clase que sea definida por el propio programador es
también un tipo de dato, pero definido por el usuario, que describe los
atributos y los métodos de los objetos que se crearán a partir de la clase. Lo que
queremos decir es que cada clase definida por el usuario es un tipo de dato
particular y nuevo.
 Es Portable. Independiente de la Plataforma
Al compilar en JAVA a partir del código fuente se genera un fichero objeto que
contiene la traducción de las líneas en "códigos de bytes" (ByteCodes) que
puede interpretar la Máquina Virtual de JAVA cuando ejecuta el programa, en
cualquier plataforma y Sistema Operativo en que ésta se encuentre instalada.
Los ByteCodes son una compilación a bajo nivel (código de máquina) para una
máquina hipotética que no existe y que sólo es una unidad de software que
actúa sobre una plataforma o arquitectura real. Esta es una de las grandes
ventajas de JAVA sobre otras plataformas y Lenguajes de Programación.
Cuando se compila un programa en la mayoría de los lenguajes, como C o C++,
el compilador traduce el código fuente a instrucciones de código de máquina
que son específicas para cada procesador en particular. Por ejemplo, si se
compila un programa para la plataforma Intel, o uno compatible como los
procesadores AMD, sólo se podrá ejecutar en esa plataforma y no en otra, como
una SPARC o una PPC (Macintosh). Para usar ese programa en otras
plataformas se deberá compilar de nuevo el programa en una máquina de la
familia de la plataforma. Esto requerirá de cambios en el código fuente.
Además, los compiladores trabajan en los Sistemas Operativos para los que
fueron diseñados, de modo que un programa compilado con un compilador
para Windows no trabajaría en un LINUX, aunque fuera la misma plataforma, a
menos que se usara un programa que emulara el Sistema Operativo en el que
fue creado el programa.
Es la Máquina Virtual o Intérprete la dependiente de la máquina en cuestión o
del Sistema Operativo. De modo que el programador escribe su código para
esta plataforma hipotética que es el Intérprete o run-time con independencia
de la arquitectura en la que se vaya a ejecutar el programa. "Se escribe una vez,
se ejecuta en todas partes", como dice la gente de JAVA. Es por esta razón que se
dice de JAVA que es un lenguaje interpretado más que compilado. En definitiva,
el intérprete toma el programa JAVA y lo traduce a comandos o instrucciones
que pueda manejar el Sistema Operativo sobre el cual se está corriendo. De esta
forma el programador se olvida de la arquitectura que utilizan los usuarios.
 Es Seguro
Facultad de Ciencias Naturales e Ingenierías
Tecnología en Desarrollo de Sistemas Informáticos
Planeación de Sistemas Informáticos
Página 5 de 13
JAVA en el seguro en el sentido que trata de reducir al mínimo posible el acceso
ilegal a memoria. Es por ello que, por ejemplo, se eliminan los punteros y los
arreglos utilizan la comprobación de límites.
También maneja la memoria con el objeto de liberar al programador de
gestionarla, liberándola o evitando a acceder a zonas de la memoria protegidas
para evitar la interacción con virus, por ejemplo.
Por último, JAVA dispone de un mecanismo de control de excepciones que
obliga a tratarlos en forma explícita.
Otra forma en que se manifiesta esta característica es través del
encapsulamiento, que permite ocultar los datos y los procedimientos internos
del programa al usuario, por medio de los modificadores, el cual sólo puede
interactuar con él a través de la interfaz pública que se haya definido.
 Permite la Creación de Aplicaciones Distribuidas
Esto significa que podemos tener una aplicación JAVA corriendo en diferentes
máquinas comunicadas entre sí. Para ello, existen una serie de clases y
bibliotecas que implementan el protocolo TCP/IP. Además existen rutinas que
permiten trabajar con los estándares del http y el ftp, entre otros.
 CONFIGURACION DEL ENTORNO
Antes de comenzar a desarrollar con JAVA se debe tener correctamente configurado el
entorno de trabajo. Por entorno de trabajo vamos a entender un compilador, el
intérprete o entorno de ejecución (run-time) y una herramienta para escribir el
código fuente. Además, existen variables de entorno, que son definidas desde el
arranque del Sistema Operativo en cuestión, que deben configurarse para poder
desarrollar y hacer correr aplicaciones JAVA.
 El Compilador
Si va a desarrollar con JAVA, el compilador es una pieza fundamental. Este recibe el
nombre de Paquete o Kit de Desarrollo de Software SDK (Software Development Kit).
Existen SDKs propietarios y libres. Entre los primeros encontramos el de SUN y el que
proporciona IBM , como los más conocidos. Entre los libres están Kaffe y gcj, como
parte del proyecto gcc, entre otros.
Nosotros usaremos la herramienta que proporciona SUN, por ser ésta la más popular
en cuanto a su uso. Esta se puede descargarse gratuitamente desde el sitio de SUN.
Facultad de Ciencias Naturales e Ingenierías
Tecnología en Desarrollo de Sistemas Informáticos
Planeación de Sistemas Informáticos
Página 6 de 13
Este Kit forma parte de la plataforma JAVA en su versión 2 llamado Java 2 Platform,
Standard Edition (J2SE ), el cual también proporciona el intérprete o run-time de
JAVA.
 El Intérprete
Este es la Máquina Virtual o Java RunTime Environment (JRE ) que permite que las
aplicaciones JAVA puedan ejecutarse. Puede descargarse conjuntamente o en forma
separada del SDK.
 El Editor
Basta con un simple editor de textos para poder escribir código JAVA. De hecho si se
está comenzando con este Lenguaje es la mejor recomendación antes de usar IDEs
más completos. Cualquier editor de textos es apropiado y existen una infinidad de
ellos. Debería usarse el que sea más cómodo para el programador. El autor, en
particular, usa VIM, que es un clon del clásico editor UNIX Vi y del cual existen
versiones para diversas plataformas. Un editor gráfico interesante, y y también usado
por el autor, es kate que forma parte del proyecto Kde. Otro editor destacado es Jedit
que es una herramienta desarrollada íntegramente en JAVA y que tiene plugins
interesantes.
¿Qué es una API?
Una API (Application Programming Interface en inglés) constituye un conjunto de
rutinas, procedimientos, protocolos, funciones y herramientas que una determinada
biblioteca pone a disposición para que sean utilizados por otro software como una
capa de abstracción. En otras palabras, es una interfaz que permite la comunicación
entre distintos componentes software. Representa, entonces, un método para alcanzar
abstracción a la hora de programar, en particular en la relación entre niveles
superiores e inferiores del software.
De esta forma, podemos decir que una de las funciones centrales de una API es la de
ofrecer un grupo de funciones generales, como sería la de dibujar uno o más íconos en
la pantalla. Esto tiene como resultado principal que los programadores se vean
beneficiados gracias a estas API, en la medida en que al utilizar sus funcionalidades se
evitan la necesidad de programar todo desde el inicio.
Sin embargo, es cierto también que una API con un alto nivel tiende a perder
flexibilidad en su uso. Así, cuando elegimos usar una API es necesario que logremos un
Facultad de Ciencias Naturales e Ingenierías
Tecnología en Desarrollo de Sistemas Informáticos
Planeación de Sistemas Informáticos
Página 7 de 13
determinado equilibrio, contemplando tanto su potencia como su simplicidad y su
grado de flexibilidad.
Algunos ejemplos de APIs para ilustrar mejor la explicación:
1. API de Youtube: permite elegir videos y ponerlos en una página web propia. Incluso
es posible, con su nueva versión, deshacerse del logo de Youtube para colocar uno
personal. Esto resulta particularmente interesante para cualquier medio de
comunicación encargado de producir videos, ya que le permite no tener que invertir
dinero en hosting.
2. API Win 32: permite que una aplicación determinada corra en Windows. Entre sus
funciones específicas se encuentran, entre otras: comunicación entre procesos,
depuración de errores o manejo de energía. Otros Ejemplos: Microsoft Framework
.NET, Java EE, Symfony para PHP
¿Qué es una IDE?
Un entorno de desarrollo integrado, llamado también IDE (sigla en inglés de
integrated development environment), es un programa informático compuesto por un
conjunto de herramientas de programación. Puede dedicarse en exclusiva a un solo
lenguaje de programación o bien poder utilizarse para varios.
Un IDE es un entorno de programación que ha sido empaquetado como un programa
de aplicación, es decir, consiste en un editor de código, un compilador, un depurador y
un constructor de interfaz gráfica (GUI). Los IDEs pueden ser aplicaciones por sí solas
o pueden ser parte de aplicaciones existentes. El lenguaje Visual Basic, por ejemplo,
puede ser usado dentro de las aplicaciones de Microsoft Office, lo que hace posible
escribir sentencias Visual Basic en forma de macros para Microsoft Word.
LA PLATAFORMA JAVA CONSTA DE LAS SIGUIENTES PARTES:




El lenguaje de programación, mismo.
La máquina virtual de Java o JRE, que permite la portabilidad en ejecución.
El API Java, una biblioteca estándar para el lenguaje.
JDK: Java developmetn Kit
Facultad de Ciencias Naturales e Ingenierías
Tecnología en Desarrollo de Sistemas Informáticos
Planeación de Sistemas Informáticos
Página 8 de 13
APPLET
Componente de software (que suele ser pequeño) escrito en un lenguaje de
programación (como Java, ver Java applet), que se ejecuta bajo el control de una
aplicación más grande que lo contiene (como un navegador web).
El término "applet" fue introducido en AppleScript en el año 1993.
Características generales de los applets
* Se ejecutan sólo en la plataforma "cliente" de un sistema, como contraste de un
servlet.
* A diferencia de las subrutinas, en los applets ciertas capacidades son restringidas
por el contenedor (el navegador).
* Un applet está escrito en un lenguaje diferente del script o del HTML que lo invoca.
* Los applet son escritos en un lenguaje compilado, mientras que el lenguaje scripting
del contenedor es un lenguaje interpretado. Esto permite mayor performance y
potencia al applet.
* A diferencia de una subrutina, puede implementarse un componente web completo
en forma de applet.
* A diferencia de un programa, no puede ejecutarse de forma independiente (necesita
un programa contenedor).
Ejemplos de applets:
* Animación Flash.
* Java applet.
Facultad de Ciencias Naturales e Ingenierías
Tecnología en Desarrollo de Sistemas Informáticos
Planeación de Sistemas Informáticos
Página 9 de 13
Applet Java
Un applet Java es un applet escrito en el lenguaje de programación Java. Los applets
de Java pueden ejecutarse en un navegador web utilizando la Java Virtual Machine
(JVM), o en el AppletViewer de Sun.
Entre sus características podemos mencionar un esquema de seguridad que permite
que los applets que se ejecutan en el equipo no tengan acceso a partes sensibles (por
ej. no pueden escribir archivos), a menos que uno mismo le dé los permisos
necesarios en el sistema; la desventaja de este enfoque es que la entrega de permisos
es engorrosa para el usuario común, lo cual juega en contra de uno de los objetivos de
los Java applets: proporcionar una forma fácil de ejecutar aplicaciones desde el
navegador web.
En Java, un applet es un programa que puede incrustarse en un documento HTML, es
decir en una página web. Cuando un navegador carga una página web que contiene un
applet, este se descarga en el navegador web y comienza a ejecutarse. Esto permite
crear programas que cualquier usuario puede ejecutar con tan solo cargar la página
web en su navegador.
El navegador que carga y ejecuta el applet se conoce en términos genéricos como el
"contenedor" de los applets. El kit de desarrollo de software para Java Standard
Edition 7 (1.7.1 --Versión más actual, puesta en marcha el 18 de octubre de 2011)
incluye un contenedor de applets, llamado appletviewer, para probar los applets antes
de incrustarlos en una página web.
Ventajas de Applets
 Los applets de Java suelen tener las siguientes ventajas:
 Son multiplataforma (funcionan en Linux, Windows, Mac OS, y en cualquier
sistema operativo para el cual exista una Java Virtual Machine).
 El mismo applet puede trabajar en "todas" las versiones de Java, y no sólo en la
última versión del plugin. Sin embargo, si un applet requiere una versión
posterior del Java Runtime Environment (JRE), el cliente se verá obligado a
esperar durante la descarga de la nueva JRE.
 Es compatible con la mayoría de los navegadores web.
 Puede ser almacenado en la memoria caché de la mayoría de los navegadores
web, de modo que se cargará rápidamente cuando se vuelva a cargar la página
Facultad de Ciencias Naturales e Ingenierías
Tecnología en Desarrollo de Sistemas Informáticos
Planeación de Sistemas Informáticos
Página 10 de
13
web, aunque puede quedar atascado en la caché, causando problemas cuando
se publican nuevas versiones.
 Puede tener acceso completo a la máquina en la que se está ejecutando, si el
usuario lo permite.
 Puede ejecutarse a velocidades comparables a las de otros lenguajes
compilados, como C++ (dependiendo de la versión de la JVM).
 Puede trasladar el trabajo del servidor al cliente, haciendo una solución web
más escalable tomando en cuenta el número de usuarios o clientes.
Desventajas Applets
 Los applets de Java suelen tener las siguientes desventajas:
 Requiere el plugin de Java, que no está disponible por defecto en todos los
navegadores web.
 No puede iniciar la ejecución hasta que la JVM esté en funcionamiento, y esto
puede tomar tiempo la primera vez que se ejecuta un applet.
 Si no está firmado como confiable, tiene un acceso limitado al sistema del
usuario - en particular no tiene acceso directo al disco duro del cliente o al
portapapeles.
 Algunas organizaciones sólo permiten la instalación de software a los
administradores. Como resultado, muchos usuarios (sin privilegios para
instalar el plugin en su navegador) no pueden ver los applets.
 Un applet podría exigir una versión específica del JRE.
 Puede tener vulnerabilidades que permitan ejecutar código malicioso1 .
Facultad de Ciencias Naturales e Ingenierías
Tecnología en Desarrollo de Sistemas Informáticos
Planeación de Sistemas Informáticos
SERVLET
Página 11 de
13
Facultad de Ciencias Naturales e Ingenierías
Tecnología en Desarrollo de Sistemas Informáticos
Planeación de Sistemas Informáticos
Página 12 de
13
Facultad de Ciencias Naturales e Ingenierías
Tecnología en Desarrollo de Sistemas Informáticos
Planeación de Sistemas Informáticos
Página 13 de
13
Referencias
http://www.juanabe.50megs.com/webJuanabe/mem/cap1-2.html
http://yosh35.tripod.com/id2.html
http://java-desd-cero.blogspot.com/2012/06/applets-que-es-un-applets.html
http://asignaturas.diatel.upm.es/prog3/c0607_tema2_JavaBasico.pdf
http://zarza.usal.es/~fgarcia/doc/tuto2/I_2.htm