SOA et modernisation du SI

Mettre en place une Architecture Orientée Service (SOA) consiste à bâtir des services (c’est à dire des « fonctions informatiques ») qui vont pouvoir être utilisés par l’ensemble du système d’information (peu importe le langage ou la plateforme).

Concrètement, nous allons, par exemple, créer un service getAdresseClient(idClient) qui va permettre à n’importe quelle application du système d’information (CRM, site web, mobile, compta…) de récupérer l’adresse d’un client donné.

Les avantages de cette architecture sont nombreux :

  • Lorsqu’une fonction est développée, elle est développée une bonne fois pour toutes et elle est utilisable par toutes les applications et dans n’importe quel langage.
  • La fonction n’étant développée qu’une fois, il est donc plus facile de contrôler sa qualité et de mettre en place des tests unitaires validant son fonctionnement.
  • Les développeurs tiers n’ont pas à savoir ce qui se passe à l’intérieur de la fonction, ils se contentent d’appeler un service. Cela permet de réduire la complexité du système et facilite sa maintenance.
    Notre approche

Notre approche vise, en premier lieu, à éviter un effet big bang dans votre système d’information et donc à ne pas multiplier les grands travaux, les migrations ou les changements de logiciels. Nous proposons donc de créer, à partir de l’existant, une surcouche technologique neuve et ainsi vous permettre de développer les nouveaux services innovants qui vous sont de plus en plus demandés (applications mobiles et tablettes, site internet, grc, grh…).

L’idée globale est de sanctuariser l’informatique existante et d’offrir une couche de services qui permette de bâtir les nouvelles applications dont vous avez besoin.

Voici un schéma qui reprend l’architecture que nous préconisons lorsque vos applications existantes ne supportent pas l’intégration avec de nouveaux systèmes.

Notre approche comprend deux grandes phases :

Phase 1 : Constitution et alimentation d’un entrepôt de données
Cette première phase consiste à créer, avec vous, une base de données qui modélise les données de votre organisation (exemple de tables : employés, adresses, téléphones, séjours, accompagnateurs…) et, ceci, indépendamment des logiciels que vous avez déjà.
Une fois cette base créée, nous mettons en place des scripts ETL d’alimentation de ces tables à partir des bases de données de vos applications existantes.

Phase 2 : Création et mise à disposition d’une couche service.
Durant cette deuxième phase, nous allons étudier avec vous les services dont vont avoir besoin les applications tierces. Par exemple : fonction de récupération des adresses, fonction de tarification, fonction de réservation.

Ces services seront ensuite développés, documentés et validés par des tests unitaires automatisés. Une fois déployés dans le système d’information, ils pourront être mis à disposition de vos développeurs ou de prestataires pour bâtir vos nouvelles applications. C’est cette couche (avec ses tests et sa documentation) qui vous permettra de rendre votre SI agile.