Google Summer of Code 2009 Prposal

Organization

Apache Software Foundation

Subject ID

tuscany-1-binding.ws.jaxws

Subject

A binding.ws implementation based on JAX-WS Dispatch and Provider APIs

Assigned Mentor

Raymond Feng

Author

Pradeep Rangana Fernando

Email

Prdeepfn AT gmail DOT com , pradeepfdo AT rocketmail DOT com

Project title

A binding.ws implementation based on JAX-WS Dispatch and Provider APIs

Synopsis

Tuscany is an infrastructure that implements service component Architecture.It enables developers to integrate existing solutions as components and contributions so that developers only have to concentrate on their business logic implementation.Contributions can reside in a SCA domain and domain can have a single runtime or multiple run times.when the Contributions reside in two different run times there should be a mechanism to communicate between them.Web-services binding (also known as binding.ws) is yet another binding that is there to address this issue.

The main objective of the this project is to implement the web-services binding support with JAX-WS API/SPI. From JDK 1.6 JAX-WS is shipped with the distribution & It has become the standard in web-services.

The existing binding.ws of the Tuscany is based on Axis2.Though this is working fine at the moment it doesn't follow a standard specification. JAX-WS specification address this issue and since it is the standard in web-services domain, Tuscany would be able to inter-operate with some other projects such as CXF or Metro once this is implemented.

Deliverables

1. A binding.ws implementation based on JAX-WS Dispatch and Provider APIs instead of Axis2 based web services binding.

2. Appropriate developer documentation that would enable the continuation of the project

3. Relevant test cases which make sure the functionality of the binding.ws implementation

4. Appropriate user documentation/tutorial that shows how to use the implementation in their applications.

Project Details

Project Plan

Community Interaction

Interaction with the community plays a major role in open-software projects. You have to constantly update your status on the project & you have to discuss with the community when taking some sensitive decisions like design of the implementation, etc. I'll be try to be transparent as much as possible with my project by discussing it in the mailing list. I will maintain a wikipage of the project so that other people can track down the status of my project.I will use #tuscany IRC channel for quick chatting & will avoid discussing decisions that should be discussed in mailing list.

Development Schedule

April 20 - May 23

getting familiar with the Tuscany code, Discuss the issues regarding design & integrating with Tuscany developers. Get a good understanding on JAX-WS API/SPI , study the current implementation of web-services binding that is in Axis2.come up with a the Design,requirements test scenarios after discussing with community.

May 23 - July 12

First phase of the project. starting coding according to the design that was agreed. implementing the core-parts of the project such as implementing JAX-WS API/SPI.

July 13

mid-term evaluation of the project.

July 14 - August 17

Second phase of the project. Reviewing the Work that have done up to now with the community, fixing JIRA s' of the code contributed. Revising requirements if neeede & continue the development according the agreed decisions.At the latter phase of the project I'll be focusing on writing samples,test-cases,developer-guides & user-guides(Tutorial).

August 17 - August 24

code review, fixing JIRA s' of already contributed code, improving documentation. Testing for various use-cases & submit for final evaluation.

Biography

I'm a 22 year old undergraduate student majoring Computer science & Engineering at the Dept of Computer science & Engineering ,university of Moratuwa , Sri Lanka.I have currently finshed my third year & will start my final year at the end of this year.

I have been working on web-services related technologies for for more than 6 months and quite familiar with the open-source development procedure. I have worked on Apache Axis2 project as my first open source project.I have contributed to it by, Enhancing its' REST capabilities using annotations based mechanism & XML based mechanism. Improving its' client API to support WSDL2.0 ( policy aware client stub-generation , improving service-client, etc ). And submitting patches.

Since I've been working with Axis2 i have a sound knowledge in technologies/specificatons/projects such as java & XMl, WSDL, Apache-Maven, Apache-ant, WSS4J & WODEN parsers, AXIOM. I'm very interested in community based development and web-services and want to contribute to open-source software more in the future.I am sure that the previous work I have done in the web-services domain & the technologies I've been exposed by doing so, will help me a lot to successfully complete this project.

References

Computer Science and Engineering Department

Apache Tuscany

Tuscany WS binding