L'architecture SOA définit un moyen de rendre les composants logiciels réutilisables et interopérables grâce à des interfaces de services. Les services utilisent des normes d'interface communes et un modèle architectural, de sorte qu'ils peuvent être rapidement incorporés dans de nouvelles applications. Cela libère le développeur d'applications qui, auparavant, redéveloppait ou dupliquait la fonctionnalité existante ou devait savoir comment se connecter ou assurer l'interopérabilité avec les fonctions existantes.
Chaque service d'une architecture SOA comprend le code et les données nécessaires à l'exécution d'une fonction métier complète et distincte (par exemple, la vérification de la solvabilité d'un client, le calcul d'une mensualité de prêt ou le traitement d'une demande de prêt immobilier). Les interfaces de service fournissent un couplage lâche, ce qui signifie qu'elles peuvent être appelées sans savoir comment le service est mis en œuvre en dessous, ce qui réduit les dépendances entre les applications.
Cette interface est un contrat de service entre le fournisseur de services et le consommateur de service. Les applications derrière l'interface de service peuvent être écrites en Java, Microsoft .Net, Cobol ou tout autre langage de programmation. Elles peuvent être fournies sous forme d'applications logicielles intégrées par un fournisseur (par exemple SAP), d'applications SaaS (par exemple Salesforce CRM) ou obtenues sous forme d'applications open source. Les interfaces de service sont souvent définies à l'aide du langage de définition de service Web (WSDL), qui est une structure de balises standard basée sur le langage XML (Extensible Markup Language).
Les services sont exposés à l'aide de protocoles réseau standard, tels que SOAP (protocole d'accès simple à un objet)/HTTP ou Restful HTTP (JSON/HTTP), pour envoyer des demandes de lecture ou de modification de données. La gouvernance des services contrôle le cycle de vie du développement et, au stade approprié, les services sont publiés dans un registre qui permet aux développeurs de les trouver rapidement et de les réutiliser pour assembler de nouvelles applications ou de nouveaux processus d'entreprise.
Ces services peuvent être créés complètement, mais ils sont souvent créés en exposant les fonctions des systèmes d'enregistrement existants sous forme d'interfaces de service.
Ainsi, la SOA représente une étape importante dans l'évolution du développement et de l'intégration des applications au cours des dernières décennies. Avant l'apparition de la SOA à la fin des années 1990, la connexion d'une application à des données ou à des fonctionnalités hébergées dans un autre système nécessitait une intégration point à point complexe ; une intégration que les développeurs devaient recréer, en partie ou en totalité, pour chaque nouveau projet de développement. L'exposition de ces fonctions par le biais des services SOA a permis au développeur de simplement réutiliser la capacité existante et de se connecter par le biais de l' architecture ESB SOA (voir ci-dessous).
Il convient de noter que bien que l'architecture SOA et l'architecture de microservices , plus récente, aient de nombreux mots en commun (par exemple, « service » et « architecture »), elles ne sont que vaguement liées et opèrent en réalité à des échelles différentes, comme nous le verrons plus loin dans cet article.
Un ESB (Enterprise Service Bus), ou bus de service d'entreprise, est un modèle architectural dans lequel un composant logiciel centralisé réalise des intégrations entre des applications. Il effectue des transformations de modèles de données, gère la connectivité/messagerie, effectue le routage, convertit les protocoles de communication et gère éventuellement la composition de demandes multiples. L' EBS peut rendre ces intégrations et transformations disponibles en tant qu'interface de service pour être réutilisées par de nouvelles applications. Le modèle ESB est généralement implémenté à l'aide d'un environnement d'exécution et d'un ensemble d'outils d'intégration spécialement conçus pour garantir la meilleure productivité possible.
Il est possible d'implémenter une architecture SOA sans ESB, mais cela reviendrait à n'avoir qu'un ensemble de services. Chaque propriétaire d'application devrait se connecter directement au service dont il a besoin et effectuer les transformations de données nécessaires pour respecter chacune des interfaces de service. Cela représente beaucoup de travail (même si les interfaces sont réutilisables) et crée des problèmes de maintenance importants pour l'avenir, car chaque connexion est de type point à point. En fait, les ESB ont fini par être considérés comme un élément de facto d'une implémentation SOA , au point que les deux termes sont parfois utilisés comme synonymes, ce qui crée une certaine confusion.
Comparée aux architectures qui l'ont précédée, l' architecture SOA offre des avantages considérables à l'entreprise :
En 2010, les implémentations SOA étaient en plein essor dans les grandes entreprises dans presque tous les secteurs d'activité. Par exemple :
Des spécialistes ont rempli quelques milliers de pages papier et numériques pour comparer l'architecture SOA et les microservices et définir les subtilités de leurs relations mutuelles. Les principales différences reprises dans cet article sont le couplage des composants et le champ d'application :
L'architecture de microservices est apparue et s'est étendue avec l'essor de la virtualisation, du cloud computing, des pratiques de développement Agile et de DevOps. La plupart des avantages des microservices dans ces contextes découlent du découplage des composants, qui simplifie et améliore les points suivants :
Pour un examen plus approfondi des différences entre une architecture SOA et les microservices, consultez la rubrique « SOA et microservices : quelle est la différence ? »
À l'instar d'une architecture de microservices qui a le potentiel d'apporter des améliorations en termes d'agilité, d'évolutivité et de résilience à la conception des applications, ces mêmes techniques peuvent être appliquées à l'intégration. Cela est important car, au fil du temps, le modèle ESB fortement centralisé et l'équipe centralisée de spécialistes de l'intégration qui lui est associée peuvent devenir un goulot d'étranglement. En s'inspirant des principes des microservices , nous pouvons potentiellement décomposer un ESB en intégrations plus fines et décentralisées. C'est l'un des principes fondamentaux de l'intégration Agile.
Connectez les applications, les services et les données avec IBM Cloud Pak for Integration, la plateforme d'intégration la plus complète du marché.
Connectez les applications et les données avec un puissant logiciel d'intégration d'applications automatisé par l'IA.
IBM API Connect® est une solution de gestion d'API sécurisée qui utilise une expérience intuitive pour aider à créer, gérer, sécuriser, socialiser et monétiser les API de manière cohérente.
Apprenez les bases de l'architecture SOA et des microservices, leurs différences clés et quelle approche serait la mieux adaptée à votre situation.
Ce guide explique comment accélérer la modernisation de vos applications, améliorer la productivité des développeurs et l'efficacité opérationnelle et la standardisation.
Dans ce guide, découvrez l'ESB, un composant essentiel de l'architecture SOA, ses avantages et son rapport avec l'architecture des microservices.