Академический Документы
Профессиональный Документы
Культура Документы
RESÚMEN
Universidad 2 UNIDAD
Nacional de Briceño Montaño Javier Rodolfo
1
Trujillo
Contenido
2
I. LLAMADAS A PROCEDIMIENTOS REMOTOS
3
d. ¿Cómo se gestionan los pases de parámetros en una RPC?
En esta situación se deben examinar dos tipos de pases de parámetros, por
referencia y por valor.
Cuando se realiza un pase de parámetros por valor entonces el resguardo del
cliente toma sus parámetros y los coloca en un mensaje. También coloca el nombre o
el número del procedimiento por llamar en el mensaje porque el servidor puede soportar
muchas llamadas diferentes, y se le debe informar cuál llamada es requerida. Cuando
el mensaje llega al servidor, el resguardo lo examina para ver qué procedimiento se
necesita y realiza entonces la llamada adecuada. La llamada real del resguardo al
servidor parece la llamada cliente original, excepto por que los parámetros son variables
inicializadas desde el mensaje entrante.
Cuando se realiza un pase de parámetro por referencia, se realiza una copia del
arreglo a procesar, esta copia del arreglo se pasa como un mensaje, y es gestionado
por el servidor quien realiza sus operaciones sobre el mismo, el mensaje devuelto es el
mismo arreglo, con probables modificaciones que serán copiados o restaurados en su
posición de memoria inicial de la máquina cliente.
Pérdida del mensaje de petición (1): si un mensaje fue perdido, el cliente debe
retransmitir el mensaje despues de un tiempo de espera.
Pérdida del mensaje de respuesta (2): el proceso fue ejecutado en el servidor,
pero se perdió el mensaje con la respuesta al cliente.
Servidor caído (3): si el servidor falla mientras estaba completando la ejecución de
una llamada, debe ser capaz de quitar cualquier efecto colateral que se haya
producido por la ejecución parcial no finalizada.
Cliente caído (4): cuando un proceso cliente cae mientras espera la respuesta de
una RPC, se la denomina invocación huérfana. En este caso debe definirse si el
servidor debe enviar o no la respuesta.
4
h. ¿Cómo lograr que un RPC sea confiable con estás posibles fallas?
Para lograr confiabilidad en la comunicación, el uso de tiempo de espera exige que se
retransmitan los mensajes si no se reciben los mensajes de confirmado. Las diferentes
semánticas de RPCs puede ser:
“por-lo-menos-una-vez” (At-least-once): en este tipo de RPCs el servidor repite el
procesamiento del mensaje, aún si sólo se requiere una sola ejecución.
“exactamente-una-vez” (Exactly-once): en muchos casos, la repetición de la
ejecución de una petición puede destruir la consistencia de la información. De aquí la
necesidad de una primitiva que asegura que la petición fuese procesada una y sólo una
vez. Esta es la primitiva más deseada, pero la más difícil de implementar.
*Comentario Personal:
Las llamadas a procedimientos remotos son muy útiles en cuanto a
programación de aplicaciones que tengan la necesidad de intercambiar
información remotamente con otras máquinas, ya que disminuye complejidad y
robustez al código, así mismo da la impresión de estar tratando con
procedimientos locales.
A través de RMI, un programa Java puede exportar un objeto, con lo que dicho objeto estará
accesible a través de la red y el programa permanece a la espera de peticiones en un puerto
TCP. A partir de ese momento, un cliente puede conectarse e invocar los métodos
proporcionados por el objeto.
La invocación se compone de los siguientes pasos:
5
Al terminar la ejecución, el servidor serializa el valor de retorno (si lo hay) y lo envía al
cliente.
El código cliente recibe la respuesta y continúa como si la invocación hubiera sido local.
Comentario Personal:
La invocación de métodos remotos se hace muy interesante debido a que el paradigma
orientado a objetos es muy utilizado en el desarrollo de aplicaciones, y utilizar sus
propiedades para la comunicación remota hace una gran diferencia a la hora de
implementar estos tipos de comunicaciones.
a. Sockets
Para que dos programas puedan comunicarse entre sí es necesario que se cumplan
ciertos requisitos:
Que un programa sea capaz de localizar al otro y así le sea más fácil.
Que ambos programas sean capaces de intercambiarse cualquier
secuencia de octetos, es decir, datos relevantes a su finalidad.
Para ello son necesarios los dos recursos que originan el concepto de socket:
6
Este está diseñado para aplicaciones paralelas, el cual su nivel de abstracción es mucho
más alto que el que se evidencia en sockets. Provee una interface con primitivas más
avanzadas. Por el contrario, cuenta con una gran cantidad de implementaciones
(librería y protocolos) propietarias lo que genera la necesidad de una interface standard.
IV. CORBA
Muchas de los métodos de comunicaciones entre aplicaciones vienen limitados
por el hecho de que estos necesitan estar desarrollados en el mismo lenguaje
de programación para poder establecer un intercambio óptimo de datos.
Es por ello la necesidad de contar con una arquitectura que permita la
integración de tecnologías de diferente fabricante.
De esta manera nace CORBA que es una arquitectura de comunicaciones que
soporta la construcción e integración de tecnologías de diferente fabricante
independientemente del tiempo de creación, así como pueden intercambiar
información personas que dominan diferente idioma, sin importar que no sea
usado actualmente.
¿Qué se necesita para implementar CORBA?
Toda aplicación CORBA empieza con la definición de las interfaces de los
objetos que pueden distribuirse. Para ello se utiliza el lenguaje IDL. Esta
especificación establece un contrato entre cliente y servidor: qué servicios
(operaciones) ofrece el servidor al cliente.
Compilar la interfaz remota. El compilador genera todo el código fuente
mencionado en el paso anterior.
Implementar el servidor. A partir de los esqueletos que genera el compilador
idl es sencillo implementar el servidor.
Implementar el cliente. De una manera similar al servidor, el cliente hace uso
de los stubs generados en el paso 2.
Arrancar los programas. Una vez está todo implementado, se arranca el
servicio de nombrado, el servidor y finalmente, el cliente.
¿La Arquitectura CORBA es orientada a objetos?
Si está orientada a objetos, por lo que los objetos CORBA presentan muchas
características de otros sistemas orientados a objetos, incluyendo la herencia de
interfaces y el polimorfismo.
¿Cómo se la da la comunicación entre objetos?
Gracias a su ORB es que se permite la comunicación de objetos entre Cliente y
Servidor a través del "El bus de objetos", el cual es el intermediario entre clientes
y servidores que transmite las peticiones cliente-servidor y las respuestas
servidor-cliente. Se necesita un ORB en cada máquina.
7
¿Cuáles son los componentes de CORBA en el lado del cliente?
a. Stub IDL
Es el intermediario entre el cliente y el ORB, recoge del cliente llamadas
a métodos y las transmite al ORB. Por cada clase remota se requiere una
clase de STUB, además, es un componente que actúa como servidor,
puede estar ejecutándose en cualquier máquina conectada a la red que
recibe peticiones por parte de clientes que pueden ser locales o remotos.
b. Interfaz del ORB
Es un conjunto de librerías o APIs que definen funciones del ORB y que
el cliente puede acceder a él.
c. Repositorio de interfaces
Es una base de datos en tiempo de ejecución con versiones máquina de
las interfaces IDL.
d. Interfaz de invocación dinámica
Una interfaz de invocación dinámica permite la construcción dinámica de
invocaciones para un determinado objeto, ello garantiza que el cliente
pueda especificar el objeto, la invocación y los parámetros que se pasan
al servidor.
*Comentario Personal:
CORBA surge como una opción muy interesante para la comunicación de datos
entre aplicaciones desarrolladas en diferente lenguaje de programación, además
está comunicación es totalmente heterogénea, y de fácil migración. Si bien CORBA
aún no es aún un estándar para el desarrollo de aplicaciones, debido a que aún
tiene ciertas limitaciones, sus múltiples ventajas seguramente serán eje para su
utilización en el desarrollo de sistemas distribuidos.