org.gridbus.broker.common
Class Broker

java.lang.Object
  extended by org.gridbus.broker.common.BrokerBase
      extended by org.gridbus.broker.common.Broker
All Implemented Interfaces:
ApplicationManager, CredentialManager, ServiceManager

public class Broker
extends BrokerBase

Author:
Krishna

Field Summary
protected  java.util.Map jobMons
           
protected  java.util.Map schedulers
           
protected  java.util.Map serviceMons
           
protected  BrokerStorage store
           
 
Constructor Summary
Broker()
           
Broker(boolean setupDb)
           
Broker(BrokerProperties props)
           
Broker(BrokerProperties props, boolean setupDb)
           
 
Method Summary
 void addCredential(java.lang.String applicationId, UserCredential uc)
           
 void addCredentialMapping(java.lang.String applicationId, java.lang.String credentialID, java.lang.String serviceMappingID)
           
 void addJob(java.lang.String applicationId, WorkUnit workUnit)
           
 void addSCSJob(java.lang.String applicationId, WorkUnit workUnit)
           
 void addService(java.lang.String applicationId, Service s)
          Adds a service to the given application in the broker.
 java.lang.String createApplication(ApplicationContext app)
           
protected  java.lang.Thread findThread(java.lang.String name, java.lang.ThreadGroup group)
          Helper method to find the thread in the given group, by name
 ApplicationContext getApplication(java.lang.String appId)
           
 ApplicationContext getApplication(java.lang.String username, java.lang.String appname)
          Get an application by the username and application name
 UserCredential getCredentialsForService(java.lang.String applicationId, Service s)
           
 Job getJob(java.lang.String applicationId, java.lang.String jobName)
           
 long getJobCount(java.lang.String applicationID, int status, java.lang.String serverName)
           
 java.util.Collection getJobs(java.lang.String applicationId)
           
 java.util.Collection getJobs(java.lang.String applicationID, int status)
          Gets all the jobs with the given status
 java.util.Collection getJobs(java.lang.String applicationID, int pageNumber, int pageSize)
          Gets all the jobs with the given status
 java.util.Collection getJobs(java.lang.String applicationID, int status, java.lang.String serverName)
           
 JobStatistics getJobStatistics(java.lang.String applicationId, java.lang.String serverName)
           
 Qos getQos(java.lang.String applicationID)
           
 org.gridbus.scs.common.SCSJob getSCSJob(java.lang.String applicationId, java.lang.String jobName)
           
 long getSCSJobCount(java.lang.String applicationID, int status, java.lang.String serverName)
           
 java.util.Collection getSCSJobs(java.lang.String applicationId)
           
 java.util.Collection getSCSJobs(java.lang.String applicationID, int status)
           
 Service getService(java.lang.String applicationId, int serviceType, java.lang.String serverName)
           
 java.util.Collection getServices(java.lang.String applicationId, int serviceType)
           
 void removeJob(java.lang.String applicationId, Job job)
          Kills the job and removes it from the database
 void resetJob(java.lang.String applicationId, java.lang.String jobName)
          Resets the job, so that it will be re-scheduled
 void saveObject(java.lang.Object object)
           
 void shutdown(long waitTimeout)
          Note: Pass -1 for waitTimeout to wait forever.
 void startApplication(java.lang.String applicationID)
           
protected  void startJobMonitor(org.gridbus.broker.common.JobMonitor jobmonitor)
          In the jobMonitors thread group, each jobMonitor thread is added by its name.
protected  void startJobMonitorThreads(java.lang.String applicationID)
           
protected  void startScheduler(Scheduler scheduler)
          In the scheduler thread group, each scheduler thread is added by its name.
protected  void startSchedulerThreads(java.lang.String applicationID)
           
protected  void startServiceMonitor(ServiceMonitor servicemonitor)
          In the serviceMonitors thread group, each serviceMonitor thread is added by its name.
protected  void startServiceMonitorThreads(java.lang.String applicationID)
           
protected  void stopAllJobMonitors()
           
protected  void stopAllRunningJobs(java.lang.String applicationId)
           
protected  void stopAllSchedulers()
           
protected  void stopAllServiceMonitors()
           
 void stopApplication(java.lang.String appId)
           
protected  void stopJobMonitorThreads(java.lang.String applicationID)
           
protected  void stopSchedulerThreads(java.lang.String applicationID)
           
protected  void stopServiceMonitorThreads(java.lang.String applicationId)
           
 java.lang.String updateApplication(ApplicationContext app)
           
 void updateJob(java.lang.String applicationID, Job job)
          Updates a given job (i.e saves it to a persistent store)
 void updateQos(java.lang.String applicationId, Qos qos)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

jobMons

protected java.util.Map jobMons

schedulers

protected java.util.Map schedulers

serviceMons

protected java.util.Map serviceMons

