Cet article est un partage d'expérience sur l'intégration de l'outil de modélisation Enterprise Architect avec la base de données Apache Derby.
Enterprise Architect propose des fonctions de rétro-ingénierie compatible avec la plupart des moteurs de base de données (MySQL, Ms SQL Server, PostgreSQL, Oracle, etc.). EA requiert une connexion ODBC pour interroger la base de données et récupérer la définition du schéma relationnel de base de données.
Le projet sur lequel je suis intervenu avait besoin de générer sous EA les modèles de données pour une base Derby existante, ce en vue de l'analyse et de la conception de sa future version. En l'absence d'un support Derby sous EA, la solution s'est portée sur la réalisation d'un script pour importer le contenu d'un fichier DDL. Derby permet en effet de générer un fichier DDL (contenu SQL) via la commande dblook.
La solution d'intégration entre DERBY et EA s'est opérée en deux étapes :
La fonction Sécurité de l'outil Sparx Enterprise Architect permet de définir des utilisateurs, groupes, et permissions pour contrôler les accès sur un référentiel de modèles partagé. Cette fonction est souvent activée sur une base de données centralisée (MySQL, Postgres, SQL Server...) dans laquelle l'intégralité de données d'un projet EA sont stockées. L'annuaire Windows Active Directory est supporté afin d'authentifier un utilisateur selon sa session Windows.
EA permet d'exporter la liste des utilisateurs, groupes et permissions configurés sur un projet au format XML. Le fichier généré peut alors être utilisé pour copier cette configuration vers d'autres référentiels Enterprise Architect. J'ai récemment été en charge de fournir un export Excel pour aider les administrateurs d'une équipe dans la gestion des droits d'accès par l'extraction régulière des informations suivantes : liste des comptes utilisateurs et groupes associés, liste des permissions activées pour chaque groupe puis chaque compte utilisateur.
L'un des atouts majeurs de l'outil Enterprise Architect est d'être complètement ouvert via son interface (API). J'ai ainsi été en mesure de réaliser un script VB sous EA pour obtenir un export Excel personnalisé en interrogeant la base de données du projet. Malgré un bon niveau de documentation de l'API, je ne pouvais pas obtenir et générer simplement le nom des permissions à partir des identifiants obtenus.
Une vérification manuelle, permission par permission, m'a permis de produire un tableau de correspondance - mapping. Cet article présente le contenu de ce tableau car il peut servir pour des cas similaires.