Définition de l`EAI (Enterprise Application Intégration) - E

publicité
1
1. Introduction
La diversité des applications existantes dans une même entreprise et la nécessité de
manipulations de quantités de plus en plus importantes de données, posent un grand problème.
De par le fait, la communication entre les applications d’une même entreprise devient de plus en
plus difficile, à cause des technologies hétérogènes utilisées par chaque application. Par
conséquent, on obtient un système incohérent, mal adapté et incompatible. Dans ce sens, et pour
régler ces problèmes, le concept d’EAI est apparu comme solution. Si nous voulons donner une
définition globale et simple à ce concept, nous pouvons dire que l’EAI est le chef d’orchestre qui
fait communiquer et collaborer les applications d'une même entreprise et offre l’interopérabilité
entre les différentes applications hétérogènes afin de fournir un système d’informations
homogène et intégré.
En plus à l'urbanisation de son système d'information interne, l’entreprise aujourd’hui a
besoin d’une ouverture vers son environnement économique pour accomplir des échanges
interentreprises avec ses partenaires par le biais d’Internet (B2B : Business to Business) et
répondre aux besoins de ses clients le plus rapidement possible (B2C : Business to Consumer).
Donc, nous pouvons dire qu’il y a deux principaux types d’intégrations : interne et externe. Mais
réellement, le monde d’EAI est très vaste car il englobe plusieurs approches, techniques et
technologies d’intégrations. Ces derniers ont évolué dans le temps depuis que le concept d’EAI a
vu le jour.
Actuellement, les solutions EAI de la deuxième génération sont tournées vers les
processus métiers et les échanges interentreprises : elles prennent en compte les nouveaux
modèles économiques créés et promus par Internet et ses technologies (TCP/IP, SMTP, HTTP,
FTP, XML, etc.). De plus, les progiciels de gestion intégrés de la deuxième génération apportent
une quantité de nouveaux modules organisés autour d'une nouvelle vision pour les systèmes
d’information qui est l’architecture orientée services (SOA).
Dans ce contexte, les services Web qui sont basés sur des technologies Web dérivées du
fameux standard XML présentent de nombreux atouts pour faire communiquer des systèmes
caractérisés par une hétérogénéité croissante. Ils permettent également de mettre en oeuvre des
services applicatifs partagés et de gérer la connectivité aux données.
2. Architecture orientée services
L’architecture orientée services est une nouvelle vision pour le système informatique. Ce
dernier n’est plus décrit comme un ensemble d’applications mais comme un ensemble de
services. Donc, plutôt que de privilégier une architecture applicative basée sur des contraintes
2
techniques, l’architecture orientée service (SOA) propose de découper les fonctionnalités d’une
application en services métier, réutilisables dans d’autres applications. En se concentrant sur les
services, les applications sont agrégées pour fournir des processus opérationnels plus riches et
plus significatifs.
Contrairement aux applications à trois niveaux qui sont conçues selon un découpage de
type : présentation, logique applicative et base de données, la SOA sépare la conception selon le
modèle : la présentation, l’interaction synchrone, les processus, les services et les bases de
données. Les services d’une architecture SOA répondant, notamment, aux critères suivants:
 Faiblement couplés : les applications traditionnelles incluent dans leur code les données
métiers de l’entreprise. Elles sont complètement liées aux systèmes pour lesquels elles ont
été conçues. Cette contrainte implique la difficulté de toute demande de modification,
qu’elle concerne l’accès aux données, les règles de gestion ou celles de présentation. Un
faible couplage permet une scission des aspects métiers du code qui permettra une simple
reconfiguration des processus quand les fonctions métiers évoluent.
 Distribués : les services qui composent les applications peuvent être physiquement répartis
sur des différents systèmes dans l’entreprise, mais aussi au-delà.
 Invocables et publiables : les services doivent être invocables et publiables quels que soit
les systèmes utilisés.
Une architecture de services (SOA) est constituée de trois composants primaires. Le
premier est le prestataire de services (le service réel). Vient ensuite le demandeur du service,
autrement dit le composant qui accède au service. Enfin, l'agence de services fournit des services
de découverte et d'enregistrement.
Prestataire de services : Un prestataire de services est la source de la fonctionnalité des
services. Un prestataire publie un contrat d'interface utilisé par les demandeurs pour accéder au
service. Le contrat définit ce que fait le service et comment y accéder.
Demandeur de service : Le demandeur est le client d'un service. Il utilise l'agence pour
découvrir quels services sont disponibles. Une fois un service est localisé, le demandeur extrait
le contrat d'interface correspondant de l'agence. Le client utilise le contrat d'interface pour
comprendre comment accéder au service.
Agence de services : Une agence de services est un registre des services disponibles. Chaque
prestataire publie son contrat d'interface à l'agence avec les informations à utiliser pour localiser
le service. Le demandeur recherche les services appropriés dans l'agence et extrait le contrat
d'interface correspondant.
3
3. Caractéristiques des services Web
L’évolution rapide des nouvelles technologies introduit un changement des stratégies
dans les entreprises. Ces dernières veulent intégrer les nouvelles technologies dans ses systèmes
d’information le plus tôt possible, pour donner plus de souplesse et de simplicité surtout pour les
communications externes avec ses partenaire et clients. Les services Web font partie de celle- là.
Ils ont une motivante clé qui est l’interopérabilité. Ils sont invocables via des protocoles Internet
standards et légers comme HTTP, FTP, SMTP. Les services Web offrent des fonctionnalités
permettant à une organisation de simplifier l'utilisation de services applicatifs à distance via le
réseau Internet ou via un réseau privé [BERN 03].
3.1 Définition des services Web
Les services Web sont des composants logiciels encapsulant des fonctionnalités métiers
de l'entreprise et accessibles via des protocoles standards du Web. Ils sont constitués d'un
ensemble de standards : XML (Extensible Markup Language) en tant que technologie utilisée
pour décrire les informations, UDDI (Universal Discovery, Description and Integration) pour
trouver les services dont on a besoin, WSDL (Web Services Description Language) pour décrire
le fonctionnement des services Web et SOAP (Simple Object Access Protocol) pour exécuter à
distance les services Web [IMPR 02].
3.2 Les deux parties d’un service Web
Pour donner une vue plus claire et plus détaillée, nous donnerons une autre définition
pour le concept de services Web :
Un service Web est un composant d’application programmable accessible via les
protocoles Internet standard, il est constitué de deux interfaces : la partie propriétaire du service
Web expose un composant logiciel écrit dans tout type de langage (C++, java, PHP, …etc.), et la
deuxième est construite d’un ensemble de standards : WSDL, SOAP et UDDI. Les applications
clientes (utilisateurs de services Web) peuvent localiser ces services publiés par des applications
serveur (prestataires de services Web) à l'aide du standard UDDI; elles peuvent déterminer la
définition de l'interface du service à l'aide du langage WSDL et échanger des données par des
documents XML reposant sur le protocole SOAP et sur des protocoles universels tels que HTTP,
FTP et SMTP [SAMT 02], [BURE 03], [CIME 02].
4
S
T
A
N
D
A
R
D
S
W
S
D
L
Transport : HTTP, FTP et SMTP
-------------------------------------------------------Envelope SOAP:
En tête - XML
Corps - XML
P
R
O
P
R
I
E
T
A
I
R
E
U
D
D
I
Service wrapper
Service
Figure 4 : Les deux parties d’un service Web [CIME 02]
La partie «standards» de la figure 4 contient l’ensemble des standards de base pour un
service Web, cet ensemble simple a permis aux services Web de se bâtir une forte popularité. La
figure 4 illustre également une notion importante : les standards associés aux services Web n'ont
pas prétention à définir la manière de construire un service qui va être "publié". Le service peut
exister ou être nouveau, et quelle que soit la technologie d'implémentation, cela ne changera pas
sa présentation vis-à-vis des autres services. La partie "Service Wrapper" est elle aussi
propriétaire, sans lien avec les standards Web Services [CIME 02].
En plus des trois standards de bases (SOAP, WSDL et UDDI), ils existent d’autres
standards Web services qui sont dérivés du XML. Selon les objectifs et les besoins des
entreprises connectées sur le Web et suite à l’évolution et la généralisation de XML, les trois
classes générales des standards Web services sont distinguées [CHAU 02] :

Le service de communication (SOAP) qui définit une couche de transport où XML est
utilisé pour décrire la structure des messages échangés entre les services Web.

Les services techniques qui sont utilitaires indispensables au bon fonctionnement de
l’assemblage des services Web (UDDI, WSDL,..).

Les services métiers (soit business process) : BPEL, BPEL4WS, WSBPEL,
WSCDL,…etc., soit à des scénarios mutualisés entre applications (ebXML), comme le
paiement électronique.
5
4.4
Architecture des services Web :
L’architecture de base des services Web est composée de trois participants qui jouent
trois rôles [CHAM 02]:

Le consommateur du service (service requestor) : il envoie une requête pour exécuter
un service Web.

Le fournisseur du service (service provider) : il reçoit la requête du consommateur, la
traiter et renvoi la réponse.

L’agence de découverte (Discovery agency) : elle publie la description du service.
Le schéma suivant décrit l’architecture de base des services Web, et explique le
protocole de découverte, de recherche et d’invocation des services en utilisant les trois standards
de base SOAP, WSDL et UDDI.
Agence de
découverte
Annuaire UDDI
1
2
Client
Consommateur
du service
Description
du service
3
Service
Fournisseur du
service
Description
du service
Figure 5 : Le protocole de découverte des services Web via des annuaires UDDI
[CHAU 02].
La figure 5 contient deux composants (service et description du service), les trois rôles
déjà indiqués précédemment et trois opérations : la publication (1), la recherche (2) et
l’interaction (3) [CHAM 02] :
a) Les composants

Le service est considéré comme une interface décrite par un service de description
(WSDL) et une implémentation qui représente le service lui même. Un service est un
6
composant logiciel déployé sur un réseau, accessible et fourni par un fournisseur. Le
service peut être invoqué et interrogé par un consommateur du service. Il peut également
fonctionner comme un demandeur en utilisant d'autres services Web dans son exécution.

La description du service contient des détails sur l’interface et l’implémentation du
service : les types de données, les opérations fournies par le service, l’endroit du service
sur le réseau et les méta-données pour faciliter la découverte et l’utilisation du service par
le consommateur. La description du service est réalisée dans un document WSDL et peut
être publiée directement à un consommateur du service ou à une agence de découverte.
b) Les rôles

Fournisseur du service : du point de vue business, c'est le propriétaire du service. D'une
perspective architecturale, c'est la plateforme ou l’environnement d’exécution du Web
service. D’une autre façon, nous pouvons dire que dans un modèle d’échange de
messages client/serveur le fournisseur du service est le serveur.

Le consommateur du service : d'une perspective architecturale, c'est l'application qui
recherche et invoque ou débute une interaction avec un service. Le consommateur du
service peut être une personne qui utilise un navigateur comme il peut être un programme
(un autre Web service, par exemple). Nous pouvons dire que dans un modèle d’échange
de messages client/serveur, le consommateur du service est le client.

Agence de découverte : C'est un ensemble de descriptions de services publiés par les
fournisseurs de services. Il peut être centralisé ou distribué. Le consommateur du service
peut chercher des services et obtenir des informations sur un service donné à partir de sa
description.
c) Les opérations
1. la publication : le fournisseur du service publie la description WSDL de son service
Web dans l’agence de découverte. Cette dernière utilise le standard UDDI qui est
considéré comme un annuaire des services.
2. Le consommateur cherche un service dans l’annuaire UDDI. Une fois il reçoit la liste
des fournisseurs du service recherché, le consommateur cherche l’interface du service
spécifié en WSDL puis télécharge le document WSDL correspondant.
3. le consommateur fournit les paramètres attendus par l'interface et invoque le service
en utilisant SOAP. Lorsque le fournisseur reçoit la requête, il renvoie la réponse.
7
4. Standards de base pour les services Web
Pour mieux comprendre l’architecture des services Web, il faut présenter avec plus de
détails les trois standards de base qui sont utilisés dans cette architecture (WSDL, UDDI et
SOAP), ainsi que les relations entre ces trois standards.
5.1 SOAP (le protocole de communication des Services Web)
SOAP : Simple Object Access Protocol ou (Service Oriented Architecture Protocol) est
un protocole XML permettant la communication entre composants, logiciels et applications en
s’appuyant sur des protocoles standards de type http, smtp,…etc. Sa première version SOAP1.1
proposée à W3C en 2000 par UserLand, Ariba, Commerce One, Compaq, Developmentor, HP,
IBM, IONA, Lotus, Microsoft et SAP. En suite, il fut standardisé par W3C pour la version
SOAP 1.2. [BEDU 03].
SOAP définit un ensemble de règles pour structurer des messages qui peuvent être
utilisés dans de simples transmissions unidirectionnelles, mais il est particulièrement utile pour
exécuter des dialogues requête-réponse RPC (Remote Procedure Call). Il n'est pas lié à un
protocole particulier. Il n'est pas non plus lié à un système d'exploitation ni à un langage de
programmation, donc, théoriquement, les clients et serveurs de ces dialogues peuvent tourner sur
n'importe quelle plate-forme et être écrits dans n'importe quel langage du moment qu'ils puissent
formuler et comprendre des messages SOAP. En tant que tel, il s'agit d'un important composant
de base pour développer des applications distribuées qui exploitent des fonctionnalités publiées
comme services par des intranets ou Internet [SOAP 03]. Toutes ces caractéristiques donnent une
grande motivation pour l’utilisation de SOAP dans un contexte d’intégration d’application
d’entreprise (EAI) et dans un contexte d’échanges interentreprises (B2B) [CHAU 02].
Structure d’un message SOAP
Un message SOAP constitué d’une enveloppe qui contient deux sous-éléments
spécifiques à SOAP à l'intérieur : un env:Header (en-tête) et un env:Body (corps). Les contenus
de ces éléments sont définis par l'application et ne font pas partie de la spécification de SOAP
[MITR 03].
8
Enveloppe SOAP
En- tête SOAP
(Header facultatif)
Corps du message SOAP
(Body)
Figure 6: La structure des messages SOAP [CHAU 02].
L’enveloppe est la racine du document XML contenant le message SOAP. L'en-tête
SOAP est optionnel: c’est un mécanisme d'extension qui donne un moyen de passer des
informations dans un message SOAP sans poids pour l'application. Ces informations de
"contrôle" incluent, par exemple, des directives ou des informations contextuelles liées au
traitement du message. Ceci permet d'étendre un message SOAP de manière spécifique à
l'application. Les éléments fils immédiats d'un élément env:Header sont appelés blocs d'en-tête et
représentent un regroupement logique de données qui peuvent être destinées individuellement à
des intermédiaires rencontrés sur le chemin suivi par le message entre l'émetteur et le destinataire
final. Les en-têtes SOAP ont été conçus pour anticiper des utilisations diverses de SOAP, parmi
lesquelles beaucoup impliquent la participation d'autres noeuds SOAP -appelés intermédiaires
SOAP- au long du cheminement d'un message depuis un émetteur SOAP initial jusqu'à un
récepteur SOAP final. Ceci permet à ces noeuds d'échanger des informations ajoutant de la
valeur au service. Les en-têtes peuvent être inspectés, insérés, supprimés ou réacheminés par les
noeuds SOAP rencontrés au long d'un chemin de message SOAP [MITR 03].
Le corps SOAP est l'élément obligatoire dans l'env:Envelope, ce qui signifie qu'il contient
l'information principale transportée de bout en bout par le message SOAP. L'élément env:Body
est destiné à échanger l'information entre l'émetteur SOAP initial et le noeud SOAP qui assume
9
le rôle de récepteur SOAP final dans le chemin du message. Donc, le env:Body et son contenu
sont implicitement adressés et supposés être compris par le récepteur final [MITR 03].
5.2
WSDL : le service de description
Le langage WSDL (Web Service Description Language [CHRI 01]) proposé par Ariba,
IBM et Microsoft auprès du W3C est un format de description des services Web fondé sur XML.
Il
permet de décrire de façon précise les services Web en incluant des détails tels que les
protocoles, les serveurs, les ports utilisés, les opérations pouvant être effectuées, les formats des
messages d'entrée et de sortie et les exceptions pouvant être renvoyées [IMPR 02]. Le langage
WSDL sert de référence à la génération de Proxy SOAP qui traduit le flux entrant SOAP dans le
langage du composant (Java, C#, PHP, etc.) [BURE 03]. Il assure que le couplage entre le client
et le serveur se fasse via les interfaces.
Un document WSDL contient des informations opérationnelles concernant le service. La
définition du service marquée par la balise <definitions> est la racine de tout document WSDL.
Elle peut contenir les attributs précisant le nom du service et les espaces de nommage. Un
document WSDL contient les entités suivantes:

Types: précise les types de données complexes, pour lequel WSDL emploi XML Schema.

Message: l’abstraction décrivant les données échangées entre services Web.

Operation: l’abstraction décrivant une action implémentée par service Web.

Type de port: un ensemble d’opérations implémenté par une terminaison donnée.

Liaison (binding): un protocole concret d’accès à un port et un format de spécification des
messages et des données pour ce port.

Port: un point de terminaison identifié de manière unique par la combinaison d’une adresse
Internet et d’une liaison.

Service Web: une collection de ports.
Chaque document WSDL peut être documenté grâce à une balise <documentation>. Cet
élément est facultatif.
Un document WSDL est divisé en deux parties : l’interface du service et son
implémentation. L’interface du service est la partie réutilisable de la définition du service, elle
peut être référencée par de multiples implémentations du service. Cette partie contient les
éléments : WSDL : binding, WSDL : portType, WSDL : message et WSDL:type.
Dans l’élément WSDL:portType, les opérations d’un service Web sont définies. Ces
opérations définissent comment un message XML peut apparaître dans les flux des données
10
entrants et sortants. Une opération est comprise comme une signature d’une méthode dans un
langage de programmation. L’élément WSDL:message spécifie comment les types de données
XML constituent les différentes parties d’un message. L’élément WSDL:message est utilisé pour
définir les paramètres entrants et sortants d’une opération. L’utilisation des types de données
complexes dans le message est décrite dans l’élément WSDL : types. L’élément WSDL : binding
décrit le protocole, le format de données, la sécurité et autres attributs pour une interface d’un
service particulier (WSDL : portType) [KREG 01].
La définition d’implémentation d’un service est un document WSDL qui décrit comment
une interface particulière d’un service est implémentée par un fournisseur donné. Un service
Web est modélisé par un élément WSDL:service. Un élément service contient une collection
(habituellement une seule) d’éléments WSDL:port. Un port associé un «endpoint» (par exemple
une adresse d’un endroit sur le réseau ou une URL) à un élément WSDL : binding d’une
définition d’interface d’un service [KREG 01].
Service
Définition
d’implémentation d’un
service
Port
Binding
Définition d’interface
d’un service
PortType
Message
Type
Figure 7 : Description WSDL d’un service [KREG 01].
5.3
UDDI : le service d’enregistrement
UDDI (Universal Description, Discovery and Integration) est une spécification pour la
description et la découverte de Services Web. Les spécifications UDDI se définissent à l’aide de
XML Schema ; il convient de décrire les quatre constitutions de l’enregistrement d’un service
Web : l’identité du fournisseur (pages blanches), la description du ou des services offerts (pages
jaunes), l’information sur les modes d’exploitation et les différents modèles de données sousjacents [CHAU 02].
11
Donc un document UDDI a la structure suivante [BEDU 03] :
Pages blanches : elles référencent noms, adresses, contacts, identifiants,… des entreprises
enregistrées. Ces informations sont décrites dans des entités de type Business Entity. Cette
description inclut des informations de catégorisation permettant de faire des recherches
spécifiques dépendant du métier de l’entreprise ;
Pages jaunes : elles contenant des détails sur le métier de l’entreprise, les services qu’elle
propose. Ces informations sont décrites dans des entités de type Business Service ;
Pages vertes : elles comportent des informations techniques sur les services proposés. Elles
incluent des références vers les spécifications des services Web et les détails nécessaires à
l’utilisation de ces services. Ces informations sont décrites dans deux documents : un Binding
Template et un Technology Model (tModel).
<businessEntity>
nom, contacts, description, identités, catégories
Service Web (1..n)
<businessService>
<bindingTemplate>
Information Technique
<tModel>
nom
description
pointeurs URL vers les
specifications WSDL
Figure8 : Les quatre principaux éléments d’un document UDDI [CHAU 02]
Un annuaire UDDI offre plusieurs point d’entrées (API), mais les deux grandes
bibliothèques d’appels sont : l’API de requête utilisé par les utilisateurs des services Web pour
chercher et exploiter les services et l’API de publication pour publier les services Web par les
fournisseurs (les entreprises).
5.3.1 Publication d’un document WSDL dans un annuaire UDDI
12
Pour enregistrer un service dans un annuaire UDDI, il faut publier ses deux documents
WSDL : le document interface qui contient la définition du service (<Types>, <Message>,
<Portype>, <binding>) et le document implémentation qui contient la description du service luimême (<Service>, <Port>) où ce dernier importe le document interface.
Implémentation
UDDI
<import>
BusinessEntity
<service>
BusinessService
BusinessTemplate
<port>
BusinessTemplate
<port>
Interface
tModel
<types>
<messages>
<portType>
<Binding>
Figure 9 : Enregistrement du document WSDL dans un annuaire UDDI [BEDU 03].
5.3.2
Utilisation d’UDDI comme un annuaire privé
Dans sa première publication en septembre 2000 par Ariba, IBM et Microsoft, UDDI fut
l’objet d’un certain nombre de critiques. La philosophie de UDDI est la première cause de ces
critiques, parce qu’il centralise les points d’entrées des services Web c’est à dire la création d’un
annuaire universel pour les services Web et les entreprises. Cet annuaire universel recueillant les
inscriptions des fournisseurs de services Web permet à tout un chacun d’effectuer des recherches
pour trouver les services particuliers dont il a besoin [CHAU 02].
Cette centralisation pose un grand problème qui est la lourdeur le l’annuaire UDDI
considéré dans ce cas comme un grand moteur de recherche. Cette lourdeur augmente bien sur le
temps de recherche des services Web. De plus, un des objectifs de cette première version
13
d’UDDI est de faciliter les échanges B2B sur l’Internet, mais UDDI pose deux grands problèmes
dans ce contexte [MODI 02]:
 Le manque de modération dans les enregistrements UDDI existants parce que les
modérateurs sont responsables de régler les teneurs des enregistrements qu'ils modèrent
(des compagnies posant comme fournisseurs des services qu'ils ne fournissent pas).
L'absence d'une telle modération implique que deux sur chaque trois entrées d’un
enregistrement UDDI sont probablement inutiles.
 L’absence de sécurité et de fiabilité pour les échanges B2B particulièrement dans le cas de
paiement électronique.
La deuxième version d’UDDI publiée en juin 2001 a pour but de corriger quelques
problèmes de la première version. Cette version est moins lourde à mettre en œuvre, elle est en
plus adaptée aux échanges B2B privés (sur un Extranet), au commerce électronique (dans un
contexte B2C) et même à l’intégration des applications à l’intérieur de l’entreprise.
La deuxième version d’UDDI, a été suivie par d’autres initiatives, la plus importante est
la spécification WS-Inspection (WSIL : Web Service Inspection Language) proposée par IBM et
Microsoft.
5.4
Panorama des Web services
En plus des standards de base qui constituent l’architecture des services Web, plusieurs
initiatives sont lancées par des éditeurs spécialisés dans ce domaine. Ces standards sont destinés
à accomplir différents objectifs (échange, découverte, description, sécurité, gestion d’interfaçage
client, orchestration des processus,…etc.). Mais, tous ces standards ont un point commun qui est
XML. Le tableau ci-dessous fait le point sur quelques technologies établies dans la sphère des
Web Services [DAMA 01], [DAMA 02], [CHAU 02]:
Fonctions
Découverte
Description
Echange
Transaction
Standards
UDDI,
WSIL,
ADS (Advertisement and Discovery of Services Protocol),
ebXML.
WSDL, Daml-S, OWL-S, SAWSDL,
SOAP,
DIME (Direct Internet Message Encapsulation),
SWAT (SOAP With Attachment).
SOAP-RP (SOAP-Routing Protocol)
WS-Transaction (XML Web Services Transaction Language)
14
BTP (Business Transaction Protocol)
SAML (Security Assertion Markup Language)
Sécurité
XACML (XML Access Control Markup Language)
WS- Security (Web Services Security)
ebXML
XLang
XPDL (XML Pipeline Definition Language)
Gestion des processus WSFL (Web Services Flow Language)
WSCL (Web Services Conversation Language)
tpaML (Trading Partner Agreement Markup Language)
BPWS (Business Process Execution Language)
BPML (Business Process Management Language)
Orchestration des
BPEL4WS (Business Process Execution Language for Web
processus
Services)WSBPEL,
WSUI (Web Services User Interface)
Gestion de l’interfaçage
WSXL (Web Services eXperience Language)
WSRP (Web Services for Remote Portals)
client
WSCL (Web Services Component Model)
BTP
Pilotage des échanges
Biztalk
ebXML
B2B
RosettaNet
Documents
xCBL (XML Common Business Library)
commerciaux
UBL (Universel Business Language)
Tableau 1 : Panorama des Web Services.
5. Cycle de vie de développement des services Web
Comme nous avons déjà vu, le service Web a trois composants principaux : le demandeur
du service, le service d’annuaire d’enregistrement et le fournisseur de services. Le cycle de vie
de développement des services Web décrit ci-dessous prend en considération les rôles de
fournisseur de services et de demandeur de services, il est défini en quatre phases [BRIT 01] :

Construction : la phase de construction inclut le développement et le test de
l’implémentation du service Web, la définition de la description de l’interface et la définition
de la description d’implémentation. Il y a trois possibilités pour fournir une implémentation
d’un service Web : soit par la création de nouveaux services, la transformation des
applications existantes en services Web ou bien par la composition de nouveaux services
Web et applications existantes.
Le développement d’un nouveau service Web implique l’utilisation des langages de
programmations et les modèles appropriés pour l’environnement de développement du
fournisseur du service.
15
La transformation des applications existantes implique la génération de la définition de
l’interface du service et l’enveloppement (Wrapping) de l’application existante pour permettre
l’interaction entre l’application existante et le monde extérieur. L’enveloppe (Wrapper) est un
logiciel qui communique avec l’application existante telle qu’elle a été conçue et offre à
l’extérieur une nouvelle API (Application Programming Interface) où une interface graphique
peut être développée pour cette API [SERA 01]. Il est intéressant de faire la remarque que ce
travail est réalisé pour les anciennes applications (Legacy systems).
Pour la troisième possibilité qu’est la composition de nouveaux services Web à partir
des services Web existants implique l’ordonnancement et l’orchestration de flux des messages
entre les programmes directement ou bien avec la technique de Workflow.

Déploiement : la phase de déploiement inclut la publication de la description du service Web
dans un service d’enregistrement, déploiement du code exécutable du service Web dans
l’environnement d’exécution et l’intégration avec les legacy systems. Pour les services Web
qui représentent des applications existantes, le déploiement peut inclure seulement le service
Wrapper parce que l'application peut être déjà déployée.

Exécution : dans cette phase le consommateur du service peut trouver la description du
service et invoquer toutes les opérations définies dans le service.

Gestion : cette phase couvre la gestion et l’administration de l’application du service Web :
sécurité, disponibilité,…etc.
6.1
Processus de développement des services Web côté fournisseur
Il existe quatre méthodes de développement d’un service Web pour un fournisseur de
services, l’utilisation de ces méthodes dépend de l’existence de l’application/service et
l’interface du service. Ces méthodes sont représentées dans le tableau suivant [BRIT 01]:
Interface du service
n’existe pas
Interface de service
existe déjà
Nouveau Web service
Green-Feild
Top-Down
Application/service existe déjà
Bottom-up
Meet-in-the-Middle
Tableau 2: Les méthodes de développement des services Web pour un fournisseur du
service.
16
Les quatre méthodes indiquées dans le tableau sont décrites dans ce qui suit :
6.1.1 Scénario Green-Field
Cette méthode décrit comment une nouvelle description de l’interface du service sera
créée pour un nouveau service Web. Dans se scénario le processus de développement est comme
suit :
Construction :

Création d’un nouveau service Web : cette étape inclut la conception, le développement et le
test du service.

Création ou génération de l’interface WSDL, qui décrit le service et la manière de son
invocation. La description de l’interface du service peut être générée à partir de
l’implémentation du service (actuellement la plupart des plateformes de développement
fournissent une génération automatique du code WSDL qui décrit le service Web).
Déploiement :

Publication de l’interface du service : La définition d'interface de service doit être publiée
avant que le service ne soit déployé. L’interface du service est utilisée par un demandeur du
service pour déterminer comment accéder à un service. Un service d’enregistrement (UDDI
par exemple) est utilisé pour la fonction de publication, ce dernier peut être publique ou privé
tout dépend du contexte d’utilisation.

Déploiement du service Web : le code exécutable pour le service doit être fourni dans
l’environnement d’exécution.

Création de la définition de l’implémentation du service (la description peut être créé avec
WSDL). Cette description peut être créée à partir de la façon et où le service a été déployé.

Publication de la définition de l’implémentation du service dans un service d’enregistrement.
Exécution :

Exécution du service Web : le service Web est maintenant opérationnel, déployé dans
l’environnement d’exécution et publié dans un service d’enregistrement. Il peut donc, être
invoqué par les consommateurs.
6.1.2
Scénario Top-Down
Cette méthode est utilisée lorsqu’un nouveau service Web peut être développé en se
conformant à une interface existante. Ce type d'interface de service est habituellement une partie
17
d'une norme d'industrie qui peut être implémentée par n’importe quel nombre de fournisseurs de
services. Dans se scénario, le processus de développement est comme suit :
Construction :

Trouver l’interface du service : cette dernière est supposée existante et publiée dans un
service d’enregistrement. Donc, la fonction de recherche est faite au niveau d’un service
d’enregistrement (annuaire UDDI, par exemple).

Création d’un gabarit (template) de l’implémentation du service : en utilisant la définition de
l’interface du service trouvé, un gabarit d’implémentation du service peut être généré. Ce
dernier doit contenir toutes les méthodes et les paramètres qui doivent être implémentés par
le service Web correspondant à l’interface.

Développement d’un nouveau service : Le gabarit créé dans l’étape précédente est utilisé
pour concevoir et développer l’application qui représente le service Web. Cette étape inclut
le développement et le test du service Web.
Déploiement :
La phase de déploiement de cette méthode (Top-Down) est presque semblable à la phase
de déploiement dans la méthode Green-Field. La seule différence c’est que la description de
l’interface est déjà publiée.

Déploiement du service Web.

Création de la définition de l’implémentation du service.

Publication de la définition de l’implémentation du service.
Exécution :

Exécution du service Web.
6.1.3
Scénario Bottom-Up
Cette méthode est utilisée lorsque les fonctionnalités existantes d’une application sont
exposées comme un service Web. L’application existante peut être implémentée sous forme d’un
EJB (Enterprise Java Beans), servlet, C++, classe java,…etc.
Construction:

Génération de l’interface du service : l’interface est générée à partir de l’implémentation de
l’application qui représente le service Web.
Déploiement :

Déploiement de service Web.

Création de la définition de l’implémentation du service.

Publication de l’interface du service.
18

Publication de la définition de l’implémentation du service.
Exécution :

Exécution du service Web.
6.1.4 Scenario Meet-in-the-Middle
Cette méthode est utilisée lorsque la description de l’interface du service existe déjà et
l’application qui représente le service existe aussi.
Le problème qui peut être posé dans cette situation est que les fonctionnalités de
l’application existante ne peuvent pas correspondre exactement à la description de l’interface du
service Web désiré. Pour régler ce problème, nous pouvons créer un enveloppe (Wrapper) pour
l’application existante qui utilise la définition de l’interface du service. Dans se scénario le
processus de développement est comme suit :
Construction :

Trouver l’interface du service qui sera utilisée pour implémenter le service Web.

Création d’un gabarit (template) de l’implémentation du service en utilisant la définition de
l’interface du service trouvé

Développement du service d’enveloppement (service Warpper).
Déploiement :

Déploiement de services Web.

Création de la définition de l’implémentation du service.

Publication de la définition de l’implémentation du service.
Exécution :

Exécution du service Web.
6.2 Processus de développement des services Web côté consommateur
Le demandeur du service exécute les mêmes étapes du cycle de vie que le fournisseur du
service. Mais, le demandeur du service exécute des tâches différentes pendant chaque phase. Les
tâches du temps de construction (build time) pour le demandeur de service sont basées sur la
méthode de liaison au service Web.
Il y a deux façons pour se lier à un service donné : liaison statique et liaison dynamique.
La liaison statique est utilisée lorsqu’il y a une seule implémentation du service qui peut être
utilisée au moment de l’exécution. La liaison dynamique est utilisée quand un demandeur veut
invoquer un service Web, mais son emplacement n’est pas connu jusqu’au moment de
l’exécution.
19
Un service Proxy est généré à partir de l’interface du service. Il contient le code
nécessaire pour accéder et invoquer un service Web.
Il y a trois scénarios possibles pour la consommation d’un service Web, selon le type de
liaison. La liaison statique est utilisée seulement au temps de constructions, cependant la liaison
dynamique peut être utilisée au temps de construction et au temps d’exécution. La liaison
statique ne peut être utilisée au temps d’exécution parce que le consommateur du service
demande toutes les informations nécessaires au temps de construction.
Liaison statique
Liaison dynamique
Static binding
Build-time dynamic binding
[Non applicable]
Runtime dynamic binding
Construction
Exécution
Tableau 3: Les méthodes de développement des services Web pour un consommateur du
service [BRIT 01].
6.2.1
Scénario Static binding
Comme nous l’avons déjà indiqué, la liaison statique (static binding) est utilisée lorsqu’il
y a une seule implémentation du service qui peut être invoqué au moment de l’exécution. La
liaison statique est édifiée au temps de construction en localisant la définition de
l’implémentation du seul service Web qui sera invoqué par le consommateur. La définition
d’implémentation du service contient une référence à l'interface de service qui sera utilisé pour
générer le code Proxy du service. Le Proxy est déployé avec l'application client. Le
consommateur peut invoquer les opérations du service Web.
Les étapes suivies dans ce scénario sont :
Construction:

Chercher la définition d’implémentation du service : durant la construction, l’utilisateur du
service doit localiser la description de l’implémentation du service dans un service
d’enregistrement (un annuaire UDDI universel ou privé). La description de l’implémentation
du service contient une référence à la description de l’interface du service et à l’endroit du
fournisseur où le service est accessible.

Générer le Proxy : la définition de l’interface et les informations récupérées sur l’endroit du
service sont utilisées pour la génération du Proxy d’implémentation. Le Proxy se conformera
à l’interface du service et essayera d’accéder au service Web toujours au même endroit.
20

Tester le Proxy : avant le déploiement, le service Proxy devra tester pour vérifier qu’il peut
interagir avec le service Web spécifié.
Déploiement :

Déployer le Proxy : après la phase de test, le Proxy devra être déployé avec l’application
cliente dans l’environnement d’exécution.
Exécution

Invoquer le service Web : exécuter l’application client qui utilisera le Proxy pour appeler le
service Web.
6.2.2
Scénario Build-time dynamic binding
Ce type de liaisons est utilisé lorsque le demandeur veut invoquer un type particulier de
services Web, mais l’implémentation de ce dernier n’est pas connue jusqu'au moment de
l'exécution. Le type de services est défini dans une interface de service.
Les étapes suivies dans ce scénario sont :
Construction:

Trouver la définition de l’interface du service : l’interface du service contient seulement la
définition abstraite des opérations du service Web (réellement, il y a plusieurs
implémentations qui fournissent les mêmes opérations et correspondent à l’interface du
service. Mais chaque implémentation a sa propre description).

Générer un Proxy générique: en utilisant la définition de l’interface, un Proxy peut être
généré. Il peut être utilisé pour accéder à toute implémentation de la même interface. Il
contient le code pour localiser une implémentation du service à travers une opération de
recherche dans un service d’enregistrement (un annuaire UDDI par exemple).

Tester le Proxy : le test peut être accompli en trouvant une implémentation qui correspond à
l'interface du service.
Déploiement :

Déployer le Proxy : le Proxy devrait être déployé avec l’application client dans
l’environnement d’exécution, ce dernier a besoin d’accéder au service d’enregistrement au
moment de l’exécution pour chercher une implémentation de l’interface du service.
Exécution:

Trouver la description de l’implémentation du service : avant que le Proxy puisse invoquer le
service Web, une implémentation du service doit être localisée dans le service
d’enregistrement. Cette opération doit être contenue dans le code du Proxy générique.
21

Invoquer le service Web : après qu’une implémentation de service ait été trouvée, le Proxy
peut l’utiliser pour invoquer le service.
6.2.3 Scénario Runtime dynamic binding:
Ce type de liaisons est semblable au build-time dynamic binding. Une interface du
service est utilisée pour générer un Proxy qui peut être utilisé pour invoquer n’importe quelle
implémentation de cette interface. La différence entre ces deux types de liaisons est que dans ce
type l’interface du service est trouvée au moment d’exécution. Après que l'interface de service
soit trouvée, le Proxy est généré, compilé puis exécuté.
Finalement, trois importantes remarques peuvent être ajoutées pour ce qui concerne le cycle
de vie de développement des services Web (côté fournisseur et consommateur).

Chaque scénario décrit auparavant peut être adapté selon certaines contraintes. Par
exemple, nous pouvons éliminer l’étape de publication du service si le développeur ne
sera pas utilisé un annuaire UDDI privé.

Dans certains environnements, l’interface et l’implémentation du service sont
implémentées dans un même fichier (par exemple, l’environnement .NET de Microsoft).
Dans ce cas, la création de la définition de l’interface et de l’implémentation du service
est effectuée dans une seule étape.

Le cycle de vie de développement des services Web cité ci-dessus est basé beaucoup plus
sur les aspects techniques. C’est pour cette raison qu’il nécessite une évolution du niveau
d’abstraction (aspect conceptuel).
Téléchargement