Les plateformes de développent des web services Élaboré par: Elsoltani Ahlem Tbini Marwa Matière: E-Services Année universitaire 2011-2012
Plan 1-Introduction 2- Définition des web services 3- Ensembles de plateformes d’implémentation des web services 3-1 Les plateformes .Net a) caractéristiques b) Les composants principaux 3-2 Les plateformes Java: a) JWSDP a.1 Les outils a.2 Les APIs b) JAVA 2EE 3-3 les différences d'approche entre les plateformes .NET et java2EE 3-4 Les plateformes Apache : Open Source a) Axis b) Axis 2 c) Apache CXF 4- Limites des web services Conclusion Références
1-Introduction Le web services est une nouvelle technologie WEB permettant l’invocation de fonctions distantes, présentes sur des systèmes distribués et hétérogènes, grâce au protocole HTTP et à XML. C’est un mécanisme de communication entre serveurs de données et applications selon une architecture orientée services(SOA). Les web services présentent l’avantage d’être indépendants des plateformes et réutilisables Les Web Services sont en fait un sujet complexe, intégrant plusieurs domaines informatiques (documents, sécurité, programmation, implémentation, etc.). Le nombre de normes est impressionnant, mais il est dépassé par la multitude de solutions d'implémentation. Lors de cette présentation, nous essaierons de faire un survol sur quelques plateformes d'implémentations des web services .
2- Définition des web services Un "Service Web" est une application logicielle à laquelle on peut accéder à distance à partir de différents langages basés sur XML. Un "Service Web" est identifié par une URL, comme n'importe quel site Web. Il s'exécute sur un "Serveur d'Applications". Peu importent l'ordinateur, le système d'exploitation ou le langage utilisés par le Client ! Une application peut ainsi utiliser plusieurs «Services Web » s'exécutant sur des serveurs distants. De nombreuses normes sous-tendent cette architecture : "SOAP" pour l'échange de messages, "XML" langage de base pour décrire tous les documents sur lesquels les messages sont construits, "HTTP" pour transporter les messages, "WSDL" pour décrire les services et enfin "UDDI" pour les publier. L’approche "Services Web" constitue un changement fondamental dans la manière de concevoir et réaliser les applications informatiques et de programmer les ordinateurs. A court terme, il est probable que cette approche se substitue aux architectures et systèmes basés sur des LAN ou sur Internet.
3- Plateformes d’implémentation des web services Il existe de nombreuses implémentations possibles de moteurs SOAP permettant la mise en œuvre de services web avec Java notamment plusieurs solutions open source: Plateformes .Net Intégrées à la plate-forme Java EE 5.0 et Java SE 6.0 JWSDP de Sun Axis et Axis 2 du projet Apache XFire CXF du projet Apache JBoss WS Metro du projet GlassFish
3-1 Les plateformes .Net: a) caractéristiques Commercialisé en 2000 par MicroSoft. fournit des services intégrés, accessibles depuis tous ses périphériques, à tout moment et en tout lieu. Fondé sur des standards de l'industrie (http, XML, SOAP, WSDL), Un moyen simple pour normaliser la coopération des services logiciels entre eux (services Web XML), quelle que soit leur localisation, leur implémentation technique, qu'ils soient internes ou externes, existants ou à inventer. »
b) Les composants principaux : – Common Language Runtime (CLR): est un environnement d'exécution sécurisé et robuste qui supporte du code écrit dans différents langages (C++, VB, C#, Pascal, Cobol ...) et simplifie le développement, la gestion et le déploiement d'applications. – Common Interface Layer (CIL): le code .NET est compilé dans un langage de bas niveau appelé Intermediate Language ou Microsoft Intermediate Language (MSIL) : ce code IL est ensuite compilé dans du code natif au moment de l'exécution. Ce qui signifie que quel que soit le langage utilisé dans votre programme, vos exécutables et DLL seront toujours déployés sous la forme de code IL ; il n'y a donc aucune différence entre un composant écrit en C# et en VB .NET.
3-2 Les plateformes Java: La formation « Web services avec Java » apporte aux développeurs de clients et de composants d'entreprise les connaissance nécessaires pour créer, implémenter et déployer des services Web et des clients de services Web en utilisant les composants Java et le SDK de la plate-forme Java Enterprise Edition.
a) Java Web Service Development Pack (JWSDP) C’est un ensemble d'outils et d'API (Application Programming Interface) fournis par Sun qui permet de faciliter le développement, le déploiement et le test des services web et des applications web avec Java. a.1 Les Outils: Apache Tomcat Java WSDP Registry Server (serveur UDDI) Web application development tool Apache Ant wscompile, wsdeploy, Etc ... La plupart de ces éléments peuvent être installés manuellement séparément. Le JWSDP propose un pack qui les regroupe en une seule installation et propose en plus des outils spécifiquement dédiés au développement de services web.
a.2 Les API: Application Programming Interface API Java permettant de transporter des messages SOAP en mode RPC. JAXP: API pour le traitement de documents XML : analyse en utilisant SAX ou DOM et transformation en utilisant XSLT. JAX-RPC: API pour le développement de services web utilisant SOAP avec le style RPC JAXM: API pour le développement de services utilisant des messages XML orientés documents JAXR: API pour permettre un accès aux annuaires de référencement de services web JAXB: API et outils pour automatiser le mapping d'un document XML avec des objets Java StaX: API pour le traitement de documents XML Etc…
b) JAVA2EE: pour Java 2 Enterprise Edition Développé par Sun Microsystems autour du célèbre langage Java, J2EE est en fait une spécification que n'importe quel éditeur de logiciels peut implémenter dans une plate-forme de développement. Sa mise en œuvre et son efficacité peuvent donc varier en fonction de l'implémentation retenue. Les serveurs J2EE les plus connus actuellement sur le marché sont notamment ceux d'IBM (Web Sphère), BEA (WebLogic), Sun (iPlanet), Oracle ou encore Silverstream. L'architecture J2EE est le nom générique utilisé pour couvrir plus d'une dizaine de services techniques. Ces services définissent par exemple comme accéder à un annuaire, à une base de données, comment faire dialoguer des machines virtuelles Java ou encore quelles interfaces un composant doit présenter pour être réutilisable dans un tel environnement.
La force de Sun est d'avoir regroupé derrière son standard de nombreuses sociétés concurrentes et rivales entre elles. Complète, portable et évolutive, cette solution souffre toutefois de la volonté de Sun de toute passer à la moulinette Java ce qui rend on architecture très hermétique et parfois assez lente.
3-4 les différences d’approche entre les plateformes .NET et java2EE A la différence de .Net qui, par essence, se limite à Windows, J2EE est portable d'un système d'exploitation à l'autre. Un point qui, dès l'origine, a été mis en avant par Sun comme l'une des principales valeurs ajoutées de son infrastructure. Initialement, Java a d'ailleurs été élaboré pour répondre précisément à cet enjeu. Dans la même logique, J2EE facilite également le portage d'une application Java entre serveurs d'applications, pour peu que ces derniers répondent aux spécifications définies par Sun dans ce cadre. Malgré son caractère mono-système d'exploitation, .Net offre un avantage de taille sur J2EE : son noyau permet d'exécuter des applications développées dans n'importe quel langage, à partir du moment où Microsoft a décidé de le supporter. C'est notamment le cas avec le Python ou encore le Cobol.
3-3 Les plateformes Apache: Open Source Il existe de nombreuses implémentations possibles de moteurs SOAP permettant la mise en œuvre de services web avec Java notamment plusieurs solutions open source:
a) Axis (Apache extensible Interaction System) Axis (Apache eXtensible Interaction System) est un projet open-source du groupe Apache diffusé sous la licence Apache 2.0 qui propose une implémentation d'un moteur de service web qui implémente le protocole SOAP . Son but est de proposer un ensemble d'outils pour faciliter le développement, le déploiement et l'utilisation des services web écrits en java. Il permet notamment de générer automatiquement le fichier WSDL à partir d'une classe java et le code nécessaire à l'appel du service web.
b) Axis 2 (Apache extensible Interaction System : version 2) C’est le successeur du projet Axis : le projet a été complètement réécrit pour proposer une architecture plus modulaire. Il propose un modèle de déploiement spécifique : les services web peuvent être packagés dans un fichier ayant l'extension .aar (Axis ARchive) ou contenus dans un sous répertoire du répertoire WEB-INF/services. Le runtime d'Axis 2 est une application web qui peut être utilisé dans n'importe quel serveur d'applications Java EE et même un conteneur web comme Apache Tomcat. Des modules complémentaires permettent d'enrichir le moteur en fonctionnalités notamment le support de certaines spécifications WS.
c) Apache CXF (Celtix & Xfire) Apache CXF est né de la fusion des projets XFire et Celtix. CXF propose un support de plusieurs standards des services web notamment, SOAP 1.1 et 1.2, WSDL 1.1 et 1.2, le WS-I Basic Profile, MTOM, WS-Addressing WS-Policy, WS-Reliable Messaging,et WS-Security. CXF propose plus qu'une implémentation d'un moteur SOAP en proposant un framework complet pour le développement de services Ses principaux objectifs sont la facilité d'utilisation, les performances, l'extensibilité et l'intégration dans d'autres systèmes.
4- Limites des web services Les web services ne traitent que la syntaxe et pas la sémantique. L’utilisation d’XML permet de structurer et spécifier les étapes dans la construction d’un document. Ils ne permettent pas de spécifier le sens à donner au document. Les web service ne sont qu’un mécanisme de transfert de données/ d’informations d’un système à l’autre. Les web services n’apportent, en aucun cas, plus de valeurs à l’information déjà possédée. Il permettent juste une meilleure diffusion auprès des clients et des fournisseurs. Il est difficile de composer des services complexes avec d’autres services existants Sécurité et confiance, la présence d’un fournisseur dans les pages jaunes n’est pas forcément une garantie de qualité, d’honnêteté. La consommation automatique de services pour des fonctions critiques peut être néfaste pour l’entreprise Les avantages compétitifs des web services sont indéniables, s’il existe une véritable problématique d’intégration d’applications ou d’intégration verticale. Mais il ne sert à rien de partager des informations dont personne ne veut
conclusion Les services Web sont des technologies émergentes et prometteuses pour le développement, le déploiement et l’intégration d’applications Internet. Ces technologies, basées sur XML, fournissent une infrastructure pour décrire (WSDL), découvrir (UDDI), invoquer (SOAP)…. La puissance de la technologie informatique augmente de façon continue, la question ici quel est le futur des plateformes et quelles sont les moyens nécessaires pour avoir un web service bien sécurisé?
http://msdn.microsoft.com/fr-fr/library/aa480728.aspx http://www.jmdoudoux.fr/java/dej/chap-java_dotnet.htm http://www.jmdoudoux.fr/java/dej/chap-service-web.htm http://ws.apache.org/axis/ http://ws.apache.org/axis2/ http://beehive.apache.org/docs/1.0m1/wsm/tutorial_wsm.html http://today.java.net/pub/a/today/2005/05/10/axiom.html http://java.sun.com/webservices/jwsdp/index.jsp
Merci pour votre attention