Survol de Glasnost
Il y a plusieurs types d'utilisateurs dans Glasnost, les administrateurs qui ont le droit de tout faire sur les serveurs où ils sont administrateurs. Cela comprend par exemple la création de nouveaux objets. Les Éditeurs qui peuvent modifier un objet créé. Et les Lecteurs qui n'ont eux le droit que de lire les objets. Il vous est bien sur possible de définir de nouveau type pour vos serveurs si vous en avez besoin.
Glasnost est découpé en 3 parties:- common utilisé par les 2 autres
- server est la partie où se fait le traitement, chaque application de Glasnost est en fait un serveur XML-RPC. Que la partie cliente interroge.
- proxy permet des appels simplifié au serveur XML-RPC. web hérite de proxy pour offrir des services supplémentaires d'affichage.
On retrouve la plupart des classes en 3 exemplaires. Une classe pour chaque partie Glasnost. Plus une autre implantation dans web si nécessaire.
Ce diagramme montre les classes définies dans le package glasnost.common.
- BaseThing est l'objet de base de tous les autres objets de Glasnost.
- ObjectCommon contient la définition des champs de bases comme id, language et version. Ainsi que le type thing de l'objet.
- XXXCommon est une classe à définir si vous souhaitez créer un nouveau serveur. Il vous faudra définir vos propres champs et indiquer quelques paramètres comme par exemple si l'objet peut-être utilisé avec le cache. Cette classe contient la méthode getLabel qu'il faut surcharger.
- AdminWithoutWritersCommon retire le champs id et language qui ne servent pas dans cette classe et les classes qui en hérite.
- AdminCommon définit les readers et les writers.
- AdminXXXsCommon est une classe à définir si vous souhaitez créer un nouveau serveur. Vous pouvez ajouter vos propres champs si vous le souhaitez.
Ce diagramme montre les classes définies dans le package glasnost.server. Les classes en jaunes ne sont pas dans le ce package mais dans un répertoire dédié au serveur. Chaque serveur a son propre répertoire. Les classes en bleu proviennent du packages common.
- BaseThing hérite de BaseThing du package common
- server est le serveur de base, si votre application n'a pas besoin de ce qui se trouve dans ObjectsServer, vous pouvez créer vos serveur à partir de cet objet.
- ObjectsServer est l'objet dont doit hériter vos serveur si vous souhaitez avoir en plus fonctionnalités de server, la gestion des virtual servers, la manipulation des objets ajout, suppression, ... Ce serveur est le plus couramment utilisé.
- XXXsServer est une classe à définir si vous souhaitez créer un nouveau serveur. Vous mettrez les methodes dont vous avez besoin pour rendre les services que votre serveur doit offrir.
- XXX est une classe à définir si vous souhaitez créer un nouveau serveur qui permet la création d'objet
Ce diagramme montre les classes définies dans le package glasnost.proxy. Les classes en bleues proviennent du package common. Pratiquement chaque objet de la partie serveur retrouve sont équivalent dans cette partie. Nous ne décrirons donc que les objets qui ont un comportement différent de celui du serveur.
- XXXsProxy est une classe à définir si vous souhaitez créer un nouveau serveur. Elle contient les méthodes appelables sur le serveur. Les paramètres peuvent varier par rapport aux paramètres des mêmes méthodes côté serveur. Il est possible d'ajouter des méthodes utiles dans cette classe pour la partie cliente. Une méthode qui regroupe l'appel à plusieurs méthodes du serveur par exemple.
Ce diagramme montre les classes définies dans le package glasnost.web. Les classes en gris proviennent du package proxy. Les objets web héritent directement des objets proxy en apportant des méthodes supplémentaires spécifiques pour l'affichage dans un navigateur.
- ObjectsWebMixin contient les méthodes qui permettent l'affichage d'un objet, sa modification, son administration...
- XXXs est une classe à définir si vous souhaitez créer un nouveau serveur. Si vous souhaitez modifier l'affichage par défaut fait dans ObjectsWebMixin vous pouvez surcharger une ou plusieurs méthodes. Lors de la surcharge de ces méthodes vous avez la possibilité d'ajouter des arguments aux méthodes. Si ces arguments existe dans l'URL qui à fait appel à ce serveur, ils sont passés de façon automatique à votre méthode.
- AdminXXXs ne modifie rien par rapport au proxy mais il est présent pour une raison d'uniformité.
- XXX cette classe contient des propriétés supplémentaires à ajouter aux champs de l'objet. Ces propriétés sont en faites utilisées pour savoir comment afficher un champs de façon automatique.