Está en la página 1de 34

Diseo Y Aplicaciones de Sistemas Distribuidos

Introduccin

Joan Vila
DISCA / UPV Departament dInformtica de Sistemes i Computadors Universitat Politcnica de Valncia

Introduccin
Diseo Y Aplicaciones de Sistemas Distribuidos

Indice
Conceptos bsicos Modelos de computacin distribuida

Cliente-servidor Movilidad de cdigo Grupos Microkernels Middleware Servicios web

Arquitecturas para aplicaciones distribuidas


DYA

Conceptos bsicos

Sistema distribuido
Conjunto de computadores dbilmente acoplados (independientes) interconectados a travs de una red que colaboran con el fin de realizar una tarea.

Diseo Y Aplicaciones de Sistemas Distribuidos

Es un sistema hetergeneo (arquitecturas, sistemas operativos, protocolos, ... diferentes) Diferentes tipos de redes: LANs, WANs, wifis, Tendencia a computadores pequeos y muy potentes interconectados

DYA

Conceptos bsicos

Crecimiento
Marcado por la web...

DYA

Diseo Y Aplicaciones de Sistemas Distribuidos

Conceptos bsicos

Computacin distribuida
Computacin que se ejecuta sobre un sistema distribuido. Los programas son bastante autnomos y acceden eventualmente a la red. Pueden clasificarse en tres niveles:

Diseo Y Aplicaciones de Sistemas Distribuidos

DYA

Servicios de red: capa de servicios estndar en Internet proporcionado por un servidor (o red de servidores) como HTTP, DNS, FTP, SMTP. Es la mitad servidora del cliente-servidor y sirve para construir servicios y aplicaciones de red. Servicios Web: conjunto de servicios ofertados en la web sobre el protocolo HTTP, tales como motores bsqueda de Informacin (Google), servicios de directorio, cambio de moneda, sms,..... Utilizan SOAP y XML como forma de especificarse. Algunos son de pago. Aplicaciones de red: aplicaciones especficas desarrolladas por usuarios finales, como aplicaciones de comercio electrnico, chats, juegos de red, etc... Utilizan diferentes tipos de middleware como sustrato de comunicaciones.

Conceptos bsicos

Protocolos y niveles de aplicaciones distribuidas

Diseo Y Aplicaciones de Sistemas Distribuidos

Ap.

Ap. Ap.

Ap.

Ap. Ap. Ap. Ap. Ap.

Servicios web

Servicios middleware

SOAP HTTP

Middleware (CORBA, .NET, etc.)

DYA

Servicios TCP

TCP/IP
6

Conceptos bsicos

Tipos de aplicaciones distribuidas


Aplicaciones en WANs

Diseo Y Aplicaciones de Sistemas Distribuidos

Aplicaciones web: venta de artculos, comercio electrnico, accesos a bases de datos Transacciones distribuidas: sistemas bancarios Aplicaciones multimedia: videoconferencia, video bajo demanda

Aplicaciones en LANs

Aplicaciones industriales: control de procesos, robtica. Switched Ethernet est sustituyendo a los buses de campo.
Topologas en estrella y anillo. Configuraciones con anillos redundantes.

Sistemas empotrados y vehculos: estndarde avinica (ARINC 664).

Switched Ethernet se ha convertido en

DYA

Conceptos bsicos

Taxonoma de una aplicacin en una WAN


4
Comprador realiza oferta
....... ...... ......

Diseo Y Aplicaciones de Sistemas Distribuidos

2 3

Vendedor Enva informacin


....... ...... ......

eBay 5
Conmutadores/ Encaminadores (mirrored) Cisco 200 Servidores front-end Compaq / Windows NT

Internet 6 7
Ana conda Bull
Discos mirrored con logs de datos

Telefnica Lazo local: ONO ... proveedores de cable

www

Wanadoo ISPs del cliente UPV ... proveedores de Internet REDIRIS WANs: enrutadores,satlites, ... AOL ...

7
cluster

Bear

2 Servidores (duplicados entre si) Sun Starfire Discos compartidos de Oracle (mirrored) con base de datos dual

10

DYA

www

ISPs de eBay Sprint UUNET ... proveedores de Internet

8
....... ...... ......

Nuevo

9
8

Conceptos bsicos

Taxonoma de una aplicacin en una LAN


Consolas Inalmbricas Agentes mviles

Diseo Y Aplicaciones de Sistemas Distribuidos

LAN

