Upload
agamemnon-elena
View
29
Download
3
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
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
• 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
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
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
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
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
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
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);
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
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
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
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
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
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)
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
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
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
Screen Grabs
End