Qu'est-ce que l'architecture orientée services (SOA) ?

Michael Chen | Responsable de la stratégie de contenu | 28 mars 2024

L'architecture orientée services (SOA) est une approche de conception logicielle qui se concentre sur la création de systèmes logiciels fonctionnels et évolutifs à partir de composants individuels, appelés services. Les services peuvent interagir les uns avec les autres pour effectuer des tâches, telles que permettre à une personne de se connecter une seule fois et d'accéder à diverses applications métier. Dans l'architecture orientée services, l'accent est mis sur la modularité, la réutilisabilité et l'interopérabilité. Lorsque les entreprises décomposent des applications complexes en composantes plus petites et plus faciles à gérer, il en résulte une flexibilité et une évolutivité accrues.

Les services ne sont pas codés en dur dans les applications. Au lieu de cela, les services sont publiés dans un registre, et lorsqu'une application veut utiliser un service, elle demande au registre de trouver la dernière version. De cette façon, les services peuvent être facilement modifiés ou mis à jour par des personnes sans connaissance détaillée de l'application. Une approche SOA facilite l'adaptation aux besoins changeants de l'entreprise et l'intégration de systèmes fournissant des fonctionnalités connexes.

Avec l'architecture orientée services, les services individuels sont faiblement interdépendants et peuvent communiquer et transmettre des données en fonction des besoins. Par exemple, l'adoption d'une approche SOA pour développer un logiciel cloud présente des avantages, notamment :

  • Des cycles de développement plus rapides. En intégrant et en réorientant les services existants, les développeurs sont libérés de la nécessité de créer de nombreuses fonctions à partir de zéro.
  • Maintenance plus aisée. L'architecture orientée services permet de gérer individuellement les services sans créer d'impact en chaîne sur un projet de plus grande envergure. Le débogage et le dépannage peuvent être isolés pour une plus grande disponibilité.
  • Adaptabilité. L'architecture orientée services préserve la compatibilité descendante et facilite la planification à venir. Les développeurs peuvent intégrer des services plus anciens dans un environnement plus récent ou même remplacer des services datés par des versions plus récentes qui tirent parti du matériel mis à jour et de l'infrastructure cloud.
  • Évolutivité. Les services peuvent être surveillés par la couche de gestion SOA. Si les performances diminuent trop en raison de l'augmentation de la demande, de nouvelles instances d'un service peuvent être démarrées pour améliorer les performances. Les applications qui utilisent le service ne connaîtront pas les nouvelles instances, elles verront simplement que les niveaux d'exploitation restent acceptables.

Exemples d'architectures orientées services :

  • Sites et applications avec connexions universelles : de nombreuses entreprises cherchent à créer des environnements d'application où les collaborateurs n'ont besoin que d'un mot de passe pour accéder aux applications dont ils ont besoin. Une architecture orientée services permet de gérer la gestion de l'authentification par un ensemble de services qui sont ensuite utilisés par les applications de l'entreprise.
  • Applications proposant des analyses ou une IA dans les applications : l'un des avantages principaux des systèmes en cours d'exécution dans le cloud est la simplicité d'utilisation des services cloud pour améliorer les fonctionnalités d'une application. Les services cloud peuvent être simples, comme la création d'un graphique à partir d'un ensemble de données. Ils peuvent également être complexes ; pensez à permettre aux développeurs d'ajouter des fonctionnalités d'IA à une application via un ensemble d'appels de service.
  • Détaillants en ligne : L'architecture orientée service facilite le développement et la gestion des sites d'e-commerce grâce à l'utilisation de services qui extraient les données d'inventaire, suivent les achats, effectuent des paiements sécurisés et extraient des données générées par l'IA telles que les recommandations « les clients aiment aussi ».

Qu'est-ce que l'architecture orientée services (SOA) ?

Une architecture orientée services (SOA) est un paradigme de conception qui crée ou complète des applications avec des composantes autonomes et réutilisables (services) qui fournissent des fonctions spécifiques et peuvent être appelées sur un réseau. Chaque service a une portée définie et est accessible par d'autres composants ou services de l'architecture afin d'améliorer les fonctionnalités et les performances globales du système.

Parmi les services d'une architecture orientée service, citons un service de traitement des paiements, un service de gestion des clients ou un service de recommandation de produits pouvant être intégré à un site de e-commerce. D'autres services peuvent être beaucoup plus simples, comme celui de fournir l'heure actuelle dans une ville située à l'autre bout du monde. Comme exemple d'avantage puissant de l'utilisation de l'architecture orientée services, le basculement des processeurs de paiement peut être effectué sans modifier les applications qui doivent utiliser le service.

