# Presentation: 277986

## Building Portals with the Java CoG Kit 

- Presented by
- Gregor von Laszewski

- Sponsors:
- 	ANL, PACI, DOE

## Introduction to Java CoG Kit

**Globus Research Project**
- Research activities around Grid Computing
**Globus Toolkit**
- A basic toolkit for using Grids
**Java CoG Kit**
- Java CoG Kit is part of the Globus Research Project
- Research: How can we make Grid programming easier
- Result: Java CoG Kit
**Python CoG Kit**
- Result: Python CoG Kit
**12 Demos at SC used**
- CoG Kits

## Some Commodity Technologies we value Today

- Hardware

- Languages

- Web Browsers

- Some Commodity Technologies we value Today

**...**

**...**

**...**

**...**

## Grid Architecture

## Science 

- Disk

- Authentication

- Science
- Portal

- Authentication

- Authentication

- Authentication

- Authentication

- Authentication

- Sandia – Compute Facilities

- Argonne – Compute Facilities

- Argonne – Advanced Photon Source

- Execution
- Service

- Batch
- Queue

- Resource
- Manager

- Disk

- Disk

- Information
- Server

- Batch
- Queue

- Resource
- Manager

- Disk

- Disk

- Information
- Server

- Authentication

- Authentication

- lysosyme

- Application Steering through
- Graphical Components

- Information
- Service

- Data

- Data

- Data

- Data

- Data

- Component
- Repository

- Instrument
- Server

- Web
- Server

- JSP

- Java

- XML

- HTML

- Session
- Management

- Administration

- Collaboration

- Workflow
- Management

- ...

- Data
- Acquisition
- Service

## The “new” Service Portal Architecture

**Application User Portal**

**Administration**

**Portal**

**Infrastructure**

**Monitoring**

**Administration**

**Service**

**Compute **

**Services**

**Data**

**Services**

**Network**

**Services**

**Installation**

**Job **

**Submission**

**Authentication**

**Discovery**

**Reservation**

**Job **

**Management**

**Submission**

**Scheduling**

**Grid **

**Services**

- . . .

- . . .

**CoG Toolkit**

**Mapping &**

**Interfaces**

**to existing **

**and new **

**Grid **

**Services**

**Advanced  **

**Components &**

**Services**

**Application**

**Portal**

**Design**

**Portal**

**Design**

**Environment**

**Caching**

**File Transfer**

**Authorization**

**QoS**

**Repository**

**Information**

**Services**

**Data **

**Management**

**Problem**

**Session **

**Management**

**Collaborative**

**Session**

**Management**

## Outline

- What is Java CoG Kit?
- What can we offer?
- Where can we go?
- How can we go there?

## What Is Java CoG Kit today?

- a convenient access to basic Globus functionality from Java
- a pure Java implementation of Globus protocols (GSI, GRAM, ...)
- Allows to leverage the good things of Java within Grid computing
- Has been gradually improved over a number of years.
- We focused on the backend!

## What is Java CoG Kit in future?

- Development of reusable Beans for IDE’s
- Rapid prototyping
- Integration with commercial software
- Development of advanced Grid services
- sophisticated components such as reliable job execution and Web Services workflow management and smart information services
- Influences:
- JDK 1.4, OGSA (many things are prototyped in Java ;-) ), SCIDAC & PACI Grants, XCAT
- Over 30 other projects use Java CoG including
- Cern and UK DataGrid

## Prototypes

**1**

**2**

**3**

**4**

**6**

**9**

**8**

**7**

**5**

## Gram Job Submission

*Creating a job*
**GramJob job = new  GramJob ****	****	****	****	****("&(executable=ClimateModel)****        (arguments=-years=15)");**
*Listening to state changes via Listeners*
**job.addListener( new GramJobListener() {****	****  public void statusChanged(GramJob job) { ****	****	****   System.out.println(****           “Job [” + job.getIDAsString() + “]:" + ****	****	****"    Status : "+ job.getStatusAsString());****	****   }****	****  });**

## Third Party File Transfer

***Enable third party copy between from and to***
**       ****UrlCopy c = new UrlCopy();**
**       ****c.setSourceUrl(from);**
**       ****c.setDestinationUrl(to);**
**       ****c.setUseThirdPartyCopy(true); **
***register a transfer listener***
**      ****c.setListener(new UrlCopyListener() {**
**	****    ****public void transfer(int total, int current) {**
**	****                  ****System.out.println(total + " " + current);  }**
**	****    ****public void transferError(Exception e) {**
**	****        ****System.out.println("transfer failed: " + e.getMessage());**
**	****    ****}**
**	****  ****});**
**       ****c.copy(); *****// this starts the copy***

## References

- _[http://www.cogkits.org](http://www.cogkits.org/)_
- _[http://www.globus.org/cog](http://www.globus.org/cog)_

- mod_GSI (support of Access Grid)
- PACI CoG JavaBeans
- (reusable in JSP and SWING)
- PACI CoG Desktop
- PACI Reliable Execution Service
- Continue Research: InofGram, executing untrusted code in trusted environments
- NCSA, SDSC, ANL, “PACI Center CoG”
- NCSA, SDSC,ANL, “PACI Smashing App CoG”

- Work Ideas