
On Apr 06, Asit Dan modulated:
Karl, It is understood that receiving a termination message (and upon provider acknowledgement), i) an agreement state transitions from a "Pending" to "PendingAndTerminating", and ii) the termination of service/agreement is not instantaneous (as you have elaborated).
What we are trying to resolve here are the semantics of the states "PendingAndTerminating" and "ObservedAndTerminating", i.e., what are the obligations in delivering (service and) service quality, while an agreement is being terminated. Clearly, the options are
a) No further obligations in delivering service quality (these states explicitly capture start of termination process, and the only difference between the above two states are historical, i.e., the state at which the termination message is received).
I think there is another semantics of concern about the implied obligations, i.e. the "payment" or "penalties". Let us assume in all cases that no service delivery guarantees will be expected once the client sends the terminate request. The issue I am trying to raise is that it is not just an atomic "state at which the termination is received". If I, as a broker, am in the process of computing acceptance when the termination is received, I would like to reserve the right to decide LATER whether I had accepted or rejected the agreement. I cannot make this decision instantaneously but must synchronize with a potentially complex brokering process. If allowed to by the specification, I could return immediately with the state I know (PendingAndTerminating) and still would be able to enter other states to reflect what happened. So, PendingAndTerminating->ObservedAndTerminating->Terminated would mean that I have decided, due to the non-deterministic things I was doing as a broker, that I was not able to complete your terminate request before accepting. I will bill you as having terminated an accepted agreement, i.e. in order to cover my own obligations with the services I was brokering (who may have accepted my offers before I could request termination). On the other hand, PendingAndTerminating->Terminated would mean that I have decided that I was able to complete your terminate request before accepting. I will bill you as having terminated a pending agreement, i.e. I do not have to cover obligations with brokered services because I either terminated them early or never even got around to making offers. The issue is that at the time I, the broker, receive your terminate request I do not really know the distributed state of my own brokering process and I cannot tell you whether I will have to go into ObservedAndTerminating or not. So, if we do not allow the PendingAndTerminating->ObservedAndTerminating transition, then I cannot respond to show any "terminating" state until I am able to synchronize my distributed process and make this determination. If you buy any of this, I think there is also an issue of having distinct final states (maybe sub-states?) for Terminated to encode the history of whether the agreement had been accepted or not. karl -- Karl Czajkowski karlcz@univa.com