Java et les WebServices :

Dimension: px
Commencer à balayer dès la page:

Download "Java et les WebServices :"

Transcription

1 SOAP/kSOAP Conservatoire National des Arts et Métiers Java et les WebServices : SOAP/kSOAP Mr Rajoharison Hans 1

2 Sommaire Présentation générale : Introduction et Historique SOAP WSDL UDDI Conclusion,présentation des outils existants en Java Démos (clients SOAP) ksoap ou SOAP pour les systèmes embarqués : Présentation et principe de fonctionnement de ksoap Présentation de Brazil ksoap server (+Demos) : Sur la Tini J2SE avec les Javacard 2

3 Présentation générale : Introduction Communication de deux sous-systèmes d'architectures semblables ou différentes de manière standard dans le but d'échanger des services ou des traitements applicatifs Passage vers une société de services WebServices (au sens SOAP) : moyen de distribuer un service de manière standard en utilisant XML Webservices (W3C) : SOAP,WSDL,XML,UDDI Microsoft : ORPC pour DCOM OMG : IIOP pour Corba Sun Microsystems : JRMP (Java Remote Method Protocol) 3

4 Présentation générale : historique Historique de SOAP : Septembre 1999 : SOAP 0.99 : spécifications par Microsoft,DevelopMentor,UserLand Novembre/Decembre 1999 : SOAP 1.0 : soumission des spécifications à l'ietf Avril/Mai 2000 : SOAP 1.1 : soumission au W3C nombreuses associations/partenariats : IBM,HP,Lotus,Compaq,Intel (XIDL : rapprochement avec Corba Septembre 2000 : création d'un groupe de travail W3C pour la standardisation de SOAP Septembre 2000-mai 2002 : SOAP 1.2 (refonte de SOAP 1.1) Mai 2003 : SOAP 1.2 devient une recommandation W3C 4

5 Présentation générale : SOAP SOAP (Simple Object Access Protocol) : Protocole d'invocation de méthodes sur des services distants Protocole de transmission asynchrones de messages Ensemble de règles pour la structuration des messages Utiliser pour exécuter des dialogues requête-réponse (type RPC) N'est pas lié à un protocole de transport : HTTP/HTTPs (le plus utilisé) SMTP (SOAP par ) MOM (JMS Java Messaging Service) etc N'est pas lié à un système d'exploitation ou à un langage de programmation 5

6 Présentation générale : messages SOAP Un message SOAP est un document xml valide,il doit utiliser une enveloppe SOAP et des espaces de nommage(namespaces) d'encodage SOAP Il doit suivre les regles suivantes : Une déclaration XML (qui est optionnelle) Une enveloppe SOAP constitué de : - en-tête SOAP (SOAP-Header qui est optionelle) - un corps SOAP (SOAP-Body) Arbre de message soap : 6

7 Présentation générale : messages SOAP Structure classique : 7

8 Présentation générale : messages SOAP Structure avec faute : 8

9 Présentation générale : messages SOAP Structure avec attachement : 9

10 Présentation générale : messages SOAP Exemple de requête SOAP : 1.Une méthode : int doubleaninteger(int numbertodouble) 2.Une requête SOAP : une entête xml (optionnelle): <?xml version="1.0" encoding="utf-8" standalone="no"?> Une enveloppe SOAP (sans SOAP-Header) : <SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/ xmlns:soap-enc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/1999/xmlschema-instance" xmlns:xsd="http://www.w3.org/1999/xmlschema"> 10

11 Présentation générale : messages SOAP Le body de l'enveloppe : <SOAP-ENV:Body> <ns1:doubleanintegerresponse xmlns:ns1="urn:mysoapservices" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <return xsi:type="xsd:int">246</return> </ns1:doubleanintegerresponse> </SOAP-ENV:Body> Fermeture de l'enveloppe </SOAP-ENV:Envelope> Exemple de SOAP-Body avec attachement (exemple methode String demandeinfoclient : <SOAP-ENV:Body> <ns1:demandeinfoclient xmlns:ns1="urn:infoownerservice" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> 11

12 Présentation générale : messages SOAP <Formulaire <Photo </ns1:doubleanintegerresponse> </SOAP-ENV:Body> Note : l'entête soap (qui est optionnelle) contient des éléments de type non applicatifs Sessions,Transactions,Authentification,Sécurité (XAML,SAML,etc) Un attribut mustunderstand (nécessaire pour interopérer avec.net ou pour l'utilisation de WebServices Proxy) =0 pour l'application réceptrice =1 l'élément doit être compris de l'application réceptrice 12

13 Présentation générale : messages SOAP La gestion des erreurs avec SOAP : Les erreurs HTTP utilisent l'infrastructure HTTP ( ex : 500) Les erreurs SOAP applicatives : utilisent les éléments SOAP PDU (Protocole Data Unit) Modèles standard pour toutes les erreurs Extensible pour prendre en compte les exceptions Exemple de message SOAP Fault <SOAP:Envelope xmlns:soap="urn:schemas-xmlsoap-org:soap.v1> <SOAP:Body> <SOAP:Fault> <faultcode>200</faultcode> <faultstring> Erreur d'execution </faultstring> <runcode>1</runcode> </SOAP:Fault> </SOAP:Body> </SOAP:Envelope> 13

14 Présentation générale : messages SOAP Sérialisation/désérialisation des données avec le modèle SOAP : 14

15 Présentation générale : messages SOAP Passage d'un objet Java à un objet SOAP : Dépend de l'implémentation du programme utilisée (JAXB pour cette opération est utilisé par exemple pour l'api de Sun) Structuration des données XML : Assuré par un parseur XML 2 modèles : SAX1/SAX2 (Simple Api for XML) DOM (Document object Model) Dans le monde Java,il existe un grand nombre de parser XML (liste non exhaustive) : Xerces : parser XML,créé par la fondation Apache JAXP : api Java,crée par SUN Microsystems 15

16 Présentation générale : messages SOAP Picollo XML Java Parser : qui est une petite api supportant les spécifications SAX1,SAX2 et JAXP Exemple de mapping (correspondance entre objet) des objets XML/Java : 16

17 Présentation générale : WSDL WSDL (Web Services Definition Language) Historique : Septembre 2000 : spécifications de WSDL par IBM,Ariba,Microsoft Mars 2001 : v1.1 note du W3C juillet 2002-juin 2003 : v1.2 en cours Format de représentation des interfaces de Service Web en XML Standardise l'envoi d'un ordre à une application distante Spécifie le prototype des services comprenant les signatures des méthodes et les différents types utilisés Equivalent à IDL(Interface definition language,corba) et MIDL (Microsoft,COM) 17

18 Présentation générale : WSDL Structure des fichiers WSDL : Types : Contient les définition 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 Operation : action supportée par le service PortType : Décrit un ensemble d'opérations. Chaque opération a zero ou un message en entrée, zero ou plusieurs message de sortie ou de fautes Binding : Spécifie une liaison d'un <porttype> à un protocole concret (SOAP1.1, HTTP1,MIME,...). Un porttype peut avoir plusieurs liaisons Port : Spécifie un point d'entrée (endpoint) comme la combinaison d'un <binding> et d'une adresse réseau. 18

19 Présentation générale : WSDL Service : Une collection de points d'entrée (endpoint) relatifs. Fichier xml généralement très volumineux,l'utilisation d'outils générant automatiquement est à préconiser (quitte après à le modifier à la main pour qu'il corresponde parfaitement à la description du service : WSDL2Java : crée un fichier.wsdl d'une fichier class Java Java2WSDL : crée les fichiers classes nécessaires àla localisation et au déploiement du service à partir d'un fichier WSDL 19

20 Présentation générale : WSDL Exemple de fichier WSDL (DS1921ProxyService.wsdl,une méthode) : <?xml version="1.0" encoding="utf-8"?> <wsdl:definitions targetnamespace="istr.ksoap4" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="istr.ksoap4" xmlns:intf="istr.ksoap4" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns2="http://adapter.onewire.dalsemi.com" xmlns:tns3="http://onewire.dalsemi.com" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/xmlschema"> <wsdl:types> <schema targetnamespace="istr.ksoap4" xmlns="http://www.w3.org/2001/xmlschema"> <import namespace="http://schemas.xmlsoap.org/soap/encoding/"/> <complextype name="ds1921proxy"> <sequence> <element name="idbutton" nillable="true" type="xsd:string"/> 20

21 Présentation générale : WSDL <element name="description" nillable="true" type="xsd:string"/> <element name="message" nillable="true" type="xsd:string"/> <element name="propertycount" type="xsd:int"/> <element name="temperature" type="xsd:float"/> <element name="timestamp" type="xsd:long"/> </sequence> </complextype> </schema> </wsdl:types> <wsdl:message name="getnexttemperatureresponse"> <wsdl:part name="getnexttemperaturereturn" type="impl:ds1921proxy"/> </wsdl:message> <wsdl:message name="getnexttemperaturerequest"> </wsdl:message> 21

22 Présentation générale : WSDL <wsdl:porttype name="ds1921proxyservice"> <wsdl:operation name="getnexttemperature"> <wsdl:input message="impl:getnexttemperaturerequest" name="getnexttemperaturerequest"/> <wsdl:output message="impl:getnexttemperatureresponse" name="getnexttemperatureresponse"/> </wsdl:operation> </wsdl:porttype> <wsdl:binding name="ds1921proxyservicesoapbinding" type="impl:ds1921proxyservice"> <wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/> <wsdl:operation name="getnexttemperature"> <wsdlsoap:operation soapaction=""/> 22

23 Présentation générale : WSDL <wsdl:input name="getnexttemperaturerequest"> <wsdlsoap:body encodingstyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="istr.ksoap4" use="encoded"/> </wsdl:input> <wsdl:output name="getnexttemperatureresponse"> <wsdlsoap:body encodingstyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="istr.ksoap4" use="encoded"/> </wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:service name="ds1921proxyservice"> <wsdl:port binding="impl:ds1921proxyservicesoapbinding" name="ds1921proxyservice"> <wsdlsoap:address location="http:// :8080/ds1921proxyservice/?service=ds1921proxyservice"/> 23

24 Présentation générale : WSDL </wsdl:port> </wsdl:service></wsdl:definitions> Fichier d'origine (source DS1921ProxyService.java) : package istr.ksoap4; import com.dalsemi.onewire.adapter.tiniexternaladapter; import com.dalsemi.comm.*; import com.dalsemi.onewire.adapter.onewireioexception; import com.dalsemi.onewire.container.onewirecontainer; import com.dalsemi.onewire.onewireexception; public class DS1921ProxyService { //declaration et initialisation du DS1921 private DS1921 ds1921=null; public DS1921ProxyService() {} 24

25 Présentation générale : WSDL public DS1921Proxy getnexttemperature(){ DS1921Proxy ds1921proxy=new DS1921Proxy(); try { // le code du service } } Structure générale d'un document wsdl : 25

26 Présentation générale : UDDI UDDI (Universal Description Discovery and Integration) Historique : Septembre 2000 : UDDI V1.0 specifications publiées Juin 2001 : UDDI V2.0 Aout 2003 : UDDI V3.0 Annuaire des WebServices basé lui aussi sur XML Crée par IBM,Ariba et Microsoft Architecture complexe et centralisée Orienté Business to Business Objectif : fournir un annuaire mondial permettant de retrouver des services web sur le même principe que les pages jaunes 26

27 Présentation générale : UDDI 27

28 Présentation générale : UDDI Principe de fonctionnement des WebServices Pour expliquer le fonctionnement des WebServices, il convient de distinguer plusieurs étapes : Recherche dans un annuaire UDDI : le client cherche un service particulier, il s adresse à un annuaire qui va lui fournir la liste des prestataires habilités à satisfaire sa demande. L'annuaire UDDI peut être comparé à un moteur de recherche sauf que les documents sont remplacés par des services. Recherche de l'interface du composant à contacter : une fois la réponse reçue (en XML) de l'annuaire, le client va chercher à communiquer via une interface. Cette interface décrite en langage WSDL fournit l'ensemble des services disponibles. Elle offre la possibilité de vérifier que le contrat correspond bien aux besoins demandés. 28

29 Présentation générale : UDDI Invocation du service : le client doit maintenant passer les paramètres attendus par le service et assurer la communication avec le serveur. L' outil utilisé pour cela est le proxy, c'est l'objet qui permet la communication entre le client et le serveur. Il est généré par le client en utilisant l'interface WSDL Note : la recherche et la publication de WebServices dans un annuaire UDDI nécessite une api supplémentaire cliente (exemple : UDDI4J d'ibm) dont les url seront définies par : Inquiry (recherche) :http://nom_site.foo/nom_registry/inquiry Publish (publication) :http://nom_site.foo/nom_registry/publish 29

30 Présentation générale : UDDI Exemple : portail de services : 30

31 Conclusion présentation outils en Java Récaptitulatif : SOAP est le protocole WebServices (SOAP=HTTP+XML) WSDL est l'interface des WebServices UDDI est l'annuaire des WebServices Pour approfondir le sujet : Ajout de BPEL4WS (Business Process Execution Language for WebServices) couche orientée business (OASIS) SAML,XACML,XKMS (la sécurité dans les WebServices) : trois niveaux de sécurité dans la diffusion de message soap : au niveau des WebServices (soap security) : trois systèmes SAML(Security Assertion Markup Language),XACML (extensible Acces Control Markup Language),XKMS(XML Key Management Specification) 31

32 Conclusion présentation outils en Java au niveau de la couche de présentation des données on a deux éléments XML security (XML Sig,XML Enc) au niveau de la couche de transport avec HTTPs : SSL(secure socket layer)/tls(transport Layer Security),S/MIME,PGP 32

33 Conclusion présentation outils en Java Management de l'identification,authentification,autorisation : Projet Liberty Alliance (vs Passport pour Microsoft) :regroupement d'un ensemble d'entreprises (FT R&D,Nokia,American Express...) Outils Java pour développer et déployer des WebServices : Solutions de Sun : Ensemble d'api Java pour le développement de WebServices JAXM (déprécié): Java API for XML messaging (api qui standardise l'envoi et la réception de messages en faisant abstraction des protocoles) JAXP :Java API for XML Processing (support des XML schemas API intégrant DOM,SaX et XSLT). JAX-RPC : Java API for XML RPC interface aux protocoles de transport de message XML de type RPC 33

34 Conclusion présentation outils en Java JAXB : Java API for XML Data Binding Correspondance automatique entre des objets Java et des données XML JAXTX : XML Transactioning API for Java interface pour l encaspulation et le transport de contextes transactionnels ACID et avancées dans SOAP SAAJ : Soap with Attachements api for java (api qui standardise l'envoi et la réception de messages en faisant abstraction des protocoles,remplace JAXM pour SOAP) L'ensemble de ces apis a été réuni dans un pack JWSDP (Java WebService Developement Pack,licence propriétaire SUN) A l'heure actuelle, excepté le WebService Pack de Sun faisant office de RI (Reference Implementation), il n'existe aucun produit intégrant toutes ces APIs. 34

35 Conclusion présentation outils en Java Le JWSDP inclut en plus un registry Java WSDP Registry Server,Tomcat,des outils Ant et les apis de sécurité 35

36 Conclusion présentation outils en Java Apache SOAP (extension SOAP du serveur Apache,OpenSource) Serveur SOAP Apache Axis (OpenSource licence APL) comprenant : Tomcat container Sevlet/JSP JUDDi : un registry UDDI en Java OpenSource (licence Apache) fonctionnant avec de nombreuses bases de données : HSQLDB,MySQL,PostGresSQL... des outils de génération de fichier WSDL : Java2WSDL et WSDLJava Glue : société themindelectric (commercial,propriétaire) WebSphere (version 5): société IBM (commercial)+uddi4j outils pour les clients UDDI OpenSource) WASP Server (commercial,propriétaire) Mozilla (>=1.5) : client OpenSource(MPL) SOAP,WSDL,UDDI 36

37 Conclusion présentation outils en Java Critiques sur les WebServices : Technologie encore assez jeune Simplicité par rapport à RMI, CORBA ou DCOM Limitations : pas de services plus complexes garbage collector, communications bidirectionnelles,activation à distance,cycle de vie des objets,sécurité pas assez éprouvée Performances : temps de réponse et utilisation de ressources inférieures à celle des autres protocoles de distribution d'objet rendant l'utilisation de SOAP improbable dans la réalisation d'applications fortes consommatrices en ressources ou nécessitant des performances optimales Un certain nombre d'implémentations de SOAP incompatibles entre elles 37

38 Conclusion présentation outils en Java SOAP s'avère simple et demandant un développement peu important. Ceci permet de se concentrer sur le développement du service à offrir, sans trop se soucier des problèmes de communication qui sont (presque) transparents. Cependant, il souffre de sa jeunesse notamment par un manque de documentation conséquente (il en est de même pour les outils nécessaires à sa mise en oeuvre) et pose toutefois des contraintes concernant le type des données à transmettre et leur sérialisation. Comme toute autre technologie, il ne constitue pas la solution ultime à tous les problèmes mais une solution particulièrement adaptée à certains cas de figures, et il convient de bien analyser si les services que l'on souhaite offrir fait partis de ces cas favorables. 38

39 Conclusion présentation outils en Java Bibliographie : Java & SOAP,1re édition, janvier 2003,Robert Englander,Editions O'reilly,ISBN : Programming Webservices with SOAP(en anglais),december 2001,James Snell,Doug Tidwell,Pavel Kulchenko,Editions O'reilly,ISBN: Web Services Essentials (en anglais),february 2002,Ethan Cerami,Editions O'reilly,ISBN: Java WebServices ( en anglais),march 2002,Dave Chappell, Tyler Jewell,Editions O'reilly,ISBN: Java Web Services in a Nutshell (en anglais),june 2003,Kim Topley,Editons O'reilly,ISBN: Java et XML,2e édition, mars 2002,Brett McLaughlin,Editions O'reilly,ISBN : Services Web avec J2EE et.net,septembre 2003,Libero Maesano, Christian Bernard, Xavier Le Galles,Edition Eyrolles,ISBN : Web Service Patterns: Java Edition,P.Monday,Apress,ISBN :

40 Conclusion présentation outils en Java Liens Web : Outils : (Apache SOAP,Apache Axis,jUDDI) (JWSDP de SUN) (WebSphere 5.x +UDDI4J) (Glue) Consortium,Communauté,W3C: (W3C spécifications SOAP,WSDL) (consortium spécifications UDDI,BPEL4WS,ebXML) (consortium oasis implémentations,informations UDDI) (consortium Liberty Alliance authentification...) Informations sur les WebServices,XML : (informations générale spécifications,outils...) (informations en français webservices,soap) (portail informations francophone sur les WebServices et XML) 40

41 Conclusion présentation outils en Java Liens Web : Informations WebServices,tutoriaux : (portail O'reilly sur les WebServices informations,tutoriels) (code camps Paris 2004,J2EE,WebServices,J2ME, présentations et tutoriels) (portail informations sur les serveurs J2EE +WebServices...) (informations + scripts pour l'utilisation des WebServices avec Mozilla nécessite une version de mozilla >=1.5) UDDI Registry en ligne : (annuaire UDDI historique permettant de tester des WebServices) (quelques exemples de WebServices) (registries IBM,SAP,Microsoft) 41

42 Demos Partie 1(Client SOAP) Client Mozilla : Mozilla possède dans son moteur Gecko des composants lui permettant avec l'aide de Javascript de devenir un client pour les WebServices (support de SOAP1.1 ->à partir de Mozilla 1.0,WSDL -> à partir de mozilla 1.4a,UDDI client methode inquiry à partir de 1.6 et plus ou Netscape à partir de la version 7.1) xmethods.org : Annuaire UDDI de WebServices invocation des services à l'aide d'une applet Java 42

43 ksoap : SOAP pour l' embarqué ksoap : SOAP pour les Systèmes embarqués (téléphones compatibles J2ME (CLDC/MIDP), Cartes Tini ( CDC /Java)) 43

44 ksoap : Présentation Historique : Mai 2001 : 1ère version expérimentale de ksoap Janvier 2002 : ksoap 1.0 Juin 2002 : ksoap 1.2 Aout 2003 : ksoap 2.0 Implémentation de SOAP à l'origine pour les téléphones portables compatibles j2me (MIDP/CLDC) de la communauté OpenSource Enhydra (http://enhydra.org) ksoap est constitué de trois composants (API) : kobject : pour le mapping des objets Java en objets SOAP KXML : pour le parsing des données XML ksoap : pour la constitution des messages SOAP et le transport des données par HTTP 44

45 KSOAP : Présentation Caractéristiques de ksoap (licence EPL pour la version 1.2 et BSD pour la version 2.0) : Sous ensemble minimal de SOAP version 1.1 Support du protocole Wap avec un ensemble de classes : Wbxml,WbxmlParser,WbxmlWriter,WmlParser,WmlWriter... Pas de support de WSDL Pas de support de UDDI (il existe un client kuddi pour les registries UDDI v1.0 non maintenu,buggué et abandonné) Nécessite 3 classes pour son bon fonctionnement : SOAPObject,HTTPTransport,ClassMap Prend en compte les fautes/exceptions SOAP (classe SOAPFault pouvant faire de la récupération d'exception) 45

46 KSOAP : Présentation Faible taille de l'api complète (ksoap+kobject+kxml) : ~ 40 Ko pour la version 1.2 ~ 56 Ko pour la version 2.0 Interopérable avec un grand nombre d'implémentation SOAP (cf tableau tests d'interopérabilité dans la partie liens) Adaptation de HTTPTransport pour être compatible avec J2SE (cas de la carte Tini ou les Applets) et ajout de classes supplémentaires pour le support de types non supportés dans J2ME Mapping automatique de 4 types primitifs de base : int,long,string,boolean Pas de support de tableaux multidimensionnels 46

47 KSOAP Présentation Il existe plusieurs manières de sérialiser/déserialiser les objets avec ksoap : Création d'une classe qui implémente l'interface KvmSerializable Public class Nom_classe implements org.kobjects.serialization.kvmserialzable Création d'un SoapObject avec ajout des propriétés de l'objet méthode addproperty(string nom_propriété,string valeur_de_la propriété ) Le Marshalling : création d'une classe implémentant l'interface Marshall 47

48 KSOAP : Principes de fonctionnement Les 4 règles de parsing des éléments SOAP: Si l'élément SOAP fait parti des 4 types primitifs de bases supportés par défaut il est converti automatiquement en objet Java correspondant Si l'élément SOAP n'a pas de noeud enfant (i.e un type primitif) il est converti en un objet une SoapPrimitive Si l'élément SOAP possède un noeud enfant (i.e un type complexe) il est converti en un objet KvmSerializable (qui est une interface) Un noeud enfant de type complexe suit les 3 mêmes règles précédentes est converti en properties (chacune d'entre elle est associée à un Object PropertyInfo contenant le nom de l'élément SOAP et le type de l'objet Java ) 48

49 KSOAP : Principes de fonctionnement Schéma : 49

50 KSOAP : Principes de fonctionnement Le classmap : Met en correspondance les classes Java avec les éléments XML il s'agit d'une HashTable La méthode addmapping définit un mapping direct à partir d'un namespace et le nom d'une classe Java Le Marshalling : Permet d 'étendre le mapping des objets Java en objets SOAP Indique au parser ce mapping Permet d'ajouter ses propres objets Java au ClassMap et étendre le mapping SOAP la méthode register(classmap) permet d'enregistrer l'objet dans le classmap 50

51 KSOAP : serveur Brazil ksoap La partie Serveur ksoap dans le modèle d'origine est assurée par une servlet à utiliser avec un conteneur (par exemple Tomcat ou Tynamo pour la carte Tini) : comprend la servlet,le service et l'objet utilisé par le service Le modéle modifié pour Brazil comprend un Handler qui délivre le service et qui gère la transormation du message requete XML en objet SOAP requete et la transformation de l'objet «SOAP reponse en message reponse XML. 51

52 KSOAP : serveur Brazil ksoap Principe de fonctionnement : Le client crée un message requête SOAP avec les paramètres d'invocation Le client envoie la requête SOAP au Brazil Server ksoap à travers le protocole HTTP (la classe HTTPTransport s'occupe de ça) Le Brazil Server invoque la méthode du ServiceHandler correspondant grace à l'extraction des parametres du message SOAP Le serveur compose la valeur de retour le met dans le message SOAP réponse Le client reçoit la réponse et le message réponse et parse les valeurs retournées en un objet Java 52

53 KSOAP : serveur Brazil ksoap 53

54 KSOAP : Démo 1 ksoap sur la carte Tini Protocole d'utilisation : Une carte Tini avec un serveur Brazil ksoap port 8080 Un CLC client ksoap en ligne de commandes Un brazil ksoap handler client sur un Informations : Taille du serveur avec un service (Service DS1921Proxy) : ~92 Ko (fichier tini comprenant l'api ksoap,un serveur Brazil Minimal) Consommation mémoire : ~50 Ko à 200 Ko (suivant la nature du service Temps de réponse : ~10-30 s 54

55 KSOAP : Démo 1 ksoap sur la carte Tini Schéma fonctionnement : 55

56 KSOAP : Démo 1 ksoap sur la carte Tini Objet java KvmSerializable : package istr.ksoap4; import org.kobjects.serialization.propertyinfo; import org.kobjects.serialization.elementtype; public class DS1921Proxy implements org.kobjects.serialization.kvmserializable{ private float tempbutton = 0; private static int PROP_COUNT = 1; private static PropertyInfo PI_ds1921temp = new PropertyInfo ("ds1921temp",elementtype.float_class); private static PropertyInfo[] PI_PROP_ARRAY = {PI_ds1921temp}; public DS1921Proxy(){} public void settemperature(float tempbutton) this.tempbutton=tempbutton;} public float gettemperature(){ return tempbutton; } 56

57 KSOAP : Démo 1 ksoap sur la carte Tini public Object getproperty(int param) { if ( param == 0 ) { return new Float(getTemperature()); } else { //message d'erreur } } public void setproperty(int param, Object obj) { if ( param == 0 ) { float ds1921temp = ((Float) obj).floatvalue(); settemperature(ds1921temp); } else { //message d'erreur } } public int getpropertycount() { return PI_PROP_ARRAY.length; } public void getpropertyinfo(int param, org.kobjects.serialization.propertyinfo propertyinfo) { propertyinfo.name = PI_PROP_ARRAY[param].name; propertyinfo.nonpermanent = PI_PROP_ARRAY[param].nonpermanent; } propertyinfo.copy(pi_prop_array[param]); 57

58 KSOAP : Démo 1 ksoap sur la carte Tini Exemple du client en ligne de commande : package istr.ksoap4; import java.sql.timestamp; import java.io.ioexception; import org.ksoap.soapobject; import org.ksoap.transport.httptransportse; import org.ksoap.classmap; import org.ksoap.marshal.marshalfloat; public class DS1921ProxyClient2 { public DS1921ProxyClient2(){} public static void main(string args[]) { try{ String serviceurl="http:// :8080/ds1921proxyservice/"; ClassMap classmap = new ClassMap(); MarshalFloat mf=new MarshalFloat(); mf.register(classmap); 58

59 KSOAP : Démo 1 ksoap sur la carte Tini classmap.addmapping("istr.ksoap4", "DS1921Proxy",new DS1921Proxy().getClass() ); SoapObject rpc = new SoapObject("istr.ksoap4","getNextTemperature"); HttpTransportSE tx = new HttpTransportSE(serviceUrl+"?service=DS1921ProxyService","getNextTemperature"); tx.setclassmap( classmap ); tx.debug=true; DS1921Proxy ds1921proxy = (DS1921Proxy)tx.call( rpc ); System.out.println(tx.requestDump); System.out.println(tx.responseDump); float temp = ds1921proxy.gettemperature(); long timestamp = ds1921proxy.gettimestamp(); Timestamp ts = new Timestamp(timeStamp); String time = ts.tostring(); String idbutton =ds1921proxy.getidbutton(); 59

60 KSOAP : Démo 1 ksoap sur la carte Tini String descbutton=ds1921proxy.getdescription(); String message=ds1921proxy.getmessage(); System.out.println(message); System.out.println("La temperature du DS1921 : "+descbutton+" ID " +idbutton+" aujourd'hui :"+time+" est de :"+temp+" degres celsius"); } catch(ioexception e) { e.printstacktrace(); } } } 60

61 KSOAP : Démo 2 ksoap J2SE+Javacard Protocole d'utilisation : PursePhoto (Porte monnaie+image) 2 serveurs Brazil ( handler client ksoap PursePhotoRequestHandler port 9000 et handler de service PursePhotoProxyServiceHandler sur le port 9001) CLC : client ksoap en ligne de commande Wireless ToolKit 1.04 (client J2ME ksoap) Javacard Development Kit (support de javacard rmi ) +simulateur JCREF Api OpenCardFramework partie client proxy javacard 2 fichiers jar sont nécessaires : base-core.jar base-opt.jar 61

62 KSOAP : Démo 2 ksoap J2SE+JavaCard Schéma fonctionnement : 62

63 KSOAP : Démo 2 ksoap J2SE+JavaCard Nous avons pu voir au travers des démos le fonctionnement de ksoap ainsi qu'une implémentation d'un serveur SOAP Brazil. Il se pose trois problèmes avec cette implémentation (du au fait qu'il n'y ait pas de support de WSDL et de UDDI) : 1)Nous connaissons déjà l'adresse url du serveur fournissant les services 2)Nous connaissons les méthodes ainsi que les paramètres de chaque service 3)Nous possédons les classes Java nécessaires côté client Une solution serait-elle de coupler cette implémentation avec Jxta/Jxme pour la localisation des serveurs et des services? Ou bien de créer un support WSDL et un annuaire UDDI? 63

64 Conclusion Bibliographie : Enterprise J2ME: Developing Mobile Java Applications,Oct. 24th 2003,Michael Juntao Yuan,Prentice Hall,ISBN: Liens web : (spécifications J2ME du Java Community Process) (site historique officiel de ksoap,versions =< 1.2 hébergées) (site proposant les implémentations de ksoap 2,kXML2,kobjects) (article sur ksoap tutoriel,sur le site WebServices d'oreilly) (article sur javaworld sur ksoap) (lien sur des résultats d'analyses de parser XML dont kxml) (tableaux de résultats d'intéropérabilité) 64

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

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

Plus en détail

Services Web WSDL. Fabrice Rossi. http://apiacoa.org/contact.html. Université Paris-IX Dauphine. Services Web WSDL p.1/40

Services Web WSDL. Fabrice Rossi. http://apiacoa.org/contact.html. Université Paris-IX Dauphine. Services Web WSDL p.1/40 Services Web WSDL Fabrice Rossi http://apiacoa.org/contact.html. Université Paris-IX Dauphine Services Web WSDL p.1/40 Plan du cours WSDL 1. Présentation 2. Structure générale 3. Les types 4. Les messages

Plus en détail

Présentation générale des Web Services

Présentation générale des Web Services Présentation générale des Web Services Vue Globale Type d'architecture reposant sur les standards de l'internet Alternative aux architectures classiques : Client/serveur n/tiers Orientée services permettant

Plus en détail

SOA et Services Web Institut Telecom Telecom SudParis Département INFormatique

SOA et Services Web Institut Telecom Telecom SudParis Département INFormatique SOA et Services Web Institut Telecom Telecom SudParis ormatique 05/09/2012 Références Web http://www-inf.it-sudparis.eu/cours/csc4503/ http://www-inf.it-sudparis.eu/cours/webservices/ Site de W3C (normes)

Plus en détail

Services Web. Samir Tata Département INFormatique TELECOM SudParis http://www-inf.it-sudparis.eu/cours/webservices

Services Web. Samir Tata Département INFormatique TELECOM SudParis http://www-inf.it-sudparis.eu/cours/webservices Services Web Samir Tata Département INFormatique TELECOM SudParis http://www-inf.it-sudparis.eu/cours/webservices 1 Introduction Source: Fabien HACQUEBART 2 Références Web http://www-inf.it-sudparis.eu/cours/webservices/

Plus en détail

par Philippe Poulard Web services 0 Philippe.Poulard@sophia.inria.fr Philippe Poulard

par Philippe Poulard Web services 0 Philippe.Poulard@sophia.inria.fr Philippe Poulard 0 Philippe.Poulard@sophia.inria.fr Philippe Poulard Sommaire Qu est-ce? Middleware XML Web Services in situ Couches de services Architecture des Web Services avec Java JAX-RPC JAXR JAXM Outils 1 Présentation

Plus en détail

Web Services. SLenoir@ugap.fr 17/01/2009

Web Services. SLenoir@ugap.fr 17/01/2009 Web Services SLenoir@ugap.fr 17/01/2009 1. Pourquoi les Web Services? 1.1. Historique des SI 1.2. Exigences actuelles 1.3. SOA 1.4. Mise en place de services 17/01/2008 Web Services 2 1.1. Historique des

Plus en détail

Architectures et Web

Architectures et Web Architectures et Web Niveaux d'abstraction d'une application En règle générale, une application est découpée en 3 niveaux d'abstraction : La couche présentation ou IHM (Interface Homme/Machine) gère les

Plus en détail

Services Web. Fabrice Rossi. http://apiacoa.org/contact.html. Université Paris-IX Dauphine. Services Web p.1/26

Services Web. Fabrice Rossi. http://apiacoa.org/contact.html. Université Paris-IX Dauphine. Services Web p.1/26 Services Web Fabrice Rossi http://apiacoa.org/contact.html. Université Paris-IX Dauphine Services Web p.1/26 Plan du cours 1. Introduction 2. SOAP 3. WSDL 4. UDDI Site du cours : http://apiacoa.org/teaching/webservices/

Plus en détail

Services Web. Plan du cours

Services Web. Plan du cours Services Web Fabrice Rossi http://apiacoa.org/contact.html. Université Paris-IX Dauphine Services Web p.1/26 Plan du cours 1. Introduction 2. SOAP 3. WSDL 4. UDDI Site du cours : http://apiacoa.org/teaching/webservices/

Plus en détail

Plan du cours. Services Web. Un service web? Plan de l introduction. 1. Introduction 2. SOAP 3. WSDL 4. UDDI

Plan du cours. Services Web. Un service web? Plan de l introduction. 1. Introduction 2. SOAP 3. WSDL 4. UDDI Plan du cours Services Web Fabrice Rossi http://apiacoa.org/contact.html. Université Paris-IX Dauphine 1. Introduction 2. SOAP 3. WSDL 4. UDDI Site du cours : http://apiacoa.org/teaching/webservices/ Services

Plus en détail

Service Web (SOAP) Urbanisation des SI NFE107. Fiche de lecture Y. BELAID

Service Web (SOAP) Urbanisation des SI NFE107. Fiche de lecture Y. BELAID Service Web (SOAP) Urbanisation des SI NFE107 Fiche de lecture Y. BELAID Plan Définitions Web Service Terminologie Communication avec les Web Service REST XML-RPC SOAP Qu est ce qu un Web Service Un Web

Plus en détail

Introduction aux «Services Web»

Introduction aux «Services Web» Introduction aux «Services Web» Sana Sellami sana.sellami@univ-amu.fr 2014-2015 Modalité de contrôle de connaissances Note de contrôle de continu Note projet Evaluation du projet la semaine du 17 novembre

Plus en détail

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» Cours Master Recherche RI 7 Extraction et Intégration d'information du Web «Services Web» Sana Sellami sana.sellami@lsis.org 2014-2015 Plan Partie 1: Introduction aux Services Web (SW) Partie 2: Vers une

Plus en détail

UFR Mathématique et Informatique SOAP. Pierre Gançarski. http://dpt-info.u-strasbg.fr/~gancars

UFR Mathématique et Informatique SOAP. Pierre Gançarski. http://dpt-info.u-strasbg.fr/~gancars SOAP http://dpt-info.u-strasbg.fr/~gancars Pierre Gançarski Architecture 3-tiers 1. Présentation Interface Homme-Machine Conversationnel, Transactionnel, Web-based 2. Partie métier Enchaînement des traitements

Plus en détail

J2EE : Services Web. Stéphane Croisier, Directeur Serge Huber, Directeur Technique. 13 Juin 2002. 2002 Jahia Ltd. All rights reserved.

J2EE : Services Web. Stéphane Croisier, Directeur Serge Huber, Directeur Technique. 13 Juin 2002. 2002 Jahia Ltd. All rights reserved. J2EE : Services Web Stéphane Croisier, Directeur Serge Huber, Directeur Technique 13 Juin 2002 Aperçu Interopérabilité en XML/HTTP SOAP ebxml Outils d EAI JXTA Normes d interopérabilité XML SOAP/UDDI Inventé

Plus en détail

LE TRIPTYQUE SOAP/WSDL/UDDI

LE TRIPTYQUE SOAP/WSDL/UDDI LE TRIPTYQUE SOAP/WSDL/UDDI Eric van der Vlist (vdv@dyomedea.com) Le triptyque SOAP/WSDL/UDDI Web Services Convention Juin 2004 Eric van der Vlist (vdv@dyomedea.com) SOAP-- WS Convention 2004 -- Page 1

Plus en détail

Etapes de conception des services web

Etapes de conception des services web Les services web Introduction Un service web est un composant logiciel i l qui permet la communication entre deux applications ou systèmes qui peuvent être dans un environnement hétérogène et / ou distribué.

Plus en détail

Qu'est-ce qu'un Web Service?

Qu'est-ce qu'un Web Service? WEB SERVICES Qu'est-ce qu'un Web Service? Un Web Service est un composant implémenté dans n'importe quel langage, déployé sur n'importe quelle plate-forme et enveloppé dans une couche de standards dérivés

Plus en détail

Java, développement d'applications mobiles (J2ME) XML 21/03/2007. Formation ITIN

Java, développement d'applications mobiles (J2ME) XML 21/03/2007. Formation ITIN Java, développement d'applications mobiles (J2ME) XML Rappels rapides XML est un acronyme pour extensible Markup Language. Utilisation de tags pour délimiter le contenu et représenter une structure. XML

Plus en détail

Les services Web vers l'interopérabilité des applications réparties sur internet. Tarek Melliti

Les services Web vers l'interopérabilité des applications réparties sur internet. Tarek Melliti Les services Web vers l'interopérabilité des applications réparties sur internet Tarek Melliti Plan de la présentation Introduction aux services Web Approche conceptuel orienté service : SOA Les services

Plus en détail

Programmation Web Avancée Introduction aux services Web

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

Plus en détail

Les Services Web. Sana Sellami. sana.sellami@univ-amu.fr

Les Services Web. Sana Sellami. sana.sellami@univ-amu.fr Les Services Web Sana Sellami sana.sellami@univ-amu.fr 2015-2016 PLAN 1. Qu est ce qu un service Web? 2. Architecture des Services Web 3. Création et déploiement des Services Web SOAP en Java 4. Services

Plus en détail

Services Web. Définition. Évolution. Table des matières

Services Web. Définition. Évolution. Table des matières Par Alberto Gonzalez 2005 (repris par Laurent Magnin) IFT6802 Commerce électronique : systèmes et architectures o o Définition Un service Web est un système conçu pour soutenir l'interaction machine-à-machine

Plus en détail

Conservatoire Nationale des Arts et Métiers

Conservatoire Nationale des Arts et Métiers Conservatoire Nationale des Arts et Métiers Centre d enseignements de Grenoble Année Universitaire: 2008-2009 SERVICE WEB SOAP Cours : NFE107 Urbanisation & Architecture des Systèmes d Information Auditeurs

Plus en détail

LES WEB SERVICES AUTEUR : ALBERT RITCH HEG GENÈVE DÉPARTEMENT D'INFORMATIQUE DE GESTION LABORATOIRE DE TECHNOLOGIES OBJET PROFESSEUR : PETER DAEHNE

LES WEB SERVICES AUTEUR : ALBERT RITCH HEG GENÈVE DÉPARTEMENT D'INFORMATIQUE DE GESTION LABORATOIRE DE TECHNOLOGIES OBJET PROFESSEUR : PETER DAEHNE LES WEB SERVICES AUTEUR : ALBERT RITCH HEG GENÈVE DÉPARTEMENT D'INFORMATIQUE DE GESTION LABORATOIRE DE TECHNOLOGIES OBJET PROFESSEUR : PETER DAEHNE Albert Ritch Les Web Services Page 1 novembre 2003 v1.0

Plus en détail

SOA Services Web Etendus SOAP : Communiquer

SOA Services Web Etendus SOAP : Communiquer SOA Services Web Etendus SOAP : Communiquer Mickaël BARON 2010 (Rév. Janvier 2011) mailto:baron.mickael@gmail.com ou mailto:baron@ensma.fr Licence Creative Commons Contrat Paternité Partage des Conditions

Plus en détail

Faculté des Sciences Tidjani HADDAM Département de l Informatique. Mémoire. Pour l obtention du diplôme de MASTER. Spécialité : Informatique

Faculté des Sciences Tidjani HADDAM Département de l Informatique. Mémoire. Pour l obtention du diplôme de MASTER. Spécialité : Informatique - Faculté des Sciences Tidjani HADDAM Département de l Informatique Mémoire Pour l obtention du diplôme de MASTER Spécialité : Informatique Option : Modèles Intélligents et Décision (MID) Présenté par

Plus en détail

Les Extensions de SOAP

Les Extensions de SOAP Les Extensions de SOAP «Contourner» les limitations 11/03/2010 Présentation: S. Lavirotte Auteurs : et al* 40 Limitations de SOAP Sécurité : Limité à la sécurisation de HTTP? Transfert de données : Données

Plus en détail

Plan. Environnement Client/Serveur. Cours 6 Rappels Java (suite) Appel de méthode à distance. Utilité. static

Plan. Environnement Client/Serveur. Cours 6 Rappels Java (suite) Appel de méthode à distance. Utilité. static Plan Environnement Client/Serveur Cours 6 Rappels Java (suite) Appel de méthode à distance kn@lri.fr http://www.lri.fr/~kn 1 Rappels sur les systèmes d'exploitations / Communication par mémoire partagée

Plus en détail

Modèle client-serveur

Modèle client-serveur Modèle client-serveur Daniel Hagimont IRIT/ENSEEIHT 2 rue Charles Camichel - BP 7122 31071 TOULOUSE CEDEX 7 Daniel.Hagimont@enseeiht.fr http://hagimont.perso.enseeiht.fr 1 Plan Principes généraux Modèle

Plus en détail

Les Web Services. UE: Informatique Ambiante. Spécialité: Electronique et Optique Option: Vision Embarquée. Binôme: Ehouarn Perret & Thomas Angenault

Les Web Services. UE: Informatique Ambiante. Spécialité: Electronique et Optique Option: Vision Embarquée. Binôme: Ehouarn Perret & Thomas Angenault Spécialité: Electronique et Optique Option: Vision Embarquée UE: Informatique Ambiante Les Web Services Binôme: Ehouarn Perret & Thomas Angenault Enseignant: Christophe Léger mercredi 19 octobre 2011 Plan

Plus en détail

RMI le langage Java XII-1 JMF

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

Plus en détail

Web Services. Introduction à l aide d un exemple. Urs Richle

Web Services. Introduction à l aide d un exemple. Urs Richle Web Services Introduction à l aide d un exemple Urs Richle 7/12/2005 Problématique Requête Windows Mac Linux HTML XHTM CSS XML SVG XTM... ASP PHP Java Applet JSP Servlet... IIS Apache Tomcat... Data Oracle

Plus en détail

Les services web. Module 04 Les Services Web. Campus-Booster ID : 697. www.supinfo.com. Copyright SUPINFO. All rights reserved

Les services web. Module 04 Les Services Web. Campus-Booster ID : 697. www.supinfo.com. Copyright SUPINFO. All rights reserved Les services web Module 04 Les Services Web Campus-Booster ID : 697 www.supinfo.com Copyright SUPINFO. All rights reserved Les services web Objectifs de ce module En suivant ce module vous allez: Comprendre

Plus en détail

Le cadre des Web Services Partie 1 : Introduction

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 adulau@foo.be Sécurité en ingénierie du Logiciel p.1/21 Agenda (partie 1) 1/2 Introduction Services

Plus en détail

CHAPITRE 1. Introduction aux web services. 1.1 Définition. Contenu du chapitre : Env. De dev. Langage Visual Studio Java EE Qt Creator C#

CHAPITRE 1. Introduction aux web services. 1.1 Définition. Contenu du chapitre : Env. De dev. Langage Visual Studio Java EE Qt Creator C# CHAPITRE 1 Introduction aux web services Contenu du chapitre : Env. De dev. Langage Visual Studio Java EE Qt Creator C# NetBeans JavaScript Eclipse Objective C Xcode PHP HTML Objectifs du chapitre : Ce

Plus en détail

Les Services Web. Jean-Pierre BORG EFORT http://www.efort.com

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

Plus en détail

INF157 - Utilisation des Réseaux

INF157 - Utilisation des Réseaux INF157 - Utilisation des Réseaux Licence 3 Informatique Arnaud Pecher (repris par Damien Magoni) Bureau 322, Bâtiment A30, LaBRI Université de Bordeaux Licence 3 Informatique - Bordeaux 1/85 Univ Bx 1

Plus en détail

Remote Method Invocation (RMI)

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

Plus en détail

Projet M1 : Application P2P Hybride avec RMI

Projet M1 : Application P2P Hybride avec RMI Projet M1 : Application P2P Hybride avec RMI Applications Réparties 2008-2009 Université Paris VIII / Parcours SRM / M1 Sujet : Le but de ce projet est d'implémenter une application de partage de fichiers

Plus en détail

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

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ébert.eheb@yahoo.fr

Plus en détail

Introduction aux services Web Exemple de PHENOPSIS DB

Introduction aux services Web Exemple de PHENOPSIS DB Introduction aux services Web Exemple de PHENOPSIS DB Vincent NEGRE, vincent.negre@supagro.inra.fr JIEA 2010 1/27 Introduction aux services Web JIEA 2010 2/27 Pourquoi utiliser des services Web? Achats

Plus en détail

Modèle client-serveur

Modèle client-serveur Modèle client-serveur Daniel Hagimont IRIT/ENSEEIHT 2 rue Charles Camichel - BP 7122 31071 TOULOUSE CEDEX 7 Daniel.Hagimont@enseeiht.fr http://hagimont.perso.enseeiht.fr Remerciements Michel Riveill 1

Plus en détail

Conception et développement d un Service Web Pour l échange d information dans le domaine humanitaire

Conception et développement d un Service Web Pour l échange d information dans le domaine humanitaire Université de Fribourg, Suisse Département d'informatique Bachelor en informatique de gestion TRAVAIL DE BACHELOR Sujet: Conception et développement d un Service Web Pour l échange d information dans le

Plus en détail

Les WEB SERVICES. Yves Laloum

Les WEB SERVICES. Yves Laloum Les WEB SERVICES Yves Laloum 1 PLAN! Objectifs! Architecture! Protocole Web (RPC, SOAP)! Conclusion 2 1 1. Objectifs! Accès rapide, intégré et généralisé à l information pertinente! en interne (Intranet)

Plus en détail

WEBSERVICES. Michael Fortier. Master Informatique 2ème année. fortier@lipn.univ-paris13.fr A308, Université de Paris 13

WEBSERVICES. Michael Fortier. Master Informatique 2ème année. fortier@lipn.univ-paris13.fr A308, Université de Paris 13 WEBSERVICES Michael Fortier Master Informatique 2ème année fortier@lipn.univ-paris13.fr A308, Université de Paris 13 https ://lipn.univ-paris13.fr/ fortier/enseignement/webservices/ Sommaire 1 Rappels

Plus en détail

Master 2 MIAGE NTDP Nom : Le Prof! UE «Web Services et SOA», Prénom

Master 2 MIAGE NTDP Nom : Le Prof! UE «Web Services et SOA», Prénom Master 2 MIAGE NTDP Nom : Le Prof! UE «Web Services et SOA», Prénom Epreuve écrite individuelle 8 Décembre 2008, durée 45 mns Aucun document autorisé => Finalement, autorisés et semble-t-il utiles!!...

Plus en détail

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 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

Plus en détail

Environnements de Développement

Environnements de Développement Institut Supérieur des Etudes Technologiques de Mahdia Unité d Enseignement: Environnements de Développement BEN ABDELJELIL HASSINE Mouna m.bnaj@yahoo.fr Développement des systèmes d Information Syllabus

Plus en détail

Objets distribués et Appel de Méthodes à Distance 2009-2010

Objets distribués et Appel de Méthodes à Distance 2009-2010 Objets distribués et Appel de Méthodes à Distance 2009-2010 1 Objectif : construire une application où différents modules peuvent être situés sur des machines différentes, en utilisant un modèle à objets

Plus en détail

SOA et Services Web. 23 octobre 2011. Evolution des Systèmes d Information

SOA et Services Web. 23 octobre 2011. Evolution des Systèmes d Information SOA et Services Web 23 octobre 2011 1 Evolution des Systèmes d Information 2 Qu est ce qu une application répartie? Il s agit d une application découpée en plusieurs unités Chaque unité peut être placée

Plus en détail

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 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.................................

Plus en détail

Java et Objet. Amélie Lambert 2014-2015. Amélie Lambert 2014-2015 1 / 42

Java et Objet. Amélie Lambert 2014-2015. Amélie Lambert 2014-2015 1 / 42 Java et Objet Amélie Lambert 2014-2015 Amélie Lambert 2014-2015 1 / 42 Chapitre 8 Développement d applications Web Amélie Lambert 2014-2015 2 / 42 Plan du cours Typologie des applications Web Architecture

Plus en détail

Programmation des Applications Réparties. Parsers XML DOM et SAX

Programmation des Applications Réparties. Parsers XML DOM et SAX Programmation des Applications Réparties Parsers XML DOM et SAX Luiz Angelo Steffenel luiz-angelo.steffenel@univ-reims.fr Steffenel Programmation des Applications Réparties Master M1-2007-2008 1 Comment

Plus en détail

Créer une architecture distribuée.net

Créer une architecture distribuée.net Ingénieurs 2000 Exposé Système & Réseaux 2006/2007 Créer une architecture distribuée.net Concepts et exemples 1. Présentation du Framework.NET 2. Créer et utiliser des services Web 3. Comment créer des

Plus en détail

Dr. Djamel Benmerzoug. Email : djamel.benmerzoug@univ-constantine2.dz

Dr. Djamel Benmerzoug. Email : djamel.benmerzoug@univ-constantine2.dz Master 2 SITW Les services Web Dr. Djamel Benmerzoug Email : djamel.benmerzoug@univ-constantine2.dz Maitre de Conférences A, Département TLSI Faculté des NTIC Université Constantine 2 Abdelhamid Mehri

Plus en détail

Sensibilisation à RMI (Remote Method Invocation)

Sensibilisation à RMI (Remote Method Invocation) Jini Sensibilisation à RMI (Remote Method Invocation) Le rêve de tout système distribué L idéal serait d avoir un système distribué utilisant la technologie objet et permettant : 1) d invoquer une méthode

Plus en détail

BPEL Orchestration de Web Services

BPEL Orchestration de Web Services Orchestration de Web Services Grégory Le Bonniec gregory.lebonniec@zenika.com 26 novembre 2009 1 Zenika Conseil / Développement / Formation Localisation : Paris et Rennes Nos partenaires Mon expérience

Plus en détail

Les Systèmes et Applications Réparties et leur Programmation

Les Systèmes et Applications Réparties et leur Programmation Les Systèmes et Applications Réparties et leur Programmation Samia Bouzefrane Maître de Conférences Laboratoire CEDRIC Conservatoire National des Arts et Métiers 292 rue Saint Martin 75141 Paris Cédex

Plus en détail

WebServices With Tomcat And Java 1.6 Auteur: Frank Sauvage.

WebServices With Tomcat And Java 1.6 Auteur: Frank Sauvage. WebServices With Tomcat And Java 1.6 Auteur: Frank Sauvage. 1 \ Rappels sur les services web 1.1 \ Architectures SOA Concues et definies à l'origine par le Gartner Group, les architecture orientées services

Plus en détail

Web services en Java (services Web) JMF (Tous droits réservés) 1

Web services en Java (services Web) JMF (Tous droits réservés) 1 Web services en Java (services Web) JMF (Tous droits réservés) 1 Web services (services web) : qu'est ce? Une architecture orientée objet et distribuée où les messages sont en syntaxe XML Ce n'est pas

Plus en détail

Création d un WebService. Tp WinDev Numéro 13

Création d un WebService. Tp WinDev Numéro 13 Tp WinDev Numéro 13 Objectifs : Création d un WebService Paramétrage d un serveur Web, Création du Service Web, Création du client consommateur, Approche XML, SOAP Outils : Un serveur d application Ce

Plus en détail

Systèmes distribués. Les Sockets

Systèmes distribués. Les Sockets Systèmes distribués Plusieurs technologies existent : Les sockets Les remote procedure call (RPC) Remote Method Invocation (RMI) Les Sockets L'utilisation des Sockets nécessite De gérer le codage et le

Plus en détail

Services web Dan VODISLAV Université de Cergy-Pontoise Master Informatique M1 Cours IED Plan

Services web Dan VODISLAV Université de Cergy-Pontoise Master Informatique M1 Cours IED Plan Services web Dan VODISLAV Université de Cergy-Pontoise Master Informatique M1 Cours IED Plan Principes SOAP WSDL UDDI Services REST Services SOAP en Java Cours IED (UCP/M1): Services web Page 2 Services

Plus en détail

DotNet Remoting. Assia HACHICHI. dr.hachichi@gmail.com (basé sur un cours de Lionel Seinturier) Page 1

DotNet Remoting. Assia HACHICHI. dr.hachichi@gmail.com (basé sur un cours de Lionel Seinturier) Page 1 DotNet Remoting Assia HACHICHI dr.hachichi@gmail.com (basé sur un cours de Lionel Seinturier) Page 1 I Introduction 1. Introduction 2. Modèle de programmation 3. Caractéristiques techniques Invocation

Plus en détail

Le cadre des Web Services Partie 9 : Introduction à Web Services Definition Language (WSDL)

Le cadre des Web Services Partie 9 : Introduction à Web Services Definition Language (WSDL) Sécurité en ingénierie du Logiciel Le cadre des Web Services Partie 9 : Introduction à Web Services Definition Language (WSDL) Alexandre Dulaunoy adulau@foo.be Sécurité en ingénierie du Logiciel p.1/16

Plus en détail

Modèle spagetthi et solution EAI

Modèle spagetthi et solution EAI EAI Définition L'EAI est une notion ancienne mais toujours d'actualité. En effet, le besoin de faire communiquer des applications développées à des moments différents, dans des technologies différentes

Plus en détail

Étude de faisabilité d'une application SOAP avec un système embarqué

Étude de faisabilité d'une application SOAP avec un système embarqué Étude de faisabilité d'une application SOAP avec un système Titre du projet I04_05s01 Chaîne du froid: Communication par SOAP Numéro du projet 53 École HE-ARC ingénierie informatique Temps imparti Travail

Plus en détail

Les Enterprise Beans. Qu'est ce que c'est? Les Sessions Beans Les Web Services Les Message Driven Beans Annotation/Interception

Les Enterprise Beans. Qu'est ce que c'est? Les Sessions Beans Les Web Services Les Message Driven Beans Annotation/Interception Les Enterprise Beans Qu'est ce que c'est? Les Sessions Beans Les Web Services Les Message Driven Beans Annotation/Interception Qu'est ce qu'un EJB Un composant logiciel Ecrit en Java Déployable dans un

Plus en détail

Web services en Java (services Web) Jean-marc Farinone

Web services en Java (services Web) Jean-marc Farinone Web services en Java (services Web) Jean-marc Farinone Web services (services web) : qu'est ce? Une architecture orientée objet et distribuée où les messages sont en syntaxe XML. Une définition : Les Services

Plus en détail

JDOM. Manipulation de XML avec JDOM et Java. A. Belaïd http://cynober.developpez.com/tutoriel/java/xml/jdom/

JDOM. Manipulation de XML avec JDOM et Java. A. Belaïd http://cynober.developpez.com/tutoriel/java/xml/jdom/ JDOM Manipulation de XML avec JDOM et Java 1 JDOM C est quoi? JDOM est une API du langage Java Permet de manipuler des donnés XML plus simplement qu'avec les API classiques Son utilisation est pratique

Plus en détail

Formation ESUP Portail Cours 4

Formation ESUP Portail Cours 4 Formation ESUP Portail Cours 4 http://www.esup-portail.org 1 Plan Prérequis Outils Normes Esup portail Canal uportal Publication d'un canal Web services 2 Prérequis Java Ant XML XSL/XSLT 3 Outils http://www.esup-portail.org/consortium/espace/normes_1c/tech/build/index.

Plus en détail

Applications Réparties. Département Sciences Informatiques SI 4 ème année

Applications Réparties. Département Sciences Informatiques SI 4 ème année Applications Réparties Département Sciences Informatiques SI 4 ème année 1 Applications Réparties? Ensemble de processus (objets, agents, acteurs) qui: Communiquent entre eux via un réseau Evoluent de

Plus en détail

IFIPS 5 / Nouvelles Architectures Logicielles Projet : Bus de web services avec «moteur» BPEL

IFIPS 5 / Nouvelles Architectures Logicielles Projet : Bus de web services avec «moteur» BPEL IFIPS 5 / Nouvelles Architectures Logicielles Projet : Bus de web services avec «moteur» BPEL Un bus de services Un bus de services (ESB) permet d assembler des web services existants, le résultat de cet

Plus en détail

Java RMI. Programmation des applications réparties. Olivier Flauzac URCA. Master EEAMI-Informatique première année

Java RMI. Programmation des applications réparties. Olivier Flauzac URCA. Master EEAMI-Informatique première année Java RMI Programmation des applications réparties Olivier Flauzac URCA Master EEAMI-Informatique première année Olivier Flauzac (URCA) PAR : Java RMI MSTIC-INFO 1 1 / 30 1 RMI 2 Architecture 3 Développement

Plus en détail

Déclaration des mouvements de main-d œuvre par échange de données informatisées. Informations de mise en œuvre

Déclaration des mouvements de main-d œuvre par échange de données informatisées. Informations de mise en œuvre Ministère du Travail, des Relations sociales, de la Famille et de la Solidarité Déclaration des mouvements de main-d œuvre par échange de données informatisées Informations de mise en œuvre Mai 2008 1/11

Plus en détail

Systèmes d'informations historique et mutations

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

Plus en détail

Java c est quoi? Java. Java. Java : Principe de fonctionnement 31/01/2012. 1 - Vue générale 2 - Mon premier programme 3 - Types de Programme Java

Java c est quoi? Java. Java. Java : Principe de fonctionnement 31/01/2012. 1 - Vue générale 2 - Mon premier programme 3 - Types de Programme Java 1 - Vue générale 2 - Mon premier programme 3 - Types de Programme 1 2 c est quoi? Technologie développée par SUN Microsystems lancée en 1995 Dans un des premiers papiers* sur le langage JAVA, SUN le décrit

Plus en détail

Vulgarisation Java EE Java EE, c est quoi?

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

Plus en détail

Programmeur Java/XML

Programmeur Java/XML Renaud Fleury les Cahiers du Programmeur Java/XML Avec la contribution de Caroline de Vasson, de Frédéric Baudequin et Gaël Thomas Table des matières AVANT PROPOS...VII Quel est l objectif de cet ouvrage?

Plus en détail

CORBA avec OpenORB. Samir Torki et Patrice Torguet

CORBA avec OpenORB. Samir Torki et Patrice Torguet CORBA avec OpenORB Samir Torki et Patrice Torguet 1 Présentation de CORBA CORBA (Common Object Request Broker Architecture) est un standard décrivant une architecture pour la mise en place d objets distribués.

Plus en détail

Méthodes et Langages du Commerce Electronique

Méthodes et Langages du Commerce Electronique ITCE NFE 102 Année 2013-2014! Méthodes et Langages du Commerce Electronique F.-Y. Villemin (f-yv@cnam.fr) http://dept25.cnam.fr/itce Plan! Besoins du commerce électronique! L EDI! ebxml! Les Web Services!

Plus en détail

*4D, quand c est la solution qui compte. 4D démocratise les services Web

*4D, quand c est la solution qui compte. 4D démocratise les services Web *4D, quand c est la solution qui compte. 4D démocratise les services Web Table des matières I. INTRODUCTION page 3 II. VERS UNE DEFINITION DES SERVICES WEB 1. Qu est ce que c est? page 3 2. A quoi ça sert?

Plus en détail

Messagerie asynchrone et Services Web

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

Plus en détail

Services Web SOAP en Java

Services Web SOAP en Java Services Web SOAP en Java Fabrice Rossi http://apiacoa.org/contact.html. Université Paris-IX Dauphine Services Web SOAP en Java p.1/71 Plan du cours SOAP en Java 1. outils 2. programmation d un client

Plus en détail

NFP111 Systèmes et Applications Réparties

NFP111 Systèmes et Applications Réparties NFP111 Systèmes et Applications Réparties 1 de 16 NFP111 Systèmes et Applications Réparties Cours 10 - Les Enterprise Java Beans ( aux serveurs ) Claude Duvallet Université du Havre UFR Sciences et Techniques

Plus en détail

Sémantique formelle et synthèse de client pour services Web

Sémantique formelle et synthèse de client pour services Web Sémantique formelle et synthèse de client pour services Web Séminaire «Services Web» 24 Janvier 2006 sylvain.rampacek@univ-reims.fr CReSTIC LAMSADE Plan Introduction Services Web Description de la plate-forme

Plus en détail

Architectures web pour la gestion de données

Architectures web pour la gestion de données Architectures web pour la gestion de données Dan VODISLAV Université de Cergy-Pontoise Plan Le Web Intégration de données Architectures distribuées Page 2 Le Web Internet = réseau physique d'ordinateurs

Plus en détail

Examen terminal Architectures n-tiers : Intergiciels à objets et services web

Examen terminal Architectures n-tiers : Intergiciels à objets et services web GMIN20 - Juin 2013 Tous documents autorisés. Le barème est donné à titre indicatif. 1 Corba (5 points) Un fichier IDL vous est donné au listing 1. On vous donne aussi un fichier d implémentation au listing

Plus en détail

Programmation d applications distribuées

Programmation d applications distribuées Programmation d applications distribuées François Charoy Université Henri Poincaré 8 octobre 2007 Première partie I Développement d applications distribuées Objectifs du cours Comprendre ce qu est une

Plus en détail

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. 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

Plus en détail

Cahier de charges (Source : "Java EE - Guide de développement d'applications web en Java" par Jérôme Lafosse) Module. Site Web dynamique JSP / Servlet

Cahier de charges (Source : Java EE - Guide de développement d'applications web en Java par Jérôme Lafosse) Module. Site Web dynamique JSP / Servlet Cahier de charges (Source : "Java EE - Guide de développement d'applications web en Java" par Jérôme Lafosse) Module Site Web dynamique JSP / Servlet Sujet : betaboutique Soutenance le 04 / 01 /2013 &

Plus en détail

TP Java RMI. Alexandre Denis Alexandre.Denis@inria.fr. Inria Bordeaux Sud-Ouest France ENSEIRB PG306

TP Java RMI. Alexandre Denis Alexandre.Denis@inria.fr. Inria Bordeaux Sud-Ouest France ENSEIRB PG306 TP Java RMI Alexandre Denis Alexandre.Denis@inria.fr Inria Bordeaux Sud-Ouest France ENSEIRB PG306 Paradigme RMI RMI (Remote Method Invocation) RPC orientés objet (encapsulation, héritage,...) objet :

Plus en détail

Introduction XML-RPC SOAP Approche REST. Programmation WEB. Services Web en php. Programmation licence. IUT de Fontainebleau.

Introduction XML-RPC SOAP Approche REST. Programmation WEB. Services Web en php. Programmation licence. IUT de Fontainebleau. Services Web en php IUT de Fontainebleau 15 mars 2014 1 Introduction 2 3 4 1 Introduction 2 3 4 Introduction De plus en plus de sites mettent à disposition des données, et leurs gestions, des fonctionnalités

Plus en détail

Les serveurs d applications :une introduction

Les serveurs d applications :une introduction Les serveurs d applications : une introduction Université du Havre UFR Sciences et Techniques 25 rue Philippe Lebon - BP 540 76058 LE HAVRE CEDEX Claude.Duvallet@gmail.com Octobre 2006 Plan de la présentation

Plus en détail

Tour d horizon de Java EE 6

Tour d horizon de Java EE 6 1 Tour d horizon de Java EE 6 De nos jours, les entreprises évoluent dans une compétition à l échelle mondiale. Elles ont besoin pour résoudre leurs besoins métiers d applications qui deviennent de plus

Plus en détail

24/11/2011. Cours EJB/J2EE Copyright Michel Buffa. Plan du cours. Programmer avec Java EE. Besoins des développeurs. Prérequis / Objectifs

24/11/2011. Cours EJB/J2EE Copyright Michel Buffa. Plan du cours. Programmer avec Java EE. Besoins des développeurs. Prérequis / Objectifs Plan du cours 2 Introduction générale EJB : les fondamentaux Programmer avec Java EE Introduction générale Michel Buffa (buffa@unice.fr), UNSA 2011, modifié par Richard Grin (version 1.0), avec emprunts

Plus en détail

UNIVERSITÉ DU QUÉBEC EN OUTAOUAIS

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

Plus en détail