Vous êtes sur la page 1sur 7

Ministre de lenseignement Suprieur, de la Recherche scientifique et de la Technologie

Universit Virtuelle de Tunis

Dveloppement Orient Services


Introduction aux SOA

Fahem KEBAIR

Universit Virtuelle de Tunis

1.

Dveloppement Orient Services


Introduction aux SOA

Introduction

Larchitecture oriente service (SOA) sest impose aujourdhui comme un thme majeur
pour les systmes dinformation dentreprise. Plus quune nouvelle technologie ou mthode,
cest la convergence de plusieurs approches existantes, et lmergence dun style
darchitecture et de gouvernance de SI.
Dans ce chapitre, nous prsentons les raisons qui ont pouss lapparition de cette
architecture travers une vision gnrale et historique des architectures des SI.

2. Des architectures distribues classiques, vers une architecture SOA


1. Architectures base de composants
Une application distribue est dfinie par un ensemble de composants qui collaborent pour
lexcution de tches communes. Ces composants sont des objets logiciels htrognes, cres
pour interagir avec dautres composants, distants gographiquement et interconnects via un
rseau de communication, et qui encapsulent certaines fonctionnalits ou un ensemble de
fonctionnalits.
Lobjectif de lingnierie des logiciels base de composants tait daugmenter la productivit,
la qualit et la rponse aux demandes du march dans les meilleurs dlais grce
lautomatisation et la standardisation de la production. Plusieurs solutions ont fait leur
preuve : DCOM, CORBA, EJB, RMI, .NET Remoting, Cependant ses solutions prsentent
des faiblesses, notamment au niveau de la reprsentation des donnes qui est souvent
spcifique, linteroprabilit qui nest garantie que lorsque les composants utilisent la mme
solution et la ncessit dune configuration rseau cause de lusage de protocoles de
transport spcifiques.
2. Evolution des architectures distribus
Les applications distribues ont volu au cours du temps suivant les besoins des entreprises
et lvolution des technologies. On est pass donc, de simples applications avec une
architecture client/serveur, puis des architectures fondes sur les applications web,
jusquaux architectures SOA.

Architecture client/serveur

Architecture fonde sur les


applications web

Architecture oriente services

Universit Virtuelle de Tunis

Dveloppement Orient Services


Introduction aux SOA

Les applications distribues ont t conues au dpart selon larchitecture client/serveur.


Ctait des applications intra-entreprise, limites un sous ensemble de langages de
programmation souvent procduraux. Afin de garantir lefficacit et la rapidit du traitement,
ces applications taient fortement couples et sappuyaient sur des protocoles de transport
propritaires.
Avec lexpansion de lInternet, les applications web sont apparues, avec comme grande
particularit leur ouverture. Il est ainsi permis un utilisateur dinteragir directement avec le
programme et ce sans contrainte gographique. Ces applications, ayant un service
monolithique, sappuyaient sur un rfrencement via des annuaires de sites non standardiss.
Les architectures SOA sont venues donc pour pallier aux lacunes des applications distribues
prcdentes. Leur principe est fond sur le fait que des programmes informatiques, conus
avec des technologies diffrentes et tournant sur des OS diffrents, peuvent interagir entre eux
et ce sans se connatre grce des annuaires standardiss. Les architectures SOA exploitent
pleinement les atouts de lapproche orient objet avec une dcomposition des services en sous
services avec possibilit de rutilisation.
3. Architectures SOA : Principes et Motivations
SOA (Service Oriented Architecture) est un style darchitecture organis partir de services
mtiers communs mutualiss pour un ensemble de lignes mtiers ou dapplications.
SOA is an approach to designing software that dissolves business applications into separate
services that can be used independent of the applications of which theyre a part and
computing platforms on which they run.
Jay DiMare, IBM Global Services, 2006

Le Service (ou Composant) dsigne le fondement de ce modle dinteraction entre


applications. Le paradigme SOA est bas sur la publication, la recherche et la consommation,
comme le montre la figure ci-dessous :

Quest-ce quun service ?


Un Service est un composant logiciel distribu, exposant les fonctionnalits forte valeur
ajoute dun domaine mtier [XEBIA BLOG : 2009]
2

Universit Virtuelle de Tunis

Dveloppement Orient Services


Introduction aux SOA

