Plaquette
Dodico

Cette plaquette présente le projet Dodico, bien avant son achèvement, dans un but publicitaire, afin de le faire connaître de ses utilisateurs potentiels, et de les préparer aux changements bénéfiques qu'il pourra apporter dans l'utilisation des outils informatiques de calcul. Elle est aussi l'occasion d'appeler à contribution les futurs utilisateurs, géotechniciens, hydrauliciens, pour la définition de spécifications, leurs conseils d'utilisateurs de codes de calculs, leur opinion, ...

Dodico est un projet conduit par la Division Fonctionnelle du STCPMVN. Son thème est inédit et répond à des besoins de plus en plus pressants de la part des développeurs et des utilisateurs de logiciels du STCPMVN. Dodico n'est pas un nouveau logiciel de calcul, mais un cadre unificateur pour tous les logiciels de calcul du STCPMVN existants ou à venir. Il constitue un saut de technologie considérable en permettant d'intégrer tous les programmes comme Reflux, Lido, Curvi, ... dans un environnement moderne, souple et hautement évolutif qui permet entre autres l'échange de données entre ces programmes, l'enchaînement ou la distribution de calculs.

L'émergence d'un besoin

Les codes de calcul utilisés au STCPMVN sont nombreux et hétéroclites. Les développements de programmes se font indépendamment les uns des autres, aboutissant parfois dans des impasses. 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. Il faut donc un cadre unifiant, un fil directeur dans les activités informatiques du STCPMVN.

Les objectifs

Un environnement unique pour tous les codes de calcul

Dodico signifie "Dictionnaire de Données". Il offre 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 Dodico 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.




L'utilisateur voit tous les services à travers un modèle unique


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. Dodico est un système ouvert, s'appuyant sur des normes internationales (ISO, ANSI, ...). Il s'appuie sur les travaux de l'OMG, principalement CORBA, et est indépendant du système d'exploitation (Unix, Linux, Windows, ...) et du langage de développement (Java, C++, Lisp, ...). Toute la documentation du code source est centralisée sur un site Web dédié et très intuitif.



Extrait d'une page du site Web


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 Dodico. Ainsi, Dodico 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

"Dictionnaire de Données" signifie que 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.




Chaînage d'objets et de services


Utilisation à distance

Cette propriété est due au caractère distribué de l'environnement Dodico. 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 par Dodico 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 client de Dodico, on peut utiliser des codes de calcul comme s'ils étaient disponibles localement, sans aucun effort d'installation. Si le client est écrit en Java - ce sera le cas puisque l'interface de Dodico sera écrite avec Ebli, une bibliothèque de composants graphiques en Java - alors on peut même travailler avec des codes de calcul à partir d'un navigateur Web comme Netscape Navigator®, Netscape Communicator® ou encore Internet Explorer®, de n'importe quelle machine du globe terrestre, sous réserve que l'on y soit autorisé (par mot de passe par exemple).

Distribution de calculs

Dodico gère la présence d'un même service (un code de calcul comme Reflux par exemple) sur plusieurs machines serveurs en même temps. Ceci permet de "distribuer" les calculs en fonction de critères comme l'état de charge des machines, la proximité sur le réseau, ... Encore une fois, ce comportement de Dodico est invisible pour l'utilisateur qui de son côté ne voit qu'un seul Reflux. La répartition de calculs lancés par plusieurs utilisateurs est de ce fait optimale, rendant plus efficace pour chacun le service choisi. Si le code sous-jacent permet de sauvegarder des états intermédiaires de calcul, il est possible de déplacer un processus en cours d'exécution vers une machine moins chargée.



Flux d'informations sur le réseau entre matériels et logiciels hétérogènes


Anecdote : Il y a peu, il a été nécessaire de calculer 179 cas Aisne/Oise sous Lido. Chaque cas prenait environ 25 minutes. L'ensemble a donc immobilisé une station de travail pendant 3 jours, une attente assez conséquente. Avec Dodico, il aurait été possible de répartir de manière transparente les calculs sur les 5 stations de travail du STCPMVN, par exemple en soirée. Les résultats auraient été disponibles le lendemain matin.

Tolérance aux pannes

De même que pour la distribution de calculs, la réplication des services sur plusieurs sites permet de détecter les pannes (réseau, disque, ...) et de relancer immédiatement tout processus en cours sur une autre machine, sans intervention de l'utilisateur. Ici encore, si le code de calcul sous-jacent supporte les sauvegardes intermédiaires, il est possible de reprendre un calcul dans l'état où il était juste avant la panne.




L'utilisateur est reconnecté à la machine 2 lorsque la machine 1 tombe en panne

Le contexte

L'équipe de développement

Dodico est développé par le STCPMVN, Division Fonctionnelle, et le GHN (Groupe d'Hydraulique Numérique de l'UTC) sous la conduite de Guillaume Desnoix (STCPMVN). La partie hydraulique a fait l'objet d'une convention avec le GHN (Groupe d'Hydraulique Numérique).
 
STCPMVN Cornet Jean-Michel Spécifications
Desnoix Guillaume Projet, site web, spécifications, développement
Morel Gilles Selon disponibilités
Sergent Philippe Spécifications, développement
Von Arnim Axel Projet, spécifications, développement
GHN Hadji Sofiane Spécifications, développement
Marchand Bertrand Spécifications, développement

Appel à contributions

Les conseils des spécialistes métiers (hydrauliciens, géotechniciens, ...), voire leur participation à la rédaction de spécifications sont recherchés. En particulier, le développement des objets métiers, Houle, Courant, ... peut être ainsi amélioré. De même, il serait souhaitable que le développement informatique (nouveau code, maintenance, amélioration) suive une ligne de conduite apte à faciliter son intégration dans Dodico.

Quelques dates

Le projet a officiellement débuté en février 1998 par la rédaction de spécifications et le choix des technologies. Le développement a commencé en mars. Le coeur en est pratiquement terminé. Le développement des objets métiers avance par morceaux : il est confié aux spécialistes concernés, ainsi qu'à des stagiaires. Une version utilisable de test, pour le domaine de l'hydraulique, est prévue pour décembre 1998. Une version avec interface client graphique est prévue pour mars 1999. Les domaines de la géotechnique, des calculs d'ouvrage, ... seront intégrés progressivement.

Contacts, précisions

Le site web du projet est accessible au personnel du STCPMVN. Son lien est : http://172.17.250.86/~desnoix/dodico/. Il contient toute la documentation, le code source, des informations sur le déroulement, et les conventions. Vous pouvez demander des précisions techniques ou faire des remarques à l'ensemble de l'équipe en envoyant un mél à dodico@memoire.com .


Guillaume Desnoix
STCPMVN, DF, SSE
Bureau 111
Mél: guillaume.desnoix@cetmef.equipement.gouv.fr
Tcp: 03 44 20 06 75

Edition: STCPMVN © 1998
Réalisation: Guillaume Desnoix, Axel von Arnim
Impression: 13 juillet 1998 à Compiègne


Ring

top news PRODUCTS, location Aubervilliers, Globalwarming Awareness2007 Awareness2007 Globalwarming, SF, Delhi, ...