Punto de acceso Inalmbrico

Switch o pasarela Clula de produccin

Bus industrial / LAN

Operador

DYA

Conceptos bsicos

Topologas de Switched Ethernet en LANs industriales

DYA

Diseo Y Aplicaciones de Sistemas Distribuidos

10

Conceptos bsicos

Ventajas de la computacin distribuida


Internet permite acceso universal a informacin y recursos Acceder y compartir recursos remotos

Diseo Y Aplicaciones de Sistemas Distribuidos

Se pueden compartir recursos fsicos (p.e. Impresoras, discos,...) o informacin (p.e. pginas web o bases de datos) Compartir recursos permite reducir costes y aumentar su utilizacin La carga muchas veces se reparte de forma geogrfica: la informacin puede replicarse total o parcialmente por zonas y cada zona estar atendida por un servidor diferente Los recursos crticos pueden replicarse.

Se puede repartir la carga y tolerar fallos

DYA

11

Conceptos bsicos

Problemtica
Heterogeneidad Bsqueda de servicios e informacin Congestin de la red y congestin de recursos (calidad de servicio) Seguridad Asincrona Fallos parciales

DYA

Diseo Y Aplicaciones de Sistemas Distribuidos

12

Conceptos bsicos

Heterogeneidad
Los componentes pueden estar construidos con tecnologas diferentes: arquitectura, s.o., redes y protocolos, lenguajes de programacin. Soluciones: interoperabilidad, sistemas abiertos

Diseo Y Aplicaciones de Sistemas Distribuidos

Interoperabilidad: integrar sistemas y componentes heterogneos en un todo sin costosos desarrollos ad-hoc. Normalmente se logra a travs de protocolos y estndares. Sistemas abiertos: permiten ampliar su funcionalidad con nuevos componentes a travs de interfaces claras.

Bsqueda de servicios e informacin


Cmo encontrar un servicio ofertado en la red o una determinada informacin. Soluciones: servicios de nombres (catlogos de servicios), buscadores.

DYA

13

Conceptos bsicos

Congestin de la red y de recursos


Los recursos compartidos pueden convertirse en cuellos de botella. Un servicio que funciona bien con 500 clientes, Funcionar bien con 500.000? Los recursos multimedia consumen muchos recursos y congestionan la red. Congestin de recursos: escalabilidad, descentralizacin, replicacin

Diseo Y Aplicaciones de Sistemas Distribuidos

Escalabilidad: las prestaciones no deben degradarse conforme aumenta el nmero de clientes. La escalabilidad se basa en la descentralizacin: evitar soluciones donde existe un componente que interviene en el procesamiento de todas las peticiones. De ah la famosa frase Los ciclos de servidor son de oro. La descentralizacin requiere un reparto de la carga que normalmente implica replicacin total o parcial de datos o recursos.
14

DYA

Conceptos bsicos

Congestin de la red y de recursos


Congestin de la red: autonoma de los nodos, gestin de la Calidad de Servicio (QoS: Quality of Service)

Diseo Y Aplicaciones de Sistemas Distribuidos

Autonoma de los nodos: los nodos deben minimizar la dependencia la red. Ello les permitir seguir funcionando ante eventuales fallos de la misma: La autonoma requiere caching/replicacin de datos: si se mantiene una memoria local con los datos ms frecuentemente utilizados, se reducir el nmero de accesos a la red. Calidad de Servicio (QoS): tcnicas de gestin de la red y contratos para garantizar un ancho de banda y unos retrasos mximos acotados

DYA

15

Conceptos bsicos

Seguridad
Las redes de difusin son proclives a la intromisin de intrusos que pueden fisgonear la informacin y utilizar recursos sin autorizacin. La autentificacin de las partes es crtica en las transacciones. El cdigo migrado es un virus en potencia. Soluciones: criptografa, autentificacin de clientes

Diseo Y Aplicaciones de Sistemas Distribuidos

La criptografa permite cifrar la informacin para evitar el fisgoneo. Las firmas digitales permiten autentificar a clientes, proveedores de servicios, fuentes de cdigo migrado.

DYA

16

Conceptos basicos

Fallos parciales
Las aplicaciones no fallan por completo, sino que determinados componentes pueden dejar de operar y otros seguir funcionando (independencia en el modo de fallo). Los fallos parciales pueden ser una desventaja ms que una ventaja pues las cadas de nodos pueden provocar inconsistencias.

Diseo Y Aplicaciones de Sistemas Distribuidos

