Está en la página 1de 22

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
Ofrece

estndares de interoperabilidad

Distribuye
Saca

sus funcionalidades

partido del modelo Cliente/Servidor

Muchas

y despliega grandes redes

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

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

El servidor puede regular el acceso a recursos


compartidos

la ubicacin no afecta la manera de utilizar los servicios

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

Escalabilidad horizontal

facilita: migrar a servidor ms grande / veloz o servidores mltiples


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

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,...

Msg.: Peticiones SQL


Oracle, Sybase, SQL Server,

Msg.: Transaccin (Conjunto de


peticiones SQL)
OLP,...

Msg.: Invocacin a
procedimientos remotos
servidores CORBA,
OLE/DCOM,...

Servidores Web

Servidores de transacciones

Servidores de objetos

Servidores de bases de datos

Msg.: Peticiones HTTP


servidores HTTP,...

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)

Cliente pesado
Servidor de archivos
Servidor de BD
Servidor de obj. distribuidos

GUI

CLIENTE

Servidor Web
Servidor de transacciones
Servidor de Groupware
Servidor obj distribuidos

Aplicacin

Datos

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

Presentacin

gestin y acceso a datos persistentes

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

Arquitectura de tres niveles (3-tier)

lgica de la aplicacin localizada en el nivel del medio, separada

o bien con la presentacin


o bien con el acceso a datos
o bien con ambos

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

Contexto del modelo cliente-servidor como roles

la tecnologa que conecta entre s los niveles de una arquitectura


multi-nivel
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)

Mi

e
ar
w
dle

Negocio familiar

Mi

Mi

e
ar
w
dle

Pequeas empresas
Departamentos

e
ar
w
e
dl

Grandes empresas

Mi

e
ar
w
dle

S
S
21

El Modelo Cliente Servidor (Roles)

Mi

e
ar
w
dle

C
Mi

Mi

e
ar
w
dle

Mi

e
ar
w
dle

e
ar
w
dle

Idealizacin del
Mundo C/S

Mi

e
ar
w
e
dl

S
22