Slides for Chapter 19 Web Services

Slides:



Advertisements
Similar presentations
Introduction to Web Services Protocols. Talk titledate2 Communication and standards Efficient (or indeed any) communication is dependent on a shared vocabulary.
Advertisements

Service Description: WSDL COMP6017 Topics on Web Services Dr Nicholas Gibbins –
Web Service Ahmed Gamal Ahmed Nile University Bioinformatics Group
General introduction to Web services and an implementation example
Web Services Darshan R. Kapadia Gregor von Laszewski 1http://grid.rit.edu.
IM NTU Distributed Information Systems 2006 Web Services [2006/11/13] -- 1 Web Services Yih-Kuen Tsay Dept. of Information Management National Taiwan University.
Presentation 7 part 2: SOAP & WSDL. Ingeniørhøjskolen i Århus Slide 2 Outline Building blocks in Web Services SOA SOAP WSDL (UDDI)
6/11/2015Page 1 Web Services-based Distributed System B. Ramamurthy.
OCT 1 Master of Information System Management Organizational Communications and Distributed Object Technologies Week 4: Web Services Chapter 19.
XML Technologies and Applications Rajshekhar Sunderraman Department of Computer Science Georgia State University Atlanta, GA 30302
Copyright © George Coulouris, Jean Dollimore, Tim Kindberg This material is made available for private study and for direct.
Lecture 10: Web Services. Outline Overview of Web Services Create a Web Service with Sun J2EE (JAX-RPC)
Java RMI, JAX-RPC and JWSDP
Grid Computing, B. Wilkinson, 20043a.1 WEB SERVICES Introduction.
CSE 636 Data Integration Web Services.
WSDL Web Services Description Language Neet Wadhwani University of Colorado 3 rd October, 2001.
Slides for Chapter 5: Communication between distributed objects
Processing of structured documents Spring 2003, Part 6 Helena Ahonen-Myka.
SOAP, WSDL, UDDI. Service Broker Basic SOAP Message Exchange Service Consumer Service Provider http transport SOAP message WSDL describing service SOAP.
1DT066 D ISTRIBUTED I NFORMATION S YSTEM Middleware 1.
From Coulouris, Dollimore, Kindberg and Blair Distributed Systems: Concepts and Design Edition 5, © Addison-Wesley 2012 Slides for Chapter 9 Web Services.
Chapter 19 Web Services. Web services infrastructure and components Security Service descriptions (in WSDL) Applications Directory service Web Services.
Distributed Computing 9 Sep,2008
1 3. Implementing Web Services 1.Create SOAP proxy interfaces and WSDL based service descriptions 2.Register/publish services 3.Stores service descriptions.
Grid Computing, B. Wilkinson, 20043b.1 Web Services Part II.
From Coulouris, Dollimore, Kindberg and Blair Distributed Systems: Concepts and Design Edition 5, © Addison-Wesley 2012 Slides for Chapter 8: Distributed.
Web Services (SOAP, WSDL, and UDDI)
James Holladay, Mario Sweeney, Vu Tran. Web Services Presentation Web Services Theory James Holladay Tools – Visual Studio Vu Tran Tools – Net Beans Mario.
Web Services Description Language CS409 Application Services Even Semester 2007.
CS 493/693: Distributed Systems Programming V. “Juggy” Jagannathan CSEE, West Virginia University February 07, 2005.
Web Services Chapter 9 of Coulouris
From Coulouris, Dollimore, Kindberg and Blair Distributed Systems: Concepts and Design Edition 5, © Addison-Wesley 2012 Exercises for Chapter 9: Web Services.
1DT066 D ISTRIBUTED I NFORMATION S YSTEM Middleware 1.
Slides for Chapter 17: CORBA Case Study From Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edition 3, © Addison-Wesley 2001.
1 Web Services Web and Database Management System.
Service provider service requestor application object (client) application object (service provider) SOAP-based middleware SOAP messages exchanged on top.
WEB SERVICES 1 From Chapter 19 of Distributed Systems Concepts and Design,4 th Edition, By G. Coulouris, J. Dollimore and T. Kindberg Published by Addison.
Kemal Baykal Rasim Ismayilov
CP3024 Lecture 10 Web Services. What are Web Services?  “encapsulated, loosely coupled, contracted software objects offered via standard protocols” ZapThink.
1 SOA Seminar Seminar on Service Oriented Architecture Web Services Chapter 19 of Coulouris.
Web services. Introduction to WSDL. February 23, 2006.
1 WSDL Web Services Description Language. 2 Goals of WSDL Describes the formats and protocols of a Web Service in a standard way –The operations the service.
Slides for Chapter 5: Distributed objects and remote invocation From Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edition.
Lecture VI: SOAP-based Web Service CS 4593 Cloud-Oriented Big Data and Software Engineering.
1 G52IWS: Web Services Description Language (WSDL) Chris Greenhalgh
Net-centric Computing Web Services. Lecture Outline  What is Web Service  Web Service Architecture  Creating and using Java Web Services  Apache Axis.
SOAP, Web Service, WSDL Week 14 Web site:
From Coulouris, Dollimore, Kindberg and Blair Distributed Systems: Concepts and Design Edition 5, © Addison-Wesley 2012 Slides for Chapter 9 Web Services.
Cloud Computing Web Services.
An Introduction to Web Services
Sabri Kızanlık Ural Emekçi
WEB SERVICES From Chapter 19 of Distributed Systems Concepts and Design,4th Edition, By G. Coulouris, J. Dollimore and T. Kindberg Published by Addison.
Chapter 5 Remote Procedure Call
XML and SOAP Examples PTLIU Laboratory for Community Grids
Edition 5, © Addison-Wesley 2012
Distributed Systems Course Topics in distributed objects
Programming Models for Distributed Application
Slides for Chapter 1 Characterization of Distributed Systems
Slides for Chapter 19 Web Services
Chapter 9 Web Services: JAX-RPC, WSDL, XML Schema, and SOAP
Introduction to Web Services Protocols
Slides for Chapter 5: Distributed objects and remote invocation
Slides for Chapter 1 Characterization of Distributed Systems
Remote method invocation (RMI)
Distributed Systems through Web Services
Creating a Distributed System with Remote Procedure Calls and Web Services Ch.5 B.Ramamurthy 2/17/2019 B.Ramamurthy.
Slides for Chapter 1 Characterization of Distributed Systems
Distributed System using Web Services
WEB SERVICES From Chapter 19, Distributed Systems
Distributed System using Web Services
Presentation transcript:

