1 / 35

Java RMI vrs. CORBA y el objeto Parallel CORBA Parallel and Distributed Computing Using Java

Java RMI vrs. CORBA y el objeto Parallel CORBA Parallel and Distributed Computing Using Java. CONTENIDO. Introducción a CORBA CORBA Vrs. RMI Parallel CORBA Object Conclusiones. Que es CORBA?. Acrónimo de: Common Object Request Broker Architecture.

holleb
Download Presentation

Java RMI vrs. CORBA y el objeto Parallel CORBA Parallel and Distributed Computing Using Java

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Java RMI vrs. CORBA y el objeto Parallel CORBA Parallel and Distributed Computing Using Java

  2. CONTENIDO • Introducción a CORBA • CORBA Vrs. RMI • Parallel CORBA Object • Conclusiones

  3. Que es CORBA? • Acrónimo de: Common Object Request Broker Architecture. • Estándar desarrollado y mantenido por OMG (Object Management Group). • Intenta ser un marco genérico para trabajar con objetos en forma distribuida. • Independiente de la plataforma y del lenguaje de programación. • Integración con sistemas heredados y nuevas tecnologías. • Transparencia de redes, lenguajes, OS, modelo de objetos, paradigma, administración et.

  4. Arquitectura Básica CORBA. (1/3) Consiste de : • Object Request Broker (ORB), que provee los medios para la comunicación cliente / servidor. • Interface Definition Languge (IDL), usado para la definición de interfases estáticas de los objetos. • Dinamic Invocation Interface (DII) y Dinamic Scheleton Interface (DSI), utilizada para obtener interfaces dinami-camente desde un repositorio. • Permiten acceder a objetos sin “stubs” y “skeletons” de un tipo especifico. • En tiempo de ejecución el cliente pude determinar la Interface a un objeto del cual a recibido referencia. • Llamar objetos sin tener que conocer su Interface también en tiempo de ejecución

  5. Arquitectura Básica CORBA. (2/3) • También especifica un protocolo de comunicación entre ORBs llamado Internet Inter_ORB Protocol (IIOP) • “Stubs” que son procedimientos locales correspon-dientes a una única operación, que ejecutan cuando son llamados. • Esqueletos de Objetos “Object skeleton”. • Los “Stubs” y los esqueletos de objetos sirven como proxis para clientes y servidores.

  6. Arquitectura Básica CORBA. (3/3)

  7. Como funciona CORBA? (1/3) • Se debe compilar la IDL en “stubs” y “object skeletons”. • Se escribe un un objeto y su cliente. • “Stubs” y “Skeletons” actúan como proxis para el cliente y el servidor respectivamente . • IDL define la interfaz tan estrictamente que el “stub” en el cliente no tiene incompatibilidad con el “eskeleton” en el servidor. • Esto sucede incluso si se utilizan diferentes lenguajes u ORBs de diferentes proveedores.

  8. Como funciona CORBA? (2/3) • Cada objeto CORBA tiene un identificador único (object reference). • Los clientes utilizan estas referencias para dirigir sus invocaciones. • De esta manera indican al ORB cual es la instancia exacta que se invoca. • El cliente actúa como si estaría actuando sobre el objeto pero lo hace sobre el “stub” IDL que actúa como proxi. • Este pedido atraviesa el “stub” continua por el ORB y en lado de la implementación a través del “skeleton” para obtener el objeto donde se ejecuta.

  9. Como funciona CORBA? (3/3) • Para una invocación remota utiliza el mismo código pero con la referencia remota. • Cuando el ORB detecta que se trata de un objeto remoto lo direcciona por la red. • Para esto se requiere dos cosas: • Que el cliente sepa exactamente que operaciones puede ejecutar. • Que el cliente y la implementación estén de acuerdo en el protocolo (IIOP).

  10. Algunos servicios CORBA.

  11. Implementaciones de CORBA para Java? • Existen varios proveedores:

  12. RMI vrs. CORBA • Desde la versión 1.1 de JDK, java tiene su propio ORB llamado RMI (no compatible con el ORB de CORBA). • RMI es nativo de Java, una extensión del lenguaje. • Depende de muchas características propias de Java: • Serializacion de objetos. • Portable. • Implementaciones de objetos descargables. • Java Interface Definitions. • Como Consecuencia es muy natural para los programadores Java, que no necesitaran aprender tecnologías “extranjeras”

  13. RMI vrs. CORBA (Programación vrs. integración) 1/4 • Java con extensión RMI es considerada una tecnología de programación • CORBA por su parte es considerada una tecnología de integración. • Para ilustrarlo consideremos lo siguiente:

  14. RMI vrs. CORBA (Programación vrs. integración) 2/4 • Java provee un API llamada JNI (Java Native Interface) para interactuar con otro lenguajes primariamente C y C++. • RMI es una tecnología Java a Java. • Si se quiere que Java se comunique con un objeto remoto en otro lenguaje se lo debe hacer por medio de un intermediario.

  15. RMI vrs. CORBA (Programación vrs. integración) 3/4 • CORBA es una tecnología de integración, diseñada para ser el pegamento para unir tecnologías diferentes. • No existe como un punto en el espacio de programación, sino que ocupa el espacio entre los diferentes lenguajes. • Cuando un cliente utiliza java para comunicarse con un objeto C++, tanto el programador Java como el programador C++ trabajan en su propio lenguaje. • CORBA ORB presenta el cliente Java con un “stub” Java y al programador C++ un “skeleton”” C++. • CORBA se encarga de los problemas de transferencia de lenguajes.

  16. RMI vrs. CORBA (Programación vrs. integración) 4/4

  17. RMI vrs. CORBA (Ejemplo - Interface)

  18. RMI vrs. CORBA (Ejemplo-Cliente del objeto distribuido)

  19. RMI vrs. CORBA (Ejemplo- Servidor del objeto distribuido)

  20. RMI vrs. CORBA (Ejemplo- Servidor del objeto MAIN)

  21. RMI vrs. CORBA (Comparando la Implementación) 1/4

  22. RMI vrs. CORBA (Comparando la Implementación) 2/4

  23. RMI vrs. CORBA (Comparando la Implementación) 3/4

  24. RMI vrs. CORBA (Comparando la Implementación) 4/4

  25. RMI Pros y cons

  26. CORBA Pros y cons

  27. Parallel CORBA Object 1/3 • Busca proveer de una técnica eficiente para encapsular código paralelo basado en el uso de librerías MPI. • Un código paralelo MPI puede verse como un conjunto de procesos idénticos SPMD. • Usualmente se utiliza una aproximación maestro esclavo. • Se selecciona un proceso como maestro que es el único que se encapsula en un objeto CORBA. • Este se conecta a los esclavos mediante una capa de comunicación MPI.

  28. Parallel CORBA Object 1/4 • Esta solución requiere modificar los códigos MPI si no siguen la estructura maestro esclavo. • El maestro puede ser un cuello de botella importante cuando dos códigos MPI se deben comunicar entre si. • El cliente obtiene los datos generados por el primer código y es enviado al segundo, este los coloca en los procesos MPI esclavos, los procesa, obtiene los resultados y los envía al cliente • No ofrece una solución escalable, si el numero de procesos SPMD o el tamaño del problema se incrementa (cantidad de datos transmitidos entre dos procesos paralelos) habrá un importante costo por sobrecarga en comunicaciones.

  29. Parallel CORBA Object 3/4 • La solución requiere que todos los procesos SPMD se encapsulen en objetos CORBA. • Esto permitirá que todos los procesos SPMD se comunique a través del ORB. • Sin embargo es necesario que no se exponga el paralelismo al cliente. • Eso quiere decir que el cliente tiene que ver una entidad en lugar de de todos los objetos CORBA que encapsulan procesos SPMD. • También si el cliente tiene que transmitir datos entre los objetos CORBA tiene que hacerlo lo mas transparentemente. • Estos dos requerimientos transparencia y rendimiento han concluido en el concepto de un nuevo objeto, el CORBA Paralelo:

  30. Parallel CORBA Object 4/4 • Un objeto CORBA encapsula un proceso SPMD. • Todos los objetos CORBA pertenecientes a una colección pueden ser manipulados como una única entidad por el sistema. • La invocación de una operación por el cliente resultara en la ejecución del método asociado por todos lo objetos de la colección en el servidor. • Esta activación paralela se hace transparentemente y la distribución de datos entre objetos de una colección es manejad por el sistema. • Una Interface a un objeto paralelo se describe como una extensión el IDL llamada “Extended IDL”. • Se han creado un conjunto de nuevas palabras clave para especificar el numero de objetos en una colección y la distribución de datos.

  31. Interface Parallel CORBA. • interface[*:2*n] MatrixOperations { const long SIZE=100; typedef double Vector[SIZE]; typedef double Matrix[SIZE][SIZE]; void multiply(in dist[BLOCK][*] Matrix A, in Vector B, out dist[BLOCK] Vector C ); void skal(in dist[BLOCK] Vector C, out csum double val);};

  32. Cliente y Servidor CORBA Paralelo

  33. Conclusiones • Existen varias implementaciones de CORBA para java actualmente en el mercado, lo cual hace viable su utilización con este lenguaje. • CORBA no debe verse como una competencia de RMI sino como una solución complementaria para ciertos problemas. • Se están haciendo importantes esfuerzos para extender CORBA y permitir su mejor utilización en ambientes paralelos. • Es indiscutible el éxito que han tenido tanto Java como CORBA y por tanto es de esperarse una mayor colaboración de estas tecnologías complementarias a futro.

  34. Bibliografia GENERAL CORBA: http://www.corba.org http://developer.java.sun.com/developer/onlineTraining/corba/corba.html COMPARATIVO RMI / CORBA: • Gopalan Suresh Raj, “A Detailed Comparison of CORBA, DCOM and Java/RMI”.http://www.execpc.com/~gopalan/misc/compare.htm • David Curtis,“Java, RMI and CORBA” (1997 Object Management Group). http//:cgi.omg.org/library/wpjava.html • Michael W. Gilbode,“A Comparison of CORBA and Java RMI” . http//:www.csc.villanova.edu/~mgilbode/8530/corba-rmi.html CORBA PARALELO: • T. Priol, C. René, “Parallel CORBA Object”.http://www.irisa.fr/paris/nanglais/paco.htm • C. Perez, T. Priol,“Grid Computing with Off-the-Shelves Middleware Technologies” . http//:www.ercim.org/publication/Ercim_News/enw45/priol.html • C. René, T. Priol, “MPI Code Encapsulation using Parallel CORBA Object”. INRIA, Rapport de recherche No. 3648 Marzo de 1999. • C. René, T. Priol, G. Alléon, “Programming SCI Clusters using Paraller CORBA Objects”. INRIA, Rapport de recherche No. 3649 Marzo de 1999.

More Related