Interopérabilité des plateformes JavaEE et. NET Implémentation des spécifications avancées des services Web avec GlassFish et WCF Alexis MOUSSINE-POUCHKINE.

Slides:



Advertisements
Présentations similaires
3/25/ :58 AM Développement de Services Web sécurisés et interopérables avec WS-* et WSE 2.0 SP3 Philippe Beraud Consultant Principal Microsoft France.
Advertisements

SOA et Services Web Dr. Rim Samia Kaabi 26 mars 2017.
Découverte de SQL Server par la pratique pour les administrateurs expérimentés Module 5 : Accès aux données Bertrand Audras Microsoft Technology Center.
La plateforme.NET 2.0 vue par le développeur Pascal Belaud Microsoft France SAGA.NET
La plateforme.NET 2.0 vue par le développeur Pascal Belaud Microsoft France SAGA.NET
ASP.NET v2 + Ajax = Atlas Pierre Lagarde DevDays 2006 Equipé aujourdhui, prêt pour demain !
Service Software Factory François MERAND Responsable groupe architectes DPE – Division Plateformes & Ecosystème Microsoft France
« Les Mercredis du développement » Introduction Office « 12 » Présenté par Bernard Fedotoff Microsoft Regional Director Agilcom.
« Les Mercredis du développement » Nouveau format de fichier Template Solution Présenté par Pierre Lagarde Relation Développeurs.
Windows Communication Foundation Bindings, PRESTO Stève SFARTZ Architecte en Système dinformation Division Plateformes et Ecosystème
Tout commence par un modeste éditeur de texte issue dune PME à Redmond, WA-USA.
Architecture orientée services avec Windows Communication Foundation Pascal Belaud Microsoft France
Windows Sharepoint Services v3 (5/6) Les nouveautés Stéphane Crozatier Relation Technique Editeurs de Logiciels DPE - Microsoft France
Les Web Services Schéma Directeur des Espaces numériques de Travail
Première expérience d’utilisation des Web Services dans SmartTools Didier Parigot Projet OASIS INRIA Sophia www-sop.inria.fr/oasis/SmartTools Journée.
Stéphanie CLAPIÉ Antoine RENARD
Les webservices Samira Silhadi-Hacid Malika Tarafi.
L’architecture .net et ASP.net
1.NET, bilan et perspective – Univ-Bordeaux - vendredi 18 novembre 2005.NET, bilan et perspectives François MERAND Responsable groupe architectes Division.
Cours 5 : Les Web Services et WSDL Mars Version 1.0 -
1 Les technologies XML Cours 1 : Les Web Services et Architectures Orientées Services Fé vrier Version 1.0 -
1 Les technologies XML Cours 3 : Les Web Services – Implémentation – JAX-WS Février Version 1.0 -
Cours 2 : Les Web Services Concepts Généraux
Les Web Services.
Toolkit Web Framework Java pour les IHMs Cédric Dumas mars 2008 contrat Creative Commons Paternité-Pas d'Utilisation Commerciale- Partage.
JORAM Java Open Reliable Asynchronous Messaging
Génie Documentiel Delacrétaz Jean-Marc
Les Web Services avec .Net
Programme TICPME2010 Minefe - DGCIS
Live Meeting Technique N°3 Thomas LEBRUN – MVP WPF/Silverlight Florent SANTIN – MVP Team System Julien CORIOLAND - MSP.
Introduction aux services WEB
Les Services Web Avec.NET version 1.1. Un service Web en bref… Méthodes ou objets accessible à distance via SOAP (Simple Object Access Protocol ); SOAP.
Etude des Technologies du Web services
Communiquer avec ELYX.
TM.
XML-Family Web Services Description Language W.S.D.L.
ASP.NET un peu plus loin… Développement Rapide dApplications Web avec.NET.
Architecture SOA et service WCF
ADOBE FLEX 4. © Logica All rights reservedNo. 2 Introduction Flex en action Autour de Flex Logica Le programme.
Networld+Interop – Novembre 2003
22 Model-View-ViewModel et testabilité pour WPF/Silverlight Richard Clark Clark Ingénierie Informatique Simon Ferquel Access It.
An Introduction to distributed applications and ecommerce 1 1 Les services Web, XML et les places de marchés.
I.S.I.S. Information System Initial Specification Rétro-conception de Bases de données Cyr Gabin Bassolet TIMC – équipe OSIRIS 21 décembre 2004.
Web Services HTTP UDDI SOAP WSDL Besnik SELJIMI, Novembre 2003
Séminaire Service Interoperability on Context Level in Ubiquitous Computing Environments Davide Bazzi IIUF Etude de larticle: Service Interoperability.
J2EE vs .NET Réaliser par : SEIF ENNACER BADRA && CHETOUI RIM.
JEE 5 F.Pfister 2 institut eerie JEE – Une plateforme serveur  Développement et exécution d'applications réparties.
‘‘Open Data base Connectivity‘‘
CENTRALISATION DES CANDIDATS LOCATAIRES
1 Architecture orientée service SOA Architecture orientée service SOA (Service Oriented Architecture)
Java Enterprise Edition, anciennement J2EE
Créez des applications Silverlight 3 David Rousset Relations Techniques avec les développeurs Microsoft France
E-Technology lab Plateformes, Technologies et Architectures pour les systèmes eGouvernement Par: Dr Mamadou Koné Université Laval, Québec, Canada et Houda.
Sécurité des Services Web
Introduction à la plateforme .NET
Les plateformes de développent des web services
Metro Web Services Ben Yaflah Marouen Dhrif Mohamed Hbib Hajlaoui Nader.
Le web service
Mastère Professionnel Systèmes de Communication et Réseaux
Créez des applications Silverlight 3 David Rousset Relations Techniques avec les développeurs Microsoft France
Cours MIAGE « Architectures Orientées Services »Henry Boccon-GibodCours MIAGE « Architectures Orientées Services »Henry Boccon-Gibod 1 Architectures Orientées.
420-B63 Programmation Web Avancée Auteur : Frédéric Thériault 1.
21/02/2003DEA DISIC 1 Grid Computing Programming the grid: Distributed Software Components, P2P and Grid Web Services for Scientific Applications Tarak.
Web Services 17/01/2009.
Introduction aux technologies des web services en Java EE
Interopérabilité des Services Web avancés
SOAP et les RPC XML SOAP WSDL RPC. Rappels sur le XML Langage avec des balises Très lisible Pour stocker des données Séparation entre contenu et présentation.
Parquet Geoffrey 3 ARIL EXIA.CESI ARRAS. Présentation du MLD Présentation de la persistance Présentation récapitulatif du projet JSP/SERVLET MVC Cycle.
Applications distribuées Introduction Jean-Jacques LE COZ.
Auditeur: Léonardo AMODIO Cours: NFE107
Transcription de la présentation:

Interopérabilité des plateformes JavaEE et. NET Implémentation des spécifications avancées des services Web avec GlassFish et WCF Alexis MOUSSINE-POUCHKINE SUN Architecte Stéphane GOUDEAU Microsoft France Architecte Alexis MOUSSINE-POUCHKINE SUN Architecte Stéphane GOUDEAU Microsoft France Architecte

Agenda Introduction Web Services Avancés Démos WS-* GlassFish & WCF Synthèse

Agenda Introduction Web Services Avancés Démos WS-* GlassFish & WCF Synthèse

Un besoin dinteropérabilité…

Couplage faible Performances Politiquesdutilisation Coût Critères de choix Standards Existant Partage de contrat

Agenda Introduction Web Services Avancés Démos WS-* GlassFish & WCF Synthèse

7 Technologie permettant à des applications de dialoguer avec un modèle de couplage faible, par léchange de messages fondé sur des standards : XML, SOAP, WSDL, UDDI Indépendance des plates- formes et des langages Technologie pour lentreprise universellement adoptée ? Web services will become the dominant distributed computing architecture in the next 10 years and will eventually define the fabric of computing. – IDC Services Web

8 Interoperabilité Interoperabilité Effort de lindustrie Accélérer ladoption et garantir linteropérabilité des services Web Plus 160 leaders de lindustrie Partenariat avec les organismes de standardisation: OASIS, OMG, OMA, RosettaNet Profils regroupant un ensemble de standards avec leur recommandation dutilisation Basic Profile SOAP 1.1, WSDL 1.0, UDDI 2.0, XML 1.0 et XML Schema Mise à disposition par les éditeurs de modèles de mise en œuvre vis-à-vis de leur implémentation SOAP Mise à disposition doutils de test Basic Security Profile Attachements Profile Simple SOAP Binding Profile Effort de lindustrie Accélérer ladoption et garantir linteropérabilité des services Web Plus 160 leaders de lindustrie Partenariat avec les organismes de standardisation: OASIS, OMG, OMA, RosettaNet Profils regroupant un ensemble de standards avec leur recommandation dutilisation Basic Profile SOAP 1.1, WSDL 1.0, UDDI 2.0, XML 1.0 et XML Schema Mise à disposition par les éditeurs de modèles de mise en œuvre vis-à-vis de leur implémentation SOAP Mise à disposition doutils de test Basic Security Profile Attachements Profile Simple SOAP Binding Profile

