ABLE 2.0.0 07/02/2003 10:25:01

com.ibm.able.platform
Interface RMIVerifiableDirectoryService

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

public interface RMIVerifiableDirectoryService
extends java.rmi.Remote, RmiAblePlatformService

Defines the behavior of a Verifiable Directory Service.

This interface includes the new secure register, deregister, and modify which take in an AbleSecureKey to secure the communication. It also include the original AgentDirectoryService register, deregister, and modify,search and createAgentDescription methods which are not secure.

A proxy, RMIAgentDirectoryServiceProxy is used by a platform entity to communicate with this Verifiable Directory System defined by this interface.

Because this is a Remote interface, the methods all must throw RemoteException.

See Also:
RMIVerifiableNamingSystem

Method Summary
 javax.agent.service.directory.AgentDescription createAgentDescription()
          The original createAgentDescription method off of the AgentDirectoryService is still being exposed.
 void deregister(javax.agent.service.directory.AgentDescription theAgentDescription)
          The original deregister method off of the AgentDirectoryService is still being exposed.
 void deregister(javax.agent.service.directory.AgentDescription theAgentDescription, AbleSecureKey key)
          Deregister theAgentDescription from the VerifiableAgentDirectoryService.
 void modify(javax.agent.service.directory.AgentDescription theAgentDescription)
          The original modify method off of the AgentDirectoryService is still being exposed.
 void modify(javax.agent.service.directory.AgentDescription theAgentDescription, AbleSecureKey key)
          Modify theAgentDescription in the VerifiableAgentDirectoryService.
 void register(javax.agent.service.directory.AgentDescription theAgentDescription)
          The original register method off of the AgentDirectoryService is still being exposed.
 void register(javax.agent.service.directory.AgentDescription theAgentDescription, AbleSecureKey key)
          Register theAgentDescription to the VerifiableAgentDirectoryService.
 javax.agent.service.directory.AgentDescription[] search(javax.agent.service.directory.AgentDescription theAgentDescription)
          The original search method off of the AgentDirectoryService is still being exposed.
 javax.agent.service.directory.AgentDescription[] search(javax.agent.service.directory.AgentDescription desc, int maxResults)
          The original search method off of the AgentDirectoryService is still being exposed.
 
Methods inherited from interface com.ibm.able.platform.RmiAblePlatformService
terminateService
 
Methods inherited from interface com.ibm.able.platform.RmiAblePlatformServiceEventGenerator
addAblePlatformServiceEventListener, getAblePlatformServiceEventListeners, removeAblePlatformServiceEventListener
 

Method Detail

register

public void register(javax.agent.service.directory.AgentDescription theAgentDescription,
                     AbleSecureKey key)
              throws java.rmi.RemoteException,
                     javax.agent.service.directory.AlreadyRegisteredException,
                     javax.agent.service.directory.DirectoryFailure
Register theAgentDescription to the VerifiableAgentDirectoryService.

If the platform is not secure when this method is called, theAgentDescription will be passed along to the non-secure register method.

An agent is only allowed to register its own agent description.

If successfully registered, all registered listeners will be notified of this newly registered agent description.

Parameters:
theAgentDescription - The agent description to be registered.

key - The AbleSecureKey used to secure the communication.

Throws:
java.rmi.RemoteException - On all remote errors.

javax.agent.service.directory.AlreadyRegisteredException - If theAgentDescription is already registered.

javax.agent.service.directory.DirectoryFailure -

If the platform is not running secure.

If the agent description that is to be registered does not belong to the agent trying to register it.


deregister

public void deregister(javax.agent.service.directory.AgentDescription theAgentDescription,
                       AbleSecureKey key)
                throws java.rmi.RemoteException,
                       javax.agent.service.directory.NotRegisteredException,
                       javax.agent.service.directory.DirectoryFailure
Deregister theAgentDescription from the VerifiableAgentDirectoryService.

If the platform is not secure when this method is called, theAgentDescription will be passed along to the non-secure deregister method.

An agent is only allowed to deregister its own agent description.

If successfully deregistered, all registered listeners will be notified of this deregistered agent description.

Parameters:
theAgentDescription - The agent description to be deregistered.

key - The AbleSecureKey used to secure the communication.

Throws:
java.rmi.RemoteException - On all remote errors.

javax.agent.service.directory.NotRegisteredException - If theAgentDescription is not currently registered.

javax.agent.service.directory.DirectoryFailure -

If the platform is not running secure.

If the agent description that is to be deregistered does not belong to the agent trying to deregister it.


modify

public void modify(javax.agent.service.directory.AgentDescription theAgentDescription,
                   AbleSecureKey key)
            throws java.rmi.RemoteException,
                   javax.agent.service.directory.NotRegisteredException,
                   javax.agent.service.directory.DirectoryFailure
Modify theAgentDescription in the VerifiableAgentDirectoryService.

If the platform is not secure when this method is called, theAgentDescription will be passed along to the non-secure modify method.

