All Topics  
Web service

 

   Email Print
   Bookmark   Link






 

Web service



 
 
A Web service (also Web Service) is defined by the W3C as "a software system designed to support interoperable
Interoperability

Interoperability is a property referring to the ability of diverse systems and organizations to work together . The term is often used in a technical systems engineering sense, or alternatively in a broad sense, taking into account social, political, and organizational factors that impact system to system performance....
 machine-to-machine
Machine to Machine

M2M refers to data communications between machines. M2M is most commonly translated as Machine-to-Machine but has sometimes been translated as Man-to-Machine, Machine-to-Man, Machine-to-Mobile and Mobile-to-Machine....
 interaction over a network
Computer network

A computer network is a group of interconnected computers. Networks may be classified according to a wide variety of characteristics. This article provides a general overview of some types and categories and also presents the basic components of a network....
". Web services are frequently just Web
Web

Web may refer to:...
 API
Application programming interface

An application programming interface is a set of subroutine, data structures, class and/or Protocol provided by library and/or operating system Service s in order to support the building of applications....
s that can be accessed over a network, such as the Internet
Internet

The Internet is a global network of interconnected computers, enabling users to share information along multiple channels. Typically, a computer that connects to the Internet can access information from a vast array of available server and other computers by moving information from them to the computer's local memory....
, and executed on a remote system hosting the requested services.

The W3C Web service definition encompasses many different systems, but in common usage the term refers to clients
Client (computing)

A client is an Application software or system that accesses a remote service on another computer system, known as a Server , by way of a Computer network....
 and servers
Server (computing)

A server is a computer program that provides services to other computer programs , in the same or other computer. The physical computer that runs a server program is also often referred to as server....
 that communicate over the HTTP protocol used on the Web.






Discussion
Ask a question about 'Web service'
Start a new discussion about 'Web service'
Answer questions from other users
Full Discussion Forum



Encyclopedia


Webservices
A Web service (also Web Service) is defined by the W3C as "a software system designed to support interoperable
Interoperability

Interoperability is a property referring to the ability of diverse systems and organizations to work together . The term is often used in a technical systems engineering sense, or alternatively in a broad sense, taking into account social, political, and organizational factors that impact system to system performance....
 machine-to-machine
Machine to Machine

M2M refers to data communications between machines. M2M is most commonly translated as Machine-to-Machine but has sometimes been translated as Man-to-Machine, Machine-to-Man, Machine-to-Mobile and Mobile-to-Machine....
 interaction over a network
Computer network

A computer network is a group of interconnected computers. Networks may be classified according to a wide variety of characteristics. This article provides a general overview of some types and categories and also presents the basic components of a network....
". Web services are frequently just Web
Web

Web may refer to:...
 API
Application programming interface

An application programming interface is a set of subroutine, data structures, class and/or Protocol provided by library and/or operating system Service s in order to support the building of applications....
s that can be accessed over a network, such as the Internet
Internet

The Internet is a global network of interconnected computers, enabling users to share information along multiple channels. Typically, a computer that connects to the Internet can access information from a vast array of available server and other computers by moving information from them to the computer's local memory....
, and executed on a remote system hosting the requested services.

The W3C Web service definition encompasses many different systems, but in common usage the term refers to clients
Client (computing)

A client is an Application software or system that accesses a remote service on another computer system, known as a Server , by way of a Computer network....
 and servers
Server (computing)

A server is a computer program that provides services to other computer programs , in the same or other computer. The physical computer that runs a server program is also often referred to as server....
 that communicate over the HTTP protocol used on the Web. Such services tend to fall into one of two camps: Big Web Services and RESTful Web Services.

"Big Web Services" use XML messages that follow the SOAP standard and have been popular with traditional enterprise. In such systems, there is often a machine-readable description of the operations offered by the service written in the Web Services Description Language
Web Services Description Language

The Web Services Description Language is an XML-based language that provides a model for describing Web services....
 (WSDL). The latter is not a requirement of a SOAP endpoint, but it is a prerequisite for automated client-side
Client-side

In computer networking, the term client-side refers to operations that are performed by the Client in a client-server relationship.Typically, a client is a computer application, such as a web browser, that runs on a user 's local computer or workstation and connects to a server as necessary....
 code generation in many Java
Java (programming language)

Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java ....
 and .NET SOAP frameworks (frameworks such as Spring, Apache Axis2
Apache Axis2

Apache Axis2 is a core engine for Web services. It is a complete re-design and re-write of the widely used Apache Axis SOAP stack. Implementations of Axis2 are available in Java and C ....
 and Apache CXF
Apache CXF

Apache CXF is an Open source software, fully featured, easy to use Web Services framework. It is the combination of two projects: Celtix developed by IONA and Codehaus XFire developed by Codehaus working together at the Apache Software Foundation....
 being notable exceptions). Some industry organizations, such as the WS-I
Web Services Interoperability

The Web Services Interoperability Organization is an industry consortium chartered to promote interoperability amongst the stack of web services List of Web service specifications....
, mandate both SOAP and WSDL in their definition of a Web service.

More recently, RESTful Web services
Representational State Transfer

Representational state transfer is a style of software architecture for distributed hypermedia systems such as the World Wide Web. As such, it is not strictly a method for building "web services." The terms "representational state transfer" and "REST" were introduced in 2000 in the doctoral dissertation of Roy Fielding, one of the principa...
 have been regaining popularity, particularly with Internet companies. These also meet the W3C definition, and are often better integrated with HTTP than SOAP-based services. They do not require XML messages or WSDL
Web Services Description Language

The Web Services Description Language is an XML-based language that provides a model for describing Web services....
 service-API definitions.

Specifications


Profiles

To improve interoperability of Web Services, the WS-I publishes profiles. A profile is a set of core specifications (SOAP
SOAP

SOAP, originally defined as Simple Object Access Protocol, is a protocol specification for exchanging structured information in the implementation of Web Services in computer networks....
, WSDL
Web Services Description Language

The Web Services Description Language is an XML-based language that provides a model for describing Web services....
, ...) in a specific version (SOAP 1.1, UDDI 2, ...) with some additional requirements to restrict the use of the core specifications. The WS-I also publishes use cases and test tools to help deploying profile compliant Web Services.

Additional specifications, WS

Some specifications have been developed or are currently being developed to extend Web Services capabilities. These specifications are generally referred to as WS-*. Here is a non-exhaustive list of these WS-* specifications. WS-Security
WS-Security

WS-Security is a communications protocol providing a means for applying security to Web services. On April 19 2004 the WS-Security 1.0 standard was released by OASIS ....
: Defines how to use XML Encryption
XML Encryption

XML Encryption, also known as XML-Enc, is a specification, governed by a World Wide Web Consortium recommendation, that defines how to encrypt the contents of an XML element....
 and XML Signature
XML Signature

XML Signature is a W3C recommendation that defines an XML syntax for digital signatures. Functionally, it has much in common with PKCS#7 but is more extensible and geared towards signing XML documents....
 in SOAP
SOAP

SOAP, originally defined as Simple Object Access Protocol, is a protocol specification for exchanging structured information in the implementation of Web Services in computer networks....
 to secure message exchanges, as an alternative or extension to using HTTPS
Https

Hypertext Transfer Protocol Secure is a combination of the Hypertext Transfer Protocol and a secure communication protocol.HTTP operates at the highest layer of the TCP/IP model, the Application layer; but the security protocol operates at lower sublayer, encrypting an HTTP message prior to transmission and decrypting a message upon arriva...
 to secure the channel. WS-Reliability
WS-Reliability

WS-Reliability is a SOAP-based OASIS specification that fulfillsreliable messaging requirements critical to some applications of Web Services....
: An OASIS
OASIS (organization)

The Organization for the Advancement of Structured Information Standards is a global consortium that drives the development, convergence and adoption of e-business and web service standards....
 standard protocol for reliable messaging between two Web services. WS-Transaction
WS-Transaction

A Web Services specification developed by BEA Systems, IBM, and Microsoft Corporation. The WS-Transaction specification describes coordination types that are used with the extensible coordination framework described in the WS-Coordination specification....
: A way of handling transactions.

Some of these additional specifications have come from the W3C
World Wide Web Consortium

The World Wide Web Consortium is the main international standards organization for the World Wide Web . It is arranged as a consortium where member organizations maintain full-time staff for the purpose of working together in the development of standards for the World Wide Web....
. There is much discussion around the organization's participation, as the general Web and the Semantic Web
Semantic Web

The Semantic Web is an evolving extension of the World Wide Web in which the semantics of information and services on the web is defined, making it possible for the web to understand and satisfy the requests of people and machines to use the web content....
 story appear to be at odds with much of the Web Services vision. This has surfaced most recently in February 2007, at the Web of Services for the Enterprise workshop. Some of the participants advocated a withdrawal of the W3C from further WS-* related work, and a focus on the core Web.

In contrast, OASIS
OASIS (organization)

The Organization for the Advancement of Structured Information Standards is a global consortium that drives the development, convergence and adoption of e-business and web service standards....
 has standardized many Web service extensions, including Web Services Resource Framework
Web Services Resource Framework

Web Services Resource Framework is a family of OASIS -published specifications for web services. Major contributors include the Globus Alliance and IBM....
 and WSDM
WSDM

Web Services Distributed Management is a web service standard for managing and monitoring the status of other services.The goal of WSDM is to allow a well-defined network protocol for controlling any other service that is WSDM-compliant....
.

