La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Chapitre 5 Web Services : Le nouveau standard JAX-WS 2.0.

Présentations similaires


Présentation au sujet: "Chapitre 5 Web Services : Le nouveau standard JAX-WS 2.0."— Transcription de la présentation:

1 Chapitre 5 Web Services : Le nouveau standard JAX-WS 2.0

2 Développement de Web services 2 M.Romdhani, INSAT, Octobre 2009 Sommaire Revue des standards des Web services Le protocole SOAP Le langage WSDL Le service dannuaires UDDI Développement classique avec Apache Axis Développement avec JAX-WS 2.0

3 Développement de Web services 3 M.Romdhani, INSAT, Octobre 2009 Définition de larchitecture SOA « Il sagit dun modèle pour organiser et architecturer les services offerts par un organisme » ( Définition de lOASIS ) Batch On-line midrange Client/ server Web client Service- oriented architectures 1970s1980s1990s2000s2010s

4 Développement de Web services 4 M.Romdhani, INSAT, Octobre 2009 Schema Agreements Programming Language Object Model Application Server Database Operating System Database Operating System Programming Language Object Model Application Server VousLautre Solution à fort couplageArchitecture orientée Services SOA : Intégration on interopérabilité ?

5 Développement de Web services 5 M.Romdhani, INSAT, Octobre 2009 L'architecture orientée service « Service-oriented architectures are an approach to designing distributed computing systems that considers software resources as services available on a network. » Les 4 principes fondamentaux de SOA [Définition de microsoft « Don Box »] : 1.Frontière explicite 2.Services Autonomes 3.Les services partagent les schémas, les contrats mais pas les classes 4.La compatibilité des services est négociée sur la base de stratégies

6 Développement de Web services 6 M.Romdhani, INSAT, Octobre 2009 Contracts Services Service State Logic Message 2 Message 1

7 Développement de Web services 7 M.Romdhani, INSAT, Octobre 2009 Lidée principale de la SOA Messages Flux de données non encapsulées Pas de suppositions sur limplémentation Contrats: Frontières explicites Les types de données et les sémantiques y sont explicités Les types de données doivent permettre lévolution Les paramètres techniques de sécurité, de transactions pour les Services sont négociables dynamiquement Processus autonomes. « Building Blocks », et non pas des Silos.

8 Développement de Web services 8 M.Romdhani, INSAT, Octobre 2009 Revue des standards des Web services

9 Développement de Web services 9 M.Romdhani, INSAT, Octobre 2009 Quest ce quun Web Service ? Les Web Services sont des services offerts via le web Un service Web est un ensemble de protocoles et de normes utilisés pour échanger des données entre les applications Web Service = HTTP + XML Les prolifération des Services Web correspond à un nouveau standard darchitectures applicatives qui est le SOA (Service Oriented Architecture) Un exemple : un client demande le prix dun article en envoyant un message sur le web. Ce message contient la référence de larticle. Le Web Service va recevoir la référence, effectuer le traitement du service et renvoyer le prix au client via un autre message.

10 Développement de Web services 10 M.Romdhani, INSAT, Octobre 2009 Standards des Web services Les Standards décrivent : Quest ce qui circule sur le fil ? Formats et protocoles (SOAP) Quest ce qui décrit ce qui circule sur le fil ? Langage de Description (WSDL) Quest ce qui nous permet de trouver ces descriptions ? Référentiel (UDDI)

11 Développement de Web services 11 M.Romdhani, INSAT, Octobre 2009 SOAP (Simple Object Access Protocol) Standard W3C (Initiative IBM et Microsoft) Cest un protocole de RPC pour linvocation des méthodes d'objets distants Basé entièrement sur XML Cest une spécification non propriétaire Prend en charge : divers protocoles de transport (HTTP, SMTP,…) différents formats (MIME,…)

12 Développement de Web services 12 M.Romdhani, INSAT, Octobre 2009 Structure dun message SOAP Message SOAP = Enveloppe ( Header + Body ) SAOP Header (Optional) SAOP Body

13 Développement de Web services 13 M.Romdhani, INSAT, Octobre 2009 WSDL (Web Services Description Language) Standard W3C Langage de description des services Web Basé entièrement sur XML (Schéma XML) Définition de linterface, de lURL et du port du Web Service

14 Développement de Web services 14 M.Romdhani, INSAT, Octobre 2009 Contrat WSDL Constitué par : Un composant dinterface : -Format de transmission des messages -Protocole du Service Web -Opérations de transmission des messages Un composant dimplémentation : le point daccès (URL) du Service Web

15 Développement de Web services 15 M.Romdhani, INSAT, Octobre 2009 UDDI (Universal Description Discovery and Integration) Les Services Web nont un sens que si des utilisateurs potentiels peuvent les localiser Cest une technologie d'annuaire Recommandation OASIS (Consortium travaillant sur la standardisation des technologies Web Services) Référentiel défini lui-même en WSDL Référentiel Public / Privé

16 Développement de Web services 16 M.Romdhani, INSAT, Octobre 2009 UDDI : comment ça marche ?

17 Développement de Web services 17 M.Romdhani, INSAT, Octobre 2009 Composition du répertoire UDDI Chaque entrée du répertoire UDDI est constituée de trois parties : 1.Les "pages blanches" décrivent l'entreprise qui offre le service (nom, adresse, contacts,…) 2.Les "pages jaunes" comportent les catégories industrielles 3.Les "pages vertes" : contiennent une description technique de linterface

18 Développement de Web services 18 M.Romdhani, INSAT, Octobre 2009 Récapitulatif SOAP, WSDL, et UDDI SOAP WSDL UDDI SOAP 1.2 Entièrement basés sur XML Standard W3C IBM, MICROSOFT ARIBA COMPAQ HP… IBM MICROSOFT ARIBA ARIBA Recommandation OASIS Standard W3CWSDL 2.0 UDDI 3.0 Cest un protocole de RPC pour linvocation des méthodes d'objets distants Cest le langage de description des services Web Cest une technologie d'annuaire

19 Développement de Web services 19 M.Romdhani, INSAT, Octobre 2009 Scénario de déroulement Annuaire UDDI Annuaire UDDI Client Service Web Service Web Enregistrement du service Recherche dun service Interface WSDL Récupération de linterface du service Utilisation du service SOAP HTTP SOAP proxy

20 Développement de Web services 20 M.Romdhani, INSAT, Octobre 2009 Le protocole SOAP

21 Développement de Web services 21 M.Romdhani, INSAT, Octobre 2009 Exemple de message SOAP POST /StockQuote HTTP/1.1 Host: Content-Type: text/xml; charset="utf-8" Content-Length: nnnn SOAPAction: "Some-URI" DIS Propre au portage sur HTTP

22 Développement de Web services 22 M.Romdhani, INSAT, Octobre 2009 Exemple de message de réponse HTTP/ OK Content-Type: text/xml; charset="utf-8" Content-Length: nnnn 34.5 Propre au portage sur HTTP

23 Développement de Web services 23 M.Romdhani, INSAT, Octobre 2009 Analyse de lexemple Des Balises Utilisateur GetLastTradePriceResponse Symbol Price Un Namespace Utilisateur xmlns:m="Some-URI" Des Balises SOAP Enveloppe Body Un Namespace SOAP xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" Des informations dans la partie HTTP

24 Développement de Web services 24 M.Romdhani, INSAT, Octobre 2009 SOAP Header Mécanisme dextension du protocol SOAP La balise Header est optionnelle Si la balise Header est présente, elle doit être le premier fils de la balise Envelope La balise Header contient des entrées Une entrée est nimporte quelle balise incluse dans un namespace Exemple de SOAP HEADER 5

25 Développement de Web services 25 M.Romdhani, INSAT, Octobre 2009 SOAP Body Le Body contient le message à échanger La balise Body est obligatoire La balise Body doit être le premier fils de la balise Envelope (ou le deuxième si il existe une balise Header) La balise Body contient des entrées Une entrée est nimporte quelle balise incluse optionnellement dans un namespace Une entrée peut être une Fault.

26 Développement de Web services 26 M.Romdhani, INSAT, Octobre 2009 Encodage Un message SOAP contient des données typées. Il faut donc définir un moyen dencoder ces données. Vocabulaire SOAP : Value (valeur dune donnée) Simple value (string, integers,etc) Compound value (array, struct, …) Type (dune value) Simple Type Compound Type

27 Développement de Web services 27 M.Romdhani, INSAT, Octobre 2009 SOAP avec HTTP SOAP peut être facilement porté sur Http Convient au mode Request/Response de Http Le message SOAP est mis dans une requête POST avec un content- type text/xml Définition dun header http : SOAPAction Utilisation des codes http (2xx, 4xx, 5xx)

28 Développement de Web services 28 M.Romdhani, INSAT, Octobre 2009 Le langage WSDL

29 Développement de Web services 29 M.Romdhani, INSAT, Octobre 2009 Présentation Une description WSDL : 1.Décrit le type dun service web (méthodes, types des paramètres) Cette description peut être comparée à la description IDL CORBA, elle peut servir à générer automatiquement des amorces. 2.Décrit les aspects techniques dimplantation dun service web (quel est le protocole utilisé, quel est le ladresse du service) Cette description sert à se connecter concrètement à un service web.

