Services Web From Coulouris Dollimore and Kindberg Distributed
Services Web From Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edition 4, © Addison-Wesley 2005
Services Web z Modèle client-serveur y. Un client spécifique pour l’application y. Un service accessible via Internet x. Une interface spécialisée définit les fonctions accessibles z Service web y. Une infrastructure pour maintenir une forme d’interactions entre des clients et des serveurs x. Interactions plus riches et mieux structurées que pour un fouineur Web x. Une application client dans une organisation peut interagir avec une application serveur dans une autre organisation sans supervision humaine x. Construire des applications complexes où des services intègrent plusieurs autres services Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Addison-Wesley Publishers 2005
Service web =/= serveur web z Serveur web y Fournit un service http z Service web y Un logiciel conçu pour supporter des interactions « machine to machine » interopérables à travers un réseau y Fournit un service sur la base des opérations définies dans son interface x Opérations : programmes, objets, bases de données y Représentation externe des données et marshalling des messages échangés en XML y Peut être géré par x un serveur web et des pages web x Un service complètement séparé Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Addison-Wesley Publishers 2005
Figure 19. 1 Web services infrastructure and components Applications Directory service Security Web Services Choreography Service descriptions (in WSDL) SOAP URIs (URLs or URNs) XML HTTP, SMTP or other transport Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Addison-Wesley Publishers 2005
Infrastructure de services web I z Couche 1 y Un service Web est identifié par un URI x URL : adresse directe x URN : indépendante de la localisation de la ressource • Besoin d’un service de découverte (lookup) pour obtenir une URL à partir de l’URN y Encodage des messages en XML y Transmission des messages encodés en XML via HTTP ou un autre protocole, e. g. TCP ou SMTP z Couche 2 y Le protocole SOAP x Spécifie les règles d’encodage et d’utilisation des messages en XML • Par exemple pour supporter un protocole requête-réponse Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Addison-Wesley Publishers 2005
Infrastructure de services web II z Couche 3 y. WSDL (Web Services Description Language) x. Description des services : interfaces, URL, etc. z Couche 4 y. Les applications et services web sont construits au-dessus d’autres services, en particulier xservice de répertoire: pour trouver les services web x. Sécurité XML : règle de signature et d’encryption des documents XML x. Chorégraphie de services web : coordination des opérations • Permettre à un service web d’utiliser des patrons prédéfinis d’accès lorsqu’il utilise d’autres services web Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Addison-Wesley Publishers 2005
Figure 19. 2 The ‘travel agent service’ combines other web services flight booking a Client Travel Agent Service hotel booking a flight bookingb hire car booking a hotel booking b Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Addison-Wesley Publishers 2005 hire car booking b
Exemples de services Web z Les serveurs web commerciaux Amazon, Yahoo, Google, et e. Bay offrent des interfaces à des services web qui permettent aux clients de manipuler leurs ressources z Permet à des applications tierces de construire des services à valeur ajoutée à partir de leurs services y Amazon x système de contrôle d’inventaire couplé avec un système automatique de commandes et de suivi des commandes placées chez Amazon y Enchères e. Bay x Placer une mise dans les dernières secondes d’une enchère • Les humains ne peuvent pas être aussi rapides qu’un programme Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Addison-Wesley Publishers 2005
Amazon Associates Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Addison-Wesley Publishers 2005
http: //www. liveplasma. com/ Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Addison-Wesley Publishers 2005
Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Addison-Wesley Publishers 2005
Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Addison-Wesley Publishers 2005
http: //developer. ebay. com/developercenter/java/ Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Addison-Wesley Publishers 2005
Communication z Synchrone z Asynchrone z Par événements z SOAP y. Message simple unidirectionnel y. Protocole requête-réponse x. Utiliser des paires de messages x. Spécifier comment représenter les opérations, leurs arguments et les résultats Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Addison-Wesley Publishers 2005
Caractéristiques des services web z Modèle de programmation y Indépendant des langages de programmation y Pas possible d’instancier des objets à distance x Pas de ramasse-miettes réparti x Pas de références remote z Représentation des messages y Textuelle x Demande par contre plus d’espace et plus de temps de calcul z Référence à un service web y Via URI : URL ou URN z Activation des services y Le service peut s’exécuter tout le temps ou à la demande y Le service peut s’exécuter sur l’ordinateur pointé par l’URL ou ailleurs z Transparence de lieu y Proxy : qui s’exécute chez le client y Invocation dynamique : x opération générique (do. Operation), le client doit spécifier le nom de l’opération et les arguments et x Conversion à SOAP et XML Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Addison-Wesley Publishers 2005
Exemple z Tableau blanc partagé y. Implémentation utilisant SOAP Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Addison-Wesley Publishers 2005
Figure 19. 7 Java web service interface Shape. List import java. rmi. *; public interface Shape. List extends Remote { int new. Shape(Graphical. Object g) throws Remote. Exception; int number. Of. Shapes()throws Remote. Exception; int get. Version() throws Remote. Exception; int get. GOVersion(int i)throws Remote. Exception; Graphical. Object get. All. State(int i) throws Remote. Exception; } Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Addison-Wesley Publishers 2005
Figure 19. 8 Java implementation of the Shape. List server import java. util. Vector; public class Shape. List. Impl implements Shape. List { private Vector the. List = new Vector(); private int version = 0; private Vector the. Versions = new Vector(); public int new. Shape(Graphical. Object g) throws Remote. Exception{ version++; the. List. add. Element(g); the. Versions. add. Element(new Integer(version)); return the. List. size(); } public } int number. Of. Shapes(){} int get. Version() {} int get. GOVersion(int i){ } Graphical. Object get. All. State(int i) {} Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design © Addison-Wesley Publishers 2005 Edn. 4
Figure 19. 9 Java implementation of the Shape. List client package staticstub; import javax. xml. rpc. Stub; public class Shape. List. Client { public static void main(String[] args) { /* pass URL of service */ try { Stub proxy = create. Proxy(); proxy. _set. Property (javax. xml. rpc. Stub. ENDPOINT_ADDRESS_PROPERTY, args[0]); Shape. List a. Shape. List = (Shape. List)proxy; Graphical. Object g = a. Shape. List. get. All. State(0); } catch (Exception ex) { ex. print. Stack. Trace(); } } private static Stub create. Proxy() { return (Stub) (new My. Shape. List. Service_Impl(). get. Shape. List. Port()); } } Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Addison-Wesley Publishers 2005
WSDL z Description d’un service y Définition de l’interface x Type de messages transmis ---- échange de documents x méthodes fournies --- interactions de type requête – réponse • En WSDL, une opération, est une construction qui permet de relier les messages de requête et de réponse – Pour chaque opération, il faut spécifier le patron d’échange des messages (Fig. 19. 12) • Élément XML interface = collections d’opérations y Mode de transmission du message, e. g. SOAP sur HTTP x Décidé par le fournisseur de services y URI du service x Pour éviter d’avoir recours à un service de noms comme le fait RMI z Généralement utilisée pour générer un stub chez le client Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Addison-Wesley Publishers 2005
Figure 19. 10 The main elements in a WSDL description definitions types message interface services bindings target namespace document style request-reply style how abstract where concrete Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Addison-Wesley Publishers 2005
Figure 19. 11 WSDL request and reply messages for the new. Shape operation message name = "Shape. List_new. Shape" part name="Graphical. Object_1" type = "ns: Graphical. Object" tns ミ target namespace message name = "Shape. List_new. Shape. Response" part name="result " type = "xsd: int " xsd ミ XML schema definitions public interface Shape. List extends Remote { int new. Shape(Graphical. Object g) throws Remote. Exception; Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Addison-Wesley Publishers 2005
Figure 19. 12 Message exchange patterns for WSDL operations Name Messages sent by Client Server In-Out Request Reply In-Only Request Robust In-Only Request Out-In Reply Delivery Fault message may replace Reply no fault message guaranteed may be sent Request may replace Reply Out-Only Request no fault message Robust Out-Only Request guaranteed may send fault Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Addison-Wesley Publishers 2005
Figure 19. 13 WSDL operation new. Shape operation name = "new. Shape" pattern = In-Out input message = "tns: Shape. List_new. Shape " output message ="tns: Shape. List_new. Shape. Response" tns – target namespace xsd – XML schema definitions The names operation, pattern, input and output are defined in the XML schema for WSDL public interface Shape. List extends Remote { int new. Shape(Graphical. Object g) throws Remote. Exception; Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Addison-Wesley Publishers 2005
Figure 19. 14 SOAP binding and service definitions binding name =" Shape. List. Binding " type = "tns: Shape. List " soap: binding transport = URI for schemas for soap/http style= " rpc" operation name= " new. Shape " input soap: body encoding, namespace service name = " My. Shape. List. Service " endpoint name =" Shape. List. Port " binding =" tns: Shape. List. Binding " soap: address location = service URI output soap: body encoding, namespace soap: operation soap. Action the service URI is: “http: //localhost: 8080/Shape. Listjaxrpc/Shape. List” Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Addison-Wesley Publishers 2005
http: //soap. amazon. com/schemas 2/Amazon. Web. Services. wsdl Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Addison-Wesley Publishers 2005
http: //soap. amazon. com/schemas 2/Amazon. Web. Services. wsdl Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Addison-Wesley Publishers 2005
Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Addison-Wesley Publishers 2005
http: //soap. amazon. com/schemas 2/Amazon. Web. Services. wsdl Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Addison-Wesley Publishers 2005
- Slides: 29