La SOA sous les feux de la rampe
En quelques années, le phénomène SOA a pris une ampleur démesurée (même si diront certains, la génération de l'objet distribué a esquissé les fondamentaux technologiques, tandis que l'EAI et le B2B en ont dessiné les contours fonctionnels).
Le terme SOA nous interpelle tous tant par l'hétérogénéité des problématiques abordées que la multitude des acteurs concernés :
La SOA est composée de 3 domaines d'un point de vue technologique : l'Interopérabilité (Entre Java, .Net et les Legacy autour de messages XML et de transports synchrones ou asynchrones) , l' Infrastructure (Bus de service, Monitoring, Provisionning) et la Gouvernance (Renforcement des politiques d'accès, s'assurer de répondre aux exigences de qualité de services, identification des domaines métiers candidats, définition d'un plan de route du système d'informations).
Il s'agit de gagner en agilité dans la gestion et l'évolution des processus métiers, nouer des partenariats commerciaux sans les lourdeurs liées à l'ajustement des infrastructures techniques ou encore créer une relation privilégiée avec ses clients grâce à des accès personnalisés et universels (cad, depuis n'importe quel matériel).
Fort de ce constat, il apparait que la SOA est tantôt une approche, tantôt une architecture, tantôt une solution d'implémentation. Si tous ces points de vue sont pertinents, il est facile de s'égarer dans les méandres de la technologie au point d'en perdre le sens fondamental, qui réside dans la notion de "Services".
Dans ce contexte, si l'on veut donner un sens à la SOA, il est nécessaire de se donner une ligne de conduite, c'est-à-dire, une stratégie pour tirer les bénéfices de ce paradigme que sont les Services.
Quelle stratégie adopter dans cette ère des Services ?
Sitôt que l'on aborde le sujet des Services, les stratèges d'Entreprise se posent de nombreuses questions et ce de façon tout à fait légitime : Comment les Services peuvent concourir au succès de mon entreprise ? Comment tirer parti de ces Services pour en faire un différentiateur ? Au vu de mon activité, sur quel type de Services dois-je me positionner ? Avec quelle priorité, est-ce urgent, sommes-nous en retards ? Quels Services proposés aujourd'hui par des tiers seraient potentiellement concurrents à long terme sur mon domaine d'activité ? Dois-je nouer des partenariats ou investir pour proposer des services mettant en avant ma valeur ajoutée ?
De leur côté, les directions informatiques s'interrogent sur l'articulation des Services vis-à-vis de leur existant , à savoir si leurs investissements passés peuvent s'intégrer dans cette nouvelle ère. A ce titre, leurs questions sont multiples : Mon infrastructure est-elle capable de supporter des Services ? Comment faire cohabiter des Services avec mes Logiciels (ces "softwares", ces applications hébergées sur mes serveurs d'infrastructures et gérés par mes équipes) ? Est-il possible que je remplace certaines briques de mon système d'informations par des Services ? Et dans ce cas, pourquoi ne pas les externaliser ? Comment exposer mes applications sous forme de Services ? Dois-je mettre en place des passerelles vers cet univers des Services ou bien mes applications doivent-elles être nativement et donc systématiquement orientées Services ? Puis-je être assuré de contrôler l'accès aux données de mon système d'informations tout en offrant l'accès nécessaire à l'exécution des Services ? Ou bien devrais-je ouvrir mon système d'informations en totalité en me dotant des moyens pour assurer un contrôle parfait des interactions externes (qui se traduisent par des messages et des flux de données, à la fois entrants et sortants) ?
A la lumière de ces questions, on s'aperçoit que Direction Métier et Direction Informatique font globalement face à la même interrogation, à savoir comment s'articulent Logiciels et Services ? Quelle est la part des Logiciels, quelle est la part des Services ? Peut-on imaginer un monde réduit à la seule utilisation de Services, et dénué de Logiciels ?
Software as a Service - SaaS
Les années Web (depuis les années 2000) ont vu se développer le concept des applications en ligne (Software as a Service - SaaS). Il s'agit de logiciels accessibles au travers d'une interface HTML, et qui peuvent donc être hébergés soit à l'intérieur de mon organisation (facilité de déploiement et des mises à jour - c'est la vague du Intranet), soit externalisés (dans ce cas, l'objectif est d'externaliser des fonctions non stratégiques ou bien qui peuvent être facilement extraites. Ces fonctions sont candidates à un gain financier pour mon organisation, tout en favorisant mes équipes à se concentrer sur la valeur ajoutée de mon organisation).
On constate que le spectre des applications en ligne - SaaS reste limité en entreprise à quelques fonctions : la messagerie en ligne et la gestion de la relation client (CRM) notamment.
Ainsi, la plupart des applications Web restent hébergées au sein des organisations ou sur un système d'information étendu (mon entreprise et ses sous-traitants). Et pour cause : connecter des applications externalisées à un système d'informations (plus ou moins centralisé et réticent à s'ouvrir sur des fournisseurs voir des partenaires) représente un travail d'intégration complexe, pour allier disponibilité, usabilité et sécurité. Ce point constitue l'obstacle majeur à la généralisation des applications en mode SaaS pour l'entreprise.
Le second obstacle réside dans l'impossibilité des technologies Web à proposer des expériences utilisateur à la fois riches, fluides et variées (en mode connecté ou déconnecté, capable de s'adapter aux capacités des terminaux PC ou mobiles). Certes, cet obstacle peut être levée au prix d'investissements colossaux. Néanmoins ceux-ci ne sont pas justifiables dans la logique d'une seule organisation, et ne peuvent trouver un écho lque orsque ces applications SaaS s'intègrent dans la stratégie d'un éditeur spécialisé pour l'entreprise (Microsoft CRM Live, Outlook Web Access, Office Live, SalesForce). Notons que le grand public est une cible suffisamment rémunératrice, via la publicité en ligne, pour justifier ces investissements et financer des logiciels en ligne tels que Microsoft Live Mail, Google Mail.
Il faut noter que le concept des applications en ligne "SaaS" a trouvé un second souffle avec l'avènement de la technologie AJAX qui a permis de repousser les limites de l'interactivité des interfaces HTML (pour exemple, le framework Microsoft ASP.Net AJAX). Cependant, la technologie AJAX aussi séduisante soit-elle ne résoud pas la problématique mentionnée précédemment concernant l'intégration au système d'informations.
Si les applications SaaS restent limitées à quelques fonctions du système d'informations, les logiciels d'entreprise peuvent toutefois tirer parti des Services de bien d'autres façons.
Software AND Services
Dans cette interview réalisée par APC Magazine, Craig Mundie présente la vision Microsoft de l'évolution du Logiciel et des Services :
"...our view right now is that the future is really about these composite experiences of locally running software in the client devices, working in conjunction with services that exist in the internet cloud. Some of those services are infrastructural and some of them are experience specific. We have been working for the last few years to add the service component to both the platforms in almost every single Microsoft software product. I think there was a period of popular mythology, where everybody was saying the whole world is going to migrate to 'software as a service' over the internet. We absolutely don't think that is true and I think it is increasingly recognised as not likely to be true. Rather, what will happen is that you'll have, a seamless integration of locally running software in increasingly powerful client devices (not just desktops) and a set of services that work in conjunction with that. A lot of what we are doing with the Live platform not only allows us to provide the service component for our parts, but also gives the abilities for the developer community to perfect their composite applications and get them deployed at scale."
"...our view right now is that the future is really about these composite experiences of locally running software in the client devices, working in conjunction with services that exist in the internet cloud. Some of those services are infrastructural and some of them are experience specific. We have been working for the last few years to add the service component to both the platforms in almost every single Microsoft software product.
I think there was a period of popular mythology, where everybody was saying the whole world is going to migrate to 'software as a service' over the internet. We absolutely don't think that is true and I think it is increasingly recognised as not likely to be true.
Rather, what will happen is that you'll have, a seamless integration of locally running software in increasingly powerful client devices (not just desktops) and a set of services that work in conjunction with that.
A lot of what we are doing with the Live platform not only allows us to provide the service component for our parts, but also gives the abilities for the developer community to perfect their composite applications and get them deployed at scale."
Cette vision de l'évolution du Logiciel est constituée de deux certitudes :
1. Les logiciels s'appuieront sur des services, souvent externalisés. Par ailleurs, ces services sont de trois natures : "Building Block", "Attached" et "Finished". 2. En complément des traditionnelles interfaces homme machine, les logiciels exposeront des services directement exploitables par les utilisateurs finaux. Et pour être consommés par le plus grand nombre, ces services proposeront de multiples interfaces d'accès : orientées ressource (flux RSS, données REST), orientées activité (messages SOAP)...
1. Les logiciels s'appuieront sur des services, souvent externalisés. Par ailleurs, ces services sont de trois natures : "Building Block", "Attached" et "Finished".
2. En complément des traditionnelles interfaces homme machine, les logiciels exposeront des services directement exploitables par les utilisateurs finaux. Et pour être consommés par le plus grand nombre, ces services proposeront de multiples interfaces d'accès : orientées ressource (flux RSS, données REST), orientées activité (messages SOAP)...
La stratégie préconisée par Microsoft pour prendre en compte cette évolution du logiciel se concrétise dans le concept "Software + Services" :
Pour Gianpaolo Carraro, le paradigme d'architecture logicielle "Software + Services" ne constitue rien moins que la convergence de la "République du Poste Client", du "Grand Duché de l'Entreprise", de " l' Eruption de la montagne Web" et de la "Contrée des Terminaux". Je vous invite vivement à lire sa chronique humoristique : "A Planet Ruled by Software Architectures", proposée dans le Journal Architecture 13 - Software + Services.
Software + Services
Gianpaolo rappelle que le paradigme Software + Services peut s'appliquer de multiples façons pour l'Entreprise.
En premier lieu, on peut considérer que les logiciels résident sur des postes clients, qui font appel tantôt à des traitements locaux, tantôt à des applications en ligne. Mais, on peut aussi penser à un système d'informations étendu dont une partie des applications s'exécuterait sur le système d'informations, et dont une autre partie s'exécuterait à l'extérieur.
Si bien que trois scenarios émergent :
Résumons-nous
La multiplicité de scénarios envisageables à partir des concepts SOA justifient l'engouement actuel autour des Services.
Si la démarche SaaS (Software as a Service) constitue une restriction des possibilités offertes par les services, cette stratégie est néanmoins pertinente pour le grand public et des petites entreprises qui cherchent à minimiser les coûts de leur IT. Sur ce point, nous avons attiré votre attention sur la difficulté pour les applications à gérer les scénarios déconnectés, ainsi qu'à s'intégrer au système d'informations.
En ce qui concerne les grandes entreprises, la préconisation est de mixer des applications en ligne (SaaS) avec des applications s'appuyant sur des services de différentes natures (Building Blocks, Attached, Finalized) mais aussi d'exposer des services prêts à être consommés par des partenaires et des clients (dans un mode SOA, orienté activités ou ROA, orienté ressources).
La vision Microsoft "Software + Services" répond non seulement aux besoins SaaS mais cette vision s'adresse aussi particulièrement aux grandes entreprises en favorisant la flexibilité d'utilisation du paradigme Services dans l'implémentation et l'exploitation de leurs logiciels. La vision Microsoft "Software + Services" vise à étendre le champ du possible, plutôt que de privilégier à priori tel ou tel scénario. Au travers de cette vision "Software + Services", Microsoft investit pour :