Architecture
Architecture générale
L'architecture s'appuie classiquement sur le modèle
client/serveur. L'implémentation choisie du
modèle client/serveur s'inspire directement de la
philosophie Unix : le moteur ("Back-end") est
très clairement séparé de l'interface
graphique ("Front-end"). La communication entre les
deux entités s'effectue grâce à une
connexion par un canal d'échange ("Socket").
Cette architecture est très souple. Elle permet, le
cas échéant, au client et au serveur de se
trouver sur le même poste, ou sur deux postes
connectés en réseau de manière
transparente.
Sur le serveur, le programme fonctionne sous la forme d'un
"daemon", c'est-à-dire que le programme
principal de Borsalino est lancé au démarrage
de la machine et se place en attente de connexion
d'applications clientes.
Avantages
L'avantage de cette architecture séparant le client du
serveur et les faisant échanger les informations via
un protocoles formaliser est de faire reposer l'ensemble du
développement du système sur une couche
intermédiaire relativement stable.
Cette approche
-
permet de se concentrer sur la qualité fonctionnelle
de l'application en ne développant qu'une interface
rudimentaire, dans un premier temps. Par la suite, il est
alors aisé de construire une interface plus
sophistiqué, puisque l'ergonomie et la logique
fonctionnelle sont conçues de manière bien
distincte.
-
permet d'envisager le développement du client et du
serveur de manière quasi autonome et
indépendante. Des interfaces utilisateurs
différentes peuvent cohabiter en mettant en oeuvre
des caractéristiques fonctionnelles identiques
gérées par le serveur.
-
L'utilisation d'une architecture client/serveur communiquant
avec un "Daemon" via un canal permet de pouvoir espérer
développer un client pour tout type de plateforme existant. Ce
mode de communication est en fait un des plus petits
dénominateur commun de l'informatique (on peut même envisager
un client AS400 par exemple... C'est sympa, non ?).
-
Cette approche permet également de tirer le meilleur
parti des caractéristiques techniques des
différents langages de développement. Le
choix du langage de développement de la partie
serveur ne concerne en rien le choix du langage de
développement de l'interface. Dans ce cadre, il est
ainsi possible d'effectuer le choix de langage disposant
d'aptitudes particulièrespour la description de
traitements complexes, tout en utilisant des outils de
conception visuels pour la réalisation de
l'interface. Dans cette optique, le choix d'Erlang comme
langage de développement pour le moteur de
l'application est un choix stratégique pour le
projet. Il permet d'utiliser ce langage dans son poit fort
: la communication (voir exemple sur la gestion des
sockets) et la simplification de l'expression de
traitements complexes (grâce aux attributs
fonctionnels du langage). L'architecture choisie permet
ensuite d'utiliser tout autre langage adapté
à la réalisation d'interfaces graphiques
(Java, Tcl/Tk).
Voici le schéma général de l'application :
|
Schéma général de Borsalino
|
Cahiers des charges technique
Le système doit posséder sa propre méthode de gestion des
données. Il peut ainsi s'affranchir de la nécessiter de s'appuyer
sur une personne responsable de la gestion de la base de
données. Cette contrainte permet au système d'être relativement
autonome en lui permettant d'avoir un contrôle sur tous ses
éléments (y compris installation, sauvegarde, etc.).
La gestion des utilisateurs et des groupes du projet doit pouvoir
au moins partiellement s'appuyer sur la gestion des utilisateurs
et des groupes du systèmes. Il est intéressant de pouvoir importer
le contenur du fichier passwd et du fichier group, afin de
reprendre, par exemple, tous les utilisteurs du groupe
"Borsalino".
|