1 procesamiento distribuido, cliente/servidor y clusters capítulo 14

55
1 Procesamiento distribuido, cliente/servidor y clusters Capítulo 14

Upload: alicia-isabella

Post on 12-Mar-2015

67 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: 1 Procesamiento distribuido, cliente/servidor y clusters Capítulo 14

1

Procesamiento distribuido, cliente/servidor y clusters

Capítulo 14

Page 2: 1 Procesamiento distribuido, cliente/servidor y clusters Capítulo 14

2

Computación cliente/servido

• Las máquinas cliente son normalmente simples PCs o estaciones de trabajo que proporcionan una interfaz gráfica de fácil 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 computación de alto rendimiento para gestionar la base de datos

Page 3: 1 Procesamiento distribuido, cliente/servidor y clusters Capítulo 14

3

Terminología cliente/servidor• Interfaz de programación de aplicaciones (Applications Programming

Interface, API)– Un conjunto de funciones y programas que permiten a los clientes y servidores

intercomunicarse• Cliente

– Un elemento de la red que solicita información, normalmente un PC o estación de trabajo. Puede interrogar a una base de datos o solicitar información de un servidor

• Middleware– Un conjunto de controladores, API, y software adicional que mejoran la conectividad

entre una aplicación cliente y servidor• Base de datos relacional

– Una base de datos en la que el acceso a la información está restringido por la selección de filas que satisfacen todos los criterios de búsqueda

• Servidor– Un computador, normalmente una estación de trabajo de gran potencia, un

minicomputador, o un mainframe, que almacena la información para los clientes de la red

• Lenguaje Estructurado de Consultas (Structured Query Language, SQL)– Lenguaje desarrollado por IBM y estandarizado por ANSI que permite acceder, crear,

actualizar e interrogar bases de datos relacionales

Page 4: 1 Procesamiento distribuido, cliente/servidor y clusters Capítulo 14

4

LAN o WAN

Internet

Estación de trabajo (cliente)

Servidor

Figura 14.1. Entorno genérico cliente/servidor

Page 5: 1 Procesamiento distribuido, cliente/servidor y clusters Capítulo 14

5

Aplicaciones cliente/servidor

• El software básico 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 comunicación y soporten las mismas aplicaciones

Page 6: 1 Procesamiento distribuido, cliente/servidor y clusters Capítulo 14

6

Servicios de presentación

Lógica de aplicación (parte de cliente)

Software de comunicaciones

Sistema operativo cliente

Plataforma hardware

Lógica de aplicación(parte de servidor)

Software de comunicaciones

Sistema operativo servidor

Plataforma hardware

Petición

Respuesta

Interacción del protocolo

Estación trabajo cliente

Servidor

Figura 14.2. Arquitectura genérica cliente/servidor

Page 7: 1 Procesamiento distribuido, cliente/servidor y clusters Capítulo 14

7

Aplicaciones cliente/servidor

• La mayor parte del software de aplicación ejecuta en el servidor

• La lógica de la aplicación está situada en el cliente

• Servicios de presentación en la parte del cliente

Page 8: 1 Procesamiento distribuido, cliente/servidor y clusters Capítulo 14

8

Aplicaciones de base de datos

• El servidor es un servidor de base de datos

• La interacción entre el cliente y el servidor se realiza a través de transacciones – El cliente realiza una petición a la base de

datos y recibe una respuesta• El servidor es responsable del

mantenimiento de la base de datos

Page 9: 1 Procesamiento distribuido, cliente/servidor y clusters Capítulo 14

9

Servicios de presentación

Lógica de aplicación

Lógica de base de datos

Software de comunicaciones

Sistema operativo cliente

Plataforma hardware

Lógica de base de datos

Software de comunicaciones

Sistema gestor de base de datos

Sistema operativo servidor

Plataforma hardware

Consulta

Respuesta

Interacción del protocolo

Estación de trabajo cliente

Servidor

Figura 14.3. Arquitectura cliente/servidor para aplicaciones de base de datos

Page 10: 1 Procesamiento distribuido, cliente/servidor y clusters Capítulo 14

10

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

Cliente

Servidor

Base de datos con 1.000.000 de

registros

Consulta inicial

100.000 posibles registros

Siguiente consulta

1.000 registros posibles

Consulta final

Un registro devuelto

(a) Uso deseable cliente/servidor

Page 11: 1 Procesamiento distribuido, cliente/servidor y clusters Capítulo 14

