[graap-wg] proposal: stateful async agreement
Karl Czajkowski
karlcz at univa.com
Tue Mar 22 01:37:57 CST 2005
I reviewed all of the comments on the GGF tracker, and I do not see
any real surprises relative to the "big issues" that have been in
discussion.
Here, I want to group together a set of possible resolutions that go
together if we accept my earlier proposal to handle "asynchronous
agreement" via a new stateful Agreement life-cycle.
A. Agreements get a new life-cycle state "Pending" which means that
an offer has been made but no obligations are in effect yet. The
term-level status is undefined at this point.
B. Agreements get a new life-cycle state "Rejected" which means that
the offer was rejected and no obligations will ever be in effect.
C. Agreements get a new life-cycle state "Observed" which means that
an offer has been accepted and all obligations are in effect. The
term-level status is meaningful at this point. This state
captures the semantics of the entire lifespan of the Dec 2004
draft (module the confusion around termination).
1. The life-cycle model includes transitions Pending->Observed and
Pending->Rejected but NOT Observed->Rejected.
2. Additional states may be warranted to try to resolve the many
questions surrounding "termination" and "expiration."
D. The existing createAgreement operation remains as an interaction
where an input offer initiates a synchronous acceptance decision;
the response is either a fault for rejection or an EPR to an
Agreement that MUST already be in the Observed state.
1. The optional initiatorAgreement EPR is retained but the
responder is under no obligation to invoke anything on this
service. It is an optional avenue for the responder to
monitor the "initiator's view" of their agreement. (And to
attempt to initiate other control processes?)
E. An optional AgreementAcceptance portType is introduced with two
operations: acceptAgreement and rejectAgreement.
1. Both operations accept an empty input, as the association with
an agreement is implicit via the WSRF addressing model.
2. An optional fault might be useful on rejectAgreement input to
communicate why the offer was rejected?
3. These operations are only meaningful when the
AgreementAcceptance service is in a Pending state. The
operations synchronously change the service state to Observed
or Rejected, respectively.
4. The AgreementAcceptance and Agreement portTypes may be merged
to form a single service interface, and the state is shared
between them. (What is the right way to do this in WSDL?
Provide portType combinations in specification?)
F. A new createPendingAgreement operation is introduced where an
input offer initiates an asynchronous acceptance decision; the
response is either a fault (fatal errors/rejection) or an EPR to
an Agreement that MAY be in Pending, Observed, or Rejected state.
1. The responder MUST update its state RP to either Observed or
Rejected following its decision.
2. The initiator MAY use alternate mechanisms to determine if and
when the Agreement transfers to Observed, including but not
limited to the querying of a state RP. Until the initiator
determines the state as changed to Observed or Rejected, it
SHOULD NOT assume the outcome.
3. An optional initiatorAcceptance EPR MAY appear in the input
message, in which case the responder MUST invoke
acceptAgreement or rejectAgreement to communicate its
decision, in addition to updating its state RP.
4. An optional initiatorAgreement EPR MAY appear as in
createAgreement. This EPR MAY be the same as the
initiatorAcceptance EPR, if the service implements both
interfaces.
5. Should the output allow an optional state indicator? I think
it is simpler to say "no" and uniformly assume an interaction
after creation.
G. Topic "Changing Offers" is resolved as the input offer is
accepted or rejected WITHOUT MODIFICATION by the agreement
acceptance decision. Because of this, no response Agreement
document is required in any of the above mechanisms.
1. Should there be an optional mechanism to retrieve the
agreement document from the responder in such a way that it
MAY be signed or otherwise held as proof of acceptance for
auditing purposes? If so, does a queryable "agreement RP"
satisfy this need?
karl
--
Karl Czajkowski
karlcz at univa.com
More information about the graap-wg
mailing list