Puertos (Breve repaso) No existe memoria común Comunicaciones No existe un estado global del sistema Grado de Transparencia Escalables Reconfigurables

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Puertos (Breve repaso) No existe memoria común Comunicaciones No existe un estado global del sistema Grado de Transparencia Escalables Reconfigurables"

Transcripción

1 CNTENID: TEMA 7: aso de Mensajes con MI Conceptos de rogramación n Distribuida Conceptos de rogramación Distribuida emote Method Invocation (MI) en Java El Nivel de esguardos La esponsable de que Todo Funcione: la interfaz El precompilador rmic Arquitectura Completa de una Aplicación Evoluciones eseñables BIBLIGAFÍA: [Eck02] Eckel, B. iensa en Java. rentice Hall, [Hil00] Hilderink et al. Communicating Threads for Java. Draft. [Vin97] Vinoski, S. CBA: Integrating Diverse IEEE Communications Magazine, vol. 35, nº 2, February, [Gro01] Grosso, W. Java MI. eilly, No existe memoria común Comunicaciones No existe un estado global del sistema Grado de Transparencia Escalables econfigurables 2 Modelos de rogramación n Distribuida Modelo de aso de Mensajes peraciones send y receive Modelo C Stubs de cliente y servidor Visión en Java es MI Modelos de bjetos Distribuidos DCM de Microsoft Jini de Sun CBA de MG 3 Modelo de aso de Mensajes Mecanismo para comunicar y sincronizar entidades concurrentes que no pueden o no quieren compartir memoria Llamadas send y receive Tipología de las llamadas: Bloqueadas-No bloqueadas Almacenadas-No almacenadas (en buffer) Fiables-No Fiables En Unix: ipes con y sin nombre En Java: Sockets: Clases Socket y ServerSocket Canales: CTJ (Communicating Threads for Java) 4 Modelo General uertos (Breve repaso) SLICITUD El protocolo TC (y también UD) utilizan los puertos para hacer llegar los datos de entrada a un proceso concreto que se ejecuta en una máquina CLIENTE SEVID ESUESTA NUCLE ED NUCLE CLIENTE U E T SEVID TC/UD 5 6 1

2 CLIENTE CLIENTE Solicitud de conexión U E T U E T U E T SEVID SEVID UET Modelo emote rocedure Call (C) Mayor nivel de abstracción Llamadas a procedimiento local o remoto indistintamente Necesita de stubs/skeletons ( CULTAMIENT!) egistro del servicio ( de Nombres) En Unix: Biblioteca rpc.h epresentación estándar XD Automatización parcial: especificación-compilador rpcgen En Java: bjetos remotos. Serialización aquete java.rmi Automatización parcial: interfaz-compilador rmic 7 8 Llamando a un procedimiento remoto Introducción del nivel de stubs Espacio del usuario rograma cliente Espacio del usuario rograma servidor func() func(void) //codigo. BJETIVS: 1. Efectuar la llamada como si tuviera carácter local 2. Enmascarar aspectos relativos a comunicaciones 3. Y cómo lograrlo? Efectúan el marshalling/unmarshalling de parámetros. Bloquean al cliente a la espera del resultado. Transparencia de ejecución remota Interface con el nivel de red. TC UD Host local Host remoto 9 10 Esquema C con stubs roceso rograma callrpc rpcreturn Stub del roceso Funciones llamada normal return Stub del Y cómo generar los stubs? De forma manual De forma automática Especificación formal de interfaz Software específico rpcgen (C-unix)/rmic (Java) Servicios de ed Núcleo ED Servicios de ed Núcleo

3 Generación automática de stubs Dinamic Binding Ejecutable C M I L A esguardo Stub Especificación Formal Interface recompilador rpcgen o rmic Ficheros compartidos epresentación de datos esguardo Skeleton Ejecutable C M I L A Especificación Formal Interface Interfaz del servidor+asa create, read delete, write CNECT es. Del SEVID etición de asa del servidor Generador de esguardos ead(f,d) d es. Del CLIENTE Envío de asa Breve Nota sobre C en C Especificación de la interfaz del servidor remoto en un fichero de especificación.x /*rand.x*/ program AND_G version AND_VE void inicia_aleatorio(long)=1; double obtener_aleat(void)=2; =1; =0x ; MI (emote Method Invocation) en Java ermite disponer de objetos distribuidos utilizando Java Un objeto distribuido se ejecuta en una JVM diferente o remota bjetivo: lograr una referencia al objeto remoto que permita utilizarlo como si el objeto se estuviera ejecutando sobre la JVM local Es similar a C, si bien el nivel de abstracción es más alto Se puede generalizar a otros lenguajes utilizando JNI MI pasa los parámetros y valores de retorno utilizando serialización de objetos. Generación autómática de resguardos: $rpcgen rand.x Distribuir y compilar ficheros entre las máquinas implicadas Necesario utilizar representación XD. Biblioteca xdr.h bjeto bjeto JVM JVM C versus MI Llamadas locales vs. Llamadas remotas C Carácter y Estructura de diseño procedimental Es dependiente del lenguaje Utiliza la representación externa de datos XD El uso de punteros requiere el manejo explícito de los mismos N hay movilidad de código MI Carácter y Estructura de diseño orientada a objetos Es dependiente del lenguaje Utiliza la serialización de objetos en Java El uso de referencias a objetos locales y remotos es automático El código es móvil, mediante el uso de bytecodes. 17 Un objeto remoto es aquél que se ejecuta en una JVM diferente, situada potencialmente en un host distinto. MI es la acción de invocar a un método de la interfaz de un objeto remoto. //ejemplo de llamada a método local int dato; dato = Suma (x,y); //ejemplo de llamada a método remoto (no completo) IEjemploMI1 emoto = (IEjemploMI1)Naming.lookup( //sargo:2005/ejemplomi1 ); emoto.suma(x,y); 18 3