store

protected BrokerStorage store
Constructor Detail

Broker

public Broker()
       throws GridBrokerException
Throws:
GridBrokerException

Broker

public Broker(boolean setupDb)
       throws GridBrokerException
Parameters:
setupDb -
Throws:
GridBrokerException

Broker

public Broker(BrokerProperties props)
       throws GridBrokerException
Parameters:
props -
Throws:
GridBrokerException

Broker

public Broker(BrokerProperties props,
              boolean setupDb)
       throws GridBrokerException
Parameters:
props -
setupDb -
Throws:
GridBrokerException
Method Detail

stopSchedulerThreads

protected void stopSchedulerThreads(java.lang.String applicationID)

findThread

protected java.lang.Thread findThread(java.lang.String name,
                                      java.lang.ThreadGroup group)
Helper method to find the thread in the given group, by name

Parameters:
name -
group -
Returns:
Thread if found, or null otherwise

startScheduler

protected void startScheduler(Scheduler scheduler)
In the scheduler thread group, each scheduler thread is added by its name.


startServiceMonitor

protected void startServiceMonitor(ServiceMonitor servicemonitor)
In the serviceMonitors thread group, each serviceMonitor thread is added by its name.


startJobMonitor

protected void startJobMonitor(org.gridbus.broker.common.JobMonitor jobmonitor)
In the jobMonitors thread group, each jobMonitor thread is added by its name.


stopJobMonitorThreads

protected void stopJobMonitorThreads(java.lang.String applicationID)
                              throws java.lang.Exception
Throws:
java.lang.Exception

stopServiceMonitorThreads

protected void stopServiceMonitorThreads(java.lang.String applicationId)

shutdown

public void shutdown(long waitTimeout)
Note: Pass -1 for waitTimeout to wait forever. (till all application threads are finished)

Parameters:
waitTimeout -

stopAllSchedulers

protected void stopAllSchedulers()

stopAllJobMonitors

protected void stopAllJobMonitors()

stopAllServiceMonitors

protected void stopAllServiceMonitors()

updateJob

public void updateJob(java.lang.String applicationID,
                      Job job)
               throws GridBrokerException
Updates a given job (i.e saves it to a persistent store)

Parameters:
job -
Throws:
GridBrokerException

removeJob

public void removeJob(java.lang.String applicationId,
                      Job job)
               throws GridBrokerException
Kills the job and removes it from the database

Parameters:
job -
Throws:
GridBrokerException

addService

public void addService(java.lang.String applicationId,
                       Service s)
                throws GridBrokerException
Adds a service to the given application in the broker.

Parameters:
s -
Throws:
GridBrokerException

createApplication

public java.lang.String createApplication(ApplicationContext app)
                                   throws GridBrokerException
Returns:
applicationId
Throws:
GridBrokerException
See Also:
ApplicationManager.createApplication(org.gridbus.broker.common.ApplicationContext)

addJob

public void addJob(java.lang.String applicationId,
                   WorkUnit workUnit)
            throws GridBrokerException
Throws:
GridBrokerException
See Also:
ApplicationManager.addJob(java.lang.String,WorkUnit)

addSCSJob

public void addSCSJob(java.lang.String applicationId,
                      WorkUnit workUnit)
               throws GridBrokerException
Throws:
GridBrokerException

getCredentialsForService

public UserCredential getCredentialsForService(java.lang.String applicationId,
                                               Service s)
Returns:
credential
See Also:
org.gridbus.broker.common.ApplicationManager#getCredentialsForService(org.gridbus.broker.common.Service)

getJobs

public java.util.Collection getJobs(java.lang.String applicationId)
                             throws GridBrokerException
Returns:
list of jobs
Throws:
GridBrokerException
See Also:
Implements Broker.getJobs(String applicationId). NOTE: Here we are getting only USER type jobs because we are hiding other job types from users.

getSCSJobs

public java.util.Collection getSCSJobs(java.lang.String applicationId)
                                throws GridBrokerException
Throws:
GridBrokerException

getServices

public java.util.Collection getServices(java.lang.String applicationId,
                                        int serviceType)
                                 throws GridBrokerException
Returns:
list of services
Throws:
GridBrokerException
See Also:
ApplicationManager.getServices(java.lang.String,int)

getApplication

public ApplicationContext getApplication(java.lang.String appId)
                                  throws GridBrokerException
Returns:
application
Throws:
GridBrokerException
See Also:
org.gridbus.broker.common.ApplicationManager#getApplication()

getApplication

public ApplicationContext getApplication(java.lang.String username,
                                         java.lang.String appname)
                                  throws GridBrokerException
Description copied from interface: ApplicationManager
Get an application by the username and application name

Returns:
Throws:
GridBrokerException
See Also:
org.gridbus.broker.common.ApplicationManager#getApplication()

