Você está na página 1de 47

Sistemas Distribuidos

Tema 1 Introduccin Diego Sevilla Ruiz


DITEC Facultad de Informtica

Murcia, septiembre 2010

Diego Sevilla Ruiz (DITEC Facultad de Informtica) Sistemas Distribuidos

Murcia, septiembre 2010

1 / 47

ndice

Sistemas Distribuidos: Introduccin y Conceptos Sistemas Distribuidos: Arquitecturas Sistemas Cloud Sistemas Operativos Distribuidos Introduccin a los Patrones y las Herramientas

Diego Sevilla Ruiz (DITEC Facultad de Informtica) Sistemas Distribuidos

Murcia, septiembre 2010

2 / 47

Sistemas Distribuidos (enfoque clsico)

Un sistema distribuido es aquel en el que los componentes localizados en computadores, conectados en red, comunican y coordinan sus acciones nicamente mediante el paso de mensajes. [Colouris, p.1]. Concurrencia de los componentes Carencia de un reloj global Fallos independientes

Diego Sevilla Ruiz (DITEC Facultad de Informtica) Sistemas Distribuidos

Murcia, septiembre 2010

3 / 47

Sistemas Distribuidos (actualmente)

Uso ubcuo de Internet


(o de sus protocolos)

Sistemas abiertos La consistencia fuerte slo se necesita en algunos casos


En la mayora de los casos, se puede tolerar una consistencia eventual (W. Vogels. Eventually Consistent. ACM Queue vol. 6, no. 6, December 2008.)1

Uso ubcuo de cachs, homogeneizacin de datos y procesamiento, Map/Reduce, paralelismo funcional, automtico, REST, etc.
Aqu nos centraremos

http://queue.acm.org/detail.cfm?id=1466448
Murcia, septiembre 2010 4 / 47

Diego Sevilla Ruiz (DITEC Facultad de Informtica) Sistemas Distribuidos

Sistemas Distribuidos: Retos

Heterogeneidad
Redes Hardware Sistemas Operativos Middleware

Extensibilidad Seguridad Escalabilidad Tratamiento de Fallos Concurrencia Transparencia

Diego Sevilla Ruiz (DITEC Facultad de Informtica) Sistemas Distribuidos

Murcia, septiembre 2010

5 / 47

Sistemas Distribuidos: Heterogeneidad

Hardware, Sistema Operativo, lenguajes, Redes Razones:


Ingeniera Diferentes personas eligen diferentes soluciones Coste Se compran recursos que se adapten a las necesidades Aplicaciones antiguas Imaginemos una aplicacin de reserva de billetes en COBOL. Se tienen que amortizar las inversiones Hardware antiguo El hardware nuevo que se compra es necesariamente diferente.

Diego Sevilla Ruiz (DITEC Facultad de Informtica) Sistemas Distribuidos

Murcia, septiembre 2010

6 / 47

Sistemas Distribuidos: Heterogeneidad (ii)

Herramientas:
Protocolos de comunicacin APIs estndar (Middleware) Sistemas Abiertos (i.e. CORBA, Internet, etc.)
Especicaciones pblicas Mecanismos de comunicacin estandarizados Utilizando hardware y software COTS

Diego Sevilla Ruiz (DITEC Facultad de Informtica) Sistemas Distribuidos

Murcia, septiembre 2010

7 / 47

Sistemas Distribuidos: Extensibilidad

Caracterstica de un sistema que permite aadirle nuevas caractersticas y servicios de forma dinmica Herramientas:
Sistemas Abiertos

Diego Sevilla Ruiz (DITEC Facultad de Informtica) Sistemas Distribuidos

Murcia, septiembre 2010

8 / 47

Sistemas Distribuidos: Seguridad

Elemento ms importante y ms complejo (conexiones y equipos fsicamente distribuidos) Necesidad de:


Autenticar a usuarios y recursos Denir roles y patrones de acceso Encriptar las comunicaciones Seguridad fsica

Herramientas:
PKIs, SSL, Servicios de Directorio, etc.

No tratado en este curso

Diego Sevilla Ruiz (DITEC Facultad de Informtica) Sistemas Distribuidos

Murcia, septiembre 2010

9 / 47

Sistemas Distribuidos: Escalabilidad

Un sistema es escalable si el aumento de demanda de servicios se puede suplir con una aportacin de recursos Tambin: Un sistema puede ofrecer servicio a un nmero potencialmente muy grande de demandas: degrada el tiempo medio de respuesta, pero no se colapsa
Prever el desbordamiento de recursos tanto software como hardware Evitar cuellos de botella de prestaciones

Soluciones:
Uso de software eciente en tiempo y espacio Patrones de diseo y de cdigo (idiomas) para manejar ecientemente conexiones, threads, etc. Uso de cachs, consistencia eventual, etc.

Diego Sevilla Ruiz (DITEC Facultad de Informtica) Sistemas Distribuidos

Murcia, septiembre 2010

10 / 47

Sistemas Distribuidos: Fallos

El rango de fallos en sistemas distribuidos es mayor que en cualquier otro sistema Adems, es interesante que los sistemas distribuidos toleren fallos. Por qu? Cuestiones:
Deteccin de fallos (unos detectables, otros no) Enmascaramiento de fallos (p. ej. patrn Proxy ) Redundancia y votado Disponibilidad

No tratado en profundidad en esta asignatura

Diego Sevilla Ruiz (DITEC Facultad de Informtica) Sistemas Distribuidos

Murcia, septiembre 2010

11 / 47

Sistemas Distribuidos: Concurrencia

Normalmente los datos se comparten Hay que establecer rdenes de acceso y procesos atmicos: Transacciones Cuello de botella si los datos estn almacenados en un slo ordenador Necesidad de transacciones distribuidas Problemas de consistencia A veces se necesitan coordinar varios procesos de varios ordenadores (barreras). La mala programacin de estos procesos puede hacer el sistema muy ineciente No tratadas en profundidad en esta asignatura

Diego Sevilla Ruiz (DITEC Facultad de Informtica) Sistemas Distribuidos

Murcia, septiembre 2010

12 / 47

Sistemas Distribuidos: Transparencia

El tpico ms importante y el ms difcil de conseguir Con transparencia, el desarrollo de aplicaciones distribuidas es similar al de aplicaciones convencionales Delega en los niveles inferiores la complejidad y ofrece servicios ables:
Transparencia Transparencia Transparencia Transparencia Transparencia de localizacin de concurrencia de replicacin ante fallos ...

Diego Sevilla Ruiz (DITEC Facultad de Informtica) Sistemas Distribuidos

Murcia, septiembre 2010

13 / 47

Arquitecturas Sistemas Centralizados

No escalables Cmo aadir ms recursos?

Diego Sevilla Ruiz (DITEC Facultad de Informtica) Sistemas Distribuidos

Murcia, septiembre 2010

14 / 47

Arquitecturas Primeros sistemas distribuidos

Primeros programas distribuidos Conexiones explcitas, protocolos explcitos, herramientas bsicas P. ej. Demonios remotos UNIX

Diego Sevilla Ruiz (DITEC Facultad de Informtica) Sistemas Distribuidos

Murcia, septiembre 2010

15 / 47

Arquitecturas Primeros sistemas distribuidos (ii)

Servicios bsicos por parte del Sistema Operativo Direccionamiento Sockets Normalmente slo implicaban a dos programas (Cliente/Servidor)

Diego Sevilla Ruiz (DITEC Facultad de Informtica) Sistemas Distribuidos

Murcia, septiembre 2010

16 / 47

Arquitecturas Internet/World Wide Web/CGI

Servidor HTTP P aginas HTML Prog. CGI SGBD Servidor SMTP

Browser

HTTP

Internet TCP/IP

HTTP

Nivel 1

Nivel 2

Nivel 3

Diego Sevilla Ruiz (DITEC Facultad de Informtica) Sistemas Distribuidos

Murcia, septiembre 2010

17 / 47

Arquitecturas Internet/World Wide Web/CGI (ii)

Sockets
API de bajo nivel Gestin de errores? No hay tipos... comprobacin?

Protocolo CGI ad-hoc Stateless (salvo con otros hacks como los cookies) No soporte del servidor etc.

Diego Sevilla Ruiz (DITEC Facultad de Informtica) Sistemas Distribuidos

Murcia, septiembre 2010

18 / 47

Arquitecturas 2 y 3 niveles

Cliente Presentaci on L ogica del negocio Acceso a datos

Servidor Servidores BD Sistemas Legacy etc.

Nivel 1

Nivel 2

Cliente Presentaci on

L ogica del negocio Acceso a datos

Servidor Servidores BD Sistemas Legacy etc.

Nivel 1

Nivel 2

Nivel 3, ...

Diego Sevilla Ruiz (DITEC Facultad de Informtica) Sistemas Distribuidos

Murcia, septiembre 2010

19 / 47

TPMs, Clusters, etc.

En la prctica, se utilizan sistemas de n capas La distribucin: mltiples clientes por Web (thin clients) y un sistema de BBDD que est basado en clster Clsters de bases de datos/procedimientos proporcionados por paquetes comerciales (Oracle, DB/2, etc.) Gestin de MUCHOS clientes: Transaction-Processing Monitors
Diego Sevilla Ruiz (DITEC Facultad de Informtica) Sistemas Distribuidos Murcia, septiembre 2010 20 / 47

Sistemas de ms alto nivel: RPC

Primer sistema en diferenciar interfaz/implementacin Ms alto nivel (comprobacin de tipos) Interfaz Stubs/Skeletons
El interfaz se describe en C El compilador de RPC genera los stubs y los skeletons El programador realiza llamadas locales Los stubs y skeletons realizan el trabajo remoto TRANSPARENCIA LOCAL/REMOTA

Ejemplo: SUN RPC Software intermedio: MIDDLEWARE

Diego Sevilla Ruiz (DITEC Facultad de Informtica) Sistemas Distribuidos

Murcia, septiembre 2010

21 / 47

Diego Sevilla Ruiz (DITEC Facultad de Informtica) Sistemas Distribuidos

Murcia, septiembre 2010

22 / 47

Objetos Distribuidos: CORBA/RMI


Muy parecido a RPC, pero basado en objetos El middleware ahora toma ms importancia

Diego Sevilla Ruiz (DITEC Facultad de Informtica) Sistemas Distribuidos

Murcia, septiembre 2010

23 / 47

Message-Oriented Middleware

Sncrono/asncrono Normalmente Suscripcin/Respuesta Documentos XML Mensajes Loose Coupling JMS, AMQP, ActiveMQ, MQ, MSMQ, D-Bus, etc. ESBs: Mensajera + Servicios de dominio
Diego Sevilla Ruiz (DITEC Facultad de Informtica) Sistemas Distribuidos Murcia, septiembre 2010 24 / 47

D-Bus

Diego Sevilla Ruiz (DITEC Facultad de Informtica) Sistemas Distribuidos

Murcia, septiembre 2010

25 / 47

D-Bus (ii)

Message message = new Message ( " / remote / object / path " , " MethodName " , arg1 , arg2 ); Connection connection = getBusConnection () ; connection . send ( message ) ; Message reply = connection . waitForReply ( message ) ; if ( reply . isError () ) { // ... } else { Object returnValue = reply . getReturnValue () ; }

Diego Sevilla Ruiz (DITEC Facultad de Informtica) Sistemas Distribuidos

Murcia, septiembre 2010

26 / 47

D-Bus (iii)

$ dbus - monitor method call sender =:1.751 -> dest = org . gnome . GConf serial =2 path =/ org / gnome / GConf ; interface = org . gnome . GConf ; member = GetIOR method return sender =:1.4 -> dest =:1.751 reply_serial =2 string " IOR :01..." signal sender = org . freedesktop . DBus -> dest =( null destination ) serial =1218 path =/ org / freedesktop / DBus ; interface = org . freedesktop . DBus ; member = NameOwnerChanged string ":1.751" string ":1.751"

Diego Sevilla Ruiz (DITEC Facultad de Informtica) Sistemas Distribuidos

Murcia, septiembre 2010

27 / 47

Peer to Peer

Modelo ms descentralizado: todos aportan por igual o en la medida de sus posibilidades El MOM tambin soporta esta arquitectura Ejemplos: JXTA
Diego Sevilla Ruiz (DITEC Facultad de Informtica) Sistemas Distribuidos Murcia, septiembre 2010 28 / 47

Web Services/SOA

Todo se hace accesible a travs de servicios (web) Protocolos estndar: HTTP, XML, SOAP, WSDL Qu pasa con los callbacks? Manejo del estado? No hay soporte del servidor
Diego Sevilla Ruiz (DITEC Facultad de Informtica) Sistemas Distribuidos Murcia, septiembre 2010 29 / 47

REST REpresentational State Transfer

V. van Gogh. Noon: Rest From Work. 1889-90. Diego Sevilla Ruiz (DITEC Facultad de Informtica) Sistemas Distribuidos Murcia, septiembre 2010 30 / 47

REST (ii)
Patrn arquitectural de desarrollo de aplicaciones sobre el Web
Desarrollado por Roy T. Fielding en su tesis doctoral Aprovecha el web tal y como est El web ha sido escalable hasta ahora por tener una serie de requisitos: se aplicarn a REST

Identicacin de recursos
Todos los elementos accedidos remotamente tienen una identicacin (URI). Se elige una representacin para cada recurso (XML, YAML)

Manipulacin de recursos
Los recursos incluyen metadatos (cache, validez, MIME). Incluidos en los headers de HTTP

Mensajes auto-descriptivos
Los metadatos permiten tratar el mensaje

Tejido hypermedia como representacin del estado de la aplicacin


Los datos retornados pueden incluir enlaces a otros recursos
Diego Sevilla Ruiz (DITEC Facultad de Informtica) Sistemas Distribuidos Murcia, septiembre 2010 31 / 47

Componentes: CCM/EJB

Modelo contenedor Entidades redistribuibles binarias Unidades independientes de construccin de programas Unidades binarias de desarrollo, prueba y ensamblado Soporte run-time que permite instalar componentes Ofrece todos los servicios a los componentes instalados
Aspect-Oriented Programming (AOP) Generacin automtica de cdigo para cada aspecto

Diego Sevilla Ruiz (DITEC Facultad de Informtica) Sistemas Distribuidos

Murcia, septiembre 2010

32 / 47

Componentes: CCM/EJB (ii)

Diego Sevilla Ruiz (DITEC Facultad de Informtica) Sistemas Distribuidos

Murcia, septiembre 2010

33 / 47

Modelos de Componentes Distribuidos

Los componentes se encuentran distribuidos Diferentes organizaciones ofrecen componentes


Bien para descargar Bien para utilizarlos remotamente bajo pago

Necesidad de un entorno seguro, autenticado... p. ej. Grid Transparencia local/remota Paletas de componentes similares a Delphi o VB, pero distribuidas

Diego Sevilla Ruiz (DITEC Facultad de Informtica) Sistemas Distribuidos

Murcia, septiembre 2010

34 / 47

Cloud Computing

Diego Sevilla Ruiz (DITEC Facultad de Informtica) Sistemas Distribuidos

Murcia, septiembre 2010

35 / 47

Cloud Computing (ii)

Diego Sevilla Ruiz (DITEC Facultad de Informtica) Sistemas Distribuidos

Murcia, septiembre 2010

36 / 47

Cloud Computing (iii)

Diego Sevilla Ruiz (DITEC Facultad de Informtica) Sistemas Distribuidos

Murcia, septiembre 2010

37 / 47

Sistemas Operativos Distribuidos

Sistemas Distribuidos versus Sistemas Operativos Distribuidos? Polmica hace unos aos Principales diferencias:
Heterogeneidad (hw, so., etc.) Sistema dbilmente acoplado vs. Sistema fuertemente acoplado

Inmaduros en su comienzo Ahora sera el momento de avanzar en la direccin


GNU/Hurd CODA Amoeba, MOSIX

Diego Sevilla Ruiz (DITEC Facultad de Informtica) Sistemas Distribuidos

Murcia, septiembre 2010

38 / 47

Introduccin a los Patrones y Herramientas

Patrones Solucin dada reiteradamente a un problema comn Best practices Suben el nivel de abstraccin, tratan problemas en abstracto En programacin distribuida poca experiencia Los utilizaremos para aprender sobre cmo construir mejores aplicaciones distribuidas Elementos:
Nombre, Contexto, Problema, Cuestiones relevantes, Solucin

Lenguaje de Patrones: Conjunto de patrones relacionados que sirven para un n comn (POSA2)

Diego Sevilla Ruiz (DITEC Facultad de Informtica) Sistemas Distribuidos

Murcia, septiembre 2010

39 / 47

Introduccin a los Patrones y Herramientas (ii)

Idioms Patrones, pero de ms bajo nivel Asociados a un lenguaje, normalmente C++ No por ello menos importantes Importantsimos por ejemplo en el mapping de C++ a CORBA Ejemplo: Scoped Locking C++ Idioms: James O. Coplien http://www1.belllabs.com/user/cope/Patterns/C %2b %2bIdioms/EuroPLoP98.html

Diego Sevilla Ruiz (DITEC Facultad de Informtica) Sistemas Distribuidos

Murcia, septiembre 2010

40 / 47

Introduccin a los Patrones y Herramientas (iii)


Scoped Locking (POSA2, p. 325)
(Resource Acquisition is Initialization)

pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; int funcin(...) { pthread_mutex_lock(&mutex); if (condicin) { // lo que sea pthread_mutex_unlock(&mutex); return 1; } pthread_mutex_unlock(&mutex); return 0; }
Diego Sevilla Ruiz (DITEC Facultad de Informtica) Sistemas Distribuidos Murcia, septiembre 2010 41 / 47

Introduccin a los Patrones y Herramientas (iv)

Scoped Locking (cont.)

Diego Sevilla Ruiz (DITEC Facultad de Informtica) Sistemas Distribuidos

Murcia, septiembre 2010

42 / 47

Introduccin a los Patrones y Herramientas (v)

Scoped Locking (cont.)


class SyncLock { public: SyncLock(pthread_mutex_t* m) { mutex_ = m; pthread_mutex_lock( mutex_ ); } ~SyncLock() { pthread_mutex_unlock( mutex_ ); } private: pthread_mutex_t* mutex_; }

Diego Sevilla Ruiz (DITEC Facultad de Informtica) Sistemas Distribuidos

Murcia, septiembre 2010

43 / 47

Introduccin a los Patrones y Herramientas (vi)


Scoped Locking (cont.) RAII http://www.hackcraft.net/raii/
pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; int funcin(...) { SyncLock sl(&mutex); if (condicin) { // lo que sea return 1; } return 0; }

Diego Sevilla Ruiz (DITEC Facultad de Informtica) Sistemas Distribuidos

Murcia, septiembre 2010

44 / 47

Metamodelado Eclipse

Diego Sevilla Ruiz (DITEC Facultad de Informtica) Sistemas Distribuidos

Murcia, septiembre 2010

45 / 47

Modelos

SyncLock

Diego Sevilla Ruiz (DITEC Facultad de Informtica) Sistemas Distribuidos

Murcia, septiembre 2010

46 / 47

Modelos (ii)
SyncLock

Diego Sevilla Ruiz (DITEC Facultad de Informtica) Sistemas Distribuidos

Murcia, septiembre 2010

47 / 47

Você também pode gostar