Le paradigme SOA (Service-Oriented Architecture)

Conséquence de la crise économique actuelle et d’un environnement concurrentiel plus dure, les entreprises recherchent des moyens pour minimiser les coûts de leurs systèmes d’information et en même temps proposer des produits et services plus sophistiqués. Pour de nombreuses entreprises, ces efforts sont entravés par la structure et la complexité de leur infrastructure informatique. Typiquement, les ressources informatiques sont organisées selon les fonctions métier spécifiques. Cette situation conduit à une duplication des fonctionnalités de l’application, la capacité limitée à partager l’information, les coûts d’intégration élevés et la sous-utilisation importante des ressources de calcul. La majorité des grandes entreprises aujourd’hui ont des environnements informatiques complexes et hétérogènes caractérisés par la coexistence de plusieurs générations d’architectures et de technologies. Conséquence, l’informatique d’entreprise est souvent associée à un TCO élevé et un ROI faible.

La Service-Oriented Architecture (SOA) a été largement promue par les analystes et les fournisseurs informatiques comme l’architecture capable de répondre aux besoins des entreprises dans le respect des coûts et des plannings. L’adoption de SOA a été initialement tirée par l’émergence des Web services et de la nécessité de fournir une architecture informatique plus efficace. En Septembre 2008, il a été estimé par Gartner Research que la plupart des entreprises européens et nord-américaines ont soit déjà adopté la SOA ou prévoient d’adopter la SOA au cours des 12 prochaines mois.

Cependant, sur la courbe de Hype, l’architecture SOA se positionne entre « Trough of Disillusionment’ et « Slope of Enlightenment ». Cela signifie que les attentes d’une architecture SOA ont été surdimensionnés et surréalistes. De nombreux échecs ont suivi l’application d’une SOA. La désillusion a été forte.

Quelle est la pertinence d’une architecture SOA pour l’informatique d’entreprise aujourd’hui? Bien qu’il n’existe pas une définition largement acceptée, la plupart des experts s’accordent sur les principes fondamentaux du paradigme SOA :

  • Les services sont l’abstraction de base d’une architecture SOA – les fonctions de l’entreprise sont externalisées comme des services via des interfaces stables définis avec un contrat
  • Les services sont faiblement couplés- les services sont connectés aux clients et autres services via des standards
  • Les services sont autonomes – ne dépend d’aucun contexte ou service externe
  • Les opérations des services sont stateless
  • La qualité de service (QoS) qui inclue la sécurité, les transactions, la performance, etc sont explicitement définis pour chaque service

En résumé, la SOA est un ensemble de concepts et principes architecturaux qui permettent la mise en œuvre d’applications d’entreprise distribuées orientés service.

Bien que le concept de SOA a évolué au cours temps, il reste concentré sur l’informatique intra-entreprise et ne répond pas pleinement aux défis associés à la consommation des services de l’extérieur. D’autres modèles de services ont évolué en parallèle avec la SOA et ont maintenant atteint un stade de maturité et d’adoption : le cloud computing (SaaS, IaaS, PaaS) et le Web 2.0.