SOA Révision
SOA Révision
SOA Révision
Cours SOA
2011/2012
Cours SOA
2011/2012
Cours SOA
2011/2012
Cours SOA
3L'architecture 3-tiers
L'architecture 3-tiers: une architecture qui spare une application (web) en 3 couches(tiers) :
La couche de prsentation (IHM) : permet l'interaction de (IHM IHM) l'application avec l'utilisateur. Cette couche gre les saisies au clavier, la souris et la prsentation des informations l'cran. La couche traitement (La logique applicative) : dcrivant les travaux raliser par l'application. Ils sont de deux types :
Traitements locaux regroupant les contrles effectus au niveau du locaux, dialogue avec l'IHM, visant le contrle et l'aide la saisie. Traitements globaux constituant l'application elle-mme. Cette couche, globaux, appele (Business Logic) ou couche mtier, contient les rgles internes qui rgissent une entreprise donne.
La couche donnes (accs et stockage de donnes) : regroupant l'ensemble des mcanismes permettant la gestion des informations stockes par l'application.
2011/2012
Cours SOA
3L'architecture 3-tiers
Exemple : application Web rservation d'htel (agence A): Firewall
Requtes http traitement Serveur Web: Apache, Apache IIS(Internet Information Services), etc. +Serveur d'application: Tomcat, Glassfish, Jboss etc. Application: Php Jsp,ASP, Php, HTML, XHTML, CSS, JS, Donnes SGBD : MySql, MySql, PostgreSql; Oracle, Etc.
2011/2012
Cours SOA
3L'architecture 3-tiers
Dans ce modle de dveloppement, on peut seulement changer de l'information: Exemple :
Les documents HTML sont relis par des liens hypertextes Si une agence A veut travailler avec une agence B, les deux elles doivent avoir la mme plateforme (langage de programmation, SGBD) Sinon pour permettre l'interoperabilit, il faut construire une interface de communication!
Problmatique
Les entreprises sont contraintes mieux communiquer avec leurs clients, leurs partenaires, leurs fournisseurs, leurs filiales, pour produire plus vite et moindre cot. Le contexte conomique incite les entreprises aux fusions /acquisitions, lexternalisation de nombreuses activits Les entreprises se trouvent contrainte ouvrir leur SI (systmes d'information) vers les autres systmes qui peuvent tre distants et multi-sites pour garantir leur prennit. Problmatique: Problmatique trs grande divergence dans les SII (systmes d'information Informatique) des entreprises.
2011/2012 Cours SOA 7
2011/2012
Cours SOA
Problmatique
Exemple: fusionner l'Agence A(rservation Htel) + Agence B(rservation de billet d'avion) ???
MySql Requte Rponse Requte Rponse
Comment interagir?
Entreprise A Entreprise B Entreprise C
Entreprise E
Entreprise F Entreprise D
2011/2012
Cours SOA
2 Solutions :
Solution 1. : Tout refaire dans un mme Language de dveloppement ; dans ce cas, l'acquisition de l'agence B n'aurait servi rien! Solution 2. : implmenter l'architecture SOA en se basant sur XML(extensible markup language) et les Web language) Services (2001) comme technologies.
2011/2012 Cours SOA 10
2011/2012
Cours SOA
11
2011/2012
Cours SOA
12
2011/2012
Cours SOA
14
14 sept 2011Introduction SOA, XML 21 sept 2011 XML 28 sept 2011XML 05 oct 2011XML 12 oct 2011 DTD 19 oct 2011 DTD 26 oct 2011 XML schema 02 nov 2011 XML schema 09 nov 2011XML schema 16 nov 2011 DS 23 nov 2011Web services 30 nov 2011Protocole SOAP Cours SOA
15
2011/2012
Cours SOA
16
Partie 2
2011/2012
Cours SOA
17
Web Services?
But:
Permettre linteroprabilit entre des applications diverses.
L'interoprabilit ??
Rfre la capacit d'un systme coexister et cooprer avec d'autres systmes ventuellement htrognes selon un schma ouvert d'interconnexion.
Langages de programmation diffrents, SGBD diffrents, Architectures diffrentes etc.
2011/2012 Cours SOA 19
Caractristiques d'un WS
Un service Web possde les caractristiques suivantes : Il dispose d'une interface publique (ensemble d'oprations) dcrite en XML et se basant sur WSDL Web Service Description Language. chaque Web service est rattach un fichier .WSDL pour le dcrire. Cette description (fonctionnalits, comment l'invoquer et o le trouver?) sont stockes dans un annuaire appel UDDI - Universal Description, Discovery and Integration. Le Web service est accessible via le rseau et est invoqu en utilisant des messages XML, ces messages sont transports par des protocoles Internet (gnralement HTTP, SMTP, FTP,... ) selon SOAP - Simple Object Access Protocol : le Protocole pour la communication entre WS.
2011/2012 Cours SOA 21
L'architecture des SW
Le schma suivant rsume l'architecture sur 1. Dploiement Annuaire laquelle repose les Web Service de Services services: On parle ici de rle et 2. Publication pas de machine car une 3. Dcouverte mme machine peut jouer plusieurs Fournisseur 4. Invocation Client rle. du Service du Service
Service
2011/2012 Cours SOA 22
L'architecture des SW
Le fournisseur de service (service provider) met en application le service Web et le rend disponible sur Internet. Le consommateur du service (service requester) utilise un service Web existant en ouvrant une 2.Dcouverte connexion rseau et en envoyant une demande en XML. Le registre de service (service registry) registry) est un annuaire de services. Le registre fournit un Client endroit central o les programmeurs du Service peuvent publier de nouveaux services ou en trouver.
2011/2012 Cours SOA
Annuaire de Services
1.Publication
3. Invocation
23
Les interactions entre ces 3 acteurs suivent plusieurs tapes : publication: La publication le fournisseur diffuse les descriptions de ses SW dans l'annuaire. La dcouverte : le client cherche un WS particulier, il s'adresse un annuaire qui va lui fournir les descriptions des SW demands afin de lui permettre de les invoquer. L'invocation : une fois que le client rcupre la description du service, il les utilise pour l'invoquer auprs du fournisseur de services.
L'architecture des SW
Annuaire UDDI De Web Services
3. Dcouverte
(SOAP)
Description
1. Publication
(SOAP)
Fournisseur de Web Services Web Service
Description
4. Invocation
(SOAP)
Application
WSDL
24
2011/2012 Cours SOA 24
Le scenario complet
tape 1 : dfinition, description du service
On doit dcrire d'un point de vue informatique ce que fait le service, la solution qu'il propose, ... La dfinition est faite en WSDL au sein du fournisseur de services (i.e. le serveur d'applications)
2011/2012
Cours SOA
25
Le scenario complet
tape 3 : recherche du service
Le client se connecte, sur un annuaire (UDDI) pour effectuer une recherche de service.
Le scenario complet
tape 5 : mise en uvre du service
Le client peut invoquer le service suivant les conditions inscrites au sein de l'annuaire lors de la publication du service web (tape 2)
tape 6 : composition
C'est la possibilit de combiner plusieurs services. En fait, un service peut devenir le client d'un autre service.
2011/2012 Cours SOA 27
2011/2012
Cours SOA
29
Exemple
2011/2012
Cours SOA
30
2011/2012
Cours SOA
31
2011/2012
Cours SOA
32
2011/2012
Cours SOA
33
34
Le Protocole SOAP
2011/2012
Cours SOA
SOAP
SOAP est un protocole de communication entre application bas sur le langage XML Objectifs viss:
Assurer la communication entre applications dune mme entreprise (intranet) Assurer les changes interentreprises entre applications et services (Web) Il permet d'appeler une mthode et d'envoyer des messages aux machines distantes via HTTP le plus souvent, mais peut galement se faire par un autre protocole, comme SMTP
Recommandation du W3C
But : changer des informations structures dans un environnement dcentralis et distribu. SOAP 1.1 : http://www.w3.org/TR/2000/NOTE-SOAP-20000508/ SOAP 1.2 : http://www.w3.org/TR/soap12/
2011/2012 Cours SOA 35
SOAP
Qui est derrire? Initiative conjointe de Microsoft et IBM,
1.1, SOAP 1.1 W3C note soumise en mai 2000, SOAP 1.2, recommandation du W3C, juin 2003, 1.2 Initialement SOAP dsignait lacronyme de Simple Object Access Protocol SOAP n'est plus un acronyme depuis la version 1.2. La notion d'objet (spcifie dans Simple Object Access Protocol) Protocol devient donc obsolte. Les deux plus fortes fonctionnalits de SOAP sont sa simplicit et le fait que tout le monde a accept de l'utiliser.
2011/2012 Cours SOA 36
Rles de SOAP
Rles :
SOAP permet des mthodes (dun code source) de toute nature sur nimporte quelle plateforme, dans nimporte quel langage de communiquer. lheure actuelle, la spcification SOAP a t mis en uvre dans plus de 60 langages sur plus de 20 plateformes.
2011/2012
Cours SOA
37
Fonctionnement de SOAP
Un message SOAP est envoy d'un expditeur (client) un destinataire (serveur), directement ou via des intermdiaires.
Fonctionnement ct Client (simplifi)
Ouverture d'une connexion HTTP et envoie d'une requte Requte SOAP est un document XML dcrivant :
une mthode invoquer sur une machine distante Les paramtres de la mthode
Exemple
2011/2012
Cours SOA
39
2011/2012
Cours SOA
40
2011/2012
Cours SOA
41
2011/2012
Cours SOA
42
<?xml encoding="utf="utf <?xml version="1.0" encoding="utf -8"?> xmlns:xsi="http://www.w3.org/2001/XMLSchema ="http://www.w3.org/2001/XMLSchema<soap:Envelope xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body soap:Body> xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> < soap:Body> xmlns="http://www.webserviceX.NET"> <GetCountryByCurrencyCode xmlns="http://www.webserviceX.NET"> CurrencyCode>TND</CurrencyCode> </GetCountryByCurrencyCode >TND</CurrencyCode GetCountryByCurrencyCode> <CurrencyCode>TND</CurrencyCode> </GetCountryByCurrencyCode> </soap:Body </soap:Envelope soap:Body> soap:Envelope> </soap:Body> </soap:Envelope>
Peuvent tre adresses certains intermdiaires Leur traitement peut tre marqus comme obligatoire
Comme les messages SOAP ne peuvent pas tre envoys en lots, l'enveloppe contient un seul message.
2011/2012 Cours SOA 44
Corps qui contient les appels de mthodes (en XML) Gestion des erreurs
SOAP Fault
2011/2012
Cours SOA
45
SOAP envelope
Rgles de syntaxe - Un message SOAP :
DOIT tre codes en utilisant le langage XML La spcification impose que les balises, les sous balises ainsi que tous les attributs contenus dans l'enveloppe SOAP doivent explicitement associs un namespace, de manire supprimer toute ambigut. Ces namespaces doivent tre dfinis correctement. NE DOIT PAS contenir ni une rfrence DTD ni des instructions de traitement XML. Toutes les balises XML associes SOAP doivent avoir :
Le prfixe soap: ou soap-env pour SOAP 1.1. Le prfixe env pour SOAP 1.2.
2011/2012 Cours SOA 46
SOAP envelope
SOAP envelope (enveloppe) :
C'est l'lment de racine du message SOAP. L'enveloppe SOAP sert de conteneur aux autres lments du message SOAP, elle est dfinie au dbut par la balise <soap:Envelope> et se termine par la balise </soap:Envelope> . Le prologue XML contient seulement une dclaration XML <?xml version="1.0" encoding="UTF-8" ?> spcifiant la version de XML et lencodage des caractres du message XML. Syntaxe: <?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding" ="http://schemas.xmlsoap.org/soap/encoding"> soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding"> </soap:Envelope soap:Envelope> </soap:Envelope>
2011/2012 Cours SOA 47
SOAP envelope
<?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding" ="http://schemas.xmlsoap.org/soap/encoding"> soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding"> </soap:Envelope soap:Envelope> </soap:Envelope> Par convention, la spcification SOAP dfinit plusieurs namespaces :
soap-env: ou soap: comme prfixe associ l'URI http://schemas.xmlsoap.org/soap/envelope/ pour dfinir le namespace de l'enveloppe dans la version 1.1. env: comme prfixe associ l'URI http://www.w3.org/2003/05/soap-envelope/ pour dfinir le namespace de l'enveloppe dans la version 1.2. L'attribut encodingStyle associ l'URI http://www.w3.org/2001/12/soap-encoding pour la dfinition des formats de types de donnes.
2011/2012 Cours SOA 48
La spcification SOAP n'indique pas comment ajouter ce type d'information dans l'entte.
2011/2012 Cours SOA 49
L'entte SOAP
L'en-tte d'un message SOAP commence avec la balise <soap:Header> et se termine avec la balise </soap:Header>,
Note : on peut aussi trouver: <soap-env:Header></soap-env:Header>.
Note : En labsence de cet attribut, llment fils est destination du destinataire final du message SOAP.
2011/2012 Cours SOA
soap:actor : cet attribut identifie le destinataire de llment fils. Comme un message SOAP peut traverser plusieurs composants avant datteindre le destinataire final du message, il peut tre ncessaire dadresser des informations aux composants intermdiaires qui composent le chemin vers le destinataire final. Cest par lintermdiaire de cet attribut que cela est rendu possible, en lui donnant comme valeur une URL qui correspond ou aux destinataires de llment.
50
SOAP body
Le corps SOAP <soap:Body> est un lment obligatoire dans le message SOAP.
Il contient l'information destine au receveur.
Le contenu du corps SOAP est utilis pour spcifier un appel de mthode un ordinateur distant avec les valeurs de paramtres.
Par exemple, la demande du solde d'un compte bancaire.
Le corps du message SOAP commence avec la balise <soap:Body> et se termine avec la balise </soap:Body>.
2011/2012 Cours SOA 51
SOAP body
Exemple : L'extrait suivant reprsente un corps SOAP qui fait appel une mthode appele checkAccountBalance():
<soap:Body> <checkAccountBalance> <accountNumber xsi:type="xsd:int">1234567890</accountNumber> </checkAccountBalance> </soap:Body>
L'lment <checkAccountBalance> fournit le nom de la mthode appeler : checkAccountBalance. L'lment accountNumber est un paramtre qui est pass dans la mthode checkAccountBalance. Les attributs xsi et xsd dfinissent les espaces de noms qui vont tre utiliss dans le corps du message.
La dfinition de xsi permet d'utiliser xsi:type dans le corps du message, le xsd:int signifie que cette valeur est de type entier. 1234567890 est la valeur donne au paramtre.
2011/2012 Cours SOA 54
Body: Syntaxe
La partie Body encapsule un unique tag de mthode qui porte le nom de la mthode elle-mme:
<ns1:maMethode ... > ou <ns1:maMethodeReponse ... > (le mme nom suivi du mot Response dans le cas du message de rponse). Exp: Mthode GetPrice() lment <m:GetPrice> dans la requte et <m:GetPriceResponse> dans la rponse.
Le tag de la mthode reoit typiquement le namespace correspondant au nom du WS, pour assurer lunicit.
Exp: <m: m:GetPrice>, <m: , m:GetPriceResponse> ont le namespace m. m: m:
Le tag de mthode encapsule son tour un certain nombre de paramtres, tel que le tag <param1 ... > dans lenveloppe dune requte. En prsence de plusieurs paramtres, leur ordre d'apparition n'a pas d'importance. Dans le message de rponse, on ne trouve quun seul tag de paramtre reprsentant la valeur de retour de la mthode (gnralement appel <return>).
2011/2012 Cours SOA 55
2011/2012
Cours SOA
57
SOAP Fault
Requte/rponse HTTP
2011/2012 Cours SOA 59
POST /country.asmx HTTP/1.1 Host: www.webservicex.net Contentcharset=utf =utfContent-Type: text/xml; charset=utf- 8 ContentContent-Length: 539 SOAPAction: SOAPAction: "http://www.webserviceX.NET/GetCurrencyByCountry"
<?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance xmlns:xsd=http://www.w3.org/2001/XMLSchema xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <GetCurrencyByCountry xmlns="http://www.webserviceX.NET"> CountryName>Tunisia</CountryName> >Tunisia</CountryName <CountryName>Tunisia</CountryName> </GetCurrencyByCountry> </soap:Body> </soap:Envelope>
2011/2012
Cours SOA
60
Mthode de type POST (Envoi de donnes au service situ l'URL spcifie) Content-Type : renseigne sur le type MIME de lentit transporte, doit Contenttre obligatoirement text/xml, pour un message SOAP. cette valeur suit lattribut charset (encoding). SOAPAction : SOAP introduit dans len-tte HTTP POST le nouveau champ de requte SOAPAction, pour indiquer le but du message SOAP.
La spcification SOAP 1.1 prcise que ce champ est obligatoire dans une requte HTTP vhiculant un message SOAP. soit contient un URL(qui peut tre aussi une chane de caractres vide) ; soit ne contient aucune valeur (mais le champ est prsent quand mme).
2011/2012
Cours SOA
61
2011/2012
Cours SOA
62
La rponse HTTP vhicule les codes de retour HTTP. Dans la liaison SOAP/HTTP, les codes 2xx indiquent que le message SOAP a t reu. Si code 500, message en erreur, le corps SOAP doit contenir l'lment <fault>.
2011/2012
Cours SOA
63
Quelques plateformes
Apache Axis (open-source) Sun metro/ Glassfish Microsoft .Net IBM WebSphere Oracle application Server NuSOAP (PhP) Voir http://www.Soapware.org pour une liste exhaustive
2011/2012 Cours SOA 64
65
2011/2012
Cours SOA
La majorit des langages de programmation orients Web supportent le dveloppement de services Web
Java, PHP, C#, C++,
2011/2012 Cours SOA 66
2011/2012
Cours SOA
67
BottomApproche Bottom-up
La librairie Nusoap est un ensemble de classes Php qui permettent la cration et la consommation de WS bass sur SOAP 1.1, WSDL 1.1 et HTTP 1.0/1.1 La librairie NUSOAP est sous license GNU en PHP4. Elle a t dveloppe par NuSphere et Dietrich Ayala.
Tlchargement de Nusoap (NuSOAP SOAP Toolkit for PHP) :nusoap-0.9.5.zip
http://sourceforge.net/projects/nusoap/
Extraire le dossier compress dans le dossier www de votre serveur WAMP Renommer le dossier compress ; nusoap Une fois la librairie tlcharge, et place dans un sous rpertoire o va se trouver votre fichier webservice, nous allons pouvoir commencer a voir comment crer votre web service.
2011/2012 Cours SOA 68
topLapproche top-down
Initialement, on a :
Un script .php (une fonction par exemple)
prparer:
Web service: webservice.php Application cliente: Client.php .WSDL: il est gnr automatiquement par Nusoap
Client du Web Service Application Cliente HelloYouClient.php Requte Fournisseur de Web Service Web Service HelloYouWS.php
Description
(SOAP) rponse
Application: HelloYou.php
HelloYou.WSDL
2011/2012 Cours SOA 69
2011/2012
Cours SOA
70
Votre web service est cre, il vous faut maintenant ajouter des mthodes, et le faire communiquer avec les diffrents clients.
2011/2012 Cours SOA 71
bottomSyntaxe: Cration des lapproche bottom-up : cration du Web service partir d'une fonction php
//on enregistre la mthode grce register $server->register('nomfonction', //nom de la mthode array('parametre'=>'xsd:string'), //entre(s) et type(s) array('retour'=>'xsd:string'), //valeur de retour et type 'Namespace'); //espace de nommage // Rendre le serveur accessible
$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : ''; $server->service($HTTP_RAW_POST_DATA); ?>
2011/2012 Cours SOA 72
Exemple
Exemple : l'approche bottom-up pour crer un web service contenant la fonction suivante hello.php qui prend en argument une chaine de caractres et qui la renvoie:
<php? function hello($name) { $retour='Hello, ' . $name; return $retour; }?>
hello.php
tape 1: Dvelopper le web service (webservice.php) qui contient la fonction hello.php. tape 2: Dployer le WS dans le serveur d'application ( l'enregistrer dans le dossier WWW de WAMP Server) tape 3: Dvelopper un client (client.php) qui l'appellera.
2011/2012 Cours SOA 73
Ajouter la fonction hello qui prend en argument une chaine de caractres et qui la renvoie:
function hello($name) { $retour='Hello, ' . $name; return $retour ;}
2011/2012 Cours SOA 74
2011/2012
Cours SOA
75
Tout ce que PHP ne peut parser et considrer comme une variable contenue dans la mthode GET ou POST est plac en RAW format(tel qu'il est) dans cette variable super global $HTTP_RAW_POST_DATA . Le XML en fait partie.
2011/2012 Cours SOA 78
Webservice.php
2011/2012
Cours SOA
79
Lorsqu'on lance ce fichier de service (PAS une application application) PAS dans un explorateur web (simplement en tapant son adresse), nous obtenons la page d'en face, gnre automatiquement par la libraire NuSOAP.
2011/2012
Cours SOA
81
2011/2012
Cours SOA
82
Mthode 1: soapUI
2011/2012
Cours SOA
84
2011/2012
Cours SOA
85
Dvelopper une application client.php qui appelle le service fourni par webservice.php.
2011/2012 Cours SOA 86
2011/2012
Cours SOA
87
Appeler la mthode du service web : la mthode hello appel avec Sarah comme valeur du paramtre name:
$result = $client->call('hello', array('name' => 'Sarah'));
2011/2012 Cours SOA 89
91
2011/2012
Cours SOA
92
Consommer un web service dvelopp sous la platforme .NET avec un client PhP.
2011/2012 Cours SOA 93
Application (.NET)
rponse
country.WSDL
94
2011/2012
Cours SOA
96
2011/2012
Cours SOA
97
2011/2012
Cours SOA
98
Crer une instance de la classe client en utilisant le constructeur soapclient: ce constructeur prend comme paramtre obligatoire l'URL du fichier WSDL du web service: $wsdl = "http://www.webservicex.net/country.asmx?WSDL "; $client = new soapclient($wsdl, 'wsdl');
2011/2012 Cours SOA 99
2011/2012
Cours SOA
100
2011/2012
Cours SOA
102
103
2011/2012
Cours SOA
104
Clientcountry.php
2011/2012
Cours SOA
105
Request POST /country.asmx HTTP/1.0 Host: www.webservicex.net User-Agent: NuSOAP/0.9.5 (1.123) Content-Type: text/xml; charset=ISO-8859-1 SOAPAction: "http://www.webserviceX.NET/GetCurrencyByCountry" Content-Length: 490 <?xml version="1.0" encoding="ISO-8859-1"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchemainstance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns9659="http://tempuri.org"> Response <SOAP-ENV:Body> <GetCurrencyByCountry xmlns="http://www.webserviceX.NET"> HTTP/1.1 200 OK Cache-Control: private, max-age=0 <CountryName>Japan</CountryName> Content-Length: 858 Content-Type: text/xml; charset=utf-8 Server: Microsoft-IIS/7.0 X-AspNet-Version: 4.0.30319 </GetCurrencyByCountry> X-Powered-By: ASP.NET </SOAP-ENV:Body> Date: Tue, 22 Mar 2011 20:52:45 GMT Connection: close </SOAP-ENV:Envelope> <NewDataSet> <Table> <Name>Japan</Name> <CountryCode>jp</CountryCode> <Currency>Yen</Currency> <CurrencyCode>JPY</CurrencyCode> </Table> <Table> <Name>Japan</Name> <CountryCode>jp</CountryCode> <Currency>Yen</Currency> <CurrencyCode>JPY</CurrencyCode> </Table>Cours SOA </NewDataSet> 106 2011/2012
Outils
Des outils pour construire un document WSDL
Notepad++ (diteur de texte puisquil sagit dXML) Eclipse JavaEE Netbeans Visual Studio (tous les environnements de dveloppement qui manipulent les Web Services)
TP rendre
Partie 1.
Trouvez un Web service qui contient un mot cl de votre choix :
http://webservices.seekda.com Que fait le service Web que vous avez choisi? Donnez la liste des mthodes que fourni ce service Web? Dcrivez chaque mthode qu'il fourni et ses paramtres d'entre/sortie. Copiez le contenu du fichier .wsdl du service Web que vous avez choisi. Testez le service Web sur l'interface du site seekda.com (capture d'cran). Testez le service Web avec l'outil: .Net Web service Studio et donnez le message SOAP ainsi que la rponse SOAP que vous avez reu. Testez le service Web avec l'outil: SOAPUI et donnez le message SOAP ainsi que la rponse SOAP que vous avez reu. Donnez aussi une capture d'cran.
2011/2012
Cours SOA
108
109
Rvision
2011/2012
Cours SOA
<!ELEMENT tutorials (tutorial)+> <!ELEMENT tutorial (name,url)> <!ELEMENT name (#PCDATA)> <!ELEMENT url (#PCDATA)> <!ATTLIST tutorials type CDATA #REQUIRED>
2011/2012
Cours SOA
110
2011/2012
Cours SOA
POST http://www.webservicex.net/WeatherForecast.asmx HTTP/1.1 Accept-Encoding: gzip,deflate Content-Type: text/xml;charset=UTF-8 SOAPAction: "http://www.webservicex.net/GetWeatherByPlaceName" User-Agent: Jakarta Commons-HttpClient/3.1 Host: www.webservicex.net Content-Length: 334 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://www.webservicex.net"> <soapenv:Header/> <soapenv:Body> <web:GetWeatherByPlaceName> <!--Optional:--> <web:PlaceName>Tunis</web:PlaceName> </web:GetWeatherByPlaceName> </soapenv:Body> </soapenv:Envelope>
2011/2012 Cours SOA 112
HTTP/1.1 200 OK Cache-Control: private, max-age=0 Content-Type: text/xml; charset=utf-8 Content-Encoding: gzip Vary: Accept-Encoding Server: Microsoft-IIS/7.0 X-AspNet-Version: 4.0.30319 X-Powered-By: ASP.NET Date: Wed, 04 Jan 2012 07:25:26 GMT Content-Length: 360 <?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><GetWeatherByPlaceNameRe sponse xmlns="http://www.webservicex.net"><GetWeatherByPlaceNameResult><Latitude>0</Lat itude><Longitude>0</Longitude><AllocationFactor>0</AllocationFactor></GetWeather ByPlaceNameResult></GetWeatherByPlaceNameResponse></soap:Body></soap:Envelope>
2011/2012
Cours SOA
113
<soap:Envelope <soap:Header> </soap:Header> <soap:Body> <soap:Fault> faultcode> </faultcode <faultcode>soap:Server</faultcode> </faultcode> <faultstring>Impossible de router le message.</faultstring> <faultactor>http://www.exemple.com/messageDispatcher</faulta ctor> <detail> <m:error xmlns:m="http://www.exemple.com/errors"> E_NO_ROUTE </m:error> </detail> </soap:Fault> </soap:Body> </soap:Envelope>
2011/2012
Cours SOA
114