Les Web Services avec.Net Vers une plate-forme de communication standardisée Jérôme Laplace...

31
Les Web Services Les Web Services avec .Net avec .Net Vers une plate-forme de Vers une plate-forme de communication standardisée communication standardisée Jérôme Laplace ([email protected]) Christophe Poncy

Transcript of Les Web Services avec.Net Vers une plate-forme de communication standardisée Jérôme Laplace...

Page 1: Les Web Services avec.Net Vers une plate-forme de communication standardisée Jérôme Laplace (jl@np6.com) Christophe Poncy (cpo@np6.com)

Les Web Services avec .NetLes Web Services avec .Net

Vers une plate-forme de Vers une plate-forme de communication standardiséecommunication standardisée

Jérôme Laplace ([email protected])

Christophe Poncy ([email protected])

Page 2: Les Web Services avec.Net Vers une plate-forme de communication standardisée Jérôme Laplace (jl@np6.com) Christophe Poncy (cpo@np6.com)

NP6, Microsoft PartnerNP6, Microsoft Partner

SSII spécialisée dans les technologies SSII spécialisée dans les technologies MicrosoftMicrosoft Infrastructure (Windows, ISA, Exchange)Infrastructure (Windows, ISA, Exchange) Serveurs (CMS, SharePoint, SQL)Serveurs (CMS, SharePoint, SQL) Développement (.Net)Développement (.Net) Connectivité (XML, Web Services)Connectivité (XML, Web Services) Poste client (Office System, InfoPath)Poste client (Office System, InfoPath)

MissionsMissions Assistance et conseilAssistance et conseil DéveloppementDéveloppement ExploitationExploitation

Page 3: Les Web Services avec.Net Vers une plate-forme de communication standardisée Jérôme Laplace (jl@np6.com) Christophe Poncy (cpo@np6.com)

AgendaAgenda

Découverte des Web ServicesDécouverte des Web Services Quelle conséquence sur les architectures ?Quelle conséquence sur les architectures ? Office SystemOffice System Le point sur les normesLe point sur les normes .Net 2.0.Net 2.0 IndigoIndigo

Page 4: Les Web Services avec.Net Vers une plate-forme de communication standardisée Jérôme Laplace (jl@np6.com) Christophe Poncy (cpo@np6.com)

ProblématiqueProblématique

Comment utiliser une API distanteComment utiliser une API distante De manière standardDe manière standard Quelle que soit la plate-forme distanteQuelle que soit la plate-forme distante Quelle que soit l’application distanteQuelle que soit l’application distante Quel que soit le langage distant utiliséQuel que soit le langage distant utilisé Sur les protocoles du Web ?Sur les protocoles du Web ?

Page 5: Les Web Services avec.Net Vers une plate-forme de communication standardisée Jérôme Laplace (jl@np6.com) Christophe Poncy (cpo@np6.com)

Visualiser le conceptVisualiser le concept

Le Web Services estBasé sur HTTPUtilise XML comme fomat de transfert des données

Page 6: Les Web Services avec.Net Vers une plate-forme de communication standardisée Jérôme Laplace (jl@np6.com) Christophe Poncy (cpo@np6.com)

Les Web ServicesLes Web Services

« « Applications modulaires basées sur Internet réalisant Applications modulaires basées sur Internet réalisant une tâche spécifique et se conformant à un format une tâche spécifique et se conformant à un format technique spécifique technique spécifique ». ». Marc Colan (IBM)Marc Colan (IBM)

Application A

Application B

TCP/IPTCP/IP

Entreprise 1 Entreprise 2

Page 7: Les Web Services avec.Net Vers une plate-forme de communication standardisée Jérôme Laplace (jl@np6.com) Christophe Poncy (cpo@np6.com)

Evolution du WebEvolution du Web

XMLXML

ProgrammabilitéProgrammabilitéConnectivitéConnectivité

HTMLHTML

PrésentationPrésentation

TCP/IPTCP/IPTechnologie

Technologie

Innovation

Innovation

FTP,FTP, E-mail, Gopher

E-mail, GopherPages Web

Pages Web

Parcourir le Parcourir le WebWeb

ProgrammerProgrammerle Weble Web

Web Services

Web Services

Page 8: Les Web Services avec.Net Vers une plate-forme de communication standardisée Jérôme Laplace (jl@np6.com) Christophe Poncy (cpo@np6.com)

La technologie de baseLa technologie de base

