Redes en Sistemas Distribuidos

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 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: Realizado por


HERNANDEZ, Juan APONTE, Marcel
CABRERA, Ransney
CORTEZ, Ramón
HERNANDEZ, Yonel

Ciudad Bolívar, Octubre 2015


INDICE

INTRODUCCIÓN 3

1. SISTEMAS DISTRIBUIDOS 4
1.1 Conceptos 4
1.2 Propósito 4

2. EJEMPLOS DE SISTEMAS DISTRIBUIDOS 4


2.1 Internet 4
2.2 Intranets 5
2.3 Computación Móvil y Ubicua 5
2.4 Recursos Compartidos y Web 6

3. VENTAJAS Y DESVENTAJAS DE LOS SISTEMAS DISTRIBUIDOS 7


3.1 Ventajas de los Sistemas Distribuidos frente a los Centralizados 8
3.2 Ventajas de los Sistemas Distribuidos sobre las Computadoras Aisladas 8
3.3 Desventajas de los Sistemas Distribuidos 8

4. CARACTERISTICAS CLAVES DE LOS SISTEMAS DISTRIBUIDOS 9


4.1 Compartir Recursos 9
4.2 Apertura o Extensibilidad 9
4.3 Concurrencia 10
4.4 Escalabilidad 10
4.5 Tolerancia a Fallas 11
4.6 Transparencia 12

5. PARADIGMAS DE LOS SISTEMAS DISTRIBUIDOS 12


5.1 Cliente-Servidor 12
5.2 Peer-to-peer 13
5.3 Middleware 14
5.4 Monitor de Procesamiento de Transacciones 15
5.5 Llamada a Procedimientos Remotos 16
5.6 Sistema de Mensajes 16

CONCLUSIONES 18

BIBLIOGRAFÍA 19

2
INTRODUCCIÓN

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

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.

3
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
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 en
sistemas distribuidos. Estos dispositivos incluyen:

5
- 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 para
realizar 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 la
respuesta 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 los
roles desempeñados en una única solicitud.

6
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 los
usuarios. La primera de ellas es que se adecuan a un concepto común en la vida de los seres
humanos: la distribución. Es decir, el hombre comparte información y recursos sin necesidad de
complejos protocolos de comunicación u otros requerimientos, simplemente se comunica. Así que los
sistemas 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 se
desenvuelve 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ás
los sistemas de comunicación han mejorado su rendimiento, implementando protocolos que permiten
la 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 y
cada una de las entidades que lo componen tiene integrado su propio sistema de control. Es decir
cada entidad es independiente y es programada cuidadosamente para que tenga un óptimo
desempeño dentro de una comunidad de servicios. Además, un sistema distribuido es expandible y
escalable. Por la misma razón que cada entidad es programada de tal forma que sea independiente
pueden ser añadidas o removidas de un sistema, a esto se refiere la escalabilidad. En cuanto al
concepto de expansión dentro de un sistema significa que, no sólo se pueden agregar nuevos
dispositivos periféricos, sino también se pueden agregar procesadores y servidores que incrementen
la capacidad de almacenamiento del sistema.

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

7
Por último dentro de las ventajas de un sistema distribuido existe la expansibilidad y la
confiabilidad. Esta cualidad se debe a que implementa todos los conceptos anteriores, en especial la
disponibilidad, ya que si un componente esta disponible a pesar de que exista alguna falla el usuario
tiene 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 objetos
remotos, comunicarse con estos y por último obtener de ellos los procesos que requiera. Existen
tecnologías que ofrecen esta funcionalidad y que permiten un manejo dinámico de dispositivos dentro
de 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 su


rendimiento que los mainframes.

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


mainframe.

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


todo.

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


incrementos.

3.2 Ventajas de los Sistemas Distribuidos sobre las Computadoras Aisladas

• Datos compartidos: Permiten que varios usuarios tengan acceso a una base de datos
comú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, mediante


correo electrónico.

• Flexibilidad: Difunde la carga de trabajo entre las máquinas disponibles en la forma


má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, y
todos son dependientes de la red para su comunicación, el fallo de uno o más
computadores, o uno o más enlaces de red, puede suponer problemas para un sistema
de computación distribuida .

• Aspectos de seguridad: En un sistema distribuido hay más posibilidad de ocurrencia de


ataques. Mientras que en un sistema centralizado los recursos están bajo el control de
una administración única, en un sistema distribuido la gestión es descentralizada y
frecuentemente implica a un gran número de organizaciones independientes

8
4. CARACTERISTICAS CLAVES DE LOS SISTEMAS DISTRIBUIDOS

