1 / 21

Comprehensive Guide to Web Services Infrastructure and Components

Understand the applications, directories, services, SOAP, URIs, XML, and more in web services. Learn to combine different services efficiently.

kimberling
Download Presentation

Comprehensive Guide to Web Services Infrastructure and Components

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Chapter 19 Web Services

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

  3. 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 hotel booking a b

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

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

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

  7. 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 Action: http://www.cdk4.net/examples/stringer#exchange <env:envelope xmlns:env= namespace URI for SOAP envelope > <env:header> </env:header> Soap message <env:body> </env:body> </env:Envelope>

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

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

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

  11. The main elements in a WSDL description definitions services interface bindings types message target namespace document style request-reply style how where concrete abstract

  12. WSDL request and reply messages for the newShape operation message 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

  13. 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 may be sent Robust In-Only Reply Request may replace Reply Out-In Request no fault message Out-Only Request guaranteed may send fault Robust Out-Only

  14. WSDL operation newShape operation 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

  15. SOAP binding and service definitions binding service name = ShapeListBinding " " name = MyShapeListService " " type = tns:ShapeList " " soap:binding transport = URI endpoint for schemas for soap/http name = ShapeListPort " " style= rpc " " 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 “http://localhost:8080/ShapeList-jaxrpc/ShapeList” soapAction

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

  17. Type of algorithm Name of algorithm Required reference Message digest SHA-1 Required Section 7.4.3 Encoding base64 Required [Freed and Borenstein 1996] Signature DSA with SHA-1 Required [NIST 1994] (asymmetric) RSA with SHA-1 Recommended Section 7.3.2 MAC signature HMAC-SHA-1 Required Section 7.4.2 and Krawczyk (symmetric) et al. [1997] Canonicalization Canonical XML Required Page 810 Algorithms required for XML signature

  18. 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]

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

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

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

More Related