![Page 1: 4a.1 Grid Computing Infrastructure Software ITCS 4146/5146, UNC-Charlotte, B. Wilkinson, 2007 Feb 16, 2007,](https://reader031.vdocument.in/reader031/viewer/2022020717/56649d395503460f94a13e8b/html5/thumbnails/1.jpg)
4a.1
Grid Computing Infrastructure Software
ITCS 4146/5146, UNC-Charlotte, B. Wilkinson, 2007 Feb 16, 2007
![Page 2: 4a.1 Grid Computing Infrastructure Software ITCS 4146/5146, UNC-Charlotte, B. Wilkinson, 2007 Feb 16, 2007,](https://reader031.vdocument.in/reader031/viewer/2022020717/56649d395503460f94a13e8b/html5/thumbnails/2.jpg)
4a.2
Gone through several development cycles.
Started before grid computing standards became accepted.
Clearly need standardized protocols and interfaces for wide adoption of grid computing.
Grid computing software
![Page 3: 4a.1 Grid Computing Infrastructure Software ITCS 4146/5146, UNC-Charlotte, B. Wilkinson, 2007 Feb 16, 2007,](https://reader031.vdocument.in/reader031/viewer/2022020717/56649d395503460f94a13e8b/html5/thumbnails/3.jpg)
4a.3
Standards BodiesFor Internet, world wide web, and grid computing:
• W3C consortium (Worlds Wide Web Consortium)– Working on standardization of web-related technologies
such as XML, see http://www.w3.org
• OASIS (Organization for the Advancement of Structured Information Standards)
• IETF (Internet Engineering Task Force)• DMTF (Distributed Management Task Force)• Global Grid Forum (GGF) – principal grid computing
body– Started in 1998– Meets three times a year, GGF1, GGF2, GGF3 …– More than 40 organizations involved and growing …
![Page 4: 4a.1 Grid Computing Infrastructure Software ITCS 4146/5146, UNC-Charlotte, B. Wilkinson, 2007 Feb 16, 2007,](https://reader031.vdocument.in/reader031/viewer/2022020717/56649d395503460f94a13e8b/html5/thumbnails/4.jpg)
4a.4
Standards in Web Services World
• XML introduced (ratified) in 1998• SOAP ratified in 2000• Web services developed• Subsequently, standards are continuing
to be developed:– WSDL– WS-* where * refers to names of one of
many standards
![Page 5: 4a.1 Grid Computing Infrastructure Software ITCS 4146/5146, UNC-Charlotte, B. Wilkinson, 2007 Feb 16, 2007,](https://reader031.vdocument.in/reader031/viewer/2022020717/56649d395503460f94a13e8b/html5/thumbnails/5.jpg)
4a.5
Using web services
• It would be natural to use web services for grid computing components.
• Provides a easily identifiable interface through WDSL documents.
• Has Internet addressing (URLs).
![Page 6: 4a.1 Grid Computing Infrastructure Software ITCS 4146/5146, UNC-Charlotte, B. Wilkinson, 2007 Feb 16, 2007,](https://reader031.vdocument.in/reader031/viewer/2022020717/56649d395503460f94a13e8b/html5/thumbnails/6.jpg)
4a.6
(Stateless) Web Services”
• “Pure” web services are stateless.
• They do not remember information from one invocation to the next.
• That can work fine for many web service applications.
• They do not need to know what happened with a previous invocation by another client.
![Page 7: 4a.1 Grid Computing Infrastructure Software ITCS 4146/5146, UNC-Charlotte, B. Wilkinson, 2007 Feb 16, 2007,](https://reader031.vdocument.in/reader031/viewer/2022020717/56649d395503460f94a13e8b/html5/thumbnails/7.jpg)
4a.7
Simple previous web service example
• Web service MyMath with a method to square an argument and return its value:
public class MyMath{ . . . public int square(int x) { return x * x; } . . .}
Web service
x
x2
Request
Result
Client
Nothing stored permanently
![Page 8: 4a.1 Grid Computing Infrastructure Software ITCS 4146/5146, UNC-Charlotte, B. Wilkinson, 2007 Feb 16, 2007,](https://reader031.vdocument.in/reader031/viewer/2022020717/56649d395503460f94a13e8b/html5/thumbnails/8.jpg)
4a.8
“Stateful” web service example
• With a method to add a value to an accumulating value and return its value:
public class MyMath{ . . . public void add(int x) { value += x; } . . .private int value;}
Web service
+3Request
value = 7(if value had held 4)
Client
Value kept between invocations
![Page 9: 4a.1 Grid Computing Infrastructure Software ITCS 4146/5146, UNC-Charlotte, B. Wilkinson, 2007 Feb 16, 2007,](https://reader031.vdocument.in/reader031/viewer/2022020717/56649d395503460f94a13e8b/html5/thumbnails/9.jpg)
4a.9
Example with a “database” resource
The Grid 2: Blueprint for a new Computing Infrastructure, Ian Foster, Carl Kesselman and Steve Tuecker Editors, Morgan Kaufmann 2004 -- Chapter 17: “The Open Grid Service Architecture,” by Ian Foster, Carl Kesselman and Steve Tuecker.
![Page 10: 4a.1 Grid Computing Infrastructure Software ITCS 4146/5146, UNC-Charlotte, B. Wilkinson, 2007 Feb 16, 2007,](https://reader031.vdocument.in/reader031/viewer/2022020717/56649d395503460f94a13e8b/html5/thumbnails/10.jpg)
4a.10
• In this example, the client accesses a file transfer service to perform actions such as transfer a file from one storage service to another.
• Key aspect here is that the state is contained in a resource that can be separate from the web service.
• Web service becomes a front end to the resource.
• Come back to this concept later.
![Page 11: 4a.1 Grid Computing Infrastructure Software ITCS 4146/5146, UNC-Charlotte, B. Wilkinson, 2007 Feb 16, 2007,](https://reader031.vdocument.in/reader031/viewer/2022020717/56649d395503460f94a13e8b/html5/thumbnails/11.jpg)
4a.11
Open Grid Services Architecture (OGSA)
• Originally described in paper: “The Physiology of the Grid” http://www.globus.org/research/papers/ogsa.pdf
• Grid computing standard announced at GGF4 in Feb 2002.
• Defines standard mechanisms for creating, naming, and discovering service instances.
• Addresses architectural issues relating to interoperable services for grid computing.
• Does not give details of implementation.• Requires stateful services but does not say
how that will be achieved.
![Page 12: 4a.1 Grid Computing Infrastructure Software ITCS 4146/5146, UNC-Charlotte, B. Wilkinson, 2007 Feb 16, 2007,](https://reader031.vdocument.in/reader031/viewer/2022020717/56649d395503460f94a13e8b/html5/thumbnails/12.jpg)
4a.12
Open Grid Service Infrastructure (OGSI)
• Introduced in 2002-3 (final draft June 2003).
• First attempt to standardize how stateful web services will be implemented.
• Modifies web service WDSL to enable state to be specified, using a modified WDSL language called GWSDL (“grid web definition language”),
• Introduced term “grid service.”
• Implemented in GT3.
![Page 13: 4a.1 Grid Computing Infrastructure Software ITCS 4146/5146, UNC-Charlotte, B. Wilkinson, 2007 Feb 16, 2007,](https://reader031.vdocument.in/reader031/viewer/2022020717/56649d395503460f94a13e8b/html5/thumbnails/13.jpg)
4a.13
Open Grid Service Infrastructure (OGSI)
• Not found acceptable by the community at large because:– It significantly modified pure web service
approach– Required new tools.– Too object oriented in approach.
![Page 14: 4a.1 Grid Computing Infrastructure Software ITCS 4146/5146, UNC-Charlotte, B. Wilkinson, 2007 Feb 16, 2007,](https://reader031.vdocument.in/reader031/viewer/2022020717/56649d395503460f94a13e8b/html5/thumbnails/14.jpg)
4a.14
WS-Resource Framework
• A specification developed by OASIS, essentially to replace OGSI and make the implementation of a stateful web service acceptable.
• Specifies how to make web service stateful and other feature, without drifting from the original web services concept.
![Page 15: 4a.1 Grid Computing Infrastructure Software ITCS 4146/5146, UNC-Charlotte, B. Wilkinson, 2007 Feb 16, 2007,](https://reader031.vdocument.in/reader031/viewer/2022020717/56649d395503460f94a13e8b/html5/thumbnails/15.jpg)
4a.15
“Grid service”
• Broad meaning -- any service that conforms to interface conventions of a grid computing infrastructure
• Narrow (current) meaning -- a service that conforms to WSRF
![Page 16: 4a.1 Grid Computing Infrastructure Software ITCS 4146/5146, UNC-Charlotte, B. Wilkinson, 2007 Feb 16, 2007,](https://reader031.vdocument.in/reader031/viewer/2022020717/56649d395503460f94a13e8b/html5/thumbnails/16.jpg)
4a.16
Grid computing standards
Figure from “An ‘Ecosystem’ of Grid Components”, 2004, Grid Research Integration Deployment and Support Center, http://www-unix.grids-
center.org/r6/ecosystem/ecology.php
![Page 17: 4a.1 Grid Computing Infrastructure Software ITCS 4146/5146, UNC-Charlotte, B. Wilkinson, 2007 Feb 16, 2007,](https://reader031.vdocument.in/reader031/viewer/2022020717/56649d395503460f94a13e8b/html5/thumbnails/17.jpg)
4a.17From “The Globus Toolkit 4 Programmer’s Tutorial” by Borja Sotomayor.
![Page 18: 4a.1 Grid Computing Infrastructure Software ITCS 4146/5146, UNC-Charlotte, B. Wilkinson, 2007 Feb 16, 2007,](https://reader031.vdocument.in/reader031/viewer/2022020717/56649d395503460f94a13e8b/html5/thumbnails/18.jpg)
4a.18
Stateful Web Services
• Obtained in WSRF by having a web service front-end to a stateful “resource.”
![Page 19: 4a.1 Grid Computing Infrastructure Software ITCS 4146/5146, UNC-Charlotte, B. Wilkinson, 2007 Feb 16, 2007,](https://reader031.vdocument.in/reader031/viewer/2022020717/56649d395503460f94a13e8b/html5/thumbnails/19.jpg)
4a.19
Web Service
Resource
Resource properties
Client
Web Service Resource Framework(WSRF)
Holds information retained between accesses.
![Page 20: 4a.1 Grid Computing Infrastructure Software ITCS 4146/5146, UNC-Charlotte, B. Wilkinson, 2007 Feb 16, 2007,](https://reader031.vdocument.in/reader031/viewer/2022020717/56649d395503460f94a13e8b/html5/thumbnails/20.jpg)
4a.20
WSDL file with WSRF
• Serves same purpose as WSDL file in web services – to define the service interface.
• A significant addition in the WSDL file is to specify the resource.
![Page 21: 4a.1 Grid Computing Infrastructure Software ITCS 4146/5146, UNC-Charlotte, B. Wilkinson, 2007 Feb 16, 2007,](https://reader031.vdocument.in/reader031/viewer/2022020717/56649d395503460f94a13e8b/html5/thumbnails/21.jpg)
4a.21
Web Service
Resource
Resource properties
Client
Holds information retained between accesses.
WSDL fileincludes
specifying resource
Container
![Page 22: 4a.1 Grid Computing Infrastructure Software ITCS 4146/5146, UNC-Charlotte, B. Wilkinson, 2007 Feb 16, 2007,](https://reader031.vdocument.in/reader031/viewer/2022020717/56649d395503460f94a13e8b/html5/thumbnails/22.jpg)
4a.22
“Stateful” web service example revisited• With a method to add a value to an
accumulating value and return its value:
public class MyMath{ . . . public void add(int x){ value += x;} . . .}
Stateless Web service
+3Request
value =7(if value had held 4)
Client
Stateful Resource
public int value;
![Page 23: 4a.1 Grid Computing Infrastructure Software ITCS 4146/5146, UNC-Charlotte, B. Wilkinson, 2007 Feb 16, 2007,](https://reader031.vdocument.in/reader031/viewer/2022020717/56649d395503460f94a13e8b/html5/thumbnails/23.jpg)
4a.23
Service Interface
• If service implements operations on WSRF resource properties, WSDL will include definitions relating to resource property.
![Page 24: 4a.1 Grid Computing Infrastructure Software ITCS 4146/5146, UNC-Charlotte, B. Wilkinson, 2007 Feb 16, 2007,](https://reader031.vdocument.in/reader031/viewer/2022020717/56649d395503460f94a13e8b/html5/thumbnails/24.jpg)
4a.24
Other key issuesAddressing
• WSRF service needs an addressing mechanism that includes access to the resource
• Pure web services typically use URIs (URLs)
• WSRF service addressing defined in WS-addressing standard– Uses an “endpoint reference”
![Page 25: 4a.1 Grid Computing Infrastructure Software ITCS 4146/5146, UNC-Charlotte, B. Wilkinson, 2007 Feb 16, 2007,](https://reader031.vdocument.in/reader031/viewer/2022020717/56649d395503460f94a13e8b/html5/thumbnails/25.jpg)
4a.25
Endpoint ReferenceEPR
Includes both:
– Service address (URI)
and
– Resource identification (called a “key”)
![Page 26: 4a.1 Grid Computing Infrastructure Software ITCS 4146/5146, UNC-Charlotte, B. Wilkinson, 2007 Feb 16, 2007,](https://reader031.vdocument.in/reader031/viewer/2022020717/56649d395503460f94a13e8b/html5/thumbnails/26.jpg)
4a.26
Endpoint Reference (EPR)
• Service URI + resource identifier (key)
public class MyMath{ . . . public void add(int x) { value += x; } . . .}
Stateless Web service
Request using EPRClient
Stateful Resource
public int value;
Identify service by URIIdentify resource
by a key (a number)
![Page 27: 4a.1 Grid Computing Infrastructure Software ITCS 4146/5146, UNC-Charlotte, B. Wilkinson, 2007 Feb 16, 2007,](https://reader031.vdocument.in/reader031/viewer/2022020717/56649d395503460f94a13e8b/html5/thumbnails/27.jpg)
4a.27
WSRF Framework• Collection of four specifications:
– WS-ResourceProperties• Specifies how resource properties are defined
and accessed– WS-ResourceLifetime
• Specifies mechanisms to manage resource lifetimes
– WS-ServiceGroup• Specifies how to group services or WS-
Resources together– WS-BaseFaults
• Specifies how to report faults
![Page 28: 4a.1 Grid Computing Infrastructure Software ITCS 4146/5146, UNC-Charlotte, B. Wilkinson, 2007 Feb 16, 2007,](https://reader031.vdocument.in/reader031/viewer/2022020717/56649d395503460f94a13e8b/html5/thumbnails/28.jpg)
4a.28
WS-* Standards continuedAlso:
• WS-Notification– Collection of specifications that specifies how
configure services as notification producers or consumers
• WS-Addressing– Specifies how to address web services.– Provides a way to address a web
service/resource pair
![Page 29: 4a.1 Grid Computing Infrastructure Software ITCS 4146/5146, UNC-Charlotte, B. Wilkinson, 2007 Feb 16, 2007,](https://reader031.vdocument.in/reader031/viewer/2022020717/56649d395503460f94a13e8b/html5/thumbnails/29.jpg)
4a.29
Concrete example
Assignment 4
“Simple” Grid Services Assignment
![Page 30: 4a.1 Grid Computing Infrastructure Software ITCS 4146/5146, UNC-Charlotte, B. Wilkinson, 2007 Feb 16, 2007,](https://reader031.vdocument.in/reader031/viewer/2022020717/56649d395503460f94a13e8b/html5/thumbnails/30.jpg)
4a.30
Assignment Goals
• Show how stateful WS-RF web services can be created using Globus 4.0
![Page 31: 4a.1 Grid Computing Infrastructure Software ITCS 4146/5146, UNC-Charlotte, B. Wilkinson, 2007 Feb 16, 2007,](https://reader031.vdocument.in/reader031/viewer/2022020717/56649d395503460f94a13e8b/html5/thumbnails/31.jpg)
4a.31
Purpose of Service
To store an integer value which can be acted upon by methods to:
• Get its value• Increment its value (add one), and• Decrement its value (subtract one).
These methods are given. Further methods will be implemented. The service is stateful (the value is retained between accesses).
![Page 32: 4a.1 Grid Computing Infrastructure Software ITCS 4146/5146, UNC-Charlotte, B. Wilkinson, 2007 Feb 16, 2007,](https://reader031.vdocument.in/reader031/viewer/2022020717/56649d395503460f94a13e8b/html5/thumbnails/32.jpg)
4a.32
Resource Properties
In the code provided for assignment 4, actually two resource properties:
• Value -- an integer acted upon by the operations:
– add– sub– getValueRP
and• “Last operation performed” -- a string holding
the name of the last operation done, addition or subtraction, which is not used in assignment.
![Page 33: 4a.1 Grid Computing Infrastructure Software ITCS 4146/5146, UNC-Charlotte, B. Wilkinson, 2007 Feb 16, 2007,](https://reader031.vdocument.in/reader031/viewer/2022020717/56649d395503460f94a13e8b/html5/thumbnails/33.jpg)
4a.33
Math Web Service
Resource
Resource properties“value”
(integer)
“last operationperformed”
(string)
Client
Assignment 4 Resource Properties
![Page 34: 4a.1 Grid Computing Infrastructure Software ITCS 4146/5146, UNC-Charlotte, B. Wilkinson, 2007 Feb 16, 2007,](https://reader031.vdocument.in/reader031/viewer/2022020717/56649d395503460f94a13e8b/html5/thumbnails/34.jpg)
4a.34
Steps in Assignment 4• Preliminary set-up
– Install GT4 and associated software
• Download provided files:– WSDL service interface file– Stateful Math web service code (in Java)– WSDD Deployment Descriptor file– Client code (java) to exercise service
• Build Math service– Package all files into an archive file (.gar)
• Deploy Math service into GT 4 container• Write and compile the client• Start container and execute client.
Easy so far!
![Page 35: 4a.1 Grid Computing Infrastructure Software ITCS 4146/5146, UNC-Charlotte, B. Wilkinson, 2007 Feb 16, 2007,](https://reader031.vdocument.in/reader031/viewer/2022020717/56649d395503460f94a13e8b/html5/thumbnails/35.jpg)
4a.35
Final Step in Assignment 4
• Add functionality to service– Add multiple operation to Math service– Requires you to modify WSDL, service code,
and client code.– For that you will need to understand the files– Assignment Appendix gives details
![Page 36: 4a.1 Grid Computing Infrastructure Software ITCS 4146/5146, UNC-Charlotte, B. Wilkinson, 2007 Feb 16, 2007,](https://reader031.vdocument.in/reader031/viewer/2022020717/56649d395503460f94a13e8b/html5/thumbnails/36.jpg)
4a.36
WSDL file
• Serves same purpose as WSDL file in web services – to define the service interface.
• A significant addition in the WSDL file is to specify the resource.
![Page 37: 4a.1 Grid Computing Infrastructure Software ITCS 4146/5146, UNC-Charlotte, B. Wilkinson, 2007 Feb 16, 2007,](https://reader031.vdocument.in/reader031/viewer/2022020717/56649d395503460f94a13e8b/html5/thumbnails/37.jpg)
4a.37
Globus-specific features of WSDL
• Resource properties – specified in portType attribute wsrp:ResourceProperties
• WSDL preprocessor used to include WSRF definitions (portType attribute wsdlpp:extends).
• Bindings (how abstract interface maps to concrete protocol messages) – not needed because automatically inserted by GT4 when built.
![Page 38: 4a.1 Grid Computing Infrastructure Software ITCS 4146/5146, UNC-Charlotte, B. Wilkinson, 2007 Feb 16, 2007,](https://reader031.vdocument.in/reader031/viewer/2022020717/56649d395503460f94a13e8b/html5/thumbnails/38.jpg)
4a.38
<definitions name="MathService”targetNamespace=“http://www.globus.org/namespaces/ examples/core/MathService_instance” xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns=http://www.globus.org/namespaces/ examples/core/MathService_instance xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsrp="http://docs.oasis-open.org/wsrf/2004/06/ wsrf-WS-ResourceProperties-1.2-draft-01.xsd" xmlns:wsrpw="http://docs.oasis-open.org/wsrf/2004/06/ wsrf-WS-ResourceProperties-1.2-draft-01.wsdl" xmlns:wsdlpp="http://www.globus.org/namespaces/2004/10/ WSDLPreprocessor" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><wsdl:import namespace= "http://docs.oasis-open.org/wsrf/2004/06/ wsrf-WS-ResourceProperties-1.2-draft-01.wsdl" location="../../wsrf/properties/WS-ResourceProperties.wsdl" />
Namespaces
Name of service being implemented
WSDL file
![Page 39: 4a.1 Grid Computing Infrastructure Software ITCS 4146/5146, UNC-Charlotte, B. Wilkinson, 2007 Feb 16, 2007,](https://reader031.vdocument.in/reader031/viewer/2022020717/56649d395503460f94a13e8b/html5/thumbnails/39.jpg)
4a.39
<types>
<xsd:schema targetNamespace="http://www.globus.org/namespaces/examples/core/MathService_instance"
xmlns:tns="http://www.globus.org/namespaces/examples/core/
MathService_instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<!-- REQUESTS AND RESPONSES -->
<xsd:element name="add" type="xsd:int"/>
<xsd:element name="addResponse">
<xsd:complexType/>
</xsd:element>
<xsd:element name="subtract" type="xsd:int"/>
<xsd:element name="subtractResponse">
<xsd:complexType/>
</xsd:element>
<xsd:element name="getValueRP">
<xsd:complexType/>
</xsd:element>
<xsd:element name="getValueRPResponse" type="xsd:int"/>
add method, argument int, returns a complex type
![Page 40: 4a.1 Grid Computing Infrastructure Software ITCS 4146/5146, UNC-Charlotte, B. Wilkinson, 2007 Feb 16, 2007,](https://reader031.vdocument.in/reader031/viewer/2022020717/56649d395503460f94a13e8b/html5/thumbnails/40.jpg)
4a.40
<!-- RESOURCE PROPERTIES -->
<xsd:element name="Value" type="xsd:int"/>
<xsd:element name="LastOp“ type="xsd:string"/>
<xsd:element name="MathResourceProperties">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="tns:Value“ minOccurs="1“
maxOccurs="1"/>
<xsd:element ref="tns:LastOp“ minOccurs="1“
maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
</types>
![Page 41: 4a.1 Grid Computing Infrastructure Software ITCS 4146/5146, UNC-Charlotte, B. Wilkinson, 2007 Feb 16, 2007,](https://reader031.vdocument.in/reader031/viewer/2022020717/56649d395503460f94a13e8b/html5/thumbnails/41.jpg)
4a.41
<!- M E S S A G E S --><message name="AddInputMessage"> <part name="parameters" element="tns:add"/></message><message name="AddOutputMessage"> <part name="parameters" element="tns:addResponse"/></message><message name="SubtractInputMessage"> <part name="parameters" element="tns:subtract"/></message><message name="SubtractOutputMessage"> <part name="parameters" element="tns:subtractResponse"/></message><message name="GetValueRPInputMessage"> <part name="parameters" element="tns:getValueRP"/></message><message name="GetValueRPOutputMessage"> <part name="parameters" element="tns:getValueRPResponse"/></message>
Input and output message for add method
![Page 42: 4a.1 Grid Computing Infrastructure Software ITCS 4146/5146, UNC-Charlotte, B. Wilkinson, 2007 Feb 16, 2007,](https://reader031.vdocument.in/reader031/viewer/2022020717/56649d395503460f94a13e8b/html5/thumbnails/42.jpg)
4a.42
<!-- P O R T T Y P E -->
<portType name="MathPortType"
wsdlpp:extends="wsrpw:GetResourceProperty"
wsrp:ResourceProperties="tns:MathResourceProperties">
<operation name="add">
<input message="tns:AddInputMessage"/>
<output message="tns:AddOutputMessage"/>
</operation>
<operation name="subtract">
<input message="tns:SubtractInputMessage"/>
<output message="tns:SubtractOutputMessage"/>
</operation>
<operation name="getValueRP">
<input message="tns:GetValueRPInputMessage"/>
<output message="tns:GetValueRPOutputMessage"/>
</operation>
</portType>
</definitions>
![Page 43: 4a.1 Grid Computing Infrastructure Software ITCS 4146/5146, UNC-Charlotte, B. Wilkinson, 2007 Feb 16, 2007,](https://reader031.vdocument.in/reader031/viewer/2022020717/56649d395503460f94a13e8b/html5/thumbnails/43.jpg)
4a.43
Service Code
The code has two major parts:
• Resource properties• Service code (methods)
which are combined into one file for this assignment.
![Page 44: 4a.1 Grid Computing Infrastructure Software ITCS 4146/5146, UNC-Charlotte, B. Wilkinson, 2007 Feb 16, 2007,](https://reader031.vdocument.in/reader031/viewer/2022020717/56649d395503460f94a13e8b/html5/thumbnails/44.jpg)
4a.44
Service – Resource Propertiespublic class MathService implements Resource, ResourceProperties { private ResourcePropertySet propSet; /* Resource Property set */ private int value; private String lastOp; public MathService() throws RemoteException { /* RP Constructor */ this.propSet = new SimpleResourcePropertySet( MathQNames.RESOURCE_PROPERTIES); /* Create RP set */ try { /* Initialize the RP's */ ResourceProperty valueRP = new ReflectionResourceProperty( MathQNames.RP_VALUE, "Value", this); this.propSet.add(valueRP); setValue(0); ResourceProperty lastOpRP = new ReflectionResourceProperty( MathQNames.RP_LASTOP, "LastOp", this); this.propSet.add(lastOpRP); setLastOp("NONE"); } catch (Exception e) { throw new RuntimeException(e.getMessage()); }}
Resource Property code
Resource properties
![Page 45: 4a.1 Grid Computing Infrastructure Software ITCS 4146/5146, UNC-Charlotte, B. Wilkinson, 2007 Feb 16, 2007,](https://reader031.vdocument.in/reader031/viewer/2022020717/56649d395503460f94a13e8b/html5/thumbnails/45.jpg)
4a.45
Resource and ResourceProperty interfaces
• Resource – a way of tagging a class as being a resource. This interface does not require any methods.
• ResourceProperty – interface representing a single resource property
• ReflectionResourceProperty -- A GT4 class, one of the ways one can represent a resource property in GT 4.
![Page 46: 4a.1 Grid Computing Infrastructure Software ITCS 4146/5146, UNC-Charlotte, B. Wilkinson, 2007 Feb 16, 2007,](https://reader031.vdocument.in/reader031/viewer/2022020717/56649d395503460f94a13e8b/html5/thumbnails/46.jpg)
4a.46
/* Get/Setters for the RPs */
public int getValue() { return value; } public void setValue(int value) { this.value = value; } public String getLastOp() { return lastOp; } public void setLastOp(String lastOp) { this.lastOp = lastOp; }
Service – Resource Properties methods
![Page 47: 4a.1 Grid Computing Infrastructure Software ITCS 4146/5146, UNC-Charlotte, B. Wilkinson, 2007 Feb 16, 2007,](https://reader031.vdocument.in/reader031/viewer/2022020717/56649d395503460f94a13e8b/html5/thumbnails/47.jpg)
4a.47
Service code - methods /* Remotely-accessible operations */ public AddResponse add(int a) throws RemoteException { value += a; lastOp = "ADDITION"; return new AddResponse(); } public SubtractResponse subtract(int a) throws
RemoteException { value -= a; lastOp = "SUBTRACTION"; return new SubtractResponse(); } public int getValueRP(GetValueRP params) throws
RemoteException { return value; } /* Required by interface ResourceProperties */ public ResourcePropertySet getResourcePropertySet() { return this.propSet; }
add method
![Page 48: 4a.1 Grid Computing Infrastructure Software ITCS 4146/5146, UNC-Charlotte, B. Wilkinson, 2007 Feb 16, 2007,](https://reader031.vdocument.in/reader031/viewer/2022020717/56649d395503460f94a13e8b/html5/thumbnails/48.jpg)
4a.48
Deploying a GT 4 service
• GT 4 container uses Apache Axis and the basic steps for deploying a service are similar in concept to that described for Apache Axis.
![Page 49: 4a.1 Grid Computing Infrastructure Software ITCS 4146/5146, UNC-Charlotte, B. Wilkinson, 2007 Feb 16, 2007,](https://reader031.vdocument.in/reader031/viewer/2022020717/56649d395503460f94a13e8b/html5/thumbnails/49.jpg)
4a.49
Deployment files
• server-config.wsdd (Web Service Deployment Descriptor) - contains information about the web service.
jndi-config.xml (JNDI configuration file) - contains information about the resource management.
![Page 50: 4a.1 Grid Computing Infrastructure Software ITCS 4146/5146, UNC-Charlotte, B. Wilkinson, 2007 Feb 16, 2007,](https://reader031.vdocument.in/reader031/viewer/2022020717/56649d395503460f94a13e8b/html5/thumbnails/50.jpg)
4a.50
<?xml version="1.0" encoding="UTF-8"?><deployment name="defaultServerConfig" xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <service name="examples/core/first/MathService" provider="Handler" use="literal" style="document"> <parameter name="className"value="org.globus.examples.
services.core.first.impl.MathService"/> <wsdlFile>share/schema/examples/MathService_instance/
Math_service.wsdl </wsdlFile> <parameter name="allowedMethods" value="*"/> <parameter name="handlerClass“ value="org.globus.axis.providers.RPCProvider"/> <parameter name="scope" value="Application"/> <parameter name="providers" value="GetRPProvider"/> <parameter name="loadOnStartup" value="true"/> </service></deployment>
WSDD file
specifies where service will be located.
![Page 51: 4a.1 Grid Computing Infrastructure Software ITCS 4146/5146, UNC-Charlotte, B. Wilkinson, 2007 Feb 16, 2007,](https://reader031.vdocument.in/reader031/viewer/2022020717/56649d395503460f94a13e8b/html5/thumbnails/51.jpg)
4a.51
JNDI deployment file<?xml version="1.0" encoding="UTF-8"?> <jndiConfig xmlns="http://wsrf.globus.org/jndi/config">
<service name="examples/core/first/MathService">
<resource name="home“
type="org.globus.wsrf.impl.ServiceResourceHome">
<resourceParams>
<parameter>
<name>factory</name>
<value>org.globus.wsrf.jndi.BeanFactory</value>
</parameter>
</resourceParams>
</resource>
</service>
</jndiConfig>
![Page 52: 4a.1 Grid Computing Infrastructure Software ITCS 4146/5146, UNC-Charlotte, B. Wilkinson, 2007 Feb 16, 2007,](https://reader031.vdocument.in/reader031/viewer/2022020717/56649d395503460f94a13e8b/html5/thumbnails/52.jpg)
4a.52
ant(Another Neat Tool)
• A build tool used for building service– forming package of files for deployment– a gar file (grid archive file)
• ant similar to make program but dependencies specified using XML configuration files.
• Windows version of assignment uses Python.
![Page 53: 4a.1 Grid Computing Infrastructure Software ITCS 4146/5146, UNC-Charlotte, B. Wilkinson, 2007 Feb 16, 2007,](https://reader031.vdocument.in/reader031/viewer/2022020717/56649d395503460f94a13e8b/html5/thumbnails/53.jpg)
4a.53
Generating GAR file with Ant
From http://gdp.globus.org/gt4-tutorial/multiplehtml/ch03s04.html
![Page 54: 4a.1 Grid Computing Infrastructure Software ITCS 4146/5146, UNC-Charlotte, B. Wilkinson, 2007 Feb 16, 2007,](https://reader031.vdocument.in/reader031/viewer/2022020717/56649d395503460f94a13e8b/html5/thumbnails/54.jpg)
4a.54
GT 4 build command
globus-build-service.sh service_name
Contains bash and ant files, see globus service build tools (http://gsbt.sourceforge.net)
Python version
globus-build-service.py service_name
]
![Page 55: 4a.1 Grid Computing Infrastructure Software ITCS 4146/5146, UNC-Charlotte, B. Wilkinson, 2007 Feb 16, 2007,](https://reader031.vdocument.in/reader031/viewer/2022020717/56649d395503460f94a13e8b/html5/thumbnails/55.jpg)
4a.55
In assignment 4b (Linux server version), GT4 command (script):
globus-build-service.sh
is embedded in a script:
build.sh
which also includes a script called:
nameChangeScript
to rename student files to make them each unique.
![Page 56: 4a.1 Grid Computing Infrastructure Software ITCS 4146/5146, UNC-Charlotte, B. Wilkinson, 2007 Feb 16, 2007,](https://reader031.vdocument.in/reader031/viewer/2022020717/56649d395503460f94a13e8b/html5/thumbnails/56.jpg)
4a.56
Deploying Service
Deployment done using GT4 command:
globus-deploy-gar
using gar file created by globus-build-service.
![Page 57: 4a.1 Grid Computing Infrastructure Software ITCS 4146/5146, UNC-Charlotte, B. Wilkinson, 2007 Feb 16, 2007,](https://reader031.vdocument.in/reader031/viewer/2022020717/56649d395503460f94a13e8b/html5/thumbnails/57.jpg)
4a.57
Start Container
Command:
globus-start-container -nosec
-nosec specifies “no security”, which simplifies assignment (no need for user certificates)
MathService will be listed as one of the services that are available once the container has started.
![Page 58: 4a.1 Grid Computing Infrastructure Software ITCS 4146/5146, UNC-Charlotte, B. Wilkinson, 2007 Feb 16, 2007,](https://reader031.vdocument.in/reader031/viewer/2022020717/56649d395503460f94a13e8b/html5/thumbnails/58.jpg)
4a.58
GT4 container
Mathservice
![Page 59: 4a.1 Grid Computing Infrastructure Software ITCS 4146/5146, UNC-Charlotte, B. Wilkinson, 2007 Feb 16, 2007,](https://reader031.vdocument.in/reader031/viewer/2022020717/56649d395503460f94a13e8b/html5/thumbnails/59.jpg)
4a.59
public class Client {public static void main(String[] args) {MathServiceAddressingLocator locator = new MathServiceAddressingLocator();
try {String serviceURI = args[0];EndpointReferenceType endpoint = new EndpointReferenceType();
endpoint.setAddress(new Address(serviceURI)); //service endpt ref.MathPortType math; math = locator.getMathPortTypePort(endpoint); // Get PortType math.add(10); // Perform an addition math.add(5); // Perform another addition System.out.println("Current value: " + math.getValueRP(new GetValueRP())); // Access value
math.subtract(5); // Perform a subtraction System.out.println("Current value: " + math.getValueRP(new GetValueRP())); // Access value
} catch (Exception e) {e.printStackTrace();
}}
}
Java client to invoke service
![Page 60: 4a.1 Grid Computing Infrastructure Software ITCS 4146/5146, UNC-Charlotte, B. Wilkinson, 2007 Feb 16, 2007,](https://reader031.vdocument.in/reader031/viewer/2022020717/56649d395503460f94a13e8b/html5/thumbnails/60.jpg)
4a.60
Set CLASSPATH environment variable
To set CLASSPATH (Windows):
%GLOBUS_LOCATION%\etc\globus-devel-env.bat
Then compile.
![Page 61: 4a.1 Grid Computing Infrastructure Software ITCS 4146/5146, UNC-Charlotte, B. Wilkinson, 2007 Feb 16, 2007,](https://reader031.vdocument.in/reader031/viewer/2022020717/56649d395503460f94a13e8b/html5/thumbnails/61.jpg)
4a.61
Execute ClientExecute client:
javac -classpath build\classes\org\globus\examples\services\core\first\impl\:%CLASSPATH% org\globus\examples\clients\MathService_instance\Client.java
You will see the following result (hopefully): Current value: 15 Current value: 10
![Page 62: 4a.1 Grid Computing Infrastructure Software ITCS 4146/5146, UNC-Charlotte, B. Wilkinson, 2007 Feb 16, 2007,](https://reader031.vdocument.in/reader031/viewer/2022020717/56649d395503460f94a13e8b/html5/thumbnails/62.jpg)
4a.62
Undeploy sevice
Deploy service in preparation to modifying it.
Command:
globus-undeploy-gar
with named gar file.
![Page 63: 4a.1 Grid Computing Infrastructure Software ITCS 4146/5146, UNC-Charlotte, B. Wilkinson, 2007 Feb 16, 2007,](https://reader031.vdocument.in/reader031/viewer/2022020717/56649d395503460f94a13e8b/html5/thumbnails/63.jpg)
4a.63
Extend Functionality of Service
Add a multiply method to your Math Service.
Repeat all the steps to test it.
![Page 64: 4a.1 Grid Computing Infrastructure Software ITCS 4146/5146, UNC-Charlotte, B. Wilkinson, 2007 Feb 16, 2007,](https://reader031.vdocument.in/reader031/viewer/2022020717/56649d395503460f94a13e8b/html5/thumbnails/64.jpg)
4a.64
Acknowledgment
This assignment is derived from the book:
“Globus Toolkit 4 Programming Java Services” by Borja Sotomayor and Lisa Childers, Morgan
Kaufmann, 2006
see: http://gdp.globus.org/gt4-tutorial/ for on-line version.
![Page 65: 4a.1 Grid Computing Infrastructure Software ITCS 4146/5146, UNC-Charlotte, B. Wilkinson, 2007 Feb 16, 2007,](https://reader031.vdocument.in/reader031/viewer/2022020717/56649d395503460f94a13e8b/html5/thumbnails/65.jpg)
4a.65
QuizWhat is a stateless web service?
(a) A web service that cannot remember prior events.
(b) A web service without local variables.
(c) A web service which can be located anywhere in the country.
(d) An illegal web service.
![Page 66: 4a.1 Grid Computing Infrastructure Software ITCS 4146/5146, UNC-Charlotte, B. Wilkinson, 2007 Feb 16, 2007,](https://reader031.vdocument.in/reader031/viewer/2022020717/56649d395503460f94a13e8b/html5/thumbnails/66.jpg)
4a.66
What does one see when one issues the command:
globus-start-container –p 8081 –nosec
(a) 10 pages of error messages.
(b) A list of services deployed by all users.
(c) The available ports one can use.
(d) A list of the services that only you have deployed.
![Page 67: 4a.1 Grid Computing Infrastructure Software ITCS 4146/5146, UNC-Charlotte, B. Wilkinson, 2007 Feb 16, 2007,](https://reader031.vdocument.in/reader031/viewer/2022020717/56649d395503460f94a13e8b/html5/thumbnails/67.jpg)
4a.67
Questions