You are on page 1of 55

Procesamiento distribuido, cliente/servidor y clsters

Captulo 14

Computacin cliente/servidor
Las mquinas cliente son normalmente simples PCs o estaciones de trabajo que proporcionan una interfaz grfica de fcil manejo al usuario final Cada servidor proporciona un conjunto de servicios compartidos a los clientes El servidor permite a los clientes compartir el acceso a una misma base de datos y permite el uso de sistemas de computacin de alto rendimiento para gestionar la base de datos
2

Terminologa cliente/servidor
Interfaz de programacin de aplicaciones (Applications Programming Interface, API)
Un conjunto de funciones y programas que permiten a los clientes y servidores intercomunicarse Un elemento de la red que solicita informacin, normalmente un PC o estacin de trabajo. Puede interrogar a una base de datos o solicitar informacin de un servidor Un conjunto de controladores, API, y software adicional que mejoran la conectividad entre una aplicacin cliente y servidor Una base de datos en la que el acceso a la informacin est restringido por la seleccin de filas que satisfacen todos los criterios de bsqueda Un computador, normalmente una estacin de trabajo de gran potencia, un minicomputador, o un mainframe, que almacena la informacin para los clientes de la red Lenguaje desarrollado por IBM y estandarizado por ANSI que permite acceder, crear, actualizar e interrogar bases de datos relacionales

Cliente

Middleware Base de datos relacional Servidor

Lenguaje Estructurado de Consultas (Structured Query Language, SQL)

LAN o WAN Internet

Servidor Estacin de trabajo (cliente)

Figura 14.1. Entorno genrico cliente/servidor

Aplicaciones cliente/servidor
El software bsico es un sistema operativo que ejecuta sobre el hardware de la plataforma La plataforma y el sistema operativo del cliente y del servidor pueden ser diferentes Estas diferencias de bajo nivel no son relevantes siempre que el cliente y el servidor compartan los mismos protocolos de comunicacin y soporten las mismas aplicaciones
5

Estacin trabajo cliente Servicios de presentacin Servidor Lgica de aplicacin (parte de cliente) Software de comunicaciones Peticin Respuesta Software de comunicaciones Sistema operativo servidor Lgica de aplicacin (parte de servidor)

Interaccin del protocolo

Sistema operativo cliente

Plataforma hardware

Plataforma hardware

Figura Arquitectura genrica cliente/servidor

Aplicaciones cliente/servidor
La mayor parte del software de aplicacin ejecuta en el servidor La lgica de la aplicacin est situada en el cliente Servicios de presentacin en la parte del cliente

Aplicaciones de base de datos


El servidor es un servidor de base de datos La interaccin entre el cliente y el servidor se realiza a travs de transacciones
El cliente realiza una peticin a la base de datos y recibe una respuesta

El servidor es responsable del mantenimiento de la base de datos


8

Estacin de trabajo cliente Servicios de presentacin Lgica de aplicacin Servidor Lgica de base de datos Software de comunicaciones Sistema operativo cliente Consulta Respuesta Interaccin del protocolo Software de comunicaciones Sistema gestor de base de datos Lgica de base de datos

Sistema operativo servidor

Plataforma hardware

Plataforma hardware

Figura Arquitectura cliente/servidor para aplicaciones de base de datos

Uso de una base de datos en un entorno cliente/servidor


Consulta inicial Servidor 100.000 posibles registros Cliente Siguiente consulta 1.000 registros posibles Consulta final

Un registro devuelto
Base de datos con 1.000.000 de registros

(a) Uso deseable cliente/servidor

10

Uso de una base datos en un entorno cliente/servidor


Servidor Cliente Consulta

300.000 registros devueltos

(b) Uso incorrecto cliente/servidor

Base de datos con 1.000.000 de registros

Figura Uso de una base de datos en un entorno cliente/servidor

11

Clases de aplicaciones cliente/servidor


Procesamiento basado en el host
No es una verdadera computacin cliente/servidor Entornos mainframe tradicionales
Cliente Servidor

Lgica de presentacin
Lgica de aplicacin Lgica de bases de datos DBMS (a) Procesamiento basado en el host

12

Clases de aplicaciones cliente/servidor


Procesamiento basado en el servidor
El servidor realiza todo el procesamiento El cliente proporciona la interfaz grfica de usuario
Cliente Lgica de presentacin Servidor Lgica de aplicacin Lgica de base de datos DBMS

(b) Procesamiento basado en el servidor

13

Clases de aplicaciones cliente/servidor


Procesamiento basado en el cliente
Todo el procesamiento se puede realizar en el cliente Las rutinas de validacin de datos y otras funciones de la lgica de la base de datos se realizan en el servidor
Cliente

