"Modelos de Negocios Colaborativos: Modalidad Computación Distribuida",
- Hugo Céspedes A.
- 6 abr 2022
- 13 Min. de lectura
Actualizado: 20 ene 2023

(Material de Lectura "Curso Avanzado Colaboración: Modelos de Negocios Colaborativos y Estrategia en la Nueva Era", Hugo Céspedes A.)
Continuando con la serie "Modelos de Negocios Colaborativos", en esta ocasión veremos la modalidad de Modelo de Negocio Colaborativo Computación Distribuida.
La Computación Distribuida o Procesamiento Distribuido, se refiere a la técnica de vincular varios servidores informáticos a través de una red en un clúster, para compartir datos y coordinar el poder de procesamiento. Tal clúster se conoce como un "Sistema Distribuido". La Computación Distribuida es un modelo para resolver problemas de computación masiva utilizando un gran número de ordenadores organizados incrustados en una infraestructura de telecomunicaciones distribuida. La Computación Distribuida es un modelo informático que permite hacer grandes cálculos utilizando miles de computadores de "voluntarios" (especialmente recomendado cuando se trabaja con grandes volúmenes de datos -Big Data-.
La Computación Distribuida ofrece ventajas en cuanto a Escalabilidad (a través de una "arquitectura Escalable"), Rendimiento (a través de la redundancia) y Rentabilidad (a través del uso de hardware básico de bajo costo).
A medida que los volúmenes de datos se han disparado y las demandas de rendimiento de las aplicaciones han aumentado, la Computación Distribuida se ha vuelto extremadamente común en el diseño de Bases de Datos y Aplicaciones. Esta es la razón por la que es especialmente valioso para "escalar", de modo que a medida que crecen los volúmenes de datos, esa carga adicional se puede manejar simplemente agregando más hardware al sistema. Comparen esto con los entornos tradicionales, que consisten en servidores informáticos potentes, en los que el crecimiento de la carga debe manejarse actualizando y reemplazando el hardware.
"En la Computación Distribuida, varios servidores/ computadores informáticos están conectados a través de una red para permitir grandes cargas de trabajo que aprovechan todos los recursos disponibles". Este sistema se basa en repartir la información a través de internet mediante un software, previamente descargado por el usuario a diferentes ordenadores, que van resolviendo los cálculos y una vez que tienen el resultado, lo envían al servidor. Este proyecto, casi siempre solidarios, reparten la información a procesar entre miles de ordenadores voluntarios para poder alcanzar cuotas de procesamiento a menudo mayores que las de súper ordenadores.
Dentro de la Computación Distribuida, se suele considerar como modalidades de Computación Distribuida a la Computación en la Nube (Cloud Computing), la Grid Computing o Computación en Malla.
En la Computación en la Nube se utiliza la Computación Distribuida para proporcionar a los clientes infraestructura y plataformas altamente escalables y rentables. Los proveedores de la nube suelen ofrecer capacidad en forma de servicios alojados a los que se puede acceder a través de internet (Software como Servicio -SaaS, Plataforma como Servicio -PaaS-, Infraestructura como Servicio -IaaS-).
Por su parte, la Computación en Malla o Grid, está orientada conceptualmente a la creación de un súper ordenador con una enorme potencia de cálculo. Sin embargo, las tareas de computación no son procesadas por una, sino por muchas instancias. Los servidores y los computadores personales pueden realizar diferentes tareas de manera independiente, de manera de poder acceder a recursos de manera muy flexible. En general, los participantes ponen sus capacidades informáticas a disposición de un proyecto general por la noche, cuando su infraestructura técnica se utiliza relativamente poco.
Computación Distribuida en el Cloud Computing (Computación en la Nube).
El Crecimiento de las opciones y proveedores de Computación en la Nube, ha hecho que la Computación Distribuida sea aún más accesible. Si bien las instancias de Computación en la Nube en sí misma no habilitan automáticamente la Computación Distribuida, hay muchos tipos diferentes de software de Computación Distribuida que se ejecutan en la nube para provechar los recursos informáticos rápidamente disponibles.
En el pasado, las organizaciones dependían de administradores de bases de datos (DBA) o proveedores de tecnología para vincular recursos informáticos a través de redes dentro y entre centros de datos para poder compartir recursos. Ahora, los principales proveedores de la nube facilitan la adición de servidores a un clúster para obtener capacidad de almacenamiento adicional o rendimiento informático.
Con la facilidad y velocidad con la que se pueden aprovisionar nuevos recursos informáticos, la Informática Distribuida permite mayores niveles de agilidad al manejar cargas de trabajo crecientes. Esto permite la "Elasticidad", en la que un grupo de computadoras se puede expandir o contraer fácilmente según los requisitos de carga de trabajo inmediatos.
Computación Distribuida versus Computación en la Nube.
Si bien la Computación Distribuida y Computación en la Nube se utilizan para procesar tareas, sin embargo, debemos especificar que la Computación Distribuida se utiliza en la Computación en la Nube. Ambos implican infraestructuras informáticas masivas y su gestión. Los conceptos de Computación Distribuida y Computación en la Nube se han desarrollado con el propósito de la Computación Distribuida, es decir, "computar un elemento sobre un área grande, literalmente en computadoras que están separadas por algún u otro medio".
Computación Distribuida: Es una red en un modelo computacional que tiene la habilidad de procesar grandes volúmenes de datos con ayuda de un grupo de computadoras coordinadas para resolver un problema juntos. Las computadoras están comúnmente enlazadas usando WAN (red de área amplia que existe en una zona geográfica amplia, donde el módem envía recibe información de internet a través del puerto WAN). Todos los sistemas pueden estar conectados unos con otros directamente (peer-to-peer) o también utilizar un sistema de calendarización.
Computación en la Nube: La Computación en la Nube es un modelo para crear acceso conveniente y bajo demanda, vía internet, a un conjunto compartido de servicio de computo (por ejemplo, redes, servidores, almacenamiento, aplicaciones y servicios), los cuales pueden ser rápidamente asignados y provistos con un mínimo de gestión administrativa e interacción con el proveedor. Por lo tanto, la Computación en la Nube proporciona esta instalación que es flexible, fácil de usar con problemas de compatibilidad.
Tipos de Computación Distribuida: a) Sistemas de Computación Distribuida y b) Sistemas de Información Distribuida.
a) Sistemas de Computación Distribuida: Colección de computadoras separadas físicamente y conectadas entre sí por una red de comunicaciones, cada máquina posee sus componentes de hardware y software.
b) Sistemas de Información Distribuida: Colección de computadoras separadas físicamente y conectadas para almacenamiento de datos que pueden estar juntos o distribuidos en diferentes máquinas de la red.
Tipos de Computación en la Nube: a) Nube Privada, b) Nube Comunitaria, c) Nube Pública, d) Nube Híbrida.
a) Nube Privada: La infraestructura de nube es operada únicamente por una organización. Puede ser manejada por la misma organización o por un tercero dentro o fuera de las instalaciones.
b) Nube Comunitaria: La infraestructura de nube es compartida por varias organizaciones y apoya a una comunidad específica que comparte ciertas afinidades (por ejemplo, la misión, los requisitos de seguridad, políticas u objetivos).
c) Nube Pública: La infraestructura de la nube pertenece a una organización que vende sus servicios en la nube, está disponible al público en general o a un gran grupo industrial.
d) Nube Híbrida: La infraestructura de nube es una agregación de dos o más tipos de nubes (privada, comunitaria o pública) las cuales siguen siendo entidades únicas, pero unidas por tecnología estandarizada o propietaria.
Ventajas de la Computación Distribuida: 1) La Computación Distribuida ayuda a distribuir y dividir el trabajo en múltiples computadoras, 2) Cuando ocurre una falla, no se detiene la tarea, ya que otra computadora se encargará de la tarea, haciendo que este sistema sea más confiable, 3) Se tiene acceso total a los datos y aplicaciones, ya que el sistema se encuentra en las instalaciones del usuario, 4) Se puede trabajar información en sistemas de almacenamiento creados por el usuario, 5) Se puede crear una red interna para acceder a datos en caso de falla de internet.
Ventajas de la Computación en la Nube: 1) Se puede acceder fácilmente a la nube desde cualquier parte del mundo. Solo necesitas tener conectividad a internet, 2) Es rentable y tiene una rápida copia de seguridad y restauración de datos. También tiene actualizaciones automáticas de software, 3) No requiere de una gran inversión inicial, 4) Se paga por los recursos a utilizar, si se desea más capacidad de computo, se paga solo por lo que se utilice y las configuraciones no las tiene que hacer los usuarios.
Ventajas Claves de la Computación Distribuida.
La Computación Distribuida hace que todas las computadoras en el clúster trabajen juntas como si fueran una sola computadora. El beneficio de la Computación Distribuida radica en que "se puede asignar a la ubicación o ubicaciones donde sea posible, realizarlo con más eficiencia". Podemos tomar como ejemplo, la Computación Distribuida en una empresa, cada oficina puede organizar y manipular los datos para satisfacer necesidades específicas, así como compartir el producto con el resto de la organización. También nos permite optimización de los equipos y mejora el balanceo del procesamiento dentro de una aplicación, este último es de gran importancia, ya que en algunas aplicaciones simplemente, no hay una máquina que sea capaz de realizar todo el procesamiento.
Si bien existe cierta complejidad en este modelo de múltiples computadoras, existen mayores beneficios en torno a:
Escalabilidad: Los clústers de Computación Distribuida son fáciles de escalar a través de una "arquitectura de escalamiento horizontal" en la que se puede manejar cargas más altas simplemente agregando nuevo hardware (en lugar de reemplazar el hardware existente).
Rendimiento: A través del paralelismo en el que cada computadora en el clúster maneja simultáneamente un subconjunto de una tarea general, el clúster puede lograr altos niveles de rendimiento a través de un enfoque de divides y vencerás.
Resiliencia: Los clústers de Computación Distribuida normalmente copian o "replican" datos en todos los servidores de la computación para garantizar que no haya un punto único de falla. Si una computadora falla, las copias de los datos en esa computadora se almacenan en otro lugar para que no se pierdan datos.
Rentabilidad: La Computación Distribuida generalmente aprovecha el hardware básico de bajo costo, lo que hace que las implementaciones iniciales y las expansiones de clúster sean muy económicas.
Para quienes deseen profundizar más en el tema de la Computación Distribuida (de una manera más técnica), les recomiendo el siguiente video que dura alrededor de 15 minutos en Youtube: "Distributed Systems | Distributed Computing Explained".

