Está en la página 1de 15

Arquitectura Cliente/Servidor

Claudio Cubillos
Escuela de Ingeniería Informática
Pontificia Universidad Católica de Valparaíso, Chile
claudio.cubillos@ucv.cl
Arquitectura cliente/servidor

v  Servidor: rol que desempeña un equipo


ofreciendo un conjunto de servicios a los
clientes, tales como manejo de archivos,
impresión, páginas web, direccionamiento
de correo electrónico, actualización de BD
y control de acceso.
v  Cliente: rol que desempeña un equipo
demandando servicios de los servidores,
pero también puede realizar
procesamiento local, tales como
desplegar páginas web, mostrar ventanas
y generar correo electrónico.
v  Eventualmente un mismo equipo puede
desempeñar ambos roles.
... Arquitectura cliente/servidor
v  Tareas se pueden distribuir entre estos
roles:
§  Presentación: software que permiten
presentar en forma adecuada los
resultados de una aplicación, p. ej.
ventanas en Windows, páginas web en un
navegador.
§  Aplicación: software que entrega un
resultado útil para el usuario (lógica del
negocio), p. ej. consulta de una factura,
valorización de un inventario.
§  Administración de datos: manejo de
los datos (en una BD) que sirven a las
aplicaciones de la lógica del negocio, p ej.
datos de los productos de una factura,
productos en inventario.
... Arquitectura cliente/servidor

CLIENTE

Presentación Presentación Presentación Presentación Presentación

Lógica del Lógica del Lógica del


Negocio Negocio Negocio

Presentación Administración
de datos

Lógica del Lógica del Lógica del


Negocio Negocio Negocio

Administración Administración Administración Administración Administración


de datos de datos de datos de datos de datos

SERVIDOR
... Arquitectura cliente/servidor

v Arquitectura de 2 capas:
SERVIDOR

LÛgica del CLIENTE


Negocio

Presentación

AdministraciÛn
de datos

v Arquitectura de 3 capas:

SERVIDOR DE SERVIDOR DE CLIENTE


DATOS APLICACIONES

LÛgica del
AdministraciÛn PresentaciÛn
Negocio
de datos
... Arquitectura cliente/servidor

v Ejemplo 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 administración
•  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

v Uso de
herramienta
XAMPP para
lado Servidor
¿Cómo hemos llegado hasta aquí?

La evolución de la arquitectura de los sistemas


de información
Conceptos básicos y notación
v  El Cliente es cualquier usuario o
Cliente Capa de Presentación programa que quiere realizar una
operación sobre el sistema. Para
apoyarlo, el sistema debe tener una
Lógica de la Aplic. Reglas de Negocio capa de presentación a través de la
cual el usuario puede enviar las
operaciones y obtener un resultado.
Adm. de Recursos Objectos del Negocio v  La lógica de la aplicación establece qué
operaciones se pueden realizar sobre
el sistema y cómo se llevarán 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 lógica codificada, etc.
v  El administrador de recursos trata con
la organización de los datos necesarios
Servidor Procesos de Negocio (almacenamiento, indexación y
recuperación) para apoyar la lógica de
la aplicación. Ej. BD relacional, BD en
Base de Datos Almacenamiento XML, archivo Excel, o cualquier otro
Persistente sistema con capacidades de consulta y
persistencia.
Distribución en diferentes capas

Lógica de la Presentación
Soporte para múltiples clientes Distribution/replicación de los Datos

Lógica de la Aplicación
Lógica de la aplicación 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 conexión
entre dos partes del sistema.
v  Cuanto más cajas, más modular es el
sistema: más oportunidades para la
distribución y el paralelismo. Esto
permite encapsulación, diseño basado
en componentes, la reutilización.
v  A más cajas, a más flechas: más
sesiones (conexiones) deben
No existe problema en el diseño del mantenerse, más coordinación es
sistema que no pueda ser resuelto necesaria. El sistema se vuelve más
agregando un nivel de complejo de controlar y gestionar.
indireccionamiento. v  A más cajas, mayor será el número 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 eliminación de un nivel considerablemente.
de indireccionamiento.
v  Los diseñadores 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 presentación, lógica de
aplicación y gestión de recursos se
construye como una entidad
monolítica.
v  Usuario/programas acceden al
sistema a través de terminales de
pantalla,
§  pero lo que se muestra y cómo
aparece es controlado por el
servidor.
Servidor §  llamadas terminales tontas.
v  Esta era la arquitectura típica de las
aplicaciones de mainframe,
ofreciendo varias ventajas:
§  flujo de control sin decisiones de
contexto (todo sucede dentro del
sistema),
§  todo está centralizado; gestión y
control de los recursos es más fácil,
§  diseño altamente optimizado al
eliminar la separación entre las
capas.
Arquitectura (2): sistema a 2 capas
v  Al hacerse las computadoras más
poderosas, la capa de presentación
se mueve al cliente. Esto tiene
varias ventajas:
§  Los clientes son independientes
entre sí: se puede tener varias
capas de presentación dependiendo
de lo que cada cliente quiere hacer.
Servidor §  Se puede aprovechar la potencia de
cálculo en la máquina cliente
teniendo capas de presentación
más sofisticadas. Esto también
ahorra recursos de la máquina
servidor.
§  Se introduce el concepto de API
(Application Program Interface).
Una interfaz para invocar el sistema
desde el exterior.
§  El administrador de recursos sólo
tiene un cliente: la lógica de la
aplicación. Esto ayuda mucho con
el rendimiento ya que no hay
conexiones y sesiones para
mantener.
Middleware
v  El Middleware es un nivel de
clientes indirección entre los clientes y las
demás capas del sistema.
Middleware v  Se introduce una capa adicional de
la lógica de negocio que abarca
todos los sistemas subyacentes.
Lógica de aplicación v  De esta manera, un sistema
middleware:
Adm. de recursos §  simplifica el diseño de los clientes
mediante la reducción del número
de interfaces,
§  proporciona un acceso transparente
a los sistemas subyacentes,
§  actúa como plataforma para la
middleware funcionalidad inter-sistema y la
lógica de aplicación de alto nivel, y
§  se encarga de localizar los
recursos, el acceso a ellos, y la
recolección de resultados.

Server A Server B
Arquitectura (3): sistema a 3 capas
v  En un sistema de tres niveles, las tres
capas están 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 también sus desventajas.
v  En la práctica, las cosas no son tan
simples como parecen … hay varias
capas ocultas que no son
necesariamente triviales; ej. los
wrappers.

También podría gustarte