A Chemistry-Inspired Middleware for Self-Adaptive Service Orchestration and Choreography