SlideShare una empresa de Scribd logo
1 de 23
Descargar para leer sin conexión
Modelo Cliente – Servidor:
Tiene como idea fundamental la estructuración del S. O. como:
Direccionamiento en C – S:

Para que un cliente pueda enviar un mensaje a un servidor, debe conocer
la dirección de éste.

La primitiva tiene al menos dos argumentos:
    • La dirección del proceso a quien el mensaje debe ir dirigido.
    • La dirección de un buffer con los datos a enviar.
De forma genérica el formato es:
    • Enviar(dirección_destino,&mensaje)
Ejemplos
En UNIX
    • write(int fd, char*buffer, tamBuffer)
Implantación del Modelo C – S:

Direccionamiento:
     Número de máquina.
     Direcciones ralas de procesos.
     Búsqueda de nombres en ASCII por medio del servidor.
Bloqueo:
     Primitivas con bloqueo.
     Sin bloqueo, con copia al núcleo.
     Sin bloqueo, con interrupciones.
Almacenamiento en buffers:
     No usar el almacenamiento en buffers, descartar los mensajes inesperados.
     Sin almacenamiento en buffers, mantenimiento temporal de los mensajes inesperados.
     Buzones.
Confiabilidad:
     No confiable.
     Solicitud - reconocimiento - respuesta - reconocimiento.
     Solicitud - respuesta - reconocimiento.
Existen 34 = 81 combinaciones, pero no todas son igual de buenas.
Confiabilidad:
Los principales tipos de paquetes son los siguientes:
REQ: Solicitud.                 REP: Respuesta.               ACK: Reconocimiento.

De cliente a servidor.          De servidor a cliente.        De cualquiera de ellos a algún
El cliente desea servicio.      Respuesta del servidor al     otro.
                                cliente.                      El paquete anterior que ha
                                                              llegado.

AVA: ¿ Estás vivo ?             IAA: Estoy vivo.              TA: Intenta de nuevo.

De cliente a servidor.          De servidor a cliente.        De servidor a clientes.
Verifica si el servidor se ha   El servidor no se ha          El servidor no tiene espacio.
descompuesto.                   descompuesto.

                                AU: Dirección desconocida.

                                De servidor a cliente.
                                Ningún proceso utiliza esta
                                dirección.
Llamada a un Procedimiento Remoto (RPC)

INTRODUCCIÓN
Inconveniente del Modelo cliente servidor utilizando primitivas de
paso de mensaje:
El modelo cliente - servidor es una forma conveniente de
estructurar un S. O. distribuido, pero posee una falencia :
• La comunicación se basa en operaciones de entrada / salida.
   Los procedimientos send / receive están reservados para la
   realización de e / s.
Es complejo desarrollar aplicaciones distribuidas basadas en
este tipo de operaciones
Llamada a un Procedimiento Remoto (RPC)
Es un mecanismo que permite que un proceso pueda invocar
procedimientos que se encuentran en otro proceso de otra
máquina.
 El Objetivo principal que persigue es la transparencia
-FUNCIONAMIENTO
●
    Cuando un proceso en la máquina “A” llama a un procedimiento en la máquina “B”:
●
    El proceso que realiza la llamada se suspende.
●
    La ejecución del procedimiento se realiza en “B”.
●
 La información se puede transportar de un lado al otro mediante los parámetros y
puede regresar en el resultado del procedimiento.
●
    El programador no se preocupa de una transferencia de mensajes o de la e / s.
●
    A este método se lo denomina llamada a procedimiento remoto o RPC.
●
 El procedimiento que hace la llamada y el que la recibe se ejecutan en máquinas
diferentes, es decir que utilizan espacios de direcciones distintos.
Llamada a un Procedimiento Remoto (RPC)

PROBLEMA A RESOLVER


• El procedimiento que invoca y el invocado se ejecutan en máquinas diferentes

• El paso de parámetros es complejo, sobretodo si las máquinas son diferentes

• Fallos en las máquinas o en la red
Llamada a un Procedimiento Remoto (RPC)

EXISTEN VARIAS FORMAS DE PASAR PARAMETROS
A PROCEDIMIENTO
- Por valor
- Por referencia
- Por copia/restauración
La ida es que una llamada a un procedimiento remoto (RPC) se
parezca lo más posible a una llamada local:
PROBLEMA
- Los mecanismos de paso de mensajes dependen del lenguaje de
programación
Ejemplos
           Los lenguajes C/C++ tiene paso por valor y paso por referencia
           El lenguaje Java tiene paso por referencia
