0% encontró este documento útil (0 votos)
5 vistas38 páginas

Comunicación en Sistemas Distribuidos

capitulo 3 psp

Cargado por

aleexmpj00
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
5 vistas38 páginas

Comunicación en Sistemas Distribuidos

capitulo 3 psp

Cargado por

aleexmpj00
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Ciclos Formativos de Grado Superior

Programación de Servicios y Procesos


 Conceptos básicos: Comunicación entre
aplicaciones
 Protocolos de comunicaciones: IP, TCP, UDP
 Sockets
 Modelos de Comunicaciones

Alberto Sánchez Campos


Jesús Montes Sánchez
 Muchos sistemas computacionales de la
actualidad siguen el modelo de computación
distribuida.
 Aplicaciones a través de Internet, móviles, etc.
 La mayoría de superordenadores modernos son
sistemas distribuidos.

Alberto Sánchez Campos


Jesús Montes Sánchez
 Está formado por más de un elemento
computacional distinto e independiente (un
procesador dentro de una máquina, un ordenador
dentro de una red, etc), que no comparte memoria
con el resto.
 Los elementos que forman el sistema distribuido
no están sincronizados: No hay reloj común.
 Los elementos que forman el sistema están
conectados a una red de comunicaciones.

Alberto Sánchez Campos


Jesús Montes Sánchez
 Es la base del funcionamiento de todo sistema
distribuido.
 En el proceso de comunicación se distingue:
o Mensaje
o Emisor
o Receptor
o Paquete
o Canal de comunicación
o Protocolo de comunicaciones

Alberto Sánchez Campos


Jesús Montes Sánchez
Alberto Sánchez Campos
Jesús Montes Sánchez
 Mensaje:
o Es la información que se intercambia entre las
aplicaciones que se comunican.
 Emisor:
o Es la aplicación que envía el mensaje.
 Receptor:
o Es la aplicación que recibe el mensaje.
 Paquete:
o Es la unidad básica de información que intercambian dos
dispositivos de comunicación.

Alberto Sánchez Campos


Jesús Montes Sánchez
 Canal de comunicación:
o Es el medio por el que se transmiten los paquetes, que
conecta el emisor con el receptor.
 Protocolo de comunicaciones:
o Es el conjunto de reglas que fijan cómo se deben
intercambiar paquetes entre los diferentes elementos
que se comunican entre sí.

Alberto Sánchez Campos


Jesús Montes Sánchez
 Para que las diferentes aplicaciones que forman
un sistema distribuido puedan comunicarse, debe
existir una serie de mecanismos que hagan
posible esa comunicación:
o Elementos hardware
o Elemento software
 Todos estos componentes se organizan en lo que
se denomina una jerarquía o pila de protocolos.

Alberto Sánchez Campos


Jesús Montes Sánchez
Alberto Sánchez Campos
Jesús Montes Sánchez
 Nivel de red:
o Lo componen los elementos hardware de
comunicaciones y sus controladores básicos.
o Se encarga de trasmitir los paquetes de información.
 Nivel de Internet:
o Lo componen los elementos software que se encargan
de dirigir los paquetes por la red, asegurándose de
que lleguen a su destino.
o También llamado nivel IP.

Alberto Sánchez Campos


Jesús Montes Sánchez
 Nivel de transporte:
o Lo componen los elementos software cuya función es
crear el canal de comunicación, descomponer el
mensaje en paquetes y gestionar su transmisión entre el
emisor y el receptor.
o Los dos protocolos de transporte fundamentales: TCP y
UDP.
 Nivel de aplicación:
o Lo componen las aplicaciones que forman el sistema
distribuido, que hacen uso de los niveles inferiores para
poder transferir mensajes entre ellas

Alberto Sánchez Campos


Jesús Montes Sánchez
Alberto Sánchez Campos
Jesús Montes Sánchez
 Garantiza que los datos no se pierden.
 Garantiza que los mensajes llegarán en orden.
 Se trata de un protocolo orientado a conexión.

Alberto Sánchez Campos


Jesús Montes Sánchez
 Es aquel en que el canal de comunicaciones entre
