Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% encontró este documento útil (0 votos)
118 vistas13 páginas

Desarrollo de Aplicaciones Distribuidas: Tema 4: Paradigmas de Computación Distribuida

Descargar como pdf o txt
Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1/ 13

Desarrollo de Aplicaciones Distribuidas

3º Grado en I. de Tecnologías de Telecomunicación

Tema 4: Paradigmas de
computación distribuida
19 de octubre de 2020

Presentación correspondiente al Capítulo 3 del libro:


M.L.Liu; Computación Distribuida, Fundamentos y Aplicaciones; Ed.
Pearson Addison Wesley; 2004.

1
1 Paradigmas y Abstracción
Abstracción: ocultamiento de detalles, encapsulación. En
general, no es necesario que el programador tenga que conocer
detalles subyacentes.
Paradigma: patrón, modelo. En general, el programador sigue un
modelo de comunicación ya establecido. Dependiendo del nivel de
abstracción al que elija trabajar, un programador de aplicaciones
distribuidas, podrá trabajar en uno de los paradigmas de la figura
siguiente:

alto nivel de
abstración Espacio de objetos

Servicios de red, object request broker (ORB), agentes móviles

Llamadas a procedimientos remotos (RPC), invocaciones a métodos remotos (RMI)

Cliente-servidor, peer-to-peer

bajo Paso de mensajes Sockets Java

2
3 Paradigmas para aplicaciones distribuidas
A la hora de desarrollar aplicaciones distribuidas, se puede
seguir uno o más de los siguientes paradigmas o modelos:
Paradigma de paso de mensajes
Paradigma cliente-servidor
Paradigma de igual a igual (peer to peer, P2P)
Paradigma de sistema de mensajes
◼ Paradigma de sistema de mensajes punto a punto

◼ Paradigma de sistema de mensajes

publicación/subscripción
Paradigma de llamadas a procedimientos remotos (RPC)
Paradigmas de objetos distribuidos
◼ Paradigma de invocación a métodos remotos (RMI)

◼ Paradigma basado en Object Request Broker (ORB)

Paradigma de espacio de objetos


Una aplicación distribuida puede seguir más de un paradigma.
NOTA: en color verde están los paradigmas que el alumno de DAD debe conocer.
3
Paradigma de paso de mensajes
• Es el paradigma o modelo más sencillo.
• Dos procesos que se envían mensajes entre sí.
• Las operaciones básicas necesarias son enviar, recibir, y si la
comunicación es orientada a conexión también se incluyen
conectar y desconectar.
• La comunicación es síncrona. El receptor tiene que estar
escuchando antes de que el emisor empiece a enviar.
• Las aplicaciones distribuidas implementadas mediante sockets
siguen este paradigma.
Process A
Process B

a message

4
Message passing
Paradigma cliente-servidor
• Dos roles diferentes para los procesos de una aplicación distribuida:
• Rol de servidor, que interpreta el papel del proveedor de
servicios, esperando de forma pasiva la llegada de peticiones.
• Rol de cliente que invoca peticiones al servidor y aguarda sus
respuestas.
• Es un paradigma adecuado para ofrecer servicios centralizados.
• HTTP, FTP, DNS, LDAP y finger (entre otros), son servicios de
Internet que siguen este paradigma.
service request
a client process
a server process
Server host a service

Client host
...

5
The Client-Server Paradigm, conceptual
Paradigma de igual a igual (peer to peer, P2P)
• Los procesos participantes son iguales e interpretan tanto el rol de
«cliente» (pueden realizar peticiones) como el rol de «servidor»
(pueden ofrecer servicios).
• Es un modelo adecuado para aplicaciones como mensajería
instantánea, transferencia de ficheros, videoconferencia y
trabajo colaborativo.

• Aplicaciones como BitCoin, Torrent o process 1


