|
SHOP
Shared Object Persistent SHOP, est une
bibliothèque Eiffel pour les amateurs d'Eiffel
qui désirent créer des applications
distribuables dont les différents processus
partagent un système de données
permanentes. Contrairement aux autres systèmes
de base de données qualifiées
orientées objets, SHOP est transparent pour le
programmeur qui utilise les instances d'objets
persistants.
De très nombreuses applications, notamment
dans le domaine de la gestion doivent travailler en
multi-postes. Actuellement, les postes sont
connectés entre eux par un réseau
local. Dans tous les cas, on dispose du protocole de
transport TCP. SHOP s'appuie sur les soquets de communication TCP.
L'application réalisée avec le
support de SHOP place la racine des ses
données dans un magasin (warehouse) . Si
l'application tourne en mode solitaire, celle-ci se
comporte comme n'importe quelle application Eiffel.
Notamment, elle parcoure les structures de
données comme elle le fait usuellement avec
des structures classiques d'EiffelBase, ou de Gobo.
Une légère différence
apparaît lorsqu'il s'agit de modifier un
élément dans une structure, voir la
structure elle même. Pour modifier un
élément stocké dans le magasin,
il faut obtenir une réservation. Ceci est un
élément du contrat. Ainsi par exemple,
une table partagée n'est pas extensible sauf
si elle est réservée. En mode
solitaire, cette réservation est relativement
formelle, car elle ne risque pas d'échouer.
Par contre, dès qu'une instance de
l'application tourne en mode serveur et d'autres
tournent en mode client, il se peut que certaines
réservations soient refusées car
l'objet souhaité est déjà
réservé. Nous nous retrouvons
confronté aux questions traditionnelles de la
programmation en contexte de concurrence. Sauf qu'ici
on ne doit pas faire attention à des
sémaphores, à des questions de
mémoire ou à des
« threads ». Il faut seulement
avoir une politique de réservation de telle
sorte à minimiser les risques d'échecs
et d'inter-blocage. Ces questions sont
évidemment les vrais questions de toute
application concurrente.
Certes, SHOP est très loin du niveau
conceptuel de SCOOP mais il est immédiatement
disponible. De plus il est en exploitation
réelle depuis quelque temps et sa
fiabilité est assez bonne pour des
performances que les bases de données
traditionnelles (relationnelles) pourraient bien
envier.
Pour en savoir plus, consultez le manuel
d'utilisation ici
Abstraction.ch all rights reserved
|