11

Uso de una base datos en un entorno cliente/servidor

Cliente

Servidor

Base de datos con 1.000.000 de registros

Consulta

300.000 registros devueltos

(b) Uso incorrecto cliente/servidor

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

Page 12: 1 Procesamiento distribuido, cliente/servidor y clusters Capítulo 14

12

Clases de aplicaciones cliente/servidor

• Procesamiento basado en el host– No es una verdadera computación

cliente/servidor– Entornos mainframe tradicionales

Cliente

Lógica de presentación

Lógica de aplicación

Lógica de bases de datos

DBMS

Servidor

(a) Procesamiento basado en el host

Page 13: 1 Procesamiento distribuido, cliente/servidor y clusters Capítulo 14

13

Clases de aplicaciones cliente/servidor

• Procesamiento basado en el servidor– El servidor realiza todo el procesamiento – El cliente proporciona la interfaz gráfica de

usuario

Lógica de presentación Lógica de aplicación

Lógica de base de datos

DBMS

(b) Procesamiento basado en el servidor

Cliente Servidor

Page 14: 1 Procesamiento distribuido, cliente/servidor y clusters Capítulo 14

14

Clases de aplicaciones cliente/servidor

• Procesamiento basado en el cliente– Todo el procesamiento se puede realizar en

el cliente– Las rutinas de validación de datos y otras

funciones de la lógica de la base de datos se realizan en el servidor

Lógica de presentación

Lógica de aplicación

Lógica de base de datos Lógica de base de datos

DBMS

Cliente

Servidor

(c) Procesamiento basado en el cliente

Page 15: 1 Procesamiento distribuido, cliente/servidor y clusters Capítulo 14

15

Clases de aplicaciones cliente/servidor

• Procesamiento cooperativo– El procesamiento de aplicación se realiza de

forma óptima– Es más compleja de configurar y de

mantener

Lógica de presentación

Lógica de aplicación

Cliente

Lógica de aplicación

Lógica de base de datos

DBMS

Servidor

(d) Procesamiento cooperativo

Page 16: 1 Procesamiento distribuido, cliente/servidor y clusters Capítulo 14

16

Arquitectura cliente/servidor de tres capas

• El software de la aplicación se distribuye entre tres tipos de máquinas– Máquina 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)

Page 17: 1 Procesamiento distribuido, cliente/servidor y clusters Capítulo 14

17

Cliente

Servidor de la capa central (servidor de aplicación)

Servidores en segundo

plano (servidores de datos)

Figura 14.6. Arquitectura cliente/servidor de tres capas

Page 18: 1 Procesamiento distribuido, cliente/servidor y clusters Capítulo 14

18

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 simultáneos a un fichero

Page 19: 1 Procesamiento distribuido, cliente/servidor y clusters Capítulo 14

19

Cache de cliente

Cache de servidor (server cache)

Cache de cliente

Red

Tráfico de ficheros

Tráfico de servidor

Tráfico de ficheros

Disco de servidor

Tráfico de disco

Tráfico de disco

Disco de servidor Disco de cliente

Figura 14.7. Cache de ficheros distribuida en Sprite

Page 20: 1 Procesamiento distribuido, cliente/servidor y clusters Capítulo 14

20

Middleware

• Conjunto de herramientas que proporciona una manera y estilo de acceso uniforme a los recursos del sistema a través de todas las plataformas

• Permite a los programadores construir aplicaciones que parezcan iguales

• Permite que los programadores utilicen el mismo método para acceder a los datos

Page 21: 1 Procesamiento distribuido, cliente/servidor y clusters Capítulo 14

21

Servicios de presentación

Lógica de aplicación

Middleware

Software de comunicaciones

Sistema operativo cliente

Plataforma hardware

Middleware

Software de comunicaciones

Servicios de aplicación

Sistema operativo servidor

Plataforma hardware

Interacción middleware

Interacción del protocolo

Estación de trabajo cliente

Servidor

Figura 14.8. El papel del middleware en la arquitectura cliente/servidor

Page 22: 1 Procesamiento distribuido, cliente/servidor y clusters Capítulo 14

22

Aplicación Aplicación

Middleware

(servicios del sistema distribuido)

Interfaces de la plataforma

Plataforma:

SO y Hardware

Plataforma:

SO y Hardware

Figura 14.9. Visión lógica del middleware

Page 23: 1 Procesamiento distribuido, cliente/servidor y clusters Capítulo 14

23

Mecanismos middleware

Aplicación

Middleware orientado a mensajes (con cola de mensajes)

Transporte

Red

Aplicación

Middleware orientado a mensajes (con cola de mensajes)

Transporte

Red

Cliente Servidor

Mensajes específicos de aplicación

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

Page 24: 1 Procesamiento distribuido, cliente/servidor y clusters Capítulo 14

24

Mecanismos middleware

AplicaciónPrograma

esqueleto RPC

Transporte

Red

Cliente

Programa esqueleto RPC

Aplicación

Transporte

Red

Servidor

Innovaciones y respuestas de procedimientos específicos de

aplicación

(b) Llamada a procedimiento remoto

Page 25: 1 Procesamiento distribuido, cliente/servidor y clusters Capítulo 14

25

Mecanismos middleware

AplicaciónPrograma

esqueleto RPC

Transporte

Red

Servidor de objetos

Transporte

Red

Mediador de solicitud de

objeto

Transporte

Red

Solicitud de objetos y respuestas

Solicitud de objetos y respuestas

Cliente Servidor

Figura 14.10. Mecanismos middleware

(c) Mediador de solicitud de objeto

Page 26: 1 Procesamiento distribuido, cliente/servidor y clusters Capítulo 14

26

Paso de mensajes distribuido

• Paso de mensajes que se utiliza para la comunicación entre procesos

• Envía (Send) y recibe (Receive) mensajes tal y como se utilizan en un único sistema

• Llamadas a procedimiento remoto

Page 27: 1 Procesamiento distribuido, cliente/servidor y clusters Capítulo 14

27

Primitivas básicas de paso de mensajes

Proceso emisor

Proceso receptor

Módulo de paso de mensajes

Módulo de paso de mensajes

IdProceso Mensaje

Figura 14.11. Primitivas básicas de paso de mensajes

Page 28: 1 Procesamiento distribuido, cliente/servidor y clusters Capítulo 14

28

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 envía el mensaje por la red pero no se le indica ni el éxito ni el fracaso– Reduce enormemente la complejidad y la

sobrecarga

Page 29: 1 Procesamiento distribuido, cliente/servidor y clusters Capítulo 14

29

Bloqueante vs. no bloqueante• No bloqueante

– No se suspende a un proceso como resultado de realizar un Send o Receive

– Eficiente y flexible– Difícil 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 buffer

Page 30: 1 Procesamiento distribuido, cliente/servidor y clusters Capítulo 14

30

Llamadas a procedimiento remoto

• Permite a los programas en diferentes máquinas interactuar a través del uso de llamadas a procedimiento

• Ampliamente aceptadas• Estandarizadas

– Los módulos cliente y servidor se pueden mover fácilmente entre computadoras y sistemas operativos

Page 31: 1 Procesamiento distribuido, cliente/servidor y clusters Capítulo 14

31

Aplicación cliente

Respuesta local Respuesta local

Llamada a procedimiento

local

Aplicación local o sistema

operativo

Esqueleto local

Mecanismo

RPC

Aplicación

servidora remota

Respuesta local

Llamada a procedimiento

local

Esqueleto local

Llamada a procedimiento remoto

Llamada a procedimiento remoto

Mecanismo

RPC

Figura 14.12. Mecanismo de llamadas a procedimiento remoto

Page 32: 1 Procesamiento distribuido, cliente/servidor y clusters Capítulo 14

32

Enlace cliente/servidor

• El enlace especifica la relación entre un procedimiento remoto y el programa llamante

• Enlace no permanente– Se establece la conexión lógica entre los

dos procesos en el momento de la llamada a procedimiento remoto

• Enlaces persistentes– Se establece una conexión después de la

finalización del procedimiento

Page 33: 1 Procesamiento distribuido, cliente/servidor y clusters Capítulo 14

33

Síncronos vs. asíncronos

• RPC síncrono– Se comporta como una llamada a subrutina

• RPC asíncrono– No bloquean al llamante – Permite al cliente ejecutar en paralelo con el

servidor

Page 34: 1 Procesamiento distribuido, cliente/servidor y clusters Capítulo 14

34

Mecanismos orientados a objetos

• Clientes y servidores mandan mensajes entre objetos

• Un cliente manda una petición 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 (Microsoft’s Component Object Model, COM)

• Arquitectura Común de Mediador de Solicitud de Objeto (Common Object Request Broker Architecture, CORBA)

Page 35: 1 Procesamiento distribuido, cliente/servidor y clusters Capítulo 14

35

Clusters

• Alternativa al Multiprocesamiento Simétrico (Symmetric Multiprocessing, SMP)

• Grupo de computadoras completas e interconectadas, que trabajan juntas como un recurso de computación unificado – Pueden crear la ilusión de ser una única máquina– El sistema puede ejecutar por sí mismo

Page 36: 1 Procesamiento distribuido, cliente/servidor y clusters Capítulo 14

36

Método de Cluster Descripción Beneficios Limitaciones

Pasivo en Espera En caso de fallo en el servidor primario, un servidor secundario toma control..

Fácil de implementar. Alto coste debido a que el servidor secundario no está disponible para procesar otras tareas.

Secundario Activo El servidor secundario también se utiliza para procesamiento de tareas.

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

Creciente complejidad.

Diferentes Servidores Cada servidor tiene sus propios discos. Los datos se copian continuamente del servidor primario al secundario.

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

Servidores Conectados a Discos

Los servidores están unidos a los mismos discos, pero cada servidor posee sus propios discos, Si un servidor falla el otro servidor toma control de sus discos.

Sobrecarga de red y de servidores reducida debido a la eliminación de las operaciones de copia

Normalmente requiere tecnologías de replicación de discos o RAID para compensar el riesgo de fallo de disco.

Servidores Comparten Discos

Varios servidores comparten acceso a disco de forma simultánea.

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

Requiere software de gestión de cerrojos. Normalmente se utiliza con tecnologías de replicación de discos o RAID.

Page 37: 1 Procesamiento distribuido, cliente/servidor y clusters Capítulo 14

37

Clusters

• Servidor diferente– Cada computadora es un servidor diferente – No hay discos compartidos– Se necesita algún tipo de software de

gestión o de planificación– Se debe copiar constantemente la

información entre los sistemas, de forma que cada sistema tenga acceso a los datos actualizados de otros sistemas

Page 38: 1 Procesamiento distribuido, cliente/servidor y clusters Capítulo 14

38

Configuraciones de los clusters

E/S E/SEnlace de mensajes de alta velocidad

E/S E/SM M

(a) Servidor en espera sin disco compartido

Page 39: 1 Procesamiento distribuido, cliente/servidor y clusters Capítulo 14

39

Clusters

• Nada compartido (Shared Nothing)– Reduce la sobrecarga de las comunicaciones – Los discos comunes se particionan en

volúmenes – Cada volumen pertenece a una computadora – Si falla una computadora, el cluster se debe

reconfigurar para que otra computadora tome posesión del volumen de la computadora que falló

Page 40: 1 Procesamiento distribuido, cliente/servidor y clusters Capítulo 14

40

Configuraciones de los clusters

P P E/S

M E/SE/S

Enlace de mensajes de alta velocidad E/S

E/S E/S

P P

M

(b) Disco compartido

Page 41: 1 Procesamiento distribuido, cliente/servidor y clusters Capítulo 14

41

Clusters

• Disco compartido– Múltiples computadoras comparten los

mismos discos al mismo tiempo – Cada computadora tiene acceso a todos los

volúmenes de todos los discos

Page 42: 1 Procesamiento distribuido, cliente/servidor y clusters Capítulo 14

42

Aspectos de diseño de sistemas operativos

• Gestión de fallos – Un cluster de alta disponibilidad ofrece alta

posibilidad de que todos los servicios estén en servicio • No garantiza el estado de las transacciones

parcialmente realizadas si ocurre algún fallo

– Un cluster tolerante a fallos asegura que todos los recursos están siempre disponibles

Page 43: 1 Procesamiento distribuido, cliente/servidor y clusters Capítulo 14

43

Aspectos de diseño de sistemas operativos

• Equilibrado de carga– Cuando se añade una nueva computadora al

cluster, el servicio de equilibrado de carga debe incluir automáticamente la nueva computadora en la planificación de las aplicaciones

• Computación paralela– Compilación paralela– Aplicaciones paralelas– Computación paramétrica

Page 44: 1 Procesamiento distribuido, cliente/servidor y clusters Capítulo 14

44

Arquitectura de un cluster

• Servicios y funciones del middleware de cluster – Un único punto de entrada– Una única jerarquía de ficheros– Un único punto de control– Una única red virtual– Un único espacio de memoria– Un único sistema de control de trabajos

Page 45: 1 Procesamiento distribuido, cliente/servidor y clusters Capítulo 14

45

Arquitectura de un cluster

• Servicios y funciones del middleware de cluster– Un único interfaz de usuario– Un único espacio de E/S– Un único espacio de procesos– Puntos de control– Migración de procesos

Page 46: 1 Procesamiento distribuido, cliente/servidor y clusters Capítulo 14

46

Arquitectura de un cluster

Aplicaciones secuenciales

Aplicaciones paralelas

Entorno de programación paralela

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

PC/Estación de trabajo PC/Estación de trabajo PC/Estación de trabajo PC/Estación de trabajoPC/Estación de trabajo

Sw comunicaciones Sw comunicaciones Sw comunicaciones Sw comunicaciones 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 computación cluster [BUYY99a]

Page 47: 1 Procesamiento distribuido, cliente/servidor y clusters Capítulo 14

47

Cluster frente a SMP

• SMP es más fácil de gestionar y configurar • SMP ocupa menos espacio físico y gasta

menos energía • Los productos SMP están bien establecidos y

son muy estables• Los clusters son superiores que SMP en

relación a la escalabilidad incremental y absoluta

• Los clusters son superiores en términos de disponibilidad

Page 48: 1 Procesamiento distribuido, cliente/servidor y clusters Capítulo 14

48

Servidor cluster de Windows

• Servicio Cluster– La colección de software de cada nodo que

gestiona toda la actividad específica del cluster • Recurso

– Un elemento gestionado por el servicio cluster • En línea (online)

– Se dice que un recurso está en línea en un nodo cuando está proporcionando servicio en ese nodo específico

• Grupo– Una colección de recursos gestionada como una

unidad

Page 49: 1 Procesamiento distribuido, cliente/servidor y clusters Capítulo 14

49

Herramientas de gestión del cluster

API DLL del cluster

Gestor de base de datos

Gestor actualizaciones globales

Gestor de nodos

Procesador de eventos

Gestor de recursos

Gestor de recuperación de fallosGestor de comunicaciones

DLL recursos

aplicación

Monitor de recursos

DLL recursos

aplicación

DLL recursos

aplicación

DLL recursos

aplicación

App conscientes del cluster

App no conscientes

RPC

Otros

nodos

Servicio de cluster

Interfaz de gestión de recursos

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

Page 50: 1 Procesamiento distribuido, cliente/servidor y clusters Capítulo 14

50

Sun Cluster

• Principales componentes – Soporte de objetos y comunicaciones– Gestión de procesos– Redes– Sistema de ficheros distribuido global

Page 51: 1 Procesamiento distribuido, cliente/servidor y clusters Capítulo 14

51

Interfaz de llamadas al sistema

Red

Sistema de ficheros Procesos

C++ Estructura de objetos

Núcleo Solaris existente

Aplicaciones

Sun cluster

Otros nodos

Invocación de objetos

Figura 14.16. Estructura de Sun Cluster

Page 52: 1 Procesamiento distribuido, cliente/servidor y clusters Capítulo 14

52

Núcleo

Sistema de ficheros

Sistema de ficheros

Interfaz nodo-v/VFS

Núcleo

Capa proxy Cache

Interfaz

nodo-v/VFS

Implementación del objeto Cache

Sistema de ficheros

Sistema de ficheros

Interfaz

nodo-v/VFS

Invocación al objeto

(a) Solaris estándar (b) Sun cluster

Figura 14.17. Extensiones del sistema de ficheros de sun Cluster

Page 53: 1 Procesamiento distribuido, cliente/servidor y clusters Capítulo 14

53

Clusters Beowulf y Linux

• Principales características– Componentes genéricos 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

combinación de redes)– Ningún componente propio– Fácilmente replicable para múltiples vendedores

Page 54: 1 Procesamiento distribuido, cliente/servidor y clusters Capítulo 14

54

Clusters Beowulf y Linux

• Principales características– E/S escalable – Basado en software gratuito disponible– Utiliza herramientas de computación

gratuitas con mínimos cambios– Retorno del diseño y de las mejoras a la

comunidad

Page 55: 1 Procesamiento distribuido, cliente/servidor y clusters Capítulo 14

55

Almacenamiento compartido distribuido

Estaciones de trabajo Linux

Ethernet o Ethernets

interconectados

Figura 14.18. Configuración genérica de Beowulf