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 :
Exemples d'architectures orientées services :
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.
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.
Une infrastructure SOA modulaire et flexible offre des avantages majeurs aux entreprises qui adoptent le cloud. Voici d'autres grandes tendances.
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 :
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.