Sistemas Operativos Distribuidos Plataforma Cliente/Servidor Gustavo H. Sosa Servicio de Diagnóstico por Imágenes Hospital 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)
Almacenamiento y 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 Presentación al Cliente y lógica Capa de Almacenamiento y Datos LAN / WAN
Almacenamiento y Datos 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 Presentación al Cliente Capa de Negocios Capa de Almacenamiento y Datos LAN / WAN Internet
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 servidor Aplicación cliente 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 receptora Aplicación enviadora Cola de mensajes Sistema completo
Colas de mensajes Ventajas Desventajas 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