Sistemas Distribuidos. Diseño e Implementacion

Post on 07-Nov-2014

17.015 views 3 download

Tags:

description

Libro en version preliminar del libro de Sistemas Distribuidos del docente universitario Jorge Guerra de la Universidad Nacional Mayor de San Marcos

Transcript of Sistemas Distribuidos. Diseño e Implementacion

Lic. Jorge Guerra G.Sistemas distribuidos 1

Sistemas Distribuidos

Lic. Jorge Guerra Guerra

Abril 2010

Hemos utilizado Sistemas Distribuidos?

Ejemplo: GoogleNo es un sistema distribuidoEs una aplicación montada sobre un sistema distribuidoYo como usuario desconozco

Máquina o máquinas en las quo se realiza Ia búsquedaLugares donde estén ubicadas esas máquinas- Tipos de comunicación que se utilizan- Equipos que intervienen- Forma de realizar Ia búsqueda- Qué se ejecuta en mi máquina y qué no se ejecuta

• Casi siempre funciona correctamente

Lic. Jorge Guerra G.Sistemas distribuidos 2

Concepto informaticoLos conceptos vienen de muchas áreas

• Sistemas Operativos.• Procesamiento en Paralelo.• Sistemas en Tiempo Real.• Sistemas Multimedia Distribuidos.• Tipos de comunicaciones.• Bases de datos distribuidas.• Cliente – Servidor, Tres niveles, Internet.• Objetos, Componentes Distribuidos.• Computación Móvil.• Aplicaciones Tradicionales.

Lic. Jorge Guerra G.Sistemas distribuidos 3

Lic. Jorge Guerra G.Sistemas distribuidos 4

Lic. Jorge Guerra G.Sistemas distribuidos 5

intranetISP

desktop computer:

backbone

satellite link

server:

%

network link:

%

%%

La Internet mostro la factibilidad de la implementación de los Sistemas Distribuidos

Numeros de Internet en 2009 1.730 millones de usuarios de Internet en todo el mundo. 1.400 millones de usuarios de correo electrónico que enviamos una

media de 247.000 millones de correo cada día aunque lamentablemente unos 200.000 millones son correo basura (SPAM).

En diciembre de 2009 había 234 millones de sitios web. De ellos, 126 millones son blogs, según BlogPulse. Hay 350 millones de usuarios registrados en Facebook, lo que lo haría

el tercer país más poblado del mundo. Se suben 2.500 millones de fotos al mes a Facebook, lo que hace

palidecer los 4.000 millones de fotos que había en total Flickr en octubre de 2009.

YouTube sirve 1.000 millones de vídeos cada día. Lamentablemente, se crean unos 148.000 nuevos ordenadores zombie

cada día.

Lic. Jorge Guerra G.Sistemas distribuidos 6

Modelo N-capas heterogeneo

Lic. Jorge Guerra G.Sistemas distribuidos 7

Modelo espacial C/S

Lic. Jorge Guerra G.Sistemas distribuidos 8

Lic. Jorge Guerra G.Sistemas distribuidos 9

Lic. Jorge Guerra G.Sistemas distribuidos 10

Definición de Sistema Distribuido Un sistema distribuido es aquel que ofrece servicios

implementados sobre una red de computadoras como si se tratara de un único sistema. Esto se logra a través de transparencias de distribución y son: Transparencia de localización. Transparencia de escalabilidad. Transparencia de replicacion Transparencia de concurrencia. Transparencia de paralelismo. Transparencia de acceso. Transparencia de fallo. Transparencia de movilidad. Transparencia de rendimiento.

Transparencias Transparencia de acceso: permite que los recursos locales y remotos puedan ser

accesados mediante operaciones idénticas. Transparencia de localizacion: permite que los recursos puedan ser accesados sin el

conocimiento de su localizacion física o de la red (por ejemplo,la dirección IP). Transparencia de concurrencia : permite que varios procesos puedan operar al mismo

tiempo utilizando recursos compartidos sin interferencia entre ellos. Transparencia de replicacion : habilita varias instancias de recursos que se utilizarán para

aumentar la fiabilidad y rendimiento sin el conocimiento de las réplicas de los usuarios o programadores de aplicaciones.