L'architecture orientée services constitue une infrastructure logicielle modulaire et flexible, dans laquelle des services individuels peuvent être développés, testés et déployés indépendamment. La facilité de maintenance et l'évolutivité en sont deux avantages clés.

L'architecture orientée services fonctionne en associant librement les services dans le cadre d'une application. Chaque service fonctionne comme un module capable de fournir les entrées/sorties demandées. L'application n'a pas besoin de connaître la version du service qu'elle utilise. Au lieu de cela, elle vérifie un registre et trouve le service le plus récent offrant les fonctionnalités nécessaires. Considérez le workflow suivant du site Web d'un détaillant construit avec un modèle SOA.

  1. Un acheteur saisit un identifiant de connexion unique à l'aide d'une adresse e-mail et d'un mot de passe reconnus. L'application de vente au détail envoie cette connexion au service d'autorisation pour authentification et charge le profil client lorsque la connexion est vérifiée.
  2. L'acheteur recherche ensuite un produit spécifique. La liste d'articles est connectée à un service d'inventaire qui extrait les données de disponibilité sur les sites physiques du client et dans les centres de traitement des expéditions.
  3. Le client effectue le paiement à l'aide d'un service de panier intégré, qui se connecte ensuite à un service de traitement des paiements pour une transaction sécurisée.
  4. Une fois la transaction terminée, l'acheteur peut extraire le statut de la commande à l'aide d'autres services pour extraire les données des services logistiques d'inventaire et d'expédition.

L'architecture orientée services accélère le développement de ce type de site en permettant l'intégration de services de manière standard. Dans cet exemple, le détaillant est non seulement épargné de la charge de développer chacun de ces modules individuellement, mais il est également libéré de la nécessité de suivre les mises à jour de service. Le service informatique peut simplement utiliser des services approuvés avec des fonctionnalités, une sécurité et une disponibilité éprouvées.

La clé du développement SOA est de penser de manière modulaire et de comprendre les opportunités d'intégration de services. Les applications développées dans le cloud peuvent facilement tirer parti d'un grand nombre de services SOA implémentés en tant que services Web.

10 tendances cloud que les DSI doivent suivre en 2024

Une infrastructure SOA modulaire et flexible offre des avantages majeurs aux entreprises qui adoptent le cloud. Voici d'autres grandes tendances.

FAQ sur l'architecture orientée service (SOA)

Qu'est-ce qu'un exemple d'architecture orientée services ?

Un exemple consommateur d'architecture orientée service est une application pour les coureurs. Plutôt que de créer des outils personnalisés pour le suivi de distance et les cartes, l'application peut intégrer des services pour l'appareil GPS du téléphone et un service de carte existant, tel que Google Maps. Il peut également obtenir la météo locale auprès du service météorologique national. C'est le travail de l'application de présenter les données de ces services facilement au profit du coureur.

En quoi l'architecture orientée service est-elle différente des microservices ?

L'architecture orientée service et les microservices ont un objectif similaire : fournir des fonctionnalités aux applications via des appels de fonction basés sur le réseau. Toutefois, l'architecture orientée service considère l'utilisation à un niveau étendu, généralement supérieur. Les microservices envisagent une utilisation au niveau de l'application et fournissent un service pour une tâche extrêmement spécialisée à répéter si nécessaire. Par exemple, un module d'extension d'authentification pour une connexion sécurisée est considéré comme faisant partie de l'architecture orientée service. Toutefois, un service reproductible qui chiffre le mot de passe est un microservice. Les microservices peuvent être appelés au sein d'un service SOA ou intégrés dans le projet de plus grande envergure. Dans cet exemple, le service d'authentification utilisera le microservice de chiffrage pour effectuer son travail. La portée est la principale différence entre les deux.

Quelles sont les principales caractéristiques d'une architecture orientée service ?

Les principales caractéristiques de l'architecture orientée service sont les suivantes :

  • Couplage libre de services indépendants, à partir d'un développement interne distinct ou d'une licence tierce, utilisés ensemble pour créer une application plus large.
  • L'interopérabilité permet de connecter les services à divers systèmes logiciels et de les mettre à jour sans affecter les performances des applications.
  • L'évolutivité des services peut être augmentée et réduite en fonction des besoins, à l'insu de l'application.
  • Maintenance déchargée car les développeurs de logiciels ne sont pas responsables de l'entretien des services qu'ils utilisent.

Où l'architecture orientée services est-elle utilisée ?

Une architecture orientée service peut être utilisée pour presque toutes les applications tant que des services autonomes existent pour répondre aux exigences du système. En raison de l'écosystème de développement de services étendu, la plupart des créateurs de logiciels peuvent trouver le service pour répondre à un besoin - même le projet le plus personnalisé sera toujours en mesure d'utiliser un service indépendant pour quelque chose comme l'authentification d'identité ou l'extraction de données de carte.