E PLURIBUS UNUM [*]

JON KLEINBERG

Catedrático de ciencias informáticas de la Universidad de Cornell; coautor (junto con David Easley) de Networks, Crowds, and Markets: Reasoning About a Highly Connected World.

Si ya utilizaba usted un ordenador personal hace veinticinco años recordará que todo cuanto debía preocuparle ocurría en el interior de la caja que tenía enfrente. En la actualidad, las aplicaciones que usamos en una hora se encuentran dispersas en una red: la que forman un conjunto de ordenadores repartidos por todo el mundo. En la mayoría de los casos hemos perdido por completo la capacidad de señalar en qué punto exacto se sitúan realmente nuestros datos. Hemos inventado términos para expresar la pérdida de este sentido de la orientación, ya que nuestros mensajes, nuestras fotos y nuestro perfil de la Red se encuentran en algún lugar o, como suele decirse, en «la nube».

La nube no es un objeto único. Lo que tenemos interiorizado como nuestra cuenta de Gmail, o nuestro perfil de Facebook, se convierte en real gracias al trabajo conjunto de un enorme número de componentes físicamente dispersos; es decir, se trata de un sistema distribuido, por utilizar el lenguaje de la informática. Sin embargo, podemos concebirla como si fuera un objeto único, y eso es lo más importante, dado que las ideas de los sistemas distribuidos encuentran aplicación en todos aquellos casos en que observamos que existe un gran número de pequeños elementos operando de forma independiente pero coordinada, produciendo además la ilusión de corresponder a una única experiencia singular. Se trata de un efecto que ocurre tanto en Internet como en otros muchos ámbitos. Pensemos, por ejemplo, en una gran corporación que está lanzando nuevos productos al mercado y realizando para ello anuncios públicos como si se tratase de un actor único —cuando lo cierto es que sabemos perfectamente que, observada con un mayor nivel de detalle, la compañía en cuestión está integrada por decenas de miles de empleados—. O consideremos el caso de una inmensa colonia de hormigas capaz de proceder a una exploración coordinada de su entorno. O las neuronas de nuestro propio cerebro, dotadas de la facultad de crear la experiencia que está usted teniendo en este preciso instante.

El reto al que se enfrenta un sistema distribuido radica en lograr la ilusión de una conducta unificada y única pese al enorme volumen de complejidad subyacente. Y este desafío general está compuesto, de forma harto pertinente al caso, por un gran número de envites de menor envergadura en permanente tensión recíproca.

Una de las piezas más importantes de este rompecabezas es la coherencia. Cada uno de los elementos que integran un sistema distribuido ha de bregar con cosas diferentes, y su capacidad para comunicarse con el resto de los elementos del sistema es limitada, de modo que las distintas partes de ese sistema pueden acabar desarrollando una visión del mundo que resulte mutuamente incompatible. Existen muchos ejemplos que muestran cómo este estado de cosas termina a veces generando problemas, ya sea en la esfera tecnológica o en otros ámbitos. Su dispositivo móvil no se sincroniza con su correo electrónico, de modo que usted actúa sin darse cuenta de que, en realidad, ya han respondido a su mensaje. Dos personas del país reservan a un tiempo el asiento 5F en un mismo vuelo y con el mismo horario. Al ejecutivo de una determinada organización «no le ha llegado el informe», de modo que se sale por la tangente. Un pelotón de soldados ataca demasiado pronto y alerta al enemigo.

Es natural tratar de «arreglar» este tipo de problemas imponiendo una única visión global del mundo y exigiendo que todos los elementos que integran el sistema se remitan invariablemente a ese punto de vista global antes de actuar. Sin embargo, esto resta interés a muchas de las razones que nos impulsan originalmente a utilizar un sistema distribuido, ya que convierte al componente que proporciona la visión global en un enorme cuello de botella y en un punto potencialmente expuesto a la ocurrencia de peligrosos fallos. Una compañía no funciona si el director ejecutivo de la empresa tiene que refrendar todas las decisiones.