addCredentialMapping

public void addCredentialMapping(java.lang.String applicationId,
                                 java.lang.String credentialID,
                                 java.lang.String serviceMappingID)
See Also:
org.gridbus.broker.common.CredentialManager#addCredentialMappings(java.lang.String, java.lang.String)

addCredential

public void addCredential(java.lang.String applicationId,
                          UserCredential uc)
See Also:
org.gridbus.broker.common.CredentialManager#addCredentials(org.gridbus.broker.common.security.UserCredential)

resetJob

public void resetJob(java.lang.String applicationId,
                     java.lang.String jobName)
              throws java.lang.Exception
Resets the job, so that it will be re-scheduled

Throws:
java.lang.Exception
See Also:
ApplicationManager.resetJob(java.lang.String, java.lang.String)

stopAllRunningJobs

protected void stopAllRunningJobs(java.lang.String applicationId)

startApplication

public void startApplication(java.lang.String applicationID)
                      throws java.lang.Exception
Parameters:
applicationID -
Throws:
java.lang.Exception

stopApplication

public void stopApplication(java.lang.String appId)
                     throws java.lang.Exception
Parameters:
appId -
Throws:
java.lang.Exception

startJobMonitorThreads

protected void startJobMonitorThreads(java.lang.String applicationID)
                               throws java.lang.Exception
Throws:
java.lang.Exception

startServiceMonitorThreads

protected void startServiceMonitorThreads(java.lang.String applicationID)
                                   throws java.lang.Exception
Throws:
java.lang.Exception

startSchedulerThreads

protected void startSchedulerThreads(java.lang.String applicationID)
                              throws java.lang.Exception
Throws:
java.lang.Exception

getJobCount

public long getJobCount(java.lang.String applicationID,
                        int status,
                        java.lang.String serverName)
                 throws GridBrokerException
Returns:
job count for given status and server
Throws:
GridBrokerException
See Also:
ApplicationManager.getJobCount(String, int, java.lang.String)

getSCSJobCount

public long getSCSJobCount(java.lang.String applicationID,
                           int status,
                           java.lang.String serverName)
                    throws GridBrokerException
Throws:
GridBrokerException

getJobs

public java.util.Collection getJobs(java.lang.String applicationID,
                                    int status)
                             throws GridBrokerException
Description copied from interface: ApplicationManager
Gets all the jobs with the given status

Returns:
list of jobs
Throws:
GridBrokerException
See Also:
ApplicationManager.getJobs(String, int)

getSCSJobs

public java.util.Collection getSCSJobs(java.lang.String applicationID,
                                       int status)
                                throws GridBrokerException
Throws:
GridBrokerException

getQos

public Qos getQos(java.lang.String applicationID)
           throws GridBrokerException
Returns:
Qos instance
Throws:
GridBrokerException
See Also:
ApplicationManager.getQos(String)

updateApplication

public java.lang.String updateApplication(ApplicationContext app)
                                   throws GridBrokerException
Returns:
applicationId
Throws:
GridBrokerException
See Also:
ApplicationManager.updateApplication(org.gridbus.broker.common.ApplicationContext)

getJobs

public java.util.Collection getJobs(java.lang.String applicationID,
                                    int pageNumber,
                                    int pageSize)
                             throws GridBrokerException
Description copied from interface: ApplicationManager
Gets all the jobs with the given status

Returns:
list of jobs
Throws:
GridBrokerException

getJobs

public java.util.Collection getJobs(java.lang.String applicationID,
                                    int status,
                                    java.lang.String serverName)
                             throws GridBrokerException
Returns:
list of jobs
Throws:
GridBrokerException

updateQos

public void updateQos(java.lang.String applicationId,
                      Qos qos)
               throws GridBrokerException
Parameters:
applicationId -
qos -
Throws:
GridBrokerException

getService

public Service getService(java.lang.String applicationId,
                          int serviceType,
                          java.lang.String serverName)
                   throws GridBrokerException
Parameters:
applicationId -
serviceType -
serverName -
Returns:
Throws:
GridBrokerException

getJob

public Job getJob(java.lang.String applicationId,
                  java.lang.String jobName)
           throws GridBrokerException
Returns:
job
Throws:
GridBrokerException

getSCSJob

public org.gridbus.scs.common.SCSJob getSCSJob(java.lang.String applicationId,
                                               java.lang.String jobName)
                                        throws GridBrokerException
Throws:
GridBrokerException

getJobStatistics

public JobStatistics getJobStatistics(java.lang.String applicationId,
                                      java.lang.String serverName)
                               throws GridBrokerException
Parameters:
applicationId -
serverName -
Returns:
Throws:
GridBrokerException

saveObject

public void saveObject(java.lang.Object object)
                throws GridBrokerException
Throws:
GridBrokerException

Copyright © The University of Melbourne. 2006