1 procesamiento distribuido, cliente/servidor y clusters capítulo 14
TRANSCRIPT
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
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
4
LAN o WAN
Internet
Estación de trabajo (cliente)
Servidor
Figura 14.1. Entorno genérico cliente/servidor
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
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
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
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
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
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
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
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
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
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
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
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)
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
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
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
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
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
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
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)
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
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
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
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
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
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
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
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
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
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
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)
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
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.
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
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
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ó
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
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
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
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
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
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
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]
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
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
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]
50
Sun Cluster
• Principales componentes – Soporte de objetos y comunicaciones– Gestión de procesos– Redes– Sistema de ficheros distribuido global
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
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
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
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
55
Almacenamiento compartido distribuido
Estaciones de trabajo Linux
Ethernet o Ethernets
interconectados
Figura 14.18. Configuración genérica de Beowulf