¿Qué es la computación distribuida?

Formas de tormenta

Autores

Phill Powell

Staff Writer

IBM Think

Ian Smalley

Staff Editor

IBM Think

¿Qué es la computación distribuida?

La computación distribuida usa numerosos recursos informáticos en diferentes ubicaciones operativas para un único propósito informático.

Los sistemas de computación distribuida hacen que las cosas sucedan a lo grande. Piénselo la próxima vez que participe en un juego multijugador masivo en línea (MMO). Para gestionar eficazmente un MMO, se necesitan sistemas completos que se unan y trabajen en estrecha colaboración para ofrecer una experiencia en línea fluida que miles de jugadores comparten simultáneamente en un entorno en tiempo real.

La computación distribuida ayuda a los proveedores a distribuir ese tipo de sincronización coordinada y potencia de procesamiento de computadoras hacia un objetivo común.

Y ese es solo un ejemplo de las tantas y variadas aplicaciones para servicios informáticos distribuidos que se utilizan actualmente, incluida la creación de gráficos 3D vívidos para animaciones de video, el entrenamiento de redes neuronales que imitan la funcionalidad del cerebro humano y la resolución de ecuaciones extremadamente complejas relacionadas con la química y la física.

Por lo general, el modelo de computación distribuida toma las tareas de computación más intensivas y la carga de trabajo y se enfrenta a los desafíos computacionales más serios, por lo que requiere el uso de múltiples componentes y memoria compartida.

Diseño 3D de pelotas rodando en una pista

Las últimas novedades e insights sobre IA

Descubra insights y noticias de expertos sobre IA, la nube y mucho más en el boletín semanal Think. 

¿Cómo funciona la computación distribuida?

La computación distribuida reúne múltiples computadoras, servidores y redes para llevar a cabo tareas informáticas de tamaños y propósitos muy diversos. En sistemas de computación pequeños y distribuidos con componentes cercanos entre sí, estos componentes se pueden vincular a través de una red de área local (LAN).

En sistemas distribuidos más grandes cuyos componentes están separados por geografía, los componentes están vinculados a través de redes de área amplia (WAN). Los componentes de un sistema distribuido comparten información a través del tipo de red que se utilice. El ejemplo más conocido de un sistema distribuido es internet. Quizás el ejemplo más controvertido de un sistema distribuido en los últimos tiempos es la criptomoneda.

Componentes de la computación distribuida

Desde una perspectiva computacional, en términos de la cantidad de componentes normalmente involucrados, incluso las formas más básicas de computación distribuida suelen contener tres componentes básicos:

  • Controlador del sistema primario
  • Almacén de datos del sistema
  • Database

Sin embargo, no existen reglas estrictas que limiten lo que constituye una circunstancia de computación distribuida o cuántos componentes de software se necesitan para dar vida a su funcionalidad. Podría haber unos cuantos componentes trabajando dentro de esa cadena (o red), o la instancia podría incorporar muchos más.

Esta es una de las grandes ventajas de utilizar un sistema informático distribuido; el sistema se puede ampliar agregando más máquinas. El otro beneficio significativo es el aumento de la redundancia, de modo que si una computadora de la red falla por cualquier motivo, el trabajo del sistema continúa sin interrupción, a pesar de ese punto de falla.

Este concepto de redundancia adicional va de la mano con un énfasis en la tolerancia a fallas. La tolerancia a fallas es un proceso correctivo que permite que un sistema operativo responda y corrija una falla en el software o hardware mientras el sistema continúa funcionando. La tolerancia a fallas ha llegado a utilizarse como una medida general de la viabilidad empresarial continua ante una falla disruptiva.

Por lo tanto, los sistemas de computación distribuida no están limitados por el número de componentes. Tampoco se exige que dichos componentes estén situados físicamente cerca entre sí y conectados por redes de área local. Gracias a las capacidades aumentadas de las redes de área amplia, las computadoras de un sistema de computación distribuida pueden estar separadas por continentes mientras conservan su operatividad.

Conexión de redes de computación distribuida

El objetivo de los sistemas de computación distribuida es hacer que esa red de computación distribuida, sin importar su tamaño ni dónde se encuentren sus componentes, funcione como si fuera una sola computadora. Esta coordinación se logra mediante un elaborado sistema de paso de mensajes entre los distintos componentes.

Los protocolos de comunicación gobiernan ese intercambio de mensajes de ida y vuelta y crean una forma de relación que existe entre estos componentes. Esta relación se conoce como “acoplamiento”, que normalmente se expresa en una de dos formas:

  • Acoplamiento flexible: la conexión entre dos componentes acoplados de manera flexible es lo suficientemente débil como para que las alteraciones en un componente no afecten al otro componente.
  • Acoplamiento estrecho: el nivel de sincronización y paralelismo es tan grande en componentes estrechamente acoplados que un proceso llamado "agrupación en clústeres" utiliza componentes redundantes para garantizar la viabilidad continua del sistema.

