Presentation is loading. Please wait.

Presentation is loading. Please wait.

Includes slides borrowed freely from The Globus team Building Grid Services and The Globus Toolkit ® CISE 6930.5: Globus Tutorial Anda Iamnitchi.

Similar presentations


Presentation on theme: "Includes slides borrowed freely from The Globus team Building Grid Services and The Globus Toolkit ® CISE 6930.5: Globus Tutorial Anda Iamnitchi."— Presentation transcript:

1 Includes slides borrowed freely from The Globus team Building Grid Services and The Globus Toolkit ® CISE 6930.5: Globus Tutorial Anda Iamnitchi

2 2 Outline 1. What is Globus u Toolkit, not turnkey solution. u That is, toolkit, not turnkey solution. u Tools (components) 2. Grid services and the relationship with Globus 3. How to build Grid services using Globus

3 3 Grids for Physics: LHC Computing Grid

4 4 How It Started While helping to build/integrate a diverse range of distributed applications, the same problems kept showing up over and over again. u Too hard to keep track of authentication data (ID/password) across institutions u Too hard to monitor system and application status across institutions u Too many ways to submit jobs u Too many ways to store & access files and data u Too many ways to keep track of data u Too easy to leave “dangling” resources lying around (robustness)

5 grid architecture in a nutshell

6 6 Forget Homogeneity! l Trying to force homogeneity on users is futile. Everyone has their own preferences, sometimes even dogma. l The Internet provides the model…

7 7 What Does the Globus Toolkit Cover? Goal Today

8 8 Theory -> Practice

9 building a grid (in practice)

10 10 Methodology l Building a Grid system or application is currently an exercise in software integration. u Define user requirements u Derive system requirements or features u Survey existing components u Identify useful components u Develop components to fit into the gaps u Integrate the system u Deploy and test the system u Maintain the system during its operation l This should be done iteratively, with many loops and eddys in the flow.

11 11 How it Really Happens Web Browser Compute Server Data Catalog Data Viewer Tool Certificate authority Chat Tool Credential Repository Web Portal Compute Server Resources implement standard access & management interfaces Collective services aggregate &/or virtualize resources Users work with client applications Application services organize VOs & enable access to other services Database service Database service Database service Simulation Tool Camera Telepresence Monitor Registration Service

12 12 How it Really Happens (without Globus) Web Browser Compute Server Data Catalog Data Viewer Tool Certificate authority Chat Tool Credential Repository Web Portal Compute Server Resources implement standard access & management interfaces Collective services aggregate &/or virtualize resources Users work with client applications Application services organize VOs & enable access to other services Database service Database service Database service Simulation Tool Camera Telepresence Monitor Registration Service A B C D E Application Developer 10 Off the Shelf 12 Globus Toolkit 0 Grid Community 0

13 13 How it Really Happens (with Globus) Web Browser Compute Server Globus MCS/RLS Data Viewer Tool Certificate Authority CHEF Chat Teamlet MyProxy CHEF Compute Server Resources implement standard access & management interfaces Collective services aggregate &/or virtualize resources Users work with client applications Application services organize VOs & enable access to other services Database service Database service Database service Simulation Tool Camera Telepresence Monitor Globus Index Service Globus GRAM Globus DAI Application Developer 2 Off the Shelf 9 Globus Toolkit 4 Grid Community 4

14 14 What Is the Globus Toolkit? l The Globus Toolkit is a collection of solutions to problems that frequently come up when trying to build collaborative distributed applications. l Not turnkey solutions, but building blocks and tools for application developers and system integrators. u Some components (e.g., file transfer) go farther than others (e.g., remote job submission) toward end-user relevance. l To date (v1.0 - v4.0), the Toolkit has focused on simplifying heterogeneity for application developers. l The goal has been to capitalize on and encourage use of existing standards (IETF, W3C, OASIS, GGF). u The Toolkit also includes reference implementations of new/proposed standards in these organizations.

15 15 How To Use the Globus Toolkit l By itself, the Toolkit has surprisingly limited end user value. u There’s very little user interface material there. u You can’t just give it to end users (scientists, engineers, marketing specialists) and tell them to do something useful! l The Globus Toolkit is useful to application developers and system integrators. u You’ll need to have a specific application or system in mind. u You’ll need to have the right expertise. u You’ll need to set up prerequisite hardware/software. u You’ll need to have a plan.

16 16 Data Management Security Common Runtime Execution Management Information Services Web Services Components Non-WS Components Pre-WS Authentication Authorization GridFTP Grid Resource Allocation Mgmt (Pre-WS GRAM) Monitoring & Discovery System (MDS2) C Common Libraries GT2GT2 WS Authentication Authorization Reliable File Transfer OGSA-DAI [Tech Preview] Grid Resource Allocation Mgmt (WS GRAM) Monitoring & Discovery System (MDS4) Java WS Core Community Authorization Service GT3GT3 Replica Location Service XIO GT3GT3 Credential Management GT4GT4 Python WS Core [contribution] C WS Core Community Scheduler Framework [contribution] Delegation Service GT4GT4 Globus Toolkit Components

