Sistemas Distribuidos y Middleware: Optimización y Conectividad

Introducción

Motivación

  • Empresas multinacionales con múltiples sucursales.
  • Empresas con sistemas heterogéneos (OS400, Unix, Windows).
  • Necesidad de compartir información entre usuarios o aplicaciones.
  • Necesidad de procesamiento paralelo o concurrente.

Definición

Un sistema distribuido es una colección de computadores independientes que aparecen ante el usuario como un único computador.

Características

  • Mayor rendimiento: Capacidad de procesamiento paralelo.
  • Mayor confiabilidad: Si un computador falla, otro puede seguir operando.
  • Mayor escalabilidad: Permite aumentar la capacidad agregando nuevos computadores.
  • Heterogeneidad: Cluster con nodos de distinto tipo.
  • Mayor conectividad: Acceso heterogéneo para usuarios y aplicaciones.
  • Transparencia: Acceso a recursos sin importar su ubicación física.
  • Replicación: Mayor disponibilidad de recursos.
  • Seguridad: Control global de acceso y administración.
  • Concurrencia: Acceso concurrente de usuarios y aplicaciones.

Tipos de Sistemas Distribuidos

  • Sistemas operativos distribuidos: Computador monoprocesador compartiendo recursos a través de una máquina virtual. Computador multiprocesador compartiendo datos a través de memoria compartida (transparente al usuario, requiere sincronización).
  • Computadores conectados en red: Comparten recursos a través de la red (NFS, Samba).
  • Middleware de integración: Bases de datos distribuidas, objetos distribuidos, mensajería.

Middleware

Definición

Corresponde a un tipo de software que facilita la comunicación entre dos componentes de software a través del uso de interfaces o mensajería. Provee un ambiente de ejecución para manipular los requerimientos entre componentes.

Tipos

Bases de datos distribuidas

  • Permite compartir datos entre varios computadores.
  • Provee acceso transparente a usuarios y aplicaciones.
  • Acceder a datos en forma remota, permitiendo ejecutar consultas o actualizaciones en un ambiente distribuido (múltiples computadores).
  • Permite compartir datos en plataformas heterogéneas (AIX, Unix, Windows, etc).
  • Bases de datos como ORACLE y DB2 implementan esta característica.
  • Estándares como ODBC y JDBC permiten un fácil acceso a bases de datos en forma remota.

Objetos distribuidos

  • Permite la invocación remota de objetos.
  • Basado en interfaces.
  • Extiende los conceptos de programación orientada a objetos para un ambiente distribuido.
  • Similar a RPC (Remote Procedure Call), permite acceder a interfaces de objetos distribuidos en forma remota.
  • Su desventaja es su complejidad, además genera un alto grado de acoplamiento.
  • Tecnologías como EJB, CORBA y DCOM han llegado a ser muy populares y están basadas en estándares internacionales.
Ejemplo: CORBA

Common Object Request Broker Architecture es una tecnología independiente de cualquier plataforma y que permite la creación de objetos e invocación de métodos remotos.

  • CORBA es un estándar definido por la OMG (Object Management Group), la cual basa su especificación en el framework OMA (Object Management Architecture).
Object Request Broker

Un ORB (Object Request Broker) es un componente que puede comunicarse con otros ORB para proveer acceso a objetos distribuidos a través de múltiples plataformas.

  • ORB provee las siguientes funciones:
    • Transparencia de sistemas operativos.
    • Servicios de ciclo de vida de objetos.
    • Invocación remota de métodos.
  • ORB simplifica la programación distribuida, desacoplando del cliente los detalles de invocación remota, simulando una llamada local.
CORBA Services

Provee una capa de servicios sobre ORB que permite su implementación de una manera estándar.

  • Esta capa contiene funcionalidad de objetos distribuidos necesaria para el desarrollo de una aplicación distribuida, haciendo de CORBA más fácil de usar.
  • La OMG ha estandarizado muchos servicios CORBA.
    • Ciclo de vida: Servicio que permite crear, copiar y mover objetos.
    • Naming: Servicio de directorio análogo a JNDI o LDAP.
    • Collection: Servicio que provee interfaces para agrupar objetos.
    • Security: Provee interfaces para servicios de autenticación, autorización, auditoría y no-repudiación.
    • Persistence: Permite almacenar objetos en forma persistente.
IBM Component Broker

Es una solución empresarial para objetos distribuidos en un ambiente operacional, más un conjunto de herramientas que forman parte de WebSphere Application Server.

  • IBM Component Broker es un ORB (implementación de CORBA más un conjunto de CORBA Services y CORBA Facilities).
  • Interfaces a objetos se definen en IDL (Interface Definition Language), permitiendo generar automáticamente esqueletos en distintos lenguajes (Java, C++).
Sun Enterprise Java Beans

Enterprise Java Beans (EJB) define un modelo para el desarrollo y deployment de componentes Java altamente reusables.

  • Un servidor de aplicaciones J2EE provee un ambiente de ejecución para componentes EJB (EJB Container).
  • Un componente EJB puede integrarse con cualquier tecnología parte de la especificación J2EE: JDBC, JNDI, JSP, Servlets, JTA, JMS, Java IDL (soporta CORBA, incluye un compilador IDL).

Middleware de mensajería

  • Basado en el envío y recepción de mensajes.
  • Permite comunicar aplicaciones en ambientes heterogéneos.
  • Permite comunicación asíncrona.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.