Cliquer ici pour la version
française
In an object-oriented distributed system, information sharing is mediated through shared objects. Examples of shared objects include memory segments, caches, file containers, repositories, linked lists, and so on. These objects may be replicated at different locations in order to augment their availability or the system performance in presence of communication failures, deconnections, network partitions and process or machine crashes.
Replicated objects require the supporting system to offer a number of underlying micro-services. These include replica placement, client binding, concurrency control, consistency management, group management, and group communication. For each micro-service, a number of policies can be considered. A particular choice of policies for these micro-services determines the guarentees offered to applications.
Since applications do not require the same guarantees, each application should be allowed to tune the replicated objects that it used such as to obtain the guarentees that suit its needs at a given period in time, depending on the environment constraints. The goal of the BOAR project is to develop a framework that permits each application to customize the implementation of each replicated object that it uses. Applications have a full control on the choice of policies implemented by the micro-services used by their replicated objects.
BOAR makes each micro-service a first class service, with a well-defined interface. Different policies for providing a particular micro-service are implemented by different object classes. These classes constitute building blocks. A replicated object is then constructed by assembling the building blocks of interest. These building blocks can be picked up from existing libraries or developped by the application programmer on its own. A replicated object can be adapted just by replacing one or several of its components with blocks implementing the appropriate policies.
To make it easier for programmers to build/adapt most replicated objects, BOAR includes an object-support platform and libraries of ready to use blocks. The platform offers basic facilities necessary for the support of distributed objects (e.g., naming service, object identification, object location, and remote invocation). The compagnion libraries contain object classes that implement commonly used policies for consistency management, concurrency control, binding, replica placement, and group communication.