No Slide Title

Download Report

Transcript No Slide Title

Additional Features of
WSRF/GT4 Services
A brief outline
Slides for Grid Computing: Techniques and Applications by Barry Wilkinson, Chapman & Hall/CRC press, © 2009.
Chapter 7, pp. 213-218. For educational use only. All rights reserved. Sept 14, 2009
7-2.1
Stateful GT 4 Grid Services
Review
• “Pure” Web services are stateless.
• Stateful web services required for Grid computing.
• WSRF provides stateful web services by having a
Web service as a front-end to a stateful
“resource.”
7-2.2
GT 4 services
• Key aspect is separation of (Web) service
and a resource – conceptually if not actually.
• Provides ability to have “state” without
altering the statelessness of Web service.
7-2.3
Web Service Resource Framework
(WSRF)
Resource
Web Service
Client
Resource properties
Holds
information
retained
between
accesses.
7-2.4
Resource properties
• Name given to data items in the resource
• Can consist of:
– Data values about current state of service (results of
calculations etc.)
– Metadata: Information about data
– Information about whole resource: Termination time,
etc.
7-2.5
Combined Service Code and
Resource
• Simplest arrangement is to have both the service
code and resource code were held in a single file.
• Ideally, we would like to have multiple resources
for a Web service
• Having one file not the preferred way except for
simple service examples.
7-2.6
Separate Resource
More generally, resource is a (stateful) class.
End Point Reference (EPR) is an XML document
that has URL of service and possibly a resource
identification (key)
Classes provided for different arrangements:
ReflectionResourceProperty class can be
used when service code and resource in one file.
7-2.7
Resource Home
• Resources are managed by Resource Home's
• Provides resource management functions
– for adding resources
– for removing resources
7-2.8
Resource Home
Resource home
create/
find resource
Client
Web Service
Manages
Client only
interacts with
stateless web
service
Methods
operate on
resources
properties
Resource
7-2.9
Service and resource code
Resource home
create/
find resource
Client
Web Service
void add(int a)
void subtract (int a)
Manages
Resource
add() and subtract()
methods operate on
resource properties
int value
String lastOP
7-2.10
Resource Home
Resource home
Client
Web Service
Resource
If service and resource in one file, resource limited to
one resource using a Globus supplied resource home
called ServiceResourceHome
7-2.11
Service and resource code
Web Service
Client
void add(int a)
void subtract (int a)
Resource
int value
String lastOP
Resource home
“ServiceResourceHome”
create/
find resource
ServiceResourceHome
returns service object
add() and subtract()
methods operate on
resource properties
7-2.12
Separately service, resource
and resource home files
7-2.13
Separate Service, Resource & Resource Home
files
Singleton Resources (Single resource)
Resource home
Client
Web Service
void add(int a)
void subtract (int a)
int value
String lastOP
Resource
Three files: the service, the resource home, and the resource.
7-2.14
Multiple Resources
Suppose there are multiple resources that a service
might interact with:
Resources
Client
Web Service
7-2.15
Creating Resources
WS-Resource Factory Pattern
Traditional object-oriented approach to creating
resources is to use a “factory” service:
Factory service responsible for creating instances
of resources.
Each resource assigned a unique “key”, which
together with service URI identifies WS-resource
pair. (Endpoint Reference)
7-2.16
WS-Resource Factory Pattern
Factory service
Resources
Request
resource
creation
Return WSResource EPR
Request
operation
on resource
Client
Create
Perform
operation
“Instance” Service
7-2.17
Relationship with Resource Home
Factory Service
Use Resource Home
to create resource
Request
resource
creation
Find resource
Client
Service instance
Resource
Home
Manages
Request
operation
Methods operate on
resources properties
Resource
7-2.18
Factory service
Create Resource operation
endpointReference createResource()
Returns an EPR to the newly created WSResource.
“Fully qualified” EPR to include URI of service
and key of resource
Client needs to know location of factory service.
7-2.19
Question
Q: Why would one want to have multiple
resources for a Web service?
7-2.20
Lifecycle Management
Lifecycle mechanisms available in WSRF.
GT4 provides mechanisms to specify when a
resource is automatically destroyed.
• Immediately by invoking destroy operation through
a Web service
• Scheduled some time in the future
• Leased-based lifecycle management
7-2.21
Immediate Destruction
Command line:
globus-wsrf-destroy -e EPR1234.epr
File containing
EPR of resource
Destruction can be requested through a Web service
by a client:
math.destroy(new Destroy());
Notice - factory responsible for creating resource, but
service instance destroys it.
7-2.22
Scheduled Termination Time
Termination time exposed as a resource property.
Can be set with GT4 command:
wsrf-set-termination-time
Example
wsrf-set-termination-time -e EPR1234.epr 100
File containing
EPR of resource
Termination
time in seconds
7-2.23
Question
Q: Why would one want to have a termination
time set for a resource?
7-2.24
Lease-based Lifetime
• In lease-based model, resources must be kept
alive by interested parties, otherwise resource
dies.
• A lifetime for a service is set after which the service
is destroyed.
• Interested parties (clients) must renew the lease
(reset the termination time) or it will be destroyed.
• Clean up without having to use a destroy operation
explicitly.
7-2.25
Notifications
Notifying clients when something interesting
happens.
Example might be when a resource property
reaches a certain value
Could use polling but this is very inefficient.
WS-notification defines mechanisms.
7-2.26
Resource property changes
• Examples:
– Changes to resource property values.
– Methods added
– Methods removed
– Resources destroyed
7-2.27
Subscribe for notifications
• Need client to “subscribe” to receive notifications.
• Subscriptions are for a particular topic.
• Resource implemented with GT 4 classes that
provide for automatic notifications whenever
property changes.
7-2.28
Automatic notifications
Fig 7.8
7-2.29
GT 4 Information Services
Monitoring and Discovery Services (MDS)
Principal components:
Index service
Trigger service
WebMDS
7-2.30
Information
services
WebMDS
Index service
Trigger service
7-2.31
Globus core does not include information services
such as index services.
When installed, would see it in list of services, e.g.:
Index
service
Trigger
service
Fig 7.9
7-2.32
Index Service
GT 4 provided with an index service that can
maintain a list of available resources.
Container
Index service
(resources with resource properties)
7-2.33
Index service
Note -- index service does not act as a local
service registry listing the services — it act as a
registry for the resources.
Fig 7.10
7-2.34
• “add” method of ResourceHome used to create resource.
• Override method to include registering resource with index
service.
7-2.35
Querying Index Service
wsrf-query
Browse index service with the GT4 command:
wsrf-query
which will list resource properties in an XML format.
7-2.36
Example
wsrf-query –s
http://localhost:8080/wsrf/services/
DefaultIndexService '/*'
which will list resource properties in an XML format.
Result might be:
<ns1:MyServiceResourceProperties xmlns:ns1=
“...”>
<ns1:data>234</ns1:data>
</ns1:MyServiceResourceProperties>
An index service can be browsed with the GT4
command such as:
wsrf-query –s \
http://localhost:8080/wsrf/services/DefaultIndexService '/*'
which will list all the resource properties and their
values in an XML format, where index service located
at http://localhost:8080/wsrf/services/DefaultIndexService.
XPath expressions can be used to select specific
resource properties.
“Community” Index Service
• A remote index service that holds all the index
services of the “virtual organization.”
• For example a community index service might be
at:
https://torvalds.cis.uncw.edu/wsrf/
services/DefaultIndexService
7-2.39
Fig 7.12
7-2.40
Community index service
Student 1 Index entry
Student 2 Index entry
Local Index service
Local Index service
Resources
Resources
Service
Client
Client
Service
Student 1 container
Student 2 container
Only container and GT 4 core needed at each site to handle services.
7-2.41
Querying Community Index
Service
Have Community Index Service running.
Use wsrf-query command:
$GLOBUS_LOCATION/bin/wsrf-query -s
https://torvalds.cis.uncw.edu/wsrf/serv
ices/DefaultIndexService '/*'
Should see contents of all local index services.
7-2.42
Resource Discovery
• The local and community index services can
be searched for a particular resource
property.
• Since Resources properties are XML, can
use “XPath” queries for searching and
retrieval.
7-2.43
XML Path Language (XPath)
• W3C recommendation, 1999
• A query language for search XML documents.
• Queries formed by identifying a route to the
desired data.
• For details: http://www.w3.org/TR/xpath
7-2.44
MDS4 Trigger Service
• Subscribes to a set of resource properties
• Evaluate that data against a set of preconfigured conditions (triggers)
• When a condition matches, action occurs
– Email is sent to pre-defined address
– Website updated
From: Monitoring and Discovery in a Web Services Framework: Functionality and
Performance of Globus Toolkit MDS4 Jennifer M. Schopf, Sept 11, 2006
7-2.45
WebMDS
Web-based interface to display resource property information.
Front-end to index services.
Sample: http://mds.globus.org:8080/webmds/
webmds?info=indexinfo&xsl=servicegroupxsl
7-2.46
More Information
Book
Globus Toolkit 4 Programming Java Services
Borja Sotomayor and Lisa Childer
Morgan Kaufmann, 2006.
On-line
GT4 services: http://gdp.globus.org/gt4-tutorial/
7-2.47
What is a (WS) notification in Grid services?
(a) A mechanism of the GGF committee to inform
the community of changes to the (WS) standard
(b) A mechanism for client to inform a Grid service
of its existence
(c) A mechanism to inform a client of changes in the
service or resource
(d) A final demand to pay your taxes
Fig 7-4
7-2.48
What is the purpose of the Globus index service?
(a) To hold index variables for arrays
(b) To operate on an array of functions
(c) To maintain a list of available services
(d) To maintain a list of available resources
Fig 7-11
7-2.49
Questions
7-2.50