distribuidos que se organizan a menudo en términos de una capa de software, esto es, que vienen colocados de manera lógica entre una capa de alto nivel que consta de usuarios y aplicaciones, y una capa subyacente constituida por sistemas operativos y recursos básicos de comunicación.
aplicaciones y las plataformas distribuidas. Un objetivo importante es proporcionar algún grado de transparencia de distribución, es decir, ocultar hacia cierto punto la distribución de los datos, el procesamiento, y el control de las aplicaciones.
diversas versiones de un sistema middleware, en donde cada versión se confeccione para una clase especifica de aplicaciones. Un método puede ser que los sistemas middleware sean fáciles de configurar, adaptar, y personalizar según necesite la aplicación. Como resultado, los sistemas se desarrollan de manera que la separación entre políticas y mecanismos sea mas estricta. Esto ha generado diversos mecanismos mediante los cuales puede modificarse el comportamiento del middleware.
que romperá el flujo usual de control y permitirá que otro código (aplicación especifica) se ejecute. Para hacer de los interceptores algo genérico se requiere un esfuerzo importante de implementación, en tales casos, es preferible generalizar sobre la aplicabilidad y la simplicidad. Además en muchos casos, tener solo capacidades limitadas de intercepción mejorará la administración del software y el sistema distribuido como un todo.
Lo que en realidad ofrecen los interceptores es un
medio para adaptar el middleware. La necesidad de adaptación surge del hecho de que el ambiente donde se ejecutan las aplicaciones distribuidas cambia continuamente. Los cambios incluyen a aquellos resultantes de la movilidad, de una fuerte variación en la calidad del servicio de las redes, de fallas en el hardware, y de descarga de baterías, entre otros.
Estas fuertes influencias del ambiente han llevado a
los diseñadores de middleware a considerar la construcción de SOFTWARE ADAPTATIVO. Sin embargo, este software no ha tenido tanto éxito como se anticipaba. Debido a que muchos investigadores y desarrolladores lo consideran como un aspecto importante de los sistemas distribuidos modernos. Existen 3 técnicas para lograr la adaptación del software. Separación de Temas Reflexión Computacional Diseño Basado en Componentes
Se relaciona con la forma tradicional de integrar a
los sistemas en módulos: Separar las partes que implementan la funcionalidad de aquellas encargadas de otras tareas (conocidas como funcionalidades adicionales) tales como la confiabilidad, el rendimiento, la seguridad, etc.
inspeccionarse a si mismo y , si es necesario, adaptar su comportamiento. La reflexión se ha construido en lenguajes de programación, incluso en java, y ofrece una poderosa herramienta para efectuar modificaciones en tiempo de ejecución.
composición. Un sistema puede ser configurado estáticamente al momento de diseñarlo, o dinámicamente en el tiempo de ejecución. Esto último requiere de soporte para vinculación tardía, una técnica aplicada con éxito en ambientes de lenguajes de programación y en sistemas operativos donde los módulos pueden cargarse y descargarse conforme se va necesitando.