Grupo 1 Informe - Sistemas Distribuidos y objetivos de los SD PDF

Title Grupo 1 Informe - Sistemas Distribuidos y objetivos de los SD
Course Sistemas Distribuidos
Institution Universidad Tecnológica del Perú
Pages 18
File Size 389.8 KB
File Type PDF
Total Downloads 240
Total Views 345

Summary

Facultad de Ingeniería y ElectrónicaCarrera Profesional de Ingeniería de Sistemas e InformáticaPráctica Calificada NºCursoSistemas DistribuidosTemaTrabajo Monográfico Sistemas DistribuidosIntegrantes:GRUPO 1RAFAEL ROMAN, JeanellaLima – Perú2020ÍNDICE1. Sistemas Distribuidos.............................


Description

Facultad de Ingeniería y Electrónica Carrera Profesional de Ingeniería de Sistemas e Informática

Práctica Calificada Nº1 Curso Sistemas Distribuidos Tema Trabajo Monográfico Sistemas Distribuidos

Integrantes:

GRUPO 1 RAFAEL ROMAN, Jeanella

Lima – Perú 2020

ÍNDICE 1. Sistemas Distribuidos………………………………………………………........3 1.1. Mapa mental…………………………………………………………........3 1.1.1. Introducción……………………………………………………….......4 1.1.2. Definición de Sistemas Distribuidos……………………………......5 1.1.2.1. ¿Para qué sirve un Sistema Distribuido?......................6 1.1.2.2. Características………………………………………….....7 1.1.2.3. Base de datos distribuidas……………………………….12 1.1.3. Objetivos de Sistemas Distribuidos…………………………….......13 1.1.3.1. Cómo hacer los recursos accesibles……………….......13 1.1.3.2. Transparencia en la distribución…………………….......13 1.1.3.3. Grado de apertura…………………………………….......14 1.1.3.4. Escalabilidad…………………………………………........14 1.1.3.5. Trampas………………………………………………........15 1.1.4. Ventajas………………………………………………………….........16 1.1.5. Desventajas……………………………………………………….......16 1.1.6. Conclusiones...…………………………………………………..........17 1.1.7. Recomendaciones........……………………………………...…........17 Bibliografía...…………………………………………………………………….........18

Página |3

1. Sistemas Distribuidos 1.1. Mapa mental

Página |4

INTRODUCCIÓN 1.1.1. Introducción Estos días se habla mucho de los sistemas distribuidos, de la arquitectura punto a punto, de los sistemas blockchain, del blockstack y muchas otras cosas más. La presente investigación se refiere sobre los sistemas distribuidos, como empezar a aprender estos sistemas y entender cómo funciona. Antes de empezar debemos tener una idea de qué es sistemas distribuidos. Podríamos definirlo de la siguiente manera, como una colección de computadores independientes que aparentan ejecutarse como un único computador, es decir, múltiples computadores hacen la tarea o múltiples tareas que al final tienen un único objetivo, vamos a ver esto de una manera más sencilla en la presente investigación que lleva como título “Trabajo monográfico Sistemas Distribuidos” Esta investigación se centrará en la definición de los sistemas distribuidos, ¿para qué sirve?, las características esenciales, base de datos distribuidas y un resumen general de los temas desarrollados.

Página |5

SISTEMAS DISTRIBUIDOS 1.1.2. Definición de Sistemas Distribuidos Existen muchas definiciones de un sistema distribuido, sin embargo, la definición más aceptada es la Tanenbaum que dice: “Conjunto de computadores independientes e intercomunicados por una red y provistos de un software distribuido tal que el usuario lo percibe como si se tratara de un único computador” Podríamos definirlo de la siguiente manera, como un conjunto de computadores que se interconectan en red para colaborar entre sí y realizar una tarea conjunta, como si la realizase un único computador. Estos computadores son independientes entre sí de forma que los componentes hardware y software de cada uno de ellos no comparten un espacio de memoria común, un mismo reloj de ejecución, ni nada por el estilo y por ello deben coordinarse mediante el paso de mensajes. Suele existir una capa software que independiza las aplicaciones y sus usuarios de los sistemas operativos y el hardware adyacente que ejecuta cada parte de la tarea, tal y como se muestra en la figura 1. El estudio de esta capa denominada middleware ocupa gran parte del sistema distribuido.