Les technologies de base :Les technologies de base : XMLXML : format d’échange : format d’échange SOAP 1.2SOAP 1.2: communication RPC: communication RPC WSDL 1.1WSDL 1.1 : description d’un service : description d’un service

webweb UDDIUDDI 2.0 : annuaire des services 2.0 : annuaire des services

web proposésweb proposés

Ces technologies sont Ces technologies sont standardiséesstandardisées

Page 9: Les Web Services avec.Net Vers une plate-forme de communication standardisée Jérôme Laplace (jl@np6.com) Christophe Poncy (cpo@np6.com)

Messages SOAPMessages SOAP

POST /StockQuote HTTP/1.1POST /StockQuote HTTP/1.1Host: www.stockquoteserver.comHost: www.stockquoteserver.comContent-Type: text/xml; charset="utf-8"Content-Type: text/xml; charset="utf-8"Content-Length: nnnnContent-Length: nnnnSOAPAction: "Some-URI"SOAPAction: "Some-URI"

<SOAP-ENV:Envelope<SOAP-ENV:Envelope  xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/  xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"envelope/"  SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/  SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">soap/encoding/">   <SOAP-ENV:Body>   <SOAP-ENV:Body>       <m:GetLastTradePrice xmlns:m="Some-URI">       <m:GetLastTradePrice xmlns:m="Some-URI">           <symbol>DIS</symbol>           <symbol>DIS</symbol>       </m:GetLastTradePrice>       </m:GetLastTradePrice>   </SOAP-ENV:Body>   </SOAP-ENV:Body></SOAP-ENV:Envelope></SOAP-ENV:Envelope>

REQUETE

Page 10: Les Web Services avec.Net Vers une plate-forme de communication standardisée Jérôme Laplace (jl@np6.com) Christophe Poncy (cpo@np6.com)

HTTP/1.1 200 OKHTTP/1.1 200 OKContent-Type: text/xml; charset="utf-8"Content-Type: text/xml; charset="utf-8"Content-Length: nnnnContent-Length: nnnn

<SOAP-ENV:Envelope<SOAP-ENV:Envelope  xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/  xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"envelope/"  SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/  SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>soap/encoding/"/>   <SOAP-ENV:Body>   <SOAP-ENV:Body>       <m:GetLastTradePriceResponse xmlns:m="Some-URI">       <m:GetLastTradePriceResponse xmlns:m="Some-URI">           <Price>34.5</Price>           <Price>34.5</Price>       </m:GetLastTradePriceResponse>       </m:GetLastTradePriceResponse>   </SOAP-ENV:Body>   </SOAP-ENV:Body></SOAP-ENV:Envelope></SOAP-ENV:Envelope>

REPONSE

Messages SOAPMessages SOAP

Page 11: Les Web Services avec.Net Vers une plate-forme de communication standardisée Jérôme Laplace (jl@np6.com) Christophe Poncy (cpo@np6.com)

WSDLWSDL

Web Service Description langageWeb Service Description langage Il décrit le Web ServiceIl décrit le Web Service C’est un contrat spécifiant ce que fait un Web C’est un contrat spécifiant ce que fait un Web

Service et comment s’en servirService et comment s’en servir

Page 12: Les Web Services avec.Net Vers une plate-forme de communication standardisée Jérôme Laplace (jl@np6.com) Christophe Poncy (cpo@np6.com)

FonctionnementFonctionnement

Page 13: Les Web Services avec.Net Vers une plate-forme de communication standardisée Jérôme Laplace (jl@np6.com) Christophe Poncy (cpo@np6.com)

Web Services Simples avec .NetWeb Services Simples avec .Net

Page 14: Les Web Services avec.Net Vers une plate-forme de communication standardisée Jérôme Laplace (jl@np6.com) Christophe Poncy (cpo@np6.com)

Caractéristiques principalesCaractéristiques principales

Participation à des transactionsParticipation à des transactions Gestion du cache au niveau des WSGestion du cache au niveau des WS DescriptionDescription Activer les sessionsActiver les sessions

Page 15: Les Web Services avec.Net Vers une plate-forme de communication standardisée Jérôme Laplace (jl@np6.com) Christophe Poncy (cpo@np6.com)

D’autres solutions techniques ?D’autres solutions techniques ?

DCOMDCOM : limité au monde Microsoft : limité au monde Microsoft RMIRMI : limité au monde Java : limité au monde Java CorbaCorba : complexe à mettre en œuvre et : complexe à mettre en œuvre et nécessite un logiciel propriétaire (le broker nécessite un logiciel propriétaire (le broker d’objets)d’objets)

