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



Documents pareils
Institut Supérieur de Gestion. Cours pour 3 ème LFIG. Java Enterprise Edition Introduction Bayoudhi Chaouki

Manuel d implémentation des Web Services Sous Axis1 et Axis2/Tomcat/linux. Par Pr Bouabid EL OUAHIDI

RMI. Remote Method Invocation: permet d'invoquer des méthodes d'objets distants.

Cours Master Recherche RI 7 Extraction et Intégration d'information du Web «Services Web»

RMI le langage Java XII-1 JMF

Environnements de Développement

Messagerie asynchrone et Services Web

Introduction aux «Services Web»

Architecture Orientée Service, JSON et API REST

IFT287 Exploitation de base de données relationnelles et orientées objet. Laboratoire Mon premier programme Java en Eclipse

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

J2EE - Introduction. Développement web - Java. Plan du chapitre

Les Architectures Orientées Services (SOA)

WEBSERVICES. Michael Fortier. Master Informatique 2ème année. A308, Université de Paris 13

Remote Method Invocation Les classes implémentant Serializable

SOAP Concepts Application à Glassfish

Création d un service web avec NetBeans 5.5 et SJAS 9

Programmation Web Avancée Introduction aux services Web

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

Remote Method Invocation (RMI)

Remote Method Invocation en Java (RMI)

Apache Camel. Entreprise Integration Patterns. Raphaël Delaporte BreizhJUG

Compte Rendu d intégration d application

Avant-propos 1. Avant-propos Organisation du guide À qui s'adresse ce guide?...4

contact@nqicorp.com - Web :

Le cadre des Web Services Partie 1 : Introduction

4. SERVICES WEB REST 46

JOnAS 5. Serveur d application d

Approche Contract First

Calcul Parallèle. Cours 5 - JAVA RMI

Urbanisme du Système d Information et EAI

Android et le Cloud Computing

La base de données XML exist. A. Belaïd

Urbanisation des SI Conduite du changement IT 20/03/09. Patrick CHAMBET

Mise en œuvre des serveurs d application

Intergiciel - concepts de base

1. Installation d'un serveur d'application JBoss:

Auto-évaluation Aperçu de l architecture Java EE

Introduction à la plateforme J2EE

Business Process Execution Language

Les Services Web. Jean-Pierre BORG EFORT

Architecture SOA Un Système d'information agile au service des entreprises et administrations

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

Extension SSO Java. Cette note technique décrit la configuration et la mise en œuvre du filtre de custom SSO Java.

Page 1 sur 5 TP3. Thèmes du TP : l la classe Object. l Vector<T> l tutorial Interfaces. l Stack<T>

Création d une application JEE

Refonte front-office / back-office - Architecture & Conception -

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

JADE : Java Agent DEvelopment framework. Laboratoire IBISC & Départ. GEII Université & IUT d Evry nadia.abchiche@ibisc.univ-evry.

Configuration sous Microsoft Outlook

TP JEE Développement Web en Java. Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web.

Le MSMQ. Version 1.0. Pierre-Franck Chauvet

La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1

La démarche SOA et l interopérabilité applicative

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

TP Composants Java ME - Java EE. Le serveur GereCompteBancaireServlet

Conception de serveurs d'applications ouverts

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp

Systèmes répartis. Fabrice Rossi Université Paris-IX Dauphine. Systèmes répartis p.1/49

Web Tier : déploiement de servlets

TP1 : Initiation à Java et Eclipse

TD Objets distribués n 3 : Windows XP et Visual Studio.NET. Introduction à.net Remoting

Java RMI. Arnaud Labourel Courriel: Université de Provence. 8 mars 2011

Formation Webase 5. Formation Webase 5. Ses secrets, de l architecture MVC à l application Web. Adrien Grand <jpountz@via.ecp.fr> Centrale Réseaux

Cette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris :

Les nouvelles architectures des SI : Etat de l Art

Objectif : Passer de l analyse métier et fonctionnelle à la définition des applications qui

COMPRENDRE L ARCHITECTURE DES WEB SERVICES REST. Amosse EDOUARD, Doctorant

2 Chapitre 1 Introduction

Java Naming and Directory Interface

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre Enrica.Duchi@liafa.jussieu.fr

SPECIFICATIONS TECHNIQUES : Gestion des Médicaments et des commandes de médicaments

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

TP3. Mail. Attention aux fausses manoeuvres lors de ce TP vous pouvez endommager votre mail sur ouindose.

Principes. 2A-SI 3 Prog. réseau et systèmes distribués 3. 3 Programmation en CORBA. Programmation en Corba. Stéphane Vialle