Slides for Chapter 19 Web Services From Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edition 4, © Addison-Wesley 2005

Figure 19.1 Web services infrastructure and components Applications Directory service Security Choreography Web Services 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

Figure 19.2 The ‘travel agent service’ combines other web services flight booking a flight booking b Travel Agent Client Service hire car booking a hire car booking b hotel booking a hotel booking b Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Addison-Wesley Publishers 2005

Figure 19.3 SOAP message in an envelope header header element header element body body element body element Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Addison-Wesley Publishers 2005

Figure 19.4 Example of a simple request without headers env:envelope xmlns:env =namespace URI for SOAP envelopes env:body m:exchange xmlns:m = namespace URI of the service description m:arg1 m:arg2 Hello World In this figure and the next, each XML element is represented by a shaded box with its name in italic followed by any attributes and its content Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Addison-Wesley Publishers 2005

Figure 19.5 Example of a reply corresponding to the request in Figure 19.4 env:envelope xmlns:env = namespace URI for SOAP envelope env:body m:exchangeResponse xmlns:m = namespace URI for the service description m:res1 m:res2 World Hello Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Addison-Wesley Publishers 2005

POST /examples/stringer endpoint address HTTP header Figure 19.6 Use of HTTP POST Request in SOAP client-server communication POST /examples/stringer endpoint address HTTP header Host: www.cdk4.net Content-Type: application/soap+xml Action: http://www.cdk4.net/examples/stringer#exchange action <env:envelope xmlns:env= namespace URI for SOAP envelope > <env:header> </env:header> Soap message <env:body> </env:body> </env:Envelope> 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 ShapeList import java.rmi.*; public interface ShapeList extends Remote { int newShape(GraphicalObject g) throws RemoteException; int numberOfShapes()throws RemoteException; int getVersion() throws RemoteException; int getGOVersion(int i)throws RemoteException; GraphicalObject getAllState(int i) throws RemoteException; } 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 ShapeList server import java.util.Vector; public class ShapeListImpl implements ShapeList { private Vector theList = new Vector(); private int version = 0; private Vector theVersions = new Vector(); public int newShape(GraphicalObject g) throws RemoteException{ version++; theList.addElement(g); theVersions.addElement(new Integer(version)); return theList.size(); } public int numberOfShapes(){} public int getVersion() {} public int getGOVersion(int i){ } public GraphicalObject getAllState(int i) {} Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Addison-Wesley Publishers 2005

