# Architecture distribuée

L'architecture distribuée ou l'informatique distribuée désigne un système d'information ou un réseau pour lequel l'ensemble des ressources disponibles ne se trouvent pas au même endroit ou sur la même machine. Ce concept, dont une version peut être une combinaison de transmissions du type client-serveur, s'oppose à celui d'informatique centralisée.
Ce concept est mis en avant par le slogan "The network is the computer!" de Sun Microsystems et ses alliés Oracle et Netscape Communications, éditeur du logiciel de navigation Netscape Navigator au milieu des années 1990 et gagne ses premiers succès lors de la la bulle Internet de 1998-2000.
Internet est un exemple de réseau distribué puisqu'il ne possède aucun nœud central. Les architectures distribuées reposent sur la possibilité d'utiliser des objets qui s'exécutent sur des machines réparties sur le réseau et communiquent par messages au travers du réseau.

## Origines

Au début de l'informatique, le dialogue entre machines nécessitait une connaissance approfondie des protocoles réseau et parfois même du matériel réseau. La programmation orientée objet a permis le développement des architectures distribuées en fournissant des bibliothèques de haut-niveau pour faire dialoguer des objets répartis sur des machines différentes entre eux, ce qui a considérablement allégé le travail des programmeurs. Les objets distribués sur le réseau communiquent par messages en s'appuyant sur l'une des technologies suivantes :
* Common Object Request Broker Architecture ou CORBA : ce standard de l'Object Management Group permet de faire communiquer des objets écrits dans des langages différents (C++, Java, Smalltalk) et même d'encapsuler des programmes écrits dans des langages procéduraux pour les faire passer pour des objets ;
* Remote Method Invocation ou RMI : cette technologie de Sun permet de faire communiquer très simplement des objets java distribués sur le réseau ;
* Les services web XML ;
* .NET Remoting ;
* Windows Communication Foundation.

## Avantages
### Augmentation des ressources

Le seul fait de distribuer les traitements sur les ordinateurs d'un réseau augmente les ressources disponibles. En théorie, si le réseau est internet, tous les ordinateurs connectés constituent les ressources potentielles. C'est le sens du slogan de Sun : « The network is the computer » (« Le réseau, c'est l'ordinateur »). Les projets de calcul réparti tirent parti de cette formidable ressource de processeurs que sont les ordinateurs inactifs connectés à internet.
Un célèbre exemple de calcul distribué est SETI@Home issu du projet Search for Extraterrestrial Intelligence, qui met à contribution tous les ordinateurs volontaires d'internet pour détecter une intelligence extra-terrestre. Les ordinateurs effectuent la même tâche (décryptage de signaux spatiaux), chacun sur un coin de ciel différent. Ce projet a fédéré plus de 5 millions de personnes différentes à travers le monde et a crédibilisé le calcul partagé (à défaut d'avoir découvert des extraterrestres pour le moment). Les projets comportant des calculs parallélisables sont de bons candidats pour une architecture distribuée (séquençage de motifs d'ADN).

### Répartition des données et des services

Une architecture distribuée courante est l'architecture trois tiers à la base de la plupart des applications distribuées de commerce électronique. Cette architecture permet d'interroger et de mettre à jour des sources de données réparties. Les services web permettent de faire appel à différents serveurs pour enrichir une prestation l'achat d'un séjour touristique peut comprendre l'achat d'un billet d'avion, d'un séjour hôtelier et d'une assurance annulation auprès de différents vendeurs par l'intermédiaire de services web, donc d'objets distribués sur les réseaux et dialoguant par des messages.

## Modèle pair à pair

Le modèle pair à pair (peer-to-peer) est un exemple de réussite des architectures distribuées pour le partage de fichier où chaque ordinateur est à la fois serveur de données et client des autres. Ce modèle peut être appliqué au partage de ressource.

## Perspectives

L’une des évolutions attendues dans les temps à venir est le remplacement des achats de logiciels informatiques par des locations de ces mêmes logiciels, pour le temps nécessaire à leur utilisation. On peut imaginer, par exemple, qu'il sera possible, à partir d'un logiciel de traitement de texte, de faire appel à différents services de corrections orthographiques disponibles sur Internet, et dont on louera les services selon les besoins.