20
A Java Based Prototype Grid User Interface Janice Drohan Project Supervisor: Prof. Peter Clarke

A Java Based Prototype Grid User Interface

Embed Size (px)

DESCRIPTION

A Java Based Prototype Grid User Interface. Janice Drohan Project Supervisor: Prof. Peter Clarke. Overview. Introduction Project Specification Grid Information Service (LDAP) Search Code Testing Globus Resource Allocation Manager (GRAM) Job Submission Code Testing Summary. - PowerPoint PPT Presentation

Citation preview

Page 1: A Java Based Prototype Grid User Interface

A Java Based Prototype Grid User Interface

Janice Drohan

Project Supervisor: Prof. Peter Clarke

Page 2: A Java Based Prototype Grid User Interface

Overview• Introduction• Project Specification• Grid Information Service (LDAP)

– Search Code

– Testing

• Globus Resource Allocation Manager (GRAM)– Job Submission Code

– Testing

• Summary

Page 3: A Java Based Prototype Grid User Interface

• A computational grid is a set of geographically distributed IT resources that can be mobilized by a single application using software services that tie them together

• Number of functional Grid Test-beds running• Test-beds based on Globus Project• Globus now developing ‘Commodity Grid Kits’ to

aid in Grid Application Development

Grid Computing

Page 4: A Java Based Prototype Grid User Interface

JavaWell Suited to Grid Application Development:• Has many features that are beneficial to large-scale

engineering projects – Packages

– Object-orientated approach

– Single inheritance

– Garbage collection

• Provides wide variety of additional class libraries– JAAS, JINI, JNDI

• Portable

Page 5: A Java Based Prototype Grid User Interface

European DataGrid (EDG)

• Aim is to provide a computational and data-intensive grid of resources for the analysis of data coming from the next generation of scientific experiments

• Test-bed 1was released in October last year

• UCL has an EDG grid cluster of three machines

Page 6: A Java Based Prototype Grid User Interface

Project Specification

• Build a Graphical User Interface or ‘Portal’ to access Grid Services provided by the EDG Testbed

• Provide means to access the Grid Information Service and submit jobs to a CE

• Should be independent of an EDG/Globus install

Page 7: A Java Based Prototype Grid User Interface

Grid Information Service

• Based on Lightweight Directory Access Protocol (LDAP)– Designed for fast-responses to high volume look-ups or searches

– Directories use client/server model of communication

– Runs over TCP/IP

• GIIS publishes site data on two separate ports:– (2135) Globus MDS

– (2171) Using fTree - this is a backend module designed to be a flexible memory-based

directory-like tree structure

Page 8: A Java Based Prototype Grid User Interface

LDAP

• Entry = Basic unit of information• Entries are collection of attributes• Each attribute has a type and one or

more values• Entries stored in tree-like structure

- Directory Information Tree (DIT)

• Position of entry in tree based on Distinguished Name (DN)

• Suffix = Highest Entry stored by server

• Servers can support multiple suffixes• Referrals act like pointers

O=Grid

Mds-vo-name = ucl, o=gridMds-vo-name = local, o=grid

In = siteinfo, Mds-vo-name = local, o=grid

Attribute

Entry

Attribute

Attribute

ValueValue

AttributeType

Page 9: A Java Based Prototype Grid User Interface

LdapSearch

• Written using Java Swing and JNDI classes

Main Class Search Class DisplayResultTree Class

JTree

Naming Enumeration

Context Connection Scope time

filter

• Actual Search code quite simple: Hashtable env = new Hashtable( 5, 0.75f);

env.put (Context.INITIAL_CONTEXT_FACTORY,

"com.sun.jndi.ldap.LdapCtxFactory");

env.put (Context.PROVIDER_URL, connection);

env.put (Context.REFERRAL, "follow");

DirContext ctx = new InitialDirContext(env);

NamingEnumeration results = ctx.search(context, filter, constraints);

Page 10: A Java Based Prototype Grid User Interface

Brief explanation of code cont.

Search Result of form: • DisplayResultTree class loops through the attributes and values

