Proposal for Kandula2, a web services project for implementing WS-Coordination, WS-Atomic Transaction & WS-Business Activity on top of Axis2.
The target of Kandula project was to implement WS-Coordination, WS-Atomic Transaction & WS-Business Activity for Axis 1.x. Kandula implementation lacks the mandatory asynchronous support due to axis 1.x not supporting one way messaging. Since Axis2 is about to make 1.0 release, we believe it is the time to start working on a Kandula implementation using axis2's asynchronous support.
This implementation will have a simple participant implementation, which will be indepedent of the participant's backend transaction implementation, and an initiator implementation which will use simple axis server to host services needed for the asynchronous communication.
Proposed Coordinator Architecture (WS-AT only)
Kandula2 coordinator implementation will be a stateless coordinator with a context hierarchy.
- The core of the coordinator will be independent of Axis2.
- All the logic needed for transaction processing will be in stateless coordinators, which makes the implementation much more scalable.
- Data binding layer will provide the extensibility to plug-in code generated, using diffrent data binding tools.
- Storage layer will take care of storing the contexts through out the life span of the transaction. This will be either Axis2 service context or a choice of a user (even a database).
Proposed Participant Architecture (WS-AT)
This will be a simple standalone participant impl which can be used with any native transaction implementation.
- The user needs to provide implementations of the 2PhaseCommit interface for each and every operation he wishes to provide transactional support.
- Transaction handler will take care of registering the coordinator when receiving an application message with a coordination context.
Proposed Initiator Architecture
This will use Simple Axis Server to host the services needed for the asynchronous messaging.
This implementation will be followed by the WS-Business Activity Implementation, which will have an architecture similar to above.