Introduction aux services WEB Master Miage SID Université NANCY2 Problématique Methode1() Hôte n°1 Methode2() Methode1() Hôte n°2 Methode2() objet objet CLIENT SERVEUR Historique • CORBA – – – – Common Object Request Broker Architecture OMG IDL / Protocoles d'échanges "Usine à gaz", top-down… • RMI – Remote Method Invocation – Simple – Java • DCOM – Distributed Component Object Model – Microsoft – Port/Firewall Mécanisme invocation Serveur (Web service) Client sérialisation objet + méthode Mécanisme Client Serveur (Web service) réponse sérialisation objet Exécution de la méthode (RPC) Concrètement SOAP/XML Client SOAP/XML Serveur (Web service) Contenu des messages ASCII Concrètement HTTP Client HTTP Serveur (Web service) Transport des messages PB de FIREWALL Intérêt • Bottom-up – S'appuie sur des technologies bien ancrées: XML, HTTP • Procède par évolution (révolution) – SOAP, RPC,… • Rassemblement des plus grands acteurs pour définir les standards et offrir les outils: – IBM, ORACLE, MICROSOFT, BEA, SUN,… – WSI (Web Services Interoperability Organization) Cadre général • Systèmes patrimoniaux – – – – Legacy system Protection de l’investissement logicielle dans le temps Approche sous forme de composants (brique) Cohabitation des composants (agrégation applicative) • Urbanisation des systèmes – Communication avec les systèmes d’information des partenaires (clients, fournisseurs, sous-traitants,…) – B-to-B – Interopérabilité (indépendant des langages et des plateformes) Architecture répartie • Application = assemblage de services • Combinaison de services – Internes – Ou externes • Tout interne : EAI (Intégration d'applications d'entreprise) • Tout externe : Portail d'entreprise Exemple "Comparateur de prix" Distributeur (1) prix/produits Comparateur Client Distributeur (n) Exemple "Agence de voyage" Réservation hôtel prix/disponibilités Agence Client Réservation transport Architecture typique Fournisseur (1) Invocation d'un service Fournisseur (2) Enregistrement Serveur Interrogation de service Annuaire Client Définition • Web service : – Middleware Internet qui permet de connecter les applications des entreprises à celles de leurs clients et partenaires – Ensemble de spécifications de composants permettant l’interopérabilité des applications Technologies JAX-RPC XML XSLT SAX DOM SOAP JAXR JAXB HTTP BEANS TOMCAT WSDL UDDI RMI JAVA SERVLET JSP ANT Plates-formes Visual Studio .NET Framework NetBean … Eclipse JAX-WS J2EE .NET SOAP/ XML HTTP AXIS XFIRE Un mot sur .NET GlassFish JAX-WS HTTP J2EE SOAP/ XML XFIRE (CodeHaus) ColdFusion (Macromedia) WEBSPHERE (IBM) WEBLOGIC (BEA) Un mot sur J2EE JAX-RPC Architecture applicative Client (Java/Swing) Serveur (Web service) Architecture applicative Client (Perl|Python|C#) Serveur (Web service) Architecture applicative Navigateur Conteneur Web (Tomcat, JSP|Servlet) Serveur (Web service) Architecture applicative Client- WAP (J2ME) Serveur (Web service) Cadre conceptuel • Service Oriented Architecture (SOA) – Client / Prestataire – Contrat CLIENT PRESTATAIRE contrat implémentation interface Références • Services Web avec J2EE et .NET, conception et implémentation. L. Maesano et al… Eyrolles • The Java Web Services Tutorial. E. Amstrong et al.. (http://java.sun.com/webservices/) • JAVA et SOAP. R. Englander. O’Reilly • Java Web Services For Experienced Programmers. H. M. Deitel et al… Prentice Hall