Aplicaciones y Ejemplos de la Computación Distribuida.
Proyecto SETI: El Proyecto SETI fue pionero en el tema de la Computación Distribuida (marcó los estándares en el campo de la Computación Distribuida como Computación Voluntaria, en el campo desde 1999). Su objetivo era la búsqueda de vida extraterrestre mediante la detección de su tecnología de comunicaciones, buscando patrones que demuestren inteligencia en las ondas de radio procedentes del espacio. La potencia global de todos los terminales participantes ha sido enorme; en concreto, se han obtenido un total acumulado de dos millones de años de tiempo de CPU, alrededor de 50Terabytes -TB- de datos y cinco millones de usuarios.
Fue una de las primeras iniciativas en ofrecer un cliente de Computación Distribuida (que funcionaba como un salva pantallas) que permitía analizar las ondas de radio que provenían del universo en busca de Inteligencia Extraterrestre. El sistema funcionaba básicamente partiendo el grupo de información, los datos que se analizaban en el ordenador remoto, y se devolvían al ordenador central, todo por internet. Los archivos no pesaban más allá de 300 kb y con las actuales conexiones de internet, ese tráfico ocasional arriba-abajo no tenía repercusión real sobre el usuario. El ordenador central recomponía todos los fragmentos del puzzle para completar los datos y pasarlos a la unidad de análisis superior. Así duranre los años de transición entre Mac OS9 y Mac OSX era frecuente ver el salva pantallas del SETI en los escritorios de los Mac, ya fuera por el frikismo inherente al SETI o por el romanticismo del asunto. Una característica especial de este proyecto era la "estrategia de ahorro de recursos", donde el software de evaluación solo se utilizaba en períodos en los que los ordenadores de los usuarios estaban inactivos. Tras analizar la señal, los resultados se enviaban al cuartel general en Berkeley (Open Infraestructure for Network Computing -BONIC-), hoy una iniciativa con objetivos similares. Existen ahora proyectos compatibles en otras universidades e institutos de todo el mundo

