You are on page 1of 15

Arquitectura Cliente/Servidor

Claudio Cubillos
Escuela de Ingeniera Informtica
Pontificia Universidad Catlica de Valparaso, Chile
claudio.cubillos@ucv.cl
Arquitectura cliente/servidor

v Servidor: rol que desempea un equipo


ofreciendo un conjunto de servicios a los
clientes, tales como manejo de archivos,
impresin, pginas web, direccionamiento
de correo electrnico, actualizacin de BD
y control de acceso.
v Cliente: rol que desempea un equipo
demandando servicios de los servidores,
pero tambin puede realizar
procesamiento local, tales como
desplegar pginas web, mostrar ventanas
y generar correo electrnico.
v Eventualmente un mismo equipo puede
desempear ambos roles.
... Arquitectura cliente/servidor
v Tareas se pueden distribuir entre estos
roles:
Presentacin: software que permiten
presentar en forma adecuada los
resultados de una aplicacin, p. ej.
ventanas en Windows, pginas web en un
navegador.
Aplicacin: software que entrega un
resultado til para el usuario (lgica del
negocio), p. ej. consulta de una factura,
valorizacin de un inventario.
Administracin de datos: manejo de
los datos (en una BD) que sirven a las
aplicaciones de la lgica del negocio, p ej.
datos de los productos de una factura,
productos en inventario.
... Arquitectura cliente/servidor

CLIENTE

Presentacin Presentacin Presentacin Presentacin Presentacin

Lgica del Lgica del Lgica del


Negocio Negocio Negocio

Presentacin Administracin
de datos

Lgica del Lgica del Lgica del


Negocio Negocio Negocio

Administracin Administracin Administracin Administracin Administracin


de datos de datos de datos de datos de datos

SERVIDOR
... Arquitectura cliente/servidor

vArquitectura de 2 capas:
SERVIDOR

Lgica del CLIENTE


Negocio

Presentacin

Administracin
de datos

vArquitectura de 3 capas:

SERVIDOR DE SERVIDOR DE CLIENTE


DATOS APLICACIONES

Lgica del
Administracin Presentacin
Negocio
de datos
... Arquitectura cliente/servidor

vEjemplo de arquitectura cliente/servidor:

Cliente Web:
S.O.: Mac OS
Navegador: Safari

Internet Servidor Web y de Servidor de BD:


Aplicaciones: S.O.: Linux
...

Cliente Web: S.O.: Linux Sistema de


S.O.: Windows Software servidor administracin
Navegador: Opera web: Apache de BD: MySQL
Cliente Web: Lenguaje de Lenguaje de
S.O.: Windows XP aplicaciones: PHP consultas: SQL
Navegador: IExplorer
... Arquitectura cliente/servidor

vUso de
herramienta
XAMPP para
lado Servidor
Cmo hemos llegado hasta aqu?

La evolucin de la arquitectura de los sistemas


de informacin
Conceptos bsicos y notacin
v El Cliente es cualquier usuario o
Cliente Capa de Presentacin programa que quiere realizar una
operacin sobre el sistema. Para
apoyarlo, el sistema debe tener una
Lgica de la Aplic. Reglas de Negocio capa de presentacin a travs de la
cual el usuario puede enviar las
operaciones y obtener un resultado.
Adm. de Recursos Objectos del Negocio v La lgica de la aplicacin establece qu
operaciones se pueden realizar sobre
el sistema y cmo se llevarn a cabo.
Se encarga de hacer cumplir las reglas
de negocio y establecer los procesos de
negocio. Puede ser expresado como:
restricciones, procesos de negocio,
Cliente Cliente servidores con la lgica codificada, etc.
v El administrador de recursos trata con
la organizacin de los datos necesarios
Servidor Procesos de Negocio (almacenamiento, indexacin y
recuperacin) para apoyar la lgica de
la aplicacin. Ej. BD relacional, BD en
Base de Datos Almacenamiento XML, archivo Excel, o cualquier otro
Persistente sistema con capacidades de consulta y
persistencia.
Distribucin en diferentes capas

