Glasnost

Une architecture sous forme de composants répartis

Glasnost est constitué de serveurs communiquant entre eux par des appels distants (Remote Procedure Call ou RPC). La technologie utilisée actuellement est XML-RPC  [1]. Elle a l'avantage d'être extrèmement simple (bien plus que Corba, DCOM, RMI ou SOAP), complètement indépendante du langage de programmation, et surtout de répondre parfaitement à nos besoins actuels et sans doute futurs.

Cette architecture modulaire n'est absolument pas indispensable au bon fonctionnement de Glasnost et elle a sans doute quelques inconvénients (par exemple, il est fort probable que dans sa version actuelle, le serveur s'effondrerait en cas de forte montée en charge), mais elle a l'insigne avantage de nous forcer à bien séparer les modules. Et pour un projet itératif comme Glasnost, cette conception modulaire nous permet d'ajouter, de tester et parfois d'enlever des fonctionnalités sans transformer le code en une usine à gaz.

De plus cette conception nous permet au besoin d'éclater les différents services sur plusieurs ordinateurs différents, sans aucune reprogrammation. Cela s'avère très utile, notamment pour la confidentialité des votes : dans certains types de votes, il faut impérativement séparer physiquement le serveur d'identification et le serveur contenant les bulletins de votes.

[1http://www.xmlrpc.org/