SlideShare una empresa de Scribd logo
1 de 26
Descargar para leer sin conexión
Networking Ing. Rolando Steep Quezada Martínez [email_address] Programación Avanzada en Java
Comunicación entre procesos ,[object Object],[object Object]
 
Comunicaciones y multitarea ,[object Object],[object Object],[object Object]
Sockets ,[object Object],[object Object],[object Object],[object Object],[object Object]
Esquema de comunicaciones basadas en sockets
La clase InetAddress ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Sockets Stream (TCP, Transport Control Protocol) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Una aplicación sencilla con sockets TCP ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
 
 
Sockets Datagrama (UDP, User Datagram Protocol) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Una aplicación sencilla con sockets UDP ,[object Object],[object Object],[object Object],[object Object]
 
Sockets UDP multipunto ,[object Object],[object Object],[object Object],[object Object]
Una aplicación Multicast sencilla ,[object Object],[object Object]
La clase URL ,[object Object],[object Object],[object Object]
RMI - Remote Method Invocation ,[object Object],[object Object],[object Object]
Objetos e interfaces remotos ,[object Object],[object Object]
 
Una aplicación sencilla con RMI ,[object Object],[object Object],[object Object],[object Object],[object Object]
 
 
Resumen ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Práctica 16 ,[object Object],[object Object],[object Object]
 

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Uso de hilos
Uso de hilosUso de hilos
Uso de hilos
 
Hilos – threads en java
Hilos – threads   en javaHilos – threads   en java
Hilos – threads en java
 
Java Threads (Hilos en Java)
Java Threads (Hilos en Java)Java Threads (Hilos en Java)
Java Threads (Hilos en Java)
 
Multitarea e hilos en java
Multitarea e hilos en javaMultitarea e hilos en java
Multitarea e hilos en java
 
Java con base de datos
Java con base de datosJava con base de datos
Java con base de datos
 
Programación multitarea
Programación multitareaProgramación multitarea
Programación multitarea
 
Chap 15cpin
Chap 15cpinChap 15cpin
Chap 15cpin
 
2o departamental Programacion 3
2o departamental Programacion 32o departamental Programacion 3
2o departamental Programacion 3
 
Threads en java
Threads en javaThreads en java
Threads en java
 
Chap 15bpin
Chap 15bpinChap 15bpin
Chap 15bpin
 
Chap 15fpin
Chap 15fpinChap 15fpin
Chap 15fpin
 
Thread group demonios- parte1
Thread group demonios- parte1Thread group demonios- parte1
Thread group demonios- parte1
 
Workshop iOS 3: Testing, protocolos y extensiones
Workshop iOS 3: Testing, protocolos y extensionesWorkshop iOS 3: Testing, protocolos y extensiones
Workshop iOS 3: Testing, protocolos y extensiones
 
Chap 15apin
Chap 15apinChap 15apin
Chap 15apin
 
Traduccion capitulo 9 (completo)
Traduccion capitulo 9 (completo)Traduccion capitulo 9 (completo)
Traduccion capitulo 9 (completo)
 
Hilos
HilosHilos
Hilos
 
Workshop iOS 4: Closures, generics & operators
Workshop iOS 4: Closures, generics & operatorsWorkshop iOS 4: Closures, generics & operators
Workshop iOS 4: Closures, generics & operators
 
Chap 15epin
Chap 15epinChap 15epin
Chap 15epin
 
Serializacion
SerializacionSerializacion
Serializacion
 
LibreríAs De Java
LibreríAs De JavaLibreríAs De Java
LibreríAs De Java
 

Similar a Networking

Similar a Networking (20)

Sistemas operativos distribuidos ii
Sistemas operativos distribuidos iiSistemas operativos distribuidos ii
Sistemas operativos distribuidos ii
 
Comunicacion intra procesos con socket
Comunicacion intra procesos con socketComunicacion intra procesos con socket
Comunicacion intra procesos con socket
 
Sockets y servidores
Sockets y servidoresSockets y servidores
Sockets y servidores
 
Sockets java
Sockets javaSockets java
Sockets java
 
