redes en sistemas distribuidos...la intranet de la casa del usuario y la de la organización...

19
UNIVERSIDAD NACIONAL EXPERIMENTAL DE GUAYANA VICERRECTORADO ACADEMICO COORDINACIÓN GENERAL DE INVESTIGACIÓN Y POSTGRADO MAESTRÍA EN TECNOLOGÍAS DE LA INFORMACIÓN REDES EN SISTEMAS DISTRIBUIDOS Profesor: HERNANDEZ, Juan Realizado por APONTE, Marcel CABRERA, Ransney CORTEZ, Ramón HERNANDEZ, Yonel Ciudad Bolívar, Octubre 2015

Upload: others

Post on 09-Oct-2020

19 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: REDES EN SISTEMAS DISTRIBUIDOS...la intranet de la casa del usuario y la de la organización anfitriona en el lugar que está visitando dicho usuario. Ambas intranets están conectadas

UNIVERSIDAD NACIONAL EXPERIMENTAL DE GUAYANAVICERRECTORADO ACADEMICO

COORDINACIÓN GENERAL DE INVESTIGACIÓN Y POSTGRADOMAESTRÍA EN TECNOLOGÍAS DE LA INFORMACIÓN

REDES EN SISTEMAS DISTRIBUIDOS

Profesor:HERNANDEZ, Juan

Realizado porAPONTE, Marcel

CABRERA, RansneyCORTEZ, Ramón

HERNANDEZ, Yonel

Ciudad Bolívar, Octubre 2015

Page 2: REDES EN SISTEMAS DISTRIBUIDOS...la intranet de la casa del usuario y la de la organización anfitriona en el lugar que está visitando dicho usuario. Ambas intranets están conectadas

INDICE

INTRODUCCIÓN 3

1. SISTEMAS DISTRIBUIDOS 41.1 Conceptos 41.2 Propósito 4

2. EJEMPLOS DE SISTEMAS DISTRIBUIDOS 42.1 Internet 42.2 Intranets 52.3 Computación Móvil y Ubicua 52.4 Recursos Compartidos y Web 6

3. VENTAJAS Y DESVENTAJAS DE LOS SISTEMAS DISTRIBUIDOS 73.1 Ventajas de los Sistemas Distribuidos frente a los Centralizados 83.2 Ventajas de los Sistemas Distribuidos sobre las Computadoras Aisladas 83.3 Desventajas de los Sistemas Distribuidos 8

4. CARACTERISTICAS CLAVES DE LOS SISTEMAS DISTRIBUIDOS 94.1 Compartir Recursos 94.2 Apertura o Extensibilidad 94.3 Concurrencia 104.4 Escalabilidad 104.5 Tolerancia a Fallas 114.6 Transparencia 12

5. PARADIGMAS DE LOS SISTEMAS DISTRIBUIDOS 125.1 Cliente-Servidor 125.2 Peer-to-peer 135.3 Middleware 145.4 Monitor de Procesamiento de Transacciones 155.5 Llamada a Procedimientos Remotos 165.6 Sistema de Mensajes 16

CONCLUSIONES 18

BIBLIOGRAFÍA 19

2

Page 3: REDES EN SISTEMAS DISTRIBUIDOS...la intranet de la casa del usuario y la de la organización anfitriona en el lugar que está visitando dicho usuario. Ambas intranets están conectadas

INTRODUCCIÓN

Un sistema distribuido se define como una colección de computadores autónomos conectados poruna red, y con el software distribuido adecuado para que el sistema sea visto por los usuarios comouna única entidad capaz de proporcionar facilidades de computación.

Los sistemas distribuidos se implementan en diversas plataformas hardware, desde unas pocasestaciones de trabajo conectadas por una red de área local, hasta Internet, una colección de redes deárea local y de área extensa interconectados, que en lazan millones de ordenadores.

Las aplicaciones de los sistemas distribuidos varían desde la provisión de capacidad de computo agrupos de usuarios, hasta sistemas bancarios, comunicaciones multimedia y abarcan prácticamentetodas las aplicaciones comerciales y técnicas de los ordenadores. Los requisitos de dichasaplicaciones incluyen un alto nivel de fiabilidad, seguridad contra interferencias externas y privacidadde la información que el sistema mantiene. Se deben proveer accesos concurrentes a bases de datospor parte de muchos usuarios, garantizar tiempos de respuesta, proveer puntos de acceso al servicioque están distribuidos geográficamente, potencial para el crecimiento del sistema para acomodar laexpansión del negocio y un marco para la integración de sistema usados por diferentes compañías yorganizaciones de usuarios.

3

Page 4: REDES EN SISTEMAS DISTRIBUIDOS...la intranet de la casa del usuario y la de la organización anfitriona en el lugar que está visitando dicho usuario. Ambas intranets están conectadas

1. SISTEMAS DISTRIBUIDOS

1.1 Conceptos

“Un sistema distribuido es aquel en el que los componentes localizados en computadores, conectados en red, comunican y coordinan sus acciones mediante el paso de mensajes.” [Coulouris, 2001]

“Conjunto de computadores independientes, interconectados a través de una red y que son capaces de colaborar para realizar una tarea .” [Liu, 2004]

“Colección de computadores independientes que aparecen ante los usuarios como un único computador.” [Tanenbaum 1996]

1.2 Propósito

Los sistemas distribuidos se implementan en diversas plataformas hardware, desde unas pocas estaciones de trabajo conectadas por una red de área local, hasta Internet, una colección de redes de área local y de área extensa interconectados, que en lazan millones de ordenadores.

Las aplicaciones de los sistemas distribuidos varían desde la provisión de capacidad de computo a grupos de usuarios, hasta sistemas bancarios, comunicaciones multimedia y abarcan prácticamente todas las aplicaciones comerciales y técnicas de los ordenadores. Los requisitos de dichas aplicaciones incluyen un alto nivel de fiabilidad, seguridad contra interferencias externas y privacidad de la información que el sistema mantiene. Se deben proveer accesos concurrentes a bases de datos por parte de muchos usuarios, garantizar tiempos de respuesta, proveer puntos de acceso al servicio que están distribuidos geográficamente, potencial para el crecimiento del sistema para acomodar la expansión del negocio y un marco para la integración de sistema usados por diferentes compañías y organizaciones de usuarios.

2. EJEMPLOS DE SISTEMAS DISTRIBUIDOS

2.1 Internet

Internet es una amplia colección de redes de computadoras de diferentes tipos interconectados. La figura 1, muestra una porción típica de Internet. Programas ejecutándose en los computadores conectados a ella interactúan mediante paso de mensajes, empleando un medio común de comunicación.

El diseño y la construcción de los mecanismos de comunicación Internet es una realización técnica fundamental, que permite que un programa que se está ejecutando en cualquier parte dirija mensajes a programas en cualquier otra parte.

Internet es también es un sistema distribuido muy grande. En Internet hay disponibles servicios multimedia, que permiten a los usuarios el acceso a datos, de audio y vídeo, incluyendo música, radio y canales de televisión, y mantener videoconferencias. La capacidad de Internet para mantener los requisitos especiales de comunicación de los datos multimedia es actualmente bastante limitada porque no proporciona la infraestructura necesaria para reservar capacidad de la red para flujos individuales de datos.

4

Page 5: REDES EN SISTEMAS DISTRIBUIDOS...la intranet de la casa del usuario y la de la organización anfitriona en el lugar que está visitando dicho usuario. Ambas intranets están conectadas

Figura 1. Una porción típica de Internet

2.2 Intranets

Una intranet es una porción de Internet que es, administrada separadamente y que tiene un límite que puede ser configurado para hacer cumplir políticas de seguridad local.

La figura 2 muestra una intranet típica. Está compuesta de varias redes de área local (LAN) enlazadas por conexión backbone. La configuración de red de una intranet particular es responsabilidad de la organización que la administra y puede variar ampliamente, desde una LAN en un único sitio a un conjunto de LANs conectadas perteneciendo a ramas de la empresa u otra organización en diferentes países.

Figura 2. Una Intranet típica

2.3 Computación Móvil

Los avances tecnológicos en la miniaturización de dispositivos y en redes inalámbricas han llevado cada vez más a la integración de dispositivos de computación pequeños y portátiles ensistemas distribuidos. Estos dispositivos incluyen:

5

Page 6: REDES EN SISTEMAS DISTRIBUIDOS...la intranet de la casa del usuario y la de la organización anfitriona en el lugar que está visitando dicho usuario. Ambas intranets están conectadas

- Computadores portátiles.- Smartphones, Tablets.- Dispositivos integrados en aparatos, como lavadores, sistemas de alta fidelidad, automóviles,neveras, etc.

La facilidad de transporte de muchos de estos dispositivos, junto con su capacidad para conectarse adecuadamente a redes en diferentes lugares, hace posible la computación móvil. Se llama computación móvil a la realización de tareas de cómputo mientras el usuario está en movimiento o visitando otros lugares distintos de su entorno habitual.

La figura 3, muestra a un usuario que está visitando una organización. En la figura se aprecia la intranet de la casa del usuario y la de la organización anfitriona en el lugar que está visitando dicho usuario. Ambas intranets están conectadas al resto de Internet.

Figura 3. Dispositivos portátiles en un Sistema Distribuido

2.4 Recursos Compartidos y Web

Los usuarios están tan acostumbrados a los beneficios de compartir recursos que pueden pasar por alto su significado. Normalmente compartimos recursos hardware como impresoras, recursos de datos como archivos, y recursos con una funcionalidad más específica como máquinas de búsqueda.