Lgica de la Presentacin
Soporte para mltiples clientes Distribution/replicacin de los Datos

Lgica de la Aplicacin
Lgica de la aplicacin separada Todas las combinaciones
Adm. de Recursos
Un juego de cajas y flechas
v Cada cuadro representa una parte del
sistema. Cada flecha es una conexin
entre dos partes del sistema.
v Cuanto ms cajas, ms modular es el
sistema: ms oportunidades para la
distribucin y el paralelismo. Esto
permite encapsulacin, diseo basado
en componentes, la reutilizacin.
v A ms cajas, a ms flechas: ms
sesiones (conexiones) deben
No existe problema en el diseo del mantenerse, ms coordinacin es
sistema que no pueda ser resuelto necesaria. El sistema se vuelve ms
agregando un nivel de complejo de controlar y gestionar.
indireccionamiento. v A ms cajas, mayor ser el nmero de
No existe problema de rendimiento decisiones de contexto y pasos
que no pueda ser resuelto intermedios que pasar antes de llegar a
los datos. El rendimiento se resiente
mediante la eliminacin de un nivel considerablemente.
de indireccionamiento.
v Los diseadores de sistemas tratan de
equilibrar la capacidad de los equipos
implicados y las ventajas y desventajas
de las diferentes arquitecturas.
Arquitectura (1): Completamente Centralizado
Arquitectura de 1 capa v La capa de presentacin, lgica de
aplicacin y gestin de recursos se
construye como una entidad
monoltica.
v Usuario/programas acceden al
sistema a travs de terminales de
pantalla,
pero lo que se muestra y cmo
aparece es controlado por el
servidor.
Servidor llamadas terminales tontas.
v Esta era la arquitectura tpica de las
aplicaciones de mainframe,
ofreciendo varias ventajas:
flujo de control sin decisiones de
contexto (todo sucede dentro del
sistema),
todo est centralizado; gestin y
control de los recursos es ms fcil,
diseo altamente optimizado al
eliminar la separacin entre las
capas.
Arquitectura (2): sistema a 2 capas
v Al hacerse las computadoras ms
poderosas, la capa de presentacin
se mueve al cliente. Esto tiene
varias ventajas:
Los clientes son independientes
entre s: se puede tener varias
capas de presentacin dependiendo
de lo que cada cliente quiere hacer.
Servidor Se puede aprovechar la potencia de
clculo en la mquina cliente
teniendo capas de presentacin
ms sofisticadas. Esto tambin
ahorra recursos de la mquina
servidor.
Se introduce el concepto de API
(Application Program Interface).
Una interfaz para invocar el sistema
desde el exterior.
El administrador de recursos slo
tiene un cliente: la lgica de la
aplicacin. Esto ayuda mucho con
el rendimiento ya que no hay
conexiones y sesiones para
mantener.
Middleware
v El Middleware es un nivel de
clientes indireccin entre los clientes y las
dems capas del sistema.
Middleware v Se introduce una capa adicional de
la lgica de negocio que abarca
todos los sistemas subyacentes.
Lgica de aplicacin v De esta manera, un sistema
middleware:
Adm. de recursos simplifica el diseo de los clientes
mediante la reduccin del nmero
de interfaces,
proporciona un acceso transparente
a los sistemas subyacentes,
acta como plataforma para la
middleware funcionalidad inter-sistema y la
lgica de aplicacin de alto nivel, y
se encarga de localizar los
recursos, el acceso a ellos, y la
recoleccin de resultados.

Server A Server B
Arquitectura (3): sistema a 3 capas
v En un sistema de tres niveles, las tres
capas estn completamente separadas.
v Para algunos, un sistema basado en
middleware es una arquitectura de 3
capas. Esto es un poco simplista, pero es
correcto conceptualmente ya que los
sistemas subyacentes pueden ser
tratados como cajas negras.
v Los sistemas de 3 niveles tienen las
mismas ventajas que un sistema de
middleware y tambin sus desventajas.
v En la prctica, las cosas no son tan
simples como parecen hay varias
capas ocultas que no son
necesariamente triviales; ej. los
wrappers.

You might also like