Diferencia entre revisiones de «Computación distribuida»

(Etiquetas: nuestro-nuestra, revisar proyecto)
(Términos en una red distribuida)
(Etiquetas: nuestro-nuestra, revisar proyecto)
Línea 46: Línea 46:
 
*Los nodos de control: Para saber lo que es esto, diremos que un nodo es cualquier dispositivo conectado a una red, que puede transmitir, recibir y enrutar datos. Los nodos de control dependen en lenguajes XML, como por ejemplo WSDL. La información en estos lenguajes le dicen al nodo de control como manejar los datos y las aplicaciones.
 
*Los nodos de control: Para saber lo que es esto, diremos que un nodo es cualquier dispositivo conectado a una red, que puede transmitir, recibir y enrutar datos. Los nodos de control dependen en lenguajes XML, como por ejemplo WSDL. La información en estos lenguajes le dicen al nodo de control como manejar los datos y las aplicaciones.
 
*Los HUBs: Un punto dentro de una red donde varios dispositivos se conectan entre si.
 
*Los HUBs: Un punto dentro de una red donde varios dispositivos se conectan entre si.
IDE Lo podemos llamar un entorno de desarrollo integrado. Se trata de las herramientas y funciones que los programadores informáticos necesitan para crear las aplicaciones para una plataforma.
+
*IDE: Lo podemos llamar un entorno de desarrollo integrado. Se trata de las herramientas y funciones que los programadores informáticos necesitan para crear las aplicaciones para una plataforma.
 
*Interoperabilidad: Se refiera a la habilidad de software para poder operar en entornos completamente diferentes. Por ejemplo, una red de ordenadores puede incluir ordenadores Macintosh y PCs. Sin la interoperabilidad de software, estos ordenadores no podrían trabajar juntos porque son sistemas operativos y arquitecturas distintas.
 
*Interoperabilidad: Se refiera a la habilidad de software para poder operar en entornos completamente diferentes. Por ejemplo, una red de ordenadores puede incluir ordenadores Macintosh y PCs. Sin la interoperabilidad de software, estos ordenadores no podrían trabajar juntos porque son sistemas operativos y arquitecturas distintas.
 
*Estándares abiertos: Es una técnica para crear estándares disponibles para su publicación. De forma diferente a los estándares propietarios, los cuales pueden pertenecer exclusivamente a una sola entidad, cualquiera puede adoptar y usar un estándar abierto.
 
*Estándares abiertos: Es una técnica para crear estándares disponibles para su publicación. De forma diferente a los estándares propietarios, los cuales pueden pertenecer exclusivamente a una sola entidad, cualquiera puede adoptar y usar un estándar abierto.

Revisión del 14:48 5 jul 2019

Computación distribuida
Información sobre la plantilla
Comp dist.jpg
Concepto:Modelo de computación en paralelo donde interactuan una colección de computadoras que pueden o no estar ubicadas en distintos lugares y pertenecientes a distintos dominios de administración sobre una red distribuida de computadoras.

Computación distribuida. Modelo de computación en paralelo donde intervienen una colección de computadoras que pueden o no estar situadas en distintos lugares y pertenecientes a distintos dominios de administración sobre una red distribuida.

Estas utilizan estándares abiertos para llevar a cabo una tarea u objetivo común. Se caracteriza por su heterogeneidad o sea cada computadora posee sus componentes de software y hardware, los cuales el usuario percibe como un solo sistema.

Para el usuario todo es transparente, accede a los demás recursos de la misma manera que accede al suyo propio. Esta colección de computadoras básicamente lo que hace es dividirse el trabajo a realizar en pequeñas tareas individuales, reciben los datos necesarios para esa tarea, la hacen y devuelven los datos para unirlos en el resultado final.

Historia

La computación distribuida no es algo nuevo. Con esta tecnología, diferentes ordenadores dentro de una red comparten uno o más recursos. En uno de estos sistemas considerado ideal, todos los recursos son compartidos, convirtiendo una red de ordenadores en un potente superordenador.

