Sei sulla pagina 1di 123

Introduccin al desarrollo

de aplicaciones Web
Csar Fernndez Acebal
Universidad de Oviedo
www.cfacebal.com
acebal@ieee.org

Arquitectura Web en aplicaciones empresariales
basadas en tecnologa Java/J2EE
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
2
ndice
Introduccin a Internet y el Web
HTTP, HTML, URL, servidores Web
Introduccin a las pginas dinmicas
CGI, ASP, JSP y Servlets, etc.
Mantenimiento de la sesin del usuario
Servidores de aplicaciones
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
3
Introduccin a Internet y el Web
El Web es una vasta coleccin de documentos en Internet
que estn enlazados a travs de los hiperenlaces


Internet: millones de ordenadores conectados
Un conjunto de redes heterogneas
conectadas entre s mediante el protocolo
TCP/IP
Los hiperenlaces permiten a los usuarios acceder a
documentos situados en otros servidores Web, sin
preocuparse de su ubicacin
Tecnologas clave de Internet
Veamos una somera introduccin a las tecnologas
fundamentales sobre las que se sustenta Internet,
que sern tiles para comprender posteriormente
algunas de las dificultades intrnsecas del
desarrollo de aplicaciones Web.
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
5
Tecnologas claves de Internet
La infraestructura de Internet es proporcionada
fundamentalmente por tres tecnologas:
La conmutacin de paquetes
El protocolo TCP/IP
La arquitectura cliente/servidor
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
6
Conmutacin de paquetes
Consiste en dividir un mensaje en trozos denominados paquetes, enviar
stos por diferentes caminos y ensamblarlos una vez que lleguen a su
destino para recomponer el mensaje original.
Surge como respuesta a las redes de conmutacin de
circuitos, como la telefnica
El primer libro sobre esta tecnologa data de 1964 (Leonard
Kleinrock) y luego fue desarrollada por otros en laboratorios
de investigacin de Estados Unidos e Inglaterra
Con la conmutacin de paquetes, la capacidad de una red (su
ancho de banda) se incrementa en un factor de 100 o ms

Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
7
Conmutacin de circuitos
Era la que usaban las primeras redes de
ordenadores, a imagen y semejanza de la telefnica
En ellas, se establece una comunicacin punto a
punto entre ambos extremos mientras tiene lugar la
comunicacin
Existe un canal dedicado entre ambos, independientemente
de los datos que se estn enviando
Problemas:
Ineficiente
Poco fiable
(Si se corta el canal, se interrumpe la conexin)
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
8
Ejemplo de conmutacin de circuitos
Telefnica
Telecable
Una vez establecido el circuito,
es siempre el mismo durante
toda la conexin.
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
9
Conmutacin de paquetes
Es la tecnologa que emplea la red Internet
Los mensajes se dividen en paquetes
A cada paquete se le aaden la direccin de origen y destino, el nmero de
secuencia, informacin de control de errores
En vez de enviarse directamente a la direccin de destino, los
paquetes viajan de una mquina a otra hasta alcanzar su
destino
Estas mquinas se denominan routers
Ordenadores que interconectan las diferentes subredes y que son capaces de
encaminar los paquetes de una a otra
Para asegurar que siguen la mejor ruta disponible, utilizan programas
llamados algoritmos de encaminamiento (routing algorithms)
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
10
Ejemplo
La heroica ciudad dorma la siesta.
Origen
192.168.1.1
Destino
10.0.0.1
N de bytes
144
N de paquetes
4
Posicin
1
Datos
La heroica
Origen
192.168.1.1
Destino
10.0.0.1
N de bytes
144
N de paquetes
4
Posicin
2
Datos
ciudad do
Origen
192.168.1.1
Destino
10.0.0.1
N de bytes
144
N de paquetes
4
Posicin
3
Datos
rma la si
Origen
192.168.1.1
Destino
10.0.0.1
N de bytes
139
N de paquetes
4
Posicin
4
Datos
esta.
El mensaje original a
transmitir se divide en cuatro
paquetes, con cierta
informacin de control
adicional que permita su
reconstruccin en el destino.
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
11
Ventajas de la conmutacin de
paquetes
Al no tener un circuito dedicado, puede hacer uso en
cada momento de cualquiera de las rutas
disponibles
Hace uso de casi la totalidad del ancho de banda disponible
Casi la totalidad porque es necesario incluir informacin de control,
que no formara parte del mensaje en s a transmitir
Si algunas lneas estuvieran cadas o demasiado ocupadas,
los paquetes se envan por otra de las disponibles
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
12
TCP/IP
Si bien la conmutacin de paquetes supuso un gran
avance en la capacidad de las redes de
comunicaciones, era necesario implementar el modo
de llevarla a cabo
Eso es de lo que se encargan los protocolos TCP/IP
Transmission Control Protocol (TCP)
Internet Protocol (IP)
Un protocolo es un conjunto de reglas para formatear, ordenar
y comprimir mensajes, comprobar errores, etc.
Pueden ser implementados por hardware o por software
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
13
Cuatro capas
La familia de protocolos TCP/IP se divide en cuatro capas:
La capa de red es la de ms bajo nivel
Representa el medio fsico encargado de enviar en ltima instancia los 0 y 1
que componen cada mensaje
Diversas tecnologas: Ethernet, ATM
La capa de Internet es donde se sita el protocolo IP
Esquema de direcciones, encaminamiento de los mensajes
En la capa de transporte est TCP
Enva acuses de recibo, reagrupa el mensaje en destino, vuelve a mandar los
paquetes perdidos o defectuosos
Por ltimo, en la capa de aplicacin estn los programas que hacen uso
de los servicios proporcionados por las capas inferiores
HTTP (HyperText Transfer Protocol), FTP (File Transfer Protocol), SMTP
(Simple Mail Transfer Protocol)
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
14
Arquitectura de TCP/IP
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
15
Encaminamiento de paquetes con
TCP/IP
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
16
Direcciones IP
Cada ordenador conectado a Internet debe tener una
direccin para poder recibir los paquetes TCP
sta puede ser:
Esttica
Fija, siempre la misma
Dinmica
Por ejemplo, cada vez que nos conectamos a Internet con un mdem telefnico,
nuestro proveedor de Internet (ISP, Internet Service Provider) nos asigna una
direccin temporal
Las direcciones IP son nmeros de 32 bits separados en
cuatro partes (por ejemplo, 156.35.94.5)
Cada uno va de 0 a 255; esto nos da un total de 2
32
direcciones (algo ms
de cuatro mil millones)
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
17
IPv6
El problema es que con cada vez ms y ms
dispositivos conectados, este esquema de
direcciones est cercano a quedarse pequeo
Por ello, se est desarrollando una nueva versin,
denominada IPv6 para sustituir a la actual (IPv4), que
con 128 bits podr tener 3,4 10
38
direcciones
Adems, mejora otras deficiencias de IPv4
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
18
Nombres de dominio y URL
Para no tener que recordar direcciones IP tal cual,
stas pueden ser representadas mediante nombres
de dominio (por ejemplo, www.euitio.uniovi.es)
El sistema de nombres de domino (DNS) permite que
stas se resuelvan a direcciones IP
Ejemplo: ping www.euitio.uniovi.es
Los URL (Uniform Resource Locator) son las
direcciones que escribimos en el navegador
Como http://www.euitio.uniovi.es/

Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
19
Computacin Cliente/Servidor
En este modelo de computacin distribuida, un cliente
solicita una accin a un servidor, que le devuelve los
resultados
Puede haber diversos tipos de clientes, desde los ms ligeros (como un
navegador Web, que nicamente es capaz de mostrar documentos HTML)
hasta clientes pesados que tambin realizan procesamiento
Surgen como respuesta a los mainframes de los 60 y 70 (con
128 KB de RAM y y discos duros de 10 MB)
Despega este modelo con el advenimiento de los ordenadores
personales
Toda Internet es una inmensa red cliente/servidor
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
20
Esquema Cliente/Servidor

Introduccin al Web
Ahora, veremos los principios bsicos del
World Wide Web (WWW o Web, a secas):
lenguajes, protocolos, servidores y clientes,
etctera.
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
22
Internet Web
Internet permite a cualquier ordenador del mundo
compartir datos con otro ordenador remoto
Un programa cliente en un ordenador accede a un programa
servidor en otro ordenador remoto
El Web es el sistema de hipertexto que funciona sobre
Internet como uno de sus servicios
En este caso, el programa cliente es nuestro navegador, y el
servidor el programa que hace de servidor Web que est
ejecutndose en el ordenador remoto y que se encarga de
entregar el documento solicitado a nuestro navegador
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
23
Nacimiento del World Wide Web
En 1989, Tim Berners-Lee, en el laboratorio
europeo de partculas (CERN), en Suiza, crea
un lenguaje de etiquetas para representar y
enlazar documentos
HTML HyperText Markup Language
Lenguaje de Marcado de Hipertexto
Berners-Lee cre las versiones iniciales de:
HTML, HTTP, un servidor Web y un navegador
Los cuatro componentes esenciales del Web
Tim Berners-Lee
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
24
Esquema general Cliente/Servidor
Servidor
Red
Peticin
Respuesta
Cliente
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
25
Visin general del Web
Internet
index.html
www.cfacebal.com
www.aafunky.com
enlace
El usuario teclea
http://www.cfacebal.com/ en su
navegador
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
26
Visin general del Web
1. El usuario solicita un documento tecleando su direccin en el
navegador: http://www.uniovi.es
Es lo que se denomina un URL (localizador uniforme de recursos)
2. El cliente busca en el DNS cul es la IP de www.uniovi.es:
156.35.14.3
Cada ordenador en Internet est identificado por una direccin nica
denominada IP
El DNS traduce de nombres lgicos a direcciones fsicas
3. Navegador y servidor web comienzan un dilogo a travs del
protocolo HTTP (protocolo de transferencia de hipertexto)
1. GET /HTTP/1.0
2. El servidor, si todo es correcto, devuelve el documento solicitado ms
informacin adicional
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
27
Visin general del Web
4. El navegador mira el tipo de documento devuelto (MIME)
5. Si es text/html es un documento HTML, lo visualiza el propio
navegador
6. Si es otro tipo de documento se ejecutar el programa que
tenga asociado, o nos preguntar si queremos guardar el
documento en nuestro ordenador
Nota: estos tipos MIME los podemos configurar en nuestro navegador
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
28
Funcionamiento del Web
Tecleamos una direccin en
el navegador (por ejemplo,
www.euitio.uniovi.es)
ste enva una peticin al servidor Web
Quien devuelve la pgina
solicitada (en este caso, la
index.html del directorio raz)
Y el navegador se
encarga de interpretar
el cdigo HTML y
mostrar el resultado
HTTP
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
29
Funcionamiento del Web
Un servidor Web es un ordenador en Internet que
sirve pginas Web a peticin
Para ello, debe tener un programa ejecutndose que haga de
servidor Web: Apache, IIS, etctera
El usuario accede al Web a travs de un navegador
(browser)
Se encarga de solicitar las pginas Web al servidor y de
mostrarlas
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
30
HTML
Es el lenguaje de creacin de pginas Web
Al menos, de las pginas estticas
Era imprescindible que la misma informacin se
pudiese ver en diferentes plataformas
Por tanto, Berners-Lee dise un lenguaje de
estructuracin de documentos, no de presentacin
(sta se dejaba al programa cliente)
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
31
HTML es un lenguaje
Como tal, tiene unas reglas que deben ser
cumplidas, esto es, una sintaxis, una gramtica...
igual que el espaol o cualquier otro lenguaje
informtico
Es adems un lenguaje informtico, para ser
procesado por ordenadores; pero no es un lenguaje
de programacin
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
32
Por qu de marcado ?
Qu vemos de un vistazo en el siguiente texto?
Acme Computer Corp.
Acme Computer Corporation is a technology-based company that seeks to offer
its customers the latest in technological innovation. Our products are created
using the latest breakthroughs in computers and are designed by a team of top-
notch experts.
We are based in Acmetown, USA, and have offices in most major cities around
the world. Our goal is to have a global approach to the future of computing.
Have a look at our product catalog for some examples of our innovative
approach.
Que tiene un ttulo y dos prrafos
Pero un ordenador slo vera un montn de caracteres
Necesitamos un modo de indicarle la estructura del documento
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
33
HTML, lenguaje de hipertexto
Por hipertexto designamos al texto al que se le aade
una propiedad: determinadas porciones de texto
pueden ser enlazadas a otros documentos
De ah surge el concepto de navegacin: surcamos el
Web yendo de unos enlaces a otros
El hipertexto debe ser utilizado en los sitios web para
facilitar al usuario la labor de bsqueda de la
informacin
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
34
Qu necesitamos para crear un
documento HTML?
Un editor de texto
Ojo!, no un procesador de textos tipo el Word, por ejemplo
Debe ser texto plano, sin formato (p. ej., con el Bloc de Notas)
Le daremos la extensin .html o .htm, y un nombre
sin espacios ni caracteres especiales
Nota: ninguna de las dos caractersticas son obligatorias, pero
nos ahorrarn problemas
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
35
Y para verlo?
Un programa cliente que entienda lenguaje HTML
(que pueda visualizar de alguna manera documentos
HTML)
Tcnicamente, recibe el nombre de HTML User Agent
Un ejemplo de agente de usuario son los
navegadores (literalmente, hojeadores) Web (Web
Browsers)
El navegador es quien se encarga de la presentacin
del documento (el estndar no especifica cmo debe
visualizarse cada elemento)
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
36
Especificacin de HTML
La especificacin del lenguaje HTML y de la mayora
de tecnologas relacionadas con el Web est definida
por el World Wide Web Consortium (W3C)
www.w3c.org
Nota: Ahora, HTML ha dado lugar a una variacin del
mismo denominada XHTML


Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
37
Ejemplo de documento HTML
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Introduccin a HTML</title>
</head>
<body>
<h1>Mi primera pgina Web</h1>
<p>
ste es el equivalente al tpico <em>Hola, mundo!</em>
pero en HTML (cuya <a href="http://www.w3.org/MarkUp/"
title="Especificacin de las distintas versiones de
HTML y XHTML en el W3C">especificacin</a> puede encontrarse
en el sitio Web del
<acronym title="World Wide Web Consortium">W3C</acronym>).
</p>
</body>
</html>

