Features of the Mandala RAMI packages are:
- Asynchronous references: extension of standard Java synchronous
reference (provides the '==' semantic);
- Asynchronous method invocations using future objects and/or callbacks
(event-driven programming) mechanism;
- Separation of asynchronous semantics and their implementations
(concurrent versus single-threaded semantic)
Features of the Mandala JACOb packages are:
- Based on a formal model: the active container concept;
- Simple API: ActiveMap extends Map;
- Multi-protocol: currently RMI, TCP, UDP are provided;
- Asynchronous remote method invocations using {@link
mandala.jacob.StoredObjectReference} which is an {@link
mandala.rami.AsynchronousReference} implementation;
- Remote exception handling based on global listeners: this allows both
"only business code in remote method invocation" paradigm or the
traditional per-method remote exception handling (RMI-like) to be
implemented;
Features of the whole Mandala projects:
- Designed by interfaces: anyone may provide its own implementation of
asynchronous policy, asynchronous references, ActiveMap, protocol, etc.
- Extensive use of design patterns -- maybe too extensive!
- Designed with unitary tests (JUnit)
- Build with the standard Ant build tool