30 Développement de Web services 30 M.Romdhani, INSAT, Octobre 2009 Balises Une description WSDL est un document XML qui commence par la balise definition et contient les balises suivantes : types: cette balise décrit les types utilisés message: cette balise décrit la structure dun message échangé portType: cette balise décrit un ensemble dopérations (interface dun service web) operation: cette balise décrit une opération réalisée par le service web. Une opération reçoit des messages et envois des messages. binding: cette balise décrit le lien entre un protocole (http) et un portType. service: cette balise décrit un service comme un ensemble de ports. port: cette balise décrit un port au travers duquel il est possible daccéder à un ensemble dopérations. Un port référence un Binding

31 Développement de Web services 31 M.Romdhani, INSAT, Octobre 2009 Développer des Web services avec Apache Axis

32 Développement de Web services 32 M.Romdhani, INSAT, Octobre 2009 Architecture (Serveur) Axis fournit une Servlet (AxisServlet) qui reçoit des message SOAP sur http et qui transforme lappel en un appel de méthode classique Java Développer un Web Service revient alors à développer un objet Java et à enregistrer ses méthodes auprès de la Servlet AxisServlet. Les clients envoient alors leurs messages SOAP sur http à AxisServlet. Pour SMTP les clients envoient leurs messages par mail à un démon. Le démon reçoit ces messages et les renvoie sur http à AxisServlet.

33 Développement de Web services 33 M.Romdhani, INSAT, Octobre 2009 Architecture (Serveur) JVM Moteur de Servlet AxisServlet La Servlet AxisServlet reçoit et renvoie les messages SOAP et transmet aux objets Java correspondant Les Objets Java effectuent les services. Ils sont des objets Java classiques. Objets Java et Servlet sont dans la même JVM (pas de répartition). SOAP/HTTP Le client envoie des messages SOAP/HTTP

34 Développement de Web services 34 M.Romdhani, INSAT, Octobre 2009 Développement dun Web Service Développer une classe Java public class MyFirstWebService { public final String BOOK1 = "La méthode"; public final String BOOK2 = "Le Macroscope"; public int getPrice(String bookTitle) { if (bookTitle.compareTo(BOOK1)==0) { return 15; } else if (bookTitle.compareTo(BOOK2)==0) { return 20; } else return 300; }

35 Développement de Web services 35 M.Romdhani, INSAT, Octobre 2009 Déploiement un Web Service Elaborer un descripteur SOAP de votre classe Exporter le descripteur java org.apache.axis.client.AdminClient deploy.wsdd

36 Développement de Web services 36 M.Romdhani, INSAT, Octobre 2009 Déploiement un Web Service Le fichier jws sont les équivalents des jsp pour les Web Service. Construction dun fichier jws à partir dune classe java: Copy MyFirstWebService.java /…/MyFirstWebService.jws

37 Développement de Web services 37 M.Romdhani, INSAT, Octobre 2009 Le Client à partir du WSDL Génération dun ensemble de classes facilitant lenvoi de message SOAP: java org.apache.axis.wsdl.WSDL2Java file.wsdl Classes générées: Pour les Type Pour les PortType Pour les Binding Pour les Port Pour les Service

38 Développement de Web services 38 M.Romdhani, INSAT, Octobre 2009 Obtention du WSDL de lexemple Sous axis, dans un navigateur, mettre ladresse du Web Service suivie de ?WSDL

39 Développement de Web services 39 M.Romdhani, INSAT, Octobre 2009 Développement avec JAX-WS 2.0

40 Développement de Web services 40 M.Romdhani, INSAT, Octobre 2009 Java API 4 XML-based Web Services Successeur de JAX-RPC. Actuellement en version 2.0 Permet de créer des services Web dans le conteneur Web dans le conteneur EJB Supporte les injections de dépendances

41 Développement de Web services 41 M.Romdhani, INSAT, Octobre 2009 Exemple de () // à supprimer si le service est créé dans un () public class SubjectInfo public String getSubjectInfo (String subjectID) {... public String [] getAllSubjects () {... } // Référencement du service à partir d'un (wsdlLocation="http://xxx:8080/SubjectInfoService/SubjectInfo?wsdl") static SubjectInfoService service; // Recherche du "port" SubjectInfo subjectInfo = service.getSubjectInfoPort (); System.out.println(subjectInfo.getSubjectInfo ("S07"));

42 Développement de Web services 42 M.Romdhani, INSAT, Octobre 2009 Scénario de génération d'artéfacts Créer le service et le compiler Utiliser wsgen pour générer les artifacts Assembler dans un WAR/JAR et le déployer Utiliser wsimport pour générer les artifacts Coder le client Exécuter le client


Télécharger ppt "Chapitre 5 Web Services : Le nouveau standard JAX-WS 2.0."

Présentations similaires


Annonces Google