Contador visitas

Comunicación en los Sistemas Distribuidos

Comunicación en los Sistemas Distribuidos

MODELO CLIENTE-SERVIDOR




     La arquitectura cliente-servidor es un modelo de aplicación distribuida en el que las tareas se reparten entre los proveedores de recursos o servicios, llamados servidores, y los demandantes, llamados clientes. Un cliente realiza peticiones a otro programa, el servidor, quien le da respuesta. Esta idea también se puede aplicar a programas que se ejecutan sobre una sola computadora, aunque es más ventajosa en un sistema operativo multiusuario distribuido a través de una red de computadoras.

En esta arquitectura la capacidad de proceso está repartida entre los clientes y los servidores, aunque son más importantes las ventajas de tipo organizativo debidas a la centralización de la gestión de la información y la separación de responsabilidades, lo que facilita y clarifica el diseño del sistema.

La separación entre cliente y servidor es una separación de tipo lógico, donde el servidor no se ejecuta necesariamente sobre una sola máquina ni es necesariamente un sólo programa. Los tipos específicos de servidores incluyen los servidores web, los servidores de archivo, los servidores del correo, etc. Mientras que sus propósitos varían de unos servicios a otros, la arquitectura básica seguirá siendo la misma.

Una disposición muy común son los sistemas multicapa en los que el servidor se descompone en diferentes programas que pueden ser ejecutados por diferentes computadoras aumentando así el grado de distribución del sistema.

La arquitectura cliente-servidor sustituye a la arquitectura monolítica en la que no hay distribución, tanto a nivel físico como a nivel lógico.

La red cliente-servidor es aquella red de comunicaciones en la que todos los clientes están conectados a un servidor, en el que se centralizan los diversos recursos y aplicaciones con que se cuenta; y que los pone a disposición de los clientes cada vez que estos son solicitados. Esto significa que todas las gestiones que se realizan se concentran en el servidor, de manera que en él se disponen los requerimientos provenientes de los clientes que tienen prioridad, los archivos que son de uso público y los que son de uso restringido, los archivos que son de sólo lectura y los que, por el contrario, pueden ser modificados, etc. Este tipo de red puede utilizarse conjuntamente en caso de que se este utilizando en una red mixta.


CARACTERÍSTICAS



En la arquitectura Cliente-Servidor el remitente de una solicitud es conocido como cliente. 

Sus características son:

  • Es quien inicia solicitudes o peticiones, tienen por tanto un papel activo en la comunicación (dispositivo maestro o amo).
  • Espera y recibe las respuestas del servidor.
  • Por lo general, puede conectarse a varios servidores a la vez.
  • Normalmente interactua directamente con los usuarios finales mediante una interfaz gráfica de usuario.
  • Al contratar un servicio de redes, se debe tener en cuenta la velocidad de conexión que le otorga al cliente y el tipo de cable que utiliza , por ejemplo : cable de cobre ronda entre 1 ms y 50 ms.

Al receptor de la solicitud enviada por el cliente se conoce como servidor. 

Sus características son:
*Al iniciarse esperan a que lleguen las solicitudes de los clientes, desempeñan entonces un papel pasivo en la comunicación (dispositivo esclavo).
*Tras la recepción de una solicitud, la procesan y luego envían la respuesta al cliente.
*Por lo general, aceptan conexiones desde un gran número de clientes (en ciertos casos el número máximo de peticiones puede estar limitado).
*No es frecuente que interactúen directamente con los usuarios finales.



ARQUITECTURA DE DOS Y TRES CAPAS





    La arquitectura cliente/servidor genérica tiene dos tipos de nodos en la red: clientes y servidores. Consecuentemente, estas arquitecturas genéricas se refieren a veces como arquitecturas de dos niveles o dos capas.

Algunas redes disponen de tres tipos de nodos:

  • Clientes que interactúan con los usuarios finales.
  • Servidores de aplicación que procesan los datos para los clientes.
  • Servidores de la base de datos que almacenan los datos para los servidores de aplicación.

Esta configuración se llama una arquitectura de tres-capas.

Ventajas de las arquitecturas n-capas:
La ventaja fundamental de una arquitectura n-capas comparado con una arquitectura de dos niveles (o una tres-capas con una de dos niveles) es que separa hacia fuera el proceso, eso ocurre para mejorar el balance la carga en los diversos servidores; es más escalable.

Desventajas de las arquitecturas de la n-capas:
Pone más carga en la red, debido a una mayor cantidad de tráfico de la red.
Es mucho más difícil programar y probar el software que en arquitectura de dos niveles porque tienen que comunicarse más dispositivos para terminar la transacción de un usuario.


