Axis Mora

Axis Mora is my first real work in the Web Services, Open source and Axis and it is a is an attempt to create high performance SOAP Engine using the pull parsing and code generation on top of the Apache Axis.

Rationale for AxisMora

By the time Axis 1.0 comes up the Web Services is an interesting technology, the most important thing is to get it right rather that trying to send messages in the range of GB’s or processing 100-1000 messages per second. But now the things have changed, Web Services   has gone through the first stage of its life cycle and now people no longer question the practicality of Web Services but are trying to do real things on web services. Under the circumstances people are asking performance Questions from the Apache Axis? Yap it is not the fastest SOAP implementation around yet almost all it’s revivals has learn from it, interestingly enough it is the SOAP engine that is always compared with!

 

Implementation

It is the project we received at the Lanka Software Foundation when we go there for the industrial training. Axis Mora Team is Dimuthu Leelarathne, JayaKumaran, V. T. Paven, myself and our advisor is Dr. Sanjiva Weerawarne and he give us the idea of Axis Mora and help team with the development.  Axis Mora build on top of a  Axis Architecture, Design Patterns and experiences but give uses to concepts to gain the performance pull parsing and code generation.

  1. Pull Parsing
    Axis Mora make use of the fact that even though the push is the most natural from to write a XML file the pull is the most natural from to read. Rather than the push where the parser controls the application with pull the application have the control. As a result the use of pull parser will leads to a more natural code and better performance.
  2. Code Generation
    WSDL provides all the information about the Web Service at the deployment time and this information can be used to generate code that is optimized for processing the Web Service.

Performance Analysis

We have proved our point quite well, bigger the message the Axis Mora out perform Axis better we reach 10X and reach 2X against some rival SOAP implementation of Axis. I got the test cases I run anybody interested can get it from here [link].  

 

Current Status

But Axis Mora is not a replacement for Axis; it is a proof that we can write an Axis 2 that is fast. We no longer develop Axis Mora, yap it is like parting from a close friend yet it has served it purpose and as most other things in life it has to go when the time comes. On the final analysis AxisMora is not in vain and it gives rise to the Axis 2 where I am working on currently. Last September we had brought together all the experiences of the Axis 1.x in to one place and design Axis 2, we are working on it! Hope to get something concrete [at least a M1] with in a Year.