Sistemas Distribuidos

Introducción De Sistemas Distribuidos • Un sistema distribuido consiste de un gran número de CPUs conectados por medio

Views 192 Downloads 14 File size 189KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Introducción De Sistemas Distribuidos •

Un sistema distribuido consiste de un gran número de CPUs conectados por medio de una red.



Un sistema distribuido se encarga del procesamiento cooperativo de solicitudes mediante una colección de computadoras independientes que aparecen ante los usuarios del sistema como una única computadora.



Un sistema distribuido es una colección de computadoras independientes que dan al usuario la impresión de constituir un único sistema coherente.



Sistemas cuyos componentes hardware y software, que están en ordenadores conectados en red, se comunican y coordinan sus acciones mediante el paso de mensajes, para el logro de un objetivo. Se establece la comunicación mediante un protocolo prefijado por un esquema cliente-servidor.



Un sistema de computación distribuido consta de múltiples procesadores autónomos que no comparten memoria principal, sino que cooperan a través de una red de comunicaciones que los interconecta.



Colección de elementos de cómputo autónomo que se encuentran físicamente separados y no comparten una memoria común, se comunican entre sí a través del intercambio de mensajes utilizando un medio de comunicación.

Con el objeto de dar soporte a computadoras y redes heterogéneas mientras se ofrece la vista de un sistema único, los sistemas distribuidos se organizan a menudo en términos de una capa de software, esto es, vienen colocados de manera lógica entre una capa de alto nivel que consta de usuarios y aplicaciones, y una capa subyacente constituida por sistemas operativos y recursos básicos de comunicación Objetivos Un sistema distribuido: • Debe hacer que los recursos sean fácilmente accesibles • Debe ocultar de manera razonable el hecho de que los recursos están distribuidos por toda la red • Debe ser abierto • Debe ser escalable Cómo hacer accesibles los recursos El principal objetivo de un sistema distribuido es facilitar a los usuarios (y a las aplicaciones) el acceso a los recursos remotos (impresoras, computadoras, dispositivos de almacenamiento, datos, archivos, páginas web, redes, etc.) y compartirlos de manera controlada y eficiente Beneficios: Facilita la colaboración y el intercambio de información Desventajas: Mientras la conectividad y el intercambio aumentan, la seguridad se vuelve cada vez más importante: • Claves y otra información sensible se envían como texto sin codificar (es decir, sin encriptar) a través de la red •

Rastrear comunicaciones para construir un perfil de preferencias para un usuario específico viola de manera explícita la privacidad, especialmente cuando se hace sin notificarle al usuario



Comunicación no deseada, tal como el correo basura, con frecuencia llamado spam

Trasparencia en la distribución Un objetivo importante de un sistema distribuido es ocultar el hecho de que sus procesos y recursos están físicamente distribuidos a través de múltiples computadoras

Grados de apertura Un sistema distribuido abierto es un sistema que ofrece servicios de acuerdo con las reglas estándar que describen la sintaxis y la semántica de dichos servicios. •

En los sistemas distribuidos, los servicios se especifican a través de interfaces, las cuales a menudo se definen como lenguaje de definición de interfaz (IDL)



Las definiciones de las interfaces deben ser completas y neutrales para lograr la interoperabilidad y portabilidad o La interoperabilidad define la extensión mediante la cual dos implementaciones de sistemas o componentes de fabricantes distintos pueden coexistir y trabajar juntos si únicamente se apoyan en sus servicios mutuos tal como se especifica mediante un estándar común. o La portabilidad define la extensión mediante la cual una aplicación desarrollada para un sistema distribuido A se pueda ejecutar, sin modificación, en un sistema distribuido B que comparte la misma interfaz que A. o Un sistema distribuido abierto debe ser también extensible, en un sistema extensible, debiera ser relativamente fácil agregar nuevos componentes o reemplazar los o existentes sin afectar a los existentes, dicha flexibilidad es más fácil de decir que de alcanzar

Escalabilidad La escalabilidad de un sistema se puede medir de acuerdo con al menos tres dimensiones (Neuman, 1994). 1. Un sistema puede ser escalable con respecto a su tamaño, lo cual significa que podemos agregarle fácilmente usuarios y recursos. 2. Un sistema escalable geográficamente es aquel en el cual usuarios y recursos pueden radicar muy lejos unos de los otros. 3. Un sistema puede ser escalable administrativamente; esto es, puede ser fácil de manejar incluso si involucra muchas organizaciones administrativas diferentes. Desafortunadamente, con frecuencia un sistema escalable en una o más de estas dimensiones exhibe alguna pérdida de rendimiento al escalarlo

Problemas de escalabilidad •

Escalabilidad relativa al tamaño: servicios, datos, y algoritmos centralizados



Escalabilidad geográfica: comunicación síncrona, comunicación inherentemente no fiable, soluciones centralizadas



Escalar un sistema a través de múltiples dominios administrativamente independientes