CATEGORÍAS DE SERVIDORES



  • Servidores de archivos.- Proporciona archivos para clientes. Si los archivos no fueran tan grandes y los usuarios que comparten esos archivos no fueran muchos, esto sería una gran opción de almacenamiento y procesamiento de archivos. El cliente solicita los archivos y el servidor los ubica y se los envía.

  • Servidores de Base de Datos.- Son los que almacenan gran cantidad de datos estructurados, se diferencian de los de archivos pues la información que se envía está ya resumida en la base de datos. Ejemplo: El Cliente hace una consulta, el servidor recibe esa consulta (SQL) y extrae solo la información pertinente y envía esa respuesta al cliente.*Servidores de Software de Grupo.- El software de grupo es aquel, que permite organizar el trabajo de un grupo. El servidor gestiona los datos que dan soporte a estas tareas. Por ejemplo: almacenar las listas de correo electrónico. El Cliente puede indicarle, que se ha terminado una tarea y el servidor se lo envía al resto del grupo.

  • Servidores WEB.- Son los que guardan y proporcionan Páginas HTML. El cliente desde un browser o link hace un llamado de la página y el servidor recibe el mensaje y envía la página correspondiente.

  • Servidores de correo.- Gestiona el envío y recepción de correo de un grupo de usuarios (el servidor no necesita ser muy potente). El servidor solo debe utilizar un protocolo de correo.

  • Servidor de objetos.- Permite almacenar objetos que pueden ser activados a distancia. Los clientes pueden ser capaces de activar los objetos que se encuentran en el servidor.

  • Servidores de impresión.- Gestionan las solicitudes de impresión de los clientes. El cliente envía la solicitud de impresión, el servidor recibe la solicitud y la ubica en la cola de impresión, ordena a la impresora que lleve a cabo las operaciones y luego avisa a la computadora cliente que ya acabo su respectiva impresión.

  • Servidores de aplicación.- Se dedica a una única aplicación. Es básicamente una aplicación a la que pueden acceder los clientes.



RED DE COMUNICACIÓN


    Una red de comunicación es básicamente un conjunto o sistema de equipos informáticos conectados entre sí, por medio de dispositivos físicos que envían y reciben impulsos eléctricos, ondas electromagnéticas o cualquier otro medio para el transporte de datos con la finalidad de compartir datos, información recursos y ofrecer servicios.





Características


    En primer lugar las redes de comunicaciones se pueden distinguir en función de si el camino por el que circula la información es posible en ambos sentidos o uno solo. Asi, se tienen:

a) redes de comunicaciones unidireccionales en las que la información viaja desde un emisor a un receptor, no existiendo camino de retorno para la comunicación inversa. Este tipo de comunicaciones se suele encontrar en las redes de difusión o distribución.

b) redes de comunicaciones bidireccionales o interactivas: la información entre los extremos viaja en los dos sentidos, típicamente por el mismo camino, aunque también existen redes en que no tiene por que coincidir los caminos de ida y vuelta. Algunos ejemplos son las redes de telefonía y de datos.

