Implementación de clientes con CORBA y Java

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

Download "Implementación de clientes con CORBA y Java"

Transcripción

1 Implementación de clientes con CORBA y Java Sistemas Distribuidos: Programación con CORBA Juan Pavón Mestras Dep. Sistemas Informáticos y Programación Universidad Complutense Madrid Facultad de Informática, curso Implementación de clientes CORBA La implementación de un cliente CORBA consiste en: Conectar el cliente al ORB Usando el método org.omg.corba.orb.init() Localizar los objetos CORBA que se vayan a utilizar Se trata de obtener referencias a objetos CORBA: como resultado de una operación invocada en algún objeto: por ejemplo, una Factoría el Servicio de Nombres o el Servicio de Trading (estándar) obteniendo la referencia en forma de string y convirtiéndola con el método string_to_object() proporcionado por el ORB Invocar operaciones y atributos (definidos en IDL) en los objetos CORBA Es lo mismo que invocar operaciones en objetos Java Juan Pavón Mestras, UCM Clientes CORBA y Java 2 1

2 Aplicaciones y applets Un cliente CORBA puede ser una aplicación o un applet. Desde el punto de vista de programación con CORBA, la única diferencia está a la hora de inicializar el ORB: Para una aplicación (ejecuta el método estático main()): org.omg.corba.orb orb = org.omg.corba.orb.init(args, null); o bien: org.omg.corba.orb orb = org.omg.corba.orb.init(); Para un applet (por ejemplo en el método init()): org.omg.corba.orb orb = org.omg.corba.orb.init(this, null); Además habría que tener en cuenta las restricciones de seguridad impuestas a los applets Juan Pavón Mestras, UCM Clientes CORBA y Java 3 Obtención de referencias a objetos CORBA Las referencias a objetos CORBA pueden obtenerse como resultado de una operación sobre un objeto CORBA interfaza a = b.dameobjetoa(parametros); Pero en cualquier caso siempre hace falta al menos la referencia de algún objeto inicial (por ejemplo, una factoría): Mediante el Servicio de Nombres Leyéndolo como un string y convirtiéndolo usando el método del ORB string_to_object() Al obtener una referencia a un objeto CORBA, en realidad se obtiene una referencia al objeto Java que implementa en el cliente al proxy del objeto destino. El cliente invoca las operaciones en el proxy, y éste se encarga de hacer el marshalling de los parámetros y pedirle al ORB que los envíe a su destino Juan Pavón Mestras, UCM Clientes CORBA y Java 4 2

