Qu’est-ce qu’une architecture SOA ?

Sommaire

Une entreprise utilise plusieurs applications dont la plupart d’entre elles communiquent et échangent des données. Cependant, plus elle avance et se dirige vers le Big Data, plus les soucis au niveau de cette communication s’accentuent. En effet, le système d’information est tellement éparpillé, hétérogène et volumineux que les dirigeants ont du mal à retrouver les informations pertinentes pour la prise de décision. L’adoption de l’architecture SOA est la solution à ces problèmes. Dans cet article, nous allons découvrir ce que c’est et l’importance de sa mise en place dans une société souhaitant tirer profit de son système.

 

Définition de l’architecture SOA

 

L’architecture SOA (Service Oriented Architecture) ou Architecture Orientée Service en français est un terme proposé par le groupe Gartner en 1996. Il désigne un modèle d’architecture favorisant la réutilisabilité des composants servant à établir la communication de tout le système d’information d’une entreprise. Ce composant est en réalité un service. Il s’agit d’une application indépendante qui sert d’interface à d’autres applications. En d’autres termes, c’est grâce à lui que les autres applications communiquent entre elles. L’utilisation d’un service nécessite deux intervenants à savoir un fournisseur et un client. Le fournisseur met en place le service, c’est-à-dire qu’il définit les retours qu’il souhaite communiquer ainsi que le moyen d’obtenir ces retours (paramètres, format, etc.). Le client, qui peut être une application ou un autre service, effectue une demande à l’intention de ce fournisseur via des API qui vont contacter le service. Ce dernier doit respecter les démarches mises en place par le fournisseur afin d’obtenir le résultat attendu. L’objectif de l’utilisation de ce type d’architecture est de regrouper les fonctionnalités globales et récurrentes au sein d’une entreprise afin de pouvoir les réutiliser dans d’autres futurs projets et ainsi ne développer que ce qui n’existe pas. Cela permet d’accélérer le processus de développement et de déploiement d’une nouvelle solution tout en gardant une certaine cohérence au niveau de tout le système d’information.

 

Principes et fonctionnements

 

Commençons tout d’abord par évoquer la notion de service qui est le composant principal d’une architecture orientée service. Ce dernier doit répondre à quelques principes :

  • un couplage lâche, c’est-à-dire que le client peut consommer le service sans pour autant connaître l’implémentation effectuée derrière celui-ci. Cela veut également dire que la communication en utilisant des standards. Les deux parties doivent rester indépendantes ;
  • des interfaces indépendantes qui peuvent être implémentées au sein de différents services ;
  • une grande maille, c’est-à-dire que plusieurs fonctions sont assemblées afin que les opérations effectuées par un service puissent prendre en charge un périmètre de données plus large ;
  • un service localisable, qui disposent donc d’un moyen pour le trouver rapidement et le contacter facilement ;
  • il peut être synchrone ou asynchrone.

En plus des services, une architecture SOA est composée d’un annuaire de service. Ce dernier répertorie tous les services présents et utilisés au sein du système d’information de l’entreprise. Elle peut être alimentée par un service d’enregistrement à chaque fois qu’un autre s’ajoute à la liste. Un bus de service est en charge de la communication entre le client et le fournisseur. Il peut également fournir certaines fonctionnalités telles que la possibilité d’effectuer plusieurs appels en même temps, la gestion des versions des services ou encore le contrôle des services. Plusieurs protocoles sont également à respecter lorsque l’on souhaite mettre en place ce type d’architecture. Ceux qui doivent être impérativement établis sont :

  • le protocole d’accès aux services (SOAP, REST, etc.) ;
  • le protocole de transport des données (HTTP, TCP, etc.) ;
  • le formatage des données (XML, JSON, etc.) ;
  • le protocole de description de l’interface (WSDL) ;
  • le protocole de gestion de l’annuaire ;

Certains autres protocoles peuvent être mis en place tels que les protocoles de sécurité ou encore d’orchestration.

 

Pourquoi implémenter une architecture SOA ?

 

Avant l’adoption de l’approche orientée service, on utilisait une architecture monolithique. Cette architecture présente cependant quelques lacunes lors du développement d’un projet. En effet, l’équipe chargée de la réalisation de ce projet était contrainte de tout recréer ou du moins dupliquer certaines fonctionnalités dont elle avait besoin. Cela les amenait à opter pour une intégration complexe de la nouvelle solution à celles qui existent déjà au sein du système. L’architecture SOA a été créée justement afin de résoudre ce problème. Son succès est fulgurant, car :

  • le délai de création et de mise en production d’une nouvelle application est beaucoup plus faible, car on se sert de plus en plus de fonctionnalités existantes. Il suffit donc d’apporter les composants spécifiques à l’application et on peut le mettre sur le marché ;
  • le coût est considérablement réduit également puisque le délai est réduit ;
  • chaque application est beaucoup plus flexible et évolutive. La mise en place de nouvelles versions est beaucoup plus accessible puisqu’un service peut s’adapter à de nombreuses technologies, langages et frameworks ;
  • la maintenance des applications ainsi que des services est plus facile avec ce type d’architecture ;
  • l’architecture SOA est accessible à tous et partout ;
  • on peut étendre l’architecture sur de nouveaux marchés cibles.

SOA vs microservice

 

Le SOA et le microservice sont deux styles architecturaux souvent comparés entre eux. Toutefois, malgré leurs ressemblances, ces derniers présentent plusieurs différences notables. Tout d’abord, leurs objectifs sont différents. Quand l’architecture orientée service vise à rendre les composants utilisés au sein d’une entreprise réutilisable, les microservices, quant à eux, tentent de les rendre plus agiles. La portée de leurs utilisations est également différente. En effet, l’architecture SOA est mise en place au sein même de l’entreprise tandis que les microservices sont généralement adoptés par l’équipe de développement. Ils diffèrent également dans leurs façons de communiquer. Les microservices offrent plus de flexibilité et de tolérance à l’équipe de développement. Ce style d’architecture est apparu et utilisé depuis l’avènement du phénomène de Big Data, du cloud computing et du DevOps.

 

Implémentations et technologies basées sur l’architecture SOA ?

 

L’architecture SOA est mise en place afin que chaque composant ne dépende d’aucune application, d’aucun framework ou encore d’aucun langage. Cette indépendance permet de l’implémenter dans de nombreux domaines. La principale mise en œuvre de ce type d’architecture est le WOA (Web Oriented Service) où l’on utilise des protocoles d’accès tels que le SOAP ou le REST API ainsi que des protocoles de description des services tels que le WSDL. Cependant, on peut également l’implémenter de différentes autres manières, par exemple dans des applications WCF (Windows Communication Foundation) ou encore dans des solutions de messagerie utilisant par exemple JMS (Java Message Service) ou RabbitMQ. Les domaines sur lesquels on peut appliquer une architecture orientée service sont d’autant plus vastes. Cela peut aller de la création d’un site de prestation de service ou d’une application dans le domaine de la santé jusqu’au développement de logiciel pour la défense et les forces armées. Elle peut même être appliquée sur les applications et jeux sur mobile.

Facebook
Twitter
LinkedIn