Contenu
Présentation du projet
12 juillet 2011
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.
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.
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.
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.Échange 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.