4 Arquitectura MI La clase java.rmi.naming Stub eferencia emota Transporte Transporte Skeleton eferencia emota El servidor debe extender emotebject El servidor debe implementar una interfaz diseñada previamente El servidor debe tener como mínimo un constructor (nulo) que lanzará la excepción emoteexception El método main del servidor debe lanzar un gestor de seguridad El método main crea los objetos remotos El compilador de MI (rmic) genera el stub y el skeleton. Los clientes de objetos remotos se comunican con interfaces remotas (diseñadas antes de ) Los objetos remotos son pasados por referencia Los clientes que llaman a métodos remotos deben manejar excepciones. 19 public static void bind(string name, emote obj) public static String[] list(string name) public static emote lookup(string name) public static void rebind(string name, emote obj) public static void unbind(string name) 20 Cómo lograrlo? public interfaz extends emote signaturas métodos Definir Interfaz emota implements Implementar Interfaz emota resultado implements $ rmic.class ref.metodo(param) Implementación de la interfaz new Skeleton Stub referencia a interfaz SEVID JVM JVM lookup Nombre eferencia servicio ref bind ó rebind Implementar Implementar FASES DE DISEÑ MI (1-INTEFACE) Escribir el fichero de la interfaz remota. Debe ser public y extender a emote. Declara todos los métodos que el servidor remoto ofrece, pero N los implementa. Se indica nombre, parámetros y tipo de retorno. Todos los métodos de la interfaz remota lanzan obligatoriamente la excepción emoteexception El propósito de la interface es ocultar la implementación de los aspectos relativos a los métodos remotos. De esta forma, cuando el cliente logra una referencia a un objeto remoto, en realidad obtiene una referencia a una interfaz. Los clientes envían sus mensaje a los métodos de la interfaz 23 EJEML (FICHE DE INTEFAZ) /**Ejemplo del interfaz remoto para implementar un MI Antonio Tomeu *Es un servidor remoto aritmético. */ //se importan las clases del paquete rmi //toda interface remota debe extender la clase emote public interface IEjemploMI1 extends emote //todo metodo de la interfaz remota debe lanzar la //excepcion emoteexception int Suma(int x, int y) throws emoteexception; int esta(int x, int y) throws emoteexception; int roducto(int x, int y) throws emoteexception; float Cociente(int x, int y) throws emoteexception; 24 4

5 FASES DE DISEÑ MI (2-IMLEMENTACIÓN) La implementación del servidor es un fichero que realiza la implementación de la interfaz definida previamente. El servidor debe contener una clase que extienda a Unicasemotebject. Esa misma clase debe implementar a la interfaz remota (implements) Debe tener un constructor que lance emoteexception. El método main debe lanzar un gestor de seguridad. El método main debe crear los objetos remotos deseados. El método main debe registrar al menos unos de los objetos remotos. 25 EJEML (IMLEMENTACIÓN DE INTEFAZ Y SEVID) /**Ejemplo de implementacion del interfaz remoto para un MI Antonio Tomeu */ //se importan los paquetes necesarios import java.rmi.server.*; import java.net.*; //el servidor debe siempre extender a Unicastemotebject //el servidor debe simpre implementar la interfaz remota public class EjemploMI1 extends Unicastemotebject implements IEjemploMI1 26 //aquí viene la implementación de los métodos que se //declararon en la interfaz public int Suma(int x, int y) throws emoteexception return x+y; public int esta(int x, int y) throws emoteexception return x-y; public int roducto(int x, int y) throws emoteexception return x*y; public float Cociente(int x, int y) throws emoteexception if(y == 0) return 1; else return x/y; //a continuacion viene el codigo del servidor. Hemos optado //por incluirlo de manera conjunta, pero podia haber ido en //un fichero aparte. 27 //es necesario que haya un constructor (nulo) como minimo, ya //que debe lanzar emoteexception public EjemploMI1() throws emoteexception //super(); //el metodo main siguiente realiza el registro del servicio public static void main(string[] args) throws Exception //crea e instala un gestor de seguridad que soporte MI. //el usado es distribuido con JDK. tros son posibles. System.setSecurityManager( new MISecurityManager()); //Se crea el objeto remoto. odriamos crear mas si interesa. EjemploMI1 emoto = new EjemploMI1(); //Se registra el objeto en la máquina remota. No hay que dar //nombre de host, y se asume el puerto Naming.bind( ",emoto); System.out.println(" emoto reparado"); 28 FASES DE DISEÑ MI (3- Generando STUB Y SKELETN) Fichero de implementación de Interfaz compilado (Imp.class) $ rmic vcompat EjemploMI1 Compilador de MI $ rmic imp 29 Fichero de stub (Imp_Stub.class) Fichero de skeleton (Imp_Skel.class) Es necesario que en la máquina remota donde se aloje el servidor se sitúen también los ficheros de stub y skeleton. (Cambios a partir de 1.5) Con todo ello disponible, se lanza el servidor llamando a JVM del host remoto, previo registro en un DNS En nuestro caso, el servidor remoto se activó en hercules.uca.es sobre el puerto $ java EjemploMI1 & FASES DE DISEÑ MI (4-EGIST) Método Naming.bind( ",emoto); para registrar el objeto remoto creado requiere que el servidor de nombres esté activo. Dicho servidor se activa con start rmiregistry en Win32 Dicho servidor se activa con rmiregistry & en Unix. Se puede indicar como parámetro el puerto que escucha. Si no se indica, por defecto es el puerto El parámetro puede ser el nombre de un host como en Naming.bind( //sargo.uca.es:2005/",emoto); 30 5

6 FASES DE DISEÑ MI (5-CLIENTE) El objeto cliente procede siempre creando un objeto de interfaz remota. osteriormente efectúa una llamada al método Naming.lookup cuyo parámetro es el nombre y puerto del host remoto junto con el nombre del servidor. Naming.lookup devuelve una referencia que se convierte a una referencia a la interfaz remota. A partir de aquí, a través de esa referencia el programador puede invocar todos los métodos de esa interfaz remota como si fueran referencias a objetos en la JVM local. 31 EJEML (CLIENTE) /**Ejemplo de implementacion de un cliente para MI Antonio Tomeu */ public class EjemploMI1 public static void main(string[] args) throws Exception int a = 10; int b = -10; //Se obtiene una referencia a la interfaz del objeto remoto //SIEME debe convertirse el retorno del metodo Naming.lookup //a un objeto de interfaz remoto IEjemploMI1 efbemoto = (IEjemploMI1)Naming.lookup("//hercules.uca.es/"); //Llamamos a los metodos del interfaz remoto. System.out.println(efbemoto.Suma(a,b)); System.out.println(efbemoto.esta(a,b)); System.out.println(efbemoto.roducto(a,b)); System.out.println(efbemoto.Cociente(a,b)); 32 Distribución de Archivos Interfaz.class Interfaz.class.class.class Implem_Stub.class Implem_Stub.class Implem_Skel.class NTA: A ATI DE jdk 1.2 LAS CLASES DE SKELETN N SN NECESAIAS 33 EJECICI Descargue los ficheros IEjemploMI1.java, EjemploMI1.java y EjemploMI1.java Siga el guión auxiliar de prácticas (ver bloque del tema actual) y desarrolle la arquitectura en local Distribuya ahora la aplicación con un compañero Escriba una interfaz de operaciones para números complejos, utilizando tipos primitivos, llamada IComplejo.java Impleméntela en Complejo.java Escriba código de servidor y cliente que hagan uso de la misma. Guárdelos en ServerComplejo.java y ClientComplejo.java Distribuya nuevamente la aplicación 34 Acuerden una interfaz llamada interfaz_grupo_x.java Un miembro del grupo escribirá el cliente_grupo_java y el otro el servidor_grupo_x.java de manera independiente. Una vez hecho, lancen la arquitectura rmi. Suban el Espacio de los alumnos un fichero rmi_grupo_x.rar que contegan los tres ficheros. EVLUCINES ESEÑABLES A partir del jdk 1.2 la implementación de MI no necesita skeletons (con ese nombre tenían poco futuro). El stub estará en ambos lados. ecompile los ejemplos anteriores sin el flag vcompat A partir del jdk 1.5 se incorpora Generación Dinámica de esguardos

7 EJECICIS MI: CAACTEÍSTICAS AVANZADAS ruebe los ejemplos anteriores sin skeleton No obstante, necesita el servidor algo a pesar de todo? Serialización de bjetos Gestión de la Seguridad: policytool Callback de Descarga Dinámica de Clases SEIALIZACIÓN: La interfaz Serializable Serializar un objeto es convertirlo en una cadena de bits, posteriormente restaurada en el objeto original Es útil para enviar objetos complejos en MI Tipos primitivos se serializan autómaticamente Clases contenedoras también bjetos complejos deben implementar la interfaz Serializable (es un flag) para poder ser serializados Ejemplo con serialización de una clase import java.io.*; import java.util.*; public class cuentabanca implements Serializable int ccc; float saldo; String Titular; public cuentabanca(int codigo, float deposito, String nombre) ccc = codigo; saldo = deposito; Titular = nombre; public String tostring() return("codigo = "+ccc+" saldo= "+saldo+" titular= "+Titular); Interfaz import java.io.*; public interface intefaz extends emote boolean deposito(int codigo, float cantidad) throws emoteexception; boolean reintegro(int codigo, float cantidad) throws emoteexception; String nomtit(int codigo) throws emoteexception; int codtit(string nom) throws emoteexception; /aquí la serializacion es necesaria*/ cuentabanca [] listado() throws emoteexception; 41 Ejemplo completo con serialización (1/4) public class Arbol implements java.io.serializable //convierte a la clase en serializable public Arbol izq; public Arbol der; public int id; public int nivel; private static int cont = 0; public Arbol(int l) id = cont++; nivel = l; if (l > 0) izq = new Arbol(l-1); der = new Arbol(l-1); 42 7