El término servidor se refiere a un programa en ejecución (un proceso) en un computador en red que acepta peticiones de programas que se están ejecutando en otras computadoras pararealizar un servicio y responder adecuadamente. Los procesos solicitantes son llamados clientes. Las peticiones se envían a través de mensajes desde los clientes al servidor y las contestaciones se envían mediante mensajes desde el servidor a los clientes. Cuando un cliente envía una petición para que se realice una operación, decimos que el cliente invoca una operación del servidor. Se llama invocación remota a una interacción completa entre un cliente y un servidor, desde el instante en el que el cliente envía su petición hasta que recibe larespuesta del servidor.

El mismo proceso puede ser tanto un cliente como un servidor, puesto que los servidores a veces invocan operaciones en otros servidores. Los términos cliente y servidor se aplican a losroles desempeñados en una única solicitud.

6

Page 7: REDES EN SISTEMAS DISTRIBUIDOS...la intranet de la casa del usuario y la de la organización anfitriona en el lugar que está visitando dicho usuario. Ambas intranets están conectadas

Ambos son distintos, en muchos aspectos, los clientes son activos y los servidores pasivos, los servidores se están ejecutando continuamente, mientras que los clientes sólo lo hacen el tiempo que duran las aplicaciones de las que forman parte.

Muchos sistemas distribuidos, aunque no todos, pueden ser construidos completamente en forma de clientes y servidores que interactúan. Internet, el correo electrónico y las impresoras en red concuerdan con este modelo.

Figura 4. Servidores Web y Visualizadores Web

3. VENTAJAS Y DESVENTAJAS DE LOS SISTEMAS DISTRIBUIDOS

Por su estructura y sus características los sistemas distribuidos ofrecen grandes ventajas a losusuarios. La primera de ellas es que se adecuan a un concepto común en la vida de los sereshumanos: la distribución. Es decir, el hombre comparte información y recursos sin necesidad decomplejos protocolos de comunicación u otros requerimientos, simplemente se comunica. Así que lossistemas distribuidos se acercan más al concepto que tiene el hombre de compartir recursos.

El costo y el rendimiento de los sistemas son reducidos, debido a que cada dispositivo del sistema sedesenvuelve como una entidad. Es programado por separado y no dependiendo de otros dispositivos.No se requieren costosos sistemas de redes que requieran de una configuración exhaustiva. Ademáslos sistemas de comunicación han mejorado su rendimiento, implementando protocolos que permitenla rápida y efectiva transmisión de datos, incluyendo multimedia.

Otra ventaja importante es la modularidad, ya que un sistema distribuido deja de ser centralizado ycada una de las entidades que lo componen tiene integrado su propio sistema de control. Es decircada entidad es independiente y es programada cuidadosamente para que tenga un óptimodesempeño dentro de una comunidad de servicios. Además, un sistema distribuido es expandible yescalable. Por la misma razón que cada entidad es programada de tal forma que sea independientepueden ser añadidas o removidas de un sistema, a esto se refiere la escalabilidad. En cuanto alconcepto de expansión dentro de un sistema significa que, no sólo se pueden agregar nuevosdispositivos periféricos, sino también se pueden agregar procesadores y servidores que incrementenla capacidad de almacenamiento del sistema.

También ofrece como ventaja la disponibilidad de los dispositivos, gracias a que cada entidad debe deestar programada dentro del concepto de redundancia de esta manera sus servicios permanecen alalcance de quien los solicite a pesar de que ocurra alguna falla en ellos.

7

Page 8: REDES EN SISTEMAS DISTRIBUIDOS...la intranet de la casa del usuario y la de la organización anfitriona en el lugar que está visitando dicho usuario. Ambas intranets están conectadas

Por último dentro de las ventajas de un sistema distribuido existe la expansibilidad y laconfiabilidad. Esta cualidad se debe a que implementa todos los conceptos anteriores, en especial ladisponibilidad, ya que si un componente esta disponible a pesar de que exista alguna falla el usuariotiene como garantía que podrá seguir usándolo.

Aunado a esto, una aplicación dentro de un sistema distribuido debe de ser capaz de localizar objetosremotos, comunicarse con estos y por último obtener de ellos los procesos que requiera. Existentecnologías que ofrecen esta funcionalidad y que permiten un manejo dinámico de dispositivos dentrode una red.

3.1 Ventajas de los Sistemas Distribuidos frente a los Centralizados

• Economía: Los microprocesadores ofrecen mejor proporción entre el precio y surendimiento que los mainframes.

• Velocidad: Un sistema distribuido puede tener mayor poder de cómputo que unmainframe.

• Confiabilidad: Si una máquina se descompone, el sistema puede sobrevivir como untodo.

• Crecimiento por incrementos: Se puede añadir poder de cómputo en pequeñosincrementos.

3.2 Ventajas de los Sistemas Distribuidos sobre las Computadoras Aisladas

• Datos compartidos: Permiten que varios usuarios tengan acceso a una base de datoscomún.

• Dispositivos compartidos: Permiten que varios usuarios compartan periféricos caros,como las impresoras a color.

• Comunicación: Facilita la comunicación de persona a persona; por ejemplo, mediantecorreo electrónico.

• Flexibilidad: Difunde la carga de trabajo entre las máquinas disponibles en la formamás eficaz en cuanto a los costos.

