You are on page 1of 18

Tecnologías Claves de Internet

Lámina 1

Tecnologías Claves de Internet


 La infraestructura de Internet es proporcionada
fundamentalmente por tres tecnologías:
 La conmutación de paquetes
 El protocolo TCP/IP
 La arquitectura cliente/servidor

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

Capas del Protocolo TCP/IP


La familia de protocolos TCP/IP se divide en cuatro capas:
 La capa de red es la 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…
 La capa de Internet es donde se sitúa el protocolo IP
 Esquema de direcciones, encaminamiento de los mensajes…
 En la capa de transporte está TCP
 Envía acuses de recibo, reagrupa el mensaje en destino, vuelve
a mandar los paquetes perdidos o defectuosos…
 Por último, en la capa de aplicación están los programas que
hacen uso de los servicios proporcionados por las capas
inferiores
 HTTP (HyperText Transfer Protocol), FTP (File Transfer
Protocol), SMTP (Simple Mail Transfer Protocol)…
Lámina 7

Arquitectura TCP/IP

Lámina 8

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.gestorinc.com)
 El sistema de nombres de domino (DNS) permite que
éstas se resuelvan a direcciones IP
 Ejemplo: ping www.gestorinc.com
 Los URL (Uniform Resource Locator) son las
direcciones que escribimos en el navegador
 Como http://www.euitio.uniovi.es/
Lámina 9

Diferencia entre Internet y Web


 Internet: millones de ordenadores conectados
 Un conjunto de redes heterogéneas conectadas entre sí
mediante el protocolo TCP/IP
 El Web es una vasta colección de documentos en
Internet que están enlazados a través de los
hiperenlaces
 Los hiperenlaces permiten a los usuarios acceder a
documentos situados en otros servidores Web, sin
preocuparse de su ubicación

Lámina 10

Diferencia entre Internet y 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
Lámina 11

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
 HTML : HyperText Markup Language
 Berners-Lee creó las versiones iniciales de:
 HTML, HTTP, un servidor Web y un navegador
 Los cuatro componentes esenciales del Web

Lámina 12

Visión general del Web

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

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
Lámina 20

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

Sitio Web y Aplicación Web


 “Una aplicación Web es un sitio Web donde la
navegación a través del sitio, y la entrada de datos por
parte de un usuario, afectan el estado de la lógica del
negocio. En esencia, una aplicación Web usa un sitio
Web como entrada (front-end) a una aplicación típica.
Si no existe lógica del negocio en el servidor, el
sistema no puede ser llamado aplicación Web.”

[Conallen 99]

Lámina 2

Arquitectura de un Sitio Web


 La arquitectura de un sitio Web tiene tres componentes
principales: un servidor Web, una conexión de red, y uno o
más clientes (browsers).
 El servidor Web distribuye páginas de información
formateada a los clientes que las solicitan. Los
requerimientos son hechos a través de una conexión de red,
y para ello se usa el protocolo HTTP.
Lámina 3

Arquitectura de Aplicaciones Web


 La información mostrada en las páginas está
típicamente almacenada en archivos. Sin embargo,
muchas veces esta información está almacenada en
una base de datos, y las páginas son creadas
dinámicamente. Los sitios Web que usan este
esquema, son llamados sitios dinámicos.
Servidor de Aplicaciones

Lámina 1

Servidor de Aplicaciones
 Es un programa que provee la infraestructura necesaria
para las aplicaciones Web empresariales

 Los programadores se dedican en exclusiva a


implementar la lógica del negocio, ya que servicios de
uso común, como transacciones, seguridad,
persistencia, etc. ya son proporcionados.

 Es una capa intermedia (middleware) que se sitúa


entre el servidor Web y las aplicaciones o bases de
datos subyacentes

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

You might also like