# Web services standards

One of the key attributes of Internet standards is that they focus on protocols and not on implementations. The Internet is composed of heterogeneous technologies that successfully interoperate through shared protocols. This prevents individual vendors from imposing a standard on the Internet. Open Source software development plays a crucial role in preserving the interoperability of vendor implementations of standards.

The following standards play key roles in Web services: Universal Description, Discovery and Integration (UDDI), Web Services Description Language (WSDL), Web Services Inspection Language (WSIL), SOAP, and Web Services Interoperability (WS-I). The relationship between these standards is described in Figure 2.

The UDDI specification defines open, platform-independent standards that enable businesses to share information in a global business registry, discover services on the registry, and define how they interact over the Internet. For more information on UDDI, refer to www.uddi.org

WSIL is an XML-based open specification that defines a distributed service discovery method that supplies references to service descriptions at the service provider's point-of-offering, by specifying how to inspect a Web site for available Web services. A WSIL document defines the locations on a Web site where you can look for Web service descriptions. Since WSIL focuses on distributed service discovery, the WSIL specification complements UDDI by facilitating the discovery of services that are available on Web sites that may not be listed yet in a UDDI registry. A separate topic in this documentation discusses the Relationship between UDDI and WSIL. For more information on WSIL, refer to www.ibm.com/developerworks/webservices/library/ws-wsilspec.html

WSDL is an XML-based open specification that describes the interfaces to and instances of Web services on the network. It is extensible, so endpoints can be described regardless of the message formats or network protocols that are used to communicate. Businesses can make the WSDL documents for their Web services available though UDDI, WSIL, or by broadcasting the URLs to their WSDL via email or Web sites. WSDL is described as a separate topic in this documentation. For more information on WSDL, refer to www.w3.org/TR/wsdl

SOAP is an XML-based standard for messaging over HTTP and other Internet protocols. It is a lightweight protocol for the exchange of information in a decentralized, distributed environment. It is based on XML and consists of three parts:

- An envelope that defines a framework for describing what is in a message and how to process it.
- A set of encoding rules for expressing instances of application-defined data types.
- A convention for representing remote procedure calls and responses.

SOAP enables the binding and usage of discovered Web services by defining a message path for routing messages. SOAP may be used to query UDDI for Web services. For more information on SOAP 1.1 (SOAP 1.2 is not supported by the Web services tools), refer to www.w3.org/TR/SOAP

Figure 2. Relationships between SOAP, UDDI, WSIL and WSDL.

A service provider hosts a Web service and makes it accessible using protocols such as SOAP/HTTP or SOAP/JMS. The Web service is described by a WSDL document that is stored on the provider's server or in a special repository. The WSDL document may be referenced by the UDDI business registry and WSIL documents. These contain pointers to the Web service's WSDL files.

The WS-I Simple SOAP Binding Profile and WS-I Attachments Profile are outlines of requirements to which WSDL and Web service protocol (SOAP/HTTP) traffic must comply in order to claim WS-I conformance. The Web services WS-I validation tools currently support WS-I Simple SOAP Binding Profile 1.0 and the Attachment Profile 1.0. To view the specifications, refer to the WS-I Web site, and under Resources select Documentation: http://www.ws-i.org

Several new Web services standards are also supported by this development environment. These include:

JAX-RPC
  JAX-RPC stands for Java™ API for XML-based RPC, also known as JSR 101. It is a specification that describes Java Application Programming Interfaces (APIs) and conventions for building Web services and Web service clients that use remote procedure calls (RPC) and XML. It standardizes the Java to WSDL and WSDL to Java mappings, and provides the core APIs for developing and deploying Web services and Web service clients on the Java platform. For more information refer to the official specifications.
JSR-109
  JSR-109 (Implementing Enterprise Web Services) defines the programming model and run-time architecture to deploy and look up Web services in the Java EE environment; more specifically, in the Web, EJB, and Client Application containers. One of its main goals is to ensure vendors' implementations interoperate. For more information, refer to the official specifications:
  - JSR-109
  - JSR-921
WS-S
  These tools support the OASIS Web Services Security 1.0 standard. For more information on the various components of this standard, refer to:
  - Web Services Security: SOAP Message Security V1.0
  - Web Services Security: Username Token Profile V1.0
  - Web Services Security: X.509 Token Profile V1.0

Web services tooling supports the following specifications:

Technology or specification | Version or level supported
--- | ---
Transports
HTTP/HTTPS | v1.0 and v1.1
JMS |
Messaging
SOAP specification | v1.1
SOAP Attachements |
Description
UDDI | v2.0
WSDL | v1.1
WSIL | v1.0
Security
WS-Security | OASIS Standard 1.0
Ineroperability
WS-I Basic Profile | 1.1.2
WS-I Simple SOAP Binding Profile | 1.0.3
WS-I Attachments Profile | 1.0
Other Standards |
JAX-RPC | v1.0 for J2EE 1.3, v1.1 for J2EE 1.4 and Java EE 1.5
JSR 109 |

- Web Services Description Language (WSDL)
  Web Services Description Language (WSDL) is a standard specification for describing networked, XML-based services. It provides a simple way for service providers to describe the basic format of requests to their systems regardless of the underlying run-time implementation.
- SOAP
  SOAP (formerly known as Simple Object Access Protocol) is a lightweight protocol for the exchange of information in a decentralized, distributed environment. A SOAP message is a transmission of information from a sender to a receiver. SOAP messages can be combined to perform request/response patterns.
- Universal Description, Discovery, and Integration (UDDI)
- Web Services Inspection Language (WSIL)
  Web Services Inspection Language (WSIL) is a service discovery mechanism that is an alternative to UDDI as well as complementary to UDDI. When you discover Web services with UDDI, you go to a centralized registry. WSIL is an alternative approach to Web service discovery. WSIL allows you to go directly to the service provider and ask for the services it provides.
- JAX-RPC
  JAX-RPC stands for Java API for XML-based RPC, also known as JSR 101. It is a specification that describes Java Application Programming Interfaces (APIs) and conventions for building Web services and Web service clients that use remote procedure calls (RPC) and XML. It standardizes the Java to WSDL and WSDL to Java mappings, and provides the core APIs for developing Web services and Web service clients on the Java platform. Often used in a distributed client/server model, an RPC mechanism enables clients to execute procedures on other systems.
- JSR 109 - Implementing Enterprise Web services
  JSR 109 (Implementing Enterprise Web Services) defines the programming model and run-time architecture to deploy and look up Web services in the Java EE environment; more specifically, in the Web, EJB, and Client Application containers. One of its main goals is to ensure vendors' implementations interoperate.
- Web services interoperability (WS-I)
  WS-I is an organization designed to promote Web service interoperability across platforms, operating systems, and programming languages.

Parent topic: Web services overview
Related Concepts
Web services overview
Tools for Web services development
Web services interoperability (WS-I)
Related Tasks
Developing Web services