Projet. But: consultation en temps réel d événements (cours de bourse, trafic d envoi SMS ) sur des téléphones portables. Serveur de diffusion

Problématiques de recherche. Figure Research Agenda for service-oriented computing

Tutoriel : Comment installer une compte (une adresse ) sur un logiciel de messagerie (ou client messagerie)?

Programmation Orientée Objet

Utiliser le portail d accès distant Pour les personnels de l université LYON1

ACTIVITÉ DE PROGRAMMATION

Applications et Services WEB: Architecture REST

Projet gestion d'objets dupliqués

LES ACCES ODBC AVEC LE SYSTEME SAS

Application web de gestion de comptes en banques

Configuration de Outlook Express 6 pour utilisation avec belgacom.net

Assistance à distance sous Windows

24/11/2011. Cours EJB/J2EE Copyright Michel Buffa. Plan du cours. EJB : les fondamentaux. Enterprise Java Bean. Enterprise Java Bean.

Développement d'un logiciel VoIP BlackBerry

Cours 1: Java et les objets

Application Web et J2EE

Configuration de tous les systèmes d exploitations

Europa. Développement JEE 5. avec Eclipse. K a r i m D j a a f a r. A v e c l a c o n t r i b u t i o n d e O l i v i e r S a l v a t o r i

Dis papa, c est quoi un bus logiciel réparti?

XML, PMML, SOAP. Rapport. EPITA SCIA Promo janvier Julien Lemoine Alexandre Thibault Nicolas Wiest-Million

Evaluation Idéopass Cahier d analyse technique

SIO Page 1 de 5. Applications Web dynamiques. Prof. : Dzenan Ridjanovic Assistant : Vincent Dussault

Plateforme PAYZEN. Définition de Web-services

Application de lecture de carte SESAM-Vitale Jeebop

Transcription:

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 une technologie Java mais spécifiée par le W3C (http://www.w3.org/2002/ws/) Mais Java EE propose une API pour faire des web services JMF (Tous droits réservés) 2

Une architecture fournisseur de services 1. publication d'une annonce annuaire 2. recherche d'un service 3. mise en correspondance client JMF (Tous droits réservés) 3

Une architecture standardisée C'est une architecture orientée services = SOA = Service Oriented Architecture = un ensemble de protocoles et de composants logiciels pour utiliser une architecture orientée services Qui définit donc : le format des messages, les spécifications pour définir un client, un fournisseur de services, l'accès au service d'annuaire, la communication entre client et fournisseur de services, etc. JMF (Tous droits réservés) 4

Services web (= web services) WSDL = Web Services Description Language = format XML pour décrire un service web SOAP = Simple Object Access Protocol = protocole d'envoi de messages formatés en XML entre web services La couche transport utilisé est soit HTTP (d'où le nom de web services) soit SMTP (i.e. le mail) échange de messages synchrones (en attente de réponse) ou asynchrone (publication, lecture de réponse plus tard) UDDI = Universal Description Discovery and Integration = annuaire de services pour utiliser les services Web. JMF (Tous droits réservés) 5

Un environnement pour des WS : Axis Page d'accueil : http://axis.apache.org/axis/ Axis est un environnement de développement et d'exécution pour WS (classes pour faire des services et clients WS) mais aussi une application Web Voir tutorial d'axis à http://axis.apache.org/axis/java/user-guide.html JMF (Tous droits réservés) 6

Développement d'un client et serveur WS Le serveur sera encapsulé dans l'appli web Axis Le client est un programme Java Un serveur complet : Reponse.jws public class Reponse { public String reponds(string st) { return "bonjour " + st; } } public String discoucou() { return "Coucou "; } Ben oui c'est une classe Java. Le fichier doit avoir pour extension.jws JMF (Tous droits réservés) 7

Le serveur WS Reponse.jws Il est placé dans l'application web Axis Qui a la première utilisation, va compiler ce fichier Java, exécuter la méthode appelée et retourner le résultat (si tout se passe bien!) Une manière d'accéder à ce Web Service et, dans un client web, de demander la page d'url : http://localhost:8080/axis/reponse.jws Une démonstration SVP. OK! (si pb voir le port 7777!) Pourquoi cela fonctionne? Réponse : en fait tout ce qui se termine par.jws est traité par la servlet AxisServlet (voir le web.xml de l'application web Axis) JMF (Tous droits réservés) 8