Llamada a un Procedimiento Remoto (RPC)
SOLUCIÓN EMPLEADA PARA CONSEGUIR EL OBJETIVO DE LA
TRASPARENCIA

– Utilizar funciones que se encarguen de todos los detalles de
bajo nivel:
• Empaquetamiento/desempaquetamiento de mensajes
• Envío/recepción de mensajes
• Control de errores
- Estas funciones se suelen denominar stubs
• Existen funciones stub tanto en el cliente como en
el servidor
• En algunos sistemas, se utiliza el término skeleton
para hacer referencia al stub de un servidor
(CORBA)
Llamada a un Procedimiento Remoto (RPC)

PASO DE PARAMETRO
Llamada a un Procedimiento Remoto (RPC)

     PASO DE PARAMETRO
• El procedimiento cliente llama al stub del cliente de la manera usual.
• El stub del cliente construye un mensaje y hace un señalamiento al núcleo.
• El núcleo envía el mensaje al núcleo remoto.
• El núcleo remoto proporciona el mensaje al stub del servidor.
• El stub del servidor desempaca los parámetros y llama al servidor.
• El servidor realiza el trabajo y regresa el resultado al stub.
• El stub del servidor empaca el resultado en un mensaje y hace un señalamiento al núcleo.
• El núcleo remoto envía el mensaje al núcleo del cliente.
• El núcleo del cliente da el mensaje al stub del cliente.
• El stub desempaca el resultado y regresa al cliente.
Llamada a un Procedimiento Remoto (RPC)

Vinculación entre clientes y servidores
• Se denomina vinculación (binding) al proceso por el cuál un
cliente conoce la dirección de un servidor

• Cuestiones a considerar

1. Cómo indica el cliente a qué servidor quiere vincularse

2. Localización del servidor

3. Cuándo se produce la vinculación en el cliente

• Los dos primeros puntos son similares al problema del
direccionamiento en el paso de mensajes

– Lo habitual es usar un servidor de nombres
INTRODUCCIÓN A LOS OBJETOS DISTRIBUIDOS


• En la actualidad
– La orientación a objetos es el paradigma de programación
predominante
• La orientación a objetos
– Ofrece un conjunto de técnicas para el diseño y desarrollo
de software que favorece el diseño modular y la reutilización
de código
• Estas ventajas son también de interés en el
ámbito de los sistemas distribuidos
– Como consecuencia, en los sistemas distribuidos se utiliza
un paradigma basado en objetos distribuidos
INTRODUCCIÓN A LOS OBJETOS DISTRIBUIDOS


• Un objeto distribuido es
– Una entidad compuesta por un estado oculto y por una
interfaz pública
– Las operaciones (o métodos) pueden ser invocados
de forma local o remota por un proceso o por otro
objeto distribuido
• Comparación con RPC
– En RPC se invocan procedimientos; con objetos distribuidos
se invocan operaciones de objetos
– Las operaciones de los objetos pueden tener a su vez objetos
como argumentos, y pueden devolver objetos como valor de
retorno
INTRODUCCIÓN A LOS OBJETOS DISTRIBUIDOS


• El mecanismo de invocación de objetos es
denominado
– Invocación de métodos remotos (Remote Method
Invocation o RMI)
• Ejemplos de sistemas basados en objetos
distribuidos
– CORBA (Common Object Request Broquer Architecture)
– Java RMI
– Microsoft DCOM
INTRODUCCIÓN A LOS OBJETOS DISTRIBUIDOS
INTERFACES

• En general

La interfaz de un módulo de programa especifica los procedimientos y las
variables del módulo que son accesibles desde otros módulos

• En programas distribuidos

• Los módulos pueden ejecutarse en procesos que están en distintas máquinas
• Como consecuencia, un módulo no puede acceder a las variables de un módulo
remoto
• Por este motivo, las interfaces usadas tanto en RPC como RMI no permiten el
acceso a directo a las variables del módulo
• Tampoco se permiten punteros en los argumentos y valores de retorno de las
operaciones
INTRODUCCIÓN A LOS OBJETOS DISTRIBUIDOS

• Cuando un objeto es distribuido
– La referencia al objeto debe permitir acceder al objeto distribuido
• Arquitectura básica (CORBA)
INTRODUCCIÓN A LOS OBJETOS DISTRIBUIDOS