Sistemas AND: sistemas en los que con que falle un componente, la aplicacin deja de funcionar. Sistemas OR: pueden seguir funcionando con que funcione al menos algn componente.

DYA

Solucin: descentralizacin y redundancia.

17

Conceptos basicos

Asincrona
La comunicacin y las acciones de cmputo no estn guiadas por un nico reloj global. Cada nodo tiene su reloj y puede haber derivas entre ellos. Esto dificulta la sincronizacin entre los componentes de un sistema distribuido y la determinacin de la relacin antes/despus entre eventos remotos. Solucin: protocolos de sincronizacin de relojes y utilizacin del concepto de causalidad.

DYA

Diseo Y Aplicaciones de Sistemas Distribuidos

18

Conceptos bsicos

Transparencia?
En un principio se pens que ocultar al usuario el hecho de la distribucin de componentes o incluso su replicacin era la base para estructurar un sistema distribuido. Hoy en da esto se ha revelado imposible, aunque principios como la uniformidad de nombre o la uniformidad de acceso se consideren deseables.

DYA

Diseo Y Aplicaciones de Sistemas Distribuidos

19

Introduccin
Diseo Y Aplicaciones de Sistemas Distribuidos

Indice
Conceptos bsicos Modelos de computacin distribuida

Cliente-servidor Movilidad de cdigo Grupos Microkernels Middleware Servicios web

Arquitecturas para aplicaciones distribuidas


DYA

20

Modelos de computacin distribuida

Paradigmas de computacin Cliente-Servidor Grupos Movilidad de cdigo

DYA

Diseo Y Aplicaciones de Sistemas Distribuidos

21

Cliente-servidor

Modelo cliente-servidor
Permite compartir recursos en red El servidor realiza la peticin en nombre del cliente
Pginas web Disco Impresora

Diseo Y Aplicaciones de Sistemas Distribuidos

Recurso

Servidor
Cliente Cliente Cliente

...
Red
peticin respuesta 22

DYA

Movilidad de cdigo

Movilidad de cdigo (i)


El servidor enva al cliente el cdigo del servicio Ejemplo: applets, telfonos mviles

Diseo Y Aplicaciones de Sistemas Distribuidos

Terminal mvil

Agente mvil

N Cliente del servicio


Nombre DNI

Applet cdigo del cliente

Servidor

DYA

Red
23

Movilidad de cdigo

Movilidad de cdigo (ii)


Agentes mviles:
Host2 Host1

Diseo Y Aplicaciones de Sistemas Distribuidos

MA

Host3

Red
Host4 Host5

MA

DYA

24

Movilidad de cdigo

Movilidad de cdigo
Clientes web (applets): la parte cliente de la aplicacin es un navegador web que puede programarse para ser cliente de cualquier aplicacin.

Diseo Y Aplicaciones de Sistemas Distribuidos

No hay necesidad de instalacin previa del programa del cliente. Reducir la comunicacin, realizando el cmputo en la mquina donde se migra en lugar del servidor.

Agentes mviles: agentes inteligentes que pueden desplazarse por la red, ejecutndose en los distintos nodos.

El programa escoge cuando y donde migrar. Se transporta asmismo a otra mquina y activa y suspende su ejecucin a voluntad. Objetivos: recoleccin de datos, bsqueda de informacin, etc...
Comercio electrnico Procesamiento paralelo

DYA

Problemas:

Seguridad: son virus en potencia (gusanos). Ejecucin en un entorno heterogneo. Precisan ejecutarse en mquina virtual. 25

Grupos

Grupos
Comunicacin reactiva: sigue el patrn difusor / escucha. Se utiliza para notificar eventos.

Diseo Y Aplicaciones de Sistemas Distribuidos

Clula de produccin
Escuchas
p3 manejar evento

p2 p1 manejar evento manejar evento

Robocup
p4

difundir evento
difundir

manejar evento

DYA

Difusor 26

Introduccin
Diseo Y Aplicaciones de Sistemas Distribuidos

Indice
Conceptos bsicos Modelos de computacin distribuida

Cliente-servidor Movilidad de cdigo Grupos Microkernels Middleware Servicios web

Arquitecturas para aplicaciones distribuidas


DYA

27

Introduccin

Evolucin histrica

Diseo Y Aplicaciones de Sistemas Distribuidos

Soporte a nivel de ncleo

Kernels y microkernels
Ej: RT-Mach, Clouds, ...

