Apache eXtensible Interaction System Successeur d’Apache SOAP Réalisé par Sothear Seng IR3 Novembre 2003 1 Plan Qu’est ce SOAP (Simple Object Access Protocol) ? Comment est né le projet Axis ? Qu’est ce que Axis ? Installation d’ Axis Développement avec Axis 2 Qu’est ce que SOAP ? (Simple Object Access Protocol) Protocole de communication basée sur XML pour accéder aux services Web Simple et léger -> Repose entièrement sur des standards établis (HTTP & XML) -> Spécification non propriétaire -> Portable -> Inter opérable Fonctionne sur l’infrastructure existante 3 Fonctionnement de SOAP (1/2) Définit un format pour l’envoi des messages -> Message SOAP structuré en un document XML -> 2 éléments obligatoires : Une enveloppe et un corps ( une entête facultative) 4 Dialogue RPC encodé par SOAP (1/2) 5 Dialogue RPC encodé par SOAP (2/2) 6 Fonctionnement de SOAP 7 Comparaison avec Corba Performances Corba Soap Résultats En local 687 ms 10224 ms 14 fois plus lent A distance 1768 ms 10601 ms 6 fois plus lent Remarques -> pas de services complexes : la communication bidirectionnelle, l’activation à distance, le garbage collector… -> performance moindre en temps de réponse -> peu extensible 8 Naissance du projet Axis (successeur de SOAP) 2000 Un peu d’historique IBM crée la première spécification SOAP pour Java IBM fait don de SOAP à Apache qui rebaptise le projet en Apache SOAP 2001 Succès de Apache SOAP V2.2 (Sun et IBM l’intègre dans leur serveur d’application J2EE) Révision d’Apache SOAP et étude d’un successeur à SOAP 2002 Avril 2002, version béta 2 d’AXIS Aujourd’hui, version 1.0 d’AXIS 9 Qu’est ce que Axis ? Package qui fournit : - le serveur Axis - plugin de moteur de servlet (Tomcat) -> Environnement d’hébergement de services Web Toolkit complet de développement pour la création de services - API pour développer des services web à base de message SOAP - la serialisation /désérialisation automatique d’objets Java dans des messages SOAP - outils pour déployer, tester et monitorer des web-services Le serveur Axis doit être hébergé au sein d ’un conteneur Web - Apache Tomcat 10 Objectifs d ’Axis Architecture modulaire et extensible Performances améliorées : temps de réponse et occupation mémoire - Axis s ’appuie sur un parseur plus performant pour l ’analyse des flux XML (SAX- Simple API for XML Parsing). Support complet de SOAP 11 Architecture d ’Axis 1/2 Architecture modulaire composée de plusieurs sous systèmes distincts Une hiérarchie à 2 couches principales et un moteur Axis: - couche 1 : sous système de flot de message - couche 2 : sous système spécialisés - moteur Axis : orchestration des différents sous systèmes Vue générale des sous systèmes du moteur AXIS 12 Architecture d ’Axis 2/2 Fonctionnement du moteur Axis pour l ’échange et le traitement des messages Système d ’échange et de traitement des messages autour de 3 concepts clés : Message - Flot - Traitement Flot et traitement des messages au sein du moteur du serveur Axis 13 Installation d’Axis http://archive.apache.org/dist/ws/axis/1_0 Contenu de l’archive: - Documentation HTML et des API Javadoc du framework (docs/) - bibliothèque Java composant le framework (/lib/) - une série d’exemples et de tutoriels (samples/) Nécessite un parseur XML : Xerces.jar Environnement d’exécution particulier : - Tomcat (conteneur de Servlet) - autre serveur d’application J2EE 14 Déploiement d’Axis Copier l’application Web d’Axis (webapps/axis) dans le répertoire d’applications Web de Tomcat (<Tomcat install. Dir/webapps/) Copier dans le répertoire common/lib/ de Tomcat l’archive JAR du parseur XML. Par ex: XERCES.jar 15 Développement d’un service JWS avec Axis Développement avec Axis : JWS (Java Web Service) - Système de développement simplifié de service Web - Renommer le fichier source .java en fichier .jws - Copier ce fichier vers le répertoire WEB-INF de l’application Web d’AXIS. - Génération automatique de fichiers d’interfaces java - Le service est prêt à être utilisé Exemple : Service de diagnostic de poids : calcul l’indice de masse corporelle [poids /(taille)²] 16 Plus d’infos ? Lien vers Axis - http://xml.apache.org/axis Livre - Axis : Next generation Java Soap par Romin Irani (prix 6,19 $) Edition PaperBack Lien vers SOAP - www.w3.org/TR/SOAP 17 Questions ? 18