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 "Christoph C. Cemper @ Cemper.com" <ch...@cemper.com> on 2001/09/26 15:30:02 UTC

SOAPHeader-Session-Handling - Axis Handler Features

Hi Naresh & all on SOAP-list (FYI)

the session-maintenance via SOAPheaders is the only -to me- know solution
for
interoperable session handling from Apache to MS.SOAP Toolkit

Reason:
================

 * Storing Session-Context in SOAPheader is transport-independant
	(in contrast to the HTTP-dependant cookie mechanism)
 * That means: it should work with transports like FTP,SMTP,etc.. aswell
    (untested so far)
 * Handling SOAPheader info works in MS.SOAP Toolkit
 * Other "higher-level" protocols like the DSIG or ebXML also store their
   meta-info in the SOAPheader for the same reason: transport-agnostic

Status:
 1* Working Example on my machine :-)
 2* Working MS.SOAP TOOLKIT VBS-Client -> Java Apache AXIS Service
 3* Working Java Apache AXIS Service -> Java Apache AXIS Service for the
    same service (one would expect that)

How it works:
================

 I implemented - basically - an aXIS plugin handler, which is configured
with
 some lines to go between the NETWORK REQUEST and the SERVICE request, same
for
 the Response

 request-path
	CLIENT -> NETWORK -> myHandler -> SERVICE

 response-path
	CLIENT -> NETWORK <- myHandler <- SERVICE


 the Handler (myHandler in above diagram) maintains soap-headers containing
the
 session-id... same for the CLIENT, for the VBS, I used a microsoft
 VB-ActiveX DLL

 I know a nice picutre for explaining the handlers on
  http://www.thoughtcraft.com/~glen/axis/HandlerScenario.html
 by Glen


Why AXIS rules?
================

 My first approach used the EnvelopeEditor interface in APACHE SOAP... that
gave
 me a chance to get the whole SOAP-Envelope for work on it...

 BUT: all I got then was a bytestream, which is not really the way I source
I
      wanted... editing the envelope directly as bytes, might be ONE way,
but
      it's definately the worst of all I could imagine...

AXIS FEATURE #1 : every handler can get a Message-Object, containing of
SOAPEnvelope, SOAPHeader and SOAPbody objects
			which can be gotten as DOMs for further manipulation

AXIS FEATURE #2 : handlers can be cascaded ("chained") which means you could
			create several modular handlers to perform various tasks:

	- authentication via A
	- authentication via B
	- SOAPheader session-handling
	- SOAPheader session-handling datbase backed (re-startable or so)
	- etc.etc.

	and all those can be switched and shuffeld in one small XML-file without
	changing a line of code...

	Now that's what we needed

AXIS FEATURE #3 : I took a look at the whole thing and immediately knew what
to
			do... Apache SOAP seemed more confusing to me, and didn't
			really give me a good chance to change something

			So Axis is the superior by design if you ask me...


Well, and most important thing:
=================================

the whole thing is working so far... as you can see in "Status" the thing
operates fine the lab...

i won't say that one can use it for all occassions, but having a good
example is better than "a sta am schedl" (i.e. nothing)...

I will try to provide the sources for the example today to James Abott and
Glen Daniels who promised to support me with it...

if he can read/understand the thing, we will see how we can contribute to
the
project...

but keep in mind: it's a sample using existing AXIS features !!

mfg / kind regards,
Christoph C. Cemper

email:    mailto:Christoph@Cemper.com
  www:    http://Christoph.Cemper.com








-----Ursprüngliche Nachricht-----
Von: Naresh Agarwal [mailto:nagarwal@firstrain.com]
Gesendet: Mittwoch, 26. September 2001 14:42
An: christoph@cemper.com
Betreff: Acis Handler Features


Hi chris..

I appreciate that you took a initiative for implementing Session-maintenance
in Soap-Axis using Soap headers. It will definitely resolve the
interoperability problem with MS-Soap as far as session maintenance is
concerned.

Can you please elaborate a bit the Handler-features in Axis..and what
additional functionalities/ease they will provide in comparison to Apache
Soap-2.2

thanks,
regards,
Naresh Agarwal