Globus Toolkit: En los últimos años, la grid ha conseguido el compromiso de firmas como IBM, Platform Computing, Sun, SAS, Oracle, CA, EMC, NeApp y HP, que están adaptando su oferta para soportar la tecnología mediante desarrollos propios y alianzas. Sirva como ejemplo el acuerdo de licenciamiento de software establecido entre IBM y Univa, startup de software grid de código abierto. Univa fue fundada en diciembre de 2004 por Steve Tuecke, Ian Foster y Carl kesselman, los creadores en 1995 de Globus Project (más tarde rebautizada como Globus Alliance), del que surgió Globus Toolkit.

La oferta de la compañía, que preparaba el lanzamiento del que sería su primer producto comercial (Univa Globus Enterprise), se basa en implementaciones comerciales del kit, que incluye librerías y servicios de software para monitorizar, descubrir y gestionar recursos, así como gestión de archivos y seguridad. Este modelo de grid computing guarda ciertos paralelismos con el desarrollo de Linux, con Globus Toolkit jugando el papel de sistema operativo de código abierto y Univa el de compañías de distribución del tipo de Red Hat o SuSE de Novell para crear soluciones comerciales dirigidas al mundo de la empresa.
Sin embargo, luego de dos década de ejecución de Globus Toolkit, ya no está disponible como un kit de herramientas informáticas distribuidas del pensamiento "Hágalo-Usted-Mismo", pero su espíritu sigue vivo en un servicio maduro, con todas las funciones y fácil de usar para la gestión de datos de investigación como Globus.org.

