INTEGRACIN DE APLICACIONES DISTRIBUIDAS. UNIVERSIDAD POLITCNICA SALESIANA Carrera de Ingeniera de Sistemas Aplicaciones Distribuidas
APLICACIONES DE ESCRITORIO Ing. Vanessa Jurado Vite Mag. Aplicaciones Distribuidas Carrera: Ingeniera de Sistemas
El software o aplicacin de escritorio, tambin conocido como un recurso o un "app", es un programa informtico diseado para ayudar al usuario a realizar sing ulares o mltiples tareas especficas relacionadas. APLICACIONES DE ESCRITORIO Ing. Vanessa Jurado Vite Mag. Aplicaciones Distribuidas Carrera: Ingeniera de Sistemas
MEDICIN DE LA INTERFAZ GRAFICA DE USUARIO La medicin de la interfaz de usuario es esencial para asegurar la correcta interaccin entre el sistema desarrollado y el usuario final.
La interfaz es el medio por el cual el usuario habla con el sistema.
Una interfaz bien diseada evita muchos errores en el uso y aumenta la productividad del usuario. Ing. Vanessa Jurado Vite Mag. Aplicaciones Distribuidas Carrera: Ingeniera de Sistemas
PROCESO DE EVALUACIN ISO 9126 El proceso de evaluacin tiene como misin principal asegurar que los sistemas se han diseado teniendo en cuenta las necesidades de los usuarios.
La evaluacin proporcionar informacin valiossima que permite comprobar si la interaccin del sistema y el usuario se ha diseado correctamente, detectando deficiencias y proponiendo mejoras. Requerimientos de calidad Procedimiento de evaluacin Preparacin de evaluacin Consta de 3 Fases: Ing. Vanessa Jurado Vite Mag. Aplicaciones Distribuidas Carrera: Ingeniera de Sistemas
Proceso para las aplicaciones de Escritorio El Modelo de Proceso de la Ingeniera de la Usabilidad especifica una metodologa de desarrollo para guiar al equipo y conseguir un alto nivel de usabilidad del producto final. UNIVERSIDAD POLITCNICA SALESIANA Carrera de Ingeniera de Sistemas Aplicaciones Distribuidas
APLICACIONES CON SOCKETS Ing. Vanessa Jurado Vite Mag. Aplicaciones Distribuidas Carrera: Ingeniera de Sistemas
Aparecieron en 1981 en UNIX BSD 4.2 Intento de incluir TCP/IP en UNIX Diseo independiente del protocolo de comunicacin Un socket es punto final de comunicacin (direccin IP y puerto) Abstraccin que: Ofrece interfaz de acceso a los servicios de red en el nivel de transporte Protocolo TCP Protocolo UDP Representa un extremo de una comunicacin bidireccional con una direccin asociada Sockets: introduccin Ing. Vanessa Jurado Vite Mag. Aplicaciones Distribuidas Carrera: Ingeniera de Sistemas
Sujetos a proceso de estandarizacin dentro de POSIX (POSIX 1003.1g) Actualmente Disponibles en casi todos los sistemas UNIX En prcticamente todos los sistemas operativos WinSock: API de sockets de Windows En Java como clase nativa Sockets: introduccin Ing. Vanessa Jurado Vite Mag. Aplicaciones Distribuidas Carrera: Ingeniera de Sistemas
Socket Permiten comunicar: Procesos del mismo computador Procesos conectados a travs de una red Tipos de direcciones: Direcciones locales: dominio UNIX Direcciones de red (TCP/IP) Direccin de red (direccin IP) Puerto
Ing. Vanessa Jurado Vite Mag. Aplicaciones Distribuidas Carrera: Ingeniera de Sistemas
Socket
USR-DCC-RRHH-01 138.100.240.50 SRV-DCC-SMTP-01 138.100.240.20 Red ftp 21 telnet 23 SRV-DCC-WEB-01 138.100.240.36 USR-DCC-SIST-01 138.100.240.2 USR-DCC-CONT-01 138.100.240.32 Ing. Vanessa Jurado Vite Mag. Aplicaciones Distribuidas Carrera: Ingeniera de Sistemas
Socket Los socket son conectores de comunicacin entre procesos remotos. Este mecanismo est en la mayora de los sistemas operativos y fue introducido por Unix BSD Cada conector est asociado a una IP y un puerto. Cada conector utiliza un protocolo de comunicacin que puede ser UDP o TCP.
Puertos Socket Socket Ing. Vanessa Jurado Vite Mag. Aplicaciones Distribuidas Carrera: Ingeniera de Sistemas
Comunicacin con datagramas UDP
Un mensaje enviado va UDP, no posee reintentos y acuso de recibo por parte del proceso receptor. Si algo falla el mensaje podra no llegar a su destino El receptor posee un puerto especfico para recibir mensajes El cliente podr utilizar cualquier puerto para enviarlos. El receptor averiguar por el mensaje entrante, la IP y el puerto del proceso emisor, lo que le permite Ing. Vanessa Jurado Vite Mag. Aplicaciones Distribuidas Carrera: Ingeniera de Sistemas
Comunicacin con datagramas UDP
Tamao del Mensaje: El mensaje integro puede ser de hasta 216 byte pero es usual uno de 8 Kbyte. La aplicacin debiera dividir el mensaje en partes. Mensajes excesivamente grandes afectan el rendimiento de al red. Ing. Vanessa Jurado Vite Mag. Aplicaciones Distribuidas Carrera: Ingeniera de Sistemas
Bloqueo: UDP usa las operaciones
enva, no bloqueante, o sea la esta operacin retorna el control una vez encaminado el mensaje a la capa IP en su socket. recibe bloqueante, o sea el mensaje enviado se almacena en una cola de mensajes en el puerto del proceso receptor. Este proceso activar su operacin recibe y se bloquear hasta recibir todo el mensaje. Para esto utiliza un hilo de proceso receptor. Ing. Vanessa Jurado Vite Mag. Aplicaciones Distribuidas Carrera: Ingeniera de Sistemas
Aplicaciones que utilizan UDP
Streaming de vdeo UDP simplemente envia informacin y permite al video comenzar correr. Si se utiliza TCP, retransmitiria paquetes que no vineron perfectos, y cuando llegen estaran anticuados. Juegos en red Los juegos son aplicaciones en tiempo real que requieren trasmitir informacin con extrema sensibilidad al tiempo. Bsquedas de servidor de nombre de dominio Consultas de servidor de nombres (DNS) del dominio utilizan una simple peticin seguida de una respuesta simple Ing. Vanessa Jurado Vite Mag. Aplicaciones Distribuidas Carrera: Ingeniera de Sistemas
Comunicacin stream TCP Orientado a la conexin. Este visualiza la comunicacin como un flujo de bytes (stream), y los procesos pueden leer desde este flujo o escribir en l. Esta abstraccin oculta algunas caractersticas propias de la red. Tamao de los mensajes: la aplicacin decide sobre el tamao de los mensajes y el protocolo inferior TCP los traduce a paquetes IP y se asegura que lleguen a destino Ing. Vanessa Jurado Vite Mag. Aplicaciones Distribuidas Carrera: Ingeniera de Sistemas
Comunicacin stream TCP Mensajes perdidos: Para cada paquete IP que TCP enva desde el emisor debe esperar un acuse de recibo desde el receptor, si pasado un tiepo (timeout) no lo recibe, lo considera como paquete perdido y reenva el paquete IP nuevamente. Control de Flujo: TCP regula y coordina el proceso de envo (produccin) y recepcin (consumo) de los paquete: por ejemplo, si el receptor lee muy lento, bloquea al emisor hasta que el lector haya ledo una cantidad suficiente de byte.
Ing. Vanessa Jurado Vite Mag. Aplicaciones Distribuidas Carrera: Ingeniera de Sistemas
Comunicacin stream TCP Duplicacin y Ordenacin de los Mensajes: A cada paquete IP se le asocia un Id nico que permite al receptor ordenarlos y eliminar paquetes repetidos. Destino de los mensajes: Para establecer la comunicacin, el proceso emisor enva una solicitud connect al receptor (necesita conocer direccin ip y puerto del recepetor) y este debiera responderle con un accept. Una vez establecida la comunicacin, los procesos leen y escriben en el stream, sin preocuparse por la direccin IP y el nmero de puerto.
Ing. Vanessa Jurado Vite Mag. Aplicaciones Distribuidas Carrera: Ingeniera de Sistemas
Etapas de la comunicacin
El proceso cliente enva una solicitud connect al la direccin ip y puerto del servidor. EL servidor posee una cola para recibir las solicitudes connect y a al momento de realizar un accept, dispone un nuevo puerto para el stream de comunicacin con el cliente. Cuando se establece la comunicacin, cada proceso dispone de dos stream uno para escribir y otro para leer. Para finalizar la comunicacin uno de los procesos cierra su conector de envi, el receptor detecta esto y cierrar sus conectores.
Ing. Vanessa Jurado Vite Mag. Aplicaciones Distribuidas Carrera: Ingeniera de Sistemas
Comunicacin TCP
Integridad de los datos: se obtiene a travs del cheque de suma para detectar paquetes IP corruptos. Adems, utiliza un nmero de serie para ordenar y evitar al duplicidad de los paquetes. Validez: se consigue reenviando el paquete, cada vez que timeout. Lo que garantiza la entrega. Conexin rota: cuando los timeout ocurren con demasiada frecuencia, TCP declara la comunicacin rota. Esto significa que TCP no proporciona una comunicacin fiable.
Ing. Vanessa Jurado Vite Mag. Aplicaciones Distribuidas Carrera: Ingeniera de Sistemas
Aplicaciones que utilizan TCP
En internet los servicios ya poseen puertos pblicos bien conocidos para prestacin de algunos servicios: HTTP : para la web FTP : transmisin de archivos Telnet : acceso remoto SMTP : transferencias de correos .
Ing. Vanessa Jurado Vite Mag. Aplicaciones Distribuidas Carrera: Ingeniera de Sistemas
Ing. Vanessa Jurado Vite Mag. Aplicaciones Distribuidas Carrera: Ingeniera de Sistemas
UNIVERSIDAD POLITCNICA SALESIANA Carrera de Ingeniera de Sistemas Aplicaciones Distribuidas
APLICACIONES RMI Ing. Vanessa Jurado Vite Mag. Aplicaciones Distribuidas Carrera: Ingeniera de Sistemas
RMI (Java Remote Method Invocation) es un mecanismo ofrecido por Java para invocar un mtodo de manera remota. Remote Method Invocation(RMI) de Java es un modelo de objetos distribuidos para desarrollar aplicaciones complejas y robustas RMI se caracteriza por la facilidad de su uso en la programacin por estar especficamente diseado para Java; proporciona paso de objetos por referencia (no permitido por SOAP), recoleccin de basura distribuida (Garbage Collector distribuido) y paso de tipos arbitrarios (funcionalidad no provista por CORBA). RMI Ing. Vanessa Jurado Vite Mag. Aplicaciones Distribuidas Carrera: Ingeniera de Sistemas
Consiste en convertir un objeto en un stream de bytes para ser trasmitido por una red. En Java los tipos primitivos son serializables por defecto
Serializacin Ing. Vanessa Jurado Vite Mag. Aplicaciones Distribuidas Carrera: Ingeniera de Sistemas
Java RMI es una extensin al modelo de objetos de Java para soportar objetos distribuidos.
Qu es Java RMI?
Ing. Vanessa Jurado Vite Mag. Aplicaciones Distribuidas Carrera: Ingeniera de Sistemas
Transparencia. Orientado a objetos. Facilidad. Mantenimiento. Seguridad. Portabilidad. Robustez. Versatilidad
Objetivos de Java RMI Ing. Vanessa Jurado Vite Mag. Aplicaciones Distribuidas Carrera: Ingeniera de Sistemas
Concurrencia Para cada cliente que trate de acceder a un objeto remoto, el servidor crear un nuevo hilo que se encargar de darle servicio.
Caractersticas Ing. Vanessa Jurado Vite Mag. Aplicaciones Distribuidas Carrera: Ingeniera de Sistemas
Nombrado de objetos Utiliza la notacin URL. Por Ejemplo: rmi://localhost:8080/miObjeto.
Adicionalmente se cuenta con el servidor de nombres rmiRegistry
Caractersticas Ing. Vanessa Jurado Vite Mag. Aplicaciones Distribuidas Carrera: Ingeniera de Sistemas
Paso de parmetros La Serializacin se encarga de informar al compilador y al entorno de ejecucin de Java que deber pasar por valor copias de los objetos de este tipo desde la JVM local a la JVM remota
Caractersticas Ing. Vanessa Jurado Vite Mag. Aplicaciones Distribuidas Carrera: Ingeniera de Sistemas
En una invocacin a un mtodo de un objeto remoto puede contar con los siguientes Parmetros Primitivos. Serializados. Objetos remotos.
Caractersticas UNIVERSIDAD POLITCNICA SALESIANA Carrera de Ingeniera de Sistemas Aplicaciones Distribuidas
APLICACIONES CORBA Ing. Vanessa Jurado Vite Mag. Aplicaciones Distribuidas Carrera: Ingeniera de Sistemas
Common Object Request Broker Architecture (CORBA) es un estndar definido por Object Management Group (OMG) que permite que diversos componentes de software escritos en mltiples lenguajes de programacin y que corren en diferentes computadoras, puedan trabajar juntos; es decir, facilita el desarrollo de aplicaciones distribuidas en entornos heterogneos. CORBA Ing. Vanessa Jurado Vite Mag. Aplicaciones Distribuidas Carrera: Ingeniera de Sistemas
Objetivos Especificar un middleware para construir aplicaciones cliente-servidor multi-nivel distribuidos y centralizados flexibles / extensibles Poder con la heterogeneidad hardware distinto redes distintas sistemas operativos distintos lenguajes de programacin distintos Ing. Vanessa Jurado Vite Mag. Aplicaciones Distribuidas Carrera: Ingeniera de Sistemas
CARACTERISTICAS TRANSPARENCIA: Transparencia de distribucin ni cliente ni servidor necesitan saber si la aplicacin (objetos) est distribuida o centralizada Transparencia de localizacin(caso distribuido) el cliente no necesita saber donde ejecuta el servicio el servicio no necesita saber donde ejecuta el cliente Ing. Vanessa Jurado Vite Mag. Aplicaciones Distribuidas Carrera: Ingeniera de Sistemas
CARACTERISTICAS INDEPENDENCIA DE PLATAFORMA: CORBA tiene su propio lenguaje para describir interfaces de objetos (IDL) el cual puede ser compilado en una variedad de lenguajes de programacin y plataformas. Es posible tener interfaces CORBA para un navegador (browser) basado en Java del lado cliente, una aplicacin PC basadas en C++, y una aplicacin LINUX basada en C del lado servidor. PORTABILIDAD: Los objetos software pueden ser reusados en varias partes del sistema. El software no necesita ser llevado a diferentes lenguajes de programacin o plataformas, ya que CORBA provee los mecanismos para acceder todos los objetos. Ing. Vanessa Jurado Vite Mag. Aplicaciones Distribuidas Carrera: Ingeniera de Sistemas
CARACTERISTICAS INTEGRACIN: Integracin de componentes de software de varias fuentes. Se pueden proveer interfaces para sistemas heredados - legado (legacysystems) INTEROPERATIVIDAD: CORBA 2 IOR (Interoperable Object Reference) Protocolo de comunicacin e IDL estandarizados para evitar conflictos entre implementaciones de diferentes vendedores. Ing. Vanessa Jurado Vite Mag. Aplicaciones Distribuidas Carrera: Ingeniera de Sistemas
CARACTERISTICAS LOCALIZACIN TRANSPARENTE: CORBA ofrece servicios de nombrado para objetos nmada (cambio constante de ubicacin) y mecanismos de invocacin transparente para la localizacin de objetos. ESCALABILIDAD No hay restricciones al crecimiento del nmero de objetos y usuarios en el sistema. Facilita la migracin de plataformas pequeas centralizadas a grandes entornos distribuidos.
Ing. Vanessa Jurado Vite Mag. Aplicaciones Distribuidas Carrera: Ingeniera de Sistemas
CARACTERISTICAS ACTIVACIN DE OBJETOS Los objetos remotos no tienen que estar en memoria permanentemente. Se hace de manera invisible para el cliente. COMUNICACIN FLEXIBLE mltiples modos de comunicacin sncrona: tipo invocacin de mtodos / RPC asncrona: sin respuesta mltiples modelos de comunicacin invocacin esttica invocacin dinmica Ing. Vanessa Jurado Vite Mag. Aplicaciones Distribuidas Carrera: Ingeniera de Sistemas
POSIBILIDAD DE INTERACCIN ENTRE DIFERENTES TECNOLOGAS: normalizacin de las interfaces entre las diversas tecnologas y poder as combinarlas.
Ing. Vanessa Jurado Vite Mag. Aplicaciones Distribuidas Carrera: Ingeniera de Sistemas
CARACTERISTICAS Orientado objetos (encapsulacin, herencia, polimorfismo) Comunicacin por invocacin de mtodos remotos (RMI mas fcil de programar que Sockets, RPC, etc.) STUB representante local del objeto remoto encargado de la comunicacin con el objeto remoto SKELETON encargado de la comunicacin con el cliente CLIENTE SERVIDOR DE GRANO FINO interacciones son de tipo cliente-servidor papeles: misma entidad puede actuar como cliente o servidor SEPARACION INTERFAZ IMPLEMENTACION Define un contrato CORBA IDL (Interface Definition Language) Multilenguaje: Mapeo IDL ->Lenguajes de programacin Ing. Vanessa Jurado Vite Mag. Aplicaciones Distribuidas Carrera: Ingeniera de Sistemas
ELEMENTOS CORBA (IR) Interface Repository Repositorio de Interfaces Base de datos en tiempo de ejecucin con versiones mquina de las interfaces IDL El ORB solicita los servicios al IR para: comunicarse con otros ORB de distinta implementacin. verificar los parmetros de la peticin verificar la existencia de ciclos en los grafos de herencia Los clientes solicitan los servicios al IR para: navegar por la lista de interfaces facilitar la instalacin y distribucin de objetos Un ORB puede tener varios IR segn la necesidad (prueba, release, externos, ...) Interface Repository Ing. Vanessa Jurado Vite Mag. Aplicaciones Distribuidas Carrera: Ingeniera de Sistemas
ELEMENTOS CORBA IDL COMPILER Compilador IDL El IDL Compiler se encarga de compilar las interfaces. Generar el proxy o stub del lado del cliente y el skeleton o stub del lado del servidor a partir de las interfaces ya compiladas. El cliente y el servidor no estn obligados a utilizar el mismo lenguaje de programacin. IDL COMPILER Ing. Vanessa Jurado Vite Mag. Aplicaciones Distribuidas Carrera: Ingeniera de Sistemas
ELEMENTOS CORBA Implementation Repository Repositorio de implementaciones Contiene informacin que permite al ORB localizar y activar las implementaciones de objetos. Proporciona y almacena informacin de administracin de cada uno de los objetos , clases que admite el servidor, los objetos que se crean, los objetos instanciados, modo de activarlos, permisos, identidad de los objetos, etc. Implementation Repository Ing. Vanessa Jurado Vite Mag. Aplicaciones Distribuidas Carrera: Ingeniera de Sistemas
ELEMENTOS CORBA Client Cliente Entidad de programa capaz de hacer peticin de un servicio (a un objeto). Obtiene una referencia de uno o ms objetos remotos en el servidor Invoca a sus mtodos. Client Ing. Vanessa Jurado Vite Mag. Aplicaciones Distribuidas Carrera: Ingeniera de Sistemas
ELEMENTOS CORBA Object Implementation (SERVANT) Servidor de Implementacin de objetos Implementacin de una entidad en un lenguaje de programacin (en cualquiera de los soportados). Define las operaciones que soporta una determinada interfaz (CORBA IDL) Cdigo generado al compilar una interfaz IDL para el cliente y el servidor (implementador de objeto). Object Objetos Entidad de programacin CORBA. Tiene una identidad, una interfaz, y una implementacin (Servant), es encapsulable. Object Implementation (Servant) Ing. Vanessa Jurado Vite Mag. Aplicaciones Distribuidas Carrera: Ingeniera de Sistemas
ELEMENTOS CORBA
El servidor Crea objetos remotos Hace accesibles refs a objetos remotos Espera a que los clientes invoquen a estos objetos remotos o a sus mtodos SERVIDOR Ing. Vanessa Jurado Vite Mag. Aplicaciones Distribuidas Carrera: Ingeniera de Sistemas
ELEMENTOS CORBA Identifica de forma exclusiva cada objeto Contenidos Nombre Tipo (ID repositorio) Protocolo y detalles de servicios Clave de objeto (nombre del adaptador objeto, nombre de objeto) Client Object Implementation (Servant) OBJ REF (IOR) Operacin (args) Resultado (args) Referencia de objeto: identificador nico de un objeto como un puntero puede ser nil: no apunta a ningn objeto. puede estar colgando: apunta a un objeto inalcanzable o que no existe punteros persistentes o transitorios a objetos. puede convertirse entre forma interna y forma cadena.
Interoperable Object Reference Referencia a objetos interoperable Ing. Vanessa Jurado Vite Mag. Aplicaciones Distribuidas Carrera: Ingeniera de Sistemas
ELEMENTOS CORBA (ORB CORE) Object Request Broker Mediador de peticiones a objetos Ncleo de la arquitectura CORBA. Proporciona transparencia entre los clientes y las implementaciones de los objetos. Cuando un cliente invoca una operacin, ORB busca la implementacin del objeto, lo activa si es necesario, transmite la peticin y devuelve la respuesta al cliente mediante serializacin. Facilita la comunicacin entre cliente y servidor ocultando: la localizacin, la implementacin (lenguaje o S.O.), el estado de ejecucin y el mecanismo de comunicacin de los objetos. Permite conexin con otros ORBs. PROTOCOLO: GIOP - General InterORB Protocol / IIOP Internet InterORB Protocol ORB Core GIOP/IOOP Ing. Vanessa Jurado Vite Mag. Aplicaciones Distribuidas Carrera: Ingeniera de Sistemas
Protocolo GIOP
El GIOP es un protocolo abstracto por el cual los ORBs se comunican. La arquitectura de GIOP proporciona una serie de protocolos entre los que se encuentran: Internet InterORB Protocol (IIOP): implementacin de GIOP para su uso por internet, proporcionando una interfaz entre los mensajes GIOP y la capa TCP/IP. SSL InterORB Protocol (SSLIOP): protocolo IIOP sobre SSL, proporcionando encriptacin y autenticacin. HyperText InterORB Protocol (HTIOP): protocolo IIOP sobre HTTP, proporcionando transparencia remota. Zipped IOP (ZIOP): una versin comprimida de GIOP que reduce el uso de ancho de banda.
GIOP/IOOP Ing. Vanessa Jurado Vite Mag. Aplicaciones Distribuidas Carrera: Ingeniera de Sistemas
ELEMENTOS CORBA (DII) Dinamic Invocation Interface Interfaz de invocacin dinmica Los clientes descubren las interfaces en tiempo de ejecucin y aprenden cmo llamarlas. Permite la construccin dinmica de invocaciones a objetos. Llama a una rutina especfica para una operacin particular en un objeto particular. El cliente especifica el objeto a ser invocado, la operacin y el conjunto de parmetros (esto lo obtiene del Interface Repository) Dynamic Invocation Interface Client Ing. Vanessa Jurado Vite Mag. Aplicaciones Distribuidas Carrera: Ingeniera de Sistemas
ELEMENTOS CORBA (IDL) Interface Definition Language lenguaje de definicin de interfaz IDL ofrece la sintaxis necesaria para definir los mtodos que se desean invocar remotamente. Se utiliza para definir las interfaces entre los componentes de una aplicacin y es quien soporta la interoperabilidad de la tecnologa. Slo puede definir interfaces, no implementaciones; por lo tanto es el encargado de asegurar la independencia del lenguaje de programacin utilizado. IDL define los tipos de datos de una forma independiente del lenguaje, utilizando las correspondencias necesarias, de tal manera que estos sean correctamente intercambiados entre lenguajes distintos (un tipo long en C++ de 32 bits puede corresponderse con un int de Java) Ing. Vanessa Jurado Vite Mag. Aplicaciones Distribuidas Carrera: Ingeniera de Sistemas
ELEMENTOS CORBA (IDL) Interface Definition Language lenguaje de definicin de interfaz IDL STUB (Cabos) Interfaz que ve el cliente El stub es la representante del servidor (objeto remoto) en el lado cliente (proxy) Es esttica a los servicios declarados en las interfaces IDL. Realiza la invocacin de mtodos remotos, la serializacin, la recepcin de respuestas y la deserializacin de objetos. Para el cliente todas las llamadas parecen locales. El cliente puede tener tantos stubs como interfaces IDL existan. Define rutinas especficas para operaciones particulares en objetos particulares Definido en IDL y se transforma al lenguaje de programacin del Cliente. La transformacin entre CORBA IDL y el lenguaje de programacin se realiza automticamente por el IDL COMPILER Cliente IDL Stub Ing. Vanessa Jurado Vite Mag. Aplicaciones Distribuidas Carrera: Ingeniera de Sistemas
ELEMENTOS CORBA (IDL) Interface Definition Language lenguaje de definicin de interfaz
IDL STATIC SKELETON Es el cdigo generado para el servidor y consiste en unos esqueletos que el desarollador tiene que rellenar para implementar los mtodos del objeto. Es el representante esttico del cliente en el servidor. Ofrece una interfaz esttica a cada servicio del objeto. Para el servidor todas las llamadas parecen locales. Es generado a partir del IDL por un compilador IDL y realiza la deserializacin de las invocaciones del cliente. Definido en IDL y se transforma al lenguaje de programacin del Servant IDL Skeleto n Objetos (servidor) Ing. Vanessa Jurado Vite Mag. Aplicaciones Distribuidas Carrera: Ingeniera de Sistemas
ELEMENTOS CORBA ORB INTERFACE Entidad de programacin CORBA. Interfaz de comunicacin con el ORB para solicitarle servicios al propio ORB Conversin de referencias de objetos a cadenas (serializados). Tiene una identidad, una interfaz, y una implementacin (conocida como Servant). ORB Interface Client Object Implementation (Servant) Ing. Vanessa Jurado Vite Mag. Aplicaciones Distribuidas Carrera: Ingeniera de Sistemas
ELEMENTOS CORBA DINAMIC SKELETON INTERFACE Permite el manejo dinmico de las invocaciones a objetos. Recibe las peticiones y averigua a que objetos van dirigidas. Son muy utilizados en la construccin de Bridgesentre ORBs. Se pueden usar para generar dinmicamente objetos. Es el equivalente en el servidor al DII del cliente. Se proporciona acceso a travs de un nombre de operacin y parmetros. Dynamic Skeleton Interface Object Implementation (Servant) Ing. Vanessa Jurado Vite Mag. Aplicaciones Distribuidas Carrera: Ingeniera de Sistemas
ELEMENTOS CORBA OBJECT ADAPTER Conecta al ORB con la implementacin del objeto para realizar los servicios que el ORB proporciona (a otros objetos y clientes): generacin e interpretacin de referencias a objetos invocacin de mtodos seguridad de las interacciones activacin y desactivacin del objeto y su implementacin mapeo de las referencias de los objetos a sus implementaciones Registra objetos en el repositorio de implementaciones POA (PortableObjectAdapter): adaptador de objetos estndar (desde 98). ORB Interface Object Adapter Object Implementation (Servant) Ing. Vanessa Jurado Vite Mag. Aplicaciones Distribuidas Carrera: Ingeniera de Sistemas
FUNCIONAMIENTO Como se realiza la invocacin? EL CLIENTE: Necesita la referencia del objeto remoto, tipo de objeto, nombre de operacin a invocar. Tiene que gestionar las excepciones producidas por su llamada. LA INVOCACIN: Se realiza usando un stub generado a partir del IDL. Usando invocacin dinmica a travs de DII. El ORB: Encuentra el cdigo de la implementacin apropiada. Transmite los parmetros. Transfiere el control a la Implementacin de la Interfaz a travs de: esqueleto IDL, esqueleto dinmico (DII), Informa de excepciones en el proceso (ej. referencias IOR o IDL no vlidas)
Ing. Vanessa Jurado Vite Mag. Aplicaciones Distribuidas Carrera: Ingeniera de Sistemas
FUNCIONAMIENTO Como se recibe la peticin? En tiempo de ejecucin la invocacin pasa por: El stub del cliente El ORB El adaptador de objetos Encuentra el objeto adecuado Viaja por los skeletons del servidor Realiza la invocacin sobre el objeto Realiza el mismo camino de vuelta