[Indications][Architecture] Un problème de plug in
Bonjour,
Je suis entrain de mettre sur pied un portail et je me bloque un peu sur comment faire l'architecture de mon application.
Nous aimerions pouvoir avoir un système de plug in dans le portail de sorte que cà nous permettre de développer des modules indépendamment. Pour une application windows, c'est pas vraiment compliqué mais là je dois avouer que je ne vois pas trop comment appliqué la même chose dans le cas d'une application Web... :?
J'explique sommairement ce qu'on attend du système de plug in.
Chaque module (dénommé service) offre un ensemble d'opérations et des droits sur les objets qu'il manipule. Par exemple, si on a un module des gestions des utilisateurs, on pourra
- ajouter
- éditer
- supprimer un utilisateur.
Une fois le service recensé (donc le plug in installé - il faudra donc réaliser un installeur de plug in :aie: ), il faudra que les droits qu'il mettent à disposition soient recensés dans l'ensemble des droits du système. De sorte que le système puisse ensuite décider ou non d'attribuer un droit exposé par un service à un autre service.
Exemple.
On a les services A et B.
A introduit les droits E1, A1 sur certains objets.
B introduit les droits E2, A2 sur certains objets.
(E = Edition, A = ajout)
Pratiquement, dans l'interface du super admin, on devrait pouvoir faire E1 et A1 puisque l'admin aura tous les droits sur tous les services recensés. Maintenant, on aimerait que l'admin puisse attribuer le droit E1 à B !
J'ai cherché des tutos afin de voir comment construire des applications Web avec un système de plug in mais je n'ai pas trouvé quelque chose qui puisse réellement m'aider. Peut être ai-je mal cherché ?
Toute indication/conseil serait la bienvenue.
Merci.
PS : il y'a des portails Web qui ont un système quasi identique à ce que je viens de décrire (tel que joomla : www.joomla.org , écrit en PHP). Je pense qu'il y'a DotnetNuke qui doit avoir aussi un système de plug in (je ne sais pas, je suppose) mais le temps d'étudier leur code pour comprendre l'idée générale me semble plus pénible. (j'ai téléchargé le code de la dernière version, je l'ai sous le code au cas où ...)