In this section, we are going to discuss web service frameworks, particularly Web Services frameworks at Apache. Increasing popularity of web services and their usage have built a new competition in the market. This competition has led to produce a set of good web service frameworks in the open source and commercial domains. In the open source domain, especially when it comes to web services, undoubtedly Apache has the most commonly used Web Service framework. Over the years, Apache has produced four main Web Service frameworks, and we are going to discuss three of them here. As far as the history of web services is concerned, several generations are clearly visible. The first generation web services were highly controlled interactions and can be considered as mere tests of feasibility. Apache SOAP was one of the notable SOAP engine in the first generation, and that was mainly meant to be "proof of concept" and not at all that concerned about performance. Apache SOAP was initially developed at IBM and later they donated it to Apache and started the Web Service project in Apache. The whole idea of the first generation SOAP engines was to convince the world that web services are feasible.
Soon the toll of these first generation SOAP engines paid off. More companies started showing their interest and the SOA started taking shape. This stage can be called as the second generation of web services and required better SOAP engines that were faster. Aspects such as discovery and definition were already standardized and SOAP engines also needed to support these standards. Apache Axis (Axis1) was born as one of these second generation SOAP engines.
Apache Axis project is one of the most successful projects in Apache, and it gained huge market awareness. A lot of companies use it as the core Web Service framework. Apache Axis project introduces a number of new concepts into Apache Web Services, and among them Handler framework can be considered as one of the most important and useful features. Handler framework enables us to extend core web service features and add additional quality of services, such as security and reliability. Axis uses DOM as internal XML (SOAP) representation mechanism, and it comes with comprehensive support for code generation and data binding. Axis project has better support to quality of service, including reliability, security, and transaction. Additionally, it has support for binary data. Axis has two implementations, one for Java and the other for C++. Axis project is still popular and very stable and a lot of companies use Axis as the web service framework.
Now the second generation of web services is also coming to an end. Web services are becoming highly demanding and a large number of players have entered the web service arena. Aspects governing different facets of web service interactions have been standardized. The third generation of web services requires faster, far more robust SOAP engines and the existing Axis is not enough for this. Axis2 was made to fill this gap.