Técnicas de escalamiento • Ocultar las latencias de: o Comunicación: intentar evitar lo más posible la espera por respuestas de peticiones remotas (y potencialmente distantes) de servicios: ▪ comunicación asíncrona ▪ uso de hilos ▪ reducir el volumen general de la comunicación o Distribución: significa tomar un componente, dividirlo en partes más pequeñas, y en consecuencia dispersar dichas partes a lo largo del sistema • Replicación: no solamente incrementa la disponibilidad, sino que además ayuda a balancear la carga entre los componentes para obtener un mejor rendimiento. Ej. Uso de caché, el caché y la replicación provocan problemas de consistencia (incoherencia en la información). Trampas o La red es confiable. o La red es segura. o La red es homogénea. o La topología no cambia. o La latencia es igual a cero. o El ancho de banda es infinito. o El costo de transporte es igual a cero. o Existe un administrador.

Tipos de Sistemas Distribuidos Sistema Distribuidos de Computo •

Utilizada para realizar tareas de cómputo de alto rendimiento.



Sistemas de cómputo en cluster: la computación en cluster se utiliza para la programación en paralelo donde un solo programa (de cálculo intensivo) corre paralelamente en múltiples máquinas. Son homogéneas Sistemas de cómputo en grid: tienen un alto grado de heterogeneidad. Una cuestión clave en un sistema de cómputo en grid es reunir los recursos de diferentes organizaciones para permitir la colaboración de un grupo de personas o instituciones. Tal colaboración se realiza en la forma de una organización virtual





La mayor parte del software para elaborar un sistema de cómputo en grid evoluciona alrededor del otorgamiento de privilegios a los recursos desde diferentes dominios administrativos. Con frecuencia la atención está puesta en asuntos de arquitectura: o La capa más baja, de fabricación, proporciona interfaces para recursos locales ubicados en un sitio específico. Por lo general, proporcionan funciones para consultar el estado y las capacidades de un recurso, junto con funciones para la administración real de un recurso

o

La capa de conectividad consiste en protocolos de comunicación para dar soporte a las transacciones del grid que abarcan el uso de múltiples recursos. Además, contiene protocolos de seguridad para autentificar a usuarios y recursos

o

La capa de recursos es responsable de la administración de un solo recurso. Utiliza las funciones proporcionadas por la capa de conectividad y llama de manera directa a las interfaces puestas a disposición mediante la capa de fabricación

o

La capa colectiva se encarga de manipular el acceso a múltiples recursos y, por lo general, consta de servicios para descubrir recursos, ubicación y calendarización de tareas dentro de múltiples recursos, replicación de datos. La capa colectiva pudiera consistir en muchos protocolos diferentes para muchos propósitos diferentes

o

La capa de aplicaciones consta de aplicaciones que operan dentro de una organización virtual y hacen uso del ambiente de cómputo en grid.

Sistema Distribuidos de Información Esta clase de sistemas distribuidos se encuentran en organizaciones que fueron confrontadas con aplicaciones de red saludables • Programas remotos, llamados clientes •

Peticiones, posiblemente para distintos servidores, dentro de una sola petición más grande y ejecutarla como una transacción distribuida



Esto ha derivado en una gran industria que se concentra en la integración de aplicaciones empresariales

➢ Sistemas de procesamiento de transacciones •

BEGIN_TRANSACTION y END_TRANSACTION se utilizan para delimitar el alcance de una transacción. Las operaciones entre estas primitivas forman el cuerpo de la transacción



La característica clásica de una transacción es que, o se ejecutan todas sus operaciones, o no se ejecuta ninguna operación. Las operaciones pueden ser llamadas del sistema, procedimientos de biblioteca, o instrucciones de un lenguaje encerradas entre paréntesis, según la implementación

De manera más específica, las transacciones son: 1. Atómicas: para el mundo exterior, la transacción es indivisible. 2. Consistentes: la transacción no viola sistemas invariantes. 3. Aisladas: las transacciones concurrentes no interfieren entre sí. 4. Durables: una vez que se confirma una transacción, los cambios son permanentes ➢ Integración de aplicaciones empresariales La idea principal fue que aplicaciones existentes pudieran intercambiar información de manera directa Existen diversos tipos de comunicación middleware ➢ Llamadas a procedimientos remotos (RPC) ➢ Invocaciones a métodos remotos (RMI) ➢ Middleware orientado a mensajes, o MOM ➢ Sistemas de publicación-suscripción

Sistema Distribuidos de Embebidos o Sistemas Distribuidos masivos Con frecuencia los dispositivos se caracterizan por ser pequeños, de baterías, portátiles, y tienen sólo una conexión inalámbrica, aunque no todas estas características son aplicables a todos los dispositivos. • •

Una característica importante es su carencia general de control administrativo humano Sistemas caseros



Sistemas electrónicos para el cuidado de la salud



Redes de monitoreo