Le malentendu
Le malentendu entre les départements métiers et les départements informatiques ne date pas daujourdhui. Il est vraisemblablement condamné à perdurer. Il procède essentiellement de perspectives propres à chacune de ces deux populations. Il est dautant plus grand que les termes et les concepts utilisés par chacun sont différents.
Au cours du temps, chaque groupe a tenté dimposer sa vision. Les démarches danalyses purement fonctionnelles ont dabord été la règle dans lélaboration des spécifications informatiques. Lidée était que, par une décomposition de plus en plus fine des métiers, on devait aboutir aux fonctions et aux programmes informatiques.
Malheureusement, on obtenait ainsi des applications rigides souvent conçues pour un seul cas demploi. A la première demande dévolution, cest lensemble des dépendances entre programmes qui était impacté. Pour résumer, les approches purement fonctionnelles ne prenaient pas en compte les problématiques darchitecture propres aux systèmes informatiques, comme la limitation des dépendances, la modularité et la réutilisation.
Avec lapparition des techniques de développement objet, les informaticiens ont mis en place de nouvelles méthodes de conception intégrant les principes qui leur sont chers comme lisolation des composants (encapsulation), lindépendance, la réutilisation.
On pensait pouvoir étendre la notion informatique dobjet à lanalyse des entreprises et des organisations. Mais comme les organisations ne sont pas des programmes, ces tentatives nont eu quun succès limité : UML nest pas devenu le langage de modélisation universel pour la description des métiers.
Aujourdhui le fossé entre métier et informatique semble être pour partie comblé par la mise en avant du concept de service. Celui-ci se situe à la charnière entre la vue axée sur les fonctions à fournir, prônée par les départements métiers, et la vue orientée objet prônée par les départements informatiques. Pour mieux le comprendre, il faut préciser à quoi correspond un service.
Le service, une unité autonome
Un service représente une unité autonome de traitement et de gestion de données, communiquant avec son environnement à laide de messages ; les échanges de messages sont organisés sous forme de contrats déchange.
Cette définition emprunte de nombreuses caractéristiques à celle dun composant objet:
- La combinaison de données et de traitements.
- Lautonomie: un service a sa propre implémentation, son propre déploiement. Il peut être modifié sans que cela affecte les autres services ou partenaires avec lesquels il est en relation.
- Des frontières explicites : on distingue lintérieur du service, son implémentation, et lextérieur du service, lexpression sous forme de message de ce quil peut échanger et comment il peut être, toujours de lextérieur, sollicité.
Cest sur ce dernier élément que se joue la différence : par rapport à un composant traditionnel auquel on passe des paramètres, un service échange et fournit de linformation au travers de messages. Chaque service propose un ensemble de messages pouvant être enchaînés pour remplir une fonction déterminée.
Prenons lexemple dun service de "formulation des demandes de placement dordre de bourse". Ce service propose un ensemble de messages pour formuler un ordre de bourse:
- Envoyer "la demande dinformation sur la valeur mobilière X"
- Répondre par "les conditions de marché concernant la valeur mobilière X"
- Envoyer la "Demande de placement dordre de bourse pour X"
- Répondre par "Acceptation de la demande de placement" ou par "Les données suivantes doivent être complétées"
On peut donc décrire un service comme un composant informatique délivrant un ensemble cohérent de fonctions sous la forme dinformations échangées via des messages.
Parce quils ne communiquent que par des messages, les services offrent une indépendance par rapport aux technologies dimplémentation.
Un service peut, par exemple, reposer sur un programme cobol par lequel on extrait une donnée ; celle-ci est ensuite mise en forme dans un document XML et envoyée à un autre service qui peut reposer sur un programme Java.
Seules les données sont échangées, sous forme dinformations structurées.
De la même manière, un autre service peut prendre cette information et la présenter sous forme dune page web à un utilisateur du système.
Sur le plan des spécifications fonctionnelles, les départements métiers peuvent exprimer leur besoin pour schématiser - sous forme de listes dinformations quils attendent du système. Ce faisant, ils décrivent les fonctions qui doivent à terme être supportées par un système.
Les informaticiens ont pour tâche de grouper sous forme de service les messages délivrant les informations demandées.
Les difficultés de découpage du SI en services
Les services se présentent ainsi comme point darticulation entre les métiers et linformatique. Les métiers les voient par le biais des fonctions rendues, les informaticiens les voient en tant quélément darchitecture du système. Cependant, une difficulté majeure émerge quant aux critères de découpage du système dinformation en services.
Prenons notre exemple de service précédent de "formulation des demandes de placement dordre de bourse".
Dans cet exemple, pourtant déjà extrêmement simplifié, on saperçoit que lon a regroupé deux types de fonctions dans le même service : la demande dinformation et la demande de placement.
Est-ce légitime ?
Une étude du département bancaire correspondant nous indiquera peut-être que la fonction dinformation peut évoluer de manière indépendante de celle de lordre de placement lui-même. Il faudra alors prévoir un service dinformation indépendant et régler les éventuels messages de communication entre le nouveau service dinformation et lancien service de formulation de demande.
Si larchitecture de service permet, sur le plan technique, un découpage agile du système, elle ne donne en rien les critères de ce découpage.
Pour télécharger le document complet
|