Redes
RedesRedes
Redes
 
Sockets
SocketsSockets
Sockets
 
Sockets
SocketsSockets
Sockets
 
Desarrollo aplicaciones distribuidas sockets
Desarrollo aplicaciones distribuidas socketsDesarrollo aplicaciones distribuidas sockets
Desarrollo aplicaciones distribuidas sockets
 
Tema iv comunicación entre procesos
Tema iv comunicación entre procesosTema iv comunicación entre procesos
Tema iv comunicación entre procesos
 
Capitula 3 funcionalidad y protocolo de la capa de aplicación
Capitula 3 funcionalidad y  protocolo de la capa de aplicaciónCapitula 3 funcionalidad y  protocolo de la capa de aplicación
Capitula 3 funcionalidad y protocolo de la capa de aplicación
 
Sockets TCP
Sockets TCPSockets TCP
Sockets TCP
 
Edwin
EdwinEdwin
Edwin
 
que es un socket
que es un socketque es un socket
que es un socket
 
Edwin
EdwinEdwin
Edwin
 
Protocolos y ejemplos
Protocolos y ejemplosProtocolos y ejemplos
Protocolos y ejemplos
 
Tcp y osi
Tcp y osiTcp y osi
Tcp y osi
 
Estándares, modelos y normas internacionales de redes
Estándares, modelos y normas internacionales de redesEstándares, modelos y normas internacionales de redes
Estándares, modelos y normas internacionales de redes
 
Sockets tcp
Sockets tcpSockets tcp
Sockets tcp
 
Http y tcp/ip
Http y tcp/ipHttp y tcp/ip
Http y tcp/ip
 
Redes 1 ra unida dpptx
Redes  1 ra unida dpptxRedes  1 ra unida dpptx
Redes 1 ra unida dpptx
 

Más de Rolando Steep Quezada Martinez (9)

Implementación de Aplicaciones Basadas en Texto
Implementación de Aplicaciones Basadas en TextoImplementación de Aplicaciones Basadas en Texto
Implementación de Aplicaciones Basadas en Texto
 
Colecciones
ColeccionesColecciones
Colecciones
 
Manejo De Excepciones
Manejo De ExcepcionesManejo De Excepciones
Manejo De Excepciones
 
Diseño de Clases
Diseño de ClasesDiseño de Clases
Diseño de Clases
 
Herencia Y Polimorfismo
Herencia Y PolimorfismoHerencia Y Polimorfismo
Herencia Y Polimorfismo
 
Arreglos Expresiones y Control de Flujo
Arreglos Expresiones y Control de FlujoArreglos Expresiones y Control de Flujo
Arreglos Expresiones y Control de Flujo
 
Tipos Primitivos y Elementos Léxicos de Java
Tipos Primitivos y Elementos Léxicos de JavaTipos Primitivos y Elementos Léxicos de Java
Tipos Primitivos y Elementos Léxicos de Java
 
Módulo 01 Introducción a la Tecnología Java
Módulo 01 Introducción a la Tecnología JavaMódulo 01 Introducción a la Tecnología Java
Módulo 01 Introducción a la Tecnología Java
 
Manejo Avanzado de Flujos de Entrada/Salida
Manejo Avanzado de Flujos de Entrada/SalidaManejo Avanzado de Flujos de Entrada/Salida
Manejo Avanzado de Flujos de Entrada/Salida
 

Último

TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdfTENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdfJoseAlejandroPerezBa
 
La tablet trabajo en grupo del grado 9-2
La tablet trabajo en grupo del grado 9-2La tablet trabajo en grupo del grado 9-2
La tablet trabajo en grupo del grado 9-2montoyagabriela340
 
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...RaymondCode
 
Matriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docxMatriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docxPaolaCarolinaCarvaja
 
Carta de Premio y Excel angeline 11-2pdf
Carta de Premio y Excel angeline 11-2pdfCarta de Premio y Excel angeline 11-2pdf
Carta de Premio y Excel angeline 11-2pdfangelinebocanegra1
 
