Sistemas Distribuidos
Basados en la WEB
Andrew Tanembaum
M. L. Liu
Contenido
Introducción
Lenguajes: HTML, XML
El Protocolo: HTTP
Contenido Web Generado en Forma
Dinámica: CGI
Sesiones Web y datos de estado de la
sesión.
Applets
Servlets
Contenido
Servicios web
SOAP
1
Aplicaciones en Internet
La aplicación distribuida más conocida es la
World Wide Web o la Web
Se trata de un sistema distribuido de
servidores HTTP y clientes WEB.
La web nació gracias a Tim Berners-Lee a
finales de 1990 en el CERN, el laboratorio
Europeo de Física de partículas de Suiza.
Aplicaciones en Internet
La idea era permitir que un numeroso y
geográficamente disperso grupo de
investigadores tuviera acceso a documentos
compartidos.
Vinculando los documentos entre sí, fue fácil
integrarlos desde diferentes proyectos en un
nuevo documento sin necesidad de realizar
cambios centralizados.
Arquitectura
El WWW es una aplicación cliente/servidor
basada en el protocolo HTTP (hypertext
Transfer Protocol, Protocolo de Transferencia
de Hipertexto)
Un servidor WEB es un servidor orientado a
conexión que implementa HTTP y que por
defecto ejecuta en el puerto 80.
2
Arquitectura
La parte central de un sitio WEB está
conformada por un proceso que tiene acceso
a un sistema de archivos local que guarda
documentos.
El modo más simple de referirse a un
documento es por medio de una referencia
llamada localizador uniforme de recursos
(URL). El URL especifica la localización del
documento, a menudo incluyendo el nombre
de su servidor.
Arquitectura
Un usuario ejecuta un cliente WWW
(normalmente conocido como navegador) en
una máquina local.
Un navegador es responsable de desplegar
adecuadamente el documento.
También acepta entradas del usuario, en su
mayor parte para permitirle seleccionar
referencias a otro documento, el cual el
navegador busca y despliega.
Client machine
Server machine
Browser
Web server
2. Server fetches
document from
local file
OS
3. Response
1. Get document request (HTTP)
3
Documentos Web
-
Todo en la web llega en forma de
documento.
- Un documento no sólo contiene texto
simple, sino que puede poseer
características dinámicas tales como: audio,
video, animaciones, etc.
- Un documento tiene dos partes: la parte
principal o plantilla y la información en sí. La
parte principal se construye en un lenguaje
de marcas.
HTML
Hypertext Markup Language o Lenguaje de
Marcado de hypertexto, es el lenguaje de
etiquetado (tags) utilizado para crear
documentos que pueden ser recuperados
usando WWW.
HTML permite insertar vínculos a otros
documentos. Cuando se activan o se
seleccionan estos vínculos, el documento
requerido será solicitado al servidor.
Ejemplo Código de HTML
This is a paragraph.
This is a paragraph.
This is a paragraph
<html>
<body>
<p>This is a paragraph.</p>
<p>This is a paragraph.</p>
<p>This is a paragraph.</p>
</body>
</html>
4
Ejemplo Código de HTML
This text is a link to a page on this Web site.
This text is a link to a page on the World Wide
Web.
<html>
<body>
<p>
<a href="lastpage.htm">
This text</a> is a link to a page on
this Web site.
</p>
<p>
<a href="http://www.microsoft.com/">
This text</a> is a link to a page on
the World Wide Web.
</p>
</body>
</html>
XML (lenguaje de marcado
extensible)
Mientras que HTML permite etiquetar un
documento para la presentación posterior de
la información, el XML permite estructurar su
información.
Utiliza etiquetas para describir la información
contenida en el documento.
HTML y XML incluyen toda clase de
señalizaciones que se refieren a documentos
embebidos (empotrados).
Ejemplo XML
<note>
<to>Mary</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
5
Ejemplo XML
<breakfast_menu>
<food>
<name>Belgian Waffles</name>
<price>$5.95</price>
<description>
two of our famous Belgian Waffles with plenty of real maple syrup
</description>
<calories>650</calories>
</food>
<food>
<name>Strawberry Belgian Waffles</name>
<price>$7.95</price>
<description>
light Belgian waffles covered with strawberries and whipped cream
</description>
<calories>900</calories>
</food>
</breakfast_menu>
MIME
Los documentos insertados pueden ser de varios
tipos.
Cada documento insertado lleva un tipo MIME
(multipurpose Internet Mail Interchange) asociado.
Tipo
text
message
application
image
audio
Vídeo
Subtipo
Plain rich text, html, xml, etc.
E-mail, news
Octect-stream (puede usarse para enviar
archivosJava.class) Adobe-postcript, xml
Jpeg, gif
Basic, midi, mp3
Mpeg, quicktime
HTTP
Es un protocolo, orientado a conexión, sin estado y
de petición–respuesta.
En http/1.0 cada conexión sólo permite una ronda
de petición-respuesta: un cliente obtiene una
conexión y manda una petición; el servidor procesa
la petición, emite una respuesta y cierra la conexión.
Los clientes WEB o navegadores implementan el
protocolo, para poder conectarse a los servidores
web y obtener documentos HTML.
Un servidor HTTP o servidor WEB ejecuta por
defecto en el puerto 80.
6
HTTP
Si un cliente necesita contactar al mismo
servidor más de una vez en una misma sesión
debe reconectarse al servidor por cada nueva
petición.
Este esquema trabaja bien si sólo se van a
recibir documentos simples, no obstante, no es
muy eficiente para recibir documentos que
contienen un gran número de enlaces a otros
documentos.
HTTP
Como resultado http/1.0 se extendió para
permitir la cabecera de petición Connection:
Keep-Alive, que es enviada por los clientes que
desean una conexión persistente con el
servidor; el servidor mantiene la conexión
abierta después de enviar la respuesta.
En http/1.1 las conexiones son persistentes por
defecto.
El protocolo, independientemente de si se
mantiene o no la sesión abierta sigue siendo sin
estado. Cada petición se maneja como una
nueva.
HTTP
Http es un protocolo de petición-respuesta
basado en texto, ya que tanto la petición
como la respuesta son cadenas de
caracteres. Cada petición y respuesta están
compuestas, en orden, por las siguientes
partes:
La línea de petición/respuesta
Una sección de cabecera
Una línea en blanco
El cuerpo.
7
Ejemplos
URI Solicitado
Protocolo
Método http
GET /index.html HTTP/1.1
<línea en blanco>
sección de cabecera
Métodos:
GET: para solicitar el contenido de un documento WEB referenciado por el URI
especificado.
HEAD: Para solicitar sólo la cabecera del documento, no el documento completo.
POST: Usado para enviar datos a un proceso servidor.
HTTP
La sección de cabecera puede estar compuesta por
una o más líneas con el siguiente formato:
<clave>: <valor>\r\n
Algunas de las claves son:
- Accept: especifica los tipos de contenido aceptados
por el cliente.
- User-Agent: especifica el tipo de navegador.
- Connection: Se puede especificar “Keep-Alive”
- Host: Nombre del servidor.
Ejemplos
HEAD / HTTP/1.1
Accept:*/*
Connection: Keep-Alive
Host: algunaMaquina.com
User-Agent: Generic
<linea en blanco>
POST /cgi/miServidor.cgi HTTP/1.0
Accept: */*
Connection: Keep-Alive
Host: algunaMaquina.com
User-Agent: Generic
Content-type: application/x-www.form-urlencoded
Content-length: 11
<linea en blanco>
Nombre=jorge&
[email protected]
La especificación del tipo de contenido sigue un
esquema establecido en el protocolo conocido
como MIME
8
Códigos devueltos por HTTP
En respuesta a un petición del cliente, el
servidor HTTP debe enviar una respuesta. La
respuesta también se compone de varias
partes:
1. La respuesta o línea de estado
2. Una sección de cabecera
3. Una línea en blanco
El cuerpo.
Códigos devueltos por HTTP
Los códigos de estado son los siguientes:
100-199 Informativo
200-299 Petición del cliente satisfactoria
300-399 Petición del cliente redirigida
400-499 Petición del Cliente incompleta.
500-599 Errores en el servidor.
Ejemplos:
HTTP/1.0 200 OK
HTTP/1.1 404 NOT FOUND
Contenido WEB generado en
forma dinámica
Al principio la web se utilizaba para transmitir
contenido estático: un archivo plano, un archivo con
una imagen.
Según fue evolucionando, las aplicaciones
comenzaron a utilizar http con diferentes propósitos:
El navegador puede recibir datos basados en información
dinámica introducidos durante una sesión. Ejemplo: Una
aplicación web típica, como el carrito de compras requiere
el envío de datos introducidos por el cliente a tiempo de
ejecución.
9
Contenido WEB generado en
forma dinámica
CGI (Interfaz de Compuerta común) define la
forma estándar mediante la cual un servidor
WEB es capaz de ejecutar un programa
(script cgi) tomando los datos de un usuario
como entrada.
En general los datos del usuario provienen
de un formulario html; este formulario
especifica el programa a ser ejecutado del
lado del servidor, junto con valores de los
parámetros.
Contenido WEB generado en
forma dinámica
Cuando el servidor ve la solicitud, inicia el
programa nombrado en la solicitud y
transfiere los valores del parámetro. El
programa realiza su trabajo y, por lo general,
regresa los resultados en la forma de un
documento que podrá desplegar el
navegador donde se encuentra el usuario.
2. Start process to fetch document
1. Get request
5. Return result
HTTP
request
handler
3
Comentarios de: Sistemas Distribuidos Basados en la WEB (0)
No hay comentarios