Minist re de le nseignement Sup rieur et de la Recherche scientifique
Universit Virtuelle de Tunis
D veloppement Orient Services
Introduction aux SOA
Universit Virtuelle de Tunis D veloppement Orient Services
Introduction aux SOA
1. Introduction
Larchitecture orient e service (SOA) sest impos e aujourdhui comme un th me majeur pour
les syst mes dinformation dentreprise. Plus quune nouvelle technologie ou m thode, cest la
convergence de plusieurs approches existantes, et l mergence dun style darchitecture et de
gouvernance de SI.
Dans ce chapitre, nous pr sentons les raisons qui ont pouss lapparition de cette architecture
travers une vision g n rale et historique des architectures des SI.
2. Des architectures distribu es classiques, vers une architecture SOA
1. Architectures base de composants
Une application distribu e est d finie par un ensemble de composants qui collaborent pour
lex cution de t ches communes. Ces composants sont des objets logiciels h t rog nes, cr es
pour interagir avec dautres composants, distants g ographiquement et interconnect s via un
r seau de communication, et qui encapsulent certaines fonctionnalit s ou un ensemble de
fonctionnalit s.
Lobjectif de ling nierie des logiciels base de composants tait daugmenter la productivit ,
la qualit et la r ponse aux demandes du march dans les meilleurs d lais gr ce
lautomatisation et la standardisation de la production. Plusieurs solutions ont fait leur preuve :
DCOM, CORBA, EJB, RMI, .NET Remoting, & Cependant ses solutions pr sentent des
faiblesses, notamment au niveau de la repr sentation des donn es qui est souvent sp cifique,
linterop rabilit qui nest garantie que lorsque les composants utilisent la m me solution et la
n cessit dune configuration r seau cause de lusage de protocoles de transport sp cifiques.
2. Evolution des architectures distribu es
Les applications distribu es ont volu au cours du temps suivant les besoins des entreprises et
l volution des technologies. On est pass donc, de simples applications avec une architecture
client/serveur, puis des architectures fond es sur les applications web, jusquaux architectures
SOA.
1
Universit Virtuelle de Tunis D veloppement Orient Services
Introduction aux SOA
Architecture client/serveur
Architecture fond e sur les
applications web
Architecture orient e services
Les applications distribu es ont t con ues au d part selon larchitecture client/serveur. C tait
des applications intra-entreprise, limit es un sous ensemble de langages de programmation
souvent proc duraux. Afin de garantir lefficacit et la rapidit du traitement, ces applications
taient fortement coupl es et sappuyaient sur des protocoles de transport propri taires.
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 g ographique. Ces applications, ayant un service monolithique,
sappuyaient sur un r f rencement via des annuaires de sites non standardis s.
Advertisement
Les architectures SOA sont venues donc pour pallier aux lacunes des applications distribu es
pr c dentes. Leur principe est fond sur le fait que des programmes informatiques, con us avec
des technologies diff rentes et tournant sur des OS diff rents, peuvent interagir entre eux et ce
sans se conna tre gr ce des annuaires standardis s. Les architectures SOA exploitent
pleinement les atouts de lapproche orient objet avec une d composition des services en sous
services avec possibilit de r utilisation.
3. Architectures SOA : Principes et Motivations
SOA (Service Oriented Architecture) est un style darchitecture organis partir de services
m tiers communs mutualis s pour un ensemble de lignes m tiers 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.
Le Service (ou Composant) d signe le fondement de ce mod le dinteraction entre applications.
Le paradigme SOA est bas sur la publication, la recherche et la consommation, comme le
montre la figure ci-dessous :
Jay DiMare, IBM Global Services, 2006
2
Universit Virtuelle de Tunis D veloppement Orient Services
Introduction aux SOA
Quest-ce quun service ?
Un Service est un composant logiciel distribu , exposant les fonctionnalit s forte valeur
ajout e dun domaine m tier
Gr ce aux services, les applications peuvent tre vues comme un ensemble de services m tiers,
structur s et correctement d crits, dialoguant selon un standard international plut t qu'un
ensemble d'objets et de m thodes entrem l s.
Le premier b n fice de ce d coupage est la facilit de maintenance de l'application, ainsi que
l'interop rabilit permettant de modifier facilement un composant (un service) pour le
remplacer par un autre, ventuellement d velopp par un tiers. Qui plus est, les services
permettent de r duire la complexit d'une application car le d veloppeur peut se focaliser sur
un service, ind pendamment 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 (m t o, bourse, planification
d'itin raire, pages jaunes, etc.), mettant disposition des d veloppeurs des API (Application
Programmable Interface) payantes ou non, permettant d'int grer leur service au sein
d'applications tierces.
Voici les diff rents aspects caract risant 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 (op ration, messages dentr e, messages de sortie, &).
" Li la s mantique du service (d finition de r gles et de contraintes dusage, &)
" Li la qualit de service (temps de r ponse attendu, proc dures en cas de panne, temps
de reprise apr s interruption, &).
Le service sappuie sur des standards dinterop rabilit pour faciliter le dialogue (exemple :
WSDL).
Couplage l che
Advertisement
3
Universit Virtuelle de Tunis D veloppement Orient Services
Introduction aux SOA
Lune des caract ristiques principales de larchitecture SOA cest quelle garantit un couplage
l che entre ses composants. En effet, l change entre le fournisseur de service et le
consommateur doit se faire travers des messages (couplage l che vis- -vis de son
environnement). Larchitecture utilise ainsi un orchestrateur afin d viter que les services
aient besoin de conna tre les autres services .
Couplage fort
Couplage l che
Abstraction
Le contrat du service ne doit contenir que les informations pertinentes son invocation. On peut
ainsi assimiler le fonctionnement du service en bo te noire , o seul le contrat expos au
consommateur du service est connue et que le fonctionnement interne du service, cest- dire la
logique m tier et limpl mentation, ne doit pas tre visible. Il est par cons quent important
dassurer la pr dictabilit dun service, cest- -dire viter quil y ait des variations dans le
comportement et dans la r ponse dun service lors de la r ception dune requ te.
R utilisabilit / D couvrabilit
Un service doit tre accessible depuis un entrep t ou un annuaire pour faciliter sa d couverte.
Cest le fournisseur de services qui a la charge de d poser et de mettre jour ses services depuis
lannuaire. Le service est enrichi par un ensemble de m ta-donn es pour faciliter la recherche
du consommateur de services. La publication sappuie sur des standards (UDDI, ebXML). Le
service est aussi con u afin quil puisse tre r utilis . Autonomie / Sans tat
Un service doit disposer de lensemble des informations n cessaires son ex cution. Il ne doit
d pendre donc daucun service externe (couplage l che). Il doit tre aussi autonome ce qui
permet dassurer sa pr dictabilit . Un service doit tre sans tat de fa on minimiser la
consommation de ressources.
Composabilit
Un service doit fonctionner de mani re modulaire et non pas int gr e. Il faut ainsi assurer la
d composition dun service complexe en sous services plus simples entre eux (garantie
lautonomie), cette d composition est par la suite g r e par un orchestrateur (couplage l che).
Lorchestration favorise ainsi lind pendance des services et assure que des services nappellent
pas directement dautres services.
4
Universit Virtuelle de Tunis D veloppement Orient Services
Introduction aux SOA
3. Services WEB
1. R ponse 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 bas s sur les
protocoles et les langages du Web : HTTP, XML, TCP/IP pour la couche r seau. Leur grand
avantage est donc quils ne n cessitent pas une configuration r seau particuli re. Ils ont la
particularit aussi d tre auto-suffisants puisquils contiennent toutes les informations leurs
utilisations, la fois pour leur recherche, publication et consommation. Pour cela ils disposent
d l ments essentiels comme les annuaires et les contrats qui d crivent leur fonctionnement et
qui permettent ainsi aux clients de les consommer. Plusieurs standards ce sont mis la d finition
des Services Web, on cite les plus importants : W3C, OASIS, WS-I et IETF.
Advertisement
Les Services Web sont modulaires de fa on ce quune application doit tre d compos e en un
ensemble de services. Ces derniers sont g r s et synchronis s gr ce un orchestrateur.
2. Technologies disponibles
Deux familles de Services Web se distinguent actuellement :
" Services Web tendues : ils sappuient sur des standards UDDI / WSDL / SOAP. Ils
poss dent des annuaires de Services Web de type UDDI afin de permettre leur publication
et leur recherche, sappuient sur des contrats de type WSDL pour d crire leur
fonctionnement et sur le protocole SOAP pour envoyer les messages.
" Services Web REST (Representational State Transfer) : d fini par la th se de Roy
Fielding en 2000. Il utilise directement HTTP au lieu dutiliser une enveloppe SOAP et
ceci gr ce lutilisation des URI afin de nommer et identifier une ressource. Des
m thodes HTTP (POST, GET, PUT et DELETE) sont utilis es pour effectuer les
op rations 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 d couverte dun Service Web dans un annuaire
- WSDL : pour la description dun Service Web (le contrat)
5
Universit Virtuelle de Tunis D veloppement Orient Services
Introduction aux SOA
- 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
Interrogation de lannuaire
UDDI pour rechercher des
contrats WSDL suivant
des
crit res sp cifiques
WSDL
Document WSDL est
utilis comme contrat du
Service Web
Consommateur
du Service
Message SOAP est envoy
pour consommer ( invoquer)
un Service Web
Fournisseur
du Service
Ci-dessous la pile des standards utilis s pour d velopper et ex cuter des Services Web tendus:
Orchestration
Langage de processus m tier BPEL
S curit (WS-Security)
Transaction (WS-
Transactions)
Fiabilit
Advertisement
(WS-RM)
WSD, UDDI
SOAP 1.1 et 1.2
HTTP, SMTP, FTP, BEEP, JMS
Qualit de Service
D couverte & Description
Message
Transport
4. Services Web REST
Les services Web REST sont exploit s pour construire des Architectures Orient es Donn es
(DOA). REST nest pas un standard, car il nexiste pas de sp cification W3C la d finissant,
cest plut t un style darchitecture bas sur un mode de compr hension du Web. REST sappuie
donc sur les standards du Web, savoir : le protocole http et les URLs. Une s curisation via
SSL pour linvocation des services et le transfert des messages peut tre utilis e.
Ci-dessous la pile des standards utilis s pour d velopper et ex cuter des Services Web REST :
Orchestration
Qualit de Service
D couverte & Description
Message
Transport
Langage de processus m tier BPEL
http Basic, SSL / TLS
WADL, ATOM, &
MIME Types (Text, JSON, XML, &)
HTTP, FTP
6
Universit Virtuelle de Tunis D veloppement Orient Services
Introduction aux SOA
5. Fournisseurs de Services Web
Deux types de fournisseurs de Services Web sont distinguer : fournisseurs de Services Web
Orient s Web (public) et fournisseurs de Services Web Entreprise (priv ).
Les grands noms du Web sont pr sents 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 arr t s les Services Web tendus, tandis queBay
propose encore des Services Web tendus.
Plateformes de D veloppement
La grande majorit des plateformes de d veloppements 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 donn es au
format XML, faire le mapping XML / Classe (Marshall, Unmarshall) et acc der la couche
http. Dans ce cours, nous utiliserons la plateforme Java qui est bien outill e, gratuite, accessible,
l g re et qui respect les standards.
7