Hi Charles, Sylvain, et.al.,

about naming of headers. I don't believe that headers shall
be associated to operations. As Sylvain mentioned some e-mails
before headers are specific to a service, not to a specific
operation of a service. Therefore IMHO headers should be
transmitted for each operation of a service. The association
to a service could be done either using the actor attribute i.e.
the service may register an actor that handles the header or
implicitly because the service is known.

About handling of headers there are some options to consider:
- setting the headers from the client. Shall be done service
  specific as Sylvain and Charles proposed. I would also
  support the proposal to use a service context to define
  headers and not using method signatures. Using a
  context would also support to define actor and mustUnderstand
  attributes. This way is somewhat similar Microsoft .NET
  does it: the client sets a Header process attribute, i.e.
  an object that gets called just before the request is sent
  and this object may then insert the header in the Envelope.

- processing headers in resposnes from the server. Two things here:
  if the server returns headers 
        shall they overwrite stored headers e.g. if they have the 
        same element identifier of the immidiate child element
        of the SOAP Header
  or
        are received headers always stored in a spearate context and
        the client is responsible to handle them properly
  Personally I would like to have them stored in a separate context
  an have the client deal with them, IMHO it's a more flexible 
  approach.

I didn't look at header processing on the server side. Just some
thoughts here:
- Need some way to define and register actors. Global and service
  specific actor registration necessary?
- Doing an implicit or explict service context (refer to JAX-RPC,
  chapter 11). I would see the implicit model as more appropriate.
- which part deserializes/serializes headers and stores them in
  the context (MessageContext?) and calls the header processing
  module (that are registered using WSDD?)

Werner

> -----Ursprüngliche Nachricht-----
> Von: Ng, Charles [mailto:[EMAIL PROTECTED]]
> Gesendet: Freitag, 12. April 2002 16:20
> An: '[EMAIL PROTECTED]'
> Betreff: RE: soap:header
> 
> 
> Hi Chris.
> 
> As Sylvain has mentioned already, we're pretty much focused 
> on the client
> side of things.  I haven't had much time to look at the server side
> implementation.  With that said, it does make sense to expose the
> ServiceContext in the <ServiceName>Impl class.  The 
> ServiceContext object
> would be a stand-alone class with the Stub (or Service as Sylvain has
> proposed) and the Impl class each having a reference to an 
> instance.  Each
> class should have a get/setServiceContext methods for the underlying
> implementation to populate the appropriate properties.
> 
> As for headers that are not typed or not defined in the SOAP 
> binding, we
> would just skip over them in the deserialization code.  We 
> probably need to
> expose a way for the client to get a SOAPHeaderElement as you 
> have proposed.
> 
> Sylvain's proposal is semantically the same.  Rather than 
> having an explicit
> list of objects, he has a Hashmap.  I do prefer having an 
> explicit list just
> so users don't have to 'guess' which headers are serializable 
> and which are
> not.
> 
> Another problem that has not been resolved is the naming of 
> the headers.
> The soap:header declarations in the SOAP binding section do 
> not have names.
> How do we associate headers to operations?  How do we treat 
> headers that are
> shared between operations?
> 
> Charles
> 
> -----Original Message-----
> From: Chris Haddad [mailto:[EMAIL PROTECTED]]
> Sent: Thursday, April 11, 2002 4:10 PM
> To: [EMAIL PROTECTED]
> Subject: RE: soap:header
> 
> 
> Charles - 
> 
> Deserializing soap:Headers into native java objects where WSDL type
> definitions are supplied would be excellent. 
> 
> I would like to keep the code that references (gets) and sets soap
> header values in the application logic.  It is my 
> understanding that app
> logic should be placed in the <ServiceName>Impl class.   Is this an
> accurate premise?
> 
> In the proposed design approach, how would the <ServiceName>Impl class
> methods gain access to the Stub.ServiceContext object?  I 
> think I missed
> how the service methods in <ServiceName>Impl find the Stub object....
> Are you thinking about adding ServiceContext to the MessageContext
> object or making a static getServiceContext() method?
> 
> Another question, how would the engine work if soap:header values are
> received in the request message, but the definition was not 
> in the WSDL?
> Would the envelope parser not throw a fault (because no 
> deserializer was
> defined), but continue to parse the header into
> MessageContext.Message.SOAPEnvelope.SOAPHeaderElement.SOAPElement
> objects?
> 
> Thanks,
> 
> /Chris
> 
> 
> -----Original Message-----
> From: Ng, Charles [mailto:[EMAIL PROTECTED]] 
> Sent: Thursday, April 11, 2002 2:34 PM
> To: '[EMAIL PROTECTED]'
> Subject: RE: soap:header
> 
> Hi.
>  
> I work with Sylvain so I have put some thought into this...
>  
> I was thinking of adding a 'ServiceContext' to the stub.  This
> ServiceContext will have properties that matches the header objects
> defined in the WSDL.
>  
> For example, if we have objects A, B, C in the header, we create the
> class
>  
> class <ServiceName>ServiceContext {
>     private A myA;
>     private B myB;
>     private C myC;
>  
>     // and getters/setters
> }
>  
> I prefer this to get/setProperty since this explicitly defines which
> headers are available.  It would be the stub's responsibility 
> to update
> the ServiceContext and roundtrip values sent back from the server.
> -----Original Message-----
> From: Tom Jordahl [mailto:[EMAIL PROTECTED]]
> Sent: Thursday, April 11, 2002 2:16 PM
> To: '[EMAIL PROTECTED]'
> Subject: RE: soap:header
> Glen and I have talked a little bit about this, but is was just talk.
> :-)  Glad to hear that you are going to tackle this.
>  
> One of the big design questions I have is how to pass header values in
> to the stubs.
>  
> Do we add them in to the function signatures: myadd(String header1,
> String header2, int arg1, int arg2)?  Do we set them some 
> other way? via
> the Stub setProperty()?  Do we create custom APIs in the Stub? 
> Something else?
>  
> Sylvain, what is your current thinking?
>  
> --
> Tom Jordahl
>  
> -----Original Message-----
> From: St-Germain, Sylvain [mailto:[EMAIL PROTECTED]]
> Sent: Thursday, April 11, 2002 12:53 PM
> To: Axis Dev (E-mail)
> Subject: soap:header
> Has anybody started some work on this?    I am looking into it now, if
> anyone as some ideas/guidelines/design ideas please send them to the
> list.
>  
> Thanks.
> --
> Sylvain 
> 
> This message may contain privileged and/or confidential 
> information. If
> you have received this e-mail in error or are not the intended
> recipient, you may not use, copy, disseminate or distribute it; do not
> open any attachments, delete it immediately from your system 
> and notify
> the sender promptly by e-mail that you have done so. Thank you.
> 
> 
> This message may contain privileged and/or confidential 
> information.  If you
> have received this e-mail in error or are not the intended 
> recipient, you
> may not use, copy, disseminate or distribute it; do not open any
> attachments, delete it immediately from your system and 
> notify the sender
> promptly by e-mail that you have done so.  Thank you.
> 

Reply via email to