Figure 19.9 Java implementation of the ShapeList client package staticstub; import javax.xml.rpc.Stub; public class ShapeListClient { public static void main(String[] args) { /* pass URL of service */ try { Stub proxy = createProxy(); proxy._setProperty (javax.xml.rpc.Stub.ENDPOINT_ADDRESS_PROPERTY, args[0]); ShapeList aShapeList = (ShapeList)proxy; GraphicalObject g = aShapeList.getAllState(0); } catch (Exception ex) { ex.printStackTrace(); } } private static Stub createProxy() { return (Stub) (new MyShapeListService_Impl().getShapeListPort()); 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 interface bindings services types message target namespace document style request-reply style how where abstract 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 newShape operation name = " ShapeList_newShape " message name = " ShapeList_newShapeResponse " part name ="GraphicalObject_1" part name= " result " type = " ns:GraphicalObject " type = " xsd:int " tns ミ target namespace xsd ミ XML schema definitions 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 Delivery Fault message Request Reply may replace Reply In-Out Request no fault message In-Only Request guaranteed Robust In-Only may be sent Reply Request Out-In 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 newShape name = " newShape " pattern = In-Out input message = " tns:ShapeList_newShape " output message = "tns:ShapeList_newShapeResponse" tns – target namespace xsd – XML schema definitions The names operation , pattern, input and output are defined in the XML schema for WSDL 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 name = " ShapeListBinding " name = " MyShapeListService " type = " tns:ShapeList " soap:binding transport = URI endpoint for schemas for soap/http style= rpc name = " ShapeListPort " " " binding = " tns:ShapeListBinding " operation name= " newShape " soap:address input location = service URI soap:body encoding, namespace output soap:body encoding, namespace the service URI is: soap:operation soapAction “http://localhost:8080/ShapeList-jaxrpc/ShapeList” Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Addison-Wesley Publishers 2005

Figure 19.15 The main UDDI data structures businessEntity businessServices human readable businessServices information businessServices bindingTemplate about the publisher human readable bindingTemplate information URL bindingTemplate about a tModel information family of services about the tModel URL service interfaces service interfaces tModel key URL service descriptions key key Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Addison-Wesley Publishers 2005

Figure 19.16 Algorithms required for XML signature Type of algorithm Name of algorithm Required reference Message digest SHA-1 Section 7.4.3 Encoding base64 [Freed and Borenstein 1996] Signature DSA with SHA-1 [NIST 1994] (asymmetric) RSA with SHA-1 Recommended Section 7.3.2 MAC signature (symmetric) HMAC-SHA-1 Section 7.4.2 and Krawczyk et al. [1997] Canonicalization Canonical XML Page 810  Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Addison-Wesley Publishers 2005

Figure 19.17 Algorithms required for encryption(the algorithms in Figure 19.16 are also required) Type of algorithm Name of algorithm Required reference Block cipher TRIPLEDES, AES 128 required Section 7.3.1 AES-256 AES-192 optional Encoding base64 required [Freed and Borenstein 1996] Key transport RSA-v1.5, RSA-OAEP required Section 7.3.2 [Kaliski and Staddon 1998] Symmetric key TRIPLEDES required [Housley 2002] wrap (signature KeyWrap, by shared key) AES-128 KeyWrap, AES 256KeyWrap AES-192 KeyWrap optional Key agreement Diffie-Hellman optional [Rescorla, 1999] Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Addison-Wesley Publishers 2005

Figure 19.18 Travel agent scenario 1. The client asks the travel agent service for information about a set of services; for example, flights, car hire and hotel bookings. 2. The travel agent service collects prices and availability information and sends it to the client, which chooses one of the following on behalf of the user: (a) refine the query, possibly involving more providers to get more information, then repeat step 2; (b) make reservations; (c) quit. 3. The client requests a reservation and the travel agent service checks availability. 4. Either all are available; or for services that are not available; either alternatives are offered to the client who goes back to step 3; or the client goes back to step 1. 5. Take deposit. 6. Give the client a reservation number as a confirmation. 7. During the period until the final payment, the client may modify or cancel reservations Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Addison-Wesley Publishers 2005

Figure 19.19 Open grid services architecture Application specfic grid services application specific e.g. astronomy, biomedical informatics, high-energy physics interfaces OGSA services: directory, management, security standard grid service interfaces OGSI services: naming, service data (metadata) service creation and deletion, fault model, service groups e.g. GridService Factory web services Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Addison-Wesley Publishers 2005

Figure 19.20 A selection of the grid projects presented in Foster & Kesselman[2004] Description of the project Reference 1. Aircraft engine maintenance using fault histories and www.cs.york.ac.uk/dame sensors for predictive diagnostics 2. Telepresence for predicting the effects of www.neesgrid.org earthquakes on buildings, using simulations and test sites 3. Bio-medical informatics network providing nbcr.sdsc.edu researchers with access to experiments and visualizations of results 4. Analysis of data from the CMS high energy particle www.uscms.org detector at CERN by physicists world-wide over 15 years 5. Testing the effects of candidate drug molecules for [Taufer et al. 2003] their effect on the activity of a protein, by performing parallel [Chien 2004 computations using idle desktop computers 6. Use of the Sun Grid Engine to enhance aerial www.globexplorer.com photographs by using spare capacity on a cluster of web servers 7. The butterfly Grid supports multiplayer games for www.butterfly.net very large numbers of players on the internet over the Globus toolkit 8. The Access Grid supports the needs of small group www.accessgrid.org collaboration, for example by providing shared workspaces Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Addison-Wesley Publishers 2005