P. 1
Clase 2 - Modelos de Sistemas Distribuidos

Clase 2 - Modelos de Sistemas Distribuidos

|Views: 12|Likes:
Publicado porEnzo Burga

More info:

Published by: Enzo Burga on Aug 06, 2013
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

04/12/2014

pdf

text

original

Sistemas Distribuidos

Profesor Daniel Barrientos

Introducción
Los modelos utilizados para modelar sistemas distribuidos nos sirven como herramientas para describir sus propiedades y analizar alternativas de diseño. 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 construcción pre-validadas Cada tipo de modelo nos brinda una descripción abstracta, simplificada y consistente de los aspectos relevantes del diseño de un SD

Dificultades y Amenazas para los SD
Los sistemas desarrollados para el mundo real deberían ser diseñados con los siguientes objetivos en mente:
Cubrir la más amplia gama de posibles circunstancias
Modelos muy diversos de uso: Alta variación de carga de trabajo, la desconexión parcial de los componentes, o una mala conexión. Amplia gama de entornos de sistemas: Hardware heterogéneos, sistemas operativos, redes, y el rendimiento.

Hacer frente a las posibles dificultades y amenazas
Los problemas internos: No relojes sincronizados, actualizaciones conflictivas, fallos de hardware y software. Las amenazas externas: Los ataques a la integridad de datos, a la confidencialidad y a la disponibilidad de la información. Denegación de servicio.

Satisfacer las demandas actuales y posiblemente las futuras

Estos pueden ser computadoras individuales o agregadas Modelos Fundamentales .Tipos de Modelos Modelos Físicos Describe los componentes de hardware: computadoras y sus interconexiones de red Modelos Arquitectónicos Describe el sistema en base a las tareas de cómputo y de comunicación ejecutadas por sus elementos computacionales.Examinan aspectos individuales de los SD: Modelo de Interacción: estructura y secuenciamiento de las comunicaciones entre los elementos del sistema Modelo de Fallos: considera las maneras en que un sistema puede fallar y operar correctamente Modelo de Seguridad: analiza como el sistema puede protegerse de interferir con su correcta operación o con el robo de datos .

Modelos Físicos Un modelo físico es la representación de los elementos de hardware de un sistema distribuido que se abstrae de los detalles de las computadoras y de la tecnología de networking utilizada. Tenían entre 10 y 100 nodos interconectados a una LAN. Servicios mínimos: file servers. En base al modelo físico podemos identificar tres generaciones de SD Early Distributed Systems Aparecieron a fines de los ’70. AppleTalk.2 . LU 6. principios de los ‘80. print servers. Conectividad limitada a Internet. email y transferencia de archivos a través de Internet Alto nivel de homogeneidad y no necesariamente compatible con otras redes: IPX.

Print and other servers Local area network Desktop computers email server Web server email server File server print other servers the rest of the Internet router/firewall .