holaMundo.html
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
38
HTTP
HTTP (HyperText Transform Protocol) es el protocolo
usado para transferir pginas Web
Es el modo en que un navegador se comunica con un servidor
Web (Apache, Internet Information Server)
Es un protocolo sin estado
La sesin termina en cuanto se devuelve el objeto solicitado
Incluso, si una pgina contiene otros objetos (imgenes, frames, etc.)
cada uno de ellos inicia una nueva peticin HTTP
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
39
Pero y TCP/IP?
No era TCP/IP el conjunto de protocolos sobre los que
sustenta Internet? Qu es eso de HTTP?
La comunicacin entre el navegador y el servidor web se realiza mediante
HTTP
La transmisin efectiva de informacin la controla TCP/IP
TCP/IP
HTTP HTTP
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
40
Ejemplo de mensaje HTTP
GET / HTTP/1.0 >
>
<
HTTP/1.0 200 OK <
Date: Wed, 18 Sep 1996 20:18:59 GMT <
Server: Apache/1.0.0 <
Content-type: text/html <
Content-length: 1579 <
Last-modified: Mon, 22 Jul 1996 22:23:34 GMT <
<
HTML document
Respuesta
Peticin
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
41
URL
URI: Uniform Resource Identifier
URL: Uniform Resource Locator
Un URL es la direccin nica de todo
documento en el Web
http://www.eutio.uniovi.es/
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
42
Sintaxis de un URL
Ejemplos:
http://www.princast.es/
http://195.55.30.17/
http://www.cfacebal.com/
http://www.cfacebal.com/index.html
http://web.uniovi.es/Vicerrectorados/Extension/
http://localhost:8080/
http://petra.euitio.uniovi.es/

