After speaking with Glyn, I think (my opinion only) perhaps the language 
used to describe what he wants to do was a bit to strong.  Basically, 
while functional, Axis suffers from a lack of a strong architectural 
backbone that makes it somewhat difficult for someone just coming into the 
project to understand and therefore help to maintain and evolve the code. 
The implementation of Axis, in my opinion and in the opinion of a number 
of others with whom I've discussed this topic, has been done in a fairly 
adhoc manner, with too much coupling between the various subsystems and 
not enough attention paid to creating a code base that not only implements 
the proper functionality but also adheres to tried and true architectural 
design principals.  Glyn's intent, which I applaud, is to provide nothing 
more than a set of architectural recommendations for how to improve the 
maintainability and structure of the Axis code POST 1.0. 

A note that Sam sent out refers to an email that sets a precendence for 
this (http://www.x180.net/Mutterings/Apache/rules.html).  If y'all haven't read it, I 
suggest you do.  Essentially what Glyn 
would like to do is set up a sandbox that can be used to experiment with 
various architectural improvements for Axis 2.0.  Most of those 
improvements may (and I stress MAY) begin to migrate their way into the 
code in an evolutionary way as work on Axis 2.0 begins.  Some MAY require 
a revolutionary change (if the proposals are in fact adopted by the axis 
dev team) but that'll be dealt with when the appropriate time comes.

That said, however, prior to the 1.0 release, we really do need all 
available hands looking at finishing up the 1.0 release. 

- James M Snell/Fresno/IBM
    Web services architecture and strategy
    Internet Emerging Technologies, IBM
    544.9035 TIE line
    559.587.1233 Office
    919.486.0077 Voice Mail
    [EMAIL PROTECTED]
 Programming Web Services With SOAP, O'reilly & Associates, ISBN 
0596000952 

==
Have I not commanded you?  Be strong and courageous.  Do not be terrified, 

do not be discouraged, for the Lord your God will be with you wherever you 
go.  
- Joshua 1:9

Please respond to [EMAIL PROTECTED] 
To:     <[EMAIL PROTECTED]>
cc: 
Subject:        Re: Axis Re-architecture




----- Original Message -----
From: <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Thursday, June 13, 2002 12:26 PM
Subject: Re: Axis Re-architecture


> On Thu, 13 Jun 2002, Glyn Normington wrote:
>
> > Costin: I'm aiming more at a radical re-architecting rather than a
> > re-factoring. My goal is not primarily to preserve the current 
function
as
> > some of this is there by accident of the current structure.
>
> I was afraid of that...
>
> If I remember corectly, axis is a 're-architecting' of xml-soap. What
> makes you think the next one will be the right one ? And when does it
> stop, I assume someone else will start re-architecting your version
> when it's almost ready ( by that time is very likely it'll be
> close to a real product, i.e. with all the compromises and 
complexities).

One of my favourite books on system design is "How buildings learn, by
Stuart Brandt".

Its core premise is that old buildings either survive because their 
purpose
is frozen (churches, cathedrals), or because they were reworked during 
their
life. Unless you can guarantee that purpose is frozen forever, flexible is
best. And even the fixed function cathedrals are really hacks with things
like flying buttresses in to hold up the sides.

> I totally agree axis has become too complex, it's hard for new people
> to contribute, etc. There are some amazing ideas in it, and a lot
> of the normal complexity that you find in any project that matures
> and has more than one contributor.
>
> But IMHO the only way to fix this is the hard way - starting with
> the existing system and cutting the crap, create a set of simpler
> interfaces and remove interdependencies, etc.
>
> At least that's my experience with several 're-architecture' attemtps,
> including Axis itself. It all looks wonderfull on paper and the first
> draft, and it repeats most of the errors and gets all the complexity
> of the original ( because of natural evolution ).

yup.

>
> The only way to get to a simple and modular system is to start with
> a real system and refactor it continuously, based on the features and
> code that gets added.

Maybe a good tactic is post1.0 to pick a really unwiedly bit of the system
and redesign it. One can prepare for this in the pre-1.0 timeframe by
writing all the unit tests that refactoring needs, these will benefit both
releases

-steve




Reply via email to