![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVj0wY3UunkaXEGfR-piG9EY57_n0nwH0FTXrd1_MmcjZEtHKMmcAH_U1v-GNtKaTUAenOnIbT-Wp156LJUPqkNkHfOrxi7Xnee5mk604hhzLFMsXqy2SyZipZ9MZhcsMP5MSBEHRQQwbF/s320/1.jpg)
La función de middleware es mediar la interacción entre las partes de una o varias aplicaciones, por lo tanto los problemas de arquitecturas juegan un papel central en el diseño de middleware. La arquitectura se ocupa de la organización, la estructura general y los patrones de comunicación, tanto para aplicaciones y middleware como para si mismo.
Ademas de los aspectos arquitectónicos, los principales problemas del diseño de middleware son las relativas a los diversos aspectos de los sistemas distribuidos. Cualquier sistema de middleware se basa en una capa de comunicación que permite a sus diferentes piezas para interoperar. Ademas, la comunicación es una función que proporciona a las aplicaciones de middleware propio, en el que las entidades comunicantes pueden asumir diferentes roles como cliente-servidor o peer ro peer. Middleware permite diferentes modos de interacción como: invocaciones síncronas, paso de mensajes asíncrono, la coordinación a través de objetos compartidos entre otras.
Las siguientes son las funciones principales de los middleware en los sistemas distribuidos:
- Ocultación de la distribución, es decir, el hecho de que una aplicación se compone generalmente de muchas partes interconectadas que se ejecutan en ubicaciones distribuidas.
- Como ocultar heterogeneidad de los componentes de hardware, sistemas operativos y protocolos de comunicación.
-Proporcionar uniformes, estándares, interfaces de alto nivel a los desarrolladores de aplicaciones e integradores, por lo que las aplicaciones pueden ser facilmente integradas, reutilizadas, adaptadas, y hechas para interoperar.
- Suministrar un conjuntos de servicios comunes a las diversas funciones de uso general, con el fin de evitar la duplicación de esfuerzos y para facilitar la colaboración entre las aplicaciones.