SISTEMAS DISTRIBUIDOS



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

1. Visión general de RMI

Práctica 5: Callbacks RMI.

Java RMI. Sistemas Distribuidos Rodrigo Santamaría

Modelo de Objetos Distribuidos

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

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

Descarga, instalación y uso de herramientas:

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

Java RMI Remote Method Invocation. Invocación Remota de Métodos en Java

RMI [Remote Method Invocation]

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

JAVA RMI (REMOTE METHOD INVOCATION)

Mi primer servidor. Fernando Fernández Consultor Preventa HP ISS

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

Desarrollo de una aplicación de ejemplo: movilidapp. Desarrollado por movilidapp

Guía de Instalación de la JDK y del Eclipse

Guía de Instalación. Glpi

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

Pasarela de desarrollo API DTMF (marcación por tonos).

Manual PARA EL ADMINISTRADOR DE LA WEB DE PRÁCTICAS PRE PROFESIONALES Y PASANTÍAS

EJECUCIÓN DE TRAZA CIDE REMOTO EN EQUIPOS CON JAVA VERSIÓN 7.x y 8.x

Tarea 1 Programación José Luis Comesaña

WINDOWS : TERMINAL SERVER

INSTALACIÓN DEL ENTORNO DE DESARROLLO PARA EL LENGUAJE DE PROGRAMACIÓN JAVA

CONFIGURACIÓN DEL PLUGIN EUROBITS

Guía de configuración de servicio de directorio LDAP en Outlook Express (Windows XP)

REGISTRO ELECTRÓNICO DE FACTURAS

qwertyuiopasdfghjklzxcvbnmqwertyuio pasdfghjklzxcvbnmqwertyuiopasdfghjk lzxcvbnmqwertyuiopasdfghjklzxcvbnm qwertyuiopasdfghjklzxcvbnmqwertyuio

Práctica sobre compartición de instancias remotas.

Manual CMS Mobincube

Desarrollo de apps para móviles Android. Entorno de desarrollo

Administración de Redes

Práctica 1: Instalación de un servidor de aplicaciones web y diseño de la vista de una aplicación

Roles y Características

Instalación de Visual Studio Metodología de la Programación I Universidad de Granada

TUTORIAL DE INSTALACIÓN Y CONFIGURACIÓN DE NETBEANS

Cómo configurar Mail para Mac

Luis Eduardo Peralta Molina Sistemas Operativos Instructor: José Doñe Como crear un Servidor DHCP en ClearOS

Manual de uso: Contabilidad de Costes. Sincronizacio n con el Sistema Canoa.

Manual para uso de cuentas de

INSTRUCTIVO DE ADMINISTRADOR ALFRESCO COMMUNITY 4.2

Manual para uso de cuentas de correo

SISTEMAS DISTRIBUIDOS Profesor: José Luis Montoya Restrepo

Capitulo 5. Implementación del sistema MDM

Administración de la red (Windows 2008)

Aplicación Java para distribución de código en R

Acceso al Servicio InterPhone vía Web desde el PC 1.- HACIENDO LLAMADAS: Paso A: Paso B:

Manual de uso: Contabilidad de Costes. Sincronizacio n con el Sistema Canoa.

Instrucciones de instalación de IBM SPSS Modeler Server 16 para Windows

INFORMES CON REPORTS BUILBER

Manual para uso de cuentas de

Mi primer servidor. Fernando Fernández Consultor Preventa HP ISS

Práctica 2: Instalación de un gestor de bases de datos relacionales y desarrollo de una aplicación Web con persistencia de datos

MANUAL PARA GESTIÓN DE INCIDENCIAS INFORMÁTICAS

Dónde está la información sobre el servicio de Asistencia Informática?

1. El entorno de desarrollo Eclipse

MANUAL INSTALACIÓN BÁSICO

Ejercicios - Persistencia en Android: ficheros y SQLite

Acronis Backup & Recovery 11 Guía de inicio rápido

Cierre de ejercicio. 2014

Kosmo Desktop Manual de desarrollo Instalación y configuración del código fuente de Kosmo en Eclipse

Instrucciones para configurar la Plataforma FACe para la aplicación de Gestión Municipal, tanto Simplificada como Básica.

1

OUTLOOK EXPRESS. Antes de empezar, asegúrese de que conoce su dirección de correo electrónico, junto con la siguiente información:

Entorno de Desarrollo - 1 -

Tutorial: Primeros Pasos con Subversion

D.T.Informática S.L. [Sistema hada] hilo Administrador Desarrollo Activo

CURSO MOODLE Curso

MOZILLA THUNDERBIRD V.3.1

Proyecto 3 Programación de aplicaciones Cliente/Servidor

MANUAL DE USUARIO Guía de Gestión de la Configuración con Subversion

MANUAL DE AYUDA TAREA PROGRAMADA COPIAS DE SEGURIDAD

Proceso de cifrado. La fortaleza de los algoritmos es que son públicos, es decir, se conocen todas las transformaciones que se aplican al documento

Ayuda básica relativa al interfaz web

MANUAL DE USO DE CORREO ELECTRÓNICO, CALENDARIO Y CONTACTOS

Analiza y elabora un manual de uso con ejemplos de la herramienta OpenSSL.

MANUAL DE AYUDA MÓDULOS 2011 MACOS

Correo Electrónico: Webmail: Horde 3.1.1

Uso de Firma Digital en la Oficina Virtual del Consejo de Seguridad Nuclear

Configuración factura electrónica. construsyc instasyc

Manual de instalación Actualizador masivo de Stocks y Precios

Cierre de ejercicio. 2015

PHPMYADMIN Y MYSQL. Para gestionar la base de datos MySQL, lo haremos desde la aplicación PhpMyAdmin.

