Non-functional properties are an essential constituent of service level agreements as they describe those quality-of-service parameters that are not related to the actual function of a service. Thus, non-functional properties let providers create distinguishing service offers and let consumers discriminate between various offers that provide the same function. The negotiation of non-functional properties is how service level agreements are commonly established. This chapter introduces various forms, models, specifications, and realizations of service level agreement negotiation to provide a broad background of the current state-of-the-art. Although different in various details, the described systems share a number of common features. Based on them, a holistic architecture is defined combining previous work into one coherent framework. The architecture is applicable to different negotiation models and protocols, and covers all functions of the negotiation phase. Based on this architecture, particular challenges and areas of future work are motivated. These mostly revolve around increasing the acceptance of service level agreement negotiation and enhancing interoperability.