2004/01/23 12:22:41

Présentation

Fudaa est un projet conduit par la Division Développement Informatique et Modélisation du CETMEF. Son thème répond à des besoins de plus en plus pressants de la part des développeurs et des utilisateurs de logiciels du CETMEF et du LHN (Laboratoire d'Hydraulique Numérique). Fudaa n'est pas un nouveau logiciel de calcul, mais un cadre unificateur pour tous les logiciels de calcul du CETMEF existants ou à venir. Il permet d'intégrer tout code de calcul dans un environnement moderne, souple et hautement évolutif.

L'émergence d'un besoin

Codes de calcul indépendants

Les codes de calcul utilisés au CETMEF sont nombreux et hétéroclites. Les développements de programmes se font indépendamment les uns des autres. L'ergonomie est souvent ignorée. La conduite d'un calcul complet est fastidieuse: elle passe la plupart du temps par un préprocesseur qui prépare les données en entrée, puis le code de calcul à proprement parler, et enfin un post-processeur qui traite les résultats afin de les rendre utilisables. Ces trois parties sont indépendantes dans leur utilisation, elles ne communiquent que par la production d'un fichier à chaque étape.

Les enchaînements de calculs, le couplage de codes sont difficiles également car les programmes sont monolithiques et ne respectent aucune norme commune d'échange de données. Autre difficulté: la mise à jour ou l'introduction d'un nouveau code nécessite une installation et une information lourdes pour le responsable informatique et les utilisateurs. Il faut réapprendre un nouveau logiciel, maîtriser un nouvel environnement. L'entretien des codes est malaisé pour les mêmes raisons.

Il apparaît naturellement le besoin de rationaliser le développement informatique autour d'un outil centralisateur qui rendrait transparent aux utilisateurs la modification et l'introduction de logiciels, ce qui simplifierait leur utilisation et offrirait un environnement commun et stable.

Interfaces graphiques obsolètes

Il existe des programmes graphiques indépendants, pour les pré-traitements et post-traitements, mais de technologie ancienne, peu conviviale et fonctionnant sur des machines spécifiques. Ils sont fortement liés aux codes de calcul associés. Il faut donc effectuer des modifications pour chaque mise à jour d'un code. Ceci est long, coûteux et fastidieux.

C'est à partir de ces constats qu'a été construite la plate-forme Fudaa.

Les apports de Fudaa

Un environnement unique pour tous les codes de calcul

Le premier avantage de Fudaa est d'offrir un modèle de données objet unique dans lequel s'insèrent tous les codes de calcul de façon normalisée. Quel que soit le code utilisé, les données en entrée sont chargées de la même manière et les données en sortie ont la même forme également. Le lancement des codes se fait de façon unique, à travers Fudaa qui se charge du travail spécifique au lancement direct de chacun des codes. Il n'y a donc plus qu'un seul modèle entre l'utilisateur et les codes, et donc un apprentissage d'autant plus réduit.

flux
L'utilisateur voit tous les services à travers un modèle unique.
Cliquer sur l'image pour l'aggrandir

Pour le développeur d'applications utilisant ces codes, les bénéfices sont les mêmes. L'interface de programmation est très homogène et nécessite un très faible effort d'adaptation.

Souplesse et facilité d'intégration de nouveaux codes

La normalisation des procédures d'appel aux codes et de leurs entrées/sorties permet d'y intégrer de nouveaux codes sans effort considérable, en respectant seulement les règles du modèle proposé par Fudaa. Ainsi, Fudaa est une plate-forme évolutive dans laquelle les utilisateurs voient apparaître de nouveaux services de façon transparente, sans difficulté d'installation ni d'apprentissage. La modification ou même le remplacement de codes de calcul est également invisible à l'utilisateur qui conserve toujours la même interface d'appel.

Echange de données, chaînes de calculs

Les données sont représentées dans des structures communes et donc partageables. Ceci permet d'échanger des données entre plusieurs modules (calculs). Par exemple, les résultats d'un calcul peuvent être transmis en entrée à un autre calcul. Le couplage de code, les chaînes de calculs sont donc enfin possibles de façon simple et intuitive. Ceci est possible grâce à l'encapsulation (la remise en forme) des données spécifiques à chaque code dans des objets "métiers" (des structures de données) de haut niveau, comme l'objet Houle, ou Courant, indépendants des codes de calcul. Ces objets, beaucoup plus intuitifs pour l'utilisateur puisque proches de son métier, sont le pont entre les codes.

Utilisation à distance

Cette propriété est due au caractère distribué de Fudaa. Distribué signifie qu'il est réparti sur le réseau local, c'est-à-dire que certains services sont sur une machine physique, d'autres ailleurs, certains sont sur plusieurs machines en même temps. Grâce à la technologie CORBA, les objets manipulés sont "distants", et ceci de façon transparente. L'utilisateur les manipule sur sa machine comme s'ils y étaient, mais sans qu'il ait à s'en préoccuper, il interagit en fait avec des objets répartis sur d'autres machines. Ainsi, partout où est installée une application cliente, on peut utiliser des codes de calcul comme s'ils étaient disponibles localement, sans aucun effort d'installation.

Interface graphique conviviale, extensible et portable

A partir de l'interface de communication, le projet Fudaa permet de construire une interface graphique. Pour cela, Fudaa offre une bibliothèque de composants graphiques réutilisables.

Une base de composants faciles à assembler permet de créer, pour un code de calcul donné, une interface très rapidement. Les interfaces créées ont un aspect homogène puisqu'elles sont faites avec les mêmes briques de base. Il est alors beaucoup plus agréable pour les utilisateurs de découvrir un nouveau programme puisqu'ils en maîtrisent déjà l'interface.

Les composants sont des objets Java, donc susceptibles d'être enrichis à volonté. De nouveaux composants peuvent être ajoutés. Il ne s'agit plus de réécrire une interface, mais d'utiliser les composants de Fudaa, en complétant éventuellement par de nouveaux composants. Le travail à fournir est donc réduit à la conception de ce qui est nouveau seulement.

Les composants graphiques étant écrits en Java, ils sont très largement portables. Un composant écrit une fois est utilisable aussi bien sous UNIX que sous Windows® ou n'importe quel autre système supportant Java. D'autre part, les composants sont fondés sur la librairie Swing®, indépendante du système d'exploitation. Ceci implique que les composants ont exactement le même aspect sur toutes les plates-formes.

Travail collaboratif

Le CETMEF cherche par l'intermédiaire de Fudaa à favoriser le développement collaboratif.

Pour cela, le CETMEF propose une convention à ces partenaires. La convention assure que le CETMEF rendra les sources et la documentation du projet disponible. En signant cette dernière, le partenaire s'engage à fournir toutes les modifications effectuées dans le projet.