3 Obtención de referencias a objetos CORBA Cliente Servidor Código cliente Objeto CORBA Proxy ORB Juan Pavón Mestras, UCM Clientes CORBA y Java 5 Obtención de referencias a objetos CORBA: string_to_object() El método string_to_object() del ORB permite construir el proxy para el objeto CORBA a partir de una representación textual de la referencia al objeto Siendo T1 el mismo tipo o un tipo base de T2: String cadena =...; T1 t; ORB orb = ORB.init(); try { Object objeto = orb.string_to_object(cadena); t = T2Helper.narrow(objeto); catch (SystemException e) { //... Juan Pavón Mestras, UCM Clientes CORBA y Java 6 3

4 Excepciones La invocación de una operación en un objeto CORBA puede producir excepciones: Debidas a fallos en el acceso al objeto destino: org.omg.corba.systemexception Específicas de la operación, definidas en el IDL: org.omg.corba.userexception Java ya ofrece mecanismos para tratar excepciones, de manera que éstas se corresponden de forma natural con clases Java Un programa Java trata las excepciones con la construcción try-catch-finally Juan Pavón Mestras, UCM Clientes CORBA y Java 7 Excepciones Excepciones de sistema org.omg.corba.systemexception Pueden ser lanzadas por cualquier llamada a objeto CORBA Si se quiere pueden tratarse con más detalle: org.omg.corba.bad_operation operación inválida org.omg.corba.comm_failure fallo en comunicación (o caída del servidor) org.omg.corba.inv_objref org.omg.corba.no_permission org.omg.corba.no_implement referencia a objeto inválida operación no permitida no hay implementación disponible para la operación Juan Pavón Mestras, UCM Clientes CORBA y Java 8 4

5 Excepciones Excepciones de usuario Heredan de org.omg.corba.userexception Se definen en el IDL Primero se define el tipo de excepción Luego se puede utilizar en varias operaciones (cláusula raises) Una operación puede declararse con varias excepciones interface Banco { exception Rechazada { string causa; ; exception BancoCerrado {; Cuenta abrircuenta (in string cliente) raises (Rechazada, BancoCerrado); ; Juan Pavón Mestras, UCM Clientes CORBA y Java 9 Manejo de excepciones Código del cliente try { Cuenta c = abrircuenta ( Ciudadano Anónimo ); catch (BancoPackage.Rechazada e) { // tratamiento de la excepción catch (BancoPackage.BancoCerrado e) { // tratamiento de la excepción catch (org.omg.corba.systemexception e) { // tratamiento de la excepción Juan Pavón Mestras, UCM Clientes CORBA y Java 10 5

6 Manejo de excepciones Al producirse una excepción, el resto del código dentro del bloque try, a partir de la operación donde se produjo la excepción, no se ejecuta. Se realizarán entonces las operaciones declaradas en la cláusula catch: Se puede acceder a los campos definidos por la excepción catch (BancoPackage.Rechazada e) { System.err.println( Excepción Rechazada en abrircuenta : + e.causa); En las excepciones de sistema se puede comprobar en el miembro status si se completó la llamada o no. Esta variable puede tener uno de los siguientes valores definidos en org.omg.corba.completionstatus: CompletionStatus.COMPLETED_NO CompletionStatus.COMPLETED_YES CompletionStatus.COMPLETED_MAYBE Juan Pavón Mestras, UCM Clientes CORBA y Java 11 Manejo de excepciones Es posible propagar excepciones usando la cláusula throws Ejemplo: public void abriryregistrarcuenta(string nombre) throws BancoPackage.Rechazada { // no hace falta try/catch Cuenta c = abrircuenta ( Ciudadano Anónimo ); registrar( c ); y el llamante a ese método tratará la excepción: try { Cuenta c = abriryregistrarcuenta ( Ciudadano Anónimo ); catch (BancoPackage.Rechazada e) { // tratamiento de la excepción Juan Pavón Mestras, UCM Clientes CORBA y Java 12 6

7 El patrón callback La interacción cliente/servidor en CORBA es unidireccional. A veces puede ser conveniente que el servidor pueda invocar una operación en el cliente: Para notificar que ha sucedido algo Para devolver el resultado de una operación que el cliente había invocado (de esta manera el cliente no se quedó bloqueado esperando al servidor) Para implementar esta comunicación bidireccional debe definirse una interfaz (callback) que implementará el cliente. El servidor puede invocar las operaciones de esta interfaz de la manera usual. peticiones Cliente respuestas callbacks Servidor Juan Pavón Mestras, UCM Clientes CORBA y Java 13 El patrón callback Ejemplo Servicio de temporizadores Los clientes pueden solicitar ser avisados cuando haya transcurrido un tiempo determinado El servidor tiene una interfaz para crear temporizadores y suspenderlos Los clientes ofrecen una interfaz de callback para ser avisados del transcurso de un periodo de tiempo avisar(segs, alarma) Cliente alarma id tiempo Servidor Juan Pavón Mestras, UCM Clientes CORBA y Java 14 7

8 El patrón callback Especificación de las interfaces module Temporizador { typedef long identificador; interface Alarma; interface Servidor { identificador avisar (in long segundos, in Alarma cliente); void suspender (in identificador aviso); ; ; interface Alarma { oneway void tiempo(in identificador temporizador); ; Juan Pavón Mestras, UCM Clientes CORBA y Java 15 El patrón callback Para realizar el cliente hacen falta al menos dos clases: Una implementación de la interfaz de callback En la operación de notificación se define lo que hace el cliente La operación suele ser oneway (no bloqueante y no reconocida) Evita que el servidor tenga que esperar Reduce los riesgos de interbloqueos La clase principal del cliente: Inicializar el ORB Puede crear un objeto de implementación del callback cada vez que se vaya a solicitar la operación en el servidor. Cuando acabe el tratamiento de callback ese objeto se libera También puede darse el caso de tener un solo objeto callback para todas las invocaciones Conectar el objeto al ORB Juan Pavón Mestras, UCM Clientes CORBA y Java 16 8

9 El patrón callback package Temporizador; public class ClienteCallback { public static void main(string args[]) { try { // Inicializa el ORB org.omg.corba.orb orb = org.omg.corba.orb.init(args, props); // Crea un POA y obtiene la referencia al manager del rootpoa org.omg.portableserver.poa rootpoa = org.omg.portableserver.poahelper.narrow( orb.resolve_initial_references("rootpoa")); org.omg.portableserver.poamanager manager = rootpoa.the_poamanager(); // Crea el objeto callback ImplCallback notificacion = new ImplCallback(); Alarma callback = notificacion._this(orb); Juan Pavón Mestras, UCM Clientes CORBA y Java 17 El patrón callback // Consigue la referencia al objeto Servidor Servidor temporizadores = //... usando object_to_string o Servicio de Nombres // ya lo puede usar para pedir una notificacion de alarma int nroalarma = temporizadores.avisar(5, callback); // Se queda esperando peticiones de servicio System.out.println("Espera callbacks..."); manager.activate(); orb.run(); catch (Exception e) { e.printstacktrace(); System.exit(1); Juan Pavón Mestras, UCM Clientes CORBA y Java 18 9

10 El patrón callback Implementación de la interfaz de callback Como cualquier otra implementación de interfaz public class ImplAlarma extends Temporizador._AlarmaImplBase { public void tiempo(int temporizador) { System.out.println("Se produjo la alarma: + temporizador); Juan Pavón Mestras, UCM Clientes CORBA y Java 19 Resumen Programar en Java un cliente CORBA no es muy distinto de la programación Java sin CORBA Sólo se requiere conectarse al ORB al principio, con el método ORB.init() Hay que localizar al principio algunos objetos CORBA (a partir de los cuales se pueden encontrar otros de la misma manera que en Java), por ejemplo utilizando el servicio de Nombres Hay que considerar un nuevo tipo de excepciones: SystemException y las definidas por el usuario (pero el tratamiento de excepciones es igual que en Java) CORBA permite crear relaciones cliente/servidor bidireccionales utilizando el patrón de diseño callback Se puede tener así un modo de comunicación asíncrona (no bloqueante) entre cliente y servidor Ahorra la necesidad de múltiples hilos de ejecución Hay que estudiar si interesa o no declarar las operaciones de la interfaz de callback como oneway o no Juan Pavón Mestras, UCM Clientes CORBA y Java 20 10

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

3.9 Patrón Distributed callback

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

Más detalles

Arquitecturas Distribuidas Práctica 6. Introducción a CORBA

Arquitecturas Distribuidas Práctica 6. Introducción a CORBA Arquitecturas Distribuidas Práctica 6. Introducción a CORBA 1. Objetivos Entender el funcionamiento básico de la Llamada a Procedimiento Remoto (LPR). Desarrollar aplicaciones distribuidas sencillas basadas

Más detalles

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

Más detalles

Tema 4. Excepciones en Java

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

Más detalles

3.6 Patrón Factory y objetos persistentes. Políticas del POA asociadas

3.6 Patrón Factory y objetos persistentes. Políticas del POA asociadas 3.6 Patrón Factory y objetos persistentes. Políticas del POA asociadas Introducción Una factoría es un objeto CORBA que proporciona operaciones para crear otros objetos CORBA Juega un papel similar al

Más detalles

CORBA con Java IDL. Francisco Charte Ojeda ! " !# $ "$ % &'(!!! ) % #* %! " +,',' $! '(! $ - # " "! " '( %!.%# %%! +#! '(!! $!!#

CORBA con Java IDL. Francisco Charte Ojeda !  !# $ $ % &'(!!! ) % #* %!  +,',' $! '(! $ - #  !  '( %!.%# %%! +#! '(!! $!!# CORBA con Java IDL Francisco Charte Ojeda Sumario " Introducción # $ "$ % &'( ) % #* % " +,',' $ '( $ - # " " " '( %.%# %% +# '( $ # + $ '( '( ) " / % $ $ "'( El compilador idltojava ). * + #)$ '(". #)00"&'(

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

Test : Conteste exclusivamente en una HOJA DE LECTURA ÓPTICA, no olvidando marcar que su tipo de examen es 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:

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

Java Avanzado Facultad de Ingeniería. Escuela de computación.

Java Avanzado Facultad de Ingeniería. Escuela de computación. 2 Java Avanzado Facultad de Ingeniería. Escuela de computación. Java Avanzado. Guía 5 3 Introducción Este manual ha sido elaborado para orientar al estudiante de Java Avanzado en el desarrollo de sus prácticas

Más detalles

APELLIDOS:... NOMBRE:... GRUPO:... NÚMERO DE EXPEDIENTE:...

APELLIDOS:... NOMBRE:... GRUPO:... NÚMERO DE EXPEDIENTE:... Cuadernillo de examen ASIGNATURA Laboratorio de Sistemas Operativos Abiertos (Java) CÓDIGO 321 CONVOCATORIA Extraordinaria de Septiembre de 2003 PLAN DE ESTUDIOS 1996 ESPECIALIDAD Sistemas CURSO 2002/2003

Más detalles

INTRODUCCION A LA PROGRAMACION EN JAVA

INTRODUCCION A LA PROGRAMACION EN JAVA Departament d Arquitectura de Computadors INTRODUCCION A LA PROGRAMACION EN JAVA Índice Paso de parámetros en tiempo de ejecución Métodos static Atributos static Try-catch-finally Throws/throw 2 Paso de

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

INF 473 Desarrollo de Aplicaciones en Java

INF 473 Desarrollo de Aplicaciones en Java INF 473 Desarrollo de Aplicaciones en Java Sección V Otras características de Java Prof. José Miguel Rubio jose.rubio.l@ucv.cl jrubio@inf.ucv.cl PUCV Marzo 2008 1 Paquetes Conjunto de clases definidas

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

Tutorial de C# Delegados y Eventos. Por: Óscar López, M.Sc.

Tutorial de C# Delegados y Eventos. Por: Óscar López, M.Sc. Tutorial de C# Delegados y Eventos Por: Óscar López, M.Sc. olopez@uniandino.com.co DELEGADOS Delegados Son unos objetos que implícitamente extienden de System.Delegate y definen un tipo referencia soportado

Más detalles

Introducción a Java LSUB. 30 de enero de 2013 GSYC

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

Más detalles

Sockets. Los sockets son un mecanismo de comunicación entre procesos que se utiliza en Internet.

Sockets. Los sockets son un mecanismo de comunicación entre procesos que se utiliza en Internet. Sockets La biblioteca estándar de clases de Java nos proporciona todo lo que necesitamos para utilizar sockets en nuestras aplicaciones en el paquete java.net, por lo que tendremos que añadir la siguiente

Más detalles

Carlos Montenegro. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas

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

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

Tema 4: Corrección y Robustez en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle

Tema 4: Corrección y Robustez en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle Tema 4: Corrección y Robustez en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle Contenido Asertos en C++ Mecanismo de excepciones: Declaración de excepciones Lanzar excepciones

Más detalles

APLICACIONES DE INTERNET: SOAP

APLICACIONES DE INTERNET: SOAP Grupo de Arquitectura de Computadores, Comunicaciones y Sistemas Desarrollo de Aplicaciones Distribuidas AUTORES: Alejandro Calderón Mateos Javier García Blas David Expósito Singh Laura Prada Camacho Departamento

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

Tema 14: Excepciones

Tema 14: Excepciones Tema 14: Excepciones 0 Excepción Definición Las Excepciones son objetos que definen el estado de la aplicación cuando se producen situaciones anómalas. Son un mecanismo usado por muchos lenguajes de programación

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

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

Derechos de Acceso: COMPOSICION

Derechos de Acceso: COMPOSICION CLASES Una clase es un tipo definido por el usuario que describe los atributos y los métodos de los objetos que se crearan a partir de la misma. class nombre_clase cuerpo de la clase Derechos de Acceso:

Más detalles

OMG - CORBA. Object Management Group. Common Object Request Broker (CORBA) http://www.omg.org. http://www.corba.org

OMG - CORBA. Object Management Group. Common Object Request Broker (CORBA) http://www.omg.org. http://www.corba.org OMG - CORBA Object Management Group http://www.omg.org Common Object Request Broker (CORBA) http://www.corba.org OMG - CORBA Objetivo OMG proveer un marco de arquitectura común n para aplicaciones orientadas

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

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

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

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

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

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

Java: control de excepciones

Java: control de excepciones Java: control de excepciones Franco Guidi Polanco Escuela de Ingeniería Industrial Pontificia Universidad Católica de Valparaíso, Chile fguidi@ucv.cl Introducción v Una excepción es un evento que ocurre

Más detalles

GESTIÓN DE EXCEPCIONES EN JAVA. CAPTURA CON BLOQUES TRY CATCH Y FINALLY. EJEMPLOS RESUELTOS. (CU00927C)

GESTIÓN DE EXCEPCIONES EN JAVA. CAPTURA CON BLOQUES TRY CATCH Y FINALLY. EJEMPLOS RESUELTOS. (CU00927C) APRENDERAPROGRAMAR.COM GESTIÓN DE EXCEPCIONES EN JAVA. CAPTURA CON BLOQUES TRY CATCH Y FINALLY. EJEMPLOS RESUELTOS. (CU00927C) Sección: Cursos Categoría: Lenguaje de programación Java nivel avanzado I

Más detalles

Estructura de las Aplicaciones Orientadas a Objetos El patrón Modelo-Vista-Controlador (MVC)

Estructura de las Aplicaciones Orientadas a Objetos El patrón Modelo-Vista-Controlador (MVC) Estructura de las Aplicaciones Orientadas a Objetos El patrón Modelo-Vista-Controlador (MVC) Programación Orientada a Objetos Facultad de Informática Dep. Ingeniería del Software e Inteligencia Artificial

Más detalles

UNIVERSIDADE DA CORUÑA Departamento de Tecnoloxías da Información e as Comunicacións LABORATORIO DE RC: TUTORIAL DE SOCKETS EN JAVA

UNIVERSIDADE DA CORUÑA Departamento de Tecnoloxías da Información e as Comunicacións LABORATORIO DE RC: TUTORIAL DE SOCKETS EN JAVA UNIVERSIDADE DA CORUÑA Departamento de Tecnoloxías da Información e as Comunicacións LABORATORIO DE RC: TUTORIAL DE SOCKETS EN JAVA Índice 1. Presentación...3 2. Conceptos básicos...4 2.1. TCP...4 2.2.

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

INTRODUCCIÓN AL PARADIGMA DE LA PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA

INTRODUCCIÓN AL PARADIGMA DE LA PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA Objetivo: Identificar los concentos principales en java POO, que es una clase, un objeto así como sus características principales abstracción, modularidad, encapsulamiento, herencia, polimorfismo. INTRODUCCIÓN

Más detalles

TEMA 5: Control de la Concurrencia en Java (API Estándar)

TEMA 5: Control de la Concurrencia en Java (API Estándar) TEMA 5: Control de la Concurrencia en Java (API Estándar) CONTENIDO Exclusión Mutua con código synchronized. Exclusión Mutua con métodos synchronized. Protocolos de Control de la Exclusión Mutua. Interbloqueos

Más detalles

Anexo. Control de errores

Anexo. Control de errores Anexo. Control de errores Tipos de errores Los errores en un programa o algoritmo se pueden clasificar de la siguiente manera Errores de compilación Los errores de compilación no permiten la ejecución

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

Arquitecturas Distribuidas en Redes Heterogéneas. Prácticas en CORBA

Arquitecturas Distribuidas en Redes Heterogéneas. Prácticas en CORBA Arquitecturas Distribuidas en Redes Heterogéneas Prácticas en CORBA Curso 2010-2011 Rev-20101028 1. Introducción 1.1. Qué es CORBA? CORBA (Common Object Request Broker Architecture) es un estándar que

Más detalles

Tutorial 1: Desarrollo de un plugin

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

Más detalles

Tema 3.1: Introducción a Servicios Web

Tema 3.1: Introducción a Servicios Web Tema 3.1: Introducción a Servicios Web Servicios Web (1) La Web proporciona un mecanismo de transporte universal, eficiente, robusto, escalable y probado tanto en aplicaciones inter-organización como intraorganización.

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

PROGRAMACIÓN EN C#.NET Programación Orientada a Objetos en C# Ing. Bruno López Takeyas

PROGRAMACIÓN EN C#.NET Programación Orientada a Objetos en C# Ing. Bruno López Takeyas PROGRAMACIÓN EN C#.NET Programación Orientada a Objetos en C# Ing. Bruno López Takeyas Instituto Tecnológico de Nuevo Laredo 1 Qué es UML? UML = Unified Modeling Language Un lenguaje de propósito general

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

Procesamiento de documentos XML

Procesamiento de documentos XML Procesamiento de documentos XML Documentación Electrónica Soto Montalvo Contenido Introducción Document Object Model Simple API for XML DOM vs. SAX Cómo podemos manipular los documentos XML? SAX (Simple

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

Ejemplo de GUI con Swing

Ejemplo de GUI con Swing Ejemplo de GUI con Swing Programación Orientada a Objetos Facultad de Informática Dep. Ingeniería del Software e Inteligencia Artificial Universidad Complutense Madrid Una aplicación Swing sencilla El

Más detalles

Diseño Basado en Componentes. Curso 2008 / 09

Diseño Basado en Componentes. Curso 2008 / 09 Beneficios de OOP Diseño Basado en Componentes Ingeniería Informática Universidad Carlos III de Madrid Programación Orientada a Objetos (OOP) en VB.NET Diseño Basado en Componentes. Curso Conceptos orientados

Más detalles

Excepciones. Gonzalo Méndez - Dpto. Ingeniería de Software e Inteligencia Artificial. Excepciones

Excepciones. Gonzalo Méndez - Dpto. Ingeniería de Software e Inteligencia Artificial. Excepciones Programación Orientada a Objetos en Java Curso 2006-2007 Tema 6 Excepciones Gonzalo Méndez Pozo Dpto. de Ingeniería de Software e Inteligencia Artificial Universidad Complutense de Madrid Qué son? Excepciones

Más detalles

Normalmente, los programas son ejecutados de forma secuencial. Único flujo de control

Normalmente, los programas son ejecutados de forma secuencial. Único flujo de control Hilos BUAP Introducción Normalmente, los programas son ejecutados de forma secuencial Único flujo de control Un programa con un único flujo de control, ejecuta sólo una tarea (hilo) Dr. Ivan Olmos 2 Introducción

Más detalles

Estructuras de Datos Declaraciones Tipos de Datos

Estructuras de Datos Declaraciones Tipos de Datos Departamento de Informática Universidad Técnica Federico Santa María Estructuras de Datos Declaraciones Tipos de Datos Temas: 2-3-4 IWI-131, paralelo 01 Profesor: Teddy Alfaro O. Lenguaje de Programación

Más detalles

RMI Remote Method Invocation

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

Más detalles

Programación Orientada a Objetos con Java. Elementos Básicos del Lenguaje Java. Relación entre clases. Ejemplo de Clase: Punto !

Programación Orientada a Objetos con Java. Elementos Básicos del Lenguaje Java. Relación entre clases. Ejemplo de Clase: Punto ! Programación Orientada a Objetos con Java Rafael Rivera López Elementos Básicos del Lenguaje Java II Ingeniería en Sistemas Computacionales Agosto-Diciembre de 2004 Veracruz, Ver. Relación entre clases

Más detalles

Programación Orientada a Objetos (POO)

Programación Orientada a Objetos (POO) Programación Orientada a Objetos (POO) Introducción La programación orientada a objetos es una técnica de programación en la cual expresamos el código en términos relacionados a como vemos las cosas en

Más detalles

LABORATORIO DE RC PRÁCTICA 2: IMPLEMENTACIÓN DE UN CLIENTE Y SERVIDOR DE

LABORATORIO DE RC PRÁCTICA 2: IMPLEMENTACIÓN DE UN CLIENTE Y SERVIDOR DE UNIVERSIDADE DA CORUÑA Departamento de Tecnoloxías da Información e as Comunicacións LABORATORIO DE RC PRÁCTICA 1: IMPLEMENTACIÓN DE UN CLIENTE Y SERVIDOR DE ECO UDP PRÁCTICA 2: IMPLEMENTACIÓN DE UN CLIENTE

Más detalles

Componentes Distribuidos EJBs. Ing. Cesar Julio Bustacara Medina

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

Más detalles

ATLAS MANUAL DE INTEGRACIÓN Cliente del Servicio de SMS

ATLAS MANUAL DE INTEGRACIÓN Cliente del Servicio de SMS ATLAS MANUAL DE INTEGRACIÓN Cliente del Servicio de SMS Versión 1.0 Arquitectura de Software Hoja de Control Título Documento de Referencia Responsable Servicio de SMS Cliente NORMATIVA ATLAS Arquitectura

Más detalles

Multitarea en Java. Rafa Caballero - UCM

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

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

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

Programación Concurrente en Java

Programación Concurrente en Java Hebras y monitores Departamento de Sistemas Informáticos y Programación Universidad Complutense de Madrid 21 de marzo de 2006 Threads Extendiendo la clase java.lang.thread. public class PrThread extends

Más detalles

J2SE 6. 2007, Grupo Salenda, S.L.

J2SE 6. 2007, Grupo Salenda, S.L. J2SE 6 Novedades 2007, Grupo Salenda, S.L. Introducción Publicada en Noviembre de 2006. Primera versión de Java disponible durante su desarrollo. Han colaborado: 160 compañías. 330 desarrolladores de la

Más detalles

Agradecimientos. Nota de los autores. 1 Problemas, algoritmos y programas 1

Agradecimientos. Nota de los autores. 1 Problemas, algoritmos y programas 1 Prologo Agradecimientos Nota de los autores Índice general I III V VII 1 Problemas, algoritmos y programas 1 1.1 Programas y la actividad de la programación.................... 4 1.2 Lenguajes y modelos

Más detalles

POO en lenguajes compilados de tipos estáticos (Java y C#)

POO en lenguajes compilados de tipos estáticos (Java y C#) POO en lenguajes compilados de tipos estáticos (Java y C#) Carlos Fontela cfontela@fi.uba.ar Temario Modelo de referencias, creación y destrucción de objetos (introducción) Paquetes y grupos de clases

Más detalles

Las clases Java Socket y ServerSocket

Las clases Java Socket y ServerSocket Las clases Java Socket y ServerSocket Lenguajes y Herramientas de Programación Universidad de La Laguna Programa de Doctorado de Física e Informática Escuela Técnica Superior Superior de Ingeniería Informática

Más detalles

Diagramas de secuencia

Diagramas de secuencia Facultad de Ingeniería Departamento de Ingeniería de Sistemas y Computación Diagramas de secuencia Interacciones básicas 1 Para qué sirven los diagramas de secuencia? 2 Para qué sirven los diagramas de

Más detalles

Clase adicional 2. Estructuras básicas de control. Temas

Clase adicional 2. Estructuras básicas de control. Temas Clase adicional 2 Temas Estructuras de control Sentencia condicional Iteración Clases Definir una clase Crear una instancia de una clase Campos estáticos Problemas de la clase adicional Problema de diseño

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

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

Introducción a Java (II) Dr. (c) Noé Alejandro Castro Sánchez

Introducción a Java (II) Dr. (c) Noé Alejandro Castro Sánchez Introducción a Java (II) Dr. (c) Noé Alejandro Castro Sánchez Sintaxis de Java Sintaxis Define las reglas que determinar el uso de palabras clave, operadores y variables para construir y evaluar expresiones.

Más detalles

En este capitulo se estudiarán los conceptos relacionados a métodos, como lo son sobrecarga, métodos estáticos.

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

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

Tema: Introducción al IDE de Microsoft Visual C#.

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

Más detalles

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

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

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

2.5.1. Procesamiento de documentos XML.

2.5.1. Procesamiento de documentos XML. 2.5.1. Procesamiento de documentos XML. Un analizador o parser XML es una herramienta encargada de leer documentos XML [17], poder acceder a sus elementos y comprobar si el documento es sintácticamente

Más detalles

Taller de Programación I. Tema 06: Orientación al Objeto en Java (parte 2)

Taller de Programación I. Tema 06: Orientación al Objeto en Java (parte 2) INACAP Universidad Tecnológica de Chile Sede Santiago Centro Taller de Programación I Curso Java J2SE Tema 06: Orientación al Objeto en Java (parte 2) Ing. Manuel López Ramos (versión 1) Parte I Trabajo

Más detalles

Bibliografía (Java) Java: Introducción a Java

Bibliografía (Java) Java: Introducción a Java 1 2 De a Contenido Introducción a Variables, tipos de datos y operadores Sentencias de control Subprogramas Tablas y matrices Excepciones Paquetes 3 4 Bibliografía () : Introducción a L. Lemay, C. Perkins.

Más detalles

UNIVERSIDAD AUTÓNOMA DE CHIAPAS LICENCIATURA EN SISTEMAS COMPUTACIONALES

UNIVERSIDAD AUTÓNOMA DE CHIAPAS LICENCIATURA EN SISTEMAS COMPUTACIONALES UNIVERSIDAD AUTÓNOMA DE CHIAPAS LICENCIATURA EN SISTEMAS COMPUTACIONALES Área de formación: Disciplinaria Unidad académica: Programación Orientada a Objetos Ubicación: Cuarto Semestre Clave: 2087 Horas

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

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

Más detalles

Tema: Clases y Objetos en C#. Parte II.

Tema: Clases y Objetos en C#. Parte II. Programación II. Guía No. 5 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Clases y Objetos en C#. Parte II. Objetivos Implementar clases, objetos, propiedades, métodos y

Más detalles

Destrucción de objetos (I)

Destrucción de objetos (I) Clases y Objetos (3) Presentación basada en: 1. Como Programar en Java. Deitel y Deitel. Ed. Prentice-Hall. 1988 2. Java 2., Curso de programación. Fco. Javier Ceballos. Ed. Alfoomega&RA-MA, 2003. 3. Apuntes

Más detalles

Ejercicio 4. EJB Sesión - Sistema SGA. Java EE. Ejercicio 4. EJB Sesión Sistema SGA. Curso de Java EE

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

Más detalles

James Gosling, creador de Java

James Gosling, creador de Java Lo que Java intenta hacer y lo hace con bastante éxito, es abarcar dominios diferentes. De esa forma le permite efectuar trabajos para de aplicaciones del lado del servidor, del lado del cliente, para

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

Proyecto de ISIII. Pruebas Extra. Pruebas de Caja Blanca

Proyecto de ISIII. Pruebas Extra. Pruebas de Caja Blanca Proyecto de ISIII. Pruebas Extra Pruebas de Caja Blanca InfoMedia 27 de mayo de 2009 Índice Historial... 3 División del método en nodos... 4 Diagrama de Flujo de Control del método... 6 Diseño y realización

Más detalles

PROGRAMACION ORIENTADA A OBJETOS EN C++

PROGRAMACION ORIENTADA A OBJETOS EN C++ PROGRAMACION ORIENTADA A OBJETOS EN C++ 1- INTRODUCCIÓN El lenguaje C++ representa el resultado de los esfuerzos realizados para proporcionar las ventajas de la programación Orientada a Objetos a un lenguaje

Más detalles

Universidad Salesiana de Bolivia

Universidad Salesiana de Bolivia Universidad Salesiana de Bolivia Ingeniería de Sistemas I DATOS DE IDENTIFICACIÓN PLAN DE DISCIPLINA GESTIÓN II - 2015 INSTITUCIÓN UNIVERSITARIA: Universidad Salesiana de Bolivia RECTOR: Dr. Rvdo. P. Thelian

Más detalles

Introduciendo datos desde el

Introduciendo datos desde el Introduciendo datos desde el teclado Pedro Corcuera Dpto. Matemática Aplicada y Ciencias de la Computación Universidad de Cantabria corcuerp@unican.es Objetivos Crear programas interactivos que lean datos

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

Sistemas Distribuidos: Migración de Procesos

Sistemas Distribuidos: Migración de Procesos Sistemas Distribuidos: Migración de Procesos Yudith Cardinale Universidad Central de Venezuela Facultad de Ciencias Postgrado en Computación Octubre 2013 Febrero 2014 Objetivos Entender la importancia

Más detalles