La computación distribuida también se ocupa de los efectos positivos y negativos de la concurrencia, que es la ejecución simultánea de múltiples secuencias de instrucciones operativas. Una de sus principales cualidades positivas es el hecho de que la concurrencia permite la computación paralela de múltiples hilos de proceso. (La computación paralela no debe confundirse con el procesamiento paralelo, que es un proceso en el que las tareas en tiempo de ejecución se dividen en varias tareas más pequeñas).

Los aspectos negativos asociados con la concurrencia a menudo incluyen una mayor latencia e incluso cuellos de botella en los que el tráfico casi se detiene debido a la sobrecarga del sistema informático distribuido con un número excesivo de solicitudes de componentes.

La concurrencia se diferencia del concepto de multihilo, que permite que un programa siga ejecutándose mientras otras tareas se realizan en segundo plano. La concurrencia representa una mayor pérdida de recursos, ya que varios subprocesos se ejecutan al mismo tiempo y acceden a los recursos compartidos simultáneamente.

Academia de IA

Cómo lograr la preparación para la IA con la nube híbrida

Dirigida por los principales líderes de opinión de IBM, el plan de estudios está diseñado para ayudar a los líderes empresariales a obtener los conocimientos necesarios para priorizar las inversiones en IA que pueden impulsar el crecimiento.

Beneficios de la computación distribuida

Perfecto para grandes proyectos

Algunas cargas de trabajo de procesamiento son enormes y más de lo que la mayoría de los sistemas individuales pueden admitir. La computación distribuida comparte dichas cargas de trabajo entre múltiples equipamientos, por lo que los grandes trabajos pueden abordarse de manera competente.

Permite compartir recursos

La computación distribuida opera según el concepto de activos compartidos y admite el intercambio de recursos como datos, software y hardware entre los diversos componentes dentro de esa instancia de computación distribuida.

Ideal para cambiar el tráfico

El tráfico en línea de muchas organizaciones está sujeto a cambios rápidos y drásticos, posiblemente debido a las noticias u otros factores. La computación distribuida proporciona la flexibilidad que las empresas necesitan para resistir tales aumentos repentinos.

Rendimiento optimizado

La computación distribuida aumenta los niveles de rendimiento al dividir los grandes trabajos de procesamiento en tareas informáticas más pequeñas, que son compartidas por numerosas computadoras. Esto da como resultado una cantidad acumulativa de velocidad de procesamiento y un mayor almacenamiento total.

Rentabilidad

Si bien es cierto que la computación distribuida, con sus múltiples sistemas, tiene más costos iniciales que los sistemas de procesamiento centralizados, con el tiempo, esos costos se compensan gracias a la reducción de la latencia y los tiempos de respuesta más rápidos, lo que en última instancia hace que la computación distribuida sea más rentable que los sistemas centralizados.

Tipos de computación distribuida

Los tipos de computación distribuida se clasifican según la arquitectura informática distribuida que cada uno emplea.

Sistema cliente-servidor

Los sistemas cliente-servidor utilizan una arquitectura cliente-servidor que les permite utilizarse con más de un único sistema. En este, un cliente dirigirá la entrada al servidor en forma de solicitud. Normalmente, esta comunicación implicará un comando para que se realice una tarea determinada o una solicitud de más recursos informáticos. Luego, el servidor trabaja para cumplir esa tarea o asignar los recursos solicitados. Una vez logrado, el servidor responde al cliente con un mensaje sobre la acción realizada.

Sistema de peer

Mientras que los sistemas centralizados emplean la arquitectura cliente-servidor, un sistema peer se basa en la arquitectura peer (a menudo, llamada arquitectura peer-to-peer). Los sistemas peer usan nodos, que pueden funcionar efectivamente como cliente o servidor, ya sea al identificar necesidades y emitir solicitudes o trabajar para satisfacer esas necesidades e informar sobre las operaciones. Como su nombre lo indica, no hay jerarquía en los sistemas peer, por lo que los programas que operan en sistemas peer-to-peer pueden comunicarse libremente entre sí y transferir datos a través de redes peer.

Middleware

El middleware puede considerarse como un tipo de “intermediario” que opera entre dos aplicaciones distintas, lo que quiere decir que el middleware es en sí mismo una aplicación que reside entre dos aplicaciones y proporciona servicio a ambas. El middleware también tiene un aspecto interpretativo. Funciona como un traductor entre varias aplicaciones de interoperabilidad que se ejecutan en diferentes sistemas y permite que esas aplicaciones intercambien datos libremente.

Sistema de tres niveles

Los sistemas de tres niveles se llaman así debido a la cantidad de capas utilizadas para representar la funcionalidad de un programa. A diferencia de la arquitectura típica cliente-servidor en la que los datos se colocan dentro del sistema cliente, el sistema de tres niveles mantiene los datos almacenados en su capa intermedia, que se denomina capa de datos. La capa de aplicación rodea la capa de datos en uno de sus lados, mientras que la capa de presentación rodea la capa de datos en el otro lado. Los sistemas de tres niveles se utilizan de manera rutinaria en diversas aplicaciones web.

Sistema de N niveles

Los sistemas de N niveles, a veces denominados sistemas distribuidos de varios niveles, tienen una capacidad ilimitada para funciones de red, que enrutan a otras aplicaciones para su procesamiento. La arquitectura de los sistemas de N niveles es similar a la que se encuentra en los sistemas de tres niveles. Los sistemas de N niveles se emplean a menudo como base arquitectónica para numerosos servicios web y sistemas de datos.

Otros paradigmas de computación distribuida

La computación distribuida permite el uso de diferentes paradigmas de programación (que pueden considerarse estilos de programación):

  • Blockchain: blockchain es un tipo de base de datos distribuida o libro de contabilidad que se replica y sincroniza en las distintas computadoras que componen una red. Un blockchain garantiza uno de los principales objetivos de la computación distribuida (la redundancia), porque cada computadora de la cadena tiene una copia del libro fuente original, por lo que los datos no se pueden perder debido a un único punto de falla.
  • Computación en malla: la computación en malla es un tipo de computación distribuida que se ocupa de cargas de trabajo no interactivas, que generalmente involucran una combinación de infraestructuras y software de middleware. La malla escalable a la que se accede a través de la interfaz de usuario funciona como un sistema de archivos de gran tamaño.
  • Microservicios: los microservicios son otra forma de computación distribuida en la que las aplicaciones se dividen en componentes mucho más pequeños, a menudo llamados "servicios". Los marcos de servicios están unidos por la interfaz de programación de aplicaciones (API), que permite la interacción entre los componentes.

Casos de uso de la computación distribuida por industria

Banca

La banca en línea muestra la destreza de la computación distribuida al ocurrir en numerosos lugares a la vez, a menudo con diferentes ubicaciones bancarias encargadas de albergar uno de los servidores detrás de las ofertas de servicios clave (como atención al cliente, seguridad y procesamiento de transacciones). Todo sucede de manera instantánea y perfectamente, tal como esperan los clientes bancarios.

Computación

Tanto la inteligencia artificial (IA) como el machine learning (ML) están revolucionando muchas industrias tecnológicas, pero en ningún lugar son sus efectos más pronunciados en este momento que en la propia industria informática. Ambas tecnologías, en plena expansión, recurren ampliamente a la computación distribuida. Los algoritmos detrás de la IA y el ML necesitan grandes volúmenes de datos para entrenar sus modelos, y la computación distribuida está suministrando el músculo de procesamiento requerido.

Energía

La computación distribuida ahora se utiliza en los sectores energético y medioambiental. Por el lado de la energía, la computación distribuida está ayudando a la tecnología de redes inteligentes a regular el uso y optimizar el consumo de energía. Las redes inteligentes también utilizan la computación distribuida para reunir datos ambientales de diferentes dispositivos de entrada, como sensores y medidores inteligentes.

Finanzas

Los trabajadores en áreas específicas de finanzas ya están empleando sistemas informáticos distribuidos. Por ejemplo, la gestión de riesgos, en la que las instituciones financieras necesitan grandes cantidades de datos para realizar enormes cálculos que les permitan una toma de decisiones sobre probabilidades y evaluación de riesgos. La computación distribuida garantiza que las cargas computacionales se compartan de manera uniforme entre múltiples sistemas.

Ciencia

La informática distribuida ayudó a numerosas disciplinas científicas y contribuyó a algunos de los logros más notables de la ciencia. Algunos ejemplos son el Gran Colisionador de Hadrones, el acelerador de partículas más poderoso del mundo. Los experimentos en los que se basa dependen de cantidades extremas de recopilación y análisis de datos, lo que requiere el uso de la computación distribuida. Del mismo modo, la computación distribuida sirvió al Proyecto Genoma Humano para trazar las secuencias de ADN humano. La computación distribuida también desempeña una función esencial en el forecasting y la modelización del clima.

Soluciones relacionadas
IBM Cloud Infrastructure Center 

IBM Cloud Infrastructure Center es una plataforma de software compatible con OpenStack para gestionar la infraestructura de nubes privadas en IBM zSystems e IBM LinuxONE.

Explore Cloud Infrastructure Center
Soluciones de infraestructura de TI

Descubra los servidores, el almacenamiento y el software diseñados para la nube híbrida y su estrategia de IA.

Explore las soluciones de infraestructura de TI
Soluciones de infraestructura en la nube

Encuentre una solución de infraestructura en la nube que sea adecuada para las necesidades de su negocio y escale los recursos bajo demanda.

Soluciones en la nube
Dé el siguiente paso

Transforme la infraestructura de su empresa con las soluciones de IBM, tanto de nube híbrida como preparadas para la IA. Descubra los servidores, el almacenamiento y el software diseñados para proteger, escalar y modernizar su negocio o acceder a insights de expertos para mejorar su estrategia de IA generativa.

Explore las soluciones de infraestructura de TI Descargue el ebook