An application service provider (ASP) is a business providing application software generally through the Web. ASPs that specialize in a particular application (such as a medical billing program) may be referred to as providing software as a service. The application software resides on the vendor's system and is accessed by users through a communication protocol. Alternatively, the vendor may provide special purpose client software. Client software may interface with these systems through an application programming interface.