• Adaptador de objetos (CORBA)
– Constituye el medio de enlazar los sirvientes con el middleware
– Es una entidad que adapta la interfaz de un objeto a una interfaz diferente,
que es la que espera el cliente
• Hay que tener en cuenta que el cliente y el objeto pueden estar escritos en
lenguajes diferentes
• Mediante herencia o delegación permite que un cliente invoque servicios
de un objeto sin conocer cuál es la interfaz real del objeto
– Permite establece políticas de activación
• Un sirviente representa todos los objetos
• Se crea un sirviente por objeto, bajo demanda
• Vinculación estática entre objeto y sirviente
• Ar
Comunicación en Grupo

Una hipótesis subyacente e intrínseca de RPC es que la comunicación solo es entre dos
partes: el cliente y el servidor.

A veces existen circunstancias en las que la comunicación es entre varios procesos y no
solo dos:

   Un grupo de servidores de archivo que cooperan para ofrecer un único servicio de
   archivos tolerante a fallos: Sería recomendable que un cliente envíe el mensaje a
   todos los servidores para garantizar la ejecución de la solicitud aunque alguno falle.

   RPC no puede controlar la comunicación de un servidor con muchos receptores, a
   menos que realice RPC con cada uno en forma individual.



“Un grupo es una colección de procesos que actúan juntos en
cierto sistema o alguna forma determinada por el usuario”
Comunicación en Grupo

Cuando un mensaje se envía, todos los miembros del grupo lo reciben.

Se trata de una comunicación uno – muchos ( un emisor – muchos receptores ),

Los grupos son dinámicos

La implantación de la comunicación en grupo depende en gran medida del hardware:

   En ciertas redes es posible crear una dirección especial a la que escuchan varias
   máquinas ( multitransmisión ).

   Las redes que no soportan multitransmisión operan con transmisión simple, son
   menos eficientes, ya que se deben enviar un paquete por cada máquina, y cada
   máquina debe verificarlo mediante su software si le corresponde o no.

   En estos casos, conviene crear grupos pequeños.
Comunicación en Grupo

Aspectos del Diseño de la Comunicación en Grupo
  ●   Grupos Cerrados vs Grupos Abiertos
  ●   Grupos de Compañeros vs Grupos Jerárquicos
  ●   Membresía del Grupo
  ●   Direccionamiento al Grupo
  ●   Primitivas Send y Receive
  ●   Atomicidad
  ●   Ordenamiento de Mensajes
  ●   Grupos Translapados
  ●   Escalabilidad

Más contenido relacionado

La actualidad más candente (12)

Bosquejo general
Bosquejo generalBosquejo general
Bosquejo general
 
Proyecto integrado
Proyecto integradoProyecto integrado
Proyecto integrado
 
Practica cliente servidor java
Practica cliente servidor javaPractica cliente servidor java
Practica cliente servidor java
 
Programacion en sockets informe
Programacion en sockets informeProgramacion en sockets informe
Programacion en sockets informe
 
Semana 10 servidores y clientes
Semana 10 servidores y clientesSemana 10 servidores y clientes
Semana 10 servidores y clientes
 
Semana 11 servidrores concurrentes ok
Semana 11 servidrores concurrentes okSemana 11 servidrores concurrentes ok
Semana 11 servidrores concurrentes ok
 
Dhcp
DhcpDhcp
Dhcp
 
Aplicaciones
AplicacionesAplicaciones
Aplicaciones
 
Comunicación entre procesos Sistemas distribuidos
Comunicación entre procesos Sistemas distribuidosComunicación entre procesos Sistemas distribuidos
Comunicación entre procesos Sistemas distribuidos
 
63997661 tecnologia-cliente-servidor-con-java
63997661 tecnologia-cliente-servidor-con-java63997661 tecnologia-cliente-servidor-con-java
63997661 tecnologia-cliente-servidor-con-java
 
Practica1
Practica1Practica1
Practica1
 
11 aplicaciones tcp ip
11 aplicaciones tcp ip11 aplicaciones tcp ip
11 aplicaciones tcp ip
 

Destacado (7)

Remote procedure calls
Remote procedure callsRemote procedure calls
Remote procedure calls
 
Remote Procedure Call
Remote Procedure CallRemote Procedure Call
Remote Procedure Call
 
Sun RPC (Remote Procedure Call)
Sun RPC (Remote Procedure Call)Sun RPC (Remote Procedure Call)
Sun RPC (Remote Procedure Call)
 
Restauración de archivos eliminados de un celular
Restauración de archivos eliminados de un celularRestauración de archivos eliminados de un celular
Restauración de archivos eliminados de un celular
 
remote procedure calls
  remote procedure calls  remote procedure calls
remote procedure calls
 
La información y sus fuentes
La información y sus fuentesLa información y sus fuentes
La información y sus fuentes
 
Fuentes Primarias y Secundarias
Fuentes Primarias y SecundariasFuentes Primarias y Secundarias
Fuentes Primarias y Secundarias
 

Similar a Unidad II

Capitulo 2 comunicacion
Capitulo 2 comunicacionCapitulo 2 comunicacion
Capitulo 2 comunicacionErick Jamett
 
Arquitectura cliente servidor 2
Arquitectura cliente servidor 2Arquitectura cliente servidor 2
Arquitectura cliente servidor 2jc_lovecraft77
 
Unidad 2
Unidad 2Unidad 2
Unidad 2rey
 
SISTEMAS DISTRIBUIDOS COMUNICACION UNIDAD 2.pptx
SISTEMAS DISTRIBUIDOS COMUNICACION UNIDAD 2.pptxSISTEMAS DISTRIBUIDOS COMUNICACION UNIDAD 2.pptx
SISTEMAS DISTRIBUIDOS COMUNICACION UNIDAD 2.pptxAdolfoEuan2
 
Ccna explorationTEMA III
Ccna explorationTEMA IIICcna explorationTEMA III
Ccna explorationTEMA IIIaktivfinger
 
Sesion 08 tel202 2010-1
Sesion 08   tel202 2010-1Sesion 08   tel202 2010-1
Sesion 08 tel202 2010-1kevinXD123
 
Introducción a la programación en internet
Introducción a la programación en internetIntroducción a la programación en internet
Introducción a la programación en internetcristinaig123
 
Sistemas cliente servidor
Sistemas cliente   servidorSistemas cliente   servidor
Sistemas cliente servidorJramos_95
 
Programación de Base de Datos - Unidad II: Aplicaciones con Arquitectura Clie...
Programación de Base de Datos - Unidad II: Aplicaciones con Arquitectura Clie...Programación de Base de Datos - Unidad II: Aplicaciones con Arquitectura Clie...
Programación de Base de Datos - Unidad II: Aplicaciones con Arquitectura Clie...José Antonio Sandoval Acosta
 
Semana 11 servidrores concurrentes
Semana 11 servidrores concurrentes Semana 11 servidrores concurrentes
Semana 11 servidrores concurrentes JH Terly Tuanama
 
Arquitectura Cliente Servidor desarrollo
Arquitectura Cliente Servidor desarrolloArquitectura Cliente Servidor desarrollo
Arquitectura Cliente Servidor desarrollobleanosb
 
COMUNICACIÓN DISTRIBUIDA
COMUNICACIÓN DISTRIBUIDACOMUNICACIÓN DISTRIBUIDA
COMUNICACIÓN DISTRIBUIDADiana
 

Similar a Unidad II (20)

SEMANA 6.pptx
SEMANA 6.pptxSEMANA 6.pptx
SEMANA 6.pptx
 
Capitulo 2 comunicacion
Capitulo 2 comunicacionCapitulo 2 comunicacion
Capitulo 2 comunicacion
 
Modelo cliente servidor bcva 45_a
Modelo cliente servidor bcva 45_aModelo cliente servidor bcva 45_a
Modelo cliente servidor bcva 45_a
 
RPC
RPCRPC
RPC
 
Arquitectura cliente servidor 2
Arquitectura cliente servidor 2Arquitectura cliente servidor 2
Arquitectura cliente servidor 2
 
Unidad 2
Unidad 2Unidad 2
Unidad 2
 
SISTEMAS DISTRIBUIDOS COMUNICACION UNIDAD 2.pptx
SISTEMAS DISTRIBUIDOS COMUNICACION UNIDAD 2.pptxSISTEMAS DISTRIBUIDOS COMUNICACION UNIDAD 2.pptx
SISTEMAS DISTRIBUIDOS COMUNICACION UNIDAD 2.pptx
 
