Multiple implementations of roughly the same functionality and identical modulenames of roughly different functionality cannot be prevented as the PN community grows. It' s not a bad thing either. However , a few problems will occur in the (not so) long run if we don't think about it.
Wouldn't it be nice if every PN module would be assigned some sort of unique identification which can be used for several (some more useful than others) purposes:
- is a particular module installed? (module interoperability checks)
- module name independent permission components
- with the help of a central repository of identified modules all sorts of information can be distributed about that module (updates, security risks, monitoring etc.)
I'm sure more usefull examples are not hard to imagine.
To start of a design discussion this is an attempt at a short description of the concept I have in mind. I will use a typical scenario in the new
--begin of utopia--
I need some PN module functionality foobar
and a quick check on the pn-module-repository gives me the impression that no validated foobar
functionality is available. After some forum posting here and there I decide to develop the foobar
functionality myself. Let's begin ...
Ok, The foobar
functionality is complete. I return to the repository and apply for an identification for this module after describing what it does, who I am and some other usefull information. I get a temporary identification for the foobar
module and I'm asked to submit my module so it can enter the validation process which checks the minimal requirements automatically so foobar
will run on a specified PN version. Everything checks out fine and the identification is made final.
The identification assigned to foobar
can now be used by other modules to identify my module. For example to check whether it is installed and if not, connecting to the repository and present information on where to get it.
After some new development on foobar
I update the information in the repository. All users which have indicated this are sent an email with a notification that the module has changed.
-- end of utiopia--
The assigning of unique identification (numbers) to modules can be fully automated if desired to burden only machines with the administration of the sytem. Site managers will get somewhat more freedom in their module naming as the only fixed item in the module will be the unique identification on which all other information can be based. The numbering system can be as simple as a sequence-number or somewhat more friendly. As long as it is guaranteed to be unique and it allows for module identity checks (to prevent wannabee
modules to masquerade as a certain module) the system will work out fine.