GridSim 5.0 beta

gridsim.datagrid.index
Class AbstractRC

Object
  extended by Thread
      extended by Sim_entity
          extended by GridSimCore
              extended by AbstractRC
All Implemented Interfaces:
Cloneable, Runnable
Direct Known Subclasses:
RegionalRC, TopRegionalRC

public abstract class AbstractRC
extends GridSimCore

An abstract class for the functionality of a Replica Catalogue (RC) entity. The RC entity is a core component of every Data Grid system. The function of a RC is to store the information (metadata) about files and to provide mapping between a filename and its physical location(s).
The RC does not have to be a single entity in a Data Grid system. It can also be composed of several distributed components, which, by switching the information among them, provide a transparent service to the users and resources.
Currently, GridSim allows two possible catalogue models:


Common functionalities of a RC is encapsulated in this class, an abstract parent class for both TopRegionalRC and RegionalRC. The TopRegionalRC class acts as a centralized RC or a root RC in a hierarchical model. In constrast, the RegionalRC class represents a local RC and/or a leaf RC in a hierarchical model. Therefore, creating a new RC model can be done by extending this class and implementing the abstract methods.

Since:
GridSim Toolkit 4.0
Author:
Uros Cibej and Anthony Sulistio

Nested Class Summary
 
Nested classes/interfaces inherited from class Thread
Thread.State, Thread.UncaughtExceptionHandler
 
Field Summary
protected  boolean localRC_
          A flag that denotes whether this entity is located inside a resource or not
protected  int resourceID_
          A resource ID that hosts this RC entity (if applicable)
 
Fields inherited from class GridSimCore
input, NETWORK_TYPE, output
 
Fields inherited from class Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
 
Constructor Summary
protected AbstractRC(String name, int resourceID, Sim_port outputPort)
          Creates a new local Replica Catalogue (RC) entity.
protected AbstractRC(String name, Link link)
          Creates a new Replica Catalogue (RC) entity.
 
Method Summary
 void body()
          Handles incoming requests to this entity, DO NOT OVERRIDE this method.
protected abstract  void processEndSimulation()
          Performs last activities before the end of a simulation.
 boolean processEvent(Sim_event ev)
          Processes incoming events one by one
protected abstract  boolean processOtherEvent(Sim_event ev)
          Processes an incoming request that uses a user-defined tag.
abstract  boolean registerOriginalFile(FileAttribute fAttr, int id)
          Register a file which is already stored in a resource before the start of simulation
protected abstract  void registerOtherEntity()
          Registers other information to a GIS entity.
 boolean setRegionalGIS(String name)
          Sets a regional GIS name for this entity to communicate with
 
Methods inherited from class GridSimCore
finalizeGridSimulation, getLink, getPingResult, isNetworked, ping, ping, ping, ping, pingBlockingCall, pingBlockingCall, pingBlockingCall, pingBlockingCall, send, send, send, send, send, send, setBackgroundTraffic, setBackgroundTraffic, terminateIOEntities
 
Methods inherited from class Sim_entity
add_generator, add_param, add_port, clone, get_id, get_name, get_port, get_port, get_stat, run, send_on, set_invisible, set_stat, sim_cancel, sim_completed, sim_current, sim_get_next, sim_get_next, sim_hold_for, sim_hold, sim_pause_for, sim_pause_for, sim_pause_until, sim_pause_until, sim_pause, sim_process_for, sim_process_for, sim_process_until, sim_process_until, sim_process, sim_putback, sim_schedule, sim_schedule, sim_schedule, sim_schedule, sim_schedule, sim_schedule, sim_select, sim_trace, sim_wait_for, sim_wait_for, sim_wait_for, sim_wait, sim_waiting, sim_waiting
 
Methods inherited from class Thread
activeCount, checkAccess, countStackFrames, currentThread, destroy, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, stop, suspend, toString, yield
 
Methods inherited from class Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

localRC_

protected boolean localRC_
A flag that denotes whether this entity is located inside a resource or not


resourceID_

protected int resourceID_
A resource ID that hosts this RC entity (if applicable)

Constructor Detail

AbstractRC

protected AbstractRC(String name,
                     int resourceID,
                     Sim_port outputPort)
              throws Exception
Creates a new local Replica Catalogue (RC) entity. This constructor should be used if you want this RC entity to be inside a resource's domain, hence known as a Local RC. As a consequence, this entity uses the resource ID and I/O port for identification.
The Local RC is responsible for indexing available files on the resource only. It also handles users' queries. However, the Local RC does not serve as a catalogue server to other resources. This should be done by a leaf or regional RC.

Parameters:
name - this entity name
resourceID - resource ID that hosts this RC entity
outputPort - resource's output port
Throws:
Exception - This happens when one of the input parameters is invalid.

AbstractRC

protected AbstractRC(String name,
                     Link link)
              throws Exception
Creates a new Replica Catalogue (RC) entity.

Parameters:
name - this entity name
link - the link that this GridSim entity will use to communicate with other GridSim or Network entities.
Throws:
Exception - This happens when one of the input parameters is invalid.
Method Detail

setRegionalGIS

public boolean setRegionalGIS(String name)
Sets a regional GIS name for this entity to communicate with

Parameters:
name - a regional GIS name
Returns:
true if successful, false otherwise

body

public void body()
Handles incoming requests to this entity, DO NOT OVERRIDE this method. Implement the processOtherEvent(Sim_event) instead.

Overrides:
body in class Sim_entity

processOtherEvent

protected abstract boolean processOtherEvent(Sim_event ev)
Processes an incoming request that uses a user-defined tag. This method is useful for creating a new RC entity.

Parameters:
ev - a Sim_event object (or an incoming event or request)
Returns:
true if successful, false otherwise

registerOtherEntity

protected abstract void registerOtherEntity()
Registers other information to a GIS entity.


processEndSimulation

protected abstract void processEndSimulation()
Performs last activities before the end of a simulation.


registerOriginalFile

public abstract boolean registerOriginalFile(FileAttribute fAttr,
                                             int id)
Register a file which is already stored in a resource before the start of simulation

Parameters:
fAttr - a file attribute object
id - the owner ID of this file
Returns:
true if successful, false otherwise

processEvent

public boolean processEvent(Sim_event ev)
Processes incoming events one by one

Parameters:
ev - a Sim_event object
Returns:
true if successful, false if a tag is unknown

GridSim 5.0 beta

The University of Melbourne, Australia, 2009