Sistemas Operativos Distribuidos
Plataforma Cliente/Servidor
Gustavo H. SosaServicio de Diagnóstico por ImágenesHospital Italiano
Segunda Parte:
• Plataforma Cliente / Servidor
Agenda
• Terminología• Concurrecia, bloqueos y transacciones• Comunicación sincrónica y asincrónica• Bases de datos• Redes• RPC• WEB Services
Terminología Cliente / Servidor
• Computadoras cliente hacen pedidos a computadoras servidores
• Computadoras servidores sirven o responden a estos pedidos
• Modelo computacional donde aplicaciones en computadoras de escritorio o PCs acceden a información en servidores remotos y hosts. Aplicación cliente optimizada para interacción
con el usuario Aplicación servidora provee funcionalidad
centralizada para múltiples usuarios
Otro concepto
• Relación pedido / servicio al pedido, independientemente de la ubicación física
• Servicio: unidad de lógica de aplicación que implementa operaciones, funciones o transformaciones
• Capas: conjunto lógico de servicios (usuario, negocios, datos)
Modelo de dos capas
• Primer separación de la lógica de acceso a datos de la aplicación del cliente Motor de base de datos y procedimientos almacenados
en el servidor Lógica de negocios en el cliente
• Aplicaciones con moderado número de clientes conectados mediante una red LAN o WAN
Capa de Capa de AlmacenamientoAlmacenamiento
y Datosy DatosLAN / WANLAN / WAN
Capa de Capa de PresentaciónPresentación
al Cliente al Cliente y lógicay lógica
Modelo de tres capas
• Modelo para aplicaciones con gran crecimiento Servicios de usuario en el equipo cliente Servicios de lógica de negocios en servidores con
funcionalidad multiusuario Servicios de acceso a datos en el servidor de base de
datos
• Soportan gran número de clientes conectados mediante redes LAN / WAN o Internet Capa de Capa de
AlmacenamientoAlmacenamientoy Datosy Datos
Capa de Capa de NegociosNegocios
LAN / WANLAN / WANInternetInternet
Capa de Capa de PresentaciónPresentación
alalClienteCliente
Infraestructura
• Computadora servidor con funcionalidad multiusuario
• Software que soporta acceso concurrente a servicios compartidos (negocios y datos)
• RDBMS• Monitores de transacciones o servidores de
objetos que proveen servicios de lógica compartidos
• En aplicaciones de Internet / Intranet, servicios WEB que proveen la interfaz de usuario a través de páginas descargadas al browser
Concurrencia y bloqueos
• Varios clientes pueden querer acceder y modificar el mismo recurso al mismo tiempo
• No pueden “mezclarse” sus acciones para mantener el recurso consistente
• Cuando un cliente va a modificar un recurso, este se bloquea y ningún otro podrá accederlo para modificación hasta que el primero termine.
• Bloqueos lo más cortos posible
Transacciones
• Si un cliente va a modificar más de un recurso en una sola acción, deben cumplirse todas estas modificaciones o ninguna
• Transacciones entre distintos tipos de recursos: distribuidas
• Administradores de recursos RDBMS Servidores de mensajería Sistemas de archivos
Mensajes
• Comunicación entre aplicaciones• Escenarios: Una aplicación envía un
mensaje a otra y: Espera una respuesta inmediata Espera la respuesta dentro de un
período de tiempo, pero realiza otras tareas mientras tanto
No espera respuesta
Comunicación sincrónica
• La aplicaión que envía el mensaje espera la respuesta de la aplicación receptora antes de seguir con su proceso
• Requiere que la comunicación física y lógica esté disponible, de lo contrario se produce un error y, si existía una transacción, se aborta
Aplicación cliente
Aplicación servidor
Sistema completo
Comunicación asincrónica
• Una aplicaión que envía un mensaje y continúa su procesamiento sin esperar respuesta de la aplicación receptora
• El mensaje va a una cola o repositorio hasta que la aplicación receptora pueda procesarlo
• No requiere que el vínculo físico esté disponible en el momento del envío del mensaje
Aplicación enviadora
Aplicación receptoraCola de
mensajesSistema completo
Colas de mensajes
• Ventajas Son más tolerantes a fallos que los modelos
sincrónicos Permiten el trabajo desconectado
• Desventajas Son intrinsecamente más lentas que las
comunicaciones sincrónicas Es responsabilidad de la aplicación que envía
el mensaje hacer su seguimiento y eventualmente tomar alguna acción basada en el resultado de la transacción
Bases de Datos
• Casi todas las aplicaciones requieren almacenamiento persistente de información
• Los datos se guardan estructuradamente en un repositorio centralizado
• El motor de base de datos es el servicio centralizado capaz de manejar los datos almacenados y atender los requerimientos multiusuario
Redes
• Medio físico de conexión entre equipos
• Conjunto de equipos interconectados
• Ambiente fundamental para la plataforma cliente / servidor
• Diversos protocolos de comunicación
Procedimientos Remotos - RPC
• Protocolo de llamada a procedimientos entre distintas aplicaciones
• Interfaz binaria entre aplicaciones• Eficiente y confiable en ambiente
LAN y WAN• Muy dificultosa implementación en
Internet
Componentes Distribuidos
• Porciones de software independientes, instalados en uno o más equipos, que prestan servicios o funcionalidad a otros componentes o aplicaciones COM CORBA SOAP
WEB Services
• Servicios que exponen una interfaz no binaria compatible con los estándares de Internet
• XML y SOAP• Servicios disponibles en servidores
WEB utilizables por otras aplicaciones WEB mediante http
• Permiten aplicaciones distribuidas en la Internet
Preguntas?...
Gracias