# Presentation: 518366

## Simple Reusable GlobusJ  Components

**Gregor von Laszewski **
**gregor@mcs.anl.gov**
**http://www.mcs.anl.gov/~gregor**
**Workshop: Desktop Access to Compute Resources, October 98**
**Argonne National Laboratory**

## GlobusJ

- Pronunciation: Globus power J                   or Globus power Java
- Globus#: Globus power grid  :-)

- Outline

- Goals
- Shell tools
- Services
- GUI’s

## Goals 

- Simplify development of metacomputing applications
- How?
- Use Globus as infrastructure
- Extend Globus to provide application support
- Develop extendable and reusable components
- Develop a standard class libraries
- Build high level tools form basic Globus services
- Enable rapid prototyping
- Integrate with other technologies
-  Collaborate with others in the community

## Four basic interface tools

## Shell Tools

- Allow simple access to Globus Services
- Discovery:
- list resources, query for resources, host2contact
- Execution:
- Copy, run (incl. asynchronously), kill
- Monitoring:
- list, status
- Performance Monitoring
- list by performance characteristics (bandwidth/latency/prediction)

**Note: Some tools are developed as we speak**

## Services

- Client/Server model
- multiple clients can connect to server
- simple protocol, often string based
- scalability via multiple servers
- Examples:
- LDAP server
- HBM datacollector (single server short msg.)
- High throughput application brokers

## Services

- Discovery:
- MDS/LDAP
- Execution:
- High-throughput brokers
- Monitoring:
- Heartbeat monitor (1)
- Performance Monitoring
- Network performance monitor

**Server**

**Client**

**Client**

**Client**

## Graphical User Interfaces

- Hiding a lot of the details
- Provide Uniform interface
- Provide templates for frequent tasks
- Simplify access to complex environment
- Drawback: possible loss of  flexibility
- Solution: Strict division between               GUI and access functions

## Resource Specification Language

- Common notation for exchange of information between components
- Syntax similar to MDS/LDAP filters
- RSL provides two types of information:
- Resource requirements
- Machine type, number of nodes, memory, etc.
- Job configuration
- Directory, executable, args, environment
- &(executable=$(HOME)/fft)(maxtime=50)(arguments=space.dat)

## Example Globus Job Submission

- Shell:
- contact=globus-host2contact yukon.mcs.anl.gov fork
- rsl=&(executable=/bin/ls)
- globusrun -r $(contact) $(rsl)
- Service:
- globusrun -service highthroughput-broker(planned)

## Globus Submit Form

## Globus Submit Form

## Information Browser

- Over 1000 hits on the WWW page.
- Positive response from IBM, Netscape, Novel, ...

## Information Table Browser

## Status Monitor

**Customizable**
**Applet**
**Heartbeat**
**Network**

## History Data Analysis

## Gecco (Graph Enabled Console Component)

## Gecco (Graph Enabled Console Component)

## Combining Tools

## Application Interface

- public void main() {    Globus g   = new Globus();    g.init();    JobSet     jobset           = new JobSet     (``spec.config'');    MachineSet machines = new MachineSet (``spec.config'');    HBM        hbm            = new HBM(machines);    JobTable   table           = new JobTable (jobset);     Gram broker                = new Gram(jobset);     g.register(hbm);    g.register(table);	    g.register(broker);
-     broker.run();
-      g.shutdown();}

## Classes

- org.globus.mds
- MDS
- connect
- search
- disconnect
- org.globus.system
- Globus
- run
- copy

## Gecco: Asynchronous Jobs

## GRS - Monitoring

## Information Service

## Expandability

## Attributes

## Configuration

- BEGIN JOBSET
- BEGIN Job  name:        jupiter.cacr.caltech.edu  label:       jupiter  user:        laszewsk  globusUser:  gregor  globus:      /nfs/v6/karlcz/Globus/irix_lite_d  variable: DIR /home/sharon/SF_Express/common/src/ModSAF  variable: local /usr/local  count:     1   directory: $(DIR)   executable: $(local)/lsf/bin/bsub  stdout: $(DIR)/output  stderr: $(DIR)/error  label: neptune  arguments: -q test240 -n 240 /usr/bin/mpa            $(DIR)/hpux/safsim/safsim -np 240            -choose_database 2            -nosafparse -terrain saki_11796-0101	    -configure $(DIR)/.configure_jupitera             -tdbpath /node4/tmp/sharon/SF_Express/common/terrain             -data /node4/tmp/sharon/SF_Express/common/data   resourceManagerContact: neptune.cacr.caltech.edu:                          755:                          jupiter.cacr.caltech.edu-fork@globus.orgEND JobEND JobSet

- BEGIN MACHINESET  name:  machineset a  label: machineset 	  machine: neptune  mode:    use  machine: jupiter  mode:    use  machine: quad  mode:    do not useEND MACHINESET

## Conclusion

** ****Useful tools for Globus**
** ****Java is helpful (besides the known problems) **
** ****Uses standard Globus components**
** ****Java Beans (planned)**
** ****Available after Supercomputing **