Transparencia de fallo: permite el ocultamiento de fallas, permitiendo a los usuarios y los programas de aplicación para completar sus tareas a pesar del fracaso de los componentes de hardware o software.

Transparencia de movilidad: permite el movimiento de recursos y clientes dentro de un sistema sin afectar el funcionamiento de los usuarios o programas.

Transparencia de rendimiento: permite que el sistema sea reconfigurado para mejorar el rendimiento conforme las cargas varíen.

Transparencia de escalabilidad: permite que el sistema y las aplicaciones crezcan, sin cambio en la estructura del sistema o los algoritmos de la aplicación.

Transparencia de paralelismo: permite que 2 o mas servidores trabajen en forma cooperativa para un servicio sin que el usuario lo pueda observar.

Lic. Jorge Guerra G.Sistemas distribuidos 11

Lic. Jorge Guerra G.Sistemas distribuidos 12

Un sistema distribuido es una colección de computadoras independientes que aparecen ante los usuarios del sistema como una única computadoraTanenbaumUn 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 mensajesCoulouris

Otras definiciones

Cambio de paradigma Control central Nombramiento global Consistencia global Ejecución secuencial Vulnerabilidad Información local Localización fija Homogeneidad

Autonomía Nombramiento federado (no

resuelto distribuidamente, por partes)

Consistencia débil Ejecución concurrente Tolerancia a fallos Información remota Migración Heterogeneidad

Lic. Jorge Guerra G.Sistemas distribuidos 13

RetosLos retos a los cuales se enfrentan los Sistemas

Distribuidos son:• Heterogeneidad.• Extensibilidad.• Seguridad.• Escalabilidad.• Tratamiento de Fallos.• Concurrencia.• Transparencia.

Lic. Jorge Guerra G.Sistemas distribuidos 14

Lic. Jorge Guerra G.Sistemas distribuidos 15

¿ Por qué construir sistemas distribuidos?

• Compartir recursos

– Tanto hardware (discos, impresoras), como software (archivos, bases de datos)

• En algún caso, por economizar

– Compartir datos es esencial en muchas aplicaciones • Equipos de desarrollo comparten herramientas y datos • Aplicaciones comerciales ofrecen a usuarios acceso a datos

compartidos • Trabajo cooperativo en algunas empresas

• Existen aplicaciones inherentemente distribuidas – Por ejemplo, una cadena de supermercados con varias tiendas y

almacenes – Sistemas de reservas de billetes de líneas aéreas

Lic. Jorge Guerra G.Sistemas distribuidos 16

Características de los Sistemas Distribuidos

Lic. Jorge Guerra G.Sistemas distribuidos 17

Definición de EnslowSistema distribuido = hardware distribuido + control distribuido + datos distribuidos

Un sistema se podría considerar como un sistema distribuido si las tres categorías (hardware, control, datos) alcanzan un cierto nivel de descentralización

Modelo de Enslow de los sistemas distribuidos.

Lic. Jorge Guerra G.Sistemas distribuidos 18

Comparacion entre sistemas

Lic. Jorge Guerra G.Sistemas distribuidos 19

Características de la transparencia en Sistemas

Distribuidos

Lic. Jorge Guerra G.Sistemas distribuidos 20

Compartición de recursos

Lic. Jorge Guerra G.Sistemas distribuidos 21

Compartición de recursos (cont)

Lic. Jorge Guerra G.Sistemas distribuidos 22

Sistema Abierto

Lic. Jorge Guerra G.Sistemas distribuidos 23

Escalabilidad

Lic. Jorge Guerra G.Sistemas distribuidos 24

Tolerancia a fallos

Lic. Jorge Guerra G.Sistemas distribuidos 25

Tolerancia a fallos

Lic. Jorge Guerra G.Sistemas distribuidos 26

Seguridad

Lic. Jorge Guerra G.Sistemas distribuidos 27

Ventajas e inconvenientes

Lic. Jorge Guerra G.Sistemas distribuidos 28

Lic. Jorge Guerra G.Sistemas distribuidos 29

Implementacion final

Aplicaciones

Lic. Jorge Guerra G.Sistemas distribuidos 30

Boeing

