UNIVERSIDAD AUTONOMA METROPOLITANA UNIDAD IZTAPALAPA

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

Download "UNIVERSIDAD AUTONOMA METROPOLITANA UNIDAD IZTAPALAPA"

Transcripción

1 UNIVERSIDAD AUTONOMA METROPOLITANA UNIDAD IZTAPALAPA División de Ciencias Básicas e Ingeniería Departamento de Ingeniería Eléctrica Licenciatura en Computación PROPUESTA DE UNA PLATAFORMA DE ESTUDIO DE LA ARQUITECTURA CORBA UTILIZANDO JAVA Reporte de Proyecto Terminal Alumno: Christofer Bernardo Estebanez Ruiz Matrícula: Asesor: Dra. Graciela Román Alonso

2 Índice. I Objetivos... 3 II Introducción... 3 III CORBA...5 III.I Arquitectura...5 III.II Lenguaje Java-IDL...6 IV Propuestas de ejercicios básicos usando CORBA...7 IV.I Aplicación de acceso local... 7 IV.II Aplicación de acceso remoto V Conclusiones VI Referencias VII Anexo

3 I Objetivos. 1. Estudiar la arquitectura de manejo de objetos distribuidos CORBA. 2. Construir una plataforma basada en Java, que permita el manejo mediante CORBA. II Introducción. Actualmente los sistemas distribuidos basados en objetos son una tecnología que es cada vez más utilizada en el desarrollo de aplicaciones. El tener las bases para construir aplicaciones que usan los recursos localizados en diversas computadoras abre el panorama para abordar diferentes problemáticas de la vida diaria. Modelos orientados a objetos. En un modelo orientado a objetos (OO), una aplicación distribuida es considerada como una colección de objetos autónomos especializados en diferentes funcionalidades, que existen independientemente en un sistema distribuido. Diversos objetos coordinan sus actividades y usan sus funcionalidades mediante rutinas explícitas de comunicación. Objetos comunicantes. Un objeto reúne atributos y métodos y cada uno de ellos tiene un estado interno, descrito por los valores de sus atributos. Un objeto puede ser accesado mediante la llamada a sus métodos (mensaje), los cuales pueden representar servicios para clientes o bien para modificar el estado interno del objeto. El modelo OO seguido se usa en el diseño de aplicaciones de granularidad gruesa de gran escala. Objetos distribuidos. Los objetos distribuidos son un modelo para la realización de la arquitectura Cliente/Servidor. Los objetos distribuidos siguen el modelo de memoria distribuida, permiten el paralelismo de tareas y una programación MPMD. 3

4 Cada interacción entre objetos sigue el patrón Cliente/Servidor. Sin embargo, la estructura de los sistemas de objetos distribuidos es peer-to-peer: los papeles de Cliente y Servidor pueden cambiar en el tiempo. Objetos = Unidades de distribución. Los objetos pueden ser de granularidad muy gruesa (productos vendidos por una empresa). Los objetos poderosos de granularidad gruesa son comúnmente conocidos como componentes. Objeto. Término de lenguaje de programación. Enfatiza el encapsulamiento de datos y código. Se usa frecuentemente para entidades en un mismo programa. Componente Término de ingeniería de software. Enfatiza la oportunidad de agrupar entidades en aplicaciones de gran escala. Existe independientemente, no existe un solo programa. Arquitectura de objetos distribuidos. Las aplicaciones a gran escala generalmente de organizan como sistemas de software abiertos: los objetos pueden ser añadidos, modificados o retirados mientras el resto del sistema sigue corriendo. Sistemas como CORBA y DCOM proveen un conjunto de facilidades para el desarrollo de aplicaciones de gran escala (frameworks, dessign patterns, business objects, beans, etc.) 4

