You are on page 1of 20

Sistemas Distribuidos

Clase 13: objetos y componentes distribuidos.


Resumen
Debido a algunas deficiencias en el modelo de objetos
distribuidos, surge el modelo de componentes
distribuidos.

De forma sencilla, un componente es una unidad con


interfaces y dependencias especificadas de forma
explicita.
Resumen
Desde luego, cada unidad o módulo, encapsula un
conjunto de funciones, y a través de interfaces, el
componente puede comunicarse con otros
componentes. Si el componente requiere de otros
componentes, deberá especificar los servicios que
necesita.

Lo anterior es una gran ventaja con respecto a los


objetos distribuidos, en donde no es claro que otros
servicios emplean.
Resumen
Entonces, un componente especifica:

• Interfaces que ofrece.


• Interfaces requeridas.

Las interfaces soportan:

• Invocación de métodos remotos.


• Eventos distribuidos.
Componentes distribuidos
Observe que, componentes, interfaces y conexiones
entre interfaces, define lo que se conoce como
Arquitectura de Software.
Eventos distribuidos
Los eventos distribuidos, son un modelo de
comunicación, que son usados en técnicas de
comunicación indirecta.

La comunicación indirecta se basa en el principio de


que una cierta entidad lanza un evento o un mensaje,
el cual es reconocido por otra(s) entidad(es), por
aquellas que están interesadas.
Eventos distribuidos
Los sistemas que emplean el modelo de eventos
distribuidos se conocen también como Sistemas de
Publicación-Suscripción.

En este tipo de sistemas hay elementos que “publican”


eventos y “suscriptores” que muestran interés en
dicho evento.

Desde luego, solo los elementos “suscritos” puede


recibir eventos y eventualmente mostrar interés en
ellos.
Eventos distribuidos
Las características principales de los Sistemas de
Publicación-Suscripción son:

• Heterogeneidad.
• “Asíncronicidad”.

En donde, estos sistemas pueden ser:

• Centralizados.
• Distribuidos.
Componentes distribuidos
De forma más especifica, algunos problemas que se
pueden encontrar en los objetos distribuidos son:

1 Las dependencias son implícitas. Debido a que el


comportamiento de un objeto esta “oculto”; es decir,
un objeto podría tener llamadas ocultas a algún otro
servicio, lo cual podría hacer complicado su reemplazo.
Componentes distribuidos
2 Interacción con el middleware. En general, el
programador debe conocer y emplear algunos detalles
asociados con la arquitectura del middleware, esto de
alguna manera es una “distracción”, ya que el código
también debe incluir dichos detalles.

Los componentes permiten separar el código asociado


con la operación del programa y el código asociado con
el middleware.
Componentes distribuidos
3 No separación de aspectos no funcionales. Por
ejemplo, seguridad, coordinación o replicación, son
aspectos que no necesariamente se relacionan con la
operación de la aplicación, sin embargo, estos
servicios deben ser insertados, por lo que el
programador debe conocer los detalles de cada
servicio, lo cual incrementa la complejidad de
programación.

La separación de aspectos no funcionales y funcionales


permite, en la manera de lo posible, ocultar muchos
aspectos al programador.
Componentes distribuidos
4 Dispersión manual de objetos. Dada un cierta
configuración, los objetos deben ser desplegados en el
sistema distribuido de forma manual. Esto en general
puede ser un proceso de ensayo y error, el cual puede
ser muy complicado cuando el sistema posee una
enorme cantidad de nodos.

El middleware debe posee soporte para el desplegado


de objetos.
Componentes distribuidos
Además, otro aspecto importante de los sistemas
basados en componentes, es que permiten la
reconfiguración.

La filosofía de los sistemas de componentes


distribuidos, establecen un estilo de desarrollo
basado en ensamblado de software el cual, además,
permite paralelizar el hardware.
Componentes distribuidos
Los cuatro problemas anteriores, permitieron la
aparición de sistemas o middlewares basados en
componentes, de hecho este tipo de sistemas tienen
un nombre más especifico, llamados: servidores de
aplicación.
Componentes distribuidos
Contenedores:

Son un elemento central en los middleware basados


en componentes. Estos “contienen” uno o mas
componentes, proporcionan una interfaz al cliente y
administran el almacenamiento de los datos.
Componentes distribuidos
Como tal, los contenedores no dan acceso directo al
componente, pero:

• Encapsula los componentes.


• Captura las llamadas.
• Hace uso de los servicios distribuidos
(transparencia).
Modelos Arquitecturales
Una característica de los SD, es que todos sus
componentes se encuentran distribuidos, lo cual
requiere que su estructura este bien definida.

Sin embargo, en este caso, hay dos tipos de


organización que son susceptibles de poseer una
determinada estructura:

• Lógica.
• Física.
Modelos Arquitecturales
De manera general, estamos hablando de una
arquitectura de software, en la que se describe como
se organizan los componentes de software y el cómo
interactúan.

Tenemos arquitecturas:

• Centralizadas.
• Distribuidas.
Modelos Arquitecturales
Un aspecto importante en el modelo arquitectural, y
desde luego en los sistemas distribuidos, es el separar
la aplicación de la plataforma.

Más aun, en los sistemas distribuidos es importante


que estos posean cierto grado de adaptabilidad, lo cual
también se refleja en los modelos arquitecturales
(Sistemas Autónomos).
Fin de Clase 13

You might also like