Está en la página 1de 5

Middleware: la capa emplea protocolos basados en mensajes entre procesos para proporcionar abstracciones de un nivel mayor, tales como

invocaciones remotas y eventos. Aspectos importantes: y y y y Transparencia frente a ubicacin Protocolos de comunicacin: son independientes de los protocolo de transporte subyacentes ejemplo protocolo peticin respuesta. Hardware de los computadores: se emplea en el empaquetado y desamquetado de mensajes. Sistemas Operativos

Interfaces Las Interfaces en los S.D. Los parmetros de entrada se pasan al mdulo remoto mediante el envo de los valores de los argumentos en el mensaje de peticin y posteriormente se proporcionan como argumentos a la operacin que se ejecutar en el servidor. Los parmetros de salida se devuelven en el mensaje de respuesta y se sitan como la respuesta de la llamada o reem plazando los valores de las correspondientes variables argumento en el entorno Cuando se proporciona un parmetro tanto como para entrada como para salida, el valor debe transmitirse tanto en los mensajes de la peticin como en los de la respuesta. Otra diferencia entre los mdulos locales y remotos es que los punteros en un proceso dejan de ser vlidos en el remoto. En consecuencia, no pueden pasarse punteros como argumentos o como valores retornados como resultado de las llamadas a los mdulos remotos. Interfaces de servicio: En el modelo cliente-servidor, cada servidor proporciona procedimientos disponibles para su empleo por los clientes. Por ejemplo, un servidor de archivos proporcionar procedimientos para leer y escribir archivos. El trmino interfaz de servicio se emplea para referirse a la especificacin de los procedimientos que ofrece un servidor, y define los tipos de los argumentos de entrada y salida de cada uno de los procedimientos. Interfaces remotas: En el modelo de objetos distribuidos, una interfaz remota especifica los mtodos de un objeto que estn disponibles para su invocacin por objetos de otros procesos, y define los tipos de los argumentos de entrada y de salida de cada uno de ellos. Sin embargo, la gran diferencia es que los mtodos en las interfaces remotas pueden pasar objetos como argumentos y como resultados de los mtodos. Lenguajes de definicin de interfaces. Se puede integrar un mecanismo RMI con un lenguaje de programacin concreto si incluye una notacin apropiada para definir interfaces, que permita relacionar los parmetros de entrada y de salida con el uso habitual de los parmetros en ese lenguaje.

El modelo de objetos distribuido Las invocaciones de mtodos entre objetos en diferentes procesos, tanto si es en el mismo computador o no, se conocen como invocaciones de mtodos remotas . Las invocaciones de mtodos entre objetos del mismo proceso son invocaciones de mtodos locales. Referencias a objetos remotos. La nocin de referencia a objeto se extiende para permitir que cualquier objeto que pueda recibir un RMI tenga una referencia a objeto remoto. Una referencia a objeto remoto es un identificador que puede usarse a lo largo de todo un sistema distribuido para referirse a un objeto remoto particular nico. Interfaces remotas. La clase de un objeto remoto implementa los mtodos de su interfaz remota, por ejemplo las instancias pblicas en Java. Los objetos en otros procesos pueden invocar solamente los mtodos que pertenezcan a su interfaz remota. Acciones en un sistema de objetos distribuido. Como en el caso no distribuido, una accin se inicia mediante la invocacin de un mtodo, que pudiera resultar en consiguientes invocaciones sobre mtodos de otros objetos. Compactacin automtica de memoria en un sistema de objetos distribuido. Si un lenguaje, por ejemplo Java, soporta compactacin automtica de memoria, entonces cualquier sistema RMI asociado debiera permitir la compactacin automtica de memoria para objetos remotos. Excepciones. Cualquier invocacin remota puede fallar por razones relativas a que el objeto invocado est en un proceso o computador diferente de la del objeto que lo invoca. Por ejemplo, el proceso que contiene el objeto remoto pudiera malograrse o estar demasiado ocupado para responder, o pudiera perderse el mensaje resultante de la invocacin. Semnticas de invocacin Semntica de la invocacin RMI. Las opciones principales son: Reintento del mensaje de peticin: donde se retransmite el mensaje de peticin hasta que, o bien se recibe una respuesta o se asume que el servidor ha fallado. Filtrado de duplicados: cuando se emplean retransmisiones, si se descartan las peticiones duplicadas en el servidor . Retransmisin de resultados: si se mantiene una historia de los mensajes de resultados para permitir retransmitir los resultados perdidos sin reejecutar las operaciones en el servidor. Semntica de invocacin pudiera ser: Con la semntica de invocacin pudiera ser, el que invoca no puede decir si un mtodo se ha ejecutado una vez, o ninguna en absoluto. La semntica pudiera ser aparece cuando no se aplica ninguna medida de tolerancia ante fallos. Esta puede padecer de

