Re: [GRAAP-WG] Re-negotiation Protocol Proposal

[Sorry, this bounced the first time I tried to send to the list...] In general I like the approach described in this proposal very much. Since I won't be attending the meeting, I wanted to give a little feedback here... 1. I am not sure I would agree with the claim that the responder role should _always_ be assigned to the "service provider", because the authors' arguments about avoiding denial of service only make sense if you assume service resource scarcity relative to consumer resource availability (assuming that an agreement is always a "trade" or contract of exchange between these two resource types). However, I believe that the entire notion of "provider" and "consumer" in inherently domain-specific, and therefore inseparable from the service term language. So, I might advocate that the existing context fields to associate provider/consumer roles with initiator/responder be dropped, but only because I don't think the core messaging pattern can really say anything about these roles to begin with. I think domain-specific concepts are necessary to really characterize these roles. Thus, I don't think there can be any normative statements in the standard for base agreement nor re-negotiation regarding the use of responder roles with providers or consumers. But, I think it would be fine to have some explanatory text about the various risks of reversing the signalling roles from the "natural" and asymmetric order that would exist in many domains. 2. Has any thought been given to the concrete rendering of this protocol? I immediately have the following ideas upon reading the message definitions: a. RenegotiationQuoteRequest and RenegotiationQuote could be easily mapped to resource property queries with a custom "quote query dialect". This was an expected use of extensibility in WSRF in the past, but I do not know how people view this today. The alternative, of course, is a new operation. Is there any concern about preparation of quotes being a slow or laborious process, and requiring an asynchronous exchange pattern or a resource pattern to allow cancellation of quote requests? b. RenegotationOffer and RenegotiationAccept/RenegotiationReject map easily to the two alternate rendering styles in WS-Agreement: CreateRenegotiatedAgreement (in) and response (out) for synchronous exchanges, in this case merging RenegotiationOfferAck with the accept or reject response; CreatePendingRenegotiatedAgreement (in) and AcceptAgreement/RejectAgreement (also in messages in opposite direction) for asynchronous exchanges, in this case mapping RenegotiationOfferAck to the factory response with the new pending renegotiated agreement; c. RenegotiationNotPossible could be a fault response as described and could also be exposed as a resource property on some agreements? In these renegotiation "factory" patterns, one approach would be to have the renegotiable Agreement resource support these additional patterns, i.e. to act as a factory for its superceding agreement. Or, a shared factory could take the existing agreement EPR as an input parameter. 3. I am assuming from my initial reading that the statement that acceptance of a renegotiation offer invalidates all other outstanding offers is also a point where loose consistency is desired. In other words, it is the responding party (who chooses to accept) who also decides which offers are outstanding and which he hasn't seen yet, in the case that offers are "in flight" and acknowledgements have not been sent. Is this the intention of the authors? If not, then I think some sort of sequence numbering is necessary on offers to help resolve these cases for message loss or delay. 4. I am not sure I follow the purpose of the RenegotiationNotPossible message. Is this a new terminal sub-state for Agreements? Or, can an agreement have this non-renegotiable status at one time but then later be re-negotiable? If the latter, I am not sure the meaning is well captured in the current discussion. It sounds like two different messages: one has the same meaning as a reject message in response to an offer, but with an added hint that other offers will also be rejected, i.e. a transient "don't waste my time right now" message; the other form sounds like just the "don't waste my time right now" advisory without being coupled with a specific offer rejection. Can the authors clarify the intent here? In any case, I am looking forward to seeing more concrete rendering proposals for this protocol extension. karl -- Karl Czajkowski Software Architect Univa UD 1001 Warrenville Road, Suite 550 Lisle, IL 60532 karlcz@univaud.com www.univa.com ________________________________________________________________ www.univa.com. The Leaders of Open Source Cluster and Grid Software --------------------------------------------------------------------- Notice from Univa UD Postmaster: This email message is for the sole use of the intended recipient(s) and may contain confidential and privileged information. Any unauthorized review, use, disclosure or distribution is prohibited. If you are not the intended recipient, please contact the sender by reply email and destroy all copies of the original message. This message has been content scanned by the Univa UD Tumbleweed MailGate. ---------------------------------------------------------------------

