Está en la página 1de 15

Operaciones en la capa media

Capitulo 7: Tecnologas de la
Capa Media, Lgica del Negocio.
zArquitectura MVC.

z Ejecucin de Lgica del negocio


Procesamiento de datos.
Validacin de condiciones del proceso.
Control de transacciones.
z Comunicacin con la capa de datos
Peticiones de Datos.
Actualizaciones de datos.
Control del estado de las transacciones.

zOperaciones de la capa media.


zCGI, PHP, Java Servlet y JSP.
zDiseo de la capa media.

TECNOLOGIAS DE INFORMACION Y REDISEO DE PROCESOS

z Comunicacin con la capa de interfase


Recepcin de datos de la capa cliente.
Atencin a las peticiones de operaciones de la capa cliente.
Envo de datos para ser presentados (Rendering)

7- 1

TECNOLOGIAS DE INFORMACION Y REDISEO DE PROCESOS

7- 3

Temario
z Revision de la Arquitectura MVC.
z Operaciones de la capa media.

Diferentes arquitecturas
para la capa media

z CGI, PHP, Java Servlet y JSP.


z Diseo de la capa media.
z CGI

zPagina HTML en la capa media

z Apache Module: PHP

zCGI-BIN

z Java: Servlets, JSP

zApache Modules (PHP)

z Aplicacin de MVC: Construccin de prototipos

zServlet y JSP

Boundary, Controler y Entity.

TECNOLOGIAS DE INFORMACION Y REDISEO DE PROCESOS

7- 2

TECNOLOGIAS DE INFORMACION Y REDISEO DE PROCESOS

7- 4

Procesamiento en la CM:
CGI-BIN

Mecanismo de solicitud de
paginas estticas HTML.

z Mecanismo mas antiguo de procesamiento.


z Todos los servidores implementan el

mecanismo por defecto.

z El Web habla HTML. Qu pasa si deseamos

hacerlo interactuar con datos que estn en


otro formato?
z Surge la idea de hacer un conversor, algo as
como un formateador de datos.
z El formateador puede ser un programa escrito
en algn lenguaje.
z El Web Server controla el flujo de datos de
la pagina al programa, el lenguaje debe
soportar I/O estndar para recibir datos y
enviar la pagina de manera correcta.
TECNOLOGIAS DE INFORMACION Y REDISEO DE PROCESOS

7- 5

TECNOLOGIAS DE INFORMACION Y REDISEO DE PROCESOS

7- 7

CGI: Common Gateway Interface

CGI-BIN: El proceso

CGI (Common Gateway Interface)

z El CGI especifica como se pasan los datos desde el servicio

z
z
z
z

TECNOLOGIAS DE INFORMACION Y REDISEO DE PROCESOS

7- 6

WWW a una aplicacin externa y como se recuperan los


resultados. Como todo en el WWW, la interfaz CGI es simple pero
muy potente.
Servidor ahora EJECUTA un programa.
Le pasa al programa las variables.
El programa responde retornando HTML.
El servidor enva ese HTML.

TECNOLOGIAS DE INFORMACION Y REDISEO DE PROCESOS

7- 8

CGI-BIN: El programa receptor

CGI-BIN: El formulario

z El CGI-BIN se puede escribir en

cualquier lenguaje que soporte


STDIN y STDOUT

Dos mtodos de envo


z Los formularios electrnicos sirven para

typedef struct {
char name[128];
char val[128];
} entry;

recibir datos desde el usuario y almacenarlos


en algn dispositivo.
Un formulario tiene la siguiente estructura:

int m,x;

<form action=url method={Post|Get} >


<input type=... Name=var1>
.......
<input type=submit value=Enviar>
<input type=reset value=Borrar>
</form>

TECNOLOGIAS DE INFORMACION Y REDISEO DE PROCESOS

7- 9