Para hacernos una idea más concreta de las cuestiones que lleva aparejadas el diseño subyacente de un sistema distribuido resultará útil pararnos a examinar con cierto detenimiento los pormenores de un ejemplo concreto —aunque se trata, en realidad, de un tipo de situación elemental en la que trataremos de conseguir el resultado deseado mediante una información y unas acciones repartidas entre un gran número de actores—. El ejemplo al que me refiero se relaciona con los problemas que plantea la necesidad de compartir de manera segura la información. Imaginémonos que estamos tratando de realizar la copia de seguridad de una base de datos muy importante en un gran número de ordenadores, protegiendo al mismo tiempo los mencionados datos de modo que estos solo puedan reconstruirse en caso de que la mayoría de los ordenadores implicados en la conservación de nuestra copia de seguridad cooperen en el empeño. Ahora bien, como en último término las cuestiones relacionadas con una puesta en común segura de la información no guardan ninguna relación específica ni con los ordenadores ni con Internet, vamos a formular nuestro problema de otro modo: valiéndonos del relato de un tropel de piratas y un tesoro enterrado.

Supongamos que un rey pirata, entrado ya en años, conoce la ubicación de un tesoro escondido y que antes de abdicar se propone compartir el secreto con sus cinco hijos, todos ellos unos rematados haraganes. Lo que el monarca quiere es que puedan acceder al tesoro en caso de que al menos tres de ellos sean capaces de unir sus fuerzas, pero también desea evitar que uno o dos de sus hijos formen una «facción escindida» y consigan apropiarse del tesoro en exclusiva. Para alcanzar este objetivo, el viejo rey pirata concibe un plan consistente en distribuir el secreto de la localización del tesoro en cinco «partes», dando a cada uno de sus cinco hijos una de ellas —y asegurándose así de que se cumpla en lo sucesivo la condición que exponemos a continuación—. Si, en cualquier instante futuro, al menos tres de sus hijos consiguen compartir sus respectivos indicios del secreto, podrán reunir el conocimiento preciso para encontrar el tesoro. Sin embargo, si uno de sus hijos pretende averiguar por sí solo el paradero de los caudales o solo logra ponerse de acuerdo con uno de sus cuatro hermanos, entonces no contará con la suficiente información.

¿Cómo lograrlo? No es difícil idear una o varias formas que permitan generar cinco pistas o claves de tal modo que todas ellas resulten necesarias para hallar el tesoro. Sin embargo, en ese caso sería necesario que los cinco hermanos cooperaran de manera unánime para poder hallar la fortuna oculta. Pero ¿cómo proceder para que la cooperación de cualquiera de los tres implicados baste para conseguir el objetivo y no ocurra lo mismo si colaboran solo dos de ellos?

Como acostumbra a suceder en el caso de muchas grandes intuiciones, la respuesta resulta fácil de entender a posteriori. El rey pirata traza un círculo secreto en el globo terráqueo (un círculo que solo él alcanza a distinguir) y le dice a sus hijos que ha enterrado el tesoro exactamente en el punto más meridional de dicho círculo. A continuación proporciona a cada uno de sus hijos las coordenadas de un punto distinto del círculo en cuestión. Para reconstruir un círculo en concreto basta con disponer de tres de los puntos que lo definen, y por consiguiente cualquier grupo formado por tres de los príncipes piratas podrá compartir la información de que disponen sus integrantes, identificar el círculo y hallar el tesoro. Sin embargo, toda pareja formada únicamente por dos piratas descubrirá que por los dos puntos que son capaces de determinar pasan una infinidad de círculos, sin que les resulte posible saber cuál indica el modo de recuperar el tesoro. Se trata de un truco muy sólido que, además, puede aplicarse a una multitud de casos. De hecho, los principios básicos de los modernos sistemas de protección de datos emplean alguna variante de esta estrategia de puesta en común de los elementos secretos que permiten el acceso a la información deseada. Su descubridor fue el criptógrafo Adi Shamir, y con este esquema pueden codificarse los datos arbitrarios de cualquier materia utilizando los puntos de una curva y reconstruyéndola tan pronto como se conocen los demás puntos de esa misma curva.

