1 / 46

Grid Services

Grid Services. Grid Enablement of Scientific Applications Present by Mark Joselli Professor S. Masoud Sadjadi. Web Services Grid Services. Web Service. (W3C definition). A Web service is a software system designed to support interoperable machine-to-machine interaction over a network.

everly
Télécharger la présentation

Grid Services

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. Grid Services Grid Enablement of Scientific Applications Present by Mark Joselli Professor S. Masoud Sadjadi

  2. Web Services • Grid Services

  3. Web Service. (W3C definition) • A Web service is a software system designed to support interoperable machine-to-machine interaction over a network. • It has an interface described in a machine-processable format (specifically WSDL). • Other systems interact with the Web service in a manner prescribed by its description using SOAP messages, typically conveyed using HTTP with an XML serialization in conjunction with other Web-related standards.

  4. In plain words, they provide a good mechanism to connect over a network heterogeneous systems. • For that to happen it uses: WSDL, XML, SOAP…

  5. Sample Interaction Key things to note: Request/response login Buyer Amazon.com login ok buy a book price information confirm purchase

  6. The Web Service state machine 2. Client looks up the service in the registry 1. Service advertises itself in the registry 3. Client interacts with the service

  7. Why web services? • Can we not do above interaction with traditional client/server protocols • Yes ! • But, • We want to talk to any service in the same language in the same way

  8. Web Services Technologies The Protocol Stack • Service Discovery • UDDI • Service Description • WSDL (XML-based) • Messaging • SOAP (XML-based) • Service Transport • HTTP, SMTP etc. Service Discovery Service Description XML Messaging Service Transport

  9. XML (Extensible Markup Language) • A language for describing data • Platform independent and self-describing • Good for distributed computing where heterogeneous systems co-exist

  10. XML - Example xml declaration start tag <?xml version="1.0"?> <contact-info> <name>John Smith</name> <company>University of Florida</company> <phone>352-392-1200</phone> </contact-info> </xml> end tag text

  11. Web Service User Web Services Interaction XML Resource (database, CPU, storage …)

  12. An example scenario Tell me about your service Buyer Amazon.com WSD (Web service description) (show the wsdl in the text box) Send a SOAP message (show the soap message in the text box) <portType name=“BookService"> <operation name=“buyBook"> <input name=“bookName“ message="tns:bookName"/> <output name=“price" message="tns:price"/> </operation> </portType> Returned SOAP message

  13. Typical Web Service Invocation The Globus Toolkit 4 Tutorial. http://gdp.globus.org/gt4-tutorial/

  14. The Web Service state machine 2. Client looks up the service in the registry (UDDI) and gets a WSDL description UDDI client 1. Service advertises itself in the registry (UDDI) 3. Client interacts with the service (SOAP + HTTP + XML) service

  15. SOAP (Simple Object Access Protocol) • SOAP is a protocol specification that defines a uniform way of passing XML-encoded data • In also defines a way to perform remote procedure calls (RPCs) using HTTP as the underlying communication protocol • It is the underlying protocol for all web services

  16. Soap Message Envelope (required) Header (optional) Body (required) Fault (optional) Structure of SOAP Messages

  17. Web Service Application XML messaging using SOAP SOAP SOAP Network protocols (HTTP …) Network protocols (HTTP …)

  18. WSDL (Web Service Description Language) • Now, we know how to send messages. But, how do we find out about the web service interface? Answer: WSDL !!! • WSDL provides a way for service providers to describe the basic format of web service requests over different protocols or encodings • It provides the following information about the service • What the service can do • Where it resides • How to invoke it

  19. Contents of a WSDL document <definitions> <types> definition of types........ </types> <message> definition of a message.... </message> <portType> definition of a port....... </portType> <binding> definition of a binding.... </binding> </definitions>

  20. portType • WSDL portType is the most important element of the document • It defines the operations that can be performed on a web service <portType name=“Hello"> <operation name=“greeting"> <input name=“name" message=“greetingRequest"/> <output name=“response” message=“greetingResponse"/> </operation> </portType >

  21. Messages and Types • But, to describe the operation we also have to identify the messages that need to be sent and type of the elements that are sent in the messages <message name=“greetingRequest"> <part name=“input" type="xs:string"/> </message> <message name=“greetingResponse"> <part name="value" type="xs:string"/> </message> • As you can see, various types can be specified for the messages

  22. Binding • The binding element describes the way the message needs to be encoded (usually using SOAP) <binding type=“Hello" name=“myBinding"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" /> <operation> <soap:operation soapAction="http://example.com/Hello"/> <input> <soap:body use="literal"/> </input> <output> <soap:body use="literal"/> </output> </operation> </binding>

  23. <definitions name=“Hello" targetNamespace="http://hello.com" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns="http://schemas.xmlsoap.org/wsdl/"> <message name=“greetingRequest"> <part name=“input" type="xs:string"/> </message> <message name=“greetingResponse"> <part name="value" type="xs:string"/> </message> <portType name=“Hello"> <operation name=“greeting"> <input name=“name" message=“greetingRequest"/> <output name=“response” message=“greetingResponse"/> </operation> </portType > <binding type=“Hello" name=“myBinding"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" /> <operation> <soap:operation soapAction="http://example.com/Hello"/> <input> <soap:body use="literal"/> </input> <output> <soap:body use="literal"/> </output> </operation> </binding> </definitions> message portType binding

  24. UDDI (Universal Description, Discovery and Integration) • A protocol for finding web services • Registries of web services can be maintained • The primary purpose is to find services with certain qualities

  25. BusinessEntity (company description) BusinessService (Service Description) BindingTemplate (service technical description) modeled as a tModel UDDI • BusinessEntity • Information about a company (name of the company, contact info etc.) • Kind of company • BusinessEntity contains BusinessService elements that represent the services the company offers • Each BusinessService contains BindingTemplates that describe the services

  26. stateless vs. stateful web service • Stateless web services don’t “remember” information from one invocation to another whereas stateful Web Services do. • When Web Services are used just to create Internet-based applications with loosely coupled clients and servers, they can be stateless. The service can be restarted without concern of previous interactions. • When Web Services are used to create Grid Applications, they are generally required to be stateful.

  27. Stateful web services example login Buyer Amazon.com login ok, your shopping cart id is 0x800 logout login and my id is 0x800 Your shopping cart has …

  28. Problems • No standard on how to do this • Client needs to have special code • Some protocol specific features like cookies can be used

  29. Grid Services • So, what are these grid services anyway? • Grid services are web services that are customized to grid environment • Similar to web services they provide the glue to interact with heterogeneous systems • Why do we need them? • What do they provide?

  30. Web Services vs Grid Services • Though web services are great, some key things that are required on the grid are missing • State management • Global Service Naming • Reference resolution • more …

  31. Web Services vs Grid Services • Wait a minute ! I can do all those things with web services, can’t I? • YES ! You can • But, • The standards don’t provide (yet) the required mechanisms. Work is being done to figure out the best way to do these things

  32. Achieving Statefulness • The state is kept in a separate entity called a resource. • Each resource has a unique key. The Globus Toolkit 4 Tutorial. http://gdp.globus.org/gt4-tutorial/

  33. OGSA Introduction • Grid systems and applications aim to integrate, virtualize and manage resources and services within distributed, heterogeneous, dynamic “virtual organizations” • Items needed • Computers, application services, data, and other resources need to be accessed within different organizations • Standardization • Open Grid Services Architecture (OGSA) • Is a service-oriented architecture (SOA), that addresses the need for standardization by defining a set of core capabilities and behaviors that address key concerns in Grid systems • SOA: A perspective of software architecture that defines the use of services to support the requirements of software users. Enables the creation of applications that are built by combining loosely coupled and interoperable services

  34. OGSA • OPEN GRID SERVICES ARCHITECTURE (OGSA) • VO Management Service. • Resource Discovery and Management Service. • Job Management Service. • … security, data management, etc.

  35. OGSI • OGSI defines the mechanisms to create grid services • Introduces the notion of grid services and their special properties particularly the global pointer GSH (Grid Service Handle)

  36. OGSA is the architecture, OGSI is the infrastructure. Grid service interface standard Methods allow access to Grid service As well as Grid service state (SDE) Optional factory interface Naming and referencing of Grid services Extends WSDL 1.1 (GWSDL) Handle resolver Notifications OGSI Registry Grid Service Reference (GSR) Grid Service Handle (GSH) Publish GSR Service Consumer Service Provider Bind Client Grid Service Reply Legend program boundary request flow module boundary reply flow Grid Service Reference OGSI - 2001 • OGSI Grid service locator: • Multiple GHSs + GSRs + interface description

  37. Grid Services as seen by OGSI • Connect to the grid service • Ask the server to create an instance for you • Get a unique global pointer to it • Interact with the service

  38. OGSI Issues • Confusion and Criticism from web services folks • Modeling stateful resource with Web services • Web service Resource Framework (WS-RF) 2004

  39. WSRF • Stands for Web Services Resource Framework • Improves on the concept of Web Services by creating a separate view for the resource state. • Simplifies WSDL and reduces message size and complexity (XML gets heavy and complicated fast) • Modular (users decide which specification to use)

  40. WS-Resource • Provides a means of expressing the relationship between stateful resources and web services • The WS-Resource has an XML resource property document defined using XML schema. • The requestor can determine the WS-Resource type by retrieving the portType • Web service programming paradigm is used to interact with the resource

  41. GT1 Grid GT2 OGSI Started far apart in apps & tech Have been converging WSRF WSDL 2, WSDM WSDL, WS-* Web HTTP Web Services and Grids - OGSA • OGSI problems solved by WSRF

  42. Global Toolkit • The Globus Toolkit is a software toolkit, developed by The Globus Alliance, which can be used to program grid-based applications. • Globus Toolkit includes a resource monitoring and discovery service, a job submission infrastructure, a security infrastructure, and data management services;

  43. WS-GRAM • Globus Tookit 4 contains a web service-based Grid Resource Allocation and Management (GRAM) component. • WS-GRAM is a WSRF-based web service used by computational resources on the Teragrid to remotely submit, monitor, and cancel jobs. • These jobs may be either be interactive jobs which tend to perform simple tasks which complete quickly, or they may be jobs managed by a scheduler.

  44. Programming Grid Services (GT4) • Basic steps involved in creating a grid service • Create the interface using WSDL • Specify the portTypes, messages and data encoding • Generate Stubs • Add functionality • Compile and Build the code using Globus libraries • Create a GAR (Grid Archive) • Deploy it

  45. OGSA, WSRF & GT4 B. Sotomayor and L. Childers. Globus Toolkit 4, Programming Java Services. 2006. The Morgan Kaufmann Series in Networking.

  46. Bibliografy • Masoud Sadjadi’s Lecute Lecture on Developing Grid Services on LA Grid • Laukik Chitnis and Sanjay Ranka’s Tutorial on Grid • Onyeka Ezenwoye’s Lecture on Web Services • TeraGridForum wiki: http://www.teragridforum.org/mediawiki/index.php?title=WS-Gram • Python WSRF Programmers' Tutorial: http://acs.lbl.gov/gtg/projects/pyGridWare/doc/tutorial/html/c182.html

More Related