8 Ejemplo completo con serialización (2/4) //interfaz que transfiere al servidor una instancia de la clase serializable Arbol.java public interface IArbol extends emote public void Listado_emoto (Arbol t, int n) throws emoteexception; 43 Ejemplo completo con serialización (3/4) import java.rmi.server.*; public class Serv_arbol extends Unicastemotebject implements IArbol public Serv_arbol()throws emoteexception super(); public void Listado_emoto (Arbol t, int n) throws emoteexception for (int i = 0; i < t.nivel; i++) System.out.print(" "); System.out.println("nodo " + t.id); if (t.nivel <= n && t.izq!= null) Listado_emoto(t.izq, n); if (t.nivel <= n && t.der!= null) Listado_emoto(t.der, n); public static void main(string[] args) throws Exception Serv_arbol emoto = new Serv_arbol(); Naming.bind("", emoto); System.out.println(" emoto reparado"); 44 Ejemplo completo con serialización (4/4) Ejecución del ejemplo en modo local public class Client_arbol public static void main(string[] args) throws Exception int niveles = 3; Arbol arb = new Arbol (niveles); //se crea un objeto serializable IArbol efbemoto = (IArbol)Naming.lookup("//localhost/"); efbemoto.listado_emoto (arb, niveles); //transfiere al objeto //servidor un objeto Arbol //serializado EJECICIS Descargue los ficheros contenidos en la subcarpeta Serializacion (carpeta de códigos del tema), compile y pruebe Haga lo propio distribuyendo la aplicación con un compañero 47 Gestionando la seguridad: policytool Java tiene en cuenta la seguridad System.setSecurityManager(new MISecurityManager()); Se ajusta la seguridad: Construyendo un objeto SecurityManager Llamando al método setsecuritymanager (clase System) Clase MISecurityManager rogramador ajusta la seguridad mediante la clase olicy olicy.getolicy() permite conocer la seguridad actual. olicy.setolicy() permite fijar nueva política. Seguridad reside en fichero específico. Java2 incorpora una herramienta visual: policytool 48 8

9 CallBack de Ajuste de la política de seguridad Crearlas con policytool: ejemplo de fichero.policy /* AUTMATICALLY GENEATED N Fri May 28 19:23:13 CEST 2004*/ /* D NT EDIT */ grant permission java.net.socketermission "*: ", "connect,accept, listen, accept, connect, listen, resolve"; permission java.net.socketermission "*:80", "connect, accept"; permission java.security.allermission; ; Activarlas Ejecutar ajustando la política con Java Djava.security=fichero.policy servidor cliente bien crear objeto MISecurityManager y ajustar SetSecurityManager sobre el objeto creado Si servidor de MI debe notificar eventos a clientes, la arquitectura es inapropiada La alternativa estándar es el sondeo (polling) Donde cliente: Iservidor efemota= (I) Naming.lookup (UL); while (!(ef.emota.evento.esperado())) MI con olling: Ejemplo de interfaz MI con olling: Ejemplo de servidor import java.rmi.server.*; public interface ejemploolling extends emote public void datoinc() throws emoteexception; public boolean igualdiez() throws emoteexception; //metodo para realizar el sondeo continuo sobre el servidor public class servolling extends Unicastemotebject implements ejemploolling private static int dato = 0; public void datoinc() throws emoteexception dato++; System.out.println(dato); public boolean igualdiez() throws emoteexception //metodo para recibir el sondeo return (dato==10); public servolling() throws emoteexception public static void main(string[] args) throws Exception servolling contemoto = new servolling(); Naming.bind("_olling", contemoto); System.out.println(" emoto reparado"); MI con olling: Ejemplo de cliente public class clientolling public static void main(string[] args) throws Exception ejemploolling efbemoto = (ejemploolling)naming.lookup("//localhost/_olling"); while(!efbemoto.igualdiez()) //lazo de sondeo continuo al sevidor System.out.println("Incremento remoto del contador"); efbemoto.datoinc(); System.out.print("El contador remoto llego a diez y se sale..."); Características del CallBack s interesados se registran en un objeto servidor para que les sea notificado un evento Cuando el evento se produce, el objeto servidor notifica al cliente su ocurrencia Qué necesitamos para que funcione?

10 Arquitectura MI para CallBack Conclusiones Hay que duplicar la arquitectura Se requieren dos interfaces Habrá dos niveles de stubs (Stub+Skel) y (Stub+Skel) Es necesario proveer en el servidor medios para que los clientes registren sus peticiones de callback EJECICIS Lea el guión de callback de cliente Compile y active el código ejemplo de callback que figura en la subcarpeta callback de la carpeta codigos rmi (utilice stubs y skeletons) Haga lo propio con subcarpeta callback_simpel Distribuya la aplicación con su compañero de grupo 57 Descarga Dinámica de Clases ermite cambios libres en el servidor Elimina la necesidad de distribuir (resguardos) si los hay y nuevas clases Dinámicamente, el cliente descarga todas las clases que necesita para desarrollar una MI válida Mediante HTT o incluso FT 58 (2) solicita interfaz vía Naming.lookup egistro de MI (1) registra el par (bjeto, nombre) HTT para Descarga Dinámica de MI (5) http devuelve la clase de stub (3)egistro ofrece una referencia remota (4) solicita la clase de stub mediante el codebase Localización UL http host MI server.codebase= 59 Mini-servidor de HTT de Sun Clases ClassServer y ClassFileServer Se compilan conjuntamente java ClassFileServer 8080 /rmi/clases HTT estándar Apache tros 60 10

11 Novedades a partir de jdk 1.5 Ejemplo del Básico de Sun activo en Windows Colocar esguardos y clases para carga dinámica en /java/rmi Ajustar la propiedad java.rmi.server.codebase Soporta Generación Dinámica de esguardos rescinde del generador rmic ruebe ahora los ejemplos anteriores sin pasar por la etapa de generación de resguardos (rmic) qué observa?

TEMA 7: Paso de Mensajes con RMI

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

Más detalles

Modelo de Objetos Distribuidos

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

Más detalles

1. Visión general de RMI

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

Más detalles

RMI [Remote Method Invocation]

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

Más detalles

Llamada a métodos remotos (RMI). Curso 04/05. Tema 9. Departament d Informàtica. Universitat de València. 1. Introducción 2

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:

Más detalles

Java RMI. Sistemas Distribuidos Rodrigo Santamaría

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

Más detalles

JAVA RMI (REMOTE METHOD INVOCATION)

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

Más detalles

Arquitectura Cliente/Servidor. Invocación de Métodos Remotos RMI: Remote Method Invocation. Llamadas a Métodos Remotos

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

