Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Agenda
Componentes Tecnolgicos J2EE
Applets
Aplicaciones Clientes Java Servlets Java Server Pages(jsp)
Applets
Manera de incluir programas complejos eb ek
ambito de una pgina web Estan programados en Java y precompilados, es por eso que lamanera de trabajar e estos varia un poco con respecto a los lenguajes script como el javscript
Applets
Ventajas:
Mucho menos depenientes del navegador que los
scripts de javascript. Son multiplataforma El mismo applet puede trabajar en "todas" las versiones de Java Puede ser almacenado en la memoria cach de la mayora de los navegadores web Puede trasladar el trabajo del servidor al cliente
Applets
Desventaja:
Son mas lentos de procesar. Tienen un esacio muy delimitado en la pgina donde se
van a ejecutar. Requiere el plugin de Java No puede iniciar la ejecucin hasta que la JVM est en funcionamiento Si no est firmado como confiable, tiene un acceso limitado al sistema del usuario Algunas organizaciones slo permiten la instalacin de software a los administradores Puede tener vulnerabilidades que permitan ejecutar cdigo malicioso
Applets
Caracteristicas:
Seguridad: Esquema de seguridad que permite que los applets que se ejecutan en el equipo no tengan acceso a partes sensibles
Ejemplo.
Applet
Ciclo de vida:
Cuando un applet se inicia, se llaman en este orden a
diferencia de que este mtodo tambin se llama cuando se reinicia un applet. paint: se encarga de mostrar el contenido del applet. Se ejecuta cada vez que se tenga que redibujar.
Para terminar o pausar la ejecucin se llama a los
siguientes mtodos:
stop: suspende la ejecucin del programa. Se llama cuando
el applet se vuelve temporalmente invisible. destroy: cuando no se va a necesitar ms el applet. Se usa para liberar recursos.
Aplicaciones cliente
Modelo Cliente Servidor
- Clientes: que dan acceso a usuarios a los servicios - Servidores: contienen informacin, servicios, ... Cliente y Servidor son roles en una aplicacin - Una mquina puede ser cliente en un servicio y servidor en otro Muy extendido en programacin distribuida - Utilizando el interfaz de sockets
Comunicaciones - Java
Arquitectura Cliente-Servidor
Aplicaciones modulares, distribuidas y
personalizadas. Java permite la extensin ms potente de servidores de aplicaciones Cmo?. Cuando se accede a un applet de otro ordenador, el navegador carga la clase principal y va cargando dinmicamente el resto de clases a medida que son necesarias Si alguna clase ya reside en la memoria local, no debera cargarla, incrementa el rendimiento
10
Comunicaciones - Java
Arquitectura Cliente-Servidor(II)
Gracias a su rigurosa concepcin de orientacin a objetos,
es muy fcil programar aplicaciones modulares Las funciones que deben ser accedidas por un usuario pueden programarse con applets Basta instalar los distintos mdulos de la aplicacin, en un nico servidor Los usuarios acceden a las aplicaciones a travs de su navegador, personalizarlos y tener interfaces familiares El uso del web en los ltimos aos perite reducir en forma considerable el proceso de aprendizaje y formacin en la aplicacin
11
Comunicaciones - Java
Arquitectura Cliente-Servidor
Ventajas
Una aplicacin de biblioteca se liberara de la
preocupacin de instalar las aplicaciones localmente y de actualizar sucesivas versiones Los applets se distribuyen fcilmente por la www, las dificultades de trafico en una red no afectan la funcionalidad de estos, pues ocupan un tamao no ms de 10 o 20 Kb segn aplicacin. Como se dijo antes no es necesario cargar los applets enteros, y La facilidad de distribucin tiene otra ventaja, como es el coste de la aplicacin en cuanto a actualizaciones y la de asegurar que todos los clientes tienen la misma versin software
12
Comunicaciones - Java
Arquitectura Cliente-Servidor
Ventajas (II)
plataforma permite que las aplicaciones, funcionen igual en todos los ordenadores El usuario slo cargar la utilidad especfica de la aplicacin que necesite Toda la arquitectura que acabamos de explicar hace pensar que tan solo se necesita en el ordenador un navegador sin tener que usar ningn S.O. o configuracin hardware preferente
13
Comunicaciones - Java
en contra de los fat clients (Clientes gruesos) que utilizan la mayor parte de aplicaciones de gestin Los fat clients necesitan trabajar con un S.O determinado, cantidad de Ram, capacidad de disco, etc.. En esta nueva arquitectura, es ms fcil optimizar las presentaciones, ya que los thin clients requieren estaciones menos potentes
14
Comunicaciones - Java
Qu es un socket?
Un socket es un punto final en un enlace de
comunicacin de dos vas entre dos programas que se ejecutan en la red. Las clases Socket son utilizadas para representar conexiones entre un programa cliente y otro programa servidor. El paquete java.net proporciona dos clases -Socket y ServerSocket -- que implementan los lados del cliente y del servidor de una conexin, respectivamente
15
Comunicaciones - Java
del servidor(en el port7)mediante un socket. El cliente lee y escribe a travs del socket Echotest enva todo el texto tecleado en su entrada estandar al Echo del servidor, El servidor repite todos los caracteres recibidos en su entrada desde el cliente de vuelta a travs del socket al cliente
16
Comunicaciones - Java
echoSocket = new Socket(slabii", 7); os = new DataOutputStream(echoSocket.getOutputStream()); Abre un canal de entrada el el socket is = new DataInputStream(echoSocket.getInputStream()); Abre un canal de salida el el socket
17
Comunicaciones - Java
estandar de EchoTest(donde el usuario teclea). Escribe inmediatamente la entada seguida por un carcter de nueva lnea en el stream de salida conectado al socket. String userInput; while ((userInput = stdIn.readLine()) != null) { os.writeBytes(userInput); os.writeByte('\n'); System.out.println("echo: " + is.readLine());} La ltima lnea del bucle while lee una lnea de informacin desde el stream de entrada conectado al socket. El mtodo readLine() se bloquea hasta que el servidor haya devuelto la informacin a EchoTest. Cuando readline() retorna, EchoTest imprime la informacin en la salida estandard.
18
Comunicaciones - Java
bucle while termina y el programa contina ejecutando las siguientes lneas de cdigo: os.close(); is.close(); echoSocket.close(); Estas tres lneas de cdigo cierran las streams de entrada y salida conectados al socket, y cierra la conexin del socket con el servidor. El orden es importante -- debe cerrar los streams conectados a un socket antes de cerrar ste.
19
Comunicaciones - Java
los clientes hablen con servidores ms complicados como un servidor http, el cliente tambin ser ms complicado. Si embargo, las cosas bsicas son las que has visto en este programa:
1. Abrir un socket. 2. Abrir un stream de entrada y otro de salida hacia el socket. 3. Leer y escribir a travs del socket de acuerdo al protocolo
20
Comunicaciones - Java
Servlets
Programa en JAVA que se ejecuta en el marco de un
servicio de red, como por ejemplo un servidor web, y que recibe y responde a las peticiones de un cliente. Los clientes pueden invocarlo utilizando el protocolo HTTP
Explorador
Respuesta HTTP
21
Comunicaciones - Java
Servlet
su trabajo, o bien facilitar el acceso a bases de datos Son seguros y portables debido a que se ejecutan bajo la mquina virtual de Java, al mecanismo de excepciones y al uso del administrador de seguridad de java. Java proporciona el soporte necesario para escribir servlets a travs del paquete javax.servlet Son independientes de la plataforma Son ms rpidos que los programas CGI y que los scrips
22
Comunicaciones - Java
Servlets. Ejemplo
Un ejemplo sencillo consist en una pgina HTML
que contiene un campo de entrada con los correspondientes botones de Submit y Reset A pulsar sobre el botn Submit se producir la ejecucin del Servlet en el servidor, procesar la informacin recibida, y mostrar como resultado una pgina HTML con el texto introducido con anterioridad
23
Comunicaciones - Java
en el action del form, indica la accin a desencadenar en el servidor al pulsar el botn Submit
<html> <head> <title>Ejemplo "Mi Primer Servlet"</title> </head> <body> <form action=http://servidor:8080/servlet/MiPrimerServlet method=POST> <BR> <BR>Introduzca un texto en el cuadro y pulse "Submit"<BR> <BR> <input type=text name=TEXTO> <BR> <BR><input type=submit><input type=reset></form> </body> </html>
24
Comunicaciones - Java
de los paquetes javax.servlet.* y javax.servlet.http.*, y la clusula extends que define el programa como una extension de HttpServlet. El fichero que contiene el Servlet lo llamaremos MiPrimerServlet.java.
// MiPrimerServlet.java import javax.servlet.*; import javax.servlet.http.*; import java.io.*;
public class MiPrimerServlet extends HttpServlet { public void service(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { PrintStream out = new PrintStream(res.getOutputStream()); res.setContentType("text/html"); String TEXTO = req.getParameter("TEXTO"); out.println("<p>Usted ha escrito : "+TEXTO+"</p>"); Comunicaciones - Java } }
25
El ciclo de vida
1) Cuando el servidor carga el Servlet (solo lo carga
ante la primera peticin, despus ya no hace falta), invoca el mtodo init. Todas las peticiones que lleguen antes de que este mtodo finalice su ejecucin, habrn de esperar para ser atendidas. 2) Una vez finalizada la ejecucin del mtodo init, todas las peticiones son atendidas por el mtodo service. Normalmente el servidor puede manejar varias peticiones simultneamente y asigna un hilo propio a cada peticin. 3) Cuando el servidor quiere descargar el Servlet invoca el mtodo destroy.
26
Comunicaciones - Java
dos paquetes El paquete javax.servlet, define la interfaz Servlet y su implementacin GenericServlet. Es esta la interfaz que define los mtodos del Ciclo de Vida. Tambin destacan las interfaces ServletRequest y ServletResponse, que definen la mecnica de las peticiones y las respuestas. El paquete javax.servlet.http, que es una especializacin del paquete anterior para su utilizacin con el protocolo http. Este paquete define la clase HttpServlet que es una extensin de GenericServlet. Asimismo incluye las interfaces HttpServletRequest y HttpServletResponse, que son extensiones de ServletRequest y ServletResponse respectivamente.
27
Comunicaciones - Java
en la presentacin de la informacin, de forma interactiva, prctica y atractiva. La interactividad en la presentacin de la informacin, se basa en la consulta de bases de datos por parte de un software, que hace de intermediario entre el cliente y el sistema que almacena la informacin. A las aplicaciones cliente-servidor que utilizan este tipo de arquitectura, se las denomina aplicaciones de tres capas.
28
Comunicaciones - Java
intermediario hace de puente entre la parte cliente y el servidor de base de datos que posee la informacin
ejecuta un Applet muestra un formulario HTML. Por el otro tendramos una mquina servidora, en la que un software servidor de Web, recibe las peticiones de los clientes, y desencadena la ejecucin del Servlet. Este Servlet trabajara con una base de datos alojada en otro servidor dedicado en exclusiva a esta funcin.
29
Comunicaciones - Java
JDBC
JDBC son las siglas de Java Database Connection, y
se trata de una API JAVA que proporciona una interfaz similar a ODBC para trabajar con bases de datos SQL. JDBC se basa en el X/Open SQL CLI, al igual que el ODBC de Microsoft JDBC no es un lenguaje de interrogacin, sino que simplemente es una interfaz basada en JAVA para trabajar con SQL. Las aplicaciones pueden utilizar JDBC, por ejemplo, para someter sentencias SQL a un sistema gestor de bases de datos. JDBC se encarga de gestionar aspectos tales como conexiones a bases de datos, recuperacin de resultados de las interrogaciones, transacciones, conversiones de tipos SQL a tipos JAVA y viceversa
30
Comunicaciones - Java