c) redes híbridas, en las que se integran tipos diferentes de redes; por ejemplo, una red unidireccional para un sentido de la comunicación es combinada con otra red para el camino de retorno. Estas soluciones fragmentarias permiten tener, por ejemplo, servicios interactivos de televisión, en la que ésta es recibida por la red de difusión terrestre o por satélite, mientras que las selecciones del usuario y sus peticiones de vídeo bajo demanda (VoD), se envían por Internet (sobre la red telefónica).

    En cuanto al ancho de banda, hay que señalar que los tipos de información que pueden circular por las redes son muy variados, en cuanto a su naturaleza, tratamiento, degradación y, particularmente de muy distinto ancho de banda. Dentro del ancho de banda de una señal quedan recogidas todas las frecuencias distintas que incorpora la señal. Las variaciones de frecuencia de una señal de voz son muy inferiores a las de una imagen movimiento (vídeo). La tecnología requerida en cada caso es muy distinta; la frecuencia es la variable fundamental del diseño de sistemas de comunicaciones. en sus aspectos de transporte de señal. De aquí, se puede hablar de redes de banda ancha cuando la información que manejan ocupa un rango de frecuencias elevado y de banda estrecha en caso contrario.

    Además, en determinados usos de las redes de comunicaciones, uno de los extremos genera mucha más información que el otro, lo que tiene implicaciones relativas a la ubicación de las infraestructuras de mayor ancho de banda, en el sentido emisor-receptor o en el inverso. El grado de simetría se refiere a la distribución del flujo de información entre los dos extremos de la comunicación, distinguiéndose entre redes asimétricas y redes simétricas. En las primeras uno de los extremos de la comunicación genera mucha mayor cantidad de información que la otra parte y el mayor ancho de banda mayor se situará en el camino de emisor a receptor, siendo muy inferior el dispuesto en sentido contrario.

    Por último si la información y el manejo que se hace de la misma es en formato digital, se puede hablar de redes digitales. Por el contrario si la información y/o el manejo de la misma es analógico, se trata de redes analógicas.



 INTERFACES DE UN SERVICIO DE ARCHIVO



    Un aspecto importante del modelo de archivo es si éstos se pueden modificar después de su creación. Existen algunos sistemas distribuidos que permiten únicamente las operaciones de archivos CREATE Y READ. Una vez creado un archivo no se puede modificar. Se dice que tal archivo es inmutable. Estos archivos facilitan el ocultamiento y duplicación de archivos, puesto que esto elimina todos los problemas asociados con la actualización de todas las copias de un archivo cada vez que éste se modifique.



    La protección en los sistemas distribuidos utiliza la misma técnica de los procesos con un procesador: posibilidades y listas para control de acceso. En el caso de las posibilidades cada usuario tiene cierto boleto llamado posibilidad, para cada objeto al que tiene acceso. La posibilidad determina los tipos de accesos permitidos ( por ejemplo se permite la lectura pero no la escritura ).

   Todos los esquemas de lista para el control de acceso asocian a cada archivo una lista implícita o explícita de los usuarios que pueden tener acceso a los archivos y la forma de dicho acceso. El esquema de UNIX es una lista para control de acceso simplificada, con los bits que controlan la lectura, escritura y ejecución de cada archivo, en forma independiente para el propietario, grupo del propietario y todas las demás personas.

    Los servicios de archivos se pueden dividir en dos tipos, según si soportan un modelo carga /descarga o un modelo de acceso remoto. En el modelo carga/descarga el servicio de archivo sólo proporciona la lectura de un archivo y la escritura del mismo. En la lectura transfiere todo un archivo de uno de los servidores de archivos al cliente solicitante. La escritura transfiere todo un archivo en sentido contrario del cliente al servidor. Los archivos se pueden almacenar en memoria o en disco local, como sea necesario.

    La ventaja del modelo carga/descarga es la sencillez del concepto. Los programas de aplicación buscan los archivos que necesitan y después lo utilizan de manera local. Los archivos modificados o nuevos se escriben de regreso al terminar el programa.

    Además, la transferencia de archivos completos es muy eficiente. Sin embargo el cliente debe disponer de un espacio suficiente de almacenamiento para todos los archivos necesarios. Otra desventaja es que si sólo se necesita una pequeña fracción de un archivo, el traslado del archivo completo es un desperdicio.

   El otro tipo de servicios de archivos el de acceso remoto, en este modelo se proporcionan un gran número de operaciones para abrir y cerrar archivos, leer y escribir parte de archivo, moverse a través de un archivo, examinar y modificar los atributos de archivos, etc. Mientras en el modelo carga/descarga el servicio de archivos sólo proporciona el almacenamiento físico y la transferencia, en este caso el sistema de archivos se ejecuta en los servidores y no en los clientes. Su ventaja es que no necesita mucho espacio por parte de los clientes, a la vez que elimina la necesidad de transferir archivo completos cuando sólo se necesita un parte de ellos.



LLAMADAS A PROCEDIMIENTOS REMOTOS




     En la actualidad son bastante comunes y utilizados por lo regular de manera diaria, pero son pocos conocen lo que son, las llamadas de procedimiento remoto o bien, PRC (Remote Procedure Call) por sus siglas en inglés.



     Una llamada de procedimiento remoto (RPC) consiste en un protocolo que permite a un software o programa ejecutar código en otra máquina remota sin preocuparse por la comunicación, por lo regular es bastante utilizado en el paradigma cliente y servidor. Existen varios tipos de RPC pero estos son los más comunes:

  • ONC RPC de Sun
  • DCE/RPC de OSF
  • Modelo de Objetos de Componentes Distribuidos de Microsoft DCOM


    Éste último es el más utilizado debido a que, como ya hemos comentado en bastantes ocasiones, es el sistema operativo más utilizado y por tanto, los servicios (la mayoría) que ofrece su empresa creadora también lo son.

    El ejemplo más común y el más claro con el que se puede explicar este tipo de protocolo son las famosas actualizaciones de Windows. El cliente (en este caso nuestro PC) se conecta con los servidores de Microsoft para solicitar actualizaciones, de haber alguna de éstas, se realiza el proceso de que caracteriza a los RPC. No solo existe este tipo de aplicación para este tipo de protocolo en realidad son bastantes los usos que se les pueden dar, pero este es el más sencillo y común de entender.



