[GRAAP-WG] Re-negotiation Protocol Proposal
Karl Czajkowski
karlcz at univaud.com
Sat Mar 1 00:08:33 CST 2008
On Mar 01, Toshiyuki Nakata modulated:
> Hi Again:
> > I wouldn't say slide 7 captures my comment. My endpoint rendering
> > doesn't imply a third entity, just that the responder entity is
> > rendered with multiple endpoints to allow a more general scenario such
> > as renegotiation that could combine multiple agreements (something you
> > couldn't do if the preceding agreement is always implied like the
> > "this" pointer in a simple object system):
> >
> > 1. agreement initiator sends offer to agreement factory
> >
> > 2. agreement factory sends accept (sync or async reply)
> >
> > ... repeat 1-2 for multiple agreements...
> >
> > 3. renegotiation initiator sends offer to agreement factory
> >
> > 4. agreement factory sends accept (sync or async reply)
> >
>
> These are somethngs I can guess and feel provide an elegant solution,
> but I feel that the implicit
> messages needed here between the Agreement Responder and the
> Agreement Factory would needed to be spelt out or (My guess) would always,
> fail..
>
What I'm trying to say is that there is no "implicit message"... the
agreement factory is the agreement responder in this picture (for
AI=MI in your terminology). It is one entity and we really should not
say anything about the internal implementation structure.
I should have labeled the "agreement factory" in steps (3) and (4) as
"renegotiated agreement factory" since we really haven't stated
whether these would be separate port types. But it was my intention
that these factories be interfaces to the same responder entity for
the AI=MI case.
For the case where AI=MR, it gets more complicated just as the basic
existing WS-Agreement is more complicated when you put agreement
resources on both sides:
1. Agreement initiator sends offer to agreement responder's factory.
(with embedded PendingAgreement EPR in offer, representing
initiator's view of the offered agreement, also combining
the AgreementAcceptance port type)
2. Agreement responder sends accept (sync factory response
or async Accept response)
3. Eventually initiator's agreement state progresses to Observed
when he learns of acceptance (this is the decoupled distributed
state transition we've discussed before)
everything above is possible in the existing WS-Agreement protocol.
...discovery magic happens...
4. Agreement responder, acting as renegotiation initiator, sends
renegotiate offer to agreement initiator's renegotiation
factory.
(with embedded PendingRenegotiatedAgreement EPR in
offer, representing renegotiation inititator's view of the
offered renegotiated agreement)
5. Agreement initiator, acting as renegotiation responder, sends
accept (sync factory response or as async Accept response)
6. Eventually agreement responder's renegotiatedion agreement
state progresses to Observed when he learns of acceptance (this
again is the decoupled distributed state transition)
Several notes:
A. The magic discovery is there because the renegotiation initiator
has to determine the appropriate renegotiated agreement factory
EPR from the existing agreement information. I didn't want to
attempt to address that technical issue here, but just assume it
is dealt with somehow.
B. This symmetric arrangement established in (1)-(3) would support
either AI=MI or AI=MR scenarios, since both parties would have
discovered renegotiation endpoints for the other party. The
simpler, asymmetric client-server arrangement of the previos
email only supports AI=MI since there are no factory service
endpoints on the agreement initiator side in that case.
C. With the right message schemas, one polymlorphic factory type
could serve both initial and renegotiated agreement requests, so
there would only need to be two factories (one per party)
instead of the four logically separated roles above.
D. A somewhat hairy naming issue exists. Do we really want to
create new Agreement resources and EPRs for each renegotiation,
or is it better to treat the resource like an "envelope" and use
some internal GUID-like name to name specific versions of
agreement? (In this case, the agreement resource would hold
info for the first, superceded, agreement and then the revised
agreement, with stable addressing. I'm not sure which approach
is better, but I seem to recall there being a versioning/naming
mechanism inside the WS-Agreement schema already. I have a bad
network connection today and cannot easily retrieve the current
specification to verify this... apologies if I'm remembering
something that got dropped during the standardization process.)
karl
--
Karl Czajkowski
Software Architect
Univa UD
1001 Warrenville Road, Suite 550
Lisle, IL 60532
karlcz at univaud.com
www.univa.com
________________________________________________________________
www.univa.com.
The Leaders of Open Source Cluster and Grid Software
The information contained in this e-mail message is from Univa UD and
may be privileged, confidential, and protected from disclosure. If you
are not the intended recipient, any further disclosure or use,
dissemination, distribution, or copying of this message or any
attachment is strictly prohibited. If you think that you have received
this e-mail message in error, please delete the e-mail, and either
e-mail the sender at the above address or notify us at our address.
More information about the graap-wg
mailing list