Más detalles

Práctica 2: Java Remote Method Invocation (RMI)

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

Más detalles

CONTENIDO. Serialización. Carga dinamica de stubs RMI AVANZADO. Callbacks. Carga dinámica de Stubs

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

Más detalles

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 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

Más detalles

DISEÑO DE UNA ARQUITECTURA CLIENTE/SERVIDOR MEDIANTE OBJETOS DISTRIBUIDOS EN JAVA

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 (pastrana@lcc.uma.es) Dpto. Lenguajes y Ciencias de la Computación. Universidad de Málaga

Más detalles

en otra máquina exactamente de la misma manera que si se encontrará en la misma máquina

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

Más detalles

JAVA - Serializacíon / RMI. (C) Philippe Roose - 2004, 2005

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

Más detalles

TEMA 4: PROGRAMACIÓN DISTRIBUIDA

TEMA 4: PROGRAMACIÓN DISTRIBUIDA TEMA 4: PROGRAMACIÓN DISTRIBUIDA!" #!$ %! % & '( '')* (+,( -./0%1' 2%1/../ -3% 450 -(.40( %16 2%1/../ -3% /.0-2%..02%% 7-89:08 1! "!;1 %1499: No existe memoria común Comunicaciones No existe un

Más detalles

Remote Method Invocation (RMI) de Java

Remote Method Invocation (RMI) de Java Remote Method Invocation (RMI) de Java Concurrencia y Distribución Programación Avanzada Posgrado en Ciencia e Ingeniería de la Computación, UNAM 1. Introducción El mecanismo RMI (Remote Method Invocation)

Más detalles

PROGRAMACION DISTRIBUIDA MobileTracker: Ejemplo de implementación con RMI

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

Más detalles

Interacción entre Aplicaciones: objetos distribuidos e invocación remota

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

Más detalles

Ingeniería del Software Arquitectura Física en 3 niveles

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

Más detalles

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 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

Más detalles

Java en 2 horas. Rodrigo Santamaría

Java en 2 horas. Rodrigo Santamaría + Java en 2 horas Rodrigo Santamaría + Generalidades 2 Desarrollado por Sun en 1995 Hereda mucha de la sintaxis de C (1972) Fuertemente tipado y orientado a objetos Aplicaciones compiladas a bytecode Gestión

Más detalles

Tema 1. Introducción a JAVA

Tema 1. Introducción a JAVA Tema 1. Introducción a JAVA Historia Características Plataforma Java Entorno de desarrollo Ejemplo: Hola mundo Estructura general de un programa Java 1 Historia de Java (i) Surge en 1991: Sun Microsystems

Más detalles

class Nombre_Clase extends Nombre_SuperClase { cuerpo de la clase extendida }

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)

Más detalles

CAPITULO 3 ARQUITECTURA DE COMPONENTES GIS EN INTERNET

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

Más detalles

Práctica 4: Java Remote Method Invocation (RMI)

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

Más detalles

Java RMI. las RPC de Java. Parte I. Luis Fernando Llana Díaz. Departamento de Sistemas Informáticos y ProgramaciónUniversidad Complutense de Madrid

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.

Más detalles

Pruebas de unidad con JUnit

Pruebas de unidad con JUnit Pruebas de unidad con JUnit Cuando se implementa software, resulta recomendable comprobar que el código que hemos escrito funciona correctamente. Para ello, implementamos pruebas que verifican que nuestro

Más detalles

Sistemas Distribuidos (Capítulo 8 de Distributed Computing de M. L. Liu)

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.

Más detalles

Sockets en Java. La Creatividad proviene de un conflicto de ideas. Uso de Sockets

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..

Más detalles

Web Services en Java. Taller de Programación. Instituto de Computación Facultad de Ingeniería Universidad de la República

Web Services en Java. Taller de Programación. Instituto de Computación Facultad de Ingeniería Universidad de la República Web Services en Java Taller de Programación Instituto de Computación Facultad de Ingeniería Universidad de la República Contenido Motivación y Conceptos Funcionamiento Annotations Desarrollando una aplicación

Más detalles

PROGRAMACIÓN CLIENTE-SERVIDOR MEDIANTE SOCKETS EN JAVA

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

Más detalles

Práctica 5: Callbacks RMI.

Práctica 5: Callbacks RMI. Práctica 5: Callbacks RMI. Ejercicio 1. (Será realizado en la Sala de Computo) El siguiente ejercicio describe los pasos a seguir para aplicar el mecanismo Callback con Java RMI. En este ejercicio se requiere

Más detalles

Programación Orientada a Objetos con Java

Programación Orientada a Objetos con Java Programación Orientada a Objetos con Java M.C. Jorge Eduardo Ibarra Esquer jorgeeie@uabc.mx Sobrecarga de métodos Java permite la definición de dos o más métodos que tengan el mismo nombre, dentro de la

Más detalles

FSD Práctica Invocación Remota: JavaRMI. Estudio Previo. Información

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

Más detalles

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA

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í

Más detalles

Primera Escuela de la Red Temática SVO. Madrid, 27-28 Noviembre, 2006 JAVA BÁSICO. Raúl Gutiérrez Sánchez LAEFF - INTA raul@laeff.inta.

Primera Escuela de la Red Temática SVO. Madrid, 27-28 Noviembre, 2006 JAVA BÁSICO. Raúl Gutiérrez Sánchez LAEFF - INTA raul@laeff.inta. Primera Escuela de la Red Temática SVO. Madrid, 27-28 Noviembre, 2006 JAVA BÁSICO LAEFF - INTA raul@laeff.inta.es Qué es Java? Java es un lenguaje de programación orientado a objetos desarrollado por Sun

Más detalles

Java en 3 horas. Ampliación de Sistemas Operativos. Rodrigo Santamaría

Java en 3 horas. Ampliación de Sistemas Operativos. Rodrigo Santamaría Java en 3 horas Ampliación de Sistemas Operativos Rodrigo Santamaría Generalidades Desarrollado por Sun Hereda mucha de la sintaxis de C (1972) Fuertemente tipado y orientado a objetos Aplicaciones compiladas

Más detalles

PROGRAMACION DISTRIBUIDA

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

Más detalles

1. Manejo de memoria estática 2. Manejo de memoria dinámica

1. Manejo de memoria estática 2. Manejo de memoria dinámica 1. Manejo de memoria estática 2. Manejo de memoria dinámica *La administración de memoria de una computadora es una tarea fundamental debido a que la cantidad de memoria es limitada. *El sistema operativo

Más detalles

2.1. Introducción al lenguaje Java

2.1. Introducción al lenguaje Java Bloque II. Elementos del lenguaje de programación Java 1.Introducción a los lenguajes de programación 2. Estructura de un programa 3. Datos y expresiones simples 4. Instrucciones de control 5. Entrada/salida

Más detalles

Java Inicial (20 horas)

Java Inicial (20 horas) Java Inicial (20 horas) 1 Temario 1. Programación Orientada a Objetos 2. Introducción y Sintaxis Java 3. Sentencias Control Flujo 4. POO en Java 5. Relaciones entre Objetos 6. Polimorfismo, abstracción

Más detalles

Práctica sobre compartición de instancias remotas.

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

Más detalles

Tema 3. Objetos distribuidos

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

Más detalles

Manual del Protocolo XML-RPC de Mensajería Negocios

Manual del Protocolo XML-RPC de Mensajería Negocios Manual del Protocolo XML-RPC de Mensajería Negocios Índice de contenidos 1 INTRODUCCIÓN... 3 2 FUNCIONALIDADES DEL API DE COMUNICACIÓN XML-RPC... 4 2.1 Envío Libre... 4 2.2 Envío a Grupo de Contactos...

Más detalles

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, 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

Más detalles

Curso de Java POO: Programación orientada a objetos

Curso de Java POO: Programación orientada a objetos Curso de Java POO: Programación orientada a objetos Luis Guerra Velasco Curso INEM 02830. Programación en Java Marzo 2010 Índice 1 Introducción a la POO 2 Herencia y polimorfismo 3 Empaquetado de proyectos

Más detalles

Primer Parcial Septiembre 5 de 2009

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

Más detalles

Introducción a la Programación Orientada a Objetos

Introducción a la Programación Orientada a Objetos Introducción a la Programación Orientada a Objetos El paradigma imperativo. En un programa se tienen una serie de variables con las cuales operamos y modificamos mediante sentencias y funciones para producir

Más detalles

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 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

Más detalles

Introducción al lenguaje de programación java

Introducción al lenguaje de programación java Introducción al lenguaje de programación java Algoritmia y Programación Slide 1 LENGUAJES DE PROGRAMACION Un lenguaje de programación es un idioma artificial diseñado y creado para expresar algoritmos

Más detalles

Introducción Descripción del servicio

Introducción Descripción del servicio 507953 1 Contenido Contenido Cambios Introducción Descripción del servicio Introducción Arquitectura Paso a paso Capa de negocio Adapter Interface Service Proxy Fichero de propiedades Despliegue del servicio

Más detalles

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 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

Más detalles

Introducción al lenguaje Java

Introducción al lenguaje Java Tipo de entrega: Fecha límite: Lugar: Introducción al lenguaje Java por grupos de prácticas sesión de laboratorio Atenea Objetivos de la práctica: Escribir aplicaciones simples en Java Utilizar el entorno

Más detalles

Introducción... 1 Qué es Java?... 1 Compilando a Bytecode... 1 Usando jgrasp Para Hacer el Trabajo Sucio... 5 El Entorno de jgrasp...

Introducción... 1 Qué es Java?... 1 Compilando a Bytecode... 1 Usando jgrasp Para Hacer el Trabajo Sucio... 5 El Entorno de jgrasp... Contenido Introducción... 1 Qué es Java?... 1 Compilando a Bytecode... 1 Usando jgrasp Para Hacer el Trabajo Sucio... 5 El Entorno de jgrasp... 5 Introducción Es tiempo de hablar en detalle de lo que significa

Más detalles

MONITORES EN JAVA. Antonio Tomeu Control de la Concurrencia en Java: API Estándar

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

Más detalles

Introducción a Java LSUB. 15 de enero de 2015 GSYC

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

Más detalles

CORBA desde Java. Diego Sevilla Ruiz Sistemas Distribuidos. 1. Introducción

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......................................

Más detalles

Práctica 5: Common Object Request Broker Architecture CORBA

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

Más detalles

Java RMI. Sistemas distribuidos

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

Más detalles

Entre los más conocidos editores con interfaz de desarrollo tenemos:

Entre los más conocidos editores con interfaz de desarrollo tenemos: Herramientas de programación Para poder programar en ensamblador se precisa de algunas herramientas básicas, como un editor para introducir el código, un ensamblador para traducir el código a lenguaje

Más detalles

Clases y Objetos. Informática II Ingeniería Electrónica

Clases y Objetos. Informática II Ingeniería Electrónica Clases y Objetos Informática II Ingeniería Electrónica Los Tipos de Datos Hasta ahora, en un programa podemos usar para representar variables a: Tipos fundamentales : enteros (int), caracteres (char),

Más detalles

