SlideShare a Scribd company logo
1 of 61
Introducción al desarrollo de aplicaciones Web
César F.
Acebal
Daniel F.
Lanvin
Introducción a Internet y el Web
 El Web es una vasta colección de documentos en Internet que están
enlazados a través de los hiperenlaces
 Internet: millones de ordenadores conectadosInternet: millones de ordenadores conectados
Un conjunto de redes heterogéneas
conectadas entre sí mediante el protocolo
TCP/IP
 Los hiperenlaces permiten a los usuarios acceder aLos hiperenlaces permiten a los usuarios acceder a
documentos situados en otros servidores Web, sindocumentos situados en otros servidores Web, sin
preocuparse de su ubicaciónpreocuparse de su ubicación
Tecnologías clave de Internet
César F.
Acebal
Daniel F.
Lanvin
Tecnologías claves de Internet
 La infraestructura de Internet es proporcionada
fundamentalmente por tres tecnologías:
 La conmutación de paquetesconmutación de paquetes
 El protocolo TCP/IPTCP/IP
 La arquitectura cliente/servidorcliente/servidor
César F.
Acebal
Daniel F.
Lanvin
Conmutación de paquetes
 Es la tecnología que emplea la red Internet
 Los mensajes se dividen en paquetes
 A cada paquete se le añaden la dirección de origen y destino, el número de
secuencia, información de control de errores…
 En vez de enviarse directamente a la dirección de destino, los paquetes
viajan de una máquina a otra hasta alcanzar su destino
 Estas máquinas se denominan routersrouters

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 encaminamientoalgoritmos de encaminamiento (“routing algorithms”)
César F.
Acebal
Daniel F.
Lanvin
TCP/IP
 Si bien la conmutación 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)Transmission Control Protocol (TCP)

Internet Protocol (IP)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
César F.
Acebal
Daniel F.
Lanvin
Direcciones IP
 Cada ordenador conectado a Internet debe tener una dirección para
poder recibir los paquetes TCP. Ésta 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)
César F.
Acebal
Daniel F.
Lanvin
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.esping www.euitio.uniovi.es
 Los URL (Uniform Resource Locator) son las direcciones
que escribimos en el navegador
 Como http://www.euitio.uniovi.es/http://www.euitio.uniovi.es/
César F.
Acebal
Daniel F.
Lanvin
Computación Cliente/Servidor
 En este modelo de computación distribuida, un cliente solicita una
acción a un servidor, que le devuelve los resultados
 Puede haber diversos tipos de clientes, desde los más ligerosligeros (como un
navegador Web, que únicamente es capaz de mostrar documentos HTML)
hasta clientes pesadosclientes pesados que también 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 personalesordenadores personales
 Toda Internet es una inmensa red cliente/servidor
Introducción al Web
César F.
Acebal
Daniel F.
Lanvin
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á ejecutándose en el
ordenador remoto y que se encarga de entregar el documento solicitado
a nuestro navegador
César F.
Acebal
Daniel F.
Lanvin
Nacimiento del World Wide Web
 En 1989, Tim Berners-Lee, en el laboratorio
europeo de partículas (CERN), en Suiza, crea un
lenguaje de etiquetas para representar y enlazar
documentos

HTMLHTML —HyperText Markup Language—HyperText Markup Language

Lenguaje de Marcado de HipertextoLenguaje de Marcado de Hipertexto
 Berners-Lee creó las versiones iniciales de:
 HTMLHTML, HTTPHTTP, un servidor Webservidor Web y un navegadornavegador
 Los cuatro componentes esenciales del Web
Tim Berners-Lee
César F.
Acebal
Daniel F.
Lanvin
¿Cómo funciona?
1. El usuario solicita un documento tecleando su dirección 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 cuál es la IP de www.uniovi.es: 156.35.14.3
 Cada ordenador en Internet está identificado por una dirección única
denominada IP
 El DNS traduce de nombres lógicos a direcciones físicas.
El DNS es un servicio de nombrado
3. Navegador y servidor web comienzan un diálogo a través del protocolo
HTTP (protocolo de transferencia de hipertexto)
1. GET /HTTP/1.0
2. El servidor, si todo es correcto, devuelve el documento solicitado más información
adicional
César F.
Acebal
Daniel F.
Lanvin
¿Cómo funciona?
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
César F.
Acebal
Daniel F.
Lanvin
Conceptos Básicos de la WEB
 Un servidor Web es un ordenador en Internet que sirve
páginas Web y contenido estático en general a petición
 Para ello, debe tener un programa ejecutándose que haga de servidor
Web: Apache, IIS, etcétera
 El usuario accede al Web a través de un navegador
(browser)
 Se encarga de solicitar las páginas Web al servidor y de mostrarlas
César F.
Acebal
Daniel F.
Lanvin
El Lenguaje 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)
César F.
Acebal
Daniel F.
Lanvin
HTML es un lenguaje
 Como tal, tiene unas reglas que deben ser cumplidas, esto es,
una sintaxis, una gramática... igual que el español o cualquier
otro lenguaje informático
 Es además un lenguaje informático, para ser procesado por
ordenadores; pero no es un lenguaje de programación
César F.
Acebal
Daniel F.
Lanvin
HTML, lenguaje de hipertexto
 Por hipertexto designamos al texto al que se le añade una
propiedad: determinadas porciones de texto pueden ser
enlazadas a otros documentos
 De ahí surge el concepto de navegación: 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 búsqueda de la información
César F.
Acebal
Daniel F.
Lanvin
Especificación de HTML
 La especificación del lenguaje HTML y de la mayoría de
tecnologías relacionadas con el Web está definida por el
World Wide Web Consortium (W3C)
 www.w3c.org
César F.
Acebal
Daniel F.
Lanvin
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>Introducción a HTML</title>
</head>
<body>
<h1>Mi primera página Web</h1>
<p>
Éste es el equivalente al típico <em>¡Hola, mundo!</em>
pero en HTML (cuya <a href="http://www.w3.org/MarkUp/"
title="Especificación de las distintas versiones de
HTML y XHTML en el W3C">especificación</a> puede encontrarse
en el sitio Web del
<acronym title="World Wide Web Consortium">W3C</acronym>).
</p>
</body>
</html>
holaMundo.htmlholaMundo.html
César F.
Acebal
Daniel F.
Lanvin
El protocolo 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
César F.
Acebal
Daniel F.
Lanvin
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
RespuestaRespuesta
PeticiónPetición
César F.
Acebal
Daniel F.
Lanvin
Las URLs
 URI: Uniform Resource Identifier
 URL: Uniform Resource Locator
 Un URL es la dirección única de todo documento
en el Web

http://www.eutio.uniovi.es/http://www.eutio.uniovi.es/
César F.
Acebal
Daniel F.
Lanvin
Sintaxis de un URL
 Ejemplos:

http://www.princast.es/http://www.princast.es/

http://195.55.30.17/http://195.55.30.17/

http://www.cfacebal.com/http://www.cfacebal.com/

http://www.cfacebal.com/index.htmlhttp://www.cfacebal.com/index.html

http://web.uniovi.es/Vicerrectorados/Extension/http://web.uniovi.es/Vicerrectorados/Extension/

http://localhost:8080/http://localhost:8080/

