Sunteți pe pagina 1din 45

Version 19/09/16

Sistemas Distribuidos

Modelos de
Sistemas
Distribuidos

Agenda

Concepto de modelo

Tipos de modelos de sistemas distribuidos

Fsicos

Arquitecturales

Fundamentales

De interaccin
De fallos
De seguridad

Sistemas Distribuidos - Modelos

Concepto de modelo

Un modelo describe un conjunto de caractersticas y


cuestiones de diseo comunes a los sistemas
distribuidos

Cmo se abordan problemas individuales habituales

Seguridad, tolerancia a fallos, escalabilidad etc.

Cada modelo proporciona una abstraccin simplificada


pero consistente de algn aspecto relevante del diseo
de SSDD
Mltiples implementaciones

Que especifican protocolos, APIs, lenguajes de


programacin, middlewares, etc.
Sistemas Distribuidos - Modelos

Tipos de modelos

Modelos fsicos

Modelos arquitecturales

Tipos de computadores y dispositivos que


componen el SD y su interconexin
Describe un SD en trminos de componentes y
sus relaciones

Modelos fundamentales

Requisitos no funcionales del SD: interaccin,


fallos y seguridad

Sistemas Distribuidos - Modelos

Modelos fsicos

Representacin de los elementos de hardware que abstrae de:

Detalles especficos del computador

tecnologa de red empleada en la comunicacin

Generaciones de SSDD:

Mnimos (baseline): conjunto pequeo de computadores


conectados en red (no comparticin)
Primeros SSDD (aos 70-80): 10-100 computadores en una
LAN y algunos servicios compartidos (servidor de ficheros,
impresin, etc.)
Escala de Internet (aos 90): incremento exponencial del
nmero de nodos, servicios de Internet, heterogeneidad
Contemporneos: computacin mvil, ubicua, cloud
computing, etc. que obligan a la definicin de nuevos
servicios
Sistemas Distribuidos - Modelos

Generaciones de SSDD
Tempranos

Internet

Contemporneos

Escala

Pequea

Grande

Muy grande

Heterogeneidad

Limitada

Significativa
(plataformas,
lenguajes y
middlewares)

Estilos de
arquitectura
radicalmente
diferentes

Sistemas Abiertos

Prioridad baja

Prioridad
Significativa
(introduccin de
estndares)

Crtica (estndares
no cubren
necesidades
sistemas complejos)

Prioridad
significativa
(introduccin de
servicios)

Crtica (desafo de
investigacin)

Calidad de Servicio Bsicos

Sistemas Distribuidos - Modelos

Modelos arquitecturales

Definen la arquitectura del sistema, estructura


en trminos de componentes

Entidades de comunicacin

Paradigmas de comunicacin

Roles y responsabilidades

Localizacin en la red de computadores

Las entidades se construyen sobre el concepto


de proceso (programa en ejecucin)

Ejemplos: nodo, thread, objeto, servicio web

Ejemplos: Cliente/Servidor y Peer-to-peer (P2P)


Sistemas Distribuidos - Modelos

Paradigmas de comunicacin

Cmo las entidades comunican:

Comunicacin entre procesos (IPC)

Invocacin remota

Sockets, paso de mensajes (MPI), multicast, etc.


Protocolos request-reply
Llamadas a procedimiento remoto (RPC): ONC RPC, Thrift
(Facebook), SOAP, GRPC (Google)
Invocacin de mtodos remotos: Java RMI, ZeroC Ice,
CORBA

Comunicacin indirecta

Comunicacin en grupo

Publish-Subscribe

Colas de mensajes

Espacio de tuplas

Memoria compartida
distribuida
Sistemas
Distribuidos - Modelos

Roles y responsabilidades

Roles que asumen las entidades en su interaccin

Cliente/servidor

Peer-to-peer (P2P)

Sistemas Distribuidos - Modelos

Cliente/Servidor

Asigna roles diferentes a los procesos que


comunican: cliente y servidor

Cliente: solicita un servicio al servidor

Servidor: ofrece un servicio

Elemento activo: invoca peticiones


Gestiona los recursos (hardware, software,
datos)
Elemento pasivo: espera la llegada de
peticiones

Clientes y servidores pueden ser objetos o


procesos ejecutando en distintos computadores
Ejemplos:
Sistemas Distribuidos - Modelos

10

Modelo Arquitectural

Cliente-Servidor
Fuente: Instructor's Guide for Coulouris, Dollimore and
Kindberg. Distributed Systems: Concepts and Design
4 Edicion. Pearson Education 2005