5 III CORBA III.I Arquitectura CORBA. CORBA (Common Object Request Broker Architecture) es un estándar establecido por la OMG (Object Management Group: CORBA se diseñó para funcionar sobre ambientes heterogéneos y permite la interoperabilidad entre programas escritos en diferentes lenguajes de programación y entre programas que corren en diferentes máquinas. Existe una clara separación entre interfaz e implementación de servicio. Qué es? CORBA es sólo una especificación para crear y usar objetos distribuidos. Qué no es? CORBA no es un lenguaje de programación. Un sistema basado en CORBA es una colección de objetos que aislan a los solicitantes de servicios (clientes) de los provedores de servicio (servidores) por una interfaz de encapsulamiento bien definida. Los objetos de CORBA pueden correr en cualquier plataforma. Los objetos de CORBA pueden ser localizados en cualquier parte de la red. Los objetos de CORBA pueden ser escritos en cualquier lenguaje que tenga mapeo IDL. La Object Management Architecture (OMA) de OMG define varios servicios de alto nivel para el cómputo distribuido orientado a objetos. El núcleo de OMA es el Object Request Broker (ORB) que es un mecanismo que provee transparencia en la localización de objetos, comunicación y activación. Cualquier programa existente puede ser transformado a un objeto CORBA al describir su interfaz mediante un lenguaje de definición de interfaces (IDL). Transparencia de localización. El propósito del ORB es mediar la comunicación entre los objetos Cliente y Servidor de manera transparente. Un objeto tiene asociado un identificador único (o referencia única de objeto), asignado automática mente por el sistema. Un Cliente no conoce la localización física del Servidor por lo que envía la petición al ORB el cual busca la localización del Servidor y envía la petición del Cliente. 5

6 CORBA (Common Object Request Broker Architecture). Servidor Cliente Operación Resultad o Implementación de objeto DII Stubs Interfaz ORB Interfaz ORB Skeletons DSI Adaptador de objeto Deposito de implement. III.II Lenguaje Java-IDL. Interface description language (también lenguaje de descripción de interfaces). Es un lenguaje de informática utilizado para describir la interfaz de componentes software. Describe una interfaz en un lenguaje neutral, lo cual permite la comunicación entre componentes de software desarrollados en diferentes lenguajes como por ejemplo, entre las componentes escritas Java. Son utilizadas con frecuencia en el software de las llamadas a procedimiento remoto (RPC), lo que permite a los sistemas de computadoras utilizar lenguajes y sistemas operativos diferentes. IDL ofrece un puente entre dos sistemas diferentes. El compilador IDL usa el mapeo del lenguaje IDL-a-Java para convertir las definiciones de interfaz IDL a las correspondientes interfaces, clases y métodos de Java, los cuales pueden ser usados para implementar el código cliente-servidor. 6

7 IV Propuestas de ejercicios básicos usando CORBA: Hola mundo con tecnología Java- IDL. IV.I Aplicación de acceso local. Antes de empezar: Para Windows: Se debe contar previamente con la versión 1.4 de J2SE (Java 2 Standard Edition) que contiene la Interfaz de Programación de Aplicación (API por sus siglas en inglés) y el Intermediario de Petición de Objetos (ORB por sus siglas en inglés) los cuales son necesarios para habilitar la interacción de objetos distribuidos basados en CORBA, así como el compilador IDL. Para Linux: Para poder usar los comandos de conexión remota (orbd) basta con instalar la máquina virtual de Java en el sistema operativo la cual ya cuenta con el compilador IDL y con el protocolo correspondiente que permite habilitar la interacción de objetos distribuidos. Una vez visto esto procederemos a la creación y ejecución del programa. 7

8 Escribiendo el archivo hello.idl. 1. Crear un nuevo directorio llamado Hello para esta aplicación. 2. En un archivo de texto escribir el código: module HelloApp{ interface Hello{ string sayhello(); oneway void shutdown(); ; ; 3. Guardar el archivo como Hello.idl. Entendiendo el archivo idl. El idl para nuestro hola mundo es extremadamente sencillo ya que su interfaz tiene solo dos operaciones. Solo se necesitan tres pasos a realizar: 1. Declaración del modulo CORBA IDL. Un módulo CORBA es un nombre-espacio que actúa como contendor para las interfaces y declaraciones relacionadas. Se asemeja a un paquete Java. Cada declaración de módulo en un archivo IDL es mapeado a un paquete Java. La declaración del módulo luce así: module HelloApp{ // Resto de las líneas del código ; Cuando se compila el IDL, la declaración del módulo generará una declaración de paquete en el código de Java. 2. Declaración de la interfaz. Así como las interfaces Java, las interfaces CORBA declaran la relación que un objeto tiene con otros objetos. Cada declaración de interfaz en IDL mapea la declaración de interfaz de Java. 8

9 Para nuestro archivo Hello.idl, la declaración de interfaz luce así: module HelloApp{ interface Hello{ ; ; Cuando se compila el IDL, esta declaración generará una declaración de interfaz en el código de Java. 3. Declarando las operaciones. Las operaciones de CORBA son el comportamiento que el servidor promete cumplir por los clientes que lo invoquen. Cada declaración de operación en IDL genera una declaración de método correspondiente en el que es generado en la interfaz Java. En nuestro archivohello.idl, la declaración de operaciones luce así: module HelloApp{ interface Hello{ string sayhello(); oneway void shutdown(); ; ; La definición de interfaz para nuestra aplicación hola mundo ahora está completa. Mapeo del archivo Hello.idl a Java. La herramienta idlj lee los archivos IDL y crea los archivos Java requeridos. El compilador idlj genera por defecto solo las obligaciones del lado del cliente. Si se necesitan las obligaciones del lado del cliente y los esqueletos del lado del servidor (como ocurre en este caso), debes usar la opción fall cuando ejecutes el compilador idlj. Dentro del directorio de ubicación del archivo Hello.idl escribir en la línea de comandos: idlj -fall Hello.idl Esto crea un directorio llamado HelloApp que contiene seis archivos *.java. 9

10 Entendiendo la salida del compilador idlj. El compilador idlj genera un cierto número de archivos. Este número depende de las opciones seleccionadas cuando el archivo IDL es compilado. Los archivos generados proveen una funcionalidad estándar, así que pueden ser ignorados hasta el momento en que hay que desplegar y ejecuta el programa. Los archivos generados son: HelloPOA.java. Esta clase abstracta es el esqueleto del servidor de conexión base la cual provee al servidor de la funcionalidad CORBA básica. _HelloStub.java. Esta clase es el talón del cliente, el cual provee al cliente de la funcionalidad CORBA. Hello.java. Esta interfaz contiene la versión Java de nuestra interfaz IDL. HelloHelper.java. Esta clase provee funcionalidad auxiliar, en particular el método narrow() requerido para convertir las referencias de objeto CORBA a los tipos apropiados. HelloHolder.java. Esta clase final posee un miembro de instancia pública del tipo Hello. En el momento en que el tipo IDL es un parámetro out o inout, la clase Poseedor es usada. HelloOperations.java. Esta interfaz contiene los métodos sayhello() y shutdown(). El mapeo IDL-a-Java pone todas las operaciones definidas en la interfaz en este archivo. Cuando se escribe la interfaz IDL, se hace toda la programación requerida para generar todos estos archivos para la aplicación distribuida. 10

11 Desarrollo del servidor. Creación de HelloServer.java. 1. Abrir un editor de texto y crear un archivo llamado HelloServer.java dentro del directorio Hello. 2. Escribe el siguiente código en el archivo: import HelloApp.*; import org.omg.cosnaming.*; import org.omg.cosnaming.namingcontextpackage.*; import org.omg.corba.*; import org.omg.portableserver.*; import org.omg.portableserver.poa; import java.util.properties; class HelloImpl extends HelloPOA{ private ORB orb; public void setorb(orb orb_val){ orb = orb_val; public String sayhello(){ return "\nhello world!!\n"; public void shutdown(){ orb.shutdown(false); public class HelloServer{ public static void main(string args[]) { try{ ORB orb = ORB.init(args, null); POA rootpoa = POAHelper.narrow(orb.resolve_initial_references("RootPOA")); rootpoa.the_poamanager().activate(); HelloImpl helloimpl = new HelloImpl(); helloimpl.setorb(orb); org.omg.corba.object ref = rootpoa.servant_to_reference(helloimpl); Hello href = HelloHelper.narrow(ref); org.omg.corba.object objref = orb.resolve_initial_references("nameservice"); NamingContextExt ncref = NamingContextExtHelper.narrow(objRef); String name = "Hello"; 11

12 NameComponent path[] = ncref.to_name( name ); ncref.rebind(path, href); System.out.println("HelloServer ready and waiting..."); orb.run(); catch (Exception e) { System.err.println("ERROR: " + e); e.printstacktrace(system.out); System.out.println("HelloServer Exiting..."); 3. Guarda y cierra HelloServer.java. Entendiendo HelloServer.java. La estructura del programa servidor CORBA es el mismo que el de la mayoría de las aplicaciones Java: se importan paquetes de librerías requeridos, se declara la clase del servidor, se define main() y se manejan las excepciones. Importando los paquetes requeridos: import HelloApp.*; import org.omg.cosnaming.*; import org.omg.cosnaming.namingcontextpackage.*; import org.omg.corba.*; import org.omg.portableserver.*; import org.omg.portableserver.poa; Definiendo la clase servidor: En este ejemplo estamos definiendo la clase para el objeto servidor dentro de HelloServer.java pero fuera de la clase HelloServer. class HelloImpl extends HelloPOA{ // Los métodos sayhello() y shutdown() van aquí El servidor es una subclase de HelloPOA así que hereda la funcionalidad CORBA general generada por el compilador. Ahora, creamos una variable privada orb que es usada en el método setorb(orb). Este en un método privado definido por la aplicación desarrolladora para que el valor ORB pueda ser fijado con el servidor. Este valor ORB es usado para invocar el método shutdown() en respuesta a la invocación del método shutdown() del cliente. 12

13 private ORB orb; public void setorb(orb orb_val){ orb = orb_val; Después declaramos e implementamos el método sayhello() requerido: public String sayhello(){ return "\nhello world!!\n"; Por último, implementamos el método shutdown() de forma similar: public void shutdown(){ orb.shutdown(false); Declarando la clase del servidor: public class HelloServer{ // El método mai() va aquí Definiendo el método main(): Cada aplicación de Java necesita de un método main() y es declarado dentro de la clase HellServer. public static void main(string args[]{ // Aquí va el código try-catch Manejando las excepciones del sistema CORBA. Como todos los programa CORBA pueden arrojar excepciones de sistema CORBA en tiempo de ejecución, toda la funcionalidad de main() es colocada dentro de un bloque trycatch. Los programa CORBA arrojan excepciones en tiempo de ejecución cuando ocurre un problema durante algún proceso envuelto en una invocación. El manejador de excepciones simplemente imprime la excepción y el rastro de su pila en una salida estándar para poder ver que fue lo que ocurrió mal. El bloque try-catch se coloca dentro de main() como se muestra: try{ // El resto del código HelloServer va aquí. catch(exception e){ System.err.println("ERROR: " + e); e.printstacktrace(system.out); 13

14 Compilando el servidor hola mundo. Ahora ya podemos compilar HelloServer.java para corregir cualquier error antes de continuar. 1. Posicionarse en el directorio Hello. 2. Ejecutar el compilador Java sobre HelloServer.java: Javac HelloServer.java HelloApp/*.java 3. Corregir los errores y recompilar si es necesario. 4. Se generan los archivos HelloServer.class y HelloImp.class en el directorio Hello. 14

15 Desarrollo del cliente. Creación de HelloClient.java. 1. Abrir un editor de texto y crear un archivo llamado HelloClient.java dentro del directorio Hello. 2. Escribe el siguiente código en el archivo: import HelloApp.*; import org.omg.cosnaming.*; import org.omg.cosnaming.namingcontextpackage.*; import org.omg.corba.*; public class HelloClient{ static Hello helloimpl; public static void main(string args[]){ try{ ORB orb = ORB.init(args, null); org.omg.corba.object objref = orb.resolve_initial_references("nameservice"); NamingContextExt ncref = NamingContextExtHelper.narrow(objRef); String name = "Hello"; helloimpl = HelloHelper.narrow(ncRef.resolve_str(name)); System.out.println("Obtained a handle on server object: " + helloimpl); System.out.println(helloImpl.sayHello()); helloimpl.shutdown(); catch (Exception e) { System.out.println("ERROR : " + e) ; e.printstacktrace(system.out); 3. Guarda y cierra HelloServer.java. Entendiendo HelloClient.java. El caparazón básico de un cliente CORBA es el mismo que el de muchas de las aplicaciones Java: se importan paquetes de librerías requeridos, se declara la clase del servidor, se define main() y se manejan las excepciones. 15

16 Importando los paquetes requeridos: import HelloApp.*; import org.omg.cosnaming.*; import org.omg.cosnaming.namingcontextpackage.*; import org.omg.corba.*; Definiendo la clase cliente: Lo siguiente es declarar la clase del cliente: public class HelloClient{ // El método main() va aquí Creando el objeto ORB. Un cliente CORBA necesita un objeto ORB local para desempeñar su cálculo de referencias y su trabajo IIOP. La variable ORB es declarada e inicializada dentro del bloque try-catch: ORB orb = ORB.init(args,null); La llamada al método init() de CORBA pasa los argumentos de la línea de comando en la aplicación, permitiendo fijar ciertas propiedades en tiempo de ejecución. Buscando el servidor Hello. Ahora que la aplicación tiene un ORB, puede pedirle que localice el servicio que necesita, en este caso el servidor Hello. Para ello, nuestra aplicación cliente usará el servicio de nombramiento COS. Obteniendo el contexto de nombramiento inicial. El primer paso para usar el servicio de nombramiento es obtener el contexto de nombramiento inicial: org.omg.corba.object objref = orb.resolve_initial_references("nameservice"); Estrechando la referencia del objeto. Como en todas las referencias a objeto CORBA, objref es un objeto CORBA genérico. Para poder usarlo como un objeto NamingContextExt, se debe estrechar al tipo apropiado. NamingContextExt ncref = NamingContextExtHelper.narrow(objRef); 16

17 Aquí vemos el uso de una clase de ayuda generada por idlj, similar a la función HelloHelper. Resolver la referencia a objeto en el nombramiento. Para publicar una referencia en el servicio de nombrado hacia el objeto Hello que implementa la interfaz Hello, necesitas primero una cadena identificadora para el objeto Hello: String name = "Hello"; Finalmente pasamos name al método resolve_str() del servicio de nombrado para obtener una referencia objeto para el servidorhello y estrecharlo al objeto Hello: helloimpl = HelloHelper.narrow(ncRef.resolve-str(name)); System.out.println("Obtained a handle on server object: " + helloimpl); Aquí se ve a la clase de ayuda HelloHelper trabajar. El método resolve_str() regresa un objeto CORBA genérico. Por lo tanto, inmediatamente se estrecha el objeto Hello, el cual es la referencia objeto que se necesita para realizar el resto del trabajo. Invocando la operación sayhello(). Las invocaciones CORBA son una llamada a método sobre un objeto local.finalmente, imprimimos los resultados de la invocación a una salida estándar y se apaga el ORB: System.out.println(helloImpl.sayHello()); helloimpl.shutdown(); Compilando el servidor hola mundo. Ahora ya podemos compilar HelloClient.java para corregir cualquier error antes de continuar. 1. Posicionarse en el directorio Hello. 2. Ejecutar el compilador Java sobre HelloClient.java: Javac HelloClient.java HelloApp/*.java 3. Corregir los errores y recompilar si es necesario. 4. Se genera el archivo HelloClient.class en el directorio Hello. 17

18 Ejecución de la aplicación hola mundo. 1. Iniciar el orbd. Desde terminal Linux: rbd -ORBInitialPort ORBInitialHost localhost& Desde terminal Windows: start orbd -ORBInitialPort ORBInitialHost localhost NOTA: 1050 es el puerto en el cual se quiere ejecutar el servidor. Para poder ejecutar la aplicación en un puerto en un puerto menor a 1024 se debe ser el administrador del sistema, por eso es que se ejecuta en un puerto mayor a Iniciar el servidor Hello: Desde terminal Linux: java HelloServer -ORBInitialPort ORBInitialHost localhost& Desde terminal Windows: start java HelloServer -ORBInitialPort ORBInitialHost localhost 3. Ejecutar la aplicación cliente java HelloClient -ORBInitialPort ORBInitialHost localhost El cliente imprime la cadena desde el servidor en la línea de comandos. Hello world!! 18

19 IV.II Aplicación de acceso remoto. Cliente Implementación del objeto Cliente Implementación del objeto IDL IDL IDL IDL ORB ORB RED Para poder ejecutar la aplicación hola mundo en dos máquinas se debe colocar al cliente, los esbozos y los esqueletos en la máquina del cliente y el servidor en la máquina del servidor. 1. Crear (como se muestro previamente) y compilar el archivo Hello.idl en la máquina del cliente: idlj -fall Hello.idl 2. Crear el archivo HelloClient.java en la máquina del cliente. Compilar los archivos java, incluyendo los esbozos y los esqueletos (que se encuentran en el directorio HelloApp): javac *.java HellApp/*.java 3. Crear el archivo HelloServer.java en la máquina del servidor. Compila los archivos *.java. javac *.java 4. Inicia el demonio intermediario de petición de objets Java (orbd por sus siglas en ingles), el cual incluye el servicio de nombramiento. 19

20 Para hacer esto en Linux: orbd -ORBInitialPort ORBInitialHost direcciónip& Para hacer esto en Windows: start orbd -ORBInitialPort ORBInitialHost direcciónip Los argumentos -ORBInitialPort y -ORBInitialHost son obligatorios para la línea de comando orbd. En este ejemplo se usa el puerto NOTA: La dirección IP del servidor fue generada por medio de un simulador de redes virtuales, Hamachi en este caso, la cual es una es una aplicación configuradora de redes privadas gratuita capaz de establecer vínculos directos entre computadoras que están bajo firewalls de NAT sin requerir reconfiguración alguna (en la mayoría de los casos). En otras palabras, establece una conexión a través de Internet y simula una red de área local formada por ordenadores remotos. 5. Inicia el servidor Hello en la máquina del servidor como se muestra: En la terminal de Linux: java HelloServer -ORBInitialPort 1050& En terminal de Windows: start java HelloServer -ORBInitialPort 1050 Nota: No se necesita especificar el argumento -ORBInitialHost porque el servidor Hello estará ejecutándose en el mismo anfitrión que el servidor en este ejemplo. 6. Ejecuta la aplicación Hello del cliente en la maquina donde se encuentra el cliente: En terminal de Linux: java HelloClient -ORBInitialHost direcciónip -ORBInitialPort 1050& En terminal de Windows: java HelloClient -ORBInitialHost direcciónip orbd -ORBInitialPort 1050 Nota: La direcciónip es el anfitrión en el cual el servidor IDL está ejecutándose. En este caso es la máquina del servidor. 7. Detener el orbd cuando se termine la aplicación, en caso contrario el servidor seguirá esperando invocaciones del cliente. 20

21 V Conclusiones. Java IDL es una tecnología para objetos distribuidos que permite la interacción de estos sobre diferentes plataformas a través de la red. Esta interacción es posible porque Java-IDL está basada en una arquitectura de intermediario de peticiones de objetos comunes (CORBA), un modelo de objetos distribuidos estándar. El compilador IDL es una herramienta poderosa y de gran ayuda para la creación de aplicaciones de objetos distribuidos; una vez que se tiene definida la interface remota se puede de forma relativamente sencilla crear aplicaciones, ya que la conexión entre clienteservidor se realiza de la misma forma en todas las aplicaciones, es decir, no cambia el código de conexión en la aplicación de servidor. Parte del poder de alcance de CORBA se debe al apoyo del compilador IDL, quien es el encargado de la creación de todo el esqueleto de nuestras aplicaciones y al soporte que proporciona Java, comenzando por las clases (que son compatibles con el lenguaje IDL), pasando por los métodos de manipulación hasta el manejo de excepciones. Por ello se propone utilizar esta plataforma para el desarrollo de aplicaciones Java-IDL ya que su manejo es simple (como puede verse en este documento) para la creción de las mismas. VI Referencias. ORBIX de IONA Technologies. VisiBroker de Borland. JacORB is an object request broker written in Java, available under the LGPL. JavaIDL de JavaSoft. Información sobre el compilador IDL. Información sobre Hamachi. 21

22 VII Anexo 1. Otra aplicación para la arquitectura CORBA usando tecnología Java- IDL. Implementador de fechas. Código del archivo IDL: module FechaApp { interface Fecha{ string getfecha(); ; ; Código del servidor: import FechaApp.*; import org.omg.corba.*; import org.omg.portableserver.poahelper; import org.omg.portableserver.poa; import java.util.*; import java.io.*; import org.omg.cosnaming.*; import org.omg.cosnaming.namingcontextpackage.*; import org.omg.corba.*; class FechaImpl extends FechaPOA { public String getfecha() { return (new Date()).toString(); public class FechaServer { public static void main(string args[]) { try { ORB orb = ORB.init(args, null); FechaImpl impl = new FechaImpl(); POA rootpoa=poahelper.narrow(orb.resolve_initial_references("rootpoa")); rootpoa.the_poamanager().activate(); org.omg.corba.object ref = rootpoa.servant_to_reference(impl); 22

23 Fecha href = FechaHelper.narrow(ref); org.omg.corba.object objref = orb.resolve_initial_references("nameservice"); NamingContextExt ncref = NamingContextExtHelper.narrow(objRef); String nombre = "Fecha"; NameComponent path[] = ncref.to_name(nombre); ncref.rebind(path, href); orb.run(); catch (Exception e) { System.err.println("ERROR: " + e); Código del cliente: import FechaApp.*; import org.omg.corba.*; import org.omg.cosnaming.*; import org.omg.cosnaming.namingcontextpackage.*; public class FechaClient { public static void main(string args[]) { try { ORB orb = ORB.init(args, null); org.omg.corba.object objref =orb.resolve_initial_references("nameservice"); NamingContextExt ncref = NamingContextExtHelper.narrow(objRef); String nombre = "Fecha"; Fecha impl = FechaHelper.narrow(ncRef.resolve_str(nombre)); System.out.println("Fecha: " + impl.getfecha()); catch (Exception e) { System.out.println("ERROR : " + e); e.printstacktrace(system.out); 23

24

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

CORBA. Carpe Diem Quam Minimum Credula Postero. Manual de CORBA (Common Object Request Broker Architecture)

CORBA. Carpe Diem Quam Minimum Credula Postero. Manual de CORBA (Common Object Request Broker Architecture) Manual de CORBA (Common Object Request Broker Architecture) La arquitectura común de intermediarios en peticiones a objetos (CORBA) es una arquitectura de comunicaciones entre sistemas heterogéneos que

Más detalles

CORBA: Anexos. Ingeniería del Software II Curso 2009/2010. silarri@unizar.es

CORBA: Anexos. Ingeniería del Software II Curso 2009/2010. silarri@unizar.es CORBA: Anexos Ingeniería del Software II Curso 2009/2010 Sergio Ilarri Artigas Sergio Ilarri Artigas silarri@unizar.es Índice Anexo I: Ejemplo HelloWorld Anexo II: Ejemplo con Objeto callback Anexo III:

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

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

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

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

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

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

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

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

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

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

La última versión disponible cuando se redactó este manual era la 5 Beta (versión ), y sobre ella versa este manual.

La última versión disponible cuando se redactó este manual era la 5 Beta (versión ), y sobre ella versa este manual. Manual de Dev-C++ 4.9.9.2 Página 1 de 11 Introducción Dev-C++ es un IDE (entorno de desarrollo integrado) que facilita herramientas para la creación y depuración de programas en C y en C++. Además, la

Más detalles

Tecnología de objetos distribuidos y arquitectura de componentes. Índice. Bibliografía. Introducción. Tema V

Tecnología de objetos distribuidos y arquitectura de componentes. Índice. Bibliografía. Introducción. Tema V Bibliografía Tema V Tecnología de objetos distribuidos y arquitectura de componentes. Szyperski, C. 1998. Component Software. Addison-Wesley. Ruiz Cortés, 1998. A. CORBA: Una visión general. http://www.lsi.us.es/~aruiz

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

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

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

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

Laboratorio. Instalación de Visual Studio Community. Back To Basics Instalando Visual Studio Community. Versión: 1.0.

Laboratorio. Instalación de Visual Studio Community. Back To Basics Instalando Visual Studio Community. Versión: 1.0. Laboratorio Instalación de Visual Studio Community Versión: 1.0.0 Enero de 2016 Página 1 de 19 informes@ticapacitacion.com http://ticapacitacion.com CONTENIDO INTRODUCCIÓN EJERCICIO 1: INSTALANDO VISUAL

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

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

Capítulo 1. Componentes de CORBA.

Capítulo 1. Componentes de CORBA. Capítulo 1. Componentes de CORBA. La OMA (Object Management Architecture) define en alto nivel de abstracción las reglas necesarias para la distribución de la computación orientada a objetos (OO) en entornos

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

JAVA 7 Los fundamentos del lenguaje Java

JAVA 7 Los fundamentos del lenguaje Java Presentación 1. Historia 9 1.1 Por qué Java? 9 1.2 Objetivos del diseño de Java 10 1.3 Auge de Java 11 2. Características de Java 12 2.1 El lenguaje de programación Java 12 2.1.1 Sencillo 13 2.1.2 Orientado

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

Conceptos a tratar. Fundamentos de la Programación Orientada a Objetos Ampliación sobre clases y objetos

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

Más detalles

Servicio de terminal remoto. Jesús Torres Cejudo

Servicio de terminal remoto. Jesús Torres Cejudo 1 - Telnet, Rlogin, SSH. Telnet (TELecommunication NETwork) es el nombre de un protocolo de red red a otra máquina para manejarla remotamente como si estuviéramos sentados delante de ella. También es el

Más detalles

Modulo 11. Clases y Objetos en Java

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.

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

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

SISTEMAS DISTRIBUIDOS DE REDES 3.- ESTANDAR CORBA. 3.1. Características

SISTEMAS DISTRIBUIDOS DE REDES 3.- ESTANDAR CORBA. 3.1. Características SISTEMAS DISTRIBUIDOS DE REDES 3.- ESTANDAR CORBA 3.1. Características La tendencia hacia el futuro es el de lograr la integración total de componentes realizados por terceras partes, para lo cual es necesario

Más detalles

Programación Orientada a Objetos en Java

Programación Orientada a Objetos en Java Programación Orientada a Objetos en Java Curso 2006-2007 Tema 1 Introducción a Java Gonzalo Méndez Pozo Dpto. de Ingeniería de Software e Inteligencia Artificial Universidad Complutense de Madrid Historia

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

Tema 1. Introducción a JAVA

Tema 1. Introducción a JAVA Tema 1. Introducción a JAVA Historia Características Plataforma Java Entorno de desarrollo Ejemplo: Hola mundo Estructura general de un programa Java 1 Historia de Java (i) Surge en 1991: Sun Microsystems

Más detalles

Principios de Computadoras II

Principios de Computadoras II Departamento de Ingeniería Electrónica y Computadoras Ing. Ricardo Coppo rcoppo@uns.edu.ar Qué es un Objeto? Un objeto es una instancia de una clase Las clases actuán como modelos que permiten la creación

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

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

Apéndice 1. SOAP 2 2. CORBA 4 3. JMS 6 4. RMI 8

Apéndice 1. SOAP 2 2. CORBA 4 3. JMS 6 4. RMI 8 Apéndice A Conectividad 1. OAP 2 2. CORBA 4 3. JM 6 4. RMI 8 OAP OAP (imple Object Access Protocol) es un protocolo basado en XML que permite comunicar componentes y aplicaciones mediante HTTP. Es como

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

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

Primera Escuela de la Red Temática SVO. Madrid, 27-28 Noviembre, 2006 JAVA BÁSICO. Raúl Gutiérrez Sánchez LAEFF - INTA raul@laeff.inta.

Primera Escuela de la Red Temática SVO. Madrid, 27-28 Noviembre, 2006 JAVA BÁSICO. Raúl Gutiérrez Sánchez LAEFF - INTA raul@laeff.inta. Primera Escuela de la Red Temática SVO. Madrid, 27-28 Noviembre, 2006 JAVA BÁSICO LAEFF - INTA raul@laeff.inta.es Qué es Java? Java es un lenguaje de programación orientado a objetos desarrollado por Sun

Más detalles

Lenguaje Orientado por Objetos Simple, Poderoso y Fácil de aprender Robusto Interactivo Arquitectura neutral Interpretado y de alto desempeño

Lenguaje Orientado por Objetos Simple, Poderoso y Fácil de aprender Robusto Interactivo Arquitectura neutral Interpretado y de alto desempeño Programación Orientada a Objetos Introducción a Java Angela Carrillo Ramos Java: Lenguaje de Programación Por qué surge un lenguaje? Para adaptarse a los cambios de entorno y usos: Independencia de la

Más detalles

Desarrollo de aplicaciones de acceso a base de datos con JBuilder 7

Desarrollo de aplicaciones de acceso a base de datos con JBuilder 7 Desarrollo de aplicaciones de acceso a base de datos con JBuilder 7 Este artículo trata sobre el desarrollo de aplicaciones de acceso a base de datos con la herramienta JBuilder7. Tras una breve introducción,

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

TEMA 3. CONCEPTOS FUNDAMENTALES DEL NIVEL DEL SISTEMA OPERATIVO. Definición y objetivos de un S.O

TEMA 3. CONCEPTOS FUNDAMENTALES DEL NIVEL DEL SISTEMA OPERATIVO. Definición y objetivos de un S.O TEMA 3. CONCEPTOS FUNDAMENTALES DEL NIVEL DEL SISTEMA OPERATIVO Definición y objetivos de un S.O Definición y objetivos del sistema operativo Estructura, componentes y servicios de un S.O Llamadas al sistema

Más detalles

Java en 2 horas. Rodrigo Santamaría

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

Más detalles

Agenda..NET C# Laboratorio #1

Agenda..NET C# Laboratorio #1 PROGRAMACIÓN III Agenda.NET C# Laboratorio #1 .NET Qué es.net? Una arquitectura tecnológica para la creación y distribución de software como servicio. Servicio en cualquier plataforma, cliente en cualquier

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

Java desde Consola Utilizando Java sin Path

Java desde Consola Utilizando Java sin Path 1 Utilizando Java sin Path Una vez hayamos instalado el JDK (Java Development Kit) ya estamos en capacidad de crear y hacer funcionar algunos códigos sencillos. Para esto utilizaremos como entorno de programación

Más detalles

Serialización de datos en C# en Binario, Soap y Xml

Serialización de datos en C# en Binario, Soap y Xml Serialización de datos en C# en Binario, Soap y Xml Quizás muchos desarrolladores hayan escuchado hablar del termino serializar la información y no saber de que se trata. Pues bien, resulta que la serialización

Más detalles

Usando el Sistema Operativo

Usando el Sistema Operativo Sistemas Operativos Pontificia Universidad Javeriana Enero de 2010 Los sistemas operativos Los sistemas operativos Perspectivas del Computador Concepto general El sistema operativo es parte del software

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

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

INTRODUCCIóN A LA PROGRAMACIóN APUNTES DE JAVA APUNTES DE JAVA

INTRODUCCIóN A LA PROGRAMACIóN APUNTES DE JAVA APUNTES DE JAVA APUNTES DE JAVA FUNCIONAMIENTO DE UN PROGRAMA Assembler Ensamblador Ejecuta Programador Programa fuente BASIC Interprete Ejecuta C, C++, Pascal Compilador Compila Ejecuta Programa fuente Programa Objeto

Más detalles

JAVA - Serializacíon / RMI. (C) Philippe Roose - 2004, 2005

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

Más detalles

Ubuntu Server HOW TO : SERVIDOR DE IMPRESORAS

Ubuntu Server HOW TO : SERVIDOR DE IMPRESORAS Ubuntu Server 12.10 HOW TO : SERVIDOR DE IMPRESORAS EN ESTE SE REALIZA LO SIGUIENTE: En este how to se le va a enseñar como instalar CUPS y como administrar. Common Unix Printing System (Sistema de impresión

Más detalles

Packages, Classpath y

Packages, Classpath y Packages, Classpath y utilidad JAR Pedro Corcuera Dpto. Matemática Aplicada y Ciencias de la Computación Universidad de Cantabria corcuerp@unican.es Objetivos Aprender a crear e importar packages Conocer

Más detalles

PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez

PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez UNIVERSIDAD AUTÓNOMA DEL ESTADO DE MÉXICO Configuración de Java en Windows UNIVERSIDAD AUTÓNOMA DEL ESTADO DE MÉXICO Descarga de software

Más detalles

Conceptos de Programación Orientada a Objetos

Conceptos de Programación Orientada a Objetos Paradigmas de programación Prog. orientada a objetos Conceptos de Programación Orientada a Objetos Abstracción de Programación estructurada Programación imperativa 2 Programación estructurada (I) Programación

Más detalles

Programa de actualización profesional ACTI.NET Desarrollo de aplicaciones locales y web con tecnología VB.NET

Programa de actualización profesional ACTI.NET Desarrollo de aplicaciones locales y web con tecnología VB.NET Programa de actualización profesional ACTI.NET Desarrollo de aplicaciones locales y web con tecnología VB.NET OBJETIVOS: Conocer de las bondades del paradigma de orientación a objetos en.net y su lenguaje

Más detalles

Seminario de Java. Contenido

Seminario de Java. Contenido Seminario de Java Programación Orientada a Objetos Curso 2006/2007 Contenido 1. Introducción 2. Primeros pasos con Java. El entorno Eclipse 3. La sintaxis del lenguaje Java 4. Clases y objetos 5. Cadenas

Más detalles

COMPONENTES Y CONTENEDORES. Ingeniería de Software II

COMPONENTES Y CONTENEDORES. Ingeniería de Software II COMPONENTES Y CONTENEDORES Ingeniería de Software II Motivación Los componentes son paquetes de software o módulos que encapsulan un conjunto de funciones similares. Estos componentes viven dentro de un

Más detalles

Universidad Autónoma Metropolitana Unidad Azcapotzalco. División de Ciencias Básicas e Ingeniería. Licenciatura en Ingeniería en Computación

Universidad Autónoma Metropolitana Unidad Azcapotzalco. División de Ciencias Básicas e Ingeniería. Licenciatura en Ingeniería en Computación Universidad Autónoma Metropolitana Unidad Azcapotzalco División de Ciencias Básicas e Ingeniería Licenciatura en Ingeniería en Computación Propuesta de Proyecto Terminal Clasificación de servicios web

Más detalles

La clase Integer y sus métodos. Los Operadores (concepto). Operadores Lógicos y a nivel de Bits. Operadores de desplazamiento. Concatenaciones. La Con

La clase Integer y sus métodos. Los Operadores (concepto). Operadores Lógicos y a nivel de Bits. Operadores de desplazamiento. Concatenaciones. La Con Fases de POO (Análisis y Diseño). Un ejemplo de Análisis y Diseño. Repaso de conceptos de Abstracción y ejemplos. Repaso y definición de Clases, estructura de una clase en Java. Declaración de atributos

Más detalles

Java en 3 horas. Ampliación de Sistemas Operativos. Rodrigo Santamaría

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

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

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

Programa de actualización profesional ACTI.NET Desarrollo de aplicaciones locales y web con tecnología VB.NET 2010

Programa de actualización profesional ACTI.NET Desarrollo de aplicaciones locales y web con tecnología VB.NET 2010 Programa de actualización profesional ACTI.NET Desarrollo de aplicaciones locales y web con tecnología VB.NET 2010 OBJETIVOS: Conocer de las bondades del paradigma de orientación a objetos en.net y su

Más detalles

FUNDAMENTOS DE INFORMÁTICA

FUNDAMENTOS DE INFORMÁTICA FUNDAMENTOS DE INFORMÁTICA Tema 1 Introducción a la Programación en Visual Basic Departamento de Ingeniería de Sistemas y Automática Universidad de Vigo undamentos de Informática. Departamento de Ingeniería

Más detalles

2.1 Compuertas para Bases de Datos

2.1 Compuertas para Bases de Datos 1 Colección de Tesis Digitales Universidad de las Américas Puebla Romero Martínez, Modesto Uno de los aspectos mas importantes en un sistema multibase de datos es la forma en como llevar a cabo la comunicación

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

APUNTADORES. Un apuntador es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable.

APUNTADORES. Un apuntador es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable. APUNTADORES Un apuntador es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable. No hay que confundir una dirección de memoria con el contenido

Más detalles

Tema 2 Introducción a la Programación en C.

Tema 2 Introducción a la Programación en C. Tema 2 Introducción a la Programación en C. Contenidos 1. Conceptos Básicos 1.1 Definiciones. 1.2 El Proceso de Desarrollo de Software. 2. Lenguajes de Programación. 2.1 Definición y Tipos de Lenguajes

Más detalles

INTERFACE COMPARATOR. DIFERENCIAS ENTRE COMPARATOR Y COMPARABLE. CLASE COLLECTIONS. EJERCICIOS RESUELTOS. (CU00918C)

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

Más detalles

- Compilar y ejecutar programas en Java - Estructura básica de una clase - El comando javac - El comando java - Introducción al IDE de desarrollo

- Compilar y ejecutar programas en Java - Estructura básica de una clase - El comando javac - El comando java - Introducción al IDE de desarrollo - Introdución a Java - Breve historia de Java - Características del lenguaje Java - Estructura del JDK 1.6 - Documentación del API (JavaDoc) - Instalar y configurar el ambiente de desarrollo - La variable

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

Introducción al lenguaje de programación java

Introducción al lenguaje de programación java Introducción al lenguaje de programación java Algoritmia y Programación Slide 1 LENGUAJES DE PROGRAMACION Un lenguaje de programación es un idioma artificial diseñado y creado para expresar algoritmos

Más detalles

MS_2778 Writing Queries Using Microsoft SQL Server 2008 Transact-SQL

MS_2778 Writing Queries Using Microsoft SQL Server 2008 Transact-SQL Writing Queries Using Microsoft SQL Server 2008 Transact-SQL www.ked.com.mx Av. Revolución No. 374 Col. San Pedro de los Pinos, C.P. 03800, México, D.F. Tel/Fax: 52785560 Introducción Este curso provee

Más detalles

Herramientas Informáticas I Software: Sistemas Operativos

Herramientas Informáticas I Software: Sistemas Operativos Herramientas Informáticas I Software: Sistemas Operativos Facultad de Ciencias Económicas y Jurídicas Universidad Nacional de La Pampa Sistemas Operativos. Es el software base que permite trabajar como

Más detalles

Servicios Web. Andrés Pastorini. TRIA Tecnólogo Informático

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

Más detalles

Lección 2: Creando una Aplicación en Java. 1. Estructura del archivo de una clase. 3. Definiendo clases fundamentos

Lección 2: Creando una Aplicación en Java. 1. Estructura del archivo de una clase. 3. Definiendo clases fundamentos Lección 2: Creando una Aplicación en Java 1. Estructura del archivo de una clase 2. Usando una clase 3. Definiendo clases fundamentos Objetivos Conocer: La forma en la cual está se está estructurado el

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

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

JavaCC Parte I. 1 Compiladores / Guía VII / Ciclo Facultad: Ingeniería Escuela: Computación Asignatura: Compiladores.

JavaCC Parte I. 1 Compiladores / Guía VII / Ciclo Facultad: Ingeniería Escuela: Computación Asignatura: Compiladores. 1 Compiladores / Guía VII / Ciclo 02-2016 Centro de Investigación y Transferencia de Tecnología JavaCC Parte I Contenido Facultad: Ingeniería Escuela: Computación Asignatura: Compiladores En la presente

Más detalles

Tema 9: Paquetes. Índice

Tema 9: Paquetes. Índice Tema 9: Paquetes Antonio J. Sierra Índice 1. Introducción. 2. Protección de acceso. 3. Importación de paquetes. 4. Modelado UML de un paquete. 1 Introducción Justificación Unicidad en el identificador

Más detalles

INTEROPERABILIDAD ENTRE LOS MARCOS DE GESTION SNMP Y CORBA (GATEWAY)

INTEROPERABILIDAD ENTRE LOS MARCOS DE GESTION SNMP Y CORBA (GATEWAY) UNIVERSIDAD CENTROCCIDENTAL LISANDRO ALVARADO DECANATO DE CIENCIA Y TECNOLOGIA MAESTRIA CIENCIA DE LA COMPUTACION MENCION REDES DE COMPUTADORAS INTEROPERABILIDAD ENTRE LOS MARCOS DE GESTION SNMP Y CORBA

Más detalles

PRÁCTICA DE LABORATORIO 4 Programación Orientada a Objetos

PRÁCTICA DE LABORATORIO 4 Programación Orientada a Objetos ESCUELA DE INGENIERÍA DE SISTEMAS DEPARTAMENTO DE COMPUTACIÓN PROGRAMACIÓN 2 PRÁCTICA DE LABORATORIO 4 Programación Orientada a Objetos Contenido Introducción...1 Objeto...2 Atributo...2 Métodos...2 Clase...3

Más detalles

1

1 Curso: BORLAN DELPHI 5 Curso de desarrollo de aplicaciones Windows utilizando el entorno de programación Borland Delphi 5. Se estudian las particularidades del lenguaje Delphi, así como su sintaxis; sus

Más detalles

1.4.1 Inicio de la computadora por primera vez Hay problemas Causas, síntomas y soluciones a posibles averías...

1.4.1 Inicio de la computadora por primera vez Hay problemas Causas, síntomas y soluciones a posibles averías... Índice INTRODUCCIÓN...11 CAPÍTULO 1. EXPLOTACIÓN DE SISTEMAS MICROINFORMÁTICOS...13 1.1 La arquitectura de los ordenadores...14 1.1.1 La máquina de Turing...14 1.1.2 La arquitectura Harvard...15 1.1.3

Más detalles

servicios. El API es definido al nivel de código fuente y proporciona el nivel de

servicios. El API es definido al nivel de código fuente y proporciona el nivel de GLOSARIO API Application Program -ming- Interface Es la interfaz por la cual una aplicación accede al sistema operativo u a otros servicios. El API es definido al nivel de código fuente y proporciona el

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

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

PASOS PARA INSTALAR EL SISTEMA OPERATIVO LINUX DISTRIBUCION CENTOS

PASOS PARA INSTALAR EL SISTEMA OPERATIVO LINUX DISTRIBUCION CENTOS VICTORIA GUADALUPE PEREZ SANCHEZ LIA D1 SISTEMAS OPERATIVOS PASOS PARA INSTALAR EL SISTEMA OPERATIVO LINUX DISTRIBUCION CENTOS Objetivo: El alumno instalara en el sistema operativo Linux de la distribución

Más detalles

TEMA 5. Otras arquitecturas distribuidas III. Otros entornos de objetos distribuidos

TEMA 5. Otras arquitecturas distribuidas III. Otros entornos de objetos distribuidos TEMA 5. Otras arquitecturas distribuidas III. Otros entornos de objetos distribuidos III. Otros entornos de objetos distribuidos 1. Problemas de CORBA 2. Java Enterprise Edition 1. EJB 2. Servidor de aplicaciones

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

20483 Programación en C#

20483 Programación en C# 20483B 20483 Programación en C# Fabricante: Microsoft Grupo: Desarrollo Subgrupo: Microsoft Visual Studio 2012 Formación: Presencial Horas: 25 Introducción Este curso enseña a los desarrolladores las habilidades

Más detalles

TEMA 4: PROGRAMACIÓN DISTRIBUIDA

TEMA 4: PROGRAMACIÓN DISTRIBUIDA TEMA 4: PROGRAMACIÓN DISTRIBUIDA!" #!$ %! % & '( '')* (+,( -./0%1' 2%1/../ -3% 450 -(.40( %16 2%1/../ -3% /.0-2%..02%% 7-89:08 1! "!;1 %1499: No existe memoria común Comunicaciones No existe un

Más detalles

1. Aplicaciones del J2SE SDK1.4.2 de Sun.

1. Aplicaciones del J2SE SDK1.4.2 de Sun. Dept Informatica Índice 1 Aplicaciones del J2SE SDK142 de Sun 1 11 javac 1 12 java 1 13 javadoc 2 14 Las que no se explican 3 2 Guía de estilo de Java 3 21 Clases 3 211 Nombres para las clases 3 212 Estructura

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