El rendimiento de los ordenadores para realizar procesamiento de datos y almacenar información va relacionado con sus prestaciones de hardware y con el software que utilicen. Una forma de incrementar este rendimiento es utilizando sistemas distribuidos donde un conjunto de ordenadores independientes funciona como uno solo a ojos del usuario, incrementando la capacidad y velocidad de procesamiento y almacenamiento, de forma notoria. Los sistemas distribuidos son independientes de los componentes que lo forman aportando una gran fiabilidad y garantizando una alta disponibilidad.
Son muchos los usos que tienen este tipo de arquitecturas entre los que podemos destacar los sistemas de bases de datos distribuidas, el servicio de world wide web o las aplicaciones cloud de Google.
Qué es un sistema distribuido y sus características
Se define como sistema distribuido a un conjunto o grupo de equipos que son independientes entre sí y que actúan como un único equipo de forma transparente y que tienen como objetivo la descentralización del procesamiento o elalmacenamiento de información .
La arquitectura distribuida permite obtener grandes prestaciones con un coste razonablemente bajo. En la actualidad, la mayoría de sistemas informáticos son distribuidos y no dependen de un único nodo o equipo para funcionar.
Las principales características de un sistema distribuido son:
- Concurrencia. Una arquitectura distribuida permite que sea utilizada por todos los usuarios que interactúan en la red.
- Modularidad. Esta característica permite que los sistemas distribuidos sean escalables, teniendo capacidad para crecer de forma simple y eficiente.
- Transparencia. Proporcionando a los usuarios y las aplicaciones una visión de los recursos del sistema como si se tratase de una única máquina o equipo.
- No depende de los componentes. Un sistema distribuido no depende de los distintos componentes hardware que lo forman, ya que, si alguno falla, los demás continúan con los procesos sin que el sistema se vea interrumpido o sufra pérdidas de datos.
- Apertura. La arquitectura distribuida permite añadir nuevos servicios que compartan los recursos existentes sin perjudicar los servicios que ya se están ejecutando. Por eso deben estar diseñados sobre protocolos estándar que permitan utilizar hardware y software de distintos fabricantes o desarrolladores.
- Carencia de reloj global. Las coordinaciones para la transferencia de mensajes entre los diferentes equipos para la resolución de una o varias tareas, no tienen una temporización general, es decir, se encuentra distribuida a los componentes.
Ventajas y desventajas de una arquitectura distribuida
Ventajas de la arquitectura distribuida
Utilizar un conjunto de ordenadores independientes para que realicen procesos o almacenen datos como si se tratase de un único equipo ofrece una serie de beneficios entre los que podemos destacar:
Incrementa la eficacia
Los sistemas distribuidos permiten afrontar problemas y proyectos que necesitan de procesamientos complejos de forma más eficiente y a un menor coste. El uso de múltiples nodos para procesar una o múltiples tareas supone un mayor rendimiento al optimizar la distribución del mismo en los diferentes sitios de la red.
Mayor tolerancia a los errores
Una arquitectura distribuida tiene una mayor tolerancia a los fallos, ya que al caer un nodo la información se encontrará en otros. Se trata de un sistema mucho más robusto que uno centralizado debido a esta tolerancia a los fallos sin que se vean afectados los procesos o los datos.
Al estar distribuida la carga de trabajo en muchos nodos distintos, ante el fallo de uno de ellos los demás no se verán afectados y el sistema continúa funcionando, lo que permite afirmar que los sistemas distribuidos son más confiables que los centralizados.
Proporciona una mayor velocidad
Una arquitectura distribuida se caracteriza por proporcionar una mayor velocidad en el procesamiento. Por ejemplo, si se realiza una consulta a una base de datos, los procedimientos se dividen entre los distintos nodos, obteniendo una respuesta mucho más rápida que si se realiza con un único nodo.
Flexibilidad y escalabilidad
Un sistema distribuido puede ser ampliado de forma horizontal en caso de necesidad de incremento de alguna de sus características, como procesamiento (CPU), almacenamiento o memoria RAM. En lugar de aumentar de forma vertical la capacidad de los equipos, el sistema distribuido se aumenta de forma horizontal añadiendo un nuevo nodo. Un sistema distribuido puede añadir recursos para satisfacer las nuevas demandas sobre el sistema.
Desventajas de la arquitectura distribuida
A pesar de las enormes ventajas de los sistemas distribuidos, hay algunos inconvenientes relacionados con este tipo de arquitecturas como pueden ser:
Mayor nivel de complejidad
En comparación con los sistemas centralizados, los distribuidos tienen un mayor nivel de complejidad a la hora de diseñarlos, configurarlos y gestionarlos de forma eficiente.
Seguridad
Los sistemas distribuidos conectan muchos nodos a través de la red y son muchos los usuarios que acceden a la misma, lo que lleva aparejado un aumento del riesgo en la integridad y privacidad de los datos y las comunicaciones.
Precisamente por este motivo es necesario adoptar medidas de seguridad adicionales para este tipo de arquitectura, de modo que se pueda compensar el riesgo de potenciales ataques, o en caso de producirse, mitigar sus efectos.
Mayor esfuerzo
La gestión de un sistema distribuido requiere de un mayor esfuerzo por parte de los administradores, ya que el sistema puede incluir máquinas que dispongan de diferentes sistemas operativos o distintas versiones de los mismos. Hacer funcionar toda esta arquitectura de forma eficiente es mucho más complicado que en un sistema único centralizado y requiere del uso de protocolos estándar.
En qué casos es recomendable la arquitectura distribuida
La arquitectura distribuida es utilizada hoy en día en la mayoría de sistemas informáticos existentes como:
- Aplicaciones comerciales como software bancarias o sistemas de gestión de grandes empresas tipo SAP o aplicaciones CRM.
- Servicios en la nube como correo electrónico, almacenamiento cloud, o world wide web.
- Contenido multimedia incluyendo enseñanza online, videojuegos multijugador o servicios de videoconferencia.
- Sistemas informáticos complejos que incluyan base de datos distribuidas, telecomunicaciones, sistemas operativos distribuidos, servidores de ficheros y lenguajes de programación.
Los sistemas distribuidos se han convertido en la arquitectura más utilizada en la actualidad para diseñar y construir sistemas informáticos. Consisten en ordenadores separados físicamente unos de otros que cuentan con sus propias especificaciones de hardware y su sistema operativo individual, pero que se comunican a través de una red para funcionar como un sistema único.
La arquitectura distribuida permite realizar procesos con mayor velocidad y eficiencia, disponiendo de una gran tolerancia a fallos, pues la caída de uno de los equipos que la forman no interrumpe el funcionamiento general del sistema. Sin embargo, la gestión de este tipo de sistemas es mucho más compleja que la realizada en sistemas centralizados.