cl = getenv("QUERY_STRING");
for(x=0;cl[0] != '\0';x++) {
m=x;
getword(entries[x].val,cl,'&');
plustospace(entries[x].val);
unescape_url(entries[x].val);
getword(entries[x].name,entries[x].val,'=');

TECNOLOGIAS DE INFORMACION Y REDISEO DE PROCESOS

7- 11

CGI BIN : El Mtodo GET

Llamada CGI

1. El cliente WWW solicita un servicio de una aplicacin CGI.


2. El servidor HTTPD recibe la solicitud y los datos de

entrada.

3. El servidor crea un ambiente y variables con los datos de

entrada.

4. El servidor ejecuta la ampliacin CGI en este ambiente.


5. El CGI procesa las variables de ambiente y recupera los

datos de entrada.

6. La aplicacin CGI se ejecuta produciendo un resultado

sobre su salida estndar.

7. El servidor HTTP redirecciona la salida estndar de la

aplicacin CGI hacia el cliente WWW.

8. El cliente WWW recibe el resultado de su consulta.


TECNOLOGIAS DE INFORMACION Y REDISEO DE PROCESOS

7- 10

TECNOLOGIAS DE INFORMACION Y REDISEO DE PROCESOS

7- 12

Lenguajes de
programacin de CGI (2)

CGI BIN: El Mtodo POST


1. El cliente WWW solicita un servicio de una aplicacin

CGI.

z Perl. Practical Extraction and Report Language

2. El servidor HTTPD recibe la solicitud y los datos de


3.
4.
5.
6.
7.

entrada.
El servidor ejecuta la ampliacin CGI pasndole la
informacin a travs de la entrada estndar.
La aplicacin CGI procesa su entrada estndar y
recupera los datos de entrada.
La aplicacin CGI se ejecuta produciendo un
resultado sobre su salida estndar.
EL servidor HTTP redirecciona la salida estndar de
la aplicacin CGI hacia el cliente WWW.
El cliente WWW recibe el resultado de su consulta.

TECNOLOGIAS DE INFORMACION Y REDISEO DE PROCESOS

es un lenguaje de programacin para la


programacin en sistemas unix.
z Surgi de otras herramientas de UNIX como
son : sed,grep,awk,c-shell.
z Sirve para labores de procesamiento de texto,
para la programacin de software de sistemas
y ahora ltimo para programar aplicaciones
para Web

7- 13

Lenguajes de
programacin de CGI

7- 15

Lenguajes de
programacin de CGI (3)

z El Web Server llama a un CGI creador de una

z C Desde su creacin, soporta la entrada y

pgina Web. Luego toma el cdigo de la pgina


y lo enva al browser que lo solicit.
z Desde un punto de vista funcional, la
transaccin anterior fue un intercambio de
archivos entre dos procesos.
z El intercambio clsico de archivos entre
procesos es a travs de la I/O estndar.
z Entonces, los lenguajes de programacin de
CGI deben soportar I/O
TECNOLOGIAS DE INFORMACION Y REDISEO DE PROCESOS

TECNOLOGIAS DE INFORMACION Y REDISEO DE PROCESOS

salida estndar, por cuanto siempre ha


privilegiado la comunicacin entre procesos
z C++
z Para conectarlos con bases de datos, se han
usado APIS y caractersticas adicionales de los
lenguajes, tales como Pro*C

7- 14

TECNOLOGIAS DE INFORMACION Y REDISEO DE PROCESOS

7- 16

CGI: Ventajas y Desventajas


z Ventajas:
Ejecuta un PROCESO PESADO por cada conexin lo cual lo
hace til para usuarios que requieran de efectuar
grandes procesamientos va web.
Arquitectura primitiva pero simple.
No tiene un lenguaje definido.
Requiere de poca configuracin.
z Desventajas:
Ineficiente para sitios con muchos usuarios conectados
( Memoria y tiempo de procesador).
Se deben manejar muchas cosas de bajo nivel (ej: post,
get)
TECNOLOGIAS DE INFORMACION Y REDISEO DE PROCESOS

7- 17

Mdulos de Apache: PHP,


the revolution is comming.
El prximo paso lgico a los CGI.

TECNOLOGIAS DE INFORMACION Y REDISEO DE PROCESOS

7- 19

El ciclo de vida de un CGI

PHP: Hypertext Pre-Procesor

1 proceso por cliente

HTML

<?
PHP

print(hola);
?>

TECNOLOGIAS DE INFORMACION Y REDISEO DE PROCESOS

7- 18

TECNOLOGIAS DE INFORMACION Y REDISEO DE PROCESOS

7- 20

PHP: como modulo de apache

PHP: Caractersticas Bsicas


z Fcil de aprender. En 2 semanas aprendizaje se

Apache

Recibe las
variables

Solicitud
de un PHP

pueden lograr aplicaciones Web con uso de bases


de datos.
z No tiene tipos de datos. Se puede hacer hola+1
sin arrojar errores.
z Software Libre.
z Programas son textos.
z Al encontrarse como mdulo de apache se evita el
overhead que significa levantar un nuevo proceso
en el caso de los CGI. (=mas liviano que un CGI)
z Apache adems provee de un manejo de sessiones.
(CGI no tiene un manejo directo de ellas)

INTERNET
INTERNET

Imprime HTML

Thread apache
Interpretando (VM) PHP
TECNOLOGIAS DE INFORMACION Y REDISEO DE PROCESOS

7- 21

TECNOLOGIAS DE INFORMACION Y REDISEO DE PROCESOS

7- 23

PHP: Desventajas

PHP: El proceso

z Grandes cantidades de clientes, como sitios de e-

commerce muy solicitados pueden sobrecargar al


servidor. (miles de conexiones por minuto)
z Se puede buscar mejorar la situacin por el lado de
un balanceador de carga u optimizaciones del
software (compilar php, cache del interprete, ).
z PHP como lenguaje no restringe al programador a un
esquema ordenado y OO. Aunque si lo soporta.
z No tiene garanta.

TECNOLOGIAS DE INFORMACION Y REDISEO DE PROCESOS

7- 22

TECNOLOGIAS DE INFORMACION Y REDISEO DE PROCESOS

7- 24

Ciclo de vida de PHP


Servidor
Proceso Principal
Request 1
Proceso 1
Request 2
Proceso 2

Mas livianos que


Un proceso normal

Request 3
Proceso 3

Java en el Servidor: Servlet


y JSP.
La orientacin al objeto en la capa media.

TECNOLOGIAS DE INFORMACION Y REDISEO DE PROCESOS

7- 25

TECNOLOGIAS DE INFORMACION Y REDISEO DE PROCESOS

7- 27

Sesiones
z Conjunto de datos asociados a cada cliente conectado.

De forma de distinguir entre ellos.

hola

#session=1
comprar
#session=2

#session=3
Session Dato
1
2
3
4

Hola
Comprar
Salir
Vender

salir

#session=4

TECNOLOGIAS DE INFORMACION Y REDISEO DE PROCESOS

vender

7- 26

Java en el Servidor: Servlets


zFuncionamiento
Se instalan los programas en un
Servidor Web que Soporte este tipo
de Aplicacin
Se conectan los clientes en la URL del
Servlet
Ejecuta distintos mtodos segn el
tipo de requerimiento (GET, POST,
PUT, etc.)
Devuelve una pgina HTML normal.
TECNOLOGIAS DE INFORMACION Y REDISEO DE PROCESOS

7- 28

Java en el Servidor: Servlets (5)

Java en el Servidor: Servlets (2)


z Aspectos Destacables

z Aplicaciones Tpicas

El

Servlet permite manejar en forma


separada cada tipo de Peticin
Tiene un manejo muy eficiente de los
threads
Permite manejo de Sesiones
Genera Pginas HTML legibles por
cualquier Browser
TECNOLOGIAS DE INFORMACION Y REDISEO DE PROCESOS

Interaccin
Aplicaciones

con Base de Datos


Transaccionales

E-business
etc.

7- 29

TECNOLOGIAS DE INFORMACION Y REDISEO DE PROCESOS

7- 31

Servlets
Java en el Servidor: Servlets (4)
zSon aplicaciones del lado del

z Aspectos Destacables (cont.)

servidor construidas en Java


zSon equivalentes a los CGI.
zAl usarlos con una base de datos,
generan una sola conexin y
atienden a los clientes a travs de
thread.

Permite

el desarrollo de aplicaciones
utilizando Java, visibles desde
cualquier Browser
Cualquier modificacin del cdigo se
actualiza automticamente
Permite el desarrollo de aplicaciones
realmente escalables

TECNOLOGIAS DE INFORMACION Y REDISEO DE PROCESOS

7- 30

TECNOLOGIAS DE INFORMACION Y REDISEO DE PROCESOS

7- 32

Qu son los Servlets ?

Qu son los Servlets ?

z Ventajas sobre los CGI


Construidos en Java
Ms ordenados
Amplio Soporte del Mercado
Excelente Manejo de Procesos
Cada conexin se maneja como un proceso liviano
Utilizacin de Recursos
Pueden compartir recursos para todos los
proceso

TECNOLOGIAS DE INFORMACION Y REDISEO DE PROCESOS

7- 33

TECNOLOGIAS DE INFORMACION Y REDISEO DE PROCESOS

7- 35

Ciclo de Vida de un Servlet


(Modelo Request/Response)

Qu son los Servlets ?

zInicializacin
Se

realiza cuando el primer cliente


hace una peticin del Servlet
Se define mediante el mtodo init
Se pueden especificar parmetros de
configuracin

Se pueden definir variables que son


visibles para cualquier proceso de
manejo de peticiones

TECNOLOGIAS DE INFORMACION Y REDISEO DE PROCESOS

7- 34

TECNOLOGIAS DE INFORMACION Y REDISEO DE PROCESOS

7- 36

Ciclo de Vida de un Servlet (2)


zManejo de Peticin
Para cada cliente que hace una
peticin del Servlet, se crea un
proceso que lo maneja
Se ejecutan distintos mtodos
segn el tipo de peticin
Peticin GET (URLs): mtodo doGet
Peticin POST (Formularios): mtodo

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloWorld extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
res.setContentType("text/html");
PrintWriter out = res.getWriter();
out.println("<HTML>");
out.println("<HEAD><TITLE>Hello World</TITLE></HEAD>");
out.println("<BODY>");
out.println("<BIG>Hello World</BIG>");
out.println("</BODY></HTML>");
}
}

