Monografias.com > Computación
Descargar Imprimir Comentar Ver trabajos relacionados

Computación distribuida




Enviado por Pablo Turmero



Partes: 1, 2


    Monografias.com

    En ingeniería es imprescindible conocer qué significa cada vocablo sin ambigüedad

    En el ámbito de la computación distribuida, no existe un vocabulario universal
    Esto es debido a:
    Hay múltiples actores involucrados (industria, universidades, individuos)
    Cada actor tiene sus propios intereses (quizás en conflicto)
    El estado del arte evoluciona a gran velocidad
    Esto produce que:
    Se fomente la confusión entre los diferentes actores involucrados
    Se dificulte la estandarización

    En esta asignatura vamos a mantener una serie de convenciones en relación a la nomenclatura y al vocabulario para poder “hablar con precisión”

    Para ello, definiremos un conjunto de términos de manera precisa

    Habrá que tener en cuenta que, en otros contextos, los términos aquí definidos pueden tener significados (sensiblemente) diferentes
    El vocabulario de la computación distribuida

    Monografias.com

    Definición de Modelo de Computación (Programación):
    Paradigma que proporciona y determina la visión que un programador tiene sobre la ejecución (y desarrollo) de un programa”

    Podemos establecer diferentes clasificaciones de los Modelos de Computación/Programación dependiendo del criterio que deseemos utilizar:

    Criterio basado en la modularidad del código:
    Modelo de programación orientado a objetos
    Modelos de programación procedimental

    Criterio basado en el tipo de sistema sobre el que ejecuta el programa:
    Modelo de computación monolítica
    Modelo de computación paralela
    Modelo de computación distribuida
    Modelo de computación cooperativa (computación P2P)
    Modelos de computación y programación

    Monografias.com

    Computación Monolítica
    Procesadores: El programa ejecuta en un solo procesador
    Ligazón: Ninguna
    Requiere: Se requiere el hardware de un ordenador
    Ejemplo: Ejecución de programas en un PC
    Cuestión: ¿Soporta la computación monolítica los sistemas multiusuario?

    Computación Paralela
    Procesadores: El programa ejecuta en un conjunto de procesadores que están fuertemente ligados
    Ligazón
    Los procesadores cooperan íntimamente y se sincronizan
    Los procesadores comparten memoria principal
    Los procesadores comparten otros recursos del ordenador (periféricos, etc.)
    Requiere:
    Se requiere el hardware de un ordenador
    Se requiere el hardware de varios procesadores (CPUs)
    Se requiere un mecanismo de interconexión y control de los procesadores
    Ejemplo: Ejecución de programas en un ordenador con núcleo dual.
    Cuestión: ¿Puede un mismo programa secuencial ejecutar en múltiples procesadores?
    Modelos de Computación

    Monografias.com

    Computación Distribuida
    Procesadores: El programa ejecuta en un conjunto de procesadores que están ligeramente ligados
    Ligazón:
    Los procesadores pueden intercambiar mensajes
    Los procesadores no comparten (directamente) memoria principal
    Los procesadores no comparten (directamente) sus recursos hardware
    Requiere: (Un sistema distribuido)
    El hardware de varios ordenadores
    Una red de ordenadores
    Hardware de interconexión
    Ejemplo: Ejecución de un programa en una red de área local

    Computación Cooperativa y Computación P2P (un tipo de Comput. Distribuida)
    Procesadores: El programa ejecuta en un conjunto dinámico y muy grande de procesadores que están débilmente ligados. Se asume que los recursos de procesador de los que el programa puede disponer están restringidos.
    Ligazón: Similar a la de la computación distribuida
    Requiere: Un sistema distribuido + una red de área extendida (Internet p.e.)
    Ejemplo: Ejecución de un programa en Internet (SETI@home)
    Modelos de Computación Cont.

    Monografias.com

    Definición de Computación Distribuida
    “Modelo de computación que se caracteriza por estar adaptado a la ejecución de programas en sistemas distribuidos”

    Definición de Sistema Distribuido
    “Sistema informático compuesto por un conjunto de nodos de procesamiento (ordenadores) que se encuentran ligados a través de una red que permite el intercambio de mensajes entre los mismos”

    La computación distribuida (los sistemas distribuidos) se ha convertido en un elemento esencial en la industria en las últimas décadas
    Redes de área local
    Internet
    Aplicaciones Cliente/Servidor

    ¿Por qué la computación distribuida es tan popular?
    Computación Distribuida

    Monografias.com

    Compartición de recursos
    Cualquier recurso disponible en la red puede ser accedido por otros nodos
    Ejemplos: Servidores de ficheros, Servidores de BD, Impresoras, etc.
    Ahorro de costes
    Los ordenadores son baratos, conectar ordenadores en red es barato ? Construir un sistema distribuido es barato
    Computación distribuida ? se pueden compartir los recursos más caros
    Ejemplos: Impresora a color, hardware específico, memoria, etc.
    Escalabilidad
    Con computación monolítica, los recursos disponibles están limitados a los presentes en un solo ordenador
    Con computación distribuida, los recursos disponibles se pueden escalar introduciendo nuevos nodos (ordenadores) en el sistema soporte
    Tolerancia a fallos
    Un recurso crítico puede ser replicado en varios nodos (distantes) de la red.
    Ejemplo: Copias de seguidad (Backups)
    Ventajas de la Comunicación
    No es posible intercambiar información entre ordenadores distantes sin utilizar un modelo de computación distribuida

    Ventajas de la Computación Distribuida

    Monografias.com

    Si hay tantas ventajas, ¿por qué no todas las aplicaciones son distribuidas?
    ?La computación distribuida también presenta serios inconvenientes

    Modelo de fallos más complejo y difícil de gestionar
    Computación monolítica
    Lo habitual es que todas las partes de un programa fallen de manera simultánea
    No existe el concepto de fallo de comunicación
    Cuando hay fallos, es posible recuperar el estado de cada parte del programa
    En computación distribuida
    Cada parte del programa falla de manera independiente
    Hay (frecuentemente) fallos en las comunicaciones. La red no es fiable
    Cuando hay fallos, no hay conocimiento global sobre el estado del programa. Habitualmente no es posible que unas partes del programa puedan tener información relativa al estado de otras
    Hay más elementos susceptibles de fallo: “un sistema distribuido es aquel en el que el fallo de un ordenador que, ni siquiera sabes que existe, puede dejar tu propio ordenador inutilizable” – Leslie Lamport.

    Inconvenientes de la Computación Distribuida

    Monografias.com

    Mayor vulnerabilidad frente a ataques intencionados (aspectos de seguridad)

    Computación monolítica
    Es muy difícil manipular la información que se intercambia entre las distintas partes de un programa
    Es muy difícil suplantar partes de un programa
    Existe un único administrador conocido y “fiable”
    La administración está centralizada
    Los problemas siempre “vienen de dentro del sistema” (p.e. virus)
    En computación distribuida
    La seguridad de la comunicación no está, en principio, garantizada
    La identidad de las partes no está, en principio, validada
    Puede haber diferentes administradores con “fiabilidad” desconocida
    La administración es descentralizada
    En sistemas abiertos (p.e. Internet), se fomenta el que cualquiera pueda formar parte del sistema distribuido
    Los problemas pueden venir de fuera (p.e. gusanos) o de dentro del sistema (p.e. virus)

    Inconvenientes de la Computación Distribuida Cont.

    Monografias.com

    Mayor complejidad de desarrollo

    Computación monolítica
    Hay un solo hardware en el que se ejecuta la aplicación
    El modelo de fallos es sencillo de gestionar
    Los problemas de seguridad son mínimos
    Hay información global sobre el estado de las distintas partes del programa
    La comunicación entre los miembros es potente y flexible
    En computación distribuida
    Puede haber múltiples plataformas hardware en las que el programa ejecuta
    El modelo de fallos es complejo y difícil de gestionar
    Los problemas de seguridad son abundantes y con soluciones complejas
    No hay información global sobre el estado de las distintas partes del programa
    La comunicación está limitada (en ancho de banda, en latencia, etc.)
    Diferentes sistemas utilizan diferentes formatos de representación de datos

    Inconvenientes de la Computación Distribuida Cont.

    Monografias.com

    … by Peter Deutsch, James Gosling

    Las Falacias de la Computación Distribuida son un conjunto de suposiciones erróneas que suelen asumir los programadores inexpertos en desarrollo de software distribuido

    “All prove to be false in the long run and all cause big trouble and painful learning experiences” – Peter Deutsch

    La red es fiable
    La latencia es cero
    El ancho de banda es infinito
    La red es segura
    La topología no cambia
    Hay un administrador
    El coste de transporte es cero
    La red es homogénea

    Las Falacias de la Computación Distribuida

    Partes: 1, 2

    Página siguiente 

    Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

    Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

    Categorias
    Newsletter