PROGRAMACION DISTRIBUIDA
|
|
|
- Esperanza López Romero
- hace 8 años
- Vistas:
Transcripción
1 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 Casos analizados: Transferencia de objetos como parámetros o valores de retorno Carga dinámica de clases Uso del registry con varios proyectos independientes Inversión de la dependencia cliente/servidor Activación dinámica de servidores
2 3 Transferencia de objetos (1/2) Los objetos locales son serializados y transmitidos por la red al destino se transmiten los datos, los metadatos y los métodos del objeto en el destino, la información recibida es utilizada para crear un clon del objeto original class Position { public int x, y; public void print() { class Position { public int x, y; public interface AutonomousCar extends Remote { public void setposition(int x, int y) throws RemoteException; public void setposition(position p) throws RemoteException; public Position getposition() throws RemoteException; 4 Transferencia de objetos (2/2) Los objetos remotos se transmiten utilizando el stub en el destino, el objeto remoto es representado por un proxy que nos permite modificar el estado del objeto original public interface CarDatabase extends Remote { public AutonomousCar getcar (String numberplate) throws RemoteException; public class CarCompany implements CarDatabase { public AutonomousCar getcar (String numberplate) throws RemoteException { return thecar; También pueden obtenerse también de forma dinámica
3 5 Carga dinámica de clases (1/6) Java RMI requiere conocer el lugar donde están declaradas la clases que ha de construir en las invocaciones remotas utilizando la variable CLASSPATH (local) asignando valor a la propiedad java.rmi.codebase (remoto) JVM (cliente) Objeto cliente (1) stub con codebase (3) retorno de la clase solicitada Registry (2) petición de la clase utilizada por el stub Servidor Web Objeto remoto JVM (servidor) Servidor myserver.com 6 Carga dinámica de clases (2/6) Si no se encuentra la clase adecuada, el unmarshalling fallará y se lanzará la excepción UnmarshalException junto con ClassNotFoundException Ejemplo de carga dinámica del bytecode de la clase Position class Position implements PositionInterface { private int x, y; public void print() { public interface PositionInterface { public void print(); public interface AutonomousCar extends Remote { public void setposition(int x, int y) throws RemoteException; public PositionInterface getposition() throws RemoteException;
4 7 Carga dinámica de clases (3/6) 8 Carga dinámica de clases (4/6)
5 9 Carga dinámica de clases (5/6) public class Position implements Serializable, PositionInterface { private int x, public void print () { System.out.println("Posición actual: "+x+" "+y); public class clientlauncher { public static void main(string[] args) { try{distribuidor=(cardatabase) registry.lookup(networkconstants.servicename); catch(exception e){ try {MyCar = distribuidor.getcar(mynumberplate); // Manejo del coche MyCar.setPosition(2,2); System.out.print ( Posición final: "); MyCar.getPosition().print(); catch (RemoteException e) { 10 Carga dinámica de clases (6/6) La carga dinámica permite que no sea imprescindible conocer la implementación de la clase con antelación con conocer la interfaz es suficiente Antes de ejecutar cargar clases de forma dinámica, debe activarse el gestor de seguridad con la política adecuada public class clientlauncher { public static void main(string[] args) { // Configuramos la JVM para poder obtener clases de forma dinámica // java.rmi.server.codebase y java.security.policy if (System.getSecurityManager()==null) { System.setSecurityManager(new RMISecurityManager());
6 11 Uso del registry con varios proyectos independientes El registry tiene acceso a la clase del objeto a registrar si se ejecuta en la misma JVM que el servidor. Esto se consigue ejecutando el registry con LocateRegistry.createRegistry (port) Si se comparte un registry entre servidores provenientes de varios proyectos, es más sencillo utilizar la aplicación rmiregistry debe arrancarse con el CLASSPATH incluyendo todas las clases remotas 12 Inversión de la dependencia cliente/servidor (1/3) De forma general, el cliente conoce al servidor y puede invocar sus métodos, pero el servidor no conoce quiénes son sus clientes en el modelo cliente-servidor puro, el servidor es pasivo Hay casos en los el cliente necesita conocer cambios de estado en el servidor el servidor debe informar al cliente Cliente Invocaciones ordinarias de negocio Servidor Evento esporádico Invocaciones asíncronas de eventos
7 13 Inversión de la dependencia cliente/servidor (2/3) Esto se puede resolver con dos estrategias: Polling: El cliente periódicamente pregunta si ha existido el evento esporádico Solución sencilla: no se modifica el servidor No invierte la dependencia cliente/servidor Sobrecarga el servidor Callback: El cliente aloja en el servidor un objeto de notificación, que el servidor utiliza para comunicar eventos al cliente Solución más compleja: requiere modificar cliente y servidor Se invierte la dependencia cliente/servidor, ya que el cliente debe implementar un objeto remoto 14 Inversión de la dependencia cliente/servidor (3/3) Estrategia de polling Estrategia de callback Cliente Cliente metodonegocio_1() metodonegocio_2() hayevento():boolean Servidor Servidor Cliente signal() Interfaz remota Listener metodonegocio_1() metodonegocio_2() registerlistener(stub) Servidor Lista de stub a Listener registrados listener hayevento() =>:false metodonegocio_1() Cliente Servidor metodonegocio_1() hayevento() =>:false metodonegocio_1() Periódicamente encuesta el evento hayevento() =>:false metodonegocio_2() Ocurre el evento metodonegocio_2() hayevento() =>:true signal() Ocurre el evento
8 15 Ejemplo de callback: Hola (1/3) public interface Callback extends Remote { void notificacion (String mensaje) throws RemoteException; public interface Hola extends Remote { void di_hola() throws RemoteException; void registracallback (Callback cliente) throws RemoteException; 16 Ejemplo de callback: Hola (2/3) public class ClienteHola extends UnicastRemoteObject implements Callback { public ClienteHola() throws RemoteException { super public void notificacion(string mensaje) throws RemoteException { String returnmessage = "Callback recibido: " + mensaje; System.out.println (returnmessage); public static void main(string[] args) { elservidor.registracallback( new ClienteHola()); elservidor.di_hola();
9 17 Ejemplo de callback: Hola (3/3) public class ServidorHola implements Hola { private Vector<Callback> ListaClientes; public ServidorHola() { ListaClientes = new Vector<Callback>(); public void di_hola() throws RemoteException { String elmensaje="hola nuevo Mundo"; System.out.println (elmensaje); ListaClientes.firstElement().notificacion("Saludo realizado public void registracallback(callback cliente) throws RemoteException { ListaClientes.addElement (cliente); 18 Activación dinámica de servidores (1/2) Un servidor instalado en un procesador consume recursos: memoria, puertos de comunicación, etc. frecuentemente una aplicación mantiene múltiples servidores, de los cuales sólo algunos de ellos están siendo invocados concurrentemente por lo tanto, es importante disponer de servidores que puedan activarse o desactivarse según estén siendo invocados Un servidor tiene estado que le permite operar consistentemente En estos casos hay que preguntarse por el ciclo de vida de un servidor: Cuando un servidor debe activarse? Cuando debe desactivarse? Cuando debe almacenarse el estado en una base de datos persistente?
10 19 Activación dinámica de servidores (2/2) RMI proporciona recursos para declarar y registrar servidores que no se instancian hasta que un cliente remoto lo invoca Para el cliente, el proceso de activación del servidor durante la invocación es transparente: localiza su referencia en el registry e invoca el servidor. Si es el primero en invocarlo, el servidor se activa El servidor también puede desactivarse y guardar su estado si es persistente, y recuperarlo posteriormente en la siguiente activación La base del proceso es un servidor RMI proporcionado por Java que se denomina rmid (RMI Daemon). 20 rmid (The Java RMI Activation System Daemon) La ejecución de la herramienta rmid inicia la actividad del servicio ActivationSystem en modo demonio debe estar en ejecución antes de que sea invocado (y activado) cualquier objeto activable La herramienta se lanza con el comando (al menos hay que especificar una política de seguridad Java): rmid -J-Djava.security.policy=rmid.policy Existen muchas opciones de lanzamiento que condicionan el funcionamiento del servicio ActivationSystem. Por defecto: el servicio atiende en el puerto La opción port permite configurarlo en el registry se asocia la clave java.rmi.activation.activationsystem con el servicio ActivationSystem
11 21 Elementos del framework Activation NameServer rmid ActivationGroup ServerActivable Servicio RMI en el que se registra el servidor cuando se crea Servicio RMI que recibe las invocaciones si el servidor no está activo Servicio RMI que instancia el servicio en una determinada JVM Servidor RMI que se instancia cuando se invoca Name Server (1) Requiere el stub por su nombre Client rmid rmi Activator (2) Invoca un método a través del stub (3) Se invoca la instanciación del server (1) Se invoca el método en el server JVM arrancada por rmid Activation Group (4) Se invoca el método en el server Server Activable Server Activable JVM arrancada por rmid Activation Group Server Activable Server Activable 22 Instanciación del servidor El rmid no instancia directamente el servidor en su propia JVM, sino que crea una JVM en la que instancia el servidor todos los servidores que se crean con referencia a un mismo ActivationGroup se ejecutan en una misma JVM En cada JVM se instancia un ActivationGroup es un servidor RMI encargado de instanciar e inicializar cada uno de los servidores de su grupo de activación Cuando el ActivationGroup instancia el servidor en su JVM, modifica la referencia del servidor (stub) para que haga referencia al servidor creado por tanto, el stub deja de apuntar al servicio Activator del rmid
12 23 Implementación de un servidor activable (1/3) <<interface>> Remote <<class>> Object <<exceptionclass>> IOException <<abstract class>> RemoteObject <<exceptionclass>> RemoteException <<abstract class>> RemoteSever Proporciona los recursos para poder ser almacenada persistentemente en disco y ser activada remotamente por el rmi. <<abstract class>> Activatable <<class>> UnicastRemoteObject 24 Implementación de un servidor activable (2/3) La clase Activatable define un objeto remoto que se activa cuando es invocado algún método remoto, y que se desactiva cuando se le requiere static Remote exportobject (Remote obj, ActivationID id, int port) static Remote register (ActivationDesc desc) static boolean unexportobject (Remote obj, boolean force) boolean inactive (ActivationID id) static void unregister (ActivationID id) Export the activatable remote object to the RMI runtime to make the object available to receive incoming calls. Register an object descriptor for an activatable remote object so that is can be activated on demand. Remove the remote object, obj, from the RMI runtime. Informs the system that the object with the corresponding id is inactive. Revokes previous registration for the activation descriptor associated with id
13 25 Implementación de un servidor activable (3/3) El servidor es activable si se crea un objeto Activatable, que es una especialización de RemoteServer. Hay dos formas de realizar la implementación: El servidor extiende la clase java.rmi.activation.activatable Exportándolo a través del método estático Activatable.ExportObject() Un stub a un objeto Activatable cambia dinámicamente en función del estado del servidor: Inicialmente contiene la referencia para acceder al ActivationSystem del demonio rmid Cuando el servidor está creado, se modifica el stub para referenciar directamente al server instanciado 26 Registro de un servidor activable 1. Escribir el código del servidor para que sea activable Escribir el código de la interfaz remota Escribir el código del servidor que la implementa 2. Registrar el servidor en el rmid y rmiregistry Ejecutar el rmid Ejecutar el rmiregistry Ejecutar programa de setup 3. Ejecutar el cliente que invoca el servidor activable Requiere la referencia al rmiregistry Invoca un método del servidor Instalar gestor de seguridad Transferir la información de la clase al rmid Registrar la referencia remota en el registry
14 27 Desactivación de un servidor Para desactivar un servidor existen tres método estáticos de la clase Activatable: public static boolean unexportobject(remote obj, boolean force) Cancela la exportación del servidor: comunica al rmid que el servidor ya no acepta mas llamadas remotas public static boolean inactive(activationid id) Desactivación temporal: configura el registro del servidor en el rmid para que se active de nuevo si es invocado public static void unregister(activationid id) Desactivación definitiva: elimina el registro del servidor en el rmid, para que ya no pueda reactivarse de nuevo el servidor
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
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
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
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
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)
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
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
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
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
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
PROGRAMACION DISTRIBUIDA
PROGRAMACION DISTRIBUIDA Introducción a RMI (Remote Method Invocation) Héctor Pérez 2 Abstracción de comunicaciones en sist. distribuidos proporciona la base para la comunicación programación estructurada
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
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 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
Arquitecturas cliente/servidor
Arquitecturas cliente/servidor Creación de Sockets Cliente Servidor 1 Creación de Sockets Cliente/Servidor Sockets en TCP Concepto de Hilos Definición de DAEMON Sockets en UDP 2 THREADS 3 Qué es un thread?
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:
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
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.
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.
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.
Unidad Didáctica 3. Tipos genéricos. Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos
Unidad Didáctica 3 Tipos genéricos Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Definición de tipo genérico Hablamos de un tipo genérico cuando el tipo en cuestión depende
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
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
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
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
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á
PROGRAMACION CONCURRENTE
PROGRAMACION CONCURRENTE Ejemplos III: Sopa de Letras 1 Objetivo Mostrar las diferentes estrategias que puede seguir un gestor que tiene que ejecutar una tarea compleja que puede ser paralelizada en diferentes
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
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
Concurso: Cuánto sabes de JAVA?
Concurso: Cuánto sabes de JAVA? Motivación: o Para cambiar el ritmo de las jornadas y que no todas las actividades sean charlas o Recordar conocimientos y aprender algo nuevo. o Las preguntas pueden ayudarnos
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
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
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
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
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
Tutorial de C# Delegados y Eventos. Por: Óscar López, M.Sc.
Tutorial de C# Delegados y Eventos Por: Óscar López, M.Sc. [email protected] DELEGADOS Delegados Son unos objetos que implícitamente extienden de System.Delegate y definen un tipo referencia soportado
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
Práctica #5: Uso de control de flujo, Excepciones y Lectura Estándar
Práctica #5: Uso de control de flujo, Excepciones y Lectura Estándar Introducción El alumno creará cuatro programas en java que manejen control de flujo mediante las sentencias de bucle while y do/while,
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
Tema 4. Excepciones en Java
Programación en Java Tema 4. Excepciones en Java Luis Rodríguez Baena Facultad de Informática Excepciones (I) Permiten la captura de errores en tiempo de ejecución. El control de excepciones permite extraer
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
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
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
Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones
Unidad Didáctica 2 Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión 1.0.3 Índice
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
Principios de Computadoras II
Departamento de Ingeniería Electrónica y Computadoras Ing. Ricardo Coppo [email protected] Qué es un Objeto? Un objeto es una instancia de una clase Las clases actuán como modelos que permiten la creación
Introducción a Java LSUB. 30 de enero de 2013 GSYC
Introducción a Java LSUB GSYC 30 de enero de 2013 (cc) 2013 Laboratorio de Sistemas, Algunos derechos reservados. Este trabajo se entrega bajo la licencia Creative Commons Reconocimiento - NoComercial
Programación orientada a objetos
Repaso Programación orientada a objetos Curso INEM. Programación en Java Santiago Muelas Pascual [email protected]! Herencia! Superclase/subclase! super! Modificador protected! Redefinicion de métodos!
Tutorial 1: Desarrollo de un plugin
Tutorial 1: Desarrollo de un plugin En este tutorial introductorio se creará un plugin siguiendo una de las plantillas que ofrece Eclipse. Concretamente se extenderá una vista para mostrar cierta información
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
Ingeniería del Software Separación entre Presentación y Lógica del Negocio
Introducción En este laboratorio desarrollaremos una aplicación que verifica si una cuenta y un password son correctos. En dicha aplicación la presentación y la lógica del negocio se definirán en dos capas
Diseño de Algoritmos Distribuidos en Java
Diseño de Algoritmos Distribuidos en Java José Luis Pastrana Brincones ([email protected]) Departamento de Lenguajes y Ciencias de la Computación de la Universidad de Málaga Resumen El diseño de algoritmos
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
1. Cuántas sentencias hay en la secuencia principal del siguiente programa?
1. Cuántas sentencias hay en la secuencia principal del siguiente programa? public class PruebaSwitch { System.out.print ("Opcion: "); case 3: System.out.println ("miércoles "); A. 1. B. 4. C. Más de 10.
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)
PHP5 Orientado a Objetos
PHP5 Orientado a Objetos Hola a todos, en esta ocasión les traigo a ustedes un poco de información acerca de las mejoras introducidas en PHP5 las cuales son principalmente la orientación a objetos que
Carlos Montenegro. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas
2 - Introducción al lenguaje Java, identificadores y comentarios. Carlos Montenegro Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas 1. Introducción: Java tiene como todos
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)
JAVA: Excepciones. Errores
JAVA: Excepciones Lenguajes de Programación - Java: Excepciones 1 Errores Qué ocurre si un programa está usando un archivo en CD y el usuario lo extrae antes de tiempo? Qué ocurre si el usuario de un programa
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
Test : Conteste exclusivamente en una HOJA DE LECTURA ÓPTICA, no olvidando marcar que su tipo de examen es A.
SISTEMAS INFORMÁTICOS I Junio 2003 INGENIERÍA EN INFORMÁTICA - Código Carrera 55 - Código Asignatura 077 Tipo de Examen: A NO SE PERMITE EL USO DE NINGÚN MATERIAL Tiempo: 2 horas Apellidos: Nombre: DNI:
18. Interfaces Declaración de una interfaz
Programación orientada a objetos con Java 191 18. Interfaces Objetivos: a) Definir el concepto de interfaz b) Interpretar el código fuente de una aplicación Java donde aparecen interfaces c) Construir
Tema 6: Clases. Índice
Tema 6: Clases Antonio J. Sierra Índice 1. Fundamentos. 2. Declaración de objetos. 3. Asignación de objetos a variables referencia. 4. Métodos. 5. Constructores. 6. this. 7. Recogida de basura. 8. Modelado
Servicios Web. Andrés Pastorini. TRIA Tecnólogo Informático
Andrés Pastorini TRIA Tecnólogo Informático Un servicio web expone un conjunto de servicios para ser consumidos a través de la red. En otras palabras, un servicio web especifica un conjunto de operación(funciones
Tema: Introducción al IDE de Microsoft Visual C#.
Tema: Introducción al IDE de Microsoft Visual C#. Objetivos: El propósito de este tema es que el alumno se familiarice con el entorno de desarrollo de Visual C# Express mientras crea el formulario más
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
Definición. Mónica E. García García Feb 07
Tema 11: Herencia 0 Definición Cuando inicialmente se modelan dos cosas y se tienen datos duplicados y además pudiera darse que el número de métodos también es similar así como la implementación, se requiere
Depto. Ingeniería de Sistemas Telemáticos Universidad Politécnica de Madrid ETSI Telecomunicación Fundamentos de Programación 15 de diciembre de 2011
Depto. Ingeniería de Sistemas Telemáticos Universidad Politécnica de Madrid ETSI Telecomunicación Fundamentos de Programación 15 de diciembre de 2011 Ejercicio 1 (2 puntos) SOLUCIONES class TarjetaDeCredito
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
Serialización de Objetos en Java. Dra. Maricela Bravo
Serialización de Objetos en Java Dra. Maricela Bravo Serialización de objetos La serialización de un objeto consiste en obtener una secuencia de bytes que represente el estado de dicho objeto. Esta secuencia
SERVLETS. Aplicaciones Distribuidas
SERVLETS Aplicaciones Distribuidas Contenido Definición. Framework Servlet. Ciclo de vida. Ejemplo. Procesamiento Petición. Generación de la Respuesta. Sesiones. Cookies. Colaboración entre servlets. Otros
Conceptos a tratar. Fundamentos de la Programación Orientada a Objetos Ampliación sobre clases y objetos
Fundamentos de la Programación Orientada a Objetos Ampliación sobre clases y objetos Programación Orientada a Objetos Facultad de Informática Dep. Ingeniería del Software e Inteligencia Artificial Universidad
Desarrollo de Sistemas Software Basados en Servicios y Componentes
Desarrollo de Sistemas Software Basados en Servicios y Componentes Bloque Docente SERVICIOS WEB Parte 2 Portada Escuela Superior de Ingeniería (ESI) Universidad de Almería Índice Visualización WSDL (servicios
INTERFACE COMPARATOR. DIFERENCIAS ENTRE COMPARATOR Y COMPARABLE. CLASE COLLECTIONS. EJERCICIOS RESUELTOS. (CU00918C)
APRENDERAPROGRAMAR.COM INTERFACE COMPARATOR. DIFERENCIAS ENTRE COMPARATOR Y COMPARABLE. CLASE COLLECTIONS. EJERCICIOS RESUELTOS. (CU00918C) Sección: Cursos Categoría: Lenguaje de programación Java nivel
En este capitulo se estudiarán los conceptos relacionados a métodos, como lo son sobrecarga, métodos estáticos.
Lección 3: Creando clases 1. Definición de métodos 2. Sobrecarga de métodos 3. Definición de constructores 4. Creando miembros estáticos 5. Construcción e inicialización de objetos Objetivos En este capitulo
Unidad II. Fundamentos de programación en Java. Ing. José Luis Llamas Cárdenas
Unidad II Fundamentos de programación en Java Ing. José Luis Llamas Cárdenas En java para poder escribir se emplea el objeto System.out, t pero para leer del teclado es necesario emplear System.in Et Este
Tema 5 Corrección y Robustez Excepciones en Java
Tema 5 Corrección y Robustez Excepciones en Java Parte II: Excepciones en Java Programación Orientada a Objetos Curso 2013/2014 Contenido Introducción Excepciones comprobadas Caso de estudio Tratamiento
Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta
Centro Asociado Palma de Mallorca Antonio Rivero Cuesta La Sintaxis de Java I... 5 Tipos de datos... 6 Tipos de datos simples... 7 Operadores... 11 Operadores Aritméticos... 12 Operadores relacionales...
Variables. Una variable no es más que un nombre simbólico que identifica una dirección de memoria: vs.
Variables Una variable no es más que un nombre simbólico que identifica una dirección de memoria: Suma el contenido de la posición 3001 y la 3002 y lo almacenas en la posición 3003 vs. total = cantidad1
FACULTAD DE ECONOMIA Y ADMINISTRACION DEPARTAMENTO DE CIENCIAS DE LA COMPUTACION CÁTEDRA PROGRAMACION GENERAL. Trabajo Práctico Nº 4
Trabajo Práctico Nº 4 Ejercicios Teóricos 1. Indique si las siguientes afirmaciones son verdaderas o falsas a. La programación orientada a objetos hace uso de clases y envío de mensajes entre objetos..
Comunicación entre procesos: sockets udp. Jorge Iván Meza Martínez
Comunicación entre procesos: sockets udp Jorge Iván Meza Martínez [email protected] Especialización en Gestión de Redes de Datos Universidad Nacional de Colombia Sede Manizales 1/31 Contenidos Conceptos
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
Persistencia y Serialización en Java con Archivos
Persistencia y Serialización en Java con Archivos Agustín J. González ELO-329 Diseño y Programación Orientados a Objetos 1 Persistencia en Java Un objeto se dice persistente cuando es almacenado en un
Tema 1: Principios de Java
Tema 1: Principios de Java 0 Definición de java Java (del idioma indonesio: JAWA) Isla más poblada del archipiélago indonesio. Una variedad del grano de café producido en la isla de Java. Lenguaje de programación
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
Modulo 11. Clases y Objetos en Java
El siguiente texto es una traducción no oficial del documento publicado por el grupo JEDI, Introduction to Programming 1, no pretende en ningún momento reemplazar los contenidos generados por este grupo.
4/14/2010. Objetivos. Que es JAVA. JAVA como plataforma. Reglas Sintácticas y de Codificación Básicas de JAVA
Reglas Sintácticas y de Codificación Básicas de JAVA Objetivos Que el alumno pueda: Identificar claramente los componentes del Lenguaje y su proceso de ejecución. Identificar y comprender las partes de