MIDDLEWARE


     Es un software que asiste a una aplicación para interactuar o comunicarse con otras aplicaciones, software, redes, hardware y/o sistemas operativos. Éste simplifica el trabajo de los programadores en la compleja tarea de generar las conexiones que son necesarias en los sistemas distribuidos. De esta forma se provee una solución que mejora la calidad de servicio, seguridad, envío de mensajes, directorio de servicio, etc.


     Funciona como una capa de abstracción de software distribuida, que se sitúa entre las capas de aplicaciones y las capas inferiores (sistema operativo y red). El middleware abstrae de la complejidad y heterogeneidad de las redes de comunicaciones subyacentes, así como de los sistemas operativos y lenguajes de programación, proporcionando una API para la fácil programación y manejo de aplicaciones distribuidas. Dependiendo del problema a resolver y de las funciones necesarias, serán útiles diferentes tipos de servicios de middleware. Por lo general el middleware del lado cliente está implementado por el Sistema Operativo, el cual posee las bibliotecas que ejecutan todas las funcionalidades para la comunicación a través de la red.


PROTOCOLOS DE COMUNICACION


    Debido a la ausencia de memoria compartida, toda la comunicación en los sistemas distribuidos se basa en la transferencia de mensajes
Cuando el proceso “A” quiere comunicarse con el proceso “B”:

  • Construye un mensaje en su propio espacio de direcciones.
  • Ejecuta una llamada al sistema para que el S. O. busque el mensaje y lo envíe a través de la red hacia “B”.
  • Para evitar el caos, “A” “B” deben coincidir en el significado de los bits que se envíen.


Los puntos de acuerdo necesarios incluyen lo siguiente:


  • ¿Cuántos voltios hay que utilizar para un bit “0” y cuántos para un bit “1”?.
  • ¿Cómo sabe el receptor cuál es el último bit del mensaje?.
  • ¿Cómo puede detectar si un mensaje ha sido dañado o perdido, y qué debe hacer si lo descubre?.
  • ¿Qué longitud tienen los números, cadenas y otros elementos de datos y cuál es la forma en que están representados?.


    La ISO (Organización Internacional de Estándares) desarrolló un modelo de referencia que(ver Figura 8.1) :
  • Identifica en forma clara los distintos niveles.
  • Estandariza los nombres de los niveles.
  • Señala cuál nivel debe realizar cuál trabajo.

   Este modelo se denomina “modelo de referencia para interconexión de sistemas abiertos” (ISO OSI o modelo OSI).
El “modelo OSI” está diseñado para permitir la comunicación de los sistemas abiertos:

  • Son aquellos preparados para comunicarse con cualquier otro sistema abierto mediante reglas estándar:
    • Establecen el formato, contenido y significado de los mensajes recibidos y enviados.
    • Constituyen los protocolos, que son acuerdos en la forma en que debe desarrollarse la comunicación(ver Figura 8.2)

El “modelo OSI” distingue entre dos tipos generales de protocolos:

  • Orientados hacia las conexiones:
    • Antes de intercambiar los datos, el emisor y el receptor:
      • Establecen en forma explícita una conexión.
      • Probablemente negocien el protocolo a utilizar.
      • Al finalizar, deben terminar la conexión.
      • El teléfono es un sistema de comunicación orientado hacia la conexión.
  • Sin conexión:
    • No es necesaria una configuración de antemano.
    • El emisor transmite el primer mensaje cuando está listo.
    • El depósito de una carta en un buzón es una comunicación sin conexión.

    Cada capa proporciona una interfaz con la otra capa por encima de ella; la interfaz consiste de un conjunto de operaciones para definir el servicio que la capa está preparada para ofrecer a sus usuarios.
El protocolo de la capa “n” utiliza la información de la capa “n”.

    Cada protocolo de capa se puede cambiar independientemente de los demás:

  • Esto es de fundamental importancia.
  • Confiere gran flexibilidad.


    La colección de protocolos utilizados en un sistema particular se llama una “suite de protocolo” o “pila de protocolo”.

1 comentario: