Top Banner
/cog The Globus Alliance contains the following members in alphabetical order: The Java CoG Kit Gregor von Laszewski Argonne National Laboratory University of Chicago [email protected] http://www.cogkit.org Updated slides will be available on the CoG Kit web site /cog
36

The Java CoG Kit - Argonne National Laboratory

Dec 18, 2021

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: The Java CoG Kit - Argonne National Laboratory

/cog

The Globus Alliance contains the following members in alphabetical order:

The Java CoG Kit

Gregor von LaszewskiArgonne National Laboratory

University of Chicago

[email protected]

http://www.cogkit.orgUpdated slides will be available on the CoG Kit web site

/cog

Page 2: The Java CoG Kit - Argonne National Laboratory

/cog

Funding sources & Acknowledgement

The Java CoG Kit receives funding from thefollowing sponsors DOE MICS NSF NMI

Previous versions of the CoG Kit also receivedfunding from NCSA Alliance

Please, contact [email protected] in case youlike to work with us more closely.

Acknowledgement: CoG Team, Globus Team, Globus Alliance, many

others as listed on www.cogkit.org

Page 3: The Java CoG Kit - Argonne National Laboratory

/cog

Community

Call on the community to help us withextending and improving the CoG Kit

Page 4: The Java CoG Kit - Argonne National Laboratory

/cog

Outline

What is the CoG Kit? Basic definitions History of the CoG Kit CoG Kit in action Relationship to GT versions

Selected Project Components Design: Abstractions Programming with Abstractions (Task Graphs) Visual components: Portals & Applications

Conclusion

Page 5: The Java CoG Kit - Argonne National Laboratory

/cog

Introduction

Page 6: The Java CoG Kit - Argonne National Laboratory

/cog

Observation

Problem Many application developers desire to program the Grid in

familiar higher level frameworks that allow rapidprototyping.

Solution We propose to reuse a variety of commodity tools,

protocols, approaches, methodologies, while integratingGrid software based on the Globus Toolkit Easier development of advanced Grid services Easier and more rapid application development Easier deployment of Grid services Code reuse and use of component repositories Use of Web services as part of the Grids Widespread use of the Grid Use of commodity technology is not limited to the client!

Page 7: The Java CoG Kit - Argonne National Laboratory

/cog

Abstractions

Hypothesis: With rapidly changing technologies it may

be beneficial to have an abstraction thatcan be assisting in this technical challenge.

Solution: CoG Kit abstractions are defined for

precisely that reason.

Page 8: The Java CoG Kit - Argonne National Laboratory

/cog

Result: CoG Kits

CoG Kits make Grid programming simpleand new technologies are easy to integrate

We focus on a CoG Kit for Java Others are possible Python, …

Availability: Java CoG Kit since 1997

Our designs are based on experiencereaching back to the beginnings ofMeta-computing and Grid-computing

Page 9: The Java CoG Kit - Argonne National Laboratory

/cog

Relationship towards GT

Since GT3 CoG Kit is an essential part of GT

CoG Kit protects from an evolving standard

CoG Kit provides simple programming model

CoG Kit supports portal and GUI developers

CoG Kit is a bridge between application and Gridmiddleware developers.

CoG Kit has known to be working with GT1.0 GT2.4, GT3.0.2, GT3.2, GT3.21, SSH

(under dev.) GT3.9.x, GT4, Condor

(community) Unicore

Page 10: The Java CoG Kit - Argonne National Laboratory

/cog

Relationship to WS-RF Because …

(Quote: Steve Tuecke, at a GGF meeting):“WS-RF is still under development. The OASIS standardsprocess has just begun.”

COG Kit Provides investment protection while standards are

developed. Provides a more sophisticated programming model than

just services Focus on what many high end-users need You can influence the direction of the CoG Kit by

partnering with us Will work with future versions of GT, SSH, Condor

(planed), … We intend to support and integrate with upcoming new

standards

Page 11: The Java CoG Kit - Argonne National Laboratory

/cog

History

Page 12: The Java CoG Kit - Argonne National Laboratory

/cog History (cont.)

CoG Kit was selected by IBM to demonstrate Grid computing in Boards ofDirectors meeting

2001

von Laszewski joins ArgonneNov. 1996

