Lance,

Sorry for the late email, we had an email outage last night. If not sure if this is still relevant now given your earlier email exchanges with Assaf, but see my comments below to further clarify what I meant.

Lance Waterman wrote:
I think what I hear you saying is that you want to be able to aggregate
several versions of a BPEL process into a single service interface. Such
that this aggregated service interface can serve as the interface for
several BPEL process versions. I understand this however, what do you
propose when the operation+endpoint are identical between process versions? How does the engine know which one to route to ( and I don't want to require
a change to the client )?

Not really. I simply want to be able to deploy and activate P(v1) and P(v2) simultaneously if they have no conflicting operation+endpoint tuples. This is a development convenience and also leaves the flexibility and responsibility to the author of the processes to define what a "version" means.

The only real requirement that I see is for the engine to be able to detect conflicts during activation to prevent non-deterministic routing cases (see below).


Say I change the signature of a Java class, do I need to change its name?


Alex, I think using Java as an analogy is a good way to convey
patterns/concepts however, when it's posted as a rhetorical question like
this I think it comes across a bit condescending. I'm sure that wasn't your intent but none the less it doesn't work for me. Now, to move forward with
your analogy, if I were able to deprecate ( i.e. retire ) specific
operations - is that where you are going? Is this something that shows up in the service interface? Does the operation just stop working for deprecated
operations?
My apologies, Lance, I did not mean to offend. To answer your questions, I do not see a need to deprecate/retire individual initiating operations within a process. I think a process should either be completely activated or completely retired, meaning that all of its initiating operations should be either enabled or disabled. And if one or more operation+endpoint conflicts with any other activated process (across all versions), the engine should prevent the activation of the process.

regards,
alex

Reply via email to