Objetos Distribuidos – Aplicaciones RMI

Slides:



Advertisements
Presentaciones similares
APLICACIONES DISTRIBUIDAS
Advertisements

Curso de Java “Java para Web” Rogelio Ferreira Escutia.
Internet y tecnologías web
Fernando Alonso Blázquez Sesiones 06 de Mayo de 2004.
Características Generales y Entornos de Desarrollo
Curso de java básico (scjp)
ADELA TORRES JONATHAN BEJARANO
2010Lenguajes Visuales MVC con Remote Observers Cambios en el cliente: –Incorporar la interface RemoteObserver como parte del framework –ProxyModelo –Debe.
Programación Interactiva Aplicaciones Cliente-Servidor
Lenguaje de programación Java
Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) cec.uchile.cl Módulo ECI - 11: Fundamentos de Redes de Computadores.
FACHADA.
Práctica II: Java RMI.
Lenguajes Servicios Web
Servicios Web.
Arquitectura CLARO-TECNOTREE
"java del lado del servidor" Servlet y JSP Java Server Pages.
Introducción a Remoting
Entornos orientados a objetos
RMI Remote Method Invocation
Java 2 Platform Enterprise Edition
RMI (Remote Method Invocation)
INTRODUCCIÓN A UML Oscar Miguel Alonso Moreno.
Enterprise Java Beans Rubén Trujillo Sept-Dic 2008.
RMI JAVA Implementación.
Práctica III: Java RMI con Serialización y Activation Framework
El patrón de diseño Proxy Raúl Heras Alberto Blasco José Manuel Arévalo.
Clases y objetos La unidad fundamental de programación OO son las clases. Conjunto de métodos y semántica Qué se va a hacer POO Clase: que define la implementación.
Sistemas Operativos Centralizados y Distribuidos Carlos David Zepeda.
1 Ingeniería del Software Ejercicios de Implementación  Caso de Uso Total Gasto (Junio 2003)  Caso de Uso Mejor Usuario (Septiembre 2003)  Caso de Uso.
Desarrollo de aplicaciones web en entorno servidor
1 TEMA 5. Seguridad en Java 1.Introducción a los Controladores de Seguridad 2.Decidir qué Métodos Sobreescribir del SecurityManager 3.Escribir un Controlador.
Remoting.Net Michel Rener. TEMARIO ¿Qué es una Aplicación Distribuida? ¿Qué es una Aplicación basada en Cliente/Servidor? ¿Qué es la Tecnología de Objetos.
Sincronización de Objectos Compartidos usando MatchMaker a través de Web Services Thomas Pieper DCC, Universidad de Chile.
Invocación de Métodos Remotos RMI: Remote Method Invocation
1 Persistencia en Java Agustín J. González ELO-329.
OMAR SANCHEZ ROBLES HECTOR PEREZ GARCIA. “Sistemas de cómputo compuesto por un gran número de CPU´s conectados mediante una red de alta velocidad”, Tanenbaum.
Servicios Web. Servicios web Son programas con funcionalidad accesible a través de protocolo http que permiten la ejecución remota de métodos y funciones.
Java. Java nació el año 1991, por un par de ingenieros de la Sun Microsystems.
JAVA RMI The Java Remote Method Invocation ELO330 – Programación de Sistemas Cesar Vásquez I
Tema VI: Java RMI Luis López Fernández.
J2EE Java Enterprise edition eilin chang Matthew pabon Gabriel vega.
RMI Remote Method Invocation 2da. Clase del 19 de Junio
OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA ING. MARISCAL.
/ Teléfono : Web : Build Solutions IT.
Enterprise Java Beans. EJBs Beans gestionados por un contenedor del servidor de aplicaciones para gestionar el acceso a recursos (bases de datos, colas.
Son la base para la búsqueda de soluciones o problemas comunes en el desarrollo de software y otros ámbitos referentes al diseño de interacción o interfaces.
Remote Method Invocation (RMI) Basado en: Fundamentals of RMI. Short Course. JGuru.
Cambiando la manera de diseñar aplicaciones distribuidas Diseño orientado a las comunicaciones: Primero se diseña el protocolo de las comunicaciones y.
Manuel I. Capel Tuñón Ramón A. Carrasco González
Aplicaciones Web de Servidor
Presentado por: PABLO ANDRES DIAZ SAIN HASSAM CAICEDO
Detalles Generales sobre Java
Introducción a los Webservices. Contenidos Definición Definición Protocolos que hacen posible la existencia de los Webservices Protocolos que hacen posible.
Confidential // Neoris 1 Confidential // Do Not Reproduce without prior written permission from Neoris Servlets.
¿Qué es. NET Remoting? Servicios Web que utiliza entorno remoto que se puede ejecutar en cualquier aplicación.
Punto 4 – Configuración de un Servidor Web Juan Luis Cano.
Invocación Dinámica en CORBA
Metodología de Programación Ayudantía 4 lelagos.ublog.cl 2009.
.Net Remoting Conceptos que debemos Conocer Dominio de una Aplicación
Servicios Web Conjunto de aplicaciones o de tecnologías con capacidad para interoperar en la Web. Estas aplicaciones o tecnologías intercambian datos entre.
Patrón de diseño BROKER
Programación orientada a objetos La programación orientada a objetos o POO (OOP según sus siglas en inglés) es un paradigma de programación que usa objetos.
Notario electrónico Consejería de Justicia y Administración Pública Dirección General de Organización, Inspección y Calidad de los Servicios Antonio Pedro.
ALGORITMOS DISTRIBUIDOS EN JAVA DAJ. ¿Que es DAJ?  DAJ consiste de una librería de clases java con una simple interface de programación que permite desarrollar.
RMI: Invocación a método remoto, y Java RMI
Concepto de Tipo y Subtipo Diseño e Implementación Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Unidad Didáctica 10 Versión.
Definición: Es un estilo de programación, su objetivo primordial es la separación de la capa de presentación, capa de negocio y la capa de datos. ARQUITECTURA.
ENTERPRISE JAVA BEANS. ACCESO AL EJB EJB_HOME. Accesible mediante JNDI. Permite crear y destruir EJB. EJB_OBJECT Expone los métodos del negocio del EJB.
Java RMI. Entornos orientados a objetos  Tendencia actual hacia sistemas compuestos por un conjunto de objetos que interactúan entre sí.  Un programa.
Transcripción de la presentación:

Objetos Distribuidos – Aplicaciones RMI 2009 Lenguajes Visuales

Aplicaciones RMI Las aplicaciones RMI constan de 2 componentes: Cliente y Servidor Cliente: Utiliza servicios de objetos remotos Servidor: Ofrece públicamente uno o más servicios de un objeto (“objeto remoto”) RMI ofrece un mecanismo para que el cliente y el servidor se comuniquen entre ellos Implementa una “aplicación de objetos distribuidos” 2009 Lenguajes Visuales

Aplicaciones RMI Un cliente RMI debe: Un servidor RMI debe: Localizar los objetos remotos que desea utilizar Comunicarse con dichos objetos remotos, a través de mensajes Descargar el código (bytecode) de los objetos intercambiados en el mensaje Un servidor RMI debe: Publicar los objetos que son accesibles remotamente (registro “rmiregistry”) Recibir los mensajes enviados desde el cliente, procesarlos, y enviar los resultados al cliente 2009 Lenguajes Visuales

Aplicaciones RMI 2009 Lenguajes Visuales

Desarrollo de aplicaciones RMI Definir los métodos (servicios) que serán accesibles remotamente desde el cliente “interface remota” Implementar los objetos remotos (servidor) Proveerán la implementación del servicio Implementar los objetos clientes Utilizarán los servicios remotos 2009 Lenguajes Visuales

1. Interfaz Remota La interfaz remota debe incluir los métodos que serán accesibles remotamente desde los clientes Debe extender la interface Remote public interface Calculador extends Remote { int sumar (int a, int b) throws RemoteException; } 2009 Lenguajes Visuales

2. Implementación objeto remoto Un objeto en el servidor debe implementar el servicio remoto Debe implementar la interface remota Debe extender UnicastRemoteObject public class ServCalculo extends UnicastRemoteObject implements Calculador { … int sumar (int x, int y) { return x+y; }; } 2009 Lenguajes Visuales

2. Implementación objeto remoto El servidor debe ‘registrar’ el objeto remoto, para que sea visible por el cliente (en el”rmiregistry”) public void registrar() { … name = “//192.168.1.1/calculadora”; ServCalculo sc = new ServCalculo(); Naming.rebind(name, sc); } 2009 Lenguajes Visuales

3. Implementación cliente El cliente debe: Localizar el objeto remoto Utilizar un servicio ofrecido, a través del envío de un mensaje public void acceder() { … name = “//192.168.1.1/Calculadora”; Calculador c = Naming.lookup(name); int res = c.sumar(i, j); } 2009 Lenguajes Visuales

Ejercicio 4: Estructura clases Interface remota (compartida entre cliente y servidor) El stub de este objeto es descargado en el cliente en runtime (desde el “codebase”) 2009 Lenguajes Visuales

Cómo funciona? El objeto remoto es localizado a través del registry, que indica donde está físicamente localizado tal objeto RMI pasa un “stub” remoto del objeto remoto al cliente, que actúa como un proxy o referencia remota del objeto en el servidor El stub implementa los mismos métodos públicos ofrecidos por el objeto remoto El stub realiza las conversiones de datos necesarias para el envío de los mismos al servidor. Lo mismo hace con los valores de retorno “Marshalling” / “Unmarshalling” 2009 Lenguajes Visuales

Pasos implementación servidor Codificar objeto remoto Compilar objeto remoto Generar stub del objeto remoto Usar “rmic” Colocar stub e interfaces remotas en directorio accesible al cliente (o via web) El cliente descargará este código desde esta ubicación (“codebase”) Start rmiregistry Start servidor 2009 Lenguajes Visuales

Pasos implementación cliente Codificar objeto cliente Compilar objeto cliente Arrancar el cliente Debe indicarse la ubicación del “codebase”, desde donde se descargará el stub del servidor Para que el cliente funcione, el servidor debe estar previamente en funcionamiento 2009 Lenguajes Visuales

Política de Seguridad Tanto el cliente como el servidor requieren la utilización de un archivo de seguridad, para establecer permisos “java.policy” grant { permission java.net.SocketPermission "*:1024-65535", "connect,accept"; permission java.io.FilePermission "d:\\temp\\servidor\\classes\\-", "read"; }; 2009 Lenguajes Visuales

Serializable Si un servicio acepta parámetros de tipos no primitivos, éstos deben ser de tipo Serializable public interface Calculador extends Remote { public int sumar (Articulo x, Articulo y) throws RemoteException; } public interface Articulo extends Serializable { … 2009 Lenguajes Visuales

Ejercicio 5: RMI & Serializable Interface remota (compartida entre cliente y servidor) Esta clase es necesaria en el servidor, para ejecutar suma(). Es descargada dinámicamente desde el cliente 2009 Lenguajes Visuales

Aplicación MVC de 2 capas Una aplicación MVC de 2 capas consta de: Servidor: modelo Cliente: vista y controlador En el cliente debe incorporarse un objeto que “representa” (proxy) al modelo, y se encarga de efectuar la conexión con el servido Patrón de diseño “BusinessDelegate” 2009 Lenguajes Visuales

Ejercicio 6 - Cliente 2009 Lenguajes Visuales

Ejercicio 6 - Servidor 2009 Lenguajes Visuales

Tutorial de Java (Sección sobre RMI) Referencias Tutorial de Java (Sección sobre RMI) Disponible en java.sun.com Patrones J2EE (información acerca de Business Delegate) Artículos: “Creating 3-Tier Distributed Applications with RMI” (http://www.wutka.com/hackingjava/ch16.htm) “Improved Observer/Observable” (http://jdj.sys-con.com/read/35878.htm) 2009 Lenguajes Visuales