Los Sistemas Operativos y su Distribución – Parte V

Marte sin ganas, martes dormido, martes hinchado, martes que parece un miércoles … No es que precise vacaciones, no es que precise más visitantes por acá, es justo esa hora de la mañana donde he hecho varias cosas, me quedan otras tantas para hacer y no tengo ganas de nada.

Supongamos que es culpa de la época del año en la que estamos. Supongamos … Pero volvamos y despejemos la mente, que se muevan esos engranajes leyendo y aprendiendo un poco con los SOs y esta quinta parte.

Si quieren pueden pasar por:

Relación entre los Sistemas Distribuídos y las Pilas de OSI y TCP/IP


Existen varias definiciones para Sistema distribuido, pero en todas se hace referencia a una colección de computadoras conectadas entre si y apareciendo como un único sistema de cara al usuario. Esta caracterización implica que los sistemas distribuidos presentan ciertas propiedades, como transparencia por ejemplo; mas aun, dado que un sistema distribuido se compone de varias partes, cada una realizando una función particular, es posible vislumbrar un paralelismo entre los sistemas distribuidos como un todo y las pilas de red OSI y TCP/IP. Tanto es así que el propósito de esta sección es establecer una analogía entre los sistemas distribuidos en general y los modelos de referencia OSI y TCP/IP.

Por si no lo sabemos o modo de repaso para los más versados, el modelo OSI sirve de referencia a la hora de hablar acerca de protocolos de red. Por ejemplo, cuando se dice que IP es un protocolo de capa 3, estamos haciendo referencia al modelo OSI y situando a IP en la Capa de Red. Sin embargo, aunque el modelo OSI sea muy conocido y utilizado como referencia, la pila de red mas usada actualmente es la denominada TCP/IP (en referencia a los dos protocolos mas importantes que la componen).



Tanto TCP/IP como OSI están pensados en términos de capas o layers, de modo que una capa brinda servicios a la siguiente. Por ejemplo, en TCP/IP, la capa de aplicación usa los servicios brindados por la capa de transporte. Análogamente, los sistemas distribuidos están pen­sados para que una componente pueda consumir servicios de otras. Esta es otra similitud que sirve para elaborar una analogía entre las pilas de red y los sistemas distribuidos.



Sobre las Propiedades de un Sistema Distribuido


Los sistemas distribuidos presentan varias propiedades o características, como son transpa­rencia, apertura (openness) y escalabilidad.

Transparencia

Se busca que un sistema distribuido sea transparente para ocultar el hecho de que los recursos y procesos que lo componen se encuentran repartidos entre varias componentes, de modo que los usuarios ven al sistema como un todo. Por ejemplo, cuando un usuario realiza una consulta de DNS, son varias las componentes involucradas en devolver una respuesta (aunque el usuario no percibe esa complejidad).

De forma similar operan las pilas OSI y TCP/IP. En este caso la transparencia se da mediante el encapsulamiento de los datos. De esta manera los datos enviados por una aplicación se rutean hacia su destino, sin que la aplicación conozca las rutas e intermediarios transitados.

Existen varios sentidos en los cuales un sistema puede ser transparente:

  • Acceso: La transparencia en el acceso implica ocultar la representación de los datos y la manera de accederlos. Por ejemplo, cuando un usuario hace una con­sulta de DNS, no sabe el formato en el que se almacenan los datos solicitados ni cuales son los servidores encargados de generar la respuesta, pero de todas maneras recibe una. En el caso de los modelos OSI y TCP/IP, las capas inferiores abstraen a las superiores de los pormenores a la hora de acceder a los diferentes medios de comunicación en uso. Por ejemplo, un servidor web que opera en la capa de aplicaciones no sabe si esta brindando servicio sobre una red WiFi o cableada, porque las capas inferiores de la pila realizan la abstracción necesaria.
  • Locación: Se dice que existe transparencia de locación o localidad cuando los recursos puede residir en cualquier lugar sin que esto afecte a la calidad y/o funcionamiento del servicio. En otras palabras, el usuario no sabe donde esta físicamente el recurso en el sistema. Algo similar ocurre con los dispositivos conectados a una red. Y esta transpa­rencia de locación la brinda la capa de Red (El protocolo IP en el caso de la pila TCP/IP). Obviamente aquí se asume que la latencia del medio de comunicación es aceptable para el tipo de servicio que se quiere brindar.
  • Concurrencia: En el contexto de concurrencia transparente se espera que el usuario no perciba el hecho de que un mismo recurso puede estar siendo accedido y usado por otros clientes al mismo tiempo. La analogía con las distintas capas de los modelos OSI y TCP/IP es bastante obvia: las distintas capas arbitran el acceso a los recursos y su utilización. Por ejemplo, la capa de acceso al medio se encarga de multiplexar el trafico y arbi­tral” el acceso al medio.
  • Fallas: Se busca que la aparición y recuperación de fallas sea transparente al usuario. Por ejemplo, si un servidor de DNS falla, automáticamente se pregunta a algún otro servidor que tiene información para la zona en cuestión. Análogamente, IP fue pensado para lidiar con fallas en los enlaces, de modo que un paquete puede transitar por rutas alternativas. De todas maneras, IP no asegura la entrega del paquete, es un protocolo de mejor esfuerzo. Por otro lado, TCP si asegura la entrega de todos los datos, o la certeza de que no se pudieron entregar.

Apertura

Por otro lado, cuando se habla de la apertura (openness en ingles) de un sistema, se esta haciendo referencia al hecho de que el sistema brinda servicios según reglas cuya sintaxis y semántica están bien definidas. A modo de ejemplo se puede tomar la Web, donde existen clientes y servidores web que hablan un idioma cuya sintaxis y semántica esta bien definida: el protocolo HTTP.

Una consecuencia importante de la existencia de estos estándares es la posibilidad de implementarlos sobre diversas plataformas, dando lugar a sistemas distribuidos heterogéneos: No es necesario que todas las componentes corran sobre el mismo hardware, sistema operativo y usen las mismas librerías y lenguajes de programación.

Esta misma noción de servicios bien definidos es lo que permite crear fácilmente nuevos protocolos en las distintas capas de TCP/IP. Por ejemplo, dado que los protocolos UDP y TCP estan bien definidos, es relativamente fácil crear protocolos de capa de aplicación que los utilicen.



Escalabilidad

La ultima propiedad nombrada implica que los sistemas distribuidos deben ser capaces de crecer y contraerse sin perder calidad en el servicio ofrecido: Escalabilidad.

Esta propiedad se puede medir de diferentes maneras. Por un lado, se puede hablar de es­calabilidad refiriéndose al tamaño del sistema (cantidad de nodos, datos, usuarios, enlaces). También se habla de escalabilidad geográfica cuando el sistema continua siendo viable sin importar la lejanía geográfica entre sus usuarios y componentes. Y por ultimo, existe el concepto de escalabilidad administrativa, que implica que las organizaciones se pueden adherir al sistema sin que la calidad del servicio brindado disminuya.

De forma implícita, se espera que la usabilidad y administrabilidad del servicio no disminuya a medida que este crece.

Un ejemplo clásico es el servicio de DNS. La escalabilidad en DNS se da agregando mas zonas y servidores al sistema; estos servidores están repartidos geográficamente alrededor del mundo y su administración esta delegada a las organizaciones de las zonas correspondientes.

Aqui la analogía puede hacerse con la inclusión de nuevos protocolos a la pila. Por ejemplo, cuando se creo la pila TCP/IP, el protocolo HTTP no existía; sin embargo, fue fácil incluirlo en la capa de aplicaciones.

Otra manera de pensar la escalabilidad en TCP/IP es en la cantidad de nodos que componen el sistema. Las estadísticas muestran el crecimiento de los usuarios de Internet (Y por ende de los usuarios del protocolo IP) a lo largo de los años y esta claro que el protocolo fue capaz de soportar ese crecimiento.


Analogía Basada en los Servicios

Existen varios modelos que describen la interacción entre las distintas partes de un sistema distribuido. Uno de estos modelos se conoce como Cliente-Servidor, ya descrito. Muchos de los sistemas usados diariamente están implementados según el modelo de Cliente-Servidor. Algunos ejemplos de esta clase de protocolos son HTTP, DNS, SMTP y SSH.

Como se dijo en el párrafo anterior, la modalidad de la interacción consiste en que los clientes envían solicitudes a los servidores, los servidores realizan alguna operatoria para satisfacer la solicitud, y luego envían la respuesta al cliente. De forma similar, cada capa de la pila de red da un servicio a la capa que esta inmediatamente encima.

Por definición un sistema distribuido se compone de varias partes y servicios. Es necesario algún mecanismo para referenciar cada una de esas partes. Para esto se utilizan nombres e identificadores.

De forma similar existen nombres e identificadores en las distintas capas de los modelos OSI y TCP/IP. Por ejemplo, la IP de un dispositivo puede verse como un nombre (pero no como un identificador). La MAC sirve al mismo proposito pero en una capa inferior. Así, también, los puertos sirven para referenciar servicios y aplicaciones en un mismo host.

La semana que viene vamos a encarar directamente al modelo cliente-servidor con varias cosas que quedaron colgadas y valen la pena desarrollar.

1 pensamiento en “Los Sistemas Operativos y su Distribución – Parte V”

  1. Pingback: Los Sistemas Operativos Distribuidos – Cliente/Servidor – Parte I

Deja un comentario