Hay seis características claves responsables de la utilidad de los sistemas distribuidos: compartir
recursos, 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 de


entidades que pueden compartirse en un sistema distribuido. El abanico se extiende desde
componentes 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 sistemas


distribuidos. Los sistemas multiusuario clásicos desde siempre han provisto compartición de
recursos entre sus usuarios. Sin embargo, los recursos de una computadora multiusuario se
comparten de manera natural entre todos sus usuarios. Por el contrario, los usuarios de
estaciones de trabajo monousuario o computadoras personales dentro de un sistema
distribuido 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 las


computadoras y sólo pueden ser accedidos por otras computadoras mediante las
comunicaciones (la red). Para que la compartición de recursos sea efectiva, ésta debe ser
manejada por un programa que ofrezca un interfaz de comunicación permitiendo que el
recurso sea accedido, manipulado y actualizado de una manera fiable y consistente. Surge el
término genérico de gestor de recursos.

Un gestor de recursos es un modulo software que maneja un conjunto de recursos de un tipo


en particular. Cada tipo de recurso requiere algunas políticas y métodos específicos junto con
requisitos comunes para todos ellos. Éstos incluyen la provisión de un esquema de nombres
para cada clase de recurso, permitir que los recursos individuales sean accedidos desde
cualquier localización; la traslación de nombre de recurso a direcciones de comunicación y la
coordinación de los accesos concurrentes que cambian el estado de los recursos compartidos
para mantener la consistencia.

4.2 Apertura o Extensibilidad

Un sistema informático es abierto si el sistema puede ser extendido de diversas maneras. Un


sistema 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 de
compartición de recursos, etc… ). La apertura de los sistemas distribuidos se determina
primariamente por el grado hacia el que nuevos servicios de compartición de recursos se
pueden 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 a
disposición de los desarrolladores. En una palabra, los interfaces se hacen públicos.

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

Los sistema distribuidos abiertos pueden construirse a partir de hardware y software


heterogéneo, posiblemente proveniente de vendedores diferentes. Pero la conformidad de
cada componente con el estándar publicado debe ser cuidadosamente comprobada y
certificada 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 la
computadora tiene N procesadores, entonces se pueden estar ejecutando estrictamente a la
vez hasta N procesos.

En los sistemas distribuidos hay muchas maquinas, cada una con uno o mas procesadores
centrales. Es decir, si hay M ordenadores en un sistema distribuido con un procesador central
cada 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, la


posibilidad 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 a


diferentes peticiones de los procesos clientes.

El caso (1) es menos conflictivo, ya que normalmente las aplicaciones de interacción se


ejecutan aisladamente en la estación de trabajo del usuario y no entran en conflicto con las
aplicaciones 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 de
recurso. Estos procesos se ejecutan en distintas maquinas, de manera que se están
ejecutando en paralelo diversos servidores, junto con diversos programas de aplicación. Las
peticiones para acceder a los recursos de un servidor dado pueden ser encoladas en el
servidor y ser procesadas secuencialmente o bien pueden ser procesadas varias
concurrentemente por múltiples instancias del proceso gestor de recursos. Cuando esto ocurre
los procesos servidores deben sincronizar sus acciones para asegurarse de que no existen
conflictos. La sincronización debe ser cuidadosamente planeada para asegurar que no se
pierden 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
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 prestaciones
de 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 de
escalabilidad 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 simple
para acceder a un recurso compartido debería ser prácticamente independiente del tamaño de
la 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 el


hardware, los programas podrían producir resultados incorrectos o podrían pararse antes de
terminar la computación que estaban realizando. El diseño de sistemas tolerantes a fallos se
basa en dos cuestiones, complementarias entre sí: Redundancia hardware (uso de
componentes redundantes) y recuperación del software (diseño de programas que sean
capaces de recuperarse de los fallos).

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

La recuperación del software tiene relación con el diseño de software que sea capaz de
recuperar (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 de


fallos hardware. La disponibilidad de un sistema es una medida de la proporción de tiempo
que esta disponible para su uso. Un fallo simple en una maquina multiusuario resulta en la no
disponibilidad del sistema para todos los usuarios. Cuando uno de los componentes de un
sistema distribuidos falla, solo se ve afectado el trabajo que estaba realizando el componente
averiado.

11
Un usuario podría desplazarse a otra estación de trabajo; un proceso servidor podría
ejecutarse 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 y


metas de los sistemas distribuidos. Las transparencias definidas son:

• Transparencia de Acceso: Permite el acceso a los objetos de información remotos de la misma


forma que a los objetos de información locales.

• Transparencia de Localización: Permite el acceso a los objetos de información sin


conocimiento de su localización

• Transparencia de Concurrencia: Permite que varios procesos operen concurrentemente


utilizando objetos de información compartidos y de forma que no exista interferencia entre
ellos.

• Transparencia de Replicación: Permite utilizar múltiples instancias de los objetos de


información para incrementar la fiabilidad y las prestaciones sin que los usuarios o los
programas 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 sus


tareas 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 un


sistema sin afectar a los usuarios o a los programas de aplicación.

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

• Transparencia de Escalado: Permite la expansión del sistema y de las aplicaciones sin


cambiar 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
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 sucesivas
respuestas, 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 las
operaciones conectar y desconectar .

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

De una concepción simple, el modelo cliente-servidor proporciona una abstracción eficiente


para facilitar servicios de red. Muchos servicios de Internet dan soporte a aplicaciones
cliente-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 recibir
una respuesta .

Mientras que el paradigma cliente-servidor es un modelo ideal para servicios centralizados de


red, 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
• 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 servicios


que permiten a varios procesos (que se ejecutan en una o varias máquinas) interactuar a
través de la red. Es fundamental para migrar las aplicaciones monolíticas basadas en
mainframes 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 la
aplicación .

14
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 otra
aplicació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 y
gestionar aplicaciones de transacciones de forma eficiente y fiable.

Un monitor TP controla las aplicaciones basadas en transacciones, soportando la lógica de


negocio y las actualizaciones de la base de datos . Tradicionalmente, los monitores de
teleproceso (CICS, IMS/DC, IDMS/DC) son subsistemas que agrupan sentencias de
actualizació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 preocuparse
de gestionar la consistencia y corrección de la base de datos. El monitor de teleproceso se
asegura 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
5.5 Llamada a Procedimientos Remotos

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

• Interoperabilidad (capacidad de dos o más sistemas o componentes Sw para intercambiar


información y utilizar la información que has sido intercambiada).

• Portabilidad (facilidad con la que un sistema o componente Sw puede transferirse de un


entorno Hw o Sw a otro).

• Flexibilidad (facilidad con la que un sistema o componente Sw puede modificarse de modo


que pueda utilizarse en otras aplicaciones o entornos para los que fue expresamente
diseñado ( de una aplicación, permitiendo que ésta se distribuya sobre múltiples
plataformas 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 interfaces
del 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 lado
cliente y un “stub” remoto para la parte servidora de la aplicación. Son a estos stubs a los
que se les invoca cuando la aplicación requiere una función remota y, habitualmente, soportan
llamadas 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-Oriented


Middleware) proporcionan un método de comunicación entre aplicaciones o componentes
software. Es una facilidad para el desarrollo de aplicaciones p2p: un cliente del sistema puede
enviar y recibir mensajes de cualquier otro cliente.

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

Un componente envía un mensaje a un destino y el receptor puede recuperar un mensaje de


un destino . Sin embargo, el emisor y el receptor no tienen porqué estar disponibles al mismo
tiempo para poder comunicarse . De hecho, el emisor no necesita conocer nada sobre el
receptor, ni el receptor conocer nada sobre el emisor . El emisor y receptor sólo necesitan
conocer que formato de mensaje y qué destino utilizar . Esta es una diferencia frente a
modelos de comunicación distribuidos fuertemente acoplados, como por ejemplo la Invocación
Remota 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 las
siguientes circunstancias . Se requiere que los componentes no dependan de la información
acerca de otras interfaces de componentes, de forma que los componentes puedan
reemplazarse fácilmente Se requiere que la aplicación se ejecute independientemente de si
todos los componentes están activos y ejecutándose simultáneamente . El modelo de negocio
de la aplicación permite que un componente envíe información a otro y pueda seguir operando
sin recibir una respuesta inmediata

17
CONCLUSIONES

Existen redes de computadores en cualquier parte. Una de ellas es Internet, como lo son las muchas
redes de las que se compone. Las redes de teléfonos móviles, las redes corporativas, las de las
empresas, las universidades, las casas, redes dentro de los vehículos, todas, tanto separadas como
combinadas, 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 red
y equipadas con un sistema de software distribuido; es aquel en el que los componentes de hardware
o software, localizados en computadores unidos mediante una red, comunican y coordinan sus
acciones sólo mediante paso de mensajes.

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

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


norma.

• Inexistencia de reloj global: cuando los programas necesitan cooperar coordinan sus acciones
mediante el intercambio de mensajes. La coordinación estrecha depende a menudo de una
idea 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
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

También podría gustarte