Grce aux services, les applications peuvent tre vues comme un ensemble de services
mtiers, structurs et correctement dcrits, dialoguant selon un standard international plutt
qu'un ensemble d'objets et de mthodes entremls.
Le premier bnfice de ce dcoupage est la facilit de maintenance de l'application, ainsi
que l'interoprabilit permettant de modifier facilement un composant (un service) pour le
remplacer par un autre, ventuellement dvelopp par un tiers. Qui plus est, les services
permettent de rduire la complexit d'une application car le dveloppeur peut se focaliser sur
un service, indpendamment du reste de l'application.
Les services web facilitent non seulement les changes entre les applications de l'entreprise
mais surtout permettent une ouverture vers les autres entreprises. Les premiers fournisseurs de
services web sont ainsi les fournisseurs de services en ligne (mto, bourse, planification
d'itinraire, pages jaunes, etc.), mettant disposition des dveloppeurs des API (Application
Programmable Interface) payantes ou non, permettant d'intgrer leur service au
sein d'applications tierces.
Voici les diffrents aspects caractrisant les services :
Contrat standardis
Un contrat est tabli entre le fournisseur de service et le consommateur de service. On
distingue trois types de contrat :

Li la syntaxe du service (opration, messages dentre, messages de sortie, ).


Li la smantique du service (dfinition de rgles et de contraintes dusage, )
Li la qualit de service (temps de rponse attendu, procdures en cas de panne, temps
de reprise aprs interruption, ).

Le service sappuie sur des standards dinteroprabilit pour faciliter le dialogue (exemple :
WSDL).
Couplage lche
Lune des caractristiques principales de larchitecture SOA cest quelle garantit un couplage
lche entre ses composants. En effet, lchange entre le fournisseur de service et le
consommateur doit se faire travers des messages (couplage lche vis--vis de son
environnement). Larchitecture utilise ainsi un orchestrateur afin dviter que les services
aient besoin de connatre les autres services.

Couplage fort

Couplage lche
3

Universit Virtuelle de Tunis

Dveloppement Orient Services


Introduction aux SOA

Abstraction
Le contrat du service ne doit contenir que les informations pertinentes son invocation. On
peut ainsi assimiler le fonctionnement du service en bote noire , o seul le contrat expos
au consommateur du service est connue et que le fonctionnement interne du service, cest-dire la logique mtier et limplmentation, ne doit pas tre visible. Il est par consquent
important dassurer la prdictabilit dun service, cest--dire viter quil y ait des variations
dans le comportement et dans la rponse dun service lors de la rception dune requte.
Rutilisabilit / Dcouvrabilit
Un service doit tre accessible depuis un entrept ou un annuaire pour faciliter sa dcouverte.
Cest le fournisseur de services qui a la charge de dposer et de mettre jour ses services
depuis lannuaire. Le service est enrichi par un ensemble de mta-donnes pour faciliter la
recherche du consommateur de services. La publication sappuie sur des standards (UDDI,
ebXML). Le service est aussi conu afin quil puisse tre rutilis.
Autonomie / Sans tat
Un service doit disposer de lensembles des informations ncessaires son excution. Il ne
doit dpendre donc daucun service externe (couplage lche). Il doit tre aussi autonome ce
qui permet dassurer sa prdictabilit. Un service doit tre sans tat de faon minimiser la
consommation de ressources.
Composabilit
Un service doit fonctionner de manire modulaire et non pas intgre. Il faut ainsi assurer la
dcomposition dun service complexe en sous services plus simples entre eux (garantie
lautonomie), cette dcomposition est par la suite gre par un orchestrateur (couplage lche).
Lorchestration favorise ainsi lindpendance des services et assure que des services
nappellent pas directement dautres services.

3. Services WEB
1. Rponse aux SOA
Les Services Web sont actuellement lalternative la plus courante et la plus vidente pour
concevoir des architecture SOA. Ce sont en effet des composants qui sont bass sur les
protocoles et les langages du Web : HTTP, XML, TCP/IP pour la couche rseau. Leur grand
avantage est donc quils ne ncessitent pas une configuration rseau particulire. Ils ont la
particularit aussi dtre auto-suffisants puisquils contiennent toutes les informations leurs
utilisations, la fois pour leur recherche, publication et consommation. Pour cela ils disposent
dlments essentiels comme les annuaires et les contrats qui dcrivent leur fonctionnement et
qui permettent ainsi aux clients de les consommer. Plusieurs standards ce sont mis la
dfinition des Services Web, on cite les plus importants : W3C, OASIS, WS-I et IETF.
Les Services Web sont modulaires de faon ce quune application doit tre dcompose en
un ensemble de services. Ces derniers sont grs et synchroniss grce un orchestrateur.