Ccna explorationTEMA III
Ccna explorationTEMA IIICcna explorationTEMA III
Ccna explorationTEMA III
 
Sesion 08 tel202 2010-1
Sesion 08   tel202 2010-1Sesion 08   tel202 2010-1
Sesion 08 tel202 2010-1
 
Cliente servidor
Cliente servidorCliente servidor
Cliente servidor
 
Cliente servidor
Cliente servidorCliente servidor
Cliente servidor
 
Introducción a la programación en internet
Introducción a la programación en internetIntroducción a la programación en internet
Introducción a la programación en internet
 
Sistemas cliente servidor
Sistemas cliente   servidorSistemas cliente   servidor
Sistemas cliente servidor
 
Programación de Base de Datos - Unidad II: Aplicaciones con Arquitectura Clie...
Programación de Base de Datos - Unidad II: Aplicaciones con Arquitectura Clie...Programación de Base de Datos - Unidad II: Aplicaciones con Arquitectura Clie...
Programación de Base de Datos - Unidad II: Aplicaciones con Arquitectura Clie...
 
Clientes servidor
Clientes servidorClientes servidor
Clientes servidor
 
Semana 11 servidrores concurrentes
Semana 11 servidrores concurrentes Semana 11 servidrores concurrentes
Semana 11 servidrores concurrentes
 
RMI en java
RMI en javaRMI en java
RMI en java
 
Arquitectura Cliente Servidor desarrollo
Arquitectura Cliente Servidor desarrolloArquitectura Cliente Servidor desarrollo
Arquitectura Cliente Servidor desarrollo
 
COMUNICACIÓN DISTRIBUIDA
COMUNICACIÓN DISTRIBUIDACOMUNICACIÓN DISTRIBUIDA
COMUNICACIÓN DISTRIBUIDA
 
Servidores
ServidoresServidores
Servidores
 

Más de Luis Morán

Más de Luis Morán (6)

Unidad V
Unidad VUnidad V
Unidad V
 
Unidad IV
Unidad IVUnidad IV
Unidad IV
 
Unidad VI
Unidad VIUnidad VI
Unidad VI
 
Unidad III
Unidad IIIUnidad III
Unidad III
 
Unidad I
Unidad IUnidad I
Unidad I
 
Programacion en bash
Programacion en bashProgramacion en bash
Programacion en bash
 