Styles of use

Web services are a set of tools that can be used in a number of ways. The three most common styles of use are RPC, SOA and REST.

Remote procedure calls

Webservice Xrpc
RPC
Remote procedure call

Remote procedure call is an Inter-process communication technology that allows a computer program to cause a subroutine or procedure to execute in another address space without the programmer explicitly coding the details for this remote interaction....
 Web services
present a distributed function (or method) call interface that is familiar to many developers. Typically, the basic unit of RPC Web services is the WSDL operation.

The first Web services tools were focused on RPC, and as a result this style is widely deployed and supported. However, it is sometimes criticised for not being loosely coupled
Loose coupling

Loose coupling describes a resilient relationship between two or more systems or organizations with some kind of exchange relationship. Each end of the transaction makes its requirements explicit and makes few assumptions about the other end....
, because it was often implemented by mapping services directly to language-specific functions or method calls. Many vendors felt this approach to be a dead end, and pushed for RPC to be disallowed in the WS-I Basic Profile
WS-I Basic Profile

The WS-I Basic Profile , a specification from the Web Services Interoperability industry consortium , provides interoperability guidance for core Web Services specifications such as SOAP, Web Services Description Language, and UDDI....
.

Service-oriented architecture

Web services can also be used to implement an architecture according to Service-oriented architecture
Service-oriented architecture

In computing, service-oriented architecture provides methods for systems development and System integration where systems group functionality around business processes and package these as Interoperability Service ....
 (SOA) concepts, where the basic unit of communication is a message, rather than an operation. This is often referred to as "message-oriented" services.

SOA Web services are supported by most major software vendors and industry analysts. Unlike RPC Web services, loose coupling
Loose coupling

Loose coupling describes a resilient relationship between two or more systems or organizations with some kind of exchange relationship. Each end of the transaction makes its requirements explicit and makes few assumptions about the other end....
 is more likely, because the focus is on the "contract" that WSDL provides, rather than the underlying implementation details.

Representational state transfer

Finally, Representational State Transfer
Representational State Transfer

Representational state transfer is a style of software architecture for distributed hypermedia systems such as the World Wide Web. As such, it is not strictly a method for building "web services." The terms "representational state transfer" and "REST" were introduced in 2000 in the doctoral dissertation of Roy Fielding, one of the principa...
 (REST) attempts to describe architectures which use HTTP or similar protocols by constraining the interface to a set of well-known, standard operations (like GET, POST, PUT, DELETE for HTTP). Here, the focus is on interacting with stateful resources, rather than messages or operations. An architecture based on REST (or is 'RESTful') can use WSDL to describe SOAP messaging over HTTP, which defines the operations, can be implemented as an abstraction purely on top of SOAP (e.g., WS-Transfer), or can be created without using SOAP at all.

WSDL version 2.0
Web Services Description Language

The Web Services Description Language is an XML-based language that provides a model for describing Web services....
 offers support for binding to all the HTTP request methods
Hypertext Transfer Protocol

Hypertext Transfer Protocol is an application-level protocol for distributed, collaborative, hypermedia information systems. Its use for retrieving inter-linked resources led to the establishment of the World Wide Web....
 (not only GET and POST as in version 1.1) so it enables a better implementation of RESTful Web services
Representational State Transfer

Representational state transfer is a style of software architecture for distributed hypermedia systems such as the World Wide Web. As such, it is not strictly a method for building "web services." The terms "representational state transfer" and "REST" were introduced in 2000 in the doctoral dissertation of Roy Fielding, one of the principa...
. However, support for this specification is still poor in software development kits
Software development kit

A software development kit is typically a set of development tools that allows a software engineer to create application software for a certain software package, software framework, hardware platform, computer system, video game console, operating system, or similar platform....
, which often offer tools only for WSDL 1.1.

Criticisms

Critics of non-RESTful Web services often complain that they are too complex and based upon large software vendors or integrators, rather than open source
Open source

Open source is an approach to design, development, and distribution offering practical accessibility to a product's source . Some consider open source as one of various possible design approaches, while others consider it a critical Strategy element of their business operations....
 implementations.

One big concern of the REST Web Service developers is that the SOAP WS toolkits make it easy to define new interfaces for remote interaction, often relying on introspection to extract the WSDL and service API from Java, C# or VB code. This is viewed as a feature by the SOAP stack authors (and many users) but it is feared that it can increase the brittleness of the systems, since a minor change on the server (even an upgrade of the SOAP stack) can result in different WSDL and a different service interface. The client-side classes that can be generated from WSDL and XSD descriptions of the service are often similarly tied to a particular version of the SOAP endpoint and can break if the endpoint changes or the client-side SOAP stack is upgraded. Well designed SOAP endpoints (with handwritten XSD and WSDL) do not suffer from this but there is still the problem that a custom interface for every service requires a custom client for every service.

There are also concerns about performance due to Web services' use of XML as a message format and SOAP and HTTP in enveloping and transport. At the same time, there are also emerging XML parsing/indexing technologies, such as VTD-XML
VTD-XML

Virtual Token Descriptor for eXtensible Markup Language refers to a collection of efficient XML processing technologies centered around a non-extractive XML, "document-centric" parsing technique called Virtual Token Descriptor ....
, that promise to address those XML-related performance issues.

Similar efforts

There are several other approaches to solving the set of problems that Web services address, both preceding and contemporary to it. RMI
Java remote method invocation

The Java Remote Method Invocation Application Programming Interface, or Java RMI, a Java application programming interface, performs the object-oriented equivalent of remote procedure calls....
 was one of many middleware
Middleware

Middleware is computer software that connects software components or applications. The software consists of a set of enabling services that allow multiple processes running on one or more machines to interact across a network....
 systems that have seen wide deployment. More ambitious efforts like CORBA
Çorba

Chorba , shurpa , sorpa , or shorpo is one of various kinds of soup or stew found in national cuisines across Eurasia. The term is likely of Persian language or Turkic languages origin....
 and DCOM
Distributed component object model

Distributed Component Object Model is a proprietary software Microsoft technology for communication among software componentry distributed across networked computers....
 attempted to effect distributed objects, which Web services implementations sometimes try to mimic.

More basic efforts include XML-RPC
XML-RPC

XML-RPC is a remote procedure call protocol which uses XML to encode its calls and [] as a transport mechanism. ...
, a precursor to SOAP that was only capable of RPC, and various forms of HTTP usage without SOAP.

See also

  • List of Web service Frameworks
    List of Web service Frameworks

    A list of web service frameworks:...
  • List of web service protocols
    List of web service protocols

    The following is a list of Web service Protocol s.*BEEP - Blocks Extensible Exchange Protocol*E-Business XML*Hessian *JSON-RPC*Representational State Transfer ...
  • List of Web service specifications
    List of Web service specifications

    There are a variety of specifications associated with web services. These specifications are in varying degrees of maturity and are maintained or supported by various standards bodies and entities....
  • Service system
    Service system

    A service system is a configuration of technology and organizational networks designed to deliver Service that satisfy the needs, wants, or aspirations of customers....
  • Service Oriented Architecture
  • Enterprise Information Integration
    Enterprise Information Integration

    Enterprise Information Integration or EII, is a process of information integration, using data abstraction to provide a single interface for viewing all the data within an organization, and a single set of structures and naming conventions to represent this data; the goal of EII is to get a large set of heterogeneous data sources to a...
     (EII)
  • Business Intelligence 2.0
    Business Intelligence 2.0

    Business Intelligence 2.0 is a term referring to a new generation of Business Intelligence software that is more proactive than reactive . The first generation of Business Intelligence analyzed information involved in business oriented decisions while the next generation helps make decisions as or before events happen....
     (BI 2.0)
  • Devices Profile for Web Services
    Devices Profile for Web Services

    The Devices Profile for Web Services defines a minimal set of implementation constraints to enable secure Web Service messaging, discovery, description, and eventing on resource-constrained devices....
  • Web Processing Service
    Web Processing Service

    The Open Geospatial Consortium Web Processing Service is designed to standardize the way that GIS calculations are made available to the Internet....
  • Web server
    Web server

    The term web server can mean one of two things:# A computer program that is responsible for accepting Hypertext Transfer Protocol requests from clients , and Server them HTTP responses along with optional data contents, which usually are web pages such as Hypertext Markup Language documents and linked objects ....
  • Microsoft Connected Services Framework
  • Web Services Discovery
    Web Services Discovery

    Web services provide access to software systems over the Internet using standard protocols. In a minimalistic scenario there exists at least a Web service provider that publishes some service such as a weather service and a Web service consumer that uses this service....
  • OAuth
    OAuth

    OAuth is an open protocol, initiated by Blaine Cook and Chris Messina , to allow secure API authorization in a simple and standard method for desktop, mobile and web applications....
  • SOAPjr
    SOAPjr

    SOAPjr is a protocol specification for exchanging structured information in the implementation of Web Services in computer networks. It is a hybrid of SOAP and JSON-RPC ....


External links

  • (W3C Working Group Note)
  • (IBM/Microsoft white paper)
  • (IBM developerWorks tutorial - advanced level)


-- DO NOT ADD MORE LINKS TO THIS ARTICLE. WIKIPEDIA IS NOT A COLLECTION OF LINKS -- -- it on this article's discussion page first. Links that have not been verified -- --
-->