Middleware Infrastructures for Self-organising Pervasive Computing Systems