Disenio de Sistemas Distribuidos

40
Clase 10 Diseño de Sistemas Distribuidos 1

description

Diseño de Sistemas Distribuidos

Transcript of Disenio de Sistemas Distribuidos

Page 1: Disenio de Sistemas Distribuidos

Clase 10

Diseño de Sistemas Distribuidos

1

Page 2: Disenio de Sistemas Distribuidos

Conocer las diferentes tecnologías de comunicación para con los sistemas distribuidos

Conocer las consideraciones al diseñar sistemas distribuidos

2

Page 3: Disenio de Sistemas Distribuidos

Introducción

Sistemas Distribuidos ◦ Tecnologías de comunicación

◦ Diseño de los Sistemas Distribuidos

Arquitectura orientada a servicios

3

Page 4: Disenio de Sistemas Distribuidos

Evolución

50’s – 70’s : Una computadora múltiples usuarios

80’s – 90’s : Una computadora un usuario

2000’s : Un usuario múltiples computadoras

Actualmente la información es totalmente distribuida, aunque los datos centralizados se siguen utilizando.

4

Page 5: Disenio de Sistemas Distribuidos

Procesamiento distribuido La distribución del cómputo puede realizarse de

diversas formas de acuerdo a su grado de acoplamiento en:

Fuertemente acopladas: Multiprocesadores (memoria compartida). UMA (Uniform Memory Access)

Débilmente acopladas: Multicomputadoras (memoria privada). NUMA (Non Uniform Memory Access).

5

Page 6: Disenio de Sistemas Distribuidos

Sistemas Multiprocesadores

6

Page 7: Disenio de Sistemas Distribuidos

Sistemas Multicomputadoras Están basados en el modelo cliente/servidor

Este modelo se basa en un protocolo solicitud – respuesta. El cliente envía una solicitud de cierto servicio al servidor, el servidor realiza el trabajo y regresa el resultado de la operación.

La principal ventaja de este protocolo es su sencillez, únicamente se necesita

la ubicación del servidor.

7

Page 8: Disenio de Sistemas Distribuidos

Sistemas Multicomputadoras

8

Page 9: Disenio de Sistemas Distribuidos

Peer to Peer Es una red de computadoras en la que todos o

algunos aspectos funcionan sin clientes ni servidores fijos, sino una serie de nodos que se comportan como iguales entre sí:

9

Page 10: Disenio de Sistemas Distribuidos

Grid Computing Llamamos grid al sistema de computación distribuido

que permite compartir recursos no centrados geográficamente para resolver problemas de gran escala. Los recursos compartidos pueden ser ordenadores (PC, estaciones de trabajo, supercomputadores, portátiles, móviles, etc.), software, datos e información, instrumentos especiales (radio, telescopios, etc.) o personas.

10

Page 11: Disenio de Sistemas Distribuidos

Cluster El término cluster se aplica a los conjuntos o

conglomerados de computadoras construidos mediante la utilización de hardware comunes y que se comportan como si fuesen una única computadora

11

Page 12: Disenio de Sistemas Distribuidos

Es aquel que se ejecuta como un sistema centralizado, pero que realmente se ejecuta sobre múltiples e independientes CPU, haciéndolo de una forma “transparente” para los usuarios

12

Page 13: Disenio de Sistemas Distribuidos

Características Múltiples elementos de procesamiento

Mecanismos de intercomunicación

Independencia a fallos en los nodos de procesamiento

Estado de compartición

Esquema de protección

Sistemas Abiertos

Plataforma diversas (heterogéneas)

13

Page 14: Disenio de Sistemas Distribuidos

Ventajas Compartir información y otros recursos

Economizar el rendimiento (procesamiento y almacenamiento)

Crecimiento incremental

Alta disponibilidad

Confiabilidad (tolerancia a fallos)

14

Page 15: Disenio de Sistemas Distribuidos

Tecnologías de comunicación RPC (Remote Procedure Call)

Es una comunicación entre procesos que permite que un programa ejecute una subrutina o procedimiento en otro espacio de direcciones (comúnmente en otro ordenador en una red compartida) sin que el programador codifique explícitamente los detalles de esta interacción remota.

15

Page 16: Disenio de Sistemas Distribuidos

Tecnologías de comunicación Sockets

Elemento final de un flujo de comunicación entre procesos sobre la red.

Los sistemas operativos proporcionan una API para sockets, que es una interfaz de programación de aplicaciones, que permite a los programas controlar y usar los sockets de red.

Una dirección de socket es la combinación de una dirección IP y un número de puerto.

16

Page 17: Disenio de Sistemas Distribuidos

Tecnologías de comunicación Comunicación de bajo nivel de red:

17

Page 18: Disenio de Sistemas Distribuidos

Tecnologías de comunicación RMI (Remote Method Invocation)

Es un mecanismo ofrecido por Java para invocar un método de manera remota. Forma parte del entorno estándar de ejecución de Java y proporciona un mecanismo simple para la comunicación de servidores en aplicaciones distribuidas basadas exclusivamente en Java. Es orientado a objetos.

18

Page 19: Disenio de Sistemas Distribuidos

Tecnologías de comunicación CORBA

(Common Object Request Broker Architecture)

Es una arquitectura marco para el desarrollo de aplicaciones distribuidas orientadas a objetos basada en unas especificaciones para las interface de los objetos utilizados.

Utiliza un intermediario ORB (Object Request Broker)

19

Page 20: Disenio de Sistemas Distribuidos

Tecnologías de comunicación COM/DCOM

COM (Component Object Model) y DCOM (Distributed Component Objetc Model) definen la arquitectura distribuida orientada a componentes de Microsoft. A grandes rasgos su funcionamiento y objetivos son similares a los de CORBA.

No implementa herencia, sino que usa un modelo de reutilización de los objetos antiguos incorporándolos dentro de los nuevos.

20

Page 21: Disenio de Sistemas Distribuidos

Tecnologías de comunicación EJB (Enterprise JavaBeans) Es una arquitectura de componentes del lado del

servidor para la construcción modular de aplicaciones empresariales Java.

La especificación EJB proporciona una forma estándar para ejecutar el código de back-end de las aplicaciones (en lugar de código de interfaz de 'front-end'). Orientados a manejar las preocupaciones comunes como la persistencia, la integridad de las transacciones y la seguridad de los componentes.

21

Page 22: Disenio de Sistemas Distribuidos

Tecnologías de comunicación Componentes: DCOM vs EJB

22

Page 23: Disenio de Sistemas Distribuidos

Tecnologías de comunicación SOAP (Simple Object Access Protocol)

Es un protocolo para el intercambio de información estructurada en la implementación de servicios web. Se basa en XML para el formato del mensaje, y por lo general se basa en otros protocolos de capa de aplicación, sobre todo de transferencia de hipertexto (HTTP) para la negociación y transmisión del mensaje.

23

Page 24: Disenio de Sistemas Distribuidos

Tecnologías de comunicación REST (Representational State Transfer)

Estilo de arquitectura de software para sistemas distribuidos con servicios web.

Las solicitudes y las respuestas se construyen alrededor de la transferencia de las representaciones de los recursos. Un recurso puede ser prácticamente cualquier elemento con significado. Una representación de un recurso suele ser un documento que recoge el estado actual o previsto del recurso.

24

Page 25: Disenio de Sistemas Distribuidos

Tecnologías de comunicación Servicios Web: SOAP vs REST

25

Page 26: Disenio de Sistemas Distribuidos

Tecnologías de comunicación Middleware Los componentes en un sistema distribuido pueden

implementarse en distintos lenguajes de programación y ejecutarse en tipos de procesador diferentes por completo. Por lo tanto un sistema distribuido requiere software que pueda gestionar esas diversas partes y garantizar que puedan comunicarse e intercambiar datos.

El término se usa para referirse a este software: se encuentra en el centro, entre los componentes distribuidos del sistema

26

Page 27: Disenio de Sistemas Distribuidos

Tecnologías de comunicación Middleware ◦ Soporte de interacción

◦ Soporte de provisión de servicios comunes

27

Page 28: Disenio de Sistemas Distribuidos

Conflictos Transparencia ◦ ¿En qué medida el sistema distribuido debe aparecer al usuario

como un solo sistema? ¿Cuándo es útil para los usuarios entender que el sistema es distribuido?

Apertura ◦ ¿Un sistema debe diseñarse usando protocolos estándar que

soporte interoperabilidad o deben usarse protocolos más especializados que restrinjan la libertad del diseñador?

Escalabilidad ◦ ¿Cómo puede construirse el sistema para que sea escalable?

¿Esto es cómo podría diseñarse un sistema global para que su capacidad se pueda aumentar en respuesta a demandas crecientes hechas sobre el sistema?

28

Page 29: Disenio de Sistemas Distribuidos

Conflictos Seguridad ◦ ¿Cómo pueden definirse e implementarse políticas de

seguridad útiles que se apliquen a través de un conjunto de sistemas administrados de manera independientes?

Calidad de servicio ◦ ¿Cómo debe especificarse la calidad del servicio que se entrega

a los usuarios del sistema y cómo debe implementarse el sistema para entregar una calidad de servicio aceptable para todos los usuarios?

Gestión de fallas ◦ ¿Cómo pueden detectarse las fallas del sistema, contenerse (de

modo que tengan efectos mínimos sobre otros componentes del sistema) y repararse?

29

Page 30: Disenio de Sistemas Distribuidos

Arquitectura maestro-esclavo Que se usa en sistemas de tiempo real en los que se

requiere garantía de tiempos de respuesta de interacción

Existe una dependencia funcional y técnica del cliente

30

Page 31: Disenio de Sistemas Distribuidos

Arquitectura cliente-servidor 2 niveles Se usa para sistemas cliente servidor simple, y en

situaciones donde es importante centralizar el sistema por razones de seguridad. En algunos casos la comunicación del cliente y el servidor está encriptado

31

Page 32: Disenio de Sistemas Distribuidos

Arquitectura cliente-servidor multinivel Se usa cuando existe un enorme volumen de

transacciones a procesar por el servidor

32

Page 33: Disenio de Sistemas Distribuidos

Arquitectura de componentes distribuidos Se usa cuando es necesario combinar los recursos

de diferentes sistemas y base de datos, o como un modelo de implementación para sistemas cliente-servidor multinivel

Ejemplo: CORBA

33

Page 34: Disenio de Sistemas Distribuidos

Arquitectura peer to peer Se usa cuando los clientes intercambian de manera

local la información almacenada, y el papel del servidor es presentar a los clientes entre sí. También puede usarse cuando se deba elaborar un amplio número de cálculos independientes

34

Page 35: Disenio de Sistemas Distribuidos

Servicio Es un componente de software que entrega

funcionalidad específica y útil, y es independiente a la aplicación que lo usa.

Permite el acceso a una o más capacidades, que son proporcionadas mediante una interfaz definida y se ejecuta acorde con las restricciones y políticas especificadas en la descripción del servicio.

35

Page 36: Disenio de Sistemas Distribuidos

Servicio Un intermediario es opcional para ubicar los servicios

El proveedor y el consumidor mantienen un contrato de servicio

36

Page 37: Disenio de Sistemas Distribuidos

SOA (Service Oriented Architecture) Es una forma de desarrollar sistemas distribuidos en

la que los componentes del sistema son servicios independientes y generalmente se ejecutan en computadoras distribuidas geográficamente

Implementan recursos de software disponibles y visibles en una red como servicios bien definidos. Cada servicio debe resolver un objetivo de negocio predefinido y ejecutarse como una unidad de trabajo separada

37

Page 38: Disenio de Sistemas Distribuidos

SOA Bajo acoplamiento y alta cohesión:

38

Page 39: Disenio de Sistemas Distribuidos

El procesamiento de cómputo distribuido puede estar fuertemente acoplado (multiprocesadores) o débilmente acoplado (multicomputadores)

Un Sistemas Distribuido es aquel que se ejecuta como un sistema centralizado, pero que realmente se ejecuta sobre múltiples e independientes CPU, haciéndolo de una forma “transparente” para los usuarios

Hay diferentes tecnologías de comunicación para los SD: no orientadas a objetos, orientadas a objetos, orientadas a componentes y orientadas a servicios web

Para el diseño de sistemas distribuidos existen conflictos que debe ser comprendidos y previstos 39

Page 40: Disenio de Sistemas Distribuidos

¿Qué tipo de tecnologías para la comunicación de sistemas distribuidos conoce?

40