¿Qué se puede considerar como middleware en un sistema distribuido?

A2A Tiendo a pensar en casi todo en su sistema distribuido típico como “middleware”. Para responder a esta pregunta, deberías considerar tu propia perspectiva. Por ejemplo, suponga que su sistema distribuido proporciona:

  • Almacenamiento distribuido de datos
  • Sincronización de tiempo
  • Seguridad
  • Nombrar
  • Programación
  • administración

Yo diría que todo esto es solo middleware para un desarrollador o usuario típico. Eso es porque nada de esto hace su trabajo .

El almacenamiento distribuido (que podría incluir sistemas de archivos, DHT, almacenes de clave / valor y bases de datos, por ejemplo) no es útil hasta que tenga algo que necesite almacenar de forma persistente.

La sincronización horaria a menudo es útil en un sistema distribuido solo porque a nuestros usuarios les gusta pensar en el ordenamiento temporal. Por supuesto, podemos resolver nuestro problema con Lamport o los relojes vectoriales. Incluso he visto sistemas que usan relojes sincronizados con GPS de alta precisión como una posible solución.

Es difícil imaginar la seguridad en un sistema distribuido que no sea “middleware”. Hay mucha complejidad en curso que el sistema intenta ocultar tanto como sea posible.

La asignación de nombres es importante: nos ayuda a asignar ID (nombres) bien conocidos al servicio en sí, pero una vez más, esto es solo un conjunto de complejidad que el usuario no quiere saber. Podría ser una combinación de DNS, configuración estática, X.500 y mecanismos de nombre propietarios, pero es aún más “cosas en el medio”.

Programación: nuestros usuarios son impacientes. Sabemos esto y tenemos que manejar la distribución de su carga de trabajo de la manera más eficiente posible para que obtengan los resultados que desean lo más rápido posible. No les importa cómo lo hacemos, solo les importa que lo hagamos.

Gestión: ningún sistema distribuido es útil sin herramientas de gestión. Esto incluye monitoreo, análisis de rendimiento, configuración de políticas e implementación. Una vez más, simplemente “cosas en el medio”. Ergo, middleware.

Si eres el usuario de un sistema distribuido, entonces todo es “cosas en el medio”, es fontanería. El único momento en que el usuario sabe que existe es cuando no funciona correctamente.

Lee Tanenbaum y van Steen.