doPost

Peticin PUT (Upload): mtodo doPut


TECNOLOGIAS DE INFORMACION Y REDISEO DE PROCESOS

Ciclo de Vida de un Servlet (2)

7- 37

Ciclo de Vida de un Servlet (2)

TECNOLOGIAS DE INFORMACION Y REDISEO DE PROCESOS

7- 39

Ciclo de Vida de un Servlet (3)


zDestruccin
Se ejecuta cuando se baja el
servidor de Aplicacin
Antes el servidor llama el mtodo
destroy
Sirve para realizar operaciones de
finalizacin de la aplicacin para
evitar corrupcin (desconexin de
la BD, eliminacin de archivos, etc.)

TECNOLOGIAS DE INFORMACION Y REDISEO DE PROCESOS

7- 38

TECNOLOGIAS DE INFORMACION Y REDISEO DE PROCESOS

7- 40

10

Objeto Request

Objeto Response (2)

zObjeto que contiene la informacin

z El contenido se maneja mediante

relacionada con la peticin que


realiza el cliente
Parmetros
Cookies.

PrintWriter, que se obtiene con el


mtodo getWriter()

del Formularios HTML.

El

contenido se agrega con el mtodo


print() o println() sobre el PrintWriter

Sesiones.
Tipo

MIME de la peticin
del Browser

