Title: Grid Services
1Grid Services
- Grid Enablement of Scientific Applications
- Present by Mark Joselli
- Professor S. Masoud Sadjadi
2- Web Services
- Grid Services
3Web 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
5Sample Interaction
Key things to note Request/response
login
Buyer
Amazon.com
login ok
buy a book
price information
confirm purchase
6The 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
7Why 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
8Web 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
9XML (Extensible Markup Language)
- A language for describing data
- Platform independent and self-describing
- Good for distributed computing where
heterogeneous systems co-exist
10XML - Example
xml declaration
start tag
lt?xml version"1.0"?gt ltcontact-infogt ltnamegtJohn
Smithlt/namegt ltcompanygtUniversity of
Floridalt/companygt ltphonegt352-392-1200lt/phonegt
lt/contact-infogt lt/xmlgt
end tag
text
11Web Services Interaction
XML
Resource (database, CPU, storage )
12An 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)
ltportType nameBookService"gt ltoperation
namebuyBook"gt ltinput
namebookName message"tnsbookName"/gt
ltoutput nameprice"
message"tnsprice"/gt lt/operationgt lt/portTypegt
Returned SOAP message
13Typical Web Service Invocation
The Globus Toolkit 4 Tutorial. http//gdp.globus.o
rg/gt4-tutorial/
14The 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
15SOAP (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
16Structure of SOAP Messages
17XML messaging using SOAP
SOAP
SOAP
Network protocols (HTTP )
Network protocols (HTTP )
18WSDL (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
19Contents of a WSDL document
- ltdefinitionsgt
- lttypesgt
- definition of types........
- lt/typesgt
- ltmessagegt
- definition of a message....
- lt/messagegt
- ltportTypegt
- definition of a port.......
- lt/portTypegt
- ltbindinggt
- definition of a binding....
- lt/bindinggt
- lt/definitionsgt
20portType
- WSDL portType is the most important element of
the document - It defines the operations that can be performed
on a web service - ltportType nameHello"gt
- ltoperation namegreeting"gt
- ltinput namename" messagegreetingRequest"/
gt - ltoutput nameresponse messagegreetingRespo
nse"/gt - lt/operationgt
- lt/portType gt
21Messages 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 - ltmessage namegreetingRequest"gt
- ltpart nameinput" type"xsstring"/gt
lt/messagegt - ltmessage namegreetingResponse"gt
- ltpart name"value" type"xsstring"/gt
lt/messagegt - As you can see, various types can be specified
for the messages -
22Binding
- The binding element describes the way the message
needs to be encoded (usually using SOAP) - ltbinding typeHello" namemyBinding"gt
ltsoapbinding style"document" transport"http//s
chemas.xmlsoap.org/soap/http" /gt - ltoperationgt ltsoapoperation soapAction"http//e
xample.com/Hello"/gt - ltinputgt ltsoapbody use"literal"/gt lt/inputgt
- ltoutputgt ltsoapbody use"literal"/gt
lt/outputgt - lt/operationgt
- lt/bindinggt
23ltdefinitions nameHello" targetNamespace"http//
hello.com" xmlnssoap"http//schemas.xmlsoap.org/
wsdl/soap/" xmlns"http//schemas.xmlsoap.org/wsdl
/"gt ltmessage namegreetingRequest"gt ltpart
nameinput" type"xsstring"/gt lt/messagegt
ltmessage namegreetingResponse"gt ltpart
name"value" type"xsstring"/gt
lt/messagegt ltportType nameHello"gt
ltoperation namegreeting"gt ltinput
namename" messagegreetingRequest"/gt ltoutput
nameresponse messagegreetingResponse"/gt
lt/operationgt lt/portType gt ltbinding
typeHello" namemyBinding"gt ltsoapbinding
style"document" transport"http//schemas.xmlsoap
.org/soap/http" /gt ltoperationgt
ltsoapoperation soapAction"http//example.com/Hel
lo"/gt ltinputgt ltsoapbody use"literal"/gt
lt/inputgt ltoutputgt ltsoapbody
use"literal"/gt lt/outputgt lt/operationgt
lt/bindinggt lt/definitionsgt
message
portType
binding
24UDDI (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
25UDDI
- 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
26stateless vs. stateful web service
- Stateless web services dont 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.
27Stateful 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
28Problems
- No standard on how to do this
- Client needs to have special code
- Some protocol specific features like cookies can
be used
29Grid 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?
30Web 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
31Web Services vs Grid Services
- Wait a minute ! I can do all those things with
web services, cant I? - YES ! You can
- But,
- The standards dont provide (yet) the required
mechanisms. Work is being done to figure out the
best way to do these things
32Achieving 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.o
rg/gt4-tutorial/
33OGSA 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
34OGSA
- OPEN GRID SERVICES ARCHITECTURE (OGSA)
- VO Management Service.
- Resource Discovery and Management Service.
- Job Management Service.
- security, data management, etc.
35OGSI
- 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)
36OGSI - 2001
- 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 Grid service locator
- Multiple GHSs GSRs interface description
37Grid 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
38OGSI Issues
- Confusion and Criticism from web services folks
- Modeling stateful resource with Web services
- Web service Resource Framework (WS-RF) 2004
39WSRF
- 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)
40WS-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
41Web Services and Grids - OGSA
- OGSI problems solved by WSRF
42Global 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
43WS-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.
44Programming 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
45OGSA, WSRF GT4
B. Sotomayor and L. Childers. Globus Toolkit 4,
Programming Java Services. 2006. The Morgan
Kaufmann Series in Networking.
46Bibliografy
- Masoud Sadjadis Lecute Lecture on Developing
Grid Services on LA Grid - Laukik Chitnis and Sanjay Rankas Tutorial on
Grid - Onyeka Ezenwoyes Lecture on Web Services
- TeraGridForum wiki http//www.teragridforum.org/m
ediawiki/index.php?titleWS-Gram - Python WSRF Programmers' Tutorial
http//acs.lbl.gov/gtg/projects/pyGridWare/doc/tut
orial/html/c182.html