Professional Documents
Culture Documents
Desarrollo de
Aplicaciones Web
Contenidos
Internet
Protocolo TCP/IP
Aplicaciones: DNS, FTP, SMTP, etc.
World Wide Web
HTTP
URLs
Unicode
HTML
Servidor Web
Arquitectura cliente/servidor
Páginas estáticas/dinámicas
Servidor de Aplicaciones
Servicios
1
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
Introducción a Internet
Web = vasta colección de documentos
en Internet enlazados a través de
hiperenlaces
Ü Internet: millones de ordenadores conectados
Conjunto de redes heterogéneas conectadas
entre sí mediante el protocolo TCP/IP
Evolución de Internet
(60-80) Origen militar
Protocolos de comunicación (TCP/IP)
Seguridad ante ataques (múltiples servidores)
(80 – 90) Implantación académica
Protocolos de intercambio de información (FTP, SMTP, ...)
(90-95) World Wide Web
HTTP, HTML, etc.
Enorme biblioteca con material hipermedia
(95 – 00) Acceso comercial
Posibilidad de negocio ⇒ Dinero!!
Boom comercial
(00-) Crisis de las punto com
Historias de fracasos ⇒ Lecciones aprendidas
Nuevas posibilidades: Computación ubicua, Web semántica,
etc.
2
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
Internet
Router ISP local
ISP regional
Acceso particular
Acceso corporativo
wireless
Protocolo TCP/IP
Se encarga de llevar a cabo la conmutación de
paquetes
Transmission Control Protocol (TCP)
Internet Protocol (IP)
Protocolo = conjunto de reglas para
formatear, ordenar y comprimir
mensajes, comprobar errores, etc.
Pueden implementarse en hardware o software
3
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
Cuatro capas
La familia de protocolos TCP/IP se divide en 4
capas:
Capa de red: de más bajo nivel
Representa el medio físico encargado de enviar en
última instancia los 0 y 1 que componen cada mensaje
Diversas tecnologías: Ethernet, ATM…
Capa de Internet (IP)
Esquema de direcciones, encaminamiento de los
mensajes…
Capa de transporte (TCP)
Envía acuses de recibo, reagrupa el mensaje en destino,
vuelve a mandar los paquetes perdidos o
defectuosos…
No garantiza tiempos de transmisión
Capa de aplicación: 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)…
Arquitectura de TCP/IP
Capa de
Aplicación HTTP Telnet FTP SMTP …
Capa de
Transporte TCP
Capa de IP
Internet
Token Frame ATM
Capa Ethernet
Ring Relay
de red
4
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
Encaminamiento de paquetes TCP/IP
1. El protocolo TCP
2. Los paquetes
trocea los datos 3. El protocolo TCP
viajan de router
en paquetes ensambla los
a router según
protocolo IP paquetes para
obtener el
mensaje original
router
router
router
router
Emisor Receptor
router router
Direcciones IP
Cada ordenador conectado a Internet (=Host) debe
tener una dirección para poder recibir los paquetes
TCP
Puede ser:
Estática
Fija, siempre la misma
Dinámica
Por ejemplo, cada vez que nos conectamos a Internet con un
módem telefónico, nuestro proveedor de Internet (ISP,
Internet Service Provider) nos asigna una dirección temporal
Las direcciones IP son números 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 232
direcciones (algo más de cuatro mil millones)
5
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
IPv6
Problema: cada vez más y más dispositivos
conectados. Esquema de direcciones
pequeño…
Se está desarrollando una nueva versión,
denominada IPv6 para sustituir a la actual
(IPv4), que con 128 bits podrá tener 3,4 ×
1038 direcciones
También mejora otras deficiencias de IPv4
Capa de Aplicación
6
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
Nombres de dominio
DNS (sistema de nombres de domino) permite
asociar nombres lógicos a direcciones IP
DNS es una base de datos distribuida
Ejemplo: www.euitio.uniovi.es – 156.35.94.5
7
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
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
La Web = sistema de hipertexto que funciona
sobre Internet como uno de sus servicios
En este caso, el programa cliente es nuestro
navegador,
navegador y el servidor el programa que hace de
servidor Web que está ejecutándose en el
ordenador remoto y que se encarga de entregar el
documento solicitado a nuestro navegador
8
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
Esquema general Cliente/Servidor
Petición
Red
Servidor
Respuesta
Cliente
index.html
Internet
Internet enlace
www.euitio.uniovi.es
9
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
Visión general del Web
10
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
HTTP
11
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
Funcionamiento de la Web
HTTP
HTTP (HyperText Transform Protocol) es el
protocolo usado para transferir páginas Web
Es el modo en que un navegador se comunica con un
servidor Web (Apache, Internet Information
Server…)
Es un protocolo sin estado
La sesión termina en cuanto se devuelve el objeto
solicitado
Incluso, si una página contiene otros objetos
(imágenes, frames, etc.) cada uno de ellos inicia
una nueva petición HTTP
12
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
Ejemplo de mensaje HTTP
Petició
Petición
GET / HTTP/1.0 >
>
Respuesta
<
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
Especificación de HTTP
Tipos de peticiones
GET, HEAD, POST, PUT, DELETE, …
Define códigos de respuestas
200 – OK
400 – Bad Request
401 – Unauthorized
403 – Forbidden
404 – Not Found
...
13
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
Unicode
m
co
e.
re
4f
df
.p
w
w
w
://
tp
ht
Representación de caracteres
Representación de Caracteres
ASCII: 7 bits ⇒ (0 – 127)
(A)merican (S)tandard (C)ode for (I)nformation (I)nterchange
Extensiones de ASCII
ISO-8859-1 (iso-latin-1)
(8 bits) ASCII (0-127) + otros caracteres típicos de Europa occidental
Familia ISO-8859-X = Otros alfabetos europeos
ISO-8859-15 (iso-latin-9) Igual que iso-8859-1 + símbolo de €
m
re
te
ac
om
ho
.
sc
¡C.0
s.
ar
uc
y
m
as
ho
AD
uc
ID
di
si
U
ha
€ O!
..
v2
ee
Fr
F4
PD
-
or
at
re
C
F
14
PD
Unicode
ISO-10646 (31 bits) Define un repertorio universal de caracteres (UCS)
En continua revisión: ISO-10646-2:2001 contiene más de 70.000
caracteres
UNICODE = Consorcio de empresas que define restricciones sobre la
implementación de ISO-10646
Varias codificaciones (UTF = Unicode Transformation Format)
- UTF-8: Los primeros 127 códigos se presentan igual (compatible con
ASCII)
El resto se codifican en longitud variable
Relativamente Eficiente
- UTF-16: Usa 16bits para los caracteres más comunes, el resto con pares
de 16 bits
- UTF-32: Codificación directa en 32 bits (desperdicio de espacio)
URIs
15
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
URIs
URI: Uniform Resource Identifier
URL: Uniform Resource Locator
Además de una identificador único, indica
protocolo de acceso
http://www.euitio.uniovi.es
URN: Uniform Resource Name
Identificador único
urn:isbn:0451450523
IRI: Internationalized Resource Identifier
Admite caracteres Unicode
Sintaxis de un URL
protocolo://dirección[:puerto]/directorio/fichero
protocolo://dirección[:puerto]/directorio/fichero
Ejemplos:
http://
http://www.princast.es
www.princast.es/ /
http://195.55.30.17/
http://195.55.30.17/
http://
http://www.cfacebal.com
www.cfacebal.com/ /
http://
http://www.cfacebal.com
www.cfacebal.com/ /index.html
http://
http://web.uniovi.es
web.uniovi.es/Vicerrectorados/
/Vicerrectorados/Extension
Extension/
/
http://
http://localhost
localhost:8080/
:8080/
http://
http://petra.euitio.uniovi.es
petra.euitio.uniovi.es/
/
16
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
Protocolo
Un protocolo define el modo en que se comunican
dos ordenadores para llevar a cabo alguna tarea
Protocolo del Web:
HTTP (HyperText
(HyperText Transfer Protocol)
Protocol)
Especifica cómo tiene lugar el diálogo entre el
navegador y el servidor para conseguir el fichero
especificado
No se ocupa del transporte en sí: TCP
Cada vez que tecleamos una dirección o pulsamos
un enlace el navegador se comunica vía HTTP con
el servidor Web indicado
Ejemplos de protocolos
17
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
Dirección del sitio
Suele ser un nombre simbólico: nombre de
dominio
www.uniovi.es especifica una máquina llamada
“www” en el dominio “uniovi.es”
El nombre de máquina puede ser cualquiera
“www” no es más que un convenio para
especificar aquellas máquinas que son
servidores Web
como “ftp” suele designar a los servidores de
FTP
incluso aunque muchas veces se trate de la
misma máquina
18
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
Directorio
Hay que indicar la ruta hasta el fichero deseado
Como mínimo, debe ir la barra (“/”)
http://
http://www.uniovi.es
www.uniovi.es/
/
Si no la ponemos, la pone el navegador por nosotros
...pero en los enlaces en HTML sí debe aparecer
También se puede indicar un subdirectorio:
http://
http://www.uniovi.es
www.uniovi.es/Vicerrectorados/
/Vicerrectorados/Postgrado_Tit
Postgrado_Tit
ulosPropios/doctorado/
ulosPropios/doctorado/
Siempre se usa la barra “/”, no “\” (incluso aunque el
servidor Web sea una máquina Windows: está
definido por el estándar URI, no depende del SO)
La ruta sí puede diferenciar entre mayúsculas y
minúsculas (si el servidor Web es, por ejemplo,
una máquina Unix)
19
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
Nombre del fichero
Puerto
Por omisión, una petición HTTP se
dirige al puerto 80
Por eso casi nunca la especificamos
Pero se podría configurar el servidor
Web para que “escuchase”
peticiones en otro puerto
En ese caso, hay que indicarlo
explícitamente:
http://
http://www.midominio.com
www.midominio.com:8080
:8080//
20
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
Lenguaje HTML
HTML
Es el lenguaje de creación de páginas Web
Al menos, de las páginas “estáticas”
Era imprescindible que la misma información
se pudiese ver en diferentes plataformas
Por tanto, Berners-Lee diseñó un lenguaje de
estructuración de documentos, no de
presentación (ésta se dejaba al programa
cliente)
21
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
HTML es un lenguaje
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 tí
título y dos pá
párrafos
Ü Pero un ordenador sósólo verí
vería un montó
montón de caracteres
Necesitamos un modo de indicarle la estructura del documento
22
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
HTML, lenguaje de hipertexto
Especificación de HTML
23
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
Ejemplo de HTML
AlCapone.html Página visualizada
<html>
<head>
Cabecera <title>Pizzeria Al Capone</title>
</head>
<body bgcolor="blue" text="yellow"
Cuerpo link="red" vlink="white">
<h1>Pizzería Al Capone</h1>
<p>Lista de enlaces</p>
Lista <ul>
<li><a href="Pizzas.html">
Tipos de Pizzas</a></li>
Enlaces <li><a href="http://www.mafia.it">
Patrocinadores</a></li>
<li><a href="#Contacto">Contacto</a></li>
<ul>
<h2><a name="Contacto">Contacto</a></h2>
<p><font color="red">Dirección:</font>
Detalles de C/ Génova Nº 3, Oviedo, España</p>
presentación <p><font color="red">Teléfono:</font>
985203040</p>
</body>
</html>
24
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
Elementos HTML
Un elemento contiene:
Una etiqueta inicial (nombre entre signos < y > ):
<etiqueta>
La etiqueta inicial puede contener atributos:
<etiqueta atributo=“valor”>
El elemento debe acabar con una etiqueta final con
el mismo nombre
El contenido del elemento es todo lo que hay entre la
etiqueta inicial y la final
El contenido pueden ser otros elementos
Elemento
Elemento vacío
25
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
Cabecera HTML
En la cabecera se pueden incluir los elementos
<title> especifica el título del documento
<meta> especifica meta-información. Dos modos:
– Atributo name
<meta name=“Author” content=“Jose Granda”>
Podemos usar nuestros valores
<meta name=“ColorFavorito” content=“Rojo”>
Pueden incluirse palabras clave que ayudan a los buscadores
<meta name=“Keywords” content=“Pizzas, Restaurante”>
y descripciones
<meta name=“Description” content=“Páginas de una pizzería...”>
Cabecera HTML
Otros elementos de la cabecera
<link> especifica relaciones entre documentos
Muchas opciones dependen del soporte ofrecido por el
visualizador
<link rel=“INDEX” href=“indice.html”>
<link rel=“ALTERNATE” media=“PRINT”
href=“versionImpresa.ps”>
26
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
HTML: Texto
Niveles de encabezado (headings)
h1, h2, h3, h4, h5, h6
Párrafo p
Los saltos de línea son gestionados por el visualizador
br inserta un salto de línea
inserta un espacio pero impide un salto de línea
Elementos de frases
em, strong, cite, dfn, code, samp, kbd, var, abbr, acronym,
blockquote, q
Texto preformateado pre
<pre>
void main() {
return (“Hola”);
}
</pre>
HTML: Listas
Listas no ordenadas <ul> (unordered-lists)
Listas ordenadas <ol> (ordered-lists)
Items de listas <li> (list-item)
<ul>
<li>Primer valor</li> ¡ Primer valor
<li>Segundo valor</li> ¡ Segundo valor
</ul>
<ol>
<li>Primer valor</li> 1. Primer valor
<li>Segundo valor</li> 2. Segundo valor
</ol>
27
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
HTML: Listas de definiciones
<dl> HTML
<dt>HTML</dt> Hypertext markup
<dd>Hypertext Markup Language</dd> Language
<dt>XML</dt> XML
<dd>eXtensible Markup Language</dd> eXtensible Markup
</dl> Language
HTML: Enlaces
<p>Lista de enlaces</p>
<ul>
<li><a href="Pizzas.html">Tipos de Pizzas</a></li>
<li><a href="http://www.mafia.it">Patrocinadores</a></li>
<li><a href="#Contacto">Contacto</a></li>
<ul>
Dirección relativa
pizzas.html
Lista de enlaces
• Tipos de pizzas Dirección absoluta
• Patrocinadores http://www.mafia.it
• Contacto
Dirección interna
#contacto
<a name=“contacto>Información de contacto</a>
...
28
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
HTML: Imágenes
<img src=“images/fotoPizza.gif”
width=“500” height=“500” alt=“Foto de una pizza”>
<object data=“images/fotoPizza.gif”
width=“500” height=“500” type=“image/gif”>
Foto de una pizza
</object>
29
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
HTML: Tablas
<table>
<caption>Pizzas disponibles</caption>
<tr><th>Nombre</th><th>Ingredientes</th><th>Precio</th></tr>
<tr><td>Barbacoa</td><td>Mozzarella, Bacon</td><td>8 €</td></tr>
<tr><td>Hawaiana</td><td>Tomate, Piña, Queso</td><td>7€</td></tr>
<tr><td>4 quesos</td><td>Tomate, Mezcla 4 quesos</td><td>7 €</td></tr>
</table>
Pizzas Disponibles
El código se ...
ejecuta en la <applet code=“miApplet.class” width=“500” height=“500” >
máquina cliente Aquí venía un applet que saludaba
(visualizador) </applet>
...
<object codetype=“application/java”
classid=“MiApplet.class” width=“500” height=“500”>
Aquí venía un applet que saludaba
</object>
30
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
HTML: Mapas de imágenes
<object data="dibujo.gif"
width="250" height="250"
type="image/gif" usemap="#mapa1">
<map name="mapa1">
Barra de navegación
<area href="WWW.html" shape="rect" coords="0,0,250,125" alt="WWW">
<area href="XML.html" shape="rect" coords="0,125,250,250" alt="XML">
</map>
</object>
HTML: Marcos
<html>
<head>
<title>Ejemplo con marcos</title>
</head>
<frameset rows="10%,*">
<frame src="superior.html"> Se puede asignar un nombre
<frameset cols="40%,60%"> para hacer referencias
<frame src=”Indice.html">
<frame name=“Principal” src="Pizzas.html">
</frameset> <a href=“Enlace.html” target=“Principal”>Enlace</a>
<noframes>
información sin marcos
</noframes>
</frameset>
</html>
31
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
HTML: Formularios
<form action="http://www.mafia.it/cgi-bin/nuevoSocio"
method="get"> Al pulsar “Envía” se le pasan
Nombre: <input type="text" id="nombre"><br/> los valores a esa url
Apellido <input type="text" id="apell"><br/> Se realiza una computación
email: <input type="text" id="email"><br/> en el servidor
<select name="sexo">
Posibilidades:
<option selected value="H">Hombre</option>
<option value="M">Mujer</option> CGI, Servlets, PHP, ASP, etc
</select>
<textarea name="Comentarios"
rows="5" cols="50">
<<Inserta aquí tus comentarios>>
</textarea>
<input type="submit"
value="Envía">
<input type="reset”
value="Borra" >
</form>
HTML: Scripts
La etiqueta <script> permite incluir guiones (scripts)
Son interpretados por navegador (JavaScript, VBScript, etc.)
<head>
<script type="text/javascript">
<!--
if (document.images) {
coche1 = new Image(128,128);
coche2 = new Image(128,128);
coche1.src = "coche1.gif"; coche2.src = "coche2.gif";
}
function cambia(name, image) {
if (document.images) {document[name].src = eval(image+".src");
}}
// -->
</script> Al avanzar el ratón
</head> cambia la imagen
<body>
<img name="coche1“ width="128" height="128“
Computación en cliente
onMouseOver=' cambia("coche1", "coche2")'
onMouseOut = ‘cambia("coche1", "coche1")'> Depende de las posibilidades del visualizador
src="coche1.gif“ />
</body>
32
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
Servidor Web
33
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
Páginas estáticas
Al principio, el Web estaba poblado únicamente por
páginas estáticas
El servidor Web simplemente localizaba el documento
solicitado en el URL y se lo entregaba al cliente
Este enfoque puede ser perfectamente válido para
muchos sitios
Siempre y cuando no requieran actualizaciones
continuas …
Pero no permitiría, por ejemplo, crear un sitio de
comercio electrónico donde se pueda comprar, o
el de un banco
Es necesario acceder a datos en el servidor y crear
una página a petición
pagina.html
<html><head></head>
st .ht n
ue na ció
sp gi eti
Re pa P
<body>
a m
l
<h1>17/10/2005</h1>
</body>
</html>
<html><head></head>
En el navegador <body>
se vería <h1>17/10/2005</h1>
</body>
17/10/2005 </html>
34
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
Funcionamiento de las páginas
dinámicas
pagina.php
<html><head></head>
<body>
st .ht n
ue na ció
sp gi eti
Re pa P <?php
a m
l
printf(“<h1>%s</h1>”,
date(“d/m/Y”));
Motor ?>
PHP </body>
</html>
<html><head></head>
En el navegador <body>
se vería <h1>18/10/2005</h1>
</body>
18/10/2005 </html>
Modo de funcionamiento
El servidor Web detecta una petición de una página
dinámica y se la pasa al programa necesario
Podría ser una extensión del servidor
O bien un programa completamente independiente
Éste programa es quien sabe cómo interpretar el
código de la página para devolver el HTML
apropiado
Diversas tecnologías
CGIs, ASP, JSP, Servlets, etc.
35
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
CGI
36
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
Introducción
/cgi-bin/buscar.cgi?texto=“web standards”
El servidor
Web invoca
Los datos del al programa
formulario son CGI
enviados vía HTTP pasándole los
parámetros
HTTP recibidos
El usuario, por
ejemplo, rellena un
formulario y pulsa el
botón de enviar Y éste devuelve
el resultado al
servidor por
medio de la
salida estándar
37
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
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 Descripción
SERVER_NAME El nombre del servidor o su dirección
IP
QUERY_STRING
La información que sigue al “?” en el
URL que referencia a este programa
Para consultas que llevan asociada
CONTENT_LENGTH
información (por ejemplo, las
hechas mediante POST), el tamaño
en bytes de dicha respuesta
PATH_INFO
… …
C getenv("SERVER_NAME")
Perl $ENV{'SERVER_NAME'}
38
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
Ejemplo
#!/usr/bin/perl
print "Content-type: text/html\n\n";
foreach $key (keys %ENV) {
print "$key --> $ENV{$key}<br>";
}
Mantenimiento de la sesión
39
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
HTTP, protocolo sin estado
HTTP es un protocolo sin estado
Esto significa que para el servidor Web cada
petición de una página es única
No tendría forma de saber, por ejemplo, que ese
usuario acaba de añadir un producto a su
carrito, o si ya se validó o no, en qué punto del
proceso de compra se encuentra, etcétera
Son necesarias alternativas software, por
tanto, que permitan simular el estado
40
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
¿Qué son las cookies?
Detalles de implementación
Según la especificación, 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 automáticamente
de eliminar aquéllas que hace más tiempo
que no se utilizan cuando necesita
guardar nuevas cookies
41
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
Sintaxis
42
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
Descripción de los atributos (2)
domain
El servidor o nombre de dominio para el
que es válida la cookie
Una cookie sólo puede ser leída 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 conexión
segura (https) para que la cookie sea
enviada
URL Rewriting
No es de recibo en aplicaciones
“serias”
Un cliente puede iniciar dos o más
sesiones simultáneas, páginas tediosas
de programar, sólo se puede usar el
método GET, etc.
43
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
Ventajas del uso de cookies
Menor uso de los recursos del servidor
Los servidores “sin estado” no necesitan reservar
y mantener recursos para guardar el estado de
la sesión
Fácil 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 ningún tipo
de distribución del estado entre servidores
La sesión del cliente podría sobrevivir a una
caída del servidor
Un reintento por parte del cliente con el mismo
URL suele funcionar
44
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
Inconvenientes del uso de cookies
Implementación compleja
Mantener “a mano” el estado en el
cliente puede ser realmente complicado
si queremos hacerlo de manera robusta
Servidores de aplicaciones
45
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
¿Qué es un servidor de aplicaciones?
Visión general
Servidor de aplicaciones
(Transacciones, mensajería, servicios Web…)
SGBD
46
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
Motivación
Comienzan a surgir cuando queda claro las
aplicaciones cliente/servidor no iban a ser
escalables a un gran número de usuarios
Debido a las características de los clientes “pesados”
Se hacía necesario mover las reglas de negocio a
algún lugar intermedio entre los clientes y la
base de datos
Empezaron a surgir productos para hacer esa
tarea
Cada compañía los llamaba de una forma distinta
Servidores de transacciones, servidores de
aplicaciones…
Misión
47
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
Servicios proporcionados
Creación y gestión de los componentes del
servidor
Por aquel entonces, basados en CORBA o COM
Clustering
Equilibrado de carga
Transacciones
Seguridad
Acceso a datos
…
Servicios proporcionados
48
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
Gestión de la sesión
ElElservidor
servidorha
hade
deconservar
conservarinformación
informaciónentre
entrepeticiones
peticionesdel
delusuario
usuarioaalololargo
largode
delala
duración
duraciónde deuna
unasesión
sesión
49
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
Equilibrado de carga
Los
Losservidores
servidoresde
deaplicaciones
aplicacionesproporcionan
proporcionanmecanismos
mecanismosde
deequilibrado
equilibradode
decarga
carga
(aspecto
(aspectoclave
clavepara
paralalaescalabilidad)
escalabilidad)
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 lógica
del negocio) acceden a ellas de forma estándar
Independiente de la base de datos subyacente
También suelen permitir acceder a otros tipos de fuentes
de datos:
Tales como distintos ERP (SAP, Vaan...), repositorios XML,
etc.
Los servidores de aplicaciones son también importantes, por
tanto, como mecanismo de integración de sistemas
heredados
50
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
“Pooling” de conexiones
Abrir una conexión a una base de datos
suele ser un proceso costoso
No es viable abrir una nueva conexión por cada
consulta a la base de datos
Penalizaría enormemente el rendimiento de la
aplicación
Los servidores de aplicaciones suelen contar
con una serie de conexiones
permanentemente abiertas que distribuye
de forma transparente a los distintos
procesos
Se debería poder configurar el número de
conexiones abiertas, e incluso la política de
asignación
Gestión transaccional
Transacción:
Transacción:secuencia
secuenciade
depasos
pasosque,
que,oose
seejecutan
ejecutantodos,
todos,oosisino
noelelsistema
sistema
queda
quedaen
enelelestado
estadooriginal
original
51
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com
Tecnologías actuales
Aplicación
Aplicación EJB EJB
Cliente
Cliente
52
PDF Creator - PDF4Free v2.0 http://www.pdf4free.com