Con el interfaz adecuado, acceder a uno de estos sistemas no es muy diferente de que acceder a los recursos de una máquina local. Todo ordenador autorizado tendrá acceso a una potencia de procesamiento enorme, y una gran capacidad de almacenamiento.

En la actualidad la informática contribuye en gran medida a la solución de problemas en diferentes ámbitos y disciplinas, volviéndose una fuente de recursos imprescindible. La creciente necesidad de almacenamiento y procesamiento de datos que se requiere en ambiciosos proyectos de investigación científica, así como simulaciones a gran escala, toma de decisiones a partir de grandes volúmenes de información y cientos de casos que no encuentran una solución, es claramente un problema a tener en cuenta.

Como solución a estos problemas computacionales, primeramente se plantean los Clúster, pero aún así, en la actualidad la relación costo-rendimiento hace que su gran demanda tanto de computación como de espacio y gestión de almacenamiento requerido por un gran número de aplicaciones encargadas de gestionar grandes cantidades de datos de forma eficiente y sencilla, exija el uso de nuevas tecnologías como es el caso de la Computación Grid.

Estructura

Estos sistemas trabajan con el principio de los recursos combinados. Un sistema de computación distribuida usa el mismo concepto. Se comparte toda la carga a través de múltiples ordenadores para completar tareas de forma más eficiente y rápida. Antes de continuar recordemos cuales son los recursos de un ordenador:

  • La unidad de procesador central (CPU): Realiza operaciones matemáticas y direcciona los datos a diferentes localizaciones de memoria. Puede haber más de una CPU en un equipo.
  • Memoria: En general, es un tipo de almacenamiento electrónico temporal. Mantiene datos relevantes a mano para el microprocesador. Sin la memoria, el microprocesador tendría que buscar y recuperar datos de un dispositivo de almacenamiento más permanente, como el disco duro.
  • Almacenamiento: En términos de computación distribuida, se refiere a los dispositivos de almacenamiento permanentes, como son los discos duros o bases de datos.

Normalmente, un ordenador solo puede operar dentro de los límites de sus propios recursos. Hay un límite máximo para que pueda completar una operación o cuanta información puede almacenar. La mayoría de los ordenadores son actualizables, lo cual significa que se puede añadir más potencia y capacidad a un solo equipo, pero eso sigue siendo un aumento incremental de rendimiento.

Los sistemas de computación distribuida enlazan los recursos de red todos juntos, de una forma tal, que permite a un solo ordenador heredar la potencia del resto de ordenadores en el sistema. Para un solo usuario, esto le supone un gran avance en cualquier trabajo que esté haciendo, sea del tipo que sea.

Modelos

En el contexto de Computación Distribuida se pueden distinguir los siguientes paradigmas:

  • Grid Computing: Este paradigma propone el acceso de recursos deslocalizados de diferentes tipo: cómputo, almacenamiento, instrumentos, etc.

El mismo se basa en la conformación de Organización Virtuales que comparten recursos. El nombre proviene de una analogía con la Red de Energía Eléctrica (Power Grid) ya que esta tecnología plantea el acceso a recursos computacionales en forma similar a la energía obtenida enchufando un equipo a la red.

  • High Performance Computing (HPC): En este paradigma se prima la ejecución lo más rápido posible de las tareas. Conceptos tales como paralelización y multiproceso entran dentro de este ámbito, y su aplicación directa es hacer que cálculos que pueden durar semanas en un solo equipo se repartan entre varios, dividiendo el trabajo a realizar.
  • High Throughput Computing (HTC): En este paradigma se prima la ejecución de la mayor cantidad posible de tareas. Conceptos como gestión de colas y de recursos son parte de este ámbito, y su aplicación directa pasa por la realización de la mayor cantidad de trabajos a lo largo del tiempo.

