La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

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

Présentations similaires


Présentation au sujet: "Interopérabilité des plateformes JavaEE et. NET Implémentation des spécifications avancées des services Web avec GlassFish et WCF Alexis MOUSSINE-POUCHKINE."— Transcription de la présentation:

1 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

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

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

4 Un besoin dinteropérabilité…

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

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

7 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 8 Interoperabilité http://www.WS-i.org http://www.WS-i.org Interoperabilité http://www.WS-i.org http://www.WS-i.org 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 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

10 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)

11 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 12 Donnéesstructurées Cadre logistique 1 2001-06-22T14:00:00-05:00 Pick up Mary at school at 2pm 1 2001-06-22T14:00:00-05:00 Pick up Mary at school at 2pm Sécurité Fiabilité Transactions Routage Consommateur Fournisseur SOAP Extensions Implémentation des WS-*

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

14 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

15 Simple Web Service JAX-WS package endpoint; import javax.jws.WebService; @WebService public class Bonjour { public String ditBonjour(String nom) { return "Bonjour " + nom; }

16 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 5.5.1 (http://www.netbeans.org)http://www.netbeans.org GlassFish et WSIT

17 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 http://www.microsoft.com/downloads/details.aspx?FamilyId=10 CC340B-F857-4A14-83F5-25634C3BF043&displaylang=en

18 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 http://www.microsoft.com/downloads/details.aspx?FamilyId=F54F5537-CC86-4BF5-AE44- F5A1E805680D&displaylang=en

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

20 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

21

22 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)

23 GlassFish WSIT : MTOM

24 <mtomMessageEncoding messageVersion= "Soap12WSAddressingAugust2004" writeEncoding="utf-8"> <httpTransport maxReceivedMessageSize="5000000" … /> 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

25

26 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

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

28 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:00.2000000 … 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

29

30 Sécurité des services Web

31 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

32 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é

33 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é

34 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

35 GlassFish WSIT : WS-Security

36 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

37

38 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

39 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("http://192.168.0.2:9999/?wsdl"); 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

40

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

42 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

43 Où trouver de linformation WSIT : http://java.sun.com/webservices/interop http://java.sun.com/webservices/interop WCF : http://wcf.netfx3.comhttp://wcf.netfx3.com Alexis Moussine-Pouchkine : http://blogs.sun.com/alexismp http://blogs.sun.com/alexismp Simon Guest : http://weblogs.asp.net/smguest http://weblogs.asp.net/smguest Brian Keller : http://blogs.msdn.com/briankel http://blogs.msdn.com/briankel Ted Neward : http://www.neward.net/ted/weblog http://www.neward.net/ted/weblog Stéphane Goudeau : http://blogs.msdn.com/stephgou http://blogs.msdn.com/stephgou WSIT : http://java.sun.com/webservices/interop http://java.sun.com/webservices/interop WCF : http://wcf.netfx3.comhttp://wcf.netfx3.com Alexis Moussine-Pouchkine : http://blogs.sun.com/alexismp http://blogs.sun.com/alexismp Simon Guest : http://weblogs.asp.net/smguest http://weblogs.asp.net/smguest Brian Keller : http://blogs.msdn.com/briankel http://blogs.msdn.com/briankel Ted Neward : http://www.neward.net/ted/weblog http://www.neward.net/ted/weblog Stéphane Goudeau : http://blogs.msdn.com/stephgou http://blogs.msdn.com/stephgou

44 Questions ?

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


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

Présentations similaires


Annonces Google