Transcription of Applications et Services WEB: Architecture REST
1 Services WEBA rchitecture RESTJavaEE et JAX-RSBibliographieApplications et Services WEB: Architecture RESTE rick StattnerMaitre de Conf rences en InformatiqueUniversit des StattnerApplications et Services WEB: Architecture REST1 / 45 Services WEBA rchitecture RESTJavaEE et JAX-RSBibliographieD finitionsExemples de service WEBA rchitectures pour les WEB ServicesOutline1 Services WEBD finitionsExemples de service WEBA rchitectures pour les WEB Services2 Architecture REST3 JavaEE et JAX-RS4 BibliographieErick StattnerApplications et Services WEB: Architecture REST2 / 45 Services WEBA rchitecture RESTJavaEE et JAX-RSBibliographieD finitionsExemples de service WEBA rchitectures pour les WEB ServicesServices WEBD finitionsIntroductionUn service Webest un programme sollicit via Internet pardiff rentstype de clients, permettantl change de donn esafin quel application appelante puisse int grer le r sultat de cet change sespropres requ tes et les r ponses s effectuent dans desformats ouverts(HTML, XML, JSON ou text)et transitent par StattnerApplications et Services WEB: Architecture REST3 / 45 Services WEBA rchitecture RESTJavaEE et JAX-RSBibliographieD finitionsExemples de service WEBA rchitectures pour les WEB ServicesServices WEBD finitionsPrincipales caract ristiques:Fonctionnalit utilisable via InternetInter-op rables.
2 Interface publique d crite d une mani re interpr tablepar tousSyst mesfaiblement coupl s, client ne conna t pas forc ment lefournisseurLe transport des donn es repose sur des "protocoles du WEB":HTTP, FTP, SMTP, ..Standard ouvert: change de donn es s effectue dans un formatstandardXML, JSON, HTML, Text, ..Le client est charg d analyser, traiter et/ou afficher les donn esre uesInd pendantedes plates-formes et des langagesErick StattnerApplications et Services WEB: Architecture REST4 / 45 Services WEBA rchitecture RESTJavaEE et JAX-RSBibliographieD finitionsExemples de service WEBA rchitectures pour les WEB ServicesServices WEBE xemples de service WEBE xemple: Analyse des donn esErick StattnerApplications et Services WEB: Architecture REST5 / 45 Services WEBA rchitecture RESTJavaEE et JAX-RSBibliographieD finitionsExemples de service WEBA rchitectures pour les WEB ServicesServices WEBE xemples de service WEBE xemple: Analyse des donn esErick StattnerApplications et Services WEB.
3 Architecture REST6 / 45 Services WEBA rchitecture RESTJavaEE et JAX-RSBibliographieD finitionsExemples de service WEBA rchitectures pour les WEB ServicesServices WEBE xemples de service WEBDe nombreux Services propos s par #p/Analyse de donn esTraductionR duction d URLS tatistique fr quentation site StattnerApplications et Services WEB: Architecture REST7 / 45 Services WEBA rchitecture RESTJavaEE et JAX-RSBibliographieD finitionsExemples de service WEBA rchitectures pour les WEB ServicesServices WEBA rchitectures pour les WEB ServicesDeux grandes familles d Architecture pour les Services WEBSOAP-based architectureIProtocole de communications pour des syst mes distribu est d crit en XML et standardis par le encapsule les donn es chang es dans une enveloppe qui peut- trechiffr e et contenir des pi ces architectureIREST (Representational State Transfer) est un style Architecture deservices WebIIntroduite en 2000 par Roy Fiedling dans sa th se de est une "m thodologie" pour la construction d une application pourles Services StattnerApplications et Services WEB.
4 Architecture REST8 / 45 Services WEBA rchitecture RESTJavaEE et JAX-RSBibliographieD finitionsExemples de service WEBA rchitectures pour les WEB ServicesServices WEBA rchitectures pour les WEB ServicesSOAP-based architectureSOAP:Simple Object Access ProtocolBas sur 3 acteurs principauxIFournisseur de serviceIAnnuaireIClientErick StattnerApplications et Services WEB: Architecture REST9 / 45 Services WEBA rchitecture RESTJavaEE et JAX-RSBibliographieD finitionsExemples de service WEBA rchitectures pour les WEB ServicesServices WEBA rchitectures pour les WEB ServicesSOAP: Service providerD finit le service et ses interfacesPublie sa description dans l annuaireEffectue le traitementRenvoie la r ponseErick StattnerApplications et Services WEB: Architecture REST10 / 45 Services WEBA rchitecture RESTJavaEE et JAX-RSBibliographieD finitionsExemples de service WEBA rchitectures pour les WEB ServicesServices WEBA rchitectures pour les WEB ServicesSOAP: AnnuaireMaintient jour une liste de servicesRe oit et enregistre la description des servicesRe oit et r pond aux recherches de serviceErick StattnerApplications et Services WEB: Architecture REST11 / 45 Services WEBA rchitecture RESTJavaEE et JAX-RSBibliographieD finitionsExemples de service WEBA rchitectures pour les WEB ServicesServices WEBA rchitectures pour les WEB ServicesSOAP: Programme clientObtient la description du serviceFait la requ te aupr s du fournisseur de serviceRe oit et traite le r ponseErick StattnerApplications et Services WEB: Architecture REST12 / 45 Services WEBA rchitecture RESTJavaEE et JAX-RSBibliographieD finitionsExemples de service WEBA rchitectures pour les WEB ServicesServices WEBA rchitectures pour les WEB ServicesRESTFul architectureREST.
5 REpresentational State TransferFa on de concevoir une applicationD finit un ensemble de contraintes pour l acc s et la manipulation desdonn esStructure l application en diff rentesressourcesArchitectureorient e ressourceSe base uniquement sur le protocole HTTPBas sur le principe client/serveurErick StattnerApplications et Services WEB: Architecture REST13 / 45 Services WEBA rchitecture RESTJavaEE et JAX-RSBibliographieD finitionsExemples de service WEBA rchitectures pour les WEB ServicesServices WEBA rchitectures pour les WEB ServicesRESTFul architectureErick StattnerApplications et Services WEB: Architecture REST14 / 45 Services WEBA rchitecture RESTJavaEE et JAX-RSBibliographieD finitionsExemples de service WEBA rchitectures pour les WEB ServicesServices WEBA rchitectures pour les WEB ServicesSOAP VS RESTE rick StattnerApplications et Services WEB: Architecture REST15 / 45 Services WEBA rchitecture RESTJavaEE et JAX-RSBibliographieD finitionsExemples de service WEBA rchitectures pour les WEB ServicesServices WEBA rchitectures pour les WEB ServicesBilan SOAPI nconvenientsPerformances (encapsulation SOAP des donn es)Complexit , lourdeur de la mise en place/maintenanceAvantagesStandardis Interop rabilit S curit (Possibilit de chiffrer change SOAP)Erick StattnerApplications et Services WEB: Architecture REST16 / 45 Services WEBA rchitecture RESTJavaEE et JAX-RSBibliographieD finitionsExemples de service WEBA rchitectures pour les WEB ServicesServices WEBA rchitectures pour les WEB ServicesBilan RESTI nconvenientsPas vraiment de standardS curit restreinte par l emploi du HTTP, format des donn esAvantagesSimplicit mise en place/maintenanceRepose sur des principes prouv s (WEB) Services facilement identifiablesErick StattnerApplications et Services WEB.
6 Architecture REST17 / 45 Services WEBA rchitecture RESTJavaEE et JAX-RSBibliographieD finitionsExemples de service WEBA rchitectures pour les WEB ServicesServices WEBA rchitectures pour les WEB ServicesSOAP VS RESTE rick StattnerApplications et Services WEB: Architecture REST18 / 45 Services WEBA rchitecture RESTJavaEE et JAX-RSBibliographiePr sentationRessourcesInterfaces et repr sentationsOutilsOutline1 Services WEB2 Architecture RESTPr sentationRessourcesInterfaces et repr sentationsOutils3 JavaEE et JAX-RS4 BibliographieErick StattnerApplications et Services WEB: Architecture REST19 / 45 Services WEBA rchitecture RESTJavaEE et JAX-RSBibliographiePr sentationRessourcesInterfaces et repr sentationsOutilsArchitecture RESTPr sentationPr sentationREST:REpresentational State TransferD crit par Roy T. Fielding dans sa th se de Doctorat en 2000, Chap 5"Architectural Styles and the Design of Network-based SoftwareArchitectures" fondateur de la fondation ApacheIDev.
7 Du serveur WEB ApacheStyle d architectureIRepose sur le protocole HTTPIU tilis pour d velopper des Services WEBE rick StattnerApplications et Services WEB: Architecture REST20 / 45 Services WEBA rchitecture RESTJavaEE et JAX-RSBibliographiePr sentationRessourcesInterfaces et repr sentationsOutilsArchitecture RESTPr sentationPr sentationDans une Architecture RESTITOUTest ressource (archi. orient e ressource)IRessources identifi es par une URI (Uniform Resource Identifier)IRessources manipulables via interface communeIRessources ont diff rentes repr sentations: XML, TEXT, JSON, une application respecte ces principes:RESTFulImportantLes Services WEB avec REST sont sans tats (Stateless)IPas de m moire des requ tes ant rieuresIChaque requ te envoy e doit contenir toutes les informations n cessairesau traitementErick StattnerApplications et Services WEB: Architecture REST21 / 45 Services WEBA rchitecture RESTJavaEE et JAX-RSBibliographiePr sentationRessourcesInterfaces et repr sentationsOutilsArchitecture RESTPr sentation3 concepts majeurs:1 Ressource (Identifiant)IIdentifi e par une URI2Op ration (Interface)IAction effectuer sur la ressourceIM thodes HTTP3 Repr sentation (Vue de la ressource ou de son tat)IInformations chang es avec le serviceITEXT, XML, JSON.
8 Erick StattnerApplications et Services WEB: Architecture REST22 / 45 Services WEBA rchitecture RESTJavaEE et JAX-RSBibliographiePr sentationRessourcesInterfaces et repr sentationsOutilsArchitecture RESTR essourcesRessourceTout ce qui est identifiable/manipulable dans le syst meIDocument, Image, Personne, Le montant du compte d un client, de mani re unique par un lien (URI)Une ressource peut avoir plusieurs URIUne URI identifie une seule ressource (ou un seul groupe deressources)Construite de fa on hi rarchiqueLa repr sentation d une ressource peut voluer avec le tempsILi au temps: ex. Dernier articleIModification structure: ex. Ajout d un champErick StattnerApplications et Services WEB: Architecture REST23 / 45 Services WEBA rchitecture RESTJavaEE et JAX-RSBibliographiePr sentationRessourcesInterfaces et repr sentationsOutilsArchitecture RESTR essourcesStructure classiqueStructure hi rarchiqueConstruction <plus g n ral>/../<plus sp cifique>Exemples d URIs/livre/SF/livre/SF/harrypotter//livr e/SF/harrypotter/5/livre/SF/harrypotter/ l_ordre_du_phenix/livre/SF/harrypotter/5 /ann e/livre/aventure/meilleur_vente/livre/se arch/50_nuancesErick StattnerApplications et Services WEB: Architecture REST24 / 45 Services WEBA rchitecture RESTJavaEE et JAX-RSBibliographiePr sentationRessourcesInterfaces et repr sentationsOutilsArchitecture RESTI nterfaces et repr sentationsInterfacesREST fournit une interface uniformeChaque ressource supporte 4 op rations de base (CRUD)ICreate, Read, Update, DeleteREST s appuie sur les m thodes HTTP pour ces op rationsIGET:D finit un acc s en lecture.
9 La ressource n est pas modifi :Met jour une ressource existanteIPUT:Cr e une nouvelle ressourceIDELETE:Supprime une ressourceErick StattnerApplications et Services WEB: Architecture REST25 / 45 Services WEBA rchitecture RESTJavaEE et JAX-RSBibliographiePr sentationRessourcesInterfaces et repr sentationsOutilsArchitecture RESTI nterfaces et repr sentationsExemples:GET: /livre/SF/harrypotter/POST: /livre/SF/harrypotter/PUT: /livre/SF/harrypotter/2 DELETE: /livre/SF/harrypotter/2 AttentionToutes les m thodes ne sont pas n cessairement impl ment es !Ex. POST: /livre/SFErick StattnerApplications et Services WEB: Architecture REST26 / 45 Services WEBA rchitecture RESTJavaEE et JAX-RSBibliographiePr sentationRessourcesInterfaces et repr sentationsOutilsArchitecture RESTI nterfaces et repr sentationsRappel sur les requ tes HTTP:ImportantRappel sur les requ tes HTTP: :openclassroomsErick StattnerApplications et Services WEB: Architecture REST27 / 45 Services WEBA rchitecture RESTJavaEE et JAX-RSBibliographiePr sentationRessourcesInterfaces et repr sentationsOutilsArchitecture RESTI nterfaces et repr sentationsRepr sentation:Le client et le serveur change des "repr sentations" des ressources enutilisant une interface et un protocole standardis ILe client: lorsqu il re oit avec GETILe serveur: lorsqu il recoit avec PUT ou POSTG n ralement: TEXT, JSON, XML, HTML, CSV, D fini par l utilisateurUne m me ressource peut-etre propos e sous diff rents formatsErick StattnerApplications et Services WEB.
10 Architecture REST28 / 45 Services WEBA rchitecture RESTJavaEE et JAX-RSBibliographiePr sentationRessourcesInterfaces et repr sentationsOutilsArchitecture RESTI nterfaces et repr sentationsExemple:Erick StattnerApplications et Services WEB: Architecture REST29 / 45 Services WEBA rchitecture RESTJavaEE et JAX-RSBibliographiePr sentationRessourcesInterfaces et repr sentationsOutilsArchitecture RESTO utilsOutils pour le REST client: ChromePostman: ChromePoster: FirefoxAPI pour mettre en place Service RESTPHP (Voir liste API: ) (JAX-RS, JSR311) StattnerApplications et Services WEB: Architecture REST30 / 45 Services WEBA rchitecture RESTJavaEE et JAX-RSBibliographiePr sentationRessourcesInterfaces et repr sentationsOutilsArchitecture RESTO utilsExemple de l API StattnerApplications et Services WEB: Architecture REST31 / 45 Services WEBA rchitecture RESTJavaEE et JAX-RSBibliographieJavaEEFramework JerseyOutline1 Services WEB2 Architecture REST3 JavaEE et JAX-RSJavaEEFramework Jersey4 BibliographieErick StattnerApplications et Services WEB: Architecture REST32 / 45 Services WEBA rchitecture RESTJavaEE et JAX-RSBibliographieJavaEEFramework JerseyJavaEE et JAX-RSJavaEEEn utiliser ces notions pour mettre en place des Services Web REST ?