PROGRAMACIÓN DISTRIBUIDA

Click here to load reader

  • date post

    25-Jun-2015
  • Category

    Documents

  • view

    1.473
  • download

    5

Embed Size (px)

Transcript of PROGRAMACIÓN DISTRIBUIDA

PROGRAMACIN DISTRIBUIDA

07/28/11

By : Ing. Elas Cassal Baldiviezo

ObjetivosEntender

los conceptos bsicos de sistemas distribuidos y sus problemticas. Conocer diferentes sistemas distribuidos de mayor uso. Conocer los conceptos tericos sobre Programacin Distribuida sus Ventajas y Desventajas. El alumno debe alcanzar un conocimiento terico de las distintas Tecnologas de la Programacin en Red.

CAPITULO I: Programacin distribuida.

Introduccin a Sistemas Distribuidos

Implicaciones y Desafos de distribuir sistemas

Definiciones Sistema Distribuido La Programacin Distribuida Como Paradigma Ejemplos Ventajas de distribuir sistemas Desventajas de distribuir sistemas Compartir Recursos Transparencia Usabilidad (abierto) Escalabilidad

Tecnologas para la programacin distribuida.By : Ing. Elas Cassal Baldiviezo

07/28/11

BibliografaA.Tanenbaum,

M.Van Steen. Distributed Systems, principles and paradigms. Ed. Prentice Hall, 2002. J.Dillmore, T.Kindberg. Distributed Systems - Concept and Design. Addison-Wesley, Third Edition, 2001.

G.Coulouris,

Webgrafia

http://dmi.uib.es/~bbuades/sistdistr/sld001.

http://dis.um.es/~jbermudez/dad/transparen

http://www.infor.uva.es/~cllamas/sd/temasP

07/28/11

By : Ing. Elas Cassal Baldiviezo

Introduccin

Evolucin de los sistemas Desarrollos de microprocesadores. 1945 a 1980s. 1 instruccin/seg. US$ 10.000.000 1980s hasta hoy. 1.000.000.000 instrucciones/seg. Menos de US$1.000. Ganancia precio/rendimiento 1013. Desarrollo de redes. LAN. 10-100 1000 Mbps. WAN. 64 kpbs - 2 Mbps. Facilidad de interconexin. Internet e Intranet. Alto desarrollo del hardware ...

Definiciones Un Un

Sistema Distribuido es una coleccin de computadores independientes que aparecen ante los usuarios como un nico sistema coherente. (Andrew S. Tanenbaum) sistema en el cual tanto los componentes de hardware y software de un computador conectados en red se comunican y coordinan mediante paso de mensajes. (G.Coulouris, J.Dollimore, T.Kindberg) que le impide a uno continuar su trabajo cuando falla un computador del cual uno nunca ha odo hablar. (L.Lamport)

Aquel

Sistema distribuidoUn

Sistema Distribuido se define como una Coleccin de Computadores autnomos conectados por una red, y con el Software Distribuido adecuado para que el sistema sea visto por los usuarios como una nica entidad capaz de proporcionar facilidades de computacin.

07/28/11

By : Ing. Elas Cassal Baldiviezo

Programacin Distribuida como Paradigma

Casi

cualquier lenguaje de programacin que tenga acceso al mximo al hardware del sistema puede manejar la programacin distribuida, La programacin distribuida tpicamente cae en alguna de las varias arquitecturas bsicas o arquitecturas: cliente-servidor, 3-tier, n-tier, objetos distribuidos, entre otras. 07/28/11By : Ing. Elas Cassal Baldiviezo

Paradigma de programacin enfocado en desarrollar sistemas distribuidos, abiertos, escalables, transparentes y tolerantes a fallos. Resultado natural del uso de las computadoras y las redes.

Ejemplos de sistemas distribuidosRed

de estaciones de trabajo en una UniversidadEspacio cuenta es visible desde todos los computadores

Workflow

rdenes

de manejo automtico de

Usado por mltiples usuarios, el flujo de las rdenes es transparente para ellos

Ejemplos de sistemas distribuidosWorld Wide Web (WWW) Aparece antes los usuarios como un repositorio gigantesco de documentos

Factura electrnica en Chile Muchos contribuyentes y compradores Un ente centralizado (SII) Back-office distribuido

Ventajas de distribuir sistemasEconoma Aumento

en capacidad de procesamiento. Aplicaciones inherentemente distribuidas. Capacidad de crecimiento. Fiabilidad y disponibilidad. Compartir recursos y datos.

Desventajas de distribuir sistemasAumento de la complejidad Costos de administracin Fallas ms frecuentes Red, Latencia, prdida de mensajes Interoperabilidad Falta de estndares nicos Seguridad

IMPLICACIONES Y DESAFIOS

07/28/11

By : Ing. Elas Cassal Baldiviezo

Implicancias de distribuir los sistemasConcurrencia. Recursos compartidos. Acceso concurrente. Sincronizacin. Sin tiempo global. Cada computador tiene su propio reloj local. Coordinacin. Fallas independientes. Posibilidad permanente de fallas en cada componente. Deteccin de fallas y tolerancia.

