Recent Posts

RSS Feeds

Globus Kit - Grid Computing on the Cheap


Cool talk on the Globus OS tools for doing grid computing. Very cool stuff.

my notes

Advanced talk on Globus tool kit 3.

 

(http://www.softwaresummit.com/2003/speakers/brown.htm)

 

GT3 Notification

1)    notification source fires events

2)    notifiction sink receives

3)    associate with some dummy service data

4)    add “ogsi:NotificationSorurce/Sink” to GWSDL

5)    sink calls addListerns on sources Service DataSource calls notifyChange to fire notifcation

6)    sink implements deliverNotification to catch

There is no tool support for the java files to declare what the GWSDL tools should do to get source and sink. However with JSR 175 you could imagine a way that this declaration could end up in java file.

 

The idea behind this is to do coarse grained notification.

 

The Service Data:

1)    structured data associated with a grid service – zero or more Service Data Elements (SDE) per instance

2)    SDEs are described by an XML grammar – java bean is generated for each SDE type (defined in an XML schema? He said .xsd file)

3)    Client calls findServiceData(“SDE1”) – careful of misspelling

4)    Helper methods extract populated Bean instance

5)    Use conjunction with notification – add payload to event.

When the interesting ‘data thing’ gets pushed along with the event. The client gets the data with the event. The other side is a pull notification where the client gets dummy data and then has to call back to the poster to get the data.

 

The SDE’s are associated with the service its self and the instances of the services

 

SDEs in every grid service

1)    GridServiceHandle

2)    FactoryLocator

3)    TerminationTime

4)    ServiceDataNames

5)    Interfaces – names of all interfaces that a service implements

 

Quick of write a grid service

1)    define all aspects of the service interface –java or gwsdl

2)    generate grid support code

3)    four mor steps

 

Grid project – example

1)    Distributed SBG Rendering

2)    RenderSourceService

a.     Farms out the svg file and a rendering area to each worker

3)    RenderWorkerService

a.     Builds a jpeg from the specified area of the svg file

4)    GUI Java Application

a.     Creates RenderSourceService via factory

b.     Triggers worker service to get work from source service

c.     Watches for status notification and finished jpegs

d.     Displays all status and tiles the sub-mages as completed

 

If I want to make my machine available I have to download Globus which takes 30 minutes or more. And there is a bug that he could not make work so he made it all local on his machine (wouldn’t it be cool if we could do that during the demo?)

 

GT3 Features

1)    factories

2)    notification

3)    service data

4)    standalone clinet

5)    could it do more, sure! This is all we need for the demo.

 

Next was code. Cool Stuff.

 

Eclipse integration is coming but not there yet.

Services are defined by interfaces, duh…

Used batik from apache to do the actual rendering. Batik gets the URL and can render from that.

 

The RenderWorker takes a renderSourceHandle which referres to the RenderSource via the handle (i.e. this is the uri to the RenderSource service) to get at its work.

 

Must have a ‘schema’ directory conisident with the code directory (foo.bar.objects, foo.bar.schema).

 

The xsd describes the methods and their arguments and their return types.

 

anyType represents ‘Object’ if you will. It’s the generic type. Used to represent the returned image from the worker service.

 

Basic steps, get a factory, use the factory to create the manager service, use the location stuff to find the created service, set the initial parameters.

 

Start some worker thereads (passing the handle to the manager) that will go back to the manager service and ask about the work to do.

 

The locator is used to find several workers and then tells them to start. They will in turn go back to the manager and ask for some work.

 

When notification happens we get the any data stuff (defined in schema) then we have to do some Corba like narrowing. To get the any type downcasted to the type we want.

 

GUI – creates a render factory instance and 16 renderers (which could be running on our machines). Distributed rendering of an image across 16 threads (which could have been on our machines). Very cool demo, can’t wait to play with the code from the CD.

Permalink     No Comments