[Sorry for the delay, my first attempt to send this bounced too] Hi Karl, Many thanks for your reply and comments. Please see our responses below. Michael. On 16 Feb 2008, at 06:35, Karl Czajkowski wrote:
1. I am not sure I would agree with the claim that the responder role should _always_ be assigned to the "service provider", because the authors' arguments about avoiding denial of service only make sense if you assume service resource scarcity relative to consumer resource availability (assuming that an agreement is always a "trade" or contract of exchange between these two resource types).
Yes, we do assume that a contract is formed between the provider and the customer for some exchange, but what that contract is for and what is exchanged is, like contract law, outside the scope of the protocol. We are not claiming that the responder in the re-negotiation protocol should always be the service provider. This is because the service provider can send quote messages to the customer to initiate re- negotiation. As described in the paper, we can map the service provider onto the WS-Agreement "responder" role and we provided this example because of the audience the proposal was intended for, but these two roles are different.
However, I believe that the entire notion of "provider" and "consumer" in inherently domain-specific, and therefore inseparable from the service term language.
We believe the opposite is true: providers or customers can supply and consume anything, and these roles are inherently domain-independent. In short, the messages and the content of those messages (or "service term language") are separable and have to be in order for the protocol to be used across different domains, like the protocol inherent in contract law is.
So, I might advocate that the existing context fields to associate provider/consumer roles with initiator/responder be dropped, but only because I don't think the core messaging pattern can really say anything about these roles to begin with. I think domain-specific concepts are necessary to really characterize these roles.
a) About "the existing context fields". Can you explain what you mean by this as we don't use this phrase in our paper. Do you mean the protocol roles? b) You're right - the protocol cannot and does not say anything about the roles of supplier and customer apart from that they are suppliers and customers of something. c) If you think domain-specific concepts are necessary to characterise these roles, can you give us some examples where you feel this would help?
Thus, I don't think there can be any normative statements in the standard for base agreement nor re-negotiation regarding the use of responder roles with providers or consumers. But, I think it would be fine to have some explanatory text about the various risks of reversing the signalling roles from the "natural" and asymmetric order that would exist in many domains.
I'm sorry, I don't understand the argument here. Please can you clarify.
2. Has any thought been given to the concrete rendering of this protocol? I immediately have the following ideas upon reading the message definitions:
By "rendering" do you mean implementation? If so, then yes we have a proof-of-concept implementation. As we wrote in the proposal, we're currently producing a paper on this which will also be circulated to the group.
a. RenegotiationQuoteRequest and RenegotiationQuote could be easily mapped to resource property queries with a custom "quote query dialect". This was an expected use of extensibility in WSRF in the past, but I do not know how people view this today. The alternative, of course, is a new operation. Is there any concern about preparation of quotes being a slow or laborious process, and requiring an asynchronous exchange pattern or a resource pattern to allow cancellation of quote requests?
This is jumping ahead to considering how this can be mapped onto a WS (particularly WSRF) implementation. Our first step is to define and agree on the abstract protocol, then provide a mapping to WS (and other stacks), though, as stated above, we will give an example implementation in a following paper. This is why we give an explanation of the protocol behaviour and not interface definitions, although we included some explanation of how it could be mapped to WS- Agreement because of the audience the proposal was intended for. As I'm sure you're aware, not detailing implementation is common in protocols - for example, see Lamport's description of the Paxos algorithm [1] that doesn't talk at all about actual implementation.
b. RenegotationOffer and RenegotiationAccept/RenegotiationReject map easily to the two alternate rendering styles in WS-Agreement:
CreateRenegotiatedAgreement (in) and response (out) for synchronous exchanges, in this case merging RenegotiationOfferAck with the accept or reject response;
Again, these are considerations for an implementation. However, in the abstract protocol there is nothing to stop the provider sending the RenegotiationOfferAck with the Accept or Reject message. We make the distinction because there may be cases when there will be a delay between the provider sending the acknowledgement and deciding whether it can accept or reject the offer. (Note that his is how Amazon works, they send an email acknowledgement initially but then accept your offer and form the contract when they tell you they're shipping your goods).
CreatePendingRenegotiatedAgreement (in) and AcceptAgreement/RejectAgreement (also in messages in opposite direction) for asynchronous exchanges, in this case mapping RenegotiationOfferAck to the factory response with the new pending renegotiated agreement;
c. RenegotiationNotPossible could be a fault response as described and could also be exposed as a resource property on some agreements?
Of course, but see the above answers above about not wanting to tie this to any implementation at the moment. </snip>
3. I am assuming from my initial reading that the statement that acceptance of a renegotiation offer invalidates all other outstanding offers is also a point where loose consistency is desired. In other words, it is the responding party (who chooses to accept) who also decides which offers are outstanding and which he hasn't seen yet, in the case that offers are "in flight" and acknowledgements have not been sent. Is this the intention of the authors?
a) About "the responding party (who chooses to accept)": the service provider (who always chooses to accept an offer) may be the initiator of the re-negotiation as we described above. b) Yes, this is because in contract law the offeree (the service provider) always gets the final say. </snip>
4. I am not sure I follow the purpose of the RenegotiationNotPossible message. Is this a new terminal sub-state for Agreements? Or, can an agreement have this non-renegotiable status at one time but then later be re-negotiable? If the latter, I am not sure the meaning is well captured in the current discussion. It sounds like two different messages: one has the same meaning as a reject message in response to an offer, but with an added hint that other offers will also be rejected, i.e. a transient "don't waste my time right now" message; the other form sounds like just the "don't waste my time right now" advisory without being coupled with a specific offer rejection. Can the authors clarify the intent here?
You're right in that RenegotiationNotPossible is a type of advisory message. But, if sent in response to an offer it has the same effect as a Reject message. Re-reading the proposal we agree that this is not captured well and will update the document accordingly. [1] http://pdos.csail.mit.edu/6.824/papers/paxos-simple.pdf