Figura 1. Sistemas Distribuidos

Página |6

1.1.2.1.

¿Para qué sirve un Sistema Distribuido?

En un esquema cliente-servidor, se denomina cliente la máquina que solicita un determinado servicio y se denomina servidor la máquina que lo proporciona. El servicio puede ser la ejecución de un determinado algoritmo, el acceso a un determinado banco de información o el acceso a un dispositivo hardware. Por extensión, se puede aplicar el esquema cliente-servidor dentro de una misma máquina, donde el proceso servidor y el proceso cliente son dos procesos independientes que corren dentro de la instancia de sistema operativo. Es por tanto un elemento primordial para que haya un sistema distribuido, la presencia de un medio físico de comunicación entre ambas maquinas, y será la naturaleza de este medio la que marque en muchos casos la viabilidad del sistema.

Figura 2. cliente-servidor

Carvajal, T. [carvajaltutoriales]. (2014, septiembre 15). Sistema Distribuido [Archivo de video]. Recuperado de https://www.youtube.com/watch?v=F-AcnfdxQQg

Página |7

1.1.2.2.

Características

Un sistema distribuido tiene cuatro características esenciales, las cuales son:  Concurrencia Cuando existen varios procesos en una única maquina decimos que se están ejecutando concurrentemente. Si el ordenador está equipado con un único procesador central, la concurrencia tiene lugar entrelazando la ejecución de los distintos procesos. Si la computadora tiene N procesadores, entonces se pueden estar ejecutando estrictamente a la vez hasta N procesos. En los sistemas distribuidos hay muchas maquinas, cada una con uno o más procesadores centrales. Es decir, si hay M ordenadores en un sistema distribuido con un procesador central cada una entonces hasta M procesos estar ejecutándose en paralelo. En un sistema distribuido que está basado en el modelo de compartición de recursos, la posibilidad de ejecución paralela ocurre por dos razones: -

Muchos usuarios interactúan simultáneamente con programas de aplicación. Muchos procesos servidores se ejecutan concurrentemente, cada uno respondiendo a diferentes peticiones de los procesos clientes.

El caso (1) es menos conflictivo, ya que normalmente las aplicaciones de interacción se ejecutan aisladamente en la estación de trabajo del usuario y no entran en conflicto con las aplicaciones ejecutadas en las estaciones de trabajo de otros usuarios. El caso (2) surge debido a la existencia de uno o más procesos servidores para cada tipo de recurso. Estos procesos se ejecutan en distintas maquinas, de manera que se están ejecutando en paralelo diversos servidores, junto con diversos programas de aplicación. Las peticiones para acceder a los recursos de un servidor dado pueden ser encoladas en el servidor y ser procesadas secuencialmente o bien pueden ser procesadas varias concurrentemente por múltiples instancias del proceso gestor de recursos. Cuando (1 de octubre de 2008). Sistemas Distribuidos. [Blog]. Recuperado de http://sistemas-distribuidos-unerg.blogspot.com/2008/10/caractersticas-principalesde-los.html

Página |8

