When XML use began to take off just after the year 2000, businesses, developers, and others looked for new ways to use it. The promise of separating content and presentation had been met, but how could this capability be capitalized on? The answer came in the form of web services.
Web services provide a way to exchange data between applications and servers. To facilitate this communication, web services use the Internet to send messages composed of XML data back and forth between a consumer (the application that uses the data) and a provider (the server that contains the data). This is not unlike traditional distributed computing models, such as CORBA, DCOM, and RMI, where method calls are executed over a network connection. The major difference with web services is that the data being transmitted is XML text instead of a binary format.
The promise behind web services is that of having software components available, on demand, to any application in the world. Whether that be a web application or a traditional desktop application, it is possible to use the same service to perform the same task.