2. Hemos utilizado Sistemas
Distribuidos?
Ejemplo: Google
No es un sistema distribuido
Es una aplicación montada sobre un sistema distribuido
Yo como usuario desconozco
Máquina o máquinas en las quo se realiza Ia búsqueda
Lugares 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
3. Concepto informatico
Los 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
5. Lic. Jorge Guerra G.
Sistemas distribuidos 5
intranet
ISP
desktop computer:
backbone
satellite link
server:
%
network link:
%
%
%
La Internet mostro la factibilidad de la
implementación de los Sistemas Distribuidos
6. 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
10. 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.
11. 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
12. 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
computadora
Tanenbaum
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
Coulouris
Otras definiciones
13. 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
14. Retos
Los 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
15. 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
16. Lic. Jorge Guerra G.
Sistemas distribuidos 16
Características de los Sistemas Distribuidos
17. Lic. Jorge Guerra G.
Sistemas distribuidos 17
Definición de Enslow
Sistema 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
18. Modelo de Enslow de los sistemas distribuidos.
Lic. Jorge Guerra G.
Sistemas distribuidos 18
32. Sistemas Distribuidos en automóviles
Control del sistema en un automóvil
Un 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
33. Acceso a servicios
Modelo multiproceso.
Modelo de memoria compartida
También conocidos como multiprocesadores
Todos los procesadores comparten el espacio de direcciones
El programador no tiene que saber donde se encuentran los
datos
Modelo con memoria distribuida
También conocidos como multicomputadores
Cada procesador tiene su propio espacio de direcciones
El programador necesita saber donde se encuentran los datos
Lic. Jorge Guerra G.
Sistemas distribuidos 33
34. Comunicación entre procesos
Memoria Compartida (Base de Datos Distribuidas)
Paso de mensajes (Sockets, RPC y CORBA)
Ejecución remota (Agentes)
Lic. Jorge Guerra G.
Sistemas distribuidos 34
35. Lic. Jorge Guerra G.
Sistemas distribuidos 35
Arquitecturas hardware
36. Lic. Jorge Guerra G.
Sistemas distribuidos 36
Arquitecturas hardware
37. Arquitecturas usadas en Sistemas
Distribuidos
Arquitectura basada en capas
Arquitectura basada en objetos
Arquitectura centrada en datos compartidos
Arquitectura basada en eventos
Lic. Jorge Guerra G.
Sistemas distribuidos 37
46. 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-Servidor
Paradigma Código-por-demanda
Paradigma Agente Móvil
47. 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.
48. Lic. Jorge Guerra G.
Paradigma Cliente-Servidor
Client
Server
know-how
Ejemplos: RPC,
CORBA, XML
Web-Services
etc.
49. 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.
50. Lic. Jorge Guerra G.
Paradigma Código-por-demanda
Server
know-howClient
51. Lic. Jorge Guerra G.
Paradigma Código-por-demanda
Server
Client know-how
know-how
52. 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.
53. 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
55. 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
56. Lic. Jorge Guerra G.
Paradigma Agente Móvil
Host Host
Agente
know-how
red
57. Lic. Jorge Guerra G.
Paradigma Agente Móvil
Host Host
red
Agente
know-how
58. Lic. Jorge Guerra G.
Paradigma Agente Móvil
Host Host
Agente
know-how
59. Lic. Jorge Guerra G.
Concepto de Agente Movil
Un 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 .
60. 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.
61. 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.
70. Lic. Jorge Guerra G.
Sistemas distribuidos 70
Desarrollos Web
Caso 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
71. 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 Interface
Cada 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 reducido
No escala adecuadamente
Plug-ins
Cada petición HTTP es resuelta por el componente adecuada, dentro
del mismo proceso del Web-Server.
Mejor rendimiento
Compromete la seguridad y fiabilidad del servidor Web
Servidor especializado
Facilidad de desarrollo
Buen rendimiento
Rigidez de configuración
73. Lic. Jorge Guerra G.
Sistemas distribuidos 73
Desarrollos Web
Tipos de plug-ins
HTML incrustado en código
Se centran en la lógica
Son fácilmente de optimizables
Ejemplos: servlets, Perl, Python
Código incrustado en HTML
Se centran en el interface de usuario
Son fáciles de crear y modificar
No requieren grandes formalismos
No necesitan una gran formación
Ejemplos: ASP, JSP, PHP
78. Lic. Jorge Guerra G.
Sistemas distribuidos 78
View
Controller
Model
User Modelo Vista Controlador
79. Lic. Jorge Guerra G.
Sistemas distribuidos 79
Nuevos tipos de dispositivos
Dispositivos 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óviles
2.003 el 80% de los usuarios realizarán algún
tipo de transacción desde dispositivos móviles
2.004 los se querrán realizar el 100% de las
transacciones desde dispositivos móviles
2.005 Se esperan más de 1.000 millones de
usuarios móviles de internet
80. Lic. Jorge Guerra G.
Sistemas distribuidos 80
Nuevos tipos de dispositivos
Problema 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 usuario
Utilizar métodos estándar de comunicación entre la
lógica de aplicación y el interface de usuario
Uso de herramientas que permitan adaptar rápidamente
las aplicaciones a los nuevos tipos de dispositivos que
irán apareciendo
81. Lic. Jorge Guerra G.
Sistemas distribuidos 81
Nuevos tipos de dispositivos
Tendencia actual
Navegador
Web Server
Páginas HTML
Servidor Aplicaciones Lógica de negocio
Datos
Base de datos
Interface de usuario
Gestor
comunicaciones
UsuarioMóvil
WAP Server
Páginas WML
SQL
XML
- -
Wml binariohttp
82. Lic. Jorge Guerra G.
Sistemas distribuidos 82
Nuevos tipos de dispositivos
Variante 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
83. Lic. Jorge Guerra G.
Sistemas distribuidos 83
Nuevos tipos de dispositivos
Variante de los fabricantes pasarelas
Navegador
Web Server
Páginas HTML
Lógica de negocio
Datos
Base de datos
Interface de usuario
Gestor
comunicaciones
UsuarioMóvil
WAP Server
Reglas de
traducción WML
SQL
- -
Wml binariohttp
Interface de usuario
85. Lic. Jorge Guerra G.
Sistemas distribuidos 85
Arquitectura I-MODE
Packet
Network
(PDC-P)
Communication
Network
(PDC)
iMode
Server
Groupware
ServerPSTN
Info.
Provider
Internet
Info.
Provider
Info.
Provider
PC
PC
86. Lic. Jorge Guerra G.
Sistemas distribuidos 86
WML
Browser
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
87. Lic. Jorge Guerra G.
Sistemas distribuidos 87
Wireless Telephony Application Interface
Web Server
CGI
Scripts,
Etc...
WMLDecks
withWMLScript
Content
WAP Gateway
WML Encoder
WML Script
Compiler
Protocol
Conversion
Client
WML
WML Script
WTAI
HTTP WTP
Arquitectura WAP