Lgica de presentacin
Lgica de aplicacin Lgica de base de datos Servidor Lgica de base de datos DBMS

(c) Procesamiento basado en el cliente

14

Clases de aplicaciones cliente/servidor


Procesamiento cooperativo
El procesamiento de aplicacin se realiza de forma ptima Es ms compleja de configurar y de mantener
Cliente Lgica de presentacin Lgica de aplicacin Servidor Lgica de aplicacin Lgica de base de datos DBMS

(d) Procesamiento cooperativo

15

Arquitectura cliente/servidor de tres capas


El software de la aplicacin se distribuye entre tres tipos de mquinas
Mquina de usuario
Cliente ligero

Servidor en la capa central


Pasarela Convertir protocolos Mezclar/integrar los resultados de diferentes fuentes de datos

Servidor en segundo plano (backend)


16

Cliente

Servidor de la capa central (servidor de aplicacin)

Servidores en segundo plano (servidores de datos)

Figura 14.6. Arquitectura cliente/servidor de tres capas

17

Consistencia de la cache de ficheros


La cache de ficheros almacena los registros de los ficheros para almacenar los registros de los ficheros a los que se ha accedido recientemente La cache es consistente cuando contiene copias exactas de los datos remotos El bloqueo de ficheros evita accesos simultneos a un fichero
18

Red

Trfico de ficheros

Cache de cliente

Trfico de servidor

Cache de servidor (server cache)

Disco de servidor

Cache de cliente

Trfico de ficheros

Trfico de disco

Trfico de disco

Disco de servidor

Disco de cliente

Figura Cache de ficheros distribuida en Sprite 19

Middleware
Conjunto de herramientas que proporciona una manera y estilo de acceso uniforme a los recursos del sistema a travs de todas las plataformas Permite a los programadores construir aplicaciones que parezcan iguales Permite que los programadores utilicen el mismo mtodo para acceder a los datos
20

Estacin de trabajo cliente Servicios de presentacin

Lgica de aplicacin

Servidor
Middleware Interaccin middleware Middleware Software de comunicaciones Servicios de aplicacin

Software de comunicaciones

Interaccin del protocolo

Sistema operativo cliente

Sistema operativo servidor

Plataforma hardware

Plataforma hardware

Figura El papel del middleware en la arquitectura cliente/servidor

21

Aplicacin

Aplicacin

Middleware (servicios del sistema distribuido)

Interfaces de la plataforma

Plataforma: SO y Hardware

Plataforma: SO y Hardware

Figura Visin lgica del middleware

22

Mecanismos middleware
Cliente Aplicacin Middleware orientado a mensajes (con cola de mensajes) Transporte Red Mensajes especficos de aplicacin Servidor Aplicacin Middleware orientado a mensajes (con cola de mensajes) Transporte Red

(a) Middleware orientado a mensajes (con cola de mensajes)

23

Mecanismos middleware
Cliente Servidor

Aplicacin

Programa esqueleto RPC

Transporte Red

Innovaciones y respuestas de procedimientos especficos de aplicacin

Programa esqueleto RPC

Aplicacin

Transporte Red

(b) Llamada a procedimiento remoto

24

Mecanismos middleware
Cliente Mediador de solicitud de objeto Solicitud de objetos y respuestas Transporte Red Solicitud de objetos y respuestas Servidor Programa esqueleto RPC Servidor de objetos

Aplicacin

Transporte Red

Transporte Red

(c) Mediador de solicitud de objeto

Figura Mecanismos middleware

25

Paso de mensajes distribuido


Paso de mensajes que se utiliza para la comunicacin entre procesos Enva (Send) y recibe (Receive) mensajes tal y como se utilizan en un nico sistema Llamadas a procedimiento remoto

26

Primitivas bsicas de paso de mensajes


Proceso emisor Proceso receptor

Mdulo de paso de mensajes IdProceso Mensaje

Mdulo de paso de mensajes

Figura 14.11. Primitivas bsicas de paso de mensajes

27

Fiable vs. no Fiable


Un servicio fiable de paso de mensajes garantiza la entrega si es posible
No es necesario informar al proceso emisor de que el mensaje ha sido enviado

El servicio de paso de mensajes no fiable enva el mensaje por la red pero no se le indica ni el xito ni el fracaso
Reduce enormemente la complejidad y la sobrecarga
28

Bloqueante vs. no bloqueante


No bloqueante
No se suspende a un proceso como resultado de realizar un Send o Receive Eficiente y flexible Difcil de depurar programas que utilicen estas primitivas