Programación Orientada a Objetos. Java: Excepciones

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

Más detalles

CFGM. Servicios en red. Unidad 2. El servicio DHCP. 2º SMR Servicios en Red

CFGM. Servicios en red. Unidad 2. El servicio DHCP. 2º SMR Servicios en Red CFGM. Servicios en red Unidad 2. El servicio DHCP CONTENIDOS 1 1. Introducción 1.1. Qué es el servicio DHCP 2.1. Características generales del servicio DHCP 2.2. Funcionamiento del protocolo DHCP 2.3.

Más detalles

Uso de excepciones en Java

Uso de excepciones en Java Uso de excepciones en Java En Java, cuando se produce un error en un método, se lanza un objeto Throwable. Cualquier método que haya llamado al método puede capturar la excepción y tomar las medidas que

Más detalles

INTELIGENCIA ARTIFICIAL 2015 TALLER RÁPIDO DE PROGRAMACIÓN EN JAVA

INTELIGENCIA ARTIFICIAL 2015 TALLER RÁPIDO DE PROGRAMACIÓN EN JAVA INTELIGENCIA ARTIFICIAL 2015 TALLER RÁPIDO DE PROGRAMACIÓN EN JAVA Fuente: http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html Por qué Java? TIOBE Index for March 2015 Fuente: http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

Más detalles

SISTEMAS DISTRIBUIDOS Profesor: José Luis Montoya Restrepo

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

Más detalles

SISTEMAS DISTRIBUIDOS

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)

Más detalles

Introducción a la programación orientada a objetos

Introducción a la programación orientada a objetos Introducción a la programación orientada a objetos 1. Introducción a la programación orientada a objetos 2. Las clases 3. El tipo Struct 4. Diferencias entre Class y Struct 5. Pilares de la Programación

Más detalles

