Let me chime in.

A) Skeletons are emitted code that users don't see.  So my belief is that
any reasonable implementation is acceptable.  (This differs from my
viewpoint about emitted Java Beans, which is I am a strong proponent of a
Helper class...)

B) The runtime's dependency on the Skeleton is a bit of a concern.  Glen
proposes that the "Operation Desc" model be used by the runtime in both
cases.  I agree that this allows for sharing (a very good thing), but I do
have some concerns about changes in the model.  For example if the model
changes, code emitted several months ago will no longer work... Perhaps the
model will stabalize soon (?)   An alternate approach is to support a
"dispatch" method on the skeleton,  the skeleton could then be written to
contain its own way of determining which method to dispatch from the
parameter names and arguments.  So I would like flexibility to add such an
approach in the future.

C) The WSDL generation code is another concern.  It seems like ?wsdl should
return the original wsdl instead of intropspecting the class.  Or the
skeleton could contain the actual text of the original wsdl.  (Actually I
have done some work on this in my implementation of the Bean Helper class).

So +1 to Glen's changes, but I don't want anyone to be surprised in the
future if IBM wants to put in some reasonable hooks to provide an alternate
implementation.

----------------------------
Russell and I are very interested in putting hook points in the
architecture.  Sometimes the hook points are necessary for release
stablization, sometimes they are necessary to productization, sometimes
they are necessary for integration with IBM products, and sometimes they
are necessary for IBM value add work.

So when we do have disagreements about something (for example meta data
models), we are not dis'ing the technology.  We are just concerned about
having our own plug points to provide an alternate solution.  (I think the
meta data model being evolved by Glen is a great way to fix a lot of
problems.  The addition of the model improves Axis.  But the meta data
model is still evolving and we want the ability to provide alternate
choices for our customers.

Now if Russell and I were not contributing any code (and only whining about
plug points) then it would be reasonable to dismiss our concerns.  But I
think we have contributed to evolving the Axis code base over the last nine
months.

Rich Scheuerle
XML & Web Services Development
512-838-5115  (IBM TL 678-5115)


                                                                                       
                                             
                      Glen Daniels                                                     
                                             
                      <gdaniels@macrome        To:       "'[EMAIL PROTECTED]'" 
<[EMAIL PROTECTED]>                      
                      dia.com>                 cc:                                     
                                             
                                               Subject:  RE: Skeletons                 
                                             
                      03/31/2002 07:44                                                 
                                             
                      AM                                                               
                                             
                      Please respond to                                                
                                             
                      axis-dev                                                         
                                             
                                                                                       
                                             
                                                                                       
                                             




Hi Russell!

> 1.  I would prefer that the Skeleton interface contain the method
> getOperationDescsByName.  It doesn't cost much.  The
> skeletons can still
> implement the static method, and the instance methods could
> do nothing more
> than call the static method, but the instance method DOES buy
> us something.
> It allows us to call the method directly rather than
> introspect on it if we
> have the skeleton class itself.

I assume you mean "the skeleton object itself", and I'm not sure there's
really going to be a case where we will, since the introspecting is all
happening on a Class level.  I guess I'll leave it for now, but I'll call
it getOperationDescsByNameInstance(), because I think it's nicer to leave
the "core" name on the static method as that'll be the one most used.

> 2.  I had hoped at one time that we could keep the emitters
> separate from
> the runtime.  But I've virtually lost this battle over time.  They've
> gotten more and more interdependent.  Replacing the WSDL generation
> framework's introspection with the ServiceDesc introspection
> is just one
> more nail in this coffin.  Since it seems a hopeless case to pull the
> emitters and runtime apart, maybe I should just stop whining.
>  Just felt
> like whining one more time.

Hmm... I'm not sure that your concern here is really warranted.  If you
think about it, what's going on is that we're putting a design around the
concept of "a structure that represents services/classes,
operations/methods, and their XML-related metatadata".  This stuff doesn't
tie in to the whole Handler architecture, or to the Serializer/Deserializer
system, or even to the MessageContext or Message structure - it's really
quite well modularized, I think.  If you take a look at the code in
ClassRep/MethodRep/etc, you'll note some really striking similarities to
what we're now doing in ServiceDesc - so I just want to coalesce all this
into using a single model.  I don't think that ties the Emitter code
particuarly tighter to the rest of the engine, only to this model.

> One question:  you still believe it should be a fault if the meta data
> exists in BOTH WSDD and skeleton, right?  So WSDL2Java will emit the
> metadata in either the deploy.wsdd OR in the skeleton, but never both.

Yup.

--Glen



Reply via email to