ABLE 2.3.0 07/13/2005 14:21:00

com.ibm.able.platform
Interface RmiAgentLoggingService

All Superinterfaces:
java.rmi.Remote, RmiAblePlatformService, RmiAblePlatformServiceEventGenerator
All Known Implementing Classes:
RmiAgentLoggingSystem

public interface RmiAgentLoggingService
extends java.rmi.Remote, RmiAblePlatformService

Defines the behavior of an RMI Agent Logging Service.

The RmiAgentLoggingService interface defines the operations that can be requested of an RMI based Agent Logging Service.

An Agent Logging Service is where agents and other entities of the platform can log AbleAgentSituationReports. These reports can be problems that agents encounter and they want help with. Other agents or users at the console can then view these logs and answer them.

Agents could also log their history to this service. Then users at the console can view the history of an agent.


Method Summary
 void answerAgentRequest(AbleAgentSituationReport theAnsweredAgentSituationReport, AbleSecureKey theSecureKey)
          When someone is attempting to answer and existing problem AgentSituationReport, this method will take the answered AgentSituationReport and contact the one who originally logged the request.
 java.util.Vector getAgentHistory(javax.agent.AgentName theAgentName)
          Returns all of the AgentSituationReports from the Logging Service that belong to a certain agent that are not in the problem state.
 java.util.Vector getAgentProblems(javax.agent.AgentName theAgentName)
          Returns all of the AgentSituationReports from the Logging Service that belong to a certain agent that are in the problem state.
 java.util.Vector getAllLogs()
          Return a Vector of all the AbleAgentSituationReports from the Logging Service.
 java.util.Vector getAllProblems()
          Returns all of the AgentSituationReports from the Logging Service that are in the problem state.
 void logAgentSituationReport(AbleAgentSituationReport theAgentSituationReport, AbleSecureKey theSecureKey)
          Log an AbleAgentSituationReport to the Logging Service, and notify all interested listeners about this added log.
 void removeAgentLogs(javax.agent.AgentName theAgentName, AbleSecureKey theSecureKey)
          Removes all of the AgentSituationReports that belong to a certain agent.
 void removeAgentSituationReports(java.util.Vector theAgentSituationReportsToRemove, AbleSecureKey theSecureKey)
          Removes AgentSituationReports from the Logging Service, and notify all interested listeners about these removals.
 java.util.Vector search(AbleAgentSituationReport theSearchAgentSituationReport)
          Return a Vector of all of the AgentSituationReports that match the criteria supplied in the passed in AgentSituationReport.
 void updateAgentSituationReport(AbleAgentSituationReport theOldLog, AbleAgentSituationReport theUpdatedLog, AbleSecureKey theSecureKey)
          Update an AgentSituationReport in the Logging Service, and notify all interested listeners about this update.
 
Methods inherited from interface com.ibm.able.platform.RmiAblePlatformService
getState, terminateService
 
Methods inherited from interface com.ibm.able.platform.RmiAblePlatformServiceEventGenerator
addAblePlatformServiceEventListener, getAblePlatformServiceEventListeners, removeAblePlatformServiceEventListener
 

Method Detail

logAgentSituationReport

public void logAgentSituationReport(AbleAgentSituationReport theAgentSituationReport,
                                    AbleSecureKey theSecureKey)
                             throws java.rmi.RemoteException,
                                    AgentLoggingException
Log an AbleAgentSituationReport to the Logging Service, and notify all interested listeners about this added log.

If secure, the log request will proceed as long as the caller is authenticated.

The logging of duplicate AbleAgentSituationReports will fail.

Parameters:
theAgentSituationReport - The AgentSituationReport that is to be logged.
theSecureKey - The AbleSecureKey that secures communication.
Throws:
java.rmi.RemoteException - On all remote errors.
AgentLoggingException -

If the AbleAgentSituationReport to be logged is null.

If the caller is not authenticated.

If a duplicate AbleAgentSituationReport is already logged.


updateAgentSituationReport

public void updateAgentSituationReport(AbleAgentSituationReport theOldLog,
                                       AbleAgentSituationReport theUpdatedLog,
                                       AbleSecureKey theSecureKey)
                                throws java.rmi.RemoteException,
                                       AgentLoggingException
Update an AgentSituationReport in the Logging Service, and notify all interested listeners about this update.

An AgentSituationReport can only be updated if it is in the problem state. History logs may never be changed.

When secure, an AgentSituationReport in the problem state can only be updated by its own VerifiableAgentName.

This method call cannot be delegated. The VerifiableAgentName of the AgentSituationReport that is to be updated must directly make the call.

Parameters:
theOldLog - The AgentSituationReport that is to be updated.
theUpdatedLog - The AgentSituationReport that is to replace the old AgentSituationReport.
theSecureKey - The AbleSecureKey that secures communication.
Throws:
java.rmi.RemoteException - On all remote errors.
AgentLoggingException -

If the updated AbleAgentSituationReport is null.

If the caller is not authenticated.

If the log to be updated does not exist.

If the log being updated to already exists.

If the log we are updating is a history log.

If the caller is not the one who originally logged the log being updated.


removeAgentSituationReports

