L’architecture orientée services est plus communément connue sous le sigle SOA pour Services Oriented Architecture. Cette notion est de plus en plus en vogue. Et tout laisse à penser que ce n’est pas prêt de s’arrêter.

Mais qu’est-ce que la SOA ?

Lorsque l’on pose cette question, la réponse la plus courante est : “les services web”. Or, je trouve que cette réponse est très réductrice. C’est comme si l’on définissait une architecture client/serveur par le TCP/IP. En effet, les services web ne sont qu’un moyen de mettre en place une architecture orientée services et d’atteindre ses objectifs. Mais la SOA ne se limite pas qu’à une simple technologie.

Il est très difficile de définir la SOA en quelques mots. Ce qu’on ne peut retenir, c’est que la SOA permet de répondre au problème du fonctionnement en silo d’une entreprise (suite aux multiples fusions, rachats, sites différents, évolutions technologique, etc…) qui empêche de gérer le SI d’une société dans sa globalité.

La SOA est une autre façon d’intégrer les briques ou composants logiciels au sein du SI de l’entreprise. Cette méthode s’attache à décomposer chaque composant en un ensemble de fonctions basiques appelées services. L’objectif étant de pouvoir réutiliser simplement ses services. Les utilisateurs de ceux-ci peuvent être d’autres services, des logiciels de l’entreprise, des applications externes, etc…

Comment mettre en place une SOA ?

On ne peut pas encore dire qu’il existe une méthodologie pour mettre en place une telle architecture. On peut seulement souligner une initiative française : Praxeme. Cette association tente de définir une méthodologie (libre de droit) pour mettre en place une SOA.

Les principes généraux de la SOA

Une architecture orientée services repose sur quelques principes forts :

  • Les services exposent des fonctions qui nécessitent des paramètres d’entrée et retourne une réponse dont les interfaces sont publiées.
  • La description du service : nom, paramètre, contrat de service, etc…
  • Les services sont sans état et ne gèrent aucun contexte.
  • La localisation des services via un annuaire.
  • Des couplages externes lâches pour faciliter la réutilisation des services.
  • Les services peuvent être synchrones ou asynchrones.

Tous ces principes sont respectés par les plateformes de services web. C’est pourquoi la notion de SOA est étroitement liée aux services web.

La SOA doit également son récent succès à une vision stratégique à long terme qui repose sur l’urbanisation du SI.

Les adeptes de la SOA vous parlerons également de l’agilité (à ne pas confondre avec les méthodes agiles !). En effet, lorsque l’urbanisation du SI est réalisée correctement, le couplage faible des services permet de redéfinir les processus de l’entreprise très rapidement; d’où l’agilité.

Comme vous pouvez le constater, je n’ai fait que survoler le sujet. Et il me reste encore beaucoup de chose à dire. Si le sujet vous intéresse, je tacherai d’écrire un peu plus articles sur le sujet. Et pourquoi pas, ouvrir une nouvelle section SOA. 🙂