CoG Team: LDAP browser wins Novel developers award1998

CoG Team: The experimental personal gatekeeper of the Java CoG Kit wasbeen able to be installed in less than 30 seconds on a PC including Windows,a similar Globus service installed by an experienced administrator required oneto multiple days.

2000

Term Metacomputer is introduced1992

I-Way1995

Globus Team defines OGSI / Java CoG Kit for GT2.x and GT3.0/OGSI based,includes visual components such as the CoG Kit Desktop, GridFTP interface,GRAM interface

2002

Cog Team: The Java CoG Kit experimental Infogram Service architecture wasdefined combining execution and information Services as a single Grid service.

2001

Term Java CoG Kit is introduced to include jglobus and other components ina single toolkit

1999

Term Grid is introduced1998

Globus version 1 / first release of jglobus based on concepts of protocols and services includes a high throughput fault tolerant workflow prototype

1997

von Laszewski: Graphical Meta-computing environment1994

Page 13: The Java CoG Kit - Argonne National Laboratory

/cog History

CoG Kit receives best research poster award at SC 20042004

CoG team rewrites the workflow component and introduces GridAnt and anew workflow engine called Karajan that contains flow and structuralcontrol (DAGs, conditions, loops). The workflow concept is expandable.Check pointing and minimal features for fault tolerance are available.

Result caching is possible based on method signatures.

2002 and2003

WSRF is defined2003

A class project shows it is possible to define PBS and LSF providers (notdistributed with the CoG Kit)

2004

Major new Java CoG Kit release.

*GT2, GT3, GT4, SSH providers* Workflow* Graphical components* New manual

2005

CoG team introduces the concept of Grid providers making it possible thatthe CoG Kit can in principal submit to GT2, GT3, GT4, or SSH. Communitydemonstrates also UNICORE provider.

2004

Page 14: The Java CoG Kit - Argonne National Laboratory

/cog

J a v aJ a v a

C o GC o G

K i tK i t

O G S A / O G S IO G S A / O G S I

G l o b u s T o o l k itG l o b u s T o o l k it

V e r s i o n 2V e r s i o n 2

F i l e T r a n s f e rF i l e T r a n s f e r

G r i d F T PG r i d F T P & R FT & R FT

Mi

dd

le

wa

re

Mi

dd

le

wa

re

Po

rt

al

wa

re

Po

rt

al

wa

re

Ap

pl

ic

at

io

ns

Ap

pl

ic

at

io

ns

Gr

id

Gr

id

S

er

vi

ce

s

Se

rv

ic

es

J o b S u b m i s s i onJ o b S u b m i s s i on

S e c u r i t yS e c u r i t y

W o r k fl o wW o r k fl o w

T a s k M a n a g e m entT a s k M a n a g e m ent

I n f o r m a t i o n I n f o r m a t i o n

S e r v i c e sS e r v i c e s

G l o b u s T o o l k itG l o b u s T o o l k it

V e r s i o n 3V e r s i o n 3

N P A C IN P A C I

G r i d L a bG r i d L a b

OGCEOGCE

G A D UG A D U

A c c e s s G r i dA c c e s s G r i d

C h i m e r aC h i m e r a

G R I P /G R I P / U n i c o r eU n i c o r e

P e g a s u sP e g a s u s

C l i m a t eC l i m a t e

H E PH E P

C h e m i s t r yC h e m i s t r y

G e n o m eG e n o m e

P a r a m e t e r S t u d i e sP a r a m e t e r S t u d i e s

A s t r o n o m yA s t r o n o m y

P r o d u c t i o nP r o d u c t i o n

F r a m ework sF r a m ework s

J a v aJ a v a

P y t h o nP y t h o n

C h e fC h e f

N a n oN a n o M a t e r i a l s M a t e r i a l s

C o GC o G

L a u n c h p a dL a u n c h p a d

C a c t u sC a c t u s

G r i d S p h e r eG r i d S p h e r e

X C A TX C A T

P A C IP A C I

D O ED O E C E R NC E R N

G A F 4 JG A F 4 J

N i m r o d / GN i m r o d / G

G r i d A n tG r i d A n t

P e r lP e r l

C o GC o G

K i tK i t

OGCEOGCE

Use of CoG Kits

