The Negotiation Common Capability relates to the procedure of parties (consumer and providers) agreeing on the terms of an SLA governing the exchange of resources. The parties try to reach a deal based on a consensus after exchanging (possibly several) non-binding probes called quotes hereafter.
One important part is that in any such type of trade agreement, the provider never publishes offers. Instead, the provider waits for the client to send a pre-signed agreement. The provider expects the clients agreement to be based on a previous template. The client can reasonably know what the provider is ready to offer based on quotes that the provider has issued previously on demand. The steps are the following:
Requesting the template is only done once for every type of service the provider offers. The quotes exchange (steps 2 and 3) can be repeated any number of times. The user can tune the terms in the quote request until the providers quote is in line with what the client is ready to accept. The last step for the client, step 4, requesting the real SLA, has a Boolean answer: the SLA is either accepted or rejected by the provider. In the latter case, the user can go back to asking for a quote, as the provider might have changed his conditions. This procedure allows the provider to have the final decision in accepting or not the contract (this is crucial to avoid pre-reserving resources which may not be attributed if the client disengages).
The steps 2-3 are the core part of the negotiation, as each party can pull the deal in any direction. The parties may freely modify the different terms: lower fees, lower QoS, longer time slots, fewer resource needs, lower compensations, etc.
Once a contract has been signed and agreed, the necessity of changing it could be envisaged (see re-negotiation). In that case, the same quote framework could be used. The main difference comes from the already allocated resources, and the existence of a first contract to modify. Technical difficulties appear on the provider side in this case, but the framework presented to the parties to sign a new contract stays basically the same. The getTemplate() first call would contin as parameter the previous contract, to signify that it should be renegotiated. The procedure then stays the same as presented above.
On the technical side, there are existing protocols and pre-standards existing. For example, the format of the SLA templates, quotes, and proposals described in this framework could be based on the WS-Agreement XML schemas.
© 2007 BEinGRID