Borsalino

 
 

 

Borsa

Architecture
Protocole de communication
Le rapprochement bancaire
Barcode


Pour approfondir

Erlang.org
Comptabilité
Club-Compt@ble

Sites utiles

Linux-France
Open Source.org
Slashdot
Freshmeat.net


Copyright © 1999-2000
Mickaël Rémond

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".

 
 
 

Dernière modification : 20 Nov 2008