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 :

  • Ici, les spécialistes techniques débattent de la meilleure façon d'appliquer les principes des architectures orientées services à l'évolution du système d'informations.

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).

  • Là, les fonctionnels réfléchissent aux bénéfices de la SOA en terme d'avantage concurrentiel sur leur secteur industriel.

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."

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)...

 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 :

  1. Des logiciels installés sur des postes clients qui font appel à des services exposés par des applications en ligne. C'est le cas de Microsoft Outlook qui est interfacé à CRM Live.
  2. Des logiciels installés sur des serveurs internes qui sont enrichis grâce à des services techniques externalités. C'est le cas d'un service externalisé de filtrage de messagerie Anti-Spam et Anti-Phishing qui est déclenché depuis un serveur de messagerie interne à l'entreprise.
  3. Des logiciels qui s'exécutent au sein du système d'information en appelant des services dont la localisation est variable. C'est le cas de la SOA généralisée, qui permet de rationaliser ses infrastructures.

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 :

  • Apporter la meilleure expérience à l'utilisateur
  • Laisser la liberté du mode de mise à disposition de toute ou partie de ses applications (installées sur ses infrastructures, hébergées chez des partenaires, hébergées chez Microsoft)
  • Garantir l'accessbilité aux données qu'elles soient situées sur des postes, des serveurs, des terminaux mobiles ou en ligne
  • Sécuriser l'accès aux données sans que ce soit au détriment de l'exploitation et l'utilisabilité des logiciels
  • Optimiser ses coûts d'utilisation des logiciels en proposant de multiples modèles de licences (acquisition, paiement à l'utilisation, royalty, recours à la publicité)