You are viewing a plain text version of this content. The canonical link for it is here.
Posted to woden-dev@ws.apache.org by Dilshan Edirisuriya <di...@gmail.com> on 2010/03/23 08:54:01 UTC

Woden-20 for GSOC 2010

Hi All,

I'm a post graduate student of the University of Colombo School of Computing
(UCSC), Sri Lanka. I am very much interested in the  Woden-20 project idea
and wish to implement it as a GSOC project. Since I have already contributed
to the Woden project I have a good knowledge about the code base too. I also
went through the comments given in the Woden-20 issue that "create a
read-write interface that extends the read-only interface" and have a clear
idea about it. But I'm not too clear about the use of strategy pattern in
this case. It would be great if you could give a explanation so that I would
be clear about it.


Thanks,

Dilshan

blog : http://dilshaned.blogspot.com/

Re: Woden-20 for GSOC 2010

Posted by Dilshan Edirisuriya <di...@gmail.com>.
 Hi all ,

 Based on the mentor comments gave during the #woden-dev IRC  chat for my
initial proposal i have made necessary improvements. FYI i have attached
some parts of my proposal with this mail ,


Abstract

Apache Woden  implements the W3C WSDL 2.0 spec. According to W3C WSDL 2.0
spec the Woden has two APIs,Element Level and Component level APIs.The
Component Level API is a read only API and implementing a read write
features is the main goal.Further defining a serialization strategy for the
Component level API is also required. another goal of this project is
identifying those serialization alternatives and encapsulating them using a
strategy pattern and implement them.

Through the Component API and the Element API the Woden API provides two
'views' of WSDL. The Element API is an XML centric view and it visualizes
physical constructs of the WSDL 2.0 document. The Component API is an
implementation of W3C WSDL 2.0 'component model' that provides a flatten
view of the WSDL 2.0 document. At the moment WSDL 2.0 documents  can only be
created or modified programmatically through the Element API. As mentioned
above the Component API is a read-only API and implementing such an API for
Woden component model is the first goal of this project. Adding new methods
in to an existing read-only API will only result in extra complexity of the
Woden API therefore creating a new read-write API that extends from the
read-only API is the BEST solution for this.


Here I introduce a new package as org.apache.woden.wsd120.editable to hold
new API interfaces. The following set of interfaces will be added in to this
new package.

Each of the above interfaces will extend from the particular WSDL 2.0
component and additionally they will contain following methods to make them
read-write.


1.) Factory methods that will be used to create new sub components of the
components and later add them them to the components.  The Woden Element
level API provides AddXXXX methods that encapsulates both the creation of
sub component elements and also adding of the necessary references. The same
naming convention will be used for the Component level Factory method.


2.)Create a new method called, 'Add(Component subComponent)' to add the
existing sub component to the component. This method will be needed for the
Serialization strategy.

3.)Create new methods, 'attach(Component subComponent)' and
'detach(Component subComponent)', which will be used to respectively attach
sub components to a parent component and detach sub components form the
parent component. These methods will be needed for the Serialization
strategy.


W3C WSDL 2.0 *component model* [1]  does not provide any details about the
XML info-set and the physical constructs of a given WSDL model also the W3C
WSDL 2.0 *specification *section 4 [3] discusses some of the modularization
options. It is decided an interface called "SearalizationStrategy " to be
developed based on  the GOF strategy  pattern to represent the possible
serialization strategies. There also will be a method on the Woden
WSDLFactory to set a desired serialization strategy.   Following are some of
the possible serialization options and they will represent each of the
approaches as an implementation of the "SearalizationStrategy " interface.
Furthermore "SearalizationStrategy " interface defines a single method
called 'serializeInternal()' that encapsulate each of these different
serialization algorithms.

1.) SingleFileSearalizationStrategy - The simplest searalization strategy.
Here all the components of the particular WSDL 2.0 component model serialize
as a single WSDL 2.0 document.

 2.) NamespaceBasedSearalizationStrategy - Here all the components belong to
a single namespace, serialized in to a single WSDL 2.0 document. This can be
resulted in the creation of several WSDL 2.0 documents for different
namspaces and it requires to design a suitable naming convention to name
these documents.

3.)SingleFileSingleXSDSearalizationStrategy - Same as  the
SingleFileSearalizationStrategy. Here all the WSDL 2.0 components are
serialized in to a single document except for type components which will
serialize into a separate XSD Schema document.




'serializeInternal()'  method on the SearalizationStrategy  interface
encapsulates the above strategies and are used internally in the WSDLWritter
that works on Element level where final the serialization depends on each
algorithm.




Furthermore introduce 'searilze( OutputStream sink)' and 'searalize(Writer
sink)' methods on the EditableDescription. The users can serialize WSDL 2.0
Description by calling any of these methods.

example code segment is given below.


 WSDLFactory wsdlFactory=WSDLFactory.newInstance();
 EditableDescription desComp =wsdlFactory.newEdtitableDescription ();

// fill the tree
desComp.setSearalizationStrategy(
SearalizationStrategy.NAMESPACE_BASED_SEARALIZATION);
NamespaceBasedSearalizationStrategy
desComp.searilze(System.out)


*Deliverables: *

     1.)  The read-write component level API and the implementation for
Woden WSDL Component model.
     2.)  Implementation of searalization strategies for Woden WSDL
Component model.
     3.)  Set of Junit test cases for unit tests of above two deliverable.
     4.)  Required documentations for developer documentation and also for
future developments.
     5.)  Samples and a user guide for theses new features.



Thanks

Dilshan


On Thu, Mar 25, 2010 at 11:33 AM, Dilshan Edirisuriya
<di...@gmail.com>wrote:

> Hi All,
>
> Thank you sagara for the information. I will now start working on the
> proposal and get back to you ASAP.
>
> Thanks,
>
> Dilshan
>
> On Tue, Mar 23, 2010 at 1:45 PM, Sagara Gunathunga <
> sagara.gunathunga@gmail.com> wrote:
>
>> Hi Dilshan ,
>>
>> On Tue, Mar 23, 2010 at 1:24 PM, Dilshan Edirisuriya <
>> dilshan.ed@gmail.com> wrote:
>>
>>>
>>> Hi All,
>>>
>>> I'm a post graduate student of the University of Colombo School of
>>> Computing (UCSC), Sri Lanka. I am very much interested in the  Woden-20
>>> project idea and wish to implement it as a GSOC project. Since I have
>>> already contributed to the Woden project I have a good knowledge about the
>>> code base too. I also went through the comments given in the Woden-20 issue
>>> that "create a read-write interface that extends the read-only interface"
>>> and have a clear idea about it.
>>>
>>
>>
>> Nice to hear about your interest, since you have already contributed to
>> the Woden it is much easy for you to get start with this project.
>>
>>
>>
>>
>>> But I'm not too clear about the use of strategy pattern in this case. It
>>> would be great if you could give a explanation so that I would be clear
>>> about it.
>>>
>>
>> This [1] page summarized some  of the differences of Component/Element
>> level APIs , basically once you have a tree of WSDL 2.0  Components you
>> can't simply determine how it physical serialize ,whether it as a single
>> file or as a multiple files. In the case of multiple files again you have
>> several options. ( see Woden-20 comments)  So best approach is to define a
>> serialization strategy for this.
>>
>> At the moment WSDL  Writer only capable to serialize  as a single file ,
>> we have several options .
>>
>> 1.) Modify the WSDLWriter so that it internally handle those serialization
>> strategies.
>>
>> 2.)  Keep existing  WSDLWriter as a base class  ( Also it's represent one
>> serialization strategy as it serialize in to a single file)  extend it
>> for other strategies.
>>
>>
>> BTW for this project initially you can  start by implementing  "serialize
>> to single file" strategy ,
>>
>>
>> Let's see any other good ideas form others too
>>
>>
>>
>> [1] - http://wiki.apache.org/ws/FrontPage/Woden/APIReview/OneWsdlApi
>>
>>
>> Thanks ,
>>
>>
>>>
>>>
>>> Thanks,
>>>
>>> Dilshan
>>>
>>> blog : http://dilshaned.blogspot.com/
>>>
>>
>>
>>
>> --
>> Sagara Gunathunga
>>
>> Blog - http://ssagara.blogspot.com
>> Web - http://people.apache.org/~sagara/<http://people.apache.org/%7Esagara/>
>>
>
>

Re: Woden-20 for GSOC 2010

Posted by Dilshan Edirisuriya <di...@gmail.com>.
Hi All,

Thank you sagara for the information. I will now start working on the
proposal and get back to you ASAP.

Thanks,

Dilshan

On Tue, Mar 23, 2010 at 1:45 PM, Sagara Gunathunga <
sagara.gunathunga@gmail.com> wrote:

> Hi Dilshan ,
>
> On Tue, Mar 23, 2010 at 1:24 PM, Dilshan Edirisuriya <dilshan.ed@gmail.com
> > wrote:
>
>>
>> Hi All,
>>
>> I'm a post graduate student of the University of Colombo School of
>> Computing (UCSC), Sri Lanka. I am very much interested in the  Woden-20
>> project idea and wish to implement it as a GSOC project. Since I have
>> already contributed to the Woden project I have a good knowledge about the
>> code base too. I also went through the comments given in the Woden-20 issue
>> that "create a read-write interface that extends the read-only interface"
>> and have a clear idea about it.
>>
>
>
> Nice to hear about your interest, since you have already contributed to the
> Woden it is much easy for you to get start with this project.
>
>
>
>
>> But I'm not too clear about the use of strategy pattern in this case. It
>> would be great if you could give a explanation so that I would be clear
>> about it.
>>
>
> This [1] page summarized some  of the differences of Component/Element
> level APIs , basically once you have a tree of WSDL 2.0  Components you
> can't simply determine how it physical serialize ,whether it as a single
> file or as a multiple files. In the case of multiple files again you have
> several options. ( see Woden-20 comments)  So best approach is to define a
> serialization strategy for this.
>
> At the moment WSDL  Writer only capable to serialize  as a single file , we
> have several options .
>
> 1.) Modify the WSDLWriter so that it internally handle those serialization strategies.
>
>
> 2.)  Keep existing  WSDLWriter as a base class  ( Also it's represent one
> serialization strategy as it serialize in to a single file)  extend it for
> other strategies.
>
>
> BTW for this project initially you can  start by implementing  "serialize
> to single file" strategy ,
>
>
> Let's see any other good ideas form others too
>
>
>
> [1] - http://wiki.apache.org/ws/FrontPage/Woden/APIReview/OneWsdlApi
>
>
> Thanks ,
>
>
>>
>>
>> Thanks,
>>
>> Dilshan
>>
>> blog : http://dilshaned.blogspot.com/
>>
>
>
>
> --
> Sagara Gunathunga
>
> Blog - http://ssagara.blogspot.com
> Web - http://people.apache.org/~sagara/
>

Re: Woden-20 for GSOC 2010

Posted by Sagara Gunathunga <sa...@gmail.com>.
Hi Dilshan ,

On Tue, Mar 23, 2010 at 1:24 PM, Dilshan Edirisuriya
<di...@gmail.com>wrote:

>
> Hi All,
>
> I'm a post graduate student of the University of Colombo School of
> Computing (UCSC), Sri Lanka. I am very much interested in the  Woden-20
> project idea and wish to implement it as a GSOC project. Since I have
> already contributed to the Woden project I have a good knowledge about the
> code base too. I also went through the comments given in the Woden-20 issue
> that "create a read-write interface that extends the read-only interface"
> and have a clear idea about it.
>


Nice to hear about your interest, since you have already contributed to the
Woden it is much easy for you to get start with this project.




> But I'm not too clear about the use of strategy pattern in this case. It
> would be great if you could give a explanation so that I would be clear
> about it.
>

This [1] page summarized some  of the differences of Component/Element level
APIs , basically once you have a tree of WSDL 2.0  Components you can't
simply determine how it physical serialize ,whether it as a single file or
as a multiple files. In the case of multiple files again you have several
options. ( see Woden-20 comments)  So best approach is to define a
serialization strategy for this.

At the moment WSDL  Writer only capable to serialize  as a single file , we
have several options .

1.) Modify the WSDLWriter so that it internally handle those
serialization strategies.


2.)  Keep existing  WSDLWriter as a base class  ( Also it's represent one
serialization strategy as it serialize in to a single file)  extend it for
other strategies.


BTW for this project initially you can  start by implementing  "serialize to
single file" strategy ,


Let's see any other good ideas form others too



[1] - http://wiki.apache.org/ws/FrontPage/Woden/APIReview/OneWsdlApi


Thanks ,


>
>
> Thanks,
>
> Dilshan
>
> blog : http://dilshaned.blogspot.com/
>



-- 
Sagara Gunathunga

Blog - http://ssagara.blogspot.com
Web - http://people.apache.org/~sagara/