AmdaNg: Vers une Architecture Modulaire
Discussion de conception
Pour arriver à une architecture souple et modulaire représentant les éléments
du système et leurs interactions, les différents acteurs doivent discuter,
exprimer leurs visions, et à partir de là, on pourra extraire les objets du
système et leurs caractéristiques.
Les arbres de données
L'utilisateur intéragit d'abord avec des arbres de données
dans lesquels il navigue pour sélectionner ce qu'il veut:
- l'arbre des paramètres AMDA
- l'arbre des données externes
- l'arbre perso
- le workspace
Import d'une donnée externe
Pour utiliser une donnée externe, l'utilisateur doit d'abord
en faire un paramètre AMDA: ajouter cette donnée externe à
son arbre.
Cette procédure d'ajout se fait en deux étapes au niveau du
système interne AmdaServer:
- d'abord l'enregistrement de la description du paramètre pour la création d'un instrument virtuel.
- ensuite, pour l'usage des données proprement dit, l'import des données proprement dit (valeurs numériques) au format ddsys
Usage d'un paramètre Amda
Concernant l'usage d'un paramètre Amda, le système (AmdaServer) reçoit une
demande sur un paramètre, construit une requête au format DD, soumet la requête
à DD, récupère le stream et construit un AmdaParameter et le transmet au
module qui l'a demandé.
Les modules qui ont besoin d'un tel paramètre sont par exemple PlotParam,
CondSearch ou DonwloadParam qui est pour l'instant un simple affichage ascii.
Import des valeurs d'un paramètre dans DDBase
Pour ce qui est de l'import des valeurs du paramètre dans DDbase, DD doit
d'abord disposer de l'instrument virtuel correspondant qui est sélectionné,
ouvert, et on peut alors télécharger le fichier de données (cdf via ftp,
webservice ou autre par exemple) depuis le serveur externe.
La création d'un instrument virtuel passe par la requête sur la base externe
d'informations relatives à l'instrument (unités, labels etc ...) pour les
stocker en interne (ou bien on décide que c'est dynamique ?) de façon à les
servir à l'utilisateur (pour info) ou à DDSys pour les besoins de l'instrument
virtuel.
Construction de l'arbre externe
Avant toutes les opérations de requête de données externe, d'ajout de paramètre
ou d'import d'instrument virtuel, il faut construire l'arbre des données
externes. Sa visualisation pourra être paramétrable directement sur l'IHM,
c'est à dire qu'on pourra choisir de ne voir que les données du cdaweb et
mapskp, ou bien rien, ou bien tout, ou bien un mixe.
Remarques
- Attention à ne pas confondre un paramètre Amda, localisé sur Amda server (et peut-être pas porteur de données en l'état) avec l'instrument virtuel qui lui n'existe qu'au niveau de DDSys (toujours sans données a priori).
- lorqu'un utilisateur "ajoute" un nouveau paramètre, c'est à dire construit un nouveu paramètre Amda à partir d'une donnée externe, c'est une info accessible pour d'autres utilisateurs non ?
- l'import de données se fait "à la demande" sur le proxy de DD, mais la description du paramètre est dynamique ? ou bien là aussi imagine-t-on un proxy ?
- Il faut penser au traitement d'erreur et à leur transmission à l'IHM pour tenir l'utilisateur au courant.
- Arbre externe dynamique ou bien une autre proxy ? c'est à dire une structure à la fois dynamique et présente sur AmdaServer.
Modules Principaux
On décrit les spécifications de la nouvelle architecture dans l'ordre d'appel
des élément à partir de l'action de l'utilisateur en se basant sur les
documents d'analyse.
Web Client
- html statique pour la structure de l'appli, pas de génération php like
- javascript pour les traitements, structures de données persistantes
Server Interface
point d'entrée unique du client web sur Amda_Server.
accédé via un unique fichier AmdaClient.js sur unique
fichier AmdaServeur.php avec paramètres aproprié (?action=)
et chaine xml en guise d'argument.
WorkSpace Module
espace de stockage personnel:
Data Access Module
dispose d'un espace de stockage pour les données temporaires
Documents de Modélisation
Scenarii
"Use Param"
"Add Param From External Data" (IHM, AmdaServer? )
"Create Vi"
"Import External Data" (AmdaServer? , DDserver)
"Session Init"
"View Sun Image"
Diagrammes
- Amda Classes Diagramme ( image file):
- Amda Session Initialisation dynamic diagram (img):
- Amda view external imgae dynamic diagram (img):
- Amda adding new param dynamic diagram (img):
- Amda Use Cases (image file):
- Amda System General Architecture (image file):