http://petra.euitio.uniovi.es/http://petra.euitio.uniovi.es/
protocolo://dirección[:puerto]/directorio/ficheroprotocolo://dirección[:puerto]/directorio/fichero
César F.
Acebal
Daniel F.
Lanvin
Sintaxis URL: 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)HTTP (HyperText Transfer 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í: TCPTCP
 Cada vez que tecleamos una dirección o pulsamos un enlace
el navegador se comunica vía HTTP con el servidor Web
indicado
César F.
Acebal
Daniel F.
Lanvin
Sintaxis URL: Ejemplos de protocolos
file Permite acceder a un fichero en el sistema de ficheros local
ftp File Transfer Protocol
http Páginas Web
Las URLs no son algo específico de internet o de la WEB.
 Ejemplo:
Abrir el internet explorer y, en lugar de poner una url http en la barra
de navegación, abrir el fichero local c:boot.ini mediante:
file://C:boot.ini
César F.
Acebal
Daniel F.
Lanvin
Sintaxis URL: 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
César F.
Acebal
Daniel F.
Lanvin
Sintaxis URL: Dirección del sitio
 También podría ser directamente la dirección IP
 http://156.35.14.3/
 Los nombres de dominio no distinguen entre mayúsculas y
minúsculas
 http://www.uniovi.es/
 http://WWW.UNIOVI.ES/
 http://wWw.UniOvi.es/
 Tampoco (para nuestra desgracia) tienen Ñs!. Ej:
http://www.eldiariomontanes.es
http://www.lanuevaespana.es
César F.
Acebal
Daniel F.
Lanvin
Sintaxis URL: Directorio
 Hay que indicar la ruta hasta el fichero deseado
 Como mínimo, debe ir la barra (“/”)

http://www.uniovi.eshttp://www.uniovi.es//
 Si no la ponemos, la pone el navegador por nosotros
 También se puede indicar un subdirectorio:

http://www.uniovi.es/Vicerrectorados/Postgrado_TitulosPropios/doctorado/http://www.uniovi.es/Vicerrectorados/Postgrado_TitulosPropios/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)
César F.
Acebal
Daniel F.
Lanvin
Sintaxis URL: Nombre del fichero
 Depende del SO del servidor Web
 Las páginas Web generalmente tienen como extensión .html o .htm
 Las extensiones son importantes para que el navegador sepa cómo
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
 etcétera
César F.
Acebal
Daniel F.
Lanvin
Sintaxis URL: Nombre del fichero
 Si no se especifica, el servidor busca un fichero con un
nombre determinado en el directorio especificado
 Normalmente, el index.htmlindex.html o el index.htmindex.htm
 Se puede configurar en el programa que utilicemos como servidor
Web (Apache, IIS...)
César F.
Acebal
Daniel F.
Lanvin
Sintaxis URL: 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://www.midominio.comhttp://www.midominio.com:8080:8080//
En el Caso de OC4J: Puerto 8888.
Ej:
http://localhost:8888http://localhost:8888
César F.
Acebal
Daniel F.
Lanvin
¿Qué es un servidor Web?
 Un programa que atiende las peticiones HTTP llegadas a un
puerto determinado de la máquina
 También se denomina así, por extensión, a la máquina que cuenta
con uno de tales programas
 Ejemplos de servidores Web:
 Apache

Apache HTTP Server Project
 http://httpd.apache.org/
 Internet Information Server (IIS)
César F.
Acebal
Daniel F.
Lanvin
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
 Esto 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
César F.
Acebal
Daniel F.
Lanvin
Funcionamiento de las páginas estáticas
César F.
Acebal
Daniel F.
Lanvin
Funcionamiento de las páginas dinámicas
César F.
Acebal
Daniel F.
Lanvin
Modo de funcionamiento
 El esquema de funcionamiento de las páginas dinámicas es
siempre similar independientemente de en qué se hayan
desarrollado éstas
 CGI, ASP, Servlets/JSP…
 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
Mantenimiento de la sesión
César F.
Acebal
Daniel F.
Lanvin
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
César F.
Acebal
Daniel F.
Lanvin
Alternativas
 Aunque hay varias formas de hacerlo (dependiendo de si trabajamos en
ASP, en J2EE…) la mayoría pasan por el uso de “cookies”
 Algunas de las alternativas son:
 Almacenar toda la información de la sesión, a mano, en una cookie (por
ejemplo, mediante JavaScript)
 Una combinación de cookie (para guardar un ID de usuario) y bases de datos
 Usar el objeto SessionSession (o similar) provisto por los entornos de
programación como ASP o J2EE (Servlets, JSP...)

““URL rewriting”URL rewriting”
 Etcétera
César F.
Acebal
Daniel F.
Lanvin
¿Qué son las cookies?
 Las cookies son pequeñas porciones datos que son
almacenados localmente por el navegador en forma de
pequeños ficheros de texto
 Cada vez que el cliente envía información al servidor, incluye
en la petición HTTP las cookies que previamente haya
guardado provenientes de ese servidor
César F.
Acebal
Daniel F.
Lanvin
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 también se utiliza bastante el atributo expiresexpires
nombre=valor; [expires=fecha; path=directorio;
domain=nombreDeDominio; secure]
nombre=valor; [expires=fecha; path=directorio;
domain=nombreDeDominio; secure]
César F.
Acebal
Daniel F.
Lanvin
URL Rewriting
 Consiste en incluir la información del estado en el propio
URL
/…/comprar.asp?/…/comprar.asp?
paso=3&producto1=01992CX&producto2=ZZ112230&producto3=Hpaso=3&producto1=01992CX&producto2=ZZ112230&producto3=H
J19X25…J19X25…
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.
César F.
Acebal
Daniel F.
Lanvin
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
César F.
Acebal
Daniel F.
Lanvin
Inconvenientes del uso de cookies
 Privacidad
 Otros servidores podrían leer información almacenada en las cookies
del cliente

No son válidas para guardar números de tarjeta, contraseñas y cosas por
el estilo
 Los datos pueden ser alterados
 Un usuario podría modificar el fichero de una cookie
 Lo mismo ocurre con otros mecanismos de cliente: URL,
formularios, etc.
 Aumenta el tráfico por la red
 El estado se transmite con cada petición al servidor
César F.
Acebal
Daniel F.
Lanvin
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
 Tamaño de datos limitado
 Tanto el tamaño máximo permitido por las cookies como la longitud
máxima de un URL pueden darnos problemas para almacenar
sesiones complejas
Servidores de aplicaciones
César F.
Acebal
Daniel F.
Lanvin
¿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 lógica del dominio, ya que servicios de uso común,
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 electrónico
 Es una capa intermedia (middlewaremiddleware) que se sitúa entre el servidor
Web y las aplicaciones y bases de datos subyacentes
César F.
Acebal
Daniel F.
Lanvin
Visión general
Servidor de aplicaciones
(Transacciones, mensajería, servicios Web…)
CORBA J2EE .NET
Aplicación
cliente
Aplicación
cliente
Aplicación
cliente
SGBD
César F.
Acebal
Daniel F.
Lanvin
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…
César F.
Acebal
Daniel F.
Lanvin
Objetivo de los Servidores de Aplicaciones
 Los llamasen como los llamasen, estaban diseñados para
gestionar de forma centralizada el modo en que los
clientes debían conectarse a la base de datos o a los servicios
con los que tenían que interoperar
César F.
Acebal
Daniel F.
Lanvin
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
César F.
Acebal
Daniel F.
Lanvin
Gestión de la sesión
 Como sabemos, HTTP es un protocolo sin sesión
 No permite mantener una conexión abierta entre el cliente y el servidor
más allá de lo que dura la transferencia del documento en cuestión
 En cualquier aplicación de comercio electrónico, es necesario
poder identificar al usuario a través de su navegación por el
sitio Web
 Autenticación, adición de productos al carrito de la compra, etc.
El servidor ha de conservar información entre peticiones del usuario a lo largo de
la duración de una sesión
El servidor ha de conservar información entre peticiones del usuario a lo largo de
la duración de una sesión
César F.
Acebal
Daniel F.
Lanvin
Gestión de la sesión (2)
 La implementación “a mano” se complicaría enormemente
en el caso de contar con varios servidores (equilibrado de
carga)
 La petición de un usuario registrado en la máquina A puede ser
redirigida al servidor B
 Lo lógico es que sea el servidor de aplicaciones quien se
encargue de gestionar la sesión
 Además, debería ser más eficiente que si lo programamos nosotros
mismos
César F.
Acebal
Daniel F.
Lanvin
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 máquina que más desocupada
se encuentre en ese momento
 Mejora de rendimiento de la aplicación
 No es tan sencillo como añadir una nueva máquina y ya está
 Además 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)
Los servidores de aplicaciones proporcionan mecanismos de equilibrado de carga
(aspecto clave para la escalabilidad)
César F.
Acebal
Daniel F.
Lanvin
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
César F.
Acebal
Daniel F.
Lanvin
“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
César F.
Acebal
Daniel F.
Lanvin
Gestión transaccional
 Son un elemento básico de cualquier aplicación comercial
 Evitan que haya información inconsistente
 Sería complejísimo implementarlas “a mano”
 Con un servidor de aplicaciones que tenga esta característica, bastaría con
indicarle dónde empieza y termina la transacción
 Encargándose él de deshacer los pasos intermedios en caso de un error del
sistema
Transacción: secuencia de pasos que, o se ejecutan todos, o si no el sistema
queda en el estado original
Transacción: secuencia de pasos que, o se ejecutan todos, o si no el sistema
queda en el estado original
César F.
Acebal
Daniel F.
Lanvin
Tecnologías actuales
 Actualmente, las dos plataformas más comunes son J2EE y,
más recientemente, ha surgido .NET
 De hecho, hasta hace poco hablar de servidores de aplicaciones era
prácticamente hablar de J2EE

(aunque no debemos hacer tal asociación)
César F.
Acebal
Daniel F.
Lanvin
Ejemplo: arquitectura J2EE

More Related Content

What's hot

Centrales Telefonicas En Barcelona
Centrales Telefonicas En Barcelona
Centrales Telefonicas En Barcelona
Centrales Telefonicas En Barcelona handsomelygown553
 
Terminos del internet 2012
Terminos del internet 2012Terminos del internet 2012
Terminos del internet 2012jipsoncarrielhaz
 
Alfabetización Informática - 1. Conceptos Básicos
Alfabetización Informática - 1. Conceptos BásicosAlfabetización Informática - 1. Conceptos Básicos
Alfabetización Informática - 1. Conceptos BásicosAndy Juan Sarango Veliz
 
Correo electronico formato -ventajas y desventajas -partes y funciones-ZULIMAR
Correo electronico  formato -ventajas y desventajas -partes y funciones-ZULIMARCorreo electronico  formato -ventajas y desventajas -partes y funciones-ZULIMAR
Correo electronico formato -ventajas y desventajas -partes y funciones-ZULIMARmaria matute
 
Internet Y PáGinas Web 3º Eso
Internet Y PáGinas Web 3º EsoInternet Y PáGinas Web 3º Eso
Internet Y PáGinas Web 3º EsoKoldo Parra
 
Terminos de internet diapositivas
Terminos de internet diapositivasTerminos de internet diapositivas
Terminos de internet diapositivasLu Villamil
 
Glosario Acceso a Internet.
 Glosario Acceso a Internet. Glosario Acceso a Internet.
Glosario Acceso a Internet.David Peña
 
Herramientas de la web social
Herramientas de la web socialHerramientas de la web social
Herramientas de la web socialmaria pablos
 
PresentacióN1
PresentacióN1PresentacióN1
PresentacióN1La_Ro
 
Protocolo ftp
Protocolo ftpProtocolo ftp
Protocolo ftpeleni2613
 
Que es internet
Que es internetQue es internet
Que es internetcfalcon12
 
Fiec internet-rev 2009
Fiec internet-rev 2009Fiec internet-rev 2009
Fiec internet-rev 2009Andres Alfonso
 
Tema 1 fundamentos de comunicación y redes
Tema 1   fundamentos de comunicación y redesTema 1   fundamentos de comunicación y redes
Tema 1 fundamentos de comunicación y redesRicardo Blanco Hidalgo
 

What's hot (17)

Centrales Telefonicas En Barcelona
Centrales Telefonicas En Barcelona
Centrales Telefonicas En Barcelona
Centrales Telefonicas En Barcelona
 
Terminos del internet 2012
Terminos del internet 2012Terminos del internet 2012
Terminos del internet 2012
 
Alfabetización Informática - 1. Conceptos Básicos
Alfabetización Informática - 1. Conceptos BásicosAlfabetización Informática - 1. Conceptos Básicos
Alfabetización Informática - 1. Conceptos Básicos
 
Correo electronico formato -ventajas y desventajas -partes y funciones-ZULIMAR
Correo electronico  formato -ventajas y desventajas -partes y funciones-ZULIMARCorreo electronico  formato -ventajas y desventajas -partes y funciones-ZULIMAR
Correo electronico formato -ventajas y desventajas -partes y funciones-ZULIMAR
 
Terminos del internet 2012
Terminos del internet 2012Terminos del internet 2012
Terminos del internet 2012
 
Internet Y PáGinas Web 3º Eso
Internet Y PáGinas Web 3º EsoInternet Y PáGinas Web 3º Eso
Internet Y PáGinas Web 3º Eso
 
Glosario de Terminos de Internet
Glosario de Terminos de InternetGlosario de Terminos de Internet
Glosario de Terminos de Internet
 
Anexo b glosario
Anexo b glosarioAnexo b glosario
Anexo b glosario
 
Diapo01
Diapo01Diapo01
Diapo01
 
Terminos de internet diapositivas
Terminos de internet diapositivasTerminos de internet diapositivas
Terminos de internet diapositivas
 
Glosario Acceso a Internet.
 Glosario Acceso a Internet. Glosario Acceso a Internet.
Glosario Acceso a Internet.
 
Herramientas de la web social
Herramientas de la web socialHerramientas de la web social
Herramientas de la web social
 
PresentacióN1
PresentacióN1PresentacióN1
PresentacióN1
 
Protocolo ftp
Protocolo ftpProtocolo ftp
Protocolo ftp
 
Que es internet
Que es internetQue es internet
Que es internet
 
Fiec internet-rev 2009
Fiec internet-rev 2009Fiec internet-rev 2009
Fiec internet-rev 2009
 
Tema 1 fundamentos de comunicación y redes
Tema 1   fundamentos de comunicación y redesTema 1   fundamentos de comunicación y redes
Tema 1 fundamentos de comunicación y redes
 

Viewers also liked

5 caracteristicas tecnicas-del-forjado-de-alveoplaca-
5 caracteristicas tecnicas-del-forjado-de-alveoplaca-5 caracteristicas tecnicas-del-forjado-de-alveoplaca-
5 caracteristicas tecnicas-del-forjado-de-alveoplaca-ReiVaxAzacy
 
Solucion de matematicas
Solucion de matematicasSolucion de matematicas
Solucion de matematicasMaría Rea
 
6 proyecto de los forjados de alveoplaca
6 proyecto de los forjados de alveoplaca6 proyecto de los forjados de alveoplaca
6 proyecto de los forjados de alveoplacaReiVaxAzacy
 
Potência em circuitos trifásicos
Potência em circuitos trifásicosPotência em circuitos trifásicos
Potência em circuitos trifásicosDouglas Mota
 
ventas de computadoras-solange
ventas de computadoras-solangeventas de computadoras-solange
ventas de computadoras-solangesolcitho123
 

Viewers also liked (11)

5 caracteristicas tecnicas-del-forjado-de-alveoplaca-
5 caracteristicas tecnicas-del-forjado-de-alveoplaca-5 caracteristicas tecnicas-del-forjado-de-alveoplaca-
5 caracteristicas tecnicas-del-forjado-de-alveoplaca-
 
Solucion de matematicas
Solucion de matematicasSolucion de matematicas
Solucion de matematicas
 
cruzresume316
cruzresume316cruzresume316
cruzresume316
 
Jafraaaab
JafraaaabJafraaaab
Jafraaaab
 
6 proyecto de los forjados de alveoplaca
6 proyecto de los forjados de alveoplaca6 proyecto de los forjados de alveoplaca
6 proyecto de los forjados de alveoplaca
 
Potência em circuitos trifásicos
Potência em circuitos trifásicosPotência em circuitos trifásicos
Potência em circuitos trifásicos
 
ventas de computadoras-solange
ventas de computadoras-solangeventas de computadoras-solange
ventas de computadoras-solange
 
Marysol
MarysolMarysol
Marysol
 
Parecer fiocruz-csa
Parecer fiocruz-csaParecer fiocruz-csa
Parecer fiocruz-csa
 
Tarefa semana 2 grupo 05 wilton
Tarefa semana 2 grupo 05 wiltonTarefa semana 2 grupo 05 wilton
Tarefa semana 2 grupo 05 wilton
 
Second Hand Smoke in Minnesota Muli-Unit Housing
Second Hand Smoke in Minnesota Muli-Unit HousingSecond Hand Smoke in Minnesota Muli-Unit Housing
Second Hand Smoke in Minnesota Muli-Unit Housing
 

Similar to 01. introducción al web (20)

Servidores
ServidoresServidores
Servidores
 
Internet Y Pag Web 2º Eso
Internet Y Pag Web 2º EsoInternet Y Pag Web 2º Eso
Internet Y Pag Web 2º Eso
 
Internet TICS
Internet TICSInternet TICS
Internet TICS
 
Cuestionario
CuestionarioCuestionario
Cuestionario
 
Internet(4)
Internet(4)Internet(4)
Internet(4)
 
Conceptos internet
Conceptos internetConceptos internet
Conceptos internet
 
Conceptos internet
Conceptos internetConceptos internet
Conceptos internet
 
Resumen del tema 6
Resumen del tema 6 Resumen del tema 6
Resumen del tema 6
 
Actividades básicas
Actividades básicasActividades básicas
Actividades básicas
 
Como se creo internet
Como se creo internetComo se creo internet
Como se creo internet
 
Teoria Internet y Sitios Web
Teoria Internet y Sitios WebTeoria Internet y Sitios Web
Teoria Internet y Sitios Web
 
Interne 4
Interne 4Interne 4
Interne 4
 
Interne 4
Interne 4Interne 4
Interne 4
 
Internet
InternetInternet
Internet
 
3 internet
3 internet3 internet
3 internet
 
Internetbasico
InternetbasicoInternetbasico
Internetbasico
 
Informatica (4)
Informatica (4)Informatica (4)
Informatica (4)
 
Internet
InternetInternet
Internet
 
INTERNET
INTERNETINTERNET
INTERNET
 
Internet Avanzado
Internet AvanzadoInternet Avanzado
Internet Avanzado
 

01. introducción al web

  • 1. Introducción al desarrollo de aplicaciones Web
  • 2. César F. Acebal Daniel F. Lanvin Introducción a Internet y el Web  El Web es una vasta colección de documentos en Internet que están enlazados a través de los hiperenlaces  Internet: millones de ordenadores conectadosInternet: millones de ordenadores conectados Un conjunto de redes heterogéneas conectadas entre sí mediante el protocolo TCP/IP  Los hiperenlaces permiten a los usuarios acceder aLos hiperenlaces permiten a los usuarios acceder a documentos situados en otros servidores Web, sindocumentos situados en otros servidores Web, sin preocuparse de su ubicaciónpreocuparse de su ubicación
  • 4. César F. Acebal Daniel F. Lanvin Tecnologías claves de Internet  La infraestructura de Internet es proporcionada fundamentalmente por tres tecnologías:  La conmutación de paquetesconmutación de paquetes  El protocolo TCP/IPTCP/IP  La arquitectura cliente/servidorcliente/servidor
  • 5. César F. Acebal Daniel F. Lanvin Conmutación de paquetes  Es la tecnología que emplea la red Internet  Los mensajes se dividen en paquetes  A cada paquete se le añaden la dirección de origen y destino, el número de secuencia, información de control de errores…  En vez de enviarse directamente a la dirección de destino, los paquetes viajan de una máquina a otra hasta alcanzar su destino  Estas máquinas se denominan routersrouters  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 encaminamientoalgoritmos de encaminamiento (“routing algorithms”)
  • 6. César F. Acebal Daniel F. Lanvin TCP/IP  Si bien la conmutación 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)Transmission Control Protocol (TCP)  Internet Protocol (IP)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
  • 7. César F. Acebal Daniel F. Lanvin Direcciones IP  Cada ordenador conectado a Internet debe tener una dirección para poder recibir los paquetes TCP. Ésta 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)
  • 8. César F. Acebal Daniel F. Lanvin 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.esping www.euitio.uniovi.es  Los URL (Uniform Resource Locator) son las direcciones que escribimos en el navegador  Como http://www.euitio.uniovi.es/http://www.euitio.uniovi.es/
  • 9. César F. Acebal Daniel F. Lanvin Computación Cliente/Servidor  En este modelo de computación distribuida, un cliente solicita una acción a un servidor, que le devuelve los resultados  Puede haber diversos tipos de clientes, desde los más ligerosligeros (como un navegador Web, que únicamente es capaz de mostrar documentos HTML) hasta clientes pesadosclientes pesados que también 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 personalesordenadores personales  Toda Internet es una inmensa red cliente/servidor
  • 11. César F. Acebal Daniel F. Lanvin 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á ejecutándose en el ordenador remoto y que se encarga de entregar el documento solicitado a nuestro navegador
  • 12. César F. Acebal Daniel F. Lanvin Nacimiento del World Wide Web  En 1989, Tim Berners-Lee, en el laboratorio europeo de partículas (CERN), en Suiza, crea un lenguaje de etiquetas para representar y enlazar documentos  HTMLHTML —HyperText Markup Language—HyperText Markup Language  Lenguaje de Marcado de HipertextoLenguaje de Marcado de Hipertexto  Berners-Lee creó las versiones iniciales de:  HTMLHTML, HTTPHTTP, un servidor Webservidor Web y un navegadornavegador  Los cuatro componentes esenciales del Web Tim Berners-Lee
  • 13. César F. Acebal Daniel F. Lanvin ¿Cómo funciona? 1. El usuario solicita un documento tecleando su dirección 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 cuál es la IP de www.uniovi.es: 156.35.14.3  Cada ordenador en Internet está identificado por una dirección única denominada IP  El DNS traduce de nombres lógicos a direcciones físicas. El DNS es un servicio de nombrado 3. Navegador y servidor web comienzan un diálogo a través del protocolo HTTP (protocolo de transferencia de hipertexto) 1. GET /HTTP/1.0 2. El servidor, si todo es correcto, devuelve el documento solicitado más información adicional
  • 14. César F. Acebal Daniel F. Lanvin ¿Cómo funciona? 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
  • 15. César F. Acebal Daniel F. Lanvin Conceptos Básicos de la WEB  Un servidor Web es un ordenador en Internet que sirve páginas Web y contenido estático en general a petición  Para ello, debe tener un programa ejecutándose que haga de servidor Web: Apache, IIS, etcétera  El usuario accede al Web a través de un navegador (browser)  Se encarga de solicitar las páginas Web al servidor y de mostrarlas
  • 16. César F. Acebal Daniel F. Lanvin El Lenguaje 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)
  • 17. César F. Acebal Daniel F. Lanvin HTML es un lenguaje  Como tal, tiene unas reglas que deben ser cumplidas, esto es, una sintaxis, una gramática... igual que el español o cualquier otro lenguaje informático  Es además un lenguaje informático, para ser procesado por ordenadores; pero no es un lenguaje de programación
  • 18. César F. Acebal Daniel F. Lanvin HTML, lenguaje de hipertexto  Por hipertexto designamos al texto al que se le añade una propiedad: determinadas porciones de texto pueden ser enlazadas a otros documentos  De ahí surge el concepto de navegación: 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 búsqueda de la información
  • 19. César F. Acebal Daniel F. Lanvin Especificación de HTML  La especificación del lenguaje HTML y de la mayoría de tecnologías relacionadas con el Web está definida por el World Wide Web Consortium (W3C)  www.w3c.org
  • 20. César F. Acebal Daniel F. Lanvin 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>Introducción a HTML</title> </head> <body> <h1>Mi primera página Web</h1> <p> Éste es el equivalente al típico <em>¡Hola, mundo!</em> pero en HTML (cuya <a href="http://www.w3.org/MarkUp/" title="Especificación de las distintas versiones de HTML y XHTML en el W3C">especificación</a> puede encontrarse en el sitio Web del <acronym title="World Wide Web Consortium">W3C</acronym>). </p> </body> </html> holaMundo.htmlholaMundo.html
  • 21. César F. Acebal Daniel F. Lanvin El protocolo 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
  • 22. César F. Acebal Daniel F. Lanvin 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 RespuestaRespuesta PeticiónPetición
  • 23. César F. Acebal Daniel F. Lanvin Las URLs  URI: Uniform Resource Identifier  URL: Uniform Resource Locator  Un URL es la dirección única de todo documento en el Web  http://www.eutio.uniovi.es/http://www.eutio.uniovi.es/
  • 24. César F. Acebal Daniel F. Lanvin Sintaxis de un URL  Ejemplos:  http://www.princast.es/http://www.princast.es/  http://195.55.30.17/http://195.55.30.17/  http://www.cfacebal.com/http://www.cfacebal.com/  http://www.cfacebal.com/index.htmlhttp://www.cfacebal.com/index.html  http://web.uniovi.es/Vicerrectorados/Extension/http://web.uniovi.es/Vicerrectorados/Extension/  http://localhost:8080/http://localhost:8080/  http://petra.euitio.uniovi.es/http://petra.euitio.uniovi.es/ protocolo://dirección[:puerto]/directorio/ficheroprotocolo://dirección[:puerto]/directorio/fichero
  • 25. César F. Acebal Daniel F. Lanvin Sintaxis URL: 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)HTTP (HyperText Transfer 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í: TCPTCP  Cada vez que tecleamos una dirección o pulsamos un enlace el navegador se comunica vía HTTP con el servidor Web indicado
  • 26. César F. Acebal Daniel F. Lanvin Sintaxis URL: Ejemplos de protocolos file Permite acceder a un fichero en el sistema de ficheros local ftp File Transfer Protocol http Páginas Web Las URLs no son algo específico de internet o de la WEB.  Ejemplo: Abrir el internet explorer y, en lugar de poner una url http en la barra de navegación, abrir el fichero local c:boot.ini mediante: file://C:boot.ini
  • 27. César F. Acebal Daniel F. Lanvin Sintaxis URL: 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
  • 28. César F. Acebal Daniel F. Lanvin Sintaxis URL: Dirección del sitio  También podría ser directamente la dirección IP  http://156.35.14.3/  Los nombres de dominio no distinguen entre mayúsculas y minúsculas  http://www.uniovi.es/  http://WWW.UNIOVI.ES/  http://wWw.UniOvi.es/  Tampoco (para nuestra desgracia) tienen Ñs!. Ej: http://www.eldiariomontanes.es http://www.lanuevaespana.es
  • 29. César F. Acebal Daniel F. Lanvin Sintaxis URL: Directorio  Hay que indicar la ruta hasta el fichero deseado  Como mínimo, debe ir la barra (“/”)  http://www.uniovi.eshttp://www.uniovi.es//  Si no la ponemos, la pone el navegador por nosotros  También se puede indicar un subdirectorio:  http://www.uniovi.es/Vicerrectorados/Postgrado_TitulosPropios/doctorado/http://www.uniovi.es/Vicerrectorados/Postgrado_TitulosPropios/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)
  • 30. César F. Acebal Daniel F. Lanvin Sintaxis URL: Nombre del fichero  Depende del SO del servidor Web  Las páginas Web generalmente tienen como extensión .html o .htm  Las extensiones son importantes para que el navegador sepa cómo 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  etcétera
  • 31. César F. Acebal Daniel F. Lanvin Sintaxis URL: Nombre del fichero  Si no se especifica, el servidor busca un fichero con un nombre determinado en el directorio especificado  Normalmente, el index.htmlindex.html o el index.htmindex.htm  Se puede configurar en el programa que utilicemos como servidor Web (Apache, IIS...)
  • 32. César F. Acebal Daniel F. Lanvin Sintaxis URL: 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://www.midominio.comhttp://www.midominio.com:8080:8080// En el Caso de OC4J: Puerto 8888. Ej: http://localhost:8888http://localhost:8888
  • 33. César F. Acebal Daniel F. Lanvin ¿Qué es un servidor Web?  Un programa que atiende las peticiones HTTP llegadas a un puerto determinado de la máquina  También se denomina así, por extensión, a la máquina que cuenta con uno de tales programas  Ejemplos de servidores Web:  Apache  Apache HTTP Server Project  http://httpd.apache.org/  Internet Information Server (IIS)
  • 34. César F. Acebal Daniel F. Lanvin 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  Esto 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
  • 37. César F. Acebal Daniel F. Lanvin Modo de funcionamiento  El esquema de funcionamiento de las páginas dinámicas es siempre similar independientemente de en qué se hayan desarrollado éstas  CGI, ASP, Servlets/JSP…  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
  • 39. César F. Acebal Daniel F. Lanvin 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. César F. Acebal Daniel F. Lanvin Alternativas  Aunque hay varias formas de hacerlo (dependiendo de si trabajamos en ASP, en J2EE…) la mayoría pasan por el uso de “cookies”  Algunas de las alternativas son:  Almacenar toda la información de la sesión, a mano, en una cookie (por ejemplo, mediante JavaScript)  Una combinación de cookie (para guardar un ID de usuario) y bases de datos  Usar el objeto SessionSession (o similar) provisto por los entornos de programación como ASP o J2EE (Servlets, JSP...)  ““URL rewriting”URL rewriting”  Etcétera
  • 41. César F. Acebal Daniel F. Lanvin ¿Qué son las cookies?  Las cookies son pequeñas porciones datos que son almacenados localmente por el navegador en forma de pequeños ficheros de texto  Cada vez que el cliente envía información al servidor, incluye en la petición HTTP las cookies que previamente haya guardado provenientes de ese servidor
  • 42. César F. Acebal Daniel F. Lanvin 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 también se utiliza bastante el atributo expiresexpires nombre=valor; [expires=fecha; path=directorio; domain=nombreDeDominio; secure] nombre=valor; [expires=fecha; path=directorio; domain=nombreDeDominio; secure]
  • 43. César F. Acebal Daniel F. Lanvin URL Rewriting  Consiste en incluir la información del estado en el propio URL /…/comprar.asp?/…/comprar.asp? paso=3&producto1=01992CX&producto2=ZZ112230&producto3=Hpaso=3&producto1=01992CX&producto2=ZZ112230&producto3=H J19X25…J19X25… 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.
  • 44. César F. Acebal Daniel F. Lanvin 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
  • 45. César F. Acebal Daniel F. Lanvin Inconvenientes del uso de cookies  Privacidad  Otros servidores podrían leer información almacenada en las cookies del cliente  No son válidas para guardar números de tarjeta, contraseñas y cosas por el estilo  Los datos pueden ser alterados  Un usuario podría modificar el fichero de una cookie  Lo mismo ocurre con otros mecanismos de cliente: URL, formularios, etc.  Aumenta el tráfico por la red  El estado se transmite con cada petición al servidor
  • 46. César F. Acebal Daniel F. Lanvin 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  Tamaño de datos limitado  Tanto el tamaño máximo permitido por las cookies como la longitud máxima de un URL pueden darnos problemas para almacenar sesiones complejas
  • 48. César F. Acebal Daniel F. Lanvin ¿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 lógica del dominio, ya que servicios de uso común, 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 electrónico  Es una capa intermedia (middlewaremiddleware) que se sitúa entre el servidor Web y las aplicaciones y bases de datos subyacentes
  • 49. César F. Acebal Daniel F. Lanvin Visión general Servidor de aplicaciones (Transacciones, mensajería, servicios Web…) CORBA J2EE .NET Aplicación cliente Aplicación cliente Aplicación cliente SGBD
  • 50. César F. Acebal Daniel F. Lanvin 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…
  • 51. César F. Acebal Daniel F. Lanvin Objetivo de los Servidores de Aplicaciones  Los llamasen como los llamasen, estaban diseñados para gestionar de forma centralizada el modo en que los clientes debían conectarse a la base de datos o a los servicios con los que tenían que interoperar
  • 52. César F. Acebal Daniel F. Lanvin 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  …
  • 54. César F. Acebal Daniel F. Lanvin Gestión de la sesión  Como sabemos, HTTP es un protocolo sin sesión  No permite mantener una conexión abierta entre el cliente y el servidor más allá de lo que dura la transferencia del documento en cuestión  En cualquier aplicación de comercio electrónico, es necesario poder identificar al usuario a través de su navegación por el sitio Web  Autenticación, adición de productos al carrito de la compra, etc. El servidor ha de conservar información entre peticiones del usuario a lo largo de la duración de una sesión El servidor ha de conservar información entre peticiones del usuario a lo largo de la duración de una sesión
  • 55. César F. Acebal Daniel F. Lanvin Gestión de la sesión (2)  La implementación “a mano” se complicaría enormemente en el caso de contar con varios servidores (equilibrado de carga)  La petición de un usuario registrado en la máquina A puede ser redirigida al servidor B  Lo lógico es que sea el servidor de aplicaciones quien se encargue de gestionar la sesión  Además, debería ser más eficiente que si lo programamos nosotros mismos
  • 56. César F. Acebal Daniel F. Lanvin 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 máquina que más desocupada se encuentre en ese momento  Mejora de rendimiento de la aplicación  No es tan sencillo como añadir una nueva máquina y ya está  Además 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) Los servidores de aplicaciones proporcionan mecanismos de equilibrado de carga (aspecto clave para la escalabilidad)
  • 57. César F. Acebal Daniel F. Lanvin 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
  • 58. César F. Acebal Daniel F. Lanvin “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
  • 59. César F. Acebal Daniel F. Lanvin Gestión transaccional  Son un elemento básico de cualquier aplicación comercial  Evitan que haya información inconsistente  Sería complejísimo implementarlas “a mano”  Con un servidor de aplicaciones que tenga esta característica, bastaría con indicarle dónde empieza y termina la transacción  Encargándose él de deshacer los pasos intermedios en caso de un error del sistema Transacción: secuencia de pasos que, o se ejecutan todos, o si no el sistema queda en el estado original Transacción: secuencia de pasos que, o se ejecutan todos, o si no el sistema queda en el estado original
  • 60. César F. Acebal Daniel F. Lanvin Tecnologías actuales  Actualmente, las dos plataformas más comunes son J2EE y, más recientemente, ha surgido .NET  De hecho, hasta hace poco hablar de servidores de aplicaciones era prácticamente hablar de J2EE  (aunque no debemos hacer tal asociación)