Google Summer of Code 2006 : Proposal

Project

Axis2 WSDL 2.0 support http://wiki.apache.org/general/SummerOfCode2006#Axis2WSDL2.0

Student

Oshani Seneviratne

Email

oshani@cse.mrt.ac.lk

Abstract

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.

Project overview

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.

Project plan

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.

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.

Stage 3: Feature addition

Based on the feedback from the mentors, other Axis2 developers and users, required new features will be added.

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.

About me

I am a level 3 student from the Department of Computer Science & Engineering of the University of Moratuwa, Sri Lanka. Currently, I'm undergoing an internship at WSO2. From the day one of this internship I have worked with Axis2, developing small features, helping out in testing samples and doing some parts of documentation. As a part of this internship, I have implemented a small feature which provides the functionality to deploy a Javascript (E4X) service in Axis2. You can have a look at the nuts and bolts of that project here. To complement that, I am in the process of developing a javascript (E4X) client API for Axis2/Java.

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.

Appendix

OshaniSeneviratne/GSoC/proposal (last edited 2009-09-20 23:36:34 by localhost)