Jorge Iván Meza Martínez [email protected] ... · Modelos de los sistemas distribuidos Jorge...

36
1/36 Modelos de los sistemas distribuidos Jorge Iván Meza Martínez [email protected] Especialización en Gestión de Redes de Datos Universidad Nacional de Colombia – Sede Manizales

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.

6/36

Capas de software

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.

16/36

Arquitecturas del sistema

Server

Server

Server

Service

Client

Client

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.

19/36

Arquitecturas del sistema

Client

Proxy

Web

server

Web

server

serverClient

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

23/36

Variaciones del modelo cliente-sevidor

Lógica

Persistencia

PresentaciónRed

ClienteServidor

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

34/36

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 ?