An agent is only allowed to modify its own agent description.

If successfully modified, all registered listeners will be notified of this changed agent description.

Parameters:
theAgentDescription - The agent description to be modified.

key - The AbleSecureKey used to secure the communication.

Throws:
java.rmi.RemoteException - On all remote errors.

javax.agent.service.directory.NotRegisteredException - If theAgentDescription is not currently registered.

javax.agent.service.directory.DirectoryFailure -

If the platform is not running secure.

If the agent description that is to be modified does not belong to the agent trying to modify it.


register

public void register(javax.agent.service.directory.AgentDescription theAgentDescription)
              throws java.rmi.RemoteException,
                     javax.agent.service.directory.AlreadyRegisteredException,
                     javax.agent.service.directory.DirectoryFailure
The original register method off of the AgentDirectoryService is still being exposed. It had to be included in this interface so persistence could be handled and since it is now a remote method.

This will insecurely register theAgentDescription to the AgentDirectoryService.

Parameters:
theAgentDescription - The agent description to be registered.

Throws:
java.rmi.RemoteException - On any remote error.

javax.agent.service.directory.AlreadyRegisteredException - If theAgentDescription is already registered.

javax.agent.service.directory.DirectoryFailure - On any error registering the agent description.

deregister

public void deregister(javax.agent.service.directory.AgentDescription theAgentDescription)
                throws java.rmi.RemoteException,
                       javax.agent.service.directory.NotRegisteredException,
                       javax.agent.service.directory.DirectoryFailure
The original deregister method off of the AgentDirectoryService is still being exposed. It had to be included in this interface so persistence could be handled and since it is now a remote method.

This will insecurely deregister theAgentDescription from the AgentDirectoryService.

Only non-verifiable agent descriptions can be deregistered using this method.

Parameters:
theAgentDescription - The agent description to be deregistered.

Throws:
java.rmi.RemoteException - On any remote error.

javax.agent.service.directory.NotRegisteredException - If theAgentDescription is not currently registered.

javax.agent.service.directory.DirectoryFailure -

On any error deregistering the agent description.

If the agent description that is to be deregistered is a verifiable agent description.


modify

public void modify(javax.agent.service.directory.AgentDescription theAgentDescription)
            throws java.rmi.RemoteException,
                   javax.agent.service.directory.NotRegisteredException,
                   javax.agent.service.directory.DirectoryFailure
The original modify method off of the AgentDirectoryService is still being exposed. It had to be included in this interface so persistence could be handled and since it is now a remote method.

This will insecurely modify theAgentDescription in the AgentDirectoryService.

Only non-verifiable agent descriptions can be modified using this method.

Parameters:
theAgentDescription - The agent description to be modified.

Throws:
java.rmi.RemoteException - On any remote error.

javax.agent.service.directory.NotRegisteredException - If theAgentDescription is not currently registered.

javax.agent.service.directory.DirectoryFailure -

On any error modifying the agent description.

If the agent description that is to be modified is a verifiable agent description.


search

public javax.agent.service.directory.AgentDescription[] search(javax.agent.service.directory.AgentDescription theAgentDescription)
                                                        throws java.rmi.RemoteException,
                                                               javax.agent.service.directory.SearchException,
                                                               javax.agent.service.directory.DirectoryFailure
The original search method off of the AgentDirectoryService is still being exposed. It had to be included in this interface since it is now a remote method.

Parameters:
theAgentDescription - The AgentDescription to search for.

Returns:
All matching AgentDescriptions.

Throws:
java.rmi.RemoteException - On any remote error.

javax.agent.service.directory.SearchException - On any error searching for theAgentDescription.

javax.agent.service.directory.DirectoryFailure - On any error searching for theAgentDescription.

search

public javax.agent.service.directory.AgentDescription[] search(javax.agent.service.directory.AgentDescription desc,
                                                               int maxResults)
                                                        throws java.rmi.RemoteException,
                                                               javax.agent.service.directory.SearchException,
                                                               javax.agent.service.directory.DirectoryFailure
The original search method off of the AgentDirectoryService is still being exposed. It had to be included in this interface since it is now a remote method.

Parameters:
theAgentDescription - The AgentDescription to search for.

maxResults - The maximum number of matching AgentDescription to return.

Returns:
All matching AgentDescriptions.

Throws:
java.rmi.RemoteException - On any remote error.

javax.agent.service.directory.SearchException - On any error searching for theAgentDescription.

javax.agent.service.directory.DirectoryFailure - On any error searching for theAgentDescription.

createAgentDescription

public javax.agent.service.directory.AgentDescription createAgentDescription()
                                                                      throws java.rmi.RemoteException
The original createAgentDescription method off of the AgentDirectoryService is still being exposed. It had to be included in this interface since it is now a remote method.

Returns:
An empty AgentDescription will be returned.

Throws:
java.rmi.RemoteException - On any remote error.

ABLE 2.0.0 07/02/2003 10:25:01

(C) Copyright IBM Corporation 1999, 2003