Fleet System
 

 
Fleet is a middleware system implementing a distributed repository for persistent Java object using novel quorum replication techniques. Fleet is primarily target for supporting highly
critical applications: in particular the objects it stores maintains correct semantics despite the arbitrary failure (including hostile corruption) of a limited number of Fleet servers, and for
some objects, of clients allowed to invoke methods on objects invocations.

Fleet is designed to be highly available, dynamically extensible with new object types and
scalable to large numbers of servers and clients. Some of its characteristics are:

·        Scalability: achieved via object replication using Byzantine quorum systems. This results in better load balancing across servers and lower access cost.

·        Concurrent Semantics: Fleet provides a generic protocol for turning any regular Java object into a shared object with linearizable concurrent semantics.

·        Extensibility: Fleet supports the dynamic introduction of application-defined objects. Fleet is also transparent from an application point of view and provide a mechanism to turn any object into a Fleet Object.

·        Liveness: during periods of stability operations between clients and servers terminate with probability one.

·        Autonomy: each Fleet Object is replicated at a set of Fleet servers designed by the application depending on the level of fault-tolerance desired by the creator of the object.

·        Isolation: to support possible overlapping universes of Fleet servers, each Fleet Object is created with a name space and that allows only the creator of the name space to place new object within it.

 One Fleet application used to demo Fleet features at DARPA Exposition, was a prototype of a voting application.