dos aplicaciones permanece abierto durante un
cierto tiempo, permitiendo enviar múltiples
mensajes de manera fiable por el mismo.
 Opera en tres fases:
1. Establecimiento de la conexión.
2. Envío de mensajes.
3. Cierre de la conexión.
 El ejemplo mas habitual es el protocolo TCP.

Alberto Sánchez Campos


Jesús Montes Sánchez
 Protocolo NO orientado a conexión. Esto lo
hace más rápido que TCP, ya que no es necesario
establecer conexiones, etc.
 No garantiza que los mensajes lleguen siempre.
 No garantiza que los mensajes lleguen en el
mismo orden que fueron enviados.
 Permite enviar mensajes de 64 KB como
máximo.
 En UDP, los mensajes se denominan
“datagramas” (datagrams en ingles).

Alberto Sánchez Campos


Jesús Montes Sánchez
 Los sockets son el mecanismo de comunicación
básico fundamental que se usa para realizar
transferencias de información entre aplicaciones.
 Proporcionan una abstracción de la pila de
protocolos.
 Un socket (en inglés, literalmente, un “enchufe”)
representa el extremo de un canal de
comunicación establecido entre un emisor y un
receptor.

Alberto Sánchez Campos


Jesús Montes Sánchez
Alberto Sánchez Campos
Jesús Montes Sánchez
 Una dirección IP es un número que identifica de
forma única a cada máquina de la red, y que sirve
para comunicarse con ella.
 Un puerto es un número que identifica a un socket
dentro de una máquina.

Alberto Sánchez Campos


Jesús Montes Sánchez
 Son orientados a conexión.
 Cuando operan sobre IP, emplean TCP.
 Un socket stream se utiliza para comunicarse
siempre con el mismo receptor, manteniendo el
canal de comunicación abierto entre ambas partes
hasta que se termina la conexión.
 Una parte ejerce la función de proceso cliente y
otra de proceso servidor.

Alberto Sánchez Campos


Jesús Montes Sánchez
 Proceso cliente:
1. Creación del socket.
2. Conexión del socket (connect).
3. Envío y recepción de mensajes.
4. Cierre de la conexión (close).

Alberto Sánchez Campos


Jesús Montes Sánchez
 Proceso servidor:
1. Creación del socket.
2. Asignación de dirección y puerto (bind).
3. Escucha (listen).
4. Aceptación de conexiones (accept). Esta operación
implica la creación de un nuevo socket, que se usa
para comunicarse con el cliente que se ha conectado.
5. Envío y recepción de mensajes.
6. Cierre de la conexión (close).

Alberto Sánchez Campos


Jesús Montes Sánchez
Alberto Sánchez Campos
Jesús Montes Sánchez
 Son no orientados a conexión.
 Cuando operan sobre IP, emplean UDP.
 Cuando se usan sockets datagram no existe
diferencia entre proceso servidor y proceso
cliente.
 Pasos para enviar mensajes:
o Creación del socket.
o Asignación de dirección y puerto (bind). Solo necesaria
para poder recibir mensajes.
o Envío y/o recepción de mensajes.
o Cierre del socket.

Alberto Sánchez Campos


Jesús Montes Sánchez
Alberto Sánchez Campos
Jesús Montes Sánchez
 [Link], para la creación de sockets
stream cliente.
 [Link], para la creación de
sockets stream servidor.
 [Link], para la creación de
sockets datagram.

Alberto Sánchez Campos


Jesús Montes Sánchez
import [Link].*;
import [Link].*;

public class ClienteSocketStream {

public static void main(String[] args) {


try {
Socket clientSocket = new Socket();
InetSocketAddress addr = new InetSocketAddress("localhost", 5555);
[Link](addr);
InputStream is = [Link]();
OutputStream os = [Link]();
String mensaje = "mensaje desde el cliente";
[Link]([Link]());
[Link]();

} catch (IOException e) {
[Link]();
}
}
}

Alberto Sánchez Campos


Jesús Montes Sánchez
import [Link].*;
import [Link].*;