Aucun des trois ne peut passer naturellement les Aucun des trois ne peut passer naturellement les firewallsfirewalls

Page 16: Les Web Services avec.Net Vers une plate-forme de communication standardisée Jérôme Laplace (jl@np6.com) Christophe Poncy (cpo@np6.com)

Web Services dans les architecturesWeb Services dans les architectures

On parle de SOA : Service Oriented On parle de SOA : Service Oriented ArchitectureArchitecture Les développements sont réalisés sous l’angle Les développements sont réalisés sous l’angle de servicesde services

Flexibilité des applicationsFlexibilité des applications Couplage lâcheCouplage lâche Intégration généraliséeIntégration généralisée Gouvernance de système d’information facilitéeGouvernance de système d’information facilitée

Gartner (1996):Gartner (1996):Service-oriented architecture (SOA) is a client/server software design approach in which an application consists of software services and software service consumers (also known as clients or service requesters). SOA differs from the more general client/server model in its definitive emphasis on loose coupling between software components, and in its use of separately standing interfaces.

Page 17: Les Web Services avec.Net Vers une plate-forme de communication standardisée Jérôme Laplace (jl@np6.com) Christophe Poncy (cpo@np6.com)

Objectifs des Web ServicesObjectifs des Web Services

Un maître mot : Un maître mot : l’interopérabilité l’interopérabilité des systèmesdes systèmes

Un mode commun Un mode commun et standard de et standard de communicationcommunication

Page 18: Les Web Services avec.Net Vers une plate-forme de communication standardisée Jérôme Laplace (jl@np6.com) Christophe Poncy (cpo@np6.com)

Office SystemOffice System

Les outils Office System tirent partie des Web Les outils Office System tirent partie des Web ServicesServices

Microsoft InfoPathMicrosoft InfoPath Nouvel outil de la suite OfficeNouvel outil de la suite Office Création simple de formulaires riches Création simple de formulaires riches Production de données XMLProduction de données XML Consommation de Web Services en quelques clicsConsommation de Web Services en quelques clics

Page 19: Les Web Services avec.Net Vers une plate-forme de communication standardisée Jérôme Laplace (jl@np6.com) Christophe Poncy (cpo@np6.com)

InfoPath : le client naturelInfoPath : le client naturel

Page 20: Les Web Services avec.Net Vers une plate-forme de communication standardisée Jérôme Laplace (jl@np6.com) Christophe Poncy (cpo@np6.com)

Web Services avec SQL Server 2005Web Services avec SQL Server 2005

Page 21: Les Web Services avec.Net Vers une plate-forme de communication standardisée Jérôme Laplace (jl@np6.com) Christophe Poncy (cpo@np6.com)

Autres standards et protocolesAutres standards et protocoles

Nombreuses Nombreuses « normes » pour :« normes » pour : La découverte des La découverte des

WebServicesWebServices Leur descriptionLeur description Les échangesLes échanges La sécuritéLa sécurité Les transactionsLes transactions La gestion des La gestion des

processus métiers…processus métiers… Implémentés dans les Web Services Enhancements (WSE)

Page 22: Les Web Services avec.Net Vers une plate-forme de communication standardisée Jérôme Laplace (jl@np6.com) Christophe Poncy (cpo@np6.com)

La guerre des protocolesLa guerre des protocoles

XML UDDI WSDL SOAP WS-Adressing WS-Reliability WS-ReliableMessaging WS-Transaction WS-Security HTTPR XML-Encryption XACML XML Digital signature XML Key Management WS-Interoperability BPEL4WS BPML WSCI

WS-Eventing MTOM WS-SecureConversation WS-Trust WS-Federation WS-Coordination WS-AtomicTransaction WS-BusinessActivity WS-Policy WS-Discovery WS-MetadataExchange WS-Inspection XML Information Set

Page 23: Les Web Services avec.Net Vers une plate-forme de communication standardisée Jérôme Laplace (jl@np6.com) Christophe Poncy (cpo@np6.com)

La guerre des protocoles (2)La guerre des protocoles (2)

Page 24: Les Web Services avec.Net Vers une plate-forme de communication standardisée Jérôme Laplace (jl@np6.com) Christophe Poncy (cpo@np6.com)

Les organisations de standardisationLes organisations de standardisation

Organismes « génériques »Organismes « génériques » W3CW3C : SOAP, XML : SOAP, XML OASISOASIS : WSDL, UDDI : WSDL, UDDI

Organismes dédiésOrganismes dédiés WS-IWS-I OrganizationOrganization

Page 25: Les Web Services avec.Net Vers une plate-forme de communication standardisée Jérôme Laplace (jl@np6.com) Christophe Poncy (cpo@np6.com)

WS-I : un tournant décisifWS-I : un tournant décisif

TechniqueTechnique Interopérabilité des Web ServicesInteropérabilité des Web Services Basic Profile 1.1Basic Profile 1.1 Des outils pour vérifierDes outils pour vérifier

StratégiqueStratégique WS-I s’impose face à OASIS et W3C (mais uniquement sur WS-I s’impose face à OASIS et W3C (mais uniquement sur

l’interopérabilité)l’interopérabilité) Les Web Services sont réellement « cross-platform)Les Web Services sont réellement « cross-platform) WS-I avance sur l’intéropérabilité des pratiques de sécuritéWS-I avance sur l’intéropérabilité des pratiques de sécurité WS-I, une réponse face à la jungle des standards ?WS-I, une réponse face à la jungle des standards ?

Page 26: Les Web Services avec.Net Vers une plate-forme de communication standardisée Jérôme Laplace (jl@np6.com) Christophe Poncy (cpo@np6.com)

.Net 2.0.Net 2.0

LonghornLonghorn Visual Studio 2005Visual Studio 2005 SQL Server 2005SQL Server 2005

Amélioration des Web Services :Amélioration des Web Services : Compatible WS-ICompatible WS-I Support de SOAP 1.2Support de SOAP 1.2 Amélioration de la gestion asynchroneAmélioration de la gestion asynchrone Affranchissement de IIS (classe HTTP Listner)Affranchissement de IIS (classe HTTP Listner)

Page 27: Les Web Services avec.Net Vers une plate-forme de communication standardisée Jérôme Laplace (jl@np6.com) Christophe Poncy (cpo@np6.com)

Compatibilité WS-I Basic Profile Compatibilité WS-I Basic Profile

Demander la compatibilité en utilisant l’attribut Demander la compatibilité en utilisant l’attribut WebServiceBinding WebServiceBinding

Désactiver les alertes dans le web.configDésactiver les alertes dans le web.config<system.web><webServices> <conformanceWarnings> <remove name="BasicProfile1_1" /> <add name="None" /> </conformanceWarnings>

[WebService(Namespace = "urn:www-twice-nl:services")][WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1, EmitConformanceClaims = true)]public class ServerStatusService: WebService

Page 28: Les Web Services avec.Net Vers une plate-forme de communication standardisée Jérôme Laplace (jl@np6.com) Christophe Poncy (cpo@np6.com)

IndigoIndigo

Dans LonghornDans Longhorn Futur Framework de Microsoft pour créer des Futur Framework de Microsoft pour créer des

architectures de type SOA basée sur .Net architectures de type SOA basée sur .Net ((System.serviceModelSystem.serviceModel))

Uniformisation de tous les « protocoles » de Uniformisation de tous les « protocoles » de communication de Microsoft communication de Microsoft

  ASMX.NET Remoting

Enterprise Services

WSE MSMQ Indigo

Interoperable Web Services X         X

.NET – .NET Communication   X       X

Distributed Transactions, etc.     X     X

Support for WS-* Specifications       X   X

Queued Messaging         X X

Page 29: Les Web Services avec.Net Vers une plate-forme de communication standardisée Jérôme Laplace (jl@np6.com) Christophe Poncy (cpo@np6.com)

Indigo (2)Indigo (2)

Extension de .Net 2.0Extension de .Net 2.0 Protocole de communication natif = SOAPProtocole de communication natif = SOAP

Page 30: Les Web Services avec.Net Vers une plate-forme de communication standardisée Jérôme Laplace (jl@np6.com) Christophe Poncy (cpo@np6.com)

RessourcesRessources

http://msdn.microsoft.com/webservices/http://msdn.microsoft.com/webservices/ www.webservices.orgwww.webservices.org http://msdn.microsoft.com/Longhorn/understahttp://msdn.microsoft.com/Longhorn/understa

nding/pillars/Indigo/default.aspxnding/pillars/Indigo/default.aspx

Quelques Web Services connus :Quelques Web Services connus : http://http://www.amazon.com/webserviceswww.amazon.com/webservices http://http://www.google.com/apiswww.google.com/apis

Page 31: Les Web Services avec.Net Vers une plate-forme de communication standardisée Jérôme Laplace (jl@np6.com) Christophe Poncy (cpo@np6.com)

QuestionsQuestions

[email protected]