![Page 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](https://reader037.vdocuments.pub/reader037/viewer/2022103112/551d9d80497959293b8b8ba4/html5/thumbnails/1.jpg)
Interopérabilité des plateformes JavaEE et . NET
Implémentation des spécifications avancées des services Web avec GlassFish et WCF
Interopérabilité des plateformes JavaEE et . NET
Implémentation des spécifications avancées des services Web avec GlassFish et WCF
Alexis MOUSSINE-POUCHKINESUNArchitecte
Stéphane GOUDEAUMicrosoft France Architecte
Alexis MOUSSINE-POUCHKINESUNArchitecte
Stéphane GOUDEAUMicrosoft France Architecte
![Page 2: Interopérabilité des plateformes JavaEE et. NET Implémentation des spécifications avancées des services Web avec GlassFish et WCF Alexis MOUSSINE-POUCHKINE](https://reader037.vdocuments.pub/reader037/viewer/2022103112/551d9d80497959293b8b8ba4/html5/thumbnails/2.jpg)
AgendaAgenda
IntroductionIntroduction
Web Services AvancésWeb Services Avancés
Démos WS-*Démos WS-*
GlassFish & WCFGlassFish & WCF
SynthèseSynthèse
![Page 3: Interopérabilité des plateformes JavaEE et. NET Implémentation des spécifications avancées des services Web avec GlassFish et WCF Alexis MOUSSINE-POUCHKINE](https://reader037.vdocuments.pub/reader037/viewer/2022103112/551d9d80497959293b8b8ba4/html5/thumbnails/3.jpg)
AgendaAgenda
IntroductionIntroduction
Web Services AvancésWeb Services Avancés
Démos WS-*Démos WS-*
GlassFish & WCFGlassFish & WCF
SynthèseSynthèse
![Page 4: Interopérabilité des plateformes JavaEE et. NET Implémentation des spécifications avancées des services Web avec GlassFish et WCF Alexis MOUSSINE-POUCHKINE](https://reader037.vdocuments.pub/reader037/viewer/2022103112/551d9d80497959293b8b8ba4/html5/thumbnails/4.jpg)
Un besoin d’interopérabilité…Un besoin d’interopérabilité…
![Page 5: Interopérabilité des plateformes JavaEE et. NET Implémentation des spécifications avancées des services Web avec GlassFish et WCF Alexis MOUSSINE-POUCHKINE](https://reader037.vdocuments.pub/reader037/viewer/2022103112/551d9d80497959293b8b8ba4/html5/thumbnails/5.jpg)
Couplage faibleCouplage faible
PerformancesPerformances
Politiques Politiques d’utilisationd’utilisation
CoûtCoût
Critères de choixCritères de choix
StandardsStandards
ExistantExistant
Partage Partage de de
contratcontrat
![Page 6: Interopérabilité des plateformes JavaEE et. NET Implémentation des spécifications avancées des services Web avec GlassFish et WCF Alexis MOUSSINE-POUCHKINE](https://reader037.vdocuments.pub/reader037/viewer/2022103112/551d9d80497959293b8b8ba4/html5/thumbnails/6.jpg)
AgendaAgenda
IntroductionIntroduction
Web Services AvancésWeb Services Avancés
Démos WS-*Démos WS-*
GlassFish & WCFGlassFish & WCF
SynthèseSynthèse
![Page 7: Interopérabilité des plateformes JavaEE et. NET Implémentation des spécifications avancées des services Web avec GlassFish et WCF Alexis MOUSSINE-POUCHKINE](https://reader037.vdocuments.pub/reader037/viewer/2022103112/551d9d80497959293b8b8ba4/html5/thumbnails/7.jpg)
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 langagesTechnologie pour l’entreprise universellement adoptée ?
““Web services will become the dominant distributed Web services will become the dominant distributed computing architecture in the next 10 years and will computing architecture in the next 10 years and will eventually define the fabric of computing.” eventually define the fabric of computing.”
– – IDCIDC
Services WebServices Web
![Page 8: Interopérabilité des plateformes JavaEE et. NET Implémentation des spécifications avancées des services Web avec GlassFish et WCF Alexis MOUSSINE-POUCHKINE](https://reader037.vdocuments.pub/reader037/viewer/2022103112/551d9d80497959293b8b8ba4/html5/thumbnails/8.jpg)
8
Interoperabilitéhttp://www.WS-i.org Interoperabilitéhttp://www.WS-i.org
Effort de l’industrieAccélérer l’adoption et garantir l’interopérabilité des services Web
Plus 160 leaders de l’industrie Partenariat avec les organismes de standardisation: OASIS, OMG, OMA, RosettaNet
Profils regroupant un ensemble de standards avec leur recommandation d’utilisation
Basic ProfileSOAP 1.1, WSDL 1.0, UDDI 2.0, XML 1.0 et XML SchemaMise à disposition par les éditeurs de modèles de mise en œuvre vis-à-vis de leur implémentation SOAP Mise à disposition d’outils de test
Basic Security Profile
Attachements Profile
Simple SOAP Binding Profile
Effort de l’industrieAccélérer l’adoption et garantir l’interopérabilité des services Web
Plus 160 leaders de l’industrie Partenariat avec les organismes de standardisation: OASIS, OMG, OMA, RosettaNet
Profils regroupant un ensemble de standards avec leur recommandation d’utilisation
Basic ProfileSOAP 1.1, WSDL 1.0, UDDI 2.0, XML 1.0 et XML SchemaMise à disposition par les éditeurs de modèles de mise en œuvre vis-à-vis de leur implémentation SOAP Mise à disposition d’outils de test
Basic Security Profile
Attachements Profile
Simple SOAP Binding Profile
![Page 9: Interopérabilité des plateformes JavaEE et. NET Implémentation des spécifications avancées des services Web avec GlassFish et WCF Alexis MOUSSINE-POUCHKINE](https://reader037.vdocuments.pub/reader037/viewer/2022103112/551d9d80497959293b8b8ba4/html5/thumbnails/9.jpg)
9
WS-* : La cible est atteinte…WS-* : La cible est atteinte…
Transports HTTP Transports HTTP
XML XML, XSD, XPath XML XML, XSD, XPath
Messaging SOAP, WS-Addressing, WS-EventingMessaging SOAP, WS-Addressing, WS-Eventing
SecurityWS-Security
WS-TrustWS-Federation
SecurityWS-Security
WS-TrustWS-Federation
ReliabilityWS-ReliableMessaging
ReliabilityWS-ReliableMessaging
TransactionsWS-TransactionsWS-Coordination
WS-AtomicTranscation
TransactionsWS-TransactionsWS-Coordination
WS-AtomicTranscation
Meta
data
WS
DL,
WS
-Policy,
WS
-Dis
covery
Meta
data
WS
DL,
WS
-Policy,
WS
-Dis
covery
Connected Systems
Management
Business Processes
![Page 10: Interopérabilité des plateformes JavaEE et. NET Implémentation des spécifications avancées des services Web avec GlassFish et WCF Alexis MOUSSINE-POUCHKINE](https://reader037.vdocuments.pub/reader037/viewer/2022103112/551d9d80497959293b8b8ba4/html5/thumbnails/10.jpg)
Dans la vraie vie…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 échangesOASIS Web Services Reliable Messaging (WS-ReliableMessaging)
Sécurité du messageOASIS 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 échangesOASIS Web Services Reliable Messaging (WS-ReliableMessaging)
Sécurité du messageOASIS Web Services Security: SOAP Message Security 1.0 (WS-Security)
![Page 11: Interopérabilité des plateformes JavaEE et. NET Implémentation des spécifications avancées des services Web avec GlassFish et WCF Alexis MOUSSINE-POUCHKINE](https://reader037.vdocuments.pub/reader037/viewer/2022103112/551d9d80497959293b8b8ba4/html5/thumbnails/11.jpg)
ALLERALLERDESERIALIZE (XML DESERIALIZE (XML natif) natif)Interception (avant et après) !Interception (avant et après) !
RETOURRETOURSERIALIZE (natifSERIALIZE (natif XML) XML)
Interception (avant et Interception (avant et après) !après) !
ALLERALLERSERIALIZE (natifSERIALIZE (natif XML) XML)
Interception (avant et Interception (avant et après) !après) !
RETOURRETOURDESERIALIZE (XML DESERIALIZE (XML natif) natif)
Interception (avant et Interception (avant et après) !après) !
Fournisseur WSFournisseur WSClient WSClient WS<FlightInfo><FlightInfo> <flightNo/><flightNo/> <departTime/><departTime/> <.../><.../></FlightInfo></FlightInfo>
<FlightInfo><FlightInfo> <flightNo/><flightNo/> <departTime/><departTime/> <.../><.../></FlightInfo></FlightInfo>
Extensions SOAPExtensions SOAP
““serialize”serialize”““serialize”serialize”
““deserialize”deserialize”““deserialize”deserialize”
FlightInfo FlightInfo
““deserialize”deserialize”““deserialize”deserialize”
““serialize”serialize”““serialize”serialize”
Utilisée pour des fonctionnalités plus avancéesIntercepte les appels destinés à un service WebPrétraitement et post-traitement
Utilisée pour des fonctionnalités plus avancéesIntercepte les appels destinés à un service WebPrétraitement et post-traitement
![Page 12: Interopérabilité des plateformes JavaEE et. NET Implémentation des spécifications avancées des services Web avec GlassFish et WCF Alexis MOUSSINE-POUCHKINE](https://reader037.vdocuments.pub/reader037/viewer/2022103112/551d9d80497959293b8b8ba4/html5/thumbnails/12.jpg)
12
Don
nées
Don
nées
str
uctu
rées
str
uctu
rées C
ad
re log
isti
qu
eC
ad
re log
isti
qu
e
<?xml version="1.0" encoding="UTF-8" ?> <env:Envelope
xmlns:env="http://www.w3.org/2001/09/soap-envelope">
<env:Header> <n:alertcontrol xmlns:n="http://example.org/alertcontrol"> <n:priority>1</n:priority><n:expires>2001-06-22T14:00:00-05:00</n:expires> </n:alertcontrol>
</env:Header> <env:Body> <m:alert
xmlns:m="http://example.org/alert"> <m:msg>Pick up Mary at school at 2pm</m:msg> </m:alert>
</env:Body> </env:Envelope>
<?xml version="1.0" encoding="UTF-8" ?> <env:Envelope
xmlns:env="http://www.w3.org/2001/09/soap-envelope">
<env:Header> <n:alertcontrol xmlns:n="http://example.org/alertcontrol"> <n:priority>1</n:priority><n:expires>2001-06-22T14:00:00-05:00</n:expires> </n:alertcontrol>
</env:Header> <env:Body> <m:alert
xmlns:m="http://example.org/alert"> <m:msg>Pick up Mary at school at 2pm</m:msg> </m:alert>
</env:Body> </env:Envelope>
Sécu
rité
Fiab
ili
té
Tran
sact
ions
Routa
ge
ConsommateurConsommateur
FournisseurFournisseur
SOAP ExtensionsSOAP Extensions
SOAP ExtensionsSOAP Extensions
Implémentation des WS-*Implémentation des WS-*
![Page 13: Interopérabilité des plateformes JavaEE et. NET Implémentation des spécifications avancées des services Web avec GlassFish et WCF Alexis MOUSSINE-POUCHKINE](https://reader037.vdocuments.pub/reader037/viewer/2022103112/551d9d80497959293b8b8ba4/html5/thumbnails/13.jpg)
AgendaAgenda
IntroductionIntroduction
Web Services AvancésWeb Services Avancés
Démos WS-*Démos WS-*
GlassFish & WCFGlassFish & WCF
SynthèseSynthèse
![Page 14: Interopérabilité des plateformes JavaEE et. NET Implémentation des spécifications avancées des services Web avec GlassFish et WCF Alexis MOUSSINE-POUCHKINE](https://reader037.vdocuments.pub/reader037/viewer/2022103112/551d9d80497959293b8b8ba4/html5/thumbnails/14.jpg)
Web Services dans Java EE 5Web Services dans Java EE 5JAX-WS 2.x est l'évolution de JAX-RPC 1.x
JAX-WS sous-ensemble de Java EE 5EJB 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étierLogique Métier
Classes AnnotéesFortement Typées
Couche MessageAPI Dispatch/Provider
![Page 15: Interopérabilité des plateformes JavaEE et. NET Implémentation des spécifications avancées des services Web avec GlassFish et WCF Alexis MOUSSINE-POUCHKINE](https://reader037.vdocuments.pub/reader037/viewer/2022103112/551d9d80497959293b8b8ba4/html5/thumbnails/15.jpg)
Simple Web Service JAX-WSSimple Web Service JAX-WS
package endpoint;
import javax.jws.WebService;
@WebServicepublic class Bonjour {
public String ditBonjour(String nom) { return "Bonjour " + nom; }
}
![Page 16: Interopérabilité des plateformes JavaEE et. NET Implémentation des spécifications avancées des services Web avec GlassFish et WCF Alexis MOUSSINE-POUCHKINE](https://reader037.vdocuments.pub/reader037/viewer/2022103112/551d9d80497959293b8b8ba4/html5/thumbnails/16.jpg)
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)
GlassFish et WSIT
![Page 17: Interopérabilité des plateformes JavaEE et. NET Implémentation des spécifications avancées des services Web avec GlassFish et WCF Alexis MOUSSINE-POUCHKINE](https://reader037.vdocuments.pub/reader037/viewer/2022103112/551d9d80497959293b8b8ba4/html5/thumbnails/17.jpg)
Windows Communication Foundation (WCF)Windows Communication Foundation (WCF)
Composante du Microsoft .NET Framework 3.0 : Windows Vista, Windows XP SP2, Windows Server 2003 SP1Framework unifié pour créer des Applications Orientées Service interopérablesUnification des technologies middlewareArchitecture modulaire et composableSupport 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 SP1Framework unifié pour créer des Applications Orientées Service interopérablesUnification des technologies middlewareArchitecture modulaire et composableSupport natif des protocoles des services Web avancés WS-*Modèle de programmation orienté servicehttp://www.microsoft.com/downloads/details.aspx?FamilyId=10CC340B-F857-4A14-83F5-25634C3BF043&displaylang=en
![Page 18: Interopérabilité des plateformes JavaEE et. NET Implémentation des spécifications avancées des services Web avec GlassFish et WCF Alexis MOUSSINE-POUCHKINE](https://reader037.vdocuments.pub/reader037/viewer/2022103112/551d9d80497959293b8b8ba4/html5/thumbnails/18.jpg)
Visual Studio 2005 extensions for .NET Framework 3.0 Visual Studio 2005 extensions for .NET Framework 3.0
WCF : Principes et outilsWCF : Principes et outils
WSDL
Point de terminaison
Client Service
B
« Binding »Comment ?
C
ContratQuoi ?
A
AdresseOù ?
« Behavior »Environnement
d’exécution
BeB ACBe
A CB
A CB
http://www.microsoft.com/downloads/details.aspx?FamilyId=F54F5537-CC86-4BF5-AE44-F5A1E805680D&displaylang=en
![Page 19: Interopérabilité des plateformes JavaEE et. NET Implémentation des spécifications avancées des services Web avec GlassFish et WCF Alexis MOUSSINE-POUCHKINE](https://reader037.vdocuments.pub/reader037/viewer/2022103112/551d9d80497959293b8b8ba4/html5/thumbnails/19.jpg)
AgendaAgenda
IntroductionIntroduction
Web Services AvancésWeb Services Avancés
Démos WS-*Démos WS-*
GlassFish & WCFGlassFish & WCF
SynthèseSynthèse
![Page 20: Interopérabilité des plateformes JavaEE et. NET Implémentation des spécifications avancées des services Web avec GlassFish et WCF Alexis MOUSSINE-POUCHKINE](https://reader037.vdocuments.pub/reader037/viewer/2022103112/551d9d80497959293b8b8ba4/html5/thumbnails/20.jpg)
Quelle démarche adopter ?Quelle démarche adopter ?Définition du contrat
Contrat de serviceDescription des opérations et sémantique des échanges (« oneway », « duplex », session, …)
Contrat de donnéesDéfinition du contenu des messages
Contrat d’utilisationCaractéristiques de la communication : fiabilité, sécurité, encodage, transport,…
Implémentation du Service
Développement
Déploiement
Publication du WSDL
Définition du contratContrat de service
Description des opérations et sémantique des échanges (« oneway », « duplex », session, …)
Contrat de donnéesDéfinition du contenu des messages
Contrat d’utilisationCaractéristiques de la communication : fiabilité, sécurité, encodage, transport,…
Implémentation du Service
Développement
Déploiement
Publication du WSDL
![Page 21: Interopérabilité des plateformes JavaEE et. NET Implémentation des spécifications avancées des services Web avec GlassFish et WCF Alexis MOUSSINE-POUCHKINE](https://reader037.vdocuments.pub/reader037/viewer/2022103112/551d9d80497959293b8b8ba4/html5/thumbnails/21.jpg)
![Page 22: Interopérabilité des plateformes JavaEE et. NET Implémentation des spécifications avancées des services Web avec GlassFish et WCF Alexis MOUSSINE-POUCHKINE](https://reader037.vdocuments.pub/reader037/viewer/2022103112/551d9d80497959293b8b8ba4/html5/thumbnails/22.jpg)
Comment optimiser les WS …?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 l’InfoSet XML
Transfert des données - sans ré-encodage - à l’extérieur de l’enveloppe 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 l’InfoSet XML
Transfert des données - sans ré-encodage - à l’extérieur de l’enveloppe SOAP, en utilisant un message de type « MIME multipart related »
ENVELOPPE SOAPENVELOPPE SOAP
DONNES BINAIRES
MIME MULTIPART
DONNES BINAIRES (encodé en base64)
![Page 23: Interopérabilité des plateformes JavaEE et. NET Implémentation des spécifications avancées des services Web avec GlassFish et WCF Alexis MOUSSINE-POUCHKINE](https://reader037.vdocuments.pub/reader037/viewer/2022103112/551d9d80497959293b8b8ba4/html5/thumbnails/23.jpg)
GlassFish WSIT : MTOM
![Page 24: Interopérabilité des plateformes JavaEE et. NET Implémentation des spécifications avancées des services Web avec GlassFish et WCF Alexis MOUSSINE-POUCHKINE](https://reader037.vdocuments.pub/reader037/viewer/2022103112/551d9d80497959293b8b8ba4/html5/thumbnails/24.jpg)
<binding name="prestoMtomBinding"> <mtomMessageEncoding messageVersion= "Soap12WSAddressingAugust2004" writeEncoding="utf-8"> <readerQuotas maxArrayLength="5000000" /> </mtomMessageEncoding> <httpTransport maxReceivedMessageSize="5000000" … /> </binding>
WCF : mise en place de MTOMWCF : mise en place de MTOM
Contrat : Paramètre ou propriétés d’objets de type byte[ ]Binding : Encodage de type MTOM
Contrat : Paramètre ou propriétés d’objets 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
Programmation
Configuration
Paramétrage par code ou par configurationParamétrage par code ou par configuration
![Page 25: Interopérabilité des plateformes JavaEE et. NET Implémentation des spécifications avancées des services Web avec GlassFish et WCF Alexis MOUSSINE-POUCHKINE](https://reader037.vdocuments.pub/reader037/viewer/2022103112/551d9d80497959293b8b8ba4/html5/thumbnails/25.jpg)
![Page 26: Interopérabilité des plateformes JavaEE et. NET Implémentation des spécifications avancées des services Web avec GlassFish et WCF Alexis MOUSSINE-POUCHKINE](https://reader037.vdocuments.pub/reader037/viewer/2022103112/551d9d80497959293b8b8ba4/html5/thumbnails/26.jpg)
WS-RM : Principe de fonctionnementWS-RM : Principe de fonctionnement
Différent du modèle de file d’attente (pas de tiers explicite)Agent RM source et Agent RM destinationLa 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 d’attente (pas de tiers explicite)Agent RM source et Agent RM destinationLa 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
![Page 27: Interopérabilité des plateformes JavaEE et. NET Implémentation des spécifications avancées des services Web avec GlassFish et WCF Alexis MOUSSINE-POUCHKINE](https://reader037.vdocuments.pub/reader037/viewer/2022103112/551d9d80497959293b8b8ba4/html5/thumbnails/27.jpg)
GlassFish WSIT : WS-RMGlassFish WSIT : WS-RM
TerminateSequence explicite :((Closeable)port).close();
![Page 28: Interopérabilité des plateformes JavaEE et. NET Implémentation des spécifications avancées des services Web avec GlassFish et WCF Alexis MOUSSINE-POUCHKINE](https://reader037.vdocuments.pub/reader037/viewer/2022103112/551d9d80497959293b8b8ba4/html5/thumbnails/28.jpg)
WCF : Reliable MessagingWCF : Reliable Messaging
« ReliableSession BindingElement »Premier élément de la collection de bindingsParamétrage par code ou par configuration
« ReliableSession BindingElement »Premier élément de la collection de bindingsParamétrage par code ou par configuration
<binding name="prestoReliableBinding"> <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
Transport par code
![Page 29: Interopérabilité des plateformes JavaEE et. NET Implémentation des spécifications avancées des services Web avec GlassFish et WCF Alexis MOUSSINE-POUCHKINE](https://reader037.vdocuments.pub/reader037/viewer/2022103112/551d9d80497959293b8b8ba4/html5/thumbnails/29.jpg)
![Page 30: Interopérabilité des plateformes JavaEE et. NET Implémentation des spécifications avancées des services Web avec GlassFish et WCF Alexis MOUSSINE-POUCHKINE](https://reader037.vdocuments.pub/reader037/viewer/2022103112/551d9d80497959293b8b8ba4/html5/thumbnails/30.jpg)
Sécurité des services WebSécurité des services Web
AuditProtection des
données sensibles
Prévention de la manipulation des
paramètres
Authentification des utilisateurs
Application
Prévention du hijacking de session et d’attaque
de type replay
Autorisation des utilisateurs
Gestion des exceptions
Protection des données sensibles
Authentification et autorisation des
identités
Serveur de données
Base de données
Serveur d’application
Application
Serveur Web
Service WCF
Configuration de la sécurité
Validation de la saisie
Chiffrement des données sensibles
![Page 31: Interopérabilité des plateformes JavaEE et. NET Implémentation des spécifications avancées des services Web avec GlassFish et WCF Alexis MOUSSINE-POUCHKINE](https://reader037.vdocuments.pub/reader037/viewer/2022103112/551d9d80497959293b8b8ba4/html5/thumbnails/31.jpg)
Modes de sécuritéModes de sécurité
Client A Service
B AC A CB
Client B
B AC A CB
Transport
Message
![Page 32: Interopérabilité des plateformes JavaEE et. NET Implémentation des spécifications avancées des services Web avec GlassFish et WCF Alexis MOUSSINE-POUCHKINE](https://reader037.vdocuments.pub/reader037/viewer/2022103112/551d9d80497959293b8b8ba4/html5/thumbnails/32.jpg)
Sécurité de niveau TransportSécurité de niveau Transport
HTTPS, SSL over TCPDépendance du transport
Compatible avec les systèmes existants
S’applique au message dans son ensemble
Confidentialité, intégrité et/ou authentification
Point à point
HTTPS, SSL over TCPDépendance du transport
Compatible avec les systèmes existants
S’applique au message dans son ensemble
Confidentialité, intégrité et/ou authentification
Point à point
Client Service
Chiffré/Signé
![Page 33: Interopérabilité des plateformes JavaEE et. NET Implémentation des spécifications avancées des services Web avec GlassFish et WCF Alexis MOUSSINE-POUCHKINE](https://reader037.vdocuments.pub/reader037/viewer/2022103112/551d9d80497959293b8b8ba4/html5/thumbnails/33.jpg)
Sécurité de niveau MessageSé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é jusqu’au destinataire ultime du messageL’expéditeur ne doit faire confiance qu’au destinataire ultimeSécurisation de façon sélective : partie(s) du messageConfidentialité, 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é jusqu’au destinataire ultime du messageL’expéditeur ne doit faire confiance qu’au destinataire ultimeSécurisation de façon sélective : partie(s) du messageConfidentialité, intégrité, non-répudiation et/ou authentification
Client Service
Chiffré/Signé
Nœud intermédiaire
Chiffré/Signé
![Page 34: Interopérabilité des plateformes JavaEE et. NET Implémentation des spécifications avancées des services Web avec GlassFish et WCF Alexis MOUSSINE-POUCHKINE](https://reader037.vdocuments.pub/reader037/viewer/2022103112/551d9d80497959293b8b8ba4/html5/thumbnails/34.jpg)
Standards sécurité WS-* dans WSIT et WCFStandards 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 d’un jeton de sécuritéCouple utilisateur / mot de passe, X.509, Kerberos et SAML
OASIS WS-TrustObtention et renouvellement d’un jeton de sécurité
OASIS WS-SecureConversationEtablissement d’un contexte de sécurité et échange des clés de session permettant d’échanger N messages dans un même contexte
OASIS WS-SecurityPolicyDescription des assertions spécifiques à la sécurité, utilisées dans WS-Security, WS-Trust, et WS-SecureConversation
WS-I Basic Security ProfileCore + Kerberos + SAML
OASIS Web Services Security SOAP Message Security (WS-Security) 1.0 et 1.1
Intégrité, confidentialité, et inclusion d’un jeton de sécuritéCouple utilisateur / mot de passe, X.509, Kerberos et SAML
OASIS WS-TrustObtention et renouvellement d’un jeton de sécurité
OASIS WS-SecureConversationEtablissement d’un contexte de sécurité et échange des clés de session permettant d’échanger N messages dans un même contexte
OASIS WS-SecurityPolicyDescription des assertions spécifiques à la sécurité, utilisées dans WS-Security, WS-Trust, et WS-SecureConversation
WS-I Basic Security ProfileCore + Kerberos + SAML
![Page 35: Interopérabilité des plateformes JavaEE et. NET Implémentation des spécifications avancées des services Web avec GlassFish et WCF Alexis MOUSSINE-POUCHKINE](https://reader037.vdocuments.pub/reader037/viewer/2022103112/551d9d80497959293b8b8ba4/html5/thumbnails/35.jpg)
GlassFish WSIT : WS-Security
![Page 36: Interopérabilité des plateformes JavaEE et. NET Implémentation des spécifications avancées des services Web avec GlassFish et WCF Alexis MOUSSINE-POUCHKINE](https://reader037.vdocuments.pub/reader037/viewer/2022103112/551d9d80497959293b8b8ba4/html5/thumbnails/36.jpg)
WCF : SécuritéWCF : SécuritéSécurité des échanges de messagesSécurité d’accès aux ressourcesMise en œuvre grâce aux bindings et behaviorsParamétrage par code ou par configuration
Sécurité des échanges de messagesSécurité d’accès aux ressourcesMise en œuvre grâce aux bindings et behaviorsParamétrage par code ou par configuration
Binding
<endpointBehaviors> <behavior name=“prestoSignConfig”> <clientCredentials> <clientCertificate storeLocation=“LocalMachine” storeName=“My” x509FindType=“FindByThumbprint” findValue=“F31416E1D645367AC2DB89E31B8EF89A4E77CF21”/> </clientCredentials> </behavior> <endpointBehaviors>
Behavior
factory.Credentials.ServiceCertificate.SetDefaultCertificate(StoreLocation.LocalMachine, StoreName.My, X509FindType.FindByThumbprint, config.ServiceCertificateThumbprint);
Code Client
Code Client
![Page 37: Interopérabilité des plateformes JavaEE et. NET Implémentation des spécifications avancées des services Web avec GlassFish et WCF Alexis MOUSSINE-POUCHKINE](https://reader037.vdocuments.pub/reader037/viewer/2022103112/551d9d80497959293b8b8ba4/html5/thumbnails/37.jpg)
![Page 38: Interopérabilité des plateformes JavaEE et. NET Implémentation des spécifications avancées des services Web avec GlassFish et WCF Alexis MOUSSINE-POUCHKINE](https://reader037.vdocuments.pub/reader037/viewer/2022103112/551d9d80497959293b8b8ba4/html5/thumbnails/38.jpg)
Découverte dynamique du contratDé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 ServiceGetMetadata
WSDL
![Page 39: Interopérabilité des plateformes JavaEE et. NET Implémentation des spécifications avancées des services Web avec GlassFish et WCF Alexis MOUSSINE-POUCHKINE](https://reader037.vdocuments.pub/reader037/viewer/2022103112/551d9d80497959293b8b8ba4/html5/thumbnails/39.jpg)
WCF : WS-MetadataExchangeWCF : 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<ISecurityCapabilities>(new BindingParameterCollection());
if (isc.SupportsServerAuthentication) {…}if (isc.SupportedRequestProtectionLevel != ProtectionLevel.None) {…}
Code Client
ChannelFactory<IPresto> 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<IPresto> endpoint.Binding, endpoint.Address)} } IPresto prestoInterface = factory.CreateChannel();
Code Client
![Page 40: Interopérabilité des plateformes JavaEE et. NET Implémentation des spécifications avancées des services Web avec GlassFish et WCF Alexis MOUSSINE-POUCHKINE](https://reader037.vdocuments.pub/reader037/viewer/2022103112/551d9d80497959293b8b8ba4/html5/thumbnails/40.jpg)
![Page 41: Interopérabilité des plateformes JavaEE et. NET Implémentation des spécifications avancées des services Web avec GlassFish et WCF Alexis MOUSSINE-POUCHKINE](https://reader037.vdocuments.pub/reader037/viewer/2022103112/551d9d80497959293b8b8ba4/html5/thumbnails/41.jpg)
AgendaAgenda
IntroductionIntroduction
Web Services AvancésWeb Services Avancés
Démos WS-*Démos WS-*
GlassFish & WCFGlassFish & WCF
SynthèseSynthèse
![Page 42: Interopérabilité des plateformes JavaEE et. NET Implémentation des spécifications avancées des services Web avec GlassFish et WCF Alexis MOUSSINE-POUCHKINE](https://reader037.vdocuments.pub/reader037/viewer/2022103112/551d9d80497959293b8b8ba4/html5/thumbnails/42.jpg)
En guise de conclusionEn guise de conclusion
WSIT et WCF deux frameworks offrant une interopérabilité
Basée sur des standardsSpé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 d’utilisation » : PRESTO « PRotocole d’Echanges Standard et Ouvert » enveloppe de transport pour l’échange de documents électroniques entre SI d’administrations (DGME)
WSIT et WCF deux frameworks offrant une interopérabilité
Basée sur des standardsSpé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 d’utilisation » : PRESTO « PRotocole d’Echanges Standard et Ouvert » enveloppe de transport pour l’échange de documents électroniques entre SI d’administrations (DGME)
Protocole PES HELIOS
Protocole métier ACTES
Protocole métier
spécifique
![Page 43: Interopérabilité des plateformes JavaEE et. NET Implémentation des spécifications avancées des services Web avec GlassFish et WCF Alexis MOUSSINE-POUCHKINE](https://reader037.vdocuments.pub/reader037/viewer/2022103112/551d9d80497959293b8b8ba4/html5/thumbnails/43.jpg)
Où trouver de l’informationOù trouver de l’information
WSIT : http://java.sun.com/webservices/interopWCF : http://wcf.netfx3.comAlexis Moussine-Pouchkine : http://blogs.sun.com/alexismpSimon Guest : http://weblogs.asp.net/smguestBrian Keller : http://blogs.msdn.com/briankelTed Neward : http://www.neward.net/ted/weblogStéphane Goudeau : http://blogs.msdn.com/stephgou
WSIT : http://java.sun.com/webservices/interopWCF : http://wcf.netfx3.comAlexis Moussine-Pouchkine : http://blogs.sun.com/alexismpSimon Guest : http://weblogs.asp.net/smguestBrian Keller : http://blogs.msdn.com/briankelTed Neward : http://www.neward.net/ted/weblogStéphane Goudeau : http://blogs.msdn.com/stephgou
![Page 44: Interopérabilité des plateformes JavaEE et. NET Implémentation des spécifications avancées des services Web avec GlassFish et WCF Alexis MOUSSINE-POUCHKINE](https://reader037.vdocuments.pub/reader037/viewer/2022103112/551d9d80497959293b8b8ba4/html5/thumbnails/44.jpg)
Questions ?Questions ?
![Page 45: Interopérabilité des plateformes JavaEE et. NET Implémentation des spécifications avancées des services Web avec GlassFish et WCF Alexis MOUSSINE-POUCHKINE](https://reader037.vdocuments.pub/reader037/viewer/2022103112/551d9d80497959293b8b8ba4/html5/thumbnails/45.jpg)
© 2007 Microsoft Corporation. All rights reserved.© 2007 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. This presentation is for informational purposes only.
MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.