In the contexts of software architecture, service-orientation and service-oriented architecture, the term service refers to a software functionality, or a set of software functionalities with a purpose that different clients can reuse for different purposes, together with the policies that should control its usage.