17 17 Java Services in Apache Axis Plus GT Libraries and Handlers Your Java Service Your Python Service Your Java Service RFT GRAM Delegation Index Trigger Archiver pyGlobus WS Core Your C Service C WS Core RLSPre-WS MDS CAS Pre-WS GRAM SimpleCAMyProxy OGSA-DAI GTCP GridFTP C Services using GT Libraries and Handlers SERVER CLIENT Interoperable WS-I-compliant SOAP messaging Your Java Client Your C Client Your Python Client Your Java Client Your C Client Your Python Client Your Java Client Your C Client Your Python Client Your Java Client Your C Client Your Python Client X.509 credentials = common authentication Python hosting, GT Libraries GT4 Components

18 18 Outline 1. What is Globus u Toolkit, not turnkey solution. u That is, toolkit, not turnkey solution. u Tools (components) 2. Grid services and the relationship with Globus 3. How to build Grid services using Globus

19 19 GT4, OGSA, WSRF & Co. Web services architecture components

20 20 Why Web Services? l Standards widely accepted l Platform and language-independent u Client may be in C++ running under Windows, server may be in Java running under Linux u Uses XML (standard) l HTTP-based: u HTTP traffic allowed by most firewalls and proxies l Disadvantages: u Significant overhead (tradeoff: portability) u Lack of versatility (e.g., compared to Corba) l Life cycle management, notifications, etc (implemented by WSRF)

21 21 GT4, OGSA, WSRF & Co.

22 22

23 23 A typical Web Service invocation

24 24 A typical Web Service invocation (more detailed)

25 25 WSRF: It's all about state WS-Resource = Web service + Resource Web services do not have stateWeb Services Resource Framework (add state to web services)

26 26 Outline 1. What is Globus u Toolkit, not turnkey solution. u That is, toolkit, not turnkey solution. u Tools (components) 2. Grid services and the relationship with Globus 3. How to build Grid services using Globus

27 27 Build your Grid service in 5 steps 1. Define the service's interface. u This is done with WSDL 2. Implement the service. u This is done with Java. 3. Define the deployment parameters. u This is done with WSDD and JNDI 4. Compile everything and generate a GAR file. u This is done with Ant 5. Deploy service. u This is done with a GT4 tool

28 28 Step 1: Define the service's interface In java: public interface Math { public void add(int a); public void subtract(int a); public int getValueRP(); }

29 29 The same interface specification in WSDL… <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">

30 30

31 31 Step 2: Implement the service package org.globus.examples.services.core.first.impl; import java.rmi.RemoteException; import org.globus.wsrf.Resource; import org.globus.wsrf.ResourceProperties; import org.globus.wsrf.ResourceProperty; import org.globus.wsrf.ResourcePropertySet; import org.globus.wsrf.impl.ReflectionResourceProperty; import org.globus.wsrf.impl.SimpleResourcePropertySet; import org.globus.examples.stubs.MathService_instance.AddResponse; import org.globus.examples.stubs.MathService_instance.SubtractResponse; import org.globus.examples.stubs.MathService_instance.GetValueRP; public class MathService implements Resource, ResourceProperties { /* Resource Property set */ private ResourcePropertySet propSet; /* Resource properties */ private int value; private String lastOp; /* Constructor. Initializes RPs */ public MathService() throws RemoteException { /* Create RP set */ this.propSet = new SimpleResourcePropertySet( MathQNames.RESOURCE_PROPERTIES); /* Initialize the RP's */ try { 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()); }

32 32 /* 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; } /* 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; } }

33 33 Step 3: Define the deployment parameters The WSDD deployment descriptor: the file that tells the Web Services container how it should publish the web service (for example, telling it what the the service's URI will be). The deployment descriptor is written in WSDD format (Web Service Deployment Descriptor). The JNDI deployment file:

34 34 Step 4: Compile everything and generate a GAR file Creating a GAR (Grid Archive) file involves the following: Processing the WSDL file to add missing pieces (such as bindings) Creating the stub classes from the WSDL Compiling the stubs classes Compiling the service implementation Organize all the files into a very specific directory structure In fact, this means executing one script provided by the Globus toolkit:./globus-build-service.sh -d -s

35 35 Step 5: Deploy service l The GAR file, as mentioned in the previous page, contains all the files and information the web server needs to deploy the web service. Deployment is done with a GT4 tool that, using Ant, unpacks the GAR file and copies the files within (WSDL, compiled stubs, compiled implementation, WSDD) into key locations in the GT4 directory tree. l This deployment command must be run with a user that has write permission in $GLOBUS_LOCATION. globus-deploy-gar


Download ppt "Includes slides borrowed freely from The Globus team Building Grid Services and The Globus Toolkit ® CISE 6930.5: Globus Tutorial Anda Iamnitchi."

Similar presentations


Ads by Google