Développement d'utilitaires d'administration

 

Pour pouvoir effectuer la gestion de GrAnd Site, un certain nombre d'outils propres à cela devra être développé. Cela va être le cas pour l'administration des comptes-mails du site, notamment avec l'interface Mail/Web vue précédemment.
Ces utilitaires devront fonctionner sous Linux puisque nous avons fait le choix d'utiliser un serveur web et de bases de données " tournant " sous Linux.
Nous allons donc être amenés à développer trois applications devenues nécessaire après la mise en place de l'interface Mail/Web.

Ces trois programmes auront pour rôle :
· la gestion des demandes de compte et la création de ces comptes,
· la recherche et la destruction de comptes,
· la gestion des mailing-lists des groupes de GrAnd Site.

Nous convenons qu'il va de soit que ces programmes devront avoir une interface graphique, car il sera plus simple, par exemple, de sélectionner un nom d'utilisateur dans une liste déroulante qu'en mode texte dans un terminal. Dans le monde UNIX, les GUI (Graphic User Interface) sont en nombre relativement important. Nous allons donc nous consacrer à une rapide description entre les plus connues.

 

1. Description des interfaces graphiques les plus courantes

a) OSF/Motif (www.osf.org/motif/, www.opengroup.org ou www.cen.com/wm3)

Motif est le standard des interfaces utilisateurs graphiques de l'industrie. Elle est utilisée sur plus de 200 plates-formes matérielles ou logicielles.
Motif est utilisé pour faire des environnements avec des applications standards. L'inconvénient est qu'il n'est pas gratuit.

 

b) GTK (The GIMP Toolkit)

Le GTK (www.gtk.org) est une interface graphique programmable en C (ou C++ avec Gtk--). Il permet d'avoir des apparences variables (Motif par défaut).
Le GTK est en train de devenir l'outil de développement d'interfaces utilisateurs graphiques de la communauté du logiciel libre.
De plus, le GTK est sous licence LGPL (voir plus loin) : gratuit. Il est disponible sur plate-forme UNIX et Windows (95 et NT).
Comme exemple d'application, on peut citer l'utilitaire de manipulation d'image sur lequel il est basé : The GIMP. Une des particularités du GTK, est que l'on trouve un grand nombre d'utilitaires (gratuits) pour le développement rapide d'applications ; à cet égard, on peut citer glade qui permet la création rapide d'interfaces graphiques avec la génération automatique du code source.
De plus, on assiste, à un " raz-de-marée " de nouvelles applications développées à partir du GTK (voir www.gnome.org). Il paraît donc probable qu'il deviendra, dans un avenir proche, un autre grand standard comme JX ou Qt.

 

c) JX

C'est une application de développement en C++. JX est spécialisé dans la manipulation de documents, dans le modèle vue-contrôleur ; il utilise de plus le même code aussi bien pour les sorties " écran " que pour les sorties " imprimantes ".
JX est un shareware mais il n'est pas nécessaire de payer une licence pour une utilisation personnelle ou non-commerciale.
On trouve aussi des environnements de développement pour JX tels que Code Crusader (pour le développement graphique) ou Code Medic (pour le débogage)

 

d) Qt

Qt (www.troll.no) dispose de fonctionnalités que les autres outils n'ont pas, par exemple, les API entièrement en 2D (avec des rotations, changements d'échelle…). Comme JX, Qt permet d'avoir le même code pour les sorties imprimantes et écrans.
Qt est lui aussi un shareware mais pour une utilisation non-commerciale et sur plate-forme UNIX où il reste libre.

 

e) Tk

Tk (www.tcltk.com) est un bon set de widgets mais n'est pas souvent utilisé pour de la programmation en C. Il est plutôt utilisé en combinaison avec des langages scripts tels que Tcl, Python, Perl…). Il ne semble donc pas être approprié pour notre cas d'utilisation.

 

 

2. Conclusion

Nous avons donc le choix entre trois interfaces : GTK, Qt et JX. Pour notre utilisation, chacune de ces trois GUI conviendrait. Cependant, notre choix s'arrêtera sur le GTK, car étant donné cette nouveauté qui est en train de devenir vraisemblablement un standard, il semblerait intéressant de se pencher sur ce nouvel outil.
Le GTK dispose d'une licence LGPL (gratuite) et d'une documentation convenable (sans parler des groupes de discussion). Je pense donc qu'il n'y aura pas à regretter ce choix, même si JX ou Qt auraient pu être elles aussi utilisées.


Le projet GNOME

GNOME est l'abréviation de GNU's Network Object Model Environment. GNOME résout un certain nombre de problèmes qui jusque-là ont été négligés dans le monde UNIX :
· Apport d'une interface utilisateur consistante,
· Apport d'outils puissants et conviviaux pour utiliser au mieux le système UNIX,
· Création d'un standard UNIX pour la programmation par composants, pour faciliter la réutilisation de ces composants,
· Mise en place d'un mécanisme simple pour la gestion de l'impression.

Le principal objectif de GNOME est de fournir une suite d'applications conviviales sur un environnement graphique pratique à utiliser. Tout comme les autres programmes GNU, GNOME a été prévu pour fonctionner sur tous les systèmes d'exploitations " UNIX-like ".

 

1) Historique

Le projet GNU GNOME a été initialement annoncé en août 1997 et juste après une année de développement, approximativement 200 développeurs du mode entier participent au projet. L'équipe GNOME a travaillé pour créer une fondation solide pour les futurs développements du logiciel libre. GNOME fournit une boîte à outils et un ensemble de composants réutilisables pour servir de fondation aux logiciels destinés au grand public dont Linux a réellement besoin.

En janvier 1998, RedHat (une des distributions les plus populaires de Linux) a annoncé la création de RedHat Advanced Development Laboratories (RHAD). L'objectif initial était d'aider l'effort GNOME en fournissant du code source et des développeurs ainsi qu'en nous aidant à gérer les ressources du projet. L'intégralité du code contribué par le RHAD à GNOME a été fournie sous les termes des licences GNU GPL et GNU LGPL.

 

2) Programmation par composants

Les bibliothèques GNOME fournissent un environnement pour créer des applications consistantes et simplifier la tâche du programmeur. Ces bibliothèques permettent, par exemple, de manipuler les " métainformations ", c'est à dire les informations concernant les propriétés d'un fichier ; cela permet par exemple d'associer un icône à un fichier selon son type.
Une autre particularité de GNOME est son indépendance vis-à-vis du gestionnaire de fenêtre : tous les gestionnaires de fenêtres existants permettent l'exécution d'un programme GNOME.

 

3) Vocabulaire et liens

a) Vocabulaire

· Licence GNU GPL : (General Public Licence) tout le monde est autorisé à copier, redistribuer ou modifier un programme.

· Licence GNU LGPL : (Library General Public Licence) quasiment identique à la licence GNU GPL, la différence entre les deux est que si un programme est sous licence GPL et qu'un autre programmeur utilise une partie de son code il devra alors déposer son programme sous licence GPL ; en revanche si le programme d'origine était sous licence LGPL, le programmeur ne sera pas forcé de déposer son programme sous licence GPL, il pourra par exemple être commercial.

 

b) Liens

· GIMP (GNU Image Manipulation Program) : http://www.gimp.org/
· GNU : http://www.gnu.org/
· GTK+ (GIMP Tool Kit) : http://gtk.org/
· GNOME (GNU Network Object Model Environment) : http://gnome.org/
· articles sur le projet GNOME dans le magazine "Linux Magazine France".