You are on page 1of 7

Despliegue de Aplicaciones Web

Bloque 1: Introduccin
UD 1: Arquitecturas Web
Objetivos: Conocer las arquitecturas software ms utilizadas. Comprender el funcionamiento del modelo Cliente-Servidor. Comprender la arquitectura de los sistemas Web. Reconocer la utilidad del patrn de diseo MVC.

Profesor: Gabriel Merin Cubero Correo: gmerin@fpmislata.com

NDICE DE CONTENIDOS 1. 2. Introduccin ......................................................................................................... 3 Arquitecturas Software ....................................................................................... 3 2.1. Modelo Cliente-Servidor .............................................................................. 3 2.2. Modelo P2P .................................................................................................. 4 3. Protocolos ............................................................................................................. 4 4. Arquitectura de los Sistemas Web ...................................................................... 5 5. Patrn de diseo MVC......................................................................................... 6 6. Bibliografa .......................................................................................................... 7

UD1 Arquitecturas Web

1.

Introduccin

Esta unidad tiene como objetivo dotar al alumno de los conceptos previos necesarios para entender el funcionamiento de las aplicaciones Web. Es por ello que se repasarn brevemente las diferentes arquitecturas software y los modelos ms utilizados. Tambin se comentar cmo se comunican los programas a travs de Internet, pasando por la arquitectura Web actual y finalizando con uno de los patrones de diseo ms utilizados a la hora de desarrollar Software.

2.

Arquitecturas Software

Cuando hablamos de arquitectura software, vamos ms all de los algoritmos y estructuras de datos de forman la aplicacin. En esencia, estamos haciendo referencia a la estructura global del sistema. En sus orgenes, las aplicaciones seguan una arquitectura monoltica (o no distribuida), es decir, el software estaba compuesto por un conjunto de componentes fuertemente acoplados que por resultado una nica pieza de software la cual se ejecutaba en un nico ordenador. Con el auge de Internet comenzaron a surgir aplicaciones que para ejecutarse necesitaban comunicarse con programas ubicados en otros equipos. A este tipo de estructura se le denomin arquitectura distribuida. A su vez, dentro de la arquitectura distribuida, encontramos diferentes modelos. Los ms conocidos son: Modelo Cliente-Servidor. Modelo P2P (Peer-To-Peer).

2.1.

Modelo Cliente-Servidor

En el modelo Cliente-Servidor, existe una diferencia entre quin ofrece un servicio y quin lo consume, siendo habitual que se utilicen dos versiones de la aplicacin y que cada versin se encuentre en equipos distintos: 1. Versin Servidor: Slo sirve para ofrecer el servicio, no consumirlo. 2. Versin Cliente: Slo sirve para consumir el servicio, no ofrecerlo.

Como se puede observar, este modelo establece una jerarqua. Adems, un servicio ofrecido por un servidor puede ser consumido por muchos clientes simultneamente.

3/7

UD1 Arquitecturas Web

Otro punto importante a destacar es que una mquina puede ser cliente y servidora al mismo tiempo. Dicho de otro modo, podemos tener una mquina que ofrezca una serie de servicios y que, a su vez, consuma servicios de otras mquinas (obviamente, los servicios ofrecidos y consumidos no tienen por qu ser los mismos).

Tambin nos podemos encontrar con casos donde tanto el cliente como el servidor se encuentran en la misma mquina. Por ejemplo, cuando queremos desarrollar una pgina Web, es habitual instalarnos un servidor Web en nuestro equipo para poder probar las pginas Web que desarrollamos ms rpidamente. Por tanto, los nicos que nos conectaremos a dicho servidor seremos nosotros mismos.

2.2.

Modelo P2P

En el modelo de pares, todos los interlocutores se comunican de igual a igual. Es decir, no hay distincin entre clientes y servidores. Es ms, suele utilizarse una nica aplicacin que se ejecuta simultneamente en todos los equipos Luego podramos decir que en este modelo todas las mquinas son clientes y servidoras de un mismo servicio.

Este segundo modelo es el que siguen la mayora de programas de intercambio de ficheros, como el Bittorrent o Emule.

3.

Protocolos

En informtica, un protocolo describe el conjunto de reglas que deben utilizar dos mquinas conectadas a travs de una red para poder comunicarse entre s
4/7

UD1 Arquitecturas Web

mediante un intercambio de mensajes. Normalmente, los protocolos estn estandarizados de tal manera que dos computadoras/programas, sin importar quin los ha fabricado/desarrollado, se podrn comunicar entre ellas si siguen el mismo protocolo. A nivel de software, existen decenas de protocolos de comunicacin. Por ejemplo, para visualizar pginas Web se utiliza el protocolo http (HyperText Transfer Protocol). Para descargarse ficheros de un servidor se suele utilizar el protocolo FTP (File Transfer Protocol) y para el control remoto de equipos Windows el protocolo RDP (Remote Desktop Protocol). Es conveniente mencionar que los protocolos se revisan cada cierto tiempo y para garantizar una correcta comunicacin entre las partes es conveniente que ambas sigan la misma versin.

4.

Arquitectura de los Sistemas Web

En los ltimos aos, la rpida expansin de Internet y del uso de Intranets corporativas ha supuesto una transformacin en las necesidades de informacin de las organizaciones. En particular, esto se ha traducido en lo siguiente: 1. Necesidad de tener la informacin disponible desde cualquier lugar dentro de la organizacin e incluso desde fuera. 2. Necesidad de poder acceder a la informacin desde cualquier dispositivo y sistema operativo. Estas necesidades han provocado un movimiento creciente de cambio de las aplicaciones tradicionales de escritorio hacia las aplicaciones Web, que por su idiosincrasia, cumplen a la perfeccin con las necesidades mencionadas anteriormente. Los sitios Web tradicionales, que antes se limitaban a mostrar informacin esttica, han pasado a convertirse en aplicaciones potentes con una interaccin ms o menos sofisticada con el usuario. Esto ha provocado un aumento progresivo de la complejidad de estos sistemas y, por ende, ha crecido la necesidad de buscar opciones de diseo que permitan dar con la arquitectura ptima que facilite la construccin de los mismos. El usuario interacciona con las aplicaciones Web a travs del navegador. Como consecuencia de la actividad del usuario, se envan peticiones al servidor donde se aloja la aplicacin y que normalmente hace uso de una base de datos para almacenar la informacin. El servidor procesa la peticin y devuelve la respuesta al navegador que la presenta al usuario. Por tanto, el sistema se distribuye en tres componentes: 1. El navegador, que presenta la interfaz de usuario. 2. La aplicacin alojada en el servidor, la cual realiza las operaciones indicadas por el usuario. 3. La base de datos, donde la informacin se hace persistente. Esta distribucin se conoce como el modelo o arquitectura de tres capas. En la mayora de los casos, el navegador suele ser un mero presentador de la informacin (cliente delegado), aunque a da de hoy, debido a la utilizacin de applets, cdigo Javascript, Flash y DTHML, la mayora de los sistemas se sitan en
5/7

UD1 Arquitecturas Web

un punto intermedio entre un modelo de cliente delgado y un cliente grueso (donde se procesa la informacin). No obstante, el procesamiento realizado en el cliente suele estar relacionado con aspecto de la interfaz y nunca con la lgica de negocio. En todos los sistemas de este tipo, podemos dividir la aplicacin en tres reas o niveles: 1. Nivel de presentacin: El encargado de generar la interfaz de usuario. 2. Nivel de negocio: Contiene toda la lgica que modela los procesos de negocio y es donde se realiza todo el procesamiento necesario para atender las peticiones del usuario. 3. Nivel de administracin de datos: suministrar/almacenar toda la informacin. Encargado de

Los dos primeros niveles y una parte del tercero suelen estar en el servidor, mientras que la parte restante del tercer nivel la encontramos en la base de datos. Teniendo en cuenta estas caractersticas en la arquitectura de los sistemas Web, a continuacin veremos uno de los patrones de diseo ms utilizados a la hora de disear aplicaciones Web.

5.

Patrn de diseo MVC

Cuando hablamos de patrones software nos referimos a soluciones reutilizables en el diseo de una aplicacin. En nuestro caso, la utilizacin del patrn ModeloVista-Controlador (MVC) proporciona una arquitectura uniforme que permite una fcil expansin, mantenimiento y modificacin de una aplicacin. El principal objetivo de este patrn es dividir una aplicacin en tres componentes bien diferenciados: Vista: Contiene la interfaz de usuario. Modelo: Contiene la lgica de negocio y los datos de la aplicacin. Controlador: Atiende la peticiones y toma las decisiones adecuadas.

En una aplicacin Web, las vistas seran las pginas HTML que el usuario visualiza en el navegador. A travs de estas pginas, el usuario interacta con la aplicacin, enviando eventos al servidor a travs de peticiones HTTP. En el servidor, el controlador recibe la peticin y, en funcin del evento, acta sobre el modelo convenientemente. Los resultados de dicha accin se devuelven al usuario en forma de pgina HTML mediante una respuesta http. La clave de este diseo est en la separacin entre vista y modelo. El modelo suele ser ms estable con el tiempo y menos sujeto a variaciones mientras que las vistas pueden cambiar con frecuencia, ya sea por cambio del medio de presentacin (HTML, PDF, etc) o por necesidades de usabilidad de la aplicacin. Los controladores son los encargados de hacer de puente entre ambos, determinando el flujo de salida de la aplicacin. Las aplicaciones MVC pueden ser implementadas con J2EE utilizando JSP para las vistas, servlets como controladores y JavaBeans para el modelo, siendo los JavaBeans componentes de cdigo reutilizables en cualquier aplicacin. En PHP podemos utilizar el framework gratuito Codeigniter el cual obliga a utilizar este patrn de diseo para el desarrollo de la pgina Web.
6/7

UD1 Arquitecturas Web

6.

Bibliografa

Ingeniera del Software, Sexta Edicin. 2002. Editorial Addison Wesley. Despliegue de Aplicaciones Web. 2012. Editorial Garceta. Artculo: Arquitectura y diseo de sistemas Web modernos. 2004. Revista de Ingeniera Informtica del CIIRM (Colegio Ilustre de Ingenieros en Informtica de la Regin de Murcia).

7/7

You might also like