La Tecnología Grid Computing incluye como casos particulares a la Computación de Alto Rendimiento (HPC) y a la de Alta Disponibilidad (HTC). Mientras el primer paradigma es bastante conocido en nuestro país existen menos antecedentes para el caso de HTC. El paradigma de HTC puede utilizarse con facilidad cuando se tiene una multitud de cálculos de tamaño mediano / pequeño, y se quiere agilizar la gestión de todos ellos. [1]

Términos en una red distribuida

  • Clúster: Es un conjunto de computadoras interconectadas con dispositivos de alta velocidad que actúan en conjunto usando el poder de cómputo de varios CPU en combinación para resolver ciertos problemas.

Aparecen ante clientes y aplicaciones como un solo sistema. Aunque los Clusters no son tan flexibles en cuanto a la heterogeneidad de hardware y sistemas operativos sobre los cuales se implementan.

  • XML: Es el lenguaje de marcada extensible, y se trata de un lenguaje de ordenador que describe otros datos y que es leíble por los computadores.
  • Los nodos de control: Para saber lo que es esto, diremos que un nodo es cualquier dispositivo conectado a una red, que puede transmitir, recibir y enrutar datos. Los nodos de control dependen en lenguajes XML, como por ejemplo WSDL. La información en estos lenguajes le dicen al nodo de control como manejar los datos y las aplicaciones.
  • Los HUBs: Un punto dentro de una red donde varios dispositivos se conectan entre si.
  • IDE: Lo podemos llamar un entorno de desarrollo integrado. Se trata de las herramientas y funciones que los programadores informáticos necesitan para crear las aplicaciones para una plataforma.
  • Interoperabilidad: Se refiera a la habilidad de software para poder operar en entornos completamente diferentes. Por ejemplo, una red de ordenadores puede incluir ordenadores Macintosh y PCs. Sin la interoperabilidad de software, estos ordenadores no podrían trabajar juntos porque son sistemas operativos y arquitecturas distintas.
  • Estándares abiertos: Es una técnica para crear estándares disponibles para su publicación. De forma diferente a los estándares propietarios, los cuales pueden pertenecer exclusivamente a una sola entidad, cualquiera puede adoptar y usar un estándar abierto.

Las aplicaciones basadas en esta técnica, son más fáciles de integrar que los que están construidos sobre los propietarios.

  • Procesamiento paralelo: Es usar muchas CPUs para solucionar un solo problema de computación. Esto está estrechamente relacionado con los recursos compartidos, donde hereda los recursos de una red para realizar una tarea.
  • Plataforma: Es una fundación donde los desarrolladores pueden crear aplicaciones. Una plataforma puede ser un sistema operativo, una arquitectura de ordenadores, un lenguaje de programación o incluso un sitio Web.
  • Una granja de servidores: Se trata de un cluster de servidores usados para realizar tareas, que suelen ser demasiado complejas para que lo haga un solo servidor.
  • Virtualización de servidores: Es una técnica donde una aplicación de software divide un único servidor físico, en múltiples servidores para una determinada plataforma, normalmente conocidos como servidores virtuales. Cada servidor virtual puede funcionar con su sistema operativo de forma independiente de otros servidores virtuales. Dicho de otra manera, una máquina puede estar funcionando con Linux, mientras que otra en el grupo puede estar corriendo con Windows. La computación distribuida necesita muchos servidores para gestionar varias tareas, y los servidores virtuales ayudan a recortar mucho los costes de hardware.
  • El servicio: En redes distribuidas, un servicio es cualquier sistema de software que permite a ordenadores interactuar entre si en una red.
  • SOAP: Lo podemos traducir como protocolo de acceso de objetos simple, y es un conjunto de normas para intercambiar mensajes escritos en XML por una red. El responsable de este protocolo es Microsoft.

Funcionamiento

  1. La posibilidad de compartir recursos: poder utilizar recursos remotos que nos permitan realizar tareas que no podríamos abordar en nuestra máquina o centro de trabajo.
  2. La seguridad - acceso seguro: se centra en los siguientes aspectos:
  3. Política de Accesos: Se deben definir cuidadosamente qué es lo que van a compartir, a quién se permite el acceso y bajo qué condiciones.
  4. Autenticación: establece la identidad de un usuario o de un recurso concreto.
  5. Autorización: determina si una operación es consistente con las relaciones que se han definido previamente.
  6. El uso eficiente de los recursos: no importa la cantidad de recursos de los que uno disponga; siempre habrá usuarios haciendo cola para utilizarlos. Se necesitan mecanismos para repartir el trabajo de forma automática y eficiente entre una gran cantidad de recursos, reduciendo las colas de espera.
  7. Redes de comunicaciones fiables que eliminen las distancias: la existencia de conexiones de alta velocidad es lo que hace posible un Grid a escala mundial. Hace diez años hubiese sido ingenuo tratar de enviar grandes cantidades de datos a través del mundo para que se pudiesen procesar más rápido en otros ordenadores. El tiempo que se tardaba en transferirlos anularía el beneficio de un procesamiento más rápido.
  8. Estándares abiertos: las aplicaciones que se ejecuten en un Grid deben funcionar en cualquier otro. Debido a que la naturaleza del Grid es compartir recursos, es comprensible que la existencia de estándares abiertos redunde en beneficio de todos los agentes participantes.

Organizaciones Virtuales

Entrando en lo que seria la arquitectura de un sistema grid se pueden destacar a las Organizaciones virtuales.

Cuando se habla de compartir no se trata de un simple intercambio de ficheros, sino de ofrecer acceso a computadoras, software, datos y otros recursos de forma directa, como requieren los modelos para la solución cooperativa de problemas y de negociación de recursos que aparecen en la industria, la ciencia y la ingeniería.

Esta forma de hacer disponibles los recursos debe ser por necesidad rigurosamente controlada, de forma que los proveedores y los consumidores queden claramente identificados, además de establecer cuidadosamente qué recursos se comparten, quién están autorizados a compartir y las condiciones bajo las cuales se realiza el proceso.

La naturaleza externa de los recursos compartidos en el entorno Grid/CPU, capacidad de almacenamiento, datos, software etc. o su disponibilidad más allá del dominio administrativo local conducen a la creación de un nuevo dominio de administración llamado Organización Virtual que implementa un nuevo conjunto de políticas, usualmente formado por políticas locales en adición a políticas externas de administración sobre los recursos del sistema.

Los usuarios pueden agruparse dinámicamente en estas VOs definiendo cada una sus propios requerimientos y políticas de acceso y empleo de los recursos.

Ventajas de Grid

Con Grid vienen aparejadas una serie de ventajas que otros sistemas no eran capaces de ofrecer, seguridad, confiabilidad, escalabilidad y coordinación.

  • Seguridad

Todo Grid debe seguir una serie de protocolos para garantizar la seguridad del sistema. Se pone en uso el concepto: Organizaciones Virtuales sobre el cual se basa las políticas de acceso a los recursos. El concepto de Grid se encuentra estrechamente ligado al de organización virtual.

  • Confiabilidad

Las organizaciones que participan en un Grid son confiables, dejando por sentado su legitimidad.

  • Escalabilidad

Grid es capaz de agregar más servicios, aumentando sus capacidades. Esto se debe a que posee una naturaleza colaborativa y coordinada en donde los mismos miembros pueden definir sus recursos y los tiempos que estos se encontraran aprovechables para Grid. De esta forma los servicios prestados pueden estar o no disponibles en un momento determinado y Grid estará preparado para ello.

  • Coordinación

En Grid existe un esfuerzo coordinado, donde siempre todos los miembros aportan y a su vez usan los recursos disponibles.

Ventajas

Con respecto a Sistemas Centralizados: Una de las ventajas de los sistemas distribuidos es la economía, pues es mucho más barato, añadir servidores y clientes cuando se requiere aumentar la potencia de procesamiento.

El trabajo en conjunto. Por ejemplo: en una fábrica de ensamblado, los robots tienen sus CPUs diferentes y realizan acciones en conjunto, dirigidos por un sistema distribuido.

Tienen una mayor confiabilidad. Al estar distribuida la carga de trabajo en muchas máquinas la falla de una de ellas no afecta a las demás, el sistema sobrevive como un todo.

Capacidad de crecimiento incremental. Se puede añadir procesadores al sistema incrementando su potencia en forma gradual según sus necesidades.

Con respecto a PCs Independientes: Se pueden compartir recursos, como programas y periféricos, muy costosos. Ejemplo: Impresora Láser, dispositivos de almacenamiento masivo, etc.

Al compartir recursos, satisfacen las necesidades de muchos usuarios a la vez. Ejemplo: Sistemas de reservas de aerolíneas.

Se logra una mejor comunicación entre las personas. Ejemplo: el correo electrónico. Tienen mayor flexibilidad, la carga de trabajo se puede distribuir entre diferentes ordenadores.

Desventajas

El principal problema es el software, es el diseño, implantación y uso del software distribuido, pues presenta numerosos inconvenientes. Los principales interrogantes son los siguientes:

Otro problema tiene que ver con las redes de comunicación. Por ejemplo: -Perdida de mensajes, saturación en el tráfico, etc. Un problema que puede surgir al compartir datos es la seguridad de los mismos.

En general se considera que las ventajas superan a las desventajas, si estas últimas se administran seriamente.

Aplicaciones

Hay muchas áreas de aplicación donde el poder de cálculo de una computadora simple es insuficiente para obtener los resultados deseados. Las computadoras paralelas y distribuidas pueden producir resultados más rápidos.[2]

  • Sistemas Comerciales.Inicialmente fueron construidos con hardware dedicado y entornos centralizados, son, por sus características de distribución geográfica y necesidad de acceso a sistemas distintos, ideales para implementarse en sistemas distribuidos. Requieren ciertas características de fiabilidad, seguridad y protección. Algunos ejemplos son:
  • Sistemas de reservas de líneas aéreas.
  • Aplicaciones bancarias.
  • Cajas y gestión de grandes almacenes.
  • Redes WAN. Debido al gran crecimiento de este tipo de redes (Internet), ha tomado gran importancia el intercambio de información a través de la red. Por ejemplo:
    • Los servicios comunes que brinda Internet: Correo electrónico, servicio de noticias, transferencia de archivos, la Wrld Wide Web, etc.
    • Aplicaciones Multimedia. Son las últimas incorporaciones a los sistemas distribuidos. Estas aplicaciones imponen ciertas necesidades de hardware para poder tener una velocidad y regularidad de transferencia de una gran cantidad de datos. Los ejemplos de estos sistemas son:
    • Videoconferencia.
    • Televigilancia.
    • Juegos multiusuarios.
    • Enseñanza asistida por ordenador.
  • Áreas de la informática aplicada a los Sistemas Distribuidos.- En este punto se tienen en cuenta toda la variedad de aplicaciones de los sistemas distribuidos, pues su diseño involucra a muchas áreas, por ejemplo:
    • Comunicaciones.
    • Sistemas operativos distribuidos.
    • Base de datos distribuidas.
    • Servidores distribuidos de ficheros.
    • Lenguajes de programación distribuidos.
    • Sistemas de tolerancia de fallos.

Referencias

  1. Colectivo de autores.Estudios Paramétricos de Mecánica de sólidos en entornos de computación distribuida.Disponible en: https://www.researchgate.net/profile/Anibal_Mirasso/publication/228443604_Estudios_parametricos_de_mecanica_de_solidos_en_entornos_de_computacion_distribuida/links/0f31752f441ed3db3b000000/Estudios-parametricos-de-mecanica-de-solidos-en-entornos-de-computacion-distribuida.pdf
  2. Aguilar, J. Leiss, E.Introducción a la Computación Paralela. 1ra Edición, 2004. ISBN: 980-12-0752-3.

Fuentes