La clé du succès d’une architecture orientée-service (SOA)

Publié par Vincent Crépin le vendredi 21 octobre 2011 à 20:13

Ce billet est le premier d'une série au cours de laquelle il sera question d'architectures de services et de quelle façon on peut y associer les pratiques de développement Agile pour favoriser le succès d'une telle initiative.

SOA (Services Oriented Architecture) est un paradigme qui devient de plus en plus répandu depuis quelques années. Les raisons qui expliquent cet engouement sont nombreuses. Parmi celles-ci, en voici quelques-unes des plus importantes :

  • Simplicité du concept : le principe de base d'une architecture orientée services est très simple à comprendre.
  • Potentiel réel de réutilisation : le fait de découper et d'implémenter un système en services permet réellement de réutiliser des fonctionnalités de celui-ci à partir d'autres systèmes et à l'intérieur même de celui-ci.
  • Intégration : bien que non essentiel en soit, les architectures orientées services utilisent souvent les services Web comme technologie d'implémentation. Cela facilite grandement l'intégration entre les systèmes basés sur des technologies différentes à cause des propriétés universelles des services Web.

Évidemment, toute méthode ou technologie comporte des désavantages. Dans le cas de SOA, je dirais que le principal désavantage est la difficulté de créer une vraie architecture cohérente et non une simple série de services Web en mode RPC (Remote Procedure Call) qui n'apportent pas grand-chose d'un point de vue organisationnel. Ma participation à plusieurs mises en œuvre de ce paradigme dans différentes organisations m'a permis d'identifier plusieurs éléments qui représentent des facteurs de succès essentiels. Évidemment, plusieurs de ces éléments sont techniques et je n'aborderai pas ce sujet ici parce qu'en bout de ligne, l'élément qui ressort de la façon la plus prononcée dans mes observations est la gouvernance.

La gouvernance consiste en une stratégie d'entreprise qui touche à peu près tous les niveaux du cycle de développement logiciel et qui permet, si on résume de façon très succincte, de définir des services qui ont une signification importante au niveau de l'entreprise. Mon expérience démontre que la mise en place d'une bonne gouvernance maximise les gains d'une SOA. La gouvernance prend en général la forme d'un comité regroupant des gens des secteurs d'affaires, fonctionnel et technique par lequel toutes les décisions concernant la mise en place de nouveaux services ou l'évolution de services existants passent. Ce comité doit posséder une excellente connaissance des enjeux organisationnels et être en mesure de prendre des décisions éclairées. Des outils supportant le travail de ce comité sont aussi nécessaires. Par exemple, un catalogue des services permet une documentation des services existants.

Malheureusement, dans les organisations où j'ai participé à la mise en œuvre d'une SOA, l'élément gouvernance était souvent laissé de côté au profit d'une approche ad hoc. Dans ces cas, le portefeuille de services devenait souvent la responsabilité de personnes au profil plutôt technique qui, la plupart du temps, n'étaient pas en mesure de prendre des décisions judicieuses en fonction des objectifs de l'organisation.

En résumé, mon conseil est le suivant : si en tant qu'organisation, vous décidez de vous prévaloir des nombreux avantages d'une AOS, assurez-vous d'abord de mettre en place une stratégie de gouvernance complète et ce, avant de débuter tout développement. Nous verrons dans le prochain billet de quelle façon il est possible d'élaborer et matérialiser une telle stratégie en utilisant une approche Agile.

Mots-Clés :
blog comments powered by Disqus

0 Comments:

Post a comment

Comments have been closed for this post.