Rubrique précédente: Développement au niveau de l'agent JavaRubrique suivante: API de détection d'agents


API générales de l'agent

Remarque : Vous pouvez consulter des informations détaillées sur l'interface et la classe décrite dans cette rubrique dans le document JavaDocs pour l'agent. Les documents JavaDocs sont disponibles dans le répertoire LISA_HOME\doc.

La plupart des API clients doivent spécifier un agent en tant que cible. Cette spécification s'effectue via la transmission d'un paramètre de type com.itko.lisa.remote.IAgentInfo. Ce paramètre représente un objet qui identifie de manière unique un agent et certaines de ses informations de base.

/** Identificateur unique de cet agent ou de cette console. S'il est nommé, le GUID sera conservé pendant la durée de vie de la machine virtuelle */
 public long getGuid();
 public void setGuid(long guid);
 
 /** nom lisible permettant d'identifier cet agent, attribué manuellement ou généré à partir de propriétés système */
 public String getName();
 public void setName(String name);
 
 /** Nom de la machine sur laquelle cet objet a été généré (si disponible) */
 public String getMachine();
 public void setMachine(String machine);
 
 /** Adresse IP de la machine sur laquelle cet objet a été généré (si disponible) */
 public String getIp();
 public void setIp(String ip);
 
 /** Répertoire de travail de la machine virtuelle Java sur laquelle cet objet est exécuté */
 public String getWorkingDir();
 public void setWorkingDir(String workingDir);
 
 /** Classpath tel que renvoyé par la propriété java.class.path */
 public String getClasspath();
 public void setClasspath(String classpath);
 
 /** Chemin de la bibliothèque tel que renvoyé par la propriété java.library.path */
 public String getLibpath();
 public void setLibpath(String libpath);
 
 /** Pour des agents, renvoie la classe Java contenant la méthode principale appelée */
 public String getMainClass();
 public void setMainClass(String mainClass);
 
 /** Version abrégée de la ligne de commande (à des fins de représentation, car elle peut être imprécise) */
 public String getCommandLine();
 
 /** Champ transitoire pour assurer le suivi du moment de l'envoi ou de la réception de cet objet */
 public Date getGenerationTime() ;
 public void setGenerationTime(Date time);
 
 /** Champ transitoire pour assurer le suivi d'un mot de passe requis pour appeler les API sur cet agent via JMS */
 public String getToken();
 public void setToken(String token);

Nous pouvons maintenant consulter certains des API directement dans com.itko.lisa.remote.client.AgentClient. Cette liste n'est pas exhaustive, mais elle couvre une grande partie des besoins de la plupart des clients.

/** Obtient la classe responsable de toutes les détections et informations pour un agent donné */
 public DiscoveryClient getDiscoveryClient();
 
 /** Obtient la classe responsable de toutes les opérations liées aux transactions */
 public TransactionsClient getTransactionClient();
 
 /** Obtient la classe responsable de toutes les opérations liées au VSE */
 public VSEClient getVSEClient();
 
 /**
  * Obtient tous les agents détectés - il s'agir de l'API principale pour obtenir les IAgentInfos utilisées dans tous les autres appels d'API
  * @param tokens carte de guid ou noms d'agents sur des jetons, valeur nulle si aucun agent ne dispose de la sécurité activée par jeton
  * @return renvoie un ensemble d'objets IAgentInfo représentant les agents actuellement en ligne.
  */
  public Set getRemoteAgentInfos(Map tokens);
 
 /**
  * Transmet les informations des agents en ligne aux écouteurs enregistrés.
  * @param indique à l'agent qui vient d'être détecté de se connecter.
  */
  public void onAgentOnline(IAgentInfo info);
 
 /**
  * Transmet les informations des agents hors ligne aux écouteurs enregistrés.
  * @param indique à l'agent qui vient d'être détecté de se déconnecter.
  */
  public void onAgentOffline(IAgentInfo info);
 
 /**
  * Evalue le code arbitraire sur l'agent spécifié.
  * @param indique à l'agent que ce code sera évalué.
  * @param saisit le code à exécuter. La variable '_agent' représente l'instance de l'agent.
  * @renvoie la valeur renvoyée par le code.
  * @renvoie JMSInvocationExceptionthrown si le code est renvoyé sur l'agent.
  */
 public Object eval(IAgentInfo info, String input) throws JMSInvocationException