public void removeAgentSituationReports(java.util.Vector theAgentSituationReportsToRemove,
                                        AbleSecureKey theSecureKey)
                                 throws java.rmi.RemoteException,
                                        AgentLoggingException
Removes AgentSituationReports from the Logging Service, and notify all interested listeners about these removals.

When secure and the AgentSituationReport is verifiable, an AgentSituationReport in the problem state can only be removed by it own VerifiableAgentName, so this method call cannot be delegated in this case.

An AgentSituationReport in the history state can be removed by anyone with equal or greater authority to the VerifiableAgentName of the AgentSituationReport. This call can be delegated in this case.

Parameters:
theAgentSituationReportsToRemove - A Vector of all the AbleAgentSituationReports that should be removed.
theSecureKey - The AbleSecureKey that secures communication.
Throws:
java.rmi.RemoteException - On all remote error.
AgentLoggingException -

If the remove Vector is null.

If an AgentSituationReport that is to be removed does not exist.

If the caller is not authenticated.

If attempting to remove a problem log, and the caller is not the one who originally logged it.

If attempting to remove a history log, and the caller does not have equal to or greater authority as the one who originally logged it.


getAllLogs

public java.util.Vector getAllLogs()
                            throws java.rmi.RemoteException
Return a Vector of all the AbleAgentSituationReports from the Logging Service.

Returns:
Vector of all AbleAgentSituationReports logged to this service.
Throws:
java.rmi.RemoteException - On all remote errors.

getAllProblems

public java.util.Vector getAllProblems()
                                throws java.rmi.RemoteException
Returns all of the AgentSituationReports from the Logging Service that are in the problem state.

Returns:
Vector of all the problem state AbleAgentSituationReports.
Throws:
java.rmi.RemoteException - On all remote errors.

getAgentHistory

public java.util.Vector getAgentHistory(javax.agent.AgentName theAgentName)
                                 throws java.rmi.RemoteException
Returns all of the AgentSituationReports from the Logging Service that belong to a certain agent that are not in the problem state.

Parameters:
theAgentName - The AgentName of the agent whose history logs will be returned.
Returns:
Vector of all the history AbleAgentSituationReports for the supplied agent.
Throws:
java.rmi.RemoteException - On all remote errors.

getAgentProblems

public java.util.Vector getAgentProblems(javax.agent.AgentName theAgentName)
                                  throws java.rmi.RemoteException
Returns all of the AgentSituationReports from the Logging Service that belong to a certain agent that are in the problem state.

Parameters:
theAgentName - The AgentName of the agent whose problem logs will be returned.
Returns:
Vector of all the problem AbleAgentSituationReports of the supplied agent.
Throws:
java.rmi.RemoteException - On all remote errors.

answerAgentRequest

public void answerAgentRequest(AbleAgentSituationReport theAnsweredAgentSituationReport,
                               AbleSecureKey theSecureKey)
                        throws java.rmi.RemoteException,
                               AbleException,
                               AgentLoggingException
When someone is attempting to answer and existing problem AgentSituationReport, this method will take the answered AgentSituationReport and contact the one who originally logged the request.

Parameters:
theAnsweredAgentSituationReport - The answered problem AgentSituationReport.
theSecureKey - The key that is used to secure this communication.
Throws:
java.rmi.RemoteException - On all remote errors.
AgentLoggingException -

If the answered AbleAgentSituationReport is null.

If the caller is not authenticated.

If the AbleAgentSituationReport that is being answered does not exist.

If unable to locate the agent who originally logged the request.

If using a History log to answer a request.

On any remote error calling the agent.

AbleException - On errors coming back from the agent.

removeAgentLogs

public void removeAgentLogs(javax.agent.AgentName theAgentName,
                            AbleSecureKey theSecureKey)
                     throws java.rmi.RemoteException,
                            AgentLoggingException
Removes all of the AgentSituationReports that belong to a certain agent.

When secure, this method can only be called by the actaul agent that logged these logs. This method call cannot be delegated.

Parameters:
theAgentName - The AgentName of the agent that is to have all of it's AgentSituationReports removed.
theSecureKey - The key that is used to secure this communication.
Throws:
java.rmi.RemoteException - On all remote errors.
AgentLoggingException -

If the agentName parameter is null.

If the caller is not authenticated.


search

public java.util.Vector search(AbleAgentSituationReport theSearchAgentSituationReport)
                        throws java.rmi.RemoteException,
                               AgentLoggingException
Return a Vector of all of the AgentSituationReports that match the criteria supplied in the passed in AgentSituationReport.

If fields in the AgentSituationReport are left as null, a match can contain anything in this field. Since timeSent is a primitive type and cannot be set to null, set it to zero to wildcard that field. There is no way to wildcard the search for the state.

Parameters:
theSearchAgentSituationReport - The AgentSituationReport which represents the criteria that will be searched for.
Returns:
Vector of all the logs that match the supplied AgentSituationReport.
Throws:
java.rmi.RemoteException - On all remote errors.
AgentLoggingException - If the search AgentSituationReport is null.

ABLE 2.3.0 07/13/2005 14:21:00

(C) Copyright IBM Corporation 1999, 2005