SOA: Comment concevoir une application orientée services?

Le concept d’architecture de services a pris corps dans le milieu des années 90, avec l’arrivée de plusieurs implémentations de CORBA et la nécessité de faire dialoguer le monde des « mainframes » et des applications distribuées sur des architectures client / serveur.

L’idée de généraliser le principe de « client-serveur » en « client-service » a d’ailleurs été fort bien développée en 1995 par Philippe Bénard et Alain Dang-Van-Mien (PBE95) sur le projet général d’architecture du SI de « La poste ».

L’idée qu’une application « cliente » pourrait trouver dans le système d’information les « services » dont elle a besoin est séduisante, elle n’a toutefois que rarement été mise en œuvre, du fait principalement, de la complexité et de l’incomplétude des outils CORBA.(Les middlewares implémentant intégralement la norme étaient assez peu nombreux : BEA, Borland,… ).

L’arrivée d’applications s’appuyant sur les technologies et les architectures « WEBBased », avec notamment la mise en oeuvre relativement aisée de « Web-services » a récemment remis au goût du jour et rendu accessible, ce principe d’architecture.
La possibilité pour une application de recourir à des services localisés sur une URL WEB est en effet déjà largement exploitée par les sites de e-commerce, les extranets Fournisseurs, ou le monde médical, qui mutualisent par ce biais leurs services, ou couplent leurs systèmes d’information.

Un Web service est une application identifiée par une URL, dont l’interface et les liens sont susceptibles d’être identifiés, décrits et découverts par une description XML, qui lui permettent d’interagir par échange de messages XML, avec d’autres applications via des protocoles « Web-Based ».

Le succès et la généralisation de l’architecture « Client léger » basée sur une interface Web (Navigateur) d’une part, la disponibilité d’une technologie de sollicitation de service simple et robuste, encourage désormais les entreprises à intégrer ces principes d’architecture, dans les opérations d’urbanisation de leur système d’information. (Voir notre livre blanc « Bâtir, Urbaniser, moderniser un système d’information »).

Toutefois, s’il existe plusieurs ouvrages et livres blancs décrivant les technologies, (BBR03, DWO03, Livres blanc de Cosmosbay, d’Unilog management, de Méga,…), il nous est apparu qu’aucun d’entre eux ne décrivait comment identifier les parties d’une application qui pouvaient être exposées sous forme de « services » aux autres applications de l’entreprise ou dans certains cas même, au monde extérieur.
C’est donc l’objectif de ce fascicule, qui se borne à rappeler les briques technologiques sur lesquelles peut s’appuyer une architecture de services, mais surtout à décrire comment « penser » une application pour qu’elle s’intègre bien dans ce type d’architecture, et sur quels services généraux elle peut s’appuyer.