esto ocurre los procesos servidores deben sincronizar sus acciones para asegurarse de que no existen conflictos. La sincronización debe ser cuidadosamente planeada para asegurar que no se pierden los beneficios de la concurrencia.  Escalabilidad Los sistemas distribuidos operan de manera efectiva y eficiente a muchas escalas diferentes. La escala más pequeña consiste en dos estaciones de trabajo y un servidor de ficheros, mientras que un sistema distribuido construido alrededor de una red de área local simple podría contener varios cientos de estaciones de trabajo, varios servidores de ficheros, servidores de impresión y otros servidores de propósito específico. A menudo se conectan varias redes de área local para formar internetworks, y éstas podrían contener muchos miles de ordenadores que forman un único sistema distribuido, permitiendo que los recursos sean compartidos entre todos ellos. Tanto el software de sistema como el de aplicación no deberían cambiar cuando la escala del sistema se incrementa. La necesidad de escalabilidad no es solo un problema de prestaciones de red o de hardware, sino que está íntimamente ligada con todos los aspectos del diseño de los sistemas distribuidos. El diseño del sistema debe reconocer explícitamente la necesidad de escalabilidad o de lo contrario aparecerán serias limitaciones. La demanda de escalabilidad en los sistemas distribuidos ha conducido a una filosofía de diseño en que cualquier recurso simple -hardware o software- puede extenderse para proporcionar servicio a tantos usuarios como se quiera. Esto es, si la demanda de un recurso crece, debería ser posible extender el sistema para darle servicio, Por ejemplo, la frecuencia con la que se accede a los ficheros crece cuando se incrementa el número de usuarios y estaciones de trabajo en un sistema distribuido. Entonces, debe ser posible añadir ordenadores servidores para evitar el cuello de botella que se produciría si un solo servidor de ficheros tuviera que manejar todas las peticiones de acceso a los ficheros. En este caso el sistema deberá estar diseñado de manera que permita trabajar con ficheros replicados en distintos servidores, con las consideraciones de consistencias que ello conlleva.

(1 de octubre de 2008). Sistemas Distribuidos. [Blog]. Recuperado de http://sistemas-distribuidos-unerg.blogspot.com/2008/10/caractersticas-principalesde-los.html

Página |9

Cuando el tamaño y complejidad de las redes de ordenadores crece, es un objetivo primordial diseñar software de sistema distribuido que seguirá siendo eficiente y útil con esas nuevas configuraciones de la red. Resumiendo, el trabajo necesario para procesar una petición simple para acceder a un recurso compartido debería ser prácticamente independiente del tamaño de la red. Las técnicas necesarias para conseguir estos objetivos incluyen el uso de datos replicados, la técnica asociada de caching, y el uso de múltiples servidores para manejar ciertas tareas, aprovechando la concurrencia para permitir una mayor productividad.

 Tolerancia a los fallos Los sistemas informáticos a veces fallan. Cuando se producen fallos en el software o en el hardware, los programas podrían producir resultados incorrectos o podrían pararse antes de terminar la computación que estaban realizando. El diseño de sistemas tolerantes a fallos se basa en dos cuestiones, complementarias entre sí: Redundancia hardware (uso de componentes redundantes) y recuperación del software (diseño de programas que sean capaces de recuperarse de los fallos). En los sistemas distribuidos la redundancia puede plantearse en un grano más fino que el hardware, pueden replicarse los servidores individuales que son esenciales para la operación continuada de aplicaciones críticas. La recuperación del software tiene relación con el diseño de software que sea capaz de recuperar (roll-back) el estado de los datos permanentes antes de que se produjera el fallo. Los sistemas distribuidos también proveen un alto grado de disponibilidad en la vertiente de fallos hardware. La disponibilidad de un sistema es una medida de la proporción de tiempo que está disponible para su uso. Un fallo simple en una maquina multiusuario resulta en la no disponibilidad del sistema para todos los usuarios. Cuando uno de los componentes de un sistema distribuidos falla, solo se ve afectado el trabajo que estaba realizando el componente averiado. Un usuario podría desplazarse a otra estación de trabajo; un proceso servidor podría ejecutarse en otra máquina. (1 de octubre de 2008). Sistemas Distribuidos. [Blog]. Recuperado de http://sistemas-distribuidos-unerg.blogspot.com/2008/10/caractersticas-principalesde-los.html

P á g i n a | 10

 Transparencia La transparencia se define como la ocultación al usuario y al programador de aplicaciones de la separación de los componentes de un sistema distribuido, de manera que el sistema se percibe como un todo, en vez de una colección de componentes independientes. La transparencia ejerce una gran influencia en el diseño del software de sistema. El manual de referencia RM-ODP [ISO 1996a] identifica ocho formas de transparencia. Estas proveen un resumen útil de la motivación y metas de los sistemas distribuidos. Las transparencias definidas son: -

Transparencia de Acceso: Permite el acceso a los objetos de información remotos de la misma forma que a los objetos de información locales.

-

Transparencia de Localización: Permite el acceso a los objetos de información sin conocimiento de su localización.

-

Transparencia de Concurrencia: Permite que varios procesos operen concurrentemente utilizando objetos de información compartidos y de forma que no exista interferencia entre ellos.

-

Transparencia de Replicación: Permite utilizar múltiples instancias de los objetos información para incrementar la fiabilidad y prestaciones sin que los usuarios o los programas aplicación tengan por que conoces la existencia de réplicas.

-

de las de las

Transparencia de Fallos: Permite a los usuarios y programas de aplicación completar sus tareas a pesar de la ocurrencia de fallos en el hardware o en el software.

(1 de octubre de 2008). Sistemas Distribuidos. [Blog]. Recuperado de http://sistemas-distribuidos-unerg.blogspot.com/2008/10/caractersticas-principalesde-los.html

P á g i n a | 11

-

Transparencia de Migración: Permite el movimiento de objetos de información dentro de un sistema sin afectar a los usuarios o a los programas de aplicación.

-

Transparencia de Prestaciones: Permite que el sistema sea reconfigurado para mejorar las prestaciones mientras la carga varia.

-

Transparencia de Escalado: Permite la expansión del sistema y de las aplicaciones sin cambiar la estructura del sistema o los algoritmos de la aplicación.

Las dos más importantes son las transparencias de acceso y de localización; su presencia o ausencia afecta fuertemente a la utilización de los recursos distribuidos. A menudo se las denomina a ambas transparencias de red. La transparencia de red provee un grado similar de anonimato en los recursos al que se encuentra en los sistemas centralizados.

(1 de octubre de 2008). Sistemas Distribuidos. [Blog]. Recuperado de http://sistemas-distribuidos-unerg.blogspot.com/2008/10/caractersticas-principalesde-los.html

P á g i n a | 12

1.1.2.3.

Base de datos distribuidas

Una base de datos distribuida (BDD) es un conjunto de múltiples bases de datos lógicamente relacionadas las cuales se encuentran distribuidas en diferentes espacios lógicos y geográficos (pej. un servidor corriendo 2 máquinas virtuales) e interconectados por una red de comunicaciones. Dichas BDD tienen la capacidad de realizar procesamientos autónomos, estos permiten realizar operaciones locales o distribuidas. Un sistema distribuido de bases de datos se almacena en varias computadoras. Los principales factores que distinguen un SBDD de un sistema centralizado son los siguientes:  Hay múltiples computadores, llamados sitios o nodos.  Estos nodos deben de estar comunicados por medio de algún tipo de red de comunicaciones para transmitir datos y órdenes entre los sitios. Una base de datos distribuida aporta:  La información se almacenaría físicamente en diferentes sitios de la red, aunque lógicamente, de cara a un usuario final es una única base de datos. Cuando queramos acceder a la información, vamos a lanzar una consulta e internamente ya sabrá dónde está almacenado cada uno de esos datos.  Independencia respecto al sistema operativo ya que, si el servicio se puede instalar en sistemas operativos Linux o Windows, la base de datos es de forma distribuida y resulta completamente transparente el sistema operativo para el usuario final.  La información queda fragmentada.  Las réplicas aportan alta disponibilidad.

