Sistemas de Informacin Introduccin a los Sistemas de Informacin: El Modelo Cliente/Servidor
Agradecimientos: por su contribucin a la realizacin de estas transparencias: Jesus Villamor Lugo y Simon Pickin (IT-UC3M), Juan Jos Gil Ros (Terra.)
1
ndice
Definicin Concepto Clasificacin
Servicio Cmo se distribuye la aplicacin entre C y S
Arquitecturas multinivel
Definicin
La arquitectura C/S es una forma de dividir y especializar programas y equipos de cmputo de forma que la tarea que cada uno de ellos realiza se efecta con la mayor eficiencia posible y permita simplificar las actualizaciones y mantenimiento del sistema
Cambio de paradigma
1 Revolucin: Cliente  servidor
Del Mainframe a los sistemas C/S Detonante: desarrollo HW, LAN Resultado Mainframe - > C/S
2 Revolucin: Objetos distribuidos:
Fragmentacin del cliente y servidor en componentes Detonante: desarrollo HW, WAN, Internet Resultado C/S -> Sistemas 3 niveles o multinivel
Consecuencias para desarrolladores de los SI
Incertidumbre De sistemas propietarios a sistemas a la carta Necesidad de conocer gran nmero de tecnologas
4
El Sistema de Informacin moderno
y el modelo Cliente/Servidor
El Sistema de Informacin moderno
Administra y despliega grandes redes Ofrece estndares de interoperabilidad Distribuye sus funcionalidades Saca partido del modelo Cliente/Servidor Muchas veces requiere habilidades hbridas
Procesamiento de transacciones, bases de datos, comunicaciones o conocimientos sobre GUI.
El Modelo Cliente/Servidor
El concepto
Sistema distribuido donde el software est dividido entre
tareas servidor tareas cliente
Separacin clara de responsabilidades
en base a la nocin de servicio
Papel del cliente:
inicia el dilogo enva peticiones al servidor conforme a algn protocolo asimtrico pide que el servidor acte, o que le informe, o ambas cosas
Papel del servidor:
espera pasivamente peticiones de los clientes responde a las peticiones segn su poltica
6
El Modelo Cliente/Servidor
Consecuencias
Un servidor puede atender a muchos clientes Puede haber uno o varios servidores en un sistema Un servidor puede ser substituido por otro que ofrece (al menos) el mismo servicio sin afectar a los clientes Se puede ocultar a los clientes la ubicacin del servidor
la ubicacin no afecta la manera de utilizar los servicios
El servidor puede regular el acceso a recursos compartidos
e.g. servidor X, servidor de impresin,...
En el caso general, un objeto/componente/programa puede ser cliente, servidor o ambos
El Modelo Cliente/Servidor
Ventajas
Base en la nocin de servicio  buena estructura
acoplamiento cliente-servidor dbil, comunicacin por mensajes interfaces claras, modularidad, flexibilidad
Escalabilidad vertical
facilita: migrar a servidor ms grande / veloz o servidores mltiples
Escalabilidad horizontal
facilita: aadir clientes
Hardware y plataformas software (SO) heterogneos
despliegue independiente de cliente y servidor clientes / servidores pueden usar el hardware y SO ms adecuados para su funcin, ej. cliente barato, servidor rpido
Robustez
servidor protegido contra fallos en el cliente
8
El Modelo Cliente Servidor
Dos puntos de vista
Cliente y servidor como entidades fsicas
Un servidor no es cliente; un cliente no es servidor Granularidad al nivel de subsistema (gruesa) Contexto: arquitecturas de aplicaciones comerciales
Cliente y servidor como roles
La misma entidad puede actuar como cliente o servidor Granularidad al nivel de objeto o componente (fina) Contexto: tecnologas de objetos distribuidos
9
El Modelo Cliente Servidor (Entidades)
Clasificacin 1: En funcin del servicio
Servidores de archivos
Msg.: Peticiones de archivos NFS, SAMBA,...
Servidores de objetos
Msg.: Invocacin a procedimientos remotos servidores CORBA, OLE/DCOM,...
Servidores de bases de datos
Msg.: Peticiones SQL Oracle, Sybase, SQL Server,
Servidores Web
Msg.: Peticiones HTTP servidores HTTP,...
Servidores de transacciones
Msg.: Transaccin (Conjunto de peticiones SQL) OLP,...
Servidores de groupware
Msg.: Mensajes de groupware, e-mails Lotus Notes, Exchange, etc.
10
El Modelo Cliente Servidor (Entidades)
Clasificacin 2: Cmo distribuir aplicacin?
Cliente pesado / servidor ligero
Mayor parte de la aplicacin corre en el lado cliente Servidor exporta datos en bruto Clientes saben de organizacin de datos en el servidor
Cliente ligero / servidor pesado
Mayor parte de la aplicacin corre en el lado servidor Servidor exporta mtodos que operan sobre los datos Cliente no es mucho ms que el GUI
11
El Modelo Cliente Servidor (Entidades)
Clasificacin 2: Cmo distribuir aplicacin?
Cliente ligero (servidor pesado)  Servidor Web  Servidor de transacciones  Servidor de Groupware  Servidor obj distribuidos
Cliente pesado  Servidor de archivos  Servidor de BD  Servidor de obj. distribuidos
GUI
Aplicacin
Datos
CLIENTE
SERVIDOR
12
El Modelo Cliente Servidor (Entidades)
Arquitecturas de distintos niveles
Aplicaciones comerciales se dividen en tres partes
acceso a datos lgica de la aplicacin (o lgica del negocio) presentacin (interfaz de usuario)
Acceso a datos
gestin y acceso a datos persistentes
Presentacin
presentacin de resultados al usuario de forma comprensible
Lgica del negocio
el procesamiento
13
El Modelo Cliente Servidor (Entidades)
Dos niveles, tres niveles o multi-nivel?
En todas las arquitecturas cliente-servidor
nivel del cliente (client tier): presentacin nivel de datos (data tier): acceso a datos
Arquitectura de dos niveles (2-tier) : C-S clsico
lgica de la aplicacin integrada
o bien con la presentacin o bien con el acceso a datos o bien con ambos
Arquitectura de tres niveles (3-tier)
lgica de la aplicacin localizada en el nivel del medio, separada
tanto del acceso a datos como de la presentacin
Arquitectura multi-nivel (multi-tier)
nivel del medio se divide en distintos niveles
14
El Modelo Cliente Servidor (Entidades) Estrategias de distribucin C/S
15
El Modelo Cliente Servidor (Entidades)
Ventajas del cliente ligero
Menos infraestructura en el lado cliente
reduce costes puesto que hay muchos clientes, pocos servidores
Administracin ms facil
es decir, configuracin, mantenimiento, despliegue, puesto que hay menos servidores que clientes
Menos trfico en la red
debido a un nivel de servicio ms abstracto ofrecido al cliente
Gestion de recursos centralizado
ayuda a asegurar la integridad de los datos mayor nivel de seguridad mejor deteccin de fallos
Ms evolutivo, p.e. frente a un cambio del SGBD
16
El Modelo Cliente Servidor (Entidades)
Ventajas de las arquitecturas multi-nivel
Todas las ventajas del cliente ligero Ms flexibilidad y escalabilidad Niveles pueden actualizarse / remplazarse independientemente
Con cambios de requisitos Con cambios de tecnologa
Un control ms fino de la carga del servidor permite
evitar sobrecarga del servidor equilibrar la carga entre servidores conseguir tiempo de respuesta ms bajo
pero al aumento del nmero de niveles puede aumentar el nmero de comunicaciones y por tanto el tiempo de respuesta, ojo!
Ms facilidad para depurar errores
debido a una mayor modularidad
17
El Modelo Cliente Servidor (Entidades)
Diseo de un servidor
Con estado o sin estado
con estado: ms flexible, e.g. carro de compra sin estado: ms tolerancia a fallos (pero cookies)
Concurrencia?
multi-hilos: hilos de servicio viven en el mismo espacio de direcciones que el hilo de escucha atencin a la sincronizacin de hilos
Granjas de servidores / rplica de servidores
transparente para el cliente, cmo? coherencia de servidores  sincronizacin de hilos distintas aplicaciones, distintos requisitos de sincronizacin
18
El Modelo Cliente Servidor
Qu es el middleware?
Contexto del modelo cliente-servidor como entidades
la tecnologa que conecta entre s los niveles de una arquitectura multi-nivel
Contexto del modelo cliente-servidor como roles
el software distribuido necesario para el soporte de interacciones entre clientes y servidores a travs de una plataforma heterognea.
Empieza en el API de la parte del cliente y comprende
la transmisin de la solicitud a travs de una red la transmisin de la respuesta resultante del servidor
19
El Modelo Cliente Servidor
Qu es el middleware?
Middleware general:
pilas de comunicacin directorios distribuidos servicios de autenticacin llamadas a procedimiento remoto (RPC) ...
Middleware de servicios especficos
para bases de datos: ODBC, JDBC,... para groupware: Lotus Notes,... para objetos: CORBA 2, DCOM... para componentes: CORBA 3, .NET... para web: HTTP, SSL, SOAP ...
20
El Modelo Cliente Servidor (Roles)
re wa dle
Mi
e ar ew dl
Mi
Negocio familiar
Pequeas empresas Departamentos
Mi
re wa dle
Mi
re wa dle
S S
21
Grandes empresas
El Modelo Cliente Servidor (Roles)
Mi
e ar ew dl
S
Mi d re wa dle
Mi
e ar ew dl
id
re wa dle
Idealizacin del Mundo C/S
Mi
re wa dle
S
22