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 Partner SSII spécialisée dans les technologies Microsoft Infrastructure (Windows, ISA, Exchange) Serveurs (CMS, SharePoint, SQL) Développement (.Net) Connectivité (XML, Web Services) Poste client (Office System, InfoPath) Missions Assistance et conseil Développement Exploitation
Agenda Découverte des Web Services Quelle conséquence sur les architectures ? Office System Le point sur les normes .Net 2.0 Indigo
Problématique Comment utiliser une API distante De manière standard Quelle que soit la plate-forme distante Quelle que soit l’application distante Quel que soit le langage distant utilisé Sur les protocoles du Web ?
Visualiser le concept Le Web Services est Basé sur HTTP Utilise XML comme fomat de transfert des données
Les Web Services « Applications modulaires basées sur Internet réalisant une tâche spécifique et se conformant à un format technique spécifique ». Marc Colan (IBM) TCP/IP Application B Application A Entreprise 1 Entreprise 2
Evolution du Web Technologie Innovation XML HTML Connectivité TCP/IP Connectivité Présentation Programmabilité FTP, E-mail, Gopher Innovation Pages Web Web Services Parcourir le Web Programmer le Web
La technologie de base Les technologies de base : XML : format d’échange SOAP 1.2: communication RPC WSDL 1.1 : description d’un service web UDDI 2.0 : annuaire des services web proposés Ces technologies sont standardisées
Messages SOAP REQUETE POST /StockQuote HTTP/1.1 Host: www.stockquoteserver.com Content-Type: text/xml; charset="utf-8" Content-Length: nnnn SOAPAction: "Some-URI" <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP-ENV:Body> <m:GetLastTradePrice xmlns:m="Some-URI"> <symbol>DIS</symbol> </m:GetLastTradePrice> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
Messages SOAP REPONSE HTTP/1.1 200 OK Content-Type: text/xml; charset="utf-8" Content-Length: nnnn <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> <SOAP-ENV:Body> <m:GetLastTradePriceResponse xmlns:m="Some-URI"> <Price>34.5</Price> </m:GetLastTradePriceResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
WSDL Web Service Description langage Il décrit le Web Service C’est un contrat spécifiant ce que fait un Web Service et comment s’en servir
Fonctionnement
Web Services Simples avec .Net
Caractéristiques principales Participation à des transactions Gestion du cache au niveau des WS Description Activer les sessions
D’autres solutions techniques ? DCOM : limité au monde Microsoft RMI : limité au monde Java Corba : complexe à mettre en œuvre et nécessite un logiciel propriétaire (le broker d’objets) Aucun des trois ne peut passer naturellement les firewalls
Web Services dans les architectures On parle de SOA : Service Oriented Architecture Les développements sont réalisés sous l’angle de services Flexibilité des applications Couplage lâche Intégration généralisée Gouvernance de système d’information facilitée 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 Services Un maître mot : l’interopérabilité des systèmes Un mode commun et standard de communication
Un exemple concret : gestion des disponibilités
Office System Les outils Office System tirent partie des Web Services Microsoft InfoPath Nouvel outil de la suite Office Création simple de formulaires riches Production de données XML Consommation de Web Services en quelques clics
InfoPath : le client naturel
Web Services avec SQL Server 2005
Autres standards et protocoles Nombreuses « normes » pour : La découverte des WebServices Leur description Les échanges La sécurité Les transactions La gestion des processus métiers… Implémentés dans les Web Services Enhancements (WSE)
La guerre des protocoles 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 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
La guerre des protocoles (2)
Les organisations de standardisation Organismes « génériques » W3C : SOAP, XML OASIS : WSDL, UDDI Organismes dédiés WS-I Organization
WS-I : un tournant décisif Technique Interopérabilité des Web Services Basic Profile 1.1 Des outils pour vérifier Stratégique WS-I s’impose face à OASIS et W3C (mais uniquement sur l’interopérabilité) Les Web Services sont réellement « cross-platform) WS-I avance sur l’intéropérabilité des pratiques de sécurité WS-I, une réponse face à la jungle des standards ?
.Net 2.0 Longhorn Visual Studio 2005 SQL Server 2005 Amélioration des Web Services : Compatible WS-I Support de SOAP 1.2 Amélioration de la gestion asynchrone Affranchissement de IIS (classe HTTP Listner)
Compatibilité WS-I Basic Profile Demander la compatibilité en utilisant l’attribut WebServiceBinding Désactiver les alertes dans le web.config [WebService(Namespace = "urn:www-twice-nl:services")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1, EmitConformanceClaims = true)] public class ServerStatusService: WebService <system.web><webServices> <conformanceWarnings> <remove name="BasicProfile1_1" /> <add name="None" /> </conformanceWarnings>
Indigo Dans Longhorn Futur Framework de Microsoft pour créer des architectures de type SOA basée sur .Net (System.serviceModel) Uniformisation de tous les « protocoles » de communication de Microsoft ASMX .NET Remoting Enterprise Services WSE MSMQ Indigo Interoperable Web Services X .NET – .NET Communication Distributed Transactions, etc. Support for WS-* Specifications Queued Messaging
Indigo (2) Extension de .Net 2.0 Protocole de communication natif = SOAP
Quelques Web Services connus : Ressources http://msdn.microsoft.com/webservices/ www.webservices.org http://msdn.microsoft.com/Longhorn/understanding/pillars/Indigo/default.aspx Quelques Web Services connus : http://www.amazon.com/webservices http://www.google.com/apis
Questions Jlaplace@np6.com