3.3 Desventajas de los Sistemas Distribuidos

• Múltiples puntos de fallo: Hay más puntos de fallo en la computación distribuida.Debido a que múltiples computadores están implicados en la computación distribuida, ytodos son dependientes de la red para su comunicación, el fallo de uno o máscomputadores, o uno o más enlaces de red, puede suponer problemas para un sistemade computación distribuida .

• Aspectos de seguridad: En un sistema distribuido hay más posibilidad de ocurrencia deataques. Mientras que en un sistema centralizado los recursos están bajo el control deuna administración única, en un sistema distribuido la gestión es descentralizada yfrecuentemente implica a un gran número de organizaciones independientes

8

Page 9: REDES EN SISTEMAS DISTRIBUIDOS...la intranet de la casa del usuario y la de la organización anfitriona en el lugar que está visitando dicho usuario. Ambas intranets están conectadas

4. CARACTERISTICAS CLAVES DE LOS SISTEMAS DISTRIBUIDOS

Hay seis características claves responsables de la utilidad de los sistemas distribuidos: compartirrecursos, apertura, concurrencia, escalabilidad, tolerancia a fallas y transparencia.

4.1 Compartir Recursos

El término ‘recurso’ es bastante abstracto, pero es el que mejor caracteriza el abanico deentidades que pueden compartirse en un sistema distribuido. El abanico se extiende desdecomponentes hardware como discos e impresoras hasta elementos software como ficheros,ventanas, bases de datos y otros objetos de datos.

La idea de compartición de recursos no es nueva ni aparece en el marco de los sistemasdistribuidos. Los sistemas multiusuario clásicos desde siempre han provisto compartición derecursos entre sus usuarios. Sin embargo, los recursos de una computadora multiusuario secomparten de manera natural entre todos sus usuarios. Por el contrario, los usuarios de estaciones de trabajo monousuario o computadoras personales dentro de un sistemadistribuido no obtienen automáticamente los beneficios de la compartición de recursos.

Los recursos en un sistema distribuido están físicamente encapsulados en una de lascomputadoras y sólo pueden ser accedidos por otras computadoras mediante lascomunicaciones (la red). Para que la compartición de recursos sea efectiva, ésta debe sermanejada por un programa que ofrezca un interfaz de comunicación permitiendo que elrecurso sea accedido, manipulado y actualizado de una manera fiable y consistente. Surge eltérmino genérico de gestor de recursos.

Un gestor de recursos es un modulo software que maneja un conjunto de recursos de un tipoen particular. Cada tipo de recurso requiere algunas políticas y métodos específicos junto conrequisitos comunes para todos ellos. Éstos incluyen la provisión de un esquema de nombrespara cada clase de recurso, permitir que los recursos individuales sean accedidos desdecualquier localización; la traslación de nombre de recurso a direcciones de comunicación y lacoordinación de los accesos concurrentes que cambian el estado de los recursos compartidospara mantener la consistencia.

4.2 Apertura o Extensibilidad

Un sistema informático es abierto si el sistema puede ser extendido de diversas maneras. Unsistema puede ser abierto o cerrado con respecto a extensiones hardware (añadir periféricos, memoria o interfaces de comunicación, etc…) o con respecto a las extensiones software(añadir características al sistema operativo, protocolos de comunicación y servicios decompartición de recursos, etc… ). La apertura de los sistemas distribuidos se determinaprimariamente por el grado hacia el que nuevos servicios de compartición de recursos sepueden añadir sin perjudicar ni duplicar a los ya existentes.

Básicamente los sistemas distribuidos cumplen una serie de características:

1. Los interfaces software clave del sistema están claramente especificados y se ponen adisposición de los desarrolladores. En una palabra, los interfaces se hacen públicos.

9

Page 10: REDES EN SISTEMAS DISTRIBUIDOS...la intranet de la casa del usuario y la de la organización anfitriona en el lugar que está visitando dicho usuario. Ambas intranets están conectadas

2. Los sistema distribuidos abiertos se basan en la provisión de un mecanismo uniforme decomunicación entre procesos e interfaces publicados para acceder a recursos compartidos.

Los sistema distribuidos abiertos pueden construirse a partir de hardware y softwareheterogéneo, posiblemente proveniente de vendedores diferentes. Pero la conformidad decada componente con el estándar publicado debe ser cuidadosamente comprobada ycertificada si se quiere evitar tener problemas de integración.

4.3 Concurrencia

Cuando existen varios procesos en una única maquina decimos que se están ejecutando concurrentemente. Si el ordenador esta equipado con un único procesador central, la concurrencia tiene lugar entrelazando la ejecución de los distintos procesos. Si lacomputadora tiene N procesadores, entonces se pueden estar ejecutando estrictamente a lavez hasta N procesos.

En los sistemas distribuidos hay muchas maquinas, cada una con uno o mas procesadorescentrales. Es decir, si hay M ordenadores en un sistema distribuido con un procesador centralcada una entonces hasta M procesos estar ejecutándose en paralelo.

En un sistema distribuido que esta basado en el modelo de compartición de recursos, laposibilidad de ejecución paralela ocurre por dos razones:

1. Muchos usuarios interactúan simultáneamente con programas de aplicación.

2. Muchos procesos servidores se ejecutan concurrentemente, cada uno respondiendo adiferentes peticiones de los procesos clientes.

El caso (1) es menos conflictivo, ya que normalmente las aplicaciones de interacción seejecutan aisladamente en la estación de trabajo del usuario y no entran en conflicto con lasaplicaciones ejecutadas en las estaciones de trabajo de otros usuarios.

El caso (2) surge debido a la existencia de uno o mas procesos servidores para cada tipo derecurso. Estos procesos se ejecutan en distintas maquinas, de manera que se estánejecutando en paralelo diversos servidores, junto con diversos programas de aplicación. Laspeticiones para acceder a los recursos de un servidor dado pueden ser encoladas en elservidor y ser procesadas secuencialmente o bien pueden ser procesadas variasconcurrentemente por múltiples instancias del proceso gestor de recursos. Cuando esto ocurrelos procesos servidores deben sincronizar sus acciones para asegurarse de que no existenconflictos. La sincronización debe ser cuidadosamente planeada para asegurar que no sepierden los beneficios de la concurrencia.

4.4 Escalabilidad

Los sistemas distribuidos operan de manera efectiva y eficiente a muchas escalas diferentes. La escala más pequeña consiste en dos estaciones de trabajo y un servidor de ficheros, mientras que un sistema distribuido construido alrededor de una red de área local simple podría contener varios cientos de estaciones de trabajo, varios servidores de ficheros, servidores de impresión y otros servidores de propósito especifico.

10

Page 11: REDES EN SISTEMAS DISTRIBUIDOS...la intranet de la casa del usuario y la de la organización anfitriona en el lugar que está visitando dicho usuario. Ambas intranets están conectadas

A menudo se conectan varias redes de área local para formar internetworks, y éstas podrían contener muchos miles de ordenadores que forman un único sistema distribuido, permitiendo que los recursos sean compartidos entre todos ellos.

Tanto el software de sistema como el de aplicación no deberían cambiar cuando la escala del sistema se incrementa. La necesidad de escalabilidad no es solo un problema de prestacionesde red o de hardware, sino que esta íntimamente ligada con todos los aspectos del diseño de los sistemas distribuidos. El diseño del sistema debe reconocer explícitamente la necesidad deescalabilidad o de lo contrario aparecerán serias limitaciones.

La demanda de escalabilidad en los sistemas distribuidos ha conducido a una filosofía de diseño en que cualquier recurso simple -hardware o software- puede extenderse para proporcionar servicio a tantos usuarios como se quiera. Esto es, si la demanda de un recurso crece, debería ser posible extender el sistema para darla servicio,. Por ejemplo, la frecuencia con la que se accede a los ficheros crece cuando se incrementa el numero de usuarios y estaciones de trabajo en un sistema distribuido. Entonces, debe ser posible añadir ordenadores servidores para evitar el cuello de botella que se produciría si un solo servidor de ficheros tuviera que manejar todas las peticiones de acceso a los ficheros. En este caso el sistema deberá estar diseñado de manera que permita trabajar con ficheros replicados en distintos servidores, con las consideraciones de consistencias que ello conlleva.

Cuando el tamaño y complejidad de las redes de ordenadores crece, es un objetivo primordial diseñar software de sistema distribuido que seguirá siendo eficiente y útil con esas nuevas configuraciones de la red. Resumiendo, el trabajo necesario para procesar una petición simplepara acceder a un recurso compartido debería ser prácticamente independiente del tamaño dela red. Las técnicas necesarias para conseguir estos objetivos incluyen el uso de datos replicados, la técnica asociada de caching, y el uso de múltiples servidores para manejar ciertas tareas, aprovechando la concurrencia para permitir una mayor productividad.

4.5 Tolerancia a Fallas

Los sistemas informáticos a veces fallan. Cuando se producen fallos en el software o en elhardware, los programas podrían producir resultados incorrectos o podrían pararse antes determinar la computación que estaban realizando. El diseño de sistemas tolerantes a fallos sebasa en dos cuestiones, complementarias entre sí: Redundancia hardware (uso decomponentes redundantes) y recuperación del software (diseño de programas que seancapaces de recuperarse de los fallos).

En los sistemas distribuidos la redundancia puede plantearse en un grano mas fino que elhardware, pueden replicarse los servidores individuales que son esenciales para la operacióncontinuada de aplicaciones criticas.

La recuperación del software tiene relación con el diseño de software que sea capaz derecuperar (roll-back) el estado de los datos permanentes antes de que se produjera el fallo.

Los sistemas distribuidos también proveen un alto grado de disponibilidad en la vertiente defallos hardware. La disponibilidad de un sistema es una medida de la proporción de tiempoque esta disponible para su uso. Un fallo simple en una maquina multiusuario resulta en la nodisponibilidad del sistema para todos los usuarios. Cuando uno de los componentes de unsistema distribuidos falla, solo se ve afectado el trabajo que estaba realizando el componenteaveriado.

11

Page 12: REDES EN SISTEMAS DISTRIBUIDOS...la intranet de la casa del usuario y la de la organización anfitriona en el lugar que está visitando dicho usuario. Ambas intranets están conectadas

Un usuario podría desplazarse a otra estación de trabajo; un proceso servidor podríaejecutarse en otra maquina.

4.6 Transparencia

La transparencia se define como la ocultación al usuario y al programador de aplicaciones de la separación de los componentes de un sistema distribuido, de manera que el sistema se percibe como un todo, en vez de una colección de componentes independientes. La transparencia ejerce una gran influencia en el diseño del software de sistema.

Se identifican ocho formas de transparencia. Estas proveen un resumen útil de la motivación ymetas de los sistemas distribuidos. Las transparencias definidas son:

• Transparencia de Acceso: Permite el acceso a los objetos de información remotos de la mismaforma que a los objetos de información locales.

• Transparencia de Localización: Permite el acceso a los objetos de información sinconocimiento de su localización

• Transparencia de Concurrencia: Permite que varios procesos operen concurrentementeutilizando objetos de información compartidos y de forma que no exista interferencia entreellos.

• Transparencia de Replicación: Permite utilizar múltiples instancias de los objetos deinformación para incrementar la fiabilidad y las prestaciones sin que los usuarios o losprogramas de aplicación tengan por que conoces la existencia de las replicas.

• Transparencia de Fallos: Permite a los usuarios y programas de aplicación completar sustareas a pesar de la ocurrencia de fallos en el hardware o en el software.

• Transparencia de Migración: Permite el movimiento de objetos de información dentro de unsistema sin afectar a los usuarios o a los programas de aplicación.

• Transparencia de Prestaciones: Permite que el sistema sea reconfigurado para mejorar lasprestaciones mientras la carga varia.

• Transparencia de Escalado: Permite la expansión del sistema y de las aplicaciones sincambiar la estructura del sistema o los algoritmos de la aplicación.

Las dos mas importantes son las transparencias de acceso y de localización; su presencia o ausencia afecta fuertemente a la utilización de los recursos distribuidos. A menudo se las denomina a ambas transparencias de red. La transparencia de red provee un grado similar de anonimato en los recursos al que se encuentra en los sistemas centralizados.

5. PARADIGMAS DE LOS SISTEMAS DISTRIBUIDOS

5.1 Cliente-Servidor

Los orígenes del modelo cliente-servidor se basan en los sistemas de paso de mensajes .

12

Page 13: REDES EN SISTEMAS DISTRIBUIDOS...la intranet de la casa del usuario y la de la organización anfitriona en el lugar que está visitando dicho usuario. Ambas intranets están conectadas

Los datos, representados en forma de mensajes, se intercambian entre dos procesos, un emisor y un receptor . Un proceso envía un mensaje que representa una petición. El mensaje se entrega a un receptor, que procesa la petición y envía un mensaje como respuesta. En secuencia, la réplica puede disparar posteriores peticiones, que llevan a sucesivasrespuestas, y así, sucesivamente .

Las operaciones básicas necesarias para dar soporte al paradigma de paso de mensajes son enviar y recibir. Para comunicaciones orientadas a conexión, también se necesitan lasoperaciones conectar y desconectar .

El modelo cliente-servidor asigna roles diferentes a los dos procesos que colaboran. Elservidor interpreta el papel de proveedor de servicio, esperando de forma pasiva la llegada depeticiones . El cliente invoca determinadas peticiones al servidor y aguarda sus respuestas

De una concepción simple, el modelo cliente-servidor proporciona una abstracción eficientepara facilitar servicios de red. Muchos servicios de Internet dan soporte a aplicacionescliente-servidor,.

5.2 Peer-to-peer

En el paradigma peer-to-peer (p2p) los procesos participantes interpretan los mismos papeles,con idénticas capacidades y responsabilidades (lo que sugiere interacciones directas entre las partes). Cada participante puede solicitar una petición a cualquier otro participante y recibiruna respuesta .

Mientras que el paradigma cliente-servidor es un modelo ideal para servicios centralizados dered, el paradigma p2p resulta más apropiado para aplicaciones como mensajería instantánea,transferencia de ficheros, vídeo-conferencia y trabajo colaborativo.

También es posible que un sistema se base en ambos modelos: cliente-servidor y p2p .

Características del p2p

• Las máquinas están siempre encendidas (Ancho de banda reducido a bajo coste ).• Comunidades globales

◦ Mercado global ◦ Colaboración global ◦ Información global

• Facilidades comunes a muchos sistemas P2P ◦ El nombre del nodo no coincide con la localización ◦ La información se encamina dentro de la aplicación ◦ Hay un directorio distribuido ◦ Son sistemas especializados

