![]() |
Maestro Overview |
Maestro is a collection of C++ classes that implement ADT's for essential types (endpoint ID's, messages, threads, etc.) and group-member / client-server abstractions.
The implementation of clients/servers is currently a prototype: All clients and servers join the same Ensemble group, and distinction between them is maintained at the Maestro level. We are planning to provide support for "real" clients (through the same or alsmost the same interface), which will allow for better scalability/performance.
The state-transfer protocol for servers is currently implemented within Maestro. However, we are planning to eventually intergate it with the native state-transfer protocol of Ensemble, and provide support for state transfer with primary views (as in Horus).
Ensemble/Maestro do not provide a threads package. However, Ensemble defines a System-Independent Threads Interface which can be implemented either directly or by providing a stab to an existing threads package. Ensemble currently supports native threads on NT and Solaris and provides a stub to POSIX pthreads on other systems.