public class ServeridorSocketStream {

public static void main(String[] args) {


try {

ServerSocket serverSocket = new ServerSocket();


InetSocketAddress addr = new InetSocketAddress("localhost", 5555);
Socket newSocket = [Link]();
InputStream is = [Link]();
OutputStream os = [Link]();
byte[] mensaje = new byte[25];
[Link](mensaje);
[Link]();
[Link]();
} catch (IOException e) {
[Link]();
}
}
}

Alberto Sánchez Campos


Jesús Montes Sánchez
import [Link].*;
import [Link].*;

public class EmisorDatagram {

public static void main(String[] args){


try {
DatagramSocket datagramSocket = new DatagramSocket();
String mensaje = "mensaje desde el emisor";
InetAddress addr = [Link]("localhost");
DatagramPacket datagrama = new DatagramPacket([Link](),
[Link]().length, addr, 5555);
[Link](datagrama);
[Link]();
} catch (IOException e) {
[Link]();
}
}
}

Alberto Sánchez Campos


Jesús Montes Sánchez
 Los sockets son una herramienta básica para
enviar y recibir mensajes.
 A la hora de desarrollar aplicaciones distribuidas
debemos tener en cuenta aspectos de más alto
nivel.
 Dependiendo de cuál sea el propósito de nuestra
aplicación, y cómo vaya a funcionar internamente,
deberemos escoger un modelo de
comunicaciones distinto.

Alberto Sánchez Campos


Jesús Montes Sánchez
 Un modelo de comunicaciones es una
arquitectura general que especifica cómo se
comunican entre sí los diferentes elementos de
una aplicación distribuida.
 Un modelo de comunicaciones normalmente
define aspectos como cuántos elementos tiene el
sistema, qué función realiza cada uno, etc.
 Los modelos más usados en la actualidad son:
o Cliente/servidor.
o Comunicación en grupo.

Alberto Sánchez Campos


Jesús Montes Sánchez
 El más sencillo de los comúnmente usados en la
actualidad.
 En este modelo, un proceso central, llamado
servidor, ofrece una serie de servicios a uno o
más procesos cliente.
 El proceso servidor debe estar alojado en una
máquina fácilmente accesible en la red, y
conocida por los clientes.
 Cuando un cliente requiere sus servicios, se
conecta con el servidor, iniciando el proceso de
comunicación.

Alberto Sánchez Campos


Jesús Montes Sánchez
Alberto Sánchez Campos
Jesús Montes Sánchez
 Es la alternativa más común al modelo
cliente/servidor.
 En este modelo no existen roles diferenciados.
 En la comunicación en grupo existe un conjunto
de dos o más elementos (procesos, aplicaciones,
etc.) que cooperan en un trabajo común.
 A este conjunto se le llama grupo, y los elementos
que lo forman se consideran todos iguales, sin
roles ni jerarquías definidas.
 Los mensajes se transmiten mediante radiado.

Alberto Sánchez Campos


Jesús Montes Sánchez
Alberto Sánchez Campos
Jesús Montes Sánchez
 Las aplicaciones distribuidas más avanzadas
suelen tener requisitos de comunicaciones muy
complejos, que requieren de modelos de
comunicaciones sofisticados.
 En muchos casos, los modelos de
comunicaciones reales implementados en estas
aplicaciones mezclan conceptos del modelo
cliente/servidor y la comunicación en grupo,
dando lugar a enfoques híbridos, como las redes
peer-to-peer (P2P).

Alberto Sánchez Campos


Jesús Montes Sánchez
 Una red P2P está formada por un grupo de elementos
distribuidos que colaboran con un objetivo común.
 Cualquier elemento puede desempeñar los roles de
servidor o cliente, como si de un modelo
cliente/servidor se tratase.
 Las redes P2P puedan ofrecer servicios de forma
similar al modelo cliente/servidor.
 Cualquier aplicación puede conectarse a la red como
un cliente, localizar un servidor y enviarle una
petición.
 Si permanece en la red P2P, con el tiempo ese mismo
cliente puede hacer a su vez de servidor para otros
elementos de la red.

Alberto Sánchez Campos


Jesús Montes Sánchez
Alberto Sánchez Campos
Jesús Montes Sánchez

También podría gustarte