El servicio de echo con sockets
|
|
|
- Consuelo Ana Jiménez Alcaraz
- hace 8 años
- Vistas:
Transcripción
1 PRÁCTICA 2 El servicio de echo con sockets E l objetivo de esta práctica es crear y ejecutar una aplicación cliente servidor "echo" basada en sockets TCP pero estructurándola según el modelo de objetos distribuidos. La comunicación remota se realizará utilizando el método de RPC (Remote Procedure Call) o invocaciones remotas a procedimientos (métodos de objetos en este caso). Esta primera práctica de comunicación remota pretende demostrar cómo realizar los stubs y esqueletos de la RPC manualmente. En las siguientes prácticas ya se generarán de forma automática Estructura de la aplicación La aplicación Echo se estructura en tres paquetes: la interfaz, el cliente y el servidor, los cuales se describen a continuación. Ver figura 1 (pág. 16) El paquete interfaz (rmi) Consta del siguiente fichero: DYA 15
2 Estructura de la aplicación Misma interfaz Paquete: rmi EchoInt.java Paquete: client Paquete: server Echo.java EchoStub.java EchoServer.java EchoObject.java echo(s: String) echo:(s: String) C S FIGURA 1. Estructura de una RPC Código de red EchoInt.java: describe el servicio "echo". Su finalidad es proporcionar a este servicio una interfaz de invocación a objeto remoto, ocultando el hecho de que la comunicación se realiza mediante sockets. Este fichero se encuentra completamente implementado. Visite este código y observe que lo único sorprendente de este código es la propagación de la siguiente excepción de RMI: throws java.rmi.remoteexception: representa cualquier error de comunicación remota. Cualquier excepción de comunicación con sockets debe ser reconvertido a esta excepción. Esto se realiza para mantener una uniformidad de Interfaz con la práctica siguiente sobre RMI. Allí se comprenderá plenamente El paquete servidor (server) Consta, básicamente, de los siguientes ficheros: EchoObject.java: implementa la interfaz EchoInt y proporciona el servicio de "echo". La implementación de ste servicio consiste en devolver la cadena que se envía, junto con el URL y la hora de la máquina servidora al cabo de 3 segundos. Este retraso simula que el servicio tiene un tiempo de cómputo largo y apreciable. Visite este código. EchoServer.java: es el esqueleto de un servidor secuencial que realiza las siguientes operaciones: - Recibe una conexión a través de un socket 16 El servicio de echo con sockets
3 Realización de la parte básica de la práctica - Invoca un objeto de l clase EchoObject.java - Devuelve la respuesta de la anterior invocación por el socket Este fichero se encuentra completamente implementado. Visite este código y observe el manejo de sockets. Existe también una segunda versión multihilo de EchoServer.java denominada EchoMultiServer.java que se analizará más adelante El paquete cliente (client) Consta, básicamente, de los siguientes ficheros: Echo.java: es el cliente propiamente dicho. Realiza el siguiente bucle: - Leer de teclado - Invocar el stub - Imprimir el resultado por pantalla. Visite este código y observe que existen EJERCICIOS. EchoObjectStub.java: es el proxy del objeto en el nodo del cliente (stub del cliente). Observe que implementa la misma interfaz que el objeto: interfaz EchoInt y, adicionalmente, el método sethostandport, para especificar con que host y port se van a realizar las conexiones. Visite este código y observe que existen EJERCICIOS. Existe también una segunda versión de este fichero denominada EchoObjectStub4.java que implementa una política diferente de conexión/desconexión con el servidor que se analizará más adelante Realización de la parte básica de la práctica Para la realización de la parte básica de la práctica cree un proyecto prj-sockets y siga la metodología descrita en la práctica 1 para el desarrollo de una aplicación Java. 1. Descargue los ficheros de ayuda al directorio de descargas. 2. Cree un proyecto prj-sockets en el workspace según se indica en la práctica 1 cree también los paquetes de que consta la aplicación: rmi, client, server. DYA 17
4 Realización de la parte básica de la práctica Versión no distribuida En primer lugar se desarollará una versión no distribuida de la práctica con llamada local a procedimiento. Se asumirá que la parte cliente y la servidora se encuentran en la misma máquina y el programa cliente invoca los servicios mediante invocación usual de un método Java. En esta versión no existen stubs. Ver figura 2 (pág. 18). FIGURA 2. Versión no distribuida de la práctica Para ello: 3. Incluya en el proyecto los ficheros necesarios para esta parte, copiándolos del directorio de descargas al workspace y actualizando la visión del Package explorer. - Paquete rmi: fichero EchoInt.java. El fichero se encuentra completamente terminado. - Paquete server: fichero EchoObject.java. El fichero se encuentra completamente terminado. - Paquete client: fichero Echo.java. Incluya en este fichero una invocación local. 4. Escriba el código necesario y ejecute la aplicación Versión distribuida Posteriormente incluya los stubs necesarios en cada paquete y desarrolle la versión distribuida de la aplicación: 5. Desarrolle el paquete server: - Copie el fichero EchoServer.java del directorio de descargas al workspace. - Realice los ejercicios propuestos. - Ejecute y depure EchoSever.java utilizando el menú Run... y proporcionado los parámetros de ejecución que sean necesarios. 6. Desarrolle el paquete client: - Copie el fichero EchoObjectStub.java del directorio de descargas al workspace. - Realice los ejercicios propuestos. 18 El servicio de echo con sockets
5 Realización de variantes de la práctica - Ejecute y depure Echo.java utilizando el menú Run... y proporcionado los parámetros de ejecución que sean necesarios. 7. Compruebe el correcto funcionamiento del cliente y servidores del servicio de echo conectándose con servidores remotos desarrollados por sus compañeros (y viceversa) Realización de variantes de la práctica En relación con esta práctica se proponen realizar dos ejercicios más avanzados con variantes del stub del cliente y del esqueleto del servidor. Estas variantes se proponen en los siguientes puntos Servidor de echo multihilo. Un servidor de echo multihilo es un servidor que debe ser capaz de atender varias peticiones concurrentemente. La ejecución solapada de las diferentes peticiones se puede observar creando varios clientes e iniciando peticiones de servicio desde todos ellos de forma más o menos simultánea. La duración de tres segundos para la ejecución del servicio permitirá observar que las ejecuciones se solapan en el tiempo. Para la realización de este servicio, deberá realizar un nuevo esqueleto del servidor cuya implementación parcial se proporciona en el fichero EchoMultiServer.java. que sustituirá al antiguo esqueleto monohilo del servidor EchoServer.java. El fichero EchoObject.java que implementa el servicio, será el mismo que en el caso anterior Stub del cliente con desconexión por timeout En este apartado se propone sustituir el stub del cliente de echo EchoObjectStub. java por un nuevo stub EschoObjectStub2. java que gestione las conexiones con el servidor con otra política. El stub original cabría una conexión al principio de cada petición y la cerraba al final de la misma. Para evitar la sobrecarga de abrir y cerrar conexiones cuando se producen peticiones muy frecuentes se propone realizar un nuevo stub del cliente con la siguiente política de gestión de conexiones: - Cuando termina una petición el stub del cliente programa la desconexión con el servidor para la cabo de 5 segundos. - Si el cliente realiza una petición y existe una conexión establecida, se envían los datos al servidor por la conexión existente, sino, se abre una nueva conexión y se envían los datos al servidor. DYA 19
6 - Si durante los cinco segundos siguientes a una invocación no llegan nuevas peticiones, se cierra automáticamente la conexión. La figura figura 3 (pág. 20) (a) muestra un cronograma de conexiones y desconexiones que indica cuándo debe hacerse una conexión, cuándo debe programarse una desconexión, cuando debe desconectarse y cuándo debe cancelarse una desconexión programada. Asimismo, la figura (b) ilustra cómo debe evitarse que la desconexión ocurra estando una petición en marcha FIGURA 3. gestión de la desconexión con timeout en stubs Se recomienda realizar una clase Timeout en base a las clases Timer y TimerTask: public class Timer extends Object A facility for threads to schedule tasks for future execution in a background thread. Tasks may be scheduled for one-time execution, or for repeated execution at regular intervals. public abstract class TimerTask extends Object implements Runnable A task that can be scheduled for one-time or repeated execution by a Timer Ficheros de apoyo Fichero rmi/echoint.java package rmi; public interface EchoInt extends java.rmi.remote { public String echo(string input)throws java.rmi.remoteexception; 20 El servicio de echo con sockets
7 Fichero server/echoobject.java package server; import java.net.*; import java.io.*; import java.text.*; import java.util.*; public class EchoObject implements EchoInt { String myurl="localhost"; public EchoObject(){ myurl=inetaddress.getlocalhost().gethostname(); catch (UnknownHostException e) { myurl="localhost"; public String echo(string input) throws java.rmi.remoteexception { Date h = new Date(); String fecha = DateFormat.getTimeInstance(3,Locale.FRANCE).format(h); String ret = myurl + ":" + fecha + "> " + input; System.out.println("Procesando: '" + input + "'"); Thread.sleep(3000); ret = ret + " (retrasada 3 segundos)"; catch (InterruptedException e) { System.out.println("Procesamiento de '"+ input +"' terminado."); return ret; Fichero server/echoserver.java package server; import java.net.*; import java.io.*; public class EchoServer { private static EchoObject eo = new EchoObject(); private static String myurl="localhost"; private static ServerSocket serversocket = null; private static Socket clientsocket = null; private static BufferedReader is = null; private static PrintWriter os = null; private static String inputline = new String(); public static void main(string[] args) { myurl=inetaddress.getlocalhost().gethostname(); DYA 21
8 catch (UnknownHostException e) { System.out.println("Unknown Host :" + e.tostring()); System.exit(1); serversocket = new ServerSocket(7); catch (IOException e) { System.out.println(myURL + ": could not listen on port: 7, " + e.tostring()); System.exit(1); System.out.println(myURL + ": EchoServer listening on port: 7"); boolean listening = true; while(listening){ clientsocket = serversocket.accept(); is = new BufferedReader( new InputStreamReader( clientsocket.getinputstream())); os = new PrintWriter(clientSocket.getOutputStream()); while ((inputline = is.readline())!= null) { os.println(eo.echo(inputline)); os.flush(); os.close(); is.close(); clientsocket.close(); serversocket.close(); catch (IOException e) { System.err.println("Error sending/receiving" + e.getmessage()); e.printstacktrace(); Fichero server/echomultiserver.java package server; import java.net.*; import java.io.*; public class EchoMultiServer { private static ServerSocket serversocket = null; public static void main(string[] args) { serversocket = new ServerSocket(7); catch (IOException e) { System.out.println("EchoMultiServer: could not listen on port: 7, " + e.tostring()); 22 El servicio de echo con sockets
9 System.exit(1); System.out.println("EchoMultiServer listening on port: 7"); boolean listening = true; while (listening) { //EJERCICIO: aceptar una nueva conexión //EJERCICIO: y crear un Thread para que la gestione serversocket.close(); catch (IOException e) { System.err.println("Could not close server socket." + e.getmessage()); // // class EchoMultiServerThread // class EchoMultiServerThread extends Thread { private static EchoObject eo = new EchoObject(); private Socket clientsocket = null; private String myurl = "localhost"; private BufferedReader is = null; private PrintWriter os = null; private String inputline = new String(); EchoMultiServerThread(Socket socket) { super("echomultiserverthread"); clientsocket = socket; is = new BufferedReader(new InputStreamReader( //EJERCICIO... )); os = new PrintWriter( //EJERCICIO... ); catch (IOException e) { System.err.println("Error sending/receiving" + e.getmessage()); e.printstacktrace(); myurl=inetaddress.getlocalhost().gethostname(); catch (UnknownHostException e) { System.out.println("Unknown Host :" + e.tostring()); System.exit(1); public void run() { while ((inputline = is.readline())!= null) { //EJERCICIO: Invocar el objeto //EJERCICIO: y devolver la respuesta por el socket DYA 23
10 os.close(); is.close(); clientsocket.close(); catch (IOException e) { System.err.println("Error sending/receiving" + e.getmessage()); e.printstacktrace(); Fichero client/echo.java package client; import java.io.*; import java.net.*; public class Echo { private static EchoObjectStub ss; public static void main(string[] args) { if (args.length<2) { System.out.println("Usage: Echo <host> <port#>"); System.exit(1); ss = //EJERCICIO: crear una instancia del stub ss.sethostandport(args[0],integer.parseint(args[1])); BufferedReader stdin = new BufferedReader( new InputStreamReader(System.in)); PrintWriter stdout = new PrintWriter(System.out); String input,output; //EJERCICIO: el bucle infinito: //EJERCICIO: Leer de teclado //EJERCICIO: Invocar el stub //EJERCICIO: Imprimir por pantalla catch (UnknownHostException e) { System.err.println("Don't know about host: "+ args[0]); catch (IOException e) { System.err.println("I/O failed for connection to: "+args[0]); Fichero client/echoobjectstub.java package client; import java.net.*; import java.io.*; 24 El servicio de echo con sockets
11 class EchoObjectStub implements EchoInt{ private Socket echosocket = null; private PrintWriter os = null; private BufferedReader is = null; private String host = "localhost"; private int port=7; private String output = "Error"; private boolean connected = false; public void sethostandport(string host, int port) { this.host= host; this.port =port; public String echo(string input)throws java.rmi.remoteexception { connect(); if (echosocket!= null && os!= null && is!= null) { os.println(input); os.flush(); output= is.readline(); catch (IOException e) { System.err.println("I/O failed in reading/writing socket"); throw new java.rmi.remoteexception("i/o failed in reading/writing socket"); disconnect(); return output; private synchronized void connect() throws java.rmi.remoteexception { //EJERCICIO: Implemente el método connect private synchronized void disconnect(){ //EJERCICIO: Implemente el método disconnect Fichero client/echostub2.java package client; import java.net.*; import java.io.*; class EchoObjectStub implements EchoInt, Runnable { private Socket echosocket = null; private PrintWriter os = null; private BufferedReader is = null; private String host = "localhost"; DYA 25
12 private int port=7; private String output = "Error"; private boolean connected = false; private Thread reloj = new Thread(this, "reloj"); private int timeout = 50; private boolean firsttime = true; public void sethostandport(string host, int port) { this.host= host; this.port =port; public String echo(string input)throws java.rmi.remoteexception { connect(); if (echosocket!= null && os!= null && is!= null) { os.println(input); os.flush(); output= is.readline(); catch (IOException e) { System.err.println("I/O failed in reading/writing socket"); throw new java.rmi.remoteexception("i/o failed in reading/writing socket"); programdisconnection(); return output; private synchronized void connect() throws java.rmi.remoteexception { //EJERCICIO: lo mismo que en EchoObjectStub private synchronized void disconnect(){ //EJERCICIO: lo mismo que en EchoObjectStub private synchronized void programdisconnection(){ //EJERCICIO: programar un timeout para la cabo de 5 segundos class Timeout { Timer timer; EchoObjectStub stub; int seconds; public Timeout (int seconds, EchoObjectStub stub) { this.seconds = seconds; this.stub = stub; public void start() { //EJERCICIO 26 El servicio de echo con sockets
13 public void cancel() { //EJERCICIO class TimeoutTask extends TimerTask { //EJERCICIO DYA 27
14 28 El servicio de echo con sockets
Prácticas de. Diseño y Aplicaciones de Sistemas Distribuidos (DYA)
Prácticas de Diseño y Aplicaciones de Sistemas Distribuidos (DYA) Joan Vila Carbó José Simó Ten. PRÁCTICA 1 Introducción a Java y Eclipse 1 El entorno de trabajo 1 El directorio de trabajo 2 Desarrollo
file://d:\jvila\docencia\dya05\practicas\dyapracticas.htm
MiWeb: Diseño y Aplicaciones de Sistemas Distribuidos Página 1 de 1 Diseño y Aplicaciones de Sistemas Distribuidos Prácticas Enunciado Fich. Apoyo Pr. - Hola Java! pdf zip Pr 2.- Sockets pdf zip Pr 3.-
Sockets. Los sockets son un mecanismo de comunicación entre procesos que se utiliza en Internet.
Sockets La biblioteca estándar de clases de Java nos proporciona todo lo que necesitamos para utilizar sockets en nuestras aplicaciones en el paquete java.net, por lo que tendremos que añadir la siguiente
Las clases Java Socket y ServerSocket
Las clases Java Socket y ServerSocket Lenguajes y Herramientas de Programación Universidad de La Laguna Programa de Doctorado de Física e Informática Escuela Técnica Superior Superior de Ingeniería Informática
Federico Peinado www.federicopeinado.es
Federico Peinado www.federicopeinado.es Depto. de Ingeniería del Software e Inteligencia Artificial disia.fdi.ucm.es Facultad de Informática www.fdi.ucm.es Universidad Complutense de Madrid www.ucm.es
Modelo de Objetos Distribuidos
Remote Method Invocation Modelo de Objetos Distribuidos Un objeto remoto es un objeto cuyos métodos pueden ser invocados desde otra máquina virtual de java, potencialmente en un host diferente. Modelo
Cliente/Servidor en Java
Cliente/Servidor en Java Grupo ARCOS Desarrollo de Aplicaciones Distribuidas Ingeniería Informática Universidad Carlos III de Madrid Contenidos 1. Introducción: 1. Paradigma cliente/servidor 2. Entorno
UNIVERSIDADE DA CORUÑA Departamento de Tecnoloxías da Información e as Comunicacións LABORATORIO DE RC: TUTORIAL DE SOCKETS EN JAVA
UNIVERSIDADE DA CORUÑA Departamento de Tecnoloxías da Información e as Comunicacións LABORATORIO DE RC: TUTORIAL DE SOCKETS EN JAVA Índice 1. Presentación...3 2. Conceptos básicos...4 2.1. TCP...4 2.2.
UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE INGENIERÍA TELEMÁTICA. Daniel Díaz Sánchez
UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE INGENIERÍA TELEMÁTICA Sockets para servidor Daniel Díaz Sánchez Florina Almenárez Andrés Marín Departamento de Ingeniería Telemática Universidad Carlos
Java RMI Remote Method Invocation. Invocación Remota de Métodos en Java
Java RMI Remote Method Invocation Invocación Remota de Métodos en Java Contenido Introducción Implementación Diseño de la interfaz remota. Implementación de la interfaz remota. Obtención de las clases
Java RMI. las RPC de Java. Parte I. Luis Fernando Llana Díaz. Departamento de Sistemas Informáticos y ProgramaciónUniversidad Complutense de Madrid
las RPC de Java. Parte I Departamento de Sistemas Informáticos y Programación Universidad Complutense de Madrid de marzo de 006 RMI y RPC RPC: Remote Procedure Call. RMI y RPC RPC: Remote Procedure Call.
Sistemas Distribuidos Java RMI (Remote Method Invocation) Alberto Lafuente Mikel Larrea Dpto. ATC, UPV/EHU
Sistemas Distribuidos Java RMI (Remote Method Invocation) Alberto Lafuente Mikel Larrea Dpto. ATC, UPV/EHU Contenido Interfaz Implementación Servidor Cliente Puesta en marcha de la aplicación: Compilador
RMI [Remote Method Invocation]
RMI [Remote Method Invocation] Cuando utilizamos sockets, hemos de preocuparnos de cómo se transmiten físicamente los datos entre los extremos de una conexión (a nivel de bytes, ya que usamos los streams
PROGRAMACION DISTRIBUIDA
PROGRAMACION DISTRIBUIDA Ejemplo de uso de estrategias de diseño con RMI Héctor Pérez 2 Ejemplo de callback: SwiftEagle shot() setdirection() Target nearnessreport(target,observer) signal? explode() SwiftEagle
JAVA - Serializacíon / RMI. (C) Philippe Roose - 2004, 2005
JAVA - Serializacíon / RMI (C) Philippe Roose - 2004, 2005 Serializar objetos- concepto Desde el JDK 1.1 Serializar objetos permite de escribir un objeto en un fichero como un flujo de octets (archivo
JAVA RMI (REMOTE METHOD INVOCATION)
JAVA RMI (REMOTE METHOD INVOCATION) RMI RMI (Remote Method Invocation) Mecanismo RPC de Mecanismo mediante el cual los procesos cliente y servidor en una aplicación distribuida se comunican Una aplicación
Capítulo 5. Programación de aplicaciones de red
Capítulo 5. Programación de aplicaciones de red Redes de Ordenadores 2º Grado en Ingeniería en Tecnologías de Telecomunicación 1 Área de Ingeniería Telemática Capítulo 5: Programación de aplicaciones de
DISEÑO DE UNA ARQUITECTURA CLIENTE/SERVIDOR MEDIANTE OBJETOS DISTRIBUIDOS EN JAVA
DISEÑO DE UNA ARQUITECTURA CLIENTE/SERVIDOR MEDIANTE OBJETOS DISTRIBUIDOS EN JAVA José Luis Pastrana Brincones ([email protected]) Dpto. Lenguajes y Ciencias de la Computación. Universidad de Málaga
Práctica 5: Servidor web concurrente en Java
Práctica 5: Servidor web concurrente en Java Esta práctica pretende familiarizar al alumno con la programación de servidores que emplean sockets TCP. Para ello partiremos del servidor web básico visto
Comunicacion en Java. Alejandro Escobar
Comunicacion en Java Alejandro Escobar Introducción a las comunicaciones Modelo básico de red Imagen tomada de: http://java.sun.com/docs/books/tutorial/networking/overview/networking.html Normalmente programamos
1. Visión general de RMI
1. Visión general de RMI Java RMI permite al programador ejecutar métodos de objetos remotos utilizando la misma semántica que si fueran invocaciones locales (Véase Figura 1). Máquina Local (Cliente) Máquina
1.- FUNDAMENTOS...2 2.- FUNCIONAMIENTO GENÉRICO...3 3.- JAVA SOCKETS... 4. 3.4.1.- Creación de Streams de Entrada...7
1.- FUNDAMENTOS...2 2.- FUNCIONAMIENTO GENÉRICO...3 3.- JAVA SOCKETS... 4 3.1.- INTRODUCCION... 4 3.2.- MODELO DE COMUNICACIONES CON JAVA...5 3.3.- APERTURA DE SOCKETS... 6 3.4.- CREACIÓN DE STREAMS...
Universidad de Cantabria [email protected]
Networking Pedro Corcuera Dpto. Matemática Aplicada y Ciencias de la Computación Universidad de Cantabria [email protected] Objetivos Aprender los conceptos básicos de redes y su implementación en Java
Java RMI. Sistemas Distribuidos Rodrigo Santamaría
+ Java RMI Sistemas Distribuidos Rodrigo Santamaría RMI Java RMI 2 + RMI 3 Remote Method Invocation: middleware para que un objeto que se ejecuta en una JVM use métodos de otro objeto que se ejecuta en
Llamada a métodos remotos (RMI). Curso 04/05. Tema 9. Departament d Informàtica. Universitat de València. 1. Introducción 2
Tema 9 Llamada a métodos remotos (RMI). Departament d Informàtica. Índice 1. Introducción 2 1.1. Cómo funciona RMI?.......................................... 2 2. Usando RMI 4 2.1. Fase de desarrollo:
en otra máquina exactamente de la misma manera que si se encontrará en la misma máquina
Máquina A Máquina B Máquina C Lo ideal sería tener un sistema distribuido orientado a objetos que permita: 1)Invocar un método de un objeto que se localiza en otra máquina exactamente de la misma manera
Sistemas Distribuidos (Capítulo 8 de Distributed Computing de M. L. Liu)
Devoluciones de llamada en RMI (Callbacks) Sistemas Distribuidos (Capítulo 8 de Distributed Computing de M. L. Liu) Devolución de llamadas, introducción Cliente-servidor clásico servidorpasivo Tipo pull.
EJEMPLOS PROGRAMACIÓN SOCKET - JAVA
EJEMPLOS PROGRAMACIÓN SOCKET - JAVA 1.- Calcular el Cuadrado TCP En esta aplicación el cliente se conecta al servidor, para ello debe introducir la dirección IP del servidor y los parámetros sobre los
Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones
Unidad Didáctica 2 Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión 1.0.3 Índice
LABORATORIO DE RC PRÁCTICA 2: IMPLEMENTACIÓN DE UN CLIENTE Y SERVIDOR DE
UNIVERSIDADE DA CORUÑA Departamento de Tecnoloxías da Información e as Comunicacións LABORATORIO DE RC PRÁCTICA 1: IMPLEMENTACIÓN DE UN CLIENTE Y SERVIDOR DE ECO UDP PRÁCTICA 2: IMPLEMENTACIÓN DE UN CLIENTE
CONTENIDO. Serialización. Carga dinamica de stubs RMI AVANZADO. Callbacks. Carga dinámica de Stubs
CONTENIDO RMI AVANZADO Carga dinamica de stubs Callbacks Carga dinámica de Stubs Para tener acceso a un objeto remoto mediante RMI, el cliente debe recibir un stub serializado y deserializarlo. El stub
PROGRAMACION DISTRIBUIDA
PROGRAMACION DISTRIBUIDA Distribución basada en el patrón proxy-servant Héctor Pérez 2 Distribución de aplicaciones basadas en objetos Objetivo: rediseño de una aplicación orientada a objetos para ser
Sockets en Java. Prof. Wílmer Pereira Universidad Simón Bolívar
Sockets en Java Prof. Wílmer Pereira Universidad Simón Bolívar Arquitectura Cliente/Servidor Cliente Request Reply Servidor Cómo permitir comunicación entre objetos situados en diferentes máquinas? Sockets
Práctica 2: Java Remote Method Invocation (RMI)
Práctica 2: Java Remote Method Invocation (RMI) Aplicaciones Telemáticas II Introducción El objetivo de esta práctica es conocer un poco más sobre el paradigma de objetos remotos. La idea principal es
Clases Java para comunicaciones en red
Clases Java para comunicaciones en red Lenguajes y Herramientas de Programación Universidad de La Laguna Programa de Doctorado de Física e Informática Escuela Técnica Superior Superior de Ingeniería Informática
Práctica 4: Java Remote Method Invocation (RMI)
Práctica 4: Java Remote Method Invocation (RMI) Aplicaciones Telemáticas II Introducción Hasta el momento hemos visto aplicaciones remotas donde un cliente utiliza un objeto remoto que ha sido publicado
Programación para redes con Java
Programación para redes con Java Jorge Eduardo Ibarra Esquer Programación para redes Clases en java.net Protocolos Sockets Datagramas Aplicaciones cliente-servidor 1 Programación para redes Java presenta
Tema 4. Excepciones en Java
Programación en Java Tema 4. Excepciones en Java Luis Rodríguez Baena Facultad de Informática Excepciones (I) Permiten la captura de errores en tiempo de ejecución. El control de excepciones permite extraer
Test : Conteste exclusivamente en una HOJA DE LECTURA ÓPTICA, no olvidando marcar que su tipo de examen es A.
SISTEMAS INFORMÁTICOS I Junio 2003 INGENIERÍA EN INFORMÁTICA - Código Carrera 55 - Código Asignatura 077 Tipo de Examen: A NO SE PERMITE EL USO DE NINGÚN MATERIAL Tiempo: 2 horas Apellidos: Nombre: DNI:
Excepciones y E/S Java y Servicios Web I Master en Ingeniería Matemática
Excepciones y E/S Java y Servicios Web I Master en Ingeniería Matemática Manuel Montenegro Dpto. Sistemas Informáticos y Computación Desp. 467 (Mat) [email protected] Contenidos Generación de excepciones.
PROGRAMACION DISTRIBUIDA MobileTracker: Ejemplo de implementación con RMI
PROGRAMACION DISTRIBUIDA MobileTracker: Ejemplo de implementación con RMI Héctor Pérez 2 MobileTracker: Especificación El computador de la torre de control ejecuta el servicio Follower que registra los
Threads. La plataforma JAVA soporta programas multhreading a través del lenguaje, de librerías y del sistema de ejecución. Dos.
Threads Un thread es un flujo de control secuencial dentro de un programa. A los threads también se los conoce como procesos livianos ó contextos de ejecución. Un thread es similar a un programa secuencial:
Arquitecturas cliente/servidor
Arquitecturas cliente/servidor Creación de Sockets Cliente Servidor Creación de Sockets Cliente/Servidor Sockets en TCP Sockets en UDP Definición de DAEMON Concepto de Hilos Qué es un socket? Un socket
1 SOCKETS EN JAVA. Sistemas Distribuidos::Sockets en Java EUI-SG/INFOR.UVA.ES 1
1 SOCKETS EN JAVA La programación en red siempre ha sido dificultosa, el programador debía de conocer la mayoría de los detalles de la red, incluyendo el hardware utilizado, los distintos niveles en que
5.1 Introducción a las tecnologías de objetos distribuidos con Java RMI
5.1 Introducción a las tecnologías de objetos distribuidos con Java RMI Contenidos Tutorial de Java RMI Caso de estudio: diseño e implementación de la capa modelo de MiniBank con Java RMI Arquitectura
PROGRAMACIÓN CLIENTE-SERVIDOR MEDIANTE SOCKETS EN JAVA
PROGRAMACIÓN CLIENTE-SERVIDOR MEDIANTE SOCKETS EN JAVA Qué es la arquitectura cliente servidor? La arquitectura cliente-servidor es un modelo de aplicación distribuida en el que las tareas se reparten
Introducción a Java LSUB. 30 de enero de 2013 GSYC
Introducción a Java LSUB GSYC 30 de enero de 2013 (cc) 2013 Laboratorio de Sistemas, Algunos derechos reservados. Este trabajo se entrega bajo la licencia Creative Commons Reconocimiento - NoComercial
Luego lleve el cliente a otra máquina y ejecute desde ahí usando el nombre de la máquina del servidor.
Ejemplos de sockets Los sockets son un mecanismo de comunicación entre procesos de muy bajo nivel, donde el usuario tiene que hacer muchas cosas, pero que siguen siendo muy importantes. En esta práctica
Sockets en Java. La Creatividad proviene de un conflicto de ideas. Uso de Sockets
Uso de Sockets Este pequeño manual, le muestra cómo funciona el Socket Server para crear un pequeño servidor web que envía una página HTML a cualquier Navegador Web como Firefox, Internet Explorer, etc..
RMI Remote Method Invocation
2 RMI Remote Method Invocation Dr. Víctor J. Sosa Sosa Introducción La invocación remota de métodos de Java es un modelo de objetos distribuidos, diseñado específicamente para ese lenguaje, por lo que
Práctica III: Streams, Readers y Writers
Práctica III: Streams, Readers y Writers Objetivos En esta práctica vamos a aprender a utilizar Streams, Readers y Writers para realizar operaciones de entrada/salida desde programas escritos en el lenguaje
Programación Avanzada. Juan Manuel Fernández. Curso 2011 Ejemplo de uso de sockets desde aplicaciones visuales. Usan un hilo en banco.
Programación Avanzada. Juan Manuel Fernández. Curso 2011 Ejemplo de uso de sockets desde aplicaciones visuales. Usan un hilo en banco. El software que se muestra es un ejemplo sin pulir donde se muestra
1. Cuántas sentencias hay en la secuencia principal del siguiente programa?
1. Cuántas sentencias hay en la secuencia principal del siguiente programa? public class PruebaSwitch { System.out.print ("Opcion: "); case 3: System.out.println ("miércoles "); A. 1. B. 4. C. Más de 10.
Arquitectura Cliente/Servidor. Invocación de Métodos Remotos RMI: Remote Method Invocation. Llamadas a Métodos Remotos
Invocación de Métodos Remotos RMI: Remote Method Invocation Prof Wílmer Pereira Universidad Simón Bolívar Arquitectura Cliente/Servidor Cliente Request Reply Servidor Cómo permitir comunicación entre objetos
Interacción entre Aplicaciones: objetos distribuidos e invocación remota
Interacción entre Aplicaciones: objetos distribuidos e invocación remota En la anterior práctica se ha visto cómo extender la funcionalidad de un servidor web incorporando servlets que atienden peticiones
Servicios web con SOAP y Eclipse
PRÁCTICA 8 Servicios web con SOAP y Eclipse E l objetivo de esta práctica es invocar e implementar servicios web en Java desde el entorno Eclipse. La práctica está estructurada en tres partes según se
Lab 01: Programación de Sockets en TCP
UNIVERSIDAD NACIONAL DE SAN ANTONIO ABAD DEL CUSCO Departamento Académico de Informática REDES Y TELECOMUNICACIONES 2 Lab 01: Programación de Sockets en TCP Ingº Manuel Peñaloza Figueroa Dime y lo olvidaré.
Guía - Taller # 2 (JAVA)
CEET - Distrito Capital Programa de Formación: ADSI 150752 TRIMESTRE VI Conocimiento de Conocimiento: Aplicar diversos estilos de Programación usando herramientas para Desarrollo Web Instructor: Ing. Espec.
CORBA desde Java. Diego Sevilla Ruiz Sistemas Distribuidos. 1. Introducción
CORBA desde Java Diego Sevilla Ruiz Sistemas Distribuidos Índice 1. Introducción 1 2. Primeros pasos 1 2.1. Fichero IDL................................... 1 2.2. Cliente......................................
Examen de Redes - ETSIA 9 de septiembre - Primer Parcial
Apellidos, Nombre: Grupo: Examen de Redes - ETSIA 9 de septiembre - Primer Parcial AUTORIZO a los profesores de la asignatura Redes de 2º curso de la ETSIA a publicar las calificaciones de los exámenes
Una introducción a Java RMI
Una introducción a Java RMI César Llamas Bello Estas transparencias no hubieran sido posible sin el tutorial de José M. Vidal Swearingen Engineering Center, University of South Carolina, Columbia Introducción
Introduciendo datos desde el
Introduciendo datos desde el teclado Pedro Corcuera Dpto. Matemática Aplicada y Ciencias de la Computación Universidad de Cantabria [email protected] Objetivos Crear programas interactivos que lean datos
Práctica 5: Common Object Request Broker Architecture CORBA
Práctica 5: Common Object Request Broker Architecture CORBA Aplicaciones Telemáticas II Introducción El objetivo de esta práctica es entender mejor el funcionamiento de CORBA (Common Object Request Broker
Sistemas de colas de mensajes
Tema 9. Paradigmas Avanzados de computación distribuida 1. Sistemas de colas de mensajes 2. Agentes móviles 3. Servicios de red 4. Espacios de objetos Sistemas de colas de mensajes Tema 9 Paradigmas Avanzados
Multitarea en Java. Rafa Caballero - UCM
Multitarea en Java Rafa Caballero - UCM Programa Monoproceso (monotarea) En cada momento hay una única instrucción ejecutándose Se dice que el programa es monotarea, o monoproceso o monohebra (o single
1. Sistemas de colas de mensajes 2. Agentes móviles 3. Servicios de red 4. Espacios de objetos
Tema 9. Paradigmas Avanzados de computación distribuida 1. Sistemas de colas de mensajes 2. Agentes móviles 3. Servicios de red 4. Espacios de objetos Tema 9 Paradigmas Avanzados de Computación Distribuida
1 HILOS (THREADS) EN JAVA
1 HILOS (THREADS) EN JAVA 1.1QUÉ ES UN THREAD La Máquina Virtual Java (JVM) es un sistema multihilo. Es decir, es capaz de ejecutar varios hilos de ejecución simultáneamente. La JVM gestiona todos los
TEMA 5: Control de la Concurrencia en Java (API Estándar)
TEMA 5: Control de la Concurrencia en Java (API Estándar) CONTENIDO Exclusión Mutua con código synchronized. Exclusión Mutua con métodos synchronized. Protocolos de Control de la Exclusión Mutua. Interbloqueos
Programación Orientada a Objetos. Java: Excepciones
Programación Orientada a Objetos Java: Excepciones Eduardo Mosqueira Rey Laboratorio de Investigación y desarrollo en Inteligencia Artificial Departamento de Computación Universidade da Coruña, España
CÁTEDRA DE LENGUAJE DE PROGRAMACIÓN JAVA 2014
CÁTEDRA DE LENGUAJE DE PROGRAMACIÓN JAVA 2014 Ings. Mario Bressano & Miguel Iwanow ENVÍO 01/2014 Introducción al Lenguaje Java Paquetes Un Paquete en Java es un contenedor de clases que permite agrupar
Ficheros y streams. Desde el punto de vista de Java, cada fichero no es más que una secuencia o flujo de bytes [stream].
Ficheros y streams Desde el punto de vista de Java, cada fichero no es más que una secuencia o flujo de bytes [stream]. Los streams pueden ser de entrada () de salida (). Los ficheros pueden almacenar
MANUAL TÉCNICO DEL PROXY UTN
MANUAL TÉCNICO DEL PROXY UTN El Proxy UTN fue desarrollado en Java con el JDK1.1.8, se emplearon los paquetes: java.net.- Para el manejo de comunicaciones de red. java.io.- Para manejo de entrada/salida.
Remote Method Invocation (RMI) Basado en: Fundamentals of RMI. Short Course. JGuru.
Remote Method Invocation (RMI) Basado en: Fundamentals of RMI. Short Course. JGuru. 1 Paradigmas de desarrollo Desarrollo basado en protocolos Se diseña el protocolo Se elaboran los módulos para manejo
FSD Práctica Invocación Remota: JavaRMI. Estudio Previo. Información
FSD Práctica Invocación Remota: JavaRMI Tipo de entrega: por grupos de prácticas Fecha límite: sesión de laboratorio Lugar: Campus Digital Comentario: No hay que entregar el estudio previo Objetivo de
Programación Orientada a Objetos. Java: Excepciones
Programación Orientada a Objetos Java: Excepciones Eduardo Mosqueira Rey LIDIA Laboratorio de Investigación y desarrollo en Inteligencia Artificial Departamento de Computación Universidade da Coruña, España
Lo que necesitaremos para programar en Java, será un editor de texto o IDE y la JDK.
Introducción Java surgió en 1991 dentro de la empresa Sun Microsystems como un lenguaje de programación sencillo y universal destinado a electrodomésticos. La reducida potencia de cálculo y memoria de
Ataques a Servidores Web
Ataques a Servidores Web Seguridad en los Sistemas de Información Dra. Maricela Bravo Un servidor es un programa que se ejecuta en computadoras normalmente más poderosas que las computadoras personales.
Tema 4: INVOCACIÓN REMOTA
Tema 4: INVOCACIÓN REMOTA E. U. Informática en Segovia Departamento de Informática Universidad de Valladolid SD_TE04_20050509 EUI-SG/INFOR.UVA.ES 1 4.1 Introducción Invocación remota: integra programas
Tipos DataInputStream/DataOutputStream: L/E de datos de tipo simple y Cadenas (Strings) ObjectInputStream/ObjectOutputStream: para persistencia de obj
Programación Orientada a Objetos en JAVA Angela C. Carrillo Ramos Manejo de Streams Un Stream representa un flujo de datos, o un canal de comunicación con un escritor o un lector. Tipos: InputStream/OutputStream:
2. Estructura de un programa en Java
24 A. García-Beltrán y J.M. Arranz 2. Estructura de un programa en Java Objetivos: a) Describir la estructura del código fuente de una aplicación Java b) Presentar los conceptos de comentario y de identificador
Federico Peinado www.federicopeinado.es
Federico Peinado www.federicopeinado.es Depto. de Ingeniería del Software e Inteligencia Artificial disia.fdi.ucm.es Facultad de Informática www.fdi.ucm.es Universidad Complutense de Madrid www.ucm.es
IMPLEMENTACIÓN DE JTAPI, PARA LA PLATAFORMA DHARMA DE DATAVOICE.
IMPLEMENTACIÓN DE JTAPI, PARA LA PLATAFORMA DHARMA DE DATAVOICE. 1. Introducción a JTAPI. 1.1. Qué es JTAPI?. 1.2. Qué puedo hacer con JTAPI?. 1.3. Ventajas de utilizar JTAPI. 1.4. Inconvenientes de utilizar
Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta
Centro Asociado Palma de Mallorca Antonio Rivero Cuesta La Sintaxis de Java I... 5 Tipos de datos... 6 Tipos de datos simples... 7 Operadores... 11 Operadores Aritméticos... 12 Operadores relacionales...
Programación Orientada a Objetos. Tema 7: Persistencia
Programación Orientada a Objetos Tema 7: Persistencia Tema 7: Persistencia Contenidos 1. LIBRERÍA I/O 2. FICHEROS 3. FICHEROS DE ACCESO DIRECTO 4. FICHEROS DE TEXTO 5. SERIALIZACIÓN DE OBJETOS 6. EJEMPLO
Introducción a Java LSUB. 15 de enero de 2015 GSYC
Introducción a LSUB GSYC 15 de enero de 2015 (cc) 2014 Laboratorio de Sistemas, Algunos derechos reservados. Este trabajo se entrega bajo la licencia Creative Commons Reconocimiento - NoComercial - SinObraDerivada
MONITORES EN JAVA. Antonio Tomeu Control de la Concurrencia en Java: API Estándar
MONITORES EN JAVA Un monitor es un objeto que implementa acceso bajo e.m. a todos sus métodos, y provee sincronización En Java, son objetos de una clase cuyos métodos públicos son todos synchronized Un
CREAR UN SERVICIO WEB BASICO CON JAVA AXIS2. Víctor J. Sosa [email protected]
CREAR UN SERVICIO WEB BASICO CON JAVA AXIS2. Víctor J. Sosa [email protected] En este documento explicaré brevemente cómo construir un servicio web con Java Axis2 y cómo invocarlo desde un cliente
CONCEPTOS BASICOS DEL LENGUAJE JAVA
CONCEPTOS BASICOS DEL LENGUAJE JAVA NOMENCLATURA GENERAL En Java se distinguen las letras mayúsculas y minúsculas. Las reglas del lenguaje respecto a los nombres de variables son muy amplias y permiten
Programación Java. Práctica 11. Javier García de Jalón José Ignacio Rodríguez Alfonso Brazález Alberto Larzabal Jesús Calleja Jon García
Práctica 11 Programación Java San Sebastián, mayo 1999 Javier García de Jalón José Ignacio Rodríguez Alfonso Brazález Alberto Larzabal Jesús Calleja Jon García Informática 2: Práctica nº 11 página 1 INDICE
Modulo conexión Cliente WS DGI
Modulo conexión Cliente WS DGI El desarrollo fue echo con eclipse (eclipse-jee-kepler) utilizando herramientas Apache. De la misma forma puede hacerse con otro lenguaje que acepte estas librerias porque
Examen de Redes - Primer Parcial - ETSIA 26 de Enero de 2006
Examen de Redes - Primer Parcial - ETSIA 26 de Enero de 2006 Apellidos, Nombre: Grupo de matrícula: Soluciones al examen Todos 1. (1 punto) Convierte el siguiente servidor iterativo en un servidor concurrente:
James Gosling, creador de Java
Lo que Java intenta hacer y lo hace con bastante éxito, es abarcar dominios diferentes. De esa forma le permite efectuar trabajos para de aplicaciones del lado del servidor, del lado del cliente, para
Sockets. Sockets. 1 Introducción
1 Introducción Los URL y las conexiones URL (URLConnection) proporcionan un mecanismo de un nivel relativamente alto (nivel 7 del modelo OSI) para acceder a los recursos de Internet. Algunas veces, los
Unidad II. Fundamentos de programación en Java. Ing. José Luis Llamas Cárdenas
Unidad II Fundamentos de programación en Java Ing. José Luis Llamas Cárdenas En java para poder escribir se emplea el objeto System.out, t pero para leer del teclado es necesario emplear System.in Et Este
EXAMEN PROGRAMACIÓN 21 de Septiembre de 2007 INGENIERÍA INFORMÁTICA Primera parte: Cuestiones 1,5 horas
Apellidos Nombre Firma NIA Grupo EXAMEN PROGRAMACIÓN 21 de Septiembre de 2007 INGENIERÍA INFORMÁTICA Primera parte: Cuestiones 1,5 horas Pregunta 1 (0,5 puntos).- Indicar si las siguientes afirmaciones
