SOA Web Services Tutorials
Tutorials
SOA Web ServicesSOA Web Services - WS-I Specifications
SOA Web Services - WS-I Specifications
WS-I Specifications
To resolve these issues, finally the Web Services Interoperability Organization (WS-I) was formed in 2002 with the help of SAP, IBM, Microsoft, and others. The main purpose of WS-I was to bring the vendors and customers together to resolve the issues of interoperability.
WS-I Specifications
To resolve these issues, finally the Web Services Interoperability Organization (WS-I) was formed in 2002 with the help of SAP, IBM, Microsoft, and others. The main purpose of WS-I was to bring the vendors and customers together to resolve the issues of interoperability.
A working group called the Basic Profile WG was formed for this purpose. The working group delivered the Basic Profile (BP) 1.0 in August 2003.
The SOAP Encoding was disallowed in a BP-compliant web service. The committee also published a BP-conformant real-world Supply Chain Management application. It also identified and documented common usage patterns of web services. It also published a test tool for verifying service artefacts for BP conformance. The success of BP 1.0 was demonstrated by a sample application created with the joint efforts of 10 different vendors including BEA, IBM, Microsoft, Oracle, SAP, and SUN.
We will now discuss different versions of the Basic Profile and the modifications made in each of these.
WS-I Basic Profile 1.0
The key features of BP 1.0 are as follows:
- Use of SOAP, a lightweight XML-based messaging protocol. SOAP is used for transferring information through web service request and response messages.
. - SOAP encoding is prohibited. The use of XSD data types is mandated.
. - The use of HTTP binding with SOAP is necessary.
. - Requires the use of HTTP 500 status response for faulty SOAP messages.
. - The HTTP POST method must be used instead of any other HTTP methods.
. - WSDL 1.1 specification is used to describe the web service interface.
. - Necessitates the use of rpc/literal or document/literal forms of WSDL SOAP binding.
. - Prohibits the request-response and notification style operations.
. - WSDL SOAP binding extension with HTTP is used as a transport rule.
. - Requires WSDL descriptions for UDDI.
The above list essentially summarizes the key features of BP 1.0. Thus, to create an interoperable web service, you must adhere to the listed rules to make the service BP 1.0 compliant. Failing this, the service may not interoperate with other services.
WS-I Basic Profile 1.1
WS-I Basic Profile 1.1 brought about further changes in the specifications. These are summarized below:
SOAP Changes
In SOAP, the following changes were made:
- Disallowed constructs:
.- An ENVELOPE SHOULD NOT contain the namespace declaration xmlns:xml="http://www.w3.org/XML/1998/ namespace".
. - A DESCRIPTION SHOULD NOT contain the namespace declaration xmlns:xml="http://www.w3.org/XML/1998/ namespace".
- An ENVELOPE SHOULD NOT contain the namespace declaration xmlns:xml="http://www.w3.org/XML/1998/ namespace".
- Attributes on SOAP1.1 elements:
.- The soap:Envelope, soap:Header, and soap:Body elements in an ENVELOPE MUST NOT have attributes in the namespace "http://schemas.xmlsoap.org/soap/ envelope/".
.
- The soap:Envelope, soap:Header, and soap:Body elements in an ENVELOPE MUST NOT have attributes in the namespace "http://schemas.xmlsoap.org/soap/ envelope/".
- SOAP action HTTP header:
.- A RECEIVER MUST NOT rely on the value of the SOAPAction HTTP header to correctly process the message.
WSDL Changes
In WSDL, following changes were made:
- XML Namespace declarations:
.- A DESCRIPTION SHOULD NOT contain the namespace declaration xmlns:xml=http://www.w3.org/XML/1998/ namespace.
.
- A DESCRIPTION SHOULD NOT contain the namespace declaration xmlns:xml=http://www.w3.org/XML/1998/ namespace.
- WSDL documentation element:
.- In a DESCRIPTION the wsdl:documentation element MAY be present as the first child element of wsdl:import, wsdl: partand wsdl:definitions in addition to the elements cited in the WSDL1.1 specification.
- Bindings and Parts:
.- An ENVELOPE MUST contain exactly one part accessor element for each of the wsdl:part elements bound to the envelope's corresponding soapbind:body element.
. - In a doc-literal description where the value of the parts attribute of soapbind:body is an empty string, the corresponding ENVELOPE MUST have no element content in the soap:body element.
. - In an rpc-literal description where the value of the parts attribute of soapbind:body is an empty string, the corresponding ENVELOPE MUST have no part accessor elements.
.
- An ENVELOPE MUST contain exactly one part accessor element for each of the wsdl:part elements bound to the envelope's corresponding soapbind:body element.
- Part Accessors:
.- The part accessor elements in a MESSAGE described with an rpc-literal binding MUST have a local name of the same value as the name attribute of the corresponding wsdl:part element.
Next Page: WS-I Basic Profile 1.2
