You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fx-dev@ws.apache.org by Dave Everson <dj...@hotmail.com> on 2004/09/23 19:02:40 UTC

Getting Started with Sandesha

Hello -

We are starting a new web service project using Axis as our web service 
engine.  The requirements for our web services include reliable messaging, 
digitial signature, encryption of payload, and validation of XML in payload 
against schemas housed in the XML registry on our server.

We are considering using several components of WS-FX to accomplish several 
of these requirements.

We were thinking that many of the above requirements could be handlers with 
Axis Handlers before the message even gets to our true web service.

If the inbound message failed the checks (e.g. digitial signature, 
validation against schema), we would throw a SOAPFault and stop processing 
the message.

When I throw reliable messaging into the mix, where is the proper place for 
this?  Should I do this as the first step in the process (i.e as soon as we 
get a message) or after all the checks have been done with the message?

What's the suggested approach based on your experience?  What's the pros and 
cons of doing WS-RM functionality before or after the other processing?

Any recommendations that you can provide would be greatly appreciated.

Thanks!

_________________________________________________________________
FREE pop-up blocking with the new MSN Toolbar – get it now! 
http://toolbar.msn.click-url.com/go/onm00200415ave/direct/01/


Re: Getting Started with Sandesha

Posted by ja...@opensource.lk.
Hi Dave,

I will try to explain some suggestions for the scenario you mentioned as
follows.

According to the usage of the WS-RM it will be beneficial for us to first
identify the reliability of the message before going in to any processing.
That is if we can identify whether the incoming request is a new message
or a re-transmission of a previous message we can easily ignore the
latter.

However there is a problem in this approach. That is when we try to use
WS-RM with WS-Security(encryption, digital signatures) then some one can
encrypt the WS-RM headers as well. So the message should first pass
through the Security handler and then only it can pass through the WS-RM.
But as you have explained if we can use our own encryption/decryption
mechanism for the payload then we can easily do it after the reliability
checks as long as it will not encrypt the SOAP headers.

A further enhancement will be that, we can just decrypt the reliability
headers and then check the WS-Reliability first and decrypt the rest of
the message only if that is passed. However this scenario will not be
achieved directly using the current axis implementation. That is coming
back to a handler that has already passed. But by deploying custom
handlers you may still able to achieve this.

WS-RM mainly deals with SOAP headers and it may not require the body of
the message (payload) at all. So it will be beneficial for us to do the 
verification of the payload against a schema the reliability checks.
Otherwise the engine will waste its time validating a duplicate message or
a re-transmission.


At the moment the WS-RM support we have in axis (Apache Sandesha) works at
 the provider (pivot) level and works at the last stage. This is because
we need to provide INORDER  EXACTLY ONCE delivery of messages to the
service. That is the service is invoked using the  original message
sequence and not by the order in which they are received.

If the quality of service is something other than INORDER that is just
EXACTLY ONCE or by the order they are received, then we may be able to
modify Sandesha and use it before the other handlers that deal with the
payload decryption and validation. We are in the process of modifying
Sandesha so that it will improve its usage. We may be able to provide that
functionality in the near future and it will not affect the usage of axis
other than the way in which the services are deployed.

Hope I have explained my suggestions clearly. If you need further
clarifications, just send a mail..

Thanks,

Jaliya



> Hello -
>
> We are starting a new web service project using Axis as our web service
> engine.  The requirements for our web services include reliable messaging,
> digitial signature, encryption of payload, and validation of XML in
> payload
> against schemas housed in the XML registry on our server.
>
> We are considering using several components of WS-FX to accomplish several
> of these requirements.
>
> We were thinking that many of the above requirements could be handlers
> with
> Axis Handlers before the message even gets to our true web service.
>
> If the inbound message failed the checks (e.g. digitial signature,
> validation against schema), we would throw a SOAPFault and stop processing
> the message.
>
> When I throw reliable messaging into the mix, where is the proper place
> for
> this?  Should I do this as the first step in the process (i.e as soon as
> we
> get a message) or after all the checks have been done with the message?
>
> What's the suggested approach based on your experience?  What's the pros
> and
> cons of doing WS-RM functionality before or after the other processing?
>
> Any recommendations that you can provide would be greatly appreciated.
>
> Thanks!
>
> _________________________________________________________________
> FREE pop-up blocking with the new MSN Toolbar – get it now!
> http://toolbar.msn.click-url.com/go/onm00200415ave/direct/01/
>
>
>