Informacin

TECNOLOGIAS DE INFORMACION Y REDISEO DE PROCESOS

7- 41

Objeto Response

7- 43

Objeto Response (3)


zPrintWriter (cont)
Por ejemplo

zObjeto que contiene la informacin

que ser enviada al cliente

public void doGet(HttpServletRequest


request, HtttpServletResponse
response) {
...
PrintWriter out =
response.getWriter();
out.println(Hello world!);
...
}

Cdigo

HTML a enviar.
Cookies a setear.
Tipo MIME de la respuesta.

TECNOLOGIAS DE INFORMACION Y REDISEO DE PROCESOS

TECNOLOGIAS DE INFORMACION Y REDISEO DE PROCESOS

7- 42

TECNOLOGIAS DE INFORMACION Y REDISEO DE PROCESOS

7- 44

11

Manejo de Sesiones
Objeto Response (4)
zPrintWriter (cont)

z Se realiza mediante el objeto

HttpSesion

Se

debe ejecutar el mtodo close


de PrintWriter el terminar el
mtodo
Permite que se enve efectivamente el

Se

obtiene del objeto Request, con el


mtodo getSession()
Se puede asignar cualquier objeto al
objeto HttpSesion, que podr ser visto
por cualquier otro mtodo de manejo de
peticiones (mientras dure la sesin)

contenido

Si no se ejecuta por lo general no se ve


nada en el browser

TECNOLOGIAS DE INFORMACION Y REDISEO DE PROCESOS

7- 45

Objeto Request y Response

import java.io.*; import javax.servlet.*; import javax.servlet.http.*;


