Web service

A web service is a collection of protocols and standards used for exchanging data between applications. Software applications written in various programming languages and running on various platforms can use web services to exchange data over computer networks like the Internet. This interoperability is due to the use of open standards. OASIS and the W3C are the steering committees responsible for the architecture and standardization of web services. To improve interoperability between web service implementations, the WS-I organisation has been developing a series of profiles to further define the standards involved.

Web services suffer from poor performance compared to other distributed computing approaches such as RMI, CORBA, or DCOM. This is a common trade-off when choosing text based formats. XML explicitly does not count among its design goals either conciseness of encoding or efficiency of parsing.

By piggybacking on HTTP, web services can evade existing firewall security measures whose rules are intended to block or audit communication between programs on either side of the firewall.

Another reason may be that prior to SOAP, there were no really good interfaces to accessing functionality on different computers on a network. Most of them were ad hoc, and few people knew or could handle EDI, RPC, and similar APIss. Web services may have more solid frameworks and would thus be easier to use.

A third reason that web services are useful: They can provide very loose coupling between an application that uses the web service and the web service itself. This should allow either piece to change without negatively affecting the other. This flexibility may become increasingly important as software is built by assembling individual components into a complete application.