Professional Documents
Culture Documents
Lámina 1
Lámina 2
Conmutación de Paqutes
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 conmutación
de circuitos, como la telefónica
El primer libro sobre esta tecnología data de 1964
Lámina 3
Conmutación de Paquetes
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 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”)
Lámina 4
Ventajas de la Conmutación 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 información de
control, que no formaría parte del mensaje en sí a transmitir
Si algunas líneas estuvieran caídas o demasiado
ocupadas, los paquetes se envían por otra de las
disponibles
Lámina 5
Protocolo 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)
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
Lámina 6
Arquitectura TCP/IP
Lámina 8
Lámina 10
Lámina 12
www.google.com
index.html
Internet
enlace
El usuario teclea
http://www.gestorinc.com en su
navegador
Lámina 13
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 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
Lámina 14
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
Si una página contiene otros objetos (imágenes, frames,
etc.) cada uno de ellos inicia una nueva petición HTTP
Por omisión, una petición HTTP se dirige al puerto 80
Por eso casi nunca la especificamos
Lámina 15
HTTP
Protocolo a nivel de la capa de Aplicación
Al igual que SMTP, es un protocolo ASCII, que usa
MIME para transferir información no ASCII
Tipos de peticiones
GET, POST, PUT, DELETE, TRACE, OPTIONS, HEAD
Las dos tipos de peticiones más relevantes en
aplicaciones web son GET y POST, se diferencian por la
forma en que se envían sus parámetros.
Lámina 16
HTTP - GET
Parámetros en peticiones GET
URL?par1=val1&par2=val2 ... &parN=valN
Ejemplo en una página HTML
...
<a href=“/forecast?city=uio&state=PICH”>Temperatura en QUITO</a>
...
Al hacer clic en el enlace anterior, se le enviaría una petición
GET /forecast?city=uio&state=PICH al servidor web del que
nos hemos bajado la página.
Si un parámetro par=val aparece más de una vez, el
parámetro correspondiente es multivaluado (su valor es un
arreglo de valores)
Lámina 17
HTTP - POST
Suelen usarse para enviar los datos de un formulario HTML
Los datos se envían como parámetros, pero éstos no forman
parte de la URL , sino que se envían como parte del cuerpo
del mensaje.
El cliente (navegador) codifica automáticamente los
valores de los parámetros y los envía al servidor.
Ejemplo en un formulario HTML
...
<form action=“/forecast” method=“POST”>
City: <input type=“text” name=“city”>
State: <input type=“text” name=“state”>
<p>
<input type=“submit”>
</form>
Lámina 18
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)
Es además un lenguaje informático, para ser procesado
por ordenadores; pero no es un lenguaje de
programación
Lámina 19
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
Nota: Ahora, HTML ha dado lugar a una variación del
mismo denominada XHTML
Páginas Estáticas y Dinámicas
Lámina 1
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)
Lámina 2
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, ya
que hay que eso implica o bien modificar, a mano, las páginas
existentes, o bien crear una nueva
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
Lámina 3
Páginas Dinámicas
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
Sitio Web y Aplicación Web
Lámina 1
[Conallen 99]
Lámina 2
Lámina 1
Servidor de Aplicaciones
Es un programa que provee la infraestructura necesaria
para las aplicaciones Web empresariales
Lámina 2
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
Lámina 3
Equilibrado de Carga
Los servidores de aplicaciones proporcionan
mecanismos de 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
Además de la escalabilidad, se consigue una mayor
tolerancia a fallos
Lámina 4
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 repositorios XML, etc.
Los servidores de aplicaciones son también importantes, por tanto,
como mecanismo de integración de sistemas heredados
Lámina 5
“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
Lámina 6
Gestión transaccional
Transacción: secuencia de pasos que, o se ejecutan
todos, o si no el sistema queda en el estado original
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