¿Qué es una DApp? | Aplicación distribuida/descentralizada

Los programas distribuidos, también conocidos como apps distribuidas, son una parte fundamental de los sistemas en red. Como servidores y clientes, permiten que los dispositivos distribuidos en la red utilicen recursos centrales. Blockchains también ha creado un nuevo tipo, la aplicación descentralizada (DApp).

La aplicación distribuida en el sentido tradicional

Como una forma abreviada de Aplicación Distribuida, el término DApp describe software que no es ejecutado por una sola computadora sino por un sistema distribuido.

La forma clásica de un programa distribuido es una arquitectura cliente-servidor. Esto divide la funcionalidad del software en dos unidades diferentes. Los clientes sirven como una interfaz de usuario y se ejecutan en dispositivos finales en red. El servidor proporciona la funcionalidad real y está instalado en un sistema centralizado.

Este modelo se simplifica porque el servidor también puede constar de varias instancias distribuidas que, en conjunto, brindan un mayor rendimiento y una mayor confiabilidad. Un ejemplo típico son los servidores web a los que se distribuyen las solicitudes de los clientes a través del equilibrio de carga. Sin embargo, la división es transparente, por lo que el sistema parece un único servidor para el mundo exterior.

Leer: ¿Qué es un macro?

Sistemas cliente-servidor con roles cambiantes

Una red peer-to-peer no contiene una instancia central que proporcione la funcionalidad del servidor. En cambio, todos los nodos generalmente asumen un rol de servidor y cliente. Como variante simétrica, esta forma de programas distribuidos es sólo un caso especial de arquitectura cliente-servidor.

DApps como una nueva forma de programación distribuida

Se ha desarrollado un significado más reciente del término aplicación distribuida en el contexto de las cadenas de bloques y las criptomonedas de segunda generación. Implementados por primera vez por Ethereum, estos ofrecen la posibilidad de ejecución descentralizada de programas que es verificable a través de la cadena de bloques. Para distinguirlos de otros tipos, estos programas distribuidos también se conocen como aplicaciones descentralizadas o DApp para abreviar. Por ejemplo, trabajan para:

  • Firmas digitales para documentos.
  • Gestión segura de la identidad sin una autoridad de control central.
  • Gestión de carga para vehículos eléctricos (RWE).
  • Plataformas de juegos de azar en línea.
  • Nuevos sistemas DRM.

Terminología imprecisa de la aplicación distribuida

Independientemente del significado novedoso asociado con los contratos inteligentes, el término «programación distribuida» siempre ha sido confuso. Por un lado, el software que se divide en una parte de servidor y otra de cliente puede, en principio, ejecutarse en diferentes dispositivos conectados a través de una red o en la misma computadora.

Terminología de una DApp
Terminología de una DApp

En algunos casos, la aplicación puramente local es incluso la norma. Un ejemplo de esto es el mecanismo de registro estándar en los sistemas Unix, syslog. Aunque su servidor también puede configurarse para su uso en red, normalmente solo acepta los mensajes de registro de los programas instalados en el mismo equipo y también los guarda localmente. Por otro lado, la programación distribuida se superpone parcialmente con la programación paralela.

Leer: ¿Qué es UMTS y cómo funciona?

¿En qué se diferencian las aplicaciones distribuidas de la computación paralela?

La programación paralela significa ejecutar el mismo código de programa en múltiples procesadores al mismo tiempo. Esta descripción también se aplica a la programación distribuida en general. Sin embargo, el término “programación paralela” generalmente implica una gran proximidad física de las unidades de cómputo involucradas, como las tarjetas de transputadoras de las computadoras paralelas dedicadas de la década de 1980 combinadas en un bastidor o, posteriormente, los procesadores multinúcleo.

Sin embargo, estas computadoras paralelas también representan la programación distribuida, porque las CPU involucradas deben estar conectadas entre sí a través de una red, incluso si esto solo se implementa dentro del mismo chip.

Deja un comentario