net.eduvax.grant.core
Class Node

java.lang.Object
  extended by net.eduvax.grant.core.Node
Direct Known Subclasses:
LocalNode, RemoteNode

public abstract class Node
extends java.lang.Object

Node core.


Field Summary
private  double fitness
          node fitness
private static java.lang.String grantRCDir
          rc files dir path
private  java.lang.String name
          node name.
private static java.util.Hashtable nodeFactories
          registered node factories.
 
Constructor Summary
protected Node(java.lang.String n)
          Create new node.
 
Method Summary
abstract  Node addNode(java.lang.String nName)
          add a node.
static Node createNode(java.lang.String n)
          Create new node.
abstract  int execReport(ExecReport er)
          manage end of execution notification.
protected  double getFitness()
          gets node fitness
abstract  java.lang.String[] getKnownNodes()
          request for known nodes name list.
 java.lang.String getName()
          get node name.
protected static java.lang.String getRCDir()
          get preferences file dir path
abstract  void handleEvent(int eventType, TaskletEvent event)
          Handle tasklet event.
abstract  float load()
          Estimate instant available host power.
static void registerNodeFactory(java.lang.String protocol, NodeFactory nf)
          Register a factory for a given protocol.
abstract  void removeNode(java.lang.String nName)
          remove a node.
protected  void setFitness(double f)
          change node fitness
abstract  void shutdown()
          shutdown node.
abstract  java.lang.String status()
          status information.
abstract  ExecRequest submitRequest(ExecRequest er)
          Handle exec request.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

name

private java.lang.String name
node name.


fitness

private double fitness
node fitness


nodeFactories

private static java.util.Hashtable nodeFactories
registered node factories.


grantRCDir

private static java.lang.String grantRCDir
rc files dir path

Constructor Detail

Node

protected Node(java.lang.String n)
Create new node.

Parameters:
n - node's name
Method Detail

submitRequest

public abstract ExecRequest submitRequest(ExecRequest er)
Handle exec request.

Parameters:
er - execute request.
Returns:
path to choosen host, null on error.

execReport

public abstract int execReport(ExecReport er)
manage end of execution notification. Updates known nodes description according to excution report

Parameters:
er - tasklet execution report.
Returns:
completion code, 0 is OK.

getName

public java.lang.String getName()
get node name. node name should be host name (or URL of xml rpc server controlling this node...)

Returns:
this node's name.

addNode

public abstract Node addNode(java.lang.String nName)
add a node.

Parameters:
nName - node's name (xmlrpc server url)

removeNode

public abstract void removeNode(java.lang.String nName)
remove a node.

Parameters:
nName - node's name (xmlrpc server url)

handleEvent

public abstract void handleEvent(int eventType,
                                 TaskletEvent event)
Handle tasklet event. Transmit event to attached event dispatcher.

Parameters:
eventType - event type (see TaskletEvent constants)
event - event to dispatch.

status

public abstract java.lang.String status()
status information.

Returns:
xml status information.

shutdown

public abstract void shutdown()
shutdown node.


getKnownNodes

public abstract java.lang.String[] getKnownNodes()
request for known nodes name list.

Returns:
nodes known from this node.

load

public abstract float load()
Estimate instant available host power. higher value means less charge. Should be meaningfull regarding host type/cpu freq, all over the node network. Should be specialized according each runing host since java does not have any host cpu spec getter, native code may be needed. Default is running tasks count.

Returns:
load indicator

createNode

public static Node createNode(java.lang.String n)
Create new node. search for a factory for given protocole. Create new local node if not found (TODO this may not be the best default behavior).

Parameters:
n - node's name (URL)
Returns:
node

registerNodeFactory

public static void registerNodeFactory(java.lang.String protocol,
                                       NodeFactory nf)
Register a factory for a given protocol.

Parameters:
protocol - protocol name
nf - factory to use with this protocol.

getFitness

protected double getFitness()
gets node fitness

Returns:
current fitness value

setFitness

protected void setFitness(double f)
change node fitness

Parameters:
f - new fitness

getRCDir

protected static java.lang.String getRCDir()
get preferences file dir path