The Role of the WS-I Specifications

One initial problem with XML web services is that key industry players (Sun Microsystems, Microsoft, and
IBM) implemented key requirements slightly differently. For example, it was not uncommon to find
mismatches across tools regarding the format of a WSDL document. This was a major problem, given that the
whole promise of platform / operating system-agnosticism was in danger.

The WS-Interoperability organization (WS-I) publishes non-proprietary specifications to promote the
interoperability of web services across platforms. WSI Basic Profile version 1.1 (BP 1.1) is a baseline
specification that any tool / vendor should conform to. By doing so, you can rest assured that a .NET web
service can be called by a Java application or vice versa with no modification. .NET provides the


[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class SimpleMath
{
[WebMethod]
public int Add(int x, int y)
{ return x + y; }
}


Although XML web services do enable an agonistic way to make remote method calls, they do not provide
addition infrastructure for most real-world applications. Furthermore, a plain web service has no way of
demanding a secure connection, timeout settings, or sending receipts of payload delivery. How do you
address security, transactions, or reliable delivery of messages? How should you send attachments with the
payload?  

To address such concerns, WS-I, in conjunction with other standards bodies, have authored additional
technical specifications, collectively referred to as WS-*. Some examples follow: WS-Security: This spec
allows you to encrypt and sign SOAP messages, as well as bind security tokens to the message.  
    •        
WS-SecureConnection: Extends WS-Security with the ability for a caller and service to establish
              a secure connection using keys.
    •        
WS-Policy: Provides a way for the caller and service to agree upon how SOAP messages must be
              crafted to be accepted.
    •        
WS-Addressing: Provides a way to forward and intercept SOAP messages.
    •        
WS-Referral: Provides a way to forward to a new XML web service while preserving the current
              message.
    •        
WS-RealiableMessaging: Provides a way to ensure messages are received in a predictable
              manner.
    •        
WS-AtomicTransaction: Provides a way for diverse application types (Java, .NET, and so on)
              to work with transactions.

Microsoft offers the free WSE (Web Service Enhancements) SDK, which provides implementations of these
services for .NET developers. These implementations conform to the WS-* specification and, therefore, help
ensure interoperability across vendors, operating systems, etc.

Within the WCF programming model, you will gain access to various WS-* specifications when you pick the
appropriate binding. Of course, a particular binding may support only a subset of WS-* specifications. Other
bindings may ignore them entirely. You will see various examples of working with some of these WS-*
specifications as you work through the class.

To wrap up this review of XML web services, be aware of the following: They provide the furthest ‘reach’
of your software’s functionality at the expense of performance. Inwardly facing applications may prefer a
more direct TCP binding and use the type system of a given platform (JAVA EE, .NET, and so on).
The Role of the WS-I Specifications
Table of Contents
Copyright (c) 2008.  Intertech, Inc. All Rights Reserved.  This information is to be used exclusively as an
online learning aid.  Any attempts to copy, reproduce, or use for training is strictly prohibited.
Courseware
Training Resources
Tutorials
Services