Vous êtes sur la page 1sur 29

SOA Services Web

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

Plateformes de dveloppement Organisation du cours SOA


SOA - M. Baron - Page 3

Droulement du cours : Introduction SOA Pdagogie du cours


Des bulles daide tout au long du cours Comprendre une architecture SOA (problmatique, solutions) Pas de technique pour linstant

Pr-requis
Ingnierie des donnes Langages de description : XML
keulkeul.blogspot.com

Ceci est une astuce

Architectures multi-couches (Java EE)

Ceci est une alerte

Remerciements
Developpez.com [louge]
SOA - M. Baron - Page 4

Ressources : Liens sur le Web Billets issus de Blog


blog.xebia.fr/category/soa jee-bpel-soa.blogspot.com/search/label/web services blogs.sun.com/arungupta/

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

Ressources : Bibliothque SOA Principles of Service Design


Auteur : Thomas Erl diteur : Prentice Hall Ptr Edition : Juillet 2007 - 608 pages - ISBN : 0132344823

Le guide de larchitecte du SI
Auteur : Xavier Fournier-Morel, Pascal Grosjean, diteur : Dunod Edition : Octobre 2006 - 302 pages - ISBN : 2100499726
keulkeul.blogspot.com

Service-Oriented Architecture (SOA) : Concepts


Auteur : Thomas Erl diteur : Prentice Hall Ptr Edition : Aot 2005 - 792 pages - ISBN : 0131858580
SOA - M. Baron - Page 6

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

Solutions qui ont fait leur preuve


DCOM, CORBA, EJB, RMI, .Net Remoting,
keulkeul.blogspot.com

Faiblesses de ces solutions


Format de reprsentation donnes spcifiques Interoprabilit si les composants utilisent la mme solution Protocole de transport spcifique ncessite une configuration rseau
SOA - M. Baron - Page 7

Vers une architecture SOA Evolution des applications distribues

Serveurs

Serveurs

Serveurs Tlphone

Tablet PC

keulkeul.blogspot.com

EeePC Clients

Clients Portable

Architecture Client / Serveur

Architecture Fonde sur les Applications Web

Architecture Oriente Service


SOA - M. Baron - Page 8

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

Consommateur du Service envoie des messages (respect du contrat) au fournisseur du Service

SOA - M. Baron - Page 9

SOA : Concepts de Service Quest-ce quun Service ?


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

Huit aspects caractrisant un Service


Contrat standardis Couplage lche Abstraction Rutilisabilit
keulkeul.blogspot.com

Autonomie Sans tat Dcouvrabilit Composabilit

Dans la suite nous dtaillons chaque aspect dun Service

SOA - M. Baron - Page 10

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

Services 3 Moteur Orchestration Services 4

4
Services 4

Couplage fort

Etudi dans le dernier cours

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

Il est par consquent important dassurer la prdictabilit dun service


Pas de variation dans le comportement et dans la rponse dun service lors de la rception dune requte
SOA - M. Baron - Page 13

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

Sappuie sur des standards (UDDI, ebXML) Daprs la gouvernance SOA


Un service est dfini avec lintention dtre rutilis
SOA - M. Baron - Page 14

Service : Autonomie / Sans tat Un service doit disposer


de lensembles des informations ncessaires son excution ne doit dpendre daucun service externe (couplage lche)

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

Client / Serveur Versus SOA

Intra-entreprise Limite un sous ensemble de langages de programmation Procdurale Protocole de transport propritaire Fortement coupl
keulkeul.blogspot.com

Entre Entreprises Indpendance du langage de programmation

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

SOA - M. Baron - Page 17

Applications Web Versus SOA

Interaction Programme / Utilisateur Intgration statique des composants Service monolithique Rfrencement via des annuaires de sites non
keulkeul.blogspot.com

Interaction Programme / Programme Intgration dynamique

VS

des services Dcomposition en sous service avec possibilit de rutilisation Annuaires standardiss

standardiss

Architecture Fonde sur les Applications Web

Architecture Oriente Service

SOA - M. Baron - Page 18

Solutions pour une SOA Plusieurs solutions technologiques sont adaptes pour dvelopper une architecture oriente service
Services Web (le plus courant) Framework OSGi,

Un point sur OSGi (Open Service Gateway Initiative)


Spcification dfinie par lOSGi Alliance (http://www.osgi.org) Longtemps exploit dans le monde de lembarqu, utilis dans les serveurs (GlassFish 3, Spring DM) et application (Eclipse) Concepts
keulkeul.blogspot.com

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

Les Services Web sont modulaires


Une application doit tre dcompose en un ensemble de services Utilisation dune orchestration

Les Services Web peuvent tre dfinis par des standards


OASIS, W3C, WS-I et IETF
SOA - M. Baron - Page 20

Services Web : rponses au SOA

keulkeul.blogspot.com

http://www.innoq.com/resources/ws-standards-poster/

SOA - M. Baron - Page 21

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

Services Web REST (Representational State Transfer)


Dfini par la thse de Roy Fielding en 2000
keulkeul.blogspot.com

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

SOA - M. Baron - Page 22

Services Web tendus


Annuaire UDDI
Document WSDL est utilis comme contrat du Service Web Interrogation de lannuaire UDDI pour rechercher des contrats WSDL suivant des critres spcifiques

WSDL

Chercher

Publier

WSDL

keulkeul.blogspot.com

Messages SOAP est envoy pour consommer (invoquer) un Service Web

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

Qualit de Service Dcouverte & Description Message

WSDL, UDDI

keulkeul.blogspot.com

SOAP 1.1 et 1.2

HTTP, SMTP, FTP, BEEP

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

Protocole HTTP URLs Formats de fichiers Scurisation via SSL


SOA - M. Baron - Page 25

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

MIME Types (Text, JSON, XML, )

HTTP, FTP,

Transport
SOA - M. Baron - Page 26

Les fournisseurs de Services Web ? Deux types de fournisseurs sont distinguer


Fournisseurs de Services Web Orients Web (public) Fournisseurs de Services Web Entreprise (priv)

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,

Les outils permettent de


Manipuler des messages SOAP Manipuler des donnes au format XML
keulkeul.blogspot.com

Mapping XML / Classe (Marshall, Unmarshall) Accder la couche HTTP

Dans ce cours, nous utiliserons la plateforme Java


Outille, gratuite, accessible, lgre, respect des standards - Page SOA - M. Baron
28

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

Vous aimerez peut-être aussi