• Compartición de archivos específica ◦ Se comparten bloques más que ficheros

• Está dirigido a una comunidad de usuarios con un interés común • Descentralización . No es necesario un único servidor .• Los participantes pueden comunicarse directamente entre sí.

◦ Distribución ◦ La información no está alojada en un solo sitio

13

Page 14: REDES EN SISTEMAS DISTRIBUIDOS...la intranet de la casa del usuario y la de la organización anfitriona en el lugar que está visitando dicho usuario. Ambas intranets están conectadas

• Balance de Carga . Se intenta equilibrar entre todos los participantes • Balanceo de tráfico . Utilizando mejor las redes de comunicaciones • Redundancia de información . Se duplica información para hacerla más accesible • Alta disponibilidad . La caída de un nodo no bloquea el servicio • Optimización de uso de recursos . Procesamiento, almacenamiento, ancho de banda, etc... • Ahorro de coste de infraestructura

Figura 5. Modelo p2p básico

5.3 Middleware

El middleware es el software de conectividad que está compuesto por un conjunto de serviciosque permiten a varios procesos (que se ejecutan en una o varias máquinas) interactuar através de la red. Es fundamental para migrar las aplicaciones monolíticas basadas enmainframes a aplicaciones cliente-servidor , y soportar la comunicación entre procesos a través de plataformas heterogéneas .

Figura 6. Middleware

Como muestra la figura 6 los servicios del Middleware son una capa de software distribuida,que se localiza entre la aplicación y la plataforma concreta sobre la que se implementa laaplicación .

14

Page 15: REDES EN SISTEMAS DISTRIBUIDOS...la intranet de la casa del usuario y la de la organización anfitriona en el lugar que está visitando dicho usuario. Ambas intranets están conectadas

Los servicios del Middleware proporcionan un conjunto de APIs (Application Programming Interfaces) más funcional que el sistema operativo y los servicios de red para permitir a una aplicación:

• Localización transparente a través de la red, proporcionando interacción con otraaplicación o servicio .

• Ser independiente de los servicios de red .• Ser fiable y disponible .• Ser escalable, en el sentido de poder aumentar su capacidad sin pérdida de

funcionalidad .

5.4 Monitor de Procesamiento de Transacciones

La tecnología de Monitores de Procesamiento de Transacciones (TP, Transaction Processing)proporciona al entorno cliente-servidor distribuido, la capacidad de desarrollar, ejecutar ygestionar aplicaciones de transacciones de forma eficiente y fiable.

Un monitor TP controla las aplicaciones basadas en transacciones, soportando la lógica denegocio y las actualizaciones de la base de datos . Tradicionalmente, los monitores deteleproceso (CICS, IMS/DC, IDMS/DC) son subsistemas que agrupan sentencias deactualización de bases de datos relacionadas y que las presentan todas juntas (como un lote)al gestor de base de datos. Gracias a ello, el gestor de base de datos no necesita preocuparsede gestionar la consistencia y corrección de la base de datos. El monitor de teleproceso seasegura de que los grupos de actualizaciones se hacen en su totalidad o no se hace ninguna.Esta característica redunda en la robustez y productividad del sistema .

La tecnología de los monitores de teleproceso se basa en multiplexar las peticiones de transacción de los clientes (de acuerdo a su tipo) sobre un conjunto reducido y controlado de rutinas de procesamiento que soportan los servicios específicos . Los clientes son ligados, servidos y liberados utilizando servidores sin estado, con el fin de minimizar la sobrecarga. El gestor de la base de datos sólo como clientes al conjunto reducido de rutinas .

Figura 7. Monitor de Procesamiento de Transacciones

15

Page 16: REDES EN SISTEMAS DISTRIBUIDOS...la intranet de la casa del usuario y la de la organización anfitriona en el lugar que está visitando dicho usuario. Ambas intranets están conectadas

5.5 Llamada a Procedimientos Remotos

Las Llamadas a Procedimientos Remotos (RPC, Remote Procedure Call) constituyen unainfraestructura del modelo cliente-servidor que incrementa la:

• Interoperabilidad (capacidad de dos o más sistemas o componentes Sw para intercambiarinformación y utilizar la información que has sido intercambiada).

• Portabilidad (facilidad con la que un sistema o componente Sw puede transferirse de unentorno Hw o Sw a otro).

