axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Tom Jordahl" <>
Subject RE: [axis2] simple data binder
Date Thu, 11 Aug 2005 17:31:05 GMT

I think I see what you are driving at Sanjiva, and I can agree with it
to a point.  But it seems to me that you may be taking the religion you
have gotten ("XML is all") to the extreme. :-)

My personal hopes for Axis2 are that it will support WSDL 2.0 plus all
the other stuff like WSA and MTOM, and especially fix our typemapping
system from Axis 1.x. I also would like to get full XML Schema support
in WSDL2Java, so we can map almost any Schema to code. I know that this
doesn't even come close to your vision.  But as you have said, there is
no reason why Axis2 can't accomplish these goals, but just don't stuff
all that in to the core.

What I *do* think we need to preserve in the project is a pragmatic
sense of what needs to be there and work to make Axis2 useful to
developers who are looking for an open source library that helps them
use Web Services.  If we give them just AXIOM, it doesn't give them
much.  We might as well have stuck with Message based (XML-in/XML-out)
services that Axis pre-1.0 did just fine.  An XML parser can take apart
a SOAP envelope just fine.  Why go further?

So in that respect, Axis2 is going to have to do things that Axis1 does:
Unwrap doc/lit services, handle RPC encoding, generate usable stubs from
WSDL 1.1 - basically replace Axis1 but do it better and with a more
advanced support of the latest 'stuff'.

That is why I like seeing lists of concrete stuff from Glen that address
these needs.

Tom Jordahl
Macromedia Server Development 

-----Original Message-----
From: Sanjiva Weerawarana [] 
Sent: Thursday, August 11, 2005 10:09 PM
Subject: RE: [axis2] simple data binder

On Thu, 2005-08-11 at 12:12 -0400, Tom Jordahl wrote:
> From: Glen Daniels []: 
> > Correct.  Whatever "simple" db framework we include must be able to:
> >
> > 1) Do rpc/lit AND rpc/enc
> > 
> > 2) Handle WSDL 1.1 "wrapped" style method calls
> >
> > 3) Handle SOAP 1.1 and SOAP 1.2 data encoding (arrays, mrefs)
> > 
> > 4) Handle WSDL 2.0 RPC style (once we're handling WSDL 2.0 :))
> +1
> This is the kind of list I like to see. :-)

-1 .. :(. All of that stuff is about doing yet-another-RPC-SOAP-thing.

I don't agree that we need to *build into the core of Axis2* every
possible thing that Axis1 did. If we go with that all the way, then we
have no room to create anything new .. all we're doing is reimplementing
what we had before.

I know there are many people in the world who *still* want to use Web
services to SOAP enable RPC stuff. If that's what you want to do then
Axis1 does one hell of a job of doing that; please keep using it .. the
code works fine and many smart people have put in a lot of effort on it.

IMO Axis2 is about future Web service stuff where its much more than
about RPC style stuff. That's why to me it is *fundamental* that data
binding is not in the core and that data binding has nothing to do with
the message exchange pattern. I've converted over time ..I used to be an
RPC style bigot too but now I'm totally convinced that the value of Web
services will show thru much better when we start adopting XML all the
way through. Data binding is contrary to that view; hence my desire to
keep it out of the core.

While I agree with David Sosnoski that many people do and will continue
to start with a piece of code and "Webservicify" it, I disagree that
that's what Axis2 should be focused on. We put a lot of effort to create
the MEP & context framework which allows one to deal with any kind of
MEP. And the reality is that starting with Java code is a flat out lousy
way to implement anything except in-out type MEPs - that's all the Java
programming model gives you in its guts: a method call. If you want to
do other stuff (including a simple in-only or out-only) then Java code
is not a great way to start .. you need to start at a "higher" level and
then write the code .. or take Java code and annotate it to death.

It really comes down to why we are doing Axis2. For some its to try to
gain performance improvement out of going to a StAX model etc.. While I
agree that is a VERY important requirement, I would put the priority of
that requirement below the priority of making it an idea framework for
doing all kinds of asynchronous message exchange patterns. So I'm not
saying Axis2 cannot be used to write a super-duper-best-of-breed
yet-another-RPC-SOAP-thing; what I want to see is that "old" RPC stuff
kept out of the core to the maximum possible extent. Yes so I can live
with leaving hooks to make that work, of course.

I know this will cause a major battle .. but I think we need to discuss
what this effort is about long term too .. if for nothing else other
than to get everyone on the same page (its certainly possible you'll
convince me I skipped a chapter somewhere).


View raw message