United Devices: Destaca en el mundo del Código Propietario, una de las compañías pioneras en productos y servicios grid. Su objetivo es desarrollar programas que cubran todo tipo de áreas de interés para empresas y usuarios, como aplicaciones financieras y de biotecnología, y establece modelos de negocio en los que se compre la potencia de cálculo de otros usuarios para poder resolver los distintos problemas. ConGrid MP es mucho más sencillo adaptar las aplicaciones al grid que mediante el Globus Toolkit, además de ofrecer servicios mucho más potentes, si bien tiene la desventaja de que no es de Código Abierto y es necesario, por lo tanto, comprar el producto.
United Devices Inc. luego sería adquirida por Univa (la cual luego sería adquirida por Altair)

Ethereum (Blockchain): Blockchain o Contabilidad Distribuida o Cadena de Bloques, es la tecnología que permite la realización confiable y segura de cualquier tipo de transacción entre dos o más personas sin la necesidad de intermediarios, a través de internet. Su introducción al mundo se dio a través de la criptomoneda Bitcoin, la primera plataforma blockchain. Originalmente Bitcoin se creó como un sistema electrónico de pago entre pares, por lo que se le conoce como "dinero digital". Pues bien, Ethereum funciona de manera descentralizada a través de una máquina virtual llamada Ethereum Virtual Machine (EVM). Esta máquina ejecuta un código intermedio o bytecode el cual es una mezcla de LISP, ensamblador y Bitcoin script. Ethereum usa como divisa interna el Ether, la criptomoneda descentralizada subyacente al mismo tiempo que sirve para ejecutar los contratos inteligentes del mismo. Al respecto, Ethereum no es como la mayoría de las criptodivisas existentes, ya que no es solamente una red para reflejar las transacciones de valor monetario, sino que es una red para la alimentación de los contratos basados en Ethereum. Estos contratos de código abierto pueden ser usados para ejecutar de forma segura una amplia variedad de servicios de micro mecenazgo, propiedad intelectual y organizaciones descentralizadas autónomas. Por último, cabe mencionar que Ethereum es muy interesante, ya que esta fue desarrollada para aumentar y mejorar el Bitcoin, y la expansión de sus capacidades. Se ha desarrollado para ocupar un lugar destacado en los Smart Contracts (Contratos Inteligentes), acuerdos descentralizados, auto-ejecutados que están codificados en la propia red de blockchain.

Como último ejemplo, les recomiendo ver el siguiente video en Youtube denominado "Aplicaciones Distribuidas", que básicamente se refiere a las Dapp o aplicaciones que se ejecutan en una red de forma distribuida con la información de los participantes protegida de forma segura y las operaciones se ejecutan de forma descentralizada en una red de nodos.

