Un système distribué est un ensemble de programmes informatiques qui utilisent des ressources informatiques sur plusieurs nœuds de calcul distincts pour atteindre un objectif commun et partagé.
Les systèmes distribués visent à éliminer les goulots d'étranglement ou les points centraux de défaillance d'un système.
« Un système réparti est un ensemble de processeurs (sites/nœuds) interconnecté par un réseau dans lequel chaque processeur a sa propre mémoire et ses propres périphériques ». « Un système réparti est un système dans lequel une machine dont vous n'avez jamais entendu parler auparavant vous empêche de travailler ».
Les objets distribués sur le réseau (et qui ne se trouvent pas au même endroit) communiquent par messages en s'appuyant sur des technologies spécifiques comme Common Object Request Broker Architecture ou CORBA qui permet à différents objets écrits en différents langages tels que C++ ou Java de communiquer entre eux.