Client

invocation
result

Client

result

Server

Key:
Process:

Server

invocation

Computer:

Un proceso cliente enva una


solicitud de un recurso a un proceso
servidor
Sistemas Distribuidos - Modelos

11

Modelos de
Programacin

Modelos de programacin de aplicaciones


cliente/servidor

Sockets

RPC: Remote Procedure Call

RMI: Remote Method invocation

ONC RPC, Thrift (Facebook), SOAP, GRPC (Google)


Java RMI, ZeroC Ice, CORBA

Distributed Event Based programming

EsperTech, DDS, JMS, WebSphere, MSMQ

Sistemas Distribuidos - Modelos

12

Modelos de
Programacin

13
http://www.cs.hut.fi/Opinnot/T-106.5250/Cmaps/Ch05/Programming%20models%20for%20distributed%20systems.html
Sistemas Distribuidos - Modelos

Peer-to-peer

Asigna roles iguales a todos los procesos que


comunican

peers (no distincin entre cliente y servidor)

Todos los peers ejecutan el mismo programa y


ofrecen las mismas interfaces

No hay servidor central: responsabilidad


distribuida

Tres tipos de aplicaciones:

Computacin paralela
Comparticin de contenidos (Napster, BitTorrent,
etc.)
Herramientas colaborativas
Sistemas Distribuidos - Modelos

14

Modelo Arquitectural

P2P

Peer 2
Peer 1

Application

Application
Peer 3

Sharable
objects

Application

Peer 4
Application
Peers 5 .... N

Fuente: Instructor's Guide for Coulouris, Dollimore and


Kindberg. Distributed Systems: Concepts and Design
4 Edicion. Pearson Education 2005

Sistemas Distribuidos - Modelos

15

P2P: Ejemplo JXTA

http://www.misbytes.com/wp/2006/10/09/jxta-20-el-framework-de-nivel-empresarial-que-se-nos-viene-introduccion-1era-parte/
16
Sistemas Distribuidos - Modelos

JXTA: Protocolos

Se estandariza la manera en la cual, cada participante


(peer):

Descubre al resto

Se auto-organizan en grupos

Anuncia y descubre recursos de red

Se comunican

Se monitorizan unos a otros

Definen la sintaxis, semntica y temporizacin


Se pueden implementar en cualquier SO y/o lenguaje
de programacin

Sistemas Distribuidos - Modelos

17

Apache Hadoop

Es un entorno para ejecutar aplicaciones


en un cluster
Componentes Principales:

HDFS: Hadoop Distributed File System

Map/Reduce: La entrada se divide en partes


que se procesan de forma paralela e
independiente (map). Los resultados del
procesamiento se agrupan y procesan como
grupos (reduce)

Sistemas Distribuidos - Modelos

18

Apache Hadoop

Componentes (y II)

Job: archivos JAR y clases necesarias para


ejecutar un programa (con el modelo
Map/Reduce)

Task: programa que ejecuta los pasos


individuales de map/reduce

http://static.usenix.org/event/wasl08/tech/full_papers/tan/tan_html/
19
Sistemas Distribuidos - Modelos

Localizacin

Cmo localizar las entidades (procesos,


objetos, servicios) sobre la infraestructura
fsica del SD:

Mltiples servidores

Servidores proxy y cachs

Cdigo mvil

Agentes mviles

Sistemas Distribuidos - Modelos

20

Mltiples servidores
Service

Server
Client

Server

Client
Server

http://hovercraftdoggy.com/2013/03/01/we-need-a-bigger-computer/

Fuente: Instructor's Guide for Coulouris, Dollimore and


Kindberg. Distributed Systems: Concepts and Design
4 Edicion. Pearson Education 2005

Sistemas Distribuidos - Modelos

21

Servidores proxy y
cachs
Web
server

Client
Proxy
server

Web
server

Client

Cach: espacio de memoria que almacena los objetos solicitados


recientemente por los clientes
Servidor proxy: intermediario entre clientes y servidores; su
cach es compartida por varios clientes
Fuente: Instructor's Guide for Coulouris, Dollimore and
Kindberg. Distributed Systems: Concepts and Design
4 Edicion. Pearson Education 2005

Sistemas Distribuidos - Modelos

22

Cdigo Mvil
a) client request results in the downloading of applet code

Client
Applet code

Web
server

b) client interacts with the applet

Client

Web
server

Applet

Fuente: Instructor's Guide for Coulouris, Dollimore and


Kindberg. Distributed Systems: Concepts and Design
4 Edicion. Pearson Education 2005

Sistemas Distribuidos - Modelos

23

Agentes Mvil

Programa u objeto transportable

El programa se lanza desde un computador


origen y viaja de manera autnoma de un
ordenador a otro

En cada salto de la ruta el agente realiza las


funciones necesarias para completar su tarea

No intercambian mensajes

Problemas de seguridad: cdigo mvil


ejecutable puede ser malicioso

Sistemas Distribuidos - Modelos

24

Cliente/Servidor:
variaciones

Computadora en red:

El mantenimiento es una operacin costosa (actualizaciones,


configuracin, etc.) y plantea problemas de seguridad
El cliente se baja el SO y las aplicaciones para el usuario desde un
puesto remoto

Thin client

Las aplicaciones se ejecutan en el servidor.

El cliente es un gestor de ventanas que sirve de interfaz con el usuario.

Ejemplo: El sistema de ventanas X11

Thin
Client
Network computer or PC

Application
Process

network

Compute server

Sistemas Distribuidos - Modelos

Dispositivos mviles y
computacin espontnea
(variaciones)

Dispositivos mviles: telfonos, tablet, etc.

Computacin ubicua: ropa, IoT, etc.

Redes que se forman de manera


espontnea, mvil y temporal.
Implica a nivel de SD:

Descubrimiento de los servicios que nos


rodean en cada momento

Integracin espontnea

Seguridad y privacidad
Sistemas Distribuidos - Modelos

26

Descubrimiento de
servicios

27
http://www.cs.hut.fi/Opinnot/T-106.5250/Cmaps/Ch02/Architectural%20models.jpg
Sistemas
Distribuidos - Modelos

Requisitos de diseo en
arquitecturas distribuidas

Objetivo: compartir hardware, software y datos


Requisitos no funcionales:

Rendimiento: Responsiveness, throughput, load balancing

Quality of service (QoS)

aplicaciones crticas en tiempo (apps de tiempo real)

garanta de cierto nivel de calidad

Asignacin de cmputo y recursos de comunicacin

Replicacin y Caching

web caching: el servidor provee el tiempo de expiracin

Confiabilidad

Tolerancia a fallos: redundancia, recuperacin

seguridad
Sistemas Distribuidos - Modelos

Rendimiento

Tiempo de respuesta adecuado (latencias)

Tasa (ratio) de transferencia de datos (throughput)

Balanceo de carga

Velocidad en la cual los datos pueden ser


transferidos entre dos computadores de la red,
medido en bits por segundo (bps)
Repartir recursos y carga para aumentar el
rendimiento

El rendimiento viene determinado por: red de


comunicacin, servicios de comunicacin, el
sistema operativo, soporte a la programacin...
Sistemas Distribuidos - Modelos

29

Calidad de servicio (QoS)

Es la habilidad de satisfacer los


requerimientos de tiempo cuando se
transmiten y procesan flujos de datos
multimedia en tiempo real

Rendimiento de un sistema

Seguridad (modelo de seguridad)

Fiabilidad (modelo de fallos)

Adaptabilidad: al cambio de configuracin y


recursos

Sistemas Distribuidos - Modelos

30

Replicacin y Caching

El esquema bsico para conseguir tolerancia a fallos es


la replicacin

De datos, de procesos

El objetivo es mejorar el rendimiento (cach)

Introduce el problema de consistencia

Uso de servicio de cach:

Gestin de copias y actualizaciones

Protocolos de consistencia de cach

Habilitan la replicacin

Validacin de los contenidos

Sistemas Distribuidos - Modelos

31

Confiabilidad

Medida de conformidad con una especificacin autorizada de su


comportamiento
Sistema tolerante a fallos es aquel que posee la capacidad interna
para asegurar la ejecucin correcta y continuada del sistema a
pesar de la presencia de fallos hardware o software

A travs de la redundancia

El objetivo es conseguir que el sistema sea altamente fiable

La seguridad tiene tres componentes:

Confidencialidad: proteccin contra el descubrimiento de datos


por individuos no autorizados
Integridad: proteccin contra la alteracin o corrupcin de los
datos
Disponibilidad: Porcentaje de tiempo que el sistema est
disponible para su uso con respecto al tiempo total
Sistemas Distribuidos - Modelos

32

Modelo Arquitectural

33
http://www.cs.hut.fi/Opinnot/T-106.5250/Cmaps/Ch02/Architectural%20models.jpg
Sistemas
Distribuidos - Modelos

Modelos fundamentales

Modelos que permiten concentrarse en


aspectos fundamentales de los SSDD y
nos permiten ser ms especficos:

Modelo de Interaccin

Modelo de Fallo

Modelo de Seguridad

Sistemas Distribuidos - Modelos

34

Modelo de interaccin

SSDD implican comunicacin de procesos mediante


paso de mensajes para conseguir un objetivo

Comunicacin: flujo de interaccin

Ejemplo: Mltiples servidores, procesos peer

Coordinacin: sincronizacin y orden

Dos factores cruciales en la interaccin:

Prestaciones del canal de comunicacin (latencia,


Ancho de Banda, jitter)

Ausencia de tiempo global (clock drift y


sincronizacin): dos procesos ejecutando en distintas
comutadoras podran asociar timestamps distintas a
los eventos

Dos modelos: sncronos vs. asncronos


Sistemas Distribuidos - Modelos

35

Modelo de interaccin
Sistemas distribuidos sncronos

lmite temporal mn. y mx. para cada paso de ejecucin de un


proceso

cada mensaje transmitido se recibe en tiempo limitado y conocido.

cada proceso tiene su reloj local y su deriva (drift) conocida

Sistemas distribuidos asncronos

En la prctica, la mayora.
No hacen ninguna suposicin sobre las velocidades relativas de los
procesos, ni los retardos de los mensajes, ni las derivas
Los canales son fiables, pero no existe un lmite a la entrega de
mensajes
La comunicacin entre procesos es la nica forma de sincronizacin

Sistemas Distribuidos - Modelos

36

Modelo de interaccin

Ordenacin de eventos
El orden relativo de los eventos es ms importante que el
tiempo exacto
Relojes lgicos, ordenacin de eventos sin relojes fsicos

send
X

receive

m1
2

receive

4
send
3

m2
receive

Physical
time

receive
send

receive

receive
m3

A
t1

t2

m1

m2

receive receive receive


t3

User A:
1. From Z: Re: Meeting
2. From X: Meeting
3. From Y: Re: Meeting

Sistemas Distribuidos - Modelos

Modelo de fallos

Definicin y clasificacin de los fallos que pueden


afectar a un SD

Base para el anlisis de los efectos potenciales y


para disear sistemas tolerantes a fallos
Tipos de fallos:

De omisin: proceso o canal de comunicacin no


hacen lo que se supone tienen que hacer

De tiempo: no se hace a tiempo

En sistemas distribuidos sncronos


Arbitrarios (bizantinos): cualquier tipo de error
puede ocurrir

Sistemas Distribuidos - Modelos

38

Modelo de fallos

Fallo de proceso o canal de


comunicacin

process p

process q

send m

receive

Communication channel
Outgoing message buffer

Incoming message buffer

Sistemas Distribuidos - Modelos

Modelo de fallos

Sistemas Distribuidos - Modelos

40

Modelo de fallos

41
http://www.cs.hut.fi/Opinnot/T-106.5250/Cmaps/Ch05/Programming%20models%20for%20distributed%20systems.html
Sistemas Distribuidos - Modelos

Modelo de seguridad

Definicin y clasificacin de los ataques/amenazas que


pueden afectar a un SD

Base para el anlisis de las amenazas potenciales y


para construir sistemas robustos

La seguridad puede ser alcanzada:

protegiendo los objetos

Autorizacin: slo a beneficiarios de los derechos


(principales)

Autenticacin: identificacin de
terceros/principales

Asegurando los procesos y sus comunicaciones:

Sistemas Distribuidos - Modelos

42

Modelo de seguridad

Protegiendo objetos
Access rights

Object

invocation
Client

Server

result

Principal (user)

Network

Principal (server)

Asegurando procesos y comunicaciones


Copy ofm
The enemy
Processp

Communication channel

Processq

Sistemas Distribuidos - Modelos

Modelo de seguridad

44
http://www.cs.hut.fi/Opinnot/T-106.5250/Cmaps/Ch05/Programming%20models%20for%20distributed%20systems.html
Sistemas Distribuidos - Modelos

Referencias

G. Coulouris, Distributed Systems: Concepts


and Design, Addison Wesley 2011

Chapter 2 System Models

Lecturas recomendadas:

Jeff Kramer. 2007. Is abstraction the key to


computing?. Commun. ACM 50, 4 (April 2007), 36-42.
DOI=http://dx.doi.org/10.1145/1232743.1232745

Sistemas Distribuidos - Modelos

45

S-ar putea să vă placă și