You are on page 1of 62

UNIVERSIDAD POLITCNICA SALESIANA

Carrera de Ingeniera de Sistemas


Aplicaciones Distribuidas

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

CARACTERISTICAS
SOPORTA: Ada, C, C++, C++11, LISP, Ruby, Smalltalk,
Java, COBOL, PL/I y Python.

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

ARQUITECTURA
Object Request Broker (CORE ORB)
Dynamic
Invocation
Interface
IDL
Stubs
(Proxy)
ORB
Interface
IDL
Static
Skeletons
Dynamic
Skeleton
Interface
Object
Adapter
Interface
Repository
IDL COMPILER
Implementation
Repository
Client
Object Implementation
(Servant)
OBJ
REF (IOR)
Operacin (args)
Resultado (args)
IIOP/GIOP
SERVIDO
R
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

You might also like