Jorge Iván Meza Martínez [email protected] ... · Modelos de los sistemas distribuidos Jorge...
Transcript of Jorge Iván Meza Martínez [email protected] ... · Modelos de los sistemas distribuidos Jorge...
1/36
Modelos de los sistemas distribuidos
Jorge Iván Meza Martí[email protected]
Especialización en Gestión de Redes de DatosUniversidad Nacional de Colombia – Sede Manizales
2/36
Contenidos
● Modelo arquitectónico● Capas de software● Arquitecturas del sistema● Variaciones del modelo Cliente – Servidor● Interfaces y objetos● Requisitos de diseño
3/36
Evaluación pre-contenido
1. Qué es un middleware ?
2. Qué ejemplos de middleware conoce ?
3. En qué consiste el modelo cliente – servidor ?
4. En qué consiste el modelo peer-to-peer o P2P ?
4/36
Modelo arquitectónico
● Define la ubicación de sus partes y las relaciones entre ellas.
● Su objetivo principal es garantizar que el sistema satisfacerá las demandas presentes y previsibles.
● Los principales modelos son el cliente-servidor y el peer-to-peer.
5/36
Capas de software
● Inicialmente se consideraron diferentes capas o módulos de software en un mismo equipo ofreciendo y solicitando servicios entre ellas.
● Posteriormente se amplió el concepto a módulos en distintas ubicaciones de una red.
● Esta vista orientada a proceso y a servicio puede expresarse en términos de capas de servicio.
7/36
Capas de software
Plataforma
Capas bajas del modelo que proveen servicios a las capas superiores y que son implementadas de manera independiente en cada computador.
Ejemplo: Windows para Intel, SunOS para SPARC.
8/36
Capas de softwareMiddleware
● Es una capa de software para enmascarar la heterogeneidad y unificar su interfaz de programación.
● Provee abstracciones para la comunicación.● Invocación remota de procedimientos.● Comunicación entre procesos.● Notificación de eventos.● Replicación de datos compartidos.● Transmisión de datos multimedia en tiempo real.
9/36
Capas de software
Middleware● CORBA (Common Object Request Broker
Architecture).● Java RMI (Remote Method Invocation).● Microsoft DCOM (Distributed Common Object
Model).● ISO/ITU-T (RM-ODP Reference Model for Open
Distributed Processing).● Globus Toolkit → Grid.
10/36
Actividad
Analizar la web desde el punto de vista de un sistema distribuido y determinar las capas de software involucradas en su modelo arquitectónico.
1) Aplicaciones y servicios2) Middleware3) Sistema operativo Hardware del dispositivo Red
11/36
Arquitecturas del sistema
Modelo centralizado
● No necesariamente requiere de acceso a la red.● Sistema de tiempo compartido.● La conexión se realiza directamente del cliente al servidor (terminales).● Principal limitación → número de CPUs en el servidor.● No es fácilmente escalable.
12/36
Arquitecturas del sistema
Modelo cliente-servidor
● Los procesos cliente solicitan servicios a los servidores.● Estos envían una solicitud (request) y reciben una respuesta (response).● Los servidores reciben la solicitud y la procesan.● Los servidores a su vez pueden ser clientes de otro servidor.
13/36
Arquitecturas del sistema
Server
Client
Client
invocation
result
Serverinvocation
result
Process:Key:
Computer:
14/36
Arquitecturas del sistema
● ServidorMáquina que realmente procesa la tarea solicitada. Comúnmente posee hardware o software especializados que no se encuentra disponible en otras estaciones.
● ServicioTarea solicitada por el cliente.
● ClienteMáquina que requiere de la respuesta obtenida después de la ejecución del servicio.
15/36
Arquitecturas del sistema
Servicios proporcionados por múltiples servidores.
● Los servicios son implementados como múltiples procesos en un mismo servidor o en múltiples servidores.
● El uso de réplicas aumenta las prestaciones, la disponibilidad y la tolerancia a fallos.
● Trae consigo la necesidad de replicación de información entre las réplicas y la garantía de sincronización de esta información.
17/36
Arquitecturas del sistema
Servidores proxy y cachés.
● Mantienen versiones frescas de los datos del sistema.
● Se encuentran mas cerca de los clientes que el sistema real.
● Evitan el reprocesamiento frecuente de información muy consultada.
18/36
Arquitecturas del sistema
Servidores proxy y cachés.
● Verifican frecuentemente la vigencia de la información contenida para refrescarla convenientemente.
● Pueden ser utilizados además para dar acceso a servidores detrás de firewalls o proveer autenticación.
20/36
Arquitecturas del sistema
Procesos de igual-a-igual (peer to peer)
● Todos los elementos del sistema desempeñan las mismas tareas: son clientes y servidores a su vez.● Interactúan de manera cooperativa.● No existe un servidor central que coordine el proceso.● La coordinación de los eventos se hace mas compleja.
21/36
Arquitecturas del sistema
Coordination
Application
code
Coordination
Application
code
Coordination
Application
code
22/36
Variaciones del modelo cliente-sevidor
Considérense las siguientes capas lógicas del nivel de aplicación que pueden ser distribuidas de acuerdo con las necesidades de la arquitectura.
● Interfaz de usuario → interacción con el usuario (pedir y mostrar información)
● Lógica del negocio → procesamiento, reglas
● Persistencia de información → almacenamiento de los datos
24/36
Variaciones del modelo cliente-sevidor
Lógica
Persistencia
Presentación
Lógica Red
ClienteServidor
25/36
Variaciones del modelo cliente-sevidor
Lógica
Persistencia
Presentación
Lógica
PersistenciaRed
ClienteServidor
26/36
Variaciones del modelo cliente-sevidor
Persistencia
Presentación
Lógica
PersistenciaRed
ClienteServidor
27/36
Variaciones del modelo cliente-sevidor
Lógica
Presentación
Lógica
PersistenciaRed
ClienteServidor
28/36
Actividad
Complementar el modelo que se está realizando de la web con las arquitecturas del sistema de los componentes o entidades relacionadas.
● Cliente-servidor● Múltiples servidores● Proxies y cachés● Peer to peer
Considere también el acceso de otros dispositivos a internet además de los clientes de escritorio.
29/36
Interfaces y objetos
Cliente
Objeto remotocon métodos
Interfaz Implementación
Invocación
Resultado
30/36
Requisitos de diseño
● Prestaciones● Capacidad de respuesta (responsiveness)● Desempeño (throughput)● Balance de cargas (load balance)
● Calidad del servicio → satisfacer tiempos requeridos
● Uso de caché y replicación
31/36
Requisitos de diseño● Fiabilidad
● Corrección● Seguridad
● Datos● Procesos● Interacciones● Actores
● Tolerancia a fallos● Algoritmos● Verificación y control de errores● Redundancia
32/36
Modelos fundamentales
● Los modelos fundamentales están implicados en una descripción más formal de las propiedades que son comunes en los modelos arquitectónicos.
● Ayudan a localizar los problemas clave para los diseñadores de SD. Su propósito es especificar los problemas, dificultades y amenazas que deben superarse para desarrollar sistemas distribuidos fiables.
33/36
Modelos fundamentales
● Modelo de interacción → trata sobre el rendimiento y sobre la dificultad de poner límites temporales en un sistema distribuido
● Modelo de fallos → intenta dar una especificación precisa de los fallos que se pueden producir en procesos y en canales de comunicación.
● Modelo de seguridad → posibles amenazas para los procesos y canales de comunicación
35/36
Evaluación post-contenido
1. Qué es un middleware ?
2. Qué ejemplos de middleware conoce ?
3. En qué consiste el modelo cliente – servidor ?
4. En qué consiste el modelo peer-to-peer o P2P ?
36/36
Actividad
Complementar el modelo que se está realizando de la web resolviendo las siguientes preguntas.
1. Qué elementos de la arquitectura de la web tienen mayor impacto en su calidad del servicio y que estrategias se pueden desarrollar para mitigar su efecto ?2. Qué elementos o circunstancias tienen un mayor riesgo de ser vulnerables en términos de seguridad y que estrategias se pueden realizar para mitigar su impacto ?