los siguientes tipos de fallo: . Fallos de omisin si se pierde la invocacin o el mensaje con el resultado . Fallos por cada cuando el servidor que contiene el objeto remoto falla Semntica de invocacin al menos una vez: Con la semntica de invocacin al menos una vez, el invocante recibe un resultado, en cuyo caso el invocante sabe que el mtodo se evalu al menos una vez, a menos que se reciba un .Fallos por cada cuando el servidor que contiene el objeto remoto falla. .Fallos arbitrarios. En casos donde el mensaje de invocacin se retransmite, el objeto remoto puede recibirlo y ejecutar el mtodo ms de una vez, provocando que se almacenen o devuelvan valores posiblemente errneosa excepcin informando que no se recibe ningn resultado. Semntica como mximo una vez: Con la semntica de invocacin como mximo una vez, el invocante recibe bien un resultado, en cuyo caso el invocante sabe que el mtodo se ejecut exactamente una vez, o una excepcin que le informa de que no se recibi el resultado, de modo que el mtodo se habr ejecutado o una vez o ninguna en absoluto. La semntica de invocacin como mximo una vez puede obtenerse utilizando todas las medidas de tolerancia frente a fallos. Sun RPC proporciona la semntica de llamadas al menos una vez. Implementacin de RMI Mdulo de comunicacin. Los dos mdulos cooperantes realizan el protocolo de peticin-respuesta, que retransmite los mensajes de peticin y respuesta entre el cliente y el servidor. El mdulo de comunicacin emplea slo los tres primeros elementos, que especifican el tipo de mensaje, su idPeticion y la referencia remota del objeto que se invoca. La idMetodo y todo el empaquetado y (desempaquetado es cuestin del software RMI. Mdulo de referencia remota. Un mdulo de referencia remota es responsable de traducir las referencias entre objetos locales y remotos, y de crear referencias a objetos remotos. Para soportar sus responsabilidades, el mdulo de referencia remota de cada proceso tiene una tabla de objetos remotos que almacena la correspondencia entre referencias a objetos locales en ese proceso y las referencias a objetos remotos (cuyo mbito es todo el sistema). EI software de RMI. ste consiste en una capa de software entre los objetos del nivel de aplicacin y los mdulos de comunicacin y de referencia remota. Los papeles de los objetos de middlewareware mostrados en la Figura 5.6 son como sigue: Proxy : el papel del proxy es hacer que la invocacin al mtodo remoto sea transparente para los clientes, y para ello se comporta como un objeto local para el que invoca; pero en lugar de ejecutar la invocacin, dirige el mensaje

al objeto remoto. Distribuidor: cada servidor tiene un distribuidor y un esqueleto para cada clase que represente a un objeto remoto. En nuestro ejemplo, el servidor tiene un distribuidor y un esqueleto clase del objeto remoto E. El distribuidor recibe el mensaje de peticin desde el mdulo de comunicacin. Emplea el idMetodo para seleccionar el mtodo apropiado del esqueleto, pasndole el mensaje de peticin. El distribuidor y el proxy emplean los mismos mtodos de asignacin de cada idMetodo para los mtodos de la interfaz remota. Esqueleto: la clase de un objeto remoto tiene un esqueleto, que implementa los mtodos interfaz remota. Se encuentran implementados de forma muy diferente de los mtodos del objeto remoto. Un mtodo del esqueleto desempaqueta los argumentos del mensaje de peticin, invoca el mtodo correspondiente en el objeto remoto. RPC Una llamada a un procedimiento remoto es muy similar a una invocacin a un mtodo remoto, en la que un programa cliente llama a un procedimiento de otro programa en ejecucin en un servidor. Los servidores pueden ser clientes de otros servidores para permitir cadenas de RPC. Un proceso servidor define en su interfaz de servicio los procedimientos disponibles para ser llamados remotamente. RPC, como RMI, puede implementarse para ofrecer alguna de las semnticas de invocacin discutidas, al menos una vez o como mximo una vez. RPC se implementa usualmente sobre un protocolo peticin-respuesta. Los contenidos de los mensajes de peticin y respuesta son los mismos que los que mostraron para RMI, excepto que se omite el campo ReferenciaObjeto. SUN RPC Sun RPC, se dise para la comunicacin cliente-servidor en el sistema de archivos en red Sun NFS. Sun RPC se denomina a menudo ONC (Computacin de Red Abierta -Open Network Computing) RPC se proporciona como parte de los varios sistemas operativos de Sun y otros del tipo UNIX.Los diseadores tienen la opcin de utilizar llamadas a procedimientos remotos sobre UDP o TCP. Utiliza la semntica de llamada al menos una vez. Como opcin existe la posibilidad de difusin de RPC. El sistema Sun RPC proporciona un lenguaje de interfaz denominado XDR y un compilador de interfaces llamado rpcgen cuyo uso est orientado al lenguaje de programacin C. Eventos y notificaciones Los sistemas distribuidos basados en eventos extienden el modelo local de eventos al permitir que varios objetos en diferentes ubicaciones puedan ser notificados de los eventos que tienen lugaren un objeto. Emplean el paradigma publica-suscribe, en el que un objeto que genera eventos

publica el tipo de eventos que ofrece para su observacin por otros objetos. Los objetos que desean recibir notificaciones de un objeto que haya publicado sus eventos se suscriben a los tipos de eventos que sean de inters para ellos. Los objetos que representan los eventos se denominan notificaciones o anuncios. Los sistemas distribuidos basados en eventos presentan dos caractersticas importantes: Heterogneos: cuando se emplean notificaciones como mecanismo de comunicacin entre objetos distribuidos, es posible hacer funcionar conjuntamente aquellos componentes del sistema distribuido que no han sido diseados con caractersticas de interoperabilidad. Todo lo que se requiere es que los objetos generadores de eventos publiquen los tipos de eventos que ofrecen, y que otros objetos se suscriban a los eventos y proporcionen una interfaz para recibir las notificaciones. Asncronos: las notificaciones se envan asncronamente desde los objetos generadores de eventos a todos los objetos que se hayan suscrito a ellos para prevenir que el que los anunciantes necesiten sincronizarse con los suscriptores; es preciso desacoplar los anunciantes de los suscriptores. Java RMI Java RMI extiende el modelo de objetos de Java para proporcionar soporte de objetos distribuidos en el lenguaje Java. En particular, permite que los objetos invoquen mtodos sobre objetos remots empleando la misma sintaxis que en las invocaciones locales. Adems, la comprobacin de tipos se aplica de modo igual en las invocaciones remotas como en las locales. Sin embargo, realice una invocacin remota conoce que su destino es remoto porque debe manejar RemoteExceptions; y el implementador de un objeto remoto conoce que es remoto porque debe implementar la interfaz Remote. A pesar de que el modelo de objetos distribuidos est integrado en Java de forma natural, la semntica de paso de parmetros difiere en que el objeto que invoca y el destino son remotos entre s. El programador de un objeto remoto debe considerar su comportamiento en un entorno concurrente.

También podría gustarte