Architecture orientée services

Définition, exemples et bonnes pratiques

À retenir

  • Modularité : Le système est découpé en pièces détachées interchangeables.
  • Réutilisation : Un service développé pour une application peut être utilisé par une autre.
  • Interopérabilité : Des programmes écrits dans des langages différents peuvent travailler ensemble grâce à des protocoles standards.

L'architecture orientée services est une méthode de conception informatique qui découpe un système complexe en plusieurs unités autonomes et spécialisées, appelées services. Chaque service remplit une fonction précise et communique avec les autres via des règles de dialogue standards, un peu comme des départements indépendants d'une grande entreprise qui s'échangeraient des formulaires normalisés pour collaborer sans avoir besoin de connaître les secrets de fabrication les uns des autres.

Étymologie

Le terme est une traduction directe de l'anglais Service-Oriented Architecture (SOA). Apparu à la fin des années 1990, ce concept visait à sortir du modèle des logiciels « monoblocs » (monolithes) pour faciliter l'interconnexion entre des systèmes informatiques disparates au sein des grandes organisations.

Exemples d'usage

  • Un système bancaire où le service « Consultation de solde » est physiquement séparé du service « Passation de virement », permettant de maintenir l'un sans impacter l'autre.
  • Une plateforme de réservation de billets qui appelle un service externe pour le paiement, un autre pour l'envoi de SMS de confirmation et un troisième pour la mise à jour des stocks.

Cas d'usage

On l'utilise principalement dans les grandes entreprises pour faire communiquer des logiciels de gestion différents (ERP, CRM) ou pour bâtir des applications cloud évolutives qui doivent supporter des modifications fréquentes sans risque de panne généralisée.

Bonnes pratiques

Il est essentiel de privilégier le couplage faible : les services doivent être le plus indépendants possible. Il faut également définir des contrats d'interface rigoureux (API) pour que chaque service sache exactement quelles données envoyer et recevoir.

Synonymes

SOA architecture à base de services

Antonymes

architecture monolithique intégration point à point silotage applicatif architecture spaghetti

Conseil

Pour bien appréhender ce concept, commencez par comprendre comment fonctionnent les API. C'est l'outil technique principal qui permet de mettre en œuvre une architecture orientée services aujourd'hui.

Questions fréquentes

Quelle est la différence entre SOA et microservices ?

La SOA est le concept fondateur, souvent appliqué à l'échelle d'une entreprise pour lier de gros logiciels. Les microservices sont une évolution plus moderne et plus fine, où chaque minuscule fonction d'une même application devient un service indépendant.

Est-ce que SOA utilise forcément le Web ?

Très souvent oui (via des services Web), mais ce n'est pas une obligation technique ; les services peuvent communiquer via d'autres protocoles de réseau interne.