A Web service is a service offered by an electronic device to another electronic device, communicating with each other via the World wide web. In a web service, web technology such as the HTTP protocol, originally designed for human-to-machine communication, is utilized for machine-to-machine communication, more specifically for transfering machine readable file formats such as XML and JSON. In practice, the web service typically provides an object-oriented web based interface to a database server, utilized for example by another web server, or by a mobile application, that provides a user interface to the end user. Another common application offered to the end user may be a mashup, where a web server consumes several web services at different machines, and compiles the content into one user interface.
The W3C defines a Web service generally as:
a software system designed to support interoperable machine-to-machine interaction over a network.
In a 2002 document, the W3C Web Services Architecture Working Group defined a Web Services Architecture, requiring a standardized implementation of a "Web service." In this:
[a Web service] has an interface described in a machine-processable format (specifically WSDL). Other systems interact with the Web service in a manner prescribed by its description using SOAP (Simple Object Access Protocol) messages, typically conveyed using HTTP with an XML serialization in conjunction with other Web-related standards.
In a 2004 document, the W3C extended the definition:
We can identify two major classes of Web services:
- REST-compliant Web services, in which the primary purpose of the service is to manipulate representations of Web resources using a uniform set of stateless operations.
- Arbitrary Web services, in which the service may expose an arbitrary set of operations