Soporte a nivel de usuario

Middleware
Ej: CORBA, Java-RMI

Soporte a nivel de web

Servicios web
Ej: XML-RPC, SOAP

DYA

28

Microkernels

Kernels y microkernels
El kernel proporciona una funcionalidad mnima:

Diseo Y Aplicaciones de Sistemas Distribuidos

Espacio de direcciones: memoria lgica para ubicar los componentes de una aplicacin distribuida Mecanismo de comunicacin entre espacios de direcciones Hilo de ejecucin dentro de un espacio de direcciones Mecanismo proteccin.

Cualquier servicio del sistema operativo se implementa fuera del ncleo, como un componete ms:

Servicio de ficheros, Servicio de nombres, ...

Aspecto clave: comunicacin uniforme entre espacios de direcciones locales y remotos

Espacio de direcciones 1

Espacio de direcciones 2

Espacio de direcciones 3

DYA

Espacio de direcciones 4

Espacio de direcciones 5

Espacio de direcciones 6

Microkernel

Microkernel 29

Microkernels

Memoria compartida distribuida


Espacio de direcciones lineal en memoria virtual al que tienen acceso todos los procesadores.

Diseo Y Aplicaciones de Sistemas Distribuidos

Las memorias locales actan como una cache de la memoria virtual: la pgina fsica que da soporte a una pgina lgica puede residir en cualquier procesador. Los fallos de pgina pueden ser servidos por un paginador local o remoto.
Nodo 1 Memoria 1
Paginador memoria compartida

Nodo 2 Memoria 2
Paginador memoria compartida

Nodo n

...

Memoria n
Paginador memoria compartida

DYA

Memoria Compartida Virtual

231

Objetos en memoria

30

Middleware

Middleware
Bus software a nivel de usuario que proporciona interoperabilidad entre objetos en un entorno distribuido heterogneo. Asume el modelo de objetos e invocaciones a mtodos remotos Ada
Aplicaciones
Object x

Diseo Y Aplicaciones de Sistemas Distribuidos

Java
Object y Object z

Middleware Sistema Operativo

ORB
Unix BSD Windows NT Linux

DYA

31

Middleware

Middleware
Existen, fundamentalmente, 3 proyectos Middleware importantes: CORBA

Diseo Y Aplicaciones de Sistemas Distribuidos

Es un estndar del consorcio de fabricantes OMG Genrico: no cubre los requerimiento de aplicaciones multimedia. Independencia de plataforma: la mquina virtual Java se ejecuta sobre muchas plataformas Protocolos e interfaces genricos: el protocolo RMI es propietario y no permite comunicar, en principio, con sistemas no Java. Los interfaces se definen en Java. Para solucionar esto existen clases CORBA. Independencia de plataforma: restringido a Microsoft. Interfaces y protocolos estndar: utiliza IDL y la tecnologa del proyecto DCE (anterior a CORBA) del consorcio OSF. Existen puentes DCOM/CORBA 32

Java-RMI

DCOM (Microsoft), .NET


DYA

Servicios web

Servicios web
Son objetos o rutinas en Internet disponibles a programas CGI en Perl, PHP,... (no tienen interfaz de usuario como pg. web necesariamente).

Diseo Y Aplicaciones de Sistemas Distribuidos

Ejemplos: servicio de fax, servicio de SMS,..

Se basan en transformar invocaciones a objetos en peticiones HTTP (GET, PUT) y utilizan XML como lenguaje de intercambio de datos.

Protocolos: XML-RPC SOAP

Pginas web HTTP GET, PUT Invocaciones mtodos

WWW server Nivel cliente

Servicio

Nivel web

Nivel aplicacin

DYA

WWW server

Servicio

33

Arquitecturas

Comparacin
Microkernel

Diseo Y Aplicaciones de Sistemas Distribuidos

Aplicable a sistemas homogneos, cerrados Poco compatibles / interoperables con otros sistemas Protocolos de comunicacin propietarios o TCP/IP El soporte para tiempo real es fcil de introducir Aplicable a sistemas heterogneos, abiertos o cerrados Interoperabilidad es uno de los objetivos fundamentales Protocolos de comunicacin estandarizados (IIOP) Modelo de tiempo real de sistemas orientados a objetos. Descansa sobre las facilidades Aplicable a sistemas heterogneos, abiertos Protocolo de comunicacin basado en web (muy disponible) 34

Middleware

DYA

Servicios Web