Sei sulla pagina 1di 9

Instituto Tecnolgico De Durango

Ing. En Sistemas Computacionales

Reporte de Investigacin de Arquitectura Web y


Programacin Cliente Servidor de capa 2 y 3

Materia: Programacin Web


Catedrtico (a): Armstrong Aramburo Cristabel
Alumno (a): Zamora De Santiago Everardo
No. Control: 11040447

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.

La arquitectura en tres niveles divide la funcionalidad para optimizar el uso de


recursos. Se consiguen soluciones mucho ms flexibles y escalables. Los tres
niveles son:
- Cliente: Contiene los componentes de usuario que son nicos para cada
uno de ellos. Esto es la lgica de aplicacin especfica del usuario y la
interfaz.
- Aplicacin: Constituye un entorno multiusuario y mantiene las partes
compartidas de la aplicacin. Las operaciones con un uso intensivo de
datos deben ejecutarse en este nivel. Tambin es punto donde se puede
llevar a cabo la coordinacin de transacciones (operaciones de mltiples
usuarios).
- Almacenamiento: Es nivel de la base de datos. Se especializa en dar un
servicio de persistencia a los datos de la aplicacin y permite manejar
grandes volmenes de ellos.

Programacin Cliente Servidor de 2 y 3 capas


El modelo cliente/servidor es un modelo de comunicacin de computadores en el
cual el computador cliente solicita servicios al computador servidor por medio de
mensajes. La diferencia entre el cliente y el servidor es que el cliente es el que
inicia el contacto y el servidor es el que responde a dicha solicitud de conexin.
Clientes y servidores son entidades fsicas diferentes que operan en conjunto a
travs de una red para realizar una tarea. La arquitectura cliente/servidor est
compuesta por tres elementos bsicos, el cliente, el servidor y el middleware.
Caractersticas del modelo Cliente/Servidor
Servicio: Cliente/servidor es fundamentalmente una relacin entre procesos
ejecutados en computadores distintos. El proceso del servidor hace de ste un
proveedor de servicios. El cliente es un consumidor de servicios.
Recursos compartidos: Un servidor puede atender a muchos clientes al mismo
tiempo y regular su acceso a recursos compartidos.
Protocolos asimtricos: Entre cliente y servidor se establece una relacin de n a 1.
Son siempre los clientes los que inician el dilogo al solicitar un servicio. Y los
servidores aguardan pasivamente las solicitudes de los clientes.
Transparencia de ubicacin: El servidor es un proceso que puede residir en el
mismo equipo que el proceso cliente o en un equipo distinto a lo largo de una red.
Suele ocultarse a los clientes la ubicacin del servidor mediante el

redireccionamiento de las llamadas de servicio en caso de ser necesario. Un


programa puede ser un cliente, un servidor o ambos a la vez.
Mezcla e igualdad: El software ideal de cliente/servidor es independiente del
hardware y de la plataforma de software del sistema operativo. Se debe poder
mezclar e igualar las plataformas del cliente y del servidor.
Intercambio basado en mensajes: Clientes y servidores tienen bajo acoplamiento e
interactan a travs de un mecanismo determinado de transmisin de mensajes.
El mensaje es el mecanismo de entrega para las solicitudes y de respuestas de
servicios. (Se considera como mensaje tanto a la solicitud como a la respuesta).
Facilidad de Escalabilidad: Los sistemas cliente/servidor pueden escalarse
horizontal o verticalmente.
Integridad: El cdigo del servidor y los datos se conservan centralmente, lo que
resulta en un mantenimiento de menor costo y en la proteccin de los datos de la
integridad de los datos compartidos. A su vez, los clientes mantienen su
individualidad e independencia.
Ventajas y desventajas del modelo Cliente/Servidor
En esta subseccin se presentan las ventajas y desventajas de la arquitectura
cliente/servidor frente al modelo centralizado donde existe un nico nodo fsico.
Ventajas
- Posibilidad de reducir costos de desarrollo.
- Mejores herramientas de desarrollo.
- Modificabilidad es compatible con buen diseo.
- Flexibilidad en el cliente.
- Permite un mejor control sobre permisos de acceso a informacin.
- Escalabilidad. Si la empresa cambia en lo que respecta al tamao, alcance,
requerimientos de informacin, la escala de la arquitectura cliente/servidor
puede ser cambiada.
- La tecnologa disponible es tan variada que puede utilizarse la que mejor se
adecue a la realidad de la empresa.
El software puede ser desarrollado desde varios lugares, lo que reduce el
costo de desarrollo. Soporta los conceptos de comercio electrnico.
Desventajas
- Falta de profesionales calificados.
- Necesidad de reimplementacin de software existente, ya que el software
monoltico no suele ser compatible con la arquitectura cliente/servidor.

Necesidad de entrenamiento de usuarios, debido al cambio de las


aplicaciones existentes.

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.

Las estaciones de trabajo pueden tener serias restricciones de recursos.


Los desarrolladores deben estar entrenados para optimizar la aplicacin de
forma que pueda ser utilizada en dichos entornos.
Incremento de la carga de la red: dado que el procesamiento de los datos
se realiza en el cliente, gran cantidad de informacin debe ser transmitida
desde el servidor.
El PC procesa y presenta la informacin. Lleva a aplicaciones monolticas,
caras y difciles de mantener. (fat client).
La lgica de negocios est implementada en el PC. Notar que la lgica de
negocios nunca usa el sistema de ventanas.
Implica un procedimiento de distribucin complicado, ya que en caso de un
cambio todos los PCs deben ser actualizados. Es difcil garantizar que un
cliente est corriendo una versin anterior

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.

En contraste con una arquitectura en 2 capas, donde solamente datos


estn accesibles al pblico, los objetos de negocios pueden brindar
servicios (lgica de la aplicacin) por la red

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

Potrebbero piacerti anche