Page 15: The Java CoG Kit - Argonne National Laboratory

/cog

Design

Page 16: The Java CoG Kit - Argonne National Laboratory

/cog

Design

Based on layered model

Flexible

Expandable

Based on Java interfaces

Abstracts protocols

Abstracts services

Provides workflow

Page 17: The Java CoG Kit - Argonne National Laboratory

/cog

CoG Kit is more than jglobusJava CoG Kit v4

Documentation Source Community

Unicore prov iderjglobus

abstractions(core)

Web Page

Manual

Wiki

Static pages

Gsissh/term

Cert managementgridfaces

Task management

Swing

portlets

Certificate Authority

Matlab

CoG Workflow/gridant

CoGtop /GridDesktop

CoGShell / Grid Shell

Essential part of GT3.02GT3.2, GT3.2.1GT3.9.x, GT4.0

Page 18: The Java CoG Kit - Argonne National Laboratory

/cog

CoG Abstraction Layer

CoG CoG CoG CoG CoG

CoG Data and Task Management Layer

CoG Gridfaces Layer

CoG CoG

CoG

GridID

E

GT2GT3OGSIclassic

GT4WS-RF Condor Unicore

Applications

SSHOthersAvakiSETI

Nanomaterials

Bio-Informatics

DisasterManagement Portals

CoG Abstraction Layer

CoG CoG CoG CoG CoG

CoG Data and Task Management Layer

CoG Gridfaces Layer

CoG CoG

CoG

GridID

E

DevelopmentSupport

CoG Abstraction Layers

Page 19: The Java CoG Kit - Argonne National Laboratory

/cog

Selected Project Components

Page 20: The Java CoG Kit - Argonne National Laboratory

/cog

Focus on Reusable APIs & Components

Abstractions Provide a simple programming model

Workflow Workflow abstraction

Portals Supporting APIs, abstractions and implementations for

portals. jglobus1.2

GSI security in Java GRAM protocal & client gridFTP protocol & client Myproxy client

Not just API’s but also their implementation

Page 21: The Java CoG Kit - Argonne National Laboratory

/cogFocus on Abstractions andPatterns

Abstraction above Grid Toolkits Task Model

Jobs, information query, file transfer, authentication,others

Gridfaces model Abstract views of GUIs to the Grid in different

implementations (SWING, JSP, Portlets, …)

Data Types Queues, Sets, Brokers, Schedulers. Based on Task

model

Page 22: The Java CoG Kit - Argonne National Laboratory

/cog

Java CoG Kit abstractions

A programming model based on a task model thatsimplifies elementary Grid patterns such as jobexecution, file transfer, and file operations.

A programming model that includes executionflows in the form of directed acyclic graphs (DAG).

The programming model is decoupeling thedefinition from the implementation, thusproviding independence from current and futureGrid versions.

Only elementary Grid patterns are considered. It makes programming the Grid simple It makes developing Grid portals more easy Focus is selected functionality

Page 23: The Java CoG Kit - Argonne National Laboratory

/cog

Design

ExecutableObject

Task

TaskGraph

Handlers

Events

Service

Page 24: The Java CoG Kit - Argonne National Laboratory

/cogDesign

ExecutableObject

Identity Status

TaskTaskGraph

SecurityContext

ServiceContact

Specification

JobSpecification

FileTransferSpecification

FileOperationSpecification

TaskHandler

*

1

1

1

1

1

1

1

TaskGraphHandler

1

1

1

*

Dependency1

1

* 1

Set Queue1

1

1

1

Service* 1

Page 25: The Java CoG Kit - Argonne National Laboratory

/cog

Programming with Abstractions

Page 26: The Java CoG Kit - Argonne National Laboratory

/cog

