Home | Description des processus >>

Démarche générale

Comment s'y prend-on pour mener à bien un projet SOA ?

Les architectures orientées services (SOA) sont actuellement très à la mode. Elles facilitent l'implémentation des processus métiers au sein de l'entreprise, favorisent l'évolution des dits processus et permettent d'homogénéiser et de mieux contrôler les communications entre systèmes informatiques.

A la base de ces architectures, on trouve un certain nombre de technologies et de concepts déjà plus ou moins maîtrisées dans nos entreprises : XML (description, validation, transformation, ...), les services Web (SOAP, WSDL), le faible couplage , ... Cependant, si les principes sont relativement simples à comprendre et les technologies déjà connues, il apparaît que la mise en place d'une SOA reste complexe. Cette complexité est essentiellement causée par l'absence d'une démarche adaptée aux objectifs des SOA. Trop souvent, on cherche à mener à bien un projet SOA de la même manière qu'on le ferait pour un développement logiciel. Or, les deux problématiques sont totalement différentes. Un développement logiciel consiste à développer un système répondant à un certain nombre de fonctionnalités, sous forme de composants, s'articulant autour d'une architecture technique solide et adaptée aux contraintes techniques imposées. Une architecture orientée service, quant à elle, doit permettre de faciliter la mise en oeuvre de processus métiers (business process). Un processus n'est pas une fonctionnalité, c'est un ensemble de tâches (activités), mené par des acteurs au sein de l'entreprise (personnes physiques ou systèmes informatiques), initié par un évènement (commande, contact client, ...) et aboutissant à un résultat apportant une plus-value pour l'entreprise. Durant ce processus, des informations (messages) sont véhiculées, transformées, routées, validées ou enrichies (pattern VETRO).

L'essence des SOA est donc constitué des processus, des messages et des interactions (contrats des services) avec chaque participant. La démarche doit donc se concentrer sur ces trois aspects.
  • Processus : on commence par modéliser les processus existant au sein de l'entreprise. On détermine les activités, les acteurs ainsi que le moyens existant et les procédures adaptés à chaque étape. Une fois l'existant modélisé, il ne reste plus qu'à (sic ?) déterminer comment améliorer le processus, mettre en avant les étapes nécessitant une communication avec un autre système ou avec un être humain. Cette modélisation peut être basée sur les langages UML (diagrammes d'activités, SOAML, ...) ou BPMN.
  • Contrats : après avoir modélisé les processus et identifier les besoins de communication, on peut en déterminer les contrats associés. Pour cela, on liste les opérations nécessaires et on les regroupe en tant que service. Encore une fois UML nous aidera dans cette phase, mais il sera également possible de présenter les contrats sous la forme de descriptions WSDL.
  • Messages : les données véhiculées lors du déroulement du processus, ou échangées durant l'invocation des services doivent également être modélisées. Il est important de standardiser la représentation des données métiers au sein de l'entreprise si l'on souhaite faire des SOA. En effet, si tous les systèmes utilisent les mêmes descriptions de données, la communication entre eux n'en sera que plus simple. Diagrammes de classes UML et schémas XML (XSD) sont les éléments résultant de cette modélisation.
Une fois tous ces éléments définis, on voit déjà plus clairement le travail à fournir, et on peut alors commencer à réfléchir aux éléments techniques qui permettront de faire fonctionner tout ça.

Références :


Re: Démarche générale

Pour complèter cette belle présentation, j'ajoute simplement que nous avons choisi d'aborder cette mise en oeuvre SOA avec un processus très simple, ceci afin de limiter les difficultés potentielles.

Il s'agit d'étudier le ou les processus liés au traitement de nos rapports d'activités. Chacun(e) de nos consultant(e)s émet un rapport d'activités, soit à la fin d'une mission, soit de façon régulière.

Ce rapport comporte des informations qui permettent:

  • d'élaborer les factures qui sont envoyées à nos clients
  • de tenir à jour les informations relatives aux congés payés et RTT

Ces deux tâches sont actuellement assurées par des applications isolées, peu aptes à communiquer et échanger des informations, qui finalement nous imposent notre façon de travailler.

Une démarche SOA est supposée "neutraliser" le SI, qui doit évoluer d'un ensemble d'applicatifs hétérogènes complexes vers une vitrine de services homogènes et aptes à la coopération. Voila aussi un des objectifs de cette étude.


Add a comment Send a TrackBack