Arquitectura Cliente/Servidor - Pontificia Universidad Católica de

Anuncio
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
Negocio
Lógica del
Negocio
Lógica del
Negocio
Administración
de datos
Presentación
Lógica del
Negocio
Lógica del
Negocio
Lógica del
Negocio
Administración
de datos
Administración
de datos
Administración
de datos
SERVIDOR
Administración
de datos
Administración
de datos
... Arquitectura cliente/servidor
v Arquitectura de 2 capas:
SERVIDOR
CLIENTE
LÛgica del
Negocio
Presentación
AdministraciÛn
de datos
v Arquitectura de 3 capas:
SERVIDOR DE
DATOS
AdministraciÛn
de datos
SERVIDOR DE
APLICACIONES
LÛgica del
Negocio
CLIENTE
PresentaciÛn
... Arquitectura cliente/servidor
v Ejemplo de arquitectura cliente/servidor:
Cliente Web:
•  S.O.: Mac OS
•  Navegador: Safari
Cliente Web:
•  S.O.: Windows
•  Navegador: Opera
...
Internet
Cliente Web:
•  S.O.: Windows XP
•  Navegador: IExplorer
Servidor Web y de
Aplicaciones:
•  S.O.: Linux
•  Software servidor
web: Apache
•  Lenguaje de
aplicaciones: PHP
Servidor de BD:
•  S.O.: Linux
•  Sistema de
administración
de BD: MySQL
•  Lenguaje de
consultas: SQL
... 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
Cliente
Capa de Presentación
Lógica de la Aplic.
Reglas de Negocio
Adm. de Recursos
Objectos del Negocio
Cliente
Cliente
Servidor
Base de Datos
Procesos de Negocio
Almacenamiento
Persistente
v  El Cliente es cualquier usuario o
programa que quiere realizar una
operación sobre el sistema. Para
apoyarlo, el sistema debe tener una
capa de presentación a través de la
cual el usuario puede enviar las
operaciones y obtener un resultado.
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,
servidores con la lógica codificada, etc.
v  El administrador de recursos trata con
la organización de los datos necesarios
(almacenamiento, indexación y
recuperación) para apoyar la lógica de
la aplicación. Ej. BD relacional, BD en
XML, archivo Excel, o cualquier otro
sistema con capacidades de consulta y
persistencia.
Distribución en diferentes capas
Soporte para múltiples clientes
Lógica de la Presentación
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.
No existe problema en el diseño del
sistema que no pueda ser resuelto
agregando un nivel de
indireccionamiento.
No existe problema de rendimiento
que no pueda ser resuelto
mediante la eliminación de un nivel
de indireccionamiento.
v  A más cajas, a más flechas: más
sesiones (conexiones) deben
mantenerse, más coordinación es
necesaria. El sistema se vuelve más
complejo de controlar y gestionar.
v  A más cajas, mayor será el número de
decisiones de contexto y pasos
intermedios que pasar antes de llegar a
los datos. El rendimiento se resiente
considerablemente.
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
Servidor
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.
§  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:
Servidor
§  Los clientes son independientes
entre sí: se puede tener varias
capas de presentación dependiendo
de lo que cada cliente quiere hacer.
§  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
indirección entre los clientes y las
demás capas del sistema.
v  Se introduce una capa adicional de
la lógica de negocio que abarca
todos los sistemas subyacentes.
v  De esta manera, un sistema
middleware:
clientes
Middleware
Lógica de aplicación
Adm. de recursos
middleware
Server A
Server B
§  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
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.
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.
Descargar