Académique Documents
Professionnel Documents
Culture Documents
Introduction SOA
Mickal BARON 2010 (Rev. Janvier 2011) mailto:baron.mickael@gmail.com ou mailto:baron@ensma.fr
Licence
Creative Commons
Contrat Paternit Partage des Conditions Initiales l'Identique
2.0 France
keulkeul.blogspot.com
http://creativecommons.org/licenses/by-sa/2.0/fr
SOA - M. Baron - Page 2
Plan du cours
Vers une architecture SOA SOA gnralits Dfinition dun Service Services Web tendus et REST
keulkeul.blogspot.com
Pr-requis
Ingnierie des donnes Langages de description : XML
keulkeul.blogspot.com
Remerciements
Developpez.com [louge]
SOA - M. Baron - Page 4
Articles
fr.wikipedia.org/wiki/Architecture_oriente_services fr.wikipedia.org/wiki/Service_Web www.journaldunet.com/solutions/dsi/article/air-france-klm-donnedes-ailes-a-son-systeme-d-information-avec-la-soa.shtml
keulkeul.blogspot.com
www.innoq.com/resources/ws-standards-poster/
Cours
www.javapassion.com/soaprogramming/SOAbasics.pdf www.javapassion.com/webservices/WebServicesOverview.pdf
SOA - M. Baron - Page 5
Le guide de larchitecte du SI
Auteur : Xavier Fournier-Morel, Pascal Grosjean, diteur : Dunod Edition : Octobre 2006 - 302 pages - ISBN : 2100499726
keulkeul.blogspot.com
Vers une architecture SOA Une application distribue est dfinie par un ensemble de composants
Collaborent pour lexcution de tches communes Distants gographiquement Interconnects via un rseau de communication Htrognes
Serveurs
Serveurs
Serveurs Tlphone
Tablet PC
keulkeul.blogspot.com
EeePC Clients
Clients Portable
SOA : Gnralits SOA est lacronyme de Service Oriented Architecture qui est traduis comme Architecture Oriente Service Le Service (ou Composant) dsigne le fondement de ce modle dinteraction entre applications Le paradigme SOA : Chercher, Publier et Consommer
Annuaire / Entrept
Consommateur du Service cherche un service rpondant ces exigences (Un contrat lui est retourn) Fournisseur du Service publie son service via le contrat
Chercher
2 1
Publier
keulkeul.blogspot.com
Consommer
Contrat
Fournisseur du Service
Consommateur du Service
Service : Contrat Standardis Contrat entre le fournisseur de service et le consommateur de service Trois types de contrat sont distinguer
Li la syntaxe du service (opration, messages dentre, messages de sortie, ) Li la smantique du service (dfinition de rgles et de contraintes dusage, )
keulkeul.blogspot.com
Li la qualit de service (temps de rponse attendu, procdures en cas de panne, temps de reprise aprs interruption, )
Sappuie sur des standards dinteroprabilit pour faciliter le dialogue (exemple : WSDL)
SOA - M. Baron - Page 11
Service : Couplage lche Lchange entre le fournisseur de service et le consommateur doit se faire travers des messages (couplage lche vis--vis de son environnement) Lutilisation dune orchestration vite que les services aient besoin de connatre les autres services
Services 2 Services 1 Services 5 Services 1 Services 2
2 3
Services 3
keulkeul.blogspot.com
4
Services 4
Couplage fort
Couplage lche
SOA - M. Baron - Page 12
Service : Abstraction Le contrat du service ne doit contenir que les informations pertinentes son invocation Fonctionnement du service dit en bote noire
Seul le contrat expos au consommateur du service est connue Le fonctionnement interne du service ne doit pas tre visible Logique mtier Implmentation
keulkeul.blogspot.com
Service : Rutilisabilit / Dcouvrabilit Un service doit tre accessible depuis un entrept ou un annuaire pour faciliter sa dcouverte Le fournisseur de services 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
keulkeul.blogspot.com
Garantir lautonomie dun service permet de sassurer de sa prdictabilit Un service doit tre sans tat de faon minimiser la
keulkeul.blogspot.com
consommation de ressources
Maintenance : rend complexe la composition de services Performance : gourmand en ressources systmes
SOA - M. Baron - Page 15
Service : Composabilit Un service doit fonctionner de manire modulaire et non pas intgre Assurer la dcomposition dun service complexe en sous services plus simples entre eux (garantie lautonomie) Sinscrire dans une logique de composition de services travers lutilisation de lorchestration (couplage lche)
keulkeul.blogspot.com
Lorchestration favorise lindpendance des services et assure que des services nappellent pas directement dautres services
SOA - M. Baron - Page 16
Intra-entreprise Limite un sous ensemble de langages de programmation Procdurale Protocole de transport propritaire Fortement coupl
keulkeul.blogspot.com
VS
Pilote par les messages Possibilit de choisir le protocole de transport Faiblement coupl Traitement plus lourd
Architecture Oriente Service
Traitement efficace
Architecture Client / Serveur
Interaction Programme / Utilisateur Intgration statique des composants Service monolithique Rfrencement via des annuaires de sites non
keulkeul.blogspot.com
VS
des services Dcomposition en sous service avec possibilit de rutilisation Annuaires standardiss
standardiss
Solutions pour une SOA Plusieurs solutions technologiques sont adaptes pour dvelopper une architecture oriente service
Services Web (le plus courant) Framework OSGi,
Dynamique : install, arrt, mise jour, dsinstall Dcouvrabilit : registre des services Abstraction : gestion dtaille des classes exposer Pour aller plus loin : http://mbaron.developpez.com/eclipse/introplugin
SOA - M. Baron - Page 19
Services Web : rponses au SOA Les Services Web sont bass sur les protocoles et les langages du Web
HTTP, XML, TCP/IP pour la couche rseau Ne ncessite pas une configuration rseau particulire
Les Services Web sont auto-suffisants puisquils contiennent toutes les informations leurs utilisations
Chercher, publier et consommer Annuaire, contrat de fonctionnement et un client pour les consommer
keulkeul.blogspot.com
keulkeul.blogspot.com
http://www.innoq.com/resources/ws-standards-poster/
Services Web : technologies disponibles Deux familles de Services Web se distinguent actuellement Services Web tendues
Sappuie sur des standards UDDI / WSDL / SOAP Annuaire de Services Web : UDDI Contrat : WSDL Consommer : SOAP
Utilise directement HTTP au lieu dutiliser une enveloppe SOAP URI est utilise pour nommer et identifier une ressource Mthodes HTTP (POST, GET, PUT et DELETE) sont utilises pour effectuer les oprations de base CRUD
WSDL
Chercher
Publier
WSDL
keulkeul.blogspot.com
Consommer
Consommateur du Service
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:hel="http://helloworldwebservice.lisi.ensma.fr/"> <soapenv:Header/> <soapenv:Body> <hel:simpleHelloWorld/> </soapenv:Body> </soapenv:Envelope>
Fournisseur du Service
SOA - M. Baron - Page 23
Services Web tendus Pile des standards pour les Services Web tendus
Langages de Processus Mtier (BPL) BPEL Scurit
WS-Security
Orchestration
Fiabilit
WS-RM
Transaction
WS-Transactions
WSDL, UDDI
keulkeul.blogspot.com
Transport
SOA - M. Baron - Page 24
Services Web REST Exploits pour les Architectures Orientes Donnes (DOA) REST nest pas un standard, il nexiste pas de spcification W3C dfinissant une spcification REST est un style darchitecture bas sur un mode de comprhension du Web REST sappuie sur des standards du Web :
keulkeul.blogspot.com
Services Web REST Pile des protocoles et langages pour les Services Web REST
Langages de Processus Mtier (BPL) BPEL HTTP Basic, SSL / TLS Orchestration Qualit de Service / Scurit Dcouverte & Description Message
WADL, ATOM,
keulkeul.blogspot.com
HTTP, FTP,
Transport
SOA - M. Baron - Page 26
Les grands noms du Web sont prsents et leurs services sont accessibles
Amazon, eBay, Delicious, Facebook, WheatherBug, Yahoo, Zillow, Zvents Flickr, Google, Twitter,
keulkeul.blogspot.com
Oui mais
Pratiquement tous les fournisseurs de Services Web exploitent larchitecture REST (besoins de performance) Certains (comme Google) ont arrts les Services Web tendus eBay propose encore des Services Web tendus SOA
- M. Baron - Page 27
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,
Objectifs du cours Connatre les normes, les standards et les techniques dfinissant les Services Web (WSDL, SOAP, UDDI, HTTP) Spcifier le contrat dun Service Web (WSDL, WADL) Appeler un Service Web via des messages SOAP, HTTP Programmer un Service Web
From Scratch partir dune classe Java A partir de WSDL
keulkeul.blogspot.com
Dployer un Service Web Programmer un client dun Service Web Composer des Services Web par orchestration
SOA - M. Baron - Page 29