Le client WS HelloClient.java package hello; import org.apache.axis.client.call; import org.apache.axis.client.service; import org.apache.axis.encoding.xmltype; import org.apache.axis.utils.options; import javax.xml.rpc.parametermode; public class HelloClient { public static void main(string [] args) throws Exception { Options options = new Options(args); String endpoint = "http://localhost:" + options.getport() + "/axis/reponse.jws"; args = options.getremainingargs(); if (args == null args.length!= 1) { System.err.println("Usage: java HelloClient [nom]"); return; } String nom = args[0]; Service service = new Service(); Call call = (Call) service.createcall(); call.settargetendpointaddress( new java.net.url(endpoint) ); call.setoperationname( "reponds" ); call.addparameter( "st", XMLType.XSD_STRING, ParameterMode.IN ); call.setreturntype( XMLType.XSD_STRING ); String ret = (String) call.invoke( new Object [] { nom }); } } System.out.println("resultat retourné : \n" + ret); JMF (Tous droits réservés) 9

Le client WS HelloClient2.java package hello; import org.apache.axis.client.call; import org.apache.axis.client.service; import org.apache.axis.encoding.xmltype; import org.apache.axis.utils.options; import javax.xml.rpc.parametermode; public class HelloClient2 { public static void main(string [] args) throws Exception { Options options = new Options(args); String endpoint = "http://localhost:" + options.getport() + "/axis/reponse.jws"; args = options.getremainingargs(); Service service2 = new Service(); Call call2 = (Call) service2.createcall(); call2.settargetendpointaddress( new java.net.url(endpoint) ); call2.setoperationname( "discoucou" ); call2.setreturntype( XMLType.XSD_STRING ); String ret2 = (String) call2.invoke(new Object [] { } ); } } System.out.println("resultat retourné : \n" + ret2); JMF (Tous droits réservés) 10

Et XML (SOAP) dans tout çà? Nous n'avons fait que (!) de la programmation Java. Quid de SOAP? En fait les messages échangés entre le client et le serveur WS sont en SOAP Si, si JMF (Tous droits réservés) 11

TCPMonitor : tcpmon Axis propose un outil qui permet de voir les messages TCP échangés entre un client et un serveur : TCPMonitor Il suffit d'indiquer que le client envoit les messages à... TCPMonitor, que TCPMonitor envoit les messages au serveur, et tout échange entre client et serveur est tracé dans cet outil. On lance cet outil par : java org.apache.axis.utils.tcpmon JMF (Tous droits réservés) 12

Utilisation de TCPMonitor Le client est programmé par : (1/4) String endpoint = "http://localhost:7777" + "/axis/reponse.jws";... Service service2 = new Service(); Call call2 = (Call) service2.createcall(); call2.settargetendpointaddress( new java.net.url(endpoint) );... Lorsque TCPMonitor est lancé on obtient le premier écran : JMF (Tous droits réservés) 13

Utilisation de TCPMonitor (2/4) Indiqué le port écouté dans le champ de texte qui suit dans Listen Port #. Ici 7777 Et cliquer le bouton Add JMF (Tous droits réservés) 14

Utilisation de TCPMonitor (3/4) Dans le nouvel onglet obtenu, cocher XML Format (et Switch Layout) Puis lancer le client Les messages véhiculés entre client et serveur sont affichés JMF (Tous droits réservés) 15

Utilisation de TCPMonitor (4/4) JMF (Tous droits réservés) 16

Bibliographie Web services http://fr.wikipedia.org/wiki/service_oriented_arch itecture http://docs.oracle.com/javaee/7/tutorial/doc/partw ebsvcs.htm#bnayk : la partie du Java EE 7 tutorial consacrée aux services web http://www.w3.org/2002/ws/desc/ : page d'accueil du "Web Services Description Working Group" http://axis.apache.org/axis/ : implémentation open source Axis pour construire des services web JMF (Tous droits réservés) 17

Bibliographie Java EE La littérature est énorme mais les bibles se trouvent à : Site originel http://www.oracle.com/technetwork/java/javaee/over view/index.html Tutorial à http://docs.oracle.com/javaee/7/tutorial/doc/ JMF (Tous droits réservés) 18

Conclusion de cette présentation Dans cette présentation, on a abordé : RMI : invocation de méthodes distantes Servlet et Java Server Pages (JSP) adaptés à la construction de site web dynamiques Web services en Java On aurait pu aborder JMS : service de messagerie JNDI : service de nommage JDBC : connection avec les bases de données EJB : définit la façon dont les composants doivent être écrit et le contrat qu ils doivent respecter avec le serveur d application JMF (Tous droits réservés) 19

Fin JMF (Tous droits réservés) 20