Titre du document

publicité
Projet CNAM – 2002/2003
Système automatique de Surveillance
Documentation
Javadoc, configuration du système
Page 1
Projet CNAM – 2002/2003
Système automatique de Surveillance
Résumé du document
Documentation du projet
Page 2
Projet CNAM – 2002/2003
Système automatique de Surveillance
Tables des matières
Chapter 1. Package sas.gui .............................................................................. 5
Class HelpdeskQueueListModel ............................................................................ 5
Synopsis .................................................................................................................... 5
Members .................................................................................................................... 6
Class MainTopicListModel ...................................................................................... 7
Synopsis .................................................................................................................... 7
Members .................................................................................................................... 8
Class SasMessageListCellRenderer ................................................................... 10
Synopsis .................................................................................................................. 10
Members .................................................................................................................. 11
Chapter 2. Package sas.mdc ......................................................................... 12
Class Bridge .............................................................................................................. 12
Synopsis .................................................................................................................. 12
Members .................................................................................................................. 12
Class BridgeToDatabase ....................................................................................... 14
Synopsis .................................................................................................................. 14
Members .................................................................................................................. 15
Class BridgeToHelpdesk ....................................................................................... 16
Synopsis .................................................................................................................. 16
Members .................................................................................................................. 16
Class BridgeToMail ................................................................................................. 17
Synopsis .................................................................................................................. 17
Members .................................................................................................................. 18
Class BridgeToMessageSender ........................................................................... 18
Synopsis .................................................................................................................. 18
Members .................................................................................................................. 19
Class BridgeToSms ................................................................................................. 20
Synopsis .................................................................................................................. 20
Members .................................................................................................................. 21
Chapter 3. Package sas.mds ......................................................................... 23
Configuration global du MDS ............................................................................... 23
Strucutre du fichier de configuration global ....................................................... 23
Class Controller........................................................................................................ 24
Synopsis .................................................................................................................. 24
Members .................................................................................................................. 25
Class DiskWatcher................................................................................................... 26
Synopsis .................................................................................................................. 26
Members .................................................................................................................. 27
Class LinuxDiskWatcher ........................................................................................ 27
Synopsis .................................................................................................................. 27
Members .................................................................................................................. 28
Class ParameterStatus ........................................................................................... 28
Page 3
Projet CNAM – 2002/2003
Système automatique de Surveillance
Synopsis .................................................................................................................. 28
Members .................................................................................................................. 29
Class WatcherProcessor ....................................................................................... 29
Synopsis .................................................................................................................. 29
Members .................................................................................................................. 30
Interface Watcher ..................................................................................................... 31
Synopsis .................................................................................................................. 31
Members .................................................................................................................. 31
Chapter 4. Package sas.util ............................................................................ 33
Class HelpdeskQueueConnector ........................................................................ 34
Synopsis .................................................................................................................. 34
Members .................................................................................................................. 34
Class HelpdeskQueueReceiver ............................................................................ 36
Synopsis .................................................................................................................. 36
Members .................................................................................................................. 36
Class HelpdeskQueueSender ............................................................................... 38
Synopsis .................................................................................................................. 38
Members .................................................................................................................. 39
Class JndiConnector............................................................................................... 41
Synopsis .................................................................................................................. 41
Members .................................................................................................................. 42
Class MainTopicConnector ................................................................................... 46
Synopsis .................................................................................................................. 46
Members .................................................................................................................. 46
Class MainTopicReceiver ...................................................................................... 48
Synopsis .................................................................................................................. 48
Members .................................................................................................................. 49
Class MainTopicSender ......................................................................................... 51
Synopsis .................................................................................................................. 51
Members .................................................................................................................. 52
Class SasMessage ................................................................................................... 54
Synopsis .................................................................................................................. 54
Members .................................................................................................................. 55
Interface LogType .................................................................................................... 56
Synopsis .................................................................................................................. 57
Members .................................................................................................................. 57
Interface SasMessageType ................................................................................... 58
Synopsis .................................................................................................................. 58
Members .................................................................................................................. 58
Page 4
Projet CNAM – 2002/2003
Système automatique de Surveillance
Chapter 1. Package sas.gui
Class HelpdeskQueueListModel
Cette classe maintient une liste dynamique d'objet SasMessage, alimentée par la file de
message HelpdeskQueue. Elle dérive de la classe sas.util.HelpdeskQueueReceiver et
implémente la classe javax.swing.ListModel, permettant ainis d'être connectée aux
composants de type javax.swing.JList.
Synopsis
public class HelpdeskQueueListModel extends HelpdeskQueueReceiver
implements ListModel {
// Private Fields
private Vector listenerList;
private Vector sasMessageList;
// Public Constructors
public HelpdeskQueueListModel();
// Public Methods
public void newSasMessage(sas.util.SasMessage message);
public void addListDataListener(javax.swing.event.ListDataListener listener);
public void removeListDataListener(
javax.swing.event.ListDataListener listener);
public int getSize();
public Object getElementAt(int index);
public void removeItem(int index);
}
Additional Information
See Also
sas.util.HelpdeskQueueReceiver
HelpdeskQueueReceiver>]
Inheritance Path
java.lang.Object
|
sas.util.JndiConnector
|
sas.util.HelpdeskQueueConnector
|
sas.util.HelpdeskQueueReceiver
|
Page 5
[Class
Projet CNAM – 2002/2003
Système automatique de Surveillance
Inheritance Path
sas.gui.HelpdeskQueueListModel
Members
Field listenerList
Synopsis: private java.util.Vector listenerList
Liste dynamique interne d'objet java.swing.ListDataListener.
Field sasMessageList
Synopsis: private java.util.Vector sasMessageList
Liste dynamique interne d'objets SasMessage.
Method addListDataListener(ListDataListener)
Synopsis: public void addListDataListener(
javax.swing.event.ListDataListener listener);
Parameters
listener - un objet ListDataListener
Ajoute un ListDataListener à la liste interne.
Method getElementAt(int)
Synopsis: public Object getElementAt(int index);
Parameters
index - le rang de l'objet voulu
return - un objet du type SasMessage
Retourne un élément de la liste interne des objets SasMessage.
Method getSize()
Synopsis: public int getSize();
Parameters
return - size la taille de la liste interne
Page 6
Projet CNAM – 2002/2003
Système automatique de Surveillance
Retour le nombre d'éléments dans la liste interne des objets SasMessage.
Method newSasMessage(SasMessage)
Synopsis: public void newSasMessage(sas.util.SasMessage message);
Parameters
message - un nouvel objet SasMessage
Méthode appelée lors de la réception d'un message depuis la file HelpdeskQueue. Elle
se charge d'ajouter le nouveau message dans la liste interne des objets SasMessage,
puis avertit de se changement d'état tous les ListDataListener qui lui sont associés.
Method removeItem(int)
Synopsis: public void removeItem(int index);
Parameters
index - rang de l'objet à supprimer ans la liste
Supprime un objet de la liste interne des objets SasMessage.
Method removeListDataListener(ListDataListener)
Synopsis: public void removeListDataListener(
javax.swing.event.ListDataListener listener);
Parameters
listener - un objet ListDataListener
Supprime un ListDataListener de la liste interne.
Class MainTopicListModel
Cette classe maintient une liste dynamique d'objet SasMessage, alimentée par la file de
message MainTopic. Elle dérive de la classe sas.util.MainTopicReceiver et implémente
la classe javax.swing.ListModel, permettant ainis d'être connectée aux composants de
type javax.swing.JList.
Synopsis
public class MainTopicListModel extends MainTopicReceiver
// Private Fields
private Vector listenerList;
private Vector sasMessageList;
// Public Constructors
public MainTopicListModel();
Page 7
implements ListModel {
Projet CNAM – 2002/2003
Système automatique de Surveillance
// Public Methods
public void newSasMessage(sas.util.SasMessage message);
public void addListDataListener(javax.swing.event.ListDataListener listener);
public void removeListDataListener(
javax.swing.event.ListDataListener listener);
public int getSize();
public Object getElementAt(int index);
public void removeItem(int index);
}
Additional Information
See Also
sas.util.MainTopicReceiver [Class MainTopicReceiver>]
Inheritance Path
java.lang.Object
|
sas.util.JndiConnector
|
sas.util.MainTopicConnector
|
sas.util.MainTopicReceiver
|
sas.gui.MainTopicListModel
Members
Field listenerList
Synopsis: private java.util.Vector listenerList
Liste dynamique interne d'objet java.swing.ListDataListener.
Field sasMessageList
Synopsis: private java.util.Vector sasMessageList
Liste dynamique interne d'objets SasMessage.
Method addListDataListener(ListDataListener)
Synopsis: public void addListDataListener(
javax.swing.event.ListDataListener listener);
Page 8
Projet CNAM – 2002/2003
Système automatique de Surveillance
Parameters
listener - un objet ListDataListener
Ajoute un ListDataListener à la liste interne.
Method getElementAt(int)
Synopsis: public Object getElementAt(int index);
Parameters
index - le rang de l'objet voulu
return - un objet du type SasMessage
Retourne un élément de la liste interne des objets SasMessage.
Method getSize()
Synopsis: public int getSize();
Parameters
return - size la taille de la liste interne
Retour le nombre d'éléments dans la liste interne des objets SasMessage.
Method newSasMessage(SasMessage)
Synopsis: public void newSasMessage(sas.util.SasMessage message);
Parameters
message - un nouvel objet SasMessage
Méthode appelée lors de la réception d'un message depuis la file MainTopic. Elle se
charge d'ajouter le nouveau message dans la liste interne des objets SasMessage, puis
avertit de se changement d'état tous les ListDataListener qui lui sont associés.
Method removeItem(int)
Synopsis: public void removeItem(int index);
Parameters
Page 9
Projet CNAM – 2002/2003
Système automatique de Surveillance
Parameters
index - rang de l'objet à supprimer ans la liste
Supprime un objet de la liste interne des objets SasMessage.
Method removeListDataListener(ListDataListener)
Synopsis: public void removeListDataListener(
javax.swing.event.ListDataListener listener);
Parameters
listener - un objet ListDataListener
Supprime un ListDataListener de la liste interne.
Class SasMessageListCellRenderer
Classe utilisée par les composants du type javax.swing.JList afin d'afficher le contenu
d'une liste d'objet SasMessage. Elle dérive de l'objet javax.swing.JLabel et implémente
l'interface javax.swing.ListCellRenderer.
Synopsis
public class SasMessageListCellRenderer extends JLabel
implements ListCellRenderer {
// Public Constructors
public SasMessageListCellRenderer();
// Public Methods
public Component getListCellRendererComponent(javax.swing.JList list,
java.lang.Object value,
int index,
boolean isSelected,
boolean cellHasFocus);
}
Inheritance Path
java.lang.Object
|
java.awt.Component
|
java.awt.Container
|
javax.swing.JComponent
Page 10
Projet CNAM – 2002/2003
Système automatique de Surveillance
Inheritance Path
|
javax.swing.JLabel
|
sas.gui.SasMessageListCellRenderer
Members
Constructor SasMessageListCellRenderer()
Synopsis: public SasMessageListCellRenderer();
Le constructeur de la classe initialise quelques valeurs internes comme l'opacité du
composant graphique affichant les objets SasMessage.
Method getListCellRendererComponent(JList, Object, int, boolean, boolean)
Synopsis:
list,
public
Component
getListCellRendererComponent(javax.swing.JList
java.lang.Object
value,
int index,
boolean isSelected,
boolean
cellHasFocus);
Cette méthode renvoie un objet du type javax.swing.JLabel initialisé de façon à
afficher un texte pertinent relatif aux objets SasMessage.
Page 11
Projet CNAM – 2002/2003
Système automatique de Surveillance
Chapter 2. Package sas.mdc
Class Bridge
Classe de base pour tous les objets de type pont filtrant. Elle fournit deux méthodes
sas.mdc.Bridge.startBridge [ Method startBridge(java.lang.String, java.lang.String)] et
sas.mdc.Bridge.stopBridge [ Method stopBridge()] permettant de contrôler le
démarrage et l'arrêt des ponts. Une troisième méthode permet d'associer des objets
DefaultListModel qui seront mis à jour à chaques fois que le pont reçoit un message.
Synopsis
public abstract class Bridge extends MainTopicReceiver
{
// Private Fields
private Vector incomingMessageListModel;
// Public Constructors
public Bridge();
// Public Methods
public void newSasMessage(sas.util.SasMessage message);
public boolean startBridge(java.lang.String durableName,
java.lang.String filter);
public boolean stopBridge();
public void addIncomingMessageListModel(
javax.swing.DefaultListModel listModel);
abstract public void messageReceivedByBridge(sas.util.SasMessage message);
}
Inheritance Path
java.lang.Object
|
sas.util.JndiConnector
|
sas.util.MainTopicConnector
|
sas.util.MainTopicReceiver
|
sas.mdc.Bridge
Members
Field incomingMessageListModel
Synopsis: private java.util.Vector incomingMessageListModel
Page 12
Projet CNAM – 2002/2003
Système automatique de Surveillance
Liste interne servant à stocker les objet DefaultListModel devant être mis à jour.
Method addIncomingMessageListModel(DefaultListModel)
Synopsis: public void addIncomingMessageListModel(
javax.swing.DefaultListModel listModel);
Parameters
listModel - une objet DefaultListModel à mettre à jour
Additional Information
See Also
sas.util.SasMessage [Class SasMessage>]
Ajoute un DefaultListModel à la liste interne des DefaultListModel qui doivent être
mis à jour lorsque le pont traite un message. Les objets stockés dans ces
DefaultListModel sont de type SasMessage.
Method messageReceivedByBridge(SasMessage)
Synopsis: abstract public void messageReceivedByBridge(
sas.util.SasMessage message);
Parameters
message - l'objet SasMessage à traiter
Additional Information
See Also
sas.util.SasMessage [Class SasMessage>]
Méthode abstraite appelé lorsque le pont a reçu et traité un nouveau message. Les
classe filles de cette classe doivent implémenter cette méthode si elle désire effectuer
une tâche avec ce nouveau message (envoi du message par mail ou SMS par exemple)
Method newSasMessage(SasMessage)
Synopsis: public void newSasMessage(sas.util.SasMessage message);
Parameters
message - un nouvel objet SasMessage
Page 13
Projet CNAM – 2002/2003
Système automatique de Surveillance
Additional Information
See Also
sas.util.MainTopicReceiver [Class MainTopicReceiver>]
Méthode appelé par l'objet MainTopicReceiver lorsqu'un nouveau message est
disonible dans la file MainTopic. Elle assure le prétraitement du message entrant. Elle
ne devrait pas &ecirctre surchargé par les classes filles.
Method startBridge(String, String)
Synopsis: public boolean startBridge(java.lang.String durableName,
java.lang.String filter);
Parameters
durableName - nom de l'abonné durable du pont
filter - selecteur de message du pont
return - true si le pont est prêt
Se charge de démarrer le MainTopicReceiver dont les ponts filtrants héritent.
Method stopBridge()
Synopsis: public boolean stopBridge();
Parameters
return - true si le pont est correctement arrêtté
Stop le MainTopicReceiver dont les pont filtrants héritent.
Class BridgeToDatabase
Pont filtrant vers le système de base de donnée. Repose sur l'objet externe
DatabaseWriter.
Synopsis
public class BridgeToDatabase extends Bridge
{
// Public Constructors
public BridgeToDatabase();
// Public Methods
public void messageReceivedByBridge(sas.util.SasMessage message);
}
Additional Information
Page 14
Projet CNAM – 2002/2003
Système automatique de Surveillance
Additional Information
See Also
sas.extern.DatabaseWriter
Inheritance Path
java.lang.Object
|
sas.util.JndiConnector
|
sas.util.MainTopicConnector
|
sas.util.MainTopicReceiver
|
sas.mdc.Bridge
|
sas.mdc.BridgeToDatabase
Members
Method messageReceivedByBridge(SasMessage)
Synopsis: public void messageReceivedByBridge(sas.util.SasMessage message);
Parameters
message - l'objet SasMessage à archiver
Additional Information
See Also
sas.extern.DatabaseWriter
Assure l'archivage du message reçu dans la base de données du système. Repose sur
l'objet externe sas.extern.DatabaseWriter.
Page 15
Projet CNAM – 2002/2003
Système automatique de Surveillance
Class BridgeToHelpdesk
Pont filtrant vers le la file de message du Helpdesk. Se charge de filtrer les messages
de niveau égal à 7 et les transmet dans la HelpdeskQueue.
Synopsis
public class BridgeToHelpdesk extends Bridge
{
// Private Fields
private HelpdeskQueueSender helpdeskSender;
// Public Constructors
public BridgeToHelpdesk();
// Public Methods
public void messageReceivedByBridge(sas.util.SasMessage message);
}
Inheritance Path
java.lang.Object
|
sas.util.JndiConnector
|
sas.util.MainTopicConnector
|
sas.util.MainTopicReceiver
|
sas.mdc.Bridge
|
sas.mdc.BridgeToHelpdesk
Members
Field helpdeskSender
Synopsis: private sas.util.HelpdeskQueueSender helpdeskSender
Objet sas.util.HelpdeskQueueSender utilisé pour poster les messages reçus de la file
MainTopic dans la queue HelpdeskQueue
Method messageReceivedByBridge(SasMessage)
Synopsis: public void messageReceivedByBridge(sas.util.SasMessage message);
Page 16
Projet CNAM – 2002/2003
Système automatique de Surveillance
Parameters
message - l'objet asMessage à retransmettre
Assure l'envoi du message reçu dans la HelpdeskQueue.
Class BridgeToMail
Pont filtrant vers le système de Mail. Repose sur l'objet externe MailSender.
Synopsis
public class BridgeToMail extends BridgeToMessageSender
{
// Private Fields
private Vector mailDestinationList;
// Public Constructors
public BridgeToMail();
// Public Methods
public void messageReceivedByBridge(sas.util.SasMessage message);
public void newDestinationList(java.lang.String[] destinationList);
}
Additional Information
See Also
sas.extern.MailSender
Inheritance Path
java.lang.Object
|
sas.util.JndiConnector
|
sas.util.MainTopicConnector
|
sas.util.MainTopicReceiver
|
sas.mdc.Bridge
|
Page 17
Projet CNAM – 2002/2003
Système automatique de Surveillance
Inheritance Path
sas.mdc.BridgeToMessageSender
|
sas.mdc.BridgeToMail
Members
Field mailDestinationList
Synopsis: private java.util.Vector mailDestinationList
Liste interne des adresses mails de destination.
Method messageReceivedByBridge(SasMessage)
Synopsis: public void messageReceivedByBridge(sas.util.SasMessage message);
Parameters
message - l'objet SasMessage à envoyer
Transmet le message en paramètre à la liste interne des destinataires.
Method newDestinationList(String[])
Synopsis:
public
destinationList);
void
newDestinationList(java.lang.String[]
Parameters
destinationList - la nouvelle liste des destinataires mail
Met à jour la liste interne des destinataires mail avec la liste d'adresses fournis en
paramètre.
Class BridgeToMessageSender
Classe de base pour les ponts filtrants devant expédier des messages à une liste de
destinataires. Elle propose une méthode pour ajouter des objets DefaultListModel qui
seront mis à jour à chaques fois que le pont reçoit un message de type LogType.CONF
contenant une liste de destinataire. Une autre méthode abstraite y est aussi définit,
celle-ci étant appelée à chaques fois que le pont reçoit une nouvelle liste de
destinataire.
Synopsis
public abstract class BridgeToMessageSender extends Bridge
Page 18
{
Projet CNAM – 2002/2003
Système automatique de Surveillance
// Private Fields
private Vector destinationListModel;
// Public Constructors
public BridgeToMessageSender();
// Public Methods
public void newSasMessage(sas.util.SasMessage message);
public void addIncomingDestListModel(javax.swing.DefaultListModel listModel);
abstract public void newDestinationList(java.lang.String[] destinationList);
}
Inheritance Path
java.lang.Object
|
sas.util.JndiConnector
|
sas.util.MainTopicConnector
|
sas.util.MainTopicReceiver
|
sas.mdc.Bridge
|
sas.mdc.BridgeToMessageSender
Members
Field destinationListModel
Synopsis: private java.util.Vector destinationListModel
Liste interne servant à stocker les objet DefaultListModel devant être mis à jour lors de
la réception d'une nouvelle liste de destinataires.
Method addIncomingDestListModel(DefaultListModel)
Synopsis: public void addIncomingDestListModel(
javax.swing.DefaultListModel listModel);
Parameters
Page 19
Projet CNAM – 2002/2003
Système automatique de Surveillance
Parameters
listModel - une objet DefaultListModel à mettre à jour
Ajoute un DefaultListModel à la liste interne des DefaultListModel qui doivent être
mis à jour lorsque le pont reçoit une nouvelle liste de destinataires. Les objets stockés
dans ces DefaultListModel sont de type String.
Method newDestinationList(String[])
Synopsis: abstract public void newDestinationList(
java.lang.String[] destinationList);
Parameters
destinationList - une liste d'objet String
Appelée lorsque une nouvelle liste de destinataires est reçt par le pont. Elle reçoit en
paramètre un tableau d'objet String contenant les destinataires.
Method newSasMessage(SasMessage)
Synopsis: public void newSasMessage(sas.util.SasMessage message);
Contrôle si le message reçu est du type MessageType.CONF, et si c'est le cas, traîte le
message comme tel. Sinon, appele la mé newSasMessage de la classe parent.
Class BridgeToSms
Pont filtrant vers le système de SMS. Repose sur un objet externe SmsSender.
Synopsis
public class BridgeToSms extends BridgeToMessageSender
{
// Private Fields
private Vector smsDestinationList;
// Public Constructors
public BridgeToSms();
// Public Methods
public void messageReceivedByBridge(sas.util.SasMessage message);
public void newDestinationList(java.lang.String[] destinationList);
}
Additional Information
See Also
sas.extern.SmsSender
Inheritance Path
java.lang.Object
Page 20
Projet CNAM – 2002/2003
Système automatique de Surveillance
Inheritance Path
|
sas.util.JndiConnector
|
sas.util.MainTopicConnector
|
sas.util.MainTopicReceiver
|
sas.mdc.Bridge
|
sas.mdc.BridgeToMessageSender
|
sas.mdc.BridgeToSms
Members
Field smsDestinationList
Synopsis: private java.util.Vector smsDestinationList
Liste interne des numéros de téléphone pour l'envoi de SMS.
Method messageReceivedByBridge(SasMessage)
Synopsis: public void messageReceivedByBridge(sas.util.SasMessage message);
Parameters
message - l'objet SasMessage à envoyer
Transmet le message en paramètre à la liste interne des destinataires.
Method newDestinationList(String[])
Synopsis:
public
destinationList);
void
Page 21
newDestinationList(java.lang.String[]
Projet CNAM – 2002/2003
Système automatique de Surveillance
Parameters
destinationList - la nouvelle liste des destinataires mail
Met à jour la liste interne des destinataires mail avec la liste d'adresses fournis en
paramètre.
Page 22
Projet CNAM – 2002/2003
Système automatique de Surveillance
Chapter 3. Package sas.mds
Ce package regroupe l'ensemble des classes du MDS.
Un MDS est basé sur un objet Controller, qui instancie les Watcher et
WatcherProcessor nécessaire à son fonctionnement.
Un MDS se configure en deux étapes. La première, en paramètrant son fichier de
configuration global, puis, en configurant les Watcher qui lui sont associés.
Configuration global du MDS
Le fichier de configuration global par défaut se nomme controller.properties et se
trouve dans le répertoire config de l'application SAS
Strucutre du fichier de configuration global
Paramètre
Commentaires
Status
watcher-configfile- Répertoire contenant les
folder
configuration des Watchers
fichiers
de Obligatoire
controller-lock-file
Nom du fichier créé lorsque le MDS Obligatoire
démarre
controller-run-file
Nom de fichier à créé pour arrêter le MDS
controller-senderid
Nom utilisé comme
messages par le MDS
expéditeur
Obligatoire
des Obligatoire
Configuration des Wacther
La configuration des Watcher des MDS se fait grâce à des fichiers de configuration
présent dans le répertoire watcher durépertoire de configuration config de
l'application SAS. Ces fichier de configuration contiennent les paramètres nécessaire
au bon fonctionnement des Watcher.
Structure des fichiers de configuration des Watcher
Chaques Watcher doit avoir son propre fichier de configuration, dand le répertoire
des fichiers de configuration des Wactcher. Ces fichier doivent contenir au mois trois
paramètres, le nom de la classe du Watcher (exemple: sas.mds.LinuxDiskWatcher), la
période de contrôle du paramètre système à surveiller, et le nombre de variable à
transmettre au Watcher. Si ce nombre de variables est supérieur à 0, doivent suivre
autant d'initialisation de ces variables.
Voici pour exemple le contenu du fichier de configuration d'un LinuxDiskWatcher:
# Class name
class-name = sas.mds.LinuxDiskWatcher
# Polling interval
Page 23
Projet CNAM – 2002/2003
Système automatique de Surveillance
polling-interval = 2
# Class parameters
nb-parameters = 3
parameter-value-1 = /dev/hda3
parameter-value-2 = 70
parameter-value-3 = 80
On voit que ce Watcher nécessite 3 variables: la première est le nom du disque à
surveiller, la deuxième est la limite basse, et la troisième la limite haute. Enfonction de
l'occupation du disque /dev/hda3, un message d'avertissement ou d'alarme est émis.
Class Controller
Classe principale d'un MDS, elle se charge d'ordonancer l'ensemble d'un MDS (ses
watcher, ses gestionnaires de watcher).
Synopsis
public class Controller extends MainTopicSender
{
// Package Fields
final static int SLEEPING_TIME;
// Private Fields
private File lockFile;
private File runFile;
private Vector watcherProcessorList;
// Public Constructors
public Controller();
public Controller(java.lang.String configFileName);
// Public Methods
public void startController();
public void stopController();
// Private Methods
private void loadWatcherProcessorList();
private void initWatcherProcessor(sas.mds.Watcher watcher,
int pollingInterval);
private void loopController();
}
Inheritance Path
java.lang.Object
|
sas.util.JndiConnector
|
sas.util.MainTopicConnector
|
sas.util.MainTopicSender
Page 24
Projet CNAM – 2002/2003
Système automatique de Surveillance
Inheritance Path
|
sas.mds.Controller
Members
Constructor Controller()
Synopsis: public Controller();
Initialise
l'objet
à
partir
du
fichier
de
configuration
par
controller.properties.
Constructor Controller(String)
Synopsis: public Controller(java.lang.String configFileName);
Parameters
configFileName - un nom de fichier de configuration
Initialise l'objet à partir du fichier de configuration transmis en paramètre.
Field lockFile
Synopsis: private java.io.File lockFile
Objet pointant sur le lock-file de la classe
Field runFile
Synopsis: private java.io.File runFile
Objet pointant sur le running-file de la classe
Field SLEEPING_TIME
Synopsis: final static int SLEEPING_TIME
Période interne utilisée dans la boucle principale de la classe
Field watcherProcessorList
Synopsis: private java.util.Vector watcherProcessorList
Liste interne de WatcherProcessor
Page 25
défaut:
Projet CNAM – 2002/2003
Système automatique de Surveillance
Method initWatcherProcessor(Watcher, int)
Synopsis: private void initWatcherProcessor(sas.mds.Watcher watcher,
int pollingInterval);
Parameters
watcher - l'objet Watcher associé au WatcherProcessor
pollingInterval - période du WatcherProcessor
Inititalise un WatcherProcessor.
Method loadWatcherProcessorList()
Synopsis: private void loadWatcherProcessorList();
Charge les différents watchers présent dans le répertoire de configuration des
watchers,les initialise et construit avec la liste interne des WatcherProcessor.
Method loopController()
Synopsis: private void loopController();
Démarre la boucle principale de l'objet Controller. Se charge de parcourir
périodiquement la liste interne des WatcherProcessor, de les intérroger sur l'état des
paramètres qu'ils surveillent, puis de publier des messages d'info dans la file principal.
Method startController()
Synopsis: public void startController();
Démarre
l'objet
Controller.
Ceci
déclenche
l'appel
sas.mds.Controller.loopController [ Method loopController()].
à
la
fonction
Method stopController()
Synopsis: public void stopController();
Arrête l'objet Controller. Attention, cette méthode fait appel à la fonction
System.exit(0) pour quitter le programme.
Class DiskWatcher
Classe de base pour des watcher dédié &agrave la surveillance de disque dur.
Synopsis
public class DiskWatcher implements Watcher {
// Protected Fields
protected String diskToWatch;
Page 26
Projet CNAM – 2002/2003
Système automatique de Surveillance
// Private Fields
private int hardLimit;
private int softLimit;
// Public Constructors
public DiskWatcher();
// Public Methods
public boolean initWatcher(java.lang.String[] paramList);
public ParameterStatus getParameterStatus();
public int getDiskUsage();
}
Inheritance Path
java.lang.Object
|
sas.mds.DiskWatcher
Members
Field diskToWatch
Synopsis: protected java.lang.String diskToWatch
Nom du disque à surveiller
Field hardLimit
Synopsis: private int hardLimit
Limite hard d'occupation du disque
Field softLimit
Synopsis: private int softLimit
Limite soft d'occupation du disque
Method getDiskUsage()
Synopsis: public int getDiskUsage();
Renvoie la l'occupation du disque. Cette classe renvoie toujours 0 comme occupation
disque. Cette méthode doit être surclassée par les classes filles.
Class LinuxDiskWatcher
Classe permettent de surveiller un disque sour un environnement Linux
Synopsis
public class LinuxDiskWatcher extends DiskWatcher
// Public Constructors
public LinuxDiskWatcher();
Page 27
{
Projet CNAM – 2002/2003
Système automatique de Surveillance
// Public Methods
public int getDiskUsage();
}
Inheritance Path
java.lang.Object
|
sas.mds.DiskWatcher
|
sas.mds.LinuxDiskWatcher
Members
Method getDiskUsage()
Synopsis: public int getDiskUsage();
Retourne l'occupation du disque désigné par le premier paramètre du fichier de
configuration.
Class ParameterStatus
Objet utilisé pour communiquer le status des paramètres surveillés entre les Watcher
et les WatcherProcessor.
Synopsis
public class ParameterStatus {
// Private Fields
private String statusComment;
private int statusLevel;
// Public Constructors
public ParameterStatus();
public ParameterStatus(int level, java.lang.String comment);
// Public Methods
public void setStatusLevel(int level);
public void setComment(java.lang.String comment);
public int getStatusLevel();
public String getStatusComment();
}
Inheritance Path
java.lang.Object
|
sas.mds.ParameterStatus
Page 28
Projet CNAM – 2002/2003
Système automatique de Surveillance
Members
Constructor ParameterStatus()
Synopsis: public ParameterStatus();
Initialise l'objet avec un niveau 1 et un commentaire nul par défaut.
Constructor ParameterStatus(int, String)
Synopsis: public ParameterStatus(int level, java.lang.String comment);
Parameters
level - niveau de gravité
comment - commentaire associé
Initialise l'objet avec les paramètres transmins.
Field statusComment
Synopsis: private java.lang.String statusComment
Commentaire associé au problème
Field statusLevel
Synopsis: private int statusLevel
Niveau de gravité du problème
Class WatcherProcessor
Cette classe permet d'initialiser des objets WatcherProcessor capables de piloter des
objet Watcher. Ces objet WactherProcessor font l'interface entre l'objet principal d'un
MDS, le Controller, et les objet Watcher associés au Controller.
Synopsis
class WatcherProcessor {
// Private Fields
private int pollingInterval;
private int totalElapsedTime;
private Watcher watcher;
private String watcherUserId;
// Package Private Constructors
WatcherProcessor();
// Public Methods
public void initWatcherProcessor(sas.mds.Watcher watcher,
int pollingInterval,
java.lang.String watcherId);
public SasMessage getMessage(int elapsedTime);
}
Page 29
Projet CNAM – 2002/2003
Système automatique de Surveillance
Additional Information
See Also
sas.mds.Controller [Class
[Interface Watcher>]
Controller>],
sas.mds.Watcher
Inheritance Path
java.lang.Object
|
sas.mds.WatcherProcessor
Members
Field pollingInterval
Synopsis: private int pollingInterval
Période d'attente entre deux test du paramètre à surveiller.
Field totalElapsedTime
Synopsis: private int totalElapsedTime
Compteur de temps total écoulé entre le dernier envoie d'un message SAS et de l'appel
courant à la méthode sas.mds.WatcherProcessor.getMessage [ Method
getMessage(int)].
Field watcher
Synopsis: private sas.mds.Watcher watcher
Pointeur sur une référence du watcher.
Field watcherUserId
Synopsis: private java.lang.String watcherUserId
Sender ID utilisé dans les messages SAS retournés par le watcher processor
Method getMessage(int)
Synopsis: public SasMessage getMessage(int elapsedTime);
Parameters
return - un objet SasMessage
Page 30
Projet CNAM – 2002/2003
Système automatique de Surveillance
Retourne un objet SasMessage relatif au paramètre surveillé.
Method initWatcherProcessor(Watcher, int, String)
Synopsis: public void initWatcherProcessor(sas.mds.Watcher watcher,
int pollingInterval,
java.lang.String watcherId);
Parameters
watcher - un objet Watcher
pollInterval - période entre deux appel au watcher
WatcherId -
Prépare la classe à contrôler un paramètre du système surveillé.
Interface Watcher
Interface permettant l'implémentation de nouveau modules de contrôle indépendant
du code principal de l'application SAS.
Synopsis
interface Watcher {
// Public Methods
public boolean initWatcher(java.lang.String[] paramList);
public ParameterStatus getParameterStatus();
}
Inheritance Path
sas.mds.Watcher
Members
Method getParameterStatus()
Synopsis: public ParameterStatus getParameterStatus();
Parameters
return - un objet ParameterStatus
envoie le status du paramètre système surveillé.
Method initWatcher(String[])
Synopsis: public boolean initWatcher(java.lang.String[] paramList);
Page 31
Projet CNAM – 2002/2003
Système automatique de Surveillance
Parameters
paramList - liste de paramètres
Initialise le watcher avec une liste de paramètres
Page 32
Projet CNAM – 2002/2003
Système automatique de Surveillance
Chapter 4. Package sas.util
Classes de base du système SAS.
Ce package regroupe l'ensemble des classes de bases utilisées dans le développement
du système SAS. Ces classes trouvent leurs paramètres dans un unique fichier de
configuration, le fichier sas.properties situé par défaut dans le sous répertoire
config du répertoire principal SAS, respectant le format nécessaire aux objet
Properties de Java
Description des paramètres du fichiers sas.properties
Paramètre
Commentaires
Status
jndi-serverprotocol
Dépend de la configuration du serveur Obligatoire
JNDI (rmi,tcp,...)
jndi-server-name
Hostname du serveur JNDI
Obligatoire
jndi-server-port
Numéro du port du serveur JNDI
Obligatoire
jndi-server-path
Chemin du serveur JNDI. Pas utilisé en Obligatoire
mode unifié
topic-connectionfactory
Dépend de la configuration du serveur Obligatoire
OpenJMS
queue-connectionfactory
Dépend de la configuration du serveur Obligatoire
OpenJMS
jms-user-id
Le nom d'utilisateur JMS, est aussi utilisé Obligatoire
pour identifier l'expéditeur par défaut des
messages
jms-user-password Le mot de passe du jms-userid. Pas utilisé Optionnel
pour l'instant
main-topic-name
Dépend de la configuration du serveur Obligatoire
OpenJMS
helpdesk-queuename
Dépend de la configuration du serveur Obligatoire
OpenJMS
initial-contextmode
Si la valeur de ce paramè est &agrave Optionnel
unified, le système initialise son context
JNDI
de
avec
l'objet
unifié
org.exolab.jms.jndi.InitialContextFactory,
disponible avec OpenJMS >= 0.7.5
Page 33
Projet CNAM – 2002/2003
Système automatique de Surveillance
Class HelpdeskQueueConnector
Cette classe assure l'établissement d'une connexion vers une queue de message du
serveur OpenJMS. Le nom de la file de message, le nom JNDI de la fabrique de
connexion et le nom de l'utilisateur sont récupérés dans le fichier de configuration du
package.
Synopsis
class HelpdeskQueueConnector extends JndiConnector
{
// Private Fields
private QueueConnection jmsConnection;
// Package Private Constructors
HelpdeskQueueConnector();
// Public Methods
public QueueConnection getConnection();
// Protected Methods
protected QueueConnection openConnection();
protected void closeConnection();
// Private Methods
private QueueConnection jmsConnect(java.lang.String factoryName,
java.lang.String username,
java.lang.String password);
}
Additional Information
See Also
sas.util [Chapter 4>]
Inheritance Path
java.lang.Object
|
sas.util.JndiConnector
|
sas.util.HelpdeskQueueConnector
Members
Field jmsConnection
Synopsis: private QueueConnection jmsConnection
Variable interne de type QueueConnection destinée à conserver une référence sur la
connexion JMS créée par la méthode sas.util.HelpdeskQueueConnector.jmsConnect [
Method jmsConnect(java.lang.String, java.lang.String, java.lang.String)].
Page 34
Projet CNAM – 2002/2003
Système automatique de Surveillance
Method closeConnection()
Synopsis: protected void closeConnection();
Termine la connexion au serveur OpenJMS, ouverte avec l'appel de la méthode
sas.util.HelpdeskQueueConnector.openConnection [ Method openConnection()].
Method getConnection()
Synopsis: public QueueConnection getConnection();
Parameters
une
référence
sur
la
variable
interne
sas.util.HelpdeskQueueConnector.jmsConnection [ Field jmsConnection>] de
type QueueConnection
return
Méthode
d'accès
à
la
variable
sas.util.HelpdeskQueueConnector.jmsConnection [ Field jmsConnection].
interne
Method jmsConnect(String, String, String)
Synopsis: private QueueConnection jmsConnect(java.lang.String factoryName,
java.lang.String username,
java.lang.String password);
Parameters
factoryName - le nom JNDI de la fabrique de connexion
username - le nom d'utilisateur à utiliser pour se connecter
password - le mot de passe de l'utilisateur
return - un objet QueueConnection
Etablit la connexion avec le serveur OpenJMS.
Method openConnection()
Synopsis: protected QueueConnection openConnection();
Parameters
return - un objet QueueConnection
Récupère le nom de la fabrique de connexion et l'utilisateur local dans le fichier de
configuration du package et se connecte au serveur JMS à l'aide de la méthode
Page 35
Projet CNAM – 2002/2003
Système automatique de Surveillance
sas.util.HelpdeskQueueConnector.jmsConnect [ Method jmsConnect(java.lang.String,
java.lang.String, java.lang.String)]. Repose sur les paramètres:
•
topic-connection-factory
•
jms-user-id
•
jms-user-password
Class HelpdeskQueueReceiver
Cette classe se charge d'écouter la queue du Helpdesk et encapsule les messages reçus
dans des instances de l'objet sas.util.SasMessage [ Class SasMessage]. Elle a la
possibilité de filtrer les messages en fonction des critères propres aux
sas.util.SasMessage [ Class SasMessage]
Synopsis
public abstract class HelpdeskQueueReceiver extends HelpdeskQueueConnector
// Private Fields
private QueueReceiver receiver;
private QueueSession session;
// Public Constructors
public HelpdeskQueueReceiver();
// Public Methods
public void onMessage(Message message);
public void startListener();
public void startListener(java.lang.String filter);
public void stopListener();
abstract public void newSasMessage(sas.util.SasMessage message);
// Private Methods
private void initSession();
private void initReceiver(java.lang.String filter);
}
Inheritance Path
java.lang.Object
|
sas.util.JndiConnector
|
sas.util.HelpdeskQueueConnector
|
sas.util.HelpdeskQueueReceiver
Members
Field receiver
Synopsis: private QueueReceiver receiver
Page 36
{
Projet CNAM – 2002/2003
Système automatique de Surveillance
Variable interne référencant l'objet QueueReceiver de la classe
Field session
Synopsis: private QueueSession session
Variable interne référencant l'objet QueueSession de la classe.
Method initReceiver(String)
Synopsis: private void initReceiver(java.lang.String filter);
Parameters
filter - la valeur du sélecteur de message
Initialise un receiver à l'aide de la session créée au préalable et conserve une référence
dans la variable interne sas.util.HelpdeskQueueReceiver.receiver [ Field receiver]. Si le
param&egrave filter n'est pas égal à null, sa valeur est utilisée comme
sélecteur de message. Repose sur le paramètre:
•
main-topic-name
Method initSession()
Synopsis: private void initSession();
Initialise une session à l'aide de la connexion créée par l'objet parent et conserve une
référence dans la variable interne sas.util.HelpdeskQueueReceiver.session [ Field
session].
Method newSasMessage(SasMessage)
Synopsis: abstract public void newSasMessage(sas.util.SasMessage message);
Parameters
message - un objet SasMessage représentant le message reçu
Méthode appelée à la réception d'un nouveau message.
Method onMessage(Message)
Synopsis: public void onMessage(Message message);
Appelée lors de la réception d'un nouveau message. Appele la methode
sas.util.HelpdeskQueueReceiver.newSasMessage
[
Method
newSasMessage(sas.util.SasMessage)]
Page 37
Projet CNAM – 2002/2003
Système automatique de Surveillance
Method startListener()
Synopsis: public void startListener();
Additional Information
See Also
sas.util.HelpdeskQueueReceiver.startListener
startListener(java.lang.String)>]
[Method
Initialise le récepteur de message sans sélecteur de messages. Cete méthode fait appel
au à la méthode sas.util.HelpdeskQueueReceiver.startListener [ Method
startListener(java.lang.String)] en mettant le filter à null.
Method startListener(String)
Synopsis: public void startListener(java.lang.String filter);
Additional Information
See Also
sas.util.HelpdeskQueueReceiver.initReceiver
initReceiver(java.lang.String)>]
[Method
Initialise le récepteur de message avec ou sans sélecteur de messages. L'initialisation se
fait
d'abord
en
créant
une
session
grâce
à
la
méthode
sas.util.HelpdeskQueueReceiver.initSession [ Method initSession()], puis, en faisant
appel à la méthode sas.util.HelpdeskQueueReceiver.initReceiver [ Method
initReceiver(java.lang.String)] en lui transmettant la valeur du paramètre filter.
Method stopListener()
Synopsis: public void stopListener();
Cette méthode arrête l'écoute de la queue du Helpdesk.
Class HelpdeskQueueSender
Cette classe est chargé d'offrir un nombre suffisant de méthodes pour permettre à ses
classes filles d'émettre des messages SAS dans la queue du Helpdesk. Elle dérive
directement de la classe HelpdeskQueueConnector et utilise des instance de la classe
sas.util.SasMessage [ Class SasMessage].
Synopsis
public class HelpdeskQueueSender extends HelpdeskQueueConnector
// Private Fields
private QueueSender sender;
private QueueSession session;
// Public Constructors
public HelpdeskQueueSender();
// Public Methods
public boolean startSender();
Page 38
{
Projet CNAM – 2002/2003
Système automatique de Surveillance
public boolean stopSender();
public void sendMessage(sas.util.SasMessage message);
// Private Methods
private void initSession();
private void initSender();
private Session getSession();
}
Inheritance Path
java.lang.Object
|
sas.util.JndiConnector
|
sas.util.HelpdeskQueueConnector
|
sas.util.HelpdeskQueueSender
Members
Field sender
Synopsis: private QueueSender sender
Variable interne référencant l'objet QueueSender de la classe
Field session
Synopsis: private QueueSession session
Variable interne référencant l'objet QueueSession de la classe.
Method getSession()
Synopsis: private Session getSession();
Parameters
return - un objet session
Additional Information
See Also
sas.util.SasMessage.getJmsMessage
getJmsMessage(Session)>]
Page 39
[Method
Projet CNAM – 2002/2003
Système automatique de Surveillance
Renvoie la session JMS interne de l'objet.
Method initSender()
Synopsis: private void initSender();
Initialise un sender à l'aide de la session créée au préalable et conserve une référence
dans la variable interne sas.util.HelpdeskQueueSender.sender [ Field sender]. Repose
sur le paramètre:
•
main-topic-name
Method initSession()
Synopsis: private void initSession();
Initialise une session à l'aide de la connexion créée par l'objet parent et conserve une
référence dans la variable interne sas.util.HelpdeskQueueSender.session [ Field
session].
Method sendMessage(SasMessage)
Synopsis: public void sendMessage(sas.util.SasMessage message);
Parameters
message - un message SAS
Envoie un message SAS sur la queue du Helpdesk
Method startSender()
Synopsis: public boolean startSender();
Parameters
return - true si l'appel a r&eagraveussi.
Cette méthode active la connection au serveur OpenJMS à l'aide de la méthode
parente
sas.util.HelpdeskQueueConnector.openConnection
[
Method
openConnection()]. Ensuite, elle initialise une session JMS et créé un sender sur cette
session. Elle utilise la méthode sas.util.HelpdeskQueueSender.initSession [ Method
initSession()]
pour
initialiser
la
session,
puis
la
méthode
sas.util.HelpdeskQueueSender.initSender [ Method initSender()] pour créer le sender.
Method stopSender()
Synopsis: public boolean stopSender();
Arrête le sender.
Page 40
Projet CNAM – 2002/2003
Système automatique de Surveillance
Class JndiConnector
La classe JndiConnector se charge d'initialiser le contexte JNDI. Cette classe s'occupe
aussi de la gestion du fichier de configuration du package et propose quelques
méthodes utiles au développement de sous classes:
•
Des méthodes d'accès aux paramètres du fichier de configuration
(sas.util.JndiConnector.getSasProperty [ Method getSasProperty(java.lang.String)],
sas.util.JndiConnector.getSasProperty [ Method getSasProperty(java.lang.String,
java.lang.String)])
•
Des méthodes pour l'émission de message de log (log [ Method
log(java.lang.String)], warning [ Method warning(java.lang.String)], debug [ Method
debug(java.lang.String)] et error [ Method error(java.lang.String)])
A faire:
•
Passer les variables sas.util.JndiConnector.jndiContext [ Field jndiContext] et
sas.util.JndiConnector.configProperties [ Field configProperties] en variables
statiques afin d'éviter de les initialiser à chaques instanciation d'un objet
sas.util.JndiConnector [ Class JndiConnector]. Il faut pour celà modifier le
comportement des méthodes sas.util.JndiConnector.loadConfigFile [ Method
loadConfigFile(java.io.File)] et sas.util.JndiConnector.initJndi [ Method initJndi()].
Synopsis
class JndiConnector {
// Private Fields
private Properties configProperties;
private boolean debugMode;
private InitialContext jndiContext;
private boolean silentMode;
// Public Constructors
public JndiConnector();
// Public Methods
public InitialContext getJndiContext();
public void addProperties(java.io.File propertiesFile);
public String getSasProperty(java.lang.String key);
public String getSasProperty(java.lang.String key,
java.lang.String defaultValue);
public void log(java.lang.String mess);
public void warning(java.lang.String mess);
public void debug(java.lang.String mess);
public void error(java.lang.String mess);
// Private Methods
private void initVerboseMode();
private void loadConfigFile(java.io.File configFile);
private void initJndi();
private void logMessage(java.lang.String mess, int type);
}
Additional Information
See Also
sas.util [Chapter 4>]
Inheritance Path
java.lang.Object
Page 41
Projet CNAM – 2002/2003
Système automatique de Surveillance
Inheritance Path
|
sas.util.JndiConnector
Members
Constructor JndiConnector()
Synopsis: public JndiConnector();
Charge le fichier de configuration de l'application et initialise le contexte JNDI. Le
fichier de configuration sas.util.properties est chargé par la méthode
sas.util.JndiConnector.loadConfigFile [ Method loadConfigFile(java.io.File)], puis le
contexte
JNDI
est
initialisé
en
faisant
appel
à
la
méthode
sas.util.JndiConnector.initJndi [ Method initJndi()].
Field configProperties
Synopsis: private java.util.Properties configProperties
Additional Information
See Also
sas.util.JndiConnector.loadConfigFile
loadConfigFile(java.io.File)>]
[Method
Variable interne permettant de stocker les paramètres du fichier de configuration.
Field jndiContext
Synopsis: private javax.naming.InitialContext jndiContext
Additional Information
See Also
sas.util.JndiConnector.initJndi [Method initJndi()>]
Variable interne permettant de stocker le contexte JNDI de l'application SAS.
Method addProperties(File)
Synopsis: public void addProperties(java.io.File propertiesFile);
Parameters
propertiesFile - un fichier de properties
Page 42
Projet CNAM – 2002/2003
Système automatique de Surveillance
Permet de charger un fichier de configuration supplémentaire. Les nouveaux
paramètres
sont
ajoutés
dans
la
variable
interne
sas.util.JndiConnector.configProperties [ Field configProperties]. Dans le cas où l'un de
ces paramètres existe déjà, sa valeur est remplacée par le nouveau.
Method debug(String)
Synopsis: public void debug(java.lang.String mess);
Parameters
mess - la chaîne à afficher
Affiche une chaîne précédée des caractères [DEBUG] sur la sortie d'erreur de la console.
Method error(String)
Synopsis: public void error(java.lang.String mess);
Parameters
mess - la chaîne à afficher
Affiche une chaîne précédée des caractères **ERROR** sur la sortie d'erreur de la
console et stoppe le programme avec le code de retour -1
Method getJndiContext()
Synopsis: public InitialContext getJndiContext();
Parameters
return - un objet InitialContext référencant le service JNDI SAS
Méthode d'accès au membre privé sas.util.JndiConnector.jndiContext [ Field
jndiContext].
Method getSasProperty(String)
Synopsis: public String getSasProperty(java.lang.String key);
Parameters
key - nom de la clef
return - valeur de la clef
Page 43
Projet CNAM – 2002/2003
Système automatique de Surveillance
Additional Information
See Also
sas.util.JndiConnector.getSasProperty
getSasProperty(java.lang.String, java.lang.String)>]
[Method
Renvoie la valeur de la clef du fichier de configuration.
Method getSasProperty(String, String)
Synopsis: public String getSasProperty(java.lang.String key,
java.lang.String defaultValue);
Parameters
key - nom de la clef
defaultValue - valeur par défault
return - la valeur de la clef ou à défaut le paramètre defaultValue
Additional Information
See Also
sas.util.JndiConnector.getSasProperty
getSasProperty(java.lang.String)>]
[Method
Renvoie la valeur de la clef du fichier de configuration ou une valeur par défaut si la
clef n'existe pas.
Method initJndi()
Synopsis: private void initJndi();
Initialise le context JNDI et stocke une référence dans la variable interne
sas.util.JndiConnector.jndiContext [ Field jndiContext]. Repose sur les paramètres:
•
jndi-server-protocol
•
jndi-server-name
•
jndi-server-port
Method initVerboseMode()
Synopsis: private void initVerboseMode();
Initialise le mode d'affichage des logs
Method loadConfigFile(File)
Synopsis: private void loadConfigFile(java.io.File configFile);
Page 44
Projet CNAM – 2002/2003
Système automatique de Surveillance
Lit le fichier de config sas.properties et charge les paramètres dans la variable
interne sas.util.JndiConnector.configProperties [ Field configProperties]
Method log(String)
Synopsis: public void log(java.lang.String mess);
Parameters
mess - la chaîne à afficher
Affiche une chaîne de caractère sur la sortie standard de la console.
Method logMessage(String, int)
Synopsis: private void logMessage(java.lang.String mess, int type);
Parameters
mess - la chaîne à afficher
type - le type de message
Additional Information
See Also
sas.util.LogType
[Interface
LogType>],
sas.util.JndiConnector.log
[Method
log(java.lang.String)>],
sas.util.JndiConnector.debug [Method debug(java.lang.String)>]
Permet d'écrire une chaîne de type INFO ou DEBUG sur la console. En fonction du
type de message, définit à l'aide des constantes exportées par l'interface
sas.util.LogType [ Interface LogType], la chaîne s'affiche différement sur la console.
Cette méthode privée existe pour les besoins des méthodes sas.util.JndiConnector.log [
Method
log(java.lang.String)],
sas.util.JndiConnector.warning
[
Method
warning(java.lang.String)],
sas.util.JndiConnector.debug
[
Method
debug(java.lang.String)]
et
sas.util.JndiConnector.error
[
Method
error(java.lang.String)].
Method warning(String)
Synopsis: public void warning(java.lang.String mess);
Parameters
mess - la chaîne à afficher
Page 45
Projet CNAM – 2002/2003
Système automatique de Surveillance
Affiche une chaîne précédée des caractères **WARNING** sur la sortie d'erreur de la
console.
Class MainTopicConnector
Cette classe assure l'établissement d'une connexion vers une file de message du
serveur OpenJMS. Le nom de la file de message, le nom JNDI de la fabrique de
connexion et le nom de l'utilisateur sont récupérés dans le fichier de configuration du
package.
Synopsis
class MainTopicConnector extends JndiConnector
{
// Private Fields
private TopicConnection jmsConnection;
// Package Private Constructors
MainTopicConnector();
// Public Methods
public TopicConnection getConnection();
// Protected Methods
protected TopicConnection openConnection();
protected void closeConnection();
// Private Methods
private TopicConnection jmsConnect(java.lang.String factoryName,
java.lang.String username,
java.lang.String password);
}
Additional Information
See Also
sas.util [Chapter 4>]
Inheritance Path
java.lang.Object
|
sas.util.JndiConnector
|
sas.util.MainTopicConnector
Members
Field jmsConnection
Synopsis: private TopicConnection jmsConnection
Page 46
Projet CNAM – 2002/2003
Système automatique de Surveillance
Variable interne de type TopicConnection destinée à conserver une référence sur la
connexion JMS créée par la méthode sas.util.MainTopicConnector.jmsConnect [
Method jmsConnect(java.lang.String, java.lang.String, java.lang.String)].
Method closeConnection()
Synopsis: protected void closeConnection();
Termine la connexion au serveur OpenJMS, ouverte avec l'appel de la méthode
sas.util.MainTopicConnector.openConnection [ Method openConnection()].
Method getConnection()
Synopsis: public TopicConnection getConnection();
Parameters
une
référence
sur
la
variable
interne
sas.util.MainTopicConnector.jmsConnection [ Field jmsConnection>] de type
TopicConnection
return
Méthode d'accès à la variable interne sas.util.MainTopicConnector.jmsConnection [
Field jmsConnection].
Method jmsConnect(String, String, String)
Synopsis: private TopicConnection jmsConnect(java.lang.String factoryName,
java.lang.String username,
java.lang.String password);
Parameters
factoryName - le nom JNDI de la fabrique de connexion
username - le nom d'utilisateur à utiliser pour se connecter
password - le mot de passe de l'utilisateur
return - un objet TopicConnection
Etablit la connexion avec le serveur OpenJMS.
Method openConnection()
Synopsis: protected TopicConnection openConnection();
Parameters
Page 47
Projet CNAM – 2002/2003
Système automatique de Surveillance
Parameters
return - un objet TopicConnection
Récupère le nom de la fabrique de connexion et l'utilisateur local dans le fichier de
configuration du package et se connecte au serveur JMS à l'aide de la méthode
sas.util.MainTopicConnector.jmsConnect [ Method jmsConnect(java.lang.String,
java.lang.String, java.lang.String)]. Repose sur les paramètres:
•
topic-connection-factory
•
jms-user-id
•
jms-user-password
Class MainTopicReceiver
Cette classe se charge d'écouter la file de message principale et encapsule les messages
reçus dans des instances de l'objet sas.util.SasMessage [ Class SasMessage]. Elle
dispose de plusieurs option de configuration comme la possibilité de définir un
abonn&eacute durable et de filtrer les messages en fonction des critères propres aux
sas.util.SasMessage [ Class SasMessage]
Synopsis
public abstract class MainTopicReceiver extends MainTopicConnector
// Private Fields
private TopicSession session;
private TopicSubscriber subscriber;
// Public Constructors
public MainTopicReceiver();
// Public Methods
public void onMessage(Message message);
public void startListener();
public void startListener(java.lang.String durableName);
public void startListener(java.lang.String durableName,
java.lang.String filter);
public void stopListener();
abstract public void newSasMessage(sas.util.SasMessage message);
// Private Methods
private void initSession();
private void initSubscriber(java.lang.String filter);
private void initDurableSubscriber(java.lang.String durableName,
java.lang.String filter);
}
Inheritance Path
java.lang.Object
|
sas.util.JndiConnector
|
sas.util.MainTopicConnector
Page 48
{
Projet CNAM – 2002/2003
Système automatique de Surveillance
Inheritance Path
|
sas.util.MainTopicReceiver
Members
Field session
Synopsis: private TopicSession session
Variable interne référencant l'objet TopicSession de la classe.
Field subscriber
Synopsis: private TopicSubscriber subscriber
Variable interne référencant l'objet TopicSubscriber de la classe
Method initDurableSubscriber(String, String)
Synopsis: private void initDurableSubscriber(java.lang.String durableName,
java.lang.String filter);
Parameters
filter - sélécteur de message
Initialise un subscriber à l'aide de la session créée au préalable et conserve une
référence dans la variable interne sas.util.MainTopicReceiver.subscriber [ Field
subscriber]. Le subscriber sera créé durable, avec comme nom de référence la valeur
du paramètre jms-user-id du fichier de configuration du package. Si la variable filter
n'est pas égal à null, le contenue de cette varaible sera utilisée comme sélecteur de
message. Repose sur le paramètre:
•
main-topic-name
Method initSession()
Synopsis: private void initSession();
Initialise une session à l'aide de la connexion créée par l'objet parent et conserve une
référence dans la variable interne sas.util.MainTopicReceiver.session [ Field session].
Method initSubscriber(String)
Synopsis: private void initSubscriber(java.lang.String filter);
Parameters
Page 49
Projet CNAM – 2002/2003
Système automatique de Surveillance
Parameters
filter - la valeur du sélecteur de message
Initialise un subscriber à l'aide de la session créée au préalable et conserve une
référence dans la variable interne sas.util.MainTopicReceiver.subscriber [ Field
subscriber]. Si le param&egrave filter n'est pas égal à null, sa valeur est
utilisée comme sélecteur de message. Repose sur le paramètre:
•
main-topic-name
Method newSasMessage(SasMessage)
Synopsis: abstract public void newSasMessage(sas.util.SasMessage message);
Parameters
message - un objet SasMessage représentant le message reçu
Méthode appelée à la réception d'un nouveau message.
Method onMessage(Message)
Synopsis: public void onMessage(Message message);
Appelée lors de la réception d'un nouveau message. Appele la methode
sas.util.MainTopicReceiver.newSasMessage
[
Method
newSasMessage(sas.util.SasMessage)]
Method startListener()
Synopsis: public void startListener();
Additional Information
See Also
sas.util.MainTopicReceiver.startListener
startListener(java.lang.String, java.lang.String)>]
[Method
Initialise le récepteur de message sans abonné durable et sans sélecteur de messages.
Cete méthode fait appel au à la méthode sas.util.MainTopicReceiver.startListener [
Method startListener(java.lang.String, java.lang.String)] en mettant les paramètres
durableName et filter à null.
Method startListener(String)
Synopsis: public void startListener(java.lang.String durableName);
Parameters
Page 50
Projet CNAM – 2002/2003
Système automatique de Surveillance
Parameters
durableName - le nom de l'abonné durable
Initialise le récepteur de message avec ou sans abonnement durable et sans sélecteur
de messages. Si la valeur du paramètre durableName est à null, le subscriber sera créé
non durable. Si ce paramètre est reçoit une chaîne de caractère, la valeur de celle ci est
utilisèe comme nom d'abonnè durable. Cette méthode fait appel au à la méthode
sas.util.MainTopicReceiver.startListener [ Method startListener(java.lang.String,
java.lang.String)] en transmettant le paramètres durableName et en mettant le
paramètre filter à null.
Method startListener(String, String)
Synopsis: public void startListener(java.lang.String durableName,
java.lang.String filter);
Additional Information
See Also
sas.util.MainTopicReceiver.initDurableSubscriber
[Method
initDurableSubscriber(java.lang.String,
java.lang.String)>],
sas.util.MainTopicReceiver.initSubscriber
[Method
initSubscriber(java.lang.String)>]
Initialise le récepteur de message avec ou sans abonnement durable et avec ou sans
sélecteur de messages. L'initialisation se fait d'abord en créant une session grâce à la
méthode sas.util.MainTopicReceiver.initSession [ Method initSession()], puis, suivant
la valeur de la variable durableName, en déclarant un subscriber durable ou non
durable avec les méthode sas.util.MainTopicReceiver.initSubscriber [ Method
initSubscriber(java.lang.String)] et sas.util.MainTopicReceiver.initDurableSubscriber [
Method initDurableSubscriber(java.lang.String, java.lang.String)]. Le paramètre
filter est transmis à ces fonctions.
Method stopListener()
Synopsis: public void stopListener();
Cette méthode arrête l'écoute de la file de message principale.
Class MainTopicSender
Cette classe est chargé d'offrir un nombre suffisant de méthodes pour permettre à ses
classes filles d'émettre des messages SAS dans la file de message principal. Elle dérive
directement de la classe MainTopicConnector et utilise des instance de la classe
sas.util.SasMessage [ Class SasMessage].
Synopsis
public class MainTopicSender extends MainTopicConnector
// Private Fields
private TopicPublisher publisher;
Page 51
{
Projet CNAM – 2002/2003
Système automatique de Surveillance
private TopicSession session;
// Public Constructors
public MainTopicSender();
// Public Methods
public boolean startSender();
public boolean stopSender();
public void sendMessage(sas.util.SasMessage message);
// Private Methods
private void initSession();
private void initPublisher();
private Session getSession();
}
Inheritance Path
java.lang.Object
|
sas.util.JndiConnector
|
sas.util.MainTopicConnector
|
sas.util.MainTopicSender
Members
Field publisher
Synopsis: private TopicPublisher publisher
Variable interne référencant l'objet TopicPublisher de la classe
Field session
Synopsis: private TopicSession session
Variable interne référencant l'objet TopicSession de la classe.
Method getSession()
Synopsis: private Session getSession();
Parameters
return - un objet session
Page 52
Projet CNAM – 2002/2003
Système automatique de Surveillance
Additional Information
See Also
sas.util.SasMessage.getJmsMessage
getJmsMessage(Session)>]
[Method
Renvoie la session JMS interne de l'objet.
Method initPublisher()
Synopsis: private void initPublisher();
Initialise un publisher à l'aide de la session créée au préalable et conserve une
référence dans la variable interne sas.util.MainTopicSender.publisher [ Field
publisher]. Repose sur le paramètre:
•
main-topic-name
Method initSession()
Synopsis: private void initSession();
Initialise une session à l'aide de la connexion créée par l'objet parent et conserve une
référence dans la variable interne sas.util.MainTopicSender.session [ Field session].
Method sendMessage(SasMessage)
Synopsis: public void sendMessage(sas.util.SasMessage message);
Parameters
message - un message SAS
Envoie un message SAS sur la file de message principale
Method startSender()
Synopsis: public boolean startSender();
Parameters
return - true si l'appel a r&eagraveussi.
Cette méthode active la connection au serveur OpenJMS à l'aide de la méthode
parente sas.util.MainTopicConnector.openConnection [ Method openConnection()].
Ensuite, elle initialise une session JMS et créé un éditeur sur cette session. Elle utilise la
méthode sas.util.MainTopicSender.initSession [ Method initSession()] pour initialiser
la session, puis la méthode sas.util.MainTopicSender.initPublisher [ Method
initPublisher()] pour créer le publisher.
Page 53
Projet CNAM – 2002/2003
Système automatique de Surveillance
Method stopSender()
Synopsis: public boolean stopSender();
Arrête le sender.
Class SasMessage
Cette classe modèlise les messages transmis entre les différents acteurs du système
SAS. Elle se charge de valider les informations essentielles au bon acheminement des
messages du système, mais fournit aussi une couche d'abstraction d'accès au message
JMS pour les classes dérivées des classes du package sas.util [ Chapter 4].
Synopsis
public class SasMessage {
// Private Fields
private String comment;
private String creationDate;
private int level;
private String messageCorrelationId;
private String messageId;
private String senderId;
private int type;
// Public Constructors
public SasMessage();
public SasMessage(int type, int level, java.lang.String senderId,
java.lang.String comment);
public SasMessage(Message jmsMessage) throws JMSException;
// Public Methods
public Message getJmsMessage(Session session) throws JMSException;
public void setMessageCorrelationId(java.lang.String id);
public void setType(int type);
public void setLevel(int level);
public void setSenderId(java.lang.String id);
public void setComment(java.lang.String comment);
public void setCreationDate(java.util.Date date);
public String getMessageId();
public String getMessageCorrelationId();
public int getType();
public int getLevel();
public String getSenderId();
public String getComment();
public String getCreationDate();
}
Additional Information
See Also
sas.util.MainTopicSender.sendMessage
[Method
sendMessage(sas.util.SasMessage)>], sas.util [Chapter 4>]
Inheritance Path
java.lang.Object
|
sas.util.SasMessage
Page 54
Projet CNAM – 2002/2003
Système automatique de Surveillance
Members
Constructor SasMessage()
Synopsis: public SasMessage();
Initialise les variables internes de l'objet, comme par exemple la date de création du
message.
Constructor SasMessage(int, int, String, String)
Synopsis: public SasMessage(int type, int level, java.lang.String senderId,
java.lang.String comment);
Parameters
type - type du message
level - niveau de gravité du message
senderId - ID utilisé pour désigner l'expéditeur du message
comment - commentaire associé au message
Initialise les variables internes de l'objet avec les paramètre reçus.
Constructor SasMessage(Message)
Synopsis: public SasMessage(Message jmsMessage) throws JMSException;
Parameters
jmsMessage - un objet du type java.jms.Message
Initialise les variables internes de l'objet en se référant aux corp et en-tête du message
JMS transmis en paramètre.
Field comment
Synopsis: private java.lang.String comment
Contient un commentaire propre au message.
Field creationDate
Synopsis: private java.lang.String creationDate
Contient une chaîne représentant la date de céation du message
Page 55
Projet CNAM – 2002/2003
Système automatique de Surveillance
Field level
Synopsis: private int level
Contient le niveau de gravité du message
Field messageCorrelationId
Synopsis: private java.lang.String messageCorrelationId
Contient l'ID JMSCorrelationId
Field messageId
Synopsis: private java.lang.String messageId
Contient l'ID JMS du message
Field senderId
Synopsis: private java.lang.String senderId
Contient l'ID de l'expéditeur du message, qui peut être différent de l'ID utilisé pour se
connecter au serveur.
Field type
Synopsis: private int type
Contient la valeur correspondant au type du message
Method getJmsMessage(Session)
Synopsis:
public
JMSException;
Message
getJmsMessage(Session
session)
throws
Parameters
session - la session par laquelle le message sera envoyé
Retoune un message JMS prêt à être expédié sur une file associée à la session
transmise en paramètre. Cet objet contient les informations pertinentes de l'objet
SasMessage auquel il est assoicé.
Interface LogType
Cette interface exporte deux int destinés à être transmis à la méthode
sas.util.JndiConnector.logMessage [ Method logMessage(java.lang.String, int)] pour
définir le type de message à afficher.
Page 56
Projet CNAM – 2002/2003
Système automatique de Surveillance
Synopsis
interface LogType {
// Public Fields
public final static
public final static
public final static
public final static
int
int
int
int
DEBUG;
ERROR;
INFO;
WARNING;
}
Inheritance Path
sas.util.LogType
Members
Field DEBUG
Synopsis: public final static int DEBUG
Additional Information
See Also
sas.util.JndiConnector.debug [Method debug(java.lang.String)>]
Message de type DEBUG.
Field ERROR
Synopsis: public final static int ERROR
Additional Information
See Also
sas.util.JndiConnector.error [Method error(java.lang.String)>]
Message de type ERROR. (Attention, ces messages arrêtent l'exécution du
programme).
Field INFO
Synopsis: public final static int INFO
Additional Information
See Also
sas.util.JndiConnector.log [Method log(java.lang.String)>]
Message de type INFO.
Page 57
Projet CNAM – 2002/2003
Système automatique de Surveillance
Field WARNING
Synopsis: public final static int WARNING
Additional Information
See Also
sas.util.JndiConnector.warning
warning(java.lang.String)>]
[Method
Message de type WARNING.
Interface SasMessageType
Cette interface exporte deux int destinés à identifier le type d'un message SAS.
Synopsis
public interface SasMessageType {
// Public Fields
public final static int CONF;
public final static int INFO;
}
Additional Information
See Also
sas.util.SasMessage.getType
[Class
SasMessage>],
sas.util.SasMessage.setType [Class SasMessage>]
Inheritance Path
sas.util.SasMessageType
Members
Field CONF
Synopsis: public final static int CONF
Message de configuration
Field INFO
Synopsis: public final static int INFO
Message d'information
Page 58
Téléchargement