Clase 2 - Modelos de Sistemas Distribuidos
Clase 2 - Modelos de Sistemas Distribuidos
Clase 2 - Modelos de Sistemas Distribuidos
Introduccin
Los modelos utilizados para modelar sistemas distribuidos nos sirven como herramientas para describir sus propiedades y analizar alternativas de diseo. Estos modelos nos ayudan a .. clasificar y comprender las diferentes implementaciones .. identificar sus debilidades y sus fortalezas .. elaborar nuevos sistemas diferentes a partir de aquellos de construccin pre-validadas Cada tipo de modelo nos brinda una descripcin abstracta, simplificada y consistente de los aspectos relevantes del diseo de un SD
Tipos de Modelos
Modelos Fsicos
Describe los componentes de hardware: computadoras y sus interconexiones de red
Modelos Arquitectnicos
Describe el sistema en base a las tareas de cmputo y de comunicacin ejecutadas por sus elementos computacionales. Estos pueden ser computadoras individuales o agregadas
Modelos Fsicos
Un modelo fsico es la representacin de los elementos de hardware de un sistema distribuido que se abstrae de los detalles de las computadoras y de la tecnologa de networking utilizada. En base al modelo fsico podemos identificar tres generaciones de SD Early Distributed Systems
Aparecieron a fines de los 70, principios de los 80. Tenan entre 10 y 100 nodos interconectados a una LAN. Conectividad limitada a Internet. Servicios mnimos: file servers, print servers, email y transferencia de archivos a travs de Internet Alto nivel de homogeneidad y no necesariamente compatible con otras redes: IPX, AppleTalk, LU 6.2
Web server
Internet-scale
Grande
Prioridad significativa.
Ultra-Large
Super Grande
Mucha investigacin
Modelos Arquitectnicos
La arquitectura de un sistema se refiere a su estructura en trminos de sus componentes y la relacin entre ellos Su objetivo es satisfacer la demanda actual y, si es posible, la demanda futura. Las principales preocupaciones son que el sistema sea fiable, administrable, adaptable y rentable (costo-efectivo) Vamos a abordar el tema en 3 etapas:
Elementos de la arquitectura Patrones arquitectnicos compuestos Plataformas de Middleware
Elementos de la Arquitectura
Para entender los elementos que constituyen un sistema distribuido, es necesario responder las siguientes 4 preguntas
Cules son las entidades comunicantes dentro de un SD? Cmo se comunican o, ms especificamente, qu paradigma de comunicacin utiliza? Qu roles y responsabilidades tienen dentro de la arquitectura en general? Como se distribuyen dentro de la infraestructura fsica? Cul es su colocacin?
Entidades Comunicantes
Perspectiva orientada al sistema Las entidades comunicantes son procesos que se comunican mediante algn paradigma de comunicacin. Esto es cierto con dos salvedades:
En entornos primitivos, tales como redes de sensores, los sistemas operativos no soportan el concepto de proceso. En este caso, las entidades comunicantes se denominan nodos. En la mayora de los entornos de SD, los procesos son suplementados por threads, as que siendo estrictos, los threads son endpoints de las comunicaciones
Paradigmas de Comunicacin
Los paradigmas de comunicacin determinan cmo se comunican entre si las entidades. Vamos a considerar 3 tipos de paradigmas de comunicacin
IPC Socket Programming MPI Invocacin Remota RPC RMI Comunicaciones Indirectas Comunicaciones en Grupo Sistemas de Publicacin y Subscripcin Cola de Mensajes DSM
IPC La comunicacin entre procesos (comnmente IPC, Inter-Process Communication) es una funcin bsica de los sistemas operativos. Los procesos pueden comunicarse entre s a travs de compartir espacios de memoria, ya sean variables compartidas o buffers, o a travs de las herramientas provistas por las rutinas de IPC. La IPC provee un mecanismo que permite a los procesos comunicarse y sincronizarse entre s, normalmente a travs de un sistema de bajo nivel de paso de mensajes que ofrece la red subyacente. Incluye primitivas para:
pasaje de mensajes, acceso directo a la API ofrecida por los protocolos de Internet (socket programming) , y soporte para comunicaciones multicast
Permite a un programa de ordenador ejecutar cdigo en otra mquina remota sin tener que preocuparse por las comunicaciones entre ambos. Las RPC son muy utilizadas dentro del paradigma cliente-servidor. Siendo el cliente el que inicia el proceso solicitando al servidor que ejecute cierto procedimiento o funcin y enviando ste de vuelta el resultado de dicha operacin al cliente.
Es un mecanismo ofrecido por Java para invocar un mtodo de manera remota. Forma parte del entorno estndar de ejecucin de Java y proporciona un mecanismo simple para la comunicacin de servidores en aplicaciones distribuidas basadas exclusivamente en Java. A travs de RMI, un programa Java puede exportar un objeto, con lo que dicho objeto estar accesible a travs de la red y el programa permanece a la espera de peticiones en un puerto TCP. A partir de ese momento, un cliente puede conectarse e invocar los mtodos proporcionados por el objeto.
Comunicaciones Indirectas
Las comunicaciones indirectas se realizan a travs de una 3ra entidad permitiendo un alto grado de desacoplamiento entre el emisor y el receptor Los emisores no necesitan conocer quien se le est enviando la informacin (space uncoupling) Los emisores y los receptores no necesitan existir al mismo tiempo (time uncoupling). Las principales tcnicas son:
Comunicaciones en grupo Sistemas de Publicacin y Subscripcin Cola de Mensajes DSM (Memoria Compartida Distribuida)
Comunicaciones en Grupo
Proveen un servicio donde un mensaje es enviado a un grupo y luego este mensaje es distribuido a todos los miembros del grupo. La comunicacin en grupo es un pilar importante para los SD en reas tales como:
Diseminacin confiable de informacin a muchos clientes, donde se requiere precisin y acceso actualizado a una amplia variedad de informacin. Ej. Industria financiera Soporte para aplicaciones cooperativas. Ej. Multiuser games Soporte para monitoreo y administracin de sistemas. Ej. Estrategias de balanceo de carga
Cola de Mensajes
Las colas de mensajes brindan un protocolo de comunicacin asincrnico entre procesos permitiendo el pasaje de mensajes entre diferentes sistemas de computacin. Los productores envan mensajes a una cola especfica y los consumidores los reciben o son notificados del arrivo de nuevos mensajes. Tipicamente estos sistemas proveen una funcionalidad mejorada de resilencia asegurando que los mensajes no se perdern en caso de encontrarnos con una falla del sistema. Ejemplos de implementaciones comerciales:
IBM's WebSphere MQ Oracle Advanced Queuing
Entidades Comunicantes System- oriented Entities Nodes Procesos Problemoriented Entities Objets Components
Paradigmas de Comunicacin IPC Invocacin Remota Comunicacin Indirecta Comunicaciones en Grupo Publish-Subscribe Message queues DSM
Roles y Responsabilidades
En un sistema distribuido los procesos interactan unos con otros para llevar adelante una tarea. Al hacer esto, los procesos asumen un rol, y estos roles son fundamentales para establecer la arquitectura general. Se presentan dos estilos arquitectnicos derivados de los roles de los procesos individuales:
Client-Server Peer-to-Peer (P2P)
ClientClient -Server
Es la arquitectura ms citada cuando se habla sobre SD. Histricamente es la ms importante y sigue siendo la ms empleada. Los procesos asumen el rol de cliente o servidor. Los procesos clientes interactan con procesos servidores solicitando el acceso a los recursos compartidos que ellos manejan
Cliente
Invocacin
Invocacin
Servidor
Resultado
Servidor
Resultado
Los procesos Cliente interactan con procesos servidores alojados en otras computadoras con el objeto de acceder a los datos o recursos. Los servidores a su vez pueden acceder a servicios de otros servidores como si fueran clientes Ejemplo: un Web Server es cliente de un File Serve
client
server
client
Server/client
server
client
Server/client
Server/client
server
PeerPeer -toto-Peer
En esta arquitectura todos los procesos involucrados en una tarea o actividad juegan roles similares, interactuando cooperativamente como pares sin ninguna distincin entre procesos clientes y servidores. Esta arquitectura presenta algunas ventajas como:
Es ms confiable porque no existe un punto central de falla ni un punto central de control A medida que se agregan participantes, la capacidad del sistema aumenta
Distributed white board users on several computers to view and interactively modify a picture between them.
Colocacin (Placement)
El placement es crucial para determinar las propiedades de un Sistema Distribuido. En general se lo asocia a la performance, pero tambin involucra aspectos tales como confiabilidad y seguridad. El placement debe ser determinado en base a un slido conocimiento de la aplicacin, y unas pocas directrices generales para obtener una solucin ptima. Estrategias de Placement:
Mapeo de Servicios en Mltiples Servidores Cacheo Cdigo Mvil Agentes Mviles
Server
Client Server
Services may be implemented as several server processes in separate host computers. Example: Cluster based Web servers and apps such as Google, parallel databases Oracle
Client
Web server
Web applets
a) client request results in the downloading of applet code Client Applet code b) client interacts with the applet Web server Web server
Client
Applet
Applets downloaded to clients give good interactive response Mobile codes such as Applets are potential security threat, so the browser gives applets limited access to local resources (e.g. NO access to local/user file system).
Application Process
Network computer: download OS and applications from the network and run on a desktop (solve up-gradation problem) at runtime. Thin clients: Windows-based UI on the user machine and application execution on a remote computer. E.g, X-11 system.