Google Summer of Code 2006 : Proposal
Axis2 WSDL 2.0 support http://wiki.apache.org/general/SummerOfCode2006#Axis2WSDL2.0
This project would be an attempt to provide WSDL 2.0 support for Axis2/Java. The current implementation of Axis2/Java has support for the WSDL 1.1 specification. Compatibility with the WSDL 2.0 specification is a much sought after feature, as evidenced by the inquiries made on Axis2 mailing lists. Therefore this project is important for Axis2/Java to be on the cutting edge of the world of web services.
A WSDL provides a set of components and their associated properties for describing a web service. The important changes in WSDL2.0 from WSDL1.1 include reusability through inheritance, extensibility, and semantics changes. Inheritance is achieved through interfaces by using the extends attribute in the interface element. Extensibility is achieved through the open content model, features & properties and message exchange patterns. Semantics changes include making targetNamespace a required attribute of the definitions element, renaming port types to interfaces and ports to endpoints, etc. Apart from these changes, message constructs have been removed and these are specified using the XML schema type in the types element.
For WSDL processing, Axis2 uses the WSDL4J API which is tightly bound to WSDL 1.1. However, an incubation subproject of the Apache Web services - the Woden project, is aimed at developing a Java class library for reading, manipulating, creating and writing WSDL documents. Not just for WSDL 2.0, but with the longer term aim of supporting past, present and future versions of WSDL. But still Woden is in Milestone 4 and a release is to be expected soon. Therefore, one of the aims of this project would be to integrate woden if possible, and provide support for WSDL2.0. However if this attempt with woden fails, it would still be possible to provide the necessary functionality by an AXIOM based model.
I have identified several key stages in the project. These stages would act as an escalation strategy and hopefully guide me to the successful completion of the project. Wherever and whenever possible, I hope to stick with test-first development strategy and get valuable feedback from the mentors, the other Axis2 developers and the user community at large.
Stage 1: Initial planning and design
During this stage I hope to understand the current implementation of Axis2 for WSDL1.1. This should effectively lead me into determining what needs to be changed in Axis2 for WSDL2.0 support and how to implement those changes.
- Deliverable(s) - Initial prototype with Woden integrated
- Estimated completion - May 31st
Stage 2: Initial Implementation
Based on the WSDL2.0 specification, the changes for Axis2 would be implemented. These changes would specifically include providing support for interfaces, extensibility, semantic changes and how the services are populated in the Axis2 engine. A prototype and documentation for the mid-term evaluation would also be prepared during this stage.
- Deliverable(s) - Prototype and Documentation for mid-term evaluation
- Estimated completion - June 30th
Stage 3: Feature addition
Based on the feedback from the mentors, other Axis2 developers and users, required new features will be added.
Deliverable(s) - Almost production quality code
- Estimated completion - July 15th
Stage 4: Final code touch ups and documentation
During this stage the code would be integrated and tested rigourously. Documentation would also be completed for the final evaluation.
- Deliverable(s) - Final product and Documentation
- Estimated completion - July 31st
On the Google SoC site, students are asked to elaborate on the fact “…the reason you're the best individual”. Well, I may not be the best individual for this project! However, I'm very enthusiastic about open source software development, and I hope the knowledge I have on Axis2 at the moment can give me a head start on the work for this project. At the same time I hope this will be a great opportunity for me to put my software engineering skills at test and be a part of one of the most important web services projects around.
WSDL2.0 primer - http://www.w3.org/TR/2004/WD-wsdl20-primer-20041221
Changes from WSDL1.1 - http://www.xml.com/pub/a/ws/2004/05/19/wsdl2.html
Department of Computer Science & Engineering - http://www.cse.mrt.ac.lk
University of Moratuwa, Sri Lanka - http://www.mrt.ac.lk