Las Dapps utilizan código fuente abierto, funcionan de forma autónoma con datos y registros almacenados criptográficamente en una cadena de bloques. Acá se nombran como ejemplos a Steemit, OpenBazaar, Storj.io, por nombrar algunos.
OPenBazaar es un proyecto Open Source, como Bitcoin, que creó una red de comercio P2P descentralizada utilizando BTC (Bitcoin) y sin cargos adicionales ni restricciones de ningún tipo. Esto significa que ahora mismo el poder en un intercambio entre compradores y vendedores ya no residiría en un servicio centralizado que les comunique. Son los propios usuarios los que se conectan de forma directa. Sin el requerimiento de ningún tercero más. Sin embargo, OpenBazaar comunicó en 2021 que suspendía su servicio de comercio con Bitcoin debido a que no fueron capaces de generar un modelo de negocio que lograra solventar sus costos operativos. No lograron la misma suerte que su competencia Purse.io de Amazon.

Por su parte, otro ejemplo que muestra el video es Storj.io que es una aplicación de almacenamiento descentralizado en la nube, similar a Dropbox, pero con la diferencia de que Storj está basado en tecnología blockchain y protocolos Peer-to-Peer entregando así seguridad privada.

La aplicación incentiva a los proveedores de almacenamiento y los conecta con aquellos que requieren que sus archivos sean almacenados de manera segura encriptados en los nodos de la aplicación de manera distribuida hasta que sus usuarios estén listos para usarlos nuevamente. Las claves quedan en poder de los propietarios de los datos, los cuales no son accesibles por una nube centralizada.
Otra aplicación descentralizada es Steemit que es una red social que combina la creación de contenido, la interacción con usuarios y el uso de una cadena de bloques con una criptomoneda llamada STEEM.

La manera de funcionar se parece a páginas web como Reddit. La única diferencia es que todo el contenido en texto se queda grabado para siempre en un Blockchain o Cadena de Bloques.
Los usuarios o miembros pueden hacer un upvote al contenido que quieran y dependiendo de cuantos votos se obtenga se obtendrá una recompensa en forma de Steem, Steem power o Steem dollars. El hecho de votar contenido también hace obtener recompensas en forma de Steem. Esto es lo que se llaman Curation Rewards. Incluso los comentarios se pueden votar y de esta manera llegar a monetizarse.
Nota: Mayor profundización del tema lo llevo a cabo en mi Curso Avanzado de Colaboración.
Conclusiones.
Como podrán percatarse, podríamos estar hablando días sobre Modelos de Negocios Colaborativos Modalidad Computación Distribuida.
Claramente la Computación Distribuida, sumado a las tecnologías emergentes (Internet de las Cosas -IoT-, Inteligencia Artificial -IA o AI-, Blockchain, ....) están generando disrupción en nuestras vidas hoy y a futuro.
La Computación Distribuida, desde sus orígenes, considerando la evolución que ha ido teniendo con el transcurso del tiempo, nos ha ayudado como civilización en dos aspectos fundamentales: Tiempo y Escalabilidad. En lugar de trabajar con un solo computador haciendo todo el trabajo ¿Por qué no combinar la potencia de procesamiento de varios computadores? La Computación Distribuida nos ofrece clústers de computadores que hacen una o muchas tareas diferentes simultáneamente. de esta manera, la Computación Distribuida nos permite tener nuestro propio Súper Computador al unir la potencia de todos nuestros dispositivos. Lo que antes nos tomaba 30 minutos, ahora nos toma 5 minutos, y no tuvimos que gastar dinero en comprar equipos nuevos, o en pagar a un tercero para crear un software mejor. Si a esto agregamos el poder de los teléfonos inteligentes y los tablets de tu organización (incluso el refrigerador inteligente de tu oficina o casa), eso es Tiempo y Escalabilidad.
¡Imaginen cómo será nuestro futuro a mediano y largo plazo gracias a esta tecnología!.
(Nota: Para aquellos estudiantes del curso, vuelvan al curso y sigan las instrucciones para asimilar el conocimiento entregado).
Fuente: "Distributed Computed", Hazelcast; "Computación Distribuida", Wikipedia; "Computación en la Nube versus Computación Distribuida", Conogasi; "Distributed Computing: Computación Distribuida para Infraestructuras Digitales Eficientes", Ionos; "Grid Irrumpe en la Empresa", Ramón Millán y Francisco Sánchez; "Ethereum, Plataforma de Computación Distribuida", Sistemas Distribuidos Foro Activo; "Qué es Computación Distribuida y por qué la Necesitas para Optimizar tu Negocio", Rodrigo Inostroza (Motivus); "Distributed Applications", System Innovations (Youtube).
Commentaires