COMUNICACIÓN DISTRIBUIDA

Post on 24-May-2015

3.620 views 0 download

description

Estrategias que permiten comunicación entre aplicaciones distribuidas

Transcript of COMUNICACIÓN DISTRIBUIDA

COMUNICACIÓN DISTRIBUIDA

SOCKETS

Permiten a procesos distribuidos comunicarse por una red.

Esta compuesto de una dirección IP concatenada con un número de puerto.

Utilizan una arquitectura cliente-servidor

Servidor: espera solicitudes provenientes del cliente escuchando a un puerto especificado.

El servidor acepta una conexión del socket del cliente para completar la conexión.

Servidores e Hilos

Un servidor podría manejar solicitudes concurrentes asignando un hilo distinto.

Por Ej. Un servidor web ocupado podría asignar un hilo distinto para dar servicio a cada solicitud de una pagina web.

Sockets en Java

Los sockets orientados a conexión (TCP) se implementan con la clase socket.

Los sockets sin conexión (UDP) utilizan la clase DatagramSocket.

El socketMulticastSocket, que es una subclase de DatagramSocket.

Invocación de métodos remotos

La RMI le permite a un hilo invocar un método en un objeto remoto.

Los objetos se consideran remotos si residen en una máquina virtual de java.

Diferencias entre RMI y RCP

Las RCP solo soporta programación de procedimientos, por lo que solo se pueden llamar procedimientos.

Las RMI está basada en objetos, soporta la invocación de métodos en objetos remotos.

Los parámetros para los procedimientos remotos son estructuras de datos ordinarias en la RCP.

En las RMI es posible pasar objetos como parámetros a métodos remotos

Al permitir que un programa en java invoque método en objetos remotos, la RMI hace posible que los usuarios desarrollen aplicaciones en Java que se distribuyen a lo largo de una red.

Para que los métodos remotos sean transparentes para el cliente y para el servidor, la RMI implementa el objeto remoto utilizando stub y esqueletos.

STUB

Es una red que distribuye paquetes desde y hacia sistemas locales.

Este componente a lado del cliente es responsable de crear un paquete que consiste en el nombre del método que se va a invocar en el servidor y los parámetros

El stub separa el valor de retorno y lo pasa al cliente.

Esqueleto

Una vez enviado el paquete al servidor, el esqueleto es responsable de separar los parámetros e invocar el método deseado en el servidor.

Luego pone en orden el valor de retorno (o excepción) en un paquete, devolviéndolo al cliente.

Objetos Remotos

Definimos a los Objetos remotos declarando una interfaz que especifica los métodos que pueden ser invocados en forma remota.

Por ejemplo, el paso de mensajes del problema de productor-consumidor los métodos son: send() y receive().

CORBACommon Object Request Broker Architecture

Arquitectura común de intermediarios en peticiones a objetos

CORBA

Es un estándar que establece una plataforma de desarrollo de sistemas distribuidos facilitando la invocación de métodos remotos bajo un paradigma orientado a objetos.

CORBA

CORBA "envuelve" el código escrito en otro lenguaje en un paquete que contiene información adicional sobre las capacidades del código que contiene, y sobre cómo llamar a sus métodos. Los objetos que resultan pueden entonces ser invocados desde otro programa (u objeto CORBA) desde la red. En este sentido CORBA se puede considerar como un formato de documentación legible por la máquina, similar a un archivo de cabeceras pero con más información.

CORBA

CORBA utiliza un lenguaje de definición de interfaces ( IDL) para especificar los interfaces con los servicios que los objetos ofrecerán. CORBA puede especificar a partir de este IDL la interfaz a un lenguaje determinado, describiendo cómo los tipos de dato CORBA deben ser utilizados en las implementaciones del cliente y del servidor.

CORBA

Al compilar una interfaz en el IDL se genera código para el cliente y el servidor (el implementador del objeto). El código del cliente sirve para poder realizar las llamadas a métodos remotos.

CORBA

CORBA es más que una especificación multiplataforma, también define servicios habitualmente necesarios como seguridad y transacciones. Y así este no es un sistema operativo en si, en realidad es un middleware.

CORBA

Middleware (SW de nivel medio): se trata de una capa de sw intermedio, que permite la comunicación entre aplicaciones heterogéneas cliente-servidor.

Integrantes:

Diana Poma Nina Caraguay Marcia Sarango Henry Campoverde.

GRACIAS