Si le concept de la SOA correspond à une réalité tangible, la démarche ne constitue pas pour autant une recette magique. Elle se veut une réponse à des enjeux de réactivité, d'efficacité et de compétitivité des entreprises. Mais pour la mettre en place, un certain nombre de conditions sont nécessaires.
Des besoins et des usages qui se transforment vite
Les utilisateurs cherchent à mieux tirer partir des applications informatiques. Mais les directions métiers et la direction informatique suivent souvent des chemins distincts qui ont parfois du mal à se rencontrer. Pour se retrouver, elles doivent conclure entre elles un vrai partenariat, d'autant plus que le métier des entreprises évolue très vite. En effet, leur développement entraîne la mise en place de nouvelles applications qui doivent échanger des données avec les applications existantes. Certaines entreprises étendent leurs activités voire changent de métier et les frontières entre métiers s'estompent : les chaînes de magasins ou les pétroliers émettent des cartes bancaires, les grandes surfaces vendent des voyages...
Pour faire face à ces évolutions rapides, il faut une architecture informatique solide, souple et réactive, capable de répondre rapidement, efficacement et de manière sûre aux demandes d'évolution. La SOA, architecture orientée services, est une voie de plus en plus utilisée. Mais elle peut prendre plusieurs formes. Et elle ne s'applique pas nécessairement à toutes les activités de l'entreprise. En effet, autant celle-ci modifie en permanence ses processus critiques, autant ses processus de commodité font preuve d'une grande stabilité.
Des technologies variées, obligatoirement ouvertes
Qui dit architecture dit mise en cause des applications existantes. Ou plus exactement des applications monolithiques conçues pour une catégorie unique d'utilisateurs. Il y a longtemps que la bataille contre les silos, isolés les uns des autres, a commencé. La mise en place de processus transversaux a été l'une des premières réponses à la nécessité de faire communiquer les applications entre elles. Mais pour aboutir à une réelle souplesse et à un bon niveau de réutilisation des modules applicatifs, il faut appliquer une granularité plus faible. L'objectif est d'obtenir des services publiés, accessibles et sécurisés, mis en ?uvre au sein d'une architecture SOA.
L'architecture à base de composants d'IFS Applications
Plus la structure d'une application est modulaire, plus l'adoption d'une architecture SOA est aisée. Ainsi, l'éditeur IFS a-t-il abordé cette problématique dans une position avantageuse grâce à l'architecture de son progiciel basé depuis l'origine sur des composants : il publie un certain nombre de composants sous forme de services depuis 2004. Le chantier a été d'une toute autre ampleur pour SAP, qui a investi des sommes considérables dans sa plate-forme NetWeaver. Mais le résultat est là : SAP annonce la disponibilité de 2 300 services.
Une fois mise en place, l'architecture SOA permet d'intégrer de nouveaux services dans le patrimoine applicatif. Cette intégration sera d'autant plus facile que le système d'information de l'entreprise est découpé en couches bien distinctes permettant de séparer les aspects techniques des aspects métiers, la partie transactionnelle de l'utilisation. Modules, couches et applications doivent s'échanger des informations de manière industrialisée et se combiner en processus. L'approche SOA est donc indissociable de l'approche BPM pour la gestion des processus.
Des plates-formes d'intégration prennent en charge tous ces aspects. L'investissement initial de mise en place d'une plate-forme comme AIA (Applications Integration Architecture) d'Oracle est largement compensé par la facilité et la rapidité d'intégration de nouvelles applications. En particulier, AIA comporte des processus d'intégration packagés. Ce type d'outil peut prendre en charge à la fois des applications internes et des applications externes. Or elles sont souvent conçues pour fonctionner de manière indépendante. C'est tout l'intérêt des solutions de bus applicatifs, comme celle de Tibco. Certaines applications peuvent même être des applications hébergées, fournies comme services à la demande en mode SaaS. En fait, l'essor du SaaS est lié à la mise en place d'une architecture SOA.
Développer pour réutiliser, développer en réutilisant
La mise en place d'une architecture SOA dans une entreprise modifie complètement la stratégie de développement des projets. Les chefs de projets ne pourront plus se réfugier derrière l'urgence de leur mission. La communication à l'intérieur de l'entreprise devient essentielle : le premier réflexe doit être d'aller voir si des briques, des services n'existent pas en interne. L'idée est d'encourager les gens à développer des applications réutilisables. Mais pour que cette approche soit viable, les services doivent figurer au sein d'un référentiel des services capable de les recenser avec un bon niveau de spécification. Airbus a entrepris une démarche SOA pour l'ensemble de ses applications et de ses nouveaux projets, ce qui a amené l'entreprise à modifier radicalement aussi bien le mode de travail des ses équipes internes que ses relations avec ses contractants.
SOA : évolution ou révolution ?
La démarche SOA s'est imposée pour la modernisation des systèmes d'information existants. Mais elle prend une toute autre dimension quand elle est mise en ?uvre pour la construction de nouveaux systèmes. Il pourrait bien s'agir d'une révolution permettant de concevoir un SI totalement ouvert et communiquant, d'une nature bien différente des systèmes existants. C'est un concept sur lequel le monde des logiciels libres a eu une grande influence. Dans cet esprit, il s'agit pour chaque entreprise de maîtriser totalement ses applications, sans dépendre de tiers. C'est ce que fait depuis ses origines en 2000 la société b-pack en s'appuyant sur la SOA. Et pour rendre ses composants encore plus ouverts et tirer parti d'Ajax dans une perspective Web 2.0, cet éditeur d'une suite logicielle d'e-procurement a déjà réécrit ses applications.
Un métier s'appuie souvent sur plusieurs applications, qu'il devient donc nécessaire d'intégrer. La communication entre tiers amène à ouvrir les applications vers l'extérieur. La SOA permet de définir des interfaces machine-machine qui ont les mêmes possibilités que les interfaces homme-machine en terme de souplesse et de personnalisation. Aux éditeurs d'explorer ces nouvelles possibilités pour rendre un meilleur service à leurs clients.
René Beretz
Cet article reprend les thèmes abordés lors du colloque « SOA, avenir des applicatifs de gestion de l'entreprise ? », qui s'est tenu le 2 octobre 2008 lors du Salon ERP 2008.