La computación distribuida o informática en malla es un nuevo modelo para resolver problemas de computación masiva utilizando un gran número de ordenadores organizados en racimos incrustados en una infraestructura de telecomunicaciones distribuida.
Sistemas distribuidos
Un sistema distribuido se define como una colección de computadoras separadas físicamente y conectadas entre sí por una red de comunicaciones distribuida; cada máquina posee sus componentes de hardware y software que el usuario percibe como un solo sistema (no necesita saber qué cosas están en qué máquinas). El usuario accede a los recursos remotos (RPC) de la misma manera en que accede a recursos locales, o un grupo de computadores que usan un software para conseguir un objetivo en común.
Los sistemas distribuidos deben ser muy confiables, ya que si un componente del sistema se descompone otro componente debe ser capaz de reemplazarlo. Esto se denomina tolerancia a fallos.
El tamaño de un sistema distribuido puede ser muy variado, ya sean decenas de hosts (red de área local), centenas de hosts (red de área metropolitana), o miles, o millones de hosts (Internet); esto se denomina escalabilidad.
Características
- Para cada uno de los usuarios debe ser similar al trabajo en el Sistema Centralizado.
- Seguridad interna en el sistema distribuido.
- Se ejecuta en múltiples computadoras.
- Tiene varias copias del mismo sistema operativo o de diferentes sistemas operativos que proveen los mismos servicios.
- Entorno de trabajo cómodo.
- Dependiente de redes (LAN, MAN, WAN, etc.).
- Compatibilidad entre los dispositivos conectados.
- Transparencia (el uso de múltiples procesadores y el acceso remoto debe ser invisible).
- Interacción entre los equipos.
- Diseño de software compatible con varios usuarios y sistemas operativos.
Objetivo
La computación distribuida ha sido diseñada para resolver problemas demasiado grandes para cualquier supercomputadora y mainframe, mientras se mantiene la flexibilidad de trabajar en múltiples problemas más pequeños. Por lo tanto, la computación en grid es naturalmente un entorno multiusuario; por ello, las técnicas de autorización segura son esenciales antes de permitir que los recursos informáticos sean controlados por usuarios remotos.
Clasificación
En términos de funcionalidad, las mallas se clasifican en computacionales (incluyendo mallas de barrido de la CPU) y en mallas de datos. Y en los estados son:
Globus
La herramienta Globus ha emergido como el estándar de facto para la capa intermedia (middleware) de la malla. Globus tiene recursos para manejar:
- La gestión de recursos(Protocolo de Gestión de Recursos en Malla o Grid Resource Management Protocol)
- Servicios de Información (Servicio de Descubrimiento y Monitorización o Monitoring and Discovery Service)
- Gestión y Movimiento de Datos (Acceso Global al Almacenamiento Secundario, Global Access to secondary Storage y FTP en malla, GridFTP)
La mayoría de mallas que se expanden sobre las comunidades académicas y de investigación de Globus Toolkit como núcleo de la capa intermedia.
XML
Los servicios web basados en XML ofrecen una forma de acceder a diversos servicios/aplicaciones en un entorno distribuido. Recientemente, el mundo de la informática en malla y los servicios web caminan juntos para ofrecer la malla como un servicio web. La arquitectura está definida por la Open Grid Services Architecture (OGSA). La versión 3.0 de Globus Toolkit, que actualmente se encuentra en fase alfa, será una implementación de referencia acorde con el estándar OGSA.
Las mallas ofrecen una forma de resolver grandes retos, como el plegamiento de las proteínas y descubrimiento de medicamentos, modelización financiera, simulación de terremotos, inundaciones y otras catástrofes naturales, modelización del clima/tiempo, etc. Ofrecen un camino para utilizar los recursos de las tecnologías de la información de forma óptima en una organización.
Computación de ciclos redundantes
El modelo de computación de ciclos redundantes, también conocido como computación zombi, es el empleado por aplicaciones como Seti@Home, consistente en que un servidor o grupo de servidores distribuyen trabajo de procesamiento a un grupo de computadoras voluntarias a ceder capacidad de procesamiento no utilizada. Básicamente, cuando dejamos nuestro ordenador encendido, pero sin utilizarlo, la capacidad de procesamiento se desperdicia por lo general en algún protector de pantalla, este tipo de procesamiento distribuido utiliza nuestra computadora cuando nosotros no la necesitamos, aprovechando al máximo la capacidad de procesamiento.
Clustering
Otro método para crear sistemas de supercomputadoras es el clustering. Un cluster o racimo de computadoras consiste en un grupo de computadoras de relativo bajo costo conectadas entre sí mediante un sistema de red de alta velocidad (gigabit de fibra óptica por lo general) y un software que realiza la distribución de la carga de trabajo entre los equipos. Por lo general, este tipo de sistemas cuentan con un centro de almacenamiento de datos único. Los clusters tienen la ventaja de ser sistemas redundantes,al estar fuera de servicio el procesador principal el segundo se dispara y actúa como un Fail Over.
Grid
La computación en grid o en malla es un nuevo paradigma de computación distribuida en el cual todos los recursos de un número indeterminado de computadoras son englobados para ser tratados como un único superordenador de manera transparente.
Estas computadoras englobadas no están conectadas o enlazadas firmemente, es decir no tienen por qué estar en el mismo lugar geográfico. Se puede tomar como ejemplo el proyecto SETI@Home, en el cual trabajan computadoras alrededor de todo el planeta para buscar vida extraterrestre.
Seguridad
El punto de la seguridad es delicado en este tipo de computación distribuida pues las conexiones se hacen de forma remota y no local, entonces suelen surgir problemas para controlar el acceso a los otros nodos. Esto puede aprovecharse para un ataque de DoS, aunque la red no va a dejar de funcionar porque uno falle. Esa es una ventaja de este sistema grid.
Diferencias entre los distintos tipos de computación distribuida
SSI (Single System Image): en un SSI todas las computadoras vinculadas dependen de un sistema operativo común, diseñado al efecto. En cambio, un grid es heterogéneo, en el sentido en que las computadoras pueden tener diferentes sistemas operativos.
Algunos ejemplos de estos sistemas operativos son:
- Amoeba (inactivo)
- BProc
- DragonFly BSD (meta a largo plazo)
- Genesis
- Kerrighed
- Mosix/OpenMosix
- Nomad (inactivo)
- OpenSSI
- Plurix
- Sprite (inactivo)
- TruCluster
Cluster de computadores: En un cluster todos los nodos se encuentran en el mismo lugar, conectados por una red local para así englobar todos los recursos. En cambio, en un grid no tienen por qué estar en el mismo espacio geográfico; pueden estar en diferentes puntos del mundo.
También suele llamarse GRID al resultado obtenido de englobar las máquinas en una supercomputadora; con un cluster solo se busca mejorar el rendimiento de las máquinas englobándolas en una sola.