• Creates object of form NodeData (String, Vector)

• Stores NodeData objects in JTree

• TreeWillExpandListener registered on JTree

– Before a node is expanded, this listener performs searches on the node’s children

• TreeSelectionListener registered on JTree

– Retrieves the Vector of Data stored in the NodeData object and displays it in the JTable

Search Result

Search Result

Search Result

Search Result

Search Result

Search Result

Search Result

Search Result

Attribute

Attribute

Name

Object

Basic Attribute

ID

Value

Naming Enumeration

Page 11: A Java Based Prototype Grid User Interface

Testing

• Tested using UCL GIIS and CERN GIIS• Works well when using EDG fTree Schema• Returns extra entries when using Globus MDS

(port 2135) that look to be an LDAP URL– LDAP server can have a default reference that points to

superior server for names that cannot be resolved

• These also returned by another LDAP program written in Java

Page 12: A Java Based Prototype Grid User Interface

UCL GIIS Resulto=grid

Rttpacketsize =100

Mds-vo-name=ucl, o=grid

In =siteinfo In=netmon SeId=pc18.hep.ucl.ac.uk Hn=pc23.hep.ucl.ac.uk

SeProtocol=gridftp SeProtocol=rfio SeProtocl=file In=statusRou=localhost

Tool=pingER

Rttpacketsize =1000

Losspacketsize =100

Losspacketsize =1000

CeId=pc23.hep.ucl.ac.uk:2119 jobmanager-pbs-short

CeId=pc23.hep.ucl.ac.uk:2119 jobmanager-pbs-long

Page 13: A Java Based Prototype Grid User Interface

GRAMGlobus Resource Allocation Manager

• Provides an API for submitting, monitoring, and terminating remote jobs

• Basic Operation– GRAM Gatekeeper runs on CE

– Gatekeeper handles requests and creates job manager for the job

– Job Manager starts and monitors the remote program

– Job Manager sends status updates to the user

– Job Manager terminates when application terminates

Page 14: A Java Based Prototype Grid User Interface

Java CoG KitJava Commodity Grid Kit

• Provides Java APIs, components and beans which supply Grid client and selected Grid server functionality

• Currently provides a full implementation of the GRAM client API

• Also provides implementations of – GSI, MDS, GASS, GSIFTP, among others

• Provides various command line tools eg grid-proxy-init

Page 15: A Java Based Prototype Grid User Interface

Job Submission

• GRAM uses GSI• Provides methods to create Proxy or load in the

one created by grid-proxy-init• Job Specified by Resource Specification Language

eg & ( executable = /pc23homes/bjw/test.exe)

(arguments = “10”)

(directory = /pc23homes/jgd/)

(stdout = output.txt)

(sterr = err.txt)

(count = 1)

Page 16: A Java Based Prototype Grid User Interface

Brief Explanation of Code cont.

• The lines of code dealing with job submission are as follows:

GramJob newJob = new GramJob( myProxy, thisRSL);

newJob.addListener(gramListener);

try {

myGram.request(hostName_field.getText(), newJob);

}catch errors

• Listener – Provides method to append the new job status to a text area

– Checks if the status is DONE, UNSUBMITTED, or FAILED. Removes the job from the active list if any of these are returned

Page 17: A Java Based Prototype Grid User Interface

Testing• Limited to UCL CE

– Need to be included in the map file to use resource

• Started with simple linux command (/bin/ls)• Ben West wrote simple C++ program

– Takes an argument of the number of loops to perform

– Writes to the standard out and standard error stream

• Unable to gather data about completed jobs– Specific job manager information only stored if there is

a problem with the job

Page 18: A Java Based Prototype Grid User Interface

Summary

• LDAP Search program returns same results as tool currently being used

• Able to submit jobs remotely to UCL CE• Program can be used independently of Globus install,

however it needs the CoGKit libraries to be present• Plenty of ways to extend the program eg GSIFTP etc

by using more of the Java Globus API

Page 19: A Java Based Prototype Grid User Interface

Screen Grabs

Page 20: A Java Based Prototype Grid User Interface

End