Los sistemas dis tribuidos existen en el mundo de la informática en una u otra forma desde hace algún  tiempo, aunque no se hayan llamado explícitamente sistemas distribuidos y no tuviesen la flexibilidad que  tienen hoy en día. 

Al principio sólo existían los grandes ordenadores o mainframes en los que se ejecut

aban Sistemas de gestión de Base de Datos (SGBD) jerárquicos. La conexión de los usuarios con el ordenador central se hacía mediante terminales tontas con conexiones punto a punto con el servidor. Los grandes ordenadores  tenían un coste muy elevado y eran difíciles de mantener pero eran capaces de dar servicio a un número  muy elevado de usuarios y tenían la ventaja (o desventaja) de ser administrados de forma centralizada.

En  este tipo de sistemas el software era monolítico, es decir, el interfaz de usuario, la lógica de negocio y el  acceso a las bases  de datos central. datos estaba todo contenido  en una gran aplicación que se ejecutaba en el   mainframe. Dado que las terminales utilizadas para con ectarse al ordenador central no tenían ninguna  capacidad de proceso, la aplicación entera se ejecutaba completamente en tu comptadora.

 
Un sistema distribuido se define como: una colección de computadoras separadas físicamente y conectadas entre sí por una red de comunicaciones distribuida; cada máquina posee sus componentes de hardware y software que el usuario percibe como un solo sistema (no necesita saber qué cosas están en qué máquinas). El usuario accede a los recursos remotos (RPC) de la misma manera en que accede a recursos locales, o un grupo de computadores que usan un software para conseguir un objetivo en común.

 

Los sistemas distribuidos deben ser muy confiables, ya que si un componente del sistema se descompone otro componente debe ser capaz de reemplazarlo, esto se denomina Toleran

cia a Fallos.