Summer of code 2005 Proposal for Guththila - StAX C Parser
- Dinesh Premalal
- Dr.Sanjiva Weerawarna
- Guththila is a StAX parser which is initiated to use with Axis C++. Advantage of StAX parser in soap message processing is soap engine could have more control over soap message processing. We have "Guththila" as separate parser implementation. It can handle soap messages with namespaces and UTF-8 and UTF-16 encodings. Fist we have to Integrate current parser implementation with Axis C++ and should have some test cases based on present parser.
In order to start Axis2 C port we should have to have StAX parser in C. In this summer hope to rewrite Guththila in C and have it as StAX C parser under apache 2.0 licenning
- Integrate Guththila current Version with axis C++ and make some test cases.
- Come up with a State machine for Guththila C version
- Guththila C version with namespace support.
- Guththila C version with encoding support.
- Axis C++ is a one of major project which is carried out by under Webservices projects by Apache Software Foundation. Axis C++ is a soap engine which is using Xerces to process internal soap messages. Xerces is a bulk xml parser therefore we have to spend more resources on it. It reduces performance of soap engine. It uses SAX parser for it. Draw back of a SAX parser is , it has (parser) more control of parsing. But for Axis c++ we need StAX parser then Axis c++ engine get more control in soap processing.
- There was no StAX parser in C++ and Apache 2.0 licenning. We could have "Guththila" As StAX xml parser with Apache 2.0 licennning.
With the basic Idea of Increasing Performance of axis c++ "Guththila" was initiated. It just need to parse soap messages. ( SOAP requests and SOAP responses). It should have basic soap messages parsing with namespaces support. "Guththila" compliant with namspace support
- "Guththila" is matured with handling UTF-8 and UTF-16 encoded documents.
you can have latest version of Guththila from Here
- "Guththila" has Api which is similar to StAX parsing Api therefore it is perfectly match with Axis C++ engine.
For this summer I have two different main goals.
- 1.Integrating Present parser with Axis C++ 2.Re write Guththila StAX parser in C.
Integrating Present parser with Axis C++ will be carried out in two steps, First I need to implement XMLParser interface with Guththila. That XMLParser interface basically designed to integrate SAX parsers. Here what I happen to do is interface StAX parser with SAX interface.Then I need to integrate implemented parser interface with current build. In my sense this will be a critical task for me. because need to get more things from the axis c++ developers. After integrating it with axis C++ current build need to have some test cases in order to demonstrate the scenario.
Rewriting Guththila in C will be carried out in major three phases.
- Developing State machine
- Getting namespace support
- Getting Encoding support (UTF-8 and UTF-16)
Though current version of Guththila has stable state machine , need to study on it more and understand throughly how it works. Then base on it I can come up with a C implementation. With a stable state machine need to add namespace support and encoding support. since encoding work is something Im quite familer with hope to concern on more on state machine and namespace support.
- Week Starting 11th of July 2005
- Implementing XMLParser.h interface, and Generating libaxis_guththila.la
- Week Starting 18th of July
- Integrate it with the current build and write a test case for it
- Week Starting 25th of July
- Starting Guththila C implementation. Working on state machine
- Week Starting 01st of August
- reviewing state machine and make improvements to the state machine
- Week Starting 08th of August
- Adding namespace support
- Week Starting 15th of August
- Adding encoding support (only UTF-8 and UTF-16)
- Week Starting 22nd of August to 1st of September
- Buffer time, Reviewing whole architecture
- 1st of September
- Come up with a Guththila C implementation M1
I'm a student of Department of Computer Science and Engineering , University of Moratuwa, Sri Lanka. Now I'm in Level 3. I have worked on "Guththila" project for last four months. I was working on it to add encoding support.
I'm a Linux fan and emacs user. I'm sure if you get to use Debian you can't make you're mind to use any other OS or Linux distribution and if you get to use emacs you can't make you're mind to use any other editor
University of Moratuwa http://www.mrt.ac.lk
Department of Computer Science and Engineering http://www.cse.mrt.ac.lk
Home Page http://www.cse.mrt.ac.lk/~premalwd
Apache Web Services http://ws.apache.org
Google Summer of Code http://code.google.com