PDF de programación - PROGRAMACIÓN CONCURRENTE Y DISTRIBUIDA - VI.1: Socket Java

Imágen de pdf PROGRAMACIÓN CONCURRENTE Y DISTRIBUIDA - VI.1: Socket Java

PROGRAMACIÓN CONCURRENTE Y DISTRIBUIDA - VI.1: Socket Javagráfica de visualizaciones

Publicado el 14 de Enero del 2017
921 visualizaciones desde el 14 de Enero del 2017
756,1 KB
46 paginas
Creado hace 15a (17/11/2008)
PROGRAMACIÓN

CONCURRENTE Y DISTRIBUIDA

VI.1: Socket Java

Laura Barros

Notas:

Posibilidades que ofrece Java para la comunicación en red: Socket,RMI y URL.

1

Modelo OSI (Modelo de Referencia de Interconexión de
Sistemas Abiertos)

El molelo OSI está formado por 7 niveles. Cada nivel llama a los servicios del
nivel que está justo por debajo. Los niveles paritarios de las dos máquinas que
comunican lo hacen virtualmente, a través de los niveles inferiores, sólo el nivel
físico comunica realmente con la otra máquina.
Entre dos niveles vecinos se establece un interfaz para el intercambio de unidades
de información conocidas como PDU (unidad de datos de protocolo).

Procodis’08: VI- Sockets

Laura Barros

2

Notas:

2

Modelo TCP/IP

Modelo de Internet.

Agrupa las capas del modelo OSI.

Es modelo software

(no define capa física).

Se añade cabeceras

(información de control)

a medida que descendemos

por la pila.

Procodis’08: VI- Sockets

Laura Barros

3

Notas:

La mayoría de los programadores, no quieren saber cuando programan, de los detalles de bajo nivel
de las aplicaciones, necesarios para comunicar un computador con otro.Los programadores prefieren
manejar abstracciones de algo nivel que son más fáciles de entender.

El programador no se preocupa por los detalles de la transmisión de “1s y 0s” que se produce entre
dos computadores que quieren compartir información. Son los protocolos los que se preocupan por
ello. Nos permiten manejar las aplicaciones a nivel de aplicación sin tener que preocuparnos por los
detalles de red de bajo nivel. Estos conjuntos de protocolos se llaman pilas . La mas común es la pila
TCP/IP. El primero que se estableció fue el modelo de referencia de Interconexión de Sistemas
Abiertos (OSI, Open System Interconnection) . El modelo en sí mismo no puede ser considerado una
arquitectura, ya que no especifica el protocolo que debe ser usado en cada capa, sino que, suele
hablarse de modelo de referencia.

Los sockets residen en la capa de sesión del modelo OSI. La capa de sesión se encuentra entre las
capas de aplicación y las de comunicación de datos de bajo nivel. La capa de sesión provee servicios
de manejo y control del flujo de datos entre dos ordenadores.

Podemos realizar un símil con una llamada telefónica.El teléfono es un interfaz de red y el usuario no
requiere conocer los detalles de cómo la voz es transportada. Del mismo modo, un socket actúa como
una interfaz de alto nivel que esconde la complejidad de transmitir 1s y 0s a través de los canales
desconocidos.

3

Protocolo de comunicaciones

La interconexión entre dos o más ordenadores a través de una red es
dirigida o supervisada por un protocolo de comunicaciones, el cual, debe
ser aceptado por los distintos ordenadores que intervengan en la conexión.

Define las reglas que se deben seguir en la comunicación.

Hay muchos protocolos disponibles (ejemplos de protocolos de
aplicación):

 HTTP: define como se van a comunicar los servidores y navegadores

web.

 SMTP: define la forma de transferencia del correo electrónico.

Hay otros protocolos que actúan por debajo del nivel de aplicación.

El programador de Java no necesita conocerlos.

Las redes están separadas lógicamente en capas (layers).

La comunicación a través de cada capa es establecida por el protocolo
correspondiente.

Procodis’08: VI- Sockets

Laura Barros

4

Notas:

4

Protocolo de comunicaciones II

El protocolo TCP/IP transporta bytes.

El protocolo de Aplicación proporciona la semántica.

Application

byte stream

TCP/IP

Application

byte stream

TCP/IP

Here are some
bytes. I don’t

know what
they mean.

I’ll pass
these to

the app. It

knows

what to do.

Procodis’08: VI- Sockets

Laura Barros

5

Notas:

TCP/IP opera sólo en los niveles superiores de red, resultándole indiferente el conjunto de protocolos
que se encuentren por debajo de dicha capa.

5

Aplicaciones Cliente-Servidor I

Servidor: parte que está escuchando la petición de algún servicio por parte del
Cliente.

Cliente: parte que realiza las peticiones al Servidor.

1-PETICIÓN

2-RESPUESTA

Cliente:
Inicia la comunicación
Solicita un servicio al servidor
Ejemplo:
-Un cliente web solicita una página
-Un proceso P2P solicita un fichero a
otro proceso P2P

Servidor:
Espera peticiones
Proporciona el servicio solicitado
Ejemplo:
-El servidor web envía la página solicitada por el cliente
-El proceso P2P envía el fichero solicitado por otro proceso
P2P

Procodis’08: VI- Sockets

Laura Barros

6

Notas:

Medio de conexión: Internet, Ethernet...

6

Aplicaciones Cliente-Servidor II. Puerto

Un puerto es una dirección numérica de la cual se procesa un servicio.

Son direcciones lógicas proporcionadas por el SO.

