EnglishSite mapContactsFrançais
 SociétéConseilFormationIngénierieProduitsMOATechnologiesMétiersEvénementsRecrutement
Technologies 
Web Services

En quelques mois, les Web Services sont devenus le nouveau point de convergence technologique de l'ensemble des acteurs du marché de l'informatique.

L'objectif des Web Services est de faciliter l'accès aux applications entre entreprises et ainsi de simplifier les échanges de données. Ils poursuivent un vieux rêve de l'informatique distribuée où les applications pourraient interopérer à travers le réseau, indépendamment de leur plate-forme et de leur langage d'implémentation. Dans ce sens, ils s'inscrivent dans la continuité d'initiatives telles que CORBA (Common Object Request Broker Architecture, de l'OMG) en apportant toutefois une réponse plus simple, s'appuyant sur des technologies et standards reconnus et maintenant acceptés de tous.

 

Qu'est-ce qu'un Web Service ?

Un Web Service est un composant implémenté dans n'importe quel langage, déployé sur n'importe quelle plate-forme et enveloppé dans une couche de standards dérivés du XML. Il doit pouvoir être découvert et invoqué dynamiquement par d'autres services.

Cette nouvelle technologie, initiée par IBM et Microsoft, puis en partie normalisée sous l'égide du W3C, est maintenant acceptée par l'ensemble des acteurs de l'industrie informatique sans exception. C'est surtout ce point qui fait des Web Services une technologie révolutionnaire.

Les aspects purement technologiques n'ont eux rien de fondamentalement novateurs. Au contraire, l'architecture des Web Services s'est imposée (tout comme le langage XML) grâce à sa simplicité, à sa lisibilité et à ses fondations normalisées.

Le concept des Web Service s'articule actuellement autour des trois acronymes suivants :

  • SOAP (Simple Object Access Protocol) est un protocole d'échange inter-application indépendant de toute plate-forme, basé sur le langage XML. Un appel de service SOAP est un flux ASCII encadré dans des balises XML et transporté dans le protocole HTTP.
  • WSDL (Web Services Description Language) donne la description au format XML des Web Services en précisant les méthodes pouvant être invoquées, leur signature et le point d'accès (URL, port, etc..). C'est, en quelque sorte, l'équivalent du langage IDL pour la programmation distribuée CORBA.
  • UDDI (Universal Description, Discovery and Integration) normalise une solution d'annuaire distribué de Web Services, permettant à la fois la publication et l'exploration. UDDI se comporte lui-même comme un Web service dont les méthodes sont appelées via le protocole SOAP.

Un avantage significatif des Web services, relativement aux autres solutions d'architecture distribuée, est son support des pare-feux (firewalls) : l'utilisation du protocole HTTP sur le port 80, généralement ouvert, leur permet de passer sans encombre ces barrières de l'entreprise. Cette facilité engendre d’autres soucis de sécurité, l’utilisation par défaut de ces caractéristiques est trop permissive et nécessite une prise en compte de la sécurité au niveau des protocoles.

 

L'infrastructure Web Services

La normalisation actuelle autour des Web Services est cependant un vaste chantier qui va bien au-delà de la simple invocation d'une méthode d'un objet distant. Différents travaux ont ainsi démarré pour tenter de définir une véritable infrastructure distribuée, capable de satisfaire l'ensemble des besoins d'une application distribuée, aussi bien en terme de normalisation des échanges qu'en terme de services transverses.

On peut schématiser cette organisation des comités de normalisation selon le découpage matriciel suivant :

  •  Normalisation des services transverses sur trois axes horizontaux:
    - Couche de transport : Définition de la structure des messages utilisés par les applications pour se découvrir et dialoguer entre elles
    - Couche de sémantique : Normalisation des données participant aux échanges selon des critères métier
    - Couche de gestion des processus : Standardisation de la gestion des processus métier qui s'étendent sur plusieurs applications disponibles sur l'Internet
  • Normalisation des services transverses sur trois axes verticaux:
    - Service d'annuaire : Standardisation des moyens d'accès à un service à partir d'une requête portant sur le contenu d'un service ou sur un fournisseur
    - Service de sécurité : Normalisation des moyens permettant de couvrir les problématiques d'authentification et de gestion des droits d'accès
    - Service de transaction : Normalisation des moyens permettant de garantir l'intégrité des transactions longues impliquant plusieurs Web Services

 

Etat de la normalisation

A l'heure actuelle, seule la couche de transport est réellement normalisée et ne souffre d'aucune contestation. Elle s'appuie sur le protocole SOAP pour l'échange des messages et sur le langage WSDL pour la définition du contrat de l'interface.

Les initiatives de définition de la couche de sémantiques des messages sont nombreuses et n'ont pour le moment pas conduit à une quelconque normalisation. Deux types de chantiers sont actuellement ouverts, l'un organisé selon les différents corps de métier, l'autre suivant une approche plus globale autour de consortium tel que OASIS (initiateur de ebXML) ou RosettaNet.

L'orchestration de transactions B2B complexes, fondée sur une modélisation normalisée des flux est également une initiative qui n'avance que très lentement et sur des activités non concertées. On peut citer en exemple BPML (Business Process Modeling Language de BPMI), WSFL (Web Services Flow Language, d'IBM) ou XLang (de Microsoft).

Au niveau des services, on pouvait penser que la proposition d'annuaire UDDI apporterait une solution définitive. On constate qu'il n'en est rien et que le canevas, trop global, du projet ne convient pas à une problématique d'échanges entre entreprises se connaissant. Il se voit maintenant concurrencer par WS-Inspection (proposé par IBM et Microsoft, pourtant à l'origine de UDDI). Moins ambitieux puisque consistant en une simple exposition, par agrégation, des services d'une entreprise, il est toutefois plus adapté à cette seconde problématique.

La gestion de la sécurité et des transactions est actuellement le frein le plus important à la mise en place d'architectures distribuées à base de Web Services. Plusieurs chantiers sont ouverts mais aucun n'est réellement accepté. On peut cependant penser que la norme XACML (eXtensible Access Control Markup Language ) devrait supplanter SAML (Security Assertion Markup Language) au niveau sécurité et s'imposer à terme comme standard de sécurité. En ce qui concerne l'aspect transactionnel, la lutte est plus ouverte, même si BTP (Business Transaction Protocol ) semble plus soutenu actuellement.

 

Cas Concrets

Que ce soit dans le monde de J2EE ou dans celui de .NET, tous les acteurs majeurs proposent une solution orientée Web Services ainsi que l'intégration imminente des standards associés. Parallèlement, les premières utilisations de cette technologie voient le jour, notamment dans le domaine des solutions de CRM (Sevina ou Onyx), de gestion des ressources humaine (CCMX) ou de mutualisation de contenu (Systeme U, Digiplug).

 

Est-il urgent d'attendre ?

Les Web Services provoquent un intérêt évident auprès des architectes et des décideurs. La question récurrente concerne leur degré de maturité.

Il est clair que sur une technologie aussi récente, le recul n'existe pas. Mais, même si l'édifice est encore fragile, il repose sur des bases solides (SOAP et WSDL) qui ont prouvé leur efficacité et leur maturité. D'ores et déjà, les Web Services ont quitté le champ des échanges inter-entreprises pour s'accaparer celui du référencement et de la mise à disposition des ressources de l'entreprise, empiétant en ce sens sur les technologies de type EAI. Cette utilisation à elle seule prouve la qualité du modèle et sa pérennité, notamment au niveau des couches les plus basses.

Par contre, la normalisation complète d'une architecture distribuée fondée sur les Web Services n'est pour le moment qu'un rêve annoncé chaque année, pour la fin de l'année suivante ! Par ailleurs, ce modèle n'échappe pas à des problèmes de performance : les données sont transmises en ASCII dans une encapsulation XML elle-même intégrée dans une enveloppe SOAP puis HTTP… Le problème du choix de la bonne granularité du service, commun à toutes les architectures distribuées, se présente dans le cas des Web Services de manière plus aiguë encore.

Même s'ils n'ont pas acquis la maturité nécessaire à leur industrialisation, les Web services s'annoncent plus que jamais comme la réponse appropriée aux problématiques d'échange de données et d'intégration d'applications.

Pour la mise en œuvre des Web Services, SOFTEAM se propose de mettre son expertise et la capitalisation de son expérience à votre disposition au travers de son offre de Conseil, Formation, Ingénierie ou Produits.

Copywright © 2009 SOFTEAM - Think Object : Modeling