eclipselabs / passerelle

Passerelle, an actor-based process engine based on Ptolemy II
5 stars 3 forks source link

Provide an actor-version-control service #28

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
Actor implementations may evolve, just like any other software component.
This may cause incompatibilities for existing models using such evolving actors.
Problems may be related to assumed behaviour, available ports and/or parameters 
etc.

A simple approach to manage this problem, could be based on some form of 
version-control.
- Actors could have a traditional version identifier, e.g. matching OSGi bundle 
version conventions.
- Model definitions should store the assumed/required supported actor version 
(ranges?).
- Upon loading a model in a Passerelle model editor, a check could be performed 
on current versions of the actor implementations
against assumed/required versions within the model file(s).
-- I.c.o. major version increase, warnings could be generated. The modeler can 
then choose to confirm that all's well, 
or can replace the impacted actor by its new version. (e.g. to correct 
available ports/parameters).
- Upon loading a model in a Passerelle runtime, to execute it, some version 
validation could also be considered.

A simple check on major version nr is the most straightforward version control 
strategy. 
But this may impact versioning conventions in some projects.
E.g. where actor bundles are considered part of a complete packaged solution 
and bundle versions follow the overall application versioning.
In such cases it often happens that the application increases its major version 
and actors go along, even without compatibility-breaking changes...

Original issue reported on code.google.com by erwin...@gmail.com on 30 Apr 2012 at 2:20

GoogleCodeExporter commented 9 years ago

Original comment by erwin...@gmail.com on 30 Apr 2012 at 2:23

GoogleCodeExporter commented 9 years ago
The underlying version validation service (possibly based on multiple 
strategies) is implemented in the engine. 

But the actual version-checking action will only be added in the Swing-based 
HMI, currently.

After refactoring the MomlParser, based on ActorProvider implementations 
registered as OSGi services, the triggering of actor-version-validation will be 
extended to the OSGi-based Passerelle runtimes.

Original comment by erwin...@gmail.com on 1 May 2012 at 4:08

GoogleCodeExporter commented 9 years ago

Original comment by erwin...@gmail.com on 4 May 2012 at 10:44