Desafos de los Sistemas DistribuidosCompartir Transparencia Usabilidad Escalabilidad

Recursos

(abierto)

Compartir recursosEl

objetivo bsico de los sistemas distribuidos.

Usuarios deben tener acceso fcil a recursos compartidos y compartir sus propios recursos de forma controlada.

Porqu compartir recursos ? Costos, capacidad, escalabilidad

Impresoras Computadores Espacio de almacenamiento Archivos, datos, pginas Web, redes, etc.

TransparenciaEsconder

el hecho que los recursos y procesos estn fsicamente distribuidos en diferentes mquinas. sistema distribuido que se presenta hacia el usuario como una sola mquina se dice ser transparente. embargo, transparencia se aplica a varios aspectos de sistemas distribuidos

Un

Sin

TransparenciaAcceso Esconde las diferencias entre las distintas representaciones de datos y la formas en que stos son accedidos por los usuarios.

Ubicacin Esconde la ubicacin fsica de donde est situado un recurso.

Ejemplo: representacin de un entero en una mquina SPARC (big endian) y una INTEL (little endian)

En particular se suele usar nombres lgicos en vez de direcciones reales. Ejemplo, la URL en el Web.

TransparenciaMigracin Esconde el hecho que recursos puedan migrar de una ubicacin fsica a otra sin afectar el modo en que se acceda.

Re-ubicacin Un caso an ms fuerte de migracin. Los recursos son movidos de una ubicacin a otra mientras estn en uso y sin que el usuario note nada.

Ejemplo: las tareas ;-)

Un uso tpico es para balancear carga.

Transparencia Replicacin

Esconde el hecho que un recurso pueda estar replicado varias veces para mejorar su rendimiento y/o disponibilidad.

Concurrencia

Obviamente exige transparencia de ubicacin Ejemplo: servidor Web de Google

Esconde el hecho de que distintos usuarios estn compitiendo en paralelo por acceder o usar recursos, o que un recurso est siendo compartido con otros usuarios

Exige que el sistema se mantenga en un estado coherente. Ejemplo: bases de datos

Transparencia Fallas

El usuario no nota (inclusive nunca supo) que un recurso ha dejado de funcionar (o se ha recuperado).

Persistencia

Es uno de los aspectos ms duros en sistemas distribuidos por la dificultad de detectar que un recurso ha muerto. Ejemplo: arreglos de discos RAID, Google File System.

Esconde si un recurso de software est en disco o en memoria

Aplicable a distintos sistemas, no slo distribuidos Ejemplo: servidores cache, proxy; conexiones persistentes a bases de datos.

TransparenciaLa

transparencia tiene lmites y grados.

No siempre es posible esconder todo

Ejemplo: desfase temporal de comunicacin entre puntos muy distantes (delay).

Siempre hay un trade-off entre transparencia y rendimiento

Ejemplo: Bases de datos replicadas world-wide. Un caso particular son los servidores DNS que pueden tomar das en actualizarse, lo cual no se oculta al usuario.

Usabilidad Los

recursos y servicios son ofrecidos de acuerdo a reglas estndares describiendo la semntica y sintaxis. Usualmente estas reglas son descritas va protocolos o interfaces.

HTTP Interface Definition Languages (IDL) Web services

Dos

aspectos muy relevantes

Completitud Neutralidad

Escalabilidad Se

refiere a la capacidad de crecer de un sistema La escalabilidad se puede dimensionar desde tres aspectos

Desafortunadamente

los sistemas son escalables en alguna de las dimensiones sacrificando rendimiento en las otras

Tamao: la capacidad de agregar fcilmente ms recursos y usuarios al sistema. Geogrfica: la capacidad de que usuarios y recursos se encuentren a distancias considerables Administracin: La capacidad de mantener una administracin fcil a pesar del crecimiento

HardwareEn

forma general todo sistema distribuido consiste en mltiple CPUs.Memoria compartida (multi-procesadores)

Memoria independiente (multi-computadores)

Todos los CPU comparten el mismo espacio de direcciones de memoria

Comunicacin va BUS

Cada CPU tiene su propio espacio de direcciones de memoria Canal compartido Canal exclusivo

Comunicacin va Switch

HardwareM P P M P M P M P M P M P M P

Memoria compartida - BUS

Memoria independiente - BUS

M

M

M

M P

M P

M P

M P

P

P

P

P Memoria independiente - Switch

Memoria compartida - Switch

Multi-ProcesadoresTodos

los CPU tienen acceso a una memoria compartida

Exige

coherencia en el estado de la memoria.

Un ejemplo es Symetric Multiprocesing (SMP).

Es

poco escalable y la escalabilidad es cara

En la medida que aumentan los CPUs mantener la coherencia afecta fuertemente el rendimiento

Multi-computadoresSe subdividen Homogneos

en dos categoras:

Heterogneos

La arquitectura y memoria es igual o similar en todos los nodos Generalmente conectados a travs de una nica, usualmente de alto rendimiento, interfaz de