Web Services Basics
If you ask five people to define Web services, you'll probably get at least six answers. Some people use the term “Web services” to describe applications that communicate with Simple Object Access Protocol (SOAP). (SOAP is an XML messaging protocol. We'll discuss it in detail in Chapter 3.) Other folks use the term to describe only the SOAP interface. Still other people vehemently object to the idea of constraining the definition to a specific technology such as SOAP. Some people use the term to describe any application that communicates over the Internet. Other people use the term to describe any Web-based application. Some people view Web services as anything that's accessible over the Web. And some people use the term to describe the software-as-a-service business model.
Given that there is no official consensus within the industry, I am establishing my own set of names and definitions. I want to give you a basic grounding to help you understand this technology, so my goal is to make things as simple and straightforward as possible.
What Is a Web Service?
The simplest and most basic definition that I can give you is that a Web service is an application that provides a Web API. As mentioned in Chapter 1, an API supports application-to-application communication. A Web API is an API that lets the applications communicate using XML and the Web.
So here's the basic concept: Web services use the Web to perform application-to-application integration. A lot of the hype around Web services talks about dynamic assembly of Web-based software services. It talks about the software-as-a-service business model. It talks about spontaneous discovery of new business partners. My advice is to ignore this hype. It's possible that at some point in the future some of these glossy images will become reality, but please don't let the science fiction stories distract you from reality or dissuade you from using this technology today to solve real business issues.