Post on 07-Jun-2015
DEI
Référence :Page : 1
Web Services
Présentation et cas d’usage.
DEI
Référence :Page : 2
Les concepts Les standards technologiquesLa conception d’un service web / J2EELimites, questions essentiellesAu delà du simple service webRéférences DEILab
Les Web Services
DEI
Référence :Page : 3
Les Concepts Contexte C’est quoi un service ? C’est quoi un web service ? Avantages Nouveaux rôles
Les Web Services
DEI
Référence :Page : 4
Problématique posée : interaction entre des applicatifs distants, hétérogènes,
dans des contextes multi-entreprises
Historiquement : DCOM CORBA-IIOP MOM
Solution : an 2000, initiative Web Service s ’organise autour des leaders de l’informatique (IBM, SUN, HP, SAP, …) et les organismes de normalisation (W3C, OASIS, WS-I) avec pour objectif de normaliser les techniques de communication entre les applicatifs distribués
Web Services / Contexte
DEI
Référence :Page : 5
Web Services / Définitions
Service
Un service est une fonction qui reçoit des messages et qui les restitue après traitement
Abstrait. L ’implémentation interne est masquée au consommateur (boîte noire).
Les modalités d’utilisation sont décrites dans un contrat contraintes sécurité, aspects transactionnels, Localisation
Réutilisable / Fonctionnalités mutualisées
Sans état / Autonome ne nécessite pas la présence d ’un contexte d ’exécution
Combinable
Administrable Gourvernable
‘ C ’est un niveau logique d ’accès aux traitements ’
‘ Seul le contrat importe ’
DEI
Référence :Page : 6
Web Services / Typologie
Typologie des services
Services de données (exposition de silos de données)
Services intermédiaires (façades, adaptateur technologique pour legacy)
Services unités de traitement (logique applicative, processus back office)
Service d’entreprise (ouverture du SI)
Service d’infrastructure (authentification, traces, …)
DEI
Référence :Page : 7
Web Services / Découverte
Le concept de service intervient à plusieurs niveaux dans l ’architecture du SI.
DEI
Référence :Page : 8
Web Services / Découverte
Service Métier
Correspond à un périmètre fonctionnel que l’on souhaite exposé
Sens pour le métier (ie, pour maîtrise d ’ouvrage)
Découvert et spécifié au moment de la modélisation des processus (cahier des charges - diagrammes d ’activités) Usage métier / fonctionnel
exposition d ’une fonctionnalité à des organisations clientes tierces qui consomment le service
Usage technique Indépendant des choix d’architecture applicatives Un processus permet d ’enchaîner un ou plusieurs service métier
DEI
Référence :Page : 9
Web Services / Découverte
Service exposé par une catégorie (BusinessService - FWK)
Issu d’un travail d’architecture applicative
Découverts à partir des catégories UML
Son implémentation se base sur la sollicitation d ’une ou plusieurs entités physiques (composants)
DEI
Référence :Page : 10
Web Services / Définitions
Web Service
C ’est un service ...
Accessible depuis Internet/Intranet (dont le contrat et les modalités d ’invocations sont basées sur des standards technologiques, à savoir ceux du WEB)
HTTP (Hyper Text Transport Protocol) XML (eXtensible Markup Language) WSDL (Web Service Description Langage) SOAP
Utilise XML pour l’encodage des données échangées, N’est lié à aucun système d’exploitation ni aucun langage de programmation.
Usage est restreint aux services métiers (« coarse grained »)
DEI
Référence :Page : 11
Web Services / usage des web services
Fourniture d’informations aux briques du SI Partage d’information. Exposition des référentiels.
Services payant (créer de la business value) Transaction payante pour les clients. Système de réservation, système de vérification de crédit etc…
Externalisation de processus Echange d’information avec les partenaires et intégration des processus. Les WS sont dont utilisés pour augmenter l’étendue du SI.
Architecture EAI légère Les WS pourraient à terme fournir une alternative légère et peu coûteuse aux solutions traditionnelles d’EAI.
DEI
Référence :Page : 12
Web Services / avantages
Coût de mise en place d ’une communication entre applicatifs distants et hétérogènes chute de manière considérable.
Les sous-systèmes exposent des connecteurs SOAP-XML (+WSDL)
Interopérabilité est enfin au rendez-vous
Les équipes informatiques capitalisent sur un même standard et une même technologie.
Ouverture du SI devient possible (interne, externe).
Peu/Pas d’impact sur les infrastructures techniques (pas de rupture)
DEI
Référence :Page : 13
Web Services / nouveaux rôles
Fournisseur Entité qui publie le service
Responsable de son exécution
Assure compatibilité ascendante gestion des versions
Publie la description du service
Consommateur Entité qui invoque le service
Dispose d’une description du service
Registre Tiers intermédiaire
Consommateur: localiser un service
Fournisseur : publie un service
DEI
Référence :Page : 14
Web Services / nouveaux rôles
DEI
Référence :Page : 15
Les standards technologiques Modèle de communication HTTP, XML, SOAP, WSDL, UDDI Basic Profile 1.0 Infrastructure technique
Les Web Services
DEI
Référence :Page : 16
Web Services / Modèle de communication
Modèles de communication
Synchrone ou RPC
Asynchrone ou évènementiel point-à-point publication-abonnement
Conversationnel
DEI
Référence :Page : 17
Web Services / Principe synchrone
Client Serveur
Contexte Requête
Réponse
Contratde service
Service
implémentation
inte
rfac
e
Document métierXML
1-2
3
4
1. le client récupère une référence vers le service
2. le client émet une requête et attends la réponse
3. le service exécute le traitement et renvoie une réponse
4. le client récupère la réponse et reprend son exécution
DEI
Référence :Page : 18
Web Services / standards technologiques
HTTP (HyperText Transfer Protocol) Application Web : assure le transport des formulaires Web
WS : assure le transport des messages échangés (format SOAP)
L ’URL permet d ’atteindre un service web
XML (eXtensible Markup Language) Utilisé pour décrire les messages échangés entre applicatifs.
Offre une représentation en mode texte
XML-Schema permet de manipuler des données structurées et typées.
DEI
Référence :Page : 19
Web Services / standards technologiques
Protocole SOAP
Protocole de communication entre applications: Sans état Unidirectionnel Indépendant du protocole de communication.
Basé sur XML et les namespaces. Permet d’utiliser les protocoles du Web (HTTP, SMTP, …) Indépendant de la plateforme (windows, unix, mac, …) Simple et extensible Bientôt un standard w3c (SOAP 1.2).
DEI
Référence :Page : 20
Web Services / standards technologiques
Protocole SOAP
Permet d’envoyer des messages XML entre deux machines. Les messages sont encapsulés dans une enveloppe SOAP
L’enveloppe SOAP utilise un XML schéma prédéfini Le schéma du message dépend de l’application
SOAP EnvelopeSOAP Envelope
Application Application MessageMessage
DEI
Référence :Page : 21
Web Services / standards technologiques
Focus : Enveloppe SOAP Enveloppe technique qui encapsule le message XML - Format d ’échange
Constitué de deux parties une partie entête (header) - Facultative
• véhicule des données techniques
• exploitée par l ’infrastructure une partie données (body) - charge
utile (payload) - Obligatoire
• véhicule des données métier
Sa génération est automatique pas d ’effort de la part du développeur API JAX-RPC
DEI
Référence :Page : 22
Web Services / standards technologiques
Exemple de message SOAP
DEI
Référence :Page : 23
Web Services / standards technologiques
Modélisation des messages XML Style Document/RPC
Encodage Literal/Encoded
DEI
Référence :Page : 24
Web Services / standards technologiques
WSDL (Web Service Description Langage) WD W3C
C’est un document XML (possède son propre schéma)
Standardise la description des services web (carte d’identité)
On y trouve : le nom du service, comment on y accède (adresse) le noms de ses opérations (traitements) format des messages échangés protocole de communication utilisé pour le transport
…Mais rien sur ce qu ’ils font vraiment
Généré automatiquement par les outils
Sert de point de départ pour la génération des consommateurs de web services.
V1.2 (WS-I Basic Profil 1.0 : v1.1)
DEI
Référence :Page : 25
Web Services / standards technologiques
DEI
Référence :Page : 26
Web Services / standards technologiques
Exemple WSDL GIDE
DEI
Référence :Page : 27
Web Services / standards technologiques
UDDI (Universal Description Discovery and Integration)
Standard d ’annuaire pour les web services
Contient les données utilisées pour la classification et la recherche des services
Rôle de tiers intermédiaire
UDDI est donc plus une « registry » qu’un « repository »
Le consommateur d ’adresse à l ’annuaire pour rechercher et localiser un service.
Le fournisseur y enregistre ses services
V3.0 (WS-I Basic Profile 1.0 : v2.0)
DEI
Référence :Page : 28
Le Basic Profile 1.0
Ensemble de recommandations édictées par le WS-I (web Service Interoperability)
SOAP 1.1, WSDL 1.1, UDDI 2.0, XML 1.0, XML-Schema supporté par les plateformes J2EE et .NET
Objectif : favorises l ’interopérabilité des web services surtout destinées aux éditeurs de logiciel de parseur SOAP Quelques règles à connaître :
Exclusion du SOAP Encoding Utilisation du mode RPC-Literal ou Document-Literal Utilisation SOAP/HTTP Utilisation du HTTP POST (pas GET) Utilisation WSDL 1.1 pour décrire les WS
Web Services / Basic Profile
DEI
Référence :Page : 29
Web Services / infrastructure technique
Réutilisation de l ’infrastructure web existante - pas de rupture Firewall, IDS (Intrusion Detection System), serveur HTTP, serveur d ’application, outils d ’administration et de développement
Extensions possibles Les Firewalls XML / Proxy XML
vérifier la validité des messages / schéma Détecter du code malicieux jouer un rôle de filtrage/routage (XPATH) fournir un mécanisme de cache apporter des fonctionnalités de sécurité (SAML, XML-DS, XML-Encryption)
Boîtiers « clef en main » IBM (datapower), CISCO
Catalogue de Web Service
DEI
Référence :Page : 30
La conception d’un web service J2EE Démarche top/down | bottom/up Principe de fonctionnement Les API /JSR Outillage
Les Web Services
DEI
Référence :Page : 31
Web Services / Démarche
Création d ’un Web Service : approche Top/Down
implémentationdu service
DEI
Référence :Page : 32
Web Services / Démarche
Création d ’un web service : approche Bottom/UpToute classe Java peut-être automatiquement exposée
comme un service (style RPC)Une opération par méthodeGénération des messages SOAP Sérialisation/déserialisation
des types courantsGestion des exceptionsGénération automatique du WSDL
DEI
Référence :Page : 33
Web Services / Démarche
Création du client (consommateur WS)
Point d’entrée : WSDL du Service WEB
La génération des classes Java s ’opère depuis l’atelier de développement (fournit les wizards adéquats) Génération automatique
des messages SOAP Sérialisation/déserialisation des types courants
Gestion des erreurs Conversion des SOAP Faults en exceptions java
Génération de “stubs” à partir du WSDL: Un objet local qui invoque automatiquement le service web
correpondant
DEI
Référence :Page : 34
Web Services / Démarche
Création du client (suite)
Il est possible de compléter le code générer : ajouter un système de cache pour les données en lecture
uniquement (évite les appels inutiles) mettre en place un mécanisme de bouchon (facilite les
tests d ’intégration du client) masquer les éventuels appels à un annuaire UDDI …
Les clients d ’applications J2EE possibilité de localiser un web service à partir de l ’annuaire
JNDI
DEI
Référence :Page : 35
Web Services / Principe de fonctionnement
import javax.xml.rpc.Service ;import com.icdc.webservices.HelloWorld ;
import com.icdc.webservices.HelloWorldService ;
HelloWorldService service = ... // récupération du service
// on récupère un stub du web service « HelloWorld »// (l’interface HelloWorld est l’interface du SEI du web service)
HelloWorld helloWorld = (HelloWorld) service.getHelloWorld ();
// on appelle le web service HelloWorld
String result = helloWorld.hithere("toto");
DEI
Référence :Page : 36
Web Services / Les JSR à connaître
JSR 101 : spécification de JAX-RPC 1.1 (JSR 224 : JAX-RPS 2.0)
Principes de mapping entre WSDL et Java
+ une API pour traiter les flux SOAP
Spécification du cycle de vie de la servlet à l ’écoute du flux SOAP
JSR 31 : spécification de JAXB 1.0 (JSR 222 : JAXB 2.0)
Permet d’associer des classes Java à des schemas XML et des instances de ces classes aux documents XML.
JSR 109 : spécification des modes d ’implémentation des endpoint
Sous la forme d ’une servlet (JSR 101)
Sous la forme d ’un EJB Session Stateless
Spécifie l’usage des fichiers de déploiement
DEI
Référence :Page : 37
Web Services / outillage
Ces normes font désormais partie intégrante de la plate-forme J2EE 1.4
Situation de la Caisse des dépôts Websphere 5.1 est compatible J2EE 1.3 et JAX-RPC 1.0 (JSR101) et JSR 109.
Tomcat n ’est pas un conteneur J2EE (uniquement WEB)
Les web services sont développés : Eclipse 3.2 + Web Tools Platform 1.5
s ’appuie sur Axis 1.3 (implémentation SOAP d ’Apache - Open Source)
Web service sont déployés sous la forme d ’une aplication Web Peut être utilisée avec tout serveur J2EE
DEI
Référence :Page : 38
Web Services / outillage
Démo création d ’un web service avec Eclipse 3.2
DEI
Référence :Page : 39
Limites et Questions essentielles
Les Web Services
DEI
Référence :Page : 40
Systèmes monolothiques impossible ou trop coûteux d ’exposer des web services
Définir la bonne granularité Problème de performance
Privilégier d ’autres technologies (EJB, …) ?
Web Services Hell Mise en place d ’une politique de gestion des versions Prolifération des services web
Eviter le couplage point-à-point des applications
Principal mode de communication : synchrone
Peu adaptés aux batchs, au transfert en masse de données
Les Web Services / Limites -Questions essentielles
DEI
Référence :Page : 41
Aspects transactionnels
Audit / Traçabilité
Mettre en place une politique de tests comme pour les applications web classiques
Mettre en place une politique de Bench Validé la robustesse du service
Les Web Services / Limites -Questions essentielles
DEI
Référence :Page : 42
Au delà du simple Service Web Les exigences de sécurité des web services Des standards qui évoluent
Les Web Services
DEI
Référence :Page : 43
Les Web Services / La sécurité
La sécurité est sans doute le sujet le plus important lorsque l ’on expose son système d ’information à travers des services web.
Vérification de l ’identité de l’émetteur
Confidentialité des données échangées
Intégrité des données
Habilitations
Protection contre les attaques
Non-répudiation
DEI
Référence :Page : 44
Les Web Services / La sécurité
Vérification de l ’identité de l’émetteur Echanges entre serveurs d ’assertions de sécurité (jetons de sécurité, certificats, …)
WS-Security(XML Digital Signature) - SAML
Filtrage adresse IP
Confidentialité des données échangées HTTPS (HTTP over SSL) - VPN
WS-Security(XML-Encryption)
Intégrité des données Utilisation d ’algorithme MAC (Message Authentification Code) pour détecter les modifications des messages
DEI
Référence :Page : 45
Les Web Services / La sécurité
Habilitations XACML (XML Access Control Markup Langague) - OASIS
une syntaxe XML standard de description de contrôle d ’accès aux ressources
un protocole de requête/réponse permettant de vérifier un droit d ’accès
JAAS
Protection contre les attaquesFirewalls, IDS, ...
DEI
Référence :Page : 46
Les Web Services / Des standards qui évoluent
TransactionBTP, WS-Transaction & Coordination
Intégrité, confidentialitéXML Encryption, WS Security
Single Sign OnSAML
Gestion de clés publiques/privéesXKMS
Représentation des processusBPEL, BPML, XLANG, WSFL, WSCI, WS Choreography
DEI
Référence :Page : 47
Références DEILab
Mise en œuvre de Web Services avec J2EE (D-SE13/FB/04-470) Guide création web service (C-LABPR_WS_06-245) Accès à un Service Web J2EE (C-LABPR_WS_06-250)
Les Web Services