Bloqueante
Una primitiva Send no devuelve el control al proceso emisor hasta que el mensaje ha sido transmitido Send no devuelve el control al proceso hasta que se haya recibido el acuse de recibo Receive no devuelve el control hasta que el mensaje ha sido situado en su correspondiente 29 buffer

Llamadas a procedimiento remoto


Permite a los programas en diferentes mquinas interactuar a travs del uso de llamadas a procedimiento Ampliamente aceptadas Estandarizadas
Los mdulos cliente y servidor se pueden mover fcilmente entre computadoras y sistemas operativos
30

Aplicacin cliente

Aplicacin servidora remota

Respuesta local
Llamada a procedimiento local

Respuesta local
Respuesta local Llamada a procedimiento local

Aplicacin local o sistema operativo

Esqueleto local

Esqueleto local

Llamada a procedimiento remoto Mecanismo RPC Llamada a procedimiento remoto Mecanismo RPC

Figura 14.12. Mecanismo de llamadas a procedimiento remoto

31

Enlace cliente/servidor
El enlace especifica la relacin entre un procedimiento remoto y el programa llamante Enlace no permanente
Se establece la conexin lgica entre los dos procesos en el momento de la llamada a procedimiento remoto

Enlaces persistentes
Se establece una conexin despus de la finalizacin del procedimiento
32

Sncronos vs. asncronos


RPC sncrono
Se comporta como una llamada a subrutina

RPC asncrono
No bloquean al llamante Permite al cliente ejecutar en paralelo con el servidor

33

Mecanismos orientados a objetos


Clientes y servidores mandan mensajes entre objetos Un cliente manda una peticin a un mediador de solicitud de objeto El mediador llama al objeto apropiado y le transfiere todos los datos relevantes Modelo de Componentes de Objeto de Microsoft (Microsofts Component Object Model, COM) Arquitectura Comn de Mediador de Solicitud de Objeto (Common Object Request Broker Architecture, CORBA) 34

Clsters
Alternativa al Multiprocesamiento Simtrico (Symmetric Multiprocessing, SMP) Grupo de computadoras completas e interconectadas, que trabajan juntas como un recurso de computacin unificado
Pueden crear la ilusin de ser una nica mquina El sistema puede ejecutar por s mismo

35

Mtodo de Clster Pasivo en Espera

Descripcin En caso de fallo en el servidor primario, un servidor secundario toma control.. El servidor secundario tambin se utiliza para procesamiento de tareas. Cada servidor tiene sus propios discos. Los datos se copian continuamente del servidor primario al secundario. Los servidores estn unidos a los mismos discos, pero cada servidor posee sus propios discos, Si un servidor falla el otro servidor toma control de sus discos. Varios servidores comparten acceso a disco de forma simultnea.

Beneficios Fcil de implementar.

Limitaciones Alto coste debido a que el servidor secundario no est disponible para procesar otras tareas. Creciente complejidad.

Secundario Activo

Coste reducido porque el servidor secundario puede ser utilizado para procesamiento. Alta disponibilidad.

Diferentes Servidores

Alta sobrecarga de red y de servidor debido a las operaciones de copia.

Servidores Conectados a Discos

Sobrecarga de red y de servidores reducida debido a la eliminacin de las operaciones de copia

Normalmente requiere tecnologas de replicacin de discos o RAID para compensar el riesgo de fallo de disco.

Servidores Comparten Discos

Baja sobrecarga de red y de servidores. Reducido riesgo de periodos de inactividad causados por fallos de disco.

Requiere software de gestin de cerrojos. Normalmente se utiliza con tecnologas de replicacin de discos o RAID. 36

Clsters
Servidor diferente
Cada computadora es un servidor diferente No hay discos compartidos Se necesita algn tipo de software de gestin o de planificacin Se debe copiar constantemente la informacin entre los sistemas, de forma que cada sistema tenga acceso a los datos actualizados de otros sistemas
37

Configuraciones de los clsters

Enlace de mensajes de alta velocidad


M E/S E/S E/S E/S M

(a) Servidor en espera sin disco compartido

38

Clsters
Nada compartido (Shared Nothing)
Reduce la sobrecarga de las comunicaciones Los discos comunes se particionan en volmenes Cada volumen pertenece a una computadora Si falla una computadora, el clster se debe reconfigurar para que otra computadora tome posesin del volumen de la computadora que fall
39

Configuraciones de los clsters


Enlace de mensajes de alta velocidad
P P E/S E/S P P

E/S

E/S

E/S

E/S

(b) Disco compartido

40

Clsters
Disco compartido
Mltiples computadoras comparten los mismos discos al mismo tiempo Cada computadora tiene acceso a todos los volmenes de todos los discos

41

Aspectos de diseo de sistemas operativos


