-
1. Re: where to put the node configuration information
mvaldes Aug 14, 2007 5:57 AM (in response to tom.baeyens)I personally liked the approach started in the inheritance-mix prototype. PVM db schema remains the same (node + NodeBehaviour tables) while changes only impact the languages implementations:
BPEL_activity, JPDL_activity and XPDL_activity tables will contain the specific attributes (table columns) required by each node implementation: i.e links, partnerships, userid...
For sure this requires process languages updates when changing, adding or removing attributes from node implementations.
Are not those changes/updates easy to handle than working with wire descriptors persistence ?
Just to "fire" the debate :-)
regards,
Miguel Valdes -
2. Re: where to put the node configuration information
tom.baeyens Aug 14, 2007 10:46 AM (in response to tom.baeyens)"mvaldes" wrote:
Are not those changes/updates easy to handle than working with wire descriptors persistence ?
that is definitely not the case. as messing with wire descriptors is a one time job that is done by us.
managing the db schema has to be done by our users, meaning the operators that keep our applications in production. so that effort needs to be multiplied by the number of installations of our products..."mvaldes" wrote:
Just to "fire" the debate :-)
good that you did.
you reminded me of the previous outcome of this discussion. now, i recall that we were going to do the mixed inheritence for the process languages.
and if then the process languages need an extra configuration property, they still can use the wire descriptors to add that configuration property without touching the db schema.
so the mixed inheritence was used for the things we initially ship. and the wire descriptors are used for the additions/changes. -
3. Re: where to put the node configuration information
mvaldes Aug 14, 2007 11:28 AM (in response to tom.baeyens)"tom.baeyens@jboss.com" wrote:
that is definitely not the case. as messing with wire descriptors is a one time job that is done by us.
managing the db schema has to be done by our users, meaning the operators that keep our applications in production. so that effort needs to be multiplied by the number of installations of our products...
I see your point but this is real life in mostly every software solution: when a new version is out a database migration tool must be provided...
but anyway, if we can do better, i'm ok with that !"tom.baeyens@jboss.com" wrote:
you reminded me of the previous outcome of this discussion. now, i recall that we were going to do the mixed inheritence for the process languages.
and if then the process languages need an extra configuration property, they still can use the wire descriptors to add that configuration property without touching the db schema.
so the mixed inheritence was used for the things we initially ship. and the wire descriptors are used for the additions/changes.
Know I remember too (this is why a forum is useful :-) this is a good approach that I see we can easily apply for instance when adding a new node type. But what happen if we just need to add a new attribute in a previous Flow node implementation?
Shall we use wire descriptors for that ?
In this case it will not be always easy to know where things are stored...
regards,
Miguel Valdes -
4. Re: where to put the node configuration information
tom.baeyens Aug 15, 2007 9:23 AM (in response to tom.baeyens)In this case it will not be always easy to know where things are stored...
that is indeed a drawback.
we can decide at the moment when we need to make the change. then we can still choose. suppose that e.g. this is the only DB change for a release, then we can have the option of going for the wire solution.
another approach might be that in micro releases, the db schema remains stable and we just use wire descriptors if we need to store more info in the db. Then, with the next minor release update, we can provide a DB migration tool that adds the new columns and cleans the wire descriptor stuff and translates it to the new columns... -
5. Re: where to put the node configuration information
mvaldes Aug 20, 2007 4:05 AM (in response to tom.baeyens)I like the second option. Before first version (4.0) of our products (Milestones) I suggest to do not use wire descriptors. We can apply DB changes between two Milestones even without providing a database migration tool.
regards,
Miguel Valdes