Software Criptográfico FNMT-RCM

Mi primer servidor. Fernando Fernández Consultor Preventa HP ISS

Para poder instalar el producto, tendremos que obtener el instalador apropiado para nuestro entorno hardware y software.

Guía de configuración de VPN para Windows 7

AGESIC Gerencia de Proyectos


MANUAL DE INSTALACIÓN Y CONFIGURACIÓN SISTEMA CAJA DE AHORRO COMUNITARIO SCAC

SOLUCION PARCIAL TASK SCHEDULER. Task Scheduler

MANUAL PARA INCLUIR EL MOTOR DE RESERVAS EN LA WEB DEL ESTABLECIMIENTO

Instalación de cygwin-x. Pablo Sanz Mercado.

CREACIÓN Y GENERACIÓN DE REMESAS DE ADEUDOS SEPA

Transcripción:

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) nada Leer mensajes: leer(indice) mensajes Veremos: Arquitectura RMI: Interfaz Remota Servidor que implementa la interfaz Cliente que usa la interfaz Ejecución PRESENTACIÓN 2

Arquitectura Índice RMI de nuestra app Planteamos 2 proyectos Java: Servidor de Chat Interfaz para acceso remoto del servidor Implementación de la interfaz remota Clase mensaje Clase inicio servidor Cliente de Chat Interfaz para acceso remoto del servidor Clase mensaje Clase inicio cliente 3

Arquitectura Índice RMI de nuestra app Las clases comunes las incluiremos en un proyecto que se incluirá como dependencia tanto al cliente como al servidor. No necesitamos skeletons (desde Java 2) ni stubs explícitos (desde Java 5). Servidor Implementación de la interfaz remota Clase inicio servidor Cliente Clase inicio cliente Común Interfaz para acceso remoto del servidor Clase mensaje Clases auxiliares 4

Clases comunes: Interfaz Remota Índice Interfaz Remota IServidor.java Interfaz que hereda o extiende de Remote Los métodos deben lanzar RemoteException Clase Mensaje.java Serializable. serialversionuid 5

Servidor: Servidor Índice Implementa la interfaz remota. Los métodos lanzan RemoteException. Almacenar Mensajes. Recibir Mensaje. Devolver Mensajes Pendientes. No registra el objeto 6

Creación Objeto Remoto. Clase de Inicio de InicioServidor.java Registro de Objeto Remoto (bind). Heredar en Servidor o Exportar de UnicastRemoteObjet. Al finalizar unbind y unexport el objeto remoto. No realizamos carga dinámica de clases (RMISecurityManager y codebase) 7

Clase Cliente. Índice Cliente.java (1/2) Buscamos (lookup) el objeto en el enlazador local (devuelve Remote). Variable de instancia IServidor. Dependencia de proyecto común por IServidor y Mensaje. Método leerconsola para interfaz de usuario. Metodos enviar y recibir permiten: enviar: escribir mensaje en chat recibir: leer mensajes pendientes y mostrarlos en consola. No realizamos carga dinámica de clases (RMISecurityManager y codebase) LocateRegistry.getRegistry(puerto) en nuestro caso 8888. 8

recibir(): Hacemos RMI al servidor y obtenemos una lista con los mensajes pendientes, y actualizamos el índice donde controlamos los mensajes recibidos. Dependencia de proyecto común por IServidor y Mensaje. Método leerconsola para interfaz de usuario. Métodos enviar y recibir permiten: enviar: escribir mensaje en chat. RMI al método escribir. Clase Cliente. Índice Cliente.java (2/2) recibir: leer mensajes pendientes y mostrarlos en consola. RMI al método leer del servidor. 9

Ejecución (1/2) Índice Ejecutar el enlazador RmiRegistry de Java. Desde eclipse con RMI plugin www.genady.net Desde consola. Abrimos consola y ejecutamos rmiregistry. Hoy optaremos por esta opción. RmiRegistry debe poder acceder a las clases de nuestro servidor, para ello podemos: Incluir el directorio raíz de nuestras clases en la variable CLASSPATH Ejecutar rmiregistry desde el directorio raíz. Este directorio es donde estén las clases compiladas, normalmente el directorio bin de nuestro proyecto. En nuestro caso del proyecto común, que es donde esta la interfaz remota. Ejecutar la clase IniciarServidor desde Eclipse. Si no es correcta esta configuración tendréis errores del tipo: Si olvidáis que tenéis la clase corriendo previamente obtendréis una excepción de este tipo: 10

Ejecución Índice(2/2) Ejecutamos varias instancias del Cliente y en cada una: Introducimos nuestro nombre. Podremos escribir y leer mensajes. Es posible que queramos utilizar la descarga dinámica de código de clases del servidor, para ello debemos incorporar: Un gestor de seguridad RMISecurityManager Establecer la propiedad java.rmi.server.codebase Para facilitar esta tarea incluiremos dos clases auxiliares en nuestro proyecto común, y modificaremos el código de las clases InicioServidor y Cliente. 11

Nuevas clases PoliticaSeguridad Índice y Codebase La estructura de nuestros proyectos quedará de esta forma:. 12

Policita Índice de Seguridad 13

Codebase Índice Esta clase nos permitirá definir de forma dinámica donde se ubican los ficheros.class de las clases Serializables y de los stubs de las clases Remote, y asignarlo a la propiedad del sistema java.rmi.server.codebase A partir del objeto remoto obtenemos el path. 14

Cambios en InicioServidor Índice y Cliente InicioServidor: Añadimos Gestor de Seguridad y carga de propiedad codebase. Cliente: Añadimos gestor de seguridad. 15