SGBD : développez universel ou ne développez pas !

Sashipa-Melba est une technologie de développement d'interfaces de bases de données un peu particulière. Elle fonctionne sous Windows et Linux. Elle est open-source et gratuite. Vous la trouverez sur www.sashipamelba.com/fr/.

 

 Logiciels générés

Les applications générées se composent d'une succession d'écrans. En voici quelques-uns tirés de l'interface DemoContact :

Le menu général :

En cliquant sur "Recherche de Contacts", on ouvre l'écran suivant :

Puis, en double-cliquant sur la deuxième ligne, on obtient la fiche de Jean-Paul :

On a donc des écrans pour les menus, les recherches, les ajouts - consultations - modifications.
De plus, on peut imprimer et exporter chaque liste depuis de son menu contextuel :

 

 Créer votre application

Je prendrai comme exemple la base DemoContact (la base de démonstration du kit de développement). Vous pouvez bien sûr transposer les commandes pour travailler sur une autre base.

Installations préliminaires :

  • Installer le JDK (alias J2SDK) 1.4 de Sun (java.sun.com)
  • Télécharger, puis dézipper le MelbaLab. (pas trop loin de la racine si vous êtes sous Windows)
  • Editer le fichier <melbalab-home>\s2m.bat (Windows) ou <melbalab-home>/s2m (Linux) et définir le chemin d'accès au JDK.
  • Installer un SGBD supporté, plus son pilote JDBC / ODBC (voir la grille de compatibilité)
  • Créer la base de données DemoContact (voir le script SQL à la fin du fichier <melbalab-home>/samples/democontact_fr.xml).

Un joli petit dessin pour résumer les étapes de construction :

Etape 1 :

  • Dans un shell / une boîte DOS, allez dans le répertoire du MelbaLab
  • Vérifiez que votre pilote JDBC est supporté par Database2Sashipa (grille de compatibilité), puis entrez la commande qui suit :

 d2s 

Cette commande vous affiche les options de connexion disponibles. Relancez-là avec les informations de connexions vers votre SGBD. Par exemple, avec PostGreSQL :

 d2s -s postgresql -db DemoContact -u chocolat -p "70%" -cn "//localhost/DemoContact" -f "src_xml/democontact_auto.xml" -l fr 

  • Magique : le fichier democontact_auto.xml est apparu dans <melbalab-home>/src_xml/

Etape 2 :

  • Toujours dans un shell et dans le répertoire <melbalab_home>, saisissez :

 s2m democontact_auto 

  • Re-magique : le fichier democontact_auto.jar est apparu dans <melbalab-home>/result/

Il ne vous reste plus qu'à exécuter l'application résultat. Soit en double-cliquant dessus, soit avec la commande :

 java -jar result/AppliDemocontact/guiDemocontact/GuiDemocontact.jar 

 

Simple non ?

Avec Sashipa-Melba, plus besoin de développer !
Trop simple me direz-vous, mais l'application générée ne correspond pas à vos besoins...
J'y viens justement, et il me reste aussi la première moitié du titre à expliquer.

 

 Le langage Sashipa

Présentation de Sashipa

Le fichier généré par l'étape 1 est écrit dans un langage XML bien particulier : le Sashipa. Comme tout fichier XML, c'est un fichier texte que vous visualiserez avec votre éditeur préféré (Jext, UltraEdit, Emacs, notepad, vi, ...) . Il constitue le source de votre application.

En effet, Sashipa est un langage de description. Il permet de développer votre application entièrement, uniquement en la décrivant. Database2Sashipa (le programme de l'étape 1) vous propose un source par défaut à partir d'une connexion à une base de données. Mais il est bien sûr possible de le modifier ou de le ré-écrire complètement. Vous écrirez donc en Sashipa l'application qui correspond à vos besoins.

Elément Architecture d'une application Sashipa

Un fichier Sashipa est constitué de trois parties :

  • L'environnement
  • L'interface utilisateur
  • L'architecture

Vous apprendrez à écrire un fichier Sashipa complet dans www.sashipamelba.com/fr/. Dans le cadre de cet article, nous nous contenterons de jeter un coup d'oeil sur la dernière partie, qui est extrèmement simple : les éléments serverSet et architecture.

Les voici les voilà :

  <serverSet>
    <server name='srvDemoContact' type='embeddedInGui'>
      <dbConnection database='dbContact' type='jdbc' dbmsType='PostGreSQL'>
        ...

      ... element configStorage ...
      ... element logStorage ...
    </server>
  </serverSet>

  <architecture>
    <guiInstance gui='guiDemoContact' type='application'>
      <guiResourceName>GuiDemoContact</guiResourceName>
      <usedConfigStorage server='srvDemoContact' />
      <usedServerForDatabase server='srvDemoContact' database='dbDemoContact' />
    </guiInstance>

    <languageDefinitionSet mainLanguageDefinition='french'>
      &frenchDefinition;
    </languageDefinitionSet>
  </architecture>

Remarquez l'attribut de l'élément dbConnection : dbmsType='PostGreSQL'. Si vous changez simplement 'PostGreSQL' en 'Interbase' ou 'MySQL', alors le MelbaLab vous générera une application pour Interbase ou MySQL. C'est en effet le seul endroit dans le fichier, qui contient des informations spécifiques au SGBD. Ainsi, le code décrivant l'environnement et l'interface utilisateur est indépendant du SGBD.

Vous pouvez aussi remplacer 'application' par 'applet' et une applet sera générée. Vous choisirez 'servlet' plutôt que 'embeddedInGui' si vous souhaitez générer une servlet pour activer la gestion multi-utilisateurs. Enfin, l'application générée est une application Java et fonctionnera sur tout Système d'Exploitation disposant d'une machine virtuelle Java.

SQFD ! Vos développements ne sont pas liés aux spécificités de votre environnement, ils sont indépendants de vos contraintes techniques : vous développez universel !

Thomas