The objective of SenseiUMA is to supply replicated components, built using the facilities supported by SenseiDomains.
As shown in the SenseiGMNS section, the design of replicated applications
starting from the replicated components is a quite easy process, equivalent in general to the design
of multithread applications where multiple threads must collaborate to access shared resources. With
replicated components, each replica can be programmed as a standalone application, as it does not need
to communicate with other replicas: all the interaction is done by the replicated components. Nevertheless,
the application must still take care with the concurrent accesses to those components.
In the SenseiGMNS case, the application includes its own replicated components: a map, and a set. And
the design of these components is not always an easy task.
SenseiUMA covers this hole in the methodology: it supplies generic components, already tested, that
the final application can directly use. These components are based on the containers included in the
java.util package in Java 2.
This subsystem is the one not yet completed in the project (GMS, GMNS and Domains may still require
further work, but mainly as maintenance). In addition, is the only one that does not share a common
interface for the JavaRMI and CORBA implementations. The reason is that the JavaRMI interface can be
defined using types already defined in the java.util package, like iterators, which
not only simplify the interface but also provide for a better integration.
|