. etc. sistemas operativos.) Internet-scale Distributed Systems Son SD de gran escala que emergieron en los ‘90 en respuesta al dramático crecimiento de Internet Explotan la infraestructura de Internet para ser globales Tienen un gran número de nodos Alto nivel de heterogeneidad en arquitecturas de computadoras. Se utilizan servicios adicionales para proveer calidad de servicio end-to-end. lenguajes de programación. Pone énfasis en el uso de estándares abiertos y tecnologías de middleware. redes.Modelos Físicos (cont.

Ubiquitous computing mudó los nodos discretos a arquitecturas embebidas en objetos de uso cotidiano (lavarropas. Por ejemplo. por lo tanto. los nodos eran típicamente computadoras de escritorio y. Mobile computing permitió que los nodos (laptops y smartphones) puedan moverse de una ubicación a otra. discreto y autónomo o independientes. en particular. relativamente estático. las arquitecturas de cluster hicieron que los nodos autónoma cumplan con un rol dentro de un pool de nodos que en conjunto brindan un servicio dado . heladeras. Mayor heterogeneidad . cluster de bases de datos.Modelos Físicos (cont. automóviles. etc) Cloud computing y.) Contemporary Distributed Systems En los sistemas anteriores.

complementado con sistemas de mensajería para informar alertas. Integrado con sistemas de simulación y sistemas con datos históricos. planicies inundadas. . etc.) Ultra-Large-scale Distributed Systems Los modernos SD de ultra gran escala se conocen como arquitecturas de “Sistemas de Sistemas” (SdS). Captura de datos mediante sensores que monitorean nivel de los ríos.Modelos Físicos (cont. Todo esto. Un SdS puede ser definido como un sistema complejo que abarca una serie de subsistemas que son sistemas por si mismos y que colaboran para ejecutar una tarea en particular. a su vez. sistemas de gestión ambiental para predicción de inundaciones. pronóstico del tiempo. Por ejemplo. efecto de las mareas.

lenguajes y middleware Nuevas dimensiones. Ultra-Large Super Grande Mucha investigación . Nuevos tipos de arquitectura Apertura No era un prioridad Calidad de Servicio Mínimo Internet-scale Grande Importante. prácticamente configuraciones homogéneas Significativa en términos de plataforma.Generaciones de Sistemas Distribuidos Escala Early Pequeña Heterogeneidad Limitada. Muchos nuevos estándares Mucha investigación Prioridad significativa.

Las principales preocupaciones son que el sistema sea fiable. si es posible.Modelos Arquitectónicos La arquitectura de un sistema se refiere a su estructura en términos de sus componentes y la relación entre ellos Su objetivo es satisfacer la demanda actual y. adaptable y rentable (costo-efectivo) Vamos a abordar el tema en 3 etapas: Elementos de la arquitectura Patrones arquitectónicos compuestos Plataformas de Middleware . la demanda futura. administrable.

qué paradigma de comunicación utiliza? Qué roles y responsabilidades tienen dentro de la arquitectura en general? Como se distribuyen dentro de la infraestructura física? Cuál es su colocación? . es necesario responder las siguientes 4 preguntas Cuáles son las entidades comunicantes dentro de un SD? Cómo se comunican o.Elementos de la Arquitectura Para entender los elementos que constituyen un sistema distribuido. más especificamente.

En este caso. tales como redes de sensores. En la mayoría de los entornos de SD. los procesos son suplementados por threads. así que siendo estrictos. los threads son endpoints de las comunicaciones . las entidades comunicantes se denominan nodos.Entidades Comunicantes Perspectiva orientada al sistema Las entidades comunicantes son procesos que se comunican mediante algún paradigma de comunicación. Esto es cierto con dos salvedades: En entornos primitivos. los sistemas operativos no soportan el concepto de proceso.

) Perspectiva orientada al problema Las entidades comunicantes son abstracciones más orientadas al problema.Entidades Comunicantes (cont. como ser: Objetos : el cómputo resulta en la interacción de objetos que representan unidades naturales de descomposición de un dominio de problema dado. Componentes: evolución natural del enfoque OO. La diferencia radica en que los componentes no solo especifican su interfaz sino también su dependencia con otros componentes Servicios Web: proveen una infraestructura para mantener una forma de interoperabilidad más rica y estructurada entre clientes y servidores .

Paradigmas de Comunicación Los paradigmas de comunicación determinan cómo se comunican entre si las entidades. Vamos a considerar 3 tipos de paradigmas de comunicación IPC • Socket Programming • MPI Invocación Remota • RPC • RMI Comunicaciones Indirectas • • • • Comunicaciones en Grupo Sistemas de Publicación y Subscripción Cola de Mensajes DSM .

La IPC provee un mecanismo que permite a los procesos comunicarse y sincronizarse entre sí. o a través de las herramientas provistas por las rutinas de IPC. normalmente a través de un sistema de bajo nivel de paso de mensajes que ofrece la red subyacente. y soporte para comunicaciones multicast . Los procesos pueden comunicarse entre sí a través de compartir espacios de memoria.IPC • Socket Programming • MPI IPC La comunicación entre procesos (comúnmente IPC. Inter-Process Communication) es una función básica de los sistemas operativos. ya sean variables compartidas o buffers. acceso directo a la API ofrecida por los protocolos de Internet (socket programming) . Incluye primitivas para: pasaje de mensajes.

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 función y enviando éste de vuelta el resultado de dicha operación al cliente. Remote Procedure Calls (RPC) Permite a un programa de ordenador ejecutar código en otra máquina remota sin tener que preocuparse por las comunicaciones entre ambos. 1. .Invocación Remota • RPC • RMI Remote Invocation Representa el paradigma de comunicación más utilizado en los Sistemas Distribuidos.

Invocación Remota • RPC • RMI 2. A partir de ese momento. A través de RMI. Forma parte del entorno estándar de ejecución de Java y proporciona un mecanismo simple para la comunicación de servidores en aplicaciones distribuidas basadas exclusivamente en Java. un programa Java puede exportar un objeto. con lo que dicho objeto estará accesible a través de la red y el programa permanece a la espera de peticiones en un puerto TCP. . Remote Method Invocation (RMI) Es un mecanismo ofrecido por Java para invocar un método de manera remota. un cliente puede conectarse e invocar los métodos proporcionados por el objeto.

Las principales técnicas son: Comunicaciones en grupo Sistemas de Publicación y Subscripción Cola de Mensajes DSM (Memoria Compartida Distribuida) .Comunicaciones Indirectas Las comunicaciones indirectas se realizan a través 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 información (space uncoupling) Los emisores y los receptores no necesitan existir al mismo tiempo (time uncoupling).

Ej. Ej. Estrategias de balanceo de carga . Industria financiera Soporte para aplicaciones cooperativas. La comunicación en grupo es un pilar importante para los SD en áreas tales como: Diseminación confiable de información a muchos clientes.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. donde se requiere precisión y acceso actualizado a una amplia variedad de información. Ej. Multiuser games Soporte para monitoreo y administración de sistemas.

los consumidores interesados se subscriben a la misma y el productor periódicamente va publicanco información.Sistemas de Publicación y Subscripción En estos sistemas los productores de información la publican anunciando la disponibilidad de un cierto tipo de información. Para poder tener el comportamiento descrito. la arquitectura publicación-subscripción está formada por los componentes siguientes: Productor de información Consumidor de Información Mediador (Broker) Canal .

.

Los productores envían mensajes a una cola específica 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 perderán en caso de encontrarnos con una falla del sistema.Cola de Mensajes Las colas de mensajes brindan un protocolo de comunicación asincrónico entre procesos permitiendo el pasaje de mensajes entre diferentes sistemas de computación. Ejemplos de implementaciones comerciales: IBM's WebSphere MQ Oracle Advanced Queuing .

grabando a leyendo estructuras de datos como si estuvieran dentro de su espacio de direcciones locales La infraestructura subyacente debe garantizar la disponibilidad de una copia en tiempo y forma. y asegurar la sincronización y consistencia de los datos .Memoria Distribuida Compartida (DSM) Los sistemas con DSM proveer una abstracción para compartir datos entre procesos que no comparten una memoria física. Las aplicaciones pueden trabajar sobre la memoria compartida.

Entidades Comunicantes System.oriented Entities Nodes Procesos Problemoriented Entities Objets Components Paradigmas de Comunicación IPC Invocación Remota Comunicación Indirecta Comunicaciones en Grupo Publish-Subscribe Message queues DSM Message passing RPC Sockets Multicast RMI .

Roles y Responsabilidades En un sistema distribuido los procesos interactúan unos con otros para llevar adelante una tarea. Al hacer esto. y estos roles son fundamentales para establecer la arquitectura general. Se presentan dos estilos arquitectónicos derivados de los roles de los procesos individuales: Client-Server Peer-to-Peer (P2P) . los procesos asumen un rol.

ClientClient -Server Es la arquitectura más citada cuando se habla sobre SD. Los procesos asumen el rol de cliente o servidor. Los procesos clientes interactúan con procesos servidores solicitando el acceso a los recursos compartidos que ellos manejan . Históricamente es la más importante y sigue siendo la más empleada.

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 .Clientes invocando a Servidores Cliente Invocación Invocación Servidor Resultado Servidor Resultado Cliente Leyenda: Proceso: Computador: Los procesos Cliente interactúan con procesos servidores alojados en otras computadoras con el objeto de acceder a los datos o recursos.

Tipos de Arquitectura ClientClient-Server Two-tier model (classic) client server Three-tier (when the server. becomes a client) client Server/client server Multi-tier (cascade model) server client Server/client Server/client server .

Clientes and Servidores Interacción típica entre un cliente y un servidor .

Kaza.PeerPeer -toto-Peer En esta arquitectura todos los procesos involucrados en una tarea o actividad juegan roles similares. Esta arquitectura presenta algunas ventajas como: Es más confiable porque no existe un punto central de falla ni un punto central de control A medida que se agregan participantes. interactuando cooperativamente como pares sin ninguna distinción entre procesos clientes y servidores. BitTorrent etc. . la capacidad del sistema aumenta Ejemplos: Gnutella. Napster.

Peer Processes: Aplicación distribuida basada en procesos pares Peer 2 Peer 1 Application Sharable objects Peer 3 Application Application Peer 4 Application Peers 5 . .... N Distributed “white board” – users on several computers to view and interactively modify a picture between them.

El placement debe ser determinado en base a un sólido conocimiento de la aplicación. pero también involucra aspectos tales como confiabilidad y seguridad. Estrategias de Placement: Mapeo de Servicios en Múltiples Servidores Cacheo Código Móvil Agentes Móviles .Colocación (Placement) El placement es crucial para determinar las propiedades de un Sistema Distribuido. En general se lo asocia a la performance. y unas pocas directrices generales para obtener una solución óptima.

Example: Cluster based Web servers and apps such as Google.Servicio provisto por Múltiples Servidores Service Server Client Server Client Server Services may be implemented as several server processes in separate host computers. parallel databases Oracle .

Web Proxy Servers Client Proxy server Web server Client Web server Un cache es un almacenamiento de datos recientemente usados .

g.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. NO access to local/user file system). . so the browser gives applets limited access to local resources (e.

crawlers and web servers).g. . (e. Potential security threat to the resources in computers they visit.. usually on behalf of some other process – advantages: flexibility. Agents themselves can be vulnerable – they may not be able to complete task if they are refused access.Variants of Client Sever Model: Mobile Agents A running program (code and data) that travels from one computer to another in a network carrying out an autonomous task. The environment receiving agent should decide which of the local resource to allow. savings in communications cost – virtual markets. software maintain on the computers within an organisation.

Thin clients: Windows-based UI on the user machine and application execution on a remote computer. E.g. X-11 system.Thin clients and compute servers Network computer or PC Thin Client network Compute server Application Process Network computer: download OS and applications from the network and run on a desktop (solve up-gradation problem) at runtime. .

You're Reading a Free Preview

Descarga
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->