Professional Documents
Culture Documents
http://epis-sd.tk
Referencias Bibliogrficas
Sistemas Distribuidos : Conceptos y Diseo G. Coulouris, J. Dollimore, T. Kindberg Addison-Wesley Sistemas Operativos Distribuidos A. S. Tanenbaum Prentice-Hall
Agenda
Introduccin Ejemplos de Sistemas Distribuidos Conceptos de Hardware Conceptos de Software Recursos compartidos y Web Desafos Modelo de 3 Capas
Introduccin
Un sistema distribuido es una coleccin de computadoras independientes, conectadas en red, comunican y coordinan sus acciones nicamente mediante el paso de mensajes, que aparecen ante los usuarios del sistema como una nica computadora. Esta definicin tiene dos aspectos:
Hardware: Las mquinas son autnomas. Software: Los usuarios piensan que el sistema es como una nica computadora.
Sistema Distribuido
Construir y utilizar sistemas distribuidos tiene su origen en un deseo de compartir recursos. Estos recursos se extienden desde los componentes de hardware como los discos y las impresoras hasta las entidades de software definidas como ficheros, base de datos y objetos de datos de todos los tipos.
Concurrencia: Realizar muchos trabajos en forma simultnea. La coordinacin de programas que comparten recursos es importante. Inexistencia de reloj global: No existe una idea global del tiempo correcto. Fallos independientes: Todos los sistemas pueden fallar y se tiene la responsabilidad de planificar las consecuencias de posibles fallos.
* Sistemas Distribuidos
Descripcin
Los microprocesadores ofrecen mejor proporcin precio/rendimiento que los mainframes. Un sistema distribuido puede tener mayor poder de cmputo que un mainframe.
Algunas aplicaciones utilizan mquinas que estn separadas a cierta distancia.
Confiabilidad
Descripcin
Permiten que varios usuarios tengan acceso a una base de datos comn. Permiten que varios usuarios compartan perifricos, como las impresoras.
Comunicacin Facilita la comunicacin de persona a persona; por ejemplo, mediante el correo electrnico. Flexibilidad Difunde la carga de trabajo entre las mquinas disponibles en la forma ms eficaz en cuanto a los costos.
backbone
Desk t o p co mp u t er s
emai l ser ver Fi e server l pri nt ot her server s t he r est of t he I nt ernet r out er/ f i r ew al l
I nt er net
Ho s t
nt r anet i
W i r el e s s L AN
W AP g a t e wa y
Ho m e i nt r anet
Ejemplo: Napster
Agenda
Introduccin Ejemplos de Sistemas Distribuidos Conceptos de Hardware Conceptos de Software Recursos compartidos y Web Desafos Modelo de 3 Capas
Concepto de hardware
Se han propuesto diversos esquemas de clasificacin para los sistemas de computo con varios CPU. Es probable que la taxonoma mas citada sea la de Flynn.
Conceptos de hardware
SISD (Single Instruction, Single Data), un flujo de instrucciones y uno de datos. SIMD (Single Instruction, Multiple Data), un flujo de instrucciones y varios flujos de datos. MISD (Multiple Instruction, Single Data), un flujo de varias instrucciones y uno de datos. MIMD (Multiple Instruction, Multiple Data), que significa un grupo de computadoras independientes.
SISD
MISD
SIMD
Sncrona
MIMD
Asncrona
Conceptos de Hardware
Multiprocesadores
Basado en buses
Multiprocesadores
Agenda
Introduccin Ejemplos de Sistemas Distribuidos Conceptos de Hardware Conceptos de Software Recursos compartidos y Web Desafos Modelo de 3 Capas
Conceptos de Software
Cada mquina tiene un alto grado de autonoma y existen pocos requisitos a lo largo de todo el sistema. Un ejemplo es una red de estaciones de trabajo conectadas mediante una LAN. A veces es posible que un usuario se conecte de manera remota con otra estacin de trabajo mediante un comando como login machine.
Estn formados por un software fuertemente acoplado en un hardware dbilmente acoplado. El objetivo es crear la ilusin en las mentes de los usuarios que toda la red de computadoras es un sistema de tiempo compartido, en vez de una coleccin de mquinas diversas.
int count = 0;
public: int value() { return count;} void incr () { count = count + 1;} void decr() { count = count 1;} }
int count = 0;
int blocked_procs = 0; condition unblocked; public: int value () { return count;} void incr () { if (blocked_procs == 0) count = count + 1; else
signal (unblocked);
}
b)
c)
Pginas de espacio de direccin distribuido entre 4 mquinas Situacin luego de que la CPU 1 referencia a la pgina 10 Situacin si la pgina 10 es de solo lectura y se usa replicacin
1.18
1-19
1-20
1.21
Conceptos de Software
Software Concurrente
Puede simultneamente correr mltiples clculos computacionales interactuando potencialmente entre ellos.
Software de Redes
Define protocolos que permiten que dispositivos computacionales intercambien mensajes y realicen servicios remotamente.
Incrementa la performance
Ejemplo: compartir archivos, medios sociales, transacciones en lnea e-commerce, cadenas de proveedores, B2B, etc.
Ejemplo: Computacin en la nuble
Escalabilidad
Disponibilidad
Efectividad en costo
Agenda
Introduccin Ejemplos de Sistemas Distribuidos Conceptos de Hardware Conceptos de Software Recursos compartidos y Web Desafos Modelo de 3 Capas
Servicio: gestiona una coleccin de recursos relacionados y presenta su funcionalidad a los usuarios y aplicaciones a travs de operaciones Servidor: Programa en ejecucin (un proceso) en un computador en red que acepta peticiones de programas que se estn ejecutando en otros computadores denominados clientes.
Internet
http://www.cdk3.net/
Protocols
Activity.html
La Web es un sistema abierto: puede ser ampliado e implementado en nuevas formas sin modificar su funcionalidad existente. Componentes:
HTML (HyperText Markup Language) URL (Uniform Resource Locator) HTTP (HyperText Transfer Protocol)
Agenda
Introduccin Ejemplos de Sistemas Distribuidos Conceptos de Hardware Conceptos de Software Recursos compartidos y Web Desafos Modelo de 3 Capas
Desafos
Heterogeneidad
sobre
un
Heterogeneidad : Middleware
El trmino middleware se aplica al estrato software que provee una abstraccin de programacin, as como un enmascaramiento de la heterogeneidad subyacente de las redes hardware, sistemas operativos y lenguajes de programacin. COM+, CORBA, son ejemplos de ello. Adems, el middleware proporciona un modelo computacional uniforme que incluyen invocacin sobre objetos remotos, acceso remoto mediante SQL, procesamiento de transacciones, etc.
Middleware
Extensibilidad
Determina si el sistema puede ser extendido y reimplementado en diversos aspectos. Grado en el cual se pueden aadir nuevos servicios de comparticin de recursos y ponerlos a disposicin para el uso por una variedad de programas clientes. Esto slo se logra con la publicacin de las interfaces clave (similar a la estandarizacin)
Seguridad
Los recursos de informacin tienen un alto valor intrnseco para sus usuarios. La seguridad de los recursos de informacin tiene 3 componentes:
Escalabilidad
Se dice que un sistema es escalable si conserva su efectividad cuando ocurre un incremento significativo en el nmero de recursos y el nmero de usuarios.
Date Computers Web servers Percentage
1,776,000
6,642,000 19,540,000 56,218,000
130
23,500 1,203,096 6,598,697
0.008
0.4 6 12
Tratamiento de fallos
Los fallos en un sistema distribuido son parciales; es decir, algunos componentes fallan mientras otros siguen funcionando. Tcnicas para tratar fallos:
Deteccin de fallos. Enmascaramiento de fallos. Tolerancia de fallos. Recuperacin frente a fallos. Redundancia.
Concurrencia
Tanto los servicios como las aplicaciones proporcionan recursos que pueden compartirse entre los clientes en un sistema distribuido. Existe por lo tanto una posibilidad de que varios clientes intenten acceder a un recurso compartido a la vez. Ms concretamente, suponga que cada recurso se encapsula en un objeto y que las invocaciones se ejecutan en hilos de ejecucin concurrentes (threads).
Transparencia
Es la ocultacin de la separacin de los componentes en un sistema distribuido, de forma que se perciba el sistema como un todo ms que como una coleccin de componentes independientes. Las transparencias de mayor alcance seran:
Transparencia de acceso. Transparencia de ubicacin. Transparencia de concurrencia. Transparencia de replicacin. Transparencia frente a fallos.
Persistence
Tcnicas de Escala
En un servidor o en un cliente
Agenda
Introduccin Ejemplos de Sistemas Distribuidos Conceptos de Hardware Conceptos de Software Recursos compartidos y Web Desafos Modelo de 3 Capas
Modelo de 3 capas
Para construir aplicaciones distribuidas lo ideal es pasar de arquitecturas de 2 capas a arquitecturas de 3 capas.
De 2 capas a 3 capas
Cliente 1
Proceso 1 MiApp.exe Driver SQL
Cliente 2
Proceso 2 MiApp.exe Driver SQL
DBMS (SQL)
Cliente n
Proceso n MiApp.exe Driver SQL
De 2 capas a 3 capas
Las aplicaciones de 2 capas requiere una conexin separada al servidor de la base de datos por cada usuario, y la computadora del usuario debe tener el apropiado driver para un especifico gestor de base de datos (DBMS). El cdigo de la interfaz se mezcla con la lgica del negocio y el cdigo de acceso a los datos.
* Sistemas Distribuidos
De 2 capas a 3 capas
Cliente 1
MiApp.exe SQL driver Oracle driver
Oracle
Cliente 2
OtraApp.exe SQL driver Oracle driver
DBMS (SQL)
Cliente n
NewApp.exe Driver SQL Oracle driver Mainframe
Mainframe
La solucin al problema de 2 capas se puede solucionar agregando una capa para la lgica del negocio. Esto elimina la dependencia entre las aplicaciones cliente y los servidores de base de datos
Object
Object
peticin HTTP
Object
Cliente 2
Netscape Macintosh
Cliente n
Mosaic Linux
peticin HTTP
Mainframe
1-28
The general organization of an Internet search engine into three different layers
1-29
1-30
Arquitecturas Modernas
1-31
Resumen
Los sistemas distribuidos estn por todas partes como es Internet, Intranets y la computacin mvil y ubicua. La comparticin de recursos es el principal factor que motiva la construccin de sistemas distribuidos (Cliente/Servidor). La construccin de los S.D. presentan muchos desafos: Heterogeneidad, Extensibilidad, Seguridad, Escalabilidad, Tratamiento a fallos, Concurrencia y Transparencia.