Partes de un programa en Java. A. Ejemplo de un Programa en Java /* Programa Ejemplo de Java: Muestra una Ventana Archivo: Ejemplo1.

Partes de un programa en Java. A. Ejemplo de un Programa en Java /* Programa Ejemplo de Java: Muestra una Ventana Archivo: Ejemplo1. Partes de un programa en Java A. Ejemplo de un Programa en Java /* class Ejemplo1 { //comienza la clase Ejemplo1. public static void main(string[] args) { // comienza el método main. JFrame miventana;

Más detalles

Para leer la entrada de consola, lo primero que se hace es construir un Scanner que este asociado al flujo de entrada estándar System.

Para leer la entrada de consola, lo primero que se hace es construir un Scanner que este asociado al flujo de entrada estándar System. CICLO: 01/2010 Universidad Don Bosco Materia: Lenguaje de Programación III Contenido: 1-Lectura de Datos de entrada. 2-Introduccion a JOPTIONPANE. 3-Estructuras de Control. ->LECTURA DE DATOS DE ENTRADA

Más detalles

Objetivo: Introducción conceptual y aplicación básica de los lenguajes del lado del servidor.

Objetivo: Introducción conceptual y aplicación básica de los lenguajes del lado del servidor. Sesión 03: Lenguajes web del servidor Competencias a Conseguir: - Conocer el entorno de trabajo a nivel de servidores web. - Instalación del localhost (Servidor Local). - Repaso general de PHP y ejercicios

Más detalles

Federico Peinado www.federicopeinado.es

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

Más detalles

Introducción a la Programación en Java. Page 1

Introducción a la Programación en Java. Page 1 Introducción a la Programación en Java Page 1 Qué es Java? Java es un lenguaje de programación de propósito general, orientado a objetos que fue diseñado específicamente para tener tan pocas dependencias

Más detalles

Tema 1: y el lenguaje Java 1.Programación orientada a objetos 2.El lenguaje Java 3.Compilación, bytecode y JVMs 4.Entornos de desarrollo Java 5.Java vs otros lenguajes OO Programación orientada a objetos

Más detalles

EXAMEN FINAL Metodología y Programación Orientada a Objetos. Curso 2010 2011. Cuatrimestre de otoño. 17 de Enero de 2011

EXAMEN FINAL Metodología y Programación Orientada a Objetos. Curso 2010 2011. Cuatrimestre de otoño. 17 de Enero de 2011 EXAMEN FINAL Metodología y Programación Orientada a Objetos. Curso 2010 2011. Cuatrimestre de otoño. 17 de Enero de 2011 1. (0,75 PUNTOS) Identificad a continuación las sentencias que son ciertas, descartando

Más detalles

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. 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

Más detalles

Introduccion al Lenguaje C. Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia

Introduccion al Lenguaje C. Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia Introduccion al Lenguaje C Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia Introducción C es un lenguaje de programación creado en 1972 por

Más detalles

El lenguaje de programación Java

El lenguaje de programación Java Departament d Arquitectura de Computadors El lenguaje de programación Java Java (I) Orientado a objetos Ejecutado por una maquina virtual Independiente de la plataforma Multithreaded Orientado a la red

Más detalles

Tema 3: Herencia en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle

Tema 3: Herencia en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle Tema 3: Herencia en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle Contenido Tipos de herencia Herencia y niveles de visibilidad Herencia y creación Redefinición de métodos Conversión

Más detalles

Capítulo V. Implementación

Capítulo V. Implementación Capítulo V Implementación En este capítulo se especifican los recursos utilizados en la implementación de la interfaz, así como se describe su arquitectura funcional y las características principales.

Más detalles

Práctica 5: Servidor web concurrente en Java

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

Más detalles

TEMA 5. Otras arquitecturas distribuidas II. Objetos distribuidos y CORBA

TEMA 5. Otras arquitecturas distribuidas II. Objetos distribuidos y CORBA TEMA 5. Otras arquitecturas distribuidas II. Objetos distribuidos y CORBA II. Objetos distribuidos y CORBA 1. Objetos Distribuidos 2. CORBA 1. Características 2. Modelo de trabajo 3. ORB 4. Arquitectura

Más detalles

Desarrollo de Servicios Web con JBuilder

Desarrollo de Servicios Web con JBuilder Artículos técnicos Grupo Danysoft: Desarrollo de Servicios Web con JBuilder Segunda parte Oscar Cristobal Ruiz Departamento Java Equipo Grupo Danysoft Enero 2003 - (902) 123146 www.danysoft.com Desarrollo

Más detalles

Lab 01: Programación de Sockets en TCP

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é.

Más detalles

SISTEMAS 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.

Más detalles

Programación Avanzada SOLUCIÓN EXAMEN FEBRERO 2011

Programación Avanzada SOLUCIÓN EXAMEN FEBRERO 2011 Programación Avanzada SOLUCIÓN EXAMEN FEBRERO 2011 Por favor siga las siguientes indicaciones: Escriba con lápiz y de forma prolija. Escriba las hojas de un solo lado Escriba su nombre y número de documento

Más detalles

Sensor de Temperatura utilizando el Starter Kit Javelin Stamp. Realizado por: Bertha Palomeque A. Rodrigo Barzola J.

Sensor de Temperatura utilizando el Starter Kit Javelin Stamp. Realizado por: Bertha Palomeque A. Rodrigo Barzola J. Sensor de Temperatura utilizando el Starter Kit Javelin Stamp Realizado por: Bertha Palomeque A. Rodrigo Barzola J. INTRODUCCION DIFERENCIAS EJEMPLOS JAVA Orientado a Objetos Multiplataforma Programar

Más detalles

EJEMPLOS PROGRAMACIÓN SOCKET - JAVA

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

Más detalles

Elementos léxicos del lenguaje de programación Java

Elementos léxicos del lenguaje de programación Java Elementos léxicos del lenguaje de programación Java Elementos léxicos del lenguaje de programación Java Palabras reservadas Identificadores Literales Operadores Delimitadores Comentarios Apéndices Operadores

Más detalles

Introducción Entorno de ejecución Referencias Descripción del servicio

Introducción Entorno de ejecución Referencias Descripción del servicio 507953 1 Contenido Contenido Cambios Introducción Entorno de ejecución Referencias Descripción del servicio Introducción Arquitectura Paso a paso Interface Service Proxy Fichero de propiedades Despliegue

Más detalles

UNIVERSIDAD POLITÉCNICA DE PACHUCA SOCKETS EN JAVA

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

Más detalles

TELEPROCESO Y SISTEMAS DISTRIBUIDOS

TELEPROCESO Y SISTEMAS DISTRIBUIDOS Universidad Nacional del Nordeste TELEPROCESO Y SISTEMAS DISTRIBUIDOS La Interfaz Socket Lic. Vanesa S. Roffé Año 2009 Introducción - Origen de la INTERFAZ SOCKET La Interfaz Socket es una API para redes

Más detalles

Clases abstractas e interfaces

Clases abstractas e interfaces Clases abstractas e interfaces Clases abstractas Una clase abstracta es una clase que no se puede instanciar se usa únicamente para definir subclases Cuándo es una clase abstracta? En cuanto uno de sus

Más detalles

INDICE DEL CURSO APRENDER PROGRAMACIÓN JAVA DESDE CERO. PROGRAMACIÓN ORIENTADA A OBJETOS (CU00601B)

INDICE DEL CURSO APRENDER PROGRAMACIÓN JAVA DESDE CERO. PROGRAMACIÓN ORIENTADA A OBJETOS (CU00601B) APRENDERAPROGRAMAR.COM INDICE DEL CURSO APRENDER PROGRAMACIÓN JAVA DESDE CERO. PROGRAMACIÓN ORIENTADA A OBJETOS (CU00601B) Sección: Cursos Categoría: Curso Aprender programación Java desde cero Fecha revisión:

Más detalles

Java: Clases Abstractas e Interfaces

Java: Clases Abstractas e Interfaces Clases abstractas e interfaces Java: Clases Abstractas e Interfaces Franco Guidi Polanco Escuela de Ingeniería Industrial Pontificia Universidad Católica de Valparaíso, Chile fguidi@ucv.cl A nivel conceptual,

Más detalles

Seminario de Java. Contenido

Seminario de Java. Contenido Seminario de Java Programación Orientada a Objetos Curso 2006/2007 Contenido 1. Introducción 2. Primeros pasos con Java. El entorno Eclipse 3. La sintaxis del lenguaje Java 4. Clases y objetos 5. Cadenas

Más detalles

Programación Orientada a Objetos. Java: Excepciones

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

Más detalles

Lección 8 Introducción a las llamadas a procedimientos remotos (RPC) Universidad de Oviedo / Dpto. de Informática

Lección 8 Introducción a las llamadas a procedimientos remotos (RPC) Universidad de Oviedo / Dpto. de Informática Lección 8 Introducción a las llamadas a procedimientos remotos (RPC) Objetivo Extender a los sistemas distribuidos el mecanismo de llamadas a procedimientos y subrutinas de los lenguajes de programación.

Más detalles

19. Packages o paquetes

19. Packages o paquetes Programación orientada a objetos con Java 201 19. Packages o paquetes Objetivos: a) Definir el concepto de paquete b) Interpretar el código fuente de una aplicación Java donde se utilicen paquetes c) Construir

Más detalles

PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez

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

Más detalles