Multienhebrado en Java Un toque de sincronización Transporte en Java Ejemplo conjunto
|
|
|
- Domingo Lucero Gómez
- hace 8 años
- Vistas:
Transcripción
1 Java y multiprogramación sobre red Sistemas Distribuidos ITInformática (UVA) César Llamas Bello 2003 Índice Multienhebrado en Java Un toque de sincronización Transporte en Java Ejemplo conjunto 26/02/2003 Sistemas Distribuidos - Qué es Java? (c) César Llamas 2003 (UVA) 2
2 Multienhebrado en Java hilos El hilo es la unidad de ejecución del S.O. Multienhebrado (procesos ligeros) Todos los hilos acceden a los mismos recursos Cada hilo tiene su propia pila, PC, etc. Los hilos pueden ejecutarse en diferentes procesadores, o ser simulados. 26/02/2003 Sistemas Distribuidos - Qué es Java? (c) César Llamas 2003 (UVA) 3 Multienhebrado en Java soporte Java Versiones: Green Threads: la maquina virtual soporta los hilos en nombre del S.O. Native Threads: se aprovecha el multienhebrado del S.O. Java soporta multienhebrado por construcción, y todos los programas Java son Multienhebrados (Reference Handler, Finalizar, Signal Dispatcher, AWT-Motif,...) 26/02/2003 Sistemas Distribuidos - Qué es Java? (c) César Llamas 2003 (UVA) 4
3 Multienhebrado en Java soporte Java Elementos Java para el multienhebrado: Se crean hilos: extendiendo la clase Thread, o implementando la interfaz Runnable. Se pueden bloquear recursos mediante el modificador synchronized. Se pueden sincronizar productores y consumidores con wait(), notify() y notifyall(). 26/02/2003 Sistemas Distribuidos - Qué es Java? (c) César Llamas 2003 (UVA) 5 Multienhebrado ejemplo Un reloj en trasfondo: public class TimePrinter implements Runnable { public void run() { while (true) { System.out.println(new Date()); try { Thread.sleep(1000); // milis catch (InterruptedException x) { public static void main(string[] args) { final Runnable tarea = new TimePrinter(); new Thread(task, Hilo de TimePrinter ).start();... // resto del programa 26/02/2003 Sistemas Distribuidos - Qué es Java? (c) César Llamas 2003 (UVA) 6
4 Multienhebrado estados de un hilo fin de sleep new start() sleep() suspend() blocked running yield() runnable resume() wait() notify() desbloqueo dead stop(), o fin de run() bloqueo en E/S 26/02/2003 Sistemas Distribuidos - Qué es Java? (c) César Llamas 2003 (UVA) 7 Multienhebrado prioridades Cada hilo tiene una prioridad MIN_PRIORITY... MAX_PRIORITY Heredada del hilo padre Existe getpriority() y setpriority() Los hilos java son desalojables (apropiables, preemtibles) La planificación es de turno rotatorio (round-robin) aunque se pueden poner hilos no desalojables. 26/02/2003 Sistemas Distribuidos - Qué es Java? (c) César Llamas 2003 (UVA) 8
5 Sincronización La sincronización para el acceso a regiones críticas se realiza mediante synchronized, a modo de monitores synchronized (referencia a un objeto) { synchronized método_sincronizado(... )... {... Es posible utilizar puntos de sincronización al estilo wait/notify. 26/02/2003 Sistemas Distribuidos - Qué es Java? (c) César Llamas 2003 (UVA) 9 Sincronización ejemplo productor-consumidor import java.util.*; class ColaStrings { private ArrayList lista = new ArrayList(); public synchronized void push(final String p) { lista.add(p); this.notify(); // hace saber que ha llegado un String public synchronized String pop() { while (lista.size() == 0) try { this.wait(); // espera la llegada de un String catch (final InterruptedException e) { return (String) lista.remove(0); 26/02/2003 Sistemas Distribuidos - Qué es Java? (c) César Llamas 2003 (UVA) 10
6 Sincronización ejemplo productor-consumidor import java.io.*; class Productor implements Runnable { private final ColaStrings cola ; public Productor(ColaStrings c) { this.cola = c; public void run() { final Reader r1 = new InputStreamReader(System.in); final BufferedReader teclado = new BufferedReader(r1); String linea; try { while ((linea = teclado.readline())!= null) { // lee teclado cola.push(linea); catch (final IOException x) { x.printstacktrace(system.err); 26/02/2003 Sistemas Distribuidos - Qué es Java? (c) César Llamas 2003 (UVA) 11 Sincronización ejemplo productor-consumidor class Consumidor implements Runnable { private final ColaStrings cola ; public Consumidor(ColaStrings c) { this.cola = c; public void run() { String linea; while (true) { linea = cola.pop(); System.out.println(">> " + linea); // imprime 26/02/2003 Sistemas Distribuidos - Qué es Java? (c) César Llamas 2003 (UVA) 12
7 Sincronización ejemplo productor-consumidor class LanzaPC { public static void main(string[] args) { ColaStrings cola = new ColaStrings() ; Runnable genera = new Productor(cola) ; Runnable come = new Consumidor(cola) ; new Thread(genera).start(); new Thread(come).start(); 26/02/2003 Sistemas Distribuidos - Qué es Java? (c) César Llamas 2003 (UVA) 13 Transporte en Java Un poco de Procesos, puertos y sockets El mecanismo de comunicación sobre IP deriva de UNIX y de BSD 4.3. Host Socket (entidad del proceso) Proceso Puerto = dirección IP Host + nº puerto (0 al 65535) (entidad de la capa de red del sistema) 26/02/2003 Sistemas Distribuidos - Qué es Java? (c) César Llamas 2003 (UVA) 14
8 Transporte en Java direcciones IP Dos versiones de IP IPv4 (32 bits) IPv6 (128 bits) en Java 1.4 se da un API extendido. DirecciónIP= entero 32 bits En notación DDN, (ej: ) Nombres host= nombres de dominio Ej.: 26/02/2003 Sistemas Distribuidos - Qué es Java? (c) César Llamas 2003 (UVA) 15 Transporte en Java direcciones IP java.net.inetaddress (métodos factoría) Subclases: Inet4Address, Inet6Address static InetAddress getbyname(string host) static InetAddress[] getallbyname(string host) static InetAddress getlocalhost() 26/02/2003 Sistemas Distribuidos - Qué es Java? (c) César Llamas 2003 (UVA) 16
9 Transporte en Java direcciones IP Ejemplo: import java.io.*; import java.net.*; public class IPAddrTest { public static void main(final String[ ] args) { InetAddress ip=inetaddress.getbyname( System.out.println( IpAddress: + ip.tostring()); String hostname = ip.gethostname(); System.out.println( Hostname: + hostname); 26/02/2003 Sistemas Distribuidos - Qué es Java? (c) César Llamas 2003 (UVA) 17 Transporte en Java Protocolos IP Sobre el protocolo de red se implementa: UDP (User Datagram Protocol) No fiable Sin conexión DatagramSocket, DatagramPacket, MulticastSocket TCP (Transmission Control Protocol) Fiable Orientado a conexión Socket, ServerSocket 26/02/2003 Sistemas Distribuidos - Qué es Java? (c) César Llamas 2003 (UVA) 18
10 Transporte en Java TCP/IP Se diferencia entre el proceso iniciador y el proceso con espera pasiva Iniciador: 1. Crea socket 2. Enlaza el socket a un puerto 3. Conecta con el socket receptor (si es posible) 4. Envía y recibe a través de streams. 5. Se cierran los streams y el socket 26/02/2003 Sistemas Distribuidos - Qué es Java? (c) César Llamas 2003 (UVA) 19 Transporte en Java TCP/IP Proceso en espera (secundador) 1. Crea socket de servicio 2. Enlaza el socket a un puerto 3. Se sitúa en espera (accept) 4. Al aceptar una conexión crea un socket normal sobre otro puerto Envía y recibe a través de streams Si creamos un hilo nuevo para esta comunicación, podemos volver a 3 con el hilo principal. Se cierran los streams y el socket 5. Se cierra el socket de servicio. 26/02/2003 Sistemas Distribuidos - Qué es Java? (c) César Llamas 2003 (UVA) 20
11 Transporte en Java import java.net.*; import java.io.*; ejemplo-cliente public class Cliente { public static void main(string[] args) throws IOException { String host = args[0]; String linea; Socket sock = new Socket(host, Servidor.PUERTO); final Reader r1 = new InputStreamReader(System.in); final BufferedReader teclado = new BufferedReader(r1); OutputStream out = sock.getoutputstream(); PrintStream outred = new PrintStream(out); InputStream in = sock.getinputstream(); Reader r2 = new InputStreamReader(in); BufferedReader inred = new BufferedReader(r2); 26/02/2003 Sistemas Distribuidos - Qué es Java? (c) César Llamas 2003 (UVA) 21 Transporte en Java ejemplo-cliente Continúa... while ((linea = teclado.readline())!= null) { // lee el teclado outred.println(linea); // manda al servidor linea = inred.readline() ; // lee echo del servidor System.out.println(">> " + linea); // imprime echo del servidor outred.close(); inred.close(); sock.close(); // Se ejecuta con: java Cliente host-donde-está-el-servidor 26/02/2003 Sistemas Distribuidos - Qué es Java? (c) César Llamas 2003 (UVA) 22
12 Transporte en Java import java.net.*; import java.io.*; ejemplo-servidor public class Servidor { public static final int PUERTO = 0xCAFE; public static void main(string[] args) throws IOException { ServerSocket servidor = new ServerSocket(PUERTO) ; for (;;) { try { System.out.println(" "); Socket sock = servidor.accept() ; InputStream in = sock.getinputstream(); // entrada socket Reader r1 = new InputStreamReader(in); BufferedReader inred = new BufferedReader(r1); 26/02/2003 Sistemas Distribuidos - Qué es Java? (c) César Llamas 2003 (UVA) 23 Transporte en Java ejemplo-servidor Continúa... OutputStream out = sock.getoutputstream(); // salida socket PrintStream String linea; outred = new PrintStream(out); while ((linea = inred.readline())!= null) { // lee de la red System.out.println(linea); // echo por la pantalla outred.println(linea); // echo al cliente inred.close(); outred.close(); sock.close(); catch (IOException e) { e.printstacktrace(system.err); 26/02/2003 Sistemas Distribuidos - Qué es Java? (c) César Llamas 2003 (UVA) 24
13 Ejemplo conjunto Un servidor proporciona acceso a una Cola de Strings (ArrayList de String) para varios procesos: Se requiere sincronización en red: Sobre TCP/IP El servidor está multienhebrado: Cada cliente debe tener su propio hilo dentro del servidor Cada cliente puede depositar o substraer elementos de la cola Se precisa de un protocolo. 26/02/2003 Sistemas Distribuidos - Qué es Java? (c) César Llamas 2003 (UVA) 25 Ejemplo conjunto cliente protocolo de aplicación hilo servicio PON:mensaje PONGO:mensaje QUITA:*** QUITO:mensaje *** (otra cosa) NOENTIENDO:*** 26/02/2003 Sistemas Distribuidos - Qué es Java? (c) César Llamas 2003 (UVA) 26
14 Ejemplo conjunto Cola de Strings import java.util.*; class ColaStrings { private ArrayList lista = new ArrayList(); public synchronized void push(final String p) { lista.add(p); this.notify(); // hace saber que ha llegado un String public synchronized String pop() { while (lista.size() == 0) try { this.wait(); // espera la llegada de un String catch (final InterruptedException e) { return (String) lista.remove(0); 26/02/2003 Sistemas Distribuidos - Qué es Java? (c) César Llamas 2003 (UVA) 27 Ejemplo conjunto Cliente El mismo cliente tonto de antes, El protocolo tenemos que escribirlo nosotros, No complicamos el cliente, Es más pesado de escribir pero controlamos el protocolo Podemos prescindir de nuestro cliente telnet host (que es el 0xCAFE) Pero perdemos el control de las interrupciones 26/02/2003 Sistemas Distribuidos - Qué es Java? (c) César Llamas 2003 (UVA) 28
15 Ejemplo conjunto Servidor import java.net.*; import java.io.*; public class Servidor { public static final int PUERTO = 0xCAFE; public static void main(string[] args) throws IOException { ServerSocket servidor = new ServerSocket(PUERTO) ; ColaStrings cola = new ColaStrings(); for ( ; ; ) { try { System.out.println(" "); Socket sock = servidor.accept() ; Runnable sirviente = new Sirviente(cola, sock); new Thread(sirviente).start(); catch (IOException e) { e.printstacktrace(system.err); 26/02/2003 Sistemas Distribuidos - Qué es Java? (c) César Llamas 2003 (UVA) 29 Ejemplo conjunto import java.net.*; import java.io.*; Sirviente class Sirviente implements Runnable { private final ColaStrings cola ; private final Socket sock; private final BufferedReader inred; private final PrintStream outred; public Sirviente(ColaStrings c, Socket s) throws IOException { this.cola = c; InputStream in = s.getinputstream(); // entrada socket Reader r1 = new InputStreamReader(in); this.inred = new BufferedReader(r1); OutputStream out = s.getoutputstream(); // salida socket this.outred = new PrintStream(out); this.sock = s; 26/02/2003 Sistemas Distribuidos - Qué es Java? (c) César Llamas 2003 (UVA) 30
16 Ejemplo conjunto Sirviente public void run() { String linea, sl; try { Cuerpo principal del hilo catch (final IOException x) { x.printstacktrace(system.err); 26/02/2003 Sistemas Distribuidos - Qué es Java? (c) César Llamas 2003 (UVA) 31 Ejemplo conjunto Sirviente while ((linea = inred.readline())!= null) { // lee de la red if (linea.indexof("pon:") == 0) { // está al principio sl = linea.substring(4); cola.push(sl); outred.println("pongo:" + sl); else if (linea.indexof("quita:") == 0) { linea = cola.pop(); outred.println("quito:"+linea); else{ outred.println("noentiendo:"+linea); inred.close(); outred.close(); sock.close(); 26/02/2003 Sistemas Distribuidos - Qué es Java? (c) César Llamas 2003 (UVA) 32
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
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
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
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.- 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...
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
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
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
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
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 POLITÉCNICA DE PACHUCA SOCKETS EN JAVA
SOCKETS EN JAVA Los sockets son puntos finales de enlaces de comunicaciones entre procesos. Los procesos los tratan como descriptores de ficheros, de forma que se pueden intercambiar datos con otros procesos
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
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
Java: Programación Multithread
Qué es un thread? Java: Programación Multithread Hasta el momento hemos desarrollado programas secuenciales con un único thread: en cualquier instante durante la ejecución de un programa hay un único punto
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
Sistemas Distribuidos ITInformática (UVA) César Llamas Bello - Febrero 2003
Comunicación entre procesos Sistemas Distribuidos ITInformática (UVA) César Llamas Bello - Febrero 2003 Indice Interfaz de programación para protocolos de Internet Representación externa de datos y empaquetado
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
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
DESARROLLO DE APLICACIONES PARA CONTROL Y MONITOREO DE DISPOSITIVOS REMOTOS
UNIDAD IZTAPALAPA DIVISIÓN DE CIENCIAS BÁSICAS E INGENIERIA DESARROLLO DE APLICACIONES PARA CONTROL Y MONITOREO DE DISPOSITIVOS REMOTOS PARA OBTENER EL TITULO DE LICENCIADO EN COMPUTACION PRESENTAN: CRISÓSTOMO
Programación Orientada a Eventos
Programación Orientada a Eventos Técnicas de Programación Santiago Pavón V:2012.03.13 Programas Secuénciales El flujo de ejecución del programa sigue la secuencia de sentencias que lo forman. El estado
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..
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
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
Java nos ofrece la clase Thread y la interfaz Runable que permiten que varios procesos estén funcionando de forma concurrente.
Threads (hilos) Java nos ofrece la clase Thread y la interfaz Runable que permiten que varios procesos estén funcionando de forma concurrente. Conceptos: Proceso (thread o hilo): es un programa en ejecución
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
Programación Concurrente en Java: Threads. Ejemplos de programación concurrente. Luis Fernando Llana Díaz. 24 de abril de 2008
Departamento de Sistemas Informáticos y Computación Universidad Complutense de Madrid de abril de 00 Ejemplos de programación concurrente En un sistema operativo, diversos programas compiten por los recursos
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
Direcciones IP y puertos
Redes en Java HTTP, Telnet, FTP, SMTP, SNMP, etc (Aplicaciones usuario) TCP/IP TCP UDP IP Acceso a la red TCP: Transmission Control Protocol UDP: User Datagram Protocol IP: Internet Protocol TCP Protocolo
75-62 Técnicas de Programación Concurrente II 2004 java Threads
75-62 Técnicas de Programación Concurrente II 2004 java Threads FIUBA Ing. Osvaldo Clúa Bibliografía: tutorial de Java en http://java.sun.com Un buen libro (algo teórico) es Garg: Concurrent and Distributed
Concurrencia en Java
Concurrencia en Java Herramientas proporcionadas por Java La Máquina Virtual (JVM) Pedro Pablo Gómez Martín La clase Thread Clase principal con la que conseguir concurrencia. La llamada a su método start()
Programación Concurrente. Curso Java 2012, 2013 Juan Manuel Fernández Peña
Programación Concurrente Curso Java 2012, 2013 Juan Manuel Fernández Peña Programación secuencial Hasta ahora se ha trabajado con programas secuenciales Se ejecuta paso a paso Son deterministas: si se
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
CLASE SOCKET. 1. Crear un nuevo socket usando un constructor de la clase. 2. El socket trata de conectarse al host remoto.
CLASE SOCKET 1. Crear un nuevo socket usando un constructor de la clase. 2. El socket trata de conectarse al host remoto. 3. Una vez establecida la conexión, tanto el host local como el remoto obtienen
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
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
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
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
Laboratorio de Redes de Comunicaciones Programación con Sockets en Java
Laboratorio de Redes de Comunicaciones Programación con Sockets en Java Sockets orientados a conexión Sockets no orientados a conexión Java: Distribuido Java se ha construido con extensas capacidades de
Sockets. Introducción. Las redes de computadoras permiten al usuario. Curso Propedéutico Maestría en Ciencias de la Computación BUAP
Sockets Curso Propedéutico Maestría en Ciencias de la Computación BUAP Introducción Las redes de computadoras permiten al usuario Acceder a datos remotos Procesamiento remoto Recursos remotos Dr. Ivan
Java: comunicación en Internet. Modem. Satelite UMTS W-LAN. Láser. Fibra óptica. Conceptos básicos
Conceptos básicos Los computadores conectados a Internet se comunican entre ellos usando protocolos: Java: comunicación en Internet Franco Guidi Polanco Escuela de Ingeniería Industrial Pontificia Universidad
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é.
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.
Programación Concurrente en Java
Hebras y monitores Departamento de Sistemas Informáticos y Programación Universidad Complutense de Madrid 21 de marzo de 2006 Threads Extendiendo la clase java.lang.thread. public class PrThread extends
Hilos en Java. Crear un Hilo. Detener un hilo. Fuente: http://www.chuidiang.com/java/hilos/hilos_java.php
Fuente: http://www.chuidiang.com/java/hilos/hilos_java.php Hilos en Java A veces necesitamos que nuestro programa Java realice varias cosas simultáneamente. Otras veces tiene que realizar una tarea muy
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
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:
Programación Concurrente en Java
Programación Concurrente en Java Curso 2006-2007 9/2/2007 Prog. Distribuida Bajo Internet Qué es la Programación Concurrente? Diseño basado en varias actividades independientes Conceptualmente se ejecutan
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
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.
Si bien Pascal-FC no trae algunas de las características de Pascal como:
PROCESOS VS. HILOS: Ciclo de vida de un proceso: es prácticamente un estándar en todos los sistemas operativos. En principio el proceso no existe, es creado, luego pasa a listo (el proceso esta en condiciones
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
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
Posibles implementaciones
Rafa Páez Jaime Ampliación de redes Universidad de Valencia 20 de Noviembre de 2010 Este trabajo consiste en una experiencia personal, concretamente en una práctica que tuve que realizar en la asignatura
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
IMPLEMENTACIÓN DE REDES DE PETRI CON TIEMPO EN JAVA
DEPARTAMENTO DE INFORMÁTICA E INGENIERÍA DE SISTEMAS LÍNEA DE INVESTIGACIÓN IMPLEMENTACIÓN DE REDES DE PETRI CON TIEMPO EN JAVA TRABAJO DE INVESTIGACIÓN Director: José Luís Villarroel Salcedo Doctorando:
TEMA 6: API Java para Concurrencia de Alto Nivel
TEMA 6: API Java para Concurrencia de Alto Nivel CONTENIDO API Java 5 de Control de la Concurrencia Clases para Gestión de Variables Atómicas Clase java.concurrent.util.concurrent.semaphore Clase java.concurrent.util.concurrent.cyclicbarrier
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
Entrada y Salida con Java
Entrada y Salida con Java Programación Orientada a Objetos Facultad de Informática Dep. Ingeniería del Software e Inteligencia Artificial Universidad Complutense Madrid E/S con flujos (streams) En Java
CONCURRENCIA EN JAVA. Diseño de Sistemas Operativos Avanzados 2000/2001. Pedro Pablo Gómez Martín
CONCURRENCIA EN JAVA Diseño de Sistemas Operativos Avanzados 2000/2001 Pedro Pablo Gómez Martín Concurrencia en Java 1 ÍNDICE ÍNDICE... 1 INTRODUCCIÓN... 3 CREAR UNA NUEVA HEBRA... 3 FINALIZACIÓN... 5
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.
Maestría en Ciencias de la Computación
U niversidad Americana de Acapulco Maestría en Ciencias de la Computación Modulo: Protocolo TCP/IP Trabajos: Practica de Protocolos Sockets Exposición del Proyecto Win 2000 Equipo No 2: Diana Nogueda Anaya
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
CAPITULO 5. SOCKETS. M.E Carmen Cerón G Programación Concurrente 109
CAPITULO 5. SOCKETS Una de las grandes potencias del lenguaje de programación Java es la total portabilidad de sus programas gracias a su "máquina virtual". Esto adquiere una importancia aún mayor en Internet
Examen Final de Redes - ETSIA - 24 de junio de 2006
Apellidos, Nombre: Grupo de matrícula: Examen Final de Redes - ETSIA - 24 de junio de 2006 1. (0,5 puntos) Calcula el tiempo necesario para recibir la respuesta a una consulta DNS si el servidor de nombres
Este capítulo cubre los siguientes aspectos, de los objetivos del examen de certificación en Java:
7. Hilos Objetivos Este capítulo cubre los siguientes aspectos, de los objetivos del examen de certificación en Java: Escribir código para definir, instanciar e iniciar nuevos hilos usando java.lang.thread
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
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 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
Hilos. Índice. Copyright 2012-13 Dept. Ciencia de la Computación e IA All rights reserved.
Índice 1 Creación de hilos... 2 2 Ciclo de vida y prioridades...3 2.1 Prioridades de los hilos... 4 2.2 Interrupción de un hilo...4 3 Sincronización de hilos... 5 3.1 Sincronización reentrante...6 4 Bloques
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
Programando en Java Raspberry Pi (RPi) 2015/05/08 Juan V. Capella
Programando en Java Raspberry Pi (RPi) 2015/05/08 Juan V. Capella Contenido Objetivo Introducción Tecnología Java Clases y objetos. Herencia Aplicaciones y Applets Tipos de datos y estructuras Operadores
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.
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
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
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:
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
Programación multihebra
Programación multihebra by Scheme the API man 2000 ([email protected]) Qué es la programación multihebra? Podemos definir la programación multihebra o multihilo como un estilo de ejecucion en el que
Capítulo 2: Capa Aplicación - IV
Capítulo 2: Capa Aplicación - IV ELO322: Redes de Computadores Tomás Arredondo Vidal Este material está basado en: material de apoyo al texto Computer Networking: A Top Down Approach Featuring the Internet
Hebras y Sincronización en Java
Hebras y Sincronización en Java Jonathan Makuc http://jmakuc.ublog.cl Noviembre 2008 Tópicos: 1. Introducción a hebras en Java...2 2. Hebras a través del clase Thread...3 3. Hebras a través de la interfaz
Laboratorio de Fundamentos de Sistemas Distribuidos. Chat en Java - 1
Laboratorio de Fundamentos de Sistemas Distribuidos Chat en Java - 1 Tipo de entrega: por grupos de prácticas Fecha límite: sesiones de laboratorio Lugar: Atenea (nou campus) Objetivos del proyecto: Crear
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
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
FASE 1 FASE 2 FASE 3 FASE 4
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS SOCKETS SEGUROS CON LIBRERÍAS DE OPENSSL INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS PROTOCOLO DE
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
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...
Arquitecturas cliente/servidor
Arquitecturas cliente/servidor Conceptos básicos 1 Conceptos básicos 1. Definición de puerto 2. Sockets 3. Conceptos cliente/servidor 4. Definición de Stream 5. Concurrencia, multiprogramación y multitarea
Concurrencia en Java
Concurrencia en Java Concurrencia y Distribución Programación Avanzada Posgrado en Ciencia e Ingeniería de la Computación, UNAM 1. El mecanismo de threads Una aplicación Java o applet puede contener secciones
class Nombre_Clase extends Nombre_SuperClase { cuerpo de la clase extendida }
REUTILIZACIÓN DE CLASES:MODELO DE HERENCIA EN JAVA Java soporta herencia simple pero no múltiple. Lo hace mediante el mecanismo de extensión de clase. A partir de él, una subclase se extiende (hereda)
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:
Clase 34. Hilos. Qué es un hilo?
Clase 34 Hilos Qué es un hilo? Imagine un programa de Java que lee archivos grandes en Internet en distintos servidores. Algunos de ellos estarán sometidos a grandes cargas o tendrán conexiones lentas
