Professional Documents
Culture Documents
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
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)
Plataforma hardware
Plataforma hardware
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
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
Plataforma hardware
Plataforma hardware
Un registro devuelto
Base de datos con 1.000.000 de registros
10
11
Lgica de presentacin
Lgica de aplicacin Lgica de bases de datos DBMS (a) Procesamiento basado en el host
12
13
Lgica de presentacin
Lgica de aplicacin Lgica de base de datos Servidor Lgica de base de datos DBMS
14
15
Cliente
17
Red
Trfico de ficheros
Cache de cliente
Trfico de servidor
Disco de servidor
Cache de cliente
Trfico de ficheros
Trfico de disco
Trfico de disco
Disco de servidor
Disco de cliente
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
Lgica de aplicacin
Servidor
Middleware Interaccin middleware Middleware Software de comunicaciones Servicios de aplicacin
Software de comunicaciones
Plataforma hardware
Plataforma hardware
21
Aplicacin
Aplicacin
Interfaces de la plataforma
Plataforma: SO y Hardware
Plataforma: SO y Hardware
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
23
Mecanismos middleware
Cliente Servidor
Aplicacin
Transporte Red
Aplicacin
Transporte Red
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
25
26
27
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
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
Aplicacin cliente
Respuesta local
Llamada a procedimiento local
Respuesta local
Respuesta local Llamada a procedimiento local
Esqueleto local
Esqueleto local
Llamada a procedimiento remoto Mecanismo RPC Llamada a procedimiento remoto Mecanismo RPC
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
RPC asncrono
No bloquean al llamante Permite al cliente ejecutar en paralelo con el servidor
33
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
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.
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
Normalmente requiere tecnologas de replicacin de discos o RAID para compensar el riesgo de fallo de disco.
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
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
E/S
E/S
E/S
E/S
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
Un clster tolerante a fallos asegura que todos los recursos estn siempre disponibles
42
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
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
46
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
Servicio de cluster
Gestor de comunicaciones
Gestor de recursos
Otros nodos
Monitor de recursos
App no conscientes
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
51
Ncleo
Interfaz nodo-v/VFS Capa proxy Cache
Interfaz nodo-v/VFS
Cache
Sistema de ficheros
Sistema de ficheros
Sistema de ficheros
Sistema de ficheros
52
53
54
55