Why do we need web-services? How different is it from normal web-applications?

Web services (esp SOAP) are designed to be consumed / read / used by other programs. If you've ever had to write a "screen scrape" program (i.e., operate a web application and pick out the data you need from all the goo that makes the page pretty and friendly for the user) you'll appreciate the structure.

Also as per some posts in SO, webservices should be used if no UI is involved and web-applications if a gui is required. Is the choice all that simpe?

In a nutshell, "yes".


There are many advantages of using web services. The main advantage over a regular http application is that it uses SOAP messaging which is much more efficient and less bandwidth costly.

Another advantage is that Service Transport, XML Messaging, Service Description and Service Discovery layers use a standard protocol which makes it easy for developers to develop functionality irrespective of programming languages.

Suppose you are a provider of a service, say weather forecast. Why make developers, go to your website, scrap your page and then extract the data that they need? Wouldn't it be easier to develop this by web service that a developer can pass in a date and get back a well defined xml document containing all the info they need? The same happens for all type of cases...


Source : Why Web Services ?

  • Exposing the existing function on to network:

A Web service is a unit of managed code that can be remotely invoked using HTTP, that is, it can be activated using HTTP requests. So, Web Services allows you to expose the functionality of your existing code over the network. Once it is exposed on the network, other application can use the functionality of your program.

  • Connecting Different Applications ie Interoperability:

Web Services allows different applications to talk to each other and share data and services among themselves. Other applications can also use the services of the web services. For example VB or .NET application can talk to java web services and vice versa. So, Web services is used to make the application platform and technology independent.

  • Standardized Protocol:

Web Services uses standardized industry standard protocol for the communication. All the four layers (Service Transport, XML Messaging, Service Description and Service Discovery layers) uses the well defined protocol in the Web Services protocol stack. This standardization of protocol stack gives the business many advantages like wide range of choices, reduction in the cost due to competition and increase in the quality.

  • Low Cost of communication:

Web Services uses SOAP over HTTP protocol for the communication, so you can use your existing low cost internet for implementing Web Services. This solution is much less costly compared to proprietary solutions like EDI/B2B. Beside SOAP over HTTP, Web Services can also be implemented on other reliable transport mechanisms like FTP etc.