Saltar al contenido

Transparencia de acceso y escala en sistemas distribuidos

Compartir en:

Como las soluciones distribuidas enmascaran la complejidad de la arquitectura informática.


Transparencia de acceso y escala en sistemas distribuidos

El concepto de transparencia aplicado a sistemas distribuidos hace referencia a la ofuscación de los numerosos elementos que pueden constituir un sistema para que este parezca un único elemento a ojos del usuario que desea utilizarlo (ya sé aún usuario final, un programador, una llamada de una API, etc.).

A la hora de la utilización de cualquier sistema distribuido, la transparencia es un concepto básico, ya que abstrae a los usuarios del sistema de tener en consideración las características de bajo nivel sobre acceso, concurrencia, fallos de hardware, replicación, eficiencia, movilidad o escalado.

Esto permite centrase en la utilización de alto nivel sin tener que resolver los distintos problemas que pueden derivar de la heterogeneidad de un sistema distribuido concreto.

Esta visión unificada del entramado o la distribución física de los elementos de un sistema distribuido es clave en la compleja distribución de sistemas actuales, donde los grandes centros de datos, la movilidad y la deslocalización son una constante.

Según la organización internacional para la normalización del modelo de referencia para el procesamiento distribuido (RM-ODP)[ISO 1992] existen o se identifican 8 formas de transparencia:

  1. Transparencia de Acceso
  2. Transparencia de Ubicación
  3. Transparencia de Concurrencia
  4. Transparencia de Fallos
  5. Transparencia de Movilidad
  6. Transparencia de Rendimiento
  7. Transparencia de Escalabilidad
  8. Transparencia de Replicación

Nos centraremos en la transparencia de acceso y en la transparencia de escalabilidad.

Transparencia de acceso

Esta abstracción permite enmascarar el acceso a los recursos manejando de forma transparente los medios locales o remotos. Estos son independientes de la distribución o de la propia topología de red (pueden ser un objeto, datos variados, procesos, bases de datos, procesadores o un equipo entero).

Transparencia de Acceso

Como ejemplo pongamos un sistema distribuido de almacenamiento actual muy utilizado en la nube, OneDrive de Microsoft. Detrás de toda la infraestructura existe un número de sistemas distribuidos que dotan de las características típicas de estos entornos (acceso en la nube o Local, sincronización, sistema de versionado…). El acceso para el usuario es transparente, solo hay que entrar en la carpeta y gestionar los archivos (o para ciertos programas que utilizan sus API`s o sus servicios).

Otro ejemplo clásico es el hecho de poder acceder mediante una URL en cualquier navegador, de cualquier dispositivo con cualquier sistema operativo a la misma página web, alojada en uno o varios servidores del entramado que conforma internet. Para nosotros el acceso es completamente transparente, sin importar donde está el recurso.

Transparencia de escala

Podemos definir este tipo de transparencia cuando al aumentar el número de recursos del sistema distribuido o los usuarios que lo utilizan, la eficacia no se ve comprometida, es decir, podemos escalar el tamaño del sistema lo necesario sin influir negativamente en el rendimiento del conjunto de recursos.

La transparencia de escala hace también referencia a la capacidad de aplicaciones y sistemas distribuidos de expandirse en tamaño sin tener que cambiar los algoritmos de los primeros (aplicaciones) o la estructura de los segundos (sistemas).

Los sistemas distribuidos son un reto técnico y presentar una estrategia de escalabilidad contenida en costes y eficiente plantea numerosas complicaciones:

  • Hay que procurar evitar los cuellos de botella que puedan formarse por malas prácticas o una planificación errónea. Esto se consigue haciendo una distribución correcta de los algoritmos (deslocalizándolos) para qué la demanda esté repartida y no genere problemas de rendimiento.
  • El sistema debe poder extender su hardware a medida que la demanda crece. Los recursos físicos son limitados, y deben poderse añadir nuevos recursos al sistema de manera ordena y que estos permitan absorber parte de la demanda.
  • El aumento de tamaño en los sistemas (ya sea de usuarios o recursos) conlleva que el rendimiento se vea comprometido, esto debe controlarse de manera óptima para que el sistema sea considerado escalable.

Como ejemplo de este tipo de transparencia, podemos citar los sistemas de archivos de cualquier organización moderna, donde el espacio o la velocidad de servicio es limitada.

Es posible añadir nuevos nodos al sistema para poder conseguir más rendimiento (en velocidad) o más capacidad de almacenamiento según el sistema requiera.

Otro ejemplo clásico de escalabilidad son los grandes centros de compra online, donde un milisegundo en demora de carga puede truncar la compra por parte de un usuario a favor de la competencia.

Estos grandes entramados WEB tienen un grado de escalabilidad óptimo, aumentando los nodos con la demanda de usuarios conforme estos van creciendo, u optimizando el peso de sus servidores alineados con los grandes eventos comerciales.

Podemos ver en acción el músculo en eventos como “El día sin IVA” en la web de Media Mark, donde en ocasiones es casi imposible navegar con normalidad (mala escalabilidad). Sin embargo, en el Prime Day en la web de Amazon, donde es imperceptible el tremendo estrés al que es sometido el sistema (buena escalabilidad).

Conclusión

Aunque para el público general sea un completo desconocido, las arquitecturas distribuidas mueven el mundo digital. Su finalidad última es facilitarnos la vida, tanto a usuarios, programadores como a diseñadores de soluciones. Todo esto a costa de añadir una complejidad enorme para los ingenieros que implementan este tipo de sistemas.

Sin este tipo de funcionalidad “la nube” o el “Amazon” que conocemos hoy en día no serían posibles.

¿Están por tanto las arquitecturas estancas y monolíticas acabadas?, desde luego que no, hay infinidad de situaciones en que es mucho mejor usar un servidor único que una granja de estos. Conocer como evoluciona este nicho es importante para tener en mente cuando un sistema de este tipo es óptimo para nuestra solución.


Juan Ibero

Inmerso en la Evolución Tecnológica. Ingeniero Informático especializado en la gestión segura de entornos TI e industriales, con un profundo énfasis en seguridad, arquitectura y programación. Siempre aprendiendo, siempre explorando.

Compartir en:

2 comentarios en «Transparencia de acceso y escala en sistemas distribuidos»

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *