AXTP: Application eXtensible Transactional Protocol
Revised 2/24/98
Index
Description
Wire Protocol
Transaction Persistence
Configuration
Testing
Related Links
Partial failures and network outages are handled well by
two-stage commit transaction protocols.
This should have important applications for distributed processing.
But the size and complexity of transaction processing systems
tends to limit their use.
In contrast with most other transaction processing systems,
AXTP is small and easy to use. It is a component-based system,
written using Java Beans, and can be configured to a wide range
of requirements.
AXTP is built on top of UDP/IP, rather than TCP. This has a number
of advantages:
-
Connection management is eliminaged; only a single socket is needed.
-
TCP-specific restrictions relating to broadband, satellite, and cellular
phones no longer apply.
-
Number of packets needed for a minimum transaction is only 4, while
TCP requires 7 just to open a connection.
AXTP uses XML for its wire protocol, and employes decaying retry timers
to greatly simplify recovery from communication failures.
Another interesting characteristic of AXTP is that the client is untrusted.
All activity relating to a single transaction must pass through a single
server.
Transactions must be of an approved duration and are aborted by the server
when the time limit is exceeded.
(For multi-tier transactions, only
the top-level server may abort a transaction.)
The wire protocol for AXTP is controled by a component which
implements the
TransactionFactory
interface.
Class
XTransactionFactory
implements the XML wire protocol.
Long term retention of transaction state (persistence) is needed
for transaction processing to overcome system crashes and transient network outages.
This is managed by a component which implements the
TCS
interface.
The class
TransientTCS
is being used for initial testing of AXTP.
TransientTCS is little more than a stub and needs to be replaced before AXTP becomes useable.
MoaBatch
is used to configure the various components which comprise AXTP.
It requires a script file,
test.mb
being the script file that was used for testing.
The class
BiMix
was used to validate AXIP. BiMix simulates a bad network, by introducing
random delays, packet drops, packet duplication, and packet reordering
between the client and server.