Middleware Java 2 Enterprise Edition

Slides:



Advertisements
Presentaciones similares
FUNDAMENTALS OF THE JAVA PROGRAMMING LANGUAGE
Advertisements

JAVA PERSISTENCE API (JPA) - Relaciones
Windows Presentation Foundation
CJ02 – Técnicas avanzadas en java 1.4 y 5.0
PAT & NAT COMP 423. Network Address Translation/Port Address Translation Métodos de direccionamiento que hacen que las direcciones internas de un network.
Programación con OpenMP* Intel Software College. Copyright © 2006, Intel Corporation. All rights reserved. Intel and the Intel logo are trademarks or.
Lenguajes de Programación Soluciones a pruebas de nivel
Entrada y salida Fundamentos de programación/Programación I
Visual basic Curso de Habilitación Laboral IV. ¿Qué es Visual Basic Visual Basic es uno de los tantos lenguajes de programación que podemos encontrar.
Un constructor es un método que inicia un objeto inmediatamente después de su creación. De esta forma nos evitamos el tener que iniciar las variables.
CENTRO DE BACHILLERATO TECNOLOGICO INDUSTRIAL Y DE SERVIVCIOS No 3
CONSTRUCCIÓN Y ARQUITECTURA DEL SOFTWARE
UML Lenguaje Unificado de Construcción de Modelos
Clases Extendidas La clase extendida hereda los campos y métodos de la clase de la cual extiende. La clase original se conoce como superclase y la clase.
Programación Concurrente en Java
Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) cec.uchile.cl Módulo ECI - 11: Fundamentos de Redes de Computadores.
Práctica II: Java RMI.
PL/SQL Francisco Moreno Universidad Nacional. Funciones Si un procedimiento tiene solo un parámetro de salida, se puede remplazar por una función y esta.
Defina una clase TempMinMaxEst que encapsule la representación de las temperaturas mínimas y máximas registradas en una estación meteorológica y brinde.
Java RMI vrs. CORBA y el objeto Parallel CORBA
Monitor de Temperatura. OBJETIVO Monitoreo de Temperatura en Salas de Computo Elaborar graficas de comportamiento Envío de Alertas.
SOA conference. Qué es WCF Fundamentos de la Arquitectura WCF Adaptadores BizTalk WCF Novedades en BizTalk Demo.
Introducción a Remoting
13/01/08Seminario de Bases de Datos1 Oracle y Java * * Tomado del curso de Francisco Moreno.
1 Entrada/Salida en Java Jaime Ramírez, Ángel Lucas González DLSIIS. Facultad de Informática Universidad Politécnica de Madrid.
Entornos orientados a objetos
RMI Remote Method Invocation
RMI (Remote Method Invocation)
Objetos Distribuidos – Aplicaciones RMI
PROGRAMACION DISTRIBUIDA
1.Tecnología Java Instaladores necesarios Jdk->Para Desarrollo
Excepciones y archivos Info 033. Exception El término Exception es la palabra corta para la frase "evento excepcional." Definition: Una excepción es un.
Enterprise Java Beans Rubén Trujillo Sept-Dic 2008.
Recursión Se dice que un método es recursivo si forma parte de sí mismo o se define en función de sí mismo. La recursión es un medio particularmente poderoso.
Lenguajes de Programación Tema 4. Paradigma Orientado a Objetos Java 1.5 Pedro García López
Tema 7: Polimorfismo Antonio J. Sierra. Índice Introducción. Sobrecarga de métodos. Objetos como parámetros. Paso de argumentos. Devolución de objetos.
10. Hilos Definición y ejecución Thread y Runnable
RMI JAVA Implementación.
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.
Tema 6: Clases Antonio J. Sierra.
Sistemas Operativos Centralizados y Distribuidos Carlos David Zepeda.
Public class MiClase { public static int tmp = 123; // miembro variable public static final double PI = ;// miembro constante public float.
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.
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
3.  Recursividad.
Tema VI: Java RMI Luis López Fernández.
RMI Remote Method Invocation 2da. Clase del 19 de Junio
 SSH (Secure Shell) es un conjunto de estándares y protocolo de red que permite establecer una comunicación a través de un canal seguro entre un cliente.
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
Patrón de diseño BROKER
RMI: Invocación a método remoto, y Java RMI
Sistemas Distribuidos Lunes, 16 de enero ● Invocación remota.
Interfaces y Clases Internas ELO329: Diseño y Programación Orientados a Objetos.
Java RMI. Entornos orientados a objetos  Tendencia actual hacia sistemas compuestos por un conjunto de objetos que interactúan entre sí.  Un programa.
Herencia Implementación en Java.
Fundamentos de la programación orientada a objetos
Corba.
Exception Object Throwable Error Exception Runtime Exception.
Clases y Objetos en Java
Diseño y Programación Orientada a Objetos
Clases y Objetos en Java
Programación Orientada a Objetos I Unidad 4 Relaciones entre clases: herencia.
Herencia en C#.
String, random y stream en java
Prof. Marcos Heredia.  Primitivos y No Primitivos.
Creación de un servicio web con RMI 3Unidad N°. comprende el funcionamiento de un servicio web con RMI de manera eficiente y responsable. Logro.
Transcripción de la presentación:

Middleware Java 2 Enterprise Edition REMOTE METHOD INVOCATION (RMI)

Remote Method Invocation Objetivo Desarrollar Aplicaciones Java Distribuidas usando la misma sintaxis y semantica usada en aplicaciones no distribuidas Introducido en JDK 1.1

RMI – Local vs Remote Objeto Local Objeto Remoto Definicion Definido por una clase Java Definido por una interface que debe extender la interface Remote Implementacion Implementado por la clase Java Comportamiento es provisto por una clase Java que implementa Remote Creacion Operador new Creado en el Server via new El cliente no puedo hacer new Acceso Via object reference Via object reference que apunta a la implementacion del proxy stub Referencias Apuntan a un area de memoria en la maquina local Una referencia remota es un puntero a stub proxy

RMI – Local vs Remote Objeto Local Objeto Remoto Referencias Activas Un objeto con una referencia se considera “alive” Referencias remotas son sensibles a caidas en la red Finalizacion Objeto implementa metodo finalize() Implementa Unreferenced() Garbage Collection Cuando no quedan referencias al objeto, es candidato para el GC El GC Distribuido trabaja en conjunto con el GC Local, se analizan referencias locales y remotas Excepciones Runtime y Exceptions Compilador obliga a manejar las Excepciones RMI fuerza al programador para que resuelva cualquier posible RemoteException

Arquitectura RMI Crear un modelo de objetos distribuidos que se integre naturalmente con el lenguaje Java y con el modelo de objetos locales Concepto de Interfaces Definicion del Comportamiento interface Implementacion del Comportamiento class

Arquitectura RMI RMI soporta dos clases que implementan la misma interfaz Service Proxy Client Service Implementacion Server

Arquitectura RMI Layers Stubs & Skeletons Remote Reference Layer Intercepta invocaciones que el cliente realiza sobre la variable de referencia a la interface y redirecciona la llamada al Servicio Remoto RMI Remote Reference Layer Se encarga de establecer la conexion entre cliente y server Remote Object Activation (Java 2) Transport Layer Conexiones TCP - Seguridad

Arquitectura RMI stub skeleton Stubs & Skeletons - Proxy Pattern Un objeto en un contexto es representado por otro (el proxy) en un contexto separado. El proxy sabe como forwardear los llamados a metodos. stub skeleton

Arquitectura RMI Remote Reference Layer Transport Layer Provee un objeto RemoteRef que representa el link al objeto que implementa el servicio remoto Los stubs usan el metodo invoke() sobre RemoteRef para forwardear la llamada a un metodo. Objeto RemoteRef conoce la semantica de invocacion de servicios remotos. Transport Layer Establece conexion TCP/IP entre cliente y server Java Remote Method Protocol (JRMP)

RMI – Naming Servicios de Directorio RMI Registry Java Naming and Directory Interface (JNDI) RMI provee un servicio muy simple llamado rmiregistry Corre en cada maquina que hostea objetos servidores Port 1099

RMI – Naming Host Cliente Programa crea un servicio remoto creando primero el objeto local que implementa el servicio Exporta el objeto a RMI RMI crea un servicio que espera conexiones Registra el objeto en rmiregistry bajo un nombre Cliente Accede al RMI Registry a traves de una clase estatica Naming Naming provee un metodo lookup() que se utiliza para hacer queries al registry. Se pasa la URL del servicio usando la forma: rmi://<hostname>:<service_port>/<service_name>

RMI – Implementacion Escribir y compilar el codigo Java para las interfaces Escribir y compilar el codigo para las clases de implementacion Generar Archivos Stub y Skeleton para las clases de implementacion Escribir codigo Java para el programa que implemente el servicio remoto Desarrollar aplicacion cliente RMI Instalar y ejecutar el Sistema RMI

RMI – Implementacion Interface public interface Calculator extends java.rmi.Remote { public long add(long a, long b) throws java.rmi.RemoteException; public long sub(long a, long b) throws java.rmi.RemoteException; public long mul(long a, long b) throws java.rmi.RemoteException; public long div(long a, long b) throws java.rmi.RemoteException; }

RMI – Implementacion Implementacion public class CalculatorImpl extends java.rmi.server.UnicastRemoteObject implements Calculator { // Implementaciones deben tener un constructor explicito para poder declarar la excepcion RemoteException public CalculatorImpl() throws java.rmi.RemoteException { super(); } public long add(long a, long b) throws java.rmi.RemoteException { return a + b; } public long sub(long a, long b) throws java.rmi.RemoteException { return a - b; } public long mul(long a, long b) throws java.rmi.RemoteException { return a * b; } public long div(long a, long b) throws java.rmi.RemoteException { return a / b; } }

RMI – Implementacion Stubs & Skeletons Calculator_Stub.class # rmic CalculatorImpl Calculator_Skel.class

RMI – Implementacion Host Server import java.rmi.Naming; public class CalculatorServer { public CalculatorServer() { try { Calculator c = new CalculatorImpl(); Naming.rebind("rmi://localhost:1099/CalculatorService", c); } catch (Exception e) { System.out.println("Trouble: " + e);} } public static void main(String args[]) { new CalculatorServer();

RMI – Implementacion Cliente Ejecutar el Sistema Implementar clase CalculatorClient Calculator c = (Calculator) Naming.lookup( "rmi://remotehost/CalculatorService"); Ejecutar el Sistema rmiregistry java CalculatorServer java CalculatorClient