Tanenbaum,

A.,

Van,M.

paradigmas.México: Pearson.

(2008).

Sistemas

Distribuidos:

principios

y

P á g i n a | 13

1.1.3. Objetivos de Sistemas Distribuidos Se detallará de forma resumida los objetivos de un Sistema distribuido, ya que más adelante se describirá de forma completa cada objetivo.

1.1.3.1.

Como hacer los recursos accesibles

El principal objetivo de un sistema distribuido es facilitar a los usuarios (y a las aplicaciones) el acceso a los recursos remotos, y compartirlos de manera controlada y eficiente. Los recursos pueden significar casi cualquier cosa, pero ejemplos clásicos pueden ser:       

Impresoras Computadoras dispositivos de almacenamiento datos Archivos páginas web redes

1.1.3.2.

Transparencia en la distribución

La transparencia tiene que ver con la percepción que tiene el usuario sobre el sistema. Un sistema distribuido es transparente cuando el usuario ve el sistema como un todo y no como una colección de objetos.

Tipos de transparencia:  Acceso: Se encarga de ocultar las diferencias en la representación de los datos.  Ubicación: Se refiere al hecho de que los usuarios no pueden determinar en qué ubicación física se localiza el sistema.  Migración: Reubicación de los recursos sin afectar la manera en que podemos acceder a dichos recursos. Tanenbaum,

A.,

Van,M.

paradigmas.México: Pearson.

(2008).

Sistemas

Distribuidos:

principios

y

P á g i n a | 14

 Reubicación: Reubicar los recursos mientras accedemos a ellos sin que el usuario o la aplicación lo noten.  Replicación: Tiene que ver con el hecho de que ocultar existen distintas copias del recurso.  Concurrencia: Por ejemplo, dos usuarios independientes pueden tener almacenados cada uno sus archivos, o en una base de datos compartida pudieran acceder a las mismas tablas.  Falla: Significa lograr que el usuario no se percate de que un recurso deja de funcionar correctamente, y que después el sistema se recupere de la falla.

1.1.3.3.

Grado 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. Por ejemplo, en las redes de computadoras, las reglas estándar gobiernan formato, contenido, y significado de los mensajes enviados y recibidos. Tales reglas se formalizan mediante protocolos. Un sistema distribuido abierto debe ser también extensible. Por ejemplo, en un sistema extensible, debiera ser relativamente fácil agregar partes que se ejecutan en sistemas operativos diferentes, o incluso reemplazar todo un sistema de archivos.

1.1.3.4.

Escalabilidad

La escalabilidad de un sistema se puede medir de acuerdo con al menos tres dimensiones (Neuman, 1994):  Primero, un sistema puede ser escalable con respecto a su tamaño, lo cual significa que podemos agregarle fácilmente usuarios y recursos.  Segundo, un sistema escalable geográficamente es aquel en el cual usuarios y recursos pueden radicar muy lejos unos de los otros.  Tercero, un sistema puede ser escalable administrativamente; esto es, puede ser fácil de manejar incluso si involucra muchas organizaciones administrativas Tanenbaum,

A.,

Van,M.

paradigmas.México: Pearson.

(2008).

Sistemas

Distribuidos:

principios

y

P á g i n a | 15

diferentes. Desafortunadamente, con frecuencia un sistema escalable en una o más de estas dimensiones exhibe alguna pérdida de rendimiento al escalarlo. 1.1.3.5.

Trampas

Debemos tener claro ya que el desarrollo de sistemas distribuidos puede ser una tarea formidable. Peter Deutsch, en aquel entonces de Sun Microsystems, formuló estos errores como las siguientes falsas suposiciones que todos hacemos al desarrollar por primera vez un sistema distribuido:        

La red es confiable. La red es segura. La red es homogénea. La topología no cambia. La latencia es igual a cero. El ancho de banda es infinito. El costo de...


Similar Free PDFs