A simple Programming Patternpublic class COG implements StatusListener{ public void create() { … } public void submit () { … } public void statusChanged (StatusEvent e) { … } public static void main (String arg[]){

try { COG cog = new COG(); cog.create(); cog.submit(); catch (Exception e) { logger.error(“Something went wrong:”, e); }}

Page 27: The Java CoG Kit - Argonne National Laboratory

/cog

Executing a Simple TaskGraphTaskGraph tg = new TaskGraphImpl();

public void create () { // define tasks ….. /* Add the tasks to the TaskGraph */ tg.add(task1); tg.add(task2); tg.add(task3); tg.add(task4); tg.addDependency(task1, task2); tg.addDependency(task1, task3); tg.addDependency(task2, task4); tg.addDependency(task3, task4);}

public void submit() { TaskGraphHandler handler = new TaskGraphHandlerImpl(); try { handler.submit(tg); } catch (Exception e) { logger.error(``Some Error occured'', e); System.exit(1); }}

Task 1

Task 2

Task 4

Task 3

Page 28: The Java CoG Kit - Argonne National Laboratory

/cog

Create a taskTask task1 = new Task();

JobSpecification spec = new JobSpecificationImpl();spec.setExecutable(“/bin/ls”);spec.addArguments(“-la”);spec.setStdOutput(“output.txt”);

task1.setSpecification(spec);

// bind the task (late binding)

Page 29: The Java CoG Kit - Argonne National Laboratory

/cog

Status Monitoringpublic void statusChanged (StatusEvent event) {

Status status = event.getStatus( );

logger.debug(``Status changed to '' + status.getStatusCode());

if (status.getStatusCode( ) == Status.COMPLETED) { logger.info(``Task Done''); elsif (status.getStatusCode( ) == Status.FAILED) { logger.info(``Task Failed''); System.exit(1); }}

Users can design their ownEvent handeling logic basedon status changes

Page 30: The Java CoG Kit - Argonne National Laboratory

/cog

Using the Handler

try { handler.submit (cog); } catch (InvalidSecurityContextException ise) { logger.error(``Security Exception'', ise); System.exit(1); } catch (TaskSubmissionException tse) { logger.error(``TaskSubmission Exception'', tse); System.exit(1); } catch (IllegalSpecException ispe) { logger.error(``Specification Exception'', ispe); System.exit(1); } catch (InvalidServiceContactException isce){ logger.error(``Service Contact Exception'', isce); System.exit(1); }

DetailedinformationCan be retrievedif exceptions areused

Page 31: The Java CoG Kit - Argonne National Laboratory

/cog

Bind a Task to a ServiceService service = new ServiceImpl(Service.JOB_SUBMISSION);service.setProvider(``GT3_2_1'');

// Set Security Context – e.g. certificates and suchSecurityContext securityContext =

CoreFactory.newSecurityContext(``GT3_2_1'');securityContext.setCredentials(null); // e.g. set it to default in ./globusservice.setSecurityContext(securityContext);

// Set Contact – e.g. where to go toServiceContact serviceContact = new ServiceContactImpl(

“http://127.0.0.1:8080/ogsa/services/base/gram/ MasterForkManagedJobFactoryService”);service.setServiceContact(serviceContact);

task.setService(Service.JOB_SUBMISSION_SERVICE, service);

ServiceContact serviceContact = new ServiceContactImpl( “http://127.0.0.1:8080”);

Page 32: The Java CoG Kit - Argonne National Laboratory

/cog

Bind a Task to a ServiceService service = new ServiceImpl(Service.JOB_SUBMISSION);service.setProvider(``GT3_2_1'');

// Set Security Context – e.g. certificates and suchSecurityContext securityContext =

CoreFactory.newSecurityContext(``GT3_2_1'');securityContext.setCredentials(null); // e.g. set it to default in ./globusservice.setSecurityContext(securityContext);

// Set Contact – e.g. where to go to

service.setServiceContact(serviceContact);

task.setService(Service.JOB_SUBMISSION_SERVICE, service);

Page 33: The Java CoG Kit - Argonne National Laboratory

/cog CoG Kit Desktop

GridShell

JobIcons

MachineIcons

GridLog

NativeIcons

FileTransferGUI

Page 34: The Java CoG Kit - Argonne National Laboratory

/cog Portlets: OGCE.org

Page 35: The Java CoG Kit - Argonne National Laboratory

/cog

Contributing

You can contribute

We have a module concept allowingcomponents to be integrated in thedistribution easily

Page 36: The Java CoG Kit - Argonne National Laboratory

/cog

Conclusion

Programming with CoG abstractions is simple

We envision multiple programming models in CoG

We envision multiple backend services

We can support multiple protocols

We like to engage the community

Contributions: CA management, Unicore provider, gsissh

These contributions are being integrated.