Les services Web. Jeremy Fierstone [email protected]. SAR5 Novembre 2002
|
|
|
- Edith Michel
- il y a 10 ans
- Total affichages :
Transcription
1 Les services Web Jeremy Fierstone [email protected] SAR5 Novembre 2002 Merci à Mireille Blay-Fornarino, Didier Donsez Michel Riveill, Microsoft, Sun pour leurs slides 1
2 Les services Web Généralités Architecture SOAP WSDL UDDI Implémentations Les APIs Java (JAXP, JAX-RPC, JAXM, JAXR, JAXB) Implémentation avec JAX-RPC Apache SOAP, Apache Axis Conclusion 2
3 Les services Web Généralités 3
4 Un Service Web, c est quoi? Un service Web est une «unité logique applicative» accessible en utilisant les protocoles standard d Internet Une «librairie» fournissant des données et des services à d autres applications. Un objet métier qui peut être déployé et combiné sur Internet avec une faible dépendance vis-à-vis des technologies et des protocoles. Combine les meilleurs aspects du développement à base de composants et du Web. 4
5 Un Service Web, c est quoi? Caractéristiques: Réutilisable Indépendamment de la plate-forme (UNIX, Windows, ) l implémentation (VB, C#, Java, ) l architecture sous-jacente (.NET, J2EE, Axis ) 5
6 Evolution du Web HTML HTML HTML, XML HTML, XML Generation 1 Static HTML Generation 2 Web Applications Generation 3 Web Services 6
7 Exemple 7
8 Le Web 3ème génération Aujourd hui Un site Web fournie des pages HTML - pas de structure - impossible à fusionner avec d autres pages Demain Un site Web est un composant fournissant des services en XML - structure / sémantique - fusion possible Web service site Web service site Web service site The Firewall File DB Web Server Browser In-house systems Dynamic Pages 8
9 Pourquoi faire? Les services Web permettent d interconnecter : Différentes entreprises Différents matériels Différentes applications Différents clients Pas uniquement des butineurs Distribuer et intégrer des logiques métiers Vers le Web sémantique Pas uniquement le Web purement interactif Les services Web sont faiblement couplés 9
10 Modèle client / serveur Service Web XML Service Web XML XML XML Service Web Web Site XML XML XML Service Web HTML Client XML Client 10
11 Quels objectifs? Remplacer les protocoles actuels (RPC,DCOM,RMI) par une approche entièrement ouverte et interopérable, basée sur la généralisation des serveurs Web avec scripts CGI. Faire interagir des composants hétérogènes, distants, et indépendants avec un protocole standard (SOAP). Dédiés aux applications B2B (Business to Business), EAI (Enterprise Application Integration), P2P (Peer to Peer). 11
12 Et plus concrètement? Une nouvelle technologie des objets distribués? Invocation distante des services Web : SOAP (~IIOP) Description des services Web : WSDL (~IDL) Enregistrement et découverte de services Web : UDDI (~NameService) Basés sur des standards XML 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 SOAP / Axis, IBM WSTK Oracle, Bea, Iona, Enhydra 12
13 Les services Web Architecture 13
14 Annuaire UDDI 1 : Je recherche un service WEB Cycle de vie d utilisation 2 : J ai trouvé! Voici le serveur hébergeant ce service web 3 : Quel est le format d appel du service que tu proposes? 4 : Voici mon contrat (WSDL) XML Contrat SOAP Client XML Serveur 5 : J ai compris comment invoquer ton service et je t envoie un document XML représentant ma requête XML 14 6 : J ai exécuté ta requête et je te retourne le résultat
15 Cycle de vie complet Etape 1 : Déploiement du service Web Dépendant de la plate-forme (Apache : WSDD) Etape 2 : Enregistrement du service Web WSDL : description du service Référentiels : DISCO (local), UDDI (global) Etape 3 : Découverte du service Web Etape 4 : Invocation du service Web par le client 15
16 1: Déploiement du WS 16
17 2: Enregistrement du WS 17
18 3: Découverte du WS 18
19 4: Invocation du WS 19
20 Architecture globale 20
21 Les services Web SOAP : Simple Object Access Protocol Merci à Michel Riveill et Didier Donsez 21
22 Le Web et le client serveur Proposition Web actuelle insuffisante Autres plates-formes client / serveur Java RMI mono-langage : Java, multi-plateforme (JVM), SUN Pas réaliste pour une application industrielle (performance, sécurité, ) CORBA / IIOP Multilangage, multi-plateforme, Multi-vendeurs, OMG Installation «coûteuse» si on doit acheter un ORB Mais les open-sources sont gratuits et souvent plus complet DCOM multi-langages, plateforme Win32, Propriétaire Microsoft protocole orienté connexion Échange de nombreux paquets pour créer/maintenir une session Faible diffusion Pas disponible sur MacOS, NT3.51, Win95, WinCE2 Coûteux sur UNIX, MVS, VMS ou NT 22
23 Le bilan Approche insatisfaisante : Protocoles sophistiqués Coût d installation (faite par un administrateur, consomme des ressources : machines, personnels, ) Difficile à porter sur d autres plates-formes Règles de fonctionnement strictes en environnement ouvert (le Net) Environnement sécurisé (intérieur d un intranet) Incapacité à fonctionner en présence de pare-feu (utilisation impossible sur Internet) Les nouvelles version de CoRBA peuvent ouvrir un port sur un parefeu comme le port 80 d HTTP 23
24 et ses conséquences Le Web a besoin d un nouveau protocole Multi-langages, multi-plateformes Respectant les formats d échanges du Web Réponses et requêtes en XML Facile à implémenter sur différents protocoles de transport RPC, HTTP ou autre MOM Permettant de franchir les «firewalls» ATTENTION : on perd le contrôle d accès à faible granularité Avec une spécification non propriétaire garantie par un organisme indépendant W3C La réponse : SOAP (Simple Object Access Protocol) 24
25 La philosophie S.O.A.P SOAP codifie simplement une pratique existante Utilisation conjointe de XML et HTTP SOAP est un protocole minimal pour appeler des méthodes sur des serveurs, services, composants, objets Ne pas imposer une API ou un runtime Ne pas imposer l utilisation d un ORB (CORBA, DCOM, ) ou d un serveur web particulier (Apache, IIS, ) Ne pas imposer un modèle de programmation Plusieurs modèles peuvent être utilisés conjointement Et ne pas réinventer une nouvelle technologie SOAP a été construit pour pouvoir être aisément porté sur toutes les plates-formes et les technologies Vous pouvez écrire votre 1 er appel SOAP en moins d une heure!! Il vous a fallu combien de temps en CORBA, RMI, DCOM? 25
26 Les 3 aspects d un appel SOAP SOAP peut être vu comme un autre RPC Objets Les requêtes contiennent les paramètres IN et INOUT Les réponses contiennent les paramètres INOUT et OUT SOAP peut être vu comme un protocole d échange de message La requête contient un seul message (appel sérialisé d une méthode sur un objet) La réponse contient un seul message (retour sérialisé d un appel de méthode sur un objet) SOAP peut être vu comme un format d échange de documents La requête contient un document XML Le serveur retourne une version transformée Ces vues ne sont pas imposées par le protocole 26
27 En résumé SOAP = HTTP + XML Station Serveur Browser client universel Application partie -cliente Client HTTP requêtes SOAP (XML) Réponses SOAP (XML) Serveur HTTP ASP ISAPI CGI Servlets Application partie-serveur 27
28 Pourquoi utiliser HTTP? HTTP (HyperText Transfer Protocol) est devenu de facto le protocole de communication de l Internet HTTP est disponible sur toutes les plates-formes très rapidement HTTP est un protocole simple, qui ne requière que peu de support pour fonctionner correctement HTTP est un protocole sans connexion Peu de paquets sont nécessaires pour échanger des informations HTTP offre un niveau de sécurité simple et effectif HTTP est le seul protocole utilisable à travers des pare-feu 28
29 Fonctionnement d HTTP HTTP utilise un protocole requête/réponse basé sur du texte La première ligne de la requête contient 3 éléments Verbe : POST/GET/HEAD URI : /default.htm Protocole : HTTP/1.0 - HTTP/1.1 La première ligne de la réponse contient 2 éléments État : 200, 402 Phrase : OK, Unauthorized Les lignes suivantes contiennent un nombre arbitraire d entête Le contenu suit une ligne d entête vide Utilisé essentiellement pour les réponses et pour les requêtes POST 29
30 Fonctionnement d HTTP HTTP Request HTTP Request GET /bar/foo.txt HTTP/1.1 ou or POST /bar/foo.cgi HTTP/1.1 Content-Type: text/plain Content-Length: 13 HTTP Response HTTP Response 200 OK Content-Type: text/plain Content-Length: 12 Hello, World Goodbye, World 30
31 Pourquoi utiliser XML? Utilise du texte (peut être lu et écrit directement) ATTENTION : le texte est globalement peut lisible et vite complexe pour un humain Construire correctement du texte XML est simple Pas d éléments qui se recouvrent (uniquement des imbrications) Les attributs sont clairement identifiés (dir= in ) Les caractères <, >, & doivent être précédés d un caractère d échappement (ou il faut utiliser CDATA) XML est aujourd hui adopté par tous les acteurs de l Internet : plates-formes, éditeurs, XML permet une extensibilité aisée par l utilisation d espaces de nommage (namespaces et URIs) XML permet d ajouter du typage et de la structure à des informations L information peut être sauvegardée n importe où sur le Net Les données fournies par de multiples sources peuvent être agrégéees en une seule unité Chaque partie à sa propre structure XML Chaque partie peut définir des types spécifiques W3C n impose pas un API mais en recommande un (DOM) D autres sont utilisés : SAX, strcat 31
32 Exemple de requête utilisant HTTP Demande de cotation à un serveur POST /StockQuote HTTP/1.1 Host: Content-Type: text/xml; charset="utf-8" Content-Length: nnnn SOAPAction: "Some-URI" <SOAP-ENV:Envelope xmlns:soap-env= " SOAP-ENV:encodingStyle= " <SOAP-ENV:Body> <m:getlasttradeprice xmlns:m="some-uri"> <symbol>dis</symbol> </m:getlasttradeprice> </SOAP-ENV:Body> </SOAP-ENV:Envelope> 32
33 Exemple de réponse utilisant HTTP HTTP/ OK Content-Type: text/xml; charset="utf-8" Content-Length: nnnn <SOAP-ENV:Envelope xmlns:soap-env= " SOAP-ENV:encodingStyle= " <SOAP-ENV:Body> <m:getlasttradepriceresponse xmlns:m="some-uri"> <Price>34.5</Price> </m:getlasttradepriceresponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope> 33
34 Eléments de SOAP L enveloppe (enveloppe) Définit la structure du message Les règles d encodage (encoding rules) Définit le mécanisme de sérialisation permettant de construire le message pour chacun des types de données pouvant être échangés Fonctionnement en modèle client / serveur (RPC representation) Définit comment sont représentés les appels de procédure et les réponses Proposer une mise en œuvre sur HTTP (HTTP Extension Framework) RFC 2774 Définir l échange de message SOAP sur HTTP 34
35 SOAP Message Structure SOAP Message HTTP Headers SOAP Envelope SOAP Header Headers SOAP Body Method Call & Data Le message SOAP Complet Entête standard HTTP et entête SOAP HTTP Enveloppe Entête Entête individuelle Corps qui contient les appels de méthodes SOAP Appel de méthode et description en XML de données 35
36 Modèle de message SOAP permet une communication par message d un expéditeur vers un récepteur Structure d un message Enveloppe / Envelope Élément racine Namespace : SOAP-ENV Entête / Header Élément optionnel Contient des entrées non applicatives Transactions, sessions, Corps / Body Contient les entrées du message Nom d une procédure, valeurs des paramètres, valeur de retour Peut contenir les éléments «fault» (erreurs) 36
37 Entête d un Message Contient des entrées non applicatives Transactions, sessions, L attribut mustunderstand Si absent ou = 0 Si =1 l élément est optionnel pour l application réceptrice l élément doit être compris de l application réceptrice Si ce n est pas le cas, le traitement du message par le récepteur doit échouer Exemple <SOAP-ENV:Header> <t:transaction xmlns:t="some-uri" SOAP-ENV:mustUnderstand="1"> 5 </t:transaction> </SOAP-ENV:Header> 37
38 Corps d un Message Contient des entrées applicatives Encodage des entrées Namespace pour l encodage SOAP-ENC xsd : XML Schema 38
39 Principes des règles d encodage Décrit dans la section 5 pour les types de base Règles par défaut L encodage est de type : element-normal-form Un élément par champ, le nom de l élément est celui du champ Les règles d encodage définissent un système de type Il est compatible avec le langage SDL de XML (XML Schema Definition language) Les types SOAP peuvent être décrit en utilisant XSD SOAP utilise les conventions XSD pour associer les instances aux types <foo xmlns:xsi=" xsi:type="timeinstant"> T09:43 </foo> Les tableaux et les références sont typés de manière spécifique en utilisant XSD 39
40 Règles d encodage Types primitifs <element name="price" type="float"/> <element name="greeting" <price>15.57</price> <greeting id="id1">hello</greeting> type="xsd:string"/> Structures <element name="book"><complextype> <element name="author" type="xsd:string"/> <element name="title" type="xsd:string"/> </complextype></element> Enumération <element name="color"> <simpletype base="xsd:string"> <enumeration value="green"/> <enumeration value="blue"/> </simpletype> </element> <e:book> <author>j.r.r Tolkien</author> <title>a hobbit story</title> </e:book> <color>blue</color> 40
41 Règles d encodage Références <element name="salutation" type="xsd:string"/> <salutation href="#id1"/> <e:book> <title>my Life and Work</title> <firstauthor href="#person-1"/> <secondauthor href="#person-2"/> </e:book> <e:person id="person-1"> <name>henry Ford</name> <address xsi:type="m:electronic-address"> < >mailto:[email protected]</ > <web> </address> </e:person> <e:person id="person-2"> <name>samuel Crowther</name> <address xsi:type="n:street-address"> <street>martin Luther King Rd</street> <city>raleigh</city> <state>north Carolina</state> </address> </e:person> 41
42 Règles d encodage Tableaux <SOAP-ENC:Array id="id3" SOAP-ENC:arrayType=xsd:string[2,2]> <item>r1c1</item> <item>r1c2</item> <item>r2c1</item> <item>r2c2</item> </SOAP-ENC:Array> Tableaux d octet <picture xsi:type="soap-enc:base64"> ag93ig5vdybicm73bibjb3cncg== </picture> Tableaux creux <SOAP-ENC:Array id="array-1" SOAP-ENC:arrayType="xsd:string[10,10]"> <item SOAP-ENC:position="[2,2]">Third row, third col</item> <item SOAP-ENC:position="[7,2]">Eighth row, third col</item> </SOAP-ENC:Array> 42
43 Exemple d encodage (1/3) <element name="person" base="tns:person"/> <complextype name="person"> <sequence minoccurs="0" maxoccurs="1"> <element name="name" type="xsd:string"/> <element name="address" type="tns:address"/> </sequence> <attribute name="href" type="urireference"/> <attribute name="id" type="id"/> <anyattribute namespace="##other"/> </complextype> 43
44 Exemple d encodage (2/3) <element name="address" base="tns:address"/> <complextype name="address"> <sequence minoccurs="0" maxoccurs="1"> <element name="street" type="xsd:string"/> <element name="city" type="xsd:string"/> <element name="state" type="xsd:string"/> </sequence> <attribute name="href" type="urireference"/> <attribute name="id" type="id"/> <anyattribute namespace="##other"/> </complextype> 44
45 Exemple d encodage (3/3) <element name="book" type="tns:book"/> <complextype name="book"> <sequence minoccurs="0" maxoccurs="1"> <element name="title" type="xsd:string"/> <element name="firstauthor" type="tns:person"/> <element name="secondauthor" type="tns:person"/> </sequence> <attribute name="href" type="urireference"/> <attribute name="id" type="id"/> <anyattribute namespace="##other"/> </complextype> 45
46 Valeurs empaquetées et valeurs indépendantes SOAP permet d encoder les données de différentes manières Par exemple dans foo.doit(obj1, obj1) On peut vouloir préciser que les deux paramètres effectifs sont identiques Passage par référence dans les langages de programmation Utilisation de valeurs indépendantes Définition d une valeur indépendante Elle apparaît dans l entête (soap:header) ou dans le corps (soap:body) Elle a un attribut unique (soap:id) Elle est généralement encodée comme un élément typé Utilisation d une valeur indépendante Utilise l attribut précédemment défini (soap:href) 46
47 Valeurs empaquetées et valeurs indépendantes <soap:envelope xmlns:soap= uri for soap > <soap:body> <calculatearea xmlns= interfaceuri > <origin><x>23</x><y>34</y></origin> <corner><x>23</x><y>34</y></corner> </calculatearea> </soap:body> </soap:envelope> <soap:envelope xmlns:soap= uri for soap > <soap:body> <calculatearea xmlns= interfaceuri > <origin soap:href= #id1 /> <corner soap:href= #id1 /> </calculatearea> <Point soap:id= id1 xmlns= someuri > <x>23</x><y>34</y> </Point> </soap:body> </soap:envelope> 47
48 Le retour d erreurs (faults) 4 éléments Faultcode (obligatoire) Code d erreur utilisé par le logiciel (switch(faultcode) { case Faultstring (obligatoire) Explication lisible d un humain faultactor (optionel) Erreur en cours de cheminement du message (firewall, proxy, MOM) Detail Détail de l erreur non lié au Body du message Autres Faultcode D autres éléments qualifiés par un namespace peuvent être ajoutés 4 groupes de code d erreur Client, Server, MustUnderstand, VersionMismatch Ex: Client.Authentication 48
49 Le retour d erreurs (faults) MustUnderstand HTTP/ Internal Server Error Content-Type: text/xml; charset="utf-8" Content-Length: nnnn <SOAP-ENV:Envelope xmlns:soap- ENV=" <SOAP-ENV:Body> <SOAP-ENV:Fault> <faultcode>soap-env:mustunderstand</faultcode> <faultstring>soap Must Understand Error</faultstring> </SOAP-ENV:Fault> </SOAP-ENV:Body> </SOAP-ENV:Envelope> 49
50 Le retour d erreurs (faults) Erreur sur le corps HTTP/ Internal Server Error Content-Type: text/xml; charset="utf-8" Content-Length: nnnn <SOAP-ENV:Envelope xmlns:soap-env=" <SOAP-ENV:Body> <SOAP-ENV:Fault> <faultcode>soap-env:server</faultcode> <faultstring>server Error</faultstring> <detail> <e:myfaultdetails xmlns:e="some-uri"> <message> My application didn't work </message> <errorcode>1001</errorcode> </e:myfaultdetails> </detail> </SOAP-ENV:Fault> </SOAP-ENV:Body> </SOAP-ENV:Envelope> 50
51 SOAP sur HTTP Utilise le modèle POST Requête/Réponse Requête Type MIME : text/xml Champs d entête supplémentaire de la requête SOAPAction : URI SOAPAction: " SOAPAction: "myapp.sdl" SOAPAction: "" SOAPAction: Envelope SOAP Réponse Status 2xx : le récepteur a correctement reçu, compris et accepté le message inclus 500 (Internal Server Error): le récepteur n accepte pas le message Envelope SOAP La réponse Le détail des erreurs 51
52 Un exemple d échange POST /path/foo.pl HTTP/1.1 Content-Type: text/xml SOAPAction: interfaceuri#add Content-Length: nnnn <soap:envelope xmlns:soap= uri for soap > <soap:body> <Add xmlns= interfaceuri > <arg1>24</arg1> <arg2>53.2</arg2> </Add> </soap:body> </soap:envelope> 200 OK Content-Type: text/xml Content-Length: nnnn <soap:envelope xmlns:soap= uri for soap > <soap:body> <AddResponse xmlns= interfaceuri > <sum>77.2</sum> </AddResponse> </soap:body> </soap:envelope> 52
53 Types de message SOAP SOAP définit trois types de message Appel (Call) - obligatoire Réponse (Response) - optionnel Erreur (Fault) - optionnel 53
54 Appel simple POST /StockQuote HTTP/1.1 Host: Content-Type: text/xml Content-Length: nnnn SOAPMethodName: Some-Namespace-URI#GetLastTradePrice <SOAP:Envelope xmlns:soap="urn:schemas-xmlsoap-org:soap.v1 > <SOAP:Body> <m:getlasttradeprice xmlns:m="some-namespace-uri > <symbol>dis</symbol> </m:getlasttradeprice> </SOAP:Body> </SOAP:Envelope> 54
55 Réponse HTTP/ OK Content-Type: text/xml Content-Length: nnnn <SOAP:Envelope xmlns:soap="urn:schemas-xmlsoap-org:soap.v1 > <SOAP:Body> <m:getlasttradepriceresponse xmlns:m="some-namespace-uri > <return>34.5</return> </m:getlasttradepriceresponse> </SOAP:Body> </SOAP:Envelope> 55
56 Erreur <SOAP:Envelope xmlns:soap="urn:schemas-xmlsoap-org:soap.v1> <SOAP:Body> <SOAP:Fault> <faultcode>200</faultcode> <faultstring> SOAP Must Understand Error </faultstring> <runcode>1</runcode> </SOAP:Fault> <SOAP:Body> </SOAP:Envelope> 56
57 Autres éléments de SOAP sur HTTP Le type MIME d une requête SOAP est text/xml Toutes les requêtes SOAP doivent pouvoir être reconnues comme telles par un serveur HTTP Utilisation d un entête HTTP spécifique SOAPAction: interfaceuri#methodname Les erreurs HTTP utilisent l infrastructure HTTP Les erreurs SOAP/app utilisent les éléments SOAP PDU Modèle standard pour toutes les erreurs Extensible pour prendre en compte les exceptions Il est possible d utiliser des règles d encodage spécifiques <foo soap:encodingstyle= myuri > Here is some random XML!! </foo> 57
58 Sécurité Basé sur la sécurité dans http HTTPS Certificats X.509 Les Firewalls peuvent filtrer les messages facilement Pas de transfert de code applicatif Uniquement des données Chaque développeur, choisi de rendre visible telle ou telle méthode Les paramètres sont typés lors du transport 58
59 Portée de SOAP SOAP est simple et extensible Il permet de réaliser des appels de méthode sur le Web Indépendant des OS, des modèles objets, des langages Transport des messages par HTTP + XML on the wire Fonctionne avec l infrastructure Internet existante Permet l interopérabilité entre OS, langages et modèles objets Ce n est pas un système réparti à objets Il ne couvre donc pas les fonctions suivantes : Pas de ramassage des miettes Pas de contrôle de types, pas de gestion de version Pas de dialogue entre deux serveurs HTTP Pas de passage d objets par référence Nécessite ramassage des miettes en réparti et HTTP bi-directionnel Pas d activation Nécessite passage d objets par référence 59
60 Autres Extensions Transport SOAP sur SMTP/FTP/POP3/IMAP4/RMI-IIOP Voir implémentation IBM/Apache SOAP sur MOM (JMS) Encodage XMI (UML) Voir implémentation IBM/Apache Litteral XML DOM org.w3c.dom.element sérialisé Voir implémentation IBM/Apache 60
61 Un peu d historique Septembre 1999 : SOAP 0.9 Spécifications par Microsoft et DevelopMentor Décembre 1999 : SOAP 1.0 Soumission des spécifications à l IETF Association de UserLand Mai 2000 : SOAP 1.1 Soumission au W3C Nombreuses associations : IBM, HP, Lotus, Compaq, Intel XIDL : rapprochement de Corba Septembre 2000 Groupe de travail W3C pour la standardisation de SOAP Corba/Soap Interworking RFP => SCOAP 61
62 Implémentation de SOAP On peut installer SOAP dans un ORB Nouveau, Orbix 2000, Voyager, COM On peut installer SOAP dans un serveur Web Apache, ASP/ISAPI, JSP/Servlets/WebSphere On peut construire des composants acceptant des requêtes SOAP Brique de base Canal de communication (channel) sérialisation / dé-sérialisation (serializer) Aiguilleur (dispatcher) 62
63 Implémentations de SOAP See JAXM, JAX-RPC RI Apache SOAP 2.2 Apache AXIS SoapRMI SOAPDirect InstantXML.Net... 63
64 soap implementation techniques Legend UrlConnection Channel libwww Channel WinInet Channel Java [De]serializer Perl [De]serializer C++/COM [De]serializer Servlet Dispatcher ASP Dispatcher ISAPI Dispatcher CGI Dispatcher C++ Java Perl C++/Perl Apache Dispatcher 64
65 Comparaison RMI RPC DCOM CORBA SOAP Qui SUN SUN/OSF MicroSoft OMG W3C Plate-formes Multi Multi Win32 Multi Multi Langages de Programmation Java C, C++, C++, VB, VJ, OPascal, Multi Multi Langages de Définition de Service Java RPCGEN ODL IDL XML Réseau Firewall TCP, HTTP, IIOP customisable TCP, UDP IP/IPX GIOP, IIOP, Pluggable Transport Layer Transaction Non Non MTS OTS, XA Extra Tunneling HTTP Nommage RMI, JNDI,JINI IP+Port IP+Nom Chargement dynamique des classes HTTP Tunneling CORBA Firewall COS Naming COS Trader Services Communs Services Sectoriels RPC,HTTP SNMP HTTP IP+Port, URL Extension applicative dans le header 65
66 Open issues with SOAP Lack of semantic definitions of Business processes Insufficient message transfer functionality that would be required for business transactions Security and Reliability ebxml Message Service complements SOAP Low performance 66
67 SOAP 1.2 Nouvelle spécification pratiquement achevée Basé sur les Infoset indépendant de XML 1.0 Avec les Attachments Codes d erreurs hiérarchiques Nouveaux namespaces 67
68 Les services Web WSDL : Web Services Description Language Merci à Didier Donsez 68
69 WSDL Spécification (09/2000) Ariba, IBM, Microsoft TR W3C v1.1 (25/03/2001) Objectif Décrire les services comme un ensemble d opérations et de messages abstraits relié (bind) à des protocoles et des serveurs réseaux Grammaire XML (schema XML) Modulaire (import d autres documents WSDL et XSD) Séparation entre la partie abstraite et concrète 69
70 WSDL Interface <definitions> <import> <types> <message> Implementation <definitions> <import> <service> <port> <porttype> <binding> 70
71 Éléments d une définition WSDL <types> Contient les définitions de types utilisant un système de typage (comme XSD). <message> Décrit les noms et types d un ensemble de champs à transmettre Paramètres d une invocation, valeur du retour, <porttype> Décrit un ensemble d opérations. Chaque opération a zéro ou un message en entrée, zéro ou plusieurs message de sortie ou de fautes <binding> <port> Spécifie une liaison d un <porttype> à un protocole concret (SOAP1.1, HTTP1.1, MIME, ). Un <porttype> peut avoir plusieurs liaisons! Spécifie un point d entrée (endpoint) comme la combinaison d un <binding> et d une adresse réseau. <service> Une collection de points d entrée (endpoint) relatifs. 71
72 Élément <types> Contient les définition de types utilisant un système de typage (comme XSD). Exemple <!-- type defs --> <types> <xsd:schema targetnamespace="urn:xml-soap-address-demo" xmlns:xsd=" <xsd:complextype name="phone"> <xsd:element name="areacode" type="xsd:int"/> <xsd:element name="exchange" type="xsd:string"/> <xsd:element name="number" type="xsd:string"/> </xsd:complextype> <xsd:complextype name="address"> <xsd:element name="streetnum" type="xsd:int"/> <xsd:element name="streetname" type="xsd:string"/> <xsd:element name="city" type="xsd:string"/> <xsd:element name="state" type="xsd:string"/> <xsd:element name="zip" type="xsd:int"/> <xsd:element name="phonenumber" type="typens:phone"/> </xsd:complextype> </xsd:schema> </types> 72
73 Élément <message> Décrit les noms et types d un ensemble de champs à transmettre Paramètres d une invocation, valeur du retour, Exemple <!-- message declns --> <message name="addentryrequest"> <part name="name" type="xsd:string"/> <part name="address" type="typens:address"/> </message> <message name="getaddressfromnamerequest"> <part name="name" type="xsd:string"/> </message> <message name="getaddressfromnameresponse"> <part name="address" type="typens:address"/> </message> 73
74 Élément <porttype> Décrit un ensemble d opérations. Plusieurs types d opérations One-way Le point d entrée reçoit un message (<input>). Request-response Le point d entrée reçoit un message (<input>) et retourne un message corrélé (<output>) ou un ou plusieurs messages de faute (<fault>). Solicit-response Le point d entrée envoie un message (<output>) et recoit un message corrélé (<input>) ou un ou plusieurs messages de faute (<fault>). Binding HTTP : 2 requêtes HTTP par exemple Notification Le point d entrée envoie un message de notification (<output>) Paramètres Les champs des messages constituent les paramètres (in,out, inout) des opérations 74
75 Élément <porttype> Exemple <!-- port type declns --> <porttype name="addressbook"> <! One way operation --> <operation name="addentry"> <input message="addentryrequest"/> </operation> <! Request-Response operation --> <operation name="getaddressfromname"> <input message="getaddressfromnamerequest"/> <output message="getaddressfromnameresponse"/> </operation> </porttype> 75
76 Élément <binding> Exemple de binding sur SOAP et HTTP <!-- binding declns --> <binding name="addressbooksoapbinding" type="addressbook"> <soap:binding style="rpc" transport=" <operation name="addentry"> <soap:operation soapaction=""/> <input> <soap:body use="encoded" namespace="urn:addressfetcher2" encodingstyle=" </input> <output> <soap:body use="encoded" namespace="urn:addressfetcher2" encodingstyle=" </output> </operation> <operation name="getaddressfromname"> <soap:operation soapaction=""/> <input> <soap:body use="encoded" namespace="urn:addressfetcher2" encodingstyle=" </input> <output> <soap:body use="encoded" namespace="urn:addressfetcher2" encodingstyle=" </operation> </binding> 76
77 Élément <binding> Exemple de binding avec SOAP et SMTP <definitions...> <types> <schema targetnamespace=" xmlns=" <element name="subscribetoquotes"> <complextype><all><element name="tickersymbol" type="string"/></all></complextype></element> <element name="subscriptionheader" type="urireference"/> </schema> </types> <message name="subscribetoquotes"> <part name="body" element="xsd1:subscribetoquotes"/> <part name="subscribeheader" element="xsd1:subscriptionheader"/> </message> <porttype name="stockquoteporttype"> <operation name="subscribetoquotes"> <input message="tns:subscribetoquotes"/> </operation> </porttype> 77
78 Élément <binding> <binding name="stockquotesoap" type="tns:stockquoteporttype"> <soap:binding style="document" transport=" <operation name="subscribetoquotes"> <input message="tns:subscribetoquotes"> <soap:body parts="body" use="literal"/> <soap:header message="tns:subscribetoquotes" part="subscribeheader" use="literal"/> </input> </operation> </binding> <service name="stockquoteservice"> <port name="stockquoteport" binding="tns:stockquotesoap"> <soap:address </port> </service> </definitions> 78
79 Élément <service> Une collection de points d entrée (endpoint) relatifs Exemple : <?xml version="1.0"?> <definitions name="urn:addressfetcher" targetnamespace="urn:addressfetcher2" xmlns:typens="urn:xml-soap-address-demo" xmlns:xsd=" xmlns:soap=" xmlns=" <!-- service decln --> <service name="addressbookservice"> <port name="addressbook" binding="addressbooksoapbinding"> <soap:address location=" </port> </service> </definitions> 79
80 Open allows for other namespaces and thus highly extensible Ability to import other schemas & WSDL Provides recipe for Web Services Provides both interface and implementation details WSDL Allows for separation of the two 80
81 Outils Générateur WSDL à partir de déploiement SOAP ou EJB, Générateur de proxy SOAP à partir de WSDL Toolkits (Wsdl2Java / Java2Wsdl, ) Propriétaires (non normalisés) 81
82 Génération WSDL 82
83 Les services Web UDDI : Universal Description, Discovery and Integration 83
84 UDDI Spécification (09/2000) Ariba, IBM, Microsoft +260 autres sociétés Objectifs annuaire mondial d'entreprises pour permettre d'automatiser les communications entre prestataires, clients, etc. plusieurs entrées indexées : nom, carte d'identité des sociétés, description des produits, services applicatifs invocables à distance (références des connexions) Indexation des catalogues propriétaires (ebxml, RosettaNet, Ariba, Commerce One, etc.) Grammaire XML (schéma XML) Soumission/interrogation basées sur SOAP et WSDL 84
85 UDDI Worldwide directory of companies, services, products... White pages,yellow pages,green pages Green pages Namespace to describe how to use the service, etc... Identifier of who published the service Unique identifier (tmodelkey) of this service for registration Accessing web services Bindings declared in directory entries: for example, (tmodelkey, URL) associations UDDI directories, search engines xmethods.net, soapware.org, salcentral.com, soap-wrc.com, 85
86 White, yellow and green pages «White pages» address, contact, and known identifiers «Yellow pages» industrial categorizations Industry: NAICS (Industry codes - US Govt.) Product/Services: UN/SPSC (ECMA) Location: Geographical taxonomy «Green pages» technical information about services 86
87 UDDI : The vision Advanced Discovery via Portals and Marketplaces Marketplace Marketplace Marketplace UDDI Registries and Protocol Search Portal Search Portal Business Users Technical Users 87
88 UDDI Information Model Provider: Information about the entity who offers a service tmodel: Descriptions of specifications for services. 0 n Service: Descriptive information about a particular family of technical offerings 0 n Binding: Technical information about a service entry point and construction specs 1 n Bindings contain references to tmodels. These references designate the interface specifications for a service. 88
89 UDDI Schema Interface Implementation <businessentity> <businessservice> <tmodel> <bindingtemplate> <businessservice> <tmodel> <bindingtemplate> 89
90 How UDDI Works: tmodel tmodel = Technology Model Generic meta-data structure to uniquely represent any concept or construct Also includes interface protocol definitions Powerful abstraction modeling system Examples: WSDL files, XML schema, namespaces, categorization schemes 90
91 UDDI : <tmodel> <tmodel> represents meta-data and interfaces <tmodel xmlns="urn:uddi-org:api" tmodelkey="uuid:aaaaaaaa-aaaa- AAAA-AAAA-AAAAAAAAAAAA"> <name>microsoft-com:creditcheck</name> <description xml:lang="en">check credit limits</description> <overviewdoc> <overviewurl> </overviewurl> </overviewdoc> <categorybag> <keyedreference tmodelkey="uuid:cd a-4237-b336-6bdcbdcc6634" keyname="consumer credit gathering or reporting services" keyvalue=" "/> <keyedreference tmodelkey="uuid:c1acf26d d70-39b756e62ab4" keyname="types" keyvalue="wsdlspec"/> </categorybag> </tmodel> 91
92 Providers, Services And Bindings Providers Examples: Accounting Department, Corporate Application Server Name, Description, Contact Information Categorization and Identification Information Services Examples: Purchase Order services, Payroll services Name, Description(s) Categorization Information Bindings Description(s), access points, parameters Examples: Access Point ( for Web Service 92
93 <bindingtemplate> <bindingtemplate> represents data and implementation details <bindingtemplate servicekey="33c3d124- e967-4ab1-8f51-d93d95fac91a" bindingkey="48f2bc6ba6de-4be8-9f2b-2342aeafaaac"> <accesspoint URLType="http"> </accesspoint> <tmodelinstancedetails> <tmodelinstanceinfo tmodelkey="uuid: 64c756d e00-ae83-ee12e38fae63 /> </tmodelinstancedetails> </bindingtemplate> 93
94 Important UDDI Features Neutral in terms of protocols as a registry, it can contain pointers to anything Can search by business, service, Web Service (tmodel), binding Usage of Globally Unique Identifiers (GUIDs) Specification allows public and private nodes Delineation between interface and implementation 94
95 Les services Web Implémentations : Les APIs Java : JAXP, JAX-RPC, JAXM, JAXR, JAXB 95
96 Les APIs Java pour les SW Service Description (WSDL) JSR 110 (Java API for WSDL) JAX-RPC (Java API for XML-based RPC) Service Registration and Discovery (UDDI, ebxml Reg/Rep) JAXR (Java API for XML Registry) Service Invocation (SOAP, ebxml Message Service) JAXM (Java API for XML Messaging), JAX-RPC 96
97 Les APIs Java pour les SW Electronic business framework JAXM with ebxml Message Service (TR&P) profile JAXR with ebxml Registry/Repository JSR-157: Java API for ebxml CPP/CPA J2EE TM Web Services Framework JSR 151: J2EE 1.4 JSR 109: (Enterprise Web services) JAXM, JAX-RPC 97
98 Les APIs Java pour les SW XML document management JAXP (Java API for XML processing) JAXB (Java API for XML data-binding) Security XML Encryption (JSR 106) XML Digital Signature (JSR 105) XML Trust Service (JSR 104) Web services security assertions (JSR 155) 98
99 Les services Web Implémentation avec JAX-RPC From Sun 99
100 JAX-RPC : cycle de développement 1. Service endpoint definition 2. Service endpoint implementation 3. Service endpoint deployment 4. Service description 5. Service publication and discovery 100
101 1. Service Endpoint Definition Specified in Service Definition Interface Could be generated from WSDL document using a tool or Could be written in Java programming language directly No assumption about type of client that would use this service definition interface Exemple : HelloIF.java package hello; import java.rmi.remote; import java.rmi.remoteexception; public interface HelloIF extends Remote { public String sayhello(string s) throws RemoteException; } 101
102 2. Service Implementation Service implementation class is an ordinary Java class Invocation done inside the servlet container JAX-RPC defines Servlet-based Endpoint model Other endpoint models (e.g. stateless session beans) will be defined in J2EE 1.4, JSR 109, EJB 2.1 Optional ServiceLifecycle interface for initialization and destruction callbacks 102
103 Example: Service Implementation HelloImpl.java : package hello; public class HelloImpl implements HelloIF { public String message = new String("Hello "); } public String sayhello(string s) { } return new String(message + s); 103
104 3. Service Deployment Deployed on JAX-RPC runtime system Generates of container specific artifacts (skeleton or tie class) based on the service definition interface Configures one or more protocol bindings for the JAX-RPC service Creates one or more service ports (or endpoints) for this JAX-RPC service 104
105 4. Generate Service Description JAX-RPC service endpoint mapped to WSDL service description WSDL enables export of a JAX-RPC service endpoint across heterogeneous environments JAX-RPC specifies the standard mapping between WSDL and Java: Mapping between service endpoint interface and WSDL definitions Binding to a specific protocol and transport 105
106 5. Service Publication Publish the JAX-RPC service to a registry WSDL document of a service along with meta data 106
107 Simple Client package hello; public class HelloClient { public static void main(string[] args) { try { // Get Stub instance HelloIF_Stub stub = (HelloIF_Stub) (new HelloWorld_Impl().getHelloIF()); // Set endpoint address stub._setproperty(javax.xml.rpc.stub.endpoint_address_property, args[0]); // Make method invocation System.out.println(stub.sayHello("Duke!")); } catch (Exception ex) { ex.printstacktrace(); } 107
108 A few things on this simple client Instead of getting service implementation "HelloWorld_Impl()" object directly, it could get Service interface "HelloIF" object from Service object, which in turn can be obtained from ServiceFactory Instead of using Stub "HelloIF_Stub" for invoking a remote method, it could use Service interface "HelloIF" Service service = ServiceFactory.newInstance().createService(...); HelloIF hello= (HelloIF)service.getPort(HelloIF.class); hello.sayhello(); 108
109 Client: DII Invocation Model ServiceFactory factory = ServiceFactory.newInstance(); Service service = factory.createservice(new QName(qnameService)); QName port = new QName(qnamePort); Call call = service.createcall(); call.setporttypename(port); call.settargetendpointaddress(endpoint); call.setproperty(call.soapaction_use_property, new Boolean(true)); call.setproperty(call.soapaction_uri_property, ""); call.setproperty(encoding_style_property, URI_ENCODING); QName QNAME_TYPE_STRING = new QName(NS_XSD, "string"); call.setreturntype(qname_type_string); call.setoperationname(new QName(BODY_NAMESPACE_VALUE, "sayhello")); call.addparameter("string_1", QNAME_TYPE_STRING, ParameterMode.PARAM_MODE_IN); String[] params = { new String("Duke!") }; String result = (String)call.invoke(params); System.out.println(result); 109
110 Apache SOAP Open-source implementation of the SOAP v1.1 and SOAP Messages with Attachments Not JAXM and JAX-RPC compatible yet Apache SOAP node should interoperate with JAXM node Latest version is v
111 Apache Axis Ground-up re-architecture and implementation of SOAP 1.1 and W3C XMLP (SOAP 1.2) effort Based on configurable chains of message handlers Flexible, Modular, User-extensible SAX-based XML processing Fast Transport framework JAX-RPC compliant ➒➐➀➆➇➄➇ ➇➅➈➎ ➁➏➁➄ ➁ ➁ Axis 1.0 available (7 0ctober 2002) 111
112 L architecture d Axis 112
113 Les services Web Conclusion 113
114 Annuaire UDDI 1 : Je recherche un service WEB Et on boucle la boucle! 2 : J ai trouvé! Voici le serveur hébergeant ce service web 3 : Quel est le format d appel du service que tu proposes? 4 : Voici mon contrat (WSDL) XML Contrat SOAP Client XML Serveur 5 : J ai compris comment invoquer ton service et je t envoie un document XML représentant ma requête XML : J ai exécuté ta requête et je te retourne le résultat
115 Les services Web La 3ème génération du Web Technologies Standards du Web SOAP 1.1 (puis SOAP 1.2) WSDL Technologies non standardisées UDDI, DISCO GXA (Global XML Architecture) WSDD, WSFL, ASMX, 115
116 Références Services Web : Spécifications officielles : Documentations et exemples en ligne : SOAP : Spécification SOAP 1.1 : Spécification SOAP 1.2 : Implémentations : Exemples en ligne : UDDI : Spécification : Serveur UDDI : et Cours : Didier Donsez, Web Services Michel Riveill, SOAP 116
Programmation Web Avancée Introduction aux services Web
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
Les services web. Plan. Définitions et généralités Architecture et technologies au cœur des services web
Plan Les services web Clémentine Nebut [email protected] LIRMM / Université de Montpellier 2 Définitions et généralités Architecture et technologies au cœur des services web SOAP WSDL UDDI Services
Introduction aux «Services Web»
Introduction aux «Services Web» Sana Sellami [email protected] 2014-2015 Modalité de contrôle de connaissances Note de contrôle de continu Note projet Evaluation du projet la semaine du 17 novembre
Cours Master Recherche RI 7 Extraction et Intégration d'information du Web «Services Web»
Cours Master Recherche RI 7 Extraction et Intégration d'information du Web «Services Web» Sana Sellami [email protected] 2014-2015 Plan Partie 1: Introduction aux Services Web (SW) Partie 2: Vers une
Intégration d'applications à "gros grain" Unité d'intégration : le "service" (interface + contrat)
Motivations Motivations Intégration d'applications à "gros grain" Unité d'intégration : le "service" (interface + contrat) Contraintes Applications conçues indépendamment, sans avoir prévu une intégration
Méthodes et Langages du Commerce Electronique
ITCE NFE 102 Année 2013-2014! Méthodes et Langages du Commerce Electronique F.-Y. Villemin ([email protected]) http://dept25.cnam.fr/itce Plan! Besoins du commerce électronique! L EDI! ebxml! Les Web Services!
Introduction à l'architecture L'objectif premier d'un système d'information, quel qu'il soit, est de permettre à plusieurs utilisateurs d'accéder aux mêmes informations : pour cela, il faut donc regrouper
Architecture JEE. Objectifs attendus. Serveurs d applications JEE. Architectures JEE Normes JEE. Systèmes distribués
Architecture JEE. Objectifs attendus Serveurs d applications JEE Systèmes distribués Architectures JEE Normes JEE couches logicielles, n-tiers framework JEE et design patterns 2007/02/28 Eric Hé[email protected]
4. SERVICES WEB REST 46
4. SERVICES WEB REST 46 REST REST acronyme de REpresentational State Transfert Concept introduit en 2000 dans la thèse de Roy FIELDING Est un style d architecture inspiré de l architecture WEB En 2010,
SOAP Concepts Application à Glassfish
SOAP Concepts Application à Glassfish LicencePro 2014 Olivier Perrin Université de Lorraine Évolution From server-side app to smart clients and services 2 Browser-based HTML Rendering (progressive enhancement)
RMI. Remote Method Invocation: permet d'invoquer des méthodes d'objets distants.
RMI Remote Method Invocation: permet d'invoquer des méthodes d'objets distants. Méthode proche de RPC. Outils et classes qui rendent l'implantation d'appels de méthodes d'objets distants aussi simples
COMPRENDRE L ARCHITECTURE DES WEB SERVICES REST. Amosse EDOUARD, Doctorant
COMPRENDRE L ARCHITECTURE DES WEB SERVICES REST Amosse EDOUARD, Doctorant Organisation Cours Magistral 24/11/2014 26/11/2014 01/12/2014 Travaux Dirigés 26/11/2014 28/11/2014 01/11/2014 08/11/2014 Evaluation
Remote Method Invocation (RMI)
Remote Method Invocation (RMI) TP Réseau Université Paul Sabatier Master Informatique 1 ère Année Année 2006/2007 Plan Objectifs et Inconvénients de RMI Fonctionnement Définitions Architecture et principe
BPEL Orchestration de Web Services
Orchestration de Web Services Grégory Le Bonniec [email protected] 26 novembre 2009 1 Zenika Conseil / Développement / Formation Localisation : Paris et Rennes Nos partenaires Mon expérience
WEBSERVICES. Michael Fortier. Master Informatique 2ème année. [email protected] A308, Université de Paris 13
WEBSERVICES Michael Fortier Master Informatique 2ème année [email protected] A308, Université de Paris 13 https ://lipn.univ-paris13.fr/ fortier/enseignement/webservices/ Sommaire 1 Rappels
Les Services Web. Jean-Pierre BORG EFORT http://www.efort.com
Les Services Web Jean-Pierre BORG EFORT http://www.efort.com 1 Introduction Un "Service Web" est une application logicielle à laquelle on peut accéder à distance à partir de différents langages basés sur
XML, PMML, SOAP. Rapport. EPITA SCIA Promo 2004 16 janvier 2003. Julien Lemoine Alexandre Thibault Nicolas Wiest-Million
XML, PMML, SOAP Rapport EPITA SCIA Promo 2004 16 janvier 2003 Julien Lemoine Alexandre Thibault Nicolas Wiest-Million i TABLE DES MATIÈRES Table des matières 1 XML 1 1.1 Présentation de XML.................................
Plan. Department of Informatics
Plan 1. Application Servers 2. Servlets, JSP, JDBC 3. J2EE: Vue d ensemble 4. Distributed Programming 5. Enterprise JavaBeans 6. Enterprise JavaBeans: Special Topics 7. Prise de recul critique Enterprise
Architectures Web Services RESTful
Architectures Web Services RESTful Alexandre Denis [email protected] Inria Bordeaux Sud-Ouest France ENSEIRB PG306 REST REST Representational State Transfer Roy Fielding (2000) Décollage vers 2006-2007
Composants Logiciels. Le modèle de composant de CORBA. Plan
Composants Logiciels Christian Pérez Le modèle de composant de CORBA Année 2010-11 1 Plan Un rapide tour d horizon de CORBA 2 Introduction au modèle de composant de CORBA Définition de composants CORBA
Web Application Models
Web Application Models une nouvelle fonction de VisualAge Pacbase au service des applications WebSphere Jean-François Lévi - Bernard Etienne Maîtriser l'évolution des développements Web d'entreprise avec
Principes. 2A-SI 3 Prog. réseau et systèmes distribués 3. 3 Programmation en CORBA. Programmation en Corba. Stéphane Vialle
2A-SI 3 Prog. réseau et systèmes distribués 3. 3 Programmation en CORBA Stéphane Vialle [email protected] http://www.metz.supelec.fr/~vialle 1 Principes 2 Architecture 3 4 Aperçu d utilisation
Module BD et sites WEB
Module BD et sites WEB Cours 8 Bases de données et Web Anne Doucet [email protected] 1 Le Web Architecture Architectures Web Client/serveur 3-tiers Serveurs d applications Web et BD Couplage HTML-BD
Manuel d intégration API SOAP SMS ALLMYSMS.COM
Manuel d intégration API SOAP SMS ALLMYSMS.COM 26/02/2014 TABLE DES MATIERES OBJECTIF DU DOCUMENT... 3 LE PROTOCOLE SOAP... 3 ENVOI DE REQUETES SOAP A LA PLATEFORME ALLMYSMS.COM... 3 BACKOFFICE SMS...
Institut Supérieur de Gestion. Cours pour 3 ème LFIG. Java Enterprise Edition Introduction Bayoudhi Chaouki
Institut Supérieur de Gestion Cours pour 3 ème LFIG Java Enterprise Edition Introduction Bayoudhi Chaouki 1 Java EE - Objectifs Faciliter le développement de nouvelles applications à base de composants
UNIVERSITÉ DU QUÉBEC EN OUTAOUAIS
UNIVERSITÉ DU QUÉBEC EN OUTAOUAIS SÉCURITÉ DES SERVICES WEB : RESTAURATION D UN MESSAGE SOAP APRÈS DÉTECTION D UNE ATTAQUE PAR ENVELOPPEMENT SUR UN ÉLÉMENT SIGNÉ MÉMOIRE PRÉSENTÉ COMME EXIGENCE PARTIELLE
Architectures n-tiers et déploiement d applications Web
23 / 04 / 2002 Lionel Mestre - Maîtrise Informatique - Programmation Répartie et Architecture n-tiers 2 / 53 Architectures n-tiers et déploiement d applications Plan Les architectures n-tiers pour le Plate-formes
Messagerie asynchrone et Services Web
Article Messagerie asynchrone et Services Web 1 / 10 Messagerie asynchrone et Services Web SOAP, WSDL SONT DES STANDARDS EMERGEANT DES SERVICES WEB, LES IMPLEMENTATIONS DE CEUX-CI SONT ENCORE EN COURS
Le cadre des Web Services Partie 1 : Introduction
Sécurité en ingénierie du Logiciel Le cadre des Web Services Partie 1 : Introduction Alexandre Dulaunoy [email protected] Sécurité en ingénierie du Logiciel p.1/21 Agenda (partie 1) 1/2 Introduction Services
Sommaire. Introduction La technologie ebxml EDI conventionnels versus ebxml Web Services et ebxml Acteurs de l ebxml Conclusion
ebxml Sommaire Introduction La technologie ebxml EDI conventionnels versus ebxml Web Services et ebxml Acteurs de l ebxml Conclusion Introduction Pourquoi L EDI EDI : échange de données informatisé Remplacer
Volet Synchrone pour Client Lourd
Cadre d interopérabilité des SIS Couche Transport Volet Synchrone pour Client Lourd Identification du document Référence Date de création 06/03/09 Date de dernière mise à jour 25/06/09 Rédaction (R) Cadre
Classification : public 1/59
Classification : public 1/59 Documents de référence [1] IHE International : Cadre Technique IT Infrastructure [2] IHE International : Profil Cross-Enterprise User Assertion Attribute Extension (XUA++)
NFP111 Systèmes et Applications Réparties
NFP111 Systèmes et Applications Réparties 1 de 34 NFP111 Systèmes et Applications Réparties Cours 7 - CORBA/Partie 1 Claude Duvallet Université du Havre UFR Sciences et Techniques 25 rue Philippe Lebon
Intergiciel - concepts de base
Intergiciel - concepts de base Ada Diaconescu, Laurent Pautet & Bertrand Dupouy ada.diaconescu _at_ telecom-paristech.fr Rappel : système réparti Système constitué de multiples ressources informatiques
Cedric Dumoulin (C) The Java EE 7 Tutorial http://docs.oracle.com/javaee/7/tutorial/doc/
Cedric Dumoulin (C) The Java EE 7 Tutorial http://docs.oracle.com/javaee/7/tutorial/doc/ Webographie The Java EE 7 Tutorial http://docs.oracle.com/javaee/7/tutorial/doc/ Les slides de cette présentation
Architecture Orientée Service, JSON et API REST
UPMC 3 février 2015 Précedemment, en LI328 Architecture générale du projet Programmation serveur Servlet/TOMCAT Aujourd hui Quelques mots sur les SOA API - REST Le format JSON API - REST et Servlet API
CORBA. (Common Request Broker Architecture)
CORBA (Common Request Broker Architecture) Projet MIAGe Toulouse Groupe 2 1 CORBA, introduction (1/4) Les systèmes répartis permettent de créer des applications basées sur des composants auto-gérables,
Java et les WebServices :
SOAP/kSOAP Conservatoire National des Arts et Métiers Java et les WebServices : SOAP/kSOAP Mr Rajoharison Hans [email protected] http://harisson.free.fr/webservices/ 1 Sommaire Présentation générale : Introduction
Extension SSO Java. Cette note technique décrit la configuration et la mise en œuvre du filtre de custom SSO Java.
Note technique W4 Engine Extension SSO Java Cette note technique décrit la configuration et la mise en œuvre du filtre de custom SSO Java. 1 Présentation 3 2 Custom SSO Java 4 3 Bilan 10 Sommaire Référence
Microsoft Technopoche
Microsoft Technopoche 2/28 Préface Ce document a été écrit par Olivier SCHMITT, ingénieur Support Développement à Microsoft France. Il est destiné aux développeurs désirant se familiariser avec les Services
L3 informatique TP n o 2 : Les applications réseau
L3 informatique TP n o 2 : Les applications réseau Sovanna Tan Septembre 2009 1/20 Sovanna Tan L3 informatique TP n o 2 : Les applications réseau Plan 1 Transfert de fichiers 2 Le Courrier électronique
18 TCP Les protocoles de domaines d applications
18 TCP Les protocoles de domaines d applications Objectifs 18.1 Introduction Connaître les différentes catégories d applications et de protocoles de domaines d applications. Connaître les principaux protocoles
Compte Rendu d intégration d application
ISMA 3EME ANNEE Compte Rendu d intégration d application Compte Rendu Final Maxime ESCOURBIAC Jean-Christophe SEPTIER 19/12/2011 Table des matières Table des matières... 1 Introduction... 3 1. Le SGBD:...
Jean-Philippe VIOLET Solutions Architect
Jean-Philippe VIOLET Solutions Architect IBM Cognos: L' Expertise de la Gestion de la Performance Acquis par IBM en Janvier 08 Rattaché au Brand Information Management Couverture Globale 23,000 clients
Web Services : Beyond the peer-to-peer architecture
Faculté des Sciences Département d Informatique Web Services : Beyond the peer-to-peer architecture Jérémy De Roey Mémoire présenté sous la direction du Professeur Esteban Zimányi et de Ir. François Deliège
Systèmes d'informations historique et mutations
Systèmes d'informations historique et mutations Christophe Turbout SAIC-CERTIC Université de Caen Basse-Normandie Systèmes d'informations : Historique et mutations - Christophe Turbout SAIC-CERTIC UCBN
Application Web et J2EE
Application Web et J2EE Servlet, JSP, Persistence, Méthodologie Pierre Gambarotto Département Informatique et Math appli ENSEEIHT Plan Introduction 1 Introduction Objectfis
L architecture des services Web
Chapitre 1 L architecture des services Web La combinaison des canons esthétiques et idéaux politiques, reflets de leur époque, et de la généralisation de nouveaux matériaux préside souvent au développement
Urbanisme du Système d Information et EAI
Urbanisme du Système d Information et EAI 1 Sommaire Les besoins des entreprises Élément de solution : l urbanisme EAI : des outils au service de l urbanisme 2 Les besoins des entreprises 3 Le constat
Remote Method Invocation en Java (RMI)
Remote Method Invocation en Java (RMI) Modélisation et construction des applications réparties (Module M-4102C) J. Christian Attiogbé Fevrier 2015 J. Christian Attiogbé (Fevrier 2015) Remote Method Invocation
Systèmes répartis. Fabrice Rossi http://apiacoa.org/contact.html. Université Paris-IX Dauphine. Systèmes répartis p.1/49
Systèmes répartis Fabrice Rossi http://apiacoa.org/contact.html. Université Paris-IX Dauphine Systèmes répartis p.1/49 Systèmes répartis Définition très large : un système réparti est système informatique
Sécurité des Web Services (SOAP vs REST)
The OWASP Foundation http://www.owasp.org Sécurité des Web Services (SOAP vs REST) Sylvain Maret Principal Consultant / MARET Consulting / @smaret OpenID Switzerland OWASP Switzerland - Geneva Chapter
Les Web Services. Rapport de TE. Étudiants Cyrielle Lablanche Florens Seine Sébastien Gastaud. Encadrant Hervé Chang
Université de Nice-Sophia Antipolis Licence d Informatique 3 ème année Les Web Services Rapport de TE Étudiants Cyrielle Lablanche Florens Seine Sébastien Gastaud Encadrant Hervé Chang 2004 2005 Table
Java - RMI Remote Method Invocation. Java - RMI
Remote Method Invocation Yann Viémont Université de Versailles St-Quentin Plan 1. Introduction 2. Rappels sur les RPC 3. Le modèle objet de Java-RMI 4. Architecture générale 1. Introduction = Disponible
Conception Exécution Interopérabilité. Déploiement. Conception du service. Définition du SLA. Suivi du service. Réception des mesures
Software propose une offre d intégration unique, qui apporte l équilibre parfait entre investissements et performances pour les entreprises qui doivent sans cesse améliorer leurs processus. Des caractéristiques
Apache Camel. Entreprise Integration Patterns. Raphaël Delaporte BreizhJUG 07.11.2011
Apache Camel & Entreprise Integration Patterns Raphaël Delaporte BreizhJUG 07.11.2011 1 Speaker CTO Zenika Ouest Consultant et formateur Responsable comité technique Architecture d'entreprise Domaine ESB
RMI le langage Java XII-1 JMF
Remote Method Invocation (RMI) XII-1 Introduction RMI est un ensemble de classes permettant de manipuler des objets sur des machines distantes (objets distants) de manière similaire aux objets sur la machine
INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)
CS WEB Ch 1 Introduction I. INTRODUCTION... 1 A. INTERNET INTERCONNEXION DE RESEAUX... 1 B. LE «WEB» LA TOILE, INTERCONNEXION DE SITES WEB... 2 C. L URL : LOCALISER DES RESSOURCES SUR L INTERNET... 2 D.
Intergiciels pour la répartition CORBA : Common Object Request Broker. Patrice Torguet [email protected] Université Paul Sabatier
Intergiciels pour la répartition CORBA : Common Object Request Broker Patrice Torguet [email protected] Université Paul Sabatier Plan du cours 2 Introduction à CORBA Architecture de l ORB Implémentation
HAUTE DISPONIBILITÉ DE MACHINE VIRTUELLE AVEC HYPER-V 2012 R2 PARTIE CONFIGURATION OPENVPN SUR PFSENSE
HAUTE DISPONIBILITÉ DE MACHINE VIRTUELLE AVEC HYPER-V 2012 R2 PARTIE CONFIGURATION OPENVPN SUR PFSENSE Projet de semestre ITI soir 4ème année Résumé configuration OpenVpn sur pfsense 2.1 Etudiant :Tarek
JOnAS 5. Serveur d application d
JOnAS 5 Serveur d application d dynamique Agenda En quelques mots Caractéristiques essentielles Zoom sur le versioning 2 Bull, 2008 Serveur d application dynamique JOnAS - Serveur d application Open Source
Remote Method Invocation Les classes implémentant Serializable
Parallélisme Architecture Eric Goubault Commissariat à l Energie Atomique Saclay Classe qui implémente la méthode distante (serveur): - dont les méthodes renvoient un objet serializable - ou plus généralement
Les Architectures Orientées Services (SOA)
Les Architectures Orientées Services (SOA) Ulrich Duvent Guillaume Ansel Université du Littoral Côte d Opale 50, Rue Ferdinand Buisson BP 699 62228 Calais Cedex Téléphone (33) 03.21.46.36.92 Télécopie
Business Process Execution Language
Business Process Execution Language Rapport du projet de systèmes distribués d information Markus Lindström 6 mai 2009 Motivation personnelle Le sujet que j ai retenu et présenté dans le cadre du cours
Environnements de Développement
Institut Supérieur des Etudes Technologiques de Mahdia Unité d Enseignement: Environnements de Développement BEN ABDELJELIL HASSINE Mouna [email protected] Développement des systèmes d Information Syllabus
2 Chapitre 1 Introduction
1 Introduction Ce livre présente les Enterprise JavaBeans 2.0 et 1.1 qui constituent la troisième et la deuxième version de la spécification des Enterprise JavaBeans. Tout comme la plate-forme Java a révolutionné
Vulgarisation Java EE Java EE, c est quoi?
Paris, le 1 Février 2012 Vulgarisation Java EE Java EE, c est quoi? Sommaire Qu est ce que Java? Types d applications Java Environnements Java Versions de Java Java EE, c est quoi finalement? Standards
Quick Start Guide This guide is intended to get you started with Rational ClearCase or Rational ClearCase MultiSite.
Rational ClearCase or ClearCase MultiSite Version 7.0.1 Quick Start Guide This guide is intended to get you started with Rational ClearCase or Rational ClearCase MultiSite. Product Overview IBM Rational
Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)
Quelques patterns pour la persistance des objets avec DAO Ce cours présente des modèles de conception utilisés pour effectuer la persistance des objets Université de Nice Sophia-Antipolis Version 1.4 30/8/07
Java Naming and Directory Interface
Introduction Java Naming and Directory Interface Gaël Thomas [email protected] Université Pierre et Marie Curie Master Informatique M2 Spécialité SAR Java Naming and Directory Interface (JNDI) Java Standard
SIP. Plan. Introduction Architecture SIP Messages SIP Exemples d établissement de session Enregistrement
SIP Nguyen Thi Mai Trang LIP6/PHARE [email protected] UPMC - M2 Réseaux - UE PTEL 1 Plan Introduction Architecture SIP Messages SIP Exemples d établissement de session Enregistrement UPMC -
Software Engineering and Middleware A Roadmap
Software Engineering and Middleware A Roadmap Ecrit par: Dr. Wolfgang Emmerich Présenté par : Mustapha Boushaba Cours : IFT6251 Wolfgang Emmerich Enseignant à University College London: Distributed Systems
Problématiques de recherche. Figure Research Agenda for service-oriented computing
Problématiques de recherche 90 Figure Research Agenda for service-oriented computing Conférences dans le domaine ICWS (International Conference on Web Services) Web services specifications and enhancements
Java RMI. Arnaud Labourel Courriel: [email protected]. Université de Provence. 8 mars 2011
Java RMI Arnaud Labourel Courriel: [email protected] Université de Provence 8 mars 2011 Arnaud Labourel (Université de Provence) Java RMI 8 mars 2011 1 / 58 Web services Services par le réseau
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
Développement JEE 5 avec Eclipse Europa 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 Groupe Eyrolles, 2008, ISBN : 978-2-212-12061-5 5 Le projet WTP (Web
Outils d'analyse de la sécurité des réseaux. HADJALI Anis VESA Vlad
Outils d'analyse de la sécurité des réseaux HADJALI Anis VESA Vlad Plan Introduction Scanneurs de port Les systèmes de détection d'intrusion (SDI) Les renifleurs (sniffer) Exemples d'utilisation Conclusions
Hébergement de sites Web
Hébergement de Solutions complètes et évolutives pour l hébergement de sites Web dynamiques et de services Web sécurisés. Fonctionnalités Serveur Web Apache hautes performances Apache 1. et.0 1 avec prise
Calcul Parallèle. Cours 5 - JAVA RMI
Calcul Parallèle Cours 5 - JAVA RMI Eric Goubault Commissariat à l Energie Atomique & Chaire Ecole Polytechnique/Thalès Saclay Le 28 février 2012 Eric Goubault 1 28 février 2012 Remote Method Invocation
J2EE - Introduction. Développement web - Java. Plan du chapitre
Développement web - Java J2EE - Introduction Franck Denoël Master 2 ICA, UPMF Année académique 2007-2008 Franck Denoël Master 2 ICA, UPMF Année académique 2007-2008 Plan du chapitre J2EE Présentation J2EE
24/11/2011. Cours EJB/J2EE Copyright Michel Buffa. Plan du cours. EJB : les fondamentaux. Enterprise Java Bean. Enterprise Java Bean.
Plan du cours 2 Introduction générale : fondamentaux : les fondamentaux Michel Buffa ([email protected]), UNSA 2002, modifié par Richard Grin (version 1.1, 21/11/11), avec emprunts aux supports de Maxime
Evaluation Idéopass Cahier d analyse technique
Evaluation Idéopass Cahier d analyse technique Version 1 GMSIH 374, rue de Vaugirard 75015 Paris. Tel : 01 48 56 72 70. Fax : 01 48 56 07 70 Auteur(s) du document : Contrôle Qualité GMSIH Date : 17/03/2005
Supervision et infrastructure - Accès aux applications JAVA. Document FAQ. Page: 1 / 9 Dernière mise à jour: 15/04/12 16:14
Document FAQ Supervision et infrastructure - Accès aux EXP Page: 1 / 9 Table des matières Introduction... 3 Démarrage de la console JMX...4 I.Généralités... 4 II.WebLogic... 5 III.WebSphere... 6 IV.JBoss...
Web Tier : déploiement de servlets
Web Tier : déploiement de servlets 1 / 35 Plan 1 Introduction 2 Servlet : Principe de fonctionnement 3 Création et développement sur un serveur JEE 4 Quelques méthodes de l API des servlets 5 Utilisation
Optimisation des échanges et traitements XML
Optimisation des échanges et traitements XML 20/11/2007 Rachid Khamliche Section Recherches Sommaire XML : un standard incontournable Faiblesses du standard XML Optimisation des échanges XML Optimisation
Urbanisation des SI Conduite du changement IT 20/03/09. Patrick CHAMBET http://www.chambet.com
Urbanisation des SI Conduite du changement IT 20/03/09 Sécuriser ses Web Services Patrick CHAMBET http://www.chambet.com Bouygues Telecom Direction Gouvernance, Outils et Architecture / Sécurité du SI
Conception de serveurs d'applications ouverts
Conception de serveurs d'applications ouverts Stéphane Frénot 3 Un modèle d'exécution standard Application Stéphane Frénot 4 1 Répartition "horizontale" d'une application Application de Présentation Application
Java pour le Web. Cours Java - F. Michel
Java pour le Web Cours Java - F. Michel Introduction à JEE 6 (ex J2EE) Historique Qu'est-ce que JEE JEE : Java Entreprise Edition (ex J2EE) 1. Une technologie outils liés au langage Java + des spécifications
Les nouvelles architectures des SI : Etat de l Art
Les nouvelles architectures des SI : Etat de l Art Objectif Mesurer concrètement les apports des nouvelles applications SI. Être capable d'évaluer l'accroissement de la complexité des applications. Prendre
OPC Factory Server- Réglage des paramètres de communication
OPC Factory Server- Réglage des paramètres de communication EIO0000001731 04/2014 OPC Factory Server- Réglage des paramètres de communication 04/2014 EIO0000001731.01 www.schneider-electric.com Le présent
Valorisez vos actifs logiciels avec Rational Asset Manager. Jean-Michel Athané, Certified IT Specialist IBM Rational Software
Valorisez vos actifs logiciels avec Rational Asset Manager Jean-Michel Athané, Certified IT Specialist IBM Rational Software 13 Qu est-ce qu un actif logiciel (Software Asset)? Un asset est une collection
L intégration d applications unifiée par les Services Web et XML Réconcilier J2EE.NET EIS et mainframes
L intégration d applications unifiée par les Services Web et XML Réconcilier J2EE.NET EIS et mainframes Page 1 Un système d information: vue de 10.000 mètres A C Système de communication AtoA (EAI) ou
Mise en œuvre des serveurs d application
Nancy-Université Mise en œuvre des serveurs d application UE 203d Master 1 IST-IE Printemps 2008 Master 1 IST-IE : Mise en œuvre des serveurs d application 1/54 Ces transparents, ainsi que les énoncés
Applications et Services WEB: Architecture REST
Applications et : Erick Stattner Laboratoire LAMIA Université des Antilles et de la Guyane France [email protected] Guadeloupe 2014-2015 Erick Stattner Applications et : 1 / 90 Description du cours
Architectures web/bases de données
Architectures web/bases de données I - Page web simple : HTML statique Le code HTML est le langage de base pour concevoir des pages destinées à être publiées sur le réseau Internet ou intranet. Ce n'est
Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa www.degenio.com Novembre 2008
Introduction Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa www.degenio.com Novembre 2008 Forms 10g permet l utilisation du JAVA côté client et côté application
27/11/12 Nature. SDK Python et Java pour le développement de services ACCORD Module(s)
Propriétés du Document Source du Document SDK_accords.odt Titre du Document SDK Python et Java pour le développement de services ACCORD Module(s) PyaccordsSDK, JaccordsSDK Responsable Prologue Auteur(s)
