Web service

From Wikipedia, the free encyclopedia - View original article

Jump to: navigation, search
Web services architecture.

A Web service is a method of communications between two electronic devices over the World Wide Web. It is a software function provided at a network address over the web with the service always on as in the concept of utility computing.

The W3C defines a Web service as:

[...] a software system designed to support interoperable machine-to-machine interaction over a network. It 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 messages, typically conveyed using HTTP with an XML serialization in conjunction with other Web-related standards.[1]

The W3C also states:

We can identify two major classes of Web services:

  • REST-compliant Web services, in which the primary purpose of the service is to manipulate XML representations of Web resources using a uniform set of stateless operations; and
  • Arbitrary Web services, in which the service may expose an arbitrary set of operations.[2]

Web API[edit]

Web services in a service-oriented architecture.

A web API is a development in web services where emphasis has been moving to simpler representational state transfer (REST) based communications.[3] RESTful APIs do not require XML-based web service protocols (SOAP and WSDL) to support their light-weight interfaces.

XML web services[edit]

XML web services use eXtensible Markup Language (XML) messages that follow the SOAP standard and have been popular with traditional enterprises. In such systems, there is often a machine-readable description of the operations offered by the service written in Web Services Description Language (WSDL). The latter is not a requirement of a SOAP endpoint, but is a prerequisite for automated client-side code generation in many Java and .NET SOAP frameworks (frameworks such as Apache Axis2, Apache CXF, Spring, and gSOAP being notable exceptions). Some industry organizations, such as the WS-I, mandate both SOAP and WSDL in their definition of a web service.

Automated design methods[edit]

Automated tools can aid in the creation of a web service. For services using WSDL, it is possible to either automatically generate WSDL for existing classes (a bottom-up model) or to generate a class skeleton given existing WSDL (a top-down model).

Web services that use markup languages[edit]

There are a number of web services that use markup languages:


Critics of non-RESTful web services often complain that they are too complex[6] and based upon large software vendors or integrators, rather than typical open source implementations.

There are also concerns about performance due to web services' use of XML as a message format and SOAP/HTTP in enveloping and transporting.[7]

See also[edit]


  1. ^ "Web Services Glossary". W3C. February 11, 2004. Retrieved 2011-04-22. 
  2. ^ "Relationship to the World Wide Web and REST Architectures". Web Services Architecture. W3C. Retrieved 2011-04-22. 
  3. ^ Benslimane, D.; Dustdar, S.; Sheth, A. (2008). "Services Mashups: The New Generation of Web Applications". IEEE Internet Computing 10 (5): 13–15. doi:10.1109/MIC.2008.110.  edit
  4. ^ "Help - Creating bottom-up Web services". Eclipse. Retrieved 2011-04-22. 
  5. ^ "Help - Creating top-down Web services". Eclipse. Retrieved 2011-04-22. 
  6. ^ Bray, Tim (October 28, 2004). "WS-Pagecount". TBray.org. Retrieved 2011-04-22. 
  7. ^ Gray, N. A. B. (2005). "Performance of Java Middleware - Java RMI, JAXRPC, and CORBA". University of Wollongong. pp. 31–39. Retrieved January 11, 2011. "The results presented in this paper show that the nature of response data has a greater impact on relative performance than has been allowed for in most previous studies." 

External links[edit]