Lic. Jorge Guerra G.Sistemas distribuidos 1
Sistemas Distribuidos
Lic. Jorge Guerra Guerra
Abril 2009
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
Evolucion de las aplicaciones
Lic. Jorge Guerra G.Sistemas distribuidos 5
Modelo N-capas heterogeneo
Lic. Jorge Guerra G.Sistemas distribuidos 6
Modelo espacial C/S
Lic. Jorge Guerra G.Sistemas distribuidos 7
Lic. Jorge Guerra G.Sistemas distribuidos 8
Lic. Jorge Guerra G.Sistemas distribuidos 9
Definición de Sistema DistribuidoUn 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 migración.Transparencia de replicaTransparencia de concurrencia.Transparencia de paralelismo.Transparencia de acceso.Transparencia de reubicacion.
Lic. Jorge Guerra G.Sistemas distribuidos 10
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
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 11
Lic. Jorge Guerra G.Sistemas distribuidos 12
¿ 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 13
Características de los Sistemas Distribuidos
Lic. Jorge Guerra G.Sistemas distribuidos 14
Características de la transparencia en Sistemas
Distribuidos
Lic. Jorge Guerra G.Sistemas distribuidos 15
Compartición de recursos
Lic. Jorge Guerra G.Sistemas distribuidos 16
Compartición de recursos (cont)
Lic. Jorge Guerra G.Sistemas distribuidos 17
Sistema Abierto
Lic. Jorge Guerra G.Sistemas distribuidos 18
Escalabilidad
Lic. Jorge Guerra G.Sistemas distribuidos 19
Tolerancia a fallos
Lic. Jorge Guerra G.Sistemas distribuidos 20
Tolerancia a fallos
Lic. Jorge Guerra G.Sistemas distribuidos 21
Seguridad
Lic. Jorge Guerra G.Sistemas distribuidos 22
Ventajas e inconvenientes
Lic. Jorge Guerra G.Sistemas distribuidos 23
Lic. Jorge Guerra G.Sistemas distribuidos 24
Implementacion final
Aplicaciones
Lic. Jorge Guerra G.Sistemas distribuidos 25
Lic. Jorge Guerra G.Sistemas distribuidos 26
Lic. Jorge Guerra G.Sistemas distribuidos 27
Arquitecturas hardware
Lic. Jorge Guerra G.Sistemas distribuidos 28
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 29
Arquitectura basada en capas
Lic. Jorge Guerra G.Sistemas distribuidos 30
Arquitectura basada en objetos
Lic. Jorge Guerra G.Sistemas distribuidos 31
Arquitectura basada en eventos
Lic. Jorge Guerra G.Sistemas distribuidos 32
Arquitectura basada en datos compartidos
Lic. Jorge Guerra G.Sistemas distribuidos 33
Lic. Jorge Guerra G.Sistemas distribuidos 34
Lic. Jorge Guerra G.Sistemas distribuidos 35
Lic. Jorge Guerra G.Sistemas distribuidos 36
Lic. Jorge Guerra G.Sistemas distribuidos 37
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
Java Applets 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 52
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 53
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 54
Lic. Jorge Guerra G.Sistemas distribuidos 55
Cluster Computing
Lic. Jorge Guerra G.Sistemas distribuidos 56
Lic. Jorge Guerra G.Sistemas distribuidos 57
Modelo de GRID
Lic. Jorge Guerra G.Sistemas distribuidos 58
Lic. Jorge Guerra G.Sistemas distribuidos 59
Lic. Jorge Guerra G.Sistemas distribuidos 60
Lic. Jorge Guerra G.Sistemas distribuidos 61
Lic. Jorge Guerra G.Sistemas distribuidos 62
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 63
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 64
Lic. Jorge Guerra G.Sistemas distribuidos 65
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 66
Lic. Jorge Guerra G.Sistemas distribuidos 67
Desarrollo Web
Lic. Jorge Guerra G.Sistemas distribuidos 68
Desarrollos Web
Implementacion
Lic. Jorge Guerra G.Sistemas distribuidos 69
Lic. Jorge Guerra G.Sistemas distribuidos 70
Lic. Jorge Guerra G.Sistemas distribuidos 71
View
Controller
Model
Use
r
Modelo Vista Controlador
Lic. Jorge Guerra G.Sistemas distribuidos 72
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 73
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 74
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 75
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 76
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 77
Java
Lic. Jorge Guerra G.Sistemas distribuidos 78
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 79
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 80
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 81
Lic. Jorge Guerra G.Sistemas distribuidos 82
Lic. Jorge Guerra G.Sistemas distribuidos 83
Lic. Jorge Guerra G.Sistemas distribuidos 84
Lic. Jorge Guerra G.Sistemas distribuidos 85
Lic. Jorge Guerra G.Sistemas distribuidos 86
Lic. Jorge Guerra G.Sistemas distribuidos 87
Presente de las aplicaciones distribuidas – J2EE y .NET
J2EE (Java 2 Enterprise Edition) J2EE es un grupo de especificaciones que permiten la creación de aplicaciones empresariales distribuidas.
Cubre toda una serie de aspectos como: acceso a base de datos, directorios distribuidos, acceso a métodos remotos (RMI/CORBA), correo electrónico, interfaces Web (JSP y Servlets).
Microsoft .NET es la alternativa de Microsoft a J2EE, cubre aspectos similares y de una forma similar pero desde el mundo Microsoft.
Ambas plataformas tienen amplio soporte de Servicios Web.
Lic. Jorge Guerra G.Sistemas distribuidos 88
Estándares de mercadoEstrategia Java
Navegador
Web Server
Lógica de negocio
Datos
Gestor comunicaciones
UsuarioMóvil
WAP ServerWml binariohttp
Interface de usuarioPáginas JSP / Servlets / Java Beans
Enterprise Java Beans
Base de datos
SQL
RMI
- -
Lic. Jorge Guerra G.Sistemas distribuidos 89
Estándares de mercadoEstrategia .NET
Navegador
Web Server
Lógica de negocio
Datos
Gestor comunicaciones
UsuarioMóvil
WAP ServerWml binariohttp
Interface de usuarioPáginas ASP
OBJETO COM +
Base de datos
SQL
XML
- -
Visual Basic