You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by ishara karunarathna <is...@gmail.com> on 2009/09/20 07:40:47 UTC

Request for a Project

Dear sir,
I'm a undergraduate student from University of Maoratywa, Sri Lanka. I'm
studying my 3rd academic year (it is a 4year degree program on computer
Science and Engineering ). in this academic year i have to join to an open
source project and contribute to it for 12 weeks. I can choose any open
source project based on my interest. My instructors will evaluate my work at
the end.

I like to join Axis2 project but I need some help to know how can I join to
Axis 2 and what can I do.
I'm  experienced in java language. So please  send me some help me with some
starting points to start with.
      Thank you.

RE: Request for a Project

Posted by Yashwanth <yr...@cisco.com>.
Hi Andreas, Amila,
 
Wondering if it would be possible to run some standard benchmarks like
TPC-APP  <http://www.tpc.org/tpc_app/articulo.pdf>
http://www.tpc.org/tpc_app/articulo.pdf and share the results with all
(Probably a link on Axis2 home page to these would help).  I am suggesting
this only as a way to compare software and not to compare hardware. 
 
So one approach is to implement this needed components for tpc-app using
Axis2, cxf etc and share these implementations so that interested folks can
download these and compare the results by running on their hardware so they
will know which s/w performs better?
 
Wondering if folks would take a stab at implementing TPC-App on Axis2/CXF
and share them.
 
cheers,
--
Yash

  _____  

From: Amila Suriarachchi [mailto:amilasuriarachchi@gmail.com] 
Sent: Sunday, September 20, 2009 10:28 PM
To: axis-dev@ws.apache.org
Subject: Re: Request for a Project




On Sun, Sep 20, 2009 at 8:55 PM, Andreas Veithen <an...@gmail.com>
wrote:


It really depends on your interests and the kind of contribution your
instructor is expecting. One idea that comes to my mind is helping us
optimizing the performance of Axis2. There are several reasons why
this would be interesting to us:



hi Andreas,
Actually I had some investigations on Axis2 performance and possible ways to
improve them some times back.
please see my comments below. 



- There have been reports [1] that the performance of Axis2 1.5 is not
as good as expected.


For this I asked him to test with ADB generated code but there was no reply.


When it comes to this kind of performance issue I think most of the problem
relates to the way Data binding framework work.
For an example ADB generated code directly get the underline stax parser to
build the java object and serialise the response directly to stream writer.
Therefore Axiom serilization deserilalization only relates to soap envelop
parsing. But if some intermidiate handler builds the soap envelop (eg
rampart) then it depends on the Axiom performance. 

This direct serialization and deserialization happens for jaxbri and
xmlbeans as well.

But for the POJO it does not read from the underline stax parser and always
creates an intermediate Axiom object. And also it parses the whole bean
class structure using reflection for each and every request. So I think
these two factors contribute most for POJO inefficiency compared to
generated code.

I hadsome performance testing with a wsdl which has many types with a
request around 4kb
As I remember

axis2-ADB performs better
then cxf-jaxbri performs slightly better than axis2-jaxbri
then axis2-xmlbeans

but I haven't done the jaxws (axis2, cxf) and POJO.

thanks,
Amila.


- To my knowledge, we don't do systematic performance tests. On the
other hand, performance is an important quality attribute for a Web
service framework.
- I did some profiling on Axiom (the XML object model used by Axis2)
and there is definitely room for improvement.

Depending on your available time, this could involve the following tasks:

- Define a set of typical use cases for which we want to test/compare
performance.
- Define a test methodology and select appropriate tools.
- Implement the use cases using Axis2 and some other SOAP stacks (CXF,
JAX-WS reference implementation, etc.).
- Measure the performance and compare the results obtained from
different Axis2 versions and different SOAP stacks.
- Investigate what changes (between different Axis2 versions) or
architectural differences (between different SOAP stacks) can explain
the observed results.
- Investigate where and how Axis2 performance can be improved.

Of course, for all these tasks, you would interact with the developer
community to get the required input.

Regards,

Andreas

[1] http://markmail.org/thread/vkxfbebh7opwo46d


On Sun, Sep 20, 2009 at 07:40, ishara karunarathna
<is...@gmail.com> wrote:
> Dear sir,
> I'm a undergraduate student from University of Maoratywa, Sri Lanka. I'm
> studying my 3rd academic year (it is a 4year degree program on computer
> Science and Engineering ). in this academic year i have to join to an open
> source project and contribute to it for 12 weeks. I can choose any open
> source project based on my interest. My instructors will evaluate my work
at
> the end.
>
> I like to join Axis2 project but I need some help to know how can I join
to
> Axis 2 and what can I do.
> I'm experienced in java language. So please send me some help me with some
> starting points to start with.
> Thank you.





-- 
Amila Suriarachchi
WSO2 Inc.
blog: http://amilachinthaka.blogspot.com/


Re: Request for a Project

Posted by Amila Suriarachchi <am...@gmail.com>.
On Sun, Sep 20, 2009 at 8:55 PM, Andreas Veithen
<an...@gmail.com>wrote:

> It really depends on your interests and the kind of contribution your
> instructor is expecting. One idea that comes to my mind is helping us
> optimizing the performance of Axis2. There are several reasons why
> this would be interesting to us:
>

hi Andreas,
Actually I had some investigations on Axis2 performance and possible ways to
improve them some times back.
please see my comments below.

>
> - There have been reports [1] that the performance of Axis2 1.5 is not
> as good as expected.
>
For this I asked him to test with ADB generated code but there was no reply.


When it comes to this kind of performance issue I think most of the problem
relates to the way Data binding framework work.
For an example ADB generated code directly get the underline stax parser to
build the java object and serialise the response directly to stream writer.
Therefore Axiom serilization deserilalization only relates to soap envelop
parsing. But if some intermidiate handler builds the soap envelop (eg
rampart) then it depends on the Axiom performance.

This direct serialization and deserialization happens for jaxbri and
xmlbeans as well.

But for the POJO it does not read from the underline stax parser and always
creates an intermediate Axiom object. And also it parses the whole bean
class structure using reflection for each and every request. So I think
these two factors contribute most for POJO inefficiency compared to
generated code.

I hadsome performance testing with a wsdl which has many types with a
request around 4kb
 As I remember

axis2-ADB performs better
then cxf-jaxbri performs slightly better than axis2-jaxbri
then axis2-xmlbeans

but I haven't done the jaxws (axis2, cxf) and POJO.

thanks,
Amila.


> - To my knowledge, we don't do systematic performance tests. On the
> other hand, performance is an important quality attribute for a Web
> service framework.
> - I did some profiling on Axiom (the XML object model used by Axis2)
> and there is definitely room for improvement.
>
> Depending on your available time, this could involve the following tasks:
>
> - Define a set of typical use cases for which we want to test/compare
> performance.
> - Define a test methodology and select appropriate tools.
> - Implement the use cases using Axis2 and some other SOAP stacks (CXF,
> JAX-WS reference implementation, etc.).
> - Measure the performance and compare the results obtained from
> different Axis2 versions and different SOAP stacks.
> - Investigate what changes (between different Axis2 versions) or
> architectural differences (between different SOAP stacks) can explain
> the observed results.
> - Investigate where and how Axis2 performance can be improved.
>
> Of course, for all these tasks, you would interact with the developer
> community to get the required input.
>
> Regards,
>
> Andreas
>
> [1] http://markmail.org/thread/vkxfbebh7opwo46d
>
> On Sun, Sep 20, 2009 at 07:40, ishara karunarathna
> <is...@gmail.com> wrote:
> > Dear sir,
> > I'm a undergraduate student from University of Maoratywa, Sri Lanka. I'm
> > studying my 3rd academic year (it is a 4year degree program on computer
> > Science and Engineering ). in this academic year i have to join to an
> open
> > source project and contribute to it for 12 weeks. I can choose any open
> > source project based on my interest. My instructors will evaluate my work
> at
> > the end.
> >
> > I like to join Axis2 project but I need some help to know how can I join
> to
> > Axis 2 and what can I do.
> > I'm  experienced in java language. So please  send me some help me with
> some
> > starting points to start with.
> >       Thank you.
>



-- 
Amila Suriarachchi
WSO2 Inc.
blog: http://amilachinthaka.blogspot.com/

Re: Request for a Project

Posted by Andreas Veithen <an...@gmail.com>.
It really depends on your interests and the kind of contribution your
instructor is expecting. One idea that comes to my mind is helping us
optimizing the performance of Axis2. There are several reasons why
this would be interesting to us:

- There have been reports [1] that the performance of Axis2 1.5 is not
as good as expected.
- To my knowledge, we don't do systematic performance tests. On the
other hand, performance is an important quality attribute for a Web
service framework.
- I did some profiling on Axiom (the XML object model used by Axis2)
and there is definitely room for improvement.

Depending on your available time, this could involve the following tasks:

- Define a set of typical use cases for which we want to test/compare
performance.
- Define a test methodology and select appropriate tools.
- Implement the use cases using Axis2 and some other SOAP stacks (CXF,
JAX-WS reference implementation, etc.).
- Measure the performance and compare the results obtained from
different Axis2 versions and different SOAP stacks.
- Investigate what changes (between different Axis2 versions) or
architectural differences (between different SOAP stacks) can explain
the observed results.
- Investigate where and how Axis2 performance can be improved.

Of course, for all these tasks, you would interact with the developer
community to get the required input.

Regards,

Andreas

[1] http://markmail.org/thread/vkxfbebh7opwo46d

On Sun, Sep 20, 2009 at 07:40, ishara karunarathna
<is...@gmail.com> wrote:
> Dear sir,
> I'm a undergraduate student from University of Maoratywa, Sri Lanka. I'm
> studying my 3rd academic year (it is a 4year degree program on computer
> Science and Engineering ). in this academic year i have to join to an open
> source project and contribute to it for 12 weeks. I can choose any open
> source project based on my interest. My instructors will evaluate my work at
> the end.
>
> I like to join Axis2 project but I need some help to know how can I join to
> Axis 2 and what can I do.
> I'm  experienced in java language. So please  send me some help me with some
> starting points to start with.
>       Thank you.

Re: Request for a Project

Posted by Amila Suriarachchi <am...@gmail.com>.
On Sun, Sep 20, 2009 at 11:10 AM, ishara karunarathna <isharaaruna@gmail.com
> wrote:

> Dear sir,
> I'm a undergraduate student from University of Maoratywa, Sri Lanka. I'm
> studying my 3rd academic year (it is a 4year degree program on computer
> Science and Engineering ). in this academic year i have to join to an open
> source project and contribute to it for 12 weeks. I can choose any open
> source project based on my interest. My instructors will evaluate my work
> at
> the end.
>

> I like to join Axis2 project but I need some help to know how can I join to
> Axis 2 and what can I do.
> I'm  experienced in java language. So please  send me some help me with
> some
> starting points to start with.
>

As Andreas has told it depends on your interest. Here is a idea I had in my
mind.

With Axis2 1.5 Axis2 supports only jdk 1.5 or later where we have generics.
ADB code generation
which is written to support even jdk 1.4 uses arrays.
Therefore now we can replace array with lists with generics. However there
are a lot of code written using arrays and we don't won't to change the
existing ADBBeanTemplate-bean.xsl. So what you can do is to introduce a new
parameter to enable this feature.
When implementing you can create a new template using a copy of existing
ADBBeanTemplate-bean.xsl and include that template to ADBBeanTemplate.xsl if
user has specified the new parameter. Most importantly you need to write a
whole set of new tests cases which is there for older version.

This altimately improve some ADB performance as well since when parsing
request messaes we do some list to array conversions.

thanks,
Amila.




>       Thank you.




-- 
Amila Suriarachchi
WSO2 Inc.
blog: http://amilachinthaka.blogspot.com/