Está en la página 1de 30

Modelamiento de aplicaciones Web

Ing. Ralph Palomino Gutierrez

Agenda
Componentes Tecnolgicos J2EE
Applets
Aplicaciones Clientes Java Servlets Java Server Pages(jsp)

Enterprise Java Beans

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

los siguientes mtodos:


init: suele contener instrucciones para inicializar el applet. start: como init, se suele usar para inicializar, pero con la

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

Arquitectura Cliente Servidor

El Modelo Cliente - Servidor


Arquitectura de sistema distribuido

- 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)

La independencia de Java con respecto a la

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

Thin clients (Clientes delgados)


A esta arquitectura se le conoce como thin clients

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

Ejemplo de cliente en Java


El programa EchoTest, conecta con el Echo

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

Ejemplo de cliente en Java (II)


Se esteblece la conexin del socket entre el cliente y el servidor y abre un canal de entrada y un canal de salida sobre el socket
(Se crea el objeto socket)

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

Ejemplo de cliente en Java (III)


El codigo que sigue lee desde el stream de entrada

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

Ejemplo de cliente en Java (IV)


Cuando el usuario teclea un carcter de fin de entrada, el

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

Ejemplo de cliente en Java (V)


Cuando

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

del servidor. 4. Cerrar los Streams. 5. Cerrar el socket.


Slo el paso 3 ser diferente de un cliente a otro,

dependiendo del servidor.Los otros pasos permanecen inalterables.

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

Servidor Web Equipo cliente


Peticion HTTP

Explorador
Respuesta HTTP
21
Comunicaciones - Java

Servlet

Servlets (II) Caracteristicas


Puede comunicarse con otro sevlet para ayudarle en

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

Servlets. Ejemplo (II)


El codigo html sera muy sencillo slo destacar que

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

Servlets. Ejemplo (III)


Cdigo Servlet. Destacar principalmente la utilizacin

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

El API de los Servlets


El API utilizado para la programacin de Servlets incluye

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

Servlets & JDBC


La clave del xito de las mejores pginas Web, reside

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

Arquitectura Cliente-Servidor de tres capas


En una aplicacin cliente-servidor de tres capas, el software

intermediario hace de puente entre la parte cliente y el servidor de base de datos que posee la informacin

Por un lado tendramos una maquina en la que un browser

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

También podría gustarte