Outsourcing the middleware layer