Lic. Jorge Guerra G.Sistemas distribuidos 31

Sistemas Distribuidos en automóviles

Control del sistema en un automóvilUn Mercedes clase S esta equipado con mas de 50

procesadores empotrados.Conectados entre si por un red local.

Lic. Jorge Guerra G.Sistemas distribuidos 32

Acceso a serviciosModelo multiproceso.

Modelo de memoria compartidaTambién conocidos como multiprocesadoresTodos los procesadores comparten el espacio de direccionesEl programador no tiene que saber donde se encuentran los

datos

Modelo con memoria distribuidaTambién conocidos como multicomputadoresCada procesador tiene su propio espacio de direccionesEl programador necesita saber donde se encuentran los datos

Lic. Jorge Guerra G.Sistemas distribuidos 33

Comunicación entre procesosMemoria Compartida (Base de Datos Distribuidas)Paso de mensajes (Sockets, RPC y CORBA)Ejecución remota (Agentes)

Lic. Jorge Guerra G.Sistemas distribuidos 34

Lic. Jorge Guerra G.Sistemas distribuidos 35

Arquitecturas hardware

Lic. Jorge Guerra G.Sistemas distribuidos 36

Arquitecturas hardware

Arquitecturas usadas en Sistemas Distribuidos

Arquitectura basada en capasArquitectura basada en objetosArquitectura centrada en datos compartidosArquitectura basada en eventos

Lic. Jorge Guerra G.Sistemas distribuidos 37

Arquitectura basada en capas

Lic. Jorge Guerra G.Sistemas distribuidos 38

Arquitectura basada en objetos

Lic. Jorge Guerra G.Sistemas distribuidos 39

Arquitectura basada en eventos

Lic. Jorge Guerra G.Sistemas distribuidos 40

Arquitectura basada en datos compartidos

Lic. Jorge Guerra G.Sistemas distribuidos 41

Lic. Jorge Guerra G.Sistemas distribuidos 42

Lic. Jorge Guerra G.Sistemas distribuidos 43

Lic. Jorge Guerra G.Sistemas distribuidos 44

Lic. Jorge Guerra G.Sistemas distribuidos 45

Lic. Jorge Guerra G.

Paradigmas de Computacion en Red

Basado en la distribución de recursos, know-how (el codigo que procesa los recursos) y el procesador donde el codigo se ejecuta, los paradigmas de computación de red puede ser clasificadas como:

Paradigma Cliente-ServidorParadigma Código-por-demandaParadigma Agente Móvil

Lic. Jorge Guerra G.

Paradigma Cliente-Servidor

Client

Server

know-how

Servidor tiene todo: el know-how, el

procesador y los recursos

Cliente necesita inteligencia para

descubrir al servidor que provee el servicio

que se necesita.

Lic. Jorge Guerra G.

Paradigma Cliente-Servidor

Client

Server

know-how

Ejemplos: RPC, CORBA, XML Web-Services

etc.

Lic. Jorge Guerra G.

Paradigma Código-por-demanda

Server

know-howClient

Cliente tiene el procesador y los

recursos. No tiene el know-how

Servidor envía el know-how sobre el cliente.

Lic. Jorge Guerra G.

Paradigma Código-por-demanda

Server

know-howClient

Lic. Jorge Guerra G.

Paradigma Código-por-demanda

Server

Client know-how

know-how

Lic. Jorge Guerra G.

Paradigma Código-por-demanda

Server

Client know-how

know-how

Flash y Youtube son un buen

ejemplo de este paradigma.

Lic. Jorge Guerra G.

Paradigma Agente Móvil

Host Host

Cada host en esta red tiene un alto

grado de flexibilidad en poseer el know-how, los recursos y los procesadores

Lic. Jorge Guerra G.

Paradigma Agente Móvil

Host Host

Lic. Jorge Guerra G.

Paradigma Agente Móvil

Host Host

Agente

know-how

Know-how en la forma de agentes móviles no esta unido a un único

host pero esta disponible en toda la red

Lic. Jorge Guerra G.

Paradigma Agente Móvil

Host Host

Agente

know-howred

Lic. Jorge Guerra G.

Paradigma Agente Móvil

Host Host

red

Agente

know-how

Lic. Jorge Guerra G.

Paradigma Agente Móvil

Host Host

Agente

know-how

Lic. Jorge Guerra G.

Concepto de Agente MovilUn agente móvil es un objeto el cual puede

moverse autónomamente a lo largo de la red de un host a otro con su código y estado de ejecución y realizar ciertas tareas a nombre de un usuario .

Lic. Jorge Guerra G.Sistemas distribuidos 60

Nuevos Paradigmas de SD Cluster Computing:

Dedicados a tareas específicas:Altas prestaciones.Alta disponibilidad.

Sistema homogéneo (a menudo dedicado):Nodos PCs.LAN (de propósito general o específicas).

Problemática: Grado de acoplamiento, servicios distribuidos. Grid Computing:

Aprovechamiento de recursos creando un uniprocesador virtual. Restringido a una serie de tareas. Diferentes ámbitos:

Desde intradepartamentales.Hasta intercorporativos.

Problemática: Coordinación, seguridad, carácter dinámico.

Lic. Jorge Guerra G.Sistemas distribuidos 61

Cluster Computing La idea del Cluster Computing es simple: Un grupo de

ordenadores independientes se conectan entre sí. Los elementos conectantes son cables y un software especial de cluster.

Ya que los distintos ordenadores se complementan, por ejemplo en el caso de Failover o balanceo de cargas. Falla uno, los demás se encargan de su trabajo. Para un ordenador sólo ésto es imposible. De ésta forma se garantiza la alta disponibilidad las 24 horas del día. Igualmente se facilita la administración. La unión "clusterizada" de ordenadores es como un único punto de control, que podrá ser administrado sin ningún problema de forma remota.

Modelo de Cluster

Lic. Jorge Guerra G.Sistemas distribuidos 62

Lic. Jorge Guerra G.Sistemas distribuidos 63

Cluster Computing

Lic. Jorge Guerra G.Sistemas distribuidos 64

Lic. Jorge Guerra G.Sistemas distribuidos 65

Modelo de GRID

Lic. Jorge Guerra G.Sistemas distribuidos 66

Lic. Jorge Guerra G.Sistemas distribuidos 67

Lic. Jorge Guerra G.Sistemas distribuidos 68

Lic. Jorge Guerra G.Sistemas distribuidos 69

Lic. Jorge Guerra G.Sistemas distribuidos 70

Desarrollos WebCaso particular de desarrollo cliente servidor con

representación remota, en la cual disponemos de un protocolo standard: HTTP y un servidor denominado WebServer.

Cada página puede desencadenar la solicitud de numerosos peticiones adicionales para finalizar el proceso de representación remota.

Se dispone de un lenguaje standard de definición y formateo de páginas: HTML

Lic. Jorge Guerra G.Sistemas distribuidos 71

Desarrollos Web Incrustación de la lógica de aplicación en el servidor Web:

CGI: Common Gateware InterfaceCada petición HTTP genera un nuevo proceso, el cual analiza la

solicitud y genera un resultado. Cada proceso corresponde a una transacción.

Es flexible, ideal para pequeñas aplicaciones de uso reducidoNo escala adecuadamente

Plug-insCada petición HTTP es resuelta por el componente adecuada, dentro

del mismo proceso del Web-Server.Mejor rendimientoCompromete la seguridad y fiabilidad del servidor Web

Servidor especializadoFacilidad de desarrolloBuen rendimientoRigidez de configuración

Lic. Jorge Guerra G.Sistemas distribuidos 72

Lic. Jorge Guerra G.Sistemas distribuidos 73

Desarrollos WebTipos de plug-ins

HTML incrustado en códigoSe centran en la lógicaSon fácilmente de optimizablesEjemplos: servlets, Perl, Python

Código incrustado en HTMLSe centran en el interface de usuarioSon fáciles de crear y modificarNo requieren grandes formalismosNo necesitan una gran formaciónEjemplos: ASP, JSP, PHP

Lic. Jorge Guerra G.Sistemas distribuidos 74

Lic. Jorge Guerra G.Sistemas distribuidos 75

Desarrollo Web

Implementacion

Lic. Jorge Guerra G.Sistemas distribuidos 76

Lic. Jorge Guerra G.Sistemas distribuidos 77

Lic. Jorge Guerra G.Sistemas distribuidos 78

View

Controller

Model

Use

r

Modelo Vista Controlador

Lic. Jorge Guerra G.Sistemas distribuidos 79

Nuevos tipos de dispositivosDispositivos que acceden hoy a internet:

Internet Explorer, Netscape, Set Top Box, Móviles WAP, PDAs Palm Pilot, Windows CE, ...

Previsiones para los próximos años:2.002 el 50% de las transacciones habituales se

podrán realizar desde dispositivos móviles2.003 el 80% de los usuarios realizarán algún tipo

de transacción desde dispositivos móviles2.004 los se querrán realizar el 100% de las

transacciones desde dispositivos móviles2.005 Se esperan más de 1.000 millones de

usuarios móviles de internet

Lic. Jorge Guerra G.Sistemas distribuidos 80

Nuevos tipos de dispositivosProblema a resolver:

Necesidad de adaptar el interface de usuario a cada tipo de dispositivo

Medidas a tomar:Separar la lógica de aplicación del interface de usuarioUtilizar métodos estándar de comunicación entre la

lógica de aplicación y el interface de usuarioUso de herramientas que permitan adaptar rápidamente

las aplicaciones a los nuevos tipos de dispositivos que irán apareciendo

Lic. Jorge Guerra G.Sistemas distribuidos 81

Nuevos tipos de dispositivosTendencia actual

Navegador

Web Server

Páginas HTML

Servidor Aplicaciones Lógica de negocio

DatosBase de datos

Interface de usuario

Gestor comunicaciones

UsuarioMóvil

WAP Server

Páginas WML

SQL

XML

- -

Wml binariohttp

Lic. Jorge Guerra G.Sistemas distribuidos 82

Nuevos tipos de dispositivosVariante de los fabricantes BBDD

Navegador

Web Server

Páginas HTML

Lógica de negocio

DatosBase de datos

Interface de usuario

Gestor comunicaciones

UsuarioMóvil

WAP Server

Páginas WML

XML

- -

Wml binariohttp

Lic. Jorge Guerra G.Sistemas distribuidos 83

Nuevos tipos de dispositivosVariante de los fabricantes pasarelas

Navegador

Web Server

Páginas HTMLLógica de negocio

DatosBase de datos

Interface de usuario

Gestor comunicaciones

UsuarioMóvil

WAP Server

Reglas de traducción WML

SQL

- -

Wml binariohttp

Interface de usuario

Lic. Jorge Guerra G.Sistemas distribuidos 84

Java

Lic. Jorge Guerra G.Sistemas distribuidos 85

Arquitectura I-MODE

PacketNetwork(PDC-P)

CommunicationNetwork

(PDC)

iModeServer

GroupwareServerPSTN

Info.Provider

HTTP/TCP/IP Leased Line

Internet

Info.Provider

Info.Provider

PC

PC

HTTP/TCP/IP

Lic. Jorge Guerra G.Sistemas distribuidos 86

WMLBrowser

J2ME

RTOS

Invoke

Opción 1: WML nativo Interacciona con java:•Limitaciones en es stack•Limita las interdependencias

XML or XHTML Browser

J2ME

RTOS

Opción 2: Java browser• Integración mayor•El navegado puede actualizarse dinámicamente

Coexistencia Java-WAP

Lic. Jorge Guerra G.Sistemas distribuidos 87

Wireless Telephony Application Interface

Web ServerWeb Server

CGIScripts,

Etc...

WM

L D

eck

sw

ith

WM

L S

crip

t

Content

WAP GatewayWAP Gateway

WML Encoder

WML ScriptCompiler

ProtocolConversion

ClientClient

WML

WML Script

WTAI

HTTP WTP

Arquitectura WAP

Lic. Jorge Guerra G.Sistemas distribuidos 88

Lic. Jorge Guerra G.Sistemas distribuidos 89

Lic. Jorge Guerra G.Sistemas distribuidos 90

Lic. Jorge Guerra G.Sistemas distribuidos 91

Lic. Jorge Guerra G.Sistemas distribuidos 92

Lic. Jorge Guerra G.Sistemas distribuidos 93