Abstract. In this paper, we claim that negotiation is a powerful abstract notion for the coordination of distributed autonomous components, and is therefore a suitable candidate for the definition of a generic coordination middleware tool, at the same level as transactions or messaging. Although specific negotiation mechanisms have been proposed in various application contexts, there is still a need to define a truely generic concept of negotiation, suitable for a middleware layer. This paper provides some elements towards the definition of such a concept. A salient feature of our proposal is that it introduces a rich representation of the state of a negotiation, inspired by proof-nets in Linear Logic and their game semantics, well beyond the traditional state-transition graphs. Furthermore, this representation is entirely decoupled from the dynamics of the negotiation processes that may use it, and hence avoids to rely on any specific "rule of the game" as to how a negotiation should proceed. It can thus adapt to any such rule, the definition of which is delegated to the negotiating components themselves.