A web service is a computer program from the family of web technologies for communication and data exchange between heterogeneous systems and applications in distributed environments. It is therefore a set of functionality exposed on internet or intranet, by and for applications or machines without human intervention, either synchronously or asynchronously. The communication protocol is defined under the SOAP standard in signature of presentation service (WSDL). Currently, the transport protocol is essentially HTTP(S).
The concept has been defined and implemented in the context of Web Services Activity, W3C, especially with the SOAP protocol. Associated with Electronic Data Interchange (EDI), the ebXML consortium used it to automate business exchanges. However, the concept is enriched by extending concepts of resource and status within the REST model, and deepening of the concept of service, with the SOA model.
In its most general presentation, a web service takes the form of an agent, made according to a specific computer technology by a service provider. An applicant with a request agent, uses this service. Provider and applicant share a semantic web service, and agent and query agent share a description of the service to coordinate the messages they exchange.
There are several technologies behind the term Web services:
- Web services of type Representational state transfer (REST) fully expose this functionality as a set of resources (URI) identifiable and accessible by the syntax and semantics of HTTP. The REST Web Services are based on the architecture of the web and its basic standards: HTTP and URI;
- WS-* Web Services expose the same functionality in the form of executable remote services. Specifications based on SOAP and WSDL standards to transform integration problems inherited from the Middleware world in interoperability goal.
The WS-* standards are often decribed as risking to generate a race to the technological performance. However, their strength in the world of services is recognized between professionals, and they are widely used.
Web Services of type Representational state transfer (REST)
The World Wide Web is an application designed according to the REST architecture. Web architecture replaces the application concepts of clients and servers by the concepts of agents and resources. Agents interact with resources to create, access, modify or delete a resource. So far, we spoke mostly of the interaction between user agents, mainly browsers, with resources.
Today, we hear more and more of interaction between resource agents. That is to say, the relationship between resources: a resource becomes the agent of another resource, but is itself a resource accessible by other agents. This is exactly the architecture described by the example of application implementation of Mashups.
Web services so deal with resource agents where conventional procedure of Web are for user agents. But the two concepts are based on the same architecture: REST.
There are therefore no fundamental difference between the interaction of a browser with a resource and that of a Web Service with a resource. The main difference lies in the format of data representation: HTML for browsers or user agents, XML or JSON for Web Services resources or agents.
We can therefore define a Web Service as software implementation of a resource identified by a URL and accessed using Internet protocols. Agents are involved in the content of the representation of their condition, not the type of content. We must therefore see Web Services as a way to manipulate information, and not just as a service provider.
- RESTful Web Services
- Resources agents
- Software robots