Procodis’08: VI- Sockets

Laura Barros

7

Notas:

Los puertos son direcciones lógicas proporcionadas por el sistema operativo para poder responder
(distinguir de los puertos hardware).

7

Aplicaciones Cliente-Servidor III.Socket

Es una abstracción del sistema operativo (no Hw)

 Las aplicaciones los crean, los utilizan y los cierran cuando ya no son necesarios

 Su funcionamiento está controlado por el sistema operativo

Comunicación entre procesos

 Los procesos envían/reciben mensajes a través de su socket

 Los socket se comunican entre ellos

La comunicación en Internet es de socket a socket

 El proceso que está comunicándose se identifica por medio de su socket

 El socket tiene un identificador

Identificador = dir. IP del computador + núm. Puerto

Socket

IP:128.2.1.1

Puerto:1256

Transporte

Red

Enlace

Físico

IP:62.3.8.59

Puerto:80

Transporte

Red

Enlace

Físico

Procodis’08: VI- Sockets

Laura Barros

8

Notas:

The socket is the software abstraction used to represent the "terminals" of a connection

between two machines. For a given connection, there's a socket on each machine, and you

can imagine a hypothetical "cable" running between the two machines with each end of the

"cable" plugged into a socket. Of course, the physical hardware and cabling between

machines is completely unknown. The whole point of the abstraction is that we don't have to

know more than is necessary. Bruce Eckel ,Thinking in Java.

8

Aplicaciones Cliente-Servidor IV.Socket API

Servidor y Cliente intercambian mensajes a través de la red
mediante la API Socket.

Server

ports

Clients

TCP/UDP

Socket API

TCP/UDP

IP

IP

user
space

kernel
space

Ethernet Adapter

Ethernet Adapter

hardware

Procodis’08: VI- Sockets

Laura Barros

9

Notas:

Los procesos de las aplicaciones residen en el espacio de usuario.
Los procesos de los protocolos de transporte forman parte del S.O.

Se necesita un mecanismo para ponerlos en contacto: API (Application Programming Interface):

-Permite a las aplicaciones utilizar los protocolos de la pila TCP/IP.

-Define las operaciones permitidas y sus argumentos:

Similar a la forma de acceder a los ficheros en Unix

•Operaciones: open, read,write, close

•Cuando se abre un fichero obtenemos un descriptor

9

IP,Internet Protocol

Protocolo usado para la comunicación entre dos aplicaciones
que usan como medio de comunicación Internet.

Se encarga de mover datos en forma de paquetes entre un
origen y un destino.

Todo dispositivo conectado a Internet posee al menos un
identificador (una dirección IP de 4 bytes=32 bits) que lo
define unívocamente.

Origen y destino, basan su comunicación en la utilización de
direcciones IP.

Procodis’08: VI- Sockets

Laura Barros

10

Notas:

10

TCP, Transfer Control Protocol

Protocolo incorporado al protocolo IP para dar seguridad a la
comunicación realizada a través del protocolo IP.

Se utiliza para corroborar que todos los paquetes que
constituyen un mensaje llegan a su destino y en el orden
correcto para la recomposición del mensaje original por parte
del destinatario.

Puede pedir la retransmisión de los paquetes que hubiesen
llegado en mal estado o se hubiesen perdido.

El funcionamiento de este protocolo, es similar al de una
llamada de teléfono.

Procodis’08: VI- Sockets

Laura Barros

11

Notas:

Llamada de teléfono: en primer lugar, el equipo local solicita al remoto el establecimiento de un
canal de comunicación; y solamente cuando el canal ha sido creado, y ambas máquinas están
preparadas para la transmisión, empieza la transferencia de datos real.

11

Analogía de TCP con llamada telefónica

TCP
Garantía de llegada
Byte stream – llegada en orden
Orientado a la conexión – un socket
por conexión
Se establece la conexión y se envían
los datos

Llamada telefónica

Garantía de llegada
Llegada en orden
Orientado a la conexión

Se establece la conexión y se
establece la conversación

Procodis’08: VI- Sockets

Laura Barros

12

Notas:

12

UDP, User Datagram Protocol

Protocolo que se utiliza combinado con el protocolo IP, en
aquellos tipos de comunicaciones en los que no resulta tan
importante que lleguen todos los mensajes a un destinatario, o
que lleguen en el orden en que se han enviado.

Es preferible que cada paquete llegue lo más rápidamente
posible, incluso a costa de perder algunos paquetes.

Desventajas respecto al protocolo TCP:
 Es un protocolo menos fiable.

 Los procesos que hagan uso de UDP han de implementar, si es

necesario, sus propias rutinas de verificación de envío y
sincronización.

El funcionamiento de este protocolo, es similar al del envío de
una carta.

Procodis’08: VI- Sockets

Laura Barros

13

Notas:

13

Analogía de UDP con envío postal

UDP

Envío Postal

Un socket para recibir los mensajes
No hay garantía de llegada
La llegada no es necesariamente en
orden
Datagram – paquetes independientes
Muchas direcciones cada paquete

Un buzón para recibir las cartas
No hay garantía de llegada
La llegada no es necesariamente en
orden
Las cartas son independientes
Una respuesta puede ir a varias
direcciones

Procodis’08: VI- Sockets

Laura Barros

14

Notas:

14

Analogía de Programación en Red
  • Links de descarga
http://lwp-l.com/pdf1031

Comentarios de: PROGRAMACIÓN CONCURRENTE Y DISTRIBUIDA - VI.1: Socket Java (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad