Programmation Web Avancée Introduction aux services Web



Documents pareils
Introduction aux «Services Web»

Cours Master Recherche RI 7 Extraction et Intégration d'information du Web «Services Web»

Architecture JEE. Objectifs attendus. Serveurs d applications JEE. Architectures JEE Normes JEE. Systèmes distribués

Les nouvelles architectures des SI : Etat de l Art

Systèmes d'informations historique et mutations

PRIMAVERA P6 ENTERPRISE PROJECT PORTFOLIO MANAGEMENT WEB SERVICES

4. SERVICES WEB REST 46

Le cadre des Web Services Partie 1 : Introduction

Urbanisme du Système d Information et EAI

Intégration d'applications à "gros grain" Unité d'intégration : le "service" (interface + contrat)

Introduction à la conception de systèmes d information

Les Services Web. Jean-Pierre BORG EFORT

Sommaire. Introduction La technologie ebxml EDI conventionnels versus ebxml Web Services et ebxml Acteurs de l ebxml Conclusion


Business Process Execution Language

Sécurité des Web Services (SOAP vs REST)

Les Architectures Orientées Services (SOA)

XML, PMML, SOAP. Rapport. EPITA SCIA Promo janvier Julien Lemoine Alexandre Thibault Nicolas Wiest-Million

Messagerie asynchrone et Services Web

Problématiques de recherche. Figure Research Agenda for service-oriented computing

Mise en œuvre des serveurs d application

Module BD et sites WEB

Environnements de Développement

Systèmes répartis. Fabrice Rossi Université Paris-IX Dauphine. Systèmes répartis p.1/49

Web Application Models

Intégration de systèmes

Institut Supérieur de Gestion. Cours pour 3 ème LFIG. Java Enterprise Edition Introduction Bayoudhi Chaouki

Bases de Données Avancées

Introduction à Microsoft InfoPath 2010

Intégration de systèmes client - serveur Des approches client-serveur à l urbanisation Quelques transparents introductifs

Architectures web/bases de données

CORBA. (Common Request Broker Architecture)

Conception Exécution Interopérabilité. Déploiement. Conception du service. Définition du SLA. Suivi du service. Réception des mesures

Principes. 2A-SI 3 Prog. réseau et systèmes distribués 3. 3 Programmation en CORBA. Programmation en Corba. Stéphane Vialle

COMPRENDRE L ARCHITECTURE DES WEB SERVICES REST. Amosse EDOUARD, Doctorant

L architecture des services Web

L intégration d applications unifiée par les Services Web et XML Réconcilier J2EE.NET EIS et mainframes

Architecture SOA Un Système d'information agile au service des entreprises et administrations

Urbanisation des SI. Des composants technologiques disponibles. Urbanisation des Systèmes d'information Henry Boccon Gibod 1

Jean-Philippe VIOLET Solutions Architect

Présentation J2EE. Stéphane Croisier, Directeur Serge Huber, Directeur Technique. 13 Juin Jahia Ltd. All rights reserved.

Web Services : Beyond the peer-to-peer architecture

Europa. Développement JEE 5. avec Eclipse. K a r i m D j a a f a r. A v e c l a c o n t r i b u t i o n d e O l i v i e r S a l v a t o r i

Objectif : Passer de l analyse métier et fonctionnelle à la définition des applications qui

Urbanisation des Systèmes d'information

Youssef LYHYAOUI Ingénieur Java/J2EE, SOA, ESB, Web services 31 ans Statut : Indépendant SITUATION ACTUELLE

Hébergement de sites Web

Architectures n-tiers et déploiement d applications Web

Etude analytique des architectures applicatives

Rapport de veille technologique

L Orchestration de Services Web avec Orchestra. Goulven Le Jeune Orchestra Project Manager

Nouvelles technologies pour l intégration : les ESB

Catalogue des Formations Techniques

NFP111 Systèmes et Applications Réparties

SOMMAIRE. Conseil de lecture Préface Introduction. 1 Comprendre le rôle des technologies 1. 2 Maîtriser les concepts technologiques 13

Architectures Web Services RESTful

GLOSSAIRE. On premise (sur site)

Architectures d'intégration de données

Introduction aux. services web 2 / 2

Gestion des Identités : 5 règles d'or. Patrice Kiotsekian Directeur Evidian France

Compte Rendu d intégration d application

La démarche SOA et l interopérabilité applicative

e-business, EAI et Business Intelligence Le triptyque gagnant profondément les structures des organisations et par conséquence

Faculté de Génie Chaire industrielle en infrastructures de communication. La technologie XML. Wajdi Elleuch

Introduction aux applications réparties

Cursus détaillé du MBDS

2 Chapitre 1 Introduction

Conception, architecture et urbanisation des systèmes d information

Architecture N-Tier. Ces données peuvent être saisies interactivement via l interface ou lues depuis un disque. Application

Yannick Prié Département Informatique - UFR Sciences et Techniques Université Claude Bernard Lyon

Applications et Services WEB: Architecture REST

Les architectures 3-tiers Partie I : les applications WEB

Sécurisation des architectures traditionnelles et des SOA

Solutions de gestion de la sécurité Livre blanc

Auto-évaluation Aperçu de l architecture Java EE

Evaluation Idéopass Cahier d analyse technique

10. Base de données et Web. OlivierCuré

OPC Factory Server- Réglage des paramètres de communication

Vulgarisation Java EE Java EE, c est quoi?

Architecture et infrastructure Web

Urbanisation des SI Conduite du changement IT 20/03/09. Patrick CHAMBET

Evolution et architecture des systèmes d'information, de l'internet. Impact sur les IDS. IDS2014, Nailloux 26-28/05/2014

Approche Contract First

TP JEE Développement Web en Java. Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web.

Architecture Orientée Service, JSON et API REST

Introduction à la plateforme J2EE

Révélateur des talents de demain

BPEL Orchestration de Web Services

Analyse des techniques et des standards pour l interopérabilité entre plateformes

Fusion : l interopérabilité chez Oracle

L EAI. par la pratique. François Rivard. Thomas Plantain. Groupe Eyrolles, 2003 ISBN :

AJAX. (Administrateur) (Dernière édition) Programme de formation. France, Belgique, Suisse, Roumanie - Canada

Développement d applications Internet et réseaux avec LabVIEW. Alexandre STANURSKI National Instruments France

Transcription:

1/21 Programmation Web Avancée Thierry Hamon Bureau H202 - Institut Galilée Tél. : 33 1.48.38.35.53 Bureau 150 LIM&BIO EA 3969 Université Paris 13 - UFR Léonard de Vinci 74, rue Marcel Cachin, F-93017 Bobigny cedex Tél. : 33 1.48.38.73.07, Fax. : 33 1.48.38.73.55 thierry.hamon@univ-paris13.fr http://www-limbio.smbh.univ-paris13.fr/membres/hamon/pwa-20122013

2/21 Encore plus dynamique! Evolution du Web Génération 1 : HTML statique (1993 Web 1.0), CSS (1996) Génération 2 : Application Web à l aide du HTML et de bases de données (HTML dynamique, XML 1994/2000 Web 1.5) Génération 3 : Services Web (2005 Web 2.0)

3/21 Service Web Définition : Application accessible depuis le Web fournissant des données des services à d autres applications un objet métier pouvant être déployé sur Internet Utilisation des protocoles standard d Internet (SOAP, HTTP) d un langage standard pour décrire son interface (WSDL, XML)

4/21 Service Web Caratéristiques Faible dépendance vis-à-vis des technologies et des protocoles plate-forme (UNIX, Windows,...) implémentation (VB, C#, Java,...) architecture sous-jacente (.NET, J2EE, Axis...) Réutilisation dans un environnement ouvert

5/21 Objectifs Remplacement des protocoles actuels (RPC, RMI, DCOM) Interopérabilité et interaction des serveurs Web et de composants hétérogènes Généralisation des serveurs Web utilisant des CGI Indépendance des composants grâce à un protocole standard SOAP Approche pour les applications B2B (Business to Business), EAI (Enterprise Application Integration) et P2P (Peer to Peer)

6/21 Protocoles et technologies associés Définition d objets distribués, basés sur des standards XML Protocole de communication des services Web : SOAP Description des services Web : WSDL ( IDL) Enregistrement et découverte de services Web : UDDI Standards du W3C : XML, SOAP, WSDL Standards industriels : UDDI, ebxml Propriétaires : DISCO, WSDD, WSFL, ASMX,... Implémentations actuelles : Microsoft.Net Sun JavaONE : J2EE + Web services (WSDP = JAXP, JAX-RPC, JAXM...) Apache XSOAP / Axis, IBM WSTK Oracle, Bea, Iona, Enhydra...

7/21 Exemples de services existants Google (http://www.google.com/apis/) : accès gratuit mais limité (1000 requêtes par jour après enregistrement). Trois opérations : recherche obtention d une page depuis le cache correction orthographique Amazon (http://associates.amazon.com/exec/panama/ associates/join/developer/resources.html) : accès gratuit mais limité (1 requête par seconde après enregistrement), opération de recherche et de gestion de panier d achats

8/21 Structure d un service Web Architecture de base Trois composants : Fournisseur de service (service provider) : définit le service publie sa description dans l annuaire réalise les opérations Annuaire (discovery agency) : reçoit et enregistre les descriptions de services publiées par les fournisseurs reçoit et répond aux recherches de services lancées par les clients Client (service requestor) : obtient la description du service grâce à l annuaire utilise le service

9/21 SOAP SOAP (Simple Object Access Protocol) version 1.1 : mai 2000 (http ://www.w3c.org/tr/soap/) version 1.2 : en cours (CR en décembre 2002) Cadre général permettant l échange de données structurées au format XML Protocole de transport de ces données basé sur HTTP

10/21 SOAP <? xml v e r s i o n= 1.0 encoding= UTF 8?> <e n v : E n v e l o p e x m l n s : e n v= h t t p : // schemas. xmlsoap. org / soap / e n v e l o p e / x m l n s : x s i= h t t p : //www. w3. org /1999/XMLSchema i n s t a n c e x m l n s : x s d= h t t p : //www. w3. org /1999/XMLSchema > <env:body> <ns1:dogooglesearch xmlns: ns1= urn: GoogleSearch e n v : e n c o d i n g S t y l e= h t t p : // schemas. xmlsoap. org / soap / e n c o d i n g / > <key x s i : t y p e= x s d : s t r i n g >00000000000000000000000000000000</ key> <q x s i : t y p e= x s d : s t r i n g >s h r d l u winograd m a c l i s p t e l e t y p e</q> <s t a r t x s i : t y p e= x s d : i n t >0</ s t a r t> <maxresults x s i : t y p e= x s d : i n t >10</ maxresults> < f i l t e r x s i : t y p e= x s d : b o o l e a n >t r u e</ f i l t e r> <r e s t r i c t x s i : t y p e= x s d : s t r i n g ></ r e s t r i c t> <s a f e S e a r c h x s i : t y p e= x s d : b o o l e a n >f a l s e</ s a f e S e a r c h> <l r x s i : t y p e= x s d : s t r i n g ></ l r> <i e x s i : t y p e= x s d : s t r i n g >l a t i n 1</ i e> <oe x s i : t y p e= x s d : s t r i n g >l a t i n 1</ oe> </ n s 1 :dogooglesearch> </ env:body> </SOAP ENV:Envelope>

11/21 WSDL WSDL (Web Services Description Language) : version 1.1 : mars 2001 (http://www.w3.org/tr/2001/note-wsdl-20010315) version 1.2 : en cours (Working Draft) dialecte XML permettant de décrire un service web

12/21 WSDL <? xml v e r s i o n= 1.0?> <d e f i n i t i o n s name= T e m p e r a t u r e C o n v e r s i o n s targetnamespace= h t t p : // w e b s e r v i c e s. d a e h o s t i n <t y p e s> <x s : s c h e m a e l e m e n t F o r m D e f a u l t= q u a l i f i e d targetnamespace= h t t p : // w e b s e r v i c e s. d a e h o s <xs: element name= CelciusToFahrenheit > <x s : c o m p l e x T y p e> <x s : s e q u e n c e> <xs: element name= ncelcius type= xs: decimal /> </ x s : s e q u e n c e> </ x s :complextype> </ x s : e l e m e n t> <xs: element name= CelciusToFahrenheitResponse > <x s : c o m p l e x T y p e> <x s : s e q u e n c e> <xs: element name= CelciusToFahrenheitResult type= xs: decimal /> </ x s : s e q u e n c e> </ x s :complextype> </ x s : e l e m e n t> <xs: element name= FahrenheitToCelcius > <x s : c o m p l e x T y p e> <x s : s e q u e n c e> <xs: element name= nfahrenheit type= xs: decimal /> </ x s : s e q u e n c e> </ x s :complextype> </ x s : e l e m e n t>

13/21 WSDL <xs: element name= FahrenheitToCelciusResponse > <x s : c o m p l e x T y p e> <x s : s e q u e n c e> <xs: element name= FahrenheitToCelciusResult type= xs: decimal /> </ x s : s e q u e n c e> </ x s :complextype> </ x s : e l e m e n t> <x s : e l e m e n t name= W i n d C h i l l I n C e l c i u s > <x s : c o m p l e x T y p e> <x s : s e q u e n c e> <xs: element name= ncelcius type= xs: decimal /> <xs: element name= nwindspeed type= xs: decimal /> </ x s : s e q u e n c e> </ x s :complextype> </ x s : e l e m e n t> <xs: element name= WindChillInCelciusResponse > <x s : c o m p l e x T y p e> <x s : s e q u e n c e> <x s : e l e m e n t name= W i n d C h i l l I n C e l c i u s R e s u l t type= x s : d e c i m a l /> </ x s : s e q u e n c e> </ x s :complextype> </ x s : e l e m e n t>

14/21 WSDL <xs: element name= WindChillInFahrenheit > <x s : c o m p l e x T y p e> <x s : s e q u e n c e> <xs: element name= nfahrenheit type= xs: decimal /> <xs: element name= nwindspeed type= xs: decimal /> </ x s : s e q u e n c e> </ x s :complextype> </ x s : e l e m e n t> <xs: element name= WindChillInFahrenheitResponse > <x s : c o m p l e x T y p e> <x s : s e q u e n c e> <xs: element name= WindChillInFahrenheitResult type= xs: decimal /> </ x s : s e q u e n c e> </ x s :complextype> </ x s : e l e m e n t> </ x s :schema> </ t y p e s> <message name= CelciusToFahrenheitSoapRequest > <part name= parameters element= tns: CelciusToFahrenheit /> </ message> <message name= CelciusToFahrenheitSoapResponse > <part name= parameters element= tns: CelciusToFahrenheitResponse /> </ message> <message name= FahrenheitToCelciusSoapRequest > <part name= parameters element= tns: FahrenheitToCelcius /> </ message>

15/21 WSDL <message name= FahrenheitToCelciusSoapResponse > <part name= parameters element= tns: FahrenheitToCelciusResponse /> </ message> <message name= WindChillInCelciusSoapRequest > <p a r t name= p a r a m e t e r s e l e m e n t= t n s : W i n d C h i l l I n C e l c i u s /> </ message> <message name= WindChillInCelciusSoapResponse > <part name= parameters element= tns: WindChillInCelciusResponse /> </ message> <message name= WindChillInFahrenheitSoapRequest > <p a r t name= p a r a m e t e r s e l e m e n t= t n s : W i n d C h i l l I n F a h r e n h e i t /> </ message> <message name= WindChillInFahrenheitSoapResponse > <part name= parameters element= tns: WindChillInFahrenheitResponse /> </ message> <porttype name= TemperatureConversionsSoapType > <operation name= CelciusToFahrenheit > <documentation> Converts a C e l c i u s Temperature to a Fahrenheit value </ documentation> <input message= tns: CelciusToFahrenheitSoapRequest /> <output message= tns: CelciusToFahrenheitSoapResponse /> </ o p e r a t i o n>

16/21 WSDL <operation name= FahrenheitToCelcius > <documentation> Converts a Fahrenheit Temperature to a C e l c i u s value </ documentation> <input message= tns: FahrenheitToCelciusSoapRequest /> <output message= tns: FahrenheitToCelciusSoapResponse /> </ o p e r a t i o n> <o p e r a t i o n name= W i n d C h i l l I n C e l c i u s > <documentation> Windchill temperature c a l c u l a t e d with the formula of Steadman </ documentation> <input message= tns: WindChillInCelciusSoapRequest /> <output message= tns: WindChillInCelciusSoapResponse /> </ o p e r a t i o n> <operation name= WindChillInFahrenheit > <documentation> Windchill temperature c a l c u l a t e d with the formula of Steadman </ documentation> <input message= tns: WindChillInFahrenheitSoapRequest /> <output message= tns: WindChillInFahrenheitSoapResponse /> </ o p e r a t i o n> </ porttype>

17/21 WSDL <binding name= TemperatureConversionsSoapBinding type= tns:temperatureconversionssoapt <s o a p : b i n d i n g s t y l e= document t r a n s p o r t= h t t p : // schemas. xmlsoap. org / soap / h t t p /> <operation name= CelciusToFahrenheit > <soap: operation soapaction= s t y l e= document /> <i n p u t> <s o a p : b o d y use= l i t e r a l /> </ i n p u t> <o u t p u t> <s o a p : b o d y use= l i t e r a l /> </ o u t p u t> </ o p e r a t i o n> <operation name= FahrenheitToCelcius > <soap: operation soapaction= s t y l e= document /> <i n p u t> <s o a p : b o d y use= l i t e r a l /> </ i n p u t> <o u t p u t> <s o a p : b o d y use= l i t e r a l /> </ o u t p u t> </ o p e r a t i o n>

18/21 WSDL <o p e r a t i o n name= W i n d C h i l l I n C e l c i u s > <soap: operation soapaction= s t y l e= document /> <i n p u t> <s o a p : b o d y use= l i t e r a l /> </ i n p u t> <o u t p u t> <s o a p : b o d y use= l i t e r a l /> </ o u t p u t> </ o p e r a t i o n> <operation name= WindChillInFahrenheit > <soap: operation soapaction= s t y l e= document /> <i n p u t> <s o a p : b o d y use= l i t e r a l /> </ i n p u t> <o u t p u t> <s o a p : b o d y use= l i t e r a l /> </ o u t p u t> </ o p e r a t i o n> </ b i n d i n g> <s e r v i c e name= T e m p e r a t u r e C o n v e r s i o n s > <documentation> Visual DataFlex Web S e r v i c e to convert temperature values between C e l c i u s and Fahr </ documentation> <port name= TemperatureConversionsSoap binding= tns: TemperatureConversionsSoapBindi <s o a p : a d d r e s s l o c a t i o n= h t t p : // w e b s e r v i c e s. d a e h o s t i n g. com/ s e r v i c e s / T e m p e r a t u r e C o n </ p o r t> </ s e r v i c e> </ d e f i n i t i o n s>

19/21 UDDI UDDI (Universal Data Description Interface) : version 3 : juillet 2002 (http://uddi.org/pubs/uddi-v3. 00-published-20020719.htm) Annuaire permettant d enregistrer et de rechercher des descriptions de services web

20/21 Définition : Mise en œuvre des formats (dialecte XML) des sémantiques associées (sens de chaque élément des documents XML) des protocoles (e.g., utilisation de HTTP pour transmettre des messages SOAP) des services web standards (comme les API de UDDI) redémarrage automatique du serveur persistance des données interfaçage avec les systèmes d information de l entreprise (SGBD, ERP, CRM, etc.) Utiliser un serveur d applications : serveur EJB (J2EE 1.4 va intégrer le support des services web) serveur.net

21/21 Implémentation d un service Web grandes lignes Java : standardisation par Sun des API et des outils associés : JAX-RPC (JA XML-based RPC) : utilisation de SOAP (mode RPC) JAXR (JA XML Registries) : utilisation de UDDI JAXM (JA XML Messaging) : utilisation de SOAP (mode message) SAAJ (SOAP with Attachments API for Java) : utilisation de SOAP (pièces jointes) outil de transformation d une description WSDL en interface Java et vice-versa etc..net : Stardisation Microsoft API dans la bibliothèque de classes de.net utilisation en C# ou VB