Business Intelligence et Architectures orientées services

La SOA n'est pas réservée aux applications de gestion. Elle représente également un avantage certain pour le décisionnel, en évitant de rester prisonnier d'une plate-forme de BI centralisée.

SOA est-ce le nouveau terme à la mode ?
Une architecture orienté service (ou SOA en anglais) est une architecture technique informatique permettant et facilitant l'interaction entre les différentes applications métiers, voire entre les fonctions clés de ces applications hétérogènes. L'objectif d'une telle architecture est de séparer les aspects services des aspects technologiques et ainsi permettre une gestion plus flexible et plus réactive des différents processus métier de l'entreprise en réutilisant des "blocs métier » déjà présent.

Par exemple, si une centrale hôtelière utilise déjà une application gérant les réservations, et qu'elle souhaite mettre en place un processus de réservation par un site Web et une validation par l'hôtel, le développement du site réutilisera les processus métier de réservation et de validation disponible dans le logiciel directement. Il n'y aura pas de redéveloppement de ces fonctions, ni d'interface inter-application à construire.

En résumé, bâtir une application dans une architecture SOA permet de garantir sa capacité à accompagner l'entreprise dans ses changements et donc la pérennité des investissements sans hypothéquer les choix futurs. Cela permet d'avoir une stratégie plus efficace et plus rentable car basée sur une logique "best of breed", de communication, d'interopérabilité et surtout de capitalisation sur l'existant (en évitant de réinventer, réécrire et refaire)
 
Concrètement et de manière simplifiée, une architecture SOA se compose de services web mis à disposition autour de fonctions des applications métier existantes et d'un référentiel permettant de gérer, d'agencer et de faire communiquer ces services web selon les processus métiers définis.
 
SOA serait-il réservé aux applications de gestion ?
Il est vrai que, par nature, les logiciels de Business Intelligence se basent sur les données issues de l'exécution des processus métier. Pour reprendre l'exemple ci-dessous, le logiciel de BI va utiliser les données issus du processus de réservation pour gérer et publier les indicateurs : nombre de réservation, taux de validation, répartition des réservations par média etc.
 
A priori, quel est le besoin d'architecture SOA ? Il en existe en fait, plusieurs : une fois calculés les indicateurs et rapports peuvent être consultés dans différentes applications : portails d'entreprise, applications spécifiques, outils de mashup, et autres agrégateurs de contenu. Dans ce cas, la solution de BI devient une application comme une autre et ce qu'elle produit peut être utilisé par les autres applications. L'information est alors diffusée comme un service !
 
Allons plus loin, en utilisant les indicateurs calculés par l'application de BI comme n'importe quelle sortie ou résultat d'un "bloc métier" (notre validation de réservation), nous pouvons nous servir de l'indicateur comme d'une source de donnée pour nos processus métier et mettre en place une boucle (comme pour l'asservissement en automatique !) Ainsi, si un indicateur de nombre de réservations moyen dépasse un certain seuil, le processus métier peut en tenir compte et modifier son comportement et proposer aux clients une liste d'hôtels différente, par exemple.
 
Est-on obligé d'envisager une architecture SOA même pour les applications BI ?
Rien ne vous y oblige! Chaque entreprise, et certaines l'on déjà fait, peuvent faire le choix de s'appuyer sur une seule et même solution de business intelligence et de ne pas capitaliser sur l'existant.
 
Les limites de ce raisonnement, outre la dépendance aux fournisseurs, se trouvent dans le fait que ces solutions (souvent appelées plates-formes intégrées) sont dans tout les cas un assemblage de compromis fonctionnels permettant une intégration. Or, les différentes directions métiers ont des besoins différents et des adaptations sont souvent nécessaires pour couvrir les spécificités de chaque fonction.
 
Les questions, inhérentes au choix du meilleur logiciel par fonction, se posent alors : est-on sûr que le module de datamining de notre fournisseur de BI est celui qui convient ? Combien me coûte la production de tableaux de bord pour l'ensemble de nos sites avec la solution actuelle ?
 
Bien sûr, sur le papier, le "best of breed" est séduisant mais on se heurte alors aux problèmes d'intégration comme on peut le constater pour les applications de gestion. C'est la que les architectures SOA peuvent apporter des solutions pertinentes.
 
L'heure n'est alors plus aux choix entre "plate-forme tout intégrée" et "best of breed" ! Les choix sont désormais guidés par la réponse fonctionnelle des applications aux besoins métiers et par leur respect des standards et leur capacité à s'intégrer dans une architecture SOA qui devient le référentiel !