Saltar al contenido
Codifíca.me | Desarrollo web | Programación

La transparencia en los sistemas distribuidos

7 abril, 2015

La definición de transparencia en un sistema distribuido es la ocultación al usuario que los componentes de este sistema distribuido están separados. Por lo tanto, el usuario percibirá que el sistema es un único sistema y no varios compones separados.

Existen ocho formas de transparencia, las que más consideración tienen en un sistema distribuido son la transparencia a nivel de acceso y la transparencia a nivel de localización.

sistemasdistribuidos

Transparencia de Acceso.
Hace referencia al acceso a las entidades del sistema, tanto si son locales como si son remotas deben seguir ocultando que son entidades diferentes, formando una única entidad, así pues el acceso al sistema por el usuario debe ser único para toda la entidad.

Transparencia de localización.
Engloba la transparencia de nombre y la transparencia de movilidad, la primera exige que cualquier referencia a la entidad no deba exponer ninguna indicación de la localización de la entidad. La segunda hace referencia a que el sistema sea igual de consistente independientemente desde dónde el usuario haga referencia al sistema.

A estas dos tipos de transparencias en conjunto se las denomina como transparencias de red.

En entornos de arquitectura Web encontramos algunos ejemplos de cómo funciona la transparencia en sistemas distribuidos.

Ejemplos de transparencia en la arquitectura web

Por ejemplo, cuando desde nuestro navegador escribimos el nombre de una página web, lo primero que se hace es traducir ese nombre a una dirección IP, esa dirección IP es dónde está alojada la información a la que quieres acceder desde el navegador. Cómo existen millones de direcciones IPs y pueden cambiar frecuentemente se necesitaba una gran base de datos distribuida en varios nodos, que a su vez cada nodo está compuesto de varias “máquinas” que son capaces de mantener correctamente los datos y de resolver rápidamente cualquier nombre de dominio en una dirección IP. Para esta labor se utilizan los denominados servidor de nombre “Domain name system” (DNS).
Podemos comprobar que el principio de transparencia de localización sería igual independientemente desde dónde el usuario busque una página web.

Otro ejemplo de transparencia de replicación también se da cuando accedemos a una página web que esta replicada en un CDN, los CDN son servidores distribuidos Geográficamente que se encargan de replicar una misma página web para estar más cercana al usuario final. Cómo ejemplo, cuando accedemos a una página en la que el servidor está en Australia, las peticiones y respuestas tienen que viajar desde España a Australia y de Australia a España, lo cual no solo hace que el tiempo de carga de una página web sea más grande, sino que además cargamos considerablemente la red ya que los datos tienen que hacer un recorrido mucho más grande.

Para mejorar esto se utilizan los CDN (Content Delivery Network), se encargan de replicar la web en distintos servidores distribuidos geográficamente que trabajan como uno solo, y cuando solicitas una página web desde España, el nodo del CDN que esté más cerca o menos colapsado devolverá el contenido al usuario, con el fin de que la navegación sea más fluida, consiguiendo una mejor experiencia para el usuario.

También en los CDN podemos ver el principio de transparencia de localización, ya que una misma web puede ser enviada o accedida desde diversos puntos geográficos y el resultado del contenido enviado será igual para el usuario final, independientemente de dónde se encuentre el usuario o el CDN.

Utilizamos el principio de transparencia de concurrencia, por ejemplo, cuando realizamos una compra a través de un supermercado digital que tiene un sistema distribuido para poder realizar compras por internet, y accedemos a su página, realizamos la compra, y no existe ningún problema porque haya varios usuarios comprando en la misma tienda, es decir, en programación podemos tener varios “objetos” sin que uno modifique los datos del otro.

En los CDN o en entornos webs que utilicen varios servidores, podemos ver el principio de transparencia de Fallos, cuando uno de los servidores “está caído” y no puede devolver el contenido y otro servidor toma el relevo enviando el contenido al usuario como si fuesen una única entidad.

La transparencia de escalado se manifiesta cuando incorporamos otros servidores a la red de contenidos sin que exista ninguna parada de servicio ni ningún problema, sencillamente se incorpora otras máquinas que ayudarán a aliviar la carga de trabajo de los servidores existentes.