protocolo://direccin[:puerto]/directorio/fichero
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
43
Protocolo
Un protocolo define el modo en que se comunican
dos ordenadores para llevar a cabo alguna tarea
Protocolo del Web:
HTTP (HyperText Transfer Protocol)
Especifica cmo tiene lugar el dilogo entre el navegador y el
servidor para conseguir el fichero especificado
No se ocupa del transporte en s: TCP
Cada vez que tecleamos una direccin o pulsamos
un enlace el navegador se comunica va HTTP con el
servidor Web indicado
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
44
Ejemplos de protocolos
file Permite acceder a un fichero en el sistema de
ficheros local
ftp File Transfer Protocol
http Pginas Web
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
45
Direccin del sitio
Suele ser un nombre simblico: nombre de dominio
www.uniovi.es especifica una mquina llamada www en el
dominio uniovi.es
El nombre de mquina puede ser cualquiera
www no es ms que un convenio para especificar aquellas mquinas
que son servidores Web
como ftp suele designar a los servidores de FTP
incluso aunque muchas veces se trate de la misma mquina
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
46
Direccin del sitio
Tambin podra ser directamente la direccin IP
http://156.35.14.3/
Los nombres de dominio no distinguen entre
maysculas y minsculas
http://www.uniovi.es/
http://WWW.UNIOVI.ES/
http://wWw.UniOvi.es/
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
47
Directorio
Hay que indicar la ruta hasta el fichero deseado
Como mnimo, debe ir la barra (/)
http://www.uniovi.es/
Si no la ponemos, la pone el navegador por nosotros
...pero en los enlaces en HTML s debe aparecer
Tambin se puede indicar un subdirectorio:
http://www.uniovi.es/Vicerrectorados/Postgrado_TitulosPropios/doctorado/
Siempre se usa la barra /, no \ (incluso aunque el servidor Web sea una
mquina Windows: est definido por el estndar URI, no depende del SO)
La ruta s puede diferenciar entre maysculas y minsculas
(si el servidor Web es, por ejemplo, una mquina Unix)
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
48
Nombre del fichero
Depende del SO del servidor Web
Las pginas Web generalmente tienen como extensin .html
o .htm
Las extensiones son importantes para que el navegador sepa
cmo tratar un fichero
un .html, lo interpreta y lo muestra
un .jpg, trata de mostrar la imagen
un .doc, abre el Word si lo tenemos instalado
etctera
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
49
Nombre del fichero
Si no se especifica, el servidor busca un fichero con
un nombre determinado en el directorio especificado
Normalmente, el index.html o el index.htm
Se puede configurar el el programa que utilicemos como
servidor Web (Apache, IIS...)
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
50
Puerto
Por omisin, una peticin HTTP se dirige al puerto 80
Por eso casi nunca la especificamos
Pero se podra configurar el servidor Web para que
escuchase peticiones en otro puerto
En ese caso, hay que indicarlo explcitamente:
http://www.midominio.com:8080/
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
51
Qu es un servidor Web?
Un programa que atiende las peticiones HTTP
llegadas a un puerto determinado de la mquina
Tambin se denomina as, por extensin, a la mquina que
cuenta con uno de tales programas
Ejemplos de servidores Web:
Apache
Apache HTTP Server Project
http://httpd.apache.org/
Internet Information Server (IIS)
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
52
Descarga de Apache
La versin actual es la 2.0.48
Direccin de descarga:
http://httpd.apache.org/download.cgi
Ah podemos obtener tanto los fuentes para Unix o Windows
(que habr que compilar) como un programa de instalacin
para Windows (Win32 Binary)
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
53
Instalacin de Apache (Windows)
Opciones de instalacin:
Como servicio en el puerto 80
Para ser arrancado manualmente (puerto 8080)
No da conflictos con otro servidor Web que ya pudiramos tener
instalado en el puerto 80
No requiere ningn privilegio de administracin de Windows
Por no ser instalado como servicio
Por estar en un puerto superior al 1024
Dominio, direccin del servidor y correo del administrador
Directorio de instalacin
C:/Apache
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
54
Ejecucin
Una vez finalizada la instalacin, hay que ejecutar Apache
manualmente
c:/Apache/Apache2/bin/Apache.exe
Ahora, ya podemos comenzar a solicitarle pginas
Nuestra mquina ya puede actuar como servidor Web
Aunque en local; si quisiramos que funcionase a travs de la red, habra que
crear un usuario para Apache y darle los permisos necesarios
Para probar si funciona, tecleamos en el navegador:
http://localhost:8080/ o http://127.0.0.1:8080/
Deber aparecer la pgina siguiente:

Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
55
Pgina de prueba de la instalacin
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
56
Qu hace un servidor Web cuando
recibe una solicitud?
Si el ltimo elemento del URL es un fichero:
Si se incluye una ruta de directorios, lo buscar a partir del
indicado en la directiva DocumentRoot
Por omisin, es el directorio htdocs dentro del directorio de
instalacin de Apache
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
57
Qu hace un servidor Web cuando
recibe una solicitud?
En el caso de que el ltimo elemento del URL sea un
directorio, sin especificar el fichero:
Si en dicho directorio existe un fichero index.html (o lo que
se especifique en DirectoryIndex), se devolver ste
Si no existe dicho fichero, y siempre y cuando est habilitada
la opcin Options Indexes) se har un listado del directorio
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
58
ndice
Introduccin a Internet y el Web
HTTP, HTML, URL, servidores Web
Introduccin a las pginas dinmicas
CGI, ASP, JSP y Servlets, etc.
Mantenimiento de la sesin del usuario
Servidores de aplicaciones
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
59
Pginas estticas
Al principio, el Web estaba poblado nicamente por pginas
estticas
El servidor Web simplemente localizaba el documento solicitado en el URL
y se lo entregaba al cliente
Este enfoque puede ser perfectamente vlido para muchos
sitios
Siempre y cuando no requieran actualizaciones continuas, ya que hay que
eso implica o bien modificar, a mano, las pginas existentes, o bien crear
una nueva
Pero no permitira, por ejemplo, crear un sitio de comercio
electrnico donde se pueda comprar, o el de un banco
Es necesario acceder a datos en el servidor y crear una pgina a peticin
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
60
Funcionamiento de las pginas
estticas
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
61
Funcionamiento de las pginas
dinmicas
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
62
Modo de funcionamiento
El esquema de funcionamiento de las pginas
dinmicas es siempre similar independientemente de
en qu se hayan desarrollado stas
CGI, ASP, Servlets/JSP
El servidor Web detecta una peticin de una pgina
dinmica y se la pasa al programa necesario
Podra ser una extensin del servidor
O bien un programa completamente independiente
ste programa es quien sabe cmo interpretar el
cdigo de la pgina para devolver el HTML apropiado
CGI
CGI fue la primera tecnologa que permiti
crear pginas dinmicas, que realizaban
algn tipo de procesamiento en el lado del
servidor.
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
64
CGI: Common Gateway Interface
Es un estndar que permite el intercambio de
informacin entre servidores Web y programas
externos
As, mientras que un documento HTML es esttico
(un fichero de texto que no cambia), un programa
CGI permite mostrar informacin dinmica, al
ejecutarse
Por ejemplo, puede hacer una consulta a una base de datos
ubicada en el servidor y mostrar los resultados en HTML
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
65
Introduccin

El usuario, por
ejemplo, rellena un
formulario y pulsa el
botn de enviar
HTTP
Los datos del
formulario son
enviados va HTTP
El servidor
Web invoca
al programa
CGI
pasndole los
parmetros
recibidos
/cgi-bin/buscar.cgi?texto=web standards
Y ste devuelve
el resultado al
servidor por
medio de la
salida estndar
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
66
Cmo obtiene el programa los
datos necesarios?
Hay dos formas posibles en que el servidor Web
puede pasarle los datos al programa CGI:
Mediante las variables de entorno
Mediante la entrada estndar (stdin)
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
67
Variables de entorno
La tabla siguiente muestra alguna de las variables de
entorno:
(Puede verse una lista completa en
http://hoohoo.ncsa.uiuc.edu/cgi/env.html)
Variable Descripcin
SERVER_NAME
El nombre del servidor o su direccin IP
QUERY_STRING
La informacin que sigue al ? en el URL que referencia a
este programa
CONTENT_LENGTH
Para consultas que llevan asociada informacin (por
ejemplo, las hechas mediante POST), el tamao en bytes
de dicha respuesta
PATH_INFO


Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
68
Acceder a las variables de entorno
La forma de acceder al contenido de dichas variables
desde el programa CGI vara dependiendo del
lenguaje en que haya sido escrito
Por ejemplo, a continuacin se muestra cmo acceder al valor
de la variable SERVER_NAME en C y en Perl:

C
getenv("SERVER_NAME")
Perl
$ENV{'SERVER_NAME'}
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
69
Ejemplo
El siguiente programa CGI en Perl muestra el valor
de todas las variables de entorno:
#!/usr/bin/perl
print "Content-type: text/html\n\n";
foreach $key (keys %ENV) {
print "$key --> $ENV{$key}<br>";
}
Configuracin de Apache para CGI
Antes, es necesario saber qu debemos hacer en el
fichero de configuracin de Apache (httpd.conf) para
permitir la ejecucin de programas CGI
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
71
Directiva ScriptAlias
Aunque hay otras formas de hacerlo en Apache, por
motivos de seguridad suele hacerse mediante la
directiva ScriptAlias
Definiendo un nico directorio para todos los programas
(scripts) CGI
ScriptAlias /cgi-bin/ "C:/Apache/Apache2/cgi-bin/"
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
72
Intrprete de Perl
Adems, claro est, necesitamos tener un intrprete
de Perl instalado en nuestra mquina
Podemos obtener uno para Windows en:
http://www.activestate.com/

Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
73
Entrada estndar
El contenido de un formulario enviado mediante el
mtodo POST est disponible como un flujo de
caracteres en la entrada estndar
En ese caso, la variable de entorno CONTENT_LENGTH
indica el nmero total de bytes disponibles
El programa puede as obtener esa informacin
como si estuviese leyendo de un fichero o del
teclado
Los datos del formulario se codifican en un
determinado formato, muy simple
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
74
Formato de los datos
Consiste en pares nombre=valor separados por &
Los caracteres especiales, como espacios en blanco,
= y & se convierten a su valor hexadecimal
La cadena de datos completa sera similar a sta:


Hay bibliotecas de funciones que dividen dicha
cadena en partes, ahorrndonos as la labor de
procesamiento
name=Rich%20Bowen&city=Lexington&state=KY
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
75
Entrada estndar. Ejemplo en Perl
#!/usr/local/bin/perl
#Script 'example1-b.cgi
#

print "Content-type: text/html","\n\n";

if ($ENV{'REQUEST_METHOD'} eq "POST
&& $bytes=$ENV{'CONTENT_LENGTH'}) {
read(STDIN,$input,$bytes);
print "I read the following data:<BR>";
print $input; } else {
print "Please give me a POST request with some data<BR>\n";
}

exit(0);
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
76
Entrada estndar. Ejemplo en C
El mismo programa que antes, ahora en C:
int main(int argc, char ** argv)
{
char *type,*length,*input;
int bytes;

printf("Content-type: text/html");
printf("\n\n");

if(type=getenv("REQUEST_METHOD") && length=getenv("CONTENT_LENGTH") ) {
bytes=atoi(length);
input=malloc(length+1);
read(stdin,input,bytes);
printf("I read the following data:<BR>";
printf("%s",input);
}
else {
printf("Please give me a POST request with some data<BR>\n")
}
exit(0);

Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
77
Cmo llegan los datos cuando se
usa GET en vez de POST?
En ese caso, la cadena que vena antes por la
entrada estndar ahora se aade al URL, tras un ?
Luego, al llegar al servidor Web, ste mete esa
informacin en la variable de entorno
QUERY_STRING
A travs de la cual ya est disponible para el programa CGI,
como veamos antes
Introduccin a ASP
Una vez visto CGI, y como paso previo
antes de ver la tecnologa J2EE, que
ser el objetivo propiamente dicho del
curso, echmosle un vistazo a esta otra
tecnologa de pginas dinmicas.
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
79
Requisitos de software
Uno de los inconvenientes de ASP es que es
dependiente de un servidor Web concreto
El Internet Information Server (IIS) de Microsoft
Dicho servidor ya viene de manera predeterminada
en las ltimas versiones de Windows
Aunque quiz no lo hayamos instalado junto con el Sistema
Operativo
En ese caso, podramos hacerlo a travs de la opcin de Aadir o
quitar componentes de Windows del Panel de Control
Cmo probar si est instalado?
Teclear en el navegador http://localhost/
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
80
Sintaxis general
ASP, al igual que las JSP de Java, se basa en
mezclar instrucciones de programacin en nuestras
pginas HTML
El motor de ASP procesar dichas instrucciones
dinmicamente y obviar el HTML
Esto permite generar HTML dinmicamente, aadiendo lgica
a nuestras pginas
Para ello, hay que encerrar el cdigo ASP entre los
smbolos <% %>
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
81
Lenguaje de programacin
Y en qu lenguaje se escriben esas instrucciones?
ASP permite el uso de dos lenguajes:
Visual Basic Script (VBScript)
JScript (como denomina Microsoft a su implementacin de
ECMAScript que a su vez es el estndar de JavaScript)
Si no decimos nada, por omisin asume VBScript
Ser el lenguaje que emplearemos en los ejemplos
Es el ms frecuente cuando hablamos de pginas ASP
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
82
Ejemplo: mi primera pgina ASP
Ser cmo no! el archiconocido Hola, mundo
La pgina siguiente escribe dinmicamente el
mensaje
<html>
<head>
<title>Mi primera pgina ASP</title>
</head>
<body>
<h1>
<% Response.Write Hola, mundo!" %>
(mi primera pgina ASP)
</h1>
</body>
</html>


Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
83
Cmo probamos la pgina?
Si la abrimos directamente en el navegador, no
veremos el mensaje
O veramos el cdigo fuente
U obtendramos un error (si los navegadores validasen el
cdigo HTML que reciben)
Para que tenga sentido, es necesario que la
interprete el motor de ASP
Es decir, que reciba la peticin el IIS

Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
84
Administracin del IIS
Se instala en el directorio C:/Inetpub
Dentro de l, el directorio raz del servidor est en
wwwroot
Y ah es donde deberemos poner nuestra pgina
(Tambin podramos configurar directorios virtuales)
Creamos una carpeta ejemplos y llamamos
holaMundo.asp al fichero anterior
La forma de ejecutarlo es:
http://localhost/holaMundo.asp
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
85
Otro ejemplo, ms dinmico
Naturalmente, para el viaje anterior no hacen falta
tantas alforjas
No tiene ningn sentido emplear una pgina dinmica para
eso
Hagamos ahora una pgina que muestre algo de
informacin dinmica
Por ejemplo, que diga Buenos das o Buenas tardes en
funcin de la hora
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
86
Saludo personalizado: fecha y hora
<%
Crear algunas variables
Dim fecha
Dim hora

Obtener la fecha y la hora
fecha = Date()
hora = Time()

' Imprimir un saludo en funcin de la hora
If Left(hora, 2) >= 12 Then
Response.Write "Buenas tardes"
Else
Response.Write "Buenos das"
End If
%>
Hoy es <%=fecha%> y son las <%=hora%>


Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
87
Objetos predefinidos
ASP tiene los siguientes objetos predefinidos:
Application
Permite compartir informacin entre todos los usuarios de una aplicacin (en
esto se diferencia de Session)
ASPError
ObjectContext
Request
Para obtener informacin de la peticin HTTP (parmetros, cookies)
Response
Para enviar datos al cliente (escribir cdigo HTML, redirigir a otra pgina, etc.)
Server
Fundamentalmente, para crear objetos de componentes del servidor
Session
Permite almacenar el estado de la sesin
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
88
Acceso a bases de datos
Prcticamente cualquier aplicacin Web va a
necesitar acceder a una base de datos en el servidor
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
89
ndice
Introduccin a Internet y el Web
HTTP, HTML, URL, servidores Web
Introduccin a las pginas dinmicas
CGI, ASP, JSP y Servlets, etc.
Mantenimiento de la sesin del usuario
Servidores de aplicaciones
Mantenimiento de la sesin
Una de los grandes inconvenientes a
solventar en las aplicaciones Web es cmo
mantener la sesin del usuario. Veamos en
qu consiste y qu alternativas existen para
hacerlo.
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
91
HTTP, protocolo sin estado
HTTP es un protocolo sin estado
Esto significa que para el servidor Web cada peticin
de una pgina es nica
No tendra forma de saber, por ejemplo, que ese usuario
acaba de aadir un producto a su carrito, o si ya se valid o
no, en qu punto del proceso de compra se encuentra,
etctera
Son necesarias alternativas software, por tanto, que
permitan simular el estado
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
92
Alternativas
Aunque hay varias formas de hacerlo (dependiendo de si
trabajamos en ASP, en J2EE) la mayora pasan por el uso
de cookies
Algunas de las alternativas son:
Usar el objeto Session (o similar) provisto por los entornos de
programacin como ASP o J2EE (Servlets, JSP...)
Almacenar toda la informacin de la sesin, a mano, en una cookie (por
ejemplo, mediante JavaScript)
Una combinacin de cookie (para guardar un ID de usuario) y bases de
datos
URL rewriting
Etctera
Cookies
Veamos una introduccin a las cookies
y algunos ejemplos en los que
aprenderemos a manipularlas.
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
94
Qu son las cookies?
Las cookies son pequeas porciones datos que son
almacenados localmente por el navegador en forma
de pequeos ficheros de texto
Cada vez que el cliente enva informacin al servidor,
incluye en la peticin HTTP las cookies que
previamente haya guardado provenientes de ese
servidor
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
95
Detalles de implementacin
Segn la especificacin, un agente de usuario (es
decir, un navegador), debe permitir al menos:
Un total de 300 cookies
Hasta 4 KB (4.096 bytes) por cookie
Al menos 20 cookies de un servidor dado
El navegador se encarga automticamente de
eliminar aqullas que hace ms tiempo que no se
utilizan cuando necesita guardar nuevas cookies
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
96
Sintaxis
Cada cookie presenta la siguiente sintaxis general:



Lo nico obligatorio es que tenga un nombre y un
valor asociado; el resto de atributos son opcionales
Aunque tambin se utiliza bastante el atributo expires
nombre=valor; [expires=fecha; path=directorio;
domain=nombreDeDominio; secure]
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
97
Descripcin de los atributos
Un par nombre = valor
Por ejemplo: IDUsuario = 49;
expires
Hasta cundo ser vlida la cookie
Debe ir en este formato: Wdy, DD-Mon-YYYY HH:MM:SS GMT
Si no se dice nada, la cookie ser eliminada al terminar la sesin
Es decir, al cerrar la ventana actual del navegador
path
El conjunto de directorios del servidor para los que es vlida
esta cookie (por omisin, ser el raz /, es decir, todos)

Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
98
Descripcin de los atributos (2)
domain
El servidor o nombre de dominio para el que es vlida la
cookie
Una cookie slo puede ser leda y modificada desde el
servidor y directorio especificados en la cookie cuando sta
fue creada
secure
Es booleano; si est definido (si aparece el atributo) deber
haber una conexin segura (https) para que la cookie sea
enviada

Uso de cookies en ASP
Veamos de qu forma podemos establecer
y leer cookies en ASP.
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
100
Response.Cookies
Mediante la coleccin Cookies del objeto predefinido
Response podemos establecer el valor de una
cookie
Si la cookie especificada no existe, se crear
Si existe, machacar el valor que tuviera anteriormente
Ejemplo:
<%
Response.Cookies(IDUsuario) = 49
Response.Cookies(IDUsuario).Expires =
December 31, 2004
%>
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
101
Leer el valor de una cookie
Se hace a travs de la misma coleccin, slo que
ahora sin especificar ningn valor:

<%= Response.Cookies(IDUsuario) %>

Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
102
Ejemplo: contador de visitas
Realicemos un sencillo ejemplo en el que se cuenten
las visitas de un usuario a una pgina
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
103
URL Rewriting
Consiste en incluir la informacin del estado en el
propio URL
//comprar.asp?paso=3&producto1=01992CX&produc
to2=ZZ112230&producto3=HJ19X25
No es de recibo en aplicaciones serias
Un cliente puede iniciar dos o ms sesiones simultneas,
pginas tediosas de programar, slo se puede usar el mtodo
GET, etc.
Ventajas e inconvenientes
Almacenar el estado de la sesin en el
cliente presenta algunas ventajas frente a
hacerlo en el servidor, pero tambin tiene
algunos inconvenientes.
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
105
Ventajas
Menor uso de los recursos del servidor
Los servidores sin estado no necesitan reservar y mantener
recursos para guardar el estado de la sesin
Fcil escalabilidad y uso de clusters
Al no tener estado, cualquier servidor puede atender a
cualquier cliente
No hace falta que un cliente siempre sea atendido por el mismo
servidor, ni ningn tipo de distribucin del estado entre servidores
La sesin del cliente podra sobrevivir a una cada
del servidor
Un reintento por parte del cliente con el mismo URL suele
funcionar
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
106
Inconvenientes
Privacidad
Otros servidores podran leer informacin almacenada en las
cookies del cliente
No son vlidas para guardar nmeros de tarjeta, contraseas y cosas
por el estilo
Los datos pueden ser alterados
Un usuario podra modificar el fichero de una cookie
Lo mismo ocurre con otros mecanismos de cliente: URL,
formularios, etc.
Aumenta el trfico por la red
El estado se transmite con cada peticin al servidor
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
107
Inconvenientes
Implementacin compleja
Mantener a mano el estado en el cliente puede ser
realmente complicado si queremos hacerlo de manera robusta
(Lo hemos visto con el ejemplo del sitio Web de cine en ASP)
Tamao de datos limitado
Tanto el tamao mximo permitido por las cookies como la
longitud mxima de un URL pueden darnos problemas para
almacenar sesiones complejas
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
108
ndice
Introduccin a Internet y el Web
HTTP, HTML, URL, servidores Web
Introduccin a las pginas dinmicas
CGI, ASP, JSP y Servlets, etc.
Mantenimiento de la sesin del usuario
Servidores de aplicaciones
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
109
Qu es un servidor de aplicaciones?
Es un programa que provee la infraestructura
necesaria para las aplicaciones Web empresariales
Qu quiere decir esto?
Que los programadores van a poder dedicarse casi en
exclusiva a implementar la lgica del dominio, ya que servicios
de uso comn, como transacciones, seguridad, persistencia,
etc. ya son proporcionados por el servidor Web
Se ha convertido en una pieza de software clave para
cualquier empresa dedicada al comercio electrnico
Es una capa intermedia (middleware) que se sita entre el
servidor Web y las aplicaciones y bases de datos subyacentes
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
110
Visin general
Servidor de aplicaciones
(Transacciones, mensajera, servicios Web)
CORBA J2EE .NET
Aplicacin
cliente
Aplicacin
cliente
Aplicacin
cliente
SGBD
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
111
Motivacin
Comienzan a surgir cuando queda claro las
aplicaciones cliente/servidor no iban a ser escalables
a un gran nmero de usuarios
Debido a las caractersticas de los clientes pesados
Se haca necesario mover las reglas de negocio a
algn lugar intermedio entre los clientes y la base de
datos
Empezaron a surgir productos para hacer esa tarea
Cada compaa los llamaba de una forma distinta
Servidores de transacciones, servidores de aplicaciones
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
112
Misin
Los llamasen como los llamasen, estaban diseados
para gestionar de forma centralizada el modo en que
los clientes deban conectarse a la base de datos o a
los servicios con los que tenan que interoperar
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
113
Servicios proporcionados
Creacin y gestin de los componentes del servidor
Por aquel entonces, basados en CORBA o COM
Clustering
Equilibrado de carga
Transacciones
Seguridad
Acceso a datos

Servicios proporcionados
A continuacin, se explicarn un poco ms
en detalle cada uno de los servicios
anteriores, ofrecidos, en mayor o menor
medida, por los servidores de aplicaciones.
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
115
Gestin de la sesin
Como sabemos, HTTP es un protocolo sin sesin
No permite mantener una conexin abierta entre el cliente y el
servidor ms all de lo que dura la transferencia del documento
en cuestin
En cualquier aplicacin de comercio electrnico, es
necesario poder identificar al usuario a travs de su
navegacin por el sitio Web
Autenticacin, adicin de productos al carrito de la compra, etc.
El servidor ha de conservar informacin entre peticiones del
usuario a lo largo de la duracin de una sesin
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
116
Gestin de la sesin (2)
La implementacin a mano se complicara
enormemente en el caso de contar con varios
servidores (equilibrado de carga)
La peticin de un usuario registrado en la mquina A puede
ser redirigida al servidor B
Lo lgico es que sea el servidor de aplicaciones
quien se encargue de gestionar la sesin
Adems, debera ser ms eficiente que si lo programamos
nosotros mismos
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
117
Equilibrado de carga
Por equilibrado de carga (load balancing) se entiende la
capacidad de repartir el procesamiento entre distintos
servidores
Las peticiones de los clientes se redirigen a la mquina que ms
desocupada se encuentre en ese momento
Mejora de rendimiento de la aplicacin
No es tan sencillo como aadir una nueva mquina y ya est
Adems de la escalabilidad, se consigue una mayor
tolerancia a fallos
Los servidores de aplicaciones proporcionan mecanismos de
equilibrado de carga (aspecto clave para la escalabilidad)
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
118
Acceso a datos
Los servidores de aplicaciones proveen facilidades para
administrar conexiones a bases de datos relacionales
Oracle, SQL Server, DB2
Los componentes (las clases que implementan la lgica del
negocio) acceden a ellas de forma estndar
Independiente de la base de datos subyacente
Tambin suelen permitir acceder a otros tipos de fuentes de
datos:
Tales como distintos ERP (SAP, Vaan...), repositorios XML, etc.
Los servidores de aplicaciones son tambin importantes, por tanto, como
mecanismo de integracin de sistemas heredados
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
119
Pooling de conexiones
Abrir una conexin a una base de datos suele ser un
proceso costoso
No es viable abrir una nueva conexin por cada consulta a la
base de datos
Penalizara enormemente el rendimiento de la aplicacin
Los servidores de aplicaciones suelen contar con
una serie de conexiones permanentemente abiertas
que distribuye de forma transparente a los distintos
procesos
Se debera poder configurar el nmero de conexiones
abiertas, e incluso la poltica de asignacin
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
120
Gestin transaccional
Son un elemento bsico de cualquier aplicacin comercial
Evitan que haya informacin inconsistente
Sera complejsimo implementarlas a mano
Con un servidor de aplicaciones que tenga esta
caracterstica, bastara con indicarle dnde empieza y termina
la transaccin
Encargndose l de deshacer los pasos intermedios en caso de un error
del sistema
Transaccin: secuencia de pasos que, o se ejecutan todos, o si no
el sistema queda en el estado original
Para terminar
Un comentario final, acerca de las
tecnologas o plataformas tpicas sobre las
que se implementan los servidores de
aplicaciones, junto con un sencillo
esquema de una de ellas: J2EE
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
122
Tecnologas actuales
Actualmente, las dos plataformas ms comunes son
J2EE y, ms recientemente, ha surgido .NET
De hecho, hasta hace poco hablar de servidores de
aplicaciones era prcticamente hablar de J2EE
(aunque no debemos hacer tal asociacin)
Introduccin al desarrollo de aplicaciones Web
Csar Fernndez Acebal
123
Ejemplo: arquitectura J2EE

Potrebbero piacerti anche