Upload
hrodger-magnier
View
106
Download
0
Embed Size (px)
Citation preview
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])
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
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
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 ?
Visualiser le conceptVisualiser le concept
Le Web Services estBasé sur HTTPUtilise XML comme fomat de transfert des données
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
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
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
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
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
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
FonctionnementFonctionnement
Web Services Simples avec .NetWeb Services Simples avec .Net
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
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
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.
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
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
InfoPath : le client naturelInfoPath : le client naturel
Web Services avec SQL Server 2005Web Services avec SQL Server 2005
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)
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
La guerre des protocoles (2)La guerre des protocoles (2)
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
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 ?
.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)
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
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
Indigo (2)Indigo (2)
Extension de .Net 2.0Extension de .Net 2.0 Protocole de communication natif = SOAPProtocole de communication natif = SOAP
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
QuestionsQuestions