"Un sistema distribuido es una colección de computadores independientes que se presentan ante sus usuarios como un único sistema coherente." [Tanenbaum, 2001]
"Un sistema distribuido es aquel en el que componentes alojados en ordenadores conectados a una red de interconexión se comunican y coordinan sus acciones solamente mediante el paso de mensajes." [Coulouris, 2005]
La capa inferior se compone del hardware de los ordenadores y la red que constituyen las infraestructuras físicas del sistema.
La capa middleware construye un entorno uniforme. Desarrolla sus propios protocolos, formatos de datos, lenguajes y entornos de programación. Todos ellos constituyen un interface común.
En la parte superior están las aplicaciones y servicios distribuidos que han sido diseñados y desplegados utilizando el middleware. A menudo exponen sus funcionalidades mediante interfaces gráficos de usuario (Graphical User Interface, GUI), que pueden ser accedidos local o remotamente desde un navegador.
Las IPCs (Inter-Process Communications) son necesarias para intercambiar datos o coordinas procesos. Existen diversas abstracciones para las IPC: la memoria compartida, llamada a procedimientos remotos (Remote Procedure Call, RPC) y paso de mensajes.