Tuesday, February 15, 2011

Evolution of web services

        In the last decade there has been more work on web services than on any other open-source effort. The main reason for the same is the fact that apart from having massive support from open-source communities' web services also enjoys un-paralleled support from industry stalwarts like IBM, Microsoft and Sun. This article attempts at having a glance at the evolution of different components involved in web services. We first have a look at the 3 most important components of any web service the Network, the XML Messaging Layer and the IDL.

    Network – There are a number of concerns like security and reliability which are essential for any web service system to succeed. When web services was still at its nascent stage the most preferred way to communicate between web services in a reliable way was JMS. And when people wanted high levels of security they adopted SSL/TLS methodologies of communication. Though there was no inherent disadvantage with using these existing facilities, they severely restricted the flexibility that was expected in a web service environment. JMS networks are not popular across the web while SSL/TLS limit the capability to have selective encryption of messages. As web services evolved, other standards for security and reliability have been developed which can be put on top of the network (in the XML Messaging Layer) allowing us to use HTTP as the default network for web services. A few of them are listed here. "SAML", "User Name Token Profile", "WS-Security", "XACML", "XKMS" and the "Liberty Project" are the well known alternatives for security and "WS-Reliability" is a recommended alternative for reliable messaging.

    XML Messaging – The evolution of XML Protocols started with the First Generation XML Protocols efforts – WDDX (Web Distributed Data Exchange) and XML-RPC (please note the XML part of the acronym). These protocols had limitations of generic extensibility and support for only DTD. These deficits were overcome in SOAP 1.1 specification which was spearheaded by Microsoft and IBM who jointly published it. This is the most popular industry standard even today and is recommended in WSI BASIC Profile 1.1. The latest developments in the field of XML Messaging are SOAP 1.2 and ReST. While SOAP 1.2 improves on the features provided by SOAP 1.1, ReST is a simple and easy way to do XML Messaging. We will discuss these in later articles.

    Service Description – IDL's (Interface Description Language) as a concept have existed since 1994 when IDL's were created for CORBA. The first standard IDL work that was created for Web Services was WSDL 1.1. This specification was the result of a joint effort by Microsoft and IBM and aims at providing a standard way to describe (in XML) network services as a set of endpoints operating on XML messages. Though the industry still largely uses WSDL 1.1, a newer version of IDL (WSDL 2.0) is now available with enhanced features as compared to WSDL 1.1. I will discuss both WSDL 1.1 and WSDL 2.0 in the later sessions.

    Implementations – Since the inception of the Web Services stack in 2001, there have been a number of popular open-source implementation efforts that have tried to implement all or some of the features specified in the Stack. The first ever project was the Apache SOAP project created by IBM and donated to Apache Group in 2001 making it open source. This was followed by the Axis 1.x and JAX-RPC. The JAX-RPC was an implementation by java/Sun to do web services using Java 1.4. The recent years have seen efforts by a number of groups like Spring, Spring-WS, Axis 2, Metro (Glassfish), JAX-WS (Sun's JavaEE5 compliant) etc. In the course of time we will discuss some of the major implementations that are available.


No comments:

Post a Comment