Chapter 19 Web Services. Web services infrastructure and components Security Service descriptions (in WSDL) Applications Directory service Web Services.

Slides:



Advertisements
Similar presentations
Service Description: WSDL COMP6017 Topics on Web Services Dr Nicholas Gibbins –
Advertisements

Web Service Ahmed Gamal Ahmed Nile University Bioinformatics Group
General introduction to Web services and an implementation example
SOAP.
SOAP : Simple Object Access Protocol
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
Web Services Seppo Heikkinen MITA seminar/TUT
CSE 636 Data Integration Web Services.
ΗΛΕΚΤΡΟΝΙΚΟ ΕΜΠΟΡΙΟ Web Services Overview Mary Grammatikou 9/06/2009.
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.
SOAP Simple Object Access Protocol by Vinubalaji Gopal (Vinu)
Web Services (tying it all together) and Introduction to Grid Services Concepts These slides are adapted from course material developed by Barry Wilkinson,
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.
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.
T Network Application Frameworks and XML Web Services and WSDL Sasu Tarkoma Based on slides by Pekka Nikander.
Grid Computing, B. Wilkinson, 20043b.1 Web Services Part II.
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.
© Chinese University, CSE Dept. Distributed Systems / Distributed Systems Topic 7: Web Services and.NET Dr. Michael R. Lyu Computer Science & Engineering.
CS 493/693: Distributed Systems Programming V. “Juggy” Jagannathan CSEE, West Virginia University February 07, 2005.
Web Services Chapter 9 of Coulouris
1 WSDL Tutorial Heather Kreger (borrowed from Peter Brittenham) Web Services Architect IBM Emerging Technologies.
1DT066 D ISTRIBUTED I NFORMATION S YSTEM Middleware 1.
© Drexel University Software Engineering Research Group (SERG) 1 An Introduction to Web Services.
Grid Services I - Concepts
Copyright © 2013 Curt Hill SOAP Protocol for exchanging data and Enabling Web Services.
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.
Introduction to Web Services Presented by Sarath Chandra Dorbala.
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.
Slides for Chapter 19 Web Services
XML and SOAP Examples PTLIU Laboratory for Community Grids
Distributed Systems Course Topics in distributed objects
Slides for Chapter 19 Web Services
Chapter 9 Web Services: JAX-RPC, WSDL, XML Schema, and SOAP
Slides for Chapter 5: Distributed objects and remote invocation
Remote method invocation (RMI)
Distributed Systems through Web Services
Distributed System using Web Services
WEB SERVICES From Chapter 19, Distributed Systems
Distributed System using Web Services
Presentation transcript:

Chapter 19 Web Services

Web services infrastructure and components Security Service descriptions (in WSDL) Applications Directory service Web Services XML Choreography SOAP URIs (URLs or URNs)HTTP, SMTP or other transport

The ‘travel agent service’ combines other web services hotel booking a Travel Agent flight booking a hire car booking a Service Client flight booking b hotel booking b hire car booking b

SOAP message in an envelope envelope header body header element body element header element body element

Example of a simple request without headers m:exchange env:envelope xmlns:env =namespace URI for SOAP envelopes m:arg1 env:body xmlns:m = namespace URI of the service description Hello m:arg2 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

Example of a reply corresponding to the request in Figure 19.4 env:envelop e xmlns:env = namespace URI for SOAP envelope m:res1 env:body xmlns:m = namespace URI for the service description m:res2 World m:exchangeResponse Hello

Use of HTTP POST Request in SOAP client-server communication endpoint address action POST /examples/stringer Host: Content-Type: application/soap+xml Action: <env:envelope xmlns:env=namespace URI for SOAP envelope> Soap message HTTP header

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; }

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) {} }

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()); }

The main elements in a WSDL description abstract concrete howwhere definitions types target namespace interfacebindings services message document stylerequest-reply style

WSDL request and reply messages for the newShape operation message name = " ShapeList_newShape " type = " ns:GraphicalObject " part name="GraphicalObject_1" tns ミ target namespace xsd ミ XML schema definitions message name = " ShapeList_newShapeResponse " part name= " result " type = " xsd:int "

Message exchange patterns for WSDL operations Name In-Out In-Only Robust In-Only Out-In Out-Only Robust Out-Only ClientServerDelivery Fault message RequestReply may replaceReply Request no fault message Requestguaranteed may be sent ReplyRequest may replaceReply Request no fault message Requestguaranteedmay send fault Messages sent by

WSDL operation newShape operation name = " newShape " input message = " tns:ShapeList_newShape " output message ="tns:ShapeList_newShapeResponse" pattern = In-Out tns – target namespacexsd – XML schema definitions The namesoperation, pattern,input andoutput are defined in the XML schema for WSDL

SOAP binding and service definitions soap:binding transport = URI binding style= " rpc " endpoint service name = binding = " tns:ShapeListBinding " soap:address location = service URI name = " MyShapeListService " name = " ShapeListPort " for schemas for soap/http the service URI is: operation soap:operation soapAction " ShapeListBinding " " tns:ShapeList " type = name= " newShape " input soap:body encoding, namespace soap:body encoding, namespace output “ jaxrpc/ShapeList”

The main UDDI data structures tModel businessServices tModel businessEntity information about the publisher tModel businessServices human readable service descriptions key URL businessServices information about a family of services human readable service interfaces bindingTemplate information about the key service interfaces

Algorithms required for XML signature Type of algorithmName of algorithmRequiredreference Message digestSHA-1RequiredSection Encodingbase64Required[Freed and Borenstein 1996] SignatureDSA with SHA-1Required[NIST 1994] (asymmetric)RSA with SHA-1RecommendedSection MAC signature (symmetric) HMAC-SHA-1RequiredSection and Krawczyk et al. [1997] CanonicalizationCanonical XML RequiredPage 810

Algorithms required for encryption(the algorithms in Figure are also required) Type of algorithmName of algorithmRequiredreference Block cipherTRIPLEDES, AES 128 requiredSection AES-192optional Encodingbase64required[Freed and Borenstein 1996] Key transportRSA-v1.5, RSA-OAEP requiredSection [Kaliski and Staddon 1998] Symmetric key wrap (signature by shared key) TRIPLEDES KeyWrap, AES-128 KeyWrap, AES 256KeyWrap required[Housley 2002] AES-192 KeyWrapoptional Key agreementDiffie-Hellmanoptional[Rescorla, 1999] AES-256

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 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

Open grid services architecture Application specfic grid services web services application specific OGSI services: naming, service data (metadata) OGSA services: directory, management, security service creation and deletion, fault model, service groups GridService e.g. interfaces e.g. astronomy, biomedical informatics, high-energy physics Factory grid service interfaces standard

A selection of the grid projects presented in Foster & Kesselman[2004] Description of the project Reference 1. Aircraft engine maintenance using fault histories and sensors for predictive diagnostics 2. Telepresence for predicting the effects of earthquakes on buildings, using simulations and test sites 3. Bio-medical informatics network providing researchers with access to experiments and visualizations of results nbcr.sdsc.edu 4. Analysis of data from the CMS high energy particle detector at CERN by physicists world-wide over 15 years 5. Testing the effects of candidate drug molecules for their effect on the activity of a protein, by performing parallel computations using idle desktop computers [Taufer et al. 2003] [Chien Use of the Sun Grid Engine to enhance aerial photographs by using spare capacity on a cluster of web servers 7. The butterfly Grid supports multiplayer games for very large numbers of players on the internet over the Globus toolkit 8. The Access Grid supports the needs of small group collaboration, for example by providing shared workspaces