PROGRAMACION DISTRIBUIDA
|
|
|
- Ángela Juárez Castilla
- hace 10 años
- Vistas:
Transcripción
1 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 (Server) Is near Missile (remote) shot(initpos,password) getposition():position setdirection(direction) nearnessreport(target,observer) explode() turnoff() Observer (remote) ObserverTarget (Server) signal() MissileControler (Client)
2 3 Dos estrategias de que el Server transmita información al cliente Polling (Estrategia client/server estricta) Callback (Estrategia client/server no estricta) :MissileController :SwiftEagle :MissileController :SwiftEagle isintarget()->false getposition() getposition() Create and register in RMI :TargetObserver nearnessreport(position, observer); isintarget()->false getposition() asclosedtotarget=true observer.signal() isintarget()->true 4 Organización del código
3 5 Especificación de la aplicación distribuida SwiftEagle (1/3) 6 Especificación de la aplicación distribuida SwiftEagle (2/3) TargetObserver
4 7 Especificación de la aplicación distribuida SwiftEagle (3/3) TargetObserver 8 Organización del código en paquetes grant{ permission java.security.allpermission; grant{ permission java.security.allpermission; permission java.net.socketpermission "*:1024-","accept, resolve";
5 9 Tipos de datos comunes public class Direction implements Serializable{ private static final long serialversionuid = 333; public double ux=0; public double uy=0; public double uz=0; public Direction(double ux,double uy,double uz){ double mod=math.sqrt(math. pow(ux, 2)+ Math. pow(uy, 2)+ Math. pow(uz, 2)); if (mod!=0){this.ux=ux/mod;this.uy=uy/mod;this.uz=uz/mod; public class Position implements Serializable { private static final long serialversionuid = 444; public double x, y, z; public Position(double x,double y,double z){ t his.x=x; this.y=y; this.z=z; public class UnknownException extends Exception { private static final long serialversionuid = ; public class UnreadyException extends Exception { private static final long serialversionuid = 222; 10 Interfaces remotas definidas import java.rmi.remote; import java.rmi.remoteexception; public interface Observer extends Remote { void signal() throws RemoteException; import java.rmi.*; public interface Missile extends Remote { void shot(position initpos, long password) throws UnreadyException, RemoteException; Position getposition() throws RemoteException; void setdirection(direction dir) throws RemoteException; void nearnessreport (Position pos, Observer observer) throws RemoteException; void explode(long password) throws UnknownException,RemoteException; void turnoff() throws RemoteException; Parámetros que se pasan por referencia remota
6 11 Cliente: Objeto remoto TargetObserver import java.rmi.remote; import java.rmi.remoteexception; public interface Observer extends Remote { void signal() throws RemoteException; import java.rmi.remoteexception; import java.rmi.server.unicastremoteobject; public class TargetObserver extends UnicastRemoteObject implements Observer { public TargetObserver() throws RemoteException { super(); public void signal() throws RemoteException { MissileController.asCloseToTarget = true; 12 Cliente: Clase principal MissileController public class MissileController { public static boolean asclosetotarget=false; public static void main(string[] args) { String missilename=args[0]; try { Observer observer=(observer) new TargetObserver(); // Nuestro objeto de callback long thepassword=(long)(long.max_value*math.random()); Registry registry = LocateRegistry.getRegistry(); Missile themissile = (Missile) registry.lookup(missilename); themissile.shot(new Position(0,0,0), thepassword); //*** Comienza el control del missil ***// themissile.setdirection(new Direction(1,1,10)); themissile.nearnessreport(new Position(0,0,1000), observer);//pasamos objeto de callback al server while(!asclosetotarget){ código necesario? Thread.sleep(500); Position pos=themissile.getposition(); System.out.println("current position: "+pos.x+" "+pos.y+" "+pos.z); try{ themissile.explode( thepassword); catch(unknownexception u) { System.out.println("Eres un intruso y no exploto"); themissile.turnoff(); try { UnicastRemoteObject.unexportObject(observer, false); catch (NoSuchObjectException e) {... catch (Exception e) { System.err.println("Excepción del cliente: " + e.tostring());
7 13 Servidor: Clase servidora SwiftEagle (1/3) public class SwiftEagle extends Thread implements Missile {. public void shot(position initpos, long password) throws UnreadyException {... public Position getposition() throws RemoteException {... public void setdirection(direction dir)throws RemoteException {... public void explode(long password)throws UnknownException, RemoteException{... public void turnoff() throws RemoteException{... Observer observer; public void nearnessreport(position target, Observer observer) throws RemoteException { this.target=target; this.observer=observer; Objeto de callback public void run(){ observer.signal(); Servidor: Clase servidora SwiftEagle (2/3) public class SwiftEagle extends Thread implements Missile {... public void run() { while (!interrupted()) { try {sleep(update_period); catch (InterruptedException e){break; pos.x+=vel*dir.ux*update_period/1000.0; // Actualizamos pos.y y pos.z también... if (target!=null) { double currenttargetdist=math.sqrt(...); if (currenttargetdist>targetdist){ target=null; targetdist=double.max_value; callback try { observer.signal(); catch (RemoteException e) { else {targetdist=currenttargetdist; try {UnicastRemoteObject.unexportObject(this, false); catch (NoSuchObjectException e) { // Close run
8 15 Servidor: Clase servidora SwiftEagle (3/3) public class SwiftEagle extends Thread implements Missile { /. public static void main (String[] args) { String missilename= null; if (args.length >=1) missilename = args[0]; SwiftEagle eagle=new SwiftEagle(); try{ Remote rmtref= UnicastRemoteObject.exportObject(eagle,0); Registry theregistry=locateregistry.createregistry(1099); theregistry.rebind(args[0], rmtref); catch (RemoteException e) { System.err.println("Error en Servidor SwiftEagle " +args[0]); System.exit(-1); System.out.println("Servidor SwiftEagle " +args[0]+ " READY"); // Close main // Close SwftAegle 16 Ejecución Cliente Servidor SwitfEagle
9 17 SwiftEagle: Variaciones (1/2) Cómo minimizar los cambios en el código de negocio? 18 SwiftEagle: Uso del patrón proxy clase modificada clase nueva
10 19 Cliente: Nueva clase proxy SwiftEagle public class SwiftEagle { Registry registry = null; String missilename = Misil7831 ; Missile themissile = null; // Constructor del proxy public SwiftEagle(){ try { registry = LocateRegistry.getRegistry(); // Localiza el Registry en el puerto 1099 this.themissile = (Missile) registry.lookup(missilename); // Localiza el misil catch (RemoteException e) {... catch (NotBoundException e) {... Invocación remota public void setdirection(direction dir) { try { themissile.setdirection(dir); catch (RemoteException e) {... public Position getposition() throws RemoteException { Cliente: Clase principal MissileController modificada public class MissileController { public static boolean asclosetotarget=false; public static void main(string[] args) { try { Observer observer=(observer) new TargetObserver(); // Nuestro objeto de callback long thepassword=(long)(long.max_value*math.random()); // *** Se genera el proxy ***// SwiftEagle themissile = new SwiftEagle (); Código nuevo themissile.shot(new Position(0,0,0), thepassword); //*** Comienza el control del missil ***// themissile.setdirection(new Direction(1,1,10)); themissile.nearnessreport(new Position(0,0,1000), observer);//pasamos objeto de callback al server while(!asclosetotarget){ Thread.sleep(500); Position pos=themissile.getposition(); System.out.println("current position: "+pos.x+" "+pos.y+" "+pos.z); try{ themissile.explode( thepassword); catch(unknownexception u) { System.out.println("Eres un intruso y no exploto"); themissile.turnoff(); try { UnicastRemoteObject.unexportObject(observer, false); catch (NoSuchObjectException e) {... catch (Exception e) { System.err.println("Excepción del cliente: " + e.tostring());
11 21 SwiftEagle: Variaciones (2/2) Cómo minimizar los cambios en el código de negocio? Cómo implementar la carga dinámica de clases? 22 SwiftEagle: Carga dinámica de clases (1/6) grant{ permission java.security.allpermission; grant{ permission java.security.allpermission; permission java.net.socketpermission "*:1024-","accept, resolve";
12 23 SwiftEagle: Carga dinámica de clases (2/6) public class SwiftEagle extends Thread implements Missile { /. public static void main (String[] args) { String missilename= null; if (args.length >=1) missilename = args[0]; SwiftEagle eagle=new SwiftEagle(); try{ Remote rmtref= UnicastRemoteObject.exportObject(eagle,0); Registry theregistry=locateregistry.getregistry(); theregistry.rebind(args[0], rmtref); catch (RemoteException e) { System.err.println("Error en Servidor SwiftEagle " +args[0]); System.exit(-1); System.out.println("Servidor SwiftEagle " +args[0]+ " READY"); // Close main // Close SwftAegle 24 SwiftEagle: Carga dinámica de clases (3/6)
13 25 SwiftEagle: Carga dinámica de clases (4/6) Dado que el registro no tiene acceso a las clases del proyecto, debemos indicarle dónde puede descargarlas (http, file, ftp, etc) 26 SwiftEagle: Carga dinámica de clases (5/6) Por defecto, el rmiregistry sólo permite cargar las clases que están en su CLASSPATH
14 27 SwiftEagle: Carga dinámica de clases (6/6) Para habilitar la carga dinámica de stubs, debemos modificar la propiedad UseCodebaseOnly del rmiregistry si es TRUE, la carga de clases sólo se realiza desde el CLASSPATH y desde el java.rmi.server.codebase de la JVM del rmiregistry
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
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.
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
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
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
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
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
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.
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
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
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
Código Fuente. Creamos en C:\ una carpeta para ubicar el código fuente del servidor. En mi caso, he creado una carpeta denominada rmi4
EL EJEMPLO El proceso servidor provoca un eco de la entrada de teclado enviada por el proceso cliente. Por sencillez, ejecutaremos tanto el servidor como el cliente en la máquina local. El sistema operativo
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
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
Ingeniería del Software Arquitectura Física en 3 niveles
Introducción En este laboratorio desplegaremos en 3 niveles físicos una aplicación que verifica si una cuenta y un password son correctos, basada en la que fue presentada en el laboratorio Separación entre
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:
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
El servicio de echo en Java-RMI
PRÁCTICA 3 El servicio de echo en Java-RMI E l objetivo de esta práctica es crear y ejecutar una aplicación cliente servidor echo basada en java-rmi. La práctica tiene dos partes: La primera parte implementa
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
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
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
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
Invocación de métodos remotos en Java: JAVA - RMI
Diseño Y Aplicaciones de Sistemas Distribuidos Invocación de métodos remotos en Java: JAVA - RMI Joan Vila DISCA / UPV Departament d Informàtica de Sistemes i Computadors Universitat Politècnica de València
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
Java RMI. Sistemas distribuidos
Java RMI Sistemas distribuidos Entornos orientados a objetos Tendencia actual hacia sistemas compuestos por un conjunto de objetos que interactúan entre sí. Un programa solicita servicios invocando los
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
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 sobre compartición de instancias remotas.
Práctica sobre compartición de instancias remotas. Para esta práctica se ha construido un pequeño sistema cliente-servidor que permite la resolución de Sudokus entre varios jugadores. El servidor consta
'HVDUUROORGH$SOLFDFLRQHV FRQ-DYD50,
'HVDUUROORGH$SOLFDFLRQHV FRQ-DYD50, /DERUDWRULRGH,QJHQLHUtDGHO6RIWZDUH &RQWHQLGR Antecedentes Introducción a los Sistemas Distribuidos Sockets RPC Java RMI Características Modelo de Objetos Distribuidos
SISTEMAS DISTRIBUIDOS
Sesión 5: Tema 8: Objetos Distribuidos e Invocación Remota. Java RMI SISTEMAS DISTRIBUIDOS GRADO EN INGENIERÍA INFORMÁTICA UNED Introducción Índice (1/2) Modelos de programación de aplicaciones distribuidas.
TEMA 7: Paso de Mensajes con RMI
CONTENIDO: TEMA 7: Paso de Mensajes con RMI Conceptos de Programación Distribuida Remote Method Invocation (RMI) en Java El Nivel de Resguardos La Responsable de que Todo Funcione: la interfaz El precompilador
VII.1: RMI: Remote Method Invocation
PROGRAMACION CONCURRENTE Y DISTRIBUIDA VII.1: RMI: Remote Method Invocation Posibilidades que ofrece Java para la comunicación en red: Socket,RMI y URL. 1 Sistemas distribuidos basados en middleware Client
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
RMI. Aplicaciones Distribuidas
RMI Aplicaciones Distribuidas Contenido Objetos Distribuidos y RMI. Interface Remota. Clase Implementación. Referencias Remotas. Registro RMI. Paso de parámetros. Descarga dinámica de código. Desarrollo
Ejercicio 4. EJB Sesión - Sistema SGA. Java EE. Ejercicio 4. EJB Sesión Sistema SGA. Curso de Java EE
Java EE Ejercicio 4 EJB Sesión Sistema SGA Objetivo del Ejercicio El objetivo del ejercicio es agregar un EJB de Sesión a nuestro proyecto SGA (Sistema de Gestión de Alumnos), el cual desarrollaremos a
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
Examen parcial Convocatoria de junio de 2005 FUNDAMENTOS DE LA PROGRAMACIÓN
EJERCICIO 1 (1.5 puntos) Diseñe un conjunto de casos de prueba adecuado para comprobar el funcionamiento de un método encargado de calcular la duración de una llamada telefónica. Entradas Hora de inicio
El servicio de echo con sockets
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
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
Java RMI. las RPC de Java. Parte II. Luis Fernando Llana Díaz. Departamento de Sistemas Informáticos y ProgramaciónUniversidad Complutense de Madrid
las RPC de Java. Parte II Departamento de Sistemas Informáticos y Programación Universidad Complutense de Madrid de marzo de 00 Distribución de clases I Es conveniente distinguir: servidor. Necesarias
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)
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
CAPITULO 3 ARQUITECTURA DE COMPONENTES GIS EN INTERNET
CAPITULO 3 ARQUITECTURA DE COMPONENTES GIS EN INTERNET 3.1- ARQUITECTURA DE COMPONENTES GIS La presente tesis trata del diseño y desarrollo de una aplicación basado en el Web para servir datos geográficos
Tema 3. Objetos distribuidos
Tema 3. Objetos distribuidos SCS Sistemas Cliente/Servidor 4 o informática http://ccia.ei.uvigo.es/docencia/scs octubre 2008 FJRP, FMBR 2008/09 ccia SCS 3.1 Modelo de objetos distribuidos Objetivo: Extender
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
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
Solución Examen Junio 2007 (a) Ejercicio GeoTaxi (1h 20 min.) Diagrama de Casos de Uso y. Casos de uso (2,5 puntos) Modelo de Dominio (1,5 puntos)
Solución Examen Junio 2007 (a) Ejercicio GeoTaxi (1h 20 min.) Diagrama de Casos de Uso y Casos de uso (2,5 puntos) Modelo de Dominio (1,5 puntos) 1 Actores OPERADOR CLIENTE TAXISTA 2 Actor Cliente Identificarse
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
PROGRAMACION DISTRIBUIDA
PROGRAMACION DISTRIBUIDA Aspectos avanzados de RMI Héctor Pérez 2 Objetivos Análisis de un conjunto de estrategias de diseño utilizando RMI que nos pueden servir de guía para el diseño de sistemas distribuidos
3.9 Patrón Distributed callback
3.9 Patrón Distributed callback Motivación (1) Queremos que la aplicación de administración de los termostatos Monitorize la temperatura de algunos termostatos, avisándonos si ésta baja o sube por encima
HOJA DE EJERCICIOS 5 PROGRAMACIÓN CON EXCEPCIONES EN JAVA
Estructura de la Información en Programación I.T.I.G., Matemáticas. Curso 2008/2009 Nombre:... Fecha: / 01 / 2009 HOJA DE EJERCICIOS 5 PROGRAMACIÓN CON EXCEPCIONES EN JAVA Esta hoja de ejercicios nos servirá
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
Componentes Distribuidos EJBs. Ing. Cesar Julio Bustacara Medina
Componentes Distribuidos EJBs Ing. Cesar Julio Bustacara Medina Introducción La Clase del Bean Contiene la lógica del Enterprise Bean. Es una clase Java pública, que implementa los métodos de negocios
Ejecución de hebras. En realidad, todas las aplicaciones escritas en Java son aplicaciones multihebra (recuerde el recolector de basura).
Ejecución de hebras En realidad, todas las aplicaciones escritas en Java son aplicaciones multihebra (recuerde el recolector de basura). Hebras vs. Procesos Los cambios de contexto son más costosos en
RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA
UNED Centro Asociado de Cádiz RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA 1. OBJETOS Cualquier elemento del programa es un objeto. Un programa es un conjunto de objetos que se comunican entre sí
SISTEMAS DISTRIBUIDOS
Sesión 6: Java RMI. Primeros pasos SISTEMAS DISTRIBUIDOS GRADO EN INGENIERÍA INFORMÁTICA UNED Índice Proyecto básico. Chat abierto. Servicios que ofrece el servidor: Escribir mensaje: escribir(mensaje)
NIVEL 15: ESTRUCTURAS RECURSIVAS BINARIAS
1 NIVEL 15: ESTRUCTURAS RECURSIVAS BINARIAS Árboles Binarios y Árboles Binarios Ordenados 2 Contenido Árboles binarios Iteradores Árboles binarios ordenados 3 Árboles binarios Algunas definiciones para
Identificadores, palabras reservadas, tipos de datos, operadores aritméticos y el sistema estándar de salida en Java
Identificadores, palabras reservadas, tipos de datos, operadores aritméticos y el sistema estándar de salida en Java Identificadores Las variables se utilizan en programación para almacenar temporalmente
Universidad ORT - Arquitectura de Software. Requisitos
Requisitos Versión 1.5 (o superior) de la JDK de Java NetBeans 6.5 como IDE de desarrollo JBoss 4.2.x como Application Server Variable de entorno de Windows JAVA_HOME apuntando al directorio de instalación
Invocación remota de métodos. Jorge Iván Meza Martínez
Invocación remota de métodos Jorge Iván Meza Martínez [email protected] Especialización en Gestión de Redes de Datos Universidad Nacional de Colombia Sede Manizales 1/58 Contenidos Capas de middleware
Objetos Distribuidos
Objetos Distribuidos Objetos Distribuidos Conceptos Estado: encapsula los datos Métodos: operaciones sobre los datos Interfaz: se utiliza para la disponibilidad de los métodos El Estado y la Interfaz se
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:
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
SISTEMAS DISTRIBUIDOS Profesor: José Luis Montoya Restrepo
SISTEMAS DISTRIBUIDOS Profesor: José Luis Montoya Restrepo AGENDA El modelo Cliente Servidor. Introducción a RMI Practica Cliente Servidor utilizando RMI. Modelo Cliente Servidor El modelo Cliente Servidor
Sistemas de Información
Sistemas de Información Tecnologías de objetos distribuidos: RMI Agradecimientos: Marisol García Valls, Jesús Villamor Lugo, Simon Pickin de IT/UCIIIM [email protected] RMI (Remote Method Invocation) Concepto
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
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
Primer Parcial Septiembre 5 de 2009
Primer Parcial Septiembre 5 de 2009 Algoritmos y Lenguajes II Reglas del juego Tal como se le dijo antes, durante este examen usted no puede pedir ABSOLUTAMENTE nada prestado a sus compañeros, ni hablar
PROGRAMACIÓN ORIENTADA A OBJETOS 10/02/2009. Examen de Java. Nombre: DNI: Titulación:
Examen de Java Nombre: DNI: Titulación: 1. Cómo podemos compilar desde la línea de comandos la clase Java A que utiliza una librería empaquetada bd.jar? 2. Indica si es correcto el siguiente código. Justifica
TutorJava recomienda...
TutorJava recomienda... Invocación Remota de Métodos (RMI) Autor-Traductor: Juan Antonio Palos (Ozito) Puedes encontrar la Version Original en Ingles en ( http://java.sun.com) Leer comentarios (0) Escribir
PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez
PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez Encapsulamiento: Control de Acceso Clases en Java (1) UNIVERSIDAD AUTÓNOMA DEL ESTADO DE MÉXICO En Java se organizan las clases en paquetes
Examen de Prácticas de Programación Ingeniería Informática
Examen de Prácticas de Programación Ingeniería Informática Septiembre 2007 1) (3.5 puntos) Se pretende desarrollar un programa para gestionar las reparaciones de coches realizadas en un garaje. Del análisis
Guías para la práctica (2): Acceso a Salesforce
Guías para la práctica (2): Acceso a Salesforce Pasos Previos 1. Darse de alta en Salesforce como desarrollador: http://www.salesforce.com/form/trial/freetrial-developer.jsp 2. Crear nuevos leads (Candidatos),
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
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
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
Repaso de las características más importantes de la programación Java y su adaptación a Android
Repaso de las características más importantes de la programación Java y su adaptación a Android 1. Entorno de programación en java 2. Variables y tipos de datos 3. Operaciones y operadores 4. Clases y
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......................................
FUNDAMENTOS DE PROGRAMACIÓN. SEPTIEMBRE 2005
Dpto. de Ingeniería de Sistemas Telemáticos E.T.S.I. Telecomunicación Universidad Politécnica de Madrid FUNDAMENTOS DE PROGRAMACIÓN. SEPTIEMBRE 2005 Normas de examen: Con libros y apuntes Duración: 2 horas