• Flexibilidad (facilidad con la que un sistema o componente Sw puede modificarse de modoque pueda utilizarse en otras aplicaciones o entornos para los que fue expresamentediseñado ( de una aplicación, permitiendo que ésta se distribuya sobre múltiplesplataformas heterogéneas ).

Y reduce la complejidad del desarrollo de aplicaciones que comprenden múltiples sistemas operativos y protocolos de red mediante el aislamiento del desarrollador de los detalles de la plataforma subyacente (cuando se utiliza RPC, las invocaciones a funciones son las interfacesdel programador) .

Para acceder a la porción de código del servidor remoto de una aplicación, las RPC o invocaciones especiales a funciones, son insertadas dentro de la porción de código del cliente

Cuando se compila la aplicación, el compilador genera un programa “stub” local para el ladocliente y un “stub” remoto para la parte servidora de la aplicación. Son a estos stubs a losque se les invoca cuando la aplicación requiere una función remota y, habitualmente, soportanllamadas síncronas entre el cliente y el servidor (análogas a una invocación en local).

Figura 8. Ejemplo de RPC

5.6 Sistema de Mensajes

Los Sistemas de Mensajes o Middleware Orientado a Mensajes (MOM, Message-OrientedMiddleware) proporcionan un método de comunicación entre aplicaciones o componentessoftware. Es una facilidad para el desarrollo de aplicaciones p2p: un cliente del sistema puedeenviar y recibir mensajes de cualquier otro cliente.

16

Page 17: REDES EN SISTEMAS DISTRIBUIDOS...la intranet de la casa del usuario y la de la organización anfitriona en el lugar que está visitando dicho usuario. Ambas intranets están conectadas

Cada cliente se conecta a un agente del sistema de mensajes que proporciona facilidadespara crear, enviar, recibir y leer mensajes. Los sistemas de mensajes habilitan comunicacionesentre procesos distribuidos con un bajo acoplamiento.

Un componente envía un mensaje a un destino y el receptor puede recuperar un mensaje deun destino . Sin embargo, el emisor y el receptor no tienen porqué estar disponibles al mismotiempo para poder comunicarse . De hecho, el emisor no necesita conocer nada sobre elreceptor, ni el receptor conocer nada sobre el emisor . El emisor y receptor sólo necesitanconocer que formato de mensaje y qué destino utilizar . Esta es una diferencia frente amodelos de comunicación distribuidos fuertemente acoplados, como por ejemplo la InvocaciónRemota de Métodos, que requieren que la aplicación conozca los métodos remotos .

Otras propiedades deseables de un sistema de mensajes son: • Soportar el reparto asíncrono de mensajes, es decir, repartir los mensajes cuando lleguen

los clientes, sin necesidad de que tengan que solicitar los mensajes para recibirlos .• Ser un sistema fiable, es decir, tener la posibilidad de garantizar que un mensaje sólo se

reparte una, y sólo una, vez .

Aplicación de los Sistemas de Mensajes. Este paradigma es adecuado cuando se dan lassiguientes circunstancias . Se requiere que los componentes no dependan de la informaciónacerca de otras interfaces de componentes, de forma que los componentes puedanreemplazarse fácilmente Se requiere que la aplicación se ejecute independientemente de sitodos los componentes están activos y ejecutándose simultáneamente . El modelo de negociode la aplicación permite que un componente envíe información a otro y pueda seguir operandosin recibir una respuesta inmediata

17

Page 18: REDES EN SISTEMAS DISTRIBUIDOS...la intranet de la casa del usuario y la de la organización anfitriona en el lugar que está visitando dicho usuario. Ambas intranets están conectadas

CONCLUSIONES

Existen redes de computadores en cualquier parte. Una de ellas es Internet, como lo son las muchasredes de las que se compone. Las redes de teléfonos móviles, las redes corporativas, las de lasempresas, las universidades, las casas, redes dentro de los vehículos, todas, tanto separadas comocombinadas, comparten las características esenciales que las hacen sistemas distribuidos.

Un sistema distribuido consiste en una colección de computadoras autónomas enlazadas por una redy equipadas con un sistema de software distribuido; es aquel en el que los componentes de hardwareo software, localizados en computadores unidos mediante una red, comunican y coordinan susacciones sólo mediante paso de mensajes.

Las computadores que están conectadas mediante una red pueden estar separadas espacialmentepor cualquier distancia. Esta definición de sistemas distribuidos tiene las siguiente consecuenciassignificativas:

• Concurrencia: en una red de computadoras, la ejecución de programas concurrentes es lanorma.

• Inexistencia de reloj global: cuando los programas necesitan cooperar coordinan sus accionesmediante el intercambio de mensajes. La coordinación estrecha depende a menudo de unaidea compartida del instante en el que ocurren las acciones de los programas.

• Fallos independientes: Cada componente del sistema puede fallar independientemente,permitiendo que los demás continúen su ejecución.

18

Page 19: REDES EN SISTEMAS DISTRIBUIDOS...la intranet de la casa del usuario y la de la organización anfitriona en el lugar que está visitando dicho usuario. Ambas intranets están conectadas

BIBLIOGRAFÍA

Departamento de Informática en Segovia. Tema 1: Introducción a los Sistemas Distribuidos.Universidad de Valladolid. 2006.

Departamento de Matemáticas y Computación. Introducción a la Computación Distribuida.Universidad de la Rioja.

Departamento de Tecnología Electrónica. Redes y Sistemas Distribuidos. Universidad de Sevilla,2105.

SILVA, Martín. Sistemas Distribuidos. 2004.

MEZA, Jorge. Introducción a los Sistemas Distribuidos. Universidad Nacional de Colombia.

19