Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Introduccin
Una arquitectura simplificada de la web, es una tpica arquitectura cliente/servidor,
en la cual de un lado se encuentra el cliente que est compuesto de browsers
web, capaces de mostrar y solicitar documentos sobre una red. Opcionalmente, el
cliente puede estar acompaado por aplicaciones externas usando una
presentacin del documento, o parte de este. El otro lado de la arquitectura web
hace del servidor, compuesto por el servidor web, cuya funcin es atender los
pedidos del cliente web por documentos almacenados en el sistema de archivos
de la plataforma donde se encuentra instalado.
Una importante caracterstica de la web es que l fue proyectado para funcionar
en topologa de Internet, est compuesta por una gran variedad de computadoras
que interactan entre s. Internet tiene un espacio global y se comunica por
canales pblicos de comunicacin sin restriccin cundo es continuo. De esta forma
el web incorpora naturalmente la caracterstica de ser un ambiente distribuido y
multiplataforma
En este contexto, el estudio se centra en los aspectos arquitectnicos y
tecnolgicos de los componentes responsables de la presentacin de la
aplicacin. Estos componentes son los que residen en el cliente junto con los que
interactan con ellos desde el lado del servidor. Las tecnologas que no se
apliquen a este aspecto no son tratadas aqu.
Arquitectura Web
La arquitectura de una aplicacin Web es similar a la de un sitio Web, se basa en
el modelo Cliente/Servidor. Como en el caso del sitio Web, tenemos el navegador
en la parte cliente, el servidor Web en la parte del servidor y una conexin de red.
Pero en las aplicaciones Web hay que considerar que existe una lgica de negocio
sensible a las interacciones del usuario.
Originalmente la Web nicamente contaba con contenidos estticos. La necesidad
de ofrecer servicios ms sofisticados a travs de este medio llev a soluciones
tecnolgicas que permitiesen cierto grado de interaccin con el servidor ms all
de solicitar una pgina en concreto.
Los CGIs fueron las primeras opciones en este sentido. Permitan interactuar con
cdigo ejecutable en el servidor desde el navegador. A travs de la URL solicitada
por el navegador se pasaban los parmetros de entrada para el cdigo ejecutable
y este devolva una pgina HTML con la respuesta. Este mismo mtodo se utiliza
en tecnologas similares como ISAPI, NSAPI o Java.
A medida que la sofisticacin de los servicios ofrecidos va Web ha ido
aumentando, se ha ido aadiendo, al menos a nivel lgico y no necesariamente a
nivel fsico, nuevos elementos en la arquitectura de las aplicaciones Web (por
ejemplo el servidor de aplicaciones, bases de datos,...). Las nuevas disposiciones
de elementos se han basado en patrones arquitectnicos del contexto de las
aplicaciones distribuidas.
Patrn arquitectnico: un patrn arquitectnico es cualquier esquema
relativo a la configuracin de un sistema en su conjunto, no relativo a una
parte de l. Por lo tanto aplica a una escala en la que la unidad de
organizacin es mucho mayor que la clase y ms prxima a los programas
o ejecutables.
En las aplicaciones distribuidas, partiendo del modelo Cliente/Servidor, al
aumentar la complejidad de los procesos se acaba con el denominado problema
del "Cliente Pesado. Al poner la mayor parte del cdigo necesario para llevar a
cabo los procesos en el cliente, este debe descargar del servidor los datos
necesarios para llevarlos a cabo. Esto es muy ineficiente por dos razones
principales:
-
La red sufre una gran carga debido a las mltiples descargas de cada uno
de los clientes.
La gran dependencia en el rendimiento del hardware en el lado del cliente.
Arquitectura en 2 Capas
Una arquitectura en 2 capas distribuye la aplicacin en dos componentes lgicos.
Las responsabilidades de cada componente hacen a las variantes de esta
arquitectura. Surge la arquitectura en 2 capas como consecuencia de la
arquitectura cliente/servidor. Esta topologa permite distribuir la carga de la
aplicacin a dos computadores diferentes, lo que llev naturalmente a distribuir las
responsabilidades de la misma a dos unidades lgicas.
Arquitectura P+L/D
Una primera variante es retirar el manejo de datos de la aplicacin. Esto permite a
varios clientes utilizar el mismo juego de datos. P+L es una unidad lgica por s,
donde el manejo de interfaz de usuario y el manejo de la lgica no se los distingue
como mdulos independientes. Tpicamente P+L se encuentra en el cliente,
mientras que D se encuentra en el servidor. Un ejemplo de aplicaciones con esta
arquitectura es una aplicacin que delega la persistencia a un manejador de base
de datos.
Arquitectura P/L+D
El hecho de tener la misma lgica en cada cliente permiti factorizarla, llevando la
misma al servidor. Aqu la lgica de la aplicacin se encuentra embebida al manejo
de la persistencia de datos. En este tipo de aplicaciones la lgica resuelve los
problemas de persistencia encargndose ella misma de dicha tarea, no
necesariamente utilizando un manejador de base de datos, o embebiendo toda la
lgica de negocios en el mismo.
Arquitectura P+L/L+D
Una tercera variante es repartir la tarea de la lgica, una parte junto a la interfaz
de usuario, y otro junto al manejo de persistencia de datos. Un ejemplo de
aplicaciones con esta arquitectura son aplicaciones similares a las que tienen
arquitectura P+L/D, que tienen implementada parte de la lgica en procedimientos
almacenados en el manejador de la base de datos.
Desventajas de la Arquitectura en 2 capas
- La lgica de la aplicacin no puede ser reusada ya que est ligada o a la
interfaz de usuario o al manejo de persistencia de datos.
Arquitectura en 3 Capas
La arquitectura en 2 capas, con su variante P/L+D, dio lugar a la arquitectura en 3
capas. El hecho de que la lgica de negocios y el manejo de persistencia sean
una unidad presentaba desventajas importantes: el manejador de base de datos
resultaba pequeo y quera migrarse a otro, deba actualizarse la versin, o se
deseaba incorporar datos de nuevas fuentes.
En esta arquitectura la lgica de la aplicacin ocupa una capa intermedia; est
separada tanto de los datos como de la interfaz de usuario (P/L/D). Los procesos
pueden ser administrados y desplegados en forma autnoma, sin relacin con la
interfaz de usuario y el manejador de base de datos. En teora, los sistemas en 3
capas son de ms fcil ampliacin y ms robustos y flexibles. Adems, pueden
integrar datos de mltiples fuentes.
Es importante notar que los lmites entre las capas son lgicos, por lo que es
posible ejecutar las tres capas en la misma mquina. Lo importante es que el
sistema est claramente estructurado y que hay una buena planificacin de los
lmites entre las diferentes capas.
Ventajas de la arquitectura en 3 capas
- Separacin clara de la interfaz de usuario de la lgica de la aplicacin. Esta
separacin permite tener diferentes presentaciones accediendo a la misma
lgica.
- La redefinicin del almacenamiento de informacin no tiene influencia sobre
la presentacin.
Conclusiones
Debido a que la arquitectura condiciona la aplicabilidad de ciertas tecnologas se
considera necesario dedicar atencin a este tema. Arquitectura cliente/servidor y
en capas son trminos no estandarizados y algo confusos, la bibliografa no es
uniforme respecto a ellos e inclusive en ocasiones confunde ambos trminos.
Aqu se los define por separado y se determina una relacin entre ambos
conceptos que representa nuestra visin sobre el tema ya que no se encontr una
referencia adecuada. El tratamiento de estos temas sirve adems para uniformizar
la terminologa a lo largo del trabajo y permite abstraer las caractersticas
comunes que puedan tener un grupo de tecnologas. Una vez comprendidas estas
caractersticas, resulta ms sencillo comprender los detalles.
Bibliografa
http://safari.awprofessional.com/0201615770
http://c2.com/cgi/wiki?HexagonalArchitecture
http://serverwatch.internet.com/articles/servlets/overview_d.html
http://www.servlets.com/soapbox/problems-jsp.html
http://www.servlets.com/soapbox/problems-jsp-reaction.html