1 / 20

A Java Based Prototype Grid User Interface

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.

Télécharger la présentation

A Java Based Prototype Grid User Interface

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Overview • Introduction • Project Specification • Grid Information Service (LDAP) • Search Code • Testing • Globus Resource Allocation Manager (GRAM) • Job Submission Code • Testing • Summary

  3. Grid Computing • 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

  4. Java Well 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

  5. 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

  6. 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

  7. 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

  8. O=Grid Entry Attribute Mds-vo-name = ucl, o=grid Mds-vo-name = local, o=grid Attribute Attribute Attribute In = siteinfo, Mds-vo-name = local, o=grid Type Value Value 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

  9. Context Connection Scope time filter Naming Enumeration Main Class DisplayResultTree Class Search Class JTree LdapSearch • Written using Java Swing and JNDI classes • 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);

  10. 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 Naming Enumeration Search Result Search Result Search Result Name Object Search Result Attribute Search Result Attribute Search Result Search Result Search Result ID Value Basic Attribute Brief explanation of code cont.

  11. 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

  12. o=grid Mds-vo-name=ucl, o=grid In =siteinfo In=netmon SeId=pc18.hep.ucl.ac.uk Hn=pc23.hep.ucl.ac.uk CeId=pc23.hep.ucl.ac.uk:2119 jobmanager-pbs-long Rou=localhost SeProtocol=gridftp SeProtocol=rfio SeProtocl=file In=status CeId=pc23.hep.ucl.ac.uk:2119 jobmanager-pbs-short Tool=pingER Rttpacketsize =100 Rttpacketsize =1000 Losspacketsize =100 Losspacketsize =1000 UCL GIIS Result

  13. 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

  14. 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

  15. 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)

  16. 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

  17. 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

  18. 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

  19. Screen Grabs

  20. End

More Related