Les WebServices et le XML : l’avènement de nouvelles applications indépendantes du poste client

L’avènement des technologies XML et WebServices n’a fait qu’étendre le concept Internet à des applications distribuées au-delà d’un réseau d’entreprise et a donnée naissance aux architectures orientées service (Service Oriented Architecture ou SOA)

XML : eXtensible Markup Language

XML est une extension du langage SGML ayant déjà largement fait ses preuves notamment sur Internet avec sa déclinaison HTML.

Cette extension a pour objet de rendre complètement universel l’usage de ce format à base de balises quel que soit la nature de son application :

  • fonds documentaire,
  • échange de données entre plusieurs objets métiers (cf Web Services),
  • personnalisation d’interfaces utilisateurs.

L’une des forces du XML est de rendre indépendante la structure des données de leur utilisation finale.

Cela pérennise tous les systèmes producteurs de données XML et les données elles-mêmes :

  • Un document XML représente le contenu et non sa forme, il est neutre quant à son utilisation et sa mise en page : à un document XML peut ainsi être associé une diversité de supports de destination (électronique, papier, …)
  • Une application développée avec une interface utilisateur qui s’appuie sur le XML permet d’étendre l’usage de l’application à différents clients (Web, PDF, WAP, …).

Les Web Services

Le terme Web Services regroupe un ensemble de technologies permettant de développer des composants logiciels distribués, de décrire leur interface et de les utiliser indépendamment de la plate-forme sur laquelle ils sont implémentés :

  • XML : format universel de données,
  • SOAP : Simple Object Access Protocol, protocole d’invoquation d’une méthode Web Services,
  • WSDL : Web Services Description Language, description en XML de l’interface du Web Services en terme de paramètres entrants et de schéma de données sortantes.
  • UDDI : Universal Description, Discovery and Integration : annuaire des composants disponibles Web Services. Cet annuaire peut être disponible sur Internet, Extranet ou Intranet.

Grâce aux Web Services, il devient possible pour une entreprise d’optimiser l’exploitation de son savoir-faire métier et de le partager à travers son système d’information interne ou avec des partenaires externes.

Inversement, l’intégration par une entreprise de Web Services créés par un de ses partenaires lui permet de compléter son offre de services sans qu’il lui soit nécessaire de recréer le savoir-faire métier de ses partenaires.

SOA : architectures orientées « Services »

Le SOA est une démarche d’architecture qui exploite les bénéfices des Web Services. Cette démarche permet de connecter entre eux des systèmes hétérogènes et autonomes.

Exemple sur un projet de e-commerce vu par les différents acteurs concernés :

  • Le responsable sécurité : « Les comptes doivent être stockés dans l’annuaire LDAP sécurisé de l’entreprise »
  • Le responsable commercial : « Le catalogue des produits est hébergé sur le mainframe CICS »
  • Le responsable comptabilité : « Les factures doivent êtres éditées via SAP »
  • Le directeur technique : « Une réplication n’est pas envisageable, les volumes sont beaucoup trop importants. »
  • Le commanditaire : « Les consommateurs doivent pouvoir régler en ligne,

S’il reste un lien fonctionnel entre les produits « commandables » et les factures résultantes, on constate que, d’un point de vue technique, l’hétérogénéité des systèmes hébergeurs pose problème : « Dois-je élargir mon référentiel SAP pour accueillir les références du catalogue sur CICS ou bien faire converger les références dans CICS avec celles de la convention standard SAP ? »

La démarche SOA essaye de donner une réponse à cette nouvelle problématique de construction d’application mais aussi de garantir qu’une architecture SOA puisse répondre à ce type de question posée en phase d’évolution du système sans avoir besoin de tout remettre en cause.

Ainsi, la démarche projet SOA consiste à :

  • Cloisonner les domaines fonctionnels (catalogue, utilisateur, commande).
  • Déterminer les services.
  • Définir le métier de chaque service.
  • Construire les messages XML échangés.