Mercury, a new WS-RM implementation
-----------------------------------
Key: SANDESHA2-144
URL: https://issues.apache.org/jira/browse/SANDESHA2-144
Project: Sandesha2
Issue Type: Improvement
Reporter: Amila Chinthaka Suriarachchi
Attachments: mercury.tar.gz
hi all,
Recently I developed a new WS-RM implementation called Mercury[1] (Mercury is
the messenger of God) which runs on top of Axis2. This mail is to make a
suggestion to donate the Mercury to Apache and hence start a new wscommons
project called Mercury. Following is a full description about how I started it
and current status of Mercury.
Couple of months back I started looking into Sandesha2 to fix some reported
issues. Actually what I wanted was to get familiar with the Sandesha2 code
base. Although I went through some architecture documents and some of the code
I could not really understand most of the Sandesha2 internals (My bad ). Then I
went through the specifications and I saw a state machine model has proposed in
WS-RM 1.1 specification.
I really interested about it and started to model a state machine for RM 1.0.
First I developed this using a pen and a paper and looked fine. Then I started
implementing it.
Although I have worked more than one year with Axis2 I did not have a much
knowledge about axis2 kernel since my contribution mainly on Codegen. Therefore
I wrote an Axis2 simulator[2] and on top of that I implemented my state
machine. On the other hand concentrating more on Axis2 kernel would have made
this state machine implementation very difficult. This allowed me to test this
state machine model for various unreliable conditions and that worked fine.
Then I started looking into real Axis2 kernel code and implemented this state
machine model. For the first stage I implemented the WS-RM specification which
is about the Duplex channel mode. Then I implemented the persistence model.
This was very easy since the only thing I had to do was to persist the state
machine. Finally I was able to implement the Replay model specification which
uses the back channel to send the responses. I tested all these scenarios for
many unreliable conditions and it worked fine.
Since I myself is an apache comiter and I worked for an open source company I
would like to start this as an apache project. I hope this would help others to
use this code freely and make any contribution that they would like to made.
The attached patch contains all the Architecture documents and details of the
state machine model. I think going through the simulator code first would make
it easy to understand the real implementation.
The name Mercury and the package structures are simply the internal names I
have chosen. I am open to change that name. (eg Sandesah3) And also I am open
to make any changes to package structure, design to suit to any other
requirements as well.
We have our New year holidays (Sri Lankans celebrates New year on 13-14 april
:) ) until 15th. So please take your time and feel free to make any thoughts.
thanks,
Amila.
[1]mercury.tar.gz
[2]Simulator.tar.gz
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]