9 WS-* : La cible est atteinte… Transports HTTP XML XML, XSD, XPath Messaging SOAP, WS-Addressing, WS-Eventing Security WS-Security WS-Trust WS-Federation Reliability WS-Reliable Messaging Transactions WS-Transactions WS-Coordination WS-AtomicTranscation Metadata WSDL, WS-Policy, WS-Discovery Connected Systems Management Business Processes

Dans la vraie vie… W3C Simple Object Access Protocol (SOAP) 1.2 W3C Web Service Description Language (WSDL) 1.1 Asynchronisme (et routage des messages) W3C WS-Addressing (W3C Member Submission 10 August 2004) Transmission de pièces jointes (et encodage/optimisation) W3C SOAP Message Transfer Optimization Mechanism (MTOM) W3C XML-binary Optimized Packaging (XOP) 1.0 Fiabilité des échanges OASIS Web Services Reliable Messaging (WS-ReliableMessaging) Sécurité du message OASIS Web Services Security: SOAP Message Security 1.0 (WS- Security) W3C Simple Object Access Protocol (SOAP) 1.2 W3C Web Service Description Language (WSDL) 1.1 Asynchronisme (et routage des messages) W3C WS-Addressing (W3C Member Submission 10 August 2004) Transmission de pièces jointes (et encodage/optimisation) W3C SOAP Message Transfer Optimization Mechanism (MTOM) W3C XML-binary Optimized Packaging (XOP) 1.0 Fiabilité des échanges OASIS Web Services Reliable Messaging (WS-ReliableMessaging) Sécurité du message OASIS Web Services Security: SOAP Message Security 1.0 (WS- Security)

ALLER DESERIALIZE (XML natif) Interception (avant et après) ! ALLER DESERIALIZE (XML natif) Interception (avant et après) ! RETOUR SERIALIZE (natif XML) Interception (avant et après) ! RETOUR SERIALIZE (natif XML) Interception (avant et après) ! ALLER SERIALIZE (natif XML) Interception (avant et après) ! ALLER SERIALIZE (natif XML) Interception (avant et après) ! RETOUR DESERIALIZE (XML natif) Interception (avant et après) ! RETOUR DESERIALIZE (XML natif) Interception (avant et après) ! Fournisseur WS Client WS <FlightInfo> </FlightInfo><FlightInfo> </FlightInfo> Extensions SOAP serializeserialize deserializedeserialize FlightInfo deserializedeserialize serializeserialize Utilis é e pour des fonctionnalit é s plus avanc é es Intercepte les appels destin é s à un service Web Pr é traitement et post-traitement Utilis é e pour des fonctionnalit é s plus avanc é es Intercepte les appels destin é s à un service Web Pr é traitement et post-traitement

12 Donnéesstructurées Cadre logistique T14:00:00-05:00 Pick up Mary at school at 2pm T14:00:00-05:00 Pick up Mary at school at 2pm Sécurité Fiabilité Transactions Routage Consommateur Fournisseur SOAP Extensions Implémentation des WS-*

Agenda Introduction Web Services Avancés Démos WS-* GlassFish & WCF Synthèse