[Apologies for the delay, I've been away from the office...] On Feb 18, Michael Parkin modulated:
We are not claiming that the responder in the re-negotiation protocol should always be the service provider. This is because the service provider can send quote messages to the customer to initiate re-negotiation. As described in the paper, we can map the service provider onto the WS-Agreement "responder" role and we provided this example because of the audience the proposal was intended for, but these two roles are different.
OK, I think I missed your distinction between "renegotiation responder" and "WS-Agreement responder" on my initial reading. So, if you are saying each round of renegotiation can be offered by either party of the existing agreement, I think I could accept this flexibility... it is more general than I had expected. As for the other topic of labeling roles, I think we are actually saying the same thing and just having a terminology clash. My perspective is perhaps best illustrated by this example: - Consider an agreement domain where agreements represent the execution of compute jobs. - Traditionally HPC practitioners would say that the the party defining a job to run is "consuming computer time" and the the compute resource operating party is "providing computer time". Because of this, most people would agree also with having the job-defining party be the initiator (offerer) in the agreement process. - In a multi-level brokering extension to this environment, multiple compute resource operating parties might be fighting for the same jobs and it makes sense to think of a broker/reseller as "providing jobs" and a compute resource operator as "consuming jobs". In this environment, the resource operators may need to be the agreement initiators (offerers) because it is better to "waste" some of their time on offered-but-not-committed agreements rather than to let the (scarce) jobs in the broker get live-locked. Where I keep getting stuck in terminology is that the agreement protocol roles of initiator and responder do not always map to the same operational roles in these job execution scenarios. There are always the same two domain-specific operational roles of "job defining party" and "job executing party", but they associate with different signalling roles. Consistent (I think) with your earlier statements about avoiding resource waste, the negotiation protocol roles should be associated with an abstract sense of who is providing the scarce or less fungible resource/service. But, to identify who is providing this resource would require reference to domain-specific roles, since it is not a static property of all job agreements. So, in my view we should have two "party-to-role" mappings to specify: 1. Which signaling party serves each agreement role 2. Which domain-specific party serves each service providing role I don't think either of these can be implied via the other. I also don't think the situation differs for the first agreement versus the re-negotiated agreement. It is my belief that (1) should be addressed in the negotiation protocol message envelope, while (2) should be left completely to the domain-specific service language. I think we made mistakes previously in attempting to encode (2) in the WS-Agreement envelope. I'm still struggling to feel confident that I understand your statements in this area with respect to contract law, etc. How would contract law look upon my brokering scenario, where a reversal of the offer/accept signalling roles is desired?
2. Has any thought been given to the concrete rendering of this protocol? I immediately have the following ideas upon reading the message definitions:
By "rendering" do you mean implementation? If so, then yes we have a proof-of-concept implementation. As we wrote in the proposal, we're currently producing a paper on this which will also be circulated to the group.
By rendering I mean concrete protocol designs which would be the subject of standardization, e.g. XML/SOAP "bytes on the wire". Implementation would be various software providers writing software which complies with this standard. I'll be surprised if there is much (any?) working group debate of the abstract offer/accept renegotiation protocol, as it seems quite natural, simple, and general to me. But, where we've seen most of the debates previously has been in how these abstract concepts appear in actual concrete message schema...
a) About "the responding party (who chooses to accept)": the service provider (who always chooses to accept an offer) may be the initiator of the re-negotiation as we described above.
Sorry for the confusion of terms again. Every time I've said "initiator" I meant "offerer" in your terms I think. I meant WS-Agreement "Initiator" who performs the first step of the offer/accept exchange. karl -- Karl Czajkowski Software Architect Univa UD 1001 Warrenville Road, Suite 550 Lisle, IL 60532 karlcz@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. --------------------------------------------------------------------- Notice from Univa UD Postmaster: This email message is for the sole use of the intended recipient(s) and may contain confidential and privileged information. Any unauthorized review, use, disclosure or distribution is prohibited. If you are not the intended recipient, please contact the sender by reply email and destroy all copies of the original message. This message has been content scanned by the Univa UD Tumbleweed MailGate. ---------------------------------------------------------------------
participants (2)
-
Karl Czajkowski
-
Michael Parkin