Qu’est-ce que l’architecture orientée services ?

Définition

L’architecture orientée services (SOA pour Service Oriented Architecture en anglais) est un modèle de structure et un ensemble de principes de conception qui prennent en charge le couplage et la réutilisabilité de différents composants dans un système distribué.

Utilité et principes

Le modèle de SOA est devenu populaire au début des années 2000 et est devenu un des modèles d’architectures dominants aujourd’hui. En effet, alors que le SOA était uniquement liés à des applications web spécifiques à ses débuts, ses cas possibles d’utilisation sont démultipliés et peuvent même s’adapter au cloud ou aux microservices.

Aussi, le style architectural SOA est indépendant de la technologie puisqu’il est centré sur l’entreprise et permet une interopérabilité transparente entre les différents services. Voici 8 principes directeurs qui permettent d’atteindre ces objectifs :

  • Contrat de service standard 
  • Couplage lâche
  • Abstraction
  • Réutilisabilité
  • Autonomie
  • Apatridie
  • Transparence sur les fonctionnalités
  • Composabilité

Les bases d’une architecture en blocs SOA

Le fonctionnement des SOA

Les systèmes logiciels ont été initialement conçus avec des architectures monolithiques, difficiles à gérer et à faire évoluer. L’architecture orientée services pallie ce problème et va plus loin en fournissant un cadre dans lequel les applications sont considérées comme un ensemble de services qui communiquent entre eux via un protocole de réseau commun.

L’architecture orientée services se compose de deux postes importants : le fournisseur de service (provider) et le consommateur de service (consumer). Le fournisseur est celui qui met en œuvre des fonctionnalités techniques et commerciales pour que le consommateur puisse en tirer profit. Ce dernier envoie une demande et le provider lui apporte la réponse pour créer un paradigme demande-réponse.

Certaines des technologies couramment utilisées pour réaliser cette communication sont WSDL (Web Services Description Language), SOAP (Simple Object Access Protocol) et REST (Representational State Transfer).

Un assemblage de différents services

Pour comprendre précisément ce qu’est une architecture orientée services, il convient de définir avec précision ce qu’est un service. Voici les 4 caractéristiques qui définissent un service :

  • Représentation logique d’une activité commerciale avec un résultat spécifié : ce sont des unités logiques avec un but précis. Indépendamment du fait qu’il s’agisse de l’interface utilisateur, du server ou de la base de données, le service peut être utilisé pour accomplir sa finalité.
  • Autonomie: le fonctionnement est indépendant de tout autre service ou processus. Si vous apportez des modifications sur une unité particulière, cela n’affectera aucune autre unité tant que l’interface n’est pas interrompue. Cette propriété permet un couplage entre divers services pour vous permettre d’optimiser, modifier et adapter vos technologies sans altérer le processus global.
  • Opaque pour les consommateurs: le consommateur d’un service n’a aucune idée du fonctionnement interne du service qu’il sollicite.
  • Composé d’autres services sous-jacents: un service peut utiliser d’autres services pour atteindre son objectif commercial.

SOA et microservices

La SOA est souvent comparée au microservices car ces tous deux partagent les mêmes principes fondamentaux. Les microservices, plus récents, sont d’ailleurs souvent considérés comme un type de SOA.

Ces deux styles d’architectures préconisent l’utilisation de plug-and-play se réunissant pour former une application plus adaptable et agile que l’architecture monolithique. Ils sont deux technologies qui encouragent le couplage entre les services.

Cependant, il existe des distinctions notables entre microservices et SOA, notamment aux niveaux de leur portée et de leur objectif.

Tout d’abord, la SOA fonctionne au niveau de l’entreprise et a pour objectif d’être réutilisable. Les microservices, eux, sont un modèle architectural à utiliser dans une application et vise à rendre un processus de développement d’app plus agile.

Aussi, ces deux modèles architecturaux ne gèrent pas les données de la même manière. Dans une SOA, les différentes entités de l’application accèdent à un data mart commun. Le microservice possède son propre référentiel de données afin d’évoluer de façon totalement autonome. Cette duplication de data entre les modèles nécessitent donc la mise en place d’un mécanisme de synchronisation des données pour assurer leur alignement.

En savoir plus sur les points de différences entre microservices et SOA

Construire une implémentation SOA réussie avec Talend

Talend peut vous aider à surmonter certaines difficultés liées à l’implémentation d’une architecture orientée services. Nous vous fournissons une plateforme fiable et évolutive qui permet à toutes les entités de communiquer ensemble.

De plus, notre plateforme vous aide à gérer les sils de données variés qui nécessitent d’être unifiés et rassemblés dans un environnement unique. Grâce à une couche de données virtuelle pour intégrer facilement une grande variété de sources de data vous profitez d’un accès simplifié aux données en libre-service.

Essayez Talend Data Fabric dès maintenant pour utiliser la SOA et répondre à la demande d’intégration plus rapide et plus agile.