Web Services dans Java EE 5 JAX-WS 2.x est l'évolution de JAX-RPC 1.x JAX-WS sous-ensemble de Java EE 5 EJB 3, Servlet, JSP, JDBC/JPA, JAXB,... JAX-WS est également présent dans le JDK 6 Annotations, Web Services asynchrones,... JAXB pour les conversions XML/Java Logique Métier Classes Annotées Fortement Typées Couche Message API Dispatch/Provider

Simple Web Service JAX-WS package endpoint; import public class Bonjour { public String ditBonjour(String nom) { return "Bonjour " + nom; }

GlassFish est un serveur d'application Open Source de production conforme à Java EE 5 WSIT est une extension à JAX-WS 2.x intégrée dans GlassFish v2 (beta) Implémentation de WS-Addressing, WS-Security, WS- SecureConversation, WS-ReliableMessaging, WS- MetaDataExchange, MTOM/XOP, WS-Trust, WS- Policy,... Pas de modification du modèle de programmation JAX-WS (déclaratif) Outil associé : NetBeans ( GlassFish et WSIT

Windows Communication Foundation (WCF) Composante du Microsoft.NET Framework 3.0 : Windows Vista, Windows XP SP2, Windows Server 2003 SP1 Framework unifié pour créer des Applications Orientées Service interopérables Unification des technologies middleware Architecture modulaire et composable Support natif des protocoles des services Web avancés WS-* Modèle de programmation orienté service Composante du Microsoft.NET Framework 3.0 : Windows Vista, Windows XP SP2, Windows Server 2003 SP1 Framework unifié pour créer des Applications Orientées Service interopérables Unification des technologies middleware Architecture modulaire et composable Support natif des protocoles des services Web avancés WS-* Modèle de programmation orienté service CC340B-F857-4A14-83F C3BF043&displaylang=en

Visual Studio 2005 extensions for.NET Framework 3.0 Visual Studio 2005 extensions for.NET Framework 3.0 WCF : Principes et outils WSDL Point de terminaison ClientService B B « Binding » Comment ? « Binding » Comment ? C C Contrat Quoi ? Contrat Quoi ? A A Adresse Où ? Adresse Où ? « Behavior » Environnement dexécution « Behavior » Environnement dexécution Be B B A A C C A A C C B B A A C C B B F5A1E805680D&displaylang=en

Agenda Introduction Web Services Avancés Démos WS-* GlassFish & WCF Synthèse

Quelle démarche adopter ? Définition du contrat Contrat de service Description des opérations et sémantique des échanges (« oneway », « duplex », session, …) Contrat de données Définition du contenu des messages Contrat dutilisation Caractéristiques de la communication : fiabilité, sécurité, encodage, transport,… Implémentation du Service Développement Déploiement Publication du WSDL Définition du contrat Contrat de service Description des opérations et sémantique des échanges (« oneway », « duplex », session, …) Contrat de données Définition du contenu des messages Contrat dutilisation Caractéristiques de la communication : fiabilité, sécurité, encodage, transport,… Implémentation du Service Développement Déploiement Publication du WSDL

Comment optimiser les WS …? Comment transporter efficacement des objets binaires avec des services web ? Par défaut : Encodage base64 MTOM : Message Transmission Optimization Mechanism Données présentes dans lInfoSet XML Transfert des données - sans ré-encodage - à lextérieur de lenveloppe SOAP, en utilisant un message de type « MIME multipart related » Comment transporter efficacement des objets binaires avec des services web ? Par défaut : Encodage base64 MTOM : Message Transmission Optimization Mechanism Données présentes dans lInfoSet XML Transfert des données - sans ré-encodage - à lextérieur de lenveloppe SOAP, en utilisant un message de type « MIME multipart related » ENVELOPPE SOAP DONNES BINAIRES MIME MULTIPART DONNES BINAIRES (encodé en base64)

GlassFish WSIT : MTOM

<mtomMessageEncoding messageVersion= "Soap12WSAddressingAugust2004" writeEncoding="utf-8"> <httpTransport maxReceivedMessageSize=" " … /> WCF : mise en place de MTOM Contrat : Paramètre ou propriétés dobjets de type byte[ ] Binding : Encodage de type MTOM Contrat : Paramètre ou propriétés dobjets de type byte[ ] Binding : Encodage de type MTOM MtomMessageEncodingBindingElement mtomEncodingBindingElement = new MtomMessageEncodingBindingElement(); mtomEncodingBindingElement.WriteEncoding = System.Text.Encoding.UTF8; mtomEncodingBindingElement.ReaderQuotas.MaxArrayLength = maxMessageSize; encodingBindingElement = mtomEncodingBindingElement; Programmation Configuration Paramétrage par code ou par configuration

WS-RM : Principe de fonctionnement Différent du modèle de file dattente (pas de tiers explicite) Agent RM source et Agent RM destination La séquence complète est acquittée, donc peu d« overhead » sur une séquence de messages « CreateSequence » Flow de Messages avec des headers de « Sequence », complétés par des acquittements occasionnels TerminateSequence Différent du modèle de file dattente (pas de tiers explicite) Agent RM source et Agent RM destination La séquence complète est acquittée, donc peu d« overhead » sur une séquence de messages « CreateSequence » Flow de Messages avec des headers de « Sequence », complétés par des acquittements occasionnels TerminateSequence

GlassFish WSIT : WS-RM TerminateSequence explicite : ((Closeable)port).close();

WCF : Reliable Messaging « ReliableSession BindingElement » Premier élément de la collection de bindings Paramétrage par code ou par configuration « ReliableSession BindingElement » Premier élément de la collection de bindings Paramétrage par code ou par configuration <reliableSession acknowledgementInterval="00:00: … flowControlEnabled=true ordered="false" /> RM par configuration ReliableSessionBindingElement reliableSessionBindingElement = null; reliableSessionBindingElement = new ReliableSessionBindingElement(); … reliableSessionBindingElement.FlowControlEnabled = true; reliableSessionBindingElement.Ordered = true; elements.Add(reliableSessionBindingElement); Transport par code

Sécurité des services Web

Modes de sécurité Client A Service B B A A C C A A C C B B Client B B B A A C C A A C C B B Transport Message

Sécurité de niveau Transport HTTPS, SSL over TCP Dépendance du transport Compatible avec les systèmes existants Sapplique au message dans son ensemble Confidentialité, intégrité et/ou authentification Point à point HTTPS, SSL over TCP Dépendance du transport Compatible avec les systèmes existants Sapplique au message dans son ensemble Confidentialité, intégrité et/ou authentification Point à point Client Service Chiffré/Signé

Sécurité de niveau Message Sécurité des services Web avancés (WS-*) Appliquée au niveau des messages SOAP Indépendante du transport et extensible Sécurisé jusquau destinataire ultime du message Lexpéditeur ne doit faire confiance quau destinataire ultime Sécurisation de façon sélective : partie(s) du message Confidentialité, intégrité, non-répudiation et/ou authentification Sécurité des services Web avancés (WS-*) Appliquée au niveau des messages SOAP Indépendante du transport et extensible Sécurisé jusquau destinataire ultime du message Lexpéditeur ne doit faire confiance quau destinataire ultime Sécurisation de façon sélective : partie(s) du message Confidentialité, intégrité, non-répudiation et/ou authentification Client Service Chiffré/Signé Nœud intermédiaire Chiffré/Signé

Standards sécurité WS-* dans WSIT et WCF OASIS Web Services Security SOAP Message Security (WS-Security) 1.0 et 1.1 Intégrité, confidentialité, et inclusion dun jeton de sécurité Couple utilisateur / mot de passe, X.509, Kerberos et SAML OASIS WS-Trust Obtention et renouvellement dun jeton de sécurité OASIS WS-SecureConversation Etablissement dun contexte de sécurité et échange des clés de session permettant déchanger N messages dans un même contexte OASIS WS-SecurityPolicy Description des assertions spécifiques à la sécurité, utilisées dans WS-Security, WS-Trust, et WS-SecureConversation WS-I Basic Security Profile Core + Kerberos + SAML OASIS Web Services Security SOAP Message Security (WS-Security) 1.0 et 1.1 Intégrité, confidentialité, et inclusion dun jeton de sécurité Couple utilisateur / mot de passe, X.509, Kerberos et SAML OASIS WS-Trust Obtention et renouvellement dun jeton de sécurité OASIS WS-SecureConversation Etablissement dun contexte de sécurité et échange des clés de session permettant déchanger N messages dans un même contexte OASIS WS-SecurityPolicy Description des assertions spécifiques à la sécurité, utilisées dans WS-Security, WS-Trust, et WS-SecureConversation WS-I Basic Security Profile Core + Kerberos + SAML

GlassFish WSIT : WS-Security

WCF : Sécurité Sécurité des échanges de messages Sécurité daccès aux ressources Mise en œuvre grâce aux bindings et behaviors Paramétrage par code ou par configuration Sécurité des échanges de messages Sécurité daccès aux ressources Mise en œuvre grâce aux bindings et behaviors Paramétrage par code ou par configuration Binding <clientCertificate storeLocation=LocalMachine storeName=My x509FindType=FindByThumbprint findValue=F31416E1D645367AC2DB89E31B8EF89A4E77CF21/> Behavior factory.Credentials.ServiceCertificate. SetDefaultCertificate( StoreLocation.LocalMachine, StoreName.My, X509FindType.FindByThumbprint, config.ServiceCertificateThumbprint); Code Client

Découverte dynamique du contrat Pour que léchange fonctionne, le client et le service doivent utiliser le même protocole Le même fichier binding doit être utilisé sur le client et sur le serveur WS-MetadataExchange (WS-MEX) Permet la récupération dynamique des méta- données (WSDL + WS-Policy) Pour que léchange fonctionne, le client et le service doivent utiliser le même protocole Le même fichier binding doit être utilisé sur le client et sur le serveur WS-MetadataExchange (WS-MEX) Permet la récupération dynamique des méta- données (WSDL + WS-Policy) Client Service GetMetadata WSDL

WCF : WS-MetadataExchange Obtention des éléments de binding via MetadataResolver Les capacités de sécurité souhaitées sont obtenues par interrogation directe du Channel Obtention des éléments de binding via MetadataResolver Les capacités de sécurité souhaitées sont obtenues par interrogation directe du Channel ISecurityCapabilities isc = endpoint.Binding.GetProperty ( new BindingParameterCollection()); if (isc.SupportsServerAuthentication) {…} if (isc.SupportedRequestProtectionLevel != ProtectionLevel.None) {…} Code Client ChannelFactory factory ; Uri mexUri = new Uri(" ContractDescription contract = ContractDescription.GetContract(typeof(IPresto)); EndpointAddress mexEndpointAddress = new EndpointAddress(mexUri); ServiceEndpointCollection endpoints = MetadataResolver.Resolve(contract.ContractType, mexEndpointAddress); foreach (ServiceEndpoint endpoint in endpoints) { if (endpoint.Contract.Namespace.Equals( contract.Namespace) && endpoint.Contract.Name.Equals(contract.Name)){ factory = new ChannelFactory endpoint.Binding, endpoint.Address)} } IPresto prestoInterface = factory.CreateChannel(); Code Client

Agenda Introduction Web Services Avancés Démos WS-* GlassFish & WCF Synthèse

En guise de conclusion WSIT et WCF deux frameworks offrant une interopérabilité Basée sur des standards Spécifications/protocoles WS-* Compatible avec les mécanismes de sécurité existants (Kerberos, X.509, HTTPS, etc.) Validée, intégrée, et outillée Un « cas dutilisation » : PRESTO « PRotocole dEchanges Standard et Ouvert » enveloppe de transport pour léchange de documents électroniques entre SI dadministrations (DGME) WSIT et WCF deux frameworks offrant une interopérabilité Basée sur des standards Spécifications/protocoles WS-* Compatible avec les mécanismes de sécurité existants (Kerberos, X.509, HTTPS, etc.) Validée, intégrée, et outillée Un « cas dutilisation » : PRESTO « PRotocole dEchanges Standard et Ouvert » enveloppe de transport pour léchange de documents électroniques entre SI dadministrations (DGME) Protocole PES HELIOS Protocole métier ACTES Protocole métier spécifique

Où trouver de linformation WSIT : WCF : Alexis Moussine-Pouchkine : Simon Guest : Brian Keller : Ted Neward : Stéphane Goudeau : WSIT : WCF : Alexis Moussine-Pouchkine : Simon Guest : Brian Keller : Ted Neward : Stéphane Goudeau :

Questions ?

© 2007 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.