public class Hello extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse
res)
throws ServletException, IOException {
res.setContentType("text/html");
PrintWriter out = res.getWriter();
String name = req.getParameter("name");
out.println("<HTML>");
out.println("<HEAD><TITLE>Hello, " + name +
"</TITLE></HEAD>");
out.println("<BODY>");
out.println("Hello, " + name);
out.println("</BODY></HTML>");
}
}
TECNOLOGIAS DE INFORMACION Y REDISEO DE PROCESOS

7- 46

TECNOLOGIAS DE INFORMACION Y REDISEO DE PROCESOS

7- 47

Modelo Request/Response
ServletContext
ServletRequest
g etParame ter()
g etContentType()

HttpServletRequest

GenericServlet
ServletResponse
ini t()
se rvice()
de stroy()
ge tServletContext()

getAttribute()
getInitParameter()

getWriter()
setContentType()

HttpServlet

PrintWriter
HttpServletResponse

getSession()
getCookies()
getHeader()

HttpSession
getAttribute()
setAttribute()

doPost()
doGet()
doPut()

addCookie()

print()
println()

Cookie
getName()
getValue()

TECNOLOGIAS DE INFORMACION Y REDISEO DE PROCESOS

7- 48

12

Ciclo de vida Servlet


TAREA
Primer requerimiento
del URL

Primer
despliegue

doPost
doGet
doPut

INIT

Contenedor de
Servlet
(Threads)

z Confeccione el diagrama de secuencia usando

las clases de la API Servlet.

Requerimientos
posteriores del URL
Fin de ejecucin

DESTROY

Apagado del
servidor

TECNOLOGIAS DE INFORMACION Y REDISEO DE PROCESOS

7- 49

TECNOLOGIAS DE INFORMACION Y REDISEO DE PROCESOS

7- 51

Servlet: El Proceso

Solucin Transaccional
zA travs de los servlets es posible

construir sistemas de alto


rendimiento y en entornos
transaccionales
zLa posibilidad de manejar objetos
comunes permite una mxima
utilizacin de recursos, como por
ejemplo conexiones a la Base de
Datos
TECNOLOGIAS DE INFORMACION Y REDISEO DE PROCESOS

7- 50

TECNOLOGIAS DE INFORMACION Y REDISEO DE PROCESOS

7- 52

13

JSP: Java Server Page

Solucin Transaccional (2)


z Su esquema de manejo de procesos es

HTML

muy superior a otras tecnologas


desarrolladas para este tipo de
aplicaciones
z Existe un gran soporte del mercado, de
forma que existen interfaces para casi
la totalidad de los sistemas comerciales
que estn en operacin

TECNOLOGIAS DE INFORMACION Y REDISEO DE PROCESOS

<%=hola

%>

Java

7- 53

TECNOLOGIAS DE INFORMACION Y REDISEO DE PROCESOS

7- 55

JSP: Java Server Page

JSP: Java como si fuera php


O una variante de incorporar a un servlet
en el HTML

TECNOLOGIAS DE INFORMACION Y REDISEO DE PROCESOS

7- 54

TECNOLOGIAS DE INFORMACION Y REDISEO DE PROCESOS

7- 56

14

JSP: Java Server Page

Preguntas tpicas

zcuando usar jsp vs servlet?


Jsp: su fuerte es el manejo de interfase
dinmica en el servidor. Puede ser editado en
dreamweaver por ejemplo.
Servlet: Lgica de negocio.
Jsp: Mas rpido de implementar, pero
menos estructurado.
Servlet: Mas lento de implementar por la
estructuracin OO a realizar.

request: HttpServletRequest object


response: HttpServletResponse object
out: PrintWriter object
in:BufferedReader object

TECNOLOGIAS DE INFORMACION Y REDISEO DE PROCESOS

7- 57

TECNOLOGIAS DE INFORMACION Y REDISEO DE PROCESOS

7- 59

JSP:
Java Server Page
<HTML>

<HEAD>
<TITLE>Hello</TITLE>
</HEAD>
<BODY>
<H1>
<%
if (request.getParameter("name") == null) {
%>
Hello World
<% } else { %>
Hello,
<%= request.getParameter("name") %>
<% } %>
</H1>
</BODY>
</HTML>

TECNOLOGIAS DE INFORMACION Y REDISEO DE PROCESOS

7- 58

15

También podría gustarte