Unidad II

  • 1. Modelo Cliente – Servidor: Tiene como idea fundamental la estructuración del S. O. como:
  • 2. Direccionamiento en C – S: Para que un cliente pueda enviar un mensaje a un servidor, debe conocer la dirección de éste. La primitiva tiene al menos dos argumentos: • La dirección del proceso a quien el mensaje debe ir dirigido. • La dirección de un buffer con los datos a enviar. De forma genérica el formato es: • Enviar(dirección_destino,&mensaje) Ejemplos En UNIX • write(int fd, char*buffer, tamBuffer)
  • 3. Implantación del Modelo C – S: Direccionamiento: Número de máquina. Direcciones ralas de procesos. Búsqueda de nombres en ASCII por medio del servidor. Bloqueo: Primitivas con bloqueo. Sin bloqueo, con copia al núcleo. Sin bloqueo, con interrupciones. Almacenamiento en buffers: No usar el almacenamiento en buffers, descartar los mensajes inesperados. Sin almacenamiento en buffers, mantenimiento temporal de los mensajes inesperados. Buzones. Confiabilidad: No confiable. Solicitud - reconocimiento - respuesta - reconocimiento. Solicitud - respuesta - reconocimiento. Existen 34 = 81 combinaciones, pero no todas son igual de buenas.
  • 5. Los principales tipos de paquetes son los siguientes: REQ: Solicitud. REP: Respuesta. ACK: Reconocimiento. De cliente a servidor. De servidor a cliente. De cualquiera de ellos a algún El cliente desea servicio. Respuesta del servidor al otro. cliente. El paquete anterior que ha llegado. AVA: ¿ Estás vivo ? IAA: Estoy vivo. TA: Intenta de nuevo. De cliente a servidor. De servidor a cliente. De servidor a clientes. Verifica si el servidor se ha El servidor no se ha El servidor no tiene espacio. descompuesto. descompuesto. AU: Dirección desconocida. De servidor a cliente. Ningún proceso utiliza esta dirección.
  • 6.
  • 7. Llamada a un Procedimiento Remoto (RPC) INTRODUCCIÓN Inconveniente del Modelo cliente servidor utilizando primitivas de paso de mensaje: El modelo cliente - servidor es una forma conveniente de estructurar un S. O. distribuido, pero posee una falencia : • La comunicación se basa en operaciones de entrada / salida. Los procedimientos send / receive están reservados para la realización de e / s. Es complejo desarrollar aplicaciones distribuidas basadas en este tipo de operaciones
  • 8. Llamada a un Procedimiento Remoto (RPC) Es un mecanismo que permite que un proceso pueda invocar procedimientos que se encuentran en otro proceso de otra máquina.  El Objetivo principal que persigue es la transparencia -FUNCIONAMIENTO ● Cuando un proceso en la máquina “A” llama a un procedimiento en la máquina “B”: ● El proceso que realiza la llamada se suspende. ● La ejecución del procedimiento se realiza en “B”. ● La información se puede transportar de un lado al otro mediante los parámetros y puede regresar en el resultado del procedimiento. ● El programador no se preocupa de una transferencia de mensajes o de la e / s. ● A este método se lo denomina llamada a procedimiento remoto o RPC. ● El procedimiento que hace la llamada y el que la recibe se ejecutan en máquinas diferentes, es decir que utilizan espacios de direcciones distintos.
  • 9. Llamada a un Procedimiento Remoto (RPC) PROBLEMA A RESOLVER • El procedimiento que invoca y el invocado se ejecutan en máquinas diferentes • El paso de parámetros es complejo, sobretodo si las máquinas son diferentes • Fallos en las máquinas o en la red
  • 10. Llamada a un Procedimiento Remoto (RPC) EXISTEN VARIAS FORMAS DE PASAR PARAMETROS A PROCEDIMIENTO - Por valor - Por referencia - Por copia/restauración La ida es que una llamada a un procedimiento remoto (RPC) se parezca lo más posible a una llamada local: PROBLEMA - Los mecanismos de paso de mensajes dependen del lenguaje de programación Ejemplos Los lenguajes C/C++ tiene paso por valor y paso por referencia El lenguaje Java tiene paso por referencia
  • 11. Llamada a un Procedimiento Remoto (RPC) SOLUCIÓN EMPLEADA PARA CONSEGUIR EL OBJETIVO DE LA TRASPARENCIA – Utilizar funciones que se encarguen de todos los detalles de bajo nivel: • Empaquetamiento/desempaquetamiento de mensajes • Envío/recepción de mensajes • Control de errores - Estas funciones se suelen denominar stubs • Existen funciones stub tanto en el cliente como en el servidor • En algunos sistemas, se utiliza el término skeleton para hacer referencia al stub de un servidor (CORBA)
  • 12. Llamada a un Procedimiento Remoto (RPC) PASO DE PARAMETRO
  • 13. Llamada a un Procedimiento Remoto (RPC) PASO DE PARAMETRO • El procedimiento cliente llama al stub del cliente de la manera usual. • El stub del cliente construye un mensaje y hace un señalamiento al núcleo. • El núcleo envía el mensaje al núcleo remoto. • El núcleo remoto proporciona el mensaje al stub del servidor. • El stub del servidor desempaca los parámetros y llama al servidor. • El servidor realiza el trabajo y regresa el resultado al stub. • El stub del servidor empaca el resultado en un mensaje y hace un señalamiento al núcleo. • El núcleo remoto envía el mensaje al núcleo del cliente. • El núcleo del cliente da el mensaje al stub del cliente. • El stub desempaca el resultado y regresa al cliente.
  • 14. Llamada a un Procedimiento Remoto (RPC) Vinculación entre clientes y servidores • Se denomina vinculación (binding) al proceso por el cuál un cliente conoce la dirección de un servidor • Cuestiones a considerar 1. Cómo indica el cliente a qué servidor quiere vincularse 2. Localización del servidor 3. Cuándo se produce la vinculación en el cliente • Los dos primeros puntos son similares al problema del direccionamiento en el paso de mensajes – Lo habitual es usar un servidor de nombres
  • 15. INTRODUCCIÓN A LOS OBJETOS DISTRIBUIDOS • En la actualidad – La orientación a objetos es el paradigma de programación predominante • La orientación a objetos – Ofrece un conjunto de técnicas para el diseño y desarrollo de software que favorece el diseño modular y la reutilización de código • Estas ventajas son también de interés en el ámbito de los sistemas distribuidos – Como consecuencia, en los sistemas distribuidos se utiliza un paradigma basado en objetos distribuidos
  • 16. INTRODUCCIÓN A LOS OBJETOS DISTRIBUIDOS • Un objeto distribuido es – Una entidad compuesta por un estado oculto y por una interfaz pública – Las operaciones (o métodos) pueden ser invocados de forma local o remota por un proceso o por otro objeto distribuido • Comparación con RPC – En RPC se invocan procedimientos; con objetos distribuidos se invocan operaciones de objetos – Las operaciones de los objetos pueden tener a su vez objetos como argumentos, y pueden devolver objetos como valor de retorno
  • 17. INTRODUCCIÓN A LOS OBJETOS DISTRIBUIDOS • El mecanismo de invocación de objetos es denominado – Invocación de métodos remotos (Remote Method Invocation o RMI) • Ejemplos de sistemas basados en objetos distribuidos – CORBA (Common Object Request Broquer Architecture) – Java RMI – Microsoft DCOM
  • 18. INTRODUCCIÓN A LOS OBJETOS DISTRIBUIDOS INTERFACES • En general La interfaz de un módulo de programa especifica los procedimientos y las variables del módulo que son accesibles desde otros módulos • En programas distribuidos • Los módulos pueden ejecutarse en procesos que están en distintas máquinas • Como consecuencia, un módulo no puede acceder a las variables de un módulo remoto • Por este motivo, las interfaces usadas tanto en RPC como RMI no permiten el acceso a directo a las variables del módulo • Tampoco se permiten punteros en los argumentos y valores de retorno de las operaciones
  • 19. INTRODUCCIÓN A LOS OBJETOS DISTRIBUIDOS • Cuando un objeto es distribuido – La referencia al objeto debe permitir acceder al objeto distribuido • Arquitectura básica (CORBA)
  • 20. INTRODUCCIÓN A LOS OBJETOS DISTRIBUIDOS • Adaptador de objetos (CORBA) – Constituye el medio de enlazar los sirvientes con el middleware – Es una entidad que adapta la interfaz de un objeto a una interfaz diferente, que es la que espera el cliente • Hay que tener en cuenta que el cliente y el objeto pueden estar escritos en lenguajes diferentes • Mediante herencia o delegación permite que un cliente invoque servicios de un objeto sin conocer cuál es la interfaz real del objeto – Permite establece políticas de activación • Un sirviente representa todos los objetos • Se crea un sirviente por objeto, bajo demanda • Vinculación estática entre objeto y sirviente • Ar
  • 21. Comunicación en Grupo Una hipótesis subyacente e intrínseca de RPC es que la comunicación solo es entre dos partes: el cliente y el servidor. A veces existen circunstancias en las que la comunicación es entre varios procesos y no solo dos: Un grupo de servidores de archivo que cooperan para ofrecer un único servicio de archivos tolerante a fallos: Sería recomendable que un cliente envíe el mensaje a todos los servidores para garantizar la ejecución de la solicitud aunque alguno falle. RPC no puede controlar la comunicación de un servidor con muchos receptores, a menos que realice RPC con cada uno en forma individual. “Un grupo es una colección de procesos que actúan juntos en cierto sistema o alguna forma determinada por el usuario”
  • 22. Comunicación en Grupo Cuando un mensaje se envía, todos los miembros del grupo lo reciben. Se trata de una comunicación uno – muchos ( un emisor – muchos receptores ), Los grupos son dinámicos La implantación de la comunicación en grupo depende en gran medida del hardware: En ciertas redes es posible crear una dirección especial a la que escuchan varias máquinas ( multitransmisión ). Las redes que no soportan multitransmisión operan con transmisión simple, son menos eficientes, ya que se deben enviar un paquete por cada máquina, y cada máquina debe verificarlo mediante su software si le corresponde o no. En estos casos, conviene crear grupos pequeños.
  • 23. Comunicación en Grupo Aspectos del Diseño de la Comunicación en Grupo ● Grupos Cerrados vs Grupos Abiertos ● Grupos de Compañeros vs Grupos Jerárquicos ● Membresía del Grupo ● Direccionamiento al Grupo ● Primitivas Send y Receive ● Atomicidad ● Ordenamiento de Mensajes ● Grupos Translapados ● Escalabilidad