Gestin de fallos
Un clster de alta disponibilidad ofrece alta posibilidad de que todos los servicios estn en servicio
No garantiza el estado de las transacciones parcialmente realizadas si ocurre algn fallo

Un clster tolerante a fallos asegura que todos los recursos estn siempre disponibles

42

Aspectos de diseo de sistemas operativos


Equilibrado de carga
Cuando se aade una nueva computadora al clster, el servicio de equilibrado de carga debe incluir automticamente la nueva computadora en la planificacin de las aplicaciones

Computacin paralela
Compilacin paralela Aplicaciones paralelas Computacin paramtrica
43

Arquitectura de un clster
Servicios y funciones del middleware de clster
Un nico punto de entrada Una nica jerarqua de ficheros Un nico punto de control Una nica red virtual Un nico espacio de memoria Un nico sistema de control de trabajos
44

Arquitectura de un clster
Servicios y funciones del middleware de clster
Un nico interfaz de usuario Un nico espacio de E/S Un nico espacio de procesos Puntos de control Migracin de procesos

45

Arquitectura de un clster
Aplicaciones paralelas Aplicaciones secuenciales Entorno de programacin paralela

Middleware de cluster (Imagen del sistema e infraestructura de disponibilidad)

PC/Estacin de trabajo
Sw comunicaciones

PC/Estacin de trabajo
Sw comunicaciones

PC/Estacin de trabajo
Sw comunicaciones

PC/Estacin de trabajo
Sw comunicaciones

PC/Estacin de trabajo
Sw comunicaciones

Hw interfaz red

Hw interfaz red

Hw interfaz red

Hw interfaz red

Hw interfaz red

Red de alta velocidad/conmutador

Figura 14.14. Arquitectura de computacin cluster [BUYY99a]

46

Clster frente a SMP


SMP es ms fcil de gestionar y configurar SMP ocupa menos espacio fsico y gasta menos energa Los productos SMP estn bien establecidos y son muy estables Los clsters son superiores que SMP en relacin a la escalabilidad incremental y absoluta Los clsters son superiores en trminos de disponibilidad
47

Servidor clster de Windows


Servicio Clster
La coleccin de software de cada nodo que gestiona toda la actividad especfica del clster

Recurso
Un elemento gestionado por el servicio clster

En lnea (online)
Se dice que un recurso est en lnea en un nodo cuando est proporcionando servicio en ese nodo especfico

Grupo
Una coleccin de recursos gestionada como una unidad
48

Herramientas de gestin del cluster

API DLL del cluster


RPC

Gestor actualizaciones globales


Gestor de base de datos Procesador de eventos Gestor de nodos

Servicio de cluster

DLL recursos aplicacin

Gestor de recuperacin de fallos

Gestor de comunicaciones
Gestor de recursos

Otros nodos

Monitor de recursos

Interfaz de gestin de recursos

DLL recursos aplicacin App conscientes del cluster

DLL recursos aplicacin

DLL recursos aplicacin

App no conscientes

Figura 14.15. Diagrama de bloques del Windows Cluster Server [SHOR97]

49

Sun Clster
Principales componentes
Soporte de objetos y comunicaciones Gestin de procesos Redes Sistema de ficheros distribuido global

50

Aplicaciones

Interfaz de llamadas al sistema Red Sun clster Sistema de ficheros Procesos Otros nodos C++ Estructura de objetos Invocacin de objetos

Ncleo Solaris existente

Figura 14.16. Estructura de Sun Clster

51

Ncleo
Interfaz nodo-v/VFS Capa proxy Cache

Invocacin al objeto Ncleo

Interfaz nodo-v/VFS

Implementacin del objeto


Interfaz nodo-v/VFS

Cache

Sistema de ficheros

Sistema de ficheros

Sistema de ficheros

Sistema de ficheros

(a) Solaris estndar

(b) Sun cluster

Figura 14.17. Extensiones del sistema de ficheros de sun Clster

52

Clusters Beowulf y Linux


Principales caractersticas
Componentes genricos disponibles en el mercado Procesadores dedicados (mejor que ciclos disponibles de estaciones de trabajo ociosas) Una red privada y dedicada (LAN o WAN o una combinacin de redes) Ningn componente propio Fcilmente replicable para mltiples vendedores

53

Clusters Beowulf y Linux


Principales caractersticas
E/S escalable Basado en software gratuito disponible Utiliza herramientas de computacin gratuitas con mnimos cambios Retorno del diseo y de las mejoras a la comunidad

54

Almacenamiento compartido distribuido Estaciones de trabajo Linux

Ethernet o Ethernets interconectados

Figura 14.18. Configuracin genrica de Beowulf

55

You might also like