DEI
Web Services Présentation et cas d’usage.
Référence : Page : 1
Les Web Services DEI
◗Les concepts ◗ Les standards technologiques ◗La conception d’un service web / J2EE ◗Limites, questions essentielles ◗Au delà du simple service web ◗Références DEILab
Référence : Page : 2
Les Web Services DEI
◗Les Concepts Contexte
C’est quoi un service ? C’est quoi un web service ? Avantages Nouveaux rôles
Référence : Page : 3
Web Services / Contexte DEI
◗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 Référence : Page : 4
Web Services / Définitions DEI
◗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 ’
Référence : Page : 5
Web Services / Typologie DEI
◗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, …)
Référence : Page : 6
Web Services / Découverte DEI
◗Le concept de service intervient à plusieurs niveaux dans l ’architecture du SI.
Référence : Page : 7
Web Services / Découverte DEI
◗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
Référence : Page : 8
Web Services / Découverte DEI
◗Service exposé par une catégorie FWK)
(BusinessService -
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)
Référence : Page : 9
Web Services / Définitions DEI
◗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 ») ●
Référence : Page : 10
Web Services / usage des web services DEI
◗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.
Référence : Page : 11
Web Services / avantages DEI
◗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) Référence : Page : 12
Web Services / nouveaux rôles DEI
◗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 Référence : Page : 13
Web Services / nouveaux rôles DEI
Référence : Page : 14
Les Web Services DEI
◗ Les standards technologiques Modèle de communication HTTP, XML, SOAP, WSDL, UDDI Basic Profile 1.0 Infrastructure technique
Référence : Page : 15
Web Services / Modèle de communication DEI
◗ Modèles de communication Synchrone ou RPC Asynchrone ou évènementiel ● ●
point-à-point publication-abonnement
Conversationnel
Référence : Page : 16
Web Services / Principe synchrone DEI 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 Contrat de service
1-2
Contexte
Requête
Serveur interface
Client
Document métier XML
implémentation
3 Service
4
Réponse
Référence : Page : 17
Web Services / standards technologiques DEI
◗ 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.
Référence : Page : 18
Web Services / standards technologiques DEI
◗ 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). ●
Référence : Page : 19
Web Services / standards technologiques DEI
◗ 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
Application Message SOAP Envelope
Référence : Page : 20
Web Services / standards technologiques DEI
◗ Focus : Enveloppe SOAP Enveloppe technique qui encapsule message XML - Format d ’échange Constitué de deux parties ●
●
le
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 Référence : Page : 21
Web Services / standards technologiques DEI
◗ Exemple de message SOAP
Référence : Page : 22
Web Services / standards technologiques DEI
◗ Modélisation des messages XML Style Document/RPC Encodage Literal/Encoded
Référence : Page : 23
Web Services / standards technologiques DEI
◗ 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) Référence : Page : 24
Web Services / standards technologiques DEI
Référence : Page : 25
Web Services / standards technologiques DEI
◗ Exemple WSDL GIDE
Référence : Page : 26
Web Services / standards technologiques DEI
◗ 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)
Référence : Page : 27
Web Services / Basic Profile DEI
◗ 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 Référence : Page : 28
Web Services / infrastructure technique DEI
◗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 Référence : Page : 29
Les Web Services DEI
◗La conception d’un web service J2EE Démarche top/down | bottom/up Principe de fonctionnement Les API /JSR Outillage
Référence : Page : 30
Web Services / Démarche DEI
◗Création d ’un Web Service : approche Top/Down
implémentation du service
Référence : Page : 31
Web Services / Démarche DEI
◗Création d ’un web service : approche Bottom/Up ◗Toute classe Java peut-être automatiquement exposée comme un service (style RPC) Une opération par méthode Génération des messages SOAP Sérialisation/déserialisation des types courants Gestion des exceptions Génération automatique du WSDL
Référence : Page : 32
Web Services / Démarche DEI
◗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 Référence : Page : 33
Web Services / Démarche DEI
◗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
Référence : Page : 34
Web Services / Principe de fonctionnement DEI
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");
Référence : Page : 35
Web Services / Les JSR à connaître DEI
◗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 Référence : Page : 36
Web Services / outillage DEI
◗Ces normes font désormais partie intégrante de la plateforme 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 Référence : Page : 37
Web Services / outillage DEI
◗Démo création d ’un web service avec Eclipse 3.2
Référence : Page : 38
Les Web Services DEI
◗Limites et Questions essentielles
Référence : Page : 39
DEI
Les Web Services / Limites -Questions essentielles
◗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 Référence : Page : 40
◗Peu adaptés aux batchs, au transfert en masse de données
DEI
Les Web Services / Limites -Questions essentielles
◗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
Référence : Page : 41
Les Web Services DEI
◗Au delà du simple Service Web Les exigences de sécurité des web services Des standards qui évoluent
Référence : Page : 42
Les Web Services / La sécurité DEI
◗ 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
Référence : Page : 43
Les Web Services / La sécurité DEI
◗ 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
Référence : Page : 44
Les Web Services / La sécurité DEI
◗ 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 attaques Firewalls, IDS, ...
Référence : Page : 45
DEI
Les Web Services / Des standards qui évoluent
◗Transaction BTP, WS-Transaction & Coordination
◗Intégrité, confidentialité XML Encryption, WS Security
◗Single Sign On SAML
◗Gestion de clés publiques/privées XKMS
◗Représentation des processus BPEL, BPML, XLANG, WSFL, WSCI, WS Choreography
Référence : Page : 46
Les Web Services DEI
◗Références DEILab Mise en œuvre de Web Services avec J2EE (DSE13/FB/04-470) Guide création web service (C-LABPR_WS_06-245) Accès à un Service Web J2EE (C-LABPR_WS_06-250)
Référence : Page : 47