1 / 63

Building Services in WSRF

Building Services in WSRF. Ben Clifford GGF Summer School July 2004. Module 1. Overview WSRF Globus Alliance WSRF implementation . Overview. 4 modules Each module has: Slides & talk Hands on Covers: WSRF specification Globus Alliance implementation of WSRF.

nellie
Download Presentation

Building Services in WSRF

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. Building Services in WSRF Ben Clifford GGF Summer School July 2004

  2. Module 1 • Overview • WSRF • Globus Alliance WSRF implementation

  3. Overview • 4 modules • Each module has: • Slides & talk • Hands on • Covers: • WSRF specification • Globus Alliance implementation of WSRF

  4. History and Motivation (1) • Often we think we want standard APIs • Eg. MPI • But on the grid, we actually want standard wire protocols • the API can be different on each system

  5. History and Motivation (2) • Open Grid Services Infrastructure (OGSI) • GGF standard • Identified a number of common ‘building blocks’ used in grid protocols • Inspecting state, creating and removing state, detecting changes in state, naming state • Defined standard ways to do these things, based on web services (defined a thing called a Grid Service)

  6. History and Motivation (3) • But then… • Realised that this was useful for web services in general, not just for the grid. • Moved out of GGF, into OASIS • Split the single OGSI specification into a number of other specifications called WSRF.

  7. WSRF WSRF is a framework consisting of a number of specifications. • WS-Resource Properties * • WS-Resource Lifetime * • WS-Service Groups • WS-Notification • WS-BaseFaults • WS-Renewable References (unpublished) Other WS specifications such as: • WS-Addressing * * will be talked about in this tutorial

  8. How WS-RF fits in with other standards, specifications and protocols. Grid stuff Globus (GRAM, MDS) WSRF Web services WSDL, SOAP Internet protocols HTTP, TCP/IP

  9. WS-Resources • Web services often provide access to state • Job submissions, databases • A WS-Resource is standard way of representing that state. • In this tutorial, we will be using ‘counter’ resources which are simple accumulators.

  10. Examples of WS-Resources • Files on a file server • Rows in a database • Jobs in a job submission system • Accounts in a bank

  11. Web service Web service

  12. Web service with WS-Resource

  13. Web Service with WS-Resources

  14. Web Service with WS-Resources WS-Resources

  15. GT WSRF core • Container • Hosts services • Built on top of Apache Axis • Clients • Interact with services • Build tools • For writing new services • Based around Apache Ant

  16. Files used in the exercise • WSDL and XML Schema: • counter_port_type.wsdl • Java • Several Java source files • Deployment information • deploy-server.wsdd • deploy-jndi-config.xml • Build.xml • Tells Ant how to build and deploy the code

  17. Notes on the exercises • Read notes.txt for information on each exercise. • Only do one exercise at a time, then wait for next module. • Each exercise consists of uncommenting code fragments. However, you should READ AND UNDERSTAND what you are uncommenting. • If you are brave, you can make your own extra changes too – but be careful not to break anything!

  18. Exercise 1 • Exercise: stand up supplied installation and check it works. • Install software • Start the container • this will have a counter service and one counter resource. • Interact with the counter resource • Do the exercise now.

  19. Exercise 1 overview One host (your own machine) One web service running on own machine One counter resource, which will already exist Client running on own machine C Counter service Client One counter resource Container

  20. Exercise 1 overview C Counter service globus-start-container Starts up container, with counter service and a single counter resource. One counter resource Container

  21. Exercise 1 overview show-counter and increment-counter clients interact with the resource through the web service. C Counter service Client One counter resource Container

  22. Exercise 1 overview increment-counter invokes the add operation in counter_port_type.wsdl C add(1) Client

  23. Module 2 – Resource Addressing • Endpoint References

  24. Why? • Need some way to refer to web services and WS-Resources from anywhere on the network.

  25. Endpoint References • WS-Addressing specification • An Endpoint Reference (EPR) points to a web service by including a URL.

  26. Endpoint References • WS-Addressing specification • An Endpoint Reference (EPR) points to a web service by including a URL. <EPR xsi:type="ns2:EndpointReferenceType" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns2="http://schemas.xmlsoap.org/ws/2004/03/addressing”> <ns2:Address xsi:type="ns2:Address"> http://localhost:8080/wsrf/services/CounterService </ns2:Address> </EPR>

  27. Endpoint References • WS-Addressing specification • An Endpoint Reference (EPR) points to a web service by including a URL. • EPRs can also contain extra information • For WSRF, can include ReferenceProperties that identify a resource – will see this later on.

  28. Endpoint References • WS-Addressing specification • An Endpoint Reference (EPR) points to a web service by including a URL. • EPRs can also contain extra information • For WSRF, can include ReferenceProperties that identify a resource – will see this later on. • Can also contain other information • Security • Renewable Refence information

  29. Client code fragment CounterServiceAddressingLocator locator = new CounterServiceAddressingLocator(); EndpointReferenceType endpoint; endpoint = EPRUtils.loadEPR(args); CounterPortType counterPort = locator.getCounterPortTypePort(endpoint); counterPort.add(1);

  30. Automatically Generated types CounterServiceAddressingLocator locator = new CounterServiceAddressingLocator(); EndpointReferenceType endpoint; endpoint = EPRUtils.loadEPR(args); CounterPortType counterPort = locator.getCounterPortTypePort(endpoint); counterPort.add(1); Highlighted types are generated by the build system automatically, based on XSD and WSDL.

  31. *AddressingLocator • Every WSDL service has a corresponding AddressingLocator Java class automatically generated. • For the CounterService, we get: • CounterServiceAddressingLocator • An AddressingLocator knows how to take an EPR and return a java stub for the remote service: • CounterPortType counterPort = locator.getCounterPortTypePort(endpoint);

  32. *PortType • Every port type has a PortType Java interface automatically generated. • For the counter port type, we have • CounterPortType • The interface has a method for each operation on the port type: • counterPort.add(1);

  33. Exercise 2 • Talk to someone else’s service on a different laptop • Modify clients to read an EPR file • Should be able to run the clients against any machine in the room. • Do the exercise now.

  34. Exercise 2 scenario Two hosts (your own machine and your friend’s machine) One web service running on friend’s machine One counter resource on friend’s machine Client running on your own machine

  35. Exercise 2 scenario Client can talk to everyone’s servers – so the situation in this room looks more like this.

  36. Module 3 – Resource Properties • Resources have Resource Properties • Defined in XML • Resource Properties document in portType • Querying Resource Properties

  37. Why? • Resources represent state • Often we want to inspect that state • In this tutorial, we want to know the value stored in each counter • show-counter client

  38. XML based • Each resource has a Resource Properties document. • Defined in XML schema • Each element in the Resource Properties document is a Resource Property (RP).

  39. Ways to access RPs • Pull • Client can query the RP document • GetResourceProperty • GetMultipleResourceProperties • QueryResourceProperties • Push • Allows services to send changes in their resources’ RPs to interested parties. • WS-Notification • Not covered in this tutorial

  40. Pull operations • GetResourceProperty • Requests a single resource property by name • GetMultipleResourceProperties • Requests several resource properties (from the same resource) by name • QueryResourceProperties • More advanced queries against RP document. • eg. XPath

  41. Counter example • The counter service’s Resource Property Document is defined in schema/core/samples/counter/counter_port_type.wsdl • <xsd:element name="CounterRP"> <xsd:complexType> <xsd:sequence> <xsd:element ref="tns:Value" minOccurs="1" maxOccurs="1"/> </xsd:sequence> </xsd:complexType> </xsd:element>

  42. Operation Providers • WSRF Core allows operations to be implemented by Operation Providers. • Service writers can include these in WSDD, rather than writing Java code. • Exercise will involve adding operation provider to support QueryResourceProperties operation

  43. Exercise 3 • Exercise: add a resource property to the service to give ‘last incremented time’. New client to query this RP. • Query own counters and query other peoples’ counters. • Do the exercise now.

  44. Module 4 – Resource Lifetime • Creating new resources • Destroying old resources • Soft-state lifetime management

  45. Why? • Resources come and go • For example: • jobs in a batch submission system could be represented as resources • submitting a new job causes a new resource to be created • when the job is completed, the resource goes away

  46. Creating new resources • Factory pattern • A web service operation causes a new resource to come into existence. • For example, in job submission: • submit(JobDescription)

  47. Destroying resources • Two ways: • Immediate Destruction • Scheduled Destruction

  48. Immediate destruction • Destroy the resource now! • Destroy operation

  49. Scheduled Destruction • Scheduled destruction allows soft management of state. • TerminationTime RP • Keep state alive for as long as we need it, by calling SetTerminationTime operation periodically.

  50. Scheduled Destruction • Remote service is ‘self-cleaning’ • old unwanted state gets cleaned up automatically if no-one keeps it alive • Problem: if interested party is disconnected from network for a long time, then it cannot extend lifetime and state may be cleaned up prematurely.

More Related