Le Distributed computing est un phénomène aux multiples facettes avec des infrastructures en partie très différentes. Il est donc difficile de cerner toutes les variantes de Distributed computing. Cependant, on attribue le plus souvent trois sous-secteurs à ce sous-domaine de l’informatique :
- le cloud computing
- le grid computing
- le cluster computing
Dans le cloud computing,le calcul distribué est utilisé afin de mettre des infrastructures et des plates-formes rentables et très évolutives à disposition des clients. Les fournisseurs de cloud mettent généralement à disposition leurs capacités sous la forme de services hébergés accessibles via Internet. En pratique, différents modèles de services sont parvenus à s’imposer :
- Software as a Service (SaaS) : dans le cas d’un SaaS, le client utilise les applications d’un fournisseur de cloud ainsi que l’infrastructure correspondante (par ex. des serveurs, une mémoire en ligne, des capacités de calcul). Les applications sont accessibles sur différents appareils via une « Thin Client Interface » (par exemple une application Web basée sur un navigateur). L’entretien et l’administration de l’infrastructure délocalisée sont assurés par le fournisseur de cloud.
- Platform as a Service (PaaS) : dans le cas d’une PaaS un environnement basé sur le cloud est mis à disposition par exemple pour développer des applications Web. Le client dispose d’un contrôle sur les applications mises à disposition et peut procéder à des réglages spécifiques à l’utilisateur. Le fournisseur de cloud se charge de l’infrastructure technique nécessaire au Distributed computing.
- Infrastructure as a Service (IaaS) : dans le cas d’une IaaS, le fournisseur de cloud met à disposition une infrastructure technique à laquelle les utilisateurs peuvent accéder via des réseaux privés ou publics. L’infrastructure mise à disposition inclut notamment des composants tels que des serveurs, des capacités de calcul et des capacités réseau, des appareils de communication comme un routeur, des switches ou des pare-feu, de l’espace de stockage ainsi que des systèmes pour l’archivage et la sécurisation des données. De son côté, le client dispose d’un contrôle sur les systèmes d’exploitation et les applications mises à disposition.
Du point de vue de la conception, le grid computing ressemble à un superordinateur avec une énorme puissance de calcul. Les tâches de calcul ne sont toutefois pas traitées par une, mais par de nombreuses instances. Dans ce cadre, les serveurs et les PC peuvent réaliser différentes tâches sans dépendre les uns des autres. Pour exécuter ces tâches, le grid computing peut accéder de façon très flexible aux ressources. D’ordinaire, les participants mettent à disposition des capacités de calcul pour un projet global lorsque l’infrastructure technique n’est pas trop chargée.
L’avantage est que cette méthode permet d’utiliser rapidement des systèmes très performants et d’adapter la puissance de calcul si besoin est. Pour augmenter la puissance, il n’est pas nécessaire de se rééquiper avec un superordinateur plus coûteux encore.
Le grid computing permettant de générer un superordinateur virtuel à partir d’une grappe d’ordinateurs distants, il convient parfaitement pour résoudre des problèmes nécessitant une forte puissance de calcul. Ce procédé est souvent utilisé pour des projets ambitieux dans le domaine scientifique ou pour décrypter des codes cryptographiques.
Le cluster computing n’est pas facile à distinguer du cloud computing et du grid computing. Ce terme a toutefois une signification plus générale et fait référence à toutes les formes regroupant des ordinateurs individuels et leurs capacités de calcul en un cluster (en français « grappe »). Il existe par exemple des clusters de serveurs, des clusters dans le Big Data et les environnements cloud, des clusters de bases de données ainsi que des clusters d’applications. Par ailleurs, les grappes d’ordinateurs participent de plus en plus au High performance computing qui permet de résoudre des problèmes de calcul particulièrement exigeants.
Différents types de Distributed computing peuvent également être observés lorsque les architectures de système et les modèles d’interaction d’une infrastructure distribuée sont pris pour base. Du fait de la complexité des architectures de système du Distributed computing, on parle également de Distributed Systems (en français « systèmes distribués »).
Parmi les modèles répandus d’architectures de Distributed computing, on trouve :
- le modèle client-serveur
- le modèle pair-à-pair
- les architectures en couches
- l’architecture orientée service (en anglais service-oriented architecture ou SOA)
Le modèle client-serveurest un modèle d’interaction et de communication simple du Distributed computing. Un serveur reçoit une requête d’un client, réalise les procédures de traitement correspondantes et envoie une réponse (message, données, résultats de calcul) au client.
Une architecture pair-à-pair organise les interactions et la communication du calcul distribué selon des critères décentralisés. Tous les ordinateurs (également appelés nœuds) sont égaux et assurent les mêmes tâches et fonctions au sein du réseau. Chaque ordinateur est donc en mesure d’agir à la fois comme client et comme serveur. La blockchain des cryptomonnaies est un exemple d’architecture pair-à-pair.
Dans une architecture en couches, les différents aspects d’un système logiciel sont répartis sur plusieurs couches (en anglais tierlayer) ce qui permet d’augmenter l’efficacité et la flexibilité du Distributed computing. On rencontre souvent cette architecture de système, qui peut comporter deux ou trois couches selon les besoins, dans les applications Web.