La literatura relativa a los sistemas distribuidos está repleta de ideas de esta índole. Desde un punto de vista más general, los principios de los sistemas distribuidos nos abren una vía para reflexionar acerca de las dificultades inherentes a los sistemas complejos compuestos por un gran número de partes capaces de interactuar unas con otras. Y de ese modo, cada vez que se nos ofrezca la oportunidad de tener la impresión de estar navegando por una Red unificada, de consultar un sistema bancario global igualmente unificado o de vivir una experiencia sensorial también única, deberíamos pensar en los miles de desafíos que implica mantener agrupadas en una misma entidad singular todas esas experiencias.

Este libro le hará más inteligente
cubierta.xhtml
sinopsis.xhtml
titulo.xhtml
info.xhtml
Section001.xhtml
Section002.xhtml
Section003.xhtml
Section004.xhtml
Section005.xhtml
Section006.xhtml
Section007.xhtml
Section008.xhtml
Section009.xhtml
Section010.xhtml
Section011.xhtml
Section012.xhtml
Section013.xhtml
Section014.xhtml
Section015.xhtml
Section016.xhtml
Section017.xhtml
Section018.xhtml
Section019.xhtml
Section020.xhtml
Section021.xhtml
Section022.xhtml
Section023.xhtml
Section024.xhtml
Section025.xhtml
Section026.xhtml
Section027.xhtml
Section028.xhtml
Section029.xhtml
Section030.xhtml
Section031.xhtml
Section032.xhtml
Section033.xhtml
Section034.xhtml
Section035.xhtml
Section036.xhtml
Section037.xhtml
Section038.xhtml
Section039.xhtml
Section040.xhtml
Section041.xhtml
Section042.xhtml
Section043.xhtml
Section044.xhtml
Section045.xhtml
Section046.xhtml
Section047.xhtml
Section048.xhtml
Section049.xhtml
Section050.xhtml
Section051.xhtml
Section052.xhtml
Section053.xhtml
Section054.xhtml
Section055.xhtml
Section056.xhtml
Section057.xhtml
Section058.xhtml
Section059.xhtml
Section060.xhtml
Section061.xhtml
Section062.xhtml
Section063.xhtml
Section064.xhtml
Section065.xhtml
Section066.xhtml
Section067.xhtml
Section068.xhtml
Section069.xhtml
Section070.xhtml
Section071.xhtml
Section072.xhtml
Section073.xhtml
Section074.xhtml
Section075.xhtml
Section076.xhtml
Section077.xhtml
Section078.xhtml
Section079.xhtml
Section080.xhtml
Section081.xhtml
Section082.xhtml
Section083.xhtml
Section084.xhtml
Section085.xhtml
Section086.xhtml
Section087.xhtml
Section088.xhtml
Section089.xhtml
Section090.xhtml
Section091.xhtml
Section092.xhtml
Section093.xhtml
Section094.xhtml
Section095.xhtml
Section096.xhtml
Section097.xhtml
Section098.xhtml
Section099.xhtml
Section100.xhtml
Section101.xhtml
Section102.xhtml
Section103.xhtml
Section104.xhtml
Section105.xhtml
Section106.xhtml
Section107.xhtml
Section108.xhtml
Section109.xhtml
Section110.xhtml
Section111.xhtml
Section112.xhtml
Section113.xhtml
Section114.xhtml
Section115.xhtml
Section116.xhtml
Section117.xhtml
Section118.xhtml
Section119.xhtml
Section120.xhtml
Section121.xhtml
Section122.xhtml
Section123.xhtml
Section124.xhtml
Section125.xhtml
Section126.xhtml
Section127.xhtml
Section128.xhtml
Section129.xhtml
Section130.xhtml
Section131.xhtml
Section132.xhtml
Section133.xhtml
Section134.xhtml
Section135.xhtml
Section136.xhtml
Section137.xhtml
Section138.xhtml
Section139.xhtml
Section140.xhtml
Section141.xhtml
Section142.xhtml
Section143.xhtml
Section144.xhtml
Section145.xhtml
Section146.xhtml
Section147.xhtml
Section148.xhtml
Section149.xhtml
Section150.xhtml
Section151.xhtml
Section152.xhtml
Section153.xhtml
Section154.xhtml
notas.xhtml