Universit Virtuelle de Tunis

Dveloppement Orient Services


Introduction aux SOA

2. Technologies disponibles
Deux familles de Services Web se distinguent actuellement :

Services Web tendues : ils sappuient sur des standards UDDI / WSDL / SOAP.
Ils possdent des annuaire de Services Web de type UDDI afin de permettre leur
publication et leur recherche, sappuient sur des contrat de type WSDL pour dcrire leur
fonctionnement et sur le protocole SOAP pour envoyer les messages.

Services Web REST (Representational State Transfer) : dfini par la thse de Roy
Fielding en 2000. Il utilise directement HTTP au lieu dutiliser une enveloppe SOAP et
ceci grce lutilisation des URI afin de nommer et identifier une ressource. Des
mthodes HTTP (POST, GET, PUT et DELETE) sont utilises pour effectuer les
oprations de base CRUD.

3. Services Web tendus


Les Services Web tendus reposent sur une trilogie de fonctions qui sont : la publication, la
recherche et la consommation. Ces fonctions se basent sur les standards suivants :
-

UDDI : pour la dcouverte dun Service Web dans un annuaire


WSDL : pour la description dun Service Web (le contrat)
SOAP : pour lenvoi messages, le protocole HTTP est le plus souvent utilis pour le
transfert, mais dautres protocoles sont possibles aussi comme SMTP, FTP et JMS.
Annuaire UDDI

WSDL

Interrogation de lannuaire
UDDI pour rechercher des
contrats WSDL suivant des
critres spcifique

Consommateur
du Service

Document WSDL est


utilis comme contrat du
Service Web

Message SOAP est envoy


pour consommer (invoquer)
un Service Web

Fournisseur
du Service

Ci-dessous la pile des standards utiliss pour dvelopper et excuter des Services Web
tendus :
Orchestration
Qualit de Service

Langage de processus mtier BPEL


Scurit
(WS-Security)

Fiabilit
(WS-RM)

Dcouverte & Description

WSD, UDDI

Message

SOAP 1.1 et 1.2

Transport

HTTP, SMTP, FTP, BEEP, JMS

Transaction
(WS-Transactions)

Universit Virtuelle de Tunis

Dveloppement Orient Services


Introduction aux SOA

4. Services Web REST


Les services Web REST sont exploits pour construire des Architectures Orientes Donnes
(DOA). REST nest pas un standard, car il nexiste pas de spcification W3C la dfinissant,
cest plutt un style darchitecture bas sur un mode de comprhension du Web. REST
sappuie donc sur les standards du Web, savoir : le protocole http et les URLs. Une
scurisation via SSL pour linvocation des services et le transfert des messages peut tre
utilise.
Ci-dessous la pile des standards utiliss pour dvelopper et excuter des Services Web REST :
Orchestration

Langage de processus mtier BPEL

Qualit de Service

http Basic, SSL / TLS

Dcouverte & Description

WADL, ATOM,

Message

MIME Types (Text, JSON, XML, )

Transport

HTTP, FTP

5. Fournisseurs de Services Web


Deux types de fournisseurs de Services Web sont distinguer : fournisseurs de Services Web
Orients Web (public) et fournisseurs de Services Web Entreprise (priv).
Les grands noms du Web sont prsents et leurs services sont accessibles : Amazon, eBay,
Delicious, Facebook, Flickr, Google, Twitter, WheatherBug, Yahoo, Zillow, Zvents.
Pratiquement tous les fournisseurs de Services Web exploitent larchitecture REST (besoins
de performance). Certains (comme Google) ont arrts les Services Web tendus, tandis
queBay propose encore des Services Web tendus.
Plateformes de Dveloppement
La grande majorit des plateformes de dveloppements fournissent le support de Services
Web (outils et APIs) : Plateforme .NET, Plateforme Java, Plateforme PHP, C++, Python,
Les outils fournis permettent de : manipuler des messages SOAP, manipuler des donnes au
format XML, faire le mapping XML / Classe (Marshall, Unmarshall) et accder la couche
http. Dans ce cours, nous utiliserons la plateforme Java qui est bien outille, gratuite,
accessible, lgre et qui respect les standards.