In the past, a common scenario was like this:
- A software developer writes an application (let?s call it ?Application A?);
- Another software developer, who wants to write an application that require some functionality from the first application, would need to install ?Application A? on his computer, read the manual to understand how it works and then write his own application (let?s call it ?Application B?), that will call ?Application A? to do the computations required;
- The end user for ?Application B? would need to download and install both ?Application A? and ?Application B?.
This scenario has many disadvantages, mainly for the end user, who must familiarize himself with two (or more) applications. In addition, when a problem arise, it is hard to tell which program is responsible.
Web services provide a solution for rapid code development and code reuse. The idea behind web services is that an application exposes an interface to itself through a web server. In this way, a developer or an end user does not need to download and install that application on his own computer. The application can be accessed remotely, through the Internet.
When a new application is developed using a web service, it can automatically find the details required to call that service, using WDSL (Web Service Description Language). This allows very rapid development, because the programmer does not need to familiarize himself with that particular application. He just adds the service into his program, and the program will find the right way of invoking the service.
You can find more about web services from these addresses: