Desarrollo de Aplicaciones Distribuidas: Tema 4: Paradigmas de Computación Distribuida
Desarrollo de Aplicaciones Distribuidas: Tema 4: Paradigmas de Computación Distribuida
Desarrollo de Aplicaciones Distribuidas: Tema 4: Paradigmas de Computación Distribuida
Tema 4: Paradigmas de
computación distribuida
19 de octubre de 2020
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
Cliente-servidor, peer-to-peer
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
publicación/subscripción
Paradigma de llamadas a procedimientos remotos (RPC)
Paradigmas de objetos distribuidos
◼ Paradigma de invocación a métodos remotos (RMI)
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.
7
A-Paradigma de sistema de mensajes punto a punto
...
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.
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
Cliente-servidor, peer-to-peer