El diseño de Algoritmos Paralelos.pdf - analisis de algortimos
El diseño de Algoritmos Paralelos.pdf - analisis de algortimosEl diseño de Algoritmos Paralelos.pdf - analisis de algortimos
El diseño de Algoritmos Paralelos.pdf - analisis de algortimosLCristinaForchue
 
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOSPRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOSLincangoKevin
 
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...OLGAMILENAMONTAEZNIO
 
Análisis de artefactos tecnologicos .pdf
Análisis de artefactos tecnologicos .pdfAnálisis de artefactos tecnologicos .pdf
Análisis de artefactos tecnologicos .pdfcastrodanna185
 
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdfPresentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdfymiranda2
 
La Electricidad y La Electrónica.pdf....
La Electricidad y La Electrónica.pdf....La Electricidad y La Electrónica.pdf....
La Electricidad y La Electrónica.pdf....Aaron Betancourt
 
VIDEOS DE APOYO.docx E
VIDEOS DE APOYO.docx                                  EVIDEOS DE APOYO.docx                                  E
VIDEOS DE APOYO.docx Emialexsolar
 
Los mejores simuladores de circuitos electrónicos.pdf
Los mejores simuladores de circuitos electrónicos.pdfLos mejores simuladores de circuitos electrónicos.pdf
Los mejores simuladores de circuitos electrónicos.pdfodalistar77
 
Actividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdfActividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdfalejandrogomezescoto
 
Tecnológia 2024.docx.Tecnológia 2024.docx.
Tecnológia 2024.docx.Tecnológia 2024.docx.Tecnológia 2024.docx.Tecnológia 2024.docx.
Tecnológia 2024.docx.Tecnológia 2024.docx.marianarodriguezc797
 
Inteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidadInteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidaddanik1023m
 
De Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NETDe Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NETGermán Küber
 
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdfInmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdfOBr.global
 

Último (20)

TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdfTENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
 
La tablet trabajo en grupo del grado 9-2
La tablet trabajo en grupo del grado 9-2La tablet trabajo en grupo del grado 9-2
La tablet trabajo en grupo del grado 9-2
 
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
 
Matriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docxMatriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docx
 
Carta de Premio y Excel angeline 11-2pdf
Carta de Premio y Excel angeline 11-2pdfCarta de Premio y Excel angeline 11-2pdf
Carta de Premio y Excel angeline 11-2pdf
 
El diseño de Algoritmos Paralelos.pdf - analisis de algortimos
El diseño de Algoritmos Paralelos.pdf - analisis de algortimosEl diseño de Algoritmos Paralelos.pdf - analisis de algortimos
El diseño de Algoritmos Paralelos.pdf - analisis de algortimos
 
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOSPRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
 
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
 
Análisis de artefactos tecnologicos .pdf
Análisis de artefactos tecnologicos .pdfAnálisis de artefactos tecnologicos .pdf
Análisis de artefactos tecnologicos .pdf
 
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdfPresentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
 
La Electricidad y La Electrónica.pdf....
La Electricidad y La Electrónica.pdf....La Electricidad y La Electrónica.pdf....
La Electricidad y La Electrónica.pdf....
 
VIDEOS DE APOYO.docx E
VIDEOS DE APOYO.docx                                  EVIDEOS DE APOYO.docx                                  E
VIDEOS DE APOYO.docx E
 
Los mejores simuladores de circuitos electrónicos.pdf
Los mejores simuladores de circuitos electrónicos.pdfLos mejores simuladores de circuitos electrónicos.pdf
Los mejores simuladores de circuitos electrónicos.pdf
 
BEDEC Proyecto y obra , novedades 2024 - Xavier Folch
BEDEC Proyecto y obra , novedades 2024 - Xavier FolchBEDEC Proyecto y obra , novedades 2024 - Xavier Folch
BEDEC Proyecto y obra , novedades 2024 - Xavier Folch
 
Actividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdfActividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdf
 
Tecnológia 2024.docx.Tecnológia 2024.docx.
Tecnológia 2024.docx.Tecnológia 2024.docx.Tecnológia 2024.docx.Tecnológia 2024.docx.
Tecnológia 2024.docx.Tecnológia 2024.docx.
 
Inteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidadInteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidad
 
BEDEC Sostenibilidad, novedades 2024 - Laura Silva
BEDEC Sostenibilidad, novedades 2024 - Laura SilvaBEDEC Sostenibilidad, novedades 2024 - Laura Silva
BEDEC Sostenibilidad, novedades 2024 - Laura Silva
 
De Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NETDe Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NET
 
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdfInmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdf
 

Networking

Notas del editor

  1. Objetivos Entender los elementos del trabajo con redes en Java. Implementar aplicaciones de red en Java. Aprender a implementar aplicaciones colaborativas basadas en redes. Construir un servidor multihilado.
  2. Comunicación entre procesos Mecanismos de comunicación entre procesos [IPC: InterProcess Communication] Cuando en un sistema tenemos distintos procesos, necesitamos disponer de mecanismos que hagan posible la comunicación entre ellos. Se pueden utilizar distintos mecanismos de comunicación entre procesos: Pipes anónimos [Anonymous pipes] Permiten redireccionar la entrada o salida estándar de un proceso (utilizando | en la línea de comandos, por ejemplo). Sockets Usan la familia de protocolos TCP/IP (la que se utiliza en Internet). Su diseño original proviene del BSD UNIX [Berkeley Software Distribution]. Estándares de paso de mensajes MPI (Message Passing Interface, muy utilizado en clusters y supercomputadores) o PVM (Parallel Virtual Machina, otro estándar utilizado en multiprocesadores y multicomputadores).
  3. Llamadas a procedimientos remotos (RPC: Remote Procedure Call) Permiten realizar la comunicación entre procesos como si se tratase de simples llamadas a funciones. -En Java, se utiliza un mecanismo conocido como RMI [Remote Method Invocation]. -En la plataforma .NET, se utiliza .NET Remoting (un mecanismo similar a RMI) -El RPC de Windows cumple con el estándar OSF DCE [Open Software Foundation Distributed Computing Environment], lo que permite la comunicación entre procesos que se ejecuten en sistemas operativos diferentes a Windows. Middleware Software que se utiliza para conectar los componentes de un sistema distribuido. -CORBA [Common Object Request Broker Architecture], estándar del OMG [Object Management Group]. -Servicios web [Web services], promovidos por el W3C (el consorcio que propone los estándares usados en la web). -J2EE [Java 2 Enterprise Edition] estandariza los servicios que ha de ofrecer un servidor de aplicaciones Java. © Sun Microsystems -COM / DCOM [Component Object Model / Distributed COM] establece un estándar binario mediante el cual se puede acceder a los servicios ofrecidos por un componente. © Microsoft Corporation Algunas consideraciones Los mecanismos de comunicación no siempre son fiables (algunos paquetes se pierden) La comunicación entre procesos consume tiempo (la latencia no es cero) La capacidad del canal de comunicación no es infinita (el ancho de banda es un recurso muy valioso) Las comunicaciones no siempre se realizan a través de medios seguros. Los procesos de una aplicación distribuida suelen clasificarse como clientes o servidores, si bien pueden desempeñar ambos roles en distintos momentos. El cliente es el que solicita algún servicio proporcionado por otro proceso. El servidor es el que atiende las peticiones de los clientes.
  4. Comunicaciones y multitarea Atributos y conexiones for ( ; ; ) { aceptar una petición crear una tarea } Servicio Acepta Mensajes mensaje Tarea manipuladora Tarea manipuladora Tarea manipuladora
  5. Sockets Java proporciona un nivel de conexión basado en puertos y sockets. En su paquete java.net Un puerto es una abstracción de un lugar físico a través del que se puede establecer una conexión entre un cliente y un servidor. Se dice que el servidor proporciona el puerto y el cliente se enlaza al mismo. En general, en la arquitectura cliente-servidor existe un objeto activo servidor que proporciona un servicio y unos clientes que lo solicitan. Para conseguir establecer la comunicación entre ambos objetos existen sockets servidores y sockets de cliente representados por las clases SocketServer y Socket, situadas en el paquete java.net..
  6. Esquema de comunicaciones basadas en sockets La comunicación bidireccional entre el cliente y el servidor se implementa en Java utilizando los flujos de entrada y salida (InputStream y OutputStream) Para cada socket se puede acceder a los flujos de entrada con getInputStream () y a los de salida con getOutputStream (). Cuando la conexión queda establecida, los dos sockets conectados pueden comunicarse entre sí mediante operaciones de lectura y escritura idénticas a las cualquier otro “stream” en Java (read y write). Hay que establecer un protocolo de comunicación entre el cliente y el servidor para poder interpretar esos mensajes.
  7. La clase InetAddress Obtener un objeto InetAddress a través de un nombre de dominio static InetAddress getByName( String nombre) static InetAddress[] getAllByName( String nombre) Obtener un objeto InetAddress a través de una dirección IP static InetAddress getByAddress( byte[] dirIP) Obtener un objeto InetAddress que haga referencia a la máquina local static InetAddress getLocalHost() Obtener el nombre de dominio o la dirección IP de una máquina String getHostName() String getHostAddress() Convertir InetAddress a String String toString()
  8. Sockets Stream (TCP, Transport Control Protocol) El protocolo TCP [Transmission Control Protocol] proporciona un conjunto de primitivas de servicio (operaciones básicas) con las que se pueden construir aplicaciones que requieran servicios orientados a conexión (aquéllas en las que primero se establece una conexión y luego se transmiten los datos). TCP también se encarga de reordenar los datos si éstos se reciben desordenados y de pedir automáticamente que se retransmitan los datos si se produce un error en la transmisión. Funcionamiento El cliente crea un Socket para solicitar una conexión con el servidor al que desea conectarse. Cuando el ServerSocket recibe la solicitud, crea un Socket en un puerto que no se esté usando y la conexión entre cliente y servidor queda establecida. Entonces, el SocketServer vuelve a quedarse escuchando para recibir nuevas peticiones de clientes.
  9. Una aplicación sencilla con sockets TCP Servidor:
  10. Tarea de servicio:
  11. Cliente de Telnet: Cliente Java:
  12. Sockets Datagrama (UDP, User Datagram Protocol) El protocolo UDP [User Datagram Protocol] proporciona servicios no orientados a conexión, no garantiza la entrega de los paquetes, ni su llegada en orden, ni la no existencia de duplicados. UDP se utiliza en algunas aplicaciones, como SNMP [ Simple Network Management Protocol ] o RTP [ Real-time Transport Protocol ] El tipo más sencillo de sockets, puesto que no es necesario establecer ninguna conexión para enviar y recibir datos. En Java, un objeto de tipo DatagramSocket representa un socket UDP y puede enviar o recibir datos directamente de otro socket UDP. Los datos se envían y reciben en paquetes autocontenidos denominados datagramas (igual que el correo convencional). Los datagramas se representan en Java mediante la clase DatagramPacket, que consiste simplemente en un array de bytes dirigido a una dirección IP y a un puerto UDP concretos. La clase MulticastSocket se puede emplear para enviar un mismo datagrama a muchos destinatarios simultáneamente.
  13. Una aplicación sencilla con sockets UDP Receptor:
  14. Emisor:
  15. Sockets UDP multipunto Para unirse a un grupo multicast se debe crear primero un socket de tipo MulticastSocket en el puerto deseado e invocar después al método: joinGroup. Cuando un proceso envía un mensaje a un grupo multicast, recibirán el mensaje todos los procesos suscritos al grupo. Para recibir mensajes multicast es necesario pertenecer a un grupo, sin embargo, esto no es necesario para enviar mensajes al grupo. Un proceso puede abandonar el grupo mediante el método leaveGroup .
  16. Una aplicación Multicast sencilla
  17. La clase URL
  18. RMI - Remote Method Invocation Internamente, RMI utiliza serialización de objetos para encargarse de la transmisión de datos a través de la red (de cara al programador, el acceso al objeto remoto es como una llamada a un método local). Para localizar un objeto al que se desee acceder, RMI proporciona un registro que se usa a modo de páginas amarillas. Como respuesta de las llamadas a métodos de un objeto remoto, RMI devuelve objetos y se encarga de obtener los bytecodes que sean necesarios (cuando se obtiene una referencia a un objeto cuyos bytecodes no están disponibles en la máquina virtual del receptor). El servidor crea algunos objetos y los hace accesibles a través del registro. A continuación, se queda esperando a recibir peticiones. El cliente obtiene una referencia a un objeto remoto (que está alojado en el servidor) y la utiliza para invocar métodos del objeto de forma remota.
  19. Objetos e interfaces remotos Para que Servidor y Cliente se comuniquen, RMI proporciona un conjunto de mecanismos que facilitan las tareas del programador. El Stub Permite a los clientes invocar métodos de objetos remotos. Es una implementación parcial de los objetos remotos que permite: 1. Compilar los clientes sin disponer del código de los objetos remotos. 2. Abstraer al programador de los detalles de comunicación. Cuando la aplicación cliente invoca un objeto definido en el stub , el stub se encarga de hacer llegar la invocación a su destino.
  20. La capa de referencia remota Se encarga de implementar un protocolo específico para la gestión de referencias remotas. Es totalmente independiente del stub y del skeleton Debe encargarse de: 1. Saber a qué corresponde una referencia determinada. 2. En el Cliente: Convertir las referencias locales empleadas por el stub en referencias remotas. 3. En el Servidor: Convertir las referencias remotas recibidas en el skeleton en referencias locales. 4. Comunicarse con la capa de transporte subyacente. El skeleton Permite a los servidores recibir invocaciones remotas a métodos implementados en objetos locales. Proporciona los argumentos necesarios para la ejecución de los métodos. Se encarga de devolver el resultado de la ejecución de un método. No hace falta implementarlo en Java 2. En esta versión el servidor habla directamente con la capa de referencia remota . Implementación Es necesario utilizar clases de tres paquetes diferentes: Java.rmi.* : Proporciona funcionalidad para la construcción de aplicaciones Cliente . Java.rmi.server.* : Proporciona funcionalidad para la construcción de aplicaciones Servidores . Java.rmi.registry.* : Proporciona funcionalidad para publicar y localizar un objeto remoto. Todos estos paquetes pertenecen al kit de desarrollo estándar de Java. Desarrollo de aplicaciones distribuidas con RMI Crear los distintos componentes de la aplicación, teniendo en cuenta que, para que a un objeto se pueda acceder de forma remota con RMI, es necesario que implemente una interfaz derivada de java.rmi.Remote. 2. Compilar con javac y generar los stubs con rmic. 3. Hacer accesibles los objetos remotos (usualmente, dejando los bytecodes correspondientes a los interfaces remotos y a los stubs en algún servidor web). 4. Arrancar la aplicación, que incluye el registro RMI, el servidor y el cliente.
  21. Una aplicación sencilla con RMI Definir la interface de servicios remota: La interface Calculadora extiende a Remote y todos sus métodos pueden generar una excepción RemoteException
  22. Implementar la interface remota: Implementar el servidor:
  23. Implementar el cliente: Generar las clases, el Stub y arrancar el servidor de nombres: Compilar el paquete Generar el Stub y arrancar el servidor de nombres : Ejecutar la Clase ServidorCalculadora Ejecutar el Cliente
  24. Práctica 16: Implementación de aplicaciones cliente/servidor con Java Objetivos Hacer uso de las clases del paquete java.net para la implementación de aplicaciones Cliente/Servidor Acceder remotamente a objetos en un entorno distribuido Ejercicios Tomando como referencia es ejercicio 2 de la pág 15-22 implementar una aplicación que permita listar via telnet los contactos de la agenda. Implemente una sala de chat usando Swing y RMI Complemente la sala de chat permitiendo el registro de usuarios cuyos datos son almacenados por Serialización. Tomando como referencia los casos de aplicación de: Gestión Académica y Empresa XYZ, liste e implemente los servicios que podría ofrecer en un entorno distribuido. Implemente una aplicación que controle remotamente el encendido y apagado del tanque del ejercicio 4 de la pág 12-19.