Despliegue de Aplicaciones Web









Tema 1 Distintos modelos de arquitecturas web


    Índice

  1. Internet: Conceptos básicos
  2. Aplicaciones web
  3. Modelos de arquitectura
  4. Modelo cliente/servidor
  5. Protocolo HTTP

1. Internet: Conceptos básicos

Internet es un sistema global de redes de computadoras interconectadas entre si que utilizan la familia de protocolos TCP/IP para compartir recursos e intercambiar información entre miles de millones de dispositivos en todo el mundo. Se trata de una red de redes descentralizada que, gracias a dicha familia de protocolos, funciona como una única red a pesar de de la variedad de redes físicas que la componen.

Tiene su orígen en la red ARPANET (Advanced Research Projects Agency Network), creada por encargo del departamento de defensa de los EEUU en 1969, con la finalidad de comunicar organismos oficiales, de manera que, si hubiese una catástrofe que destruyese alguno de ellos, el resto de la red continuase funcionando.

Algunos de los servicios de Internet aún ampliamente utilizados hoy en día son:

La Web

La World Wide Web fue creada en 1989 por Tim Berners-Lee mientras trabajaba en el CERN (Organización Europea para la Investigación Nuclear). Consiste en un sistema de organizar la información mediante páginas conectadas a través de hiperenlaces, que utiliza para su transferencia Internet como medio físico y el protocolo HTTP (Hypertext Transfer Protocol), para que los navegadores web puedan hacer las peticiones de dichas páginas a los servidores web y recibir las respuestas sobre las mismas. Se define también el lenguaje HTML (Hypertext Markup Language) para la edición de páginas web.

2. Aplicaciones web

En la ingeniería de software se denomina aplicación web a aquella herramienta que los usuarios pueden emplear accediendo a un servidor web a través de Internet o de una herramienta intranet mediante un navegador.

Las aplicaciones web son populares debido a lo práctico que resulta el navegador web como cliente ligero, a la independencia del sistema operativo, así como a la facilidad para actualizar y mantener aplicaciones web sin distribuir e instalar software a miles de usuarios potenciales.

Existen aplicaciones como wikis, weblogs, tiendas en línea, etc, que son ejemplos bastante conocidos de aplicaciones web.

3. Modelos de arquitectura

El W3C (World Wide Web Consortium) define cuatro modelos de arquitectura para las aplicaciones web: modelo cliente/servidor, modelo orientado a mensajes, modelo orientado a sevicios y modelo orientado a recursos. En este apartado se aplicarán todos ellos pero, puesto que el modelo cliente/servidor es la arquitectura más extendida hoy en día en las aplicaciones web, será en la que nos centremos a partir de ahora.

Modelo cliente/servidor

En esta arquitectura, por un lado está el cliente, que será el navegador web, y por otro lado está el servidor, que es el servidor web. La lógica de la aplicación es compartida por ambos.

Modelo orientado a mensajes

El Modelo Orientado a Mensajes (MOM) se centra en difinir los mensajes, su estructura, la forma de transportarlos, etc., sin importar el significado semántico de cada mensaje o su relación con otros mensajes.

Modelo orientado a servicios

El Modelo Orientado a Servicios (SOM) se ocupa de los aspectos de la arquitectura relacionados con el servicio y la acción.

Su objetivo principal es el de explicar las relaciones entre un agente y los servicios qeu ofrece y solicita. El SOM se basa en el MOM, pero centrado en la acción, en lugar del mensaje.

Modelo orientado a recursos

El Modelo Orientado a Recursos (ROM) se centra en los aspectos de la arquitectura relacionados con los recursos y las características principales (propietario, políticas asociadas, etc.), independientemente del papel que el recurso juegue en el contexto de los servicios web.

Modelo de políticas

Este modelo se basa en definir los comportamientos de los agentes que emplean los servicios, definiendo cómo accederán a los recursos.

4. Modelo cliente/servidor

Estructura

Una aplicación web que emplea el modelo cliente/servidor está estructurada habitualmente como una aplicación en tres capas:

clienteservidor

En la imagen anterior puede verse claramente cual es el funcionamiento de una arquitectura web de 3 capas:

  1. El usuario interactúa con el navegador web que es el que realiza la solicitud de páginas, que pueden ser páginas almacenadas (estáticas) o creadas dinámicamente, con información a los servidores web.
  2. El servidor web localiza la página y se la envía al servidor de aplicaciones para ejecutar las instrucciones necesarias.
  3. El servidor de aplicaciones busca las instrucciones en la página y las ejecuta.
  4. El servidor de aplicaciones necesitará datos para poder ejecutar las sentencias, con lo cual envía la consulta al controlador de la base de datos.
  5. El controlador ejecuta la consulta en la base de datos.
  6. Una vez resuelta la consulta, se envía al controlador el conjunto de registros resultantes de la consulta.
  7. El controlador pasa el conjunto de registros al servidor de aplicaciones.
  8. El servidor de aplicaciones inserta los datos en una página. Una vez esté completa, se la pasa al servidor web.
  9. El servidor web envía la página finalizada al navegador solicitante.

Software que interviene

El tipo de software que rodea el uso y funcionamiento de una aplicación web en el modelo cliente/servidor es el siguiente:

Protocolo HTTP

Un servidor web opera mediante el protocolo HTTP, de la capa de aplicación del Modelo OSI. HTTP es un protocolo simple, textual y sin estado para el intercambio de datos tipificados (objetos) entre un cliente y un servidor web basado en comandos y respuestas.

capaosi

Cada servidor tiene un proceso que permanece a la escucha en un puerto TCP (por defecto, el 80), esperando conexiones entrantes de los clientes. Cuando se establece la conexión, los navegadores solicitan información al servidor enviándoles una URL. El servidor responde con un mensaje que contiene el estado de la operación y su posible resultado. Todas las operaciones pueden captar un objeto o recurso sobre el que actúan. Después de la transmisión se libera la conexión TCP.

Mensajes de petición

Los mensajes de petición están formados por tres partes:

Los posibles métodos de petición son GET, POST, OPTIONS, HEAD, PUT, DELETE, TRACE, CONNECT y PATH.

Petición GET

Se emplea para obtener cualquier tipo de información del servidor. Las peticiones GET no tienen cuerpo de mensaje. Permite enviar parámetros al servidor en la URI (URL) (conocidos como Query String). Por ejemplo:

http://sitiodeprueba.com/nuevousuarioGET.php?nombre=Emilio&apellido=Dapena			
		

En esta URL podemos distinguir varias partes:

El tamaño de la información enviada estará limitada. No se puede emplear para enviar archivos o realizar otras operaciones que requieran enviar una gran cantidad de datos al servidor.

Petición POST

Se emplea para solicitar al servidor que acepte información que se envía adjunta en una petición. Las peticiones POST se envían en el cuerpo del mensaje. Los parámetros, por lo tanto, no son visibles en la URL.

Mensajes de respuesta

Los mensajes de petición están formados por tres partes:

Códigos de estado

Los códigos de estado son códigos que envían los servidores en las respuestas HTTP. Informan al cliente de cómo fue procesada la petición. Consisten en un código de 3 dígitos y se clasifican en función del primero, van acompañados de un texto explicativo.

A continuación exponemos los principales grupos de códigos de estado con algunos de los ejemplos más comunes:

Para el listado de todos los códigos de estado de las respuestas HTTP se puede consultar el RFC-1945 tools.ietf.org en su apartado 9.

Tipos MIME

Inicialmente las páginas web contenían texto y enlaces (hipertexto), por los que HTTP era un protocolo que unicamente enviaba texto. Ahora, HTTP permite enviar todo tipo de documentos, para lo que emplea los tipos MIME (tipos de medios de Internet). Los tipos MIME son entonces unas especificaiones definidas por la IANA para dar formato a mensajes no ASCII.

Ejemplos de tipos MIME habituales son text/html o video/mpeg.

Se pueden consultar todos los tipos MIME en la especificación oficial de la IANA

Fuentes:

Volver arriba ▲