eMule hacen uso simultáneo de
paradigma cliente-servidor (con
servidores que contienen información
re qu e st re qu e st
del contenido de cada uno de los re spon se
re spon se
pares u ordenadores), y del
paradigma peer to peer (cada
ordenador recibe información de otros
ordenadores y proporciona process 2
información a otros ordenadores.
6
Paradigma de sistema de mensajes
• Se trata de una elaboración del paradigma básico de paso de
mensajes.
• En el paradigma básico de paso de mensajes visto anteriormente el
receptor debe estar escuchando (mediante la primitiva recibir)
cuando el emisor le enviaba mensajes (mediante la primitiva
enviar). Se trata de una comunicación síncrona.
• En esta caso, un middleware (lógica de intercambio de información
entre aplicaciones) permite que los mensajes se puedan enviar
asíncronamente.
• Dentro de ese paradigma tenemos los subtipos siguientes:
• A- Paradigma de sistema de mensajes punto a punto.
• B- Paradigma de sistema de mensajes publicación/suscripción
.

7
A-Paradigma de sistema de mensajes punto a punto

• El middleware mantiene colas de cada proceso. Cada proceso


tiene una cola que lee cuando quiere. Los procesos envían los
mensajes a las colas de otros procesos.
receivers
message system sender
...

...

B-Paradigma de sistema de mensajes publicación/suscripción


• Este paradigma es adecuado para aplicaciones distribuidas en las
que se realice comunicación mediante multidifusión o
comunicación en grupo.
• La operación publicar difunde un mensaje entre muchos procesos, y
la operación suscribir permite a un proceso escuchar difusión de
mensajes de otros procesos. 8
Paradigma de llamadas a procedimientos remotos (RPC)
• Más abstracción que los paradigmas anteriores.
• Permite que el software distribuido se programe de una manera
similar a las aplicaciones convencionales que se ejecutan en un
único ordenador.
• La comunicación entre procesos se realiza utilizando un concepto
similar al de una llamada a un procedimiento local.

9
• En una llamada a un procedimiento remoto, un proceso A envía una
petición a otro proceso B, pasando junto con la petición ciertos
parámetros. El proceso B ejecuta la petición y devuelve el valor
resultante de la petición al proceso A.
• De cara al programador, el proceso es similar a ejecutar un
procedimiento en el mismo ordenador, pero ejecutándole en otro
ordenador diferente.

• Similar a la Invocación de Métodos Remotos (RMI, de las siglas


Remote Method Invocation, en la programación Java) con la que se
trabaja ampliamente en la asignatura DAD. 10
Paradigmas de objetos distribuidos
• La idea es aplicar la orientación de objetos a las aplicaciones
distribuidas.
• Dentro de ese paradigma están los subtipos siguientes:
• A - Paradigma de Invocación a Métodos Remotos.
• B - Paradigma basado en Object Request Broker.
• C - Paradigma de Espacio de Objetos
• D - Paradigma de Agentes Móviles
• E - Paradigma de Servicios de Red

11
A-Paradigma de invocación a métodos remotos
Equivalente en orientación a objetos a las llamadas a procedimientos
remotos (RPC) en programación estructurada no orientada a objetos.
• La implementación es esencialmente la misma que en RPC, la
diferencia es que los procedimientos en RPC se reemplazan por
métodos de objetos en RMI.

12
4 Comparativa
alto nivel de
abstración Espacio de objetos

Servicios de red, object request broker (ORB), agentes móviles

Llamadas a procedimientos remotos (RPC), invocaciones a métodos remotos (RMI)

Cliente-servidor, peer-to-peer

bajo Paso de mensajes Sockets Java

A mayor nivel de abstracción, mayor sobrecarga, y por lo tanto


mayor número de instrucciones a ejecutar.
A mayor nivel de abstracción, mayor escalabilidad, y por lo tanto
mayor facilidad para acomodar un posible incremento del número de
usuarios de la aplicación